From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v3 3/3] drm/bridge: add Silicon Image SiI8620 driver Date: Fri, 30 Sep 2016 12:07:14 +0200 Message-ID: <20160930100714.GL25432@dvetter-linux.ger.corp.intel.com> References: <1473842027-21670-4-git-send-email-a.hajda@samsung.com> <1474897203-2982-1-git-send-email-a.hajda@samsung.com> <4a86c5eb-a8b8-ae91-ac70-3d16b81096db@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9B15A6E9AA for ; Fri, 30 Sep 2016 10:07:19 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id p197so1228342wmg.1 for ; Fri, 30 Sep 2016 03:07:19 -0700 (PDT) Content-Disposition: inline In-Reply-To: <4a86c5eb-a8b8-ae91-ac70-3d16b81096db@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Archit Taneja Cc: Bartlomiej Zolnierkiewicz , Daniel Vetter , "open list:DRM DRIVERS" , Daniel Vetter , Marek Szyprowski List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBTZXAgMzAsIDIwMTYgYXQgMDk6MzA6MTZBTSArMDUzMCwgQXJjaGl0IFRhbmVqYSB3 cm90ZToKPiBIaSBBbmRyZXpqLAo+IAo+IE9uIDA5LzI2LzIwMTYgMDc6MTAgUE0sIEFuZHJ6ZWog SGFqZGEgd3JvdGU6Cj4gPiBTaUk4NjIwIHRyYW5zbWl0dGVyIGNvbnZlcnRzIGVUTURTL0hETUkg c2lnbmFsIHRvIE1ITCAzLjAuCj4gPiBJdCBpcyBjb250cm9sbGVkIHZpYSBJMkMgYnVzLiBJdHMg aW50ZXJhY3Rpb24gd2l0aCBvdGhlcgo+ID4gZGV2aWNlcyBpbiB2aWRlbyBwaXBlbGluZSBpcyBw ZXJmb3JtZWQgbWFpbmx5IG9uIEhXIGxldmVsLgo+ID4gVGhlIG9ubHkgaW50ZXJhY3Rpb24gaXQg ZG9lcyBvbiBkZXZpY2UgZHJpdmVyIGxldmVsIGlzCj4gPiBmaWx0ZXJpbmctb3V0IHVuc3VwcG9y dGVkIHZpZGVvIG1vZGVzLCBpdCBleHBvc2VzIGRybV9icmlkZ2UKPiA+IGludGVyZmFjZSB0byBw ZXJmb3JtIHRoaXMgb3BlcmF0aW9uLgo+IAo+IFRoZSBwYXRjaHNldCBsb29rcyBnb29kIHRvIG1l LiBJcyB0aGUgTUhMIGhlYWRlciBwYXRjaAo+IGFjY2VwdGVkPyBJIHdhcyB3b25kZXJpbmcgaG93 IHdlIHB1bGwgdGhpcyBpbi4KPiAKPiArRGFuaWVsCgpJIHRoaW5rIHNvbWVvbmUgd2l0aCByZWFs IGNsdWUgYWJvdXQgd2hhdCBNSEwgaXMgbmVlZHMgdG8gcmV2aWV3IHRoYXQKaGVhZGVyLiBBbHNv IEkgaGF2ZSBubyBpZGVhIHdoeSB0aGF0J3MgdW5kZXIgdmlkZW8vLCBpcyB0aGVyZSBhbm90aGVy CmRyaXZlciBpbiBtZWRpYSB3ZSB3YW50IHRvIHNoYXJlIHRoaXMgd2l0aD8KLURhbmllbAoKPiAK PiBUaGFua3MsCj4gQXJjaGl0Cj4gCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEFuZHJ6ZWogSGFq ZGEgPGEuaGFqZGFAc2Ftc3VuZy5jb20+Cj4gPiAtLS0KPiA+IHYzOgo+ID4gICAtIG1vZGlmaWVk IGRyaXZlciBkZXNjcmlwdGlvbiwKPiA+ICAgLSByZW1vdmVkIGR1bW15IGJyaWRnZSBjYWxsYmFj a3MsCj4gPiAgIC0gcmVtb3ZlZCBsb2NraW5nIGZyb20gZHJpdmVyIHJlbW92ZSBmdW5jdGlvbi4K PiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZyAgICAgICB8ICAgIDcg Kwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvTWFrZWZpbGUgICAgICB8ICAgIDEgKwo+ID4g IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuYyB8IDE1NTcgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNp aTg2MjAuaCB8IDE1MTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgNCBm aWxlcyBjaGFuZ2VkLCAzMDgyIGluc2VydGlvbnMoKykKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jCj4gPiAgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuaAo+ID4gCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9LY29uZmlnCj4gPiBpbmRleCBiNTkwZTY3Li5lN2ZiMTc5IDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL0tjb25maWcKPiA+IEBAIC01MCw2ICs1MCwxMyBAQCBjb25maWcgRFJNX1BBUkFERV9Q Uzg2MjIKPiA+ICAJLS0taGVscC0tLQo+ID4gIAkgIFBhcmFkZSBlRFAtTFZEUyBicmlkZ2UgY2hp cCBkcml2ZXIuCj4gPiAKPiA+ICtjb25maWcgRFJNX1NJTF9TSUk4NjIwCj4gPiArCXRyaXN0YXRl ICJTaWxpY29uIEltYWdlIFNJSTg2MjAgSERNSS9NSEwgYnJpZGdlIgo+ID4gKwlkZXBlbmRzIG9u IE9GCj4gPiArCXNlbGVjdCBEUk1fS01TX0hFTFBFUgo+ID4gKwloZWxwCj4gPiArCSAgU2lsaWNv biBJbWFnZSBTSUk4NjIwIEhETUkvTUhMIGJyaWRnZSBjaGlwIGRyaXZlci4KPiA+ICsKPiA+ICBj b25maWcgRFJNX1NJSTkwMlgKPiA+ICAJdHJpc3RhdGUgIlNpbGljb24gSW1hZ2Ugc2lpOTAyeCBS R0IvSERNSSBicmlkZ2UiCj4gPiAgCWRlcGVuZHMgb24gT0YKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtl ZmlsZQo+ID4gaW5kZXggZWZkYjA3ZS4uMzA0Y2Y5ZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvTWFrZWZpbGUKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv TWFrZWZpbGUKPiA+IEBAIC01LDYgKzUsNyBAQCBvYmotJChDT05GSUdfRFJNX0RXX0hETUkpICs9 IGR3LWhkbWkubwo+ID4gIG9iai0kKENPTkZJR19EUk1fRFdfSERNSV9BSEJfQVVESU8pICs9IGR3 LWhkbWktYWhiLWF1ZGlvLm8KPiA+ICBvYmotJChDT05GSUdfRFJNX05YUF9QVE4zNDYwKSArPSBu eHAtcHRuMzQ2MC5vCj4gPiAgb2JqLSQoQ09ORklHX0RSTV9QQVJBREVfUFM4NjIyKSArPSBwYXJh ZGUtcHM4NjIyLm8KPiA+ICtvYmotJChDT05GSUdfRFJNX1NJTF9TSUk4NjIwKSArPSBzaWwtc2lp ODYyMC5vCj4gPiAgb2JqLSQoQ09ORklHX0RSTV9TSUk5MDJYKSArPSBzaWk5MDJ4Lm8KPiA+ICBv YmotJChDT05GSUdfRFJNX1RPU0hJQkFfVEMzNTg3NjcpICs9IHRjMzU4NzY3Lm8KPiA+ICBvYmot JChDT05GSUdfRFJNX0FOQUxPR0lYX0RQKSArPSBhbmFsb2dpeC8KPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL3NpbC1zaWk4NjIwLmMKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAw MDAwLi45MDdjNjEyCj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3NpbC1zaWk4NjIwLmMKPiA+IEBAIC0wLDAgKzEsMTU1NyBAQAo+ID4gKy8qCj4gPiAr ICogU2lsaWNvbiBJbWFnZSBTaUk4NjIwIEhETUkvTUhMIGJyaWRnZSBkcml2ZXIKPiA+ICsgKgo+ ID4gKyAqIENvcHlyaWdodCAoQykgMjAxNSwgU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4K PiA+ICsgKiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgo+ID4gKyAqCj4gPiAr ICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKPiA+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwo+ID4gKyAqIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ID4gKyAqLwo+ID4gKwo+ID4gKyNpbmNsdWRlIDxk cm0vZHJtX2NydGMuaD4KPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+Cj4gPiArCj4gPiAr I2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgo+ID4g KyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L2ky Yy5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KPiA+ICsjaW5jbHVkZSA8bGlu dXgvaXJxLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgo+ID4gKyNpbmNsdWRlIDxs aW51eC9saXN0Lmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L21obC5oPgo+ID4gKyNpbmNsdWRlIDxs aW51eC9tb2R1bGUuaD4KPiA+ICsjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KPiA+ICsjaW5jbHVk ZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L3NsYWIu aD4KPiA+ICsKPiA+ICsjaW5jbHVkZSAic2lsLXNpaTg2MjAuaCIKPiA+ICsKPiA+ICsjZGVmaW5l IFZBTF9SWF9IRE1JX0NUUkwyX0RFRlZBTAlWQUxfUlhfSERNSV9DVFJMMl9JRExFX0NOVCgzKQo+ ID4gKwo+ID4gK2VudW0gc2lpODYyMF9tb2RlIHsKPiA+ICsJQ01fRElTQ09OTkVDVEVELAo+ID4g KwlDTV9ESVNDT1ZFUlksCj4gPiArCUNNX01ITDEsCj4gPiArCUNNX01ITDMsCj4gPiArCUNNX0VD QlVTX1MKPiA+ICt9Owo+ID4gKwo+ID4gK2VudW0gc2lpODYyMF9zaW5rX3R5cGUgewo+ID4gKwlT SU5LX05PTkUsCj4gPiArCVNJTktfSERNSSwKPiA+ICsJU0lOS19EVkkKPiA+ICt9Owo+ID4gKwo+ ID4gK2VudW0gc2lpODYyMF9tdF9zdGF0ZSB7Cj4gPiArCU1UX1NUQVRFX1JFQURZLAo+ID4gKwlN VF9TVEFURV9CVVNZLAo+ID4gKwlNVF9TVEFURV9ET05FCj4gPiArfTsKPiA+ICsKPiA+ICtzdHJ1 Y3Qgc2lpODYyMCB7Cj4gPiArCXN0cnVjdCBkcm1fYnJpZGdlIGJyaWRnZTsKPiA+ICsJc3RydWN0 IGRldmljZSAqZGV2Owo+ID4gKwlzdHJ1Y3QgY2xrICpjbGtfeHRhbDsKPiA+ICsJc3RydWN0IGdw aW9fZGVzYyAqZ3Bpb19yZXNldDsKPiA+ICsJc3RydWN0IGdwaW9fZGVzYyAqZ3Bpb19pbnQ7Cj4g PiArCXN0cnVjdCByZWd1bGF0b3JfYnVsa19kYXRhIHN1cHBsaWVzWzJdOwo+ID4gKwlzdHJ1Y3Qg bXV0ZXggbG9jazsgLyogY29udGV4dCBsb2NrLCBwcm90ZWN0cyBmaWVsZHMgYmVsb3cgKi8KPiA+ ICsJaW50IGVycm9yOwo+ID4gKwllbnVtIHNpaTg2MjBfbW9kZSBtb2RlOwo+ID4gKwllbnVtIHNp aTg2MjBfc2lua190eXBlIHNpbmtfdHlwZTsKPiA+ICsJdTggY2J1c19zdGF0dXM7Cj4gPiArCXU4 IHN0YXRbTUhMX0RTVF9TSVpFXTsKPiA+ICsJdTggeHN0YXRbTUhMX1hEU19TSVpFXTsKPiA+ICsJ dTggZGV2Y2FwW01ITF9EQ0FQX1NJWkVdOwo+ID4gKwl1OCB4ZGV2Y2FwW01ITF9YRENfU0laRV07 Cj4gPiArCXU4IGF2aWZbMTldOwo+ID4gKwlzdHJ1Y3QgZWRpZCAqZWRpZDsKPiA+ICsJdW5zaWdu ZWQgaW50IGdlbjJfd3JpdGVfYnVyc3Q6MTsKPiA+ICsJZW51bSBzaWk4NjIwX210X3N0YXRlIG10 X3N0YXRlOwo+ID4gKwlzdHJ1Y3QgbGlzdF9oZWFkIG10X3F1ZXVlOwo+ID4gK307Cj4gPiArCj4g PiArc3RydWN0IHNpaTg2MjBfbXRfbXNnOwo+ID4gKwo+ID4gK3R5cGVkZWYgdm9pZCAoKnNpaTg2 MjBfbXRfbXNnX2NiKShzdHJ1Y3Qgc2lpODYyMCAqY3R4LAo+ID4gKwkJCQkgIHN0cnVjdCBzaWk4 NjIwX210X21zZyAqbXNnKTsKPiA+ICsKPiA+ICtzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cgewo+ID4g KwlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7Cj4gPiArCXU4IHJlZ1s0XTsKPiA+ICsJdTggcmV0Owo+ ID4gKwlzaWk4NjIwX210X21zZ19jYiBzZW5kOwo+ID4gKwlzaWk4NjIwX210X21zZ19jYiByZWN2 Owo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIGNvbnN0IHU4IHNpaTg2MjBfaTJjX3BhZ2VbXSA9 IHsKPiA+ICsJMHgzOSwgLyogTWFpbiBTeXN0ZW0gKi8KPiA+ICsJMHgzZCwgLyogVERNIGFuZCBI U0lDICovCj4gPiArCTB4NDksIC8qIFRNRFMgUmVjZWl2ZXIsIE1ITCBFRElEICovCj4gPiArCTB4 NGQsIC8qIGVNU0MsIEhEQ1AsIEhTSUMgKi8KPiA+ICsJMHg1ZCwgLyogTUhMIFNwZWMgKi8KPiA+ ICsJMHg2NCwgLyogTUhMIENCVVMgKi8KPiA+ICsJMHg1OSwgLyogSGFyZHdhcmUgVFBJIChUcmFu c21pdHRlciBQcm9ncmFtbWluZyBJbnRlcmZhY2UpICovCj4gPiArCTB4NjEsIC8qIGVDQlVTLVMs IGVDQlVTLUQgKi8KPiA+ICt9Owo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfZmV0Y2hf ZWRpZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KTsKPiA+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX3NldF91 cHN0cmVhbV9lZGlkKHN0cnVjdCBzaWk4NjIwICpjdHgpOwo+ID4gK3N0YXRpYyB2b2lkIHNpaTg2 MjBfZW5hYmxlX2hwZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KTsKPiA+ICtzdGF0aWMgdm9pZCBzaWk4 NjIwX21obF9kaXNjb25uZWN0ZWQoc3RydWN0IHNpaTg2MjAgKmN0eCk7Cj4gPiArCj4gPiArc3Rh dGljIGludCBzaWk4NjIwX2NsZWFyX2Vycm9yKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gPiArewo+ ID4gKwlpbnQgcmV0ID0gY3R4LT5lcnJvcjsKPiA+ICsKPiA+ICsJY3R4LT5lcnJvciA9IDA7Cj4g PiArCXJldHVybiByZXQ7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfcmVh ZF9idWYoc3RydWN0IHNpaTg2MjAgKmN0eCwgdTE2IGFkZHIsIHU4ICpidWYsIGludCBsZW4pCj4g PiArewo+ID4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjdHgtPmRldjsKPiA+ICsJc3RydWN0IGky Y19jbGllbnQgKmNsaWVudCA9IHRvX2kyY19jbGllbnQoZGV2KTsKPiA+ICsJdTggZGF0YSA9IGFk ZHI7Cj4gPiArCXN0cnVjdCBpMmNfbXNnIG1zZ1tdID0gewo+ID4gKwkJewo+ID4gKwkJCS5hZGRy ID0gc2lpODYyMF9pMmNfcGFnZVthZGRyID4+IDhdLAo+ID4gKwkJCS5mbGFncyA9IGNsaWVudC0+ ZmxhZ3MsCj4gPiArCQkJLmxlbiA9IDEsCj4gPiArCQkJLmJ1ZiA9ICZkYXRhCj4gPiArCQl9LAo+ ID4gKwkJewo+ID4gKwkJCS5hZGRyID0gc2lpODYyMF9pMmNfcGFnZVthZGRyID4+IDhdLAo+ID4g KwkJCS5mbGFncyA9IGNsaWVudC0+ZmxhZ3MgfCBJMkNfTV9SRCwKPiA+ICsJCQkubGVuID0gbGVu LAo+ID4gKwkJCS5idWYgPSBidWYKPiA+ICsJCX0sCj4gPiArCX07Cj4gPiArCWludCByZXQ7Cj4g PiArCj4gPiArCWlmIChjdHgtPmVycm9yKQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gKwlyZXQg PSBpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCBtc2csIDIpOwo+ID4gKwlkZXZfZGJnKGRl diwgInJlYWQgYXQgJTA0eDogJSpwaCwgJWRcbiIsIGFkZHIsIGxlbiwgYnVmLCByZXQpOwo+ID4g Kwo+ID4gKwlpZiAocmV0ICE9IDIpIHsKPiA+ICsJCWRldl9lcnIoZGV2LCAiUmVhZCBhdCAlIzA2 eCBvZiAlZCBieXRlcyBmYWlsZWQgd2l0aCBjb2RlICVkLlxuIiwKPiA+ICsJCQlhZGRyLCBsZW4s IHJldCk7Cj4gPiArCQljdHgtPmVycm9yID0gcmV0IDwgMCA/IHJldCA6IC1FSU87Cj4gPiArCX0K PiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHU4IHNpaTg2MjBfcmVhZGIoc3RydWN0IHNpaTg2MjAg KmN0eCwgdTE2IGFkZHIpCj4gPiArewo+ID4gKwl1OCByZXQ7Cj4gPiArCj4gPiArCXNpaTg2MjBf cmVhZF9idWYoY3R4LCBhZGRyLCAmcmV0LCAxKTsKPiA+ICsJcmV0dXJuIHJldDsKPiA+ICt9Cj4g PiArCj4gPiArc3RhdGljIHZvaWQgc2lpODYyMF93cml0ZV9idWYoc3RydWN0IHNpaTg2MjAgKmN0 eCwgdTE2IGFkZHIsIGNvbnN0IHU4ICpidWYsCj4gPiArCQkJICAgICAgaW50IGxlbikKPiA+ICt7 Cj4gPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2Owo+ID4gKwlzdHJ1Y3QgaTJjX2Ns aWVudCAqY2xpZW50ID0gdG9faTJjX2NsaWVudChkZXYpOwo+ID4gKwl1OCBkYXRhWzJdOwo+ID4g KwlzdHJ1Y3QgaTJjX21zZyBtc2cgPSB7Cj4gPiArCQkuYWRkciA9IHNpaTg2MjBfaTJjX3BhZ2Vb YWRkciA+PiA4XSwKPiA+ICsJCS5mbGFncyA9IGNsaWVudC0+ZmxhZ3MsCj4gPiArCQkubGVuID0g bGVuICsgMSwKPiA+ICsJfTsKPiA+ICsJaW50IHJldDsKPiA+ICsKPiA+ICsJaWYgKGN0eC0+ZXJy b3IpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCWlmIChsZW4gPiAxKSB7Cj4gPiArCQltc2cu YnVmID0ga21hbGxvYyhsZW4gKyAxLCBHRlBfS0VSTkVMKTsKPiA+ICsJCWlmICghbXNnLmJ1Zikg ewo+ID4gKwkJCWN0eC0+ZXJyb3IgPSAtRU5PTUVNOwo+ID4gKwkJCXJldHVybjsKPiA+ICsJCX0K PiA+ICsJCW1lbWNweShtc2cuYnVmICsgMSwgYnVmLCBsZW4pOwo+ID4gKwl9IGVsc2Ugewo+ID4g KwkJbXNnLmJ1ZiA9IGRhdGE7Cj4gPiArCQltc2cuYnVmWzFdID0gKmJ1ZjsKPiA+ICsJfQo+ID4g Kwo+ID4gKwltc2cuYnVmWzBdID0gYWRkcjsKPiA+ICsKPiA+ICsJcmV0ID0gaTJjX3RyYW5zZmVy KGNsaWVudC0+YWRhcHRlciwgJm1zZywgMSk7Cj4gPiArCWRldl9kYmcoZGV2LCAid3JpdGUgYXQg JTA0eDogJSpwaCwgJWRcbiIsIGFkZHIsIGxlbiwgYnVmLCByZXQpOwo+ID4gKwo+ID4gKwlpZiAo cmV0ICE9IDEpIHsKPiA+ICsJCWRldl9lcnIoZGV2LCAiV3JpdGUgYXQgJSMwNnggb2YgJSpwaCBm YWlsZWQgd2l0aCBjb2RlICVkLlxuIiwKPiA+ICsJCQlhZGRyLCBsZW4sIGJ1ZiwgcmV0KTsKPiA+ ICsJCWN0eC0+ZXJyb3IgPSByZXQgPzogLUVJTzsKPiA+ICsJfQo+ID4gKwo+ID4gKwlpZiAobGVu ID4gMSkKPiA+ICsJCWtmcmVlKG1zZy5idWYpOwo+ID4gK30KPiA+ICsKPiA+ICsjZGVmaW5lIHNp aTg2MjBfd3JpdGUoY3R4LCBhZGRyLCBhcnIuLi4pIFwKPiA+ICsoe1wKPiA+ICsJdTggZFtdID0g eyBhcnIgfTsgXAo+ID4gKwlzaWk4NjIwX3dyaXRlX2J1ZihjdHgsIGFkZHIsIGQsIEFSUkFZX1NJ WkUoZCkpOyBcCj4gPiArfSkKPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBfX3NpaTg2MjBfd3JpdGVf c2VxKHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiAqc2VxLCBpbnQgbGVuKQo+ID4gK3sKPiA+ICsJ aW50IGk7Cj4gPiArCj4gPiArCWZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gMikKPiA+ICsJCXNp aTg2MjBfd3JpdGUoY3R4LCBzZXFbaV0sIHNlcVtpICsgMV0pOwo+ID4gK30KPiA+ICsKPiA+ICsj ZGVmaW5lIHNpaTg2MjBfd3JpdGVfc2VxKGN0eCwgc2VxLi4uKSBcCj4gPiArKHtcCj4gPiArCXUx NiBkW10gPSB7IHNlcSB9OyBcCj4gPiArCV9fc2lpODYyMF93cml0ZV9zZXEoY3R4LCBkLCBBUlJB WV9TSVpFKGQpKTsgXAo+ID4gK30pCj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2lpODYyMF9zZXRi aXRzKHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiBhZGRyLCB1OCBtYXNrLCB1OCB2YWwpCj4gPiAr ewo+ID4gKwl2YWwgPSAodmFsICYgbWFzaykgfCAoc2lpODYyMF9yZWFkYihjdHgsIGFkZHIpICYg fm1hc2spOwo+ID4gKwlzaWk4NjIwX3dyaXRlKGN0eCwgYWRkciwgdmFsKTsKPiA+ICt9Cj4gPiAr Cj4gPiArc3RhdGljIHZvaWQgc2lpODYyMF9tdF9jbGVhbnVwKHN0cnVjdCBzaWk4NjIwICpjdHgp Cj4gPiArewo+ID4gKwlzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cgKm1zZywgKm47Cj4gPiArCj4gPiAr CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShtc2csIG4sICZjdHgtPm10X3F1ZXVlLCBub2RlKSB7 Cj4gPiArCQlsaXN0X2RlbCgmbXNnLT5ub2RlKTsKPiA+ICsJCWtmcmVlKG1zZyk7Cj4gPiArCX0K PiA+ICsJY3R4LT5tdF9zdGF0ZSA9IE1UX1NUQVRFX1JFQURZOwo+ID4gK30KPiA+ICsKPiA+ICtz dGF0aWMgdm9pZCBzaWk4NjIwX210X3dvcmsoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiA+ICt7Cj4g PiArCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnOwo+ID4gKwo+ID4gKwlpZiAoY3R4LT5lcnJv cikKPiA+ICsJCXJldHVybjsKPiA+ICsJaWYgKGN0eC0+bXRfc3RhdGUgPT0gTVRfU1RBVEVfQlVT WSB8fCBsaXN0X2VtcHR5KCZjdHgtPm10X3F1ZXVlKSkKPiA+ICsJCXJldHVybjsKPiA+ICsKPiA+ ICsJaWYgKGN0eC0+bXRfc3RhdGUgPT0gTVRfU1RBVEVfRE9ORSkgewo+ID4gKwkJY3R4LT5tdF9z dGF0ZSA9IE1UX1NUQVRFX1JFQURZOwo+ID4gKwkJbXNnID0gbGlzdF9maXJzdF9lbnRyeSgmY3R4 LT5tdF9xdWV1ZSwgc3RydWN0IHNpaTg2MjBfbXRfbXNnLAo+ID4gKwkJCQkgICAgICAgbm9kZSk7 Cj4gPiArCQlpZiAobXNnLT5yZWN2KQo+ID4gKwkJCW1zZy0+cmVjdihjdHgsIG1zZyk7Cj4gPiAr CQlsaXN0X2RlbCgmbXNnLT5ub2RlKTsKPiA+ICsJCWtmcmVlKG1zZyk7Cj4gPiArCX0KPiA+ICsK PiA+ICsJaWYgKGN0eC0+bXRfc3RhdGUgIT0gTVRfU1RBVEVfUkVBRFkgfHwgbGlzdF9lbXB0eSgm Y3R4LT5tdF9xdWV1ZSkpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCWN0eC0+bXRfc3RhdGUg PSBNVF9TVEFURV9CVVNZOwo+ID4gKwltc2cgPSBsaXN0X2ZpcnN0X2VudHJ5KCZjdHgtPm10X3F1 ZXVlLCBzdHJ1Y3Qgc2lpODYyMF9tdF9tc2csIG5vZGUpOwo+ID4gKwlpZiAobXNnLT5zZW5kKQo+ ID4gKwkJbXNnLT5zZW5kKGN0eCwgbXNnKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQg c2lpODYyMF9tdF9tc2NfY21kX3NlbmQoc3RydWN0IHNpaTg2MjAgKmN0eCwKPiA+ICsJCQkJICAg ICAgIHN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnKQo+ID4gK3sKPiA+ICsJc3dpdGNoIChtc2ct PnJlZ1swXSkgewo+ID4gKwljYXNlIE1ITF9XUklURV9TVEFUOgo+ID4gKwljYXNlIE1ITF9TRVRf SU5UOgo+ID4gKwkJc2lpODYyMF93cml0ZV9idWYoY3R4LCBSRUdfTVNDX0NNRF9PUl9PRkZTRVQs IG1zZy0+cmVnICsgMSwgMik7Cj4gPiArCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX01TQ19DT01N QU5EX1NUQVJULAo+ID4gKwkJCSAgICAgIEJJVF9NU0NfQ09NTUFORF9TVEFSVF9XUklURV9TVEFU KTsKPiA+ICsJCWJyZWFrOwo+ID4gKwljYXNlIE1ITF9NU0NfTVNHOgo+ID4gKwkJc2lpODYyMF93 cml0ZV9idWYoY3R4LCBSRUdfTVNDX0NNRF9PUl9PRkZTRVQsIG1zZy0+cmVnLCAzKTsKPiA+ICsJ CXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfTVNDX0NPTU1BTkRfU1RBUlQsCj4gPiArCQkJICAgICAg QklUX01TQ19DT01NQU5EX1NUQVJUX01TQ19NU0cpOwo+ID4gKwkJYnJlYWs7Cj4gPiArCWRlZmF1 bHQ6Cj4gPiArCQlkZXZfZXJyKGN0eC0+ZGV2LCAiJXM6IGNvbW1hbmQgJSN4IG5vdCBzdXBwb3J0 ZWRcbiIsIF9fZnVuY19fLAo+ID4gKwkJCW1zZy0+cmVnWzBdKTsKPiA+ICsJfQo+ID4gK30KPiA+ ICsKPiA+ICtzdGF0aWMgc3RydWN0IHNpaTg2MjBfbXRfbXNnICpzaWk4NjIwX210X21zZ19uZXco c3RydWN0IHNpaTg2MjAgKmN0eCkKPiA+ICt7Cj4gPiArCXN0cnVjdCBzaWk4NjIwX210X21zZyAq bXNnID0ga3phbGxvYyhzaXplb2YoKm1zZyksIEdGUF9LRVJORUwpOwo+ID4gKwo+ID4gKwlpZiAo IW1zZykKPiA+ICsJCWN0eC0+ZXJyb3IgPSAtRU5PTUVNOwo+ID4gKwllbHNlCj4gPiArCQlsaXN0 X2FkZF90YWlsKCZtc2ctPm5vZGUsICZjdHgtPm10X3F1ZXVlKTsKPiA+ICsKPiA+ICsJcmV0dXJu IG1zZzsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2lpODYyMF9tdF9tc2NfY21kKHN0 cnVjdCBzaWk4NjIwICpjdHgsIHU4IGNtZCwgdTggYXJnMSwgdTggYXJnMikKPiA+ICt7Cj4gPiAr CXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnID0gc2lpODYyMF9tdF9tc2dfbmV3KGN0eCk7Cj4g PiArCj4gPiArCWlmICghbXNnKQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gKwltc2ctPnJlZ1sw XSA9IGNtZDsKPiA+ICsJbXNnLT5yZWdbMV0gPSBhcmcxOwo+ID4gKwltc2ctPnJlZ1syXSA9IGFy ZzI7Cj4gPiArCW1zZy0+c2VuZCA9IHNpaTg2MjBfbXRfbXNjX2NtZF9zZW5kOwo+ID4gK30KPiA+ ICsKPiA+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX210X3dyaXRlX3N0YXQoc3RydWN0IHNpaTg2MjAg KmN0eCwgdTggcmVnLCB1OCB2YWwpCj4gPiArewo+ID4gKwlzaWk4NjIwX210X21zY19jbWQoY3R4 LCBNSExfV1JJVEVfU1RBVCwgcmVnLCB2YWwpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW5s aW5lIHZvaWQgc2lpODYyMF9tdF9zZXRfaW50KHN0cnVjdCBzaWk4NjIwICpjdHgsIHU4IGlycSwg dTggbWFzaykKPiA+ICt7Cj4gPiArCXNpaTg2MjBfbXRfbXNjX2NtZChjdHgsIE1ITF9TRVRfSU5U LCBpcnEsIG1hc2spOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX210X21z Y19tc2coc3RydWN0IHNpaTg2MjAgKmN0eCwgdTggY21kLCB1OCBkYXRhKQo+ID4gK3sKPiA+ICsJ c2lpODYyMF9tdF9tc2NfY21kKGN0eCwgTUhMX01TQ19NU0csIGNtZCwgZGF0YSk7Cj4gPiArfQo+ ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfcmFwKHN0cnVjdCBzaWk4NjIwICpjdHgs IHU4IGNvZGUpCj4gPiArewo+ID4gKwlzaWk4NjIwX210X21zY19tc2coY3R4LCBNSExfTVNDX01T R19SQVAsIGNvZGUpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX210X3Jl YWRfZGV2Y2FwX3NlbmQoc3RydWN0IHNpaTg2MjAgKmN0eCwKPiA+ICsJCQkJCXN0cnVjdCBzaWk4 NjIwX210X21zZyAqbXNnKQo+ID4gK3sKPiA+ICsJdTggY3RybCA9IEJJVF9FRElEX0NUUkxfREVW Q0FQX1NFTEVDVF9ERVZDQVAKPiA+ICsJCQl8IEJJVF9FRElEX0NUUkxfRURJRF9GSUZPX0FERFJf QVVUTwo+ID4gKwkJCXwgQklUX0VESURfQ1RSTF9FRElEX01PREVfRU47Cj4gPiArCj4gPiArCWlm IChtc2ctPnJlZ1swXSA9PSBNSExfUkVBRF9YREVWQ0FQKQo+ID4gKwkJY3RybCB8PSBCSVRfRURJ RF9DVFJMX1hERVZDQVBfRU47Cj4gPiArCj4gPiArCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKPiA+ ICsJCVJFR19JTlRSOV9NQVNLLCBCSVRfSU5UUjlfREVWQ0FQX0RPTkUsCj4gPiArCQlSRUdfRURJ RF9DVFJMLCBjdHJsLAo+ID4gKwkJUkVHX1RQSV9DQlVTX1NUQVJULCBCSVRfVFBJX0NCVVNfU1RB UlRfR0VUX0RFVkNBUF9TVEFSVAo+ID4gKwkpOwo+ID4gK30KPiA+ICsKPiA+ICsvKiBjb3B5IHNy YyB0byBkc3QgYW5kIHNldCBjaGFuZ2VkIGJpdHMgaW4gc3JjICovCj4gPiArc3RhdGljIHZvaWQg c2lpODYyMF91cGRhdGVfYXJyYXkodTggKmRzdCwgdTggKnNyYywgaW50IGNvdW50KQo+ID4gK3sK PiA+ICsJd2hpbGUgKC0tY291bnQgPj0gMCkgewo+ID4gKwkJKnNyYyBePSAqZHN0Owo+ID4gKwkJ KmRzdCsrIF49ICpzcmMrKzsKPiA+ICsJfQo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBz aWk4NjIwX21yX2RldmNhcChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ID4gK3sKPiA+ICsJc3RhdGlj IGNvbnN0IGNoYXIgKiBjb25zdCBzaW5rX3N0cltdID0gewo+ID4gKwkJW1NJTktfTk9ORV0gPSAi Tk9ORSIsCj4gPiArCQlbU0lOS19IRE1JXSA9ICJIRE1JIiwKPiA+ICsJCVtTSU5LX0RWSV0gPSAi RFZJIgo+ID4gKwl9Owo+ID4gKwo+ID4gKwl1OCBkY2FwW01ITF9EQ0FQX1NJWkVdOwo+ID4gKwlj aGFyIHNpbmtfbmFtZVsyMF07Cj4gPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2Owo+ ID4gKwo+ID4gKwlzaWk4NjIwX3JlYWRfYnVmKGN0eCwgUkVHX0VESURfRklGT19SRF9EQVRBLCBk Y2FwLCBNSExfRENBUF9TSVpFKTsKPiA+ICsJaWYgKGN0eC0+ZXJyb3IgPCAwKQo+ID4gKwkJcmV0 dXJuOwo+ID4gKwo+ID4gKwlkZXZfaW5mbyhkZXYsICJkY2FwOiAlKnBoXG4iLCBNSExfRENBUF9T SVpFLCBkY2FwKTsKPiA+ICsJZGV2X2luZm8oZGV2LCAiZGV0ZWN0ZWQgZG9uZ2xlIE1ITCAlZC4l ZCwgQ2hpcElEICUwMnglMDJ4OiUwMnglMDJ4XG4iLAo+ID4gKwkJZGNhcFtNSExfRENBUF9NSExf VkVSU0lPTl0gLyAxNiwgZGNhcFtNSExfRENBUF9NSExfVkVSU0lPTl0gJSAxNiwKPiA+ICsJCWRj YXBbTUhMX0RDQVBfQURPUFRFUl9JRF9IXSwgZGNhcFtNSExfRENBUF9BRE9QVEVSX0lEX0xdLAo+ ID4gKwkJZGNhcFtNSExfRENBUF9ERVZJQ0VfSURfSF0sIGRjYXBbTUhMX0RDQVBfREVWSUNFX0lE X0xdKTsKPiA+ICsJc2lpODYyMF91cGRhdGVfYXJyYXkoY3R4LT5kZXZjYXAsIGRjYXAsIE1ITF9E Q0FQX1NJWkUpOwo+ID4gKwo+ID4gKwlpZiAoIShkY2FwW01ITF9EQ0FQX0NBVF0gJiBNSExfRENB UF9DQVRfU0lOSykpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCXNpaTg2MjBfZmV0Y2hfZWRp ZChjdHgpOwo+ID4gKwlpZiAoIWN0eC0+ZWRpZCkgewo+ID4gKwkJZGV2X2VycihjdHgtPmRldiwg IkNhbm5vdCBmZXRjaCBFRElEXG4iKTsKPiA+ICsJCXNpaTg2MjBfbWhsX2Rpc2Nvbm5lY3RlZChj dHgpOwo+ID4gKwkJcmV0dXJuOwo+ID4gKwl9Cj4gPiArCj4gPiArCWlmIChkcm1fZGV0ZWN0X2hk bWlfbW9uaXRvcihjdHgtPmVkaWQpKQo+ID4gKwkJY3R4LT5zaW5rX3R5cGUgPSBTSU5LX0hETUk7 Cj4gPiArCWVsc2UKPiA+ICsJCWN0eC0+c2lua190eXBlID0gU0lOS19EVkk7Cj4gPiArCj4gPiAr CWRybV9lZGlkX2dldF9tb25pdG9yX25hbWUoY3R4LT5lZGlkLCBzaW5rX25hbWUsIEFSUkFZX1NJ WkUoc2lua19uYW1lKSk7Cj4gPiArCj4gPiArCWRldl9pbmZvKGRldiwgImRldGVjdGVkIHNpbmso dHlwZTogJXMpOiAlc1xuIiwKPiA+ICsJCXNpbmtfc3RyW2N0eC0+c2lua190eXBlXSwgc2lua19u YW1lKTsKPiA+ICsJc2lpODYyMF9zZXRfdXBzdHJlYW1fZWRpZChjdHgpOwo+ID4gKwlzaWk4NjIw X2VuYWJsZV9ocGQoY3R4KTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2lpODYyMF9t cl94ZGV2Y2FwKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gPiArewo+ID4gKwlzaWk4NjIwX3JlYWRf YnVmKGN0eCwgUkVHX0VESURfRklGT19SRF9EQVRBLCBjdHgtPnhkZXZjYXAsCj4gPiArCQkJIE1I TF9YRENfU0laRSk7Cj4gPiArCj4gPiArCXNpaTg2MjBfbXRfd3JpdGVfc3RhdChjdHgsIE1ITF9Y RFNfUkVHKENVUlJfRUNCVVNfTU9ERSksCj4gPiArCQkJICAgICAgTUhMX1hEU19FQ0JVU19TIHwg TUhMX1hEU19TTE9UX01PREVfOEJJVCk7Cj4gPiArCXNpaTg2MjBfbXRfcmFwKGN0eCwgTUhMX1JB UF9DQlVTX01PREVfVVApOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX210 X3JlYWRfZGV2Y2FwX3JlY3Yoc3RydWN0IHNpaTg2MjAgKmN0eCwKPiA+ICsJCQkJCXN0cnVjdCBz aWk4NjIwX210X21zZyAqbXNnKQo+ID4gK3sKPiA+ICsJdTggY3RybCA9IEJJVF9FRElEX0NUUkxf REVWQ0FQX1NFTEVDVF9ERVZDQVAKPiA+ICsJCXwgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQURE Ul9BVVRPCj4gPiArCQl8IEJJVF9FRElEX0NUUkxfRURJRF9NT0RFX0VOOwo+ID4gKwo+ID4gKwlp ZiAobXNnLT5yZWdbMF0gPT0gTUhMX1JFQURfWERFVkNBUCkKPiA+ICsJCWN0cmwgfD0gQklUX0VE SURfQ1RSTF9YREVWQ0FQX0VOOwo+ID4gKwo+ID4gKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCj4g PiArCQlSRUdfSU5UUjlfTUFTSywgQklUX0lOVFI5X0RFVkNBUF9ET05FIHwgQklUX0lOVFI5X0VE SURfRE9ORQo+ID4gKwkJCXwgQklUX0lOVFI5X0VESURfRVJST1IsCj4gPiArCQlSRUdfRURJRF9D VFJMLCBjdHJsLAo+ID4gKwkJUkVHX0VESURfRklGT19BRERSLCAwCj4gPiArCSk7Cj4gPiArCj4g PiArCWlmIChtc2ctPnJlZ1swXSA9PSBNSExfUkVBRF9YREVWQ0FQKQo+ID4gKwkJc2lpODYyMF9t cl94ZGV2Y2FwKGN0eCk7Cj4gPiArCWVsc2UKPiA+ICsJCXNpaTg2MjBfbXJfZGV2Y2FwKGN0eCk7 Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfcmVhZF9kZXZjYXAoc3Ry dWN0IHNpaTg2MjAgKmN0eCwgYm9vbCB4ZGV2Y2FwKQo+ID4gK3sKPiA+ICsJc3RydWN0IHNpaTg2 MjBfbXRfbXNnICptc2cgPSBzaWk4NjIwX210X21zZ19uZXcoY3R4KTsKPiA+ICsKPiA+ICsJaWYg KCFtc2cpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCW1zZy0+cmVnWzBdID0geGRldmNhcCA/ IE1ITF9SRUFEX1hERVZDQVAgOiBNSExfUkVBRF9ERVZDQVA7Cj4gPiArCW1zZy0+c2VuZCA9IHNp aTg2MjBfbXRfcmVhZF9kZXZjYXBfc2VuZDsKPiA+ICsJbXNnLT5yZWN2ID0gc2lpODYyMF9tdF9y ZWFkX2RldmNhcF9yZWN2Owo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX2Zl dGNoX2VkaWQoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiA+ICt7Cj4gPiArCXU4IGxtX2RkYywgZGRj X2NtZCwgaW50MywgY2J1czsKPiA+ICsJaW50IGZldGNoZWQsIGk7Cj4gPiArCWludCBlZGlkX2xl biA9IEVESURfTEVOR1RIOwo+ID4gKwl1OCAqZWRpZDsKPiA+ICsKPiA+ICsJc2lpODYyMF9yZWFk YihjdHgsIFJFR19DQlVTX1NUQVRVUyk7Cj4gPiArCWxtX2RkYyA9IHNpaTg2MjBfcmVhZGIoY3R4 LCBSRUdfTE1fRERDKTsKPiA+ICsJZGRjX2NtZCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfRERD X0NNRCk7Cj4gPiArCj4gPiArCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKPiA+ICsJCVJFR19JTlRS OV9NQVNLLCAwLAo+ID4gKwkJUkVHX0VESURfQ1RSTCwgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9f QUREUl9BVVRPLAo+ID4gKwkJUkVHX0hEQ1AyWF9QT0xMX0NTLCAweDcxLAo+ID4gKwkJUkVHX0hE Q1AyWF9DVFJMXzAsIEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9IRENQVFgsCj4gPiArCQlSRUdf TE1fRERDLCBsbV9kZGMgfCBCSVRfTE1fRERDX1NXX1RQSV9FTl9ESVNBQkxFRCwKPiA+ICsJKTsK PiA+ICsKPiA+ICsJZm9yIChpID0gMDsgaSA8IDI1NjsgKytpKSB7Cj4gPiArCQl1OCBkZGNfc3Rh dCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfRERDX1NUQVRVUyk7Cj4gPiArCj4gPiArCQlpZiAo IShkZGNfc3RhdCAmIEJJVF9ERENfU1RBVFVTX0REQ19JMkNfSU5fUFJPRykpCj4gPiArCQkJYnJl YWs7Cj4gPiArCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0REQ19TVEFUVVMsCj4gPiArCQkJICAg ICAgIEJJVF9ERENfU1RBVFVTX0REQ19GSUZPX0VNUFRZKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlz aWk4NjIwX3dyaXRlKGN0eCwgUkVHX0REQ19BRERSLCAweDUwIDw8IDEpOwo+ID4gKwo+ID4gKwll ZGlkID0ga21hbGxvYyhFRElEX0xFTkdUSCwgR0ZQX0tFUk5FTCk7Cj4gPiArCWlmICghZWRpZCkg ewo+ID4gKwkJY3R4LT5lcnJvciA9IC1FTk9NRU07Cj4gPiArCQlyZXR1cm47Cj4gPiArCX0KPiA+ ICsKPiA+ICsjZGVmaW5lIEZFVENIX1NJWkUgMTYKPiA+ICsJZm9yIChmZXRjaGVkID0gMDsgZmV0 Y2hlZCA8IGVkaWRfbGVuOyBmZXRjaGVkICs9IEZFVENIX1NJWkUpIHsKPiA+ICsJCXNpaTg2MjBf cmVhZGIoY3R4LCBSRUdfRERDX1NUQVRVUyk7Cj4gPiArCQlzaWk4NjIwX3dyaXRlX3NlcShjdHgs Cj4gPiArCQkJUkVHX0REQ19DTUQsIGRkY19jbWQgfCBWQUxfRERDX0NNRF9ERENfQ01EX0FCT1JU LAo+ID4gKwkJCVJFR19ERENfQ01ELCBkZGNfY21kIHwgVkFMX0REQ19DTURfRERDX0NNRF9DTEVB Ul9GSUZPLAo+ID4gKwkJCVJFR19ERENfU1RBVFVTLCBCSVRfRERDX1NUQVRVU19ERENfRklGT19F TVBUWQo+ID4gKwkJKTsKPiA+ICsJCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKPiA+ICsJCQlSRUdf RERDX1NFR00sIGZldGNoZWQgPj4gOCwKPiA+ICsJCQlSRUdfRERDX09GRlNFVCwgZmV0Y2hlZCAm IDB4ZmYsCj4gPiArCQkJUkVHX0REQ19ESU5fQ05UMSwgRkVUQ0hfU0laRSwKPiA+ICsJCQlSRUdf RERDX0RJTl9DTlQyLCAwLAo+ID4gKwkJCVJFR19ERENfQ01ELCBkZGNfY21kIHwgVkFMX0REQ19D TURfRU5IX0REQ19SRUFEX05PX0FDSwo+ID4gKwkJKTsKPiA+ICsKPiA+ICsJCWRvIHsKPiA+ICsJ CQlpbnQzID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19JTlRSMyk7Cj4gPiArCQkJY2J1cyA9IHNp aTg2MjBfcmVhZGIoY3R4LCBSRUdfQ0JVU19TVEFUVVMpOwo+ID4gKwo+ID4gKwkJCWlmIChpbnQz ICYgQklUX0REQ19DTURfRE9ORSkKPiA+ICsJCQkJYnJlYWs7Cj4gPiArCj4gPiArCQkJaWYgKCEo Y2J1cyAmIEJJVF9DQlVTX1NUQVRVU19DQlVTX0NPTk5FQ1RFRCkpIHsKPiA+ICsJCQkJa2ZyZWUo ZWRpZCk7Cj4gPiArCQkJCWVkaWQgPSBOVUxMOwo+ID4gKwkJCQlnb3RvIGVuZDsKPiA+ICsJCQl9 Cj4gPiArCQl9IHdoaWxlICgxKTsKPiA+ICsKPiA+ICsJCXNpaTg2MjBfcmVhZGIoY3R4LCBSRUdf RERDX1NUQVRVUyk7Cj4gPiArCQl3aGlsZSAoc2lpODYyMF9yZWFkYihjdHgsIFJFR19ERENfRE9V VF9DTlQpIDwgRkVUQ0hfU0laRSkKPiA+ICsJCQl1c2xlZXBfcmFuZ2UoMTAsIDIwKTsKPiA+ICsK PiA+ICsJCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfRERDX0RBVEEsIGVkaWQgKyBmZXRjaGVk LCBGRVRDSF9TSVpFKTsKPiA+ICsJCWlmIChmZXRjaGVkICsgRkVUQ0hfU0laRSA9PSBFRElEX0xF TkdUSCkgewo+ID4gKwkJCXU4IGV4dCA9ICgoc3RydWN0IGVkaWQgKillZGlkKS0+ZXh0ZW5zaW9u czsKPiA+ICsKPiA+ICsJCQlpZiAoZXh0KSB7Cj4gPiArCQkJCXU4ICpuZXdfZWRpZDsKPiA+ICsK PiA+ICsJCQkJZWRpZF9sZW4gKz0gZXh0ICogRURJRF9MRU5HVEg7Cj4gPiArCQkJCW5ld19lZGlk ID0ga3JlYWxsb2MoZWRpZCwgZWRpZF9sZW4sIEdGUF9LRVJORUwpOwo+ID4gKwkJCQlpZiAoIW5l d19lZGlkKSB7Cj4gPiArCQkJCQlrZnJlZShlZGlkKTsKPiA+ICsJCQkJCWN0eC0+ZXJyb3IgPSAt RU5PTUVNOwo+ID4gKwkJCQkJcmV0dXJuOwo+ID4gKwkJCQl9Cj4gPiArCQkJCWVkaWQgPSBuZXdf ZWRpZDsKPiA+ICsJCQl9Cj4gPiArCQl9Cj4gPiArCj4gPiArCQlpZiAoZmV0Y2hlZCArIEZFVENI X1NJWkUgPT0gZWRpZF9sZW4pCj4gPiArCQkJc2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRSMywg aW50Myk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJc2lpODYyMF93cml0ZShjdHgsIFJFR19MTV9EREMs IGxtX2RkYyk7Cj4gPiArCj4gPiArZW5kOgo+ID4gKwlrZnJlZShjdHgtPmVkaWQpOwo+ID4gKwlj dHgtPmVkaWQgPSAoc3RydWN0IGVkaWQgKillZGlkOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMg dm9pZCBzaWk4NjIwX3NldF91cHN0cmVhbV9lZGlkKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gPiAr ewo+ID4gKwlzaWk4NjIwX3NldGJpdHMoY3R4LCBSRUdfRFBELCBCSVRfRFBEX1BETlJYMTIgfCBC SVRfRFBEX1BESURDS19OCj4gPiArCQkJfCBCSVRfRFBEX1BEX01ITF9DTEtfTiwgMHhmZik7Cj4g PiArCj4gPiArCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKPiA+ICsJCVJFR19SWF9IRE1JX0NUUkwz LCAweDAwLAo+ID4gKwkJUkVHX1BLVF9GSUxURVJfMCwgMHhGRiwKPiA+ICsJCVJFR19QS1RfRklM VEVSXzEsIDB4RkYsCj4gPiArCQlSRUdfQUxJQ0UwX0JXX0kyQywgMHgwNgo+ID4gKwkpOwo+ID4g Kwo+ID4gKwlzaWk4NjIwX3NldGJpdHMoY3R4LCBSRUdfUlhfSERNSV9DTFJfQlVGRkVSLAo+ID4g KwkJCUJJVF9SWF9IRE1JX0NMUl9CVUZGRVJfVlNJX0NMUl9FTiwgMHhmZik7Cj4gPiArCj4gPiAr CXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKPiA+ICsJCVJFR19FRElEX0NUUkwsIEJJVF9FRElEX0NU UkxfRURJRF9GSUZPX0FERFJfQVVUTwo+ID4gKwkJCXwgQklUX0VESURfQ1RSTF9FRElEX01PREVf RU4sCj4gPiArCQlSRUdfRURJRF9GSUZPX0FERFIsIDAsCj4gPiArCSk7Cj4gPiArCj4gPiArCXNp aTg2MjBfd3JpdGVfYnVmKGN0eCwgUkVHX0VESURfRklGT19XUl9EQVRBLCAodTggKiljdHgtPmVk aWQsCj4gPiArCQkJKGN0eC0+ZWRpZC0+ZXh0ZW5zaW9ucyArIDEpICogRURJRF9MRU5HVEgpOwo+ ID4gKwo+ID4gKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCj4gPiArCQlSRUdfRURJRF9DVFJMLCBC SVRfRURJRF9DVFJMX0VESURfUFJJTUVfVkFMSUQKPiA+ICsJCQl8IEJJVF9FRElEX0NUUkxfRURJ RF9GSUZPX0FERFJfQVVUTwo+ID4gKwkJCXwgQklUX0VESURfQ1RSTF9FRElEX01PREVfRU4sCj4g PiArCQlSRUdfSU5UUjVfTUFTSywgQklUX0lOVFJfU0NEVF9DSEFOR0UsCj4gPiArCQlSRUdfSU5U UjlfTUFTSywgMAo+ID4gKwkpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBzaWk4NjIw X3h0YWxfc2V0X3JhdGUoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiA+ICt7Cj4gPiArCXN0YXRpYyBj b25zdCBzdHJ1Y3Qgewo+ID4gKwkJdW5zaWduZWQgaW50IHJhdGU7Cj4gPiArCQl1OCBkaXY7Cj4g PiArCQl1OCB0cDE7Cj4gPiArCX0gcmF0ZXNbXSA9IHsKPiA+ICsJCXsgMTkyMDAsIDB4MDQsIDB4 NTMgfSwKPiA+ICsJCXsgMjAwMDAsIDB4MDQsIDB4NjIgfSwKPiA+ICsJCXsgMjQwMDAsIDB4MDUs IDB4NzUgfSwKPiA+ICsJCXsgMzAwMDAsIDB4MDYsIDB4OTIgfSwKPiA+ICsJCXsgMzg0MDAsIDB4 MGMsIDB4YmMgfSwKPiA+ICsJfTsKPiA+ICsJdW5zaWduZWQgbG9uZyByYXRlID0gY2xrX2dldF9y YXRlKGN0eC0+Y2xrX3h0YWwpIC8gMTAwMDsKPiA+ICsJaW50IGk7Cj4gPiArCj4gPiArCWZvciAo aSA9IDA7IGkgPCBBUlJBWV9TSVpFKHJhdGVzKSAtIDE7ICsraSkKPiA+ICsJCWlmIChyYXRlIDw9 IHJhdGVzW2ldLnJhdGUpCj4gPiArCQkJYnJlYWs7Cj4gPiArCj4gPiArCWlmIChyYXRlICE9IHJh dGVzW2ldLnJhdGUpCj4gPiArCQlkZXZfZXJyKGN0eC0+ZGV2LCAieHRhbCBjbG9jayByYXRlKCVs dWtIeikgbm90IHN1cHBvcnRlZCwgc2V0dGluZyBNSEwgZm9yICV1a0h6LlxuIiwKPiA+ICsJCQly YXRlLCByYXRlc1tpXS5yYXRlKTsKPiA+ICsKPiA+ICsJc2lpODYyMF93cml0ZShjdHgsIFJFR19E SVZfQ1RMX01BSU4sIHJhdGVzW2ldLmRpdik7Cj4gPiArCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdf SERDUDJYX1RQMSwgcmF0ZXNbaV0udHAxKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCBz aWk4NjIwX2h3X29uKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gPiArewo+ID4gKwlpbnQgcmV0Owo+ ID4gKwo+ID4gKwlyZXQgPSByZWd1bGF0b3JfYnVsa19lbmFibGUoQVJSQVlfU0laRShjdHgtPnN1 cHBsaWVzKSwgY3R4LT5zdXBwbGllcyk7Cj4gPiArCWlmIChyZXQpCj4gPiArCQlyZXR1cm4gcmV0 Owo+ID4gKwl1c2xlZXBfcmFuZ2UoMTAwMDAsIDIwMDAwKTsKPiA+ICsJcmV0dXJuIGNsa19wcmVw YXJlX2VuYWJsZShjdHgtPmNsa194dGFsKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCBz aWk4NjIwX2h3X29mZihzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ID4gK3sKPiA+ICsJY2xrX2Rpc2Fi bGVfdW5wcmVwYXJlKGN0eC0+Y2xrX3h0YWwpOwo+ID4gKwlncGlvZF9zZXRfdmFsdWUoY3R4LT5n cGlvX3Jlc2V0LCAxKTsKPiA+ICsJcmV0dXJuIHJlZ3VsYXRvcl9idWxrX2Rpc2FibGUoQVJSQVlf U0laRShjdHgtPnN1cHBsaWVzKSwgY3R4LT5zdXBwbGllcyk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0 YXRpYyB2b2lkIHNpaTg2MjBfaHdfcmVzZXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiA+ICt7Cj4g PiArCXVzbGVlcF9yYW5nZSgxMDAwMCwgMjAwMDApOwo+ID4gKwlncGlvZF9zZXRfdmFsdWUoY3R4 LT5ncGlvX3Jlc2V0LCAwKTsKPiA+ICsJdXNsZWVwX3JhbmdlKDUwMDAsIDIwMDAwKTsKPiA+ICsJ Z3Bpb2Rfc2V0X3ZhbHVlKGN0eC0+Z3Bpb19yZXNldCwgMSk7Cj4gPiArCXVzbGVlcF9yYW5nZSgx MDAwMCwgMjAwMDApOwo+ID4gKwlncGlvZF9zZXRfdmFsdWUoY3R4LT5ncGlvX3Jlc2V0LCAwKTsK PiA+ICsJbXNsZWVwKDMwMCk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNpaTg2MjBf Y2J1c19yZXNldChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ID4gK3sKPiA+ICsJc2lpODYyMF93cml0 ZV9zZXEoY3R4LAo+ID4gKwkJUkVHX1BXRF9TUlNULCBCSVRfUFdEX1NSU1RfQ0JVU19SU1QKPiA+ ICsJCQl8IEJJVF9QV0RfU1JTVF9DQlVTX1JTVF9TV19FTiwKPiA+ICsJCVJFR19QV0RfU1JTVCwg QklUX1BXRF9TUlNUX0NCVVNfUlNUX1NXX0VOCj4gPiArCSk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0 YXRpYyB2b2lkIHNpaTg2MjBfc2V0X2F1dG9fem9uZShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ID4g K3sKPiA+ICsJaWYgKGN0eC0+bW9kZSAhPSBDTV9NSEwxKSB7Cj4gPiArCQlzaWk4NjIwX3dyaXRl X3NlcShjdHgsCj4gPiArCQkJUkVHX1RYX1pPTkVfQ1RMMSwgMHgwLAo+ID4gKwkJCVJFR19NSExf UExMX0NUTDAsIFZBTF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU9fMVgKPiA+ICsJCQkJfCBC SVRfTUhMX1BMTF9DVEwwX0NSWVNUQUxfQ0xLX1NFTAo+ID4gKwkJCQl8IEJJVF9NSExfUExMX0NU TDBfWk9ORV9NQVNLX09FCj4gPiArCQkpOwo+ID4gKwl9IGVsc2Ugewo+ID4gKwkJc2lpODYyMF93 cml0ZV9zZXEoY3R4LAo+ID4gKwkJCVJFR19UWF9aT05FX0NUTDEsIFZBTF9UWF9aT05FX0NUTDFf VFhfWk9ORV9DVFJMX01PREUsCj4gPiArCQkJUkVHX01ITF9QTExfQ1RMMCwgVkFMX01ITF9QTExf Q1RMMF9IRE1JX0NMS19SQVRJT18xWAo+ID4gKwkJCQl8IEJJVF9NSExfUExMX0NUTDBfWk9ORV9N QVNLX09FCj4gPiArCQkpOwo+ID4gKwl9Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNp aTg2MjBfc3RvcF92aWRlbyhzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ID4gK3sKPiA+ICsJdTggdW5p bml0aWFsaXplZF92YXIodmFsKTsKPiA+ICsKPiA+ICsJc2lpODYyMF93cml0ZV9zZXEoY3R4LAo+ ID4gKwkJUkVHX1RQSV9JTlRSX0VOLCAwLAo+ID4gKwkJUkVHX0hEQ1AyWF9JTlRSMF9NQVNLLCAw LAo+ID4gKwkJUkVHX1RQSV9DT1BQX0RBVEEyLCAwLAo+ID4gKwkJUkVHX1RQSV9JTlRSX1NUMCwg fjAsCj4gPiArCSk7Cj4gPiArCj4gPiArCXN3aXRjaCAoY3R4LT5zaW5rX3R5cGUpIHsKPiA+ICsJ Y2FzZSBTSU5LX0RWSToKPiA+ICsJCXZhbCA9IEJJVF9UUElfU0NfUkVHX1RNRFNfT0VfUE9XRVJf RE9XTgo+ID4gKwkJCXwgQklUX1RQSV9TQ19UUElfQVZfTVVURTsKPiA+ICsJCWJyZWFrOwo+ID4g KwljYXNlIFNJTktfSERNSToKPiA+ICsJCXZhbCA9IEJJVF9UUElfU0NfUkVHX1RNRFNfT0VfUE9X RVJfRE9XTgo+ID4gKwkJCXwgQklUX1RQSV9TQ19UUElfQVZfTVVURQo+ID4gKwkJCXwgQklUX1RQ SV9TQ19UUElfT1VUUFVUX01PREVfMF9IRE1JOwo+ID4gKwkJYnJlYWs7Cj4gPiArCWRlZmF1bHQ6 Cj4gPiArCQlyZXR1cm47Cj4gPiArCX0KPiA+ICsKPiA+ICsJc2lpODYyMF93cml0ZShjdHgsIFJF R19UUElfU0MsIHZhbCk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfc3Rh cnRfaGRtaShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ID4gK3sKPiA+ICsJc2lpODYyMF93cml0ZV9z ZXEoY3R4LAo+ID4gKwkJUkVHX1JYX0hETUlfQ1RSTDIsIFZBTF9SWF9IRE1JX0NUUkwyX0RFRlZB TAo+ID4gKwkJCXwgQklUX1JYX0hETUlfQ1RSTDJfVVNFX0FWX01VVEUsCj4gPiArCQlSRUdfVklE X09WUlJELCBCSVRfVklEX09WUlJEX1BQX0FVVE9fRElTQUJMRQo+ID4gKwkJCXwgQklUX1ZJRF9P VlJSRF9NMTA4MFBfT1ZSUkQsCj4gPiArCQlSRUdfVklEX01PREUsIDAsCj4gPiArCQlSRUdfTUhM X1RPUF9DVEwsIDB4MSwKPiA+ICsJCVJFR19NSExUWF9DVEw2LCAweGEwLAo+ID4gKwkJUkVHX1RQ SV9JTlBVVCwgVkFMX1RQSV9GT1JNQVQoUkdCLCBGVUxMKSwKPiA+ICsJCVJFR19UUElfT1VUUFVU LCBWQUxfVFBJX0ZPUk1BVChSR0IsIEZVTEwpLAo+ID4gKwkpOwo+ID4gKwo+ID4gKwlzaWk4NjIw X210X3dyaXRlX3N0YXQoY3R4LCBNSExfRFNUX1JFRyhMSU5LX01PREUpLAo+ID4gKwkJCU1ITF9E U1RfTE1fQ0xLX01PREVfTk9STUFMIHwgTUhMX0RTVF9MTV9QQVRIX0VOQUJMRUQpOwo+ID4gKwo+ ID4gKwlzaWk4NjIwX3NldF9hdXRvX3pvbmUoY3R4KTsKPiA+ICsKPiA+ICsJc2lpODYyMF93cml0 ZShjdHgsIFJFR19UUElfU0MsIEJJVF9UUElfU0NfVFBJX09VVFBVVF9NT0RFXzBfSERNSSk7Cj4g PiArCj4gPiArCXNpaTg2MjBfd3JpdGVfYnVmKGN0eCwgUkVHX1RQSV9BVklfQ0hTVU0sIGN0eC0+ YXZpZiwKPiA+ICsJCQkgIEFSUkFZX1NJWkUoY3R4LT5hdmlmKSk7Cj4gPiArCj4gPiArCXNpaTg2 MjBfd3JpdGUoY3R4LCBSRUdfUEtUX0ZJTFRFUl8wLCAweGExLCAweDIpOwo+ID4gK30KPiA+ICsK PiA+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX3N0YXJ0X3ZpZGVvKHN0cnVjdCBzaWk4NjIwICpjdHgp Cj4gPiArewo+ID4gKwlpZiAoY3R4LT5tb2RlIDwgQ01fTUhMMykKPiA+ICsJCXNpaTg2MjBfc3Rv cF92aWRlbyhjdHgpOwo+ID4gKwo+ID4gKwlzd2l0Y2ggKGN0eC0+c2lua190eXBlKSB7Cj4gPiAr CWNhc2UgU0lOS19IRE1JOgo+ID4gKwkJc2lpODYyMF9zdGFydF9oZG1pKGN0eCk7Cj4gPiArCQli cmVhazsKPiA+ICsJY2FzZSBTSU5LX0RWSToKPiA+ICsJZGVmYXVsdDoKPiA+ICsJCWJyZWFrOwo+ ID4gKwl9Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfZGlzYWJsZV9ocGQo c3RydWN0IHNpaTg2MjAgKmN0eCkKPiA+ICt7Cj4gPiArCXNpaTg2MjBfc2V0Yml0cyhjdHgsIFJF R19FRElEX0NUUkwsIEJJVF9FRElEX0NUUkxfRURJRF9QUklNRV9WQUxJRCwgMCk7Cj4gPiArCXNp aTg2MjBfd3JpdGVfc2VxKGN0eCwKPiA+ICsJCVJFR19IUERfQ1RSTCwgQklUX0hQRF9DVFJMX0hQ RF9PVVRfT1ZSX0VOLAo+ID4gKwkJUkVHX0lOVFI4X01BU0ssIDAKPiA+ICsJKTsKPiA+ICt9Cj4g PiArCj4gPiArc3RhdGljIHZvaWQgc2lpODYyMF9lbmFibGVfaHBkKHN0cnVjdCBzaWk4NjIwICpj dHgpCj4gPiArewo+ID4gKwlzaWk4NjIwX3NldGJpdHMoY3R4LCBSRUdfVE1EU19DU1RBVF9QMywK PiA+ICsJCQlCSVRfVE1EU19DU1RBVF9QM19TQ0RUX0NMUl9BVklfRElTCj4gPiArCQkJfCBCSVRf VE1EU19DU1RBVF9QM19DTFJfQVZJLCB+MCk7Cj4gPiArCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwK PiA+ICsJCVJFR19IUERfQ1RSTCwgQklUX0hQRF9DVFJMX0hQRF9PVVRfT1ZSX0VOCj4gPiArCQkJ fCBCSVRfSFBEX0NUUkxfSFBEX0hJR0gsCj4gPiArCSk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRp YyB2b2lkIHNpaTg2MjBfZW5hYmxlX2dlbjJfd3JpdGVfYnVyc3Qoc3RydWN0IHNpaTg2MjAgKmN0 eCkKPiA+ICt7Cj4gPiArCWlmIChjdHgtPmdlbjJfd3JpdGVfYnVyc3QpCj4gPiArCQlyZXR1cm47 Cj4gPiArCj4gPiArCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKPiA+ICsJCVJFR19NRFRfUkNWX1RJ TUVPVVQsIDEwMCwKPiA+ICsJCVJFR19NRFRfUkNWX0NUUkwsIEJJVF9NRFRfUkNWX0NUUkxfTURU X1JDVl9FTgo+ID4gKwkpOwo+ID4gKwljdHgtPmdlbjJfd3JpdGVfYnVyc3QgPSAxOwo+ID4gK30K PiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX2Rpc2FibGVfZ2VuMl93cml0ZV9idXJzdChz dHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ID4gK3sKPiA+ICsJaWYgKCFjdHgtPmdlbjJfd3JpdGVfYnVy c3QpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKPiA+ ICsJCVJFR19NRFRfWE1JVF9DVFJMLCAwLAo+ID4gKwkJUkVHX01EVF9SQ1ZfQ1RSTCwgMAo+ID4g KwkpOwo+ID4gKwljdHgtPmdlbjJfd3JpdGVfYnVyc3QgPSAwOwo+ID4gK30KPiA+ICsKPiA+ICtz dGF0aWMgdm9pZCBzaWk4NjIwX3N0YXJ0X2dlbjJfd3JpdGVfYnVyc3Qoc3RydWN0IHNpaTg2MjAg KmN0eCkKPiA+ICt7Cj4gPiArCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKPiA+ICsJCVJFR19NRFRf SU5UXzFfTUFTSywgQklUX01EVF9SQ1ZfVElNRU9VVAo+ID4gKwkJCXwgQklUX01EVF9SQ1ZfU01f QUJPUlRfUEtUX1JDVkQgfCBCSVRfTURUX1JDVl9TTV9FUlJPUgo+ID4gKwkJCXwgQklUX01EVF9Y TUlUX1RJTUVPVVQgfCBCSVRfTURUX1hNSVRfU01fQUJPUlRfUEtUX1JDVkQKPiA+ICsJCQl8IEJJ VF9NRFRfWE1JVF9TTV9FUlJPUiwKPiA+ICsJCVJFR19NRFRfSU5UXzBfTUFTSywgQklUX01EVF9Y RklGT19FTVBUWQo+ID4gKwkJCXwgQklUX01EVF9JRExFX0FGVEVSX0hBV0JfRElTQUJMRQo+ID4g KwkJCXwgQklUX01EVF9SRklGT19EQVRBX1JEWQo+ID4gKwkpOwo+ID4gKwlzaWk4NjIwX2VuYWJs ZV9nZW4yX3dyaXRlX2J1cnN0KGN0eCk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNp aTg2MjBfbWhsX2Rpc2NvdmVyKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gPiArewo+ID4gKwlzaWk4 NjIwX3dyaXRlX3NlcShjdHgsCj4gPiArCQlSRUdfRElTQ19DVFJMOSwgQklUX0RJU0NfQ1RSTDlf V0FLRV9EUlZGTFQKPiA+ICsJCQl8IEJJVF9ESVNDX0NUUkw5X0RJU0NfUFVMU0VfUFJPQ0VFRCwK PiA+ICsJCVJFR19ESVNDX0NUUkw0LCBWQUxfRElTQ19DVFJMNChWQUxfUFVQXzVLLCBWQUxfUFVQ XzIwSyksCj4gPiArCQlSRUdfQ0JVU19ESVNDX0lOVFIwX01BU0ssIEJJVF9NSEwzX0VTVF9JTlQK PiA+ICsJCQl8IEJJVF9NSExfRVNUX0lOVAo+ID4gKwkJCXwgQklUX05PVF9NSExfRVNUX0lOVAo+ ID4gKwkJCXwgQklUX0NCVVNfTUhMM19ESVNDT05fSU5UCj4gPiArCQkJfCBCSVRfQ0JVU19NSEwx Ml9ESVNDT05fSU5UCj4gPiArCQkJfCBCSVRfUkdORF9SRUFEWV9JTlQsCj4gPiArCQlSRUdfTUhM X1BMTF9DVEwwLCBWQUxfTUhMX1BMTF9DVEwwX0hETUlfQ0xLX1JBVElPXzFYCj4gPiArCQkJfCBC SVRfTUhMX1BMTF9DVEwwX0NSWVNUQUxfQ0xLX1NFTAo+ID4gKwkJCXwgQklUX01ITF9QTExfQ1RM MF9aT05FX01BU0tfT0UsCj4gPiArCQlSRUdfTUhMX0RQX0NUTDAsIEJJVF9NSExfRFBfQ1RMMF9E UF9PRQo+ID4gKwkJCXwgQklUX01ITF9EUF9DVEwwX1RYX09FX09WUiwKPiA+ICsJCVJFR19NM19D VFJMLCBWQUxfTTNfQ1RSTF9NSEwzX1ZBTFVFLAo+ID4gKwkJUkVHX01ITF9EUF9DVEwxLCAweEEy LAo+ID4gKwkJUkVHX01ITF9EUF9DVEwyLCAweDAzLAo+ID4gKwkJUkVHX01ITF9EUF9DVEwzLCAw eDM1LAo+ID4gKwkJUkVHX01ITF9EUF9DVEw1LCAweDAyLAo+ID4gKwkJUkVHX01ITF9EUF9DVEw2 LCAweDAyLAo+ID4gKwkJUkVHX01ITF9EUF9DVEw3LCAweDAzLAo+ID4gKwkJUkVHX0NPQ19DVExD LCAweEZGLAo+ID4gKwkJUkVHX0RQRCwgQklUX0RQRF9QV1JPTl9QTEwgfCBCSVRfRFBEX1BETlRY MTIKPiA+ICsJCQl8IEJJVF9EUERfT1NDX0VOIHwgQklUX0RQRF9QV1JPTl9IU0lDLAo+ID4gKwkJ UkVHX0NPQ19JTlRSX01BU0ssIEJJVF9DT0NfUExMX0xPQ0tfU1RBVFVTX0NIQU5HRQo+ID4gKwkJ CXwgQklUX0NPQ19DQUxJQlJBVElPTl9ET05FLAo+ID4gKwkJUkVHX0NCVVNfSU5UXzFfTUFTSywg QklUX0NCVVNfTVNDX0FCT1JUX1JDVkQKPiA+ICsJCQl8IEJJVF9DQlVTX0NNRF9BQk9SVCwKPiA+ ICsJCVJFR19DQlVTX0lOVF8wX01BU0ssIEJJVF9DQlVTX01TQ19NVF9ET05FCj4gPiArCQkJfCBC SVRfQ0JVU19IUERfQ0hHCj4gPiArCQkJfCBCSVRfQ0JVU19NU0NfTVJfV1JJVEVfU1RBVAo+ID4g KwkJCXwgQklUX0NCVVNfTVNDX01SX01TQ19NU0cKPiA+ICsJCQl8IEJJVF9DQlVTX01TQ19NUl9X UklURV9CVVJTVAo+ID4gKwkJCXwgQklUX0NCVVNfTVNDX01SX1NFVF9JTlQKPiA+ICsJCQl8IEJJ VF9DQlVTX01TQ19NVF9ET05FX05BQ0sKPiA+ICsJKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGlj IHZvaWQgc2lpODYyMF9wZWVyX3NwZWNpZmljX2luaXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiA+ ICt7Cj4gPiArCWlmIChjdHgtPm1vZGUgPT0gQ01fTUhMMykKPiA+ICsJCXNpaTg2MjBfd3JpdGVf c2VxKGN0eCwKPiA+ICsJCQlSRUdfU1lTX0NUUkwxLCBCSVRfU1lTX0NUUkwxX0JMT0NLX0REQ19C WV9IUEQsCj4gPiArCQkJUkVHX0VNU0NJTlRSTUFTSzEsCj4gPiArCQkJCUJJVF9FTVNDSU5UUjFf RU1TQ19UUkFJTklOR19DT01NQV9FUlIKPiA+ICsJCSk7Cj4gPiArCWVsc2UKPiA+ICsJCXNpaTg2 MjBfd3JpdGVfc2VxKGN0eCwKPiA+ICsJCQlSRUdfSERDUDJYX0lOVFIwX01BU0ssIDB4MDAsCj4g PiArCQkJUkVHX0VNU0NJTlRSTUFTSzEsIDB4MDAsCj4gPiArCQkJUkVHX0hEQ1AyWF9JTlRSMCwg MHhGRiwKPiA+ICsJCQlSRUdfSU5UUjEsIDB4RkYsCj4gPiArCQkJUkVHX1NZU19DVFJMMSwgQklU X1NZU19DVFJMMV9CTE9DS19ERENfQllfSFBECj4gPiArCQkJCXwgQklUX1NZU19DVFJMMV9UWF9D VFJMX0hETUkKPiA+ICsJCSk7Cj4gPiArfQo+ID4gKwo+ID4gKyNkZWZpbmUgU0lJODYyMF9NSExf VkVSU0lPTgkJCTB4MzIKPiA+ICsjZGVmaW5lIFNJSTg2MjBfU0NSQVRDSFBBRF9TSVpFCQkJMTYK PiA+ICsjZGVmaW5lIFNJSTg2MjBfSU5UX1NUQVRfU0laRQkJCTB4MzMKPiA+ICsKPiA+ICtzdGF0 aWMgdm9pZCBzaWk4NjIwX3NldF9kZXZfY2FwKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gPiArewo+ ID4gKwlzdGF0aWMgY29uc3QgdTggZGV2Y2FwW01ITF9EQ0FQX1NJWkVdID0gewo+ID4gKwkJW01I TF9EQ0FQX01ITF9WRVJTSU9OXSA9IFNJSTg2MjBfTUhMX1ZFUlNJT04sCj4gPiArCQlbTUhMX0RD QVBfQ0FUXSA9IE1ITF9EQ0FQX0NBVF9TT1VSQ0UgfCBNSExfRENBUF9DQVRfUE9XRVIsCj4gPiAr CQlbTUhMX0RDQVBfQURPUFRFUl9JRF9IXSA9IDB4MDEsCj4gPiArCQlbTUhMX0RDQVBfQURPUFRF Ul9JRF9MXSA9IDB4NDEsCj4gPiArCQlbTUhMX0RDQVBfVklEX0xJTktfTU9ERV0gPSBNSExfRENB UF9WSURfTElOS19SR0I0NDQKPiA+ICsJCQl8IE1ITF9EQ0FQX1ZJRF9MSU5LX1BQSVhFTAo+ID4g KwkJCXwgTUhMX0RDQVBfVklEX0xJTktfMTZCUFAsCj4gPiArCQlbTUhMX0RDQVBfQVVEX0xJTktf TU9ERV0gPSBNSExfRENBUF9BVURfTElOS18yQ0gsCj4gPiArCQlbTUhMX0RDQVBfVklERU9fVFlQ RV0gPSBNSExfRENBUF9WVF9HUkFQSElDUywKPiA+ICsJCVtNSExfRENBUF9MT0dfREVWX01BUF0g PSBNSExfRENBUF9MRF9HVUksCj4gPiArCQlbTUhMX0RDQVBfQkFORFdJRFRIXSA9IDB4MGYsCj4g PiArCQlbTUhMX0RDQVBfRkVBVFVSRV9GTEFHXSA9IE1ITF9EQ0FQX0ZFQVRVUkVfUkNQX1NVUFBP UlQKPiA+ICsJCQl8IE1ITF9EQ0FQX0ZFQVRVUkVfUkFQX1NVUFBPUlQKPiA+ICsJCQl8IE1ITF9E Q0FQX0ZFQVRVUkVfU1BfU1VQUE9SVCwKPiA+ICsJCVtNSExfRENBUF9TQ1JBVENIUEFEX1NJWkVd ID0gU0lJODYyMF9TQ1JBVENIUEFEX1NJWkUsCj4gPiArCQlbTUhMX0RDQVBfSU5UX1NUQVRfU0la RV0gPSBTSUk4NjIwX0lOVF9TVEFUX1NJWkUsCj4gPiArCX07Cj4gPiArCXN0YXRpYyBjb25zdCB1 OCB4ZGNhcFtNSExfWERDX1NJWkVdID0gewo+ID4gKwkJW01ITF9YRENfRUNCVVNfU1BFRURTXSA9 IE1ITF9YRENfRUNCVVNfU18wNzUKPiA+ICsJCQl8IE1ITF9YRENfRUNCVVNfU184QklULAo+ID4g KwkJW01ITF9YRENfVE1EU19TUEVFRFNdID0gTUhMX1hEQ19UTURTXzE1MAo+ID4gKwkJCXwgTUhM X1hEQ19UTURTXzMwMCB8IE1ITF9YRENfVE1EU182MDAsCj4gPiArCQlbTUhMX1hEQ19FQ0JVU19S T0xFU10gPSBNSExfWERDX0RFVl9IT1NULAo+ID4gKwkJW01ITF9YRENfTE9HX0RFVl9NQVBYXSA9 IE1ITF9YRENfTERfUEhPTkUsCj4gPiArCX07Cj4gPiArCj4gPiArCXNpaTg2MjBfd3JpdGVfYnVm KGN0eCwgUkVHX01ITF9ERVZDQVBfMCwgZGV2Y2FwLCBBUlJBWV9TSVpFKGRldmNhcCkpOwo+ID4g KwlzaWk4NjIwX3dyaXRlX2J1ZihjdHgsIFJFR19NSExfRVhUREVWQ0FQXzAsIHhkY2FwLCBBUlJB WV9TSVpFKHhkY2FwKSk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfbWhs X2luaXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiA+ICt7Cj4gPiArCXNpaTg2MjBfd3JpdGVfc2Vx KGN0eCwKPiA+ICsJCVJFR19ESVNDX0NUUkw0LCBWQUxfRElTQ19DVFJMNChWQUxfUFVQX09GRiwg VkFMX1BVUF8yMEspLAo+ID4gKwkJUkVHX0NCVVNfTVNDX0NPTVBBVF9DVFJMLAo+ID4gKwkJCUJJ VF9DQlVTX01TQ19DT01QQVRfQ1RSTF9YREVWQ0FQX0VOLAo+ID4gKwkpOwo+ID4gKwo+ID4gKwlz aWk4NjIwX3BlZXJfc3BlY2lmaWNfaW5pdChjdHgpOwo+ID4gKwo+ID4gKwlzaWk4NjIwX2Rpc2Fi bGVfaHBkKGN0eCk7Cj4gPiArCj4gPiArCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKPiA+ICsJCVJF R19FRElEX0NUUkwsIEJJVF9FRElEX0NUUkxfRURJRF9GSUZPX0FERFJfQVVUTywKPiA+ICsJCVJF R19ESVNDX0NUUkw5LCBCSVRfRElTQ19DVFJMOV9XQUtFX0RSVkZMVAo+ID4gKwkJCXwgQklUX0RJ U0NfQ1RSTDlfV0FLRV9QVUxTRV9CWVBBU1MsCj4gPiArCQlSRUdfVE1EUzBfQ0NUUkwxLCAweDkw LAo+ID4gKwkJUkVHX1RNRFNfQ0xLX0VOLCAweDAxLAo+ID4gKwkJUkVHX1RNRFNfQ0hfRU4sIDB4 MTEsCj4gPiArCQlSRUdfQkdSX0JJQVMsIDB4ODcsCj4gPiArCQlSRUdfQUxJQ0UwX1pPTkVfQ1RS TCwgMHhFOCwKPiA+ICsJCVJFR19BTElDRTBfTU9ERV9DVFJMLCAweDA0LAo+ID4gKwkpOwo+ID4g KwlzaWk4NjIwX3NldGJpdHMoY3R4LCBSRUdfTE1fRERDLCBCSVRfTE1fRERDX1NXX1RQSV9FTl9E SVNBQkxFRCwgMCk7Cj4gPiArCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKPiA+ICsJCVJFR19UUElf SFdfT1BUMywgMHg3NiwKPiA+ICsJCVJFR19UTURTX0NDVFJMLCBCSVRfVE1EU19DQ1RSTF9UTURT X09FLAo+ID4gKwkJUkVHX1RQSV9EVERfQjIsIDc5LAo+ID4gKwkpOwo+ID4gKwlzaWk4NjIwX3Nl dF9kZXZfY2FwKGN0eCk7Cj4gPiArCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKPiA+ICsJCVJFR19N RFRfWE1JVF9USU1FT1VULCAxMDAsCj4gPiArCQlSRUdfTURUX1hNSVRfQ1RSTCwgMHgwMywKPiA+ ICsJCVJFR19NRFRfWEZJRk9fU1RBVCwgMHgwMCwKPiA+ICsJCVJFR19NRFRfUkNWX1RJTUVPVVQs IDEwMCwKPiA+ICsJCVJFR19DQlVTX0xJTktfQ1RSTF84LCAweDFELAo+ID4gKwkpOwo+ID4gKwo+ ID4gKwlzaWk4NjIwX3N0YXJ0X2dlbjJfd3JpdGVfYnVyc3QoY3R4KTsKPiA+ICsJc2lpODYyMF93 cml0ZV9zZXEoY3R4LAo+ID4gKwkJUkVHX0JJU1RfQ1RSTCwgMHgwMCwKPiA+ICsJCVJFR19DT0Nf Q1RMMSwgMHgxMCwKPiA+ICsJCVJFR19DT0NfQ1RMMiwgMHgxOCwKPiA+ICsJCVJFR19DT0NfQ1RM RiwgMHgwNywKPiA+ICsJCVJFR19DT0NfQ1RMMTEsIDB4RjgsCj4gPiArCQlSRUdfQ09DX0NUTDE3 LCAweDYxLAo+ID4gKwkJUkVHX0NPQ19DVEwxOCwgMHg0NiwKPiA+ICsJCVJFR19DT0NfQ1RMMTks IDB4MTUsCj4gPiArCQlSRUdfQ09DX0NUTDFBLCAweDAxLAo+ID4gKwkJUkVHX01ITF9DT0NfQ1RM MywgQklUX01ITF9DT0NfQ1RMM19DT0NfQUVDSE9fRU4sCj4gPiArCQlSRUdfTUhMX0NPQ19DVEw0 LCAweDJELAo+ID4gKwkJUkVHX01ITF9DT0NfQ1RMNSwgMHhGOSwKPiA+ICsJCVJFR19NU0NfSEVB UlRCRUFUX0NUUkwsIDB4MjcsCj4gPiArCSk7Cj4gPiArCXNpaTg2MjBfZGlzYWJsZV9nZW4yX3dy aXRlX2J1cnN0KGN0eCk7Cj4gPiArCj4gPiArCS8qIGN1cnJlbnRseSBNSEwzIGlzIG5vdCBzdXBw b3J0ZWQsIHNvIHdlIGZvcmNlIHZlcnNpb24gdG8gMCAqLwo+ID4gKwlzaWk4NjIwX210X3dyaXRl X3N0YXQoY3R4LCBNSExfRFNUX1JFRyhWRVJTSU9OKSwgMCk7Cj4gPiArCXNpaTg2MjBfbXRfd3Jp dGVfc3RhdChjdHgsIE1ITF9EU1RfUkVHKENPTk5FQ1RFRF9SRFkpLAo+ID4gKwkJCSAgICAgIE1I TF9EU1RfQ09OTl9EQ0FQX1JEWSB8IE1ITF9EU1RfQ09OTl9YREVWQ0FQUF9TVVBQCj4gPiArCQkJ ICAgICAgfCBNSExfRFNUX0NPTk5fUE9XX1NUQVQpOwo+ID4gKwlzaWk4NjIwX210X3NldF9pbnQo Y3R4LCBNSExfSU5UX1JFRyhSQ0hBTkdFKSwgTUhMX0lOVF9SQ19EQ0FQX0NIRyk7Cj4gPiArfQo+ ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfc2V0X21vZGUoc3RydWN0IHNpaTg2MjAgKmN0 eCwgZW51bSBzaWk4NjIwX21vZGUgbW9kZSkKPiA+ICt7Cj4gPiArCWlmIChjdHgtPm1vZGUgPT0g bW9kZSkKPiA+ICsJCXJldHVybjsKPiA+ICsKPiA+ICsJY3R4LT5tb2RlID0gbW9kZTsKPiA+ICsK PiA+ICsJc3dpdGNoIChtb2RlKSB7Cj4gPiArCWNhc2UgQ01fTUhMMToKPiA+ICsJCXNpaTg2MjBf d3JpdGVfc2VxKGN0eCwKPiA+ICsJCQlSRUdfQ0JVU19NU0NfQ09NUEFUX0NUUkwsIDB4MDIsCj4g PiArCQkJUkVHX00zX0NUUkwsIFZBTF9NM19DVFJMX01ITDFfMl9WQUxVRSwKPiA+ICsJCQlSRUdf RFBELCBCSVRfRFBEX1BXUk9OX1BMTCB8IEJJVF9EUERfUEROVFgxMgo+ID4gKwkJCQl8IEJJVF9E UERfT1NDX0VOLAo+ID4gKwkJCVJFR19DT0NfSU5UUl9NQVNLLCAwCj4gPiArCQkpOwo+ID4gKwkJ YnJlYWs7Cj4gPiArCWNhc2UgQ01fTUhMMzoKPiA+ICsJCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwK PiA+ICsJCQlSRUdfTTNfQ1RSTCwgVkFMX00zX0NUUkxfTUhMM19WQUxVRSwKPiA+ICsJCQlSRUdf Q09DX0NUTDAsIDB4NDAsCj4gPiArCQkJUkVHX01ITF9DT0NfQ1RMMSwgMHgwNwo+ID4gKwkJKTsK PiA+ICsJCWJyZWFrOwo+ID4gKwljYXNlIENNX0RJU0NPTk5FQ1RFRDoKPiA+ICsJCWJyZWFrOwo+ ID4gKwlkZWZhdWx0Ogo+ID4gKwkJZGV2X2VycihjdHgtPmRldiwgIiVzIG1vZGUgJWQgbm90IHN1 cHBvcnRlZFxuIiwgX19mdW5jX18sIG1vZGUpOwo+ID4gKwkJYnJlYWs7Cj4gPiArCX07Cj4gPiAr Cj4gPiArCXNpaTg2MjBfc2V0X2F1dG9fem9uZShjdHgpOwo+ID4gKwo+ID4gKwlpZiAobW9kZSAh PSBDTV9NSEwxKQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gKwlzaWk4NjIwX3dyaXRlX3NlcShj dHgsCj4gPiArCQlSRUdfTUhMX0RQX0NUTDAsIDB4QkMsCj4gPiArCQlSRUdfTUhMX0RQX0NUTDEs IDB4QkIsCj4gPiArCQlSRUdfTUhMX0RQX0NUTDMsIDB4NDgsCj4gPiArCQlSRUdfTUhMX0RQX0NU TDUsIDB4MzksCj4gPiArCQlSRUdfTUhMX0RQX0NUTDIsIDB4MkEsCj4gPiArCQlSRUdfTUhMX0RQ X0NUTDYsIDB4MkEsCj4gPiArCQlSRUdfTUhMX0RQX0NUTDcsIDB4MDgKPiA+ICsJKTsKPiA+ICt9 Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2lpODYyMF9kaXNjb25uZWN0KHN0cnVjdCBzaWk4NjIw ICpjdHgpCj4gPiArewo+ID4gKwlzaWk4NjIwX2Rpc2FibGVfZ2VuMl93cml0ZV9idXJzdChjdHgp Owo+ID4gKwlzaWk4NjIwX3N0b3BfdmlkZW8oY3R4KTsKPiA+ICsJbXNsZWVwKDUwKTsKPiA+ICsJ c2lpODYyMF9jYnVzX3Jlc2V0KGN0eCk7Cj4gPiArCXNpaTg2MjBfc2V0X21vZGUoY3R4LCBDTV9E SVNDT05ORUNURUQpOwo+ID4gKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCj4gPiArCQlSRUdfQ09D X0NUTDAsIDB4NDAsCj4gPiArCQlSRUdfQ0JVUzNfQ05WVCwgMHg4NCwKPiA+ICsJCVJFR19DT0Nf Q1RMMTQsIDB4MDAsCj4gPiArCQlSRUdfQ09DX0NUTDAsIDB4NDAsCj4gPiArCQlSRUdfSFJYQ1RS TDMsIDB4MDcsCj4gPiArCQlSRUdfTUhMX1BMTF9DVEwwLCBWQUxfTUhMX1BMTF9DVEwwX0hETUlf Q0xLX1JBVElPXzFYCj4gPiArCQkJfCBCSVRfTUhMX1BMTF9DVEwwX0NSWVNUQUxfQ0xLX1NFTAo+ ID4gKwkJCXwgQklUX01ITF9QTExfQ1RMMF9aT05FX01BU0tfT0UsCj4gPiArCQlSRUdfTUhMX0RQ X0NUTDAsIEJJVF9NSExfRFBfQ1RMMF9EUF9PRQo+ID4gKwkJCXwgQklUX01ITF9EUF9DVEwwX1RY X09FX09WUiwKPiA+ICsJCVJFR19NSExfRFBfQ1RMMSwgMHhCQiwKPiA+ICsJCVJFR19NSExfRFBf Q1RMMywgMHg0OCwKPiA+ICsJCVJFR19NSExfRFBfQ1RMNSwgMHgzRiwKPiA+ICsJCVJFR19NSExf RFBfQ1RMMiwgMHgyRiwKPiA+ICsJCVJFR19NSExfRFBfQ1RMNiwgMHgyQSwKPiA+ICsJCVJFR19N SExfRFBfQ1RMNywgMHgwMwo+ID4gKwkpOwo+ID4gKwlzaWk4NjIwX2Rpc2FibGVfaHBkKGN0eCk7 Cj4gPiArCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKPiA+ICsJCVJFR19NM19DVFJMLCBWQUxfTTNf Q1RSTF9NSEwzX1ZBTFVFLAo+ID4gKwkJUkVHX01ITF9DT0NfQ1RMMSwgMHgwNywKPiA+ICsJCVJF R19ESVNDX0NUUkw0LCBWQUxfRElTQ19DVFJMNChWQUxfUFVQX09GRiwgVkFMX1BVUF8yMEspLAo+ ID4gKwkJUkVHX0RJU0NfQ1RSTDgsIDB4MDAsCj4gPiArCQlSRUdfRElTQ19DVFJMOSwgQklUX0RJ U0NfQ1RSTDlfV0FLRV9EUlZGTFQKPiA+ICsJCQl8IEJJVF9ESVNDX0NUUkw5X1dBS0VfUFVMU0Vf QllQQVNTLAo+ID4gKwkJUkVHX0lOVF9DVFJMLCAweDAwLAo+ID4gKwkJUkVHX01TQ19IRUFSVEJF QVRfQ1RSTCwgMHgyNywKPiA+ICsJCVJFR19ESVNDX0NUUkwxLCAweDI1LAo+ID4gKwkJUkVHX0NC VVNfRElTQ19JTlRSMCwgKHU4KX5CSVRfUkdORF9SRUFEWV9JTlQsCj4gPiArCQlSRUdfQ0JVU19E SVNDX0lOVFIwX01BU0ssIEJJVF9SR05EX1JFQURZX0lOVCwKPiA+ICsJCVJFR19NRFRfSU5UXzEs IDB4ZmYsCj4gPiArCQlSRUdfTURUX0lOVF8xX01BU0ssIDB4MDAsCj4gPiArCQlSRUdfTURUX0lO VF8wLCAweGZmLAo+ID4gKwkJUkVHX01EVF9JTlRfMF9NQVNLLCAweDAwLAo+ID4gKwkJUkVHX0NP Q19JTlRSLCAweGZmLAo+ID4gKwkJUkVHX0NPQ19JTlRSX01BU0ssIDB4MDAsCj4gPiArCQlSRUdf VFJYSU5USCwgMHhmZiwKPiA+ICsJCVJFR19UUlhJTlRNSCwgMHgwMCwKPiA+ICsJCVJFR19DQlVT X0lOVF8wLCAweGZmLAo+ID4gKwkJUkVHX0NCVVNfSU5UXzBfTUFTSywgMHgwMCwKPiA+ICsJCVJF R19DQlVTX0lOVF8xLCAweGZmLAo+ID4gKwkJUkVHX0NCVVNfSU5UXzFfTUFTSywgMHgwMCwKPiA+ ICsJCVJFR19FTVNDSU5UUiwgMHhmZiwKPiA+ICsJCVJFR19FTVNDSU5UUk1BU0ssIDB4MDAsCj4g PiArCQlSRUdfRU1TQ0lOVFIxLCAweGZmLAo+ID4gKwkJUkVHX0VNU0NJTlRSTUFTSzEsIDB4MDAs Cj4gPiArCQlSRUdfSU5UUjgsIDB4ZmYsCj4gPiArCQlSRUdfSU5UUjhfTUFTSywgMHgwMCwKPiA+ ICsJCVJFR19UUElfSU5UUl9TVDAsIDB4ZmYsCj4gPiArCQlSRUdfVFBJX0lOVFJfRU4sIDB4MDAs Cj4gPiArCQlSRUdfSERDUDJYX0lOVFIwLCAweGZmLAo+ID4gKwkJUkVHX0hEQ1AyWF9JTlRSMF9N QVNLLCAweDAwLAo+ID4gKwkJUkVHX0lOVFI5LCAweGZmLAo+ID4gKwkJUkVHX0lOVFI5X01BU0ss IDB4MDAsCj4gPiArCQlSRUdfSU5UUjMsIDB4ZmYsCj4gPiArCQlSRUdfSU5UUjNfTUFTSywgMHgw MCwKPiA+ICsJCVJFR19JTlRSNSwgMHhmZiwKPiA+ICsJCVJFR19JTlRSNV9NQVNLLCAweDAwLAo+ ID4gKwkJUkVHX0lOVFIyLCAweGZmLAo+ID4gKwkJUkVHX0lOVFIyX01BU0ssIDB4MDAsCj4gPiAr CSk7Cj4gPiArCW1lbXNldChjdHgtPnN0YXQsIDAsIHNpemVvZihjdHgtPnN0YXQpKTsKPiA+ICsJ bWVtc2V0KGN0eC0+eHN0YXQsIDAsIHNpemVvZihjdHgtPnhzdGF0KSk7Cj4gPiArCW1lbXNldChj dHgtPmRldmNhcCwgMCwgc2l6ZW9mKGN0eC0+ZGV2Y2FwKSk7Cj4gPiArCW1lbXNldChjdHgtPnhk ZXZjYXAsIDAsIHNpemVvZihjdHgtPnhkZXZjYXApKTsKPiA+ICsJY3R4LT5jYnVzX3N0YXR1cyA9 IDA7Cj4gPiArCWN0eC0+c2lua190eXBlID0gU0lOS19OT05FOwo+ID4gKwlrZnJlZShjdHgtPmVk aWQpOwo+ID4gKwljdHgtPmVkaWQgPSBOVUxMOwo+ID4gKwlzaWk4NjIwX210X2NsZWFudXAoY3R4 KTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2lpODYyMF9taGxfZGlzY29ubmVjdGVk KHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gPiArewo+ID4gKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgs Cj4gPiArCQlSRUdfRElTQ19DVFJMNCwgVkFMX0RJU0NfQ1RSTDQoVkFMX1BVUF9PRkYsIFZBTF9Q VVBfMjBLKSwKPiA+ICsJCVJFR19DQlVTX01TQ19DT01QQVRfQ1RSTCwKPiA+ICsJCQlCSVRfQ0JV U19NU0NfQ09NUEFUX0NUUkxfWERFVkNBUF9FTgo+ID4gKwkpOwo+ID4gKwlzaWk4NjIwX2Rpc2Nv bm5lY3QoY3R4KTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2lpODYyMF9pcnFfZGlz YyhzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ID4gK3sKPiA+ICsJdTggc3RhdCA9IHNpaTg2MjBfcmVh ZGIoY3R4LCBSRUdfQ0JVU19ESVNDX0lOVFIwKTsKPiA+ICsKPiA+ICsJaWYgKHN0YXQgJiBWQUxf Q0JVU19NSExfRElTQ09OKQo+ID4gKwkJc2lpODYyMF9taGxfZGlzY29ubmVjdGVkKGN0eCk7Cj4g PiArCj4gPiArCWlmIChzdGF0ICYgQklUX1JHTkRfUkVBRFlfSU5UKSB7Cj4gPiArCQl1OCBzdGF0 MiA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfRElTQ19TVEFUMik7Cj4gPiArCj4gPiArCQlpZiAo KHN0YXQyICYgTVNLX0RJU0NfU1RBVDJfUkdORCkgPT0gVkFMX1JHTkRfMUspCj4gPiArCQkJc2lp ODYyMF9taGxfZGlzY292ZXIoY3R4KTsKPiA+ICsJCWVsc2Ugewo+ID4gKwkJCXNpaTg2MjBfd3Jp dGVfc2VxKGN0eCwKPiA+ICsJCQkJUkVHX0RJU0NfQ1RSTDksIEJJVF9ESVNDX0NUUkw5X1dBS0Vf RFJWRkxUCj4gPiArCQkJCQl8IEJJVF9ESVNDX0NUUkw5X05PTUhMX0VTVAo+ID4gKwkJCQkJfCBC SVRfRElTQ19DVFJMOV9XQUtFX1BVTFNFX0JZUEFTUywKPiA+ICsJCQkJUkVHX0NCVVNfRElTQ19J TlRSMF9NQVNLLCBCSVRfUkdORF9SRUFEWV9JTlQKPiA+ICsJCQkJCXwgQklUX0NCVVNfTUhMM19E SVNDT05fSU5UCj4gPiArCQkJCQl8IEJJVF9DQlVTX01ITDEyX0RJU0NPTl9JTlQKPiA+ICsJCQkJ CXwgQklUX05PVF9NSExfRVNUX0lOVAo+ID4gKwkJCSk7Cj4gPiArCQl9Cj4gPiArCX0KPiA+ICsJ aWYgKHN0YXQgJiBCSVRfTUhMX0VTVF9JTlQpCj4gPiArCQlzaWk4NjIwX21obF9pbml0KGN0eCk7 Cj4gPiArCj4gPiArCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfQ0JVU19ESVNDX0lOVFIwLCBzdGF0 KTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2lpODYyMF9pcnFfZzJ3YihzdHJ1Y3Qg c2lpODYyMCAqY3R4KQo+ID4gK3sKPiA+ICsJdTggc3RhdCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBS RUdfTURUX0lOVF8wKTsKPiA+ICsKPiA+ICsJaWYgKHN0YXQgJiBCSVRfTURUX0lETEVfQUZURVJf SEFXQl9ESVNBQkxFKQo+ID4gKwkJZGV2X2RiZyhjdHgtPmRldiwgIkhBV0IgaWRsZVxuIik7Cj4g PiArCj4gPiArCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfTURUX0lOVF8wLCBzdGF0KTsKPiA+ICt9 Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2lpODYyMF9zdGF0dXNfY2hhbmdlZF9kY2FwKHN0cnVj dCBzaWk4NjIwICpjdHgpCj4gPiArewo+ID4gKwlpZiAoY3R4LT5zdGF0W01ITF9EU1RfQ09OTkVD VEVEX1JEWV0gJiBNSExfRFNUX0NPTk5fRENBUF9SRFkpIHsKPiA+ICsJCXNpaTg2MjBfc2V0X21v ZGUoY3R4LCBDTV9NSEwxKTsKPiA+ICsJCXNpaTg2MjBfcGVlcl9zcGVjaWZpY19pbml0KGN0eCk7 Cj4gPiArCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0lOVFI5X01BU0ssIEJJVF9JTlRSOV9ERVZD QVBfRE9ORQo+ID4gKwkJCSAgICAgICB8IEJJVF9JTlRSOV9FRElEX0RPTkUgfCBCSVRfSU5UUjlf RURJRF9FUlJPUik7Cj4gPiArCX0KPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2lpODYy MF9zdGF0dXNfY2hhbmdlZF9wYXRoKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gPiArewo+ID4gKwlp ZiAoY3R4LT5zdGF0W01ITF9EU1RfTElOS19NT0RFXSAmIE1ITF9EU1RfTE1fUEFUSF9FTkFCTEVE KSB7Cj4gPiArCQlzaWk4NjIwX210X3dyaXRlX3N0YXQoY3R4LCBNSExfRFNUX1JFRyhMSU5LX01P REUpLAo+ID4gKwkJCQkgICAgICBNSExfRFNUX0xNX0NMS19NT0RFX05PUk1BTAo+ID4gKwkJCQkg ICAgICB8IE1ITF9EU1RfTE1fUEFUSF9FTkFCTEVEKTsKPiA+ICsJCXNpaTg2MjBfbXRfcmVhZF9k ZXZjYXAoY3R4LCBmYWxzZSk7Cj4gPiArCX0gZWxzZSB7Cj4gPiArCQlzaWk4NjIwX210X3dyaXRl X3N0YXQoY3R4LCBNSExfRFNUX1JFRyhMSU5LX01PREUpLAo+ID4gKwkJCQkgICAgICBNSExfRFNU X0xNX0NMS19NT0RFX05PUk1BTCk7Cj4gPiArCX0KPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZv aWQgc2lpODYyMF9tc2NfbXJfd3JpdGVfc3RhdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ID4gK3sK PiA+ICsJdTggc3RbTUhMX0RTVF9TSVpFXSwgeHN0W01ITF9YRFNfU0laRV07Cj4gPiArCj4gPiAr CXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfTUhMX1NUQVRfMCwgc3QsIE1ITF9EU1RfU0laRSk7 Cj4gPiArCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfTUhMX0VYVFNUQVRfMCwgeHN0LCBNSExf WERTX1NJWkUpOwo+ID4gKwo+ID4gKwlzaWk4NjIwX3VwZGF0ZV9hcnJheShjdHgtPnN0YXQsIHN0 LCBNSExfRFNUX1NJWkUpOwo+ID4gKwlzaWk4NjIwX3VwZGF0ZV9hcnJheShjdHgtPnhzdGF0LCB4 c3QsIE1ITF9YRFNfU0laRSk7Cj4gPiArCj4gPiArCWlmIChzdFtNSExfRFNUX0NPTk5FQ1RFRF9S RFldICYgTUhMX0RTVF9DT05OX0RDQVBfUkRZKQo+ID4gKwkJc2lpODYyMF9zdGF0dXNfY2hhbmdl ZF9kY2FwKGN0eCk7Cj4gPiArCj4gPiArCWlmIChzdFtNSExfRFNUX0xJTktfTU9ERV0gJiBNSExf RFNUX0xNX1BBVEhfRU5BQkxFRCkKPiA+ICsJCXNpaTg2MjBfc3RhdHVzX2NoYW5nZWRfcGF0aChj dHgpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX21zY19tcl9zZXRfaW50 KHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gPiArewo+ID4gKwl1OCBpbnRzW01ITF9JTlRfU0laRV07 Cj4gPiArCj4gPiArCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfTUhMX0lOVF8wLCBpbnRzLCBN SExfSU5UX1NJWkUpOwo+ID4gKwlzaWk4NjIwX3dyaXRlX2J1ZihjdHgsIFJFR19NSExfSU5UXzAs IGludHMsIE1ITF9JTlRfU0laRSk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBzdHJ1Y3Qgc2lp ODYyMF9tdF9tc2cgKnNpaTg2MjBfbXNjX21zZ19maXJzdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ ID4gK3sKPiA+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gY3R4LT5kZXY7Cj4gPiArCj4gPiArCWlm IChsaXN0X2VtcHR5KCZjdHgtPm10X3F1ZXVlKSkgewo+ID4gKwkJZGV2X2VycihkZXYsICJ1bmV4 cGVjdGVkIE1TQyBNVCByZXNwb25zZVxuIik7Cj4gPiArCQlyZXR1cm4gTlVMTDsKPiA+ICsJfQo+ ID4gKwo+ID4gKwlyZXR1cm4gbGlzdF9maXJzdF9lbnRyeSgmY3R4LT5tdF9xdWV1ZSwgc3RydWN0 IHNpaTg2MjBfbXRfbXNnLCBub2RlKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2lp ODYyMF9tc2NfbXRfZG9uZShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ID4gK3sKPiA+ICsJc3RydWN0 IHNpaTg2MjBfbXRfbXNnICptc2cgPSBzaWk4NjIwX21zY19tc2dfZmlyc3QoY3R4KTsKPiA+ICsK PiA+ICsJaWYgKCFtc2cpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCW1zZy0+cmV0ID0gc2lp ODYyMF9yZWFkYihjdHgsIFJFR19NU0NfTVRfUkNWRF9EQVRBMCk7Cj4gPiArCWN0eC0+bXRfc3Rh dGUgPSBNVF9TVEFURV9ET05FOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBzaWk4NjIw X21zY19tcl9tc2NfbXNnKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gPiArewo+ID4gKwlzdHJ1Y3Qg c2lpODYyMF9tdF9tc2cgKm1zZyA9IHNpaTg2MjBfbXNjX21zZ19maXJzdChjdHgpOwo+ID4gKwl1 OCBidWZbMl07Cj4gPiArCj4gPiArCWlmICghbXNnKQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4g KwlzaWk4NjIwX3JlYWRfYnVmKGN0eCwgUkVHX01TQ19NUl9NU0NfTVNHX1JDVkRfMVNUX0RBVEEs IGJ1ZiwgMik7Cj4gPiArCj4gPiArCXN3aXRjaCAoYnVmWzBdKSB7Cj4gPiArCWNhc2UgTUhMX01T Q19NU0dfUkFQSzoKPiA+ICsJCW1zZy0+cmV0ID0gYnVmWzFdOwo+ID4gKwkJY3R4LT5tdF9zdGF0 ZSA9IE1UX1NUQVRFX0RPTkU7Cj4gPiArCQlicmVhazsKPiA+ICsJZGVmYXVsdDoKPiA+ICsJCWRl dl9lcnIoY3R4LT5kZXYsICIlcyBtZXNzYWdlIHR5cGUgJWQsJWQgbm90IHN1cHBvcnRlZCIsCj4g PiArCQkJX19mdW5jX18sIGJ1ZlswXSwgYnVmWzFdKTsKPiA+ICsJfQo+ID4gK30KPiA+ICsKPiA+ ICtzdGF0aWMgdm9pZCBzaWk4NjIwX2lycV9tc2Moc3RydWN0IHNpaTg2MjAgKmN0eCkKPiA+ICt7 Cj4gPiArCXU4IHN0YXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0NCVVNfSU5UXzApOwo+ID4g Kwo+ID4gKwlpZiAoc3RhdCAmIH5CSVRfQ0JVU19IUERfQ0hHKQo+ID4gKwkJc2lpODYyMF93cml0 ZShjdHgsIFJFR19DQlVTX0lOVF8wLCBzdGF0ICYgfkJJVF9DQlVTX0hQRF9DSEcpOwo+ID4gKwo+ ID4gKwlpZiAoc3RhdCAmIEJJVF9DQlVTX0hQRF9DSEcpIHsKPiA+ICsJCXU4IGNidXNfc3RhdCA9 IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfQ0JVU19TVEFUVVMpOwo+ID4gKwo+ID4gKwkJaWYgKChj YnVzX3N0YXQgXiBjdHgtPmNidXNfc3RhdHVzKSAmIEJJVF9DQlVTX1NUQVRVU19DQlVTX0hQRCkg ewo+ID4gKwkJCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfQ0JVU19JTlRfMCwgQklUX0NCVVNfSFBE X0NIRyk7Cj4gPiArCQl9IGVsc2Ugewo+ID4gKwkJCXN0YXQgXj0gQklUX0NCVVNfU1RBVFVTX0NC VVNfSFBEOwo+ID4gKwkJCWNidXNfc3RhdCBePSBCSVRfQ0JVU19TVEFUVVNfQ0JVU19IUEQ7Cj4g PiArCQl9Cj4gPiArCQljdHgtPmNidXNfc3RhdHVzID0gY2J1c19zdGF0Owo+ID4gKwl9Cj4gPiAr Cj4gPiArCWlmIChzdGF0ICYgQklUX0NCVVNfTVNDX01SX1dSSVRFX1NUQVQpCj4gPiArCQlzaWk4 NjIwX21zY19tcl93cml0ZV9zdGF0KGN0eCk7Cj4gPiArCj4gPiArCWlmIChzdGF0ICYgQklUX0NC VVNfTVNDX01SX1NFVF9JTlQpCj4gPiArCQlzaWk4NjIwX21zY19tcl9zZXRfaW50KGN0eCk7Cj4g PiArCj4gPiArCWlmIChzdGF0ICYgQklUX0NCVVNfTVNDX01UX0RPTkUpCj4gPiArCQlzaWk4NjIw X21zY19tdF9kb25lKGN0eCk7Cj4gPiArCj4gPiArCWlmIChzdGF0ICYgQklUX0NCVVNfTVNDX01S X01TQ19NU0cpCj4gPiArCQlzaWk4NjIwX21zY19tcl9tc2NfbXNnKGN0eCk7Cj4gPiArfQo+ID4g Kwo+ID4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX2NvYyhzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ ID4gK3sKPiA+ICsJdTggc3RhdCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfQ09DX0lOVFIpOwo+ ID4gKwo+ID4gKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0NPQ19JTlRSLCBzdGF0KTsKPiA+ICt9 Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2lpODYyMF9pcnFfbWVycihzdHJ1Y3Qgc2lpODYyMCAq Y3R4KQo+ID4gK3sKPiA+ICsJdTggc3RhdCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfQ0JVU19J TlRfMSk7Cj4gPiArCj4gPiArCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfQ0JVU19JTlRfMSwgc3Rh dCk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX2VkaWQoc3RydWN0 IHNpaTg2MjAgKmN0eCkKPiA+ICt7Cj4gPiArCXU4IHN0YXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwg UkVHX0lOVFI5KTsKPiA+ICsKPiA+ICsJc2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRSOSwgc3Rh dCk7Cj4gPiArCj4gPiArCWlmIChzdGF0ICYgQklUX0lOVFI5X0RFVkNBUF9ET05FKQo+ID4gKwkJ Y3R4LT5tdF9zdGF0ZSA9IE1UX1NUQVRFX0RPTkU7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2 b2lkIHNpaTg2MjBfc2NkdF9oaWdoKHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gPiArewo+ID4gKwlz aWk4NjIwX3dyaXRlX3NlcShjdHgsCj4gPiArCQlSRUdfSU5UUjhfTUFTSywgQklUX0NFQV9ORVdf QVZJIHwgQklUX0NFQV9ORVdfVlNJLAo+ID4gKwkJUkVHX1RQSV9TQywgQklUX1RQSV9TQ19UUElf T1VUUFVUX01PREVfMF9IRE1JLAo+ID4gKwkpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9p ZCBzaWk4NjIwX3NjZHRfbG93KHN0cnVjdCBzaWk4NjIwICpjdHgpCj4gPiArewo+ID4gKwlzaWk4 NjIwX3dyaXRlKGN0eCwgUkVHX1RNRFNfQ1NUQVRfUDMsCj4gPiArCQkgICAgICAgQklUX1RNRFNf Q1NUQVRfUDNfU0NEVF9DTFJfQVZJX0RJUwo+ID4gKwkJICAgICAgIHwgQklUX1RNRFNfQ1NUQVRf UDNfQ0xSX0FWSSk7Cj4gPiArCj4gPiArCXNpaTg2MjBfc3RvcF92aWRlbyhjdHgpOwo+ID4gKwo+ ID4gKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0lOVFI4X01BU0ssIDApOwo+ID4gK30KPiA+ICsK PiA+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX2lycV9zY2R0KHN0cnVjdCBzaWk4NjIwICpjdHgpCj4g PiArewo+ID4gKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19JTlRSNSk7Cj4gPiAr Cj4gPiArCWlmIChzdGF0ICYgQklUX0lOVFJfU0NEVF9DSEFOR0UpIHsKPiA+ICsJCXU4IGNzdGF0 ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19UTURTX0NTVEFUX1AzKTsKPiA+ICsKPiA+ICsJCWlm IChjc3RhdCAmIEJJVF9UTURTX0NTVEFUX1AzX1NDRFQpCj4gPiArCQkJc2lpODYyMF9zY2R0X2hp Z2goY3R4KTsKPiA+ICsJCWVsc2UKPiA+ICsJCQlzaWk4NjIwX3NjZHRfbG93KGN0eCk7Cj4gPiAr CX0KPiA+ICsKPiA+ICsJc2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRSNSwgc3RhdCk7Cj4gPiAr fQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHNpaTg2MjBfbmV3X3ZzaShzdHJ1Y3Qgc2lpODYyMCAq Y3R4KQo+ID4gK3sKPiA+ICsJdTggdnNpZlsxMV07Cj4gPiArCj4gPiArCXNpaTg2MjBfd3JpdGUo Y3R4LCBSRUdfUlhfSERNSV9DVFJMMiwKPiA+ICsJCSAgICAgICBWQUxfUlhfSERNSV9DVFJMMl9E RUZWQUwKPiA+ICsJCSAgICAgICB8IEJJVF9SWF9IRE1JX0NUUkwyX1ZTSV9NT05fU0VMX1ZTSSk7 Cj4gPiArCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfUlhfSERNSV9NT05fUEtUX0hFQURFUjEs IHZzaWYsCj4gPiArCQkJIEFSUkFZX1NJWkUodnNpZikpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0 aWMgdm9pZCBzaWk4NjIwX25ld19hdmkoc3RydWN0IHNpaTg2MjAgKmN0eCkKPiA+ICt7Cj4gPiAr CXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfUlhfSERNSV9DVFJMMiwgVkFMX1JYX0hETUlfQ1RSTDJf REVGVkFMKTsKPiA+ICsJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19SWF9IRE1JX01PTl9QS1Rf SEVBREVSMSwgY3R4LT5hdmlmLAo+ID4gKwkJCSBBUlJBWV9TSVpFKGN0eC0+YXZpZikpOwo+ID4g K30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBzaWk4NjIwX2lycV9pbmZyKHN0cnVjdCBzaWk4NjIw ICpjdHgpCj4gPiArewo+ID4gKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19JTlRS OCkKPiA+ICsJCSYgKEJJVF9DRUFfTkVXX1ZTSSB8IEJJVF9DRUFfTkVXX0FWSSk7Cj4gPiArCj4g PiArCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfSU5UUjgsIHN0YXQpOwo+ID4gKwo+ID4gKwlpZiAo c3RhdCAmIEJJVF9DRUFfTkVXX1ZTSSkKPiA+ICsJCXNpaTg2MjBfbmV3X3ZzaShjdHgpOwo+ID4g Kwo+ID4gKwlpZiAoc3RhdCAmIEJJVF9DRUFfTkVXX0FWSSkKPiA+ICsJCXNpaTg2MjBfbmV3X2F2 aShjdHgpOwo+ID4gKwo+ID4gKwlpZiAoc3RhdCAmIChCSVRfQ0VBX05FV19WU0kgfCBCSVRfQ0VB X05FV19BVkkpKQo+ID4gKwkJc2lpODYyMF9zdGFydF92aWRlbyhjdHgpOwo+ID4gK30KPiA+ICsK PiA+ICsvKiBlbmRpYW4gYWdub3N0aWMsIG5vbi12b2xhdGlsZSB2ZXJzaW9uIG9mIHRlc3RfYml0 ICovCj4gPiArc3RhdGljIGJvb2wgc2lpODYyMF90ZXN0X2JpdCh1bnNpZ25lZCBpbnQgbnIsIGNv bnN0IHU4ICphZGRyKQo+ID4gK3sKPiA+ICsJcmV0dXJuIDEgJiAoYWRkcltuciAvIEJJVFNfUEVS X0JZVEVdID4+IChuciAlIEJJVFNfUEVSX0JZVEUpKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGlj IGlycXJldHVybl90IHNpaTg2MjBfaXJxX3RocmVhZChpbnQgaXJxLCB2b2lkICpkYXRhKQo+ID4g K3sKPiA+ICsJc3RhdGljIGNvbnN0IHN0cnVjdCB7Cj4gPiArCQlpbnQgYml0Owo+ID4gKwkJdm9p ZCAoKmhhbmRsZXIpKHN0cnVjdCBzaWk4NjIwICpjdHgpOwo+ID4gKwl9IGlycV92ZWNbXSA9IHsK PiA+ICsJCXsgQklUX0ZBU1RfSU5UUl9TVEFUX0RJU0MsIHNpaTg2MjBfaXJxX2Rpc2MgfSwKPiA+ ICsJCXsgQklUX0ZBU1RfSU5UUl9TVEFUX0cyV0IsIHNpaTg2MjBfaXJxX2cyd2IgfSwKPiA+ICsJ CXsgQklUX0ZBU1RfSU5UUl9TVEFUX0NPQywgc2lpODYyMF9pcnFfY29jIH0sCj4gPiArCQl7IEJJ VF9GQVNUX0lOVFJfU1RBVF9NU0MsIHNpaTg2MjBfaXJxX21zYyB9LAo+ID4gKwkJeyBCSVRfRkFT VF9JTlRSX1NUQVRfTUVSUiwgc2lpODYyMF9pcnFfbWVyciB9LAo+ID4gKwkJeyBCSVRfRkFTVF9J TlRSX1NUQVRfRURJRCwgc2lpODYyMF9pcnFfZWRpZCB9LAo+ID4gKwkJeyBCSVRfRkFTVF9JTlRS X1NUQVRfU0NEVCwgc2lpODYyMF9pcnFfc2NkdCB9LAo+ID4gKwkJeyBCSVRfRkFTVF9JTlRSX1NU QVRfSU5GUiwgc2lpODYyMF9pcnFfaW5mciB9LAo+ID4gKwl9Owo+ID4gKwlzdHJ1Y3Qgc2lpODYy MCAqY3R4ID0gZGF0YTsKPiA+ICsJdTggc3RhdHNbTEVOX0ZBU1RfSU5UUl9TVEFUXTsKPiA+ICsJ aW50IGksIHJldDsKPiA+ICsKPiA+ICsJbXV0ZXhfbG9jaygmY3R4LT5sb2NrKTsKPiA+ICsKPiA+ ICsJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19GQVNUX0lOVFJfU1RBVCwgc3RhdHMsIEFSUkFZ X1NJWkUoc3RhdHMpKTsKPiA+ICsJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaXJxX3ZlYyk7 ICsraSkKPiA+ICsJCWlmIChzaWk4NjIwX3Rlc3RfYml0KGlycV92ZWNbaV0uYml0LCBzdGF0cykp Cj4gPiArCQkJaXJxX3ZlY1tpXS5oYW5kbGVyKGN0eCk7Cj4gPiArCj4gPiArCXNpaTg2MjBfbXRf d29yayhjdHgpOwo+ID4gKwo+ID4gKwlyZXQgPSBzaWk4NjIwX2NsZWFyX2Vycm9yKGN0eCk7Cj4g PiArCWlmIChyZXQpIHsKPiA+ICsJCWRldl9lcnIoY3R4LT5kZXYsICJFcnJvciBkdXJpbmcgSVJR IGhhbmRsaW5nLCAlZC5cbiIsIHJldCk7Cj4gPiArCQlzaWk4NjIwX21obF9kaXNjb25uZWN0ZWQo Y3R4KTsKPiA+ICsJfQo+ID4gKwltdXRleF91bmxvY2soJmN0eC0+bG9jayk7Cj4gPiArCj4gPiAr CXJldHVybiBJUlFfSEFORExFRDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2lpODYy MF9jYWJsZV9pbihzdHJ1Y3Qgc2lpODYyMCAqY3R4KQo+ID4gK3sKPiA+ICsJc3RydWN0IGRldmlj ZSAqZGV2ID0gY3R4LT5kZXY7Cj4gPiArCXU4IHZlcls1XTsKPiA+ICsJaW50IHJldDsKPiA+ICsK PiA+ICsJcmV0ID0gc2lpODYyMF9od19vbihjdHgpOwo+ID4gKwlpZiAocmV0KSB7Cj4gPiArCQlk ZXZfZXJyKGRldiwgIkVycm9yIHBvd2VyaW5nIG9uLCAlZC5cbiIsIHJldCk7Cj4gPiArCQlyZXR1 cm47Cj4gPiArCX0KPiA+ICsJc2lpODYyMF9od19yZXNldChjdHgpOwo+ID4gKwo+ID4gKwlzaWk4 NjIwX3JlYWRfYnVmKGN0eCwgUkVHX1ZORF9JREwsIHZlciwgQVJSQVlfU0laRSh2ZXIpKTsKPiA+ ICsJcmV0ID0gc2lpODYyMF9jbGVhcl9lcnJvcihjdHgpOwo+ID4gKwlpZiAocmV0KSB7Cj4gPiAr CQlkZXZfZXJyKGRldiwgIkVycm9yIGFjY2Vzc2luZyBJMkMgYnVzLCAlZC5cbiIsIHJldCk7Cj4g PiArCQlyZXR1cm47Cj4gPiArCX0KPiA+ICsKPiA+ICsJZGV2X2luZm8oZGV2LCAiQ2hpcElEICUw MnglMDJ4OiUwMnglMDJ4IHJldiAlMDJ4LlxuIiwgdmVyWzFdLCB2ZXJbMF0sCj4gPiArCQkgdmVy WzNdLCB2ZXJbMl0sIHZlcls0XSk7Cj4gPiArCj4gPiArCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdf RFBELAo+ID4gKwkJCUJJVF9EUERfUFdST05fUExMIHwgQklUX0RQRF9QRE5UWDEyIHwgQklUX0RQ RF9PU0NfRU4pOwo+ID4gKwo+ID4gKwlzaWk4NjIwX3h0YWxfc2V0X3JhdGUoY3R4KTsKPiA+ICsJ c2lpODYyMF9kaXNjb25uZWN0KGN0eCk7Cj4gPiArCj4gPiArCXNpaTg2MjBfd3JpdGVfc2VxKGN0 eCwKPiA+ICsJCVJFR19NSExfQ0JVU19DVEwwLCBWQUxfTUhMX0NCVVNfQ1RMMF9DQlVTX0RSVl9T RUxfU1RST05HCj4gPiArCQkJfCBWQUxfTUhMX0NCVVNfQ1RMMF9DQlVTX1JHTkRfVkJJQVNfNzM0 LAo+ID4gKwkJUkVHX01ITF9DQlVTX0NUTDEsIFZBTF9NSExfQ0JVU19DVEwxXzExMTVfT0hNLAo+ ID4gKwkJUkVHX0RQRCwgQklUX0RQRF9QV1JPTl9QTEwgfCBCSVRfRFBEX1BETlRYMTIgfCBCSVRf RFBEX09TQ19FTiwKPiA+ICsJKTsKPiA+ICsKPiA+ICsJcmV0ID0gc2lpODYyMF9jbGVhcl9lcnJv cihjdHgpOwo+ID4gKwlpZiAocmV0KSB7Cj4gPiArCQlkZXZfZXJyKGRldiwgIkVycm9yIGFjY2Vz c2luZyBJMkMgYnVzLCAlZC5cbiIsIHJldCk7Cj4gPiArCQlyZXR1cm47Cj4gPiArCX0KPiA+ICsK PiA+ICsJZW5hYmxlX2lycSh0b19pMmNfY2xpZW50KGN0eC0+ZGV2KS0+aXJxKTsKPiA+ICt9Cj4g PiArCj4gPiArc3RhdGljIGlubGluZSBzdHJ1Y3Qgc2lpODYyMCAqYnJpZGdlX3RvX3NpaTg2MjAo c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiA+ICt7Cj4gPiArCXJldHVybiBjb250YWluZXJf b2YoYnJpZGdlLCBzdHJ1Y3Qgc2lpODYyMCwgYnJpZGdlKTsKPiA+ICt9Cj4gPiArCj4gPiArYm9v bCBzaWk4NjIwX21vZGVfZml4dXAoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiA+ICsJCSAg IGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ID4gKwkJICAgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCj4gPiArewo+ID4gKwlzdHJ1Y3Qgc2lpODYy MCAqY3R4ID0gYnJpZGdlX3RvX3NpaTg2MjAoYnJpZGdlKTsKPiA+ICsJYm9vbCByZXQgPSBmYWxz ZTsKPiA+ICsJaW50IG1heF9jbG9jayA9IDc0MjUwOwo+ID4gKwo+ID4gKwltdXRleF9sb2NrKCZj dHgtPmxvY2spOwo+ID4gKwo+ID4gKwlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lO VEVSTEFDRSkKPiA+ICsJCWdvdG8gb3V0Owo+ID4gKwo+ID4gKwlpZiAoY3R4LT5kZXZjYXBbTUhM X0RDQVBfVklEX0xJTktfTU9ERV0gJiBNSExfRENBUF9WSURfTElOS19QUElYRUwpCj4gPiArCQlt YXhfY2xvY2sgPSAzMDAwMDA7Cj4gPiArCj4gPiArCXJldCA9IG1vZGUtPmNsb2NrIDw9IG1heF9j bG9jazsKPiA+ICsKPiA+ICtvdXQ6Cj4gPiArCW11dGV4X3VubG9jaygmY3R4LT5sb2NrKTsKPiA+ ICsKPiA+ICsJcmV0dXJuIHJldDsKPiA+ICt9Cj4gPiArCj4gPiArCj4gPiArc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIHNpaTg2MjBfYnJpZGdlX2Z1bmNzID0gewo+ID4gKwku bW9kZV9maXh1cCA9IHNpaTg2MjBfbW9kZV9maXh1cCwKPiA+ICt9Owo+ID4gKwo+ID4gK3N0YXRp YyBpbnQgc2lpODYyMF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAo+ID4gKwkJCSBj b25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZGV2aWNl ICpkZXYgPSAmY2xpZW50LT5kZXY7Cj4gPiArCXN0cnVjdCBzaWk4NjIwICpjdHg7Cj4gPiArCWlu dCByZXQ7Cj4gPiArCj4gPiArCWN0eCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqY3R4KSwg R0ZQX0tFUk5FTCk7Cj4gPiArCWlmICghY3R4KQo+ID4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gPiAr Cj4gPiArCWN0eC0+ZGV2ID0gZGV2Owo+ID4gKwltdXRleF9pbml0KCZjdHgtPmxvY2spOwo+ID4g KwlJTklUX0xJU1RfSEVBRCgmY3R4LT5tdF9xdWV1ZSk7Cj4gPiArCj4gPiArCWN0eC0+Y2xrX3h0 YWwgPSBkZXZtX2Nsa19nZXQoZGV2LCAieHRhbCIpOwo+ID4gKwlpZiAoSVNfRVJSKGN0eC0+Y2xr X3h0YWwpKSB7Cj4gPiArCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgeHRhbCBjbG9jayBm cm9tIERUXG4iKTsKPiA+ICsJCXJldHVybiBQVFJfRVJSKGN0eC0+Y2xrX3h0YWwpOwo+ID4gKwl9 Cj4gPiArCj4gPiArCWlmICghY2xpZW50LT5pcnEpIHsKPiA+ICsJCWRldl9lcnIoZGV2LCAibm8g aXJxIHByb3ZpZGVkXG4iKTsKPiA+ICsJCXJldHVybiAtRUlOVkFMOwo+ID4gKwl9Cj4gPiArCWly cV9zZXRfc3RhdHVzX2ZsYWdzKGNsaWVudC0+aXJxLCBJUlFfTk9BVVRPRU4pOwo+ID4gKwlyZXQg PSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKGRldiwgY2xpZW50LT5pcnEsIE5VTEwsCj4gPiAr CQkJc2lpODYyMF9pcnFfdGhyZWFkLCBJUlFGX1RSSUdHRVJfSElHSCB8IElSUUZfT05FU0hPVCwK PiA+ICsJCQkic2lpODYyMCIsIGN0eCk7Cj4gPiArCj4gPiArCWN0eC0+Z3Bpb19yZXNldCA9IGRl dm1fZ3Bpb2RfZ2V0KGRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0hJR0gpOwo+ID4gKwlpZiAoSVNf RVJSKGN0eC0+Z3Bpb19yZXNldCkpIHsKPiA+ICsJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdl dCByZXNldCBncGlvIGZyb20gRFRcbiIpOwo+ID4gKwkJcmV0dXJuIFBUUl9FUlIoY3R4LT5ncGlv X3Jlc2V0KTsKPiA+ICsJfQo+ID4gKwo+ID4gKwljdHgtPnN1cHBsaWVzWzBdLnN1cHBseSA9ICJj dmNjMTAiOwo+ID4gKwljdHgtPnN1cHBsaWVzWzFdLnN1cHBseSA9ICJpb3ZjYzE4IjsKPiA+ICsJ cmV0ID0gZGV2bV9yZWd1bGF0b3JfYnVsa19nZXQoZGV2LCAyLCBjdHgtPnN1cHBsaWVzKTsKPiA+ ICsJaWYgKHJldCkKPiA+ICsJCXJldHVybiByZXQ7Cj4gPiArCj4gPiArCWkyY19zZXRfY2xpZW50 ZGF0YShjbGllbnQsIGN0eCk7Cj4gPiArCj4gPiArCWN0eC0+YnJpZGdlLmZ1bmNzID0gJnNpaTg2 MjBfYnJpZGdlX2Z1bmNzOwo+ID4gKwljdHgtPmJyaWRnZS5vZl9ub2RlID0gZGV2LT5vZl9ub2Rl Owo+ID4gKwlkcm1fYnJpZGdlX2FkZCgmY3R4LT5icmlkZ2UpOwo+ID4gKwo+ID4gKwlzaWk4NjIw X2NhYmxlX2luKGN0eCk7Cj4gPiArCj4gPiArCXJldHVybiAwOwo+ID4gK30KPiA+ICsKPiA+ICtz dGF0aWMgaW50IHNpaTg2MjBfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCj4gPiAr ewo+ID4gKwlzdHJ1Y3Qgc2lpODYyMCAqY3R4ID0gaTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7 Cj4gPiArCj4gPiArCWRpc2FibGVfaXJxKHRvX2kyY19jbGllbnQoY3R4LT5kZXYpLT5pcnEpOwo+ ID4gKwlkcm1fYnJpZGdlX3JlbW92ZSgmY3R4LT5icmlkZ2UpOwo+ID4gKwlzaWk4NjIwX2h3X29m ZihjdHgpOwo+ID4gKwo+ID4gKwlyZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGNv bnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc2lpODYyMF9kdF9tYXRjaFtdID0gewo+ID4gKwl7IC5j b21wYXRpYmxlID0gInNpbCxzaWk4NjIwIiB9LAo+ID4gKwl7IH0sCj4gPiArfTsKPiA+ICtNT0RV TEVfREVWSUNFX1RBQkxFKG9mLCBzaWk4NjIwX2R0X21hdGNoKTsKPiA+ICsKPiA+ICtzdGF0aWMg Y29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgc2lpODYyMF9pZFtdID0gewo+ID4gKwl7ICJTSUk4 NjIwIiwgMCB9LAo+ID4gKwl7IH0sCj4gPiArfTsKPiA+ICsKPiA+ICtNT0RVTEVfREVWSUNFX1RB QkxFKGkyYywgc2lpODYyMF9pZCk7Cj4gPiArc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHNpaTg2 MjBfZHJpdmVyID0gewo+ID4gKwkuZHJpdmVyID0gewo+ID4gKwkJLm5hbWUJPSAic2lpODYyMCIs Cj4gPiArCQkub3duZXIJPSBUSElTX01PRFVMRSwKPiA+ICsJCS5vZl9tYXRjaF90YWJsZSA9IG9m X21hdGNoX3B0cihzaWk4NjIwX2R0X21hdGNoKSwKPiA+ICsJfSwKPiA+ICsJLnByb2JlCQk9IHNp aTg2MjBfcHJvYmUsCj4gPiArCS5yZW1vdmUJCT0gc2lpODYyMF9yZW1vdmUsCj4gPiArCS5pZF90 YWJsZSA9IHNpaTg2MjBfaWQsCj4gPiArfTsKPiA+ICsKPiA+ICttb2R1bGVfaTJjX2RyaXZlcihz aWk4NjIwX2RyaXZlcik7Cj4gPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuaCBiL2RyaXZlcnMvZ3B1 L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuaAo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGlu ZGV4IDAwMDAwMDAuLjZmZjYxNmEKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuaAo+ID4gQEAgLTAsMCArMSwxNTE3IEBACj4gPiAr LyoKPiA+ICsgKiBSZWdpc3RlcnMgb2YgU2lsaWNvbiBJbWFnZSBTaUk4NjIwIE1vYmlsZSBIRCBU cmFuc21pdHRlcgo+ID4gKyAqCj4gPiArICogQ29weXJpZ2h0IChDKSAyMDE1LCBTYW1zdW5nIEVs ZWN0cm9uaWNzIENvLiwgTHRkLgo+ID4gKyAqIEFuZHJ6ZWogSGFqZGEgPGEuaGFqZGFAc2Ftc3Vu Zy5jb20+Cj4gPiArICoKPiA+ICsgKiBCYXNlZCBvbiBNSEwgZHJpdmVyIGZvciBBbmRyb2lkIGRl dmljZXMuCj4gPiArICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgU2lsaWNvbiBJbWFnZSwgSW5j Lgo+ID4gKyAqCj4gPiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPiA+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwo+ID4gKyAqIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ID4gKyAqLwo+ID4gKwo+ ID4gKyNpZm5kZWYgX19TSUxfU0lJODYyMF9IX18KPiA+ICsjZGVmaW5lIF9fU0lMX1NJSTg2MjBf SF9fCj4gPiArCj4gPiArLyogVmVuZG9yIElEIExvdyBieXRlLCBkZWZhdWx0IHZhbHVlOiAweDAx ICovCj4gPiArI2RlZmluZSBSRUdfVk5EX0lETAkJCQkweDAwMDAKPiA+ICsKPiA+ICsvKiBWZW5k b3IgSUQgSGlnaCBieXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdf Vk5EX0lESAkJCQkweDAwMDEKPiA+ICsKPiA+ICsvKiBEZXZpY2UgSUQgTG93IGJ5dGUsIGRlZmF1 bHQgdmFsdWU6IDB4NjAgKi8KPiA+ICsjZGVmaW5lIFJFR19ERVZfSURMCQkJCTB4MDAwMgo+ID4g Kwo+ID4gKy8qIERldmljZSBJRCBIaWdoIGJ5dGUsIGRlZmF1bHQgdmFsdWU6IDB4ODYgKi8KPiA+ ICsjZGVmaW5lIFJFR19ERVZfSURICQkJCTB4MDAwMwo+ID4gKwo+ID4gKy8qIERldmljZSBSZXZp c2lvbiwgZGVmYXVsdCB2YWx1ZTogMHgxMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0RFVl9SRVYJCQkJ MHgwMDA0Cj4gPiArCj4gPiArLyogT1RQIERCWVRFNTEwLCBkZWZhdWx0IHZhbHVlOiAweDAwICov Cj4gPiArI2RlZmluZSBSRUdfT1RQX0RCWVRFNTEwCQkJMHgwMDA2Cj4gPiArCj4gPiArLyogU3lz dGVtIENvbnRyb2wgIzEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19T WVNfQ1RSTDEJCQkJMHgwMDA4Cj4gPiArI2RlZmluZSBCSVRfU1lTX0NUUkwxX09UUFZNVVRFT1ZS X1NFVAkJQklUKDcpCj4gPiArI2RlZmluZSBCSVRfU1lTX0NUUkwxX1ZTWU5DUElOCQkJQklUKDYp Cj4gPiArI2RlZmluZSBCSVRfU1lTX0NUUkwxX09UUEFEUk9QT1ZSX1NFVAkJQklUKDUpCj4gPiAr I2RlZmluZSBCSVRfU1lTX0NUUkwxX0JMT0NLX0REQ19CWV9IUEQJCUJJVCg0KQo+ID4gKyNkZWZp bmUgQklUX1NZU19DVFJMMV9PVFAyWFZPVlJfRU4JCUJJVCgzKQo+ID4gKyNkZWZpbmUgQklUX1NZ U19DVFJMMV9PVFAyWEFPVlJfRU4JCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX1NZU19DVFJMMV9U WF9DVFJMX0hETUkJCUJJVCgxKQo+ID4gKyNkZWZpbmUgQklUX1NZU19DVFJMMV9PVFBBTVVURU9W Ul9TRVQJCUJJVCgwKQo+ID4gKwo+ID4gKy8qIFN5c3RlbSBDb250cm9sIERQRCwgZGVmYXVsdCB2 YWx1ZTogMHg5MCAqLwo+ID4gKyNkZWZpbmUgUkVHX0RQRAkJCQkJMHgwMDBiCj4gPiArI2RlZmlu ZSBCSVRfRFBEX1BXUk9OX1BMTAkJCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX0RQRF9QRE5UWDEy CQkJCUJJVCg2KQo+ID4gKyNkZWZpbmUgQklUX0RQRF9QRE5SWDEyCQkJCUJJVCg1KQo+ID4gKyNk ZWZpbmUgQklUX0RQRF9PU0NfRU4JCQkJQklUKDQpCj4gPiArI2RlZmluZSBCSVRfRFBEX1BXUk9O X0hTSUMJCQlCSVQoMykKPiA+ICsjZGVmaW5lIEJJVF9EUERfUERJRENLX04JCQlCSVQoMikKPiA+ ICsjZGVmaW5lIEJJVF9EUERfUERfTUhMX0NMS19OCQkJQklUKDEpCj4gPiArCj4gPiArLyogRHVh bCBsaW5rIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19E Q1RMCQkJCTB4MDAwZAo+ID4gKyNkZWZpbmUgQklUX0RDVExfVERNX0xDTEtfUEhBU0UJCQlCSVQo NykKPiA+ICsjZGVmaW5lIEJJVF9EQ1RMX0hTSUNfQ0xLX1BIQVNFCQkJQklUKDYpCj4gPiArI2Rl ZmluZSBCSVRfRENUTF9DVFNfVENLX1BIQVNFCQkJQklUKDUpCj4gPiArI2RlZmluZSBCSVRfRENU TF9FWFRfRERDX1NFTAkJCUJJVCg0KQo+ID4gKyNkZWZpbmUgQklUX0RDVExfVFJBTlNDT0RFCQkJ QklUKDMpCj4gPiArI2RlZmluZSBCSVRfRENUTF9IU0lDX1JYX1NUUk9CRV9QSEFTRQkJQklUKDIp Cj4gPiArI2RlZmluZSBCSVRfRENUTF9IU0lDX1RYX0JJU1RfU1RBUlRfU0VMCQlCSVQoMSkKPiA+ ICsjZGVmaW5lIEJJVF9EQ1RMX1RDTEtOWF9QSEFTRQkJCUJJVCgwKQo+ID4gKwo+ID4gKy8qIFBX RCBTb2Z0d2FyZSBSZXNldCwgZGVmYXVsdCB2YWx1ZTogMHgyMCAqLwo+ID4gKyNkZWZpbmUgUkVH X1BXRF9TUlNUCQkJCTB4MDAwZQo+ID4gKyNkZWZpbmUgQklUX1BXRF9TUlNUX0NPQ19ET0NfUlNU CQlCSVQoNykKPiA+ICsjZGVmaW5lIEJJVF9QV0RfU1JTVF9DQlVTX1JTVF9TVwkJQklUKDYpCj4g PiArI2RlZmluZSBCSVRfUFdEX1NSU1RfQ0JVU19SU1RfU1dfRU4JCUJJVCg1KQo+ID4gKyNkZWZp bmUgQklUX1BXRF9TUlNUX01ITEZJRk9fUlNUCQlCSVQoNCkKPiA+ICsjZGVmaW5lIEJJVF9QV0Rf U1JTVF9DQlVTX1JTVAkJCUJJVCgzKQo+ID4gKyNkZWZpbmUgQklUX1BXRF9TUlNUX1NXX1JTVF9B VVRPCQlCSVQoMikKPiA+ICsjZGVmaW5lIEJJVF9QV0RfU1JTVF9IRENQMlhfU1dfUlNUCQlCSVQo MSkKPiA+ICsjZGVmaW5lIEJJVF9QV0RfU1JTVF9TV19SU1QJCQlCSVQoMCkKPiA+ICsKPiA+ICsv KiBBS1NWXzEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19BS1NWXzEJ CQkJMHgwMDFkCj4gPiArCj4gPiArLyogVmlkZW8gSCBSZXNvbHV0aW9uICMxLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfSF9SRVNMCQkJCTB4MDAzYQo+ID4gKwo+ID4g Ky8qIFZpZGVvIE1vZGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19W SURfTU9ERQkJCQkweDAwNGEKPiA+ICsjZGVmaW5lIEJJVF9WSURfTU9ERV9NMTA4MFAJCQlCSVQo NikKPiA+ICsKPiA+ICsvKiBWaWRlbyBJbnB1dCBNb2RlLCBkZWZhdWx0IHZhbHVlOiAweGMwICov Cj4gPiArI2RlZmluZSBSRUdfVklEX09WUlJECQkJCTB4MDA1MQo+ID4gKyNkZWZpbmUgQklUX1ZJ RF9PVlJSRF9QUF9BVVRPX0RJU0FCTEUJCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX1ZJRF9PVlJS RF9NMTA4MFBfT1ZSUkQJCUJJVCg2KQo+ID4gKyNkZWZpbmUgQklUX1ZJRF9PVlJSRF9NSU5JVlNZ TkNfT04JCUJJVCg1KQo+ID4gKyNkZWZpbmUgQklUX1ZJRF9PVlJSRF8zRENPTlZfRU5fRlJBTUVf UEFDSwlCSVQoNCkKPiA+ICsjZGVmaW5lIEJJVF9WSURfT1ZSUkRfRU5BQkxFX0FVVE9fUEFUSF9F TglCSVQoMykKPiA+ICsjZGVmaW5lIEJJVF9WSURfT1ZSUkRfRU5SR0IyWUNCQ1JfT1ZSUkQJCUJJ VCgyKQo+ID4gKyNkZWZpbmUgQklUX1ZJRF9PVlJSRF9FTkRPV05TQU1QTEVfT1ZSUkQJQklUKDAp Cj4gPiArCj4gPiArLyogSTJDIEFkZHJlc3MgcmVhc3NpZ25tZW50LCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCj4gPiArI2RlZmluZSBSRUdfUEFHRV9NSExTUEVDX0FERFIJCQkweDAwNTcKPiA+ICsj ZGVmaW5lIFJFR19QQUdFN19BRERSCQkJCTB4MDA1OAo+ID4gKyNkZWZpbmUgUkVHX1BBR0U4X0FE RFIJCQkJMHgwMDVjCj4gPiArCj4gPiArLyogRmFzdCBJbnRlcnJ1cHQgU3RhdHVzLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfRkFTVF9JTlRSX1NUQVQJCQkweDAwNWYK PiA+ICsjZGVmaW5lIExFTl9GQVNUX0lOVFJfU1RBVAkJCTcKPiA+ICsjZGVmaW5lIEJJVF9GQVNU X0lOVFJfU1RBVF9USU1SCQkJOAo+ID4gKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0lOVDIJ CQk5Cj4gPiArI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfRERDCQkJMTAKPiA+ICsjZGVmaW5l IEJJVF9GQVNUX0lOVFJfU1RBVF9TQ0RUCQkJMTEKPiA+ICsjZGVmaW5lIEJJVF9GQVNUX0lOVFJf U1RBVF9JTkZSCQkJMTMKPiA+ICsjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9FRElECQkJMTQK PiA+ICsjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9IRENQCQkJMTUKPiA+ICsjZGVmaW5lIEJJ VF9GQVNUX0lOVFJfU1RBVF9NU0MJCQkxNgo+ID4gKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFU X01FUlIJCQkxNwo+ID4gKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0cyV0IJCQkxOAo+ID4g KyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0cyV0JfRVJSCQkxOQo+ID4gKyNkZWZpbmUgQklU X0ZBU1RfSU5UUl9TVEFUX0RJU0MJCQkyOAo+ID4gKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFU X0JMT0NLCQkzMAo+ID4gKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0xUUk4JCQkzMQo+ID4g KyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0hEQ1AyCQkzMgo+ID4gKyNkZWZpbmUgQklUX0ZB U1RfSU5UUl9TVEFUX1RETQkJCTQyCj4gPiArI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfQ09D CQkJNTEKPiA+ICsKPiA+ICsvKiBHUElPIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MTUgKi8K PiA+ICsjZGVmaW5lIFJFR19HUElPX0NUUkwxCQkJCTB4MDA2ZQo+ID4gKyNkZWZpbmUgQklUX0NU UkwxX0dQSU9fSV84CQkJQklUKDUpCj4gPiArI2RlZmluZSBCSVRfQ1RSTDFfR1BJT19PRU5fOAkJ CUJJVCg0KQo+ID4gKyNkZWZpbmUgQklUX0NUUkwxX0dQSU9fSV83CQkJQklUKDMpCj4gPiArI2Rl ZmluZSBCSVRfQ1RSTDFfR1BJT19PRU5fNwkJCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX0NUUkwx X0dQSU9fSV82CQkJQklUKDEpCj4gPiArI2RlZmluZSBCSVRfQ1RSTDFfR1BJT19PRU5fNgkJCUJJ VCgwKQo+ID4gKwo+ID4gKy8qIEludGVycnVwdCBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDA2 ICovCj4gPiArI2RlZmluZSBSRUdfSU5UX0NUUkwJCQkJMHgwMDZmCj4gPiArI2RlZmluZSBCSVRf SU5UX0NUUkxfU09GVFdBUkVfV1AJCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX0lOVF9DVFJMX0lO VFJfT0QJCQlCSVQoMikKPiA+ICsjZGVmaW5lIEJJVF9JTlRfQ1RSTF9JTlRSX1BPTEFSSVRZCQlC SVQoMSkKPiA+ICsKPiA+ICsvKiBJbnRlcnJ1cHQgU3RhdGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KPiA+ICsjZGVmaW5lIFJFR19JTlRSX1NUQVRFCQkJCTB4MDA3MAo+ID4gKyNkZWZpbmUgQklU X0lOVFJfU1RBVEVfSU5UUl9TVEFURQkJQklUKDApCj4gPiArCj4gPiArLyogSW50ZXJydXB0IFNv dXJjZSAjMSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0lOVFIxCQkJ CTB4MDA3MQo+ID4gKwo+ID4gKy8qIEludGVycnVwdCBTb3VyY2UgIzIsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19JTlRSMgkJCQkweDAwNzIKPiA+ICsKPiA+ICsvKiBJ bnRlcnJ1cHQgU291cmNlICMzLCBkZWZhdWx0IHZhbHVlOiAweDAxICovCj4gPiArI2RlZmluZSBS RUdfSU5UUjMJCQkJMHgwMDczCj4gPiArI2RlZmluZSBCSVRfRERDX0NNRF9ET05FCQkJQklUKDMp Cj4gPiArCj4gPiArLyogSW50ZXJydXB0IFNvdXJjZSAjNSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq Lwo+ID4gKyNkZWZpbmUgUkVHX0lOVFI1CQkJCTB4MDA3NAo+ID4gKwo+ID4gKy8qIEludGVycnVw dCAjMSBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfSU5UUjFf TUFTSwkJCQkweDAwNzUKPiA+ICsKPiA+ICsvKiBJbnRlcnJ1cHQgIzIgTWFzaywgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0lOVFIyX01BU0sJCQkJMHgwMDc2Cj4gPiAr Cj4gPiArLyogSW50ZXJydXB0ICMzIE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsj ZGVmaW5lIFJFR19JTlRSM19NQVNLCQkJCTB4MDA3Nwo+ID4gKwo+ID4gKy8qIEludGVycnVwdCAj NSBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfSU5UUjVfTUFT SwkJCQkweDAwNzgKPiA+ICsjZGVmaW5lIEJJVF9JTlRSX1NDRFRfQ0hBTkdFCQkJQklUKDApCj4g PiArCj4gPiArLyogSG90IFBsdWcgQ29ubmVjdGlvbiBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAw eDQ1ICovCj4gPiArI2RlZmluZSBSRUdfSFBEX0NUUkwJCQkJMHgwMDc5Cj4gPiArI2RlZmluZSBC SVRfSFBEX0NUUkxfSFBEX0RTX1NJR05BTAkJQklUKDcpCj4gPiArI2RlZmluZSBCSVRfSFBEX0NU UkxfSFBEX09VVF9PRF9FTgkJQklUKDYpCj4gPiArI2RlZmluZSBCSVRfSFBEX0NUUkxfSFBEX0hJ R0gJCQlCSVQoNSkKPiA+ICsjZGVmaW5lIEJJVF9IUERfQ1RSTF9IUERfT1VUX09WUl9FTgkJQklU KDQpCj4gPiArI2RlZmluZSBCSVRfSFBEX0NUUkxfR1BJT19JXzEJCQlCSVQoMykKPiA+ICsjZGVm aW5lIEJJVF9IUERfQ1RSTF9HUElPX09FTl8xCQkJQklUKDIpCj4gPiArI2RlZmluZSBCSVRfSFBE X0NUUkxfR1BJT19JXzAJCQlCSVQoMSkKPiA+ICsjZGVmaW5lIEJJVF9IUERfQ1RSTF9HUElPX09F Tl8wCQkJQklUKDApCj4gPiArCj4gPiArLyogR1BJTyBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAw eDU1ICovCj4gPiArI2RlZmluZSBSRUdfR1BJT19DVFJMCQkJCTB4MDA3YQo+ID4gKyNkZWZpbmUg QklUX0NUUkxfR1BJT19JXzUJCQlCSVQoNykKPiA+ICsjZGVmaW5lIEJJVF9DVFJMX0dQSU9fT0VO XzUJCQlCSVQoNikKPiA+ICsjZGVmaW5lIEJJVF9DVFJMX0dQSU9fSV80CQkJQklUKDUpCj4gPiAr I2RlZmluZSBCSVRfQ1RSTF9HUElPX09FTl80CQkJQklUKDQpCj4gPiArI2RlZmluZSBCSVRfQ1RS TF9HUElPX0lfMwkJCUJJVCgzKQo+ID4gKyNkZWZpbmUgQklUX0NUUkxfR1BJT19PRU5fMwkJCUJJ VCgyKQo+ID4gKyNkZWZpbmUgQklUX0NUUkxfR1BJT19JXzIJCQlCSVQoMSkKPiA+ICsjZGVmaW5l IEJJVF9DVFJMX0dQSU9fT0VOXzIJCQlCSVQoMCkKPiA+ICsKPiA+ICsvKiBJbnRlcnJ1cHQgU291 cmNlIDcsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19JTlRSNwkJCQkw eDAwN2IKPiA+ICsKPiA+ICsvKiBJbnRlcnJ1cHQgU291cmNlIDgsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19JTlRSOAkJCQkweDAwN2MKPiA+ICsKPiA+ICsvKiBJbnRl cnJ1cHQgIzcgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0lO VFI3X01BU0sJCQkJMHgwMDdkCj4gPiArCj4gPiArLyogSW50ZXJydXB0ICM4IE1hc2ssIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19JTlRSOF9NQVNLCQkJCTB4MDA3ZQo+ ID4gKyNkZWZpbmUgQklUX0NFQV9ORVdfVlNJCQkJCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX0NF QV9ORVdfQVZJCQkJCUJJVCgxKQo+ID4gKwo+ID4gKy8qIElFRUUsIGRlZmF1bHQgdmFsdWU6IDB4 MTAgKi8KPiA+ICsjZGVmaW5lIFJFR19UTURTX0NDVFJMCQkJCTB4MDA4MAo+ID4gKyNkZWZpbmUg QklUX1RNRFNfQ0NUUkxfVE1EU19PRQkJCUJJVCg0KQo+ID4gKwo+ID4gKy8qIFRNRFMgQ29udHJv bCAjNCwgZGVmYXVsdCB2YWx1ZTogMHgwMiAqLwo+ID4gKyNkZWZpbmUgUkVHX1RNRFNfQ1RSTDQJ CQkJMHgwMDg1Cj4gPiArI2RlZmluZSBCSVRfVE1EU19DVFJMNF9TQ0RUX0NLRFRfU0VMCQlCSVQo MSkKPiA+ICsjZGVmaW5lIEJJVF9UTURTX0NUUkw0X1RYX0VOX0JZX1NDRFQJCUJJVCgwKQo+ID4g Kwo+ID4gKy8qIEJJU1QgQ05UTCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUg UkVHX0JJU1RfQ1RSTAkJCQkweDAwYmIKPiA+ICsjZGVmaW5lIEJJVF9SWEJJU1RfVkdCX0VOCQkJ QklUKDcpCj4gPiArI2RlZmluZSBCSVRfVFhCSVNUX1ZHQl9FTgkJCUJJVCg2KQo+ID4gKyNkZWZp bmUgQklUX0JJU1RfU1RBUlRfU0VMCQkJQklUKDUpCj4gPiArI2RlZmluZSBCSVRfQklTVF9TVEFS VF9CSVQJCQlCSVQoNCkKPiA+ICsjZGVmaW5lIEJJVF9CSVNUX0FMV0FZU19PTgkJCUJJVCgzKQo+ ID4gKyNkZWZpbmUgQklUX0JJU1RfVFJBTlMJCQkJQklUKDIpCj4gPiArI2RlZmluZSBCSVRfQklT VF9SRVNFVAkJCQlCSVQoMSkKPiA+ICsjZGVmaW5lIEJJVF9CSVNUX0VOCQkJCUJJVCgwKQo+ID4g Kwo+ID4gKy8qIEJJU1QgRFVSQVRJT04wLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2Rl ZmluZSBSRUdfQklTVF9URVNUX1NFTAkJCTB4MDBiZAo+ID4gKyNkZWZpbmUgTVNLX0JJU1RfVEVT VF9TRUxfQklTVF9QQVRUX1NFTAkJMHgwZgo+ID4gKwo+ID4gKy8qIEJJU1QgVklERU9fTU9ERSwg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0JJU1RfVklERU9fTU9ERQkJ CTB4MDBiZQo+ID4gKyNkZWZpbmUgTVNLX0JJU1RfVklERU9fTU9ERV9CSVNUX1ZJREVPX01PREVf M18wCTB4MGYKPiA+ICsKPiA+ICsvKiBCSVNUIERVUkFUSU9OMCwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLwo+ID4gKyNkZWZpbmUgUkVHX0JJU1RfRFVSQVRJT05fMAkJCTB4MDBiZgo+ID4gKwo+ID4g Ky8qIEJJU1QgRFVSQVRJT04xLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBS RUdfQklTVF9EVVJBVElPTl8xCQkJMHgwMGMwCj4gPiArCj4gPiArLyogQklTVCBEVVJBVElPTjIs IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19CSVNUX0RVUkFUSU9OXzIJ CQkweDAwYzEKPiA+ICsKPiA+ICsvKiBCSVNUIDhCSVRfUEFUVEVSTiwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0JJU1RfOEJJVF9QQVRURVJOCQkJMHgwMGMyCj4gPiAr Cj4gPiArLyogTE0gRERDLCBkZWZhdWx0IHZhbHVlOiAweDgwICovCj4gPiArI2RlZmluZSBSRUdf TE1fRERDCQkJCTB4MDBjNwo+ID4gKyNkZWZpbmUgQklUX0xNX0REQ19TV19UUElfRU5fRElTQUJM RUQJCUJJVCg3KQo+ID4gKwo+ID4gKyNkZWZpbmUgQklUX0xNX0REQ19WSURFT19NVVRFX0VOCQlC SVQoNSkKPiA+ICsjZGVmaW5lIEJJVF9MTV9ERENfRERDX1RQSV9TVwkJCUJJVCgyKQo+ID4gKyNk ZWZpbmUgQklUX0xNX0REQ19ERENfR1JBTlQJCQlCSVQoMSkKPiA+ICsjZGVmaW5lIEJJVF9MTV9E RENfRERDX0dQVV9SRVFVRVNUCQlCSVQoMCkKPiA+ICsKPiA+ICsvKiBEREMgSTJDIE1hbnVhbCwg ZGVmYXVsdCB2YWx1ZTogMHgwMyAqLwo+ID4gKyNkZWZpbmUgUkVHX0REQ19NQU5VQUwJCQkJMHgw MGVjCj4gPiArI2RlZmluZSBCSVRfRERDX01BTlVBTF9NQU5fRERDCQkJQklUKDcpCj4gPiArI2Rl ZmluZSBCSVRfRERDX01BTlVBTF9WUF9TRUwJCQlCSVQoNikKPiA+ICsjZGVmaW5lIEJJVF9ERENf TUFOVUFMX0RTREEJCQlCSVQoNSkKPiA+ICsjZGVmaW5lIEJJVF9ERENfTUFOVUFMX0RTQ0wJCQlC SVQoNCkKPiA+ICsjZGVmaW5lIEJJVF9ERENfTUFOVUFMX0dDUF9IV19DVExfRU4JCUJJVCgzKQo+ ID4gKyNkZWZpbmUgQklUX0REQ19NQU5VQUxfRERDTV9BQk9SVF9XUAkJQklUKDIpCj4gPiArI2Rl ZmluZSBCSVRfRERDX01BTlVBTF9JT19EU0RBCQkJQklUKDEpCj4gPiArI2RlZmluZSBCSVRfRERD X01BTlVBTF9JT19EU0NMCQkJQklUKDApCj4gPiArCj4gPiArLyogRERDIEkyQyBUYXJnZXQgU2xh dmUgQWRkcmVzcywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0REQ19B RERSCQkJCTB4MDBlZAo+ID4gKyNkZWZpbmUgTVNLX0REQ19BRERSX0REQ19BRERSCQkJMHhmZQo+ ID4gKwo+ID4gKy8qIEREQyBJMkMgVGFyZ2V0IFNlZ21lbnQgQWRkcmVzcywgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0REQ19TRUdNCQkJCTB4MDBlZQo+ID4gKwo+ID4g Ky8qIEREQyBJMkMgVGFyZ2V0IE9mZnNldCBBZGRyZXNzLCBkZWZhdWx0IHZhbHVlOiAweDAwICov Cj4gPiArI2RlZmluZSBSRUdfRERDX09GRlNFVAkJCQkweDAwZWYKPiA+ICsKPiA+ICsvKiBEREMg STJDIERhdGEgSW4gY291bnQgIzEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5l IFJFR19ERENfRElOX0NOVDEJCQkweDAwZjAKPiA+ICsKPiA+ICsvKiBEREMgSTJDIERhdGEgSW4g Y291bnQgIzIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19ERENfRElO X0NOVDIJCQkweDAwZjEKPiA+ICsjZGVmaW5lIE1TS19ERENfRElOX0NOVDJfRERDX0RJTl9DTlRf OV84CTB4MDMKPiA+ICsKPiA+ICsvKiBEREMgSTJDIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgw NCAqLwo+ID4gKyNkZWZpbmUgUkVHX0REQ19TVEFUVVMJCQkJMHgwMGYyCj4gPiArI2RlZmluZSBC SVRfRERDX1NUQVRVU19ERENfQlVTX0xPVwkJQklUKDYpCj4gPiArI2RlZmluZSBCSVRfRERDX1NU QVRVU19ERENfTk9fQUNLCQlCSVQoNSkKPiA+ICsjZGVmaW5lIEJJVF9ERENfU1RBVFVTX0REQ19J MkNfSU5fUFJPRwkJQklUKDQpCj4gPiArI2RlZmluZSBCSVRfRERDX1NUQVRVU19ERENfRklGT19G VUxMCQlCSVQoMykKPiA+ICsjZGVmaW5lIEJJVF9ERENfU1RBVFVTX0REQ19GSUZPX0VNUFRZCQlC SVQoMikKPiA+ICsjZGVmaW5lIEJJVF9ERENfU1RBVFVTX0REQ19GSUZPX1JFQURfSU5fU1VFCUJJ VCgxKQo+ID4gKyNkZWZpbmUgQklUX0REQ19TVEFUVVNfRERDX0ZJRk9fV1JJVEVfSU5fVVNFCUJJ VCgwKQo+ID4gKwo+ID4gKy8qIEREQyBJMkMgQ29tbWFuZCwgZGVmYXVsdCB2YWx1ZTogMHg3MCAq Lwo+ID4gKyNkZWZpbmUgUkVHX0REQ19DTUQJCQkJMHgwMGYzCj4gPiArI2RlZmluZSBCSVRfRERD X0NNRF9IRENQX0REQ19FTgkJCUJJVCg2KQo+ID4gKyNkZWZpbmUgQklUX0REQ19DTURfU0RBX0RF TF9FTgkJCUJJVCg1KQo+ID4gKyNkZWZpbmUgQklUX0REQ19DTURfRERDX0ZMVF9FTgkJCUJJVCg0 KQo+ID4gKwo+ID4gKyNkZWZpbmUgTVNLX0REQ19DTURfRERDX0NNRAkJCTB4MGYKPiA+ICsjZGVm aW5lIFZBTF9ERENfQ01EX0VOSF9ERENfUkVBRF9OT19BQ0sJCTB4MDQKPiA+ICsjZGVmaW5lIFZB TF9ERENfQ01EX0REQ19DTURfQ0xFQVJfRklGTwkJMHgwOQo+ID4gKyNkZWZpbmUgVkFMX0REQ19D TURfRERDX0NNRF9BQk9SVAkJMHgwZgo+ID4gKwo+ID4gKy8qIEREQyBJMkMgRklGTyBEYXRhIElu L091dCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0REQ19EQVRBCQkJ CTB4MDBmNAo+ID4gKwo+ID4gKy8qIEREQyBJMkMgRGF0YSBPdXQgQ291bnRlciwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0REQ19ET1VUX0NOVAkJCTB4MDBmNQo+ID4g KyNkZWZpbmUgQklUX0REQ19ET1VUX0NOVF9ERENfREVMQVlfQ05UXzgJQklUKDcpCj4gPiArI2Rl ZmluZSBNU0tfRERDX0RPVVRfQ05UX0REQ19EQVRBX09VVF9DTlQJMHgxZgo+ID4gKwo+ID4gKy8q IEREQyBJMkMgRGVsYXkgQ291bnQsIGRlZmF1bHQgdmFsdWU6IDB4MTQgKi8KPiA+ICsjZGVmaW5l IFJFR19ERENfREVMQVlfQ05UCQkJMHgwMGY2Cj4gPiArCj4gPiArLyogVGVzdCBDb250cm9sLCBk ZWZhdWx0IHZhbHVlOiAweDgwICovCj4gPiArI2RlZmluZSBSRUdfVEVTVF9UWENUUkwJCQkJMHgw MGY3Cj4gPiArI2RlZmluZSBCSVRfVEVTVF9UWENUUkxfUkNMS19SRUZfU0VMCQlCSVQoNykKPiA+ ICsjZGVmaW5lIEJJVF9URVNUX1RYQ1RSTF9QQ0xLX1JFRl9TRUwJCUJJVCg2KQo+ID4gKyNkZWZp bmUgTVNLX1RFU1RfVFhDVFJMX0JZUEFTU19QTExfQ0xLCQkweDNjCj4gPiArI2RlZmluZSBCSVRf VEVTVF9UWENUUkxfSERNSV9NT0RFCQlCSVQoMSkKPiA+ICsjZGVmaW5lIEJJVF9URVNUX1RYQ1RS TF9UU1RfUExMQ0sJCUJJVCgwKQo+ID4gKwo+ID4gKy8qIENCVVMgQWRkcmVzcywgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX1BBR0VfQ0JVU19BRERSCQkJMHgwMGY4Cj4g PiArCj4gPiArLyogSTJDIERldmljZSBBZGRyZXNzIHJlLWFzc2lnbm1lbnQgKi8KPiA+ICsjZGVm aW5lIFJFR19QQUdFMV9BRERSCQkJCTB4MDBmYwo+ID4gKyNkZWZpbmUgUkVHX1BBR0UyX0FERFIJ CQkJMHgwMGZkCj4gPiArI2RlZmluZSBSRUdfUEFHRTNfQUREUgkJCQkweDAwZmUKPiA+ICsjZGVm aW5lIFJFR19IV19UUElfQUREUgkJCQkweDAwZmYKPiA+ICsKPiA+ICsvKiBVU0JUIENUUkwwLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfVVRTUlNUCQkJCTB4MDEwMAo+ ID4gKyNkZWZpbmUgQklUX1VUU1JTVF9GQ19TUlNUCQkJQklUKDUpCj4gPiArI2RlZmluZSBCSVRf VVRTUlNUX0tFRVBFUl9TUlNUCQkJQklUKDQpCj4gPiArI2RlZmluZSBCSVRfVVRTUlNUX0hUWF9T UlNUCQkJQklUKDMpCj4gPiArI2RlZmluZSBCSVRfVVRTUlNUX1RSWF9TUlNUCQkJQklUKDIpCj4g PiArI2RlZmluZSBCSVRfVVRTUlNUX1RUWF9TUlNUCQkJQklUKDEpCj4gPiArI2RlZmluZSBCSVRf VVRTUlNUX0hSWF9TUlNUCQkJQklUKDApCj4gPiArCj4gPiArLyogSFNJQyBSWCBDb250cm9sMywg ZGVmYXVsdCB2YWx1ZTogMHgwNyAqLwo+ID4gKyNkZWZpbmUgUkVHX0hSWENUUkwzCQkJCTB4MDEw NAo+ID4gKyNkZWZpbmUgTVNLX0hSWENUUkwzX0hSWF9BRkZDVFJMCQkweGYwCj4gPiArI2RlZmlu ZSBCSVRfSFJYQ1RSTDNfSFJYX09VVF9FTgkJCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX0hSWENU UkwzX1NUQVRVU19FTgkJCUJJVCgxKQo+ID4gKyNkZWZpbmUgQklUX0hSWENUUkwzX0hSWF9TVEFZ X1JFU0VUCQlCSVQoMCkKPiA+ICsKPiA+ICsvKiBIU0lDIFJYIElOVCBSZWdpc3RlcnMgKi8KPiA+ ICsjZGVmaW5lIFJFR19IUlhJTlRMCQkJCTB4MDExMQo+ID4gKyNkZWZpbmUgUkVHX0hSWElOVEgJ CQkJMHgwMTEyCj4gPiArCj4gPiArLyogVERNIFRYIE5VTUJJVFMsIGRlZmF1bHQgdmFsdWU6IDB4 MGMgKi8KPiA+ICsjZGVmaW5lIFJFR19UVFhOVU1CCQkJCTB4MDExNgo+ID4gKyNkZWZpbmUgTVNL X1RUWE5VTUJfVFRYX0FGRkNUUkxfM18wCQkweGYwCj4gPiArI2RlZmluZSBCSVRfVFRYTlVNQl9U VFhfQ09NMV9BVF9TWU5DX1dBSVQJQklUKDMpCj4gPiArI2RlZmluZSBNU0tfVFRYTlVNQl9UVFhf TlVNQlBTXzJfMAkJMHgwNwo+ID4gKwo+ID4gKy8qIFRETSBUWCBOVU1TUElTWU0sIGRlZmF1bHQg dmFsdWU6IDB4MDQgKi8KPiA+ICsjZGVmaW5lIFJFR19UVFhTUElOVU1TCQkJCTB4MDExNwo+ID4g Kwo+ID4gKy8qIFRETSBUWCBOVU1IU0lDU1lNLCBkZWZhdWx0IHZhbHVlOiAweDE0ICovCj4gPiAr I2RlZmluZSBSRUdfVFRYSFNJQ05VTVMJCQkJMHgwMTE4Cj4gPiArCj4gPiArLyogVERNIFRYIE5V TVRPVFNZTSwgZGVmYXVsdCB2YWx1ZTogMHgxOCAqLwo+ID4gKyNkZWZpbmUgUkVHX1RUWFRPVE5V TVMJCQkJMHgwMTE5Cj4gPiArCj4gPiArLyogVERNIFRYIElOVCBMb3csIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19UVFhJTlRMCQkJCTB4MDEzNgo+ID4gKyNkZWZpbmUg QklUX1RUWElOVExfVFRYX0lOVFI3CQkJQklUKDcpCj4gPiArI2RlZmluZSBCSVRfVFRYSU5UTF9U VFhfSU5UUjYJCQlCSVQoNikKPiA+ICsjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRSNQkJCUJJ VCg1KQo+ID4gKyNkZWZpbmUgQklUX1RUWElOVExfVFRYX0lOVFI0CQkJQklUKDQpCj4gPiArI2Rl ZmluZSBCSVRfVFRYSU5UTF9UVFhfSU5UUjMJCQlCSVQoMykKPiA+ICsjZGVmaW5lIEJJVF9UVFhJ TlRMX1RUWF9JTlRSMgkJCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX1RUWElOVExfVFRYX0lOVFIx CQkJQklUKDEpCj4gPiArI2RlZmluZSBCSVRfVFRYSU5UTF9UVFhfSU5UUjAJCQlCSVQoMCkKPiA+ ICsKPiA+ICsvKiBURE0gVFggSU5UIEhpZ2gsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsj ZGVmaW5lIFJFR19UVFhJTlRICQkJCTB4MDEzNwo+ID4gKyNkZWZpbmUgQklUX1RUWElOVEhfVFRY X0lOVFIxNQkJCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFIxNAkJCUJJ VCg2KQo+ID4gKyNkZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFIxMwkJCUJJVCg1KQo+ID4gKyNk ZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFIxMgkJCUJJVCg0KQo+ID4gKyNkZWZpbmUgQklUX1RU WElOVEhfVFRYX0lOVFIxMQkJCUJJVCgzKQo+ID4gKyNkZWZpbmUgQklUX1RUWElOVEhfVFRYX0lO VFIxMAkJCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFI5CQkJQklUKDEp Cj4gPiArI2RlZmluZSBCSVRfVFRYSU5USF9UVFhfSU5UUjgJCQlCSVQoMCkKPiA+ICsKPiA+ICsv KiBURE0gUlggQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgxYyAqLwo+ID4gKyNkZWZpbmUgUkVH X1RSWENUUkwJCQkJMHgwMTNiCj4gPiArI2RlZmluZSBCSVRfVFJYQ1RSTF9UUlhfQ0xSX1dWQUxM T1cJCUJJVCg0KQo+ID4gKyNkZWZpbmUgQklUX1RSWENUUkxfVFJYX0ZST01fU0VfQ09DCQlCSVQo MykKPiA+ICsjZGVmaW5lIE1TS19UUlhDVFJMX1RSWF9OVU1CUFNfMl8wCQkweDA3Cj4gPiArCj4g PiArLyogVERNIFJYIE5VTVNQSVNZTSwgZGVmYXVsdCB2YWx1ZTogMHgwNCAqLwo+ID4gKyNkZWZp bmUgUkVHX1RSWFNQSU5VTVMJCQkJMHgwMTNjCj4gPiArCj4gPiArLyogVERNIFJYIE5VTUhTSUNT WU0sIGRlZmF1bHQgdmFsdWU6IDB4MTQgKi8KPiA+ICsjZGVmaW5lIFJFR19UUlhIU0lDTlVNUwkJ CQkweDAxM2QKPiA+ICsKPiA+ICsvKiBURE0gUlggTlVNVE9UU1lNLCBkZWZhdWx0IHZhbHVlOiAw eDE4ICovCj4gPiArI2RlZmluZSBSRUdfVFJYVE9UTlVNUwkJCQkweDAxM2UKPiA+ICsKPiA+ICsv KiBURE0gUlggU3RhdHVzIDJuZCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUg UkVHX1RSWFNUQTIJCQkJMHgwMTVjCj4gPiArCj4gPiArLyogVERNIFJYIElOVCBMb3csIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19UUlhJTlRMCQkJCTB4MDE2Mwo+ID4g Kwo+ID4gKy8qIFRETSBSWCBJTlQgSGlnaCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNk ZWZpbmUgUkVHX1RSWElOVEgJCQkJMHgwMTY0Cj4gPiArCj4gPiArLyogVERNIFJYIElOVE1BU0sg SGlnaCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX1RSWElOVE1ICQkJ CTB4MDE2Ngo+ID4gKwo+ID4gKy8qIEhTSUMgVFggQ1JUTCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq Lwo+ID4gKyNkZWZpbmUgUkVHX0hUWENUUkwJCQkJMHgwMTY5Cj4gPiArI2RlZmluZSBCSVRfSFRY Q1RSTF9IVFhfQUxMU0JFX1NPUAkJQklUKDQpCj4gPiArI2RlZmluZSBCSVRfSFRYQ1RSTF9IVFhf UkdESU5WX1VTQgkJQklUKDMpCj4gPiArI2RlZmluZSBCSVRfSFRYQ1RSTF9IVFhfUlNQVERNX0JV U1kJCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX0hUWENUUkxfSFRYX0RSVkNPTk4xCQlCSVQoMSkK PiA+ICsjZGVmaW5lIEJJVF9IVFhDVFJMX0hUWF9EUlZSU1QxCQkJQklUKDApCj4gPiArCj4gPiAr LyogSFNJQyBUWCBJTlQgTG93LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBS RUdfSFRYSU5UTAkJCQkweDAxN2QKPiA+ICsKPiA+ICsvKiBIU0lDIFRYIElOVCBIaWdoLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfSFRYSU5USAkJCQkweDAxN2UKPiA+ ICsKPiA+ICsvKiBIU0lDIEtlZXBlciwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZp bmUgUkVHX0tFRVBFUgkJCQkweDAxODEKPiA+ICsjZGVmaW5lIE1TS19LRUVQRVJfS0VFUEVSX01P REVfMV8wCQkweDAzCj4gPiArCj4gPiArLyogSFNJQyBGbG93IENvbnRyb2wgR2VuZXJhbCwgZGVm YXVsdCB2YWx1ZTogMHgwMiAqLwo+ID4gKyNkZWZpbmUgUkVHX0ZDR0MJCQkJMHgwMTgzCj4gPiAr I2RlZmluZSBCSVRfRkNHQ19IU0lDX0ZDX0hPU1RNT0RFCQlCSVQoMSkKPiA+ICsjZGVmaW5lIEJJ VF9GQ0dDX0hTSUNfRkNfRU5BQkxFCQkJQklUKDApCj4gPiArCj4gPiArLyogSFNJQyBGbG93IENv bnRyb2wgQ1RSMTMsIGRlZmF1bHQgdmFsdWU6IDB4ZmMgKi8KPiA+ICsjZGVmaW5lIFJFR19GQ0NU UjEzCQkJCTB4MDE5MQo+ID4gKwo+ID4gKy8qIEhTSUMgRmxvdyBDb250cm9sIENUUjE0LCBkZWZh dWx0IHZhbHVlOiAweGZmICovCj4gPiArI2RlZmluZSBSRUdfRkNDVFIxNAkJCQkweDAxOTIKPiA+ ICsKPiA+ICsvKiBIU0lDIEZsb3cgQ29udHJvbCBDVFIxNSwgZGVmYXVsdCB2YWx1ZTogMHhmZiAq Lwo+ID4gKyNkZWZpbmUgUkVHX0ZDQ1RSMTUJCQkJMHgwMTkzCj4gPiArCj4gPiArLyogSFNJQyBG bG93IENvbnRyb2wgQ1RSNTAsIGRlZmF1bHQgdmFsdWU6IDB4MDMgKi8KPiA+ICsjZGVmaW5lIFJF R19GQ0NUUjUwCQkJCTB4MDFiNgo+ID4gKwo+ID4gKy8qIEhTSUMgRmxvdyBDb250cm9sIElOVFIw LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfRkNJTlRSMAkJCQkweDAx ZWMKPiA+ICsjZGVmaW5lIFJFR19GQ0lOVFIxCQkJCTB4MDFlZAo+ID4gKyNkZWZpbmUgUkVHX0ZD SU5UUjIJCQkJMHgwMWVlCj4gPiArI2RlZmluZSBSRUdfRkNJTlRSMwkJCQkweDAxZWYKPiA+ICsj ZGVmaW5lIFJFR19GQ0lOVFI0CQkJCTB4MDFmMAo+ID4gKyNkZWZpbmUgUkVHX0ZDSU5UUjUJCQkJ MHgwMWYxCj4gPiArI2RlZmluZSBSRUdfRkNJTlRSNgkJCQkweDAxZjIKPiA+ICsjZGVmaW5lIFJF R19GQ0lOVFI3CQkJCTB4MDFmMwo+ID4gKwo+ID4gKy8qIFRETSBMb3cgTGF0ZW5jeSwgZGVmYXVs dCB2YWx1ZTogMHgyMCAqLwo+ID4gKyNkZWZpbmUgUkVHX1RETUxMQ1RMCQkJCTB4MDFmYwo+ID4g KyNkZWZpbmUgTVNLX1RETUxMQ1RMX1RSWF9MTF9TRUxfTUFOVUFMCQkweGMwCj4gPiArI2RlZmlu ZSBNU0tfVERNTExDVExfVFJYX0xMX1NFTF9NT0RFCQkweDMwCj4gPiArI2RlZmluZSBNU0tfVERN TExDVExfVFRYX0xMX1NFTF9NQU5VQUwJCTB4MGMKPiA+ICsjZGVmaW5lIEJJVF9URE1MTENUTF9U VFhfTExfVElFX0xPVwkJQklUKDEpCj4gPiArI2RlZmluZSBCSVRfVERNTExDVExfVFRYX0xMX1NF TF9NT0RFCQlCSVQoMCkKPiA+ICsKPiA+ICsvKiBUTURTIDAgQ2xvY2sgQ29udHJvbCwgZGVmYXVs dCB2YWx1ZTogMHgxMCAqLwo+ID4gKyNkZWZpbmUgUkVHX1RNRFMwX0NDVFJMMQkJCTB4MDIxMAo+ ID4gKyNkZWZpbmUgTVNLX1RNRFMwX0NDVFJMMV9URVNUX1NFTAkJMHhjMAo+ID4gKyNkZWZpbmUg TVNLX1RNRFMwX0NDVFJMMV9DTEsxWF9DVEwJCTB4MzAKPiA+ICsKPiA+ICsvKiBUTURTIENsb2Nr IEVuYWJsZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX1RNRFNfQ0xL X0VOCQkJCTB4MDIxMQo+ID4gKyNkZWZpbmUgQklUX1RNRFNfQ0xLX0VOX0NMS19FTgkJCUJJVCgw KQo+ID4gKwo+ID4gKy8qIFRNRFMgQ2hhbm5lbCBFbmFibGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KPiA+ICsjZGVmaW5lIFJFR19UTURTX0NIX0VOCQkJCTB4MDIxMgo+ID4gKyNkZWZpbmUgQklU X1RNRFNfQ0hfRU5fQ0gwX0VOCQkJQklUKDQpCj4gPiArI2RlZmluZSBCSVRfVE1EU19DSF9FTl9D SDEyX0VOCQkJQklUKDApCj4gPiArCj4gPiArLyogQkdSX0JJQVMsIGRlZmF1bHQgdmFsdWU6IDB4 MDcgKi8KPiA+ICsjZGVmaW5lIFJFR19CR1JfQklBUwkJCQkweDAyMTUKPiA+ICsjZGVmaW5lIEJJ VF9CR1JfQklBU19CR1JfRU4JCQlCSVQoNykKPiA+ICsjZGVmaW5lIE1TS19CR1JfQklBU19CSUFT X0JHUl9ECQkJMHgwZgo+ID4gKwo+ID4gKy8qIFRNRFMgMCBEaWdpdGFsIEkyQyBCVywgZGVmYXVs dCB2YWx1ZTogMHgwYSAqLwo+ID4gKyNkZWZpbmUgUkVHX0FMSUNFMF9CV19JMkMJCQkweDAyMzEK PiA+ICsKPiA+ICsvKiBUTURTIDAgRGlnaXRhbCBab25lIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6 IDB4ZTAgKi8KPiA+ICsjZGVmaW5lIFJFR19BTElDRTBfWk9ORV9DVFJMCQkJMHgwMjRjCj4gPiAr I2RlZmluZSBCSVRfQUxJQ0UwX1pPTkVfQ1RSTF9JQ1JTVF9OCQlCSVQoNykKPiA+ICsjZGVmaW5l IEJJVF9BTElDRTBfWk9ORV9DVFJMX1VTRV9JTlRfRElWMjAJQklUKDYpCj4gPiArI2RlZmluZSBN U0tfQUxJQ0UwX1pPTkVfQ1RSTF9TWk9ORV9JMkMJCTB4MzAKPiA+ICsjZGVmaW5lIE1TS19BTElD RTBfWk9ORV9DVFJMX1pPTkVfQ1RSTAkJMHgwZgo+ID4gKwo+ID4gKy8qIFRNRFMgMCBEaWdpdGFs IFBMTCBNb2RlIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJF R19BTElDRTBfTU9ERV9DVFJMCQkJMHgwMjRkCj4gPiArI2RlZmluZSBNU0tfQUxJQ0UwX01PREVf Q1RSTF9QTExfTU9ERV9JMkMJMHgwYwo+ID4gKyNkZWZpbmUgTVNLX0FMSUNFMF9NT0RFX0NUUkxf RElWMjBfQ1RSTAkJMHgwMwo+ID4gKwo+ID4gKy8qIE1ITCBUeCBDb250cm9sIDZ0aCwgZGVmYXVs dCB2YWx1ZTogMHhhMCAqLwo+ID4gKyNkZWZpbmUgUkVHX01ITFRYX0NUTDYJCQkJMHgwMjg1Cj4g PiArI2RlZmluZSBNU0tfTUhMVFhfQ1RMNl9FTUlfU0VMCQkJMHhlMAo+ID4gKyNkZWZpbmUgTVNL X01ITFRYX0NUTDZfVFhfQ0xLX1NIQVBFXzlfOAkJMHgwMwo+ID4gKwo+ID4gKy8qIFBhY2tldCBG aWx0ZXIwLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfUEtUX0ZJTFRF Ul8wCQkJMHgwMjkwCj4gPiArI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfQ0VBX0dBTVVU X1BLVAlCSVQoNykKPiA+ICsjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9DRUFfQ1BfUEtU CUJJVCg2KQo+ID4gKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMF9EUk9QX01QRUdfUEtUCQlCSVQo NSkKPiA+ICsjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9TUElGX1BLVAkJQklUKDQpCj4g PiArI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfQUlGX1BLVAkJQklUKDMpCj4gPiArI2Rl ZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfQVZJX1BLVAkJQklUKDIpCj4gPiArI2RlZmluZSBC SVRfUEtUX0ZJTFRFUl8wX0RST1BfQ1RTX1BLVAkJQklUKDEpCj4gPiArI2RlZmluZSBCSVRfUEtU X0ZJTFRFUl8wX0RST1BfR0NQX1BLVAkJQklUKDApCj4gPiArCj4gPiArLyogUGFja2V0IEZpbHRl cjEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19QS1RfRklMVEVSXzEJ CQkweDAyOTEKPiA+ICsjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzFfVlNJX09WRVJSSURFX0RJUwlC SVQoNykKPiA+ICsjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzFfQVZJX09WRVJSSURFX0RJUwlCSVQo NikKPiA+ICsjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzFfRFJPUF9BVURJT19QS1QJCUJJVCgzKQo+ ID4gKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMV9EUk9QX0dFTjJfUEtUCQlCSVQoMikKPiA+ICsj ZGVmaW5lIEJJVF9QS1RfRklMVEVSXzFfRFJPUF9HRU5fUEtUCQlCSVQoMSkKPiA+ICsjZGVmaW5l IEJJVF9QS1RfRklMVEVSXzFfRFJPUF9WU0lGX1BLVAkJQklUKDApCj4gPiArCj4gPiArLyogVE1E UyBDbG9jayBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MTAgKi8KPiA+ICsjZGVmaW5lIFJFR19U TURTX0NTVEFUX1AzCQkJMHgwMmEwCj4gPiArI2RlZmluZSBCSVRfVE1EU19DU1RBVF9QM19SWF9I RE1JX0NQX0NMUl9NVVRFCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfUlhf SERNSV9DUF9TRVRfTVVURQlCSVQoNikKPiA+ICsjZGVmaW5lIEJJVF9UTURTX0NTVEFUX1AzX1JY X0hETUlfQ1BfTkVXX0NQCUJJVCg1KQo+ID4gKyNkZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfQ0xS X0FWSQkJQklUKDMpCj4gPiArI2RlZmluZSBCSVRfVE1EU19DU1RBVF9QM19TQ0RUX0NMUl9BVklf RElTCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfU0NEVAkJCUJJVCgxKQo+ ID4gKyNkZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfQ0tEVAkJCUJJVCgwKQo+ID4gKwo+ID4gKy8q IFJYX0hETUkgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgxMCAqLwo+ID4gKyNkZWZpbmUgUkVH X1JYX0hETUlfQ1RSTDAJCQkweDAyYTEKPiA+ICsjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwwX0JZ UF9EVklGSUxUX1NZTkMJQklUKDUpCj4gPiArI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9IRE1J X01PREVfRU5fSVRTRUxGX0NMUiBCSVQoNCkKPiA+ICsjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkww X0hETUlfTU9ERV9TV19WQUxVRQlCSVQoMykKPiA+ICsjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkww X0hETUlfTU9ERV9PVkVSV1JJVEUJQklUKDIpCj4gPiArI2RlZmluZSBCSVRfUlhfSERNSV9DVFJM MF9SWF9IRE1JX0hETUlfTU9ERV9FTglCSVQoMSkKPiA+ICsjZGVmaW5lIEJJVF9SWF9IRE1JX0NU UkwwX1JYX0hETUlfSERNSV9NT0RFCUJJVCgwKQo+ID4gKwo+ID4gKy8qIFJYX0hETUkgQ29udHJv bCwgZGVmYXVsdCB2YWx1ZTogMHgzOCAqLwo+ID4gKyNkZWZpbmUgUkVHX1JYX0hETUlfQ1RSTDIJ CQkweDAyYTMKPiA+ICsjZGVmaW5lIE1TS19SWF9IRE1JX0NUUkwyX0lETEVfQ05UCQkweGYwCj4g PiArI2RlZmluZSBWQUxfUlhfSERNSV9DVFJMMl9JRExFX0NOVChuKQkJKChuKSA8PCA0KQo+ID4g KyNkZWZpbmUgQklUX1JYX0hETUlfQ1RSTDJfVVNFX0FWX01VVEUJCUJJVCgzKQo+ID4gKyNkZWZp bmUgQklUX1JYX0hETUlfQ1RSTDJfVlNJX01PTl9TRUxfVlNJCUJJVCgwKQo+ID4gKwo+ID4gKy8q IFJYX0hETUkgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgwZiAqLwo+ID4gKyNkZWZpbmUgUkVH X1JYX0hETUlfQ1RSTDMJCQkweDAyYTQKPiA+ICsjZGVmaW5lIE1TS19SWF9IRE1JX0NUUkwzX1BQ X01PREVfQ0xLX0VOCTB4MGYKPiA+ICsKPiA+ICsvKiByeF9oZG1pIENsZWFyIEJ1ZmZlciwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX1JYX0hETUlfQ0xSX0JVRkZFUgkJ CTB4MDJhYwo+ID4gKyNkZWZpbmUgTVNLX1JYX0hETUlfQ0xSX0JVRkZFUl9BSUY0VlNJX0NNUAkw eGMwCj4gPiArI2RlZmluZSBCSVRfUlhfSERNSV9DTFJfQlVGRkVSX1VTRV9BSUY0VlNJCUJJVCg1 KQo+ID4gKyNkZWZpbmUgQklUX1JYX0hETUlfQ0xSX0JVRkZFUl9WU0lfQ0xSX1dfQVZJCUJJVCg0 KQo+ID4gKyNkZWZpbmUgQklUX1JYX0hETUlfQ0xSX0JVRkZFUl9WU0lfSUVFRV9JRF9DSEtfRU4g QklUKDMpCj4gPiArI2RlZmluZSBCSVRfUlhfSERNSV9DTFJfQlVGRkVSX1NXQVBfVlNJX0lFRUVf SUQJQklUKDIpCj4gPiArI2RlZmluZSBCSVRfUlhfSERNSV9DTFJfQlVGRkVSX0FJRl9DTFJfRU4J QklUKDEpCj4gPiArI2RlZmluZSBCSVRfUlhfSERNSV9DTFJfQlVGRkVSX1ZTSV9DTFJfRU4JQklU KDApCj4gPiArCj4gPiArLyogUlhfSERNSSBWU0kgSGVhZGVyMSwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLwo+ID4gKyNkZWZpbmUgUkVHX1JYX0hETUlfTU9OX1BLVF9IRUFERVIxCQkweDAyYjgKPiA+ ICsKPiA+ICsvKiBSWF9IRE1JIFZTSSBNSEwgTW9uaXRvciwgZGVmYXVsdCB2YWx1ZTogMHgzYyAq Lwo+ID4gKyNkZWZpbmUgUkVHX1JYX0hETUlfVlNJRl9NSExfTU9OCQkweDAyZDcKPiA+ICsKPiA+ ICsjZGVmaW5lIE1TS19SWF9IRE1JX1ZTSUZfTUhMX01PTl9SWF9IRE1JX01ITF8zRF9GT1JNQVQg MHgzYwo+ID4gKyNkZWZpbmUgTVNLX1JYX0hETUlfVlNJRl9NSExfTU9OX1JYX0hETUlfTUhMX1ZJ RF9GT1JNQVQgMHgwMwo+ID4gKwo+ID4gKy8qIEludGVycnVwdCBTb3VyY2UgOSwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0lOVFI5CQkJCTB4MDJlMAo+ID4gKyNkZWZp bmUgQklUX0lOVFI5X0VESURfRVJST1IJCQlCSVQoNikKPiA+ICsjZGVmaW5lIEJJVF9JTlRSOV9F RElEX0RPTkUJCQlCSVQoNSkKPiA+ICsjZGVmaW5lIEJJVF9JTlRSOV9ERVZDQVBfRE9ORQkJCUJJ VCg0KQo+ID4gKwo+ID4gKy8qIEludGVycnVwdCA5IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KPiA+ICsjZGVmaW5lIFJFR19JTlRSOV9NQVNLCQkJCTB4MDJlMQo+ID4gKwo+ID4gKy8qIFRQ SSBDQlVTIFN0YXJ0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfVFBJ X0NCVVNfU1RBUlQJCQkweDAyZTIKPiA+ICsjZGVmaW5lIEJJVF9UUElfQ0JVU19TVEFSVF9SQ1Bf UkVRX1NUQVJUCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX1RQSV9DQlVTX1NUQVJUX1JDUEtfUkVQ TFlfU1RBUlQJQklUKDYpCj4gPiArI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RBUlRfUkNQRV9SRVBM WV9TVEFSVAlCSVQoNSkKPiA+ICsjZGVmaW5lIEJJVF9UUElfQ0JVU19TVEFSVF9QVVRfTElOS19N T0RFX1NUQVJUCUJJVCg0KQo+ID4gKyNkZWZpbmUgQklUX1RQSV9DQlVTX1NUQVJUX1BVVF9EQ0FQ Q0hHX1NUQVJUCUJJVCgzKQo+ID4gKyNkZWZpbmUgQklUX1RQSV9DQlVTX1NUQVJUX1BVVF9EQ0FQ UkRZX1NUQVJUCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX1RQSV9DQlVTX1NUQVJUX0dFVF9FRElE X1NUQVJUXzAJQklUKDEpCj4gPiArI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RBUlRfR0VUX0RFVkNB UF9TVEFSVAlCSVQoMCkKPiA+ICsKPiA+ICsvKiBFRElEIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6 IDB4MTAgKi8KPiA+ICsjZGVmaW5lIFJFR19FRElEX0NUUkwJCQkJMHgwMmUzCj4gPiArI2RlZmlu ZSBCSVRfRURJRF9DVFJMX0VESURfUFJJTUVfVkFMSUQJCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklU X0VESURfQ1RSTF9YREVWQ0FQX0VOCQlCSVQoNikKPiA+ICsjZGVmaW5lIEJJVF9FRElEX0NUUkxf REVWQ0FQX1NFTEVDVF9ERVZDQVAJQklUKDUpCj4gPiArI2RlZmluZSBCSVRfRURJRF9DVFJMX0VE SURfRklGT19BRERSX0FVVE8JQklUKDQpCj4gPiArI2RlZmluZSBCSVRfRURJRF9DVFJMX0VESURf RklGT19BQ0NFU1NfQUxXQVlTX0VOIEJJVCgzKQo+ID4gKyNkZWZpbmUgQklUX0VESURfQ1RSTF9F RElEX0ZJRk9fQkxPQ0tfU0VMCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX0VESURfQ1RSTF9JTlZB TElEX0JLU1YJCUJJVCgxKQo+ID4gKyNkZWZpbmUgQklUX0VESURfQ1RSTF9FRElEX01PREVfRU4J CUJJVCgwKQo+ID4gKwo+ID4gKy8qIEVESUQgRklGTyBBZGRyLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCj4gPiArI2RlZmluZSBSRUdfRURJRF9GSUZPX0FERFIJCQkweDAyZTkKPiA+ICsKPiA+ICsv KiBFRElEIEZJRk8gV3JpdGUgRGF0YSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZp bmUgUkVHX0VESURfRklGT19XUl9EQVRBCQkJMHgwMmVhCj4gPiArCj4gPiArLyogRURJRC9ERVZD QVAgRklGTyBJbnRlcm5hbCBBZGRyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmlu ZSBSRUdfRURJRF9GSUZPX0FERFJfTU9OCQkJMHgwMmViCj4gPiArCj4gPiArLyogRURJRCBGSUZP IFJlYWQgRGF0YSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0VESURf RklGT19SRF9EQVRBCQkJMHgwMmVjCj4gPiArCj4gPiArLyogRURJRCBEREMgU2VnbWVudCBQb2lu dGVyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfRURJRF9TVEFSVF9F WFQJCQkweDAyZWQKPiA+ICsKPiA+ICsvKiBUWCBJUCBCSVNUIENOVEwgYW5kIFN0YXR1cywgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfQ05UTFNUQQkJ CTB4MDJmMgo+ID4gKyNkZWZpbmUgQklUX1RYX0lQX0JJU1RfQ05UTFNUQV9UWEJJU1RfUVVBUlRF Ul9DTEtfU0VMIEJJVCg2KQo+ID4gKyNkZWZpbmUgQklUX1RYX0lQX0JJU1RfQ05UTFNUQV9UWEJJ U1RfRE9ORQlCSVQoNSkKPiA+ICsjZGVmaW5lIEJJVF9UWF9JUF9CSVNUX0NOVExTVEFfVFhCSVNU X09OCUJJVCg0KQo+ID4gKyNkZWZpbmUgQklUX1RYX0lQX0JJU1RfQ05UTFNUQV9UWEJJU1RfUlVO CUJJVCgzKQo+ID4gKyNkZWZpbmUgQklUX1RYX0lQX0JJU1RfQ05UTFNUQV9UWENMS19IQUxGX1NF TAlCSVQoMikKPiA+ICsjZGVmaW5lIEJJVF9UWF9JUF9CSVNUX0NOVExTVEFfVFhCSVNUX0VOCUJJ VCgxKQo+ID4gKyNkZWZpbmUgQklUX1RYX0lQX0JJU1RfQ05UTFNUQV9UWEJJU1RfU0VMCUJJVCgw KQo+ID4gKwo+ID4gKy8qIFRYIElQIEJJU1QgSU5TVCBMT1csIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KPiA+ICsjZGVmaW5lIFJFR19UWF9JUF9CSVNUX0lOU1RfTE9XCQkJMHgwMmYzCj4gPiArI2Rl ZmluZSBSRUdfVFhfSVBfQklTVF9JTlNUX0hJR0gJCTB4MDJmNAo+ID4gKwo+ID4gKy8qIFRYIElQ IEJJU1QgUEFUVEVSTiBMT1csIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJF R19UWF9JUF9CSVNUX1BBVF9MT1cJCQkweDAyZjUKPiA+ICsjZGVmaW5lIFJFR19UWF9JUF9CSVNU X1BBVF9ISUdICQkJMHgwMmY2Cj4gPiArCj4gPiArLyogVFggSVAgQklTVCBDT05GSUdVUkUgTE9X LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfVFhfSVBfQklTVF9DT05G X0xPVwkJCTB4MDJmNwo+ID4gKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfQ09ORl9ISUdICQkweDAy ZjgKPiA+ICsKPiA+ICsvKiBFLU1TQyBHZW5lcmFsIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4 ODAgKi8KPiA+ICsjZGVmaW5lIFJFR19HRU5DVEwJCQkJMHgwMzAwCj4gPiArI2RlZmluZSBCSVRf R0VOQ1RMX1NQRUNfVFJBTlNfRElTCQlCSVQoNykKPiA+ICsjZGVmaW5lIEJJVF9HRU5DVExfRElT X1hNSVRfRVJSX1NUQVRFCQlCSVQoNikKPiA+ICsjZGVmaW5lIEJJVF9HRU5DVExfU1BJX01JU09f RURHRQkJQklUKDUpCj4gPiArI2RlZmluZSBCSVRfR0VOQ1RMX1NQSV9NT1NJX0VER0UJCUJJVCg0 KQo+ID4gKyNkZWZpbmUgQklUX0dFTkNUTF9DTFJfRU1TQ19SRklGTwkJQklUKDMpCj4gPiArI2Rl ZmluZSBCSVRfR0VOQ1RMX0NMUl9FTVNDX1hGSUZPCQlCSVQoMikKPiA+ICsjZGVmaW5lIEJJVF9H RU5DVExfU1RBUlRfVFJBSU5fU0VRCQlCSVQoMSkKPiA+ICsjZGVmaW5lIEJJVF9HRU5DVExfRU1T Q19FTgkJCUJJVCgwKQo+ID4gKwo+ID4gKy8qIEUtTVNDIENvbW1hIEVycm9yQ05ULCBkZWZhdWx0 IHZhbHVlOiAweDAzICovCj4gPiArI2RlZmluZSBSRUdfQ09NTUVDTlQJCQkJMHgwMzA1Cj4gPiAr I2RlZmluZSBCSVRfQ09NTUVDTlRfSTJDX1RPX0VNU0NfRU4JCUJJVCg3KQo+ID4gKyNkZWZpbmUg TVNLX0NPTU1FQ05UX0NPTU1BX0NIQVJfRVJSX0NOVAkJMHgwZgo+ID4gKwo+ID4gKy8qIEUtTVND IFJGSUZPIEJ5dGVDbnQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19F TVNDUkZJRk9CQ05UTAkJCTB4MDMxYQo+ID4gKyNkZWZpbmUgUkVHX0VNU0NSRklGT0JDTlRICQkJ MHgwMzFiCj4gPiArCj4gPiArLyogU1BJIEJ1cnN0IENudCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19TUElCVVJTVENOVAkJCQkweDAzMWUKPiA+ICsKPiA+ ICsvKiBTUEkgQnVyc3QgU3RhdHVzIGFuZCBTV1JTVCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ ID4gKyNkZWZpbmUgUkVHX1NQSUJVUlNUU1RBVAkJCTB4MDMyMgo+ID4gKyNkZWZpbmUgQklUX1NQ SUJVUlNUU1RBVF9TUElfSERDUFJTVAkJQklUKDcpCj4gPiArI2RlZmluZSBCSVRfU1BJQlVSU1RT VEFUX1NQSV9DQlVTUlNUCQlCSVQoNikKPiA+ICsjZGVmaW5lIEJJVF9TUElCVVJTVFNUQVRfU1BJ X1NSU1QJCUJJVCg1KQo+ID4gKyNkZWZpbmUgQklUX1NQSUJVUlNUU1RBVF9FTVNDX05PUk1BTF9N T0RFCUJJVCgwKQo+ID4gKwo+ID4gKy8qIEUtTVNDIDFzdCBJbnRlcnJ1cHQsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19FTVNDSU5UUgkJCQkweDAzMjMKPiA+ICsjZGVm aW5lIEJJVF9FTVNDSU5UUl9FTVNDX1hGSUZPX0VNUFRZCQlCSVQoNykKPiA+ICsjZGVmaW5lIEJJ VF9FTVNDSU5UUl9FTVNDX1hNSVRfQUNLX1RPVVQJCUJJVCg2KQo+ID4gKyNkZWZpbmUgQklUX0VN U0NJTlRSX0VNU0NfUkZJRk9fUkVBRF9FUlIJQklUKDUpCj4gPiArI2RlZmluZSBCSVRfRU1TQ0lO VFJfRU1TQ19YRklGT19XUklURV9FUlIJQklUKDQpCj4gPiArI2RlZmluZSBCSVRfRU1TQ0lOVFJf RU1TQ19DT01NQV9DSEFSX0VSUglCSVQoMykKPiA+ICsjZGVmaW5lIEJJVF9FTVNDSU5UUl9FTVND X1hNSVRfRE9ORQkJQklUKDIpCj4gPiArI2RlZmluZSBCSVRfRU1TQ0lOVFJfRU1TQ19YTUlUX0dO VF9UT1VUCQlCSVQoMSkKPiA+ICsjZGVmaW5lIEJJVF9FTVNDSU5UUl9TUElfRFZMRAkJQklUKDAp Cj4gPiArCj4gPiArLyogRS1NU0MgSW50ZXJydXB0IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KPiA+ICsjZGVmaW5lIFJFR19FTVNDSU5UUk1BU0sJCQkweDAzMjQKPiA+ICsKPiA+ICsvKiBJ MkMgRS1NU0MgWE1JVCBGSUZPIFdyaXRlIFBvcnQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ ICsjZGVmaW5lIFJFR19FTVNDX1hNSVRfV1JJVEVfUE9SVAkJMHgwMzJhCj4gPiArCj4gPiArLyog STJDIEUtTVNDIFJDViBGSUZPIFdyaXRlIFBvcnQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ ICsjZGVmaW5lIFJFR19FTVNDX1JDVl9SRUFEX1BPUlQJCQkweDAzMmIKPiA+ICsKPiA+ICsvKiBF LU1TQyAybmQgSW50ZXJydXB0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBS RUdfRU1TQ0lOVFIxCQkJCTB4MDMyYwo+ID4gKyNkZWZpbmUgQklUX0VNU0NJTlRSMV9FTVNDX1RS QUlOSU5HX0NPTU1BX0VSUglCSVQoMCkKPiA+ICsKPiA+ICsvKiBFLU1TQyBJbnRlcnJ1cHQgTWFz aywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0VNU0NJTlRSTUFTSzEJ CQkweDAzMmQKPiA+ICsjZGVmaW5lIEJJVF9FTVNDSU5UUk1BU0sxX0VNU0NfSU5UUk1BU0sxXzAJ QklUKDApCj4gPiArCj4gPiArLyogTUhMIFRvcCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K PiA+ICsjZGVmaW5lIFJFR19NSExfVE9QX0NUTAkJCQkweDAzMzAKPiA+ICsjZGVmaW5lIEJJVF9N SExfVE9QX0NUTF9NSEwzX0RPQ19TRUwJCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX01ITF9UT1Bf Q1RMX01ITF9QUF9TRUwJCUJJVCg2KQo+ID4gKyNkZWZpbmUgTVNLX01ITF9UT1BfQ1RMX0lGX1RJ TUlOR19DVEwJCTB4MDMKPiA+ICsKPiA+ICsvKiBNSEwgRGF0YVBhdGggMXN0IEN0bCwgZGVmYXVs dCB2YWx1ZTogMHhiYyAqLwo+ID4gKyNkZWZpbmUgUkVHX01ITF9EUF9DVEwwCQkJCTB4MDMzMQo+ ID4gKyNkZWZpbmUgQklUX01ITF9EUF9DVEwwX0RQX09FCQkJQklUKDcpCj4gPiArI2RlZmluZSBC SVRfTUhMX0RQX0NUTDBfVFhfT0VfT1ZSCQlCSVQoNikKPiA+ICsjZGVmaW5lIE1TS19NSExfRFBf Q1RMMF9UWF9PRQkJCTB4M2YKPiA+ICsKPiA+ICsvKiBNSEwgRGF0YVBhdGggMm5kIEN0bCwgZGVm YXVsdCB2YWx1ZTogMHhiYiAqLwo+ID4gKyNkZWZpbmUgUkVHX01ITF9EUF9DVEwxCQkJCTB4MDMz Mgo+ID4gKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwxX0NLX1NXSU5HX0NUTAkJMHhmMAo+ID4gKyNk ZWZpbmUgTVNLX01ITF9EUF9DVEwxX0RUX1NXSU5HX0NUTAkJMHgwZgo+ID4gKwo+ID4gKy8qIE1I TCBEYXRhUGF0aCAzcmQgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDJmICovCj4gPiArI2RlZmluZSBS RUdfTUhMX0RQX0NUTDIJCQkJMHgwMzMzCj4gPiArI2RlZmluZSBCSVRfTUhMX0RQX0NUTDJfQ0xL X0JZUEFTU19FTgkJQklUKDcpCj4gPiArI2RlZmluZSBNU0tfTUhMX0RQX0NUTDJfREFNUF9URVJN X1NFTAkJMHgzMAo+ID4gKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwyX0NLX1RFUk1fU0VMCQkweDBj Cj4gPiArI2RlZmluZSBNU0tfTUhMX0RQX0NUTDJfRFRfVEVSTV9TRUwJCTB4MDMKPiA+ICsKPiA+ ICsvKiBNSEwgRGF0YVBhdGggNHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHg0OCAqLwo+ID4gKyNk ZWZpbmUgUkVHX01ITF9EUF9DVEwzCQkJCTB4MDMzNAo+ID4gKyNkZWZpbmUgTVNLX01ITF9EUF9D VEwzX0RUX0RSVl9WTkJDX0NUTAkJMHhmMAo+ID4gKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwzX0RU X0RSVl9WTkJfQ1RMCQkweDBmCj4gPiArCj4gPiArLyogTUhMIERhdGFQYXRoIDV0aCBDdGwsIGRl ZmF1bHQgdmFsdWU6IDB4NDggKi8KPiA+ICsjZGVmaW5lIFJFR19NSExfRFBfQ1RMNAkJCQkweDAz MzUKPiA+ICsjZGVmaW5lIE1TS19NSExfRFBfQ1RMNF9DS19EUlZfVk5CQ19DVEwJCTB4ZjAKPiA+ ICsjZGVmaW5lIE1TS19NSExfRFBfQ1RMNF9DS19EUlZfVk5CX0NUTAkJMHgwZgo+ID4gKwo+ID4g Ky8qIE1ITCBEYXRhUGF0aCA2dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDNmICovCj4gPiArI2Rl ZmluZSBSRUdfTUhMX0RQX0NUTDUJCQkJMHgwMzM2Cj4gPiArI2RlZmluZSBCSVRfTUhMX0RQX0NU TDVfUlNFTl9FTl9PVlIJCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX01ITF9EUF9DVEw1X1JTRU5f RU4JCQlCSVQoNikKPiA+ICsjZGVmaW5lIE1TS19NSExfRFBfQ1RMNV9EQU1QX1RFUk1fVkdTX0NU TAkweDMwCj4gPiArI2RlZmluZSBNU0tfTUhMX0RQX0NUTDVfQ0tfVEVSTV9WR1NfQ1RMCQkweDBj Cj4gPiArI2RlZmluZSBNU0tfTUhMX0RQX0NUTDVfRFRfVEVSTV9WR1NfQ1RMCQkweDAzCj4gPiAr Cj4gPiArLyogTUhMIFBMTCAxc3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDA1ICovCj4gPiArI2Rl ZmluZSBSRUdfTUhMX1BMTF9DVEwwCQkJMHgwMzM3Cj4gPiArI2RlZmluZSBCSVRfTUhMX1BMTF9D VEwwX0FVRF9DTEtfRU4JCUJJVCg3KQo+ID4gKwo+ID4gKyNkZWZpbmUgTVNLX01ITF9QTExfQ1RM MF9BVURfQ0xLX1JBVElPCQkweDcwCj4gPiArI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0FVRF9D TEtfUkFUSU9fNV8xMAkweDcwCj4gPiArI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0FVRF9DTEtf UkFUSU9fNV82CTB4NjAKPiA+ICsjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJ T181XzQJMHg1MAo+ID4gKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9BVURfQ0xLX1JBVElPXzVf MgkweDQwCj4gPiArI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0FVRF9DTEtfUkFUSU9fNV81CTB4 MzAKPiA+ICsjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJT181XzMJMHgyMAo+ ID4gKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9BVURfQ0xLX1JBVElPXzVfMl9QUklNRSAweDEw Cj4gPiArI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0FVRF9DTEtfUkFUSU9fNV8xCTB4MDAKPiA+ ICsKPiA+ICsjZGVmaW5lIE1TS19NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU8JCTB4MGMKPiA+ ICsjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU9fNFgJMHgwYwo+ID4gKyNk ZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT18yWAkweDA4Cj4gPiArI2RlZmlu ZSBWQUxfTUhMX1BMTF9DVEwwX0hETUlfQ0xLX1JBVElPXzFYCTB4MDQKPiA+ICsjZGVmaW5lIFZB TF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU9fSEFMRl9YCTB4MDAKPiA+ICsKPiA+ICsjZGVm aW5lIEJJVF9NSExfUExMX0NUTDBfQ1JZU1RBTF9DTEtfU0VMCUJJVCgxKQo+ID4gKyNkZWZpbmUg QklUX01ITF9QTExfQ1RMMF9aT05FX01BU0tfT0UJCUJJVCgwKQo+ID4gKwo+ID4gKy8qIE1ITCBQ TEwgM3JkIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHg4MCAqLwo+ID4gKyNkZWZpbmUgUkVHX01ITF9Q TExfQ1RMMgkJCTB4MDMzOQo+ID4gKyNkZWZpbmUgQklUX01ITF9QTExfQ1RMMl9DTEtERVRFQ1Rf RU4JCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX01ITF9QTExfQ1RMMl9NRUFTX0ZWQ08JCUJJVCgz KQo+ID4gKyNkZWZpbmUgQklUX01ITF9QTExfQ1RMMl9QTExfRkFTVF9MT0NLCQlCSVQoMikKPiA+ ICsjZGVmaW5lIE1TS19NSExfUExMX0NUTDJfUExMX0xGX1NFTAkJMHgwMwo+ID4gKwo+ID4gKy8q IE1ITCBDQlVTIDFzdCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MTIgKi8KPiA+ICsjZGVmaW5lIFJF R19NSExfQ0JVU19DVEwwCQkJMHgwMzQwCj4gPiArI2RlZmluZSBCSVRfTUhMX0NCVVNfQ1RMMF9D QlVTX1JHTkRfVEVTVF9NT0RFCUJJVCg3KQo+ID4gKwo+ID4gKyNkZWZpbmUgTVNLX01ITF9DQlVT X0NUTDBfQ0JVU19SR05EX1ZUSF9DVEwJMHgzMAo+ID4gKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NU TDBfQ0JVU19SR05EX1ZCSUFTXzczNAkweDAwCj4gPiArI2RlZmluZSBWQUxfTUhMX0NCVVNfQ1RM MF9DQlVTX1JHTkRfVkJJQVNfNzQ3CTB4MTAKPiA+ICsjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEww X0NCVVNfUkdORF9WQklBU183NDAJMHgyMAo+ID4gKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDBf Q0JVU19SR05EX1ZCSUFTXzc1NAkweDMwCj4gPiArCj4gPiArI2RlZmluZSBNU0tfTUhMX0NCVVNf Q1RMMF9DQlVTX1JFU19URVNUX1NFTAkweDBjCj4gPiArCj4gPiArI2RlZmluZSBNU0tfTUhMX0NC VVNfQ1RMMF9DQlVTX0RSVl9TRUwJCTB4MDMKPiA+ICsjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEww X0NCVVNfRFJWX1NFTF9XRUFLRVNUCTB4MDAKPiA+ICsjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEww X0NCVVNfRFJWX1NFTF9XRUFLCTB4MDEKPiA+ICsjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwwX0NC VVNfRFJWX1NFTF9TVFJPTkcJMHgwMgo+ID4gKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDBfQ0JV U19EUlZfU0VMX1NUUk9OR0VTVCAweDAzCj4gPiArCj4gPiArLyogTUhMIENCVVMgMm5kIEN0bCwg ZGVmYXVsdCB2YWx1ZTogMHgwMyAqLwo+ID4gKyNkZWZpbmUgUkVHX01ITF9DQlVTX0NUTDEJCQkw eDAzNDEKPiA+ICsjZGVmaW5lIE1TS19NSExfQ0JVU19DVEwxX0NCVVNfUkdORF9SRVNfQ1RMCTB4 MDcKPiA+ICsjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwxXzA4ODhfT0hNCQkweDAwCj4gPiArI2Rl ZmluZSBWQUxfTUhMX0NCVVNfQ1RMMV8xMTE1X09ITQkJMHgwNAo+ID4gKyNkZWZpbmUgVkFMX01I TF9DQlVTX0NUTDFfMTM3OF9PSE0JCTB4MDcKPiA+ICsKPiA+ICsvKiBNSEwgQ29DIDFzdCBDdGws IGRlZmF1bHQgdmFsdWU6IDB4YzMgKi8KPiA+ICsjZGVmaW5lIFJFR19NSExfQ09DX0NUTDAJCQkw eDAzNDIKPiA+ICsjZGVmaW5lIEJJVF9NSExfQ09DX0NUTDBfQ09DX0JJQVNfRU4JCUJJVCg3KQo+ ID4gKyNkZWZpbmUgTVNLX01ITF9DT0NfQ1RMMF9DT0NfQklBU19DVEwJCTB4NzAKPiA+ICsjZGVm aW5lIE1TS19NSExfQ09DX0NUTDBfQ09DX1RFUk1fQ1RMCQkweDA3Cj4gPiArCj4gPiArLyogTUhM IENvQyAybmQgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDg3ICovCj4gPiArI2RlZmluZSBSRUdfTUhM X0NPQ19DVEwxCQkJMHgwMzQzCj4gPiArI2RlZmluZSBCSVRfTUhMX0NPQ19DVEwxX0NPQ19FTgkJ CUJJVCg3KQo+ID4gKyNkZWZpbmUgTVNLX01ITF9DT0NfQ1RMMV9DT0NfRFJWX0NUTAkJMHgzZgo+ ID4gKwo+ID4gKy8qIE1ITCBDb0MgNHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4g KyNkZWZpbmUgUkVHX01ITF9DT0NfQ1RMMwkJCTB4MDM0NQo+ID4gKyNkZWZpbmUgQklUX01ITF9D T0NfQ1RMM19DT0NfQUVDSE9fRU4JCUJJVCgwKQo+ID4gKwo+ID4gKy8qIE1ITCBDb0MgNXRoIEN0 bCwgZGVmYXVsdCB2YWx1ZTogMHgyOCAqLwo+ID4gKyNkZWZpbmUgUkVHX01ITF9DT0NfQ1RMNAkJ CTB4MDM0Ngo+ID4gKyNkZWZpbmUgTVNLX01ITF9DT0NfQ1RMNF9DT0NfSUZfQ1RMCQkweGYwCj4g PiArI2RlZmluZSBNU0tfTUhMX0NPQ19DVEw0X0NPQ19TTEVXX0NUTAkJMHgwZgo+ID4gKwo+ID4g Ky8qIE1ITCBDb0MgNnRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwZCAqLwo+ID4gKyNkZWZpbmUg UkVHX01ITF9DT0NfQ1RMNQkJCTB4MDM0Nwo+ID4gKwo+ID4gKy8qIE1ITCBEb0MgMXN0IEN0bCwg ZGVmYXVsdCB2YWx1ZTogMHgxOCAqLwo+ID4gKyNkZWZpbmUgUkVHX01ITF9ET0NfQ1RMMAkJCTB4 MDM0OQo+ID4gKyNkZWZpbmUgQklUX01ITF9ET0NfQ1RMMF9ET0NfUlhEQVRBX0VOCQlCSVQoNykK PiA+ICsjZGVmaW5lIE1TS19NSExfRE9DX0NUTDBfRE9DX0RNX1RFUk0JCTB4MzgKPiA+ICsjZGVm aW5lIE1TS19NSExfRE9DX0NUTDBfRE9DX09QTU9ERQkJMHgwNgo+ID4gKyNkZWZpbmUgQklUX01I TF9ET0NfQ1RMMF9ET0NfUlhCSUFTX0VOCQlCSVQoMCkKPiA+ICsKPiA+ICsvKiBNSEwgRGF0YVBh dGggN3RoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgyYSAqLwo+ID4gKyNkZWZpbmUgUkVHX01ITF9E UF9DVEw2CQkJCTB4MDM1MAo+ID4gKyNkZWZpbmUgQklUX01ITF9EUF9DVEw2X0RQX1RBUDJfU0dO CQlCSVQoNSkKPiA+ICsjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNl9EUF9UQVAyX0VOCQlCSVQoNCkK PiA+ICsjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNl9EUF9UQVAxX1NHTgkJQklUKDMpCj4gPiArI2Rl ZmluZSBCSVRfTUhMX0RQX0NUTDZfRFBfVEFQMV9FTgkJQklUKDIpCj4gPiArI2RlZmluZSBCSVRf TUhMX0RQX0NUTDZfRFRfUFJFRFJWX0ZFRURDQVBfRU4JQklUKDEpCj4gPiArI2RlZmluZSBCSVRf TUhMX0RQX0NUTDZfRFBfUFJFX1BPU1RfU0VMCQlCSVQoMCkKPiA+ICsKPiA+ICsvKiBNSEwgRGF0 YVBhdGggOHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwNiAqLwo+ID4gKyNkZWZpbmUgUkVHX01I TF9EUF9DVEw3CQkJCTB4MDM1MQo+ID4gKyNkZWZpbmUgTVNLX01ITF9EUF9DVEw3X0RUX0RSVl9W QklBU19DQVNDVEwJMHhmMAo+ID4gKyNkZWZpbmUgTVNLX01ITF9EUF9DVEw3X0RUX0RSVl9JUkVG X0NUTAkJMHgwZgo+ID4gKwo+ID4gKy8qIFR4IFpvbmUgQ3RsMSwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLwo+ID4gKyNkZWZpbmUgUkVHX1RYX1pPTkVfQ1RMMQkJCTB4MDM2MQo+ID4gKyNkZWZpbmUg VkFMX1RYX1pPTkVfQ1RMMV9UWF9aT05FX0NUUkxfTU9ERQkweDA4Cj4gPiArCj4gPiArLyogTUhM MyBUeCBab25lIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX01I TDNfVFhfWk9ORV9DVEwJCQkweDAzNjQKPiA+ICsjZGVmaW5lIEJJVF9NSEwzX1RYX1pPTkVfQ1RM X01ITDJfSU5UUExUX1pPTkVfTUFOVV9FTiBCSVQoNykKPiA+ICsjZGVmaW5lIE1TS19NSEwzX1RY X1pPTkVfQ1RMX01ITDNfVFhfWk9ORQkweDAzCj4gPiArCj4gPiArI2RlZmluZSBNU0tfVFhfWk9O RV9DVEwzX1RYX1pPTkUJCTB4MDMKPiA+ICsjZGVmaW5lIFZBTF9UWF9aT05FX0NUTDNfVFhfWk9O RV82R0JQUwkJMHgwMAo+ID4gKyNkZWZpbmUgVkFMX1RYX1pPTkVfQ1RMM19UWF9aT05FXzNHQlBT CQkweDAxCj4gPiArI2RlZmluZSBWQUxfVFhfWk9ORV9DVEwzX1RYX1pPTkVfMV81R0JQUwkweDAy Cj4gPiArCj4gPiArLyogSERDUCBQb2xsaW5nIENvbnRyb2wgYW5kIFN0YXR1cywgZGVmYXVsdCB2 YWx1ZTogMHg3MCAqLwo+ID4gKyNkZWZpbmUgUkVHX0hEQ1AyWF9QT0xMX0NTCQkJMHgwMzkxCj4g PiArCj4gPiArI2RlZmluZSBCSVRfSERDUDJYX1BPTExfQ1NfSERDUDJYX01TR19TWl9DTFJfT1BU SU9OIEJJVCg2KQo+ID4gKyNkZWZpbmUgQklUX0hEQ1AyWF9QT0xMX0NTX0hEQ1AyWF9SUFRfUkVB RFlfQ0xSX09QVElPTiBCSVQoNSkKPiA+ICsjZGVmaW5lIEJJVF9IRENQMlhfUE9MTF9DU19IRENQ MlhfUkVBVVRIX1JFUV9DTFJfT1BUSU9OIEJJVCg0KQo+ID4gKyNkZWZpbmUgTVNLX0hEQ1AyWF9Q T0xMX0NTXwkJCTB4MGMKPiA+ICsjZGVmaW5lIEJJVF9IRENQMlhfUE9MTF9DU19IRENQMlhfRElT X1BPTExfR05UCUJJVCgxKQo+ID4gKyNkZWZpbmUgQklUX0hEQ1AyWF9QT0xMX0NTX0hEQ1AyWF9E SVNfUE9MTF9FTglCSVQoMCkKPiA+ICsKPiA+ICsvKiBIRENQIEludGVycnVwdCAwLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfSERDUDJYX0lOVFIwCQkJMHgwMzk4Cj4g PiArCj4gPiArLyogSERDUCBJbnRlcnJ1cHQgMCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICov Cj4gPiArI2RlZmluZSBSRUdfSERDUDJYX0lOVFIwX01BU0sJCQkweDAzOTkKPiA+ICsKPiA+ICsv KiBIRENQIEdlbmVyYWwgQ29udHJvbCAwLCBkZWZhdWx0IHZhbHVlOiAweDAyICovCj4gPiArI2Rl ZmluZSBSRUdfSERDUDJYX0NUUkxfMAkJCTB4MDNhMAo+ID4gKyNkZWZpbmUgQklUX0hEQ1AyWF9D VFJMXzBfSERDUDJYX0VOQ1JZUFRfRU4JQklUKDcpCj4gPiArI2RlZmluZSBCSVRfSERDUDJYX0NU UkxfMF9IRENQMlhfUE9MSU5UX1NFTAlCSVQoNikKPiA+ICsjZGVmaW5lIEJJVF9IRENQMlhfQ1RS TF8wX0hEQ1AyWF9QT0xJTlRfT1ZSCUJJVCg1KQo+ID4gKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJM XzBfSERDUDJYX1BSRUNPTVBVVEUJQklUKDQpCj4gPiArI2RlZmluZSBCSVRfSERDUDJYX0NUUkxf MF9IRENQMlhfSERNSU1PREUJQklUKDMpCj4gPiArI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMF9I RENQMlhfUkVQRUFURVIJQklUKDIpCj4gPiArI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMF9IRENQ MlhfSERDUFRYCQlCSVQoMSkKPiA+ICsjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9F TgkJQklUKDApCj4gPiArCj4gPiArLyogSERDUCBHZW5lcmFsIENvbnRyb2wgMSwgZGVmYXVsdCB2 YWx1ZTogMHgwOCAqLwo+ID4gKyNkZWZpbmUgUkVHX0hEQ1AyWF9DVFJMXzEJCQkweDAzYTEKPiA+ ICsjZGVmaW5lIE1TS19IRENQMlhfQ1RSTF8xX0hEQ1AyWF9SRUFVVEhfTVNLXzNfMAkweGYwCj4g PiArI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMV9IRENQMlhfSFBEX1NXCQlCSVQoMykKPiA+ICsj ZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8xX0hEQ1AyWF9IUERfT1ZSCUJJVCgyKQo+ID4gKyNkZWZp bmUgQklUX0hEQ1AyWF9DVFJMXzFfSERDUDJYX0NUTDNNU0sJQklUKDEpCj4gPiArI2RlZmluZSBC SVRfSERDUDJYX0NUUkxfMV9IRENQMlhfUkVBVVRIX1NXCUJJVCgwKQo+ID4gKwo+ID4gKy8qIEhE Q1AgTWlzYyBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdf SERDUDJYX01JU0NfQ1RSTAkJCTB4MDNhNQo+ID4gKyNkZWZpbmUgQklUX0hEQ1AyWF9NSVNDX0NU UkxfSERDUDJYX1JQVF9TTU5HX1hGRVJfU1RBUlQgQklUKDQpCj4gPiArI2RlZmluZSBCSVRfSERD UDJYX01JU0NfQ1RSTF9IRENQMlhfUlBUX1NNTkdfV1JfU1RBUlQgQklUKDMpCj4gPiArI2RlZmlu ZSBCSVRfSERDUDJYX01JU0NfQ1RSTF9IRENQMlhfUlBUX1NNTkdfV1IJQklUKDIpCj4gPiArI2Rl ZmluZSBCSVRfSERDUDJYX01JU0NfQ1RSTF9IRENQMlhfUlBUX1JDVklEX1JEX1NUQVJUIEJJVCgx KQo+ID4gKyNkZWZpbmUgQklUX0hEQ1AyWF9NSVNDX0NUUkxfSERDUDJYX1JQVF9SQ1ZJRF9SRAlC SVQoMCkKPiA+ICsKPiA+ICsvKiBIRENQIFJQVCBTTU5HIEssIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KPiA+ICsjZGVmaW5lIFJFR19IRENQMlhfUlBUX1NNTkdfSwkJCTB4MDNhNgo+ID4gKwo+ID4g Ky8qIEhEQ1AgUlBUIFNNTkcgSW4sIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5l IFJFR19IRENQMlhfUlBUX1NNTkdfSU4JCQkweDAzYTcKPiA+ICsKPiA+ICsvKiBIRENQIEF1dGgg U3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfSERDUDJYX0FV VEhfU1RBVAkJCTB4MDNhYQo+ID4gKwo+ID4gKy8qIEhEQ1AgUlBUIFJDVklEIE91dCwgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0hEQ1AyWF9SUFRfUkNWSURfT1VUCQkw eDAzYWMKPiA+ICsKPiA+ICsvKiBIRENQIFRQMSwgZGVmYXVsdCB2YWx1ZTogMHg2MiAqLwo+ID4g KyNkZWZpbmUgUkVHX0hEQ1AyWF9UUDEJCQkJMHgwM2I0Cj4gPiArCj4gPiArLyogSERDUCBHUCBP dXQgMCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0hEQ1AyWF9HUF9P VVQwCQkJMHgwM2M3Cj4gPiArCj4gPiArLyogSERDUCBSZXBlYXRlciBSQ1ZSIElEIDAsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19IRENQMlhfUlBUX1JDVlJfSUQwCQkJ MHgwM2QxCj4gPiArCj4gPiArLyogSERDUCBERENNIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLwo+ID4gKyNkZWZpbmUgUkVHX0hEQ1AyWF9ERENNX1NUUwkJCTB4MDNkOAo+ID4gKyNkZWZp bmUgTVNLX0hEQ1AyWF9ERENNX1NUU19IRENQMlhfRERDTV9FUlJfU1RTXzNfMCAweGYwCj4gPiAr I2RlZmluZSBNU0tfSERDUDJYX0REQ01fU1RTX0hEQ1AyWF9ERENNX0NUTF9DU18zXzAgMHgwZgo+ ID4gKwo+ID4gKy8qIEhETUkyTUhMMyBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDBhICovCj4g PiArI2RlZmluZSBSRUdfTTNfQ1RSTAkJCQkweDAzZTAKPiA+ICsjZGVmaW5lIEJJVF9NM19DVFJM X0gyTV9TV1JTVAkJCUJJVCg0KQo+ID4gKyNkZWZpbmUgQklUX00zX0NUUkxfU1dfTUhMM19TRUwJ CQlCSVQoMykKPiA+ICsjZGVmaW5lIEJJVF9NM19DVFJMX00zQVZfRU4JCQlCSVQoMikKPiA+ICsj ZGVmaW5lIEJJVF9NM19DVFJMX0VOQ19UTURTCQkJQklUKDEpCj4gPiArI2RlZmluZSBCSVRfTTNf Q1RSTF9NSEwzX01BU1RFUl9FTgkJQklUKDApCj4gPiArCj4gPiArI2RlZmluZSBWQUxfTTNfQ1RS TF9NSEwxXzJfVkFMVUUgKEJJVF9NM19DVFJMX1NXX01ITDNfU0VMIFwKPiA+ICsJCQkJICB8IEJJ VF9NM19DVFJMX0VOQ19UTURTKQo+ID4gKyNkZWZpbmUgVkFMX00zX0NUUkxfTUhMM19WQUxVRSAo QklUX00zX0NUUkxfU1dfTUhMM19TRUwgXAo+ID4gKwkJCQl8IEJJVF9NM19DVFJMX00zQVZfRU4g XAo+ID4gKwkJCQl8IEJJVF9NM19DVFJMX0VOQ19UTURTIFwKPiA+ICsJCQkJfCBCSVRfTTNfQ1RS TF9NSEwzX01BU1RFUl9FTikKPiA+ICsKPiA+ICsvKiBIRE1JMk1ITDMgUG9ydDAgQ29udHJvbCwg ZGVmYXVsdCB2YWx1ZTogMHgwNCAqLwo+ID4gKyNkZWZpbmUgUkVHX00zX1AwQ1RSTAkJCQkweDAz ZTEKPiA+ICsjZGVmaW5lIEJJVF9NM19QMENUUkxfTUhMM19QMF9IRENQX0VOQ19FTglCSVQoNCkK PiA+ICsjZGVmaW5lIEJJVF9NM19QMENUUkxfTUhMM19QMF9VTkxJTUlUX0VOCUJJVCgzKQo+ID4g KyNkZWZpbmUgQklUX00zX1AwQ1RSTF9NSEwzX1AwX0hEQ1BfRU4JCUJJVCgyKQo+ID4gKyNkZWZp bmUgQklUX00zX1AwQ1RSTF9NSEwzX1AwX1BJWEVMX01PREVfUEFDS0VECUJJVCgxKQo+ID4gKyNk ZWZpbmUgQklUX00zX1AwQ1RSTF9NSEwzX1AwX1BPUlRfRU4JCUJJVCgwKQo+ID4gKwo+ID4gKyNk ZWZpbmUgUkVHX00zX1BPU1RNCQkJCTB4MDNlMgo+ID4gKyNkZWZpbmUgTVNLX00zX1BPU1RNX1JS UF9ERUNPREUJCQkweGY4Cj4gPiArI2RlZmluZSBNU0tfTTNfUE9TVE1fTUhMM19QMF9TVE1fSUQJ CTB4MDcKPiA+ICsKPiA+ICsvKiBIRE1JMk1ITDMgU2NyYW1ibGUgQ29udHJvbCwgZGVmYXVsdCB2 YWx1ZTogMHg0MSAqLwo+ID4gKyNkZWZpbmUgUkVHX00zX1NDVFJMCQkJCTB4MDNlNgo+ID4gKyNk ZWZpbmUgTVNLX00zX1NDVFJMX01ITDNfU1JfTEVOR1RICQkweGYwCj4gPiArI2RlZmluZSBCSVRf TTNfU0NUUkxfTUhMM19TQ1JBTUJMRVJfRU4JCUJJVCgwKQo+ID4gKwo+ID4gKy8qIEhTSUMgRGl2 IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwNSAqLwo+ID4gKyNkZWZpbmUgUkVHX0RJVl9DVExfTUFJ TgkJCTB4MDNmMgo+ID4gKyNkZWZpbmUgTVNLX0RJVl9DVExfTUFJTl9QUkVfRElWX0NUTF9NQUlO CTB4MWMKPiA+ICsjZGVmaW5lIE1TS19ESVZfQ1RMX01BSU5fRkJfRElWX0NUTF9NQUlOCTB4MDMK PiA+ICsKPiA+ICsvKiBNSEwgQ2FwYWJpbGl0eSAxc3QgQnl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLwo+ID4gKyNkZWZpbmUgUkVHX01ITF9ERVZDQVBfMAkJCTB4MDQwMAo+ID4gKwo+ID4gKy8q IE1ITCBJbnRlcnJ1cHQgMXN0IEJ5dGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVm aW5lIFJFR19NSExfSU5UXzAJCQkJMHgwNDIwCj4gPiArCj4gPiArLyogRGV2aWNlIFN0YXR1cyAx c3QgYnl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX01ITF9TVEFU XzAJCQkJMHgwNDMwCj4gPiArCj4gPiArLyogQ0JVUyBTY3JhdGNoIFBhZCAxc3QgQnl0ZSwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX01ITF9TQ1JQQURfMAkJCTB4MDQ0 MAo+ID4gKwo+ID4gKy8qIE1ITCBFeHRlbmRlZCBDYXBhYmlsaXR5IDFzdCBCeXRlLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfTUhMX0VYVERFVkNBUF8wCQkJMHgwNDgw Cj4gPiArCj4gPiArLyogRGV2aWNlIEV4dGVuZGVkIFN0YXR1cyAxc3QgYnl0ZSwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX01ITF9FWFRTVEFUXzAJCQkweDA0OTAKPiA+ ICsKPiA+ICsvKiBUUEkgRFREIEJ5dGUyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2Rl ZmluZSBSRUdfVFBJX0RURF9CMgkJCQkweDA2MDIKPiA+ICsKPiA+ICsjZGVmaW5lIFZBTF9UUElf UVVBTl9SQU5HRV9MSU1JVEVECQkweDAxCj4gPiArI2RlZmluZSBWQUxfVFBJX1FVQU5fUkFOR0Vf RlVMTAkJCTB4MDIKPiA+ICsjZGVmaW5lIFZBTF9UUElfRk9STUFUX1JHQgkJCTB4MDAKPiA+ICsj ZGVmaW5lIFZBTF9UUElfRk9STUFUX1lDQkNSNDQ0CQkJMHgwMQo+ID4gKyNkZWZpbmUgVkFMX1RQ SV9GT1JNQVRfWUNCQ1I0MjIJCQkweDAyCj4gPiArI2RlZmluZSBWQUxfVFBJX0ZPUk1BVF9JTlRF Uk5BTF9SR0IJCTB4MDMKPiA+ICsjZGVmaW5lIFZBTF9UUElfRk9STUFUKF9mbXQsIF9xcikgXAo+ ID4gKwkJKFZBTF9UUElfRk9STUFUXyMjX2ZtdCB8IChWQUxfVFBJX1FVQU5fUkFOR0VfIyNfcXIg PDwgMikpCj4gPiArCj4gPiArLyogSW5wdXQgRm9ybWF0LCBkZWZhdWx0IHZhbHVlOiAweDAwICov Cj4gPiArI2RlZmluZSBSRUdfVFBJX0lOUFVUCQkJCTB4MDYwOQo+ID4gKyNkZWZpbmUgQklUX1RQ SV9JTlBVVF9FWFRFTkRFREJJVE1PREUJCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX1RQSV9JTlBV VF9FTkRJVEhFUgkJCUJJVCg2KQo+ID4gKyNkZWZpbmUgTVNLX1RQSV9JTlBVVF9JTlBVVF9RVUFO X1JBTkdFCQkweDBjCj4gPiArI2RlZmluZSBNU0tfVFBJX0lOUFVUX0lOUFVUX0ZPUk1BVAkJMHgw Mwo+ID4gKwo+ID4gKy8qIE91dHB1dCBGb3JtYXQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ ICsjZGVmaW5lIFJFR19UUElfT1VUUFVUCQkJCTB4MDYwYQo+ID4gKyNkZWZpbmUgQklUX1RQSV9P VVRQVVRfQ1NDTU9ERTcwOQkJQklUKDQpCj4gPiArI2RlZmluZSBNU0tfVFBJX09VVFBVVF9PVVRQ VVRfUVVBTl9SQU5HRQkweDBjCj4gPiArI2RlZmluZSBNU0tfVFBJX09VVFBVVF9PVVRQVVRfRk9S TUFUCQkweDAzCj4gPiArCj4gPiArLyogVFBJIEFWSSBDaGVjayBTdW0sIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19UUElfQVZJX0NIU1VNCQkJMHgwNjBjCj4gPiArCj4g PiArLyogVFBJIFN5c3RlbSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2Rl ZmluZSBSRUdfVFBJX1NDCQkJCTB4MDYxYQo+ID4gKyNkZWZpbmUgQklUX1RQSV9TQ19UUElfVVBE QVRFX0ZMRwkJQklUKDcpCj4gPiArI2RlZmluZSBCSVRfVFBJX1NDX1RQSV9SRUFVVEhfQ1RMCQlC SVQoNikKPiA+ICsjZGVmaW5lIEJJVF9UUElfU0NfVFBJX09VVFBVVF9NT0RFXzEJCUJJVCg1KQo+ ID4gKyNkZWZpbmUgQklUX1RQSV9TQ19SRUdfVE1EU19PRV9QT1dFUl9ET1dOCUJJVCg0KQo+ID4g KyNkZWZpbmUgQklUX1RQSV9TQ19UUElfQVZfTVVURQkJCUJJVCgzKQo+ID4gKyNkZWZpbmUgQklU X1RQSV9TQ19ERENfR1BVX1JFUVVFU1QJCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX1RQSV9TQ19E RENfVFBJX1NXCQkJQklUKDEpCj4gPiArI2RlZmluZSBCSVRfVFBJX1NDX1RQSV9PVVRQVVRfTU9E RV8wX0hETUkJQklUKDApCj4gPiArCj4gPiArLyogVFBJIENPUFAgUXVlcnkgRGF0YSwgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX1RQSV9DT1BQX0RBVEExCQkJMHgwNjI5 Cj4gPiArI2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTFfQ09QUF9HUFJPVAkJQklUKDcpCj4gPiAr I2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTFfQ09QUF9MUFJPVAkJQklUKDYpCj4gPiArI2RlZmlu ZSBNU0tfVFBJX0NPUFBfREFUQTFfQ09QUF9MSU5LX1NUQVRVUwkweDMwCj4gPiArI2RlZmluZSBW QUxfVFBJX0NPUFBfTElOS19TVEFUVVNfTk9STUFMCQkweDAwCj4gPiArI2RlZmluZSBWQUxfVFBJ X0NPUFBfTElOS19TVEFUVVNfTElOS19MT1NUCTB4MTAKPiA+ICsjZGVmaW5lIFZBTF9UUElfQ09Q UF9MSU5LX1NUQVRVU19SRU5FR09USUFUSU9OX1JFUSAweDIwCj4gPiArI2RlZmluZSBWQUxfVFBJ X0NPUFBfTElOS19TVEFUVVNfTElOS19TVVNQRU5ERUQJMHgzMAo+ID4gKyNkZWZpbmUgQklUX1RQ SV9DT1BQX0RBVEExX0NPUFBfSERDUF9SRVAJQklUKDMpCj4gPiArI2RlZmluZSBCSVRfVFBJX0NP UFBfREFUQTFfQ09QUF9DT05OVFlQRV8wCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX1RQSV9DT1BQ X0RBVEExX0NPUFBfUFJPVFlQRQkJQklUKDEpCj4gPiArI2RlZmluZSBCSVRfVFBJX0NPUFBfREFU QTFfQ09QUF9DT05OVFlQRV8xCUJJVCgwKQo+ID4gKwo+ID4gKy8qIFRQSSBDT1BQIENvbnRyb2wg RGF0YSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX1RQSV9DT1BQX0RB VEEyCQkJMHgwNjJhCj4gPiArI2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTJfSU5UUl9FTkNSWVBU SU9OCUJJVCg1KQo+ID4gKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0tTVl9GT1JXQVJECQlC SVQoNCkKPiA+ICsjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMl9JTlRFUk1fUklfQ0hFQ0tfRU4J QklUKDMpCj4gPiArI2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTJfRE9VQkxFX1JJX0NIRUNLCUJJ VCgyKQo+ID4gKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0REQ19TSE9SVF9SSV9SRAlCSVQo MSkKPiA+ICsjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMl9DT1BQX1BST1RMRVZFTAlCSVQoMCkK PiA+ICsKPiA+ICsvKiBUUEkgSW50ZXJydXB0IEVuYWJsZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq Lwo+ID4gKyNkZWZpbmUgUkVHX1RQSV9JTlRSX0VOCQkJCTB4MDYzYwo+ID4gKwo+ID4gKy8qIFRQ SSBJbnRlcnJ1cHQgU3RhdHVzIExvdyBCeXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiAr I2RlZmluZSBSRUdfVFBJX0lOVFJfU1QwCQkJMHgwNjNkCj4gPiArI2RlZmluZSBCSVRfVFBJX0lO VFJfU1QwX1RQSV9BVVRIX0NITkdFX1NUQVQJQklUKDcpCj4gPiArI2RlZmluZSBCSVRfVFBJX0lO VFJfU1QwX1RQSV9WX1JEWV9TVEFUCQlCSVQoNikKPiA+ICsjZGVmaW5lIEJJVF9UUElfSU5UUl9T VDBfVFBJX0NPUFBfQ0hOR0VfU1RBVAlCSVQoNSkKPiA+ICsjZGVmaW5lIEJJVF9UUElfSU5UUl9T VDBfS1NWX0ZJRk9fRklSU1RfU1RBVAlCSVQoMykKPiA+ICsjZGVmaW5lIEJJVF9UUElfSU5UUl9T VDBfUkVBRF9CS1NWX0JDQVBTX0RPTkVfU1RBVCBCSVQoMikKPiA+ICsjZGVmaW5lIEJJVF9UUElf SU5UUl9TVDBfUkVBRF9CS1NWX0JDQVBTX0VSUl9TVEFUIEJJVCgxKQo+ID4gKyNkZWZpbmUgQklU X1RQSV9JTlRSX1NUMF9SRUFEX0JLU1ZfRVJSX1NUQVQJQklUKDApCj4gPiArCj4gPiArLyogVFBJ IERTIEJDQVBTIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVH X1RQSV9EU19CQ0FQUwkJCTB4MDY0NAo+ID4gKwo+ID4gKy8qIFRQSSBCU3RhdHVzMSwgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX1RQSV9CU1RBVFVTMQkJCTB4MDY0NQo+ ID4gKyNkZWZpbmUgQklUX1RQSV9CU1RBVFVTMV9EU19ERVZfRVhDRUVECQlCSVQoNykKPiA+ICsj ZGVmaW5lIE1TS19UUElfQlNUQVRVUzFfRFNfREVWX0NOVAkJMHg3Zgo+ID4gKwo+ID4gKy8qIFRQ SSBCU3RhdHVzMiwgZGVmYXVsdCB2YWx1ZTogMHgxMCAqLwo+ID4gKyNkZWZpbmUgUkVHX1RQSV9C U1RBVFVTMgkJCTB4MDY0Ngo+ID4gKyNkZWZpbmUgTVNLX1RQSV9CU1RBVFVTMl9EU19CU1RBVFVT CQkweGUwCj4gPiArI2RlZmluZSBCSVRfVFBJX0JTVEFUVVMyX0RTX0hETUlfTU9ERQkJQklUKDQp Cj4gPiArI2RlZmluZSBCSVRfVFBJX0JTVEFUVVMyX0RTX0NBU0NfRVhDRUVECQlCSVQoMykKPiA+ ICsjZGVmaW5lIE1TS19UUElfQlNUQVRVUzJfRFNfREVQVEgJCTB4MDcKPiA+ICsKPiA+ICsvKiBU UEkgSFcgT3B0aW1pemF0aW9uIENvbnRyb2wgIzMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ ICsjZGVmaW5lIFJFR19UUElfSFdfT1BUMwkJCQkweDA2YmIKPiA+ICsjZGVmaW5lIEJJVF9UUElf SFdfT1BUM19ERENfREVCVUcJCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX1RQSV9IV19PUFQzX1JJ X0NIRUNLX1NLSVAJCUJJVCgzKQo+ID4gKyNkZWZpbmUgQklUX1RQSV9IV19PUFQzX1RQSV9ERENf QlVSU1RfTU9ERQlCSVQoMikKPiA+ICsjZGVmaW5lIE1TS19UUElfSFdfT1BUM19UUElfRERDX1JF UV9MRVZFTAkweDAzCj4gPiArCj4gPiArLyogVFBJIEluZm8gRnJhbWUgU2VsZWN0LCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfVFBJX0lORk9fRlNFTAkJCTB4MDZiZgo+ ID4gKyNkZWZpbmUgQklUX1RQSV9JTkZPX0ZTRUxfVFBJX0lORk9fRU4JCUJJVCg3KQo+ID4gKyNk ZWZpbmUgQklUX1RQSV9JTkZPX0ZTRUxfVFBJX0lORk9fUlBUCQlCSVQoNikKPiA+ICsjZGVmaW5l IEJJVF9UUElfSU5GT19GU0VMX1RQSV9JTkZPX1JFQURfRkxBRwlCSVQoNSkKPiA+ICsjZGVmaW5l IE1TS19UUElfSU5GT19GU0VMX1RQSV9JTkZPX1NFTAkJMHgwNwo+ID4gKwo+ID4gKy8qIFRQSSBJ bmZvIEJ5dGUgIzAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19UUElf SU5GT19CMAkJCQkweDA2YzAKPiA+ICsKPiA+ICsvKiBDb0MgU3RhdHVzLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfQ09DX1NUQVRfMAkJCQkweDA3MDAKPiA+ICsjZGVm aW5lIFJFR19DT0NfU1RBVF8xCQkJCTB4MDcwMQo+ID4gKyNkZWZpbmUgUkVHX0NPQ19TVEFUXzIJ CQkJMHgwNzAyCj4gPiArI2RlZmluZSBSRUdfQ09DX1NUQVRfMwkJCQkweDA3MDMKPiA+ICsjZGVm aW5lIFJFR19DT0NfU1RBVF80CQkJCTB4MDcwNAo+ID4gKyNkZWZpbmUgUkVHX0NPQ19TVEFUXzUJ CQkJMHgwNzA1Cj4gPiArCj4gPiArLyogQ29DIDFzdCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4NDAg Ki8KPiA+ICsjZGVmaW5lIFJFR19DT0NfQ1RMMAkJCQkweDA3MTAKPiA+ICsKPiA+ICsvKiBDb0Mg Mm5kIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwYSAqLwo+ID4gKyNkZWZpbmUgUkVHX0NPQ19DVEwx CQkJCTB4MDcxMQo+ID4gKyNkZWZpbmUgTVNLX0NPQ19DVEwxX0NPQ19DVFJMMV83XzYJCTB4YzAK PiA+ICsjZGVmaW5lIE1TS19DT0NfQ1RMMV9DT0NfQ1RSTDFfNV8wCQkweDNmCj4gPiArCj4gPiAr LyogQ29DIDNyZCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MTQgKi8KPiA+ICsjZGVmaW5lIFJFR19D T0NfQ1RMMgkJCQkweDA3MTIKPiA+ICsjZGVmaW5lIE1TS19DT0NfQ1RMMl9DT0NfQ1RSTDJfN182 CQkweGMwCj4gPiArI2RlZmluZSBNU0tfQ09DX0NUTDJfQ09DX0NUUkwyXzVfMAkJMHgzZgo+ID4g Kwo+ID4gKy8qIENvQyA0dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDQwICovCj4gPiArI2RlZmlu ZSBSRUdfQ09DX0NUTDMJCQkJMHgwNzEzCj4gPiArI2RlZmluZSBCSVRfQ09DX0NUTDNfQ09DX0NU UkwzXzcJCUJJVCg3KQo+ID4gKyNkZWZpbmUgTVNLX0NPQ19DVEwzX0NPQ19DVFJMM182XzAJCTB4 N2YKPiA+ICsKPiA+ICsvKiBDb0MgN3RoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4g KyNkZWZpbmUgUkVHX0NPQ19DVEw2CQkJCTB4MDcxNgo+ID4gKyNkZWZpbmUgQklUX0NPQ19DVEw2 X0NPQ19DVFJMNl83CQlCSVQoNykKPiA+ICsjZGVmaW5lIEJJVF9DT0NfQ1RMNl9DT0NfQ1RSTDZf NgkJQklUKDYpCj4gPiArI2RlZmluZSBNU0tfQ09DX0NUTDZfQ09DX0NUUkw2XzVfMAkJMHgzZgo+ ID4gKwo+ID4gKy8qIENvQyA4dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDA2ICovCj4gPiArI2Rl ZmluZSBSRUdfQ09DX0NUTDcJCQkJMHgwNzE3Cj4gPiArI2RlZmluZSBCSVRfQ09DX0NUTDdfQ09D X0NUUkw3XzcJCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX0NPQ19DVEw3X0NPQ19DVFJMN182CQlC SVQoNikKPiA+ICsjZGVmaW5lIEJJVF9DT0NfQ1RMN19DT0NfQ1RSTDdfNQkJQklUKDUpCj4gPiAr I2RlZmluZSBNU0tfQ09DX0NUTDdfQ09DX0NUUkw3XzRfMwkJMHgxOAo+ID4gKyNkZWZpbmUgTVNL X0NPQ19DVEw3X0NPQ19DVFJMN18yXzAJCTB4MDcKPiA+ICsKPiA+ICsvKiBDb0MgMTB0aCBDdGws IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19DT0NfQ1RMOQkJCQkweDA3 MTkKPiA+ICsKPiA+ICsvKiBDb0MgMTF0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ ICsjZGVmaW5lIFJFR19DT0NfQ1RMQQkJCQkweDA3MWEKPiA+ICsKPiA+ICsvKiBDb0MgMTJ0aCBD dGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19DT0NfQ1RMQgkJCQkw eDA3MWIKPiA+ICsKPiA+ICsvKiBDb0MgMTN0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MGYgKi8K PiA+ICsjZGVmaW5lIFJFR19DT0NfQ1RMQwkJCQkweDA3MWMKPiA+ICsKPiA+ICsvKiBDb0MgMTR0 aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MGEgKi8KPiA+ICsjZGVmaW5lIFJFR19DT0NfQ1RMRAkJ CQkweDA3MWQKPiA+ICsjZGVmaW5lIEJJVF9DT0NfQ1RMRF9DT0NfQ1RSTERfNwkJQklUKDcpCj4g PiArI2RlZmluZSBNU0tfQ09DX0NUTERfQ09DX0NUUkxEXzZfMAkJMHg3Zgo+ID4gKwo+ID4gKy8q IENvQyAxNXRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwYSAqLwo+ID4gKyNkZWZpbmUgUkVHX0NP Q19DVExFCQkJCTB4MDcxZQo+ID4gKyNkZWZpbmUgQklUX0NPQ19DVExFX0NPQ19DVFJMRV83CQlC SVQoNykKPiA+ICsjZGVmaW5lIE1TS19DT0NfQ1RMRV9DT0NfQ1RSTEVfNl8wCQkweDdmCj4gPiAr Cj4gPiArLyogQ29DIDE2dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmlu ZSBSRUdfQ09DX0NUTEYJCQkJMHgwNzFmCj4gPiArI2RlZmluZSBNU0tfQ09DX0NUTEZfQ09DX0NU UkxGXzdfMwkJMHhmOAo+ID4gKyNkZWZpbmUgTVNLX0NPQ19DVExGX0NPQ19DVFJMRl8yXzAJCTB4 MDcKPiA+ICsKPiA+ICsvKiBDb0MgMTh0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MzIgKi8KPiA+ ICsjZGVmaW5lIFJFR19DT0NfQ1RMMTEJCQkJMHgwNzIxCj4gPiArI2RlZmluZSBNU0tfQ09DX0NU TDExX0NPQ19DVFJMMTFfN180CQkweGYwCj4gPiArI2RlZmluZSBNU0tfQ09DX0NUTDExX0NPQ19D VFJMMTFfM18wCQkweDBmCj4gPiArCj4gPiArLyogQ29DIDIxc3QgQ3RsLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfQ09DX0NUTDE0CQkJCTB4MDcyNAo+ID4gKyNkZWZp bmUgTVNLX0NPQ19DVEwxNF9DT0NfQ1RSTDE0XzdfNAkJMHhmMAo+ID4gKyNkZWZpbmUgTVNLX0NP Q19DVEwxNF9DT0NfQ1RSTDE0XzNfMAkJMHgwZgo+ID4gKwo+ID4gKy8qIENvQyAyMm5kIEN0bCwg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0NPQ19DVEwxNQkJCQkweDA3 MjUKPiA+ICsjZGVmaW5lIEJJVF9DT0NfQ1RMMTVfQ09DX0NUUkwxNV83CQlCSVQoNykKPiA+ICsj ZGVmaW5lIE1TS19DT0NfQ1RMMTVfQ09DX0NUUkwxNV82XzQJCTB4NzAKPiA+ICsjZGVmaW5lIE1T S19DT0NfQ1RMMTVfQ09DX0NUUkwxNV8zXzAJCTB4MGYKPiA+ICsKPiA+ICsvKiBDb0MgSW50ZXJy dXB0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfQ09DX0lOVFIJCQkJ MHgwNzI2Cj4gPiArCj4gPiArLyogQ29DIEludGVycnVwdCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCj4gPiArI2RlZmluZSBSRUdfQ09DX0lOVFJfTUFTSwkJCTB4MDcyNwo+ID4gKyNkZWZp bmUgQklUX0NPQ19QTExfTE9DS19TVEFUVVNfQ0hBTkdFCQlCSVQoMCkKPiA+ICsjZGVmaW5lIEJJ VF9DT0NfQ0FMSUJSQVRJT05fRE9ORQkJQklUKDEpCj4gPiArCj4gPiArLyogQ29DIE1pc2MgQ3Rs LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfQ09DX01JU0NfQ1RMMAkJ CTB4MDcyOAo+ID4gKyNkZWZpbmUgQklUX0NPQ19NSVNDX0NUTDBfRlNNX01PTgkJQklUKDcpCj4g PiArCj4gPiArLyogQ29DIDI0dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2Rl ZmluZSBSRUdfQ09DX0NUTDE3CQkJCTB4MDcyYQo+ID4gKyNkZWZpbmUgTVNLX0NPQ19DVEwxN19D T0NfQ1RSTDE3XzdfNAkJMHhmMAo+ID4gKyNkZWZpbmUgTVNLX0NPQ19DVEwxN19DT0NfQ1RSTDE3 XzNfMAkJMHgwZgo+ID4gKwo+ID4gKy8qIENvQyAyNXRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLwo+ID4gKyNkZWZpbmUgUkVHX0NPQ19DVEwxOAkJCQkweDA3MmIKPiA+ICsjZGVmaW5lIE1T S19DT0NfQ1RMMThfQ09DX0NUUkwxOF83XzQJCTB4ZjAKPiA+ICsjZGVmaW5lIE1TS19DT0NfQ1RM MThfQ09DX0NUUkwxOF8zXzAJCTB4MGYKPiA+ICsKPiA+ICsvKiBDb0MgMjZ0aCBDdGwsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19DT0NfQ1RMMTkJCQkJMHgwNzJjCj4g PiArI2RlZmluZSBNU0tfQ09DX0NUTDE5X0NPQ19DVFJMMTlfN180CQkweGYwCj4gPiArI2RlZmlu ZSBNU0tfQ09DX0NUTDE5X0NPQ19DVFJMMTlfM18wCQkweDBmCj4gPiArCj4gPiArLyogQ29DIDI3 dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfQ09DX0NUTDFB CQkJCTB4MDcyZAo+ID4gKyNkZWZpbmUgTVNLX0NPQ19DVEwxQV9DT0NfQ1RSTDFBXzdfMgkJMHhm Ywo+ID4gKyNkZWZpbmUgTVNLX0NPQ19DVEwxQV9DT0NfQ1RSTDFBXzFfMAkJMHgwMwo+ID4gKwo+ ID4gKy8qIERvQyA5dGggU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmlu ZSBSRUdfRE9DX1NUQVRfOAkJCQkweDA3NDAKPiA+ICsKPiA+ICsvKiBEb0MgMTB0aCBTdGF0dXMs IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19ET0NfU1RBVF85CQkJCTB4 MDc0MQo+ID4gKwo+ID4gKy8qIERvQyA1dGggQ0ZHLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4g PiArI2RlZmluZSBSRUdfRE9DX0NGRzQJCQkJMHgwNzRlCj4gPiArI2RlZmluZSBNU0tfRE9DX0NG RzRfREJHX1NUQVRFX0RPQ19GU00JCTB4MGYKPiA+ICsKPiA+ICsvKiBEb0MgMXN0IEN0bCwgZGVm YXVsdCB2YWx1ZTogMHg0MCAqLwo+ID4gKyNkZWZpbmUgUkVHX0RPQ19DVEwwCQkJCTB4MDc1MQo+ ID4gKwo+ID4gKy8qIERvQyA3dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2Rl ZmluZSBSRUdfRE9DX0NUTDYJCQkJMHgwNzU3Cj4gPiArI2RlZmluZSBCSVRfRE9DX0NUTDZfRE9D X0NUUkw2XzcJCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX0RPQ19DVEw2X0RPQ19DVFJMNl82CQlC SVQoNikKPiA+ICsjZGVmaW5lIE1TS19ET0NfQ1RMNl9ET0NfQ1RSTDZfNV80CQkweDMwCj4gPiAr I2RlZmluZSBNU0tfRE9DX0NUTDZfRE9DX0NUUkw2XzNfMAkJMHgwZgo+ID4gKwo+ID4gKy8qIERv QyA4dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfRE9DX0NU TDcJCQkJMHgwNzU4Cj4gPiArI2RlZmluZSBCSVRfRE9DX0NUTDdfRE9DX0NUUkw3XzcJCUJJVCg3 KQo+ID4gKyNkZWZpbmUgQklUX0RPQ19DVEw3X0RPQ19DVFJMN182CQlCSVQoNikKPiA+ICsjZGVm aW5lIEJJVF9ET0NfQ1RMN19ET0NfQ1RSTDdfNQkJQklUKDUpCj4gPiArI2RlZmluZSBNU0tfRE9D X0NUTDdfRE9DX0NUUkw3XzRfMwkJMHgxOAo+ID4gKyNkZWZpbmUgTVNLX0RPQ19DVEw3X0RPQ19D VFJMN18yXzAJCTB4MDcKPiA+ICsKPiA+ICsvKiBEb0MgOXRoIEN0bCwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0RPQ19DVEw4CQkJCTB4MDc2Ywo+ID4gKyNkZWZpbmUg QklUX0RPQ19DVEw4X0RPQ19DVFJMOF83CQlCSVQoNykKPiA+ICsjZGVmaW5lIE1TS19ET0NfQ1RM OF9ET0NfQ1RSTDhfNl80CQkweDcwCj4gPiArI2RlZmluZSBNU0tfRE9DX0NUTDhfRE9DX0NUUkw4 XzNfMgkJMHgwYwo+ID4gKyNkZWZpbmUgTVNLX0RPQ19DVEw4X0RPQ19DVFJMOF8xXzAJCTB4MDMK PiA+ICsKPiA+ICsvKiBEb0MgMTB0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsj ZGVmaW5lIFJFR19ET0NfQ1RMOQkJCQkweDA3NmQKPiA+ICsKPiA+ICsvKiBEb0MgMTF0aCBDdGws IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19ET0NfQ1RMQQkJCQkweDA3 NmUKPiA+ICsKPiA+ICsvKiBEb0MgMTV0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ ICsjZGVmaW5lIFJFR19ET0NfQ1RMRQkJCQkweDA3NzIKPiA+ICsjZGVmaW5lIEJJVF9ET0NfQ1RM RV9ET0NfQ1RSTEVfNwkJQklUKDcpCj4gPiArI2RlZmluZSBCSVRfRE9DX0NUTEVfRE9DX0NUUkxF XzYJCUJJVCg2KQo+ID4gKyNkZWZpbmUgTVNLX0RPQ19DVExFX0RPQ19DVFJMRV81XzQJCTB4MzAK PiA+ICsjZGVmaW5lIE1TS19ET0NfQ1RMRV9ET0NfQ1RSTEVfM18wCQkweDBmCj4gPiArCj4gPiAr LyogSW50ZXJydXB0IE1hc2sgMXN0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmlu ZSBSRUdfTUhMX0lOVF8wX01BU0sJCQkweDA1ODAKPiA+ICsKPiA+ICsvKiBJbnRlcnJ1cHQgTWFz ayAybmQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19NSExfSU5UXzFf TUFTSwkJCTB4MDU4MQo+ID4gKwo+ID4gKy8qIEludGVycnVwdCBNYXNrIDNyZCwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX01ITF9JTlRfMl9NQVNLCQkJMHgwNTgyCj4g PiArCj4gPiArLyogSW50ZXJydXB0IE1hc2sgNHRoLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4g PiArI2RlZmluZSBSRUdfTUhMX0lOVF8zX01BU0sJCQkweDA1ODMKPiA+ICsKPiA+ICsvKiBNRFQg UmVjZWl2ZSBUaW1lIE91dCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVH X01EVF9SQ1ZfVElNRU9VVAkJCTB4MDU4NAo+ID4gKwo+ID4gKy8qIE1EVCBUcmFuc21pdCBUaW1l IE91dCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX01EVF9YTUlUX1RJ TUVPVVQJCQkweDA1ODUKPiA+ICsKPiA+ICsvKiBNRFQgUmVjZWl2ZSBDb250cm9sLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfTURUX1JDVl9DVFJMCQkJMHgwNTg2Cj4g PiArI2RlZmluZSBCSVRfTURUX1JDVl9DVFJMX01EVF9SQ1ZfRU4JCUJJVCg3KQo+ID4gKyNkZWZp bmUgQklUX01EVF9SQ1ZfQ1RSTF9NRFRfREVMQVlfUkNWX0VOCUJJVCg2KQo+ID4gKyNkZWZpbmUg QklUX01EVF9SQ1ZfQ1RSTF9NRFRfUkZJRk9fT1ZFUl9XUl9FTglCSVQoNCkKPiA+ICsjZGVmaW5l IEJJVF9NRFRfUkNWX0NUUkxfTURUX1hGSUZPX09WRVJfV1JfRU4JQklUKDMpCj4gPiArI2RlZmlu ZSBCSVRfTURUX1JDVl9DVFJMX01EVF9ESVNBQkxFCQlCSVQoMikKPiA+ICsjZGVmaW5lIEJJVF9N RFRfUkNWX0NUUkxfTURUX1JGSUZPX0NMUl9BTEwJQklUKDEpCj4gPiArI2RlZmluZSBCSVRfTURU X1JDVl9DVFJMX01EVF9SRklGT19DTFJfQ1VSCUJJVCgwKQo+ID4gKwo+ID4gKy8qIE1EVCBSZWNl aXZlIFJlYWQgUG9ydCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX01E VF9SQ1ZfUkVBRF9QT1JUCQkJMHgwNTg3Cj4gPiArCj4gPiArLyogTURUIFRyYW5zbWl0IENvbnRy b2wsIGRlZmF1bHQgdmFsdWU6IDB4NzAgKi8KPiA+ICsjZGVmaW5lIFJFR19NRFRfWE1JVF9DVFJM CQkJMHgwNTg4Cj4gPiArI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9NRFRfWE1JVF9FTgkJQklU KDcpCj4gPiArI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9NRFRfWE1JVF9DTURfTUVSR0VfRU4J QklUKDYpCj4gPiArI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9NRFRfWE1JVF9GSVhFRF9CVVJT VF9MRU4gQklUKDUpCj4gPiArI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9NRFRfWE1JVF9GSVhF RF9BSUQJQklUKDQpCj4gPiArI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9NRFRfWE1JVF9TSU5H TEVfUlVOX0VOIEJJVCgzKQo+ID4gKyNkZWZpbmUgQklUX01EVF9YTUlUX0NUUkxfTURUX0NMUl9B Qk9SVF9XQUlUCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX01EVF9YTUlUX0NUUkxfTURUX1hGSUZP X0NMUl9BTEwJQklUKDEpCj4gPiArI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9NRFRfWEZJRk9f Q0xSX0NVUglCSVQoMCkKPiA+ICsKPiA+ICsvKiBNRFQgUmVjZWl2ZSBXUklURSBQb3J0LCBkZWZh dWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfTURUX1hNSVRfV1JJVEVfUE9SVAkJ CTB4MDU4OQo+ID4gKwo+ID4gKy8qIE1EVCBSRklGTyBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19NRFRfUkZJRk9fU1RBVAkJCTB4MDU4YQo+ID4gKyNkZWZp bmUgTVNLX01EVF9SRklGT19TVEFUX01EVF9SRklGT19DTlQJMHhlMAo+ID4gKyNkZWZpbmUgTVNL X01EVF9SRklGT19TVEFUX01EVF9SRklGT19DVVJfQllURV9DTlQgMHgxZgo+ID4gKwo+ID4gKy8q IE1EVCBYRklGTyBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4ODAgKi8KPiA+ICsjZGVmaW5lIFJF R19NRFRfWEZJRk9fU1RBVAkJCTB4MDU4Ygo+ID4gKyNkZWZpbmUgTVNLX01EVF9YRklGT19TVEFU X01EVF9YRklGT19MRVZFTF9BVkFJTCAweGUwCj4gPiArI2RlZmluZSBCSVRfTURUX1hGSUZPX1NU QVRfTURUX1hNSVRfUFJFX0hTX0VOCUJJVCg0KQo+ID4gKyNkZWZpbmUgTVNLX01EVF9YRklGT19T VEFUX01EVF9XUklURV9CVVJTVF9MRU4JMHgwZgo+ID4gKwo+ID4gKy8qIE1EVCBJbnRlcnJ1cHQg MCwgZGVmYXVsdCB2YWx1ZTogMHgwYyAqLwo+ID4gKyNkZWZpbmUgUkVHX01EVF9JTlRfMAkJCQkw eDA1OGMKPiA+ICsjZGVmaW5lIEJJVF9NRFRfUkZJRk9fREFUQV9SRFkJCQlCSVQoMCkKPiA+ICsj ZGVmaW5lIEJJVF9NRFRfSURMRV9BRlRFUl9IQVdCX0RJU0FCTEUJCUJJVCgyKQo+ID4gKyNkZWZp bmUgQklUX01EVF9YRklGT19FTVBUWQkJCUJJVCgzKQo+ID4gKwo+ID4gKy8qIE1EVCBJbnRlcnJ1 cHQgMCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfTURUX0lO VF8wX01BU0sJCQkweDA1OGQKPiA+ICsKPiA+ICsvKiBNRFQgSW50ZXJydXB0IDEsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19NRFRfSU5UXzEJCQkJMHgwNThlCj4gPiAr I2RlZmluZSBCSVRfTURUX1JDVl9USU1FT1VUCQkJQklUKDApCj4gPiArI2RlZmluZSBCSVRfTURU X1JDVl9TTV9BQk9SVF9QS1RfUkNWRAkJQklUKDEpCj4gPiArI2RlZmluZSBCSVRfTURUX1JDVl9T TV9FUlJPUgkJCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX01EVF9YTUlUX1RJTUVPVVQJCQlCSVQo NSkKPiA+ICsjZGVmaW5lIEJJVF9NRFRfWE1JVF9TTV9BQk9SVF9QS1RfUkNWRAkJQklUKDYpCj4g PiArI2RlZmluZSBCSVRfTURUX1hNSVRfU01fRVJST1IJCQlCSVQoNykKPiA+ICsKPiA+ICsvKiBN RFQgSW50ZXJydXB0IDEgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUg UkVHX01EVF9JTlRfMV9NQVNLCQkJMHgwNThmCj4gPiArCj4gPiArLyogQ0JVUyBWZW5kb3IgSUQs IGRlZmF1bHQgdmFsdWU6IDB4MDEgKi8KPiA+ICsjZGVmaW5lIFJFR19DQlVTX1ZFTkRPUl9JRAkJ CTB4MDU5MAo+ID4gKwo+ID4gKy8qIENCVVMgQ29ubmVjdGlvbiBTdGF0dXMsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19DQlVTX1NUQVRVUwkJCQkweDA1OTEKPiA+ICsj ZGVmaW5lIEJJVF9DQlVTX1NUQVRVU19NSExfQ0FCTEVfUFJFU0VOVAlCSVQoNCkKPiA+ICsjZGVm aW5lIEJJVF9DQlVTX1NUQVRVU19NU0NfSEJfU1VDQ0VTUwkJQklUKDMpCj4gPiArI2RlZmluZSBC SVRfQ0JVU19TVEFUVVNfQ0JVU19IUEQJCUJJVCgyKQo+ID4gKyNkZWZpbmUgQklUX0NCVVNfU1RB VFVTX01ITF9NT0RFCQlCSVQoMSkKPiA+ICsjZGVmaW5lIEJJVF9DQlVTX1NUQVRVU19DQlVTX0NP Tk5FQ1RFRAkJQklUKDApCj4gPiArCj4gPiArLyogQ0JVUyBJbnRlcnJ1cHQgMXN0LCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfQ0JVU19JTlRfMAkJCQkweDA1OTIKPiA+ ICsjZGVmaW5lIEJJVF9DQlVTX01TQ19NVF9ET05FX05BQ0sJCUJJVCg3KQo+ID4gKyNkZWZpbmUg QklUX0NCVVNfTVNDX01SX1NFVF9JTlQJCQlCSVQoNikKPiA+ICsjZGVmaW5lIEJJVF9DQlVTX01T Q19NUl9XUklURV9CVVJTVAkJQklUKDUpCj4gPiArI2RlZmluZSBCSVRfQ0JVU19NU0NfTVJfTVND X01TRwkJCUJJVCg0KQo+ID4gKyNkZWZpbmUgQklUX0NCVVNfTVNDX01SX1dSSVRFX1NUQVQJCUJJ VCgzKQo+ID4gKyNkZWZpbmUgQklUX0NCVVNfSFBEX0NIRwkJCUJJVCgyKQo+ID4gKyNkZWZpbmUg QklUX0NCVVNfTVNDX01UX0RPTkUJCQlCSVQoMSkKPiA+ICsjZGVmaW5lIEJJVF9DQlVTX0NOWF9D SEcJCQlCSVQoMCkKPiA+ICsKPiA+ICsvKiBDQlVTIEludGVycnVwdCBNYXNrIDFzdCwgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0NCVVNfSU5UXzBfTUFTSwkJCTB4MDU5 Mwo+ID4gKwo+ID4gKy8qIENCVVMgSW50ZXJydXB0IDJuZCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq Lwo+ID4gKyNkZWZpbmUgUkVHX0NCVVNfSU5UXzEJCQkJMHgwNTk0Cj4gPiArI2RlZmluZSBCSVRf Q0JVU19DTURfQUJPUlQJCQlCSVQoNikKPiA+ICsjZGVmaW5lIEJJVF9DQlVTX01TQ19BQk9SVF9S Q1ZECQkJQklUKDMpCj4gPiArI2RlZmluZSBCSVRfQ0JVU19ERENfQUJPUlQJCQlCSVQoMikKPiA+ ICsjZGVmaW5lIEJJVF9DQlVTX0NFQ19BQk9SVAkJCUJJVCgxKQo+ID4gKwo+ID4gKy8qIENCVVMg SW50ZXJydXB0IE1hc2sgMm5kLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBS RUdfQ0JVU19JTlRfMV9NQVNLCQkJMHgwNTk1Cj4gPiArCj4gPiArLyogQ0JVUyBEREMgQWJvcnQg SW50ZXJydXB0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfRERDX0FC T1JUX0lOVAkJCTB4MDU5OAo+ID4gKwo+ID4gKy8qIENCVVMgRERDIEFib3J0IEludGVycnVwdCBN YXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfRERDX0FCT1JUX0lO VF9NQVNLCQkJMHgwNTk5Cj4gPiArCj4gPiArLyogQ0JVUyBNU0MgUmVxdWVzdGVyIEFib3J0IElu dGVycnVwdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX01TQ19NVF9B Qk9SVF9JTlQJCQkweDA1OWEKPiA+ICsKPiA+ICsvKiBDQlVTIE1TQyBSZXF1ZXN0ZXIgQWJvcnQg SW50ZXJydXB0IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19N U0NfTVRfQUJPUlRfSU5UX01BU0sJCTB4MDU5Ygo+ID4gKwo+ID4gKy8qIENCVVMgTVNDIFJlc3Bv bmRlciBBYm9ydCBJbnRlcnJ1cHQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5l IFJFR19NU0NfTVJfQUJPUlRfSU5UCQkJMHgwNTljCj4gPiArCj4gPiArLyogQ0JVUyBNU0MgUmVz cG9uZGVyIEFib3J0IEludGVycnVwdCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiAr I2RlZmluZSBSRUdfTVNDX01SX0FCT1JUX0lOVF9NQVNLCQkweDA1OWQKPiA+ICsKPiA+ICsvKiBD QlVTIFJYIERJU0NPVkVSWSBpbnRlcnJ1cHQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsj ZGVmaW5lIFJFR19DQlVTX1JYX0RJU0NfSU5UMAkJCTB4MDU5ZQo+ID4gKwo+ID4gKy8qIENCVVMg UlggRElTQ09WRVJZIEludGVycnVwdCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiAr I2RlZmluZSBSRUdfQ0JVU19SWF9ESVNDX0lOVDBfTUFTSwkJMHgwNTlmCj4gPiArCj4gPiArLyog Q0JVU19MaW5rX0xheWVyIENvbnRyb2wgIzgsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsj ZGVmaW5lIFJFR19DQlVTX0xJTktfQ1RSTF84CQkJMHgwNWE3Cj4gPiArCj4gPiArLyogTURUIFN0 YXRlIE1hY2hpbmUgU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBS RUdfTURUX1NNX1NUQVQJCQkJMHgwNWI1Cj4gPiArI2RlZmluZSBNU0tfTURUX1NNX1NUQVRfTURU X1JDVl9TVEFURQkJMHhmMAo+ID4gKyNkZWZpbmUgTVNLX01EVF9TTV9TVEFUX01EVF9YTUlUX1NU QVRFCQkweDBmCj4gPiArCj4gPiArLyogQ0JVUyBNU0MgY29tbWFuZCB0cmlnZ2VyLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfTVNDX0NPTU1BTkRfU1RBUlQJCQkweDA1 YjgKPiA+ICsjZGVmaW5lIEJJVF9NU0NfQ09NTUFORF9TVEFSVF9ERUJVRwkJQklUKDUpCj4gPiAr I2RlZmluZSBCSVRfTVNDX0NPTU1BTkRfU1RBUlRfV1JJVEVfQlVSU1QJQklUKDQpCj4gPiArI2Rl ZmluZSBCSVRfTVNDX0NPTU1BTkRfU1RBUlRfV1JJVEVfU1RBVAlCSVQoMykKPiA+ICsjZGVmaW5l IEJJVF9NU0NfQ09NTUFORF9TVEFSVF9SRUFEX0RFVkNBUAlCSVQoMikKPiA+ICsjZGVmaW5lIEJJ VF9NU0NfQ09NTUFORF9TVEFSVF9NU0NfTVNHCQlCSVQoMSkKPiA+ICsjZGVmaW5lIEJJVF9NU0Nf Q09NTUFORF9TVEFSVF9QRUVSCQlCSVQoMCkKPiA+ICsKPiA+ICsvKiBDQlVTIE1TQyBDb21tYW5k L09mZnNldCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX01TQ19DTURf T1JfT0ZGU0VUCQkJMHgwNWI5Cj4gPiArCj4gPiArLyogQ0JVUyBNU0MgVHJhbnNtaXQgRGF0YSAq Lwo+ID4gKyNkZWZpbmUgUkVHX01TQ18xU1RfVFJBTlNNSVRfREFUQQkJMHgwNWJhCj4gPiArI2Rl ZmluZSBSRUdfTVNDXzJORF9UUkFOU01JVF9EQVRBCQkweDA1YmIKPiA+ICsKPiA+ICsvKiBDQlVT IE1TQyBSZXF1ZXN0ZXIgUmVjZWl2ZWQgRGF0YSAqLwo+ID4gKyNkZWZpbmUgUkVHX01TQ19NVF9S Q1ZEX0RBVEEwCQkJMHgwNWJjCj4gPiArI2RlZmluZSBSRUdfTVNDX01UX1JDVkRfREFUQTEJCQkw eDA1YmQKPiA+ICsKPiA+ICsvKiBDQlVTIE1TQyBSZXNwb25kZXIgTVNDX01TRyBSZWNlaXZlZCBE YXRhICovCj4gPiArI2RlZmluZSBSRUdfTVNDX01SX01TQ19NU0dfUkNWRF8xU1RfREFUQQkweDA1 YmYKPiA+ICsjZGVmaW5lIFJFR19NU0NfTVJfTVNDX01TR19SQ1ZEXzJORF9EQVRBCTB4MDVjMAo+ ID4gKwo+ID4gKy8qIENCVVMgTVNDIEhlYXJ0YmVhdCBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAw eDI3ICovCj4gPiArI2RlZmluZSBSRUdfTVNDX0hFQVJUQkVBVF9DVFJMCQkJMHgwNWM0Cj4gPiAr I2RlZmluZSBCSVRfTVNDX0hFQVJUQkVBVF9DVFJMX01TQ19IQl9FTglCSVQoNykKPiA+ICsjZGVm aW5lIE1TS19NU0NfSEVBUlRCRUFUX0NUUkxfTVNDX0hCX0ZBSUxfTElNSVQgMHg3MAo+ID4gKyNk ZWZpbmUgTVNLX01TQ19IRUFSVEJFQVRfQ1RSTF9NU0NfSEJfUEVSSU9EX01TQiAweDBmCj4gPiAr Cj4gPiArLyogQ0JVUyBNU0MgQ29tcGF0aWJpbGl0eSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAw eDAyICovCj4gPiArI2RlZmluZSBSRUdfQ0JVU19NU0NfQ09NUEFUX0NUUkwJCTB4MDVjNwo+ID4g KyNkZWZpbmUgQklUX0NCVVNfTVNDX0NPTVBBVF9DVFJMX1hERVZDQVBfRU4JQklUKDcpCj4gPiAr I2RlZmluZSBCSVRfQ0JVU19NU0NfQ09NUEFUX0NUUkxfRElTQUJMRV9NU0NfT05fQ0JVUyBCSVQo NikKPiA+ICsjZGVmaW5lIEJJVF9DQlVTX01TQ19DT01QQVRfQ1RSTF9ESVNBQkxFX0REQ19PTl9D QlVTIEJJVCg1KQo+ID4gKyNkZWZpbmUgQklUX0NCVVNfTVNDX0NPTVBBVF9DVFJMX0RJU0FCTEVf R0VUX0REQ19FUlJPUkNPREUgQklUKDMpCj4gPiArI2RlZmluZSBCSVRfQ0JVU19NU0NfQ09NUEFU X0NUUkxfRElTQUJMRV9HRVRfVlMxX0VSUk9SQ09ERSBCSVQoMikKPiA+ICsKPiA+ICsvKiBDQlVT MyBDb252ZXJ0ZXIgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgyNCAqLwo+ID4gKyNkZWZpbmUg UkVHX0NCVVMzX0NOVlQJCQkJMHgwNWRjCj4gPiArI2RlZmluZSBNU0tfQ0JVUzNfQ05WVF9DQlVT M19SRVRSWUxNVAkJMHhmMAo+ID4gKyNkZWZpbmUgTVNLX0NCVVMzX0NOVlRfQ0JVUzNfUEVFUlRP VVRfU0VMCTB4MGMKPiA+ICsjZGVmaW5lIEJJVF9DQlVTM19DTlZUX1RFQVJDQlVTX0VOCQlCSVQo MSkKPiA+ICsjZGVmaW5lIEJJVF9DQlVTM19DTlZUX0NCVVMzQ05WVF9FTgkJQklUKDApCj4gPiAr Cj4gPiArLyogRGlzY292ZXJ5IENvbnRyb2wxLCBkZWZhdWx0IHZhbHVlOiAweDI0ICovCj4gPiAr I2RlZmluZSBSRUdfRElTQ19DVFJMMQkJCQkweDA1ZTAKPiA+ICsjZGVmaW5lIEJJVF9ESVNDX0NU UkwxX0NCVVNfSU5UUl9FTgkJQklUKDcpCj4gPiArI2RlZmluZSBCSVRfRElTQ19DVFJMMV9IQl9P TkxZCQkJQklUKDYpCj4gPiArI2RlZmluZSBNU0tfRElTQ19DVFJMMV9ESVNDX0FUVAkJCTB4MzAK PiA+ICsjZGVmaW5lIE1TS19ESVNDX0NUUkwxX0RJU0NfQ1lDCQkJMHgwYwo+ID4gKyNkZWZpbmUg QklUX0RJU0NfQ1RSTDFfRElTQ19FTgkJCUJJVCgwKQo+ID4gKwo+ID4gKyNkZWZpbmUgVkFMX1BV UF9PRkYJCQkJMAo+ID4gKyNkZWZpbmUgVkFMX1BVUF8yMEsJCQkJMQo+ID4gKyNkZWZpbmUgVkFM X1BVUF81SwkJCQkyCj4gPiArCj4gPiArLyogRGlzY292ZXJ5IENvbnRyb2w0LCBkZWZhdWx0IHZh bHVlOiAweDgwICovCj4gPiArI2RlZmluZSBSRUdfRElTQ19DVFJMNAkJCQkweDA1ZTMKPiA+ICsj ZGVmaW5lIE1TS19ESVNDX0NUUkw0X0NCVVNESVNDX1BVUF9TRUwJCTB4YzAKPiA+ICsjZGVmaW5l IE1TS19ESVNDX0NUUkw0X0NCVVNJRExFX1BVUF9TRUwJCTB4MzAKPiA+ICsjZGVmaW5lIFZBTF9E SVNDX0NUUkw0KHB1cF9kaXNjLCBwdXBfaWRsZSkgKCgocHVwX2Rpc2MpIDw8IDYpIHwgKHB1cF9p ZGxlIDw8IDQpKQo+ID4gKwo+ID4gKy8qIERpc2NvdmVyeSBDb250cm9sNSwgZGVmYXVsdCB2YWx1 ZTogMHgwMyAqLwo+ID4gKyNkZWZpbmUgUkVHX0RJU0NfQ1RSTDUJCQkJMHgwNWU0Cj4gPiArI2Rl ZmluZSBCSVRfRElTQ19DVFJMNV9EU01fT1ZSSURFCQlCSVQoMykKPiA+ICsjZGVmaW5lIE1TS19E SVNDX0NUUkw1X0NCVVNNSExfUFVQX1NFTAkJMHgwMwo+ID4gKwo+ID4gKy8qIERpc2NvdmVyeSBD b250cm9sOCwgZGVmYXVsdCB2YWx1ZTogMHg4MSAqLwo+ID4gKyNkZWZpbmUgUkVHX0RJU0NfQ1RS TDgJCQkJMHgwNWU3Cj4gPiArI2RlZmluZSBCSVRfRElTQ19DVFJMOF9OT01ITElOVF9DTFJfQllQ QVNTCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDhfREVMQVlfQ0JVU19JTlRSX0VO CUJJVCgwKQo+ID4gKwo+ID4gKy8qIERpc2NvdmVyeSBDb250cm9sOSwgZGVmYXVsdCB2YWx1ZTog MHg1NCAqLwo+ID4gKyNkZWZpbmUgUkVHX0RJU0NfQ1RSTDkJCQkweDA1ZTgKPiA+ICsjZGVmaW5l IEJJVF9ESVNDX0NUUkw5X01ITDNfUlNFTl9CWVAJCUJJVCg3KQo+ID4gKyNkZWZpbmUgQklUX0RJ U0NfQ1RSTDlfTUhMM0RJU0NfRU4JCUJJVCg2KQo+ID4gKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDlf V0FLRV9EUlZGTFQJCUJJVCg0KQo+ID4gKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDlfTk9NSExfRVNU CQlCSVQoMykKPiA+ICsjZGVmaW5lIEJJVF9ESVNDX0NUUkw5X0RJU0NfUFVMU0VfUFJPQ0VFRAlC SVQoMikKPiA+ICsjZGVmaW5lIEJJVF9ESVNDX0NUUkw5X1dBS0VfUFVMU0VfQllQQVNTCUJJVCgx KQo+ID4gKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDlfVkJVU19PVVRQVVRfQ0FQQUJJTElUWV9TUkMg QklUKDApCj4gPiArCj4gPiArLyogRGlzY292ZXJ5IFN0YXR1czEsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19ESVNDX1NUQVQxCQkJCTB4MDVlYgo+ID4gKyNkZWZpbmUg QklUX0RJU0NfU1RBVDFfUFNNX09WUklERQkJQklUKDUpCj4gPiArI2RlZmluZSBNU0tfRElTQ19T VEFUMV9ESVNDX1NNCQkJMHgwZgo+ID4gKwo+ID4gKy8qIERpc2NvdmVyeSBTdGF0dXMyLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCj4gPiArI2RlZmluZSBSRUdfRElTQ19TVEFUMgkJCQkweDA1ZWMK PiA+ICsjZGVmaW5lIEJJVF9ESVNDX1NUQVQyX0NCVVNfT0VfUE9MCQlCSVQoNikKPiA+ICsjZGVm aW5lIEJJVF9ESVNDX1NUQVQyX0NCVVNfU0FUVVMJCUJJVCg1KQo+ID4gKyNkZWZpbmUgQklUX0RJ U0NfU1RBVDJfUlNFTgkJCUJJVCg0KQo+ID4gKwo+ID4gKyNkZWZpbmUgTVNLX0RJU0NfU1RBVDJf TUhMX1ZSU04JCQkweDBjCj4gPiArI2RlZmluZSBWQUxfRElTQ19TVEFUMl9ERUZBVUxUCQkJMHgw MAo+ID4gKyNkZWZpbmUgVkFMX0RJU0NfU1RBVDJfTUhMMV8yCQkJMHgwNAo+ID4gKyNkZWZpbmUg VkFMX0RJU0NfU1RBVDJfTUhMMwkJCTB4MDgKPiA+ICsjZGVmaW5lIFZBTF9ESVNDX1NUQVQyX1JF U0VSVkVECQkJMHgwYwo+ID4gKwo+ID4gKyNkZWZpbmUgTVNLX0RJU0NfU1RBVDJfUkdORAkJCTB4 MDMKPiA+ICsjZGVmaW5lIFZBTF9SR05EX09QRU4JCQkJMHgwMAo+ID4gKyNkZWZpbmUgVkFMX1JH TkRfMksJCQkJMHgwMQo+ID4gKyNkZWZpbmUgVkFMX1JHTkRfMUsJCQkJMHgwMgo+ID4gKyNkZWZp bmUgVkFMX1JHTkRfU0hPUlQJCQkJMHgwMwo+ID4gKwo+ID4gKy8qIEludGVycnVwdCBDQlVTX3Jl ZzEgSU5UUjAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KPiA+ICsjZGVmaW5lIFJFR19DQlVTX0RJ U0NfSU5UUjAJCQkweDA1ZWQKPiA+ICsjZGVmaW5lIEJJVF9SR05EX1JFQURZX0lOVAkJCUJJVCg2 KQo+ID4gKyNkZWZpbmUgQklUX0NCVVNfTUhMMTJfRElTQ09OX0lOVAkJQklUKDUpCj4gPiArI2Rl ZmluZSBCSVRfQ0JVU19NSEwzX0RJU0NPTl9JTlQJCUJJVCg0KQo+ID4gKyNkZWZpbmUgQklUX05P VF9NSExfRVNUX0lOVAkJCUJJVCgzKQo+ID4gKyNkZWZpbmUgQklUX01ITF9FU1RfSU5UCQkJCUJJ VCgyKQo+ID4gKyNkZWZpbmUgQklUX01ITDNfRVNUX0lOVAkJCUJJVCgxKQo+ID4gKyNkZWZpbmUg VkFMX0NCVVNfTUhMX0RJU0NPTiAoQklUX0NCVVNfTUhMMTJfRElTQ09OX0lOVCBcCj4gPiArCQkJ ICAgIHwgQklUX0NCVVNfTUhMM19ESVNDT05fSU5UIFwKPiA+ICsJCQkgICAgfCBCSVRfTk9UX01I TF9FU1RfSU5UKQo+ID4gKwo+ID4gKy8qIEludGVycnVwdCBDQlVTX3JlZzEgSU5UUjAgTWFzaywg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwo+ID4gKyNkZWZpbmUgUkVHX0NCVVNfRElTQ19JTlRSMF9N QVNLCQkweDA1ZWUKPiA+ICsKPiA+ICsjZW5kaWYgLyogX19TSUxfU0lJODYyMF9IX18gKi8KPiA+ IAo+IAo+IC0tIAo+IFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVy IG9mIENvZGUgQXVyb3JhIEZvcnVtLAo+IGEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZl IFByb2plY3QKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jw b3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK