From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Enable Plane Input CSC for YUV to RGB Conversion Date: Wed, 24 Oct 2018 17:40:14 +0300 Message-ID: <20181024144014.GB9144@intel.com> References: <1540325516-15859-1-git-send-email-uma.shankar@intel.com> <66033044-fc38-4109-3b27-5289458b3a24@linux.intel.com> <75a79ef3-2194-a558-a416-f4a3af97ef74@linux.intel.com> <96e18234-a953-c2df-9274-b2f7a3db6abf@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4D2D46E234 for ; Wed, 24 Oct 2018 14:40:18 +0000 (UTC) Content-Disposition: inline In-Reply-To: <96e18234-a953-c2df-9274-b2f7a3db6abf@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: "intel-gfx@lists.freedesktop.org" , "Syrjala, Ville" , "Lankhorst, Maarten" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMjQsIDIwMTggYXQgMDM6NDI6MzRQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMjQtMTAtMTggb20gMTU6MTIgc2NocmVlZiBTaGFua2FyLCBVbWE6Cj4g Pgo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4gRnJvbTogTWFhcnRlbiBMYW5r aG9yc3QgW21haWx0bzptYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb21dCj4gPj4gU2Vu dDogV2VkbmVzZGF5LCBPY3RvYmVyIDI0LCAyMDE4IDU6MzcgUE0KPiA+PiBUbzogU2hhbmthciwg VW1hIDx1bWEuc2hhbmthckBpbnRlbC5jb20+OyBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gPj4gQ2M6IFN5cmphbGEsIFZpbGxlIDx2aWxsZS5zeXJqYWxhQGludGVsLmNvbT47IExh bmtob3JzdCwgTWFhcnRlbgo+ID4+IDxtYWFydGVuLmxhbmtob3JzdEBpbnRlbC5jb20+Cj4gPj4g U3ViamVjdDogUmU6IFtJbnRlbC1nZnhdIFtQQVRDSF0gZHJtL2k5MTU6IEVuYWJsZSBQbGFuZSBJ bnB1dCBDU0MgZm9yIFlVViB0byBSR0IKPiA+PiBDb252ZXJzaW9uCj4gPj4KPiA+PiBPcCAyNC0x MC0xOCBvbSAxMzoxOSBzY2hyZWVmIFNoYW5rYXIsIFVtYToKPiA+Pj4+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tCj4gPj4+PiBGcm9tOiBNYWFydGVuIExhbmtob3JzdCBbbWFpbHRvOm1hYXJ0 ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbV0KPiA+Pj4+IFNlbnQ6IFdlZG5lc2RheSwgT2N0 b2JlciAyNCwgMjAxOCA0OjE4IFBNCj4gPj4+PiBUbzogU2hhbmthciwgVW1hIDx1bWEuc2hhbmth ckBpbnRlbC5jb20+Owo+ID4+Pj4gaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4+ Pj4gQ2M6IFN5cmphbGEsIFZpbGxlIDx2aWxsZS5zeXJqYWxhQGludGVsLmNvbT47IExhbmtob3Jz dCwgTWFhcnRlbgo+ID4+Pj4gPG1hYXJ0ZW4ubGFua2hvcnN0QGludGVsLmNvbT4KPiA+Pj4+IFN1 YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBbUEFUQ0hdIGRybS9pOTE1OiBFbmFibGUgUGxhbmUgSW5w dXQgQ1NDIGZvcgo+ID4+Pj4gWVVWIHRvIFJHQiBDb252ZXJzaW9uCj4gPj4+Pgo+ID4+Pj4gT3Ag MjMtMTAtMTggb20gMjI6MTEgc2NocmVlZiBVbWEgU2hhbmthcjoKPiA+Pj4+PiBQbGFuZSBpbnB1 dCBDU0MgbmVlZHMgdG8gYmUgZW5hYmxlZCB0byBjb252ZXJ0IGZyYW1idWZmZXJzIGZyb20gWVVW Cj4gPj4+Pj4gdG8gUkdCLiBUaGlzIGlzIG5lZWRlZCBmb3IgYm90dG9tIDMgcGxhbmVzIG9uIElD TCwgcmVzdCBvZiB0aGUKPiA+Pj4+PiBwbGFuZXMgaGF2ZSBoYXJkY29kZWQgY29udmVyc2lvbiBh bmQgdGFrZW4gY2FyZSBieSB0aGUgbGVnYWN5IGNvZGUuCj4gPj4+Pj4KPiA+Pj4+PiBUaGlzIHBh dGNoIGRlZmluZXMgdGhlIHBsYW5lIGlucHV0IGNzYyByZWdpc3RlcnMgYW5kIGNvLWVmZmljaWVu dAo+ID4+Pj4+IHZhbHVlcyBmb3IgWVVWIHRvIFJHQiBjb252ZXJzaW9uIGluIEJUNzA5IGFuZCBC VDYwMSBmb3JtYXRzLiBJdAo+ID4+Pj4+IHByb2dyYW1zIHRoZSBjb2VmZmljaWVudHMgYW5kIGVu YWJsZXMgdGhlIHBsYW5lIGlucHV0IGNzYyB1bml0IGluCj4gPj4+Pj4gaGFyZHdhcmUuCj4gPj4+ Pj4KPiA+Pj4+PiBOb3RlOiBUaGlzIGlzIGN1cnJlbnRseSB1bnRlc3RlZCBhbmQgZmxvYXRlZCB0 byBnZXQgYW4gZWFybHkKPiA+Pj4+PiBmZWVkYmFjayBvbiB0aGUgZGVzaWduIGFuZCBpbXBsZW1l bnRhdGlvbiBmb3IgdGhpcyBmZWF0dXJlLiBJbgo+ID4+Pj4+IHBhcmFsbGVsLCBJIHdpbGwgdGVz dCB0aGlzIG9uIGFjdHVhbCBJQ0wgaGFyZHdhcmUgYW5kIGNvbmZpcm0gd2l0aCBwbGFuYXIKPiA+ PiBmb3JtYXRzLgo+ID4+Pj4+IFNpZ25lZC1vZmYtYnk6IFVtYSBTaGFua2FyIDx1bWEuc2hhbmth ckBpbnRlbC5jb20+Cj4gPj4+Pj4gLS0tCj4gPj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggICAgICB8IDI0Mwo+ID4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPiA+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDc2 ICsrKysrKysrKystCj4gPj4+Pj4gIDIgZmlsZXMgY2hhbmdlZCwgMzEzIGluc2VydGlvbnMoKyks IDYgZGVsZXRpb25zKC0pCj4gPj4+Pj4KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaCBpbmRleCA4YmQ2MWY5Li5mMGY2ZjdjIDEwMDY0NAo+ID4+Pj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCj4gPj4+Pj4gQEAgLTY1NTMsNiArNjU1Myw3IEBAIGVudW0gewo+ID4+Pj4+ ICAjZGVmaW5lIF9QTEFORV9DT0xPUl9DVExfM19BCQkJMHg3MDNDQyAvKiBHTEsrICovCj4gPj4+ Pj4gICNkZWZpbmUgICBQTEFORV9DT0xPUl9QSVBFX0dBTU1BX0VOQUJMRQkJKDEgPDwgMzApIC8q Cj4gPj4+PiBQcmUtSUNMICovCj4gPj4+Pj4gICNkZWZpbmUgICBQTEFORV9DT0xPUl9ZVVZfUkFO R0VfQ09SUkVDVElPTl9ESVNBQkxFCSgxIDw8Cj4gPj4gMjgpCj4gPj4+Pj4gKyNkZWZpbmUgICBQ TEFORV9DT0xPUl9JTlBVVF9DU0NfRU5BQkxFCQkoMSA8PCAyMCkgLyoKPiA+PiBQcmUtSUNMICov Cj4gPj4+Pj4gICNkZWZpbmUgICBQTEFORV9DT0xPUl9QSVBFX0NTQ19FTkFCTEUJCSgxIDw8IDIz KSAvKiBQcmUtSUNMICovCj4gPj4+Pj4gICNkZWZpbmUgICBQTEFORV9DT0xPUl9DU0NfTU9ERV9C WVBBU1MJCQkoMCA8PAo+ID4+IDE3KQo+ID4+Pj4+ICAjZGVmaW5lICAgUExBTkVfQ09MT1JfQ1ND X01PREVfWVVWNjAxX1RPX1JHQjcwOQkJKDEgPDwKPiA+Pj4+IDE3KQo+ID4+Pj4+IEBAIC02NTY5 LDYgKzY1NzAsMjQ4IEBAIGVudW0gewo+ID4+Pj4+ICAjZGVmaW5lIF9QTEFORV9OVjEyX0JVRl9D RkdfMV9BCQkweDcwMjc4Cj4gPj4+Pj4gICNkZWZpbmUgX1BMQU5FX05WMTJfQlVGX0NGR18yX0EJ CTB4NzAzNzgKPiA+Pj4+Pgo+ID4+Pj4+ICsvKiBJbnB1dCBDU0MgUmVnaXN0ZXIgRGVmaW5pdGlv bnMgKi8KPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1JZX0dZXzFfQQkweDcwMUUw Cj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19SWV9HWV8yX0EJMHg3MDJFMAo+ID4+ Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUllfR1lfM19BCTB4NzAzRTAKPiA+Pj4+PiAr Cj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19SWV9HWV8xX0IJMHg3MTFFMAo+ID4+ Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUllfR1lfMl9CCTB4NzEyRTAKPiA+Pj4+PiAr I2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1JZX0dZXzNfQgkweDcxM0UwCj4gPj4+Pj4gKwo+ID4+ Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUllfR1lfMShwaXBlKQlcCj4gPj4+Pj4gKwlf UElQRShwaXBlLCBfUExBTkVfSU5QVVRfQ1NDX1JZX0dZXzFfQSwgXAo+ID4+Pj4+ICsJICAgICBf UExBTkVfSU5QVVRfQ1NDX1JZX0dZXzFfQikKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRf Q1NDX1JZX0dZXzIocGlwZSkJXAo+ID4+Pj4+ICsJX1BJUEUocGlwZSwgX1BMQU5FX0lOUFVUX0NT Q19SWV9HWV8yX0EsIFwKPiA+Pj4+PiArCSAgICAgX1BMQU5FX0lOUFVUX0NTQ19SWV9HWV8yX0Ip Cj4gPj4+Pj4gKyNkZWZpbmUgUExBTkVfSU5QVVRfQ1NDX1JZX0dZKHBpcGUsIHBsYW5lKQlcCj4g Pj4+Pj4gKwlfTU1JT19QTEFORShwbGFuZSwgX1BMQU5FX0lOUFVUX0NTQ19SWV9HWV8xKHBpcGUp LCBcCj4gPj4+Pj4gKwkJICAgIF9QTEFORV9JTlBVVF9DU0NfUllfR1lfMihwaXBlKSkKPiA+Pj4+ PiArCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19CWV8xX0EJCTB4NzAxRTQKPiA+ Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX0JZXzJfQQkJMHg3MDJFNAo+ID4+Pj4+ICsj ZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfQllfM19BCQkweDcwM0U0Cj4gPj4+Pj4gKwo+ID4+Pj4+ ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfQllfMV9CCQkweDcxMUU0Cj4gPj4+Pj4gKyNkZWZp bmUgX1BMQU5FX0lOUFVUX0NTQ19CWV8yX0IJCTB4NzEyRTQKPiA+Pj4+PiArI2RlZmluZSBfUExB TkVfSU5QVVRfQ1NDX0JZXzNfQgkJMHg3MTNFNAo+ID4+Pj4+ICsKPiA+Pj4+PiArI2RlZmluZSBf UExBTkVfSU5QVVRfQ1NDX0JZXzEocGlwZSkJXAo+ID4+Pj4+ICsJX1BJUEUocGlwZSwgX1BMQU5F X0lOUFVUX0NTQ19CWV8xX0EsIFwKPiA+Pj4+PiArCSAgICAgX1BMQU5FX0lOUFVUX0NTQ19CWV8x X0IpCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19CWV8yKHBpcGUpCVwKPiA+Pj4+ PiArCV9QSVBFKHBpcGUsIF9QTEFORV9JTlBVVF9DU0NfQllfMl9BLCBcCj4gPj4+Pj4gKwkgICAg IF9QTEFORV9JTlBVVF9DU0NfQllfMl9CKQo+ID4+Pj4+ICsjZGVmaW5lIFBMQU5FX0lOUFVUX0NT Q19CWShwaXBlLCBwbGFuZSkJXAo+ID4+Pj4+ICsJX01NSU9fUExBTkUocGxhbmUsIF9QTEFORV9J TlBVVF9DU0NfQllfMShwaXBlKSwgXAo+ID4+Pj4+ICsJCSAgICBfUExBTkVfSU5QVVRfQ1NDX0JZ XzIocGlwZSkpCj4gPj4+Pj4gKwo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUlVf R1VfMV9BCTB4NzAxRTgKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1JVX0dVXzJf QQkweDcwMkU4Cj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19SVV9HVV8zX0EJMHg3 MDNFOAo+ID4+Pj4+ICsKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1JVX0dVXzFf QgkweDcxMUU4Cj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19SVV9HVV8yX0IJMHg3 MTJFOAo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUlVfR1VfM19CCTB4NzEzRTgK PiA+Pj4+PiArCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19SVV9HVV8xKHBpcGUp CVwKPiA+Pj4+PiArCV9QSVBFKHBpcGUsIF9QTEFORV9JTlBVVF9DU0NfUlVfR1VfMV9BLCBcCj4g Pj4+Pj4gKwkgICAgIF9QTEFORV9JTlBVVF9DU0NfUlVfR1VfMV9CKQo+ID4+Pj4+ICsjZGVmaW5l IF9QTEFORV9JTlBVVF9DU0NfUlVfR1VfMihwaXBlKQlcCj4gPj4+Pj4gKwlfUElQRShwaXBlLCBf UExBTkVfSU5QVVRfQ1NDX1JVX0dVXzJfQSwgXAo+ID4+Pj4+ICsJICAgICBfUExBTkVfSU5QVVRf Q1NDX1JVX0dVXzJfQikKPiA+Pj4+PiArI2RlZmluZSBQTEFORV9JTlBVVF9DU0NfUlVfR1UocGlw ZSwgcGxhbmUpCVwKPiA+Pj4+PiArCV9NTUlPX1BMQU5FKHBsYW5lLCBfUExBTkVfSU5QVVRfQ1ND X1JVX0dVXzEocGlwZSksIFwKPiA+Pj4+PiArCQkgICAgX1BMQU5FX0lOUFVUX0NTQ19SVV9HVV8y KHBpcGUpKQo+ID4+Pj4+ICsKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX0JVXzFf QQkJMHg3MDFFQwo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfQlVfMl9BCQkweDcw MkVDCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19CVV8zX0EJCTB4NzAzRUMKPiA+ Pj4+PiArCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19CVV8xX0IJCTB4NzExRUMK PiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX0JVXzJfQgkJMHg3MTJFQwo+ID4+Pj4+ ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfQlVfM19CCQkweDcxM0VDCj4gPj4+Pj4gKwo+ID4+ Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfQlVfMShwaXBlKQlcCj4gPj4+Pj4gKwlfUElQ RShwaXBlLCBfUExBTkVfSU5QVVRfQ1NDX0JVXzFfQSwgXAo+ID4+Pj4+ICsJICAgICBfUExBTkVf SU5QVVRfQ1NDX0JVXzFfQikKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX0JVXzIo cGlwZSkJXAo+ID4+Pj4+ICsJX1BJUEUocGlwZSwgX1BMQU5FX0lOUFVUX0NTQ19CVV8yX0EsIFwK PiA+Pj4+PiArCSAgICAgX1BMQU5FX0lOUFVUX0NTQ19CVV8yX0IpCj4gPj4+Pj4gKyNkZWZpbmUg UExBTkVfSU5QVVRfQ1NDX0JVKHBpcGUsIHBsYW5lKQlcCj4gPj4+Pj4gKwlfTU1JT19QTEFORShw bGFuZSwgX1BMQU5FX0lOUFVUX0NTQ19CVV8xKHBpcGUpLCBcCj4gPj4+Pj4gKwkJICAgIF9QTEFO RV9JTlBVVF9DU0NfQlVfMihwaXBlKSkKPiA+Pj4+PiArCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5F X0lOUFVUX0NTQ19SVl9HVl8xX0EJMHg3MDFGMAo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBV VF9DU0NfUlZfR1ZfMl9BCTB4NzAyRjAKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1ND X1JWX0dWXzNfQQkweDcwM0YwCj4gPj4+Pj4gKwo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBV VF9DU0NfUlZfR1ZfMV9CCTB4NzExRjAKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1ND X1JWX0dWXzJfQgkweDcxMkYwCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19SVl9H Vl8zX0IJMHg3MTNGMAo+ID4+Pj4+ICsKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1ND X1JWX0dWXzEocGlwZSkJXAo+ID4+Pj4+ICsJX1BJUEUocGlwZSwgX1BMQU5FX0lOUFVUX0NTQ19S Vl9HVl8xX0EsIFwKPiA+Pj4+PiArCSAgICAgX1BMQU5FX0lOUFVUX0NTQ19SVl9HVl8xX0IpCj4g Pj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19SVl9HVl8yKHBpcGUpCVwKPiA+Pj4+PiAr CV9QSVBFKHBpcGUsIF9QTEFORV9JTlBVVF9DU0NfUlZfR1ZfMl9BLCBcCj4gPj4+Pj4gKwkgICAg IF9QTEFORV9JTlBVVF9DU0NfUlZfR1ZfMl9CKQo+ID4+Pj4+ICsjZGVmaW5lIFBMQU5FX0lOUFVU X0NTQ19SVl9HVihwaXBlLCBwbGFuZSkJXAo+ID4+Pj4+ICsJX01NSU9fUExBTkUocGxhbmUsIF9Q TEFORV9JTlBVVF9DU0NfUlZfR1ZfMShwaXBlKSwgXAo+ID4+Pj4+ICsJCSAgICBfUExBTkVfSU5Q VVRfQ1NDX1JWX0dWXzIocGlwZSkpCj4gPj4+Pj4gKwo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9J TlBVVF9DU0NfQlZfMV9BCQkweDcwMUY0Cj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NT Q19CVl8yX0EJCTB4NzAyRjQKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX0JWXzNf QQkJMHg3MDNGNAo+ID4+Pj4+ICsKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX0JW XzFfQgkJMHg3MTFGNAo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfQlZfMl9CCQkw eDcxMkY0Cj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19CVl8zX0IJCTB4NzEzRjQK PiA+Pj4+PiArCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19CVl8xKHBpcGUpCVwK PiA+Pj4+PiArCV9QSVBFKHBpcGUsIF9QTEFORV9JTlBVVF9DU0NfQlZfMV9BLCBcCj4gPj4+Pj4g KwkgICAgIF9QTEFORV9JTlBVVF9DU0NfQlZfMV9CKQo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9J TlBVVF9DU0NfQlZfMihwaXBlKQlcCj4gPj4+Pj4gKwlfUElQRShwaXBlLCBfUExBTkVfSU5QVVRf Q1NDX0JWXzJfQSwgXAo+ID4+Pj4+ICsJICAgICBfUExBTkVfSU5QVVRfQ1NDX0JWXzJfQikKPiA+ Pj4+PiArI2RlZmluZSBQTEFORV9JTlBVVF9DU0NfQlYocGlwZSwgcGxhbmUpCVwKPiA+Pj4+PiAr CV9NTUlPX1BMQU5FKHBsYW5lLCBfUExBTkVfSU5QVVRfQ1NDX0JWXzEocGlwZSksIFwKPiA+Pj4+ PiArCQkgICAgX1BMQU5FX0lOUFVUX0NTQ19CVl8yKHBpcGUpKQo+ID4+Pj4+ICsKPiA+Pj4+PiAr I2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9ISV8xX0EJCTB4NzAxRjgKPiA+Pj4+PiAr I2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9ISV8yX0EJCTB4NzAyRjgKPiA+Pj4+PiAr I2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9ISV8zX0EJCTB4NzAzRjgKPiA+Pj4+PiAr Cj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19QUkVPRkZfSElfMV9CCQkweDcxMUY4 Cj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19QUkVPRkZfSElfMl9CCQkweDcxMkY4 Cj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19QUkVPRkZfSElfM19CCQkweDcxM0Y4 Cj4gPj4+Pj4gKwo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUFJFT0ZGX0hJXzEo cGlwZSkJXAo+ID4+Pj4+ICsJX1BJUEUocGlwZSwgX1BMQU5FX0lOUFVUX0NTQ19QUkVPRkZfSElf MV9BLCBcCj4gPj4+Pj4gKwkgICAgIF9QTEFORV9JTlBVVF9DU0NfUFJFT0ZGX0hJXzFfQikKPiA+ Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9ISV8yKHBpcGUpCVwKPiA+Pj4+ PiArCV9QSVBFKHBpcGUsIF9QTEFORV9JTlBVVF9DU0NfUFJFT0ZGX0hJXzJfQSwgXAo+ID4+Pj4+ ICsJICAgICBfUExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9ISV8yX0IpCj4gPj4+Pj4gKyNkZWZpbmUg UExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9ISShwaXBlLCBwbGFuZSkJXAo+ID4+Pj4+ICsJX01NSU9f UExBTkUocGxhbmUsIF9QTEFORV9JTlBVVF9DU0NfUFJFT0ZGX0hJXzEocGlwZSksIFwKPiA+Pj4+ PiArCQkgICAgX1BMQU5FX0lOUFVUX0NTQ19QUkVPRkZfSElfMihwaXBlKSkKPiA+Pj4+PiArCj4g Pj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19QUkVPRkZfTUVfMV9BCQkweDcwMUZDCj4g Pj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19QUkVPRkZfTUVfMl9BCQkweDcwMkZDCj4g Pj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19QUkVPRkZfTUVfM19BCQkweDcwM0ZDCj4g Pj4+Pj4gKwo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUFJFT0ZGX01FXzFfQgkJ MHg3MTFGQwo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUFJFT0ZGX01FXzJfQgkJ MHg3MTJGQwo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUFJFT0ZGX01FXzNfQgkJ MHg3MTNGQwo+ID4+Pj4+ICsKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1BSRU9G Rl9NRV8xKHBpcGUpCVwKPiA+Pj4+PiArCV9QSVBFKHBpcGUsIF9QTEFORV9JTlBVVF9DU0NfUFJF T0ZGX01FXzFfQSwgXAo+ID4+Pj4+ICsJICAgICBfUExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9NRV8x X0IpCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19QUkVPRkZfTUVfMihwaXBlKQlc Cj4gPj4+Pj4gKwlfUElQRShwaXBlLCBfUExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9NRV8yX0EsIFwK PiA+Pj4+PiArCSAgICAgX1BMQU5FX0lOUFVUX0NTQ19QUkVPRkZfTUVfMl9CKQo+ID4+Pj4+ICsj ZGVmaW5lIFBMQU5FX0lOUFVUX0NTQ19QUkVPRkZfTUUocGlwZSwgcGxhbmUpCVwKPiA+Pj4+PiAr CV9NTUlPX1BMQU5FKHBsYW5lLCBfUExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9NRV8xKHBpcGUpLCBc Cj4gPj4+Pj4gKwkJICAgIF9QTEFORV9JTlBVVF9DU0NfUFJFT0ZGX01FXzIocGlwZSkpCj4gPj4+ Pj4gKwo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUFJFT0ZGX0xPXzFfQQkJMHg3 MDIwMAo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUFJFT0ZGX0xPXzJfQQkJMHg3 MDMwMAo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUFJFT0ZGX0xPXzNfQQkJMHg3 MDQwMAo+ID4+Pj4+ICsKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9M T18xX0IJCTB4NzEyMDAKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9M T18yX0IJCTB4NzEzMDAKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9M T18zX0IJCTB4NzE0MDAKPiA+Pj4+PiArCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NT Q19QUkVPRkZfTE9fMShwaXBlKQlcCj4gPj4+Pj4gKwlfUElQRShwaXBlLCBfUExBTkVfSU5QVVRf Q1NDX1BSRU9GRl9MT18xX0EsIFwKPiA+Pj4+PiArCSAgICAgX1BMQU5FX0lOUFVUX0NTQ19QUkVP RkZfTE9fMV9CKQo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUFJFT0ZGX0xPXzIo cGlwZSkJXAo+ID4+Pj4+ICsJX1BJUEUocGlwZSwgX1BMQU5FX0lOUFVUX0NTQ19QUkVPRkZfTE9f Ml9BLCBcCj4gPj4+Pj4gKwkgICAgIF9QTEFORV9JTlBVVF9DU0NfUFJFT0ZGX0xPXzJfQikKPiA+ Pj4+PiArI2RlZmluZSBQTEFORV9JTlBVVF9DU0NfUFJFT0ZGX0xPKHBpcGUsIHBsYW5lKQlcCj4g Pj4+Pj4gKwlfTU1JT19QTEFORShwbGFuZSwgX1BMQU5FX0lOUFVUX0NTQ19QUkVPRkZfTE9fMShw aXBlKSwgXAo+ID4+Pj4+ICsJCSAgICBfUExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9MT18yKHBpcGUp KQo+ID4+Pj4+ICsKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1BPU1RPRkZfSElf MV9BCQkweDcwMjA0Cj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19QT1NUT0ZGX0hJ XzJfQQkJMHg3MDMwNAo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUE9TVE9GRl9I SV8zX0EJCTB4NzA0MDQKPiA+Pj4+PiArCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NT Q19QT1NUT0ZGX0hJXzFfQgkJMHg3MTIwNAo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9D U0NfUE9TVE9GRl9ISV8yX0IJCTB4NzEzMDQKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRf Q1NDX1BPU1RPRkZfSElfM19CCQkweDcxNDA0Cj4gPj4+Pj4gKwo+ID4+Pj4+ICsjZGVmaW5lIF9Q TEFORV9JTlBVVF9DU0NfUE9TVE9GRl9ISV8xKHBpcGUpCVwKPiA+Pj4+PiArCV9QSVBFKHBpcGUs IF9QTEFORV9JTlBVVF9DU0NfUE9TVE9GRl9ISV8xX0EsIFwKPiA+Pj4+PiArCSAgICAgX1BMQU5F X0lOUFVUX0NTQ19QT1NUT0ZGX0hJXzFfQikKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRf Q1NDX1BPU1RPRkZfSElfMihwaXBlKQlcCj4gPj4+Pj4gKwlfUElQRShwaXBlLCBfUExBTkVfSU5Q VVRfQ1NDX1BPU1RPRkZfSElfMl9BLCBcCj4gPj4+Pj4gKwkgICAgIF9QTEFORV9JTlBVVF9DU0Nf UE9TVE9GRl9ISV8yX0IpCj4gPj4+Pj4gKyNkZWZpbmUgUExBTkVfSU5QVVRfQ1NDX1BPU1RPRkZf SEkocGlwZSwgcGxhbmUpCVwKPiA+Pj4+PiArCV9NTUlPX1BMQU5FKHBsYW5lLCBfUExBTkVfSU5Q VVRfQ1NDX1BPU1RPRkZfSElfMShwaXBlKSwgXAo+ID4+Pj4+ICsJCSAgICBfUExBTkVfSU5QVVRf Q1NDX1BPU1RPRkZfSElfMihwaXBlKSkKPiA+Pj4+PiArCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5F X0lOUFVUX0NTQ19QT1NUT0ZGX01FXzFfQQkJMHg3MDIwOAo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFO RV9JTlBVVF9DU0NfUE9TVE9GRl9NRV8yX0EJCTB4NzAzMDgKPiA+Pj4+PiArI2RlZmluZSBfUExB TkVfSU5QVVRfQ1NDX1BPU1RPRkZfTUVfM19BCQkweDcwNDA4Cj4gPj4+Pj4gKwo+ID4+Pj4+ICsj ZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUE9TVE9GRl9NRV8xX0IJCTB4NzEyMDgKPiA+Pj4+PiAr I2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1BPU1RPRkZfTUVfMl9CCQkweDcxMzA4Cj4gPj4+Pj4g KyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19QT1NUT0ZGX01FXzNfQgkJMHg3MTQwOAo+ID4+Pj4+ ICsKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1BPU1RPRkZfTUVfMShwaXBlKQlc Cj4gPj4+Pj4gKwlfUElQRShwaXBlLCBfUExBTkVfSU5QVVRfQ1NDX1BPU1RPRkZfTUVfMV9BLCBc Cj4gPj4+Pj4gKwkgICAgIF9QTEFORV9JTlBVVF9DU0NfUE9TVE9GRl9NRV8xX0IpCj4gPj4+Pj4g KyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19QT1NUT0ZGX01FXzIocGlwZSkJXAo+ID4+Pj4+ICsJ X1BJUEUocGlwZSwgX1BMQU5FX0lOUFVUX0NTQ19QT1NUT0ZGX01FXzJfQSwgXAo+ID4+Pj4+ICsJ ICAgICBfUExBTkVfSU5QVVRfQ1NDX1BPU1RPRkZfTUVfMl9CKQo+ID4+Pj4+ICsjZGVmaW5lIFBM QU5FX0lOUFVUX0NTQ19QT1NUT0ZGX01FKHBpcGUsIHBsYW5lKQlcCj4gPj4+Pj4gKwlfTU1JT19Q TEFORShwbGFuZSwgX1BMQU5FX0lOUFVUX0NTQ19QT1NUT0ZGX01FXzEocGlwZSksIFwKPiA+Pj4+ PiArCQkgICAgX1BMQU5FX0lOUFVUX0NTQ19QT1NUT0ZGX01FXzIocGlwZSkpCj4gPj4+Pj4gKwo+ ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUE9TVE9GRl9MT18xX0EJCTB4NzAyMEMK PiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1BPU1RPRkZfTE9fMl9BCQkweDcwMzBD Cj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19QT1NUT0ZGX0xPXzNfQQkJMHg3MDQw Qwo+ID4+Pj4+ICsKPiA+Pj4+PiArI2RlZmluZSBfUExBTkVfSU5QVVRfQ1NDX1BPU1RPRkZfTE9f MV9CCQkweDcxMjBDCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NTQ19QT1NUT0ZGX0xP XzJfQgkJMHg3MTMwQwo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUE9TVE9GRl9M T18zX0IJCTB4NzE0MEMKPiA+Pj4+PiArCj4gPj4+Pj4gKyNkZWZpbmUgX1BMQU5FX0lOUFVUX0NT Q19QT1NUT0ZGX0xPXzEocGlwZSkJXAo+ID4+Pj4+ICsJX1BJUEUocGlwZSwgX1BMQU5FX0lOUFVU X0NTQ19QT1NUT0ZGX0xPXzFfQSwgXAo+ID4+Pj4+ICsJICAgICBfUExBTkVfSU5QVVRfQ1NDX1BP U1RPRkZfTE9fMV9CKQo+ID4+Pj4+ICsjZGVmaW5lIF9QTEFORV9JTlBVVF9DU0NfUE9TVE9GRl9M T18yKHBpcGUpCVwKPiA+Pj4+PiArCV9QSVBFKHBpcGUsIF9QTEFORV9JTlBVVF9DU0NfUE9TVE9G Rl9MT18yX0EsIFwKPiA+Pj4+PiArCSAgICAgX1BMQU5FX0lOUFVUX0NTQ19QT1NUT0ZGX0xPXzJf QikKPiA+Pj4+PiArI2RlZmluZSBQTEFORV9JTlBVVF9DU0NfUE9TVE9GRl9MTyhwaXBlLCBwbGFu ZSkJXAo+ID4+Pj4+ICsJX01NSU9fUExBTkUocGxhbmUsIF9QTEFORV9JTlBVVF9DU0NfUE9TVE9G Rl9MT18xKHBpcGUpLCBcCj4gPj4+Pj4gKwkJICAgIF9QTEFORV9JTlBVVF9DU0NfUE9TVE9GRl9M T18yKHBpcGUpKQo+ID4+Pj4gV291bGQgcHJvYmFibHkgYmUgYmVzdCB0byBrZWVwIHRob3NlIHNl cGFyYXRlLgo+ID4+PiBZb3UgbWVhbiBpbiBhIHNlcGFyYXRlIHBhdGNoID8gSWYgeWVzLCBJIGNh biBkbyB0aGF0IGFuZCBzZWdyZWdhdGUgdGhlCj4gPj4+IHJlZ2lzdGVyIG1hY3JvIGRlZmluaXRp b25zIGluIGEgc2VwYXJhdGUgcGF0Y2guCj4gPj4+Cj4gPj4+Pj4gKy8qCj4gPj4+Pj4gKyAqIFRo ZXNlIHZhbHVlcyBhcmUgZGlyZWN0IHJlZ2lzdGVyIHZhbHVlcyBzcGVjaWZpZWQgaW4gdGhlIEJz cGVjLAo+ID4+Pj4+ICsgKiBmb3IgWVVWLT5SR0IgRnVsbCBSYW5nZSBjb252ZXJzaW9uIG1hdHJp eCAoY29sb3JzcGFjZSBCVDcwOSkgICovCj4gPj4+Pj4gKyNkZWZpbmUgQ1NDX0JUNzA5X1lVVl9U T19SR0JfUllfR1kJMHg3Qzk4NzgwMAo+ID4+Pj4+ICsjZGVmaW5lIENTQ19CVDcwOV9ZVVZfVE9f UkdCX0JZCQkweDAKPiA+Pj4+PiArI2RlZmluZSBDU0NfQlQ3MDlfWVVWX1RPX1JHQl9SVV9HVQkw eDlFRjg3ODAwCj4gPj4+Pj4gKyNkZWZpbmUgQ1NDX0JUNzA5X1lVVl9UT19SR0JfQlUJCTB4QUJG OAo+ID4+Pj4+ICsjZGVmaW5lIENTQ19CVDcwOV9ZVVZfVE9fUkdCX1JWX0dWCTB4NzgwMAo+ID4+ Pj4+ICsjZGVmaW5lIENTQ19CVDcwOV9ZVVZfVE9fUkdCX0JWCQkweDdFRDgKPiA+Pj4+PiArCj4g Pj4+Pj4gKy8qCj4gPj4+Pj4gKyAqIFRoZXNlIHZhbHVlcyBhcmUgZGlyZWN0IHJlZ2lzdGVyIHZh bHVlcyBzcGVjaWZpZWQgaW4gdGhlIEJzcGVjLAo+ID4+Pj4+ICsgKiBmb3IgWVVWLT5SR0IgRnVs bCBSYW5nZSBjb252ZXJzaW9uIG1hdHJpeCAoY29sb3JzcGFjZSBCVDYwMSkgICovCj4gPj4+Pj4g KyNkZWZpbmUgQ1NDX0JUNjAxX1lVVl9UT19SR0JfUllfR1kJMHg3QUY4NzgwMAo+ID4+Pj4+ICsj ZGVmaW5lIENTQ19CVDYwMV9ZVVZfVE9fUkdCX0JZCQkweDAKPiA+Pj4+PiArI2RlZmluZSBDU0Nf QlQ2MDFfWVVWX1RPX1JHQl9SVV9HVQkweDhCMjg3ODAwCj4gPj4+Pj4gKyNkZWZpbmUgQ1NDX0JU NjAxX1lVVl9UT19SR0JfQlUJCTB4OUFDMAo+ID4+Pj4+ICsjZGVmaW5lIENTQ19CVDYwMV9ZVVZf VE9fUkdCX1JWX0dWCTB4NzgwMAo+ID4+Pj4+ICsjZGVmaW5lIENTQ19CVDYwMV9ZVVZfVE9fUkdC X0JWCQkweDdERDgKPiA+Pj4+PiArCj4gPj4+Pj4gKy8qIFByZW9mZnNldCB2YWx1ZXMgZm9yIFlV ViB0byBSR0IgQ29udmVyc2lvbiAqLwo+ID4+Pj4+ICsjZGVmaW5lIFBSRU9GRl9ZVVZfVE9fUkdC X0hJCQkweDgwMAo+ID4+Pj4+ICsjZGVmaW5lIFBSRU9GRl9ZVVZfVE9fUkdCX01FCQkweEYwMAo+ ID4+Pj4+ICsjZGVmaW5lIFBSRU9GRl9ZVVZfVE9fUkdCX0xPCQkweDgwMAo+ID4+Pj4+Cj4gPj4+ Pj4gICNkZWZpbmUgX1BMQU5FX0NUTF8xX0IJCQkJMHg3MTE4MAo+ID4+Pj4+ICAjZGVmaW5lIF9Q TEFORV9DVExfMl9CCQkJCTB4NzEyODAKPiA+Pj4+IFByb2JhYmx5IG1vdmUgdGhvc2UgY29lZmZp Y2llbnRzIHRvIGludGVsX2NvbG9yLmMgPwo+ID4+PiBTdXJlLCBJIHdpbGwgZG8gdGhhdC4KPiA+ Pj4KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gPj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+Pj4+ PiBpbmRleCBmYzdlM2IwLi4zOGI0MWVkIDEwMDY0NAo+ID4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+Pj4+IEBAIC0zNjg5LDEyICszNjg5LDY2IEBAIHUzMiBz a2xfcGxhbmVfY3RsKGNvbnN0IHN0cnVjdAo+ID4+Pj4+IGludGVsX2NydGNfc3RhdGUKPiA+Pj4+ ICpjcnRjX3N0YXRlLAo+ID4+Pj4+ICAJcmV0dXJuIHBsYW5lX2N0bDsKPiA+Pj4+PiAgfQo+ID4+ Pj4+Cj4gPj4+Pj4gK3ZvaWQgaWNsX3Byb2dyYW1faW5wdXRfY3NjX2NvZWZmKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4+Pj4+ICsJCQkJY29uc3Qgc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkgewo+ID4+Pj4+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiA+Pj4+PiArCQl0b19pOTE1KHBsYW5lX3N0YXRlLT5i YXNlLnBsYW5lLT5kZXYpOwo+ID4+Pj4+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gPj4+Pj4gKwllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7Cj4gPj4+Pj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5l ID0KPiA+Pj4+PiArCQkJdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwo+ ID4+Pj4+ICsJZW51bSBwbGFuZV9pZCBwbGFuZSA9IGludGVsX3BsYW5lLT5pZDsKPiA+Pj4+PiAr Cj4gPj4+Pj4gKwlpZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmcgPT0gRFJNX0NP TE9SX1lDQkNSX0JUNzA5KSB7Cj4gPj4+Pj4gKwkJSTkxNV9XUklURShQTEFORV9JTlBVVF9DU0Nf UllfR1kocGlwZSwgcGxhbmUpLAo+ID4+Pj4+ICsJCQkgICBDU0NfQlQ3MDlfWVVWX1RPX1JHQl9S WV9HWSk7Cj4gPj4+Pj4gKwkJSTkxNV9XUklURShQTEFORV9JTlBVVF9DU0NfQlkocGlwZSwgcGxh bmUpLAo+ID4+Pj4+ICsJCQkgICBDU0NfQlQ3MDlfWVVWX1RPX1JHQl9CWSk7Cj4gPj4+Pj4gKwkJ STkxNV9XUklURShQTEFORV9JTlBVVF9DU0NfUlVfR1UocGlwZSwgcGxhbmUpLAo+ID4+Pj4+ICsJ CQkgICBDU0NfQlQ3MDlfWVVWX1RPX1JHQl9SVV9HVSk7Cj4gPj4+Pj4gKwkJSTkxNV9XUklURShQ TEFORV9JTlBVVF9DU0NfQlUocGlwZSwgcGxhbmUpLAo+ID4+Pj4+ICsJCQkgICBDU0NfQlQ3MDlf WVVWX1RPX1JHQl9CVSk7Cj4gPj4+Pj4gKwkJSTkxNV9XUklURShQTEFORV9JTlBVVF9DU0NfUlZf R1YocGlwZSwgcGxhbmUpLAo+ID4+Pj4+ICsJCQkgICBDU0NfQlQ3MDlfWVVWX1RPX1JHQl9SVl9H Vik7Cj4gPj4+Pj4gKwkJSTkxNV9XUklURShQTEFORV9JTlBVVF9DU0NfQlYocGlwZSwgcGxhbmUp LAo+ID4+Pj4+ICsJCQkgICBDU0NfQlQ3MDlfWVVWX1RPX1JHQl9CVik7Cj4gPj4+Pj4gKwl9IGVs c2Ugewo+ID4+Pj4+ICsJCUk5MTVfV1JJVEUoUExBTkVfSU5QVVRfQ1NDX1JZX0dZKHBpcGUsIHBs YW5lKSwKPiA+Pj4+PiArCQkJICAgQ1NDX0JUNjAxX1lVVl9UT19SR0JfUllfR1kpOwo+ID4+Pj4+ ICsJCUk5MTVfV1JJVEUoUExBTkVfSU5QVVRfQ1NDX0JZKHBpcGUsIHBsYW5lKSwKPiA+Pj4+PiAr CQkJICAgQ1NDX0JUNjAxX1lVVl9UT19SR0JfQlkpOwo+ID4+Pj4+ICsJCUk5MTVfV1JJVEUoUExB TkVfSU5QVVRfQ1NDX1JVX0dVKHBpcGUsIHBsYW5lKSwKPiA+Pj4+PiArCQkJICAgQ1NDX0JUNjAx X1lVVl9UT19SR0JfUlVfR1UpOwo+ID4+Pj4+ICsJCUk5MTVfV1JJVEUoUExBTkVfSU5QVVRfQ1ND X0JVKHBpcGUsIHBsYW5lKSwKPiA+Pj4+PiArCQkJICAgQ1NDX0JUNjAxX1lVVl9UT19SR0JfQlUp Owo+ID4+Pj4+ICsJCUk5MTVfV1JJVEUoUExBTkVfSU5QVVRfQ1NDX1JWX0dWKHBpcGUsIHBsYW5l KSwKPiA+Pj4+PiArCQkJICAgQ1NDX0JUNjAxX1lVVl9UT19SR0JfUlZfR1YpOwo+ID4+Pj4+ICsJ CUk5MTVfV1JJVEUoUExBTkVfSU5QVVRfQ1NDX0JWKHBpcGUsIHBsYW5lKSwKPiA+Pj4+PiArCQkJ ICAgQ1NDX0JUNjAxX1lVVl9UT19SR0JfQlYpOwo+ID4+Pj4+ICsJfQo+ID4+Pj4gQ29uc2lkZXJp bmcgdGhlcmUncyBnb2luZyB0byBiZSBCVC42MDEsIEJULjcwOSBhbmQgcGVyaGFwcyBuZXdlcgo+ ID4+Pj4gY29sb3JzcGFjZXMgd2l0aCBsaW1pdGVkIHZzIGZ1bGwgcmFuZ2UsIHdvdWxkIGl0IG1h a2UgbW9yZSBzZW5zZSB0byBnZW5lcmF0ZQo+ID4+IHRoZSB2YWx1ZXM/Cj4gPj4+IFRoZXNlIGFy ZSBhbGwgZmxvYXRpbmcgcG9pbnQgY29lZmZpY2llbnQgdmFsdWVzIGFuZCBkcml2ZXIgaGFzCj4g Pj4+IHJlc3RyaWN0aW9ucyBvbiB0aGUgZmxvYXRpbmcgbWF0aCwgc28gd291bGQgYmUgdG91Z2gg dG8gZ2VuZXJhdGUgdGhlbS4KPiA+Pj4gQ3VycmVudGx5IG9ubHkgQlQ3MDkgYW5kIEJUNjAxIHdh cyBzdXBwb3J0ZWQuIExhdGVyIEJUMjAyMAo+ID4+PiBjby1lZmljaWVudHMgY2FuIGJlIGFkZGVk LiBPdGhlciB3YXkgY2FuIGJlIHRvIGV4cG9zZSB0aGlzIGFzIGEKPiA+Pj4gcHJvcGVydHkgYW5k IGdldCB0aGVzZSB2YWx1ZXMgZnJvbSB1c2Vyc3BhY2UgKEkgd291bGQgbm90IHdhbnQgdG8gZ28g dGhhdCBwYXRoCj4gPj4gYXMgaXQgd2lsbCBiZSBhbiBleHRyYSBBQkkgYnVyZGVuIGFuZCB3aWxs IHJlcXVpcmUgYSB1c2Vyc3BhY2UpLgo+ID4+PiBQZXJzb25hbGx5IEkgZmVlbCwgZGVmaW5pbmcg NiBtYWNybyB2YWx1ZSBmb3IgYSBuZXcgY29sb3JzcGFjZSB3b3VsZCBiZSBhbgo+ID4+IGVhc2ll ciBvcHRpb24uCj4gPj4+Pj4gKwo+ID4+Pj4+ICsJSTkxNV9XUklURShQTEFORV9JTlBVVF9DU0Nf UFJFT0ZGX0hJKHBpcGUsIHBsYW5lKSwKPiA+Pj4+PiArCQkgICBQUkVPRkZfWVVWX1RPX1JHQl9I SSk7Cj4gPj4+Pj4gKwlJOTE1X1dSSVRFKFBMQU5FX0lOUFVUX0NTQ19QUkVPRkZfTUUocGlwZSwg cGxhbmUpLAo+ID4+Pj4+ICsJCSAgIFBSRU9GRl9ZVVZfVE9fUkdCX01FKTsKPiA+Pj4+PiArCUk5 MTVfV1JJVEUoUExBTkVfSU5QVVRfQ1NDX1BSRU9GRl9MTyhwaXBlLCBwbGFuZSksCj4gPj4+Pj4g KwkJICAgUFJFT0ZGX1lVVl9UT19SR0JfTE8pOwo+ID4+Pj4+ICsKPiA+Pj4+PiArCUk5MTVfV1JJ VEUoUExBTkVfSU5QVVRfQ1NDX1BPU1RPRkZfSEkocGlwZSwgcGxhbmUpLCAweDApOwo+ID4+Pj4+ ICsJSTkxNV9XUklURShQTEFORV9JTlBVVF9DU0NfUE9TVE9GRl9NRShwaXBlLCBwbGFuZSksIDB4 MCk7Cj4gPj4+Pj4gKwlJOTE1X1dSSVRFKFBMQU5FX0lOUFVUX0NTQ19QT1NUT0ZGX0xPKHBpcGUs IHBsYW5lKSwgMHgwKTsgfQo+ID4+Pj4gV2UgYWxyZWFkeSBoYXZlIHNvbWUgc3VwcG9ydCBjb2Rl IGZvciBDU0MgbWF0cmljZXMgaW4gaW50ZWxfY29sb3IuYywKPiA+Pj4+IHNvIEkgdGhpbmsgaXQg bWFrZXMgc2Vuc2UgdG8gcHJvZ3JhbSB0aGlzIGZyb20gdGhlcmUuLgo+ID4+PiBTaW5jZSBmb3Ig dGhlIG5vbiBIRFIgcGxhbmVzIENTQyBiaXRzIGFyZSBwcm9ncmFtbWVkIGhlcmUsIGl0IHdvdWxk IGJlCj4gPj4+IGdvb2QgaWYgYWxsIHBsYW5lcyBhcmUgaGFuZGxlZCBhdCBvbmUgcGxhY2UuIEkg d2lsbCBtb3ZlIHRoZSBmdW5jdGlvbgo+ID4+PiB0byBpbnRlbF9jb2xvci5jIHRvIGtlZXAgYWxs IHRoZSBjb2xvciByZWxhdGVkIGZ1bmN0aW9ucyBpbiBvbmUgZmlsZS4KPiA+Pj4KPiA+Pj4+PiAg dTMyIGdsa19wbGFuZV9jb2xvcl9jdGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCj4gPj4+Pj4gIAkJCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGUpICB7Cj4gPj4+Pj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PQo+ID4+Pj4+ICAJCXRvX2k5MTUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUtPmRldik7Cj4gPj4+ Pj4gIAljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNl LmZiOwo+ID4+Pj4+ICsJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5l KHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKPiA+Pj4+PiArCWVudW0gcGxhbmVfaWQgcGxhbmVf aWQgPSBwbGFuZS0+aWQ7Cj4gPj4+Pj4gKwo+ID4+Pj4+ICAJdTMyIHBsYW5lX2NvbG9yX2N0bCA9 IDA7Cj4gPj4+Pj4KPiA+Pj4+PiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEpIHsKPiA+ Pj4+PiBAQCAtMzcwNSwxMyArMzc1OSwyMyBAQCB1MzIgZ2xrX3BsYW5lX2NvbG9yX2N0bChjb25z dCBzdHJ1Y3QKPiA+Pj4+IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPj4+Pj4gIAlw bGFuZV9jb2xvcl9jdGwgfD0gZ2xrX3BsYW5lX2NvbG9yX2N0bF9hbHBoYShwbGFuZV9zdGF0ZSk7 Cj4gPj4+Pj4KPiA+Pj4+PiAgCWlmIChmYi0+Zm9ybWF0LT5pc195dXYpIHsKPiA+Pj4+PiAtCQlp ZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfZW5jb2RpbmcgPT0KPiA+Pj4+IERSTV9DT0xPUl9Z Q0JDUl9CVDcwOSkKPiA+Pj4+PiAtCQkJcGxhbmVfY29sb3JfY3RsIHw9Cj4gPj4+PiBQTEFORV9D T0xPUl9DU0NfTU9ERV9ZVVY3MDlfVE9fUkdCNzA5Owo+ID4+Pj4+IC0JCWVsc2UKPiA+Pj4+PiAt CQkJcGxhbmVfY29sb3JfY3RsIHw9Cj4gPj4+PiBQTEFORV9DT0xPUl9DU0NfTU9ERV9ZVVY2MDFf VE9fUkdCNzA5Owo+ID4+Pj4+ICsJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEgfHwgcGxh bmVfaWQgPiAyKSB7Cj4gPj4+PiBXZSBub3cgaGF2ZSBpY2xfaXNfaGRyX3BsYW5lKCksIGl0IGp1 c3QgbGFuZGVkIDopCj4gPj4+Pj4gKwkJCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9lbmNv ZGluZyA9PQo+ID4+Pj4+ICsJCQkJCURSTV9DT0xPUl9ZQ0JDUl9CVDcwOSkKPiA+Pj4+PiArCQkJ CXBsYW5lX2NvbG9yX2N0bCB8PQo+ID4+Pj4+ICsKPiA+Pj4+IAlQTEFORV9DT0xPUl9DU0NfTU9E RV9ZVVY3MDlfVE9fUkdCNzA5Owo+ID4+Pj4+ICsJCQllbHNlCj4gPj4+Pj4gKwkJCQlwbGFuZV9j b2xvcl9jdGwgfD0KPiA+Pj4+PiArCj4gPj4+PiAJUExBTkVfQ09MT1JfQ1NDX01PREVfWVVWNjAx X1RPX1JHQjcwOTsKPiA+Pj4+PiAtCQlpZiAocGxhbmVfc3RhdGUtPmJhc2UuY29sb3JfcmFuZ2Ug PT0KPiA+Pj4+IERSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQo+ID4+Pj4+IC0JCQlwbGFuZV9j b2xvcl9jdGwgfD0KPiA+Pj4+IFBMQU5FX0NPTE9SX1lVVl9SQU5HRV9DT1JSRUNUSU9OX0RJU0FC TEU7Cj4gPj4+Pj4gKwkJCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5jb2xvcl9yYW5nZSA9PQo+ID4+ Pj4+ICsJCQkJCURSTV9DT0xPUl9ZQ0JDUl9GVUxMX1JBTkdFKQo+ID4+Pj4+ICsJCQkJcGxhbmVf Y29sb3JfY3RsIHw9Cj4gPj4+Pj4gKwo+ID4+Pj4gCVBMQU5FX0NPTE9SX1lVVl9SQU5HRV9DT1JS RUNUSU9OX0RJU0FCTEU7Cj4gPj4+Pj4gKwkJfSBlbHNlIHsKPiA+Pj4+PiArCQkJaWNsX3Byb2dy YW1faW5wdXRfY3NjX2NvZWZmKGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKTsKPiA+Pj4+PiArCQkJ cGxhbmVfY29sb3JfY3RsIHw9IFBMQU5FX0NPTE9SX0lOUFVUX0NTQ19FTkFCTEU7Cj4gPj4+PiBU aGUgY29lZmZpY2llbnRzIGFyZSBsaWtlbHkgZGlmZmVyZW50IGZvciBmdWxsIHZzIGxpbWl0ZWQg cmFuZ2UsIGFuZAo+ID4+Pj4gSSBkb24ndCBzZWUgdGhhdCBoYW5kbGVkIGF0IHRoZSBtb21lbnQu IDooCj4gPj4+IEkgaGF2ZSBzdXBwb3J0ZWQgdGhlIEZVTEwgUmFuZ2UgWVVWIHRvIFJHQiBjb252 ZXJzaW9uIGluIHRoaXMgcGF0Y2guCj4gPj4+IFdpbGwgYWRkIGxpbWl0ZWQgcmFuZ2UgYWxvbmcg d2l0aCBCVDIwMjAgd2l0aCBhIGxhdGVyIHBhdGNoLiBUaGlzCj4gPj4+IHNob3VsZCB1bmJsb2Nr IGFsbCB0aGUgY3VycmVudCBZVVYgRnVsbCBSYW5nZSBwbGFuYXIgZm9ybWF0IGltcGxlbWVudGF0 aW9uLgo+ID4+IEhvcGUgdGhpcyBpcyBvayA/Cj4gPj4+IFRoYW5rcyBmb3IgdGhlIHJldmlldyBN YWFydGVuLiBXaWxsIHNlbmQgb3V0IHRoZSB1cGRhdGVkIHBhdGNoIGJhc2VkCj4gPj4+IG9uIHlv dXIgcmVjb21tZW5kYXRpb25zLgo+ID4+IFRoaXMgd291bGQgd29yayBmb3IgTlYxMiwgYnV0IHdo YXQgYWJvdXQgUDAxWCBvciB0aGUgWTIxWCBmb3JtYXRzPyBEbyB0aGV5Cj4gPj4gbmVlZCBzbGln aHRseSBkaWZmZXJlbnQgY29lZmZpY2llbnRzIGZvciBlYWNoPwo+ID4gQWxsIHRoZSBwbGFuYXIg Zm9ybWF0cyB3aWxsIGJlIHVwIHNhbXBsZWQgYmVmb3JlIGNvbnZlcnNpb24uIFNvIHN0YW5kYXJk IFlVViB0bwo+ID4gUkdCIGNvbnZlcnNpb24gbWF0cml4IHNob3VsZCB3b3JrIGV2ZW4gZm9yIFAw MVggYW5kIFkyMVggZm9ybWF0cy4KPiBOb3Qgb3Bwb3NlZCB0byBoYXJkY29kaW5nIHRoZW4sIGJ1 dCB3b3VsZCBiZSBuaWNlIHRvIGhhdmUgdGhvc2UgdmFsdWVzIGluIG5pY2Ugc3RhdGljIGNvbnN0 IHUxNlszXVszXSBhcnJheSBpbnN0ZWFkIG9mIGEgYnVuY2ggb2YgZGVmaW5lcy4uCgpKdXN0IGxp a2UgY2h2X3VwZGF0ZV9jc2MoKSBhbHJlYWR5IGRvZXMgaXQuCgpJJ2QgYWN0dWFsbHkgbGlrZSB0 byBzZWUgYSB0b29sIGluIGlndCB0aGF0IHdvdWxkIGJlIGNhcGFibGUKb2YgY2FsY3VsYXRpbmcg dGhlIGNvZWZmaWNpZW50cyBmb3IgZWFjaCBoYXJkd2FyZSBnZW5lcmF0aW9uCndpdGggYSBkaWZm ZXJlbnQgbWF0cml4LiBXZSBoYXZlIGlndF9jb2xvcl9lbmNvZGluZyBzbyBpdApzaG91bGQgYmUg bW9zdGx5IGEgbWF0dGVyIG9mIGNvbnZlcnRpbmcgdGhlIHJlc3VsdGluZyBtYXRyaXgKdG8gdGhl IGNvcnJlY3QgZml4ZWQgcG9pbnQgKG9yIHdoYXRldmVyKSBwcmVjaXNpb24uCgotLSAKVmlsbGUg U3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=