From: Daniel Vetter Subject: Re: [PATCH] Enable dithering for ns2501 DVO Date: Wed, 15 Apr 2015 11:51:20 +0200 Message-ID: <20150415095119.GV6092@phenom.ffwll.local> References: <552D8E61.7000106@math.tu-berlin.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f169.google.com (mail-wi0-f169.google.com [209.85.212.169]) by gabe.freedesktop.org (Postfix) with ESMTP id AFB3C6E810 for ; Wed, 15 Apr 2015 02:49:22 -0700 (PDT) Received: by widjs5 with SMTP id js5so107685866wid.1 for ; Wed, 15 Apr 2015 02:49:21 -0700 (PDT) Content-Disposition: inline In-Reply-To: <552D8E61.7000106@math.tu-berlin.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Thomas Richter Cc: intel-gfx List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBBcHIgMTUsIDIwMTUgYXQgMTI6MDI6MDlBTSArMDIwMCwgVGhvbWFzIFJpY2h0ZXIg d3JvdGU6Cj4gSGkgRGFuaWVsLCBoaSBWaWxsZSwKPiAKPiBwbGVhc2UgZmluZCBhIHBhdGNoIGF0 dGFjaGVkIGZvciB0aGUgTmF0U2VtaSAyNTAxIERWTyBmb3VuZCBpbiB0aGUgRnVqaXRzdQo+IFM2 MDEwIChhbmQgb3RoZXJzKS4gVGhpcyBwYXRjaAo+IGluY2x1ZGVzIHByb3BlciBkZWZpbml0aW9u cyBmb3Igc29tZSByZWdpc3RlcnMgb2YgdGhlICh1bmRvY3VtZW50ZWQpIHNjYWxlcgo+IG9mIHRo ZSBEVk8gY2hpcCwgYW5kCj4gYWxzbyBlbmFibGVzIGRpdGhlcmluZyBieSBkZWZhdWx0IG9uIGFs bCBtb2Rlcy4gVGhpcyBpbXByb3ZlcyBpbWFnZSBxdWFsaXR5Cj4gc2lnbmlmaWNhbnRseSBpbiB0 aGUgMzJiaXQKPiBtb2RlcyBhcyBpdCBhdm9pZHMgc3RhaXIgY2FzZXMgZHVlIHRvIHF1YW50aXph dGlvbi4KPiAKPiBJdCBzaG91bGQgaG9wZWZ1bGx5IGFsc28gb3BlbiBhIGRvb3IgZm9yIGZ1dHVy ZSBhdXRvbWF0aWMgbW9kZSBjb21wdXRhdGlvbnMuCj4gCj4gV2hhdCBpcyBzdGlsbCB1bmNsZWFy IGlzIHRoZSBwcm9wZXIgY29uZmlndXJhdGlvbiBvZiB0aGUgUExMIG9mIHRoZSBjaGlwLiBJdAo+ IHNlZW1zIHRvIGNvbnNpc3Qgb2YgYSBudW1lcmF0b3IvCj4gZGVub21pbmF0b3IgcGFpciBpbiBy ZWdpc3RlcnMgMWIsMWMsMWQsIHRob3VnaCBpdHMgcHJlY2lzZSBjb25maWd1cmF0aW9uIGlzCj4g c3RpbGwgYSBteXN0ZXJ5Lgo+IAo+IE5vdGUgYWxzbyB0aGF0IHRoZSBEVk8gY29uZmlndXJhdGlv biBmb3VuZCBpbiB0aGUgcHJldmlvdXMga2VybmVsIGRyaXZlcgo+IGVuYWJsZWQgdGhlIERWTyBi eXBhc3MgZm9yCj4gdGhlIDEwMjR4NzY4IG1vZGUsIGFuZCBoZW5jZSBjb3VsZCBub3QgcnVuIGVu YWJsZSBkaXRoZXJpbmcgdGhlcmUgZWl0aGVyLgo+IFRoZSBCSU9TIGxlZnQgbm8gdXNlZnVsCj4g ZGVmYXVsdHMgZm9yIHRoZSBzY2FsZXIgaW4gdGhpcyBtb2RlLCBzbyBJIGhhZCB0byBvYnRhaW4g dGhpcyBieSBzb21lCj4gY29tcHV0YXRpb24gYW5kIHNvbWUgdHJ5IGFuZCBlcnJvci4KPiAKPiBV bmZvcnR1bmF0ZWx5LCBpdCBpcyBzdGlsbCB1bmNsZWFyIHdoaWNoIHJlZ2lzdGVycyBkZWZpbmUg dGhlIG91dHB1dCAocGFuZWwpCj4gY29uZmlndXJhdGlvbiBhcyBJIGhhdmUgb25seQo+IGEgc2lu Z2xlIHBhbmVsIGF2YWlsYWJsZSBmb3IgdGVzdGluZy4gQSBsYXB0b3Agd2l0aCBhIGxhcmdlciBw YW5lbCB1c2luZyB0aGUKPiAyNTAxIHdvdWxkIGNlcnRhaW5seSBiZSBoZWxwZnVsCj4gdG8gdW5k ZXJzdGFuZCB0aGUgcmVzdCBvZiB0aGUgcmVnaXN0ZXJzLgo+IAo+IEdyZWV0aW5ncywKPiAgICAg VGhvbWFzCj4gCgo+IFNpZ25lZC1vZmYtYnk6IFRob21hcyBSaWNodGVyIDx0aG9yQG1hdGgudHUt YmVybGluLmRlPgoKQ2FuIHlvdSBwbGVhc2UgbW92ZSBhbGwgeW91ciBmaW5kaW5ncyBmcm9tIHlv dXIgaW52ZXN0aWdhdGlvbiBpbnRvIHRoZQpjb21taXQgbWVzc2FnZSBoZXJlPyBJbW8gdGhhdCdz IGltcG9ydGFudCBpbmZvcm1hdGlvbiB0byBrZWVwIG9uIHJlY29yZC4KT25lIHNtYWxsIHN0eWxl IHN1Z2dlc3Rpb24gYmVsb3csIG90aGVyd2lzZSBsZ3RtCi1EYW5pZWwKCj4gLS0tCj4gLS0tIGR2 b19uczI1MDEuYy1vcmcJMjAxNS0wNC0xNCAxNTozNDozNC4wMDAwMDAwMDAgKzAyMDAKPiArKysg ZHZvX25zMjUwMS5jCTIwMTUtMDQtMTQgMjM6NDY6MTYuMDAwMDAwMDAwICswMjAwCj4gQEAgLTYw LDYgKzYwLDEzMCBAQAo+ICAKPiAgI2RlZmluZSBOUzI1MDFfUkVHQyAweDBjCj4gIAo+ICsvKgo+ ICsgKiBUaGUgZm9sbG93aW5nIHJlZ2lzdGVycyBhcmUgbm90IHBhcnQgb2YgdGhlIG9mZmljaWFs IGRhdGFzaGVldAo+ICsgKiBhbmQgYXJlIHRoZSByZXN1bHQgb2YgcmV2ZXJzZSBlbmdpbmVlcmlu Zy4KPiArICovCj4gKwo+ICsvKgo+ICsgKiBSZWdpc3RlciBjMCBjb250cm9scyBob3cgdGhlIERW TyBzeW5jaHJvbml6ZXMgd2l0aAo+ICsgKiBpdHMgaW5wdXQuCj4gKyAqLwo+ICsjZGVmaW5lIE5T MjUwMV9SRUdDMCAweGMwCj4gKyNkZWZpbmUgTlMyNTAxX0MwX0VOQUJMRSAoMTw8MCkJLyogZW5h YmxlIHRoZSBEVk8gc3luYyBpbiBnZW5lcmFsICovCj4gKyNkZWZpbmUgTlMyNTAxX0MwX0hTWU5D ICgxPDwxKQkvKiBzeW5jaHJvbml6ZSBob3Jpem9udGFsIHdpdGggaW5wdXQgKi8KPiArI2RlZmlu ZSBOUzI1MDFfQzBfVlNZTkMgKDE8PDIpCS8qIHN5bmNocm9uaXplIHZlcnRpY2FsIHdpdGggaW5w dXQgKi8KPiArI2RlZmluZSBOUzI1MDFfQzBfUkVTRVQgKDE8PDcpCS8qIHJlc2V0IHRoZSBzeW5j aHJvbml6YXRpb24gZmxpcC9mbG9wcyAqLwo+ICsKPiArLyoKPiArICogUmVnaXN0ZXIgNDEgaXMg c29tZWhvdyByZWxhdGVkIHRvIHRoZSBzeW5jIHJlZ2lzdGVyIGFuZCBzeW5jCj4gKyAqIGNvbmZp Z3VyYXRpb24uIEl0IHNob3VsZCBiZSAweDMyIHdoZW5ldmVyIHJlZ0MwIGlzIDB4MDUgKGhzeW5j IG9mZikKPiArICogYW5kIDB4MDAgb3RoZXJ3aXNlLgo+ICsgKi8KPiArI2RlZmluZSBOUzI1MDFf UkVHNDEgMHg0MQo+ICsKPiArLyoKPiArICogdGhpcyByZWdpc3RlciBjb250cm9scyB0aGUgZGl0 aGVyaW5nIG9mIHRoZSBEVk8KPiArICogT25lIGJpdCBlbmFibGVzIGl0LCB0aGUgb3RoZXIgZGVm aW5lIHRoZSBkaXRoZXJpbmcgZGVwdGguCj4gKyAqIFRoZSBoaWdoZXIgdGhlIHZhbHVlLCB0aGUg bG93ZXIgdGhlIGRpdGhlcmluZyBkZXB0aC4KPiArICovCj4gKyNkZWZpbmUgTlMyNTAxX0Y5X1JF RyAweGY5Cj4gKyNkZWZpbmUgTlMyNTAxX0Y5X0VOQUJMRSAoMTw8MCkJCS8qIGlmIHNldCwgZGl0 aGVyaW5nIGlzIGVuYWJsZWQgKi8KPiArI2RlZmluZSBOUzI1MDFfRjlfRElUSEVSX01BU0sgKDB4 N2Y8PDEpCS8qIGNvbnRyb2xzIHRoZSBkaXRoZXIgZGVwdGggKi8KPiArI2RlZmluZSBOUzI1MDFf RjlfRElUSEVSX1NISUZUIDEJLyogc2hpZnRzIHRoZSBkaXRoZXIgbWFzayAqLwo+ICsKPiArLyoK PiArICogUExMIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXIuIFRoaXMgaXMgYSBwYWlyIG9mIHJlZ2lz dGVycywKPiArICogb25lIHNpbmdsZSBieXRlIHJlZ2lzdGVyIGF0IDFCLCBhbmQgYSBwYWlyIGF0 IDFDLDFELgo+ICsgKiBUaGVzZSByZWdpc3RlcnMgYXJlIGNvdW50ZXJzL2RpdmlkZXJzLgo+ICsg Ki8KPiArI2RlZmluZSBOUzI1MDFfUkVHMUIgMHgxYiAvKiBvbmUgYnl0ZSBQTEwgY29udHJvbCBy ZWdpc3RlciAqLwo+ICsjZGVmaW5lIE5TMjUwMV9SRUcxQyAweDFjIC8qIGxvdy1wYXJ0IG9mIHRo ZSBzZWNvbmQgcmVnaXN0ZXIgKi8KPiArI2RlZmluZSBOUzI1MDFfUkVHMUQgMHgxZCAvKiBoaWdo LXBhcnQgb2YgdGhlIHNlY29uZCByZWdpc3RlciAqLwo+ICsKPiArLyoKPiArICogU2NhbGVyIGNv bnRyb2wgcmVnaXN0ZXJzLiBIb3Jpem9udGFsIGF0IGI4LGI5LAo+ICsgKiB2ZXJ0aWNhbCBhdCAx MCwxMS4gVGhlIHNjYWxlIGZhY3RvciBpcyBjb21wdXRlZCBhcwo+ICsgKiAyXjE2L2NvbnRyb2wt dmFsdWUuIFRoZSBsb3ctYnl0ZSBjb21lcyBmaXJzdC4KPiArICovCj4gKyNkZWZpbmUgTlMyNTAx X1JFRzEwIDB4MTAgLyogbG93LWJ5dGUgdmVydGljYWwgc2NhbGVyICovCj4gKyNkZWZpbmUgTlMy NTAxX1JFRzExIDB4MTEgLyogaGlnaC1ieXRlIHZlcnRpY2FsIHNjYWxlciAqLwo+ICsjZGVmaW5l IE5TMjUwMV9SRUdCOCAweGI4IC8qIGxvdy1ieXRlIGhvcml6b250YWwgc2NhbGVyICovCj4gKyNk ZWZpbmUgTlMyNTAxX1JFR0I5IDB4YjkgLyogaGlnaC1ieXRlIGhvcml6b250YWwgc2NhbGVyICov Cj4gKwo+ICsvKgo+ICsgKiBEaXNwbGF5IHdpbmRvdyBkZWZpbml0aW9uLiBUaGlzIGNvbnNpc3Rz IG9mIGZvdXIgcmVnaXN0ZXJzCj4gKyAqIHBlciBkaW1lbnNpb24uIE9uZSByZWdpc3RlciBwYWly IGRlZmluZXMgdGhlIHN0YXJ0IG9mIHRoZQo+ICsgKiBkaXNwbGF5LCBvbmUgdGhlIGVuZC4KPiAr ICogQXMgZmFyIGFzIEkgdW5kZXJzdGFuZCwgdGhpcyBkZWZpbmVzIHRoZSB3aW5kb3cgd2l0aGlu IHdoaWNoCj4gKyAqIHRoZSBzY2FsZXIgc2FtcGxlcyB0aGUgaW5wdXQuCj4gKyAqLwo+ICsjZGVm aW5lIE5TMjUwMV9SRUdDMSAweGMxIC8qIGxvdy1ieXRlIGhvcml6b250YWwgZGlzcGxheSBzdGFy dCAqLwo+ICsjZGVmaW5lIE5TMjUwMV9SRUdDMiAweGMyIC8qIGhpZ2gtYnl0ZSBob3Jpem9udGFs IGRpc3BsYXkgc3RhcnQgKi8KPiArI2RlZmluZSBOUzI1MDFfUkVHQzMgMHhjMyAvKiBsb3ctYnl0 ZSBob3Jpem9udGFsIGRpc3BsYXkgc3RvcCAqLwo+ICsjZGVmaW5lIE5TMjUwMV9SRUdDNCAweGM0 IC8qIGhpZ2gtYnl0ZSBob3Jpem9udGFsIGRpc3BsYXkgc3RvcCAqLwo+ICsjZGVmaW5lIE5TMjUw MV9SRUdDNSAweGM1IC8qIGxvdy1ieXRlIHZlcnRpY2FsIGRpc3BsYXkgc3RhcnQgKi8KPiArI2Rl ZmluZSBOUzI1MDFfUkVHQzYgMHhjNiAvKiBoaWdoLWJ5dGUgdmVydGljYWwgZGlzcGxheSBzdGFy dCAqLwo+ICsjZGVmaW5lIE5TMjUwMV9SRUdDNyAweGM3IC8qIGxvdy1ieXRlIHZlcnRpY2FsIGRp c3BsYXkgc3RvcCAqLwo+ICsjZGVmaW5lIE5TMjUwMV9SRUdDOCAweGM4IC8qIGhpZ2gtYnl0ZSB2 ZXJ0aWNhbCBkaXNwbGF5IHN0b3AgKi8KPiArCj4gKy8qCj4gKyAqIFRoZSBmb2xsb3dpbmcgcmVn aXN0ZXIgcGFpciBzZWVtcyB0byBkZWZpbmUgdGhlIHN0YXJ0IG9mCj4gKyAqIHRoZSB2ZXJ0aWNh bCBzeW5jLiBJZiBhdXRvbWF0aWMgc3luY2luZyBpcyBlbmFibGVkLCBhbmQgdGhlCj4gKyAqIHJl Z2lzdGVyIHZhbHVlIGRlZmluZXMgYSBzeW5jIHB1bHNlIHRoYXQgaXMgbGF0ZXIgdGhhbiB0aGUK PiArICogaW5jb21pbmcgc3luYywgdGhlbiB0aGUgcmVnaXN0ZXIgdmFsdWUgaXMgaWdub3JlZCBh bmQgdGhlCj4gKyAqIGV4dGVybmFsIGhzeW5jIHRyaWdnZXJzIHRoZSBzeW5jaHJvbml6YXRpb24u Cj4gKyAqLwo+ICsjZGVmaW5lIE5TMjUwMV9SRUc4MCAweDgwIC8qIGxvdy1ieXRlIHZzeW5jLXN0 YXJ0ICovCj4gKyNkZWZpbmUgTlMyNTAxX1JFRzgxIDB4ODEgLyogaGlnaC1ieXRlIHZzeW5jLXN0 YXJ0ICovCj4gKwo+ICsvKgo+ICsgKiBUaGUgZm9sbG93aW5nIHJlZ2lzdGVyIHBhaXIgc2VlbXMg dG8gZGVmaW5lIHRoZSB0b3RhbCBudW1iZXIKPiArICogb2YgbGluZXMgY3JlYXRlZCBhdCB0aGUg b3V0cHV0IHNpZGUgb2YgdGhlIHNjYWxlci4KPiArICogVGhpcyBpcyBhZ2FpbiBhIGxvdy1oaWdo IHJlZ2lzdGVyIHBhaXIuCj4gKyAqLwo+ICsjZGVmaW5lIE5TMjUwMV9SRUc4MiAweDgyIC8qIG91 dHB1dCBkaXNwbGF5IGhlaWdodCwgbG93IGJ5dGUgKi8KPiArI2RlZmluZSBOUzI1MDFfUkVHODMg MHg4MyAvKiBvdXRwdXQgZGlzcGxheSBoZWlnaHQsIGhpZ2ggYnl0ZSAqLwo+ICsKPiArLyoKPiAr ICogVGhlIGZvbGxvd2luZyByZWdpc3RlcnMgZGVmaW5lIHRoZSBlbmQgb2YgdGhlIGZyb250LXBv cmNoCj4gKyAqIGluIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIHBvc2l0aW9uIGFuZCBoZW5jZSBh bGxvdyB0byBzaGlmdAo+ICsgKiB0aGUgaW1hZ2UgbGVmdC9yaWdodCBvciB1cC9kb3duLgo+ICsg Ki8KPiArI2RlZmluZSBOUzI1MDFfUkVHOTggMHg5OCAvKiBob3Jpem9udGFsIHN0YXJ0IG9mIGRp c3BsYXkgKyAyNTYsIGxvdyAqLwo+ICsjZGVmaW5lIE5TMjUwMV9SRUc5OSAweDk5IC8qIGhvcml6 b250YWwgc3RhcnQgb2YgZGlzcGxheSArIDI1NiwgaGlnaCAqLwo+ICsjZGVmaW5lIE5TMjUwMV9S RUc4RSAweDhlIC8qIHZlcnRpY2FsIHN0YXJ0IG9mIHRoZSBkaXNwbGF5LCBsb3cgYnl0ZSAqLwo+ ICsjZGVmaW5lIE5TMjUwMV9SRUc4RiAweDhmIC8qIHZlcnRpY2FsIHN0YXJ0IG9mIHRoZSBkaXNw bGF5LCBoaWdoIGJ5dGUgKi8KPiArCj4gKy8qCj4gKyAqIFRoZSBmb2xsb3dpbmcgcmVnaXN0ZXIg cGFpciBjb250cm9sIHRoZSBmdW5jdGlvbiBvZiB0aGUKPiArICogYmFja2xpZ2h0IGFuZCB0aGUg RFZPIG91dHB1dC4gVG8gZW5hYmxlIHRoZSBjb3JyZXNwb25kaW5nCj4gKyAqIGZ1bmN0aW9uLCB0 aGUgY29ycmVzcG9uZGluZyBiaXQgbXVzdCBiZSBzZXQgaW4gYm90aCByZWdpc3RlcnMuCj4gKyAq Lwo+ICsjZGVmaW5lIE5TMjUwMV9SRUczNCAweDM0IC8qIERWTyBlbmFibGUgZnVuY3Rpb25zLCBm aXJzdCByZWdpc3RlciAqLwo+ICsjZGVmaW5lIE5TMjUwMV9SRUczNSAweDM1IC8qIERWTyBlbmFi bGUgZnVuY3Rpb25zLCBzZWNvbmQgcmVnaXN0ZXIgKi8KPiArI2RlZmluZSBOUzI1MDFfMzRfRU5B QkxFX09VVFBVVCAoMTw8MCkgLyogZW5hYmxlIERWTyBvdXRwdXQgKi8KPiArI2RlZmluZSBOUzI1 MDFfMzRfRU5BQkxFX0JBQ0tMSUdIVCAoMTw8MSkgLyogZW5hYmxlIGJhY2tsaWdodCAqLwo+ICsK PiArLyoKPiArICogUmVnaXN0ZXJzIDlDIGFuZCA5RCBkZWZpbmUgdGhlIHZlcnRpY2FsIG91dHB1 dCBvZmZzZXQKPiArICogb2YgdGhlIHZpc2libGUgcmVnaW9uLgo+ICsgKi8KPiArI2RlZmluZSBO UzI1MDFfUkVHOUMgMHg5Ywo+ICsjZGVmaW5lIE5TMjUwMV9SRUc5RCAweDlkCj4gKwo+ICsvKgo+ ICsgKiBUaGUgcmVnaXN0ZXIgOUYgZGVmaW5lcyB0aGUgZGl0aGVyaW5nLiBUaGlzIHJlcXVpcmVz IHRoZQo+ICsgKiBzY2FsZXIgdG8gYmUgT04uIEJpdCAwIGVuYWJsZXMgZGl0aGVyaW5nLCB0aGUg cmVtYWluaW5nCj4gKyAqIGJpdHMgY29udHJvbCB0aGUgZGVwdGggb2YgdGhlIGRpdGhlci4gVGhl IGhpZ2hlciB0aGUgdmFsdWUsCj4gKyAqIHRoZSBMT1dFUiB0aGUgZGl0aGVyaW5nIGFtcGxpdHVk ZS4gQSBnb29kIHZhbHVlIHNlZW1zIHRvIGJlCj4gKyAqIDE1ICh0b3RhbCByZWdpc3RlciB2YWx1 ZSkuCj4gKyAqLwo+ICsjZGVmaW5lIE5TMjUwMV9SRUdGOSAweGY5Cj4gKyNkZWZpbmUgTlMyNTAx X0Y5X0VOQUJMRV9ESVRIRVIgKDE8PDApIC8qIGVuYWJsZSBkaXRoZXJpbmcgKi8KPiArI2RlZmlu ZSBOUzI1MDFfRjlfRElUSEVSX01BU0sgKDB4N2Y8PDEpIC8qIGRpdGhlciBtYXNraW5nICovCj4g KyNkZWZpbmUgTlMyNTAxX0Y5X0RJVEhFUl9TSElGVCAxCS8qIHVwc2hpZnQgb2YgdGhlIGRpdGhl ciBtYXNrICovCj4gKwo+ICBlbnVtIHsKPiAgCU1PREVfNjQweDQ4MCwKPiAgCU1PREVfODAweDYw MCwKPiBAQCAtNzIsMjc0ICsxOTYsMTc4IEBACj4gIH07Cj4gIAo+ICAvKgo+IC0gKiBNYWdpYyB2 YWx1ZXMgYmFzZWQgb24gd2hhdCB0aGUgQklPUyBvbgo+IC0gKiBGdWppdHN1LVNpZW1lbnMgTGlm ZWJvb2sgUzYwMTAgcHJvZ3JhbXMgKDEwMjR4NzY4IHBhbmVsKS4KPiArICogVGhlIGZvbGxvd2lu ZyBzdHJ1Y3R1cmUga2VlcHMgdGhlIGNvbXBsZXRlIGNvbmZpZ3VyYXRpb24gb2YKPiArICogdGhl IERWTywgZ2l2ZW4gYSBzcGVjaWZpYyBvdXRwdXQgY29uZmlndXJhdGlvbi4KPiArICogVGhpcyBp cyBwcmV0dHkgbXVjaCBndWVzcy13b3JrIGZyb20gcmV2ZXJzZS1lbmdpbmVlcmluZywgc28KPiAr ICogcmVhZCBhbGwgdGhpcyB3aXRoIGEgZ3JhaW4gb2Ygc2FsdC4KPiAgICovCj4gLXN0YXRpYyBj b25zdCBzdHJ1Y3QgbnMyNTAxX3JlZyByZWdzXzEwMjR4NzY4W11bODZdID0gewo+ICtzdHJ1Y3Qg bnMyNTAxX2NvbmZpZ3VyYXRpb24gewo+ICsJdWludDhfdCBzeW5jOwkJLyogY29uZmlndXJhdGlv biBvZiB0aGUgQzAgcmVnaXN0ZXIgKi8KPiArCXVpbnQ4X3QgY29uZjsJCS8qIGNvbmZpZ3VyYXRp b24gcmVnaXN0ZXIgOCAqLwo+ICsJdWludDhfdCBzeW5jYjsJCS8qIGNvbmZpZ3VyYXRpb24gcmVn aXN0ZXIgNDEgKi8KPiArCXVpbnQ4X3QJZGl0aGVyOwkJLyogY29uZmlndXJhdGlvbiBvZiB0aGUg ZGl0aGVyaW5nICovCj4gKwl1aW50OF90IHBsbF9hOwkJLyogUExMIGNvbmZpZ3VyYXRpb24sIHJl Z2lzdGVyIEEsIDFCICovCj4gKwl1aW50MTZfdCBwbGxfYjsJCS8qIFBMTCBjb25maWd1cmF0aW9u LCByZWdpc3RlciBCLCAxQy8xRCAqLwo+ICsJdWludDE2X3QgaHN0YXJ0OwkvKiBob3Jpem9udGFs IHN0YXJ0LCByZWdpc3RlcnMgQzEvQzIgKi8KPiArCXVpbnQxNl90IGhzdG9wOwkJLyogaG9yaXpv bnRhbCB0b3RhbCwgcmVnaXN0ZXJzIEMzL0M0ICovCj4gKwl1aW50MTZfdCB2c3RhcnQ7CS8qIHZl cnRpY2FsIHN0YXJ0LCByZWdpc3RlcnMgQzUvQzYgKi8KPiArCXVpbnQxNl90IHZzdG9wOwkJLyog dmVydGljYWwgdG90YWwsIHJlZ2lzdGVycyBDNy9DOCAqLwo+ICsJdWludDE2X3QgdnN5bmM7ICAg ICAgICAgLyogbWFudWFsIHZlcnRpY2FsIHN5bmMgc3RhcnQsIDgwLzgxICovCj4gKwl1aW50MTZf dCB2dG90YWw7ICAgICAgICAvKiBudW1iZXIgb2YgbGluZXMgZ2VuZXJhdGVkLCA4Mi84MyAqLwo+ ICsJdWludDE2X3QgaHBvczsJCS8qIGhvcml6b250YWwgcG9zaXRpb24gKyAyNTYsIDk4Lzk5ICAq Lwo+ICsJdWludDE2X3QgdnBvczsJCS8qIHZlcnRpY2FsIHBvc2l0aW9uLCA4ZS84ZiAqLwo+ICsJ dWludDE2X3Qgdm9mZnM7CQkvKiB2ZXJ0aWNhbCBvdXRwdXQgb2Zmc2V0LCA5Yy85ZCAqLwo+ICsJ dWludDE2X3QgaHNjYWxlOwkvKiBob3Jpem9udGFsIHNjYWxpbmcgZmFjdG9yLCBiOC9iOSAqLwo+ ICsJdWludDE2X3QgdnNjYWxlOwkvKiB2ZXJ0aWNhbCBzY2FsaW5nIGZhY3RvciwgMTAvMTEgKi8K PiArfTsKPiArCj4gKy8qCj4gKyAqIERWTyBjb25maWd1cmF0aW9uIHZhbHVlcywgcGFydGlhbGx5 IGJhc2VkIG9uIHdoYXQgdGhlIEJJT1MKPiArICogb2YgdGhlIEZ1aml0c3UgTGlmZWJvb2sgUzYw MTAgd3JpdGVzIGludG8gcmVnaXN0ZXJzLAo+ICsgKiBwYXJ0aWFsbHkgZm91bmQgYnkgbWFudWFs IHR3ZWFraW5nLiBUaGVzZSBjb25maWd1cmF0aW9ucyBhc3N1bWUKPiArICogYSAxMDI0eDc2OCBw YW5lbC4KPiArICovCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbnMyNTAxX2NvbmZpZ3VyYXRpb24g bnMyNTAxX21vZGVzW10gPSB7Cj4gIAlbTU9ERV82NDB4NDgwXSA9IHsKPiAtCQlbMF0gPSB7IC5v ZmZzZXQgPSAweDBhLCAudmFsdWUgPSAweDgxLCB9LAo+IC0JCVsxXSA9IHsgLm9mZnNldCA9IDB4 MTgsIC52YWx1ZSA9IDB4MDcsIH0sCj4gLQkJWzJdID0geyAub2Zmc2V0ID0gMHgxOSwgLnZhbHVl ID0gMHgwMCwgfSwKPiAtCQlbM10gPSB7IC5vZmZzZXQgPSAweDFhLCAudmFsdWUgPSAweDAwLCB9 LAo+IC0JCVs0XSA9IHsgLm9mZnNldCA9IDB4MWIsIC52YWx1ZSA9IDB4MTEsIH0sCj4gLQkJWzVd ID0geyAub2Zmc2V0ID0gMHgxYywgLnZhbHVlID0gMHg1NCwgfSwKPiAtCQlbNl0gPSB7IC5vZmZz ZXQgPSAweDFkLCAudmFsdWUgPSAweDAzLCB9LAo+IC0JCVs3XSA9IHsgLm9mZnNldCA9IDB4MWUs IC52YWx1ZSA9IDB4MDIsIH0sCj4gLQkJWzhdID0geyAub2Zmc2V0ID0gMHhmMywgLnZhbHVlID0g MHg5MCwgfSwKPiAtCQlbOV0gPSB7IC5vZmZzZXQgPSAweGY5LCAudmFsdWUgPSAweDAwLCB9LAo+ IC0JCVsxMF0gPSB7IC5vZmZzZXQgPSAweGMxLCAudmFsdWUgPSAweDkwLCB9LAo+IC0JCVsxMV0g PSB7IC5vZmZzZXQgPSAweGMyLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsxMl0gPSB7IC5vZmZz ZXQgPSAweGMzLCAudmFsdWUgPSAweDBmLCB9LAo+IC0JCVsxM10gPSB7IC5vZmZzZXQgPSAweGM0 LCAudmFsdWUgPSAweDAzLCB9LAo+IC0JCVsxNF0gPSB7IC5vZmZzZXQgPSAweGM1LCAudmFsdWUg PSAweDE2LCB9LAo+IC0JCVsxNV0gPSB7IC5vZmZzZXQgPSAweGM2LCAudmFsdWUgPSAweDAwLCB9 LAo+IC0JCVsxNl0gPSB7IC5vZmZzZXQgPSAweGM3LCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVsx N10gPSB7IC5vZmZzZXQgPSAweGM4LCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVsxOF0gPSB7IC5v ZmZzZXQgPSAweGY0LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsxOV0gPSB7IC5vZmZzZXQgPSAw eDgwLCAudmFsdWUgPSAweGZmLCB9LAo+IC0JCVsyMF0gPSB7IC5vZmZzZXQgPSAweDgxLCAudmFs dWUgPSAweDA3LCB9LAo+IC0JCVsyMV0gPSB7IC5vZmZzZXQgPSAweDgyLCAudmFsdWUgPSAweDNk LCB9LAo+IC0JCVsyMl0gPSB7IC5vZmZzZXQgPSAweDgzLCAudmFsdWUgPSAweDA1LCB9LAo+IC0J CVsyM10gPSB7IC5vZmZzZXQgPSAweDk0LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsyNF0gPSB7 IC5vZmZzZXQgPSAweDk1LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsyNV0gPSB7IC5vZmZzZXQg PSAweDk2LCAudmFsdWUgPSAweDA1LCB9LAo+IC0JCVsyNl0gPSB7IC5vZmZzZXQgPSAweDk3LCAu dmFsdWUgPSAweDAwLCB9LAo+IC0JCVsyN10gPSB7IC5vZmZzZXQgPSAweDlhLCAudmFsdWUgPSAw eDg4LCB9LAo+IC0JCVsyOF0gPSB7IC5vZmZzZXQgPSAweDliLCAudmFsdWUgPSAweDAwLCB9LAo+ IC0JCVsyOV0gPSB7IC5vZmZzZXQgPSAweDk4LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVszMF0g PSB7IC5vZmZzZXQgPSAweDk5LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVszMV0gPSB7IC5vZmZz ZXQgPSAweGY3LCAudmFsdWUgPSAweDg4LCB9LAo+IC0JCVszMl0gPSB7IC5vZmZzZXQgPSAweGY4 LCAudmFsdWUgPSAweDBhLCB9LAo+IC0JCVszM10gPSB7IC5vZmZzZXQgPSAweDljLCAudmFsdWUg PSAweDI0LCB9LAo+IC0JCVszNF0gPSB7IC5vZmZzZXQgPSAweDlkLCAudmFsdWUgPSAweDAwLCB9 LAo+IC0JCVszNV0gPSB7IC5vZmZzZXQgPSAweDllLCAudmFsdWUgPSAweDI1LCB9LAo+IC0JCVsz Nl0gPSB7IC5vZmZzZXQgPSAweDlmLCAudmFsdWUgPSAweDAzLCB9LAo+IC0JCVszN10gPSB7IC5v ZmZzZXQgPSAweGEwLCAudmFsdWUgPSAweDI4LCB9LAo+IC0JCVszOF0gPSB7IC5vZmZzZXQgPSAw eGExLCAudmFsdWUgPSAweDAxLCB9LAo+IC0JCVszOV0gPSB7IC5vZmZzZXQgPSAweGEyLCAudmFs dWUgPSAweDI4LCB9LAo+IC0JCVs0MF0gPSB7IC5vZmZzZXQgPSAweGEzLCAudmFsdWUgPSAweDA1 LCB9LAo+IC0JCVs0MV0gPSB7IC5vZmZzZXQgPSAweGI2LCAudmFsdWUgPSAweDA5LCB9LAo+IC0J CVs0Ml0gPSB7IC5vZmZzZXQgPSAweGI4LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs0M10gPSB7 IC5vZmZzZXQgPSAweGI5LCAudmFsdWUgPSAweGEwLCB9LAo+IC0JCVs0NF0gPSB7IC5vZmZzZXQg PSAweGJhLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs0NV0gPSB7IC5vZmZzZXQgPSAweGJiLCAu dmFsdWUgPSAweDIwLCB9LAo+IC0JCVs0Nl0gPSB7IC5vZmZzZXQgPSAweDEwLCAudmFsdWUgPSAw eDAwLCB9LAo+IC0JCVs0N10gPSB7IC5vZmZzZXQgPSAweDExLCAudmFsdWUgPSAweGEwLCB9LAo+ IC0JCVs0OF0gPSB7IC5vZmZzZXQgPSAweDEyLCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVs0OV0g PSB7IC5vZmZzZXQgPSAweDIwLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs1MF0gPSB7IC5vZmZz ZXQgPSAweDIyLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs1MV0gPSB7IC5vZmZzZXQgPSAweDIz LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs1Ml0gPSB7IC5vZmZzZXQgPSAweDI0LCAudmFsdWUg PSAweDAwLCB9LAo+IC0JCVs1M10gPSB7IC5vZmZzZXQgPSAweDI1LCAudmFsdWUgPSAweDAwLCB9 LAo+IC0JCVs1NF0gPSB7IC5vZmZzZXQgPSAweDhjLCAudmFsdWUgPSAweDEwLCB9LAo+IC0JCVs1 NV0gPSB7IC5vZmZzZXQgPSAweDhkLCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVs1Nl0gPSB7IC5v ZmZzZXQgPSAweDhlLCAudmFsdWUgPSAweDEwLCB9LAo+IC0JCVs1N10gPSB7IC5vZmZzZXQgPSAw eDhmLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs1OF0gPSB7IC5vZmZzZXQgPSAweDkwLCAudmFs dWUgPSAweGZmLCB9LAo+IC0JCVs1OV0gPSB7IC5vZmZzZXQgPSAweDkxLCAudmFsdWUgPSAweDA3 LCB9LAo+IC0JCVs2MF0gPSB7IC5vZmZzZXQgPSAweDkyLCAudmFsdWUgPSAweGEwLCB9LAo+IC0J CVs2MV0gPSB7IC5vZmZzZXQgPSAweDkzLCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVs2Ml0gPSB7 IC5vZmZzZXQgPSAweGE1LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs2M10gPSB7IC5vZmZzZXQg PSAweGE2LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs2NF0gPSB7IC5vZmZzZXQgPSAweGE3LCAu dmFsdWUgPSAweDAwLCB9LAo+IC0JCVs2NV0gPSB7IC5vZmZzZXQgPSAweGE4LCAudmFsdWUgPSAw eDAwLCB9LAo+IC0JCVs2Nl0gPSB7IC5vZmZzZXQgPSAweGE5LCAudmFsdWUgPSAweDA0LCB9LAo+ IC0JCVs2N10gPSB7IC5vZmZzZXQgPSAweGFhLCAudmFsdWUgPSAweDcwLCB9LAo+IC0JCVs2OF0g PSB7IC5vZmZzZXQgPSAweGFiLCAudmFsdWUgPSAweDRmLCB9LAo+IC0JCVs2OV0gPSB7IC5vZmZz ZXQgPSAweGFjLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3MF0gPSB7IC5vZmZzZXQgPSAweGE0 LCAudmFsdWUgPSAweDg0LCB9LAo+IC0JCVs3MV0gPSB7IC5vZmZzZXQgPSAweDdlLCAudmFsdWUg PSAweDE4LCB9LAo+IC0JCVs3Ml0gPSB7IC5vZmZzZXQgPSAweDg0LCAudmFsdWUgPSAweDAwLCB9 LAo+IC0JCVs3M10gPSB7IC5vZmZzZXQgPSAweDg1LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3 NF0gPSB7IC5vZmZzZXQgPSAweDg2LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3NV0gPSB7IC5v ZmZzZXQgPSAweDg3LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3Nl0gPSB7IC5vZmZzZXQgPSAw eDg4LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs3N10gPSB7IC5vZmZzZXQgPSAweDg5LCAudmFs dWUgPSAweDAwLCB9LAo+IC0JCVs3OF0gPSB7IC5vZmZzZXQgPSAweDhhLCAudmFsdWUgPSAweDAw LCB9LAo+IC0JCVs3OV0gPSB7IC5vZmZzZXQgPSAweDhiLCAudmFsdWUgPSAweDAwLCB9LAo+IC0J CVs4MF0gPSB7IC5vZmZzZXQgPSAweDI2LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs4MV0gPSB7 IC5vZmZzZXQgPSAweDI3LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs4Ml0gPSB7IC5vZmZzZXQg PSAweGFkLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs4M10gPSB7IC5vZmZzZXQgPSAweDA4LCAu dmFsdWUgPSAweDMwLCB9LCAvKiAweDMxICovCj4gLQkJWzg0XSA9IHsgLm9mZnNldCA9IDB4NDEs IC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzg1XSA9IHsgLm9mZnNldCA9IDB4YzAsIC52YWx1ZSA9 IDB4MDUsIH0sCj4gKwkJLnN5bmMJPSBOUzI1MDFfQzBfRU5BQkxFIHwgTlMyNTAxX0MwX1ZTWU5D LAo+ICsJCS5jb25mCT0gTlMyNTAxXzhfVkVOIHwgTlMyNTAxXzhfSEVOIHwgTlMyNTAxXzhfUEQs Cj4gKwkJLnN5bmNiCT0gMHgzMiwKPiArCQkuZGl0aGVyCT0gMTUsCj4gKwkJLnBsbF9hCT0gMHgx MSwKPiArCQkucGxsX2IJPSAweDM1NCwKPiArCQkuaHN0YXJ0CT0gMHg5MCwKPiArCQkuaHN0b3AJ PSAweDMwZiwKPiArCQkudnN0YXJ0CT0gMHgxNiwKPiArCQkudnN0b3AJPSAweDIwMiwKPiArCQku dnN5bmMJPSAweDdmZiwgLyogYWN0dWFsbHksIGlnbm9yZWQgd2l0aCB0aGlzIGNvbmZpZyAqLwo+ ICsJCS52dG90YWwJPSAweDUzZCwKPiArCQkuaHBvcwk9IDB4MCwKPiArCQkudnBvcwk9IDB4MTAs Cj4gKwkJLnZvZmZzCT0gMHgyNCwKPiArCQkuaHNjYWxlCT0gMHhhMDAwLAo+ICsJCS52c2NhbGUJ PSAweGEwMDAKCkkgdGhpbmsgYWxsIHRoZSB0aW1pbmcgdmFsdWVzIGFib3ZlIHdvdWxkIGJlIG11 Y2ggY2xlYXJlciBpbiBkZWNpbWFsCmluc3RlYWQgb2YgaGV4LiBBdCBsZWFzdCBldmVyeXdoZXJl IGVsc2Ugd2UgZG8gcHJpbnQgb3V0IGxpa2UgdGhhdApldmVyeXdoZXJlIGVsc2UuCgo+ICAJfSwK PiAgCVtNT0RFXzgwMHg2MDBdID0gewo+IC0JCVswXSA9IHsgLm9mZnNldCA9IDB4MGEsIC52YWx1 ZSA9IDB4ODEsIH0sCj4gLQkJWzFdID0geyAub2Zmc2V0ID0gMHgxOCwgLnZhbHVlID0gMHgwNywg fSwKPiAtCQlbMl0gPSB7IC5vZmZzZXQgPSAweDE5LCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVsz XSA9IHsgLm9mZnNldCA9IDB4MWEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzRdID0geyAub2Zm c2V0ID0gMHgxYiwgLnZhbHVlID0gMHgxOSwgfSwKPiAtCQlbNV0gPSB7IC5vZmZzZXQgPSAweDFj LCAudmFsdWUgPSAweDY0LCB9LAo+IC0JCVs2XSA9IHsgLm9mZnNldCA9IDB4MWQsIC52YWx1ZSA9 IDB4MDIsIH0sCj4gLQkJWzddID0geyAub2Zmc2V0ID0gMHgxZSwgLnZhbHVlID0gMHgwMiwgfSwK PiAtCQlbOF0gPSB7IC5vZmZzZXQgPSAweGYzLCAudmFsdWUgPSAweDkwLCB9LAo+IC0JCVs5XSA9 IHsgLm9mZnNldCA9IDB4ZjksIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzEwXSA9IHsgLm9mZnNl dCA9IDB4YzEsIC52YWx1ZSA9IDB4ZDcsIH0sCj4gLQkJWzExXSA9IHsgLm9mZnNldCA9IDB4YzIs IC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzEyXSA9IHsgLm9mZnNldCA9IDB4YzMsIC52YWx1ZSA9 IDB4ZjgsIH0sCj4gLQkJWzEzXSA9IHsgLm9mZnNldCA9IDB4YzQsIC52YWx1ZSA9IDB4MDMsIH0s Cj4gLQkJWzE0XSA9IHsgLm9mZnNldCA9IDB4YzUsIC52YWx1ZSA9IDB4MWEsIH0sCj4gLQkJWzE1 XSA9IHsgLm9mZnNldCA9IDB4YzYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzE2XSA9IHsgLm9m ZnNldCA9IDB4YzcsIC52YWx1ZSA9IDB4NzMsIH0sCj4gLQkJWzE3XSA9IHsgLm9mZnNldCA9IDB4 YzgsIC52YWx1ZSA9IDB4MDIsIH0sCj4gLQkJWzE4XSA9IHsgLm9mZnNldCA9IDB4ZjQsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gLQkJWzE5XSA9IHsgLm9mZnNldCA9IDB4ODAsIC52YWx1ZSA9IDB4Mjcs IH0sCj4gLQkJWzIwXSA9IHsgLm9mZnNldCA9IDB4ODEsIC52YWx1ZSA9IDB4MDMsIH0sCj4gLQkJ WzIxXSA9IHsgLm9mZnNldCA9IDB4ODIsIC52YWx1ZSA9IDB4NDEsIH0sCj4gLQkJWzIyXSA9IHsg Lm9mZnNldCA9IDB4ODMsIC52YWx1ZSA9IDB4MDUsIH0sCj4gLQkJWzIzXSA9IHsgLm9mZnNldCA9 IDB4OTQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzI0XSA9IHsgLm9mZnNldCA9IDB4OTUsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzI1XSA9IHsgLm9mZnNldCA9IDB4OTYsIC52YWx1ZSA9IDB4 MDUsIH0sCj4gLQkJWzI2XSA9IHsgLm9mZnNldCA9IDB4OTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4g LQkJWzI3XSA9IHsgLm9mZnNldCA9IDB4OWEsIC52YWx1ZSA9IDB4ODgsIH0sCj4gLQkJWzI4XSA9 IHsgLm9mZnNldCA9IDB4OWIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzI5XSA9IHsgLm9mZnNl dCA9IDB4OTgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzMwXSA9IHsgLm9mZnNldCA9IDB4OTks IC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzMxXSA9IHsgLm9mZnNldCA9IDB4ZjcsIC52YWx1ZSA9 IDB4ODgsIH0sCj4gLQkJWzMyXSA9IHsgLm9mZnNldCA9IDB4ZjgsIC52YWx1ZSA9IDB4MDYsIH0s Cj4gLQkJWzMzXSA9IHsgLm9mZnNldCA9IDB4OWMsIC52YWx1ZSA9IDB4MjMsIH0sCj4gLQkJWzM0 XSA9IHsgLm9mZnNldCA9IDB4OWQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzM1XSA9IHsgLm9m ZnNldCA9IDB4OWUsIC52YWx1ZSA9IDB4MjUsIH0sCj4gLQkJWzM2XSA9IHsgLm9mZnNldCA9IDB4 OWYsIC52YWx1ZSA9IDB4MDMsIH0sCj4gLQkJWzM3XSA9IHsgLm9mZnNldCA9IDB4YTAsIC52YWx1 ZSA9IDB4MjgsIH0sCj4gLQkJWzM4XSA9IHsgLm9mZnNldCA9IDB4YTEsIC52YWx1ZSA9IDB4MDEs IH0sCj4gLQkJWzM5XSA9IHsgLm9mZnNldCA9IDB4YTIsIC52YWx1ZSA9IDB4MjgsIH0sCj4gLQkJ WzQwXSA9IHsgLm9mZnNldCA9IDB4YTMsIC52YWx1ZSA9IDB4MDUsIH0sCj4gLQkJWzQxXSA9IHsg Lm9mZnNldCA9IDB4YjYsIC52YWx1ZSA9IDB4MDksIH0sCj4gLQkJWzQyXSA9IHsgLm9mZnNldCA9 IDB4YjgsIC52YWx1ZSA9IDB4MzAsIH0sCj4gLQkJWzQzXSA9IHsgLm9mZnNldCA9IDB4YjksIC52 YWx1ZSA9IDB4YzgsIH0sCj4gLQkJWzQ0XSA9IHsgLm9mZnNldCA9IDB4YmEsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gLQkJWzQ1XSA9IHsgLm9mZnNldCA9IDB4YmIsIC52YWx1ZSA9IDB4MjAsIH0sCj4g LQkJWzQ2XSA9IHsgLm9mZnNldCA9IDB4MTAsIC52YWx1ZSA9IDB4MjAsIH0sCj4gLQkJWzQ3XSA9 IHsgLm9mZnNldCA9IDB4MTEsIC52YWx1ZSA9IDB4YzgsIH0sCj4gLQkJWzQ4XSA9IHsgLm9mZnNl dCA9IDB4MTIsIC52YWx1ZSA9IDB4MDIsIH0sCj4gLQkJWzQ5XSA9IHsgLm9mZnNldCA9IDB4MjAs IC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzUwXSA9IHsgLm9mZnNldCA9IDB4MjIsIC52YWx1ZSA9 IDB4MDAsIH0sCj4gLQkJWzUxXSA9IHsgLm9mZnNldCA9IDB4MjMsIC52YWx1ZSA9IDB4MDAsIH0s Cj4gLQkJWzUyXSA9IHsgLm9mZnNldCA9IDB4MjQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzUz XSA9IHsgLm9mZnNldCA9IDB4MjUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzU0XSA9IHsgLm9m ZnNldCA9IDB4OGMsIC52YWx1ZSA9IDB4MTAsIH0sCj4gLQkJWzU1XSA9IHsgLm9mZnNldCA9IDB4 OGQsIC52YWx1ZSA9IDB4MDIsIH0sCj4gLQkJWzU2XSA9IHsgLm9mZnNldCA9IDB4OGUsIC52YWx1 ZSA9IDB4MDQsIH0sCj4gLQkJWzU3XSA9IHsgLm9mZnNldCA9IDB4OGYsIC52YWx1ZSA9IDB4MDAs IH0sCj4gLQkJWzU4XSA9IHsgLm9mZnNldCA9IDB4OTAsIC52YWx1ZSA9IDB4ZmYsIH0sCj4gLQkJ WzU5XSA9IHsgLm9mZnNldCA9IDB4OTEsIC52YWx1ZSA9IDB4MDcsIH0sCj4gLQkJWzYwXSA9IHsg Lm9mZnNldCA9IDB4OTIsIC52YWx1ZSA9IDB4YTAsIH0sCj4gLQkJWzYxXSA9IHsgLm9mZnNldCA9 IDB4OTMsIC52YWx1ZSA9IDB4MDIsIH0sCj4gLQkJWzYyXSA9IHsgLm9mZnNldCA9IDB4YTUsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzYzXSA9IHsgLm9mZnNldCA9IDB4YTYsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gLQkJWzY0XSA9IHsgLm9mZnNldCA9IDB4YTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4g LQkJWzY1XSA9IHsgLm9mZnNldCA9IDB4YTgsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzY2XSA9 IHsgLm9mZnNldCA9IDB4YTksIC52YWx1ZSA9IDB4ODMsIH0sCj4gLQkJWzY3XSA9IHsgLm9mZnNl dCA9IDB4YWEsIC52YWx1ZSA9IDB4NDAsIH0sCj4gLQkJWzY4XSA9IHsgLm9mZnNldCA9IDB4YWIs IC52YWx1ZSA9IDB4MzIsIH0sCj4gLQkJWzY5XSA9IHsgLm9mZnNldCA9IDB4YWMsIC52YWx1ZSA9 IDB4MDAsIH0sCj4gLQkJWzcwXSA9IHsgLm9mZnNldCA9IDB4YTQsIC52YWx1ZSA9IDB4ODAsIH0s Cj4gLQkJWzcxXSA9IHsgLm9mZnNldCA9IDB4N2UsIC52YWx1ZSA9IDB4MTgsIH0sCj4gLQkJWzcy XSA9IHsgLm9mZnNldCA9IDB4ODQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzczXSA9IHsgLm9m ZnNldCA9IDB4ODUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzc0XSA9IHsgLm9mZnNldCA9IDB4 ODYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzc1XSA9IHsgLm9mZnNldCA9IDB4ODcsIC52YWx1 ZSA9IDB4MDAsIH0sCj4gLQkJWzc2XSA9IHsgLm9mZnNldCA9IDB4ODgsIC52YWx1ZSA9IDB4MDAs IH0sCj4gLQkJWzc3XSA9IHsgLm9mZnNldCA9IDB4ODksIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJ Wzc4XSA9IHsgLm9mZnNldCA9IDB4OGEsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzc5XSA9IHsg Lm9mZnNldCA9IDB4OGIsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzgwXSA9IHsgLm9mZnNldCA9 IDB4MjYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzgxXSA9IHsgLm9mZnNldCA9IDB4MjcsIC52 YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzgyXSA9IHsgLm9mZnNldCA9IDB4YWQsIC52YWx1ZSA9IDB4 MDAsIH0sCj4gLQkJWzgzXSA9IHsgLm9mZnNldCA9IDB4MDgsIC52YWx1ZSA9IDB4MzAsIH0sIC8q IDB4MzEgKi8KPiAtCQlbODRdID0geyAub2Zmc2V0ID0gMHg0MSwgLnZhbHVlID0gMHgwMCwgfSwK PiAtCQlbODVdID0geyAub2Zmc2V0ID0gMHhjMCwgLnZhbHVlID0gMHgwNywgfSwKPiArCQkuc3lu Ywk9IE5TMjUwMV9DMF9FTkFCTEUgfAo+ICsJCQkgIE5TMjUwMV9DMF9IU1lOQyB8IE5TMjUwMV9D MF9WU1lOQywKPiArCQkuY29uZiAgID0gTlMyNTAxXzhfVkVOIHwgTlMyNTAxXzhfSEVOIHwgTlMy NTAxXzhfUEQsCj4gKwkJLnN5bmNiCT0gMHgwMCwKPiArCQkuZGl0aGVyCT0gMTUsCj4gKwkJLnBs bF9hCT0gMHgxOSwKPiArCQkucGxsX2IJPSAweDI2NCwKPiArCQkuaHN0YXJ0CT0gMHhkNywKPiAr CQkuaHN0b3AJPSAweDNmOCwKPiArCQkudnN0YXJ0CT0gMHgxYSwKPiArCQkudnN0b3AJPSAweDI3 MywKPiArCQkudnN5bmMJPSAweDMyNywKPiArCQkudnRvdGFsCT0gMHg1M2QsCj4gKwkJLmhwb3MJ PSAweDAsCj4gKwkJLnZwb3MJPSAweDQsCj4gKwkJLnZvZmZzCT0gMHgyMywKPiArCQkuaHNjYWxl CT0gMHhjODMwLAo+ICsJCS52c2NhbGUJPSAweGM4MjAKPiAgCX0sCj4gIAlbTU9ERV8xMDI0eDc2 OF0gPSB7Cj4gLQkJWzBdID0geyAub2Zmc2V0ID0gMHgwYSwgLnZhbHVlID0gMHg4MSwgfSwKPiAt CQlbMV0gPSB7IC5vZmZzZXQgPSAweDE4LCAudmFsdWUgPSAweDA3LCB9LAo+IC0JCVsyXSA9IHsg Lm9mZnNldCA9IDB4MTksIC52YWx1ZSA9IDB4MDAsIH0sCj4gLQkJWzNdID0geyAub2Zmc2V0ID0g MHgxYSwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNF0gPSB7IC5vZmZzZXQgPSAweDFiLCAudmFs dWUgPSAweDExLCB9LAo+IC0JCVs1XSA9IHsgLm9mZnNldCA9IDB4MWMsIC52YWx1ZSA9IDB4NTQs IH0sCj4gLQkJWzZdID0geyAub2Zmc2V0ID0gMHgxZCwgLnZhbHVlID0gMHgwMywgfSwKPiAtCQlb N10gPSB7IC5vZmZzZXQgPSAweDFlLCAudmFsdWUgPSAweDAyLCB9LAo+IC0JCVs4XSA9IHsgLm9m ZnNldCA9IDB4ZjMsIC52YWx1ZSA9IDB4OTAsIH0sCj4gLQkJWzldID0geyAub2Zmc2V0ID0gMHhm OSwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbMTBdID0geyAub2Zmc2V0ID0gMHhjMSwgLnZhbHVl ID0gMHg5MCwgfSwKPiAtCQlbMTFdID0geyAub2Zmc2V0ID0gMHhjMiwgLnZhbHVlID0gMHgwMCwg fSwKPiAtCQlbMTJdID0geyAub2Zmc2V0ID0gMHhjMywgLnZhbHVlID0gMHgwZiwgfSwKPiAtCQlb MTNdID0geyAub2Zmc2V0ID0gMHhjNCwgLnZhbHVlID0gMHgwMywgfSwKPiAtCQlbMTRdID0geyAu b2Zmc2V0ID0gMHhjNSwgLnZhbHVlID0gMHgxNiwgfSwKPiAtCQlbMTVdID0geyAub2Zmc2V0ID0g MHhjNiwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbMTZdID0geyAub2Zmc2V0ID0gMHhjNywgLnZh bHVlID0gMHgwMiwgfSwKPiAtCQlbMTddID0geyAub2Zmc2V0ID0gMHhjOCwgLnZhbHVlID0gMHgw MiwgfSwKPiAtCQlbMThdID0geyAub2Zmc2V0ID0gMHhmNCwgLnZhbHVlID0gMHgwMCwgfSwKPiAt CQlbMTldID0geyAub2Zmc2V0ID0gMHg4MCwgLnZhbHVlID0gMHhmZiwgfSwKPiAtCQlbMjBdID0g eyAub2Zmc2V0ID0gMHg4MSwgLnZhbHVlID0gMHgwNywgfSwKPiAtCQlbMjFdID0geyAub2Zmc2V0 ID0gMHg4MiwgLnZhbHVlID0gMHgzZCwgfSwKPiAtCQlbMjJdID0geyAub2Zmc2V0ID0gMHg4Mywg LnZhbHVlID0gMHgwNSwgfSwKPiAtCQlbMjNdID0geyAub2Zmc2V0ID0gMHg5NCwgLnZhbHVlID0g MHgwMCwgfSwKPiAtCQlbMjRdID0geyAub2Zmc2V0ID0gMHg5NSwgLnZhbHVlID0gMHgwMCwgfSwK PiAtCQlbMjVdID0geyAub2Zmc2V0ID0gMHg5NiwgLnZhbHVlID0gMHgwNSwgfSwKPiAtCQlbMjZd ID0geyAub2Zmc2V0ID0gMHg5NywgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbMjddID0geyAub2Zm c2V0ID0gMHg5YSwgLnZhbHVlID0gMHg4OCwgfSwKPiAtCQlbMjhdID0geyAub2Zmc2V0ID0gMHg5 YiwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbMjldID0geyAub2Zmc2V0ID0gMHg5OCwgLnZhbHVl ID0gMHgwMCwgfSwKPiAtCQlbMzBdID0geyAub2Zmc2V0ID0gMHg5OSwgLnZhbHVlID0gMHgwMCwg fSwKPiAtCQlbMzFdID0geyAub2Zmc2V0ID0gMHhmNywgLnZhbHVlID0gMHg4OCwgfSwKPiAtCQlb MzJdID0geyAub2Zmc2V0ID0gMHhmOCwgLnZhbHVlID0gMHgwYSwgfSwKPiAtCQlbMzNdID0geyAu b2Zmc2V0ID0gMHg5YywgLnZhbHVlID0gMHgyNCwgfSwKPiAtCQlbMzRdID0geyAub2Zmc2V0ID0g MHg5ZCwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbMzVdID0geyAub2Zmc2V0ID0gMHg5ZSwgLnZh bHVlID0gMHgyNSwgfSwKPiAtCQlbMzZdID0geyAub2Zmc2V0ID0gMHg5ZiwgLnZhbHVlID0gMHgw MywgfSwKPiAtCQlbMzddID0geyAub2Zmc2V0ID0gMHhhMCwgLnZhbHVlID0gMHgyOCwgfSwKPiAt CQlbMzhdID0geyAub2Zmc2V0ID0gMHhhMSwgLnZhbHVlID0gMHgwMSwgfSwKPiAtCQlbMzldID0g eyAub2Zmc2V0ID0gMHhhMiwgLnZhbHVlID0gMHgyOCwgfSwKPiAtCQlbNDBdID0geyAub2Zmc2V0 ID0gMHhhMywgLnZhbHVlID0gMHgwNSwgfSwKPiAtCQlbNDFdID0geyAub2Zmc2V0ID0gMHhiNiwg LnZhbHVlID0gMHgwOSwgfSwKPiAtCQlbNDJdID0geyAub2Zmc2V0ID0gMHhiOCwgLnZhbHVlID0g MHgwMCwgfSwKPiAtCQlbNDNdID0geyAub2Zmc2V0ID0gMHhiOSwgLnZhbHVlID0gMHhhMCwgfSwK PiAtCQlbNDRdID0geyAub2Zmc2V0ID0gMHhiYSwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNDVd ID0geyAub2Zmc2V0ID0gMHhiYiwgLnZhbHVlID0gMHgyMCwgfSwKPiAtCQlbNDZdID0geyAub2Zm c2V0ID0gMHgxMCwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNDddID0geyAub2Zmc2V0ID0gMHgx MSwgLnZhbHVlID0gMHhhMCwgfSwKPiAtCQlbNDhdID0geyAub2Zmc2V0ID0gMHgxMiwgLnZhbHVl ID0gMHgwMiwgfSwKPiAtCQlbNDldID0geyAub2Zmc2V0ID0gMHgyMCwgLnZhbHVlID0gMHgwMCwg fSwKPiAtCQlbNTBdID0geyAub2Zmc2V0ID0gMHgyMiwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlb NTFdID0geyAub2Zmc2V0ID0gMHgyMywgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNTJdID0geyAu b2Zmc2V0ID0gMHgyNCwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNTNdID0geyAub2Zmc2V0ID0g MHgyNSwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNTRdID0geyAub2Zmc2V0ID0gMHg4YywgLnZh bHVlID0gMHgxMCwgfSwKPiAtCQlbNTVdID0geyAub2Zmc2V0ID0gMHg4ZCwgLnZhbHVlID0gMHgw MiwgfSwKPiAtCQlbNTZdID0geyAub2Zmc2V0ID0gMHg4ZSwgLnZhbHVlID0gMHgxMCwgfSwKPiAt CQlbNTddID0geyAub2Zmc2V0ID0gMHg4ZiwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNThdID0g eyAub2Zmc2V0ID0gMHg5MCwgLnZhbHVlID0gMHhmZiwgfSwKPiAtCQlbNTldID0geyAub2Zmc2V0 ID0gMHg5MSwgLnZhbHVlID0gMHgwNywgfSwKPiAtCQlbNjBdID0geyAub2Zmc2V0ID0gMHg5Miwg LnZhbHVlID0gMHhhMCwgfSwKPiAtCQlbNjFdID0geyAub2Zmc2V0ID0gMHg5MywgLnZhbHVlID0g MHgwMiwgfSwKPiAtCQlbNjJdID0geyAub2Zmc2V0ID0gMHhhNSwgLnZhbHVlID0gMHgwMCwgfSwK PiAtCQlbNjNdID0geyAub2Zmc2V0ID0gMHhhNiwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNjRd ID0geyAub2Zmc2V0ID0gMHhhNywgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNjVdID0geyAub2Zm c2V0ID0gMHhhOCwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNjZdID0geyAub2Zmc2V0ID0gMHhh OSwgLnZhbHVlID0gMHgwNCwgfSwKPiAtCQlbNjddID0geyAub2Zmc2V0ID0gMHhhYSwgLnZhbHVl ID0gMHg3MCwgfSwKPiAtCQlbNjhdID0geyAub2Zmc2V0ID0gMHhhYiwgLnZhbHVlID0gMHg0Ziwg fSwKPiAtCQlbNjldID0geyAub2Zmc2V0ID0gMHhhYywgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlb NzBdID0geyAub2Zmc2V0ID0gMHhhNCwgLnZhbHVlID0gMHg4NCwgfSwKPiAtCQlbNzFdID0geyAu b2Zmc2V0ID0gMHg3ZSwgLnZhbHVlID0gMHgxOCwgfSwKPiAtCQlbNzJdID0geyAub2Zmc2V0ID0g MHg4NCwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNzNdID0geyAub2Zmc2V0ID0gMHg4NSwgLnZh bHVlID0gMHgwMCwgfSwKPiAtCQlbNzRdID0geyAub2Zmc2V0ID0gMHg4NiwgLnZhbHVlID0gMHgw MCwgfSwKPiAtCQlbNzVdID0geyAub2Zmc2V0ID0gMHg4NywgLnZhbHVlID0gMHgwMCwgfSwKPiAt CQlbNzZdID0geyAub2Zmc2V0ID0gMHg4OCwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNzddID0g eyAub2Zmc2V0ID0gMHg4OSwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNzhdID0geyAub2Zmc2V0 ID0gMHg4YSwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbNzldID0geyAub2Zmc2V0ID0gMHg4Yiwg LnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbODBdID0geyAub2Zmc2V0ID0gMHgyNiwgLnZhbHVlID0g MHgwMCwgfSwKPiAtCQlbODFdID0geyAub2Zmc2V0ID0gMHgyNywgLnZhbHVlID0gMHgwMCwgfSwK PiAtCQlbODJdID0geyAub2Zmc2V0ID0gMHhhZCwgLnZhbHVlID0gMHgwMCwgfSwKPiAtCQlbODNd ID0geyAub2Zmc2V0ID0gMHgwOCwgLnZhbHVlID0gMHgzNCwgfSwgLyogMHgzNSAqLwo+IC0JCVs4 NF0gPSB7IC5vZmZzZXQgPSAweDQxLCAudmFsdWUgPSAweDAwLCB9LAo+IC0JCVs4NV0gPSB7IC5v ZmZzZXQgPSAweGMwLCAudmFsdWUgPSAweDAxLCB9LAo+IC0JfSwKPiArCQkuc3luYwk9IE5TMjUw MV9DMF9FTkFCTEUgfCBOUzI1MDFfQzBfVlNZTkMsCj4gKwkJLmNvbmYgICA9IE5TMjUwMV84X1ZF TiB8IE5TMjUwMV84X0hFTiB8IE5TMjUwMV84X1BELAo+ICsJCS5zeW5jYgk9IDB4MzIsCj4gKwkJ LmRpdGhlcgk9IDE1LAo+ICsJCS5wbGxfYQk9IDB4MGIsCj4gKwkJLnBsbF9iCT0gMHg1NDYsCj4g KwkJLmhzdGFydAk9IDB4MTE0LAo+ICsJCS5oc3RvcAk9IDB4NTEzLAo+ICsJCS52c3RhcnQJPSAw eDBmLAo+ICsJCS52c3RvcAk9IDB4NDIwLAo+ICsJCS52c3luYwk9IDB4N2ZmLAo+ICsJCS52dG90 YWwJPSAweDUzZCwKPiArCQkuaHBvcwk9IDB4MCwKPiArCQkudnBvcwk9IDB4MDcsCj4gKwkJLnZv ZmZzCT0gMHgxYiwKPiArCQkuaHNjYWxlCT0gMHhmZmZmLAo+ICsJCS52c2NhbGUJPSAweGZmZmYK PiArCX0KPiArfTsKPiArCj4gKy8qCj4gKyAqIE90aGVyIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGxl ZnQgYnkgdGhlIEJJT1Mgb2YgdGhlCj4gKyAqIEZ1aml0c3UgUzYwMTAgaW4gdGhlIERWTyBjb250 cm9sIHJlZ2lzdGVycy4gVGhlaXIKPiArICogdmFsdWUgZG9lcyBub3QgZGVwZW5kIG9uIHRoZSBC SU9TIGFuZCB0aGVpciBtZWFuaW5nCj4gKyAqIGlzIHVua25vd24uCj4gKyAqLwo+ICsKPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBuczI1MDFfcmVnIG1vZGVfYWdub3N0aWNfdmFsdWVzW10gPSB7Cj4g KwkvKiAwOCBpcyBtb2RlIHNwZWNpZmljICovCj4gKwlbMF0gPSB7IC5vZmZzZXQgPSAweDBhLCAu dmFsdWUgPSAweDgxLCB9LAo+ICsJLyogMTAsMTEgYXJlIHBhcnQgb2YgdGhlIG1vZGUgc3BlY2lm aWMgY29uZmlndXJhdGlvbiAqLwo+ICsJWzFdID0geyAub2Zmc2V0ID0gMHgxMiwgLnZhbHVlID0g MHgwMiwgfSwKPiArCVsyXSA9IHsgLm9mZnNldCA9IDB4MTgsIC52YWx1ZSA9IDB4MDcsIH0sCj4g KwlbM10gPSB7IC5vZmZzZXQgPSAweDE5LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzRdID0geyAu b2Zmc2V0ID0gMHgxYSwgLnZhbHVlID0gMHgwMCwgfSwgLyogUExMPywgaWdub3JlZCAqLwo+ICsJ LyogMWIsMWMsMWQgYXJlIHBhcnQgb2YgdGhlIG1vZGUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiAq Lwo+ICsJWzVdID0geyAub2Zmc2V0ID0gMHgxZSwgLnZhbHVlID0gMHgwMiwgfSwKPiArCVs2XSA9 IHsgLm9mZnNldCA9IDB4MWYsIC52YWx1ZSA9IDB4NDAsIH0sCj4gKwlbN10gPSB7IC5vZmZzZXQg PSAweDIwLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzhdID0geyAub2Zmc2V0ID0gMHgyMSwgLnZh bHVlID0gMHgwMCwgfSwKPiArCVs5XSA9IHsgLm9mZnNldCA9IDB4MjIsIC52YWx1ZSA9IDB4MDAs IH0sCj4gKwlbMTBdID0geyAub2Zmc2V0ID0gMHgyMywgLnZhbHVlID0gMHgwMCwgfSwKPiArCVsx MV0gPSB7IC5vZmZzZXQgPSAweDI0LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzEyXSA9IHsgLm9m ZnNldCA9IDB4MjUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwlbMTNdID0geyAub2Zmc2V0ID0gMHgy NiwgLnZhbHVlID0gMHgwMCwgfSwKPiArCVsxNF0gPSB7IC5vZmZzZXQgPSAweDI3LCAudmFsdWUg PSAweDAwLCB9LAo+ICsJWzE1XSA9IHsgLm9mZnNldCA9IDB4N2UsIC52YWx1ZSA9IDB4MTgsIH0s Cj4gKwkvKiA4MC04NCBhcmUgcGFydCBvZiB0aGUgbW9kZS1zcGVjaWZpYyBjb25maWd1cmF0aW9u ICovCj4gKwlbMTZdID0geyAub2Zmc2V0ID0gMHg4NCwgLnZhbHVlID0gMHgwMCwgfSwKPiArCVsx N10gPSB7IC5vZmZzZXQgPSAweDg1LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzE4XSA9IHsgLm9m ZnNldCA9IDB4ODYsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwlbMTldID0geyAub2Zmc2V0ID0gMHg4 NywgLnZhbHVlID0gMHgwMCwgfSwKPiArCVsyMF0gPSB7IC5vZmZzZXQgPSAweDg4LCAudmFsdWUg PSAweDAwLCB9LAo+ICsJWzIxXSA9IHsgLm9mZnNldCA9IDB4ODksIC52YWx1ZSA9IDB4MDAsIH0s Cj4gKwlbMjJdID0geyAub2Zmc2V0ID0gMHg4YSwgLnZhbHVlID0gMHgwMCwgfSwKPiArCVsyM10g PSB7IC5vZmZzZXQgPSAweDhiLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzI0XSA9IHsgLm9mZnNl dCA9IDB4OGMsIC52YWx1ZSA9IDB4MTAsIH0sCj4gKwlbMjVdID0geyAub2Zmc2V0ID0gMHg4ZCwg LnZhbHVlID0gMHgwMiwgfSwKPiArCS8qIDhlLDhmIGFyZSBwYXJ0IG9mIHRoZSBtb2RlLXNwZWNp ZmljIGNvbmZpZ3VyYXRpb24gKi8KPiArCVsyNl0gPSB7IC5vZmZzZXQgPSAweDkwLCAudmFsdWUg PSAweGZmLCB9LAo+ICsJWzI3XSA9IHsgLm9mZnNldCA9IDB4OTEsIC52YWx1ZSA9IDB4MDcsIH0s Cj4gKwlbMjhdID0geyAub2Zmc2V0ID0gMHg5MiwgLnZhbHVlID0gMHhhMCwgfSwKPiArCVsyOV0g PSB7IC5vZmZzZXQgPSAweDkzLCAudmFsdWUgPSAweDAyLCB9LAo+ICsJWzMwXSA9IHsgLm9mZnNl dCA9IDB4OTQsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwlbMzFdID0geyAub2Zmc2V0ID0gMHg5NSwg LnZhbHVlID0gMHgwMCwgfSwKPiArCVszMl0gPSB7IC5vZmZzZXQgPSAweDk2LCAudmFsdWUgPSAw eDA1LCB9LAo+ICsJWzMzXSA9IHsgLm9mZnNldCA9IDB4OTcsIC52YWx1ZSA9IDB4MDAsIH0sCj4g KwkvKiA5OCw5OSBhcmUgcGFydCBvZiB0aGUgbW9kZS1zcGVjaWZpYyBjb25maWd1cmF0aW9uICov Cj4gKwlbMzRdID0geyAub2Zmc2V0ID0gMHg5YSwgLnZhbHVlID0gMHg4OCwgfSwKPiArCVszNV0g PSB7IC5vZmZzZXQgPSAweDliLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJLyogOWMsOWQgYXJlIHBh cnQgb2YgdGhlIG1vZGUtc3BlY2lmaWMgY29uZmlndXJhdGlvbiAqLwo+ICsJWzM4XSA9IHsgLm9m ZnNldCA9IDB4OWUsIC52YWx1ZSA9IDB4MjUsIH0sCj4gKwlbMzldID0geyAub2Zmc2V0ID0gMHg5 ZiwgLnZhbHVlID0gMHgwMywgfSwKPiArCVs0MF0gPSB7IC5vZmZzZXQgPSAweGEwLCAudmFsdWUg PSAweDI4LCB9LAo+ICsJWzQxXSA9IHsgLm9mZnNldCA9IDB4YTEsIC52YWx1ZSA9IDB4MDEsIH0s Cj4gKwlbNDJdID0geyAub2Zmc2V0ID0gMHhhMiwgLnZhbHVlID0gMHgyOCwgfSwKPiArCVs0M10g PSB7IC5vZmZzZXQgPSAweGEzLCAudmFsdWUgPSAweDA1LCB9LAo+ICsJLyogcmVnaXN0ZXIgMHhh NCBpcyBtb2RlIHNwZWNpZmljLCBidXQgMHg4MC4uMHg4NCB3b3JrcyBhbHdheXMgKi8KPiArCVs0 NF0gPSB7IC5vZmZzZXQgPSAweGE0LCAudmFsdWUgPSAweDg0LCB9LAo+ICsJWzQ1XSA9IHsgLm9m ZnNldCA9IDB4YTUsIC52YWx1ZSA9IDB4MDAsIH0sCj4gKwlbNDZdID0geyAub2Zmc2V0ID0gMHhh NiwgLnZhbHVlID0gMHgwMCwgfSwKPiArCVs0N10gPSB7IC5vZmZzZXQgPSAweGE3LCAudmFsdWUg PSAweDAwLCB9LAo+ICsJWzQ4XSA9IHsgLm9mZnNldCA9IDB4YTgsIC52YWx1ZSA9IDB4MDAsIH0s Cj4gKwkvKiAweGE5IHRvIDB4YWIgYXJlIG1vZGUgc3BlY2lmaWMsIGJ1dCBoYXZlIG5vIHZpc2li bGUgZWZmZWN0ICovCj4gKwlbNDldID0geyAub2Zmc2V0ID0gMHhhOSwgLnZhbHVlID0gMHgwNCwg fSwKPiArCVs1MF0gPSB7IC5vZmZzZXQgPSAweGFhLCAudmFsdWUgPSAweDcwLCB9LAo+ICsJWzUx XSA9IHsgLm9mZnNldCA9IDB4YWIsIC52YWx1ZSA9IDB4NGYsIH0sCj4gKwlbNTJdID0geyAub2Zm c2V0ID0gMHhhYywgLnZhbHVlID0gMHgwMCwgfSwKPiArCVs1M10gPSB7IC5vZmZzZXQgPSAweGFk LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzU0XSA9IHsgLm9mZnNldCA9IDB4YjYsIC52YWx1ZSA9 IDB4MDksIH0sCj4gKwlbNTVdID0geyAub2Zmc2V0ID0gMHhiNywgLnZhbHVlID0gMHgwMywgfSwK PiArCS8qIGI4LGI5IGFyZSBwYXJ0IG9mIHRoZSBtb2RlLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24g Ki8KPiArCVs1Nl0gPSB7IC5vZmZzZXQgPSAweGJhLCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzU3 XSA9IHsgLm9mZnNldCA9IDB4YmIsIC52YWx1ZSA9IDB4MjAsIH0sCj4gKwlbNThdID0geyAub2Zm c2V0ID0gMHhmMywgLnZhbHVlID0gMHg5MCwgfSwKPiArCVs1OV0gPSB7IC5vZmZzZXQgPSAweGY0 LCAudmFsdWUgPSAweDAwLCB9LAo+ICsJWzYwXSA9IHsgLm9mZnNldCA9IDB4ZjcsIC52YWx1ZSA9 IDB4ODgsIH0sCj4gKwkvKiBmOCBpcyBtb2RlIHNwZWNpZmljLCBidXQgdGhlIHZhbHVlIGRvZXMg bm90IG1hdHRlciAqLwo+ICsJWzYxXSA9IHsgLm9mZnNldCA9IDB4ZjgsIC52YWx1ZSA9IDB4MGEs IH0sCj4gKwlbNjJdID0geyAub2Zmc2V0ID0gMHhmOSwgLnZhbHVlID0gMHgwMCwgfQo+ICB9Owo+ ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBuczI1MDFfcmVnIHJlZ3NfaW5pdFtdID0gewo+IEBA IC0zNTAsNyArMzc4LDcgQEAKPiAgCj4gIHN0cnVjdCBuczI1MDFfcHJpdiB7Cj4gIAlib29sIHF1 aWV0Owo+IC0JY29uc3Qgc3RydWN0IG5zMjUwMV9yZWcgKnJlZ3M7Cj4gKwljb25zdCBzdHJ1Y3Qg bnMyNTAxX2NvbmZpZ3VyYXRpb24gKmNvbmY7Cj4gIH07Cj4gIAo+ICAjZGVmaW5lIE5TUFRSKGQp ICgoTlMyNTAxUHRyKShkLT5Ecml2ZXJQcml2YXRlLnB0cikpCj4gQEAgLTUzNCw2ICs1NjIsNyBA QAo+ICAJCQkgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gIAkJCSAgICBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiAgewo+ICsJY29uc3Qgc3RydWN0 IG5zMjUwMV9jb25maWd1cmF0aW9uICpjb25mOwo+ICAJc3RydWN0IG5zMjUwMV9wcml2ICpucyA9 IChzdHJ1Y3QgbnMyNTAxX3ByaXYgKikoZHZvLT5kZXZfcHJpdik7Cj4gIAlpbnQgbW9kZV9pZHgs IGk7Cj4gIAo+IEBAIC01NTQsMTAgKzU4Myw0NCBAQAo+ICAJZm9yIChpID0gMDsgaSA8IEFSUkFZ X1NJWkUocmVnc19pbml0KTsgaSsrKQo+ICAJCW5zMjUwMV93cml0ZWIoZHZvLCByZWdzX2luaXRb aV0ub2Zmc2V0LCByZWdzX2luaXRbaV0udmFsdWUpOwo+ICAKPiAtCW5zLT5yZWdzID0gcmVnc18x MDI0eDc2OFttb2RlX2lkeF07Cj4gLQo+IC0JZm9yIChpID0gMDsgaSA8IDg0OyBpKyspCj4gLQkJ bnMyNTAxX3dyaXRlYihkdm8sIG5zLT5yZWdzW2ldLm9mZnNldCwgbnMtPnJlZ3NbaV0udmFsdWUp Owo+ICsJLyogV3JpdGUgdGhlIG1vZGUtYWdub3N0aWMgdmFsdWVzICovCj4gKwlmb3IgKGkgPSAw OyBpIDwgQVJSQVlfU0laRShtb2RlX2Fnbm9zdGljX3ZhbHVlcyk7IGkrKykKPiArCQluczI1MDFf d3JpdGViKGR2bywgbW9kZV9hZ25vc3RpY192YWx1ZXNbaV0ub2Zmc2V0LAo+ICsJCQkJbW9kZV9h Z25vc3RpY192YWx1ZXNbaV0udmFsdWUpOwo+ICsKPiArCS8qIFdyaXRlIG5vdyB0aGUgbW9kZS1z cGVjaWZpYyBjb25maWd1cmF0aW9uICovCj4gKwljb25mID0gbnMyNTAxX21vZGVzICsgbW9kZV9p ZHg7Cj4gKwlucy0+Y29uZiA9IGNvbmY7Cj4gKwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUw MV9SRUc4LCBjb25mLT5jb25mKTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHMUIs IGNvbmYtPnBsbF9hKTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHMUMsIGNvbmYt PnBsbF9iICYgMHhmZik7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzFELCBjb25m LT5wbGxfYiA+PiA4KTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHQzEsIGNvbmYt PmhzdGFydCAmIDB4ZmYpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUdDMiwgY29u Zi0+aHN0YXJ0ID4+IDgpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUdDMywgY29u Zi0+aHN0b3AgJiAweGZmKTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHQzQsIGNv bmYtPmhzdG9wID4+IDgpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUdDNSwgY29u Zi0+dnN0YXJ0ICYgMHhmZik7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0M2LCBj b25mLT52c3RhcnQgPj4gOCk7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0M3LCBj b25mLT52c3RvcCAmIDB4ZmYpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUdDOCwg Y29uZi0+dnN0b3AgPj4gOCk7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzgwLCBj b25mLT52c3luYyAmIDB4ZmYpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc4MSwg Y29uZi0+dnN5bmMgPj4gOCk7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzgyLCBj b25mLT52dG90YWwgJiAweGZmKTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHODMs IGNvbmYtPnZ0b3RhbCA+PiA4KTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHOTgs IGNvbmYtPmhwb3MgJiAweGZmKTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHOTks IGNvbmYtPmhwb3MgPj4gOCk7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzhFLCBj b25mLT52cG9zICYgMHhmZik7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzhGLCBj b25mLT52cG9zID4+IDgpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc5QywgY29u Zi0+dm9mZnMgJiAweGZmKTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHOUQsIGNv bmYtPnZvZmZzID4+IDgpOwo+ICsJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUdCOCwgY29u Zi0+aHNjYWxlICYgMHhmZik7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0I5LCBj b25mLT5oc2NhbGUgPj4gOCk7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzEwLCBj b25mLT52c2NhbGUgJiAweGZmKTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHMTEs IGNvbmYtPnZzY2FsZSA+PiA4KTsKPiArCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHRjks IGNvbmYtPmRpdGhlcik7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzQxLCBjb25m LT5zeW5jYik7Cj4gKwluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFR0MwLCBjb25mLT5zeW5j KTsKPiAgfQo+ICAKPiAgLyogc2V0IHRoZSBOUzI1MDEgcG93ZXIgc3RhdGUgKi8KPiBAQCAtNTc5 LDM0ICs2NDIsMzIgQEAKPiAgCURSTV9ERUJVR19LTVMoIlRyeWluZyBzZXQgdGhlIGRwbXMgb2Yg dGhlIERWTyB0byAlaVxuIiwgZW5hYmxlKTsKPiAgCj4gIAlpZiAoZW5hYmxlKSB7Cj4gLQkJaWYg KFdBUk5fT04obnMtPnJlZ3NbODNdLm9mZnNldCAhPSAweDA4IHx8Cj4gLQkJCSAgICBucy0+cmVn c1s4NF0ub2Zmc2V0ICE9IDB4NDEgfHwKPiAtCQkJICAgIG5zLT5yZWdzWzg1XS5vZmZzZXQgIT0g MHhjMCkpCj4gLQkJCXJldHVybjsKPiAtCj4gLQkJbnMyNTAxX3dyaXRlYihkdm8sIDB4YzAsIG5z LT5yZWdzWzg1XS52YWx1ZSB8IDB4MDgpOwo+ICsJCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFf UkVHQzAsIG5zLT5jb25mLT5zeW5jIHwgMHgwOCk7Cj4gIAo+IC0JCW5zMjUwMV93cml0ZWIoZHZv LCAweDQxLCBucy0+cmVnc1s4NF0udmFsdWUpOwo+ICsJCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1 MDFfUkVHNDEsIG5zLT5jb25mLT5zeW5jYik7Cj4gIAo+IC0JCW5zMjUwMV93cml0ZWIoZHZvLCAw eDM0LCAweDAxKTsKPiArCQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzM0LCBOUzI1MDFf MzRfRU5BQkxFX09VVFBVVCk7Cj4gIAkJbXNsZWVwKDE1KTsKPiAgCj4gLQkJbnMyNTAxX3dyaXRl Yihkdm8sIDB4MDgsIDB4MzUpOwo+IC0JCWlmICghKG5zLT5yZWdzWzgzXS52YWx1ZSAmIE5TMjUw MV84X0JQQVMpKQo+IC0JCQluczI1MDFfd3JpdGViKGR2bywgMHgwOCwgMHgzMSk7Cj4gKwkJbnMy NTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUc4LAo+ICsJCQkJbnMtPmNvbmYtPmNvbmYgfCBOUzI1 MDFfOF9CUEFTKTsKPiArCQlpZiAoIShucy0+Y29uZi0+Y29uZiAmIE5TMjUwMV84X0JQQVMpKQo+ ICsJCQluczI1MDFfd3JpdGViKGR2bywgTlMyNTAxX1JFRzgsIG5zLT5jb25mLT5jb25mKTsKPiAg CQltc2xlZXAoMjAwKTsKPiAgCj4gLQkJbnMyNTAxX3dyaXRlYihkdm8sIDB4MzQsIDB4MDMpOwo+ ICsJCW5zMjUwMV93cml0ZWIoZHZvLCBOUzI1MDFfUkVHMzQsCj4gKwkJCU5TMjUwMV8zNF9FTkFC TEVfT1VUUFVUIHwgTlMyNTAxXzM0X0VOQUJMRV9CQUNLTElHSFQpOwo+ICAKPiAtCQluczI1MDFf d3JpdGViKGR2bywgMHhjMCwgbnMtPnJlZ3NbODVdLnZhbHVlKTsKPiArCQluczI1MDFfd3JpdGVi KGR2bywgTlMyNTAxX1JFR0MwLCBucy0+Y29uZi0+c3luYyk7Cj4gIAl9IGVsc2Ugewo+IC0JCW5z MjUwMV93cml0ZWIoZHZvLCAweDM0LCAweDAxKTsKPiArCQluczI1MDFfd3JpdGViKGR2bywgTlMy NTAxX1JFRzM0LCBOUzI1MDFfMzRfRU5BQkxFX09VVFBVVCk7Cj4gIAkJbXNsZWVwKDIwMCk7Cj4g IAo+IC0JCW5zMjUwMV93cml0ZWIoZHZvLCAweDA4LCAweDM0KTsKPiArCQluczI1MDFfd3JpdGVi KGR2bywgTlMyNTAxX1JFRzgsIE5TMjUwMV84X1ZFTiB8IE5TMjUwMV84X0hFTiB8Cj4gKwkJCQlO UzI1MDFfOF9CUEFTKTsKPiAgCQltc2xlZXAoMTUpOwo+ICAKPiAtCQluczI1MDFfd3JpdGViKGR2 bywgMHgzNCwgMHgwMCk7Cj4gKwkJbnMyNTAxX3dyaXRlYihkdm8sIE5TMjUwMV9SRUczNCwgMHgw MCk7Cj4gIAl9Cj4gIH0KPiAgCgoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIs IEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==