From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: [PATCH 2nd RESEND v2 3/3] drm/bridge: add Silicon Image SiI8620 driver Date: Wed, 14 Sep 2016 10:33:47 +0200 Message-ID: <1473842027-21670-4-git-send-email-a.hajda@samsung.com> References: <1473842027-21670-1-git-send-email-a.hajda@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 16F766E222 for ; Wed, 14 Sep 2016 08:34:07 +0000 (UTC) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0ODH003UDJSRK820@mailout2.w1.samsung.com> for dri-devel@lists.freedesktop.org; Wed, 14 Sep 2016 09:34:04 +0100 (BST) In-reply-to: <1473842027-21670-1-git-send-email-a.hajda@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "open list:DRM DRIVERS" , Inki Dae , Daniel Vetter Cc: Marek Szyprowski , Bartlomiej Zolnierkiewicz List-Id: dri-devel@lists.freedesktop.org U2lJODYyMCB0cmFuc21pdHRlciBjb252ZXJ0cyBlVE1EUy9IRE1JIHNpZ25hbCB0byBNSEwgMy4w LgpJdCBpcyBjb250cm9sbGVkIHZpYSBJMkMgYnVzLiBJdHMgaW50ZXJhY3Rpb24gd2l0aCBvdGhl cgpkZXZpY2VzIGluIHZpZGVvIHBpcGVsaW5lIGlzIHBlcmZvcm1lZCBtYWlubHkgb24gSFcgbGV2 ZWwuClRoZSBvbmx5IGludGVyYWN0aW9uIGl0IGRvZXMgb24gZGV2aWNlIGRyaXZlciBsZXZlbCBp cwpmaWx0ZXJpbmctb3V0IHVuc3VwcG9ydGVkIHZpZGVvIG1vZGVzLCBpdCBleHBvc2VzIGRybV9i cmlkZ2UKaW50ZXJmYWNlIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24uCgpTaWduZWQtb2ZmLWJ5 OiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvS2NvbmZpZyAgICAgICB8ICAgIDcgKwogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9N YWtlZmlsZSAgICAgIHwgICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIw LmMgfCAxNTY4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1 L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuaCB8IDE1MTcgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzA5MyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5oCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9LY29uZmlnCmluZGV4IGI1OTBlNjcuLmU3ZmIxNzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9icmlkZ2UvS2NvbmZpZworKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL0tjb25maWcK QEAgLTUwLDYgKzUwLDEzIEBAIGNvbmZpZyBEUk1fUEFSQURFX1BTODYyMgogCS0tLWhlbHAtLS0K IAkgIFBhcmFkZSBlRFAtTFZEUyBicmlkZ2UgY2hpcCBkcml2ZXIuCiAKK2NvbmZpZyBEUk1fU0lM X1NJSTg2MjAKKwl0cmlzdGF0ZSAiU2lsaWNvbiBJbWFnZSBTSUk4NjIwIEhETUkvTUhMIGJyaWRn ZSIKKwlkZXBlbmRzIG9uIE9GCisJc2VsZWN0IERSTV9LTVNfSEVMUEVSCisJaGVscAorCSAgU2ls aWNvbiBJbWFnZSBTSUk4NjIwIEhETUkvTUhMIGJyaWRnZSBjaGlwIGRyaXZlci4KKwogY29uZmln IERSTV9TSUk5MDJYCiAJdHJpc3RhdGUgIlNpbGljb24gSW1hZ2Ugc2lpOTAyeCBSR0IvSERNSSBi cmlkZ2UiCiAJZGVwZW5kcyBvbiBPRgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvTWFrZWZpbGUKaW5kZXggZWZkYjA3 ZS4uMzA0Y2Y5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZQor KysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlCkBAIC01LDYgKzUsNyBAQCBvYmot JChDT05GSUdfRFJNX0RXX0hETUkpICs9IGR3LWhkbWkubwogb2JqLSQoQ09ORklHX0RSTV9EV19I RE1JX0FIQl9BVURJTykgKz0gZHctaGRtaS1haGItYXVkaW8ubwogb2JqLSQoQ09ORklHX0RSTV9O WFBfUFROMzQ2MCkgKz0gbnhwLXB0bjM0NjAubwogb2JqLSQoQ09ORklHX0RSTV9QQVJBREVfUFM4 NjIyKSArPSBwYXJhZGUtcHM4NjIyLm8KK29iai0kKENPTkZJR19EUk1fU0lMX1NJSTg2MjApICs9 IHNpbC1zaWk4NjIwLm8KIG9iai0kKENPTkZJR19EUk1fU0lJOTAyWCkgKz0gc2lpOTAyeC5vCiBv YmotJChDT05GSUdfRFJNX1RPU0hJQkFfVEMzNTg3NjcpICs9IHRjMzU4NzY3Lm8KIG9iai0kKENP TkZJR19EUk1fQU5BTE9HSVhfRFApICs9IGFuYWxvZ2l4LwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwt c2lpODYyMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMjczYzcKLS0t IC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmMKQEAg LTAsMCArMSwxNTY4IEBACisvKgorICogRHJpdmVyIGZvciBTaWxpY29uIEltYWdlIFNpSTg2MjAg TW9iaWxlIEhEIFRyYW5zbWl0dGVyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE1LCBTYW1zdW5n IEVsZWN0cm9uaWNzIENvLiwgTHRkLgorICogQW5kcnplaiBIYWpkYSA8YS5oYWpkYUBzYW1zdW5n LmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpbmNsdWRlIDxkcm0vZHJtX2Ny dGMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KKworI2luY2x1ZGUgPGxpbnV4L2Nsay5o PgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9jb25zdW1l ci5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5o PgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2lu Y2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9taGwuaD4KKyNpbmNsdWRlIDxs aW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4 L3JlZ3VsYXRvci9jb25zdW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKworI2luY2x1 ZGUgInNpbC1zaWk4NjIwLmgiCisKKyNkZWZpbmUgVkFMX1JYX0hETUlfQ1RSTDJfREVGVkFMCVZB TF9SWF9IRE1JX0NUUkwyX0lETEVfQ05UKDMpCisKK2VudW0gc2lpODYyMF9tb2RlIHsKKwlDTV9E SVNDT05ORUNURUQsCisJQ01fRElTQ09WRVJZLAorCUNNX01ITDEsCisJQ01fTUhMMywKKwlDTV9F Q0JVU19TCit9OworCitlbnVtIHNpaTg2MjBfc2lua190eXBlIHsKKwlTSU5LX05PTkUsCisJU0lO S19IRE1JLAorCVNJTktfRFZJCit9OworCitlbnVtIHNpaTg2MjBfbXRfc3RhdGUgeworCU1UX1NU QVRFX1JFQURZLAorCU1UX1NUQVRFX0JVU1ksCisJTVRfU1RBVEVfRE9ORQorfTsKKworc3RydWN0 IHNpaTg2MjAgeworCXN0cnVjdCBkcm1fYnJpZGdlIGJyaWRnZTsKKwlzdHJ1Y3QgZGV2aWNlICpk ZXY7CisJc3RydWN0IGNsayAqY2xrX3h0YWw7CisJc3RydWN0IGdwaW9fZGVzYyAqZ3Bpb19yZXNl dDsKKwlzdHJ1Y3QgZ3Bpb19kZXNjICpncGlvX2ludDsKKwlzdHJ1Y3QgcmVndWxhdG9yX2J1bGtf ZGF0YSBzdXBwbGllc1syXTsKKwlzdHJ1Y3QgbXV0ZXggbG9jazsgLyogY29udGV4dCBsb2NrLCBw cm90ZWN0cyBmaWVsZHMgYmVsb3cgKi8KKwlpbnQgZXJyb3I7CisJZW51bSBzaWk4NjIwX21vZGUg bW9kZTsKKwllbnVtIHNpaTg2MjBfc2lua190eXBlIHNpbmtfdHlwZTsKKwl1OCBjYnVzX3N0YXR1 czsKKwl1OCBzdGF0W01ITF9EU1RfU0laRV07CisJdTggeHN0YXRbTUhMX1hEU19TSVpFXTsKKwl1 OCBkZXZjYXBbTUhMX0RDQVBfU0laRV07CisJdTggeGRldmNhcFtNSExfWERDX1NJWkVdOworCXU4 IGF2aWZbMTldOworCXN0cnVjdCBlZGlkICplZGlkOworCXVuc2lnbmVkIGludCBnZW4yX3dyaXRl X2J1cnN0OjE7CisJZW51bSBzaWk4NjIwX210X3N0YXRlIG10X3N0YXRlOworCXN0cnVjdCBsaXN0 X2hlYWQgbXRfcXVldWU7Cit9OworCitzdHJ1Y3Qgc2lpODYyMF9tdF9tc2c7CisKK3R5cGVkZWYg dm9pZCAoKnNpaTg2MjBfbXRfbXNnX2NiKShzdHJ1Y3Qgc2lpODYyMCAqY3R4LAorCQkJCSAgc3Ry dWN0IHNpaTg2MjBfbXRfbXNnICptc2cpOworCitzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cgeworCXN0 cnVjdCBsaXN0X2hlYWQgbm9kZTsKKwl1OCByZWdbNF07CisJdTggcmV0OworCXNpaTg2MjBfbXRf bXNnX2NiIHNlbmQ7CisJc2lpODYyMF9tdF9tc2dfY2IgcmVjdjsKK307CisKK3N0YXRpYyBjb25z dCB1OCBzaWk4NjIwX2kyY19wYWdlW10gPSB7CisJMHgzOSwgLyogTWFpbiBTeXN0ZW0gKi8KKwkw eDNkLCAvKiBURE0gYW5kIEhTSUMgKi8KKwkweDQ5LCAvKiBUTURTIFJlY2VpdmVyLCBNSEwgRURJ RCAqLworCTB4NGQsIC8qIGVNU0MsIEhEQ1AsIEhTSUMgKi8KKwkweDVkLCAvKiBNSEwgU3BlYyAq LworCTB4NjQsIC8qIE1ITCBDQlVTICovCisJMHg1OSwgLyogSGFyZHdhcmUgVFBJIChUcmFuc21p dHRlciBQcm9ncmFtbWluZyBJbnRlcmZhY2UpICovCisJMHg2MSwgLyogZUNCVVMtUywgZUNCVVMt RCAqLworfTsKKworc3RhdGljIHZvaWQgc2lpODYyMF9mZXRjaF9lZGlkKHN0cnVjdCBzaWk4NjIw ICpjdHgpOworc3RhdGljIHZvaWQgc2lpODYyMF9zZXRfdXBzdHJlYW1fZWRpZChzdHJ1Y3Qgc2lp ODYyMCAqY3R4KTsKK3N0YXRpYyB2b2lkIHNpaTg2MjBfZW5hYmxlX2hwZChzdHJ1Y3Qgc2lpODYy MCAqY3R4KTsKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbWhsX2Rpc2Nvbm5lY3RlZChzdHJ1Y3Qgc2lp ODYyMCAqY3R4KTsKKworc3RhdGljIGludCBzaWk4NjIwX2NsZWFyX2Vycm9yKHN0cnVjdCBzaWk4 NjIwICpjdHgpCit7CisJaW50IHJldCA9IGN0eC0+ZXJyb3I7CisKKwljdHgtPmVycm9yID0gMDsK KwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3JlYWRfYnVmKHN0cnVjdCBz aWk4NjIwICpjdHgsIHUxNiBhZGRyLCB1OCAqYnVmLCBpbnQgbGVuKQoreworCXN0cnVjdCBkZXZp Y2UgKmRldiA9IGN0eC0+ZGV2OworCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB0b19pMmNf Y2xpZW50KGRldik7CisJdTggZGF0YSA9IGFkZHI7CisJc3RydWN0IGkyY19tc2cgbXNnW10gPSB7 CisJCXsKKwkJCS5hZGRyID0gc2lpODYyMF9pMmNfcGFnZVthZGRyID4+IDhdLAorCQkJLmZsYWdz ID0gY2xpZW50LT5mbGFncywKKwkJCS5sZW4gPSAxLAorCQkJLmJ1ZiA9ICZkYXRhCisJCX0sCisJ CXsKKwkJCS5hZGRyID0gc2lpODYyMF9pMmNfcGFnZVthZGRyID4+IDhdLAorCQkJLmZsYWdzID0g Y2xpZW50LT5mbGFncyB8IEkyQ19NX1JELAorCQkJLmxlbiA9IGxlbiwKKwkJCS5idWYgPSBidWYK KwkJfSwKKwl9OworCWludCByZXQ7CisKKwlpZiAoY3R4LT5lcnJvcikKKwkJcmV0dXJuOworCisJ cmV0ID0gaTJjX3RyYW5zZmVyKGNsaWVudC0+YWRhcHRlciwgbXNnLCAyKTsKKwlkZXZfZGJnKGRl diwgInJlYWQgYXQgJTA0eDogJSpwaCwgJWRcbiIsIGFkZHIsIGxlbiwgYnVmLCByZXQpOworCisJ aWYgKHJldCAhPSAyKSB7CisJCWRldl9lcnIoZGV2LCAiUmVhZCBhdCAlIzA2eCBvZiAlZCBieXRl cyBmYWlsZWQgd2l0aCBjb2RlICVkLlxuIiwKKwkJCWFkZHIsIGxlbiwgcmV0KTsKKwkJY3R4LT5l cnJvciA9IHJldCA8IDAgPyByZXQgOiAtRUlPOworCX0KK30KKworc3RhdGljIHU4IHNpaTg2MjBf cmVhZGIoc3RydWN0IHNpaTg2MjAgKmN0eCwgdTE2IGFkZHIpCit7CisJdTggcmV0OworCisJc2lp ODYyMF9yZWFkX2J1ZihjdHgsIGFkZHIsICZyZXQsIDEpOworCXJldHVybiByZXQ7Cit9CisKK3N0 YXRpYyB2b2lkIHNpaTg2MjBfd3JpdGVfYnVmKHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiBhZGRy LCBjb25zdCB1OCAqYnVmLAorCQkJICAgICAgaW50IGxlbikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpk ZXYgPSBjdHgtPmRldjsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gdG9faTJjX2NsaWVu dChkZXYpOworCXU4IGRhdGFbMl07CisJc3RydWN0IGkyY19tc2cgbXNnID0geworCQkuYWRkciA9 IHNpaTg2MjBfaTJjX3BhZ2VbYWRkciA+PiA4XSwKKwkJLmZsYWdzID0gY2xpZW50LT5mbGFncywK KwkJLmxlbiA9IGxlbiArIDEsCisJfTsKKwlpbnQgcmV0OworCisJaWYgKGN0eC0+ZXJyb3IpCisJ CXJldHVybjsKKworCWlmIChsZW4gPiAxKSB7CisJCW1zZy5idWYgPSBrbWFsbG9jKGxlbiArIDEs IEdGUF9LRVJORUwpOworCQlpZiAoIW1zZy5idWYpIHsKKwkJCWN0eC0+ZXJyb3IgPSAtRU5PTUVN OworCQkJcmV0dXJuOworCQl9CisJCW1lbWNweShtc2cuYnVmICsgMSwgYnVmLCBsZW4pOworCX0g ZWxzZSB7CisJCW1zZy5idWYgPSBkYXRhOworCQltc2cuYnVmWzFdID0gKmJ1ZjsKKwl9CisKKwlt c2cuYnVmWzBdID0gYWRkcjsKKworCXJldCA9IGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIs ICZtc2csIDEpOworCWRldl9kYmcoZGV2LCAid3JpdGUgYXQgJTA0eDogJSpwaCwgJWRcbiIsIGFk ZHIsIGxlbiwgYnVmLCByZXQpOworCisJaWYgKHJldCAhPSAxKSB7CisJCWRldl9lcnIoZGV2LCAi V3JpdGUgYXQgJSMwNnggb2YgJSpwaCBmYWlsZWQgd2l0aCBjb2RlICVkLlxuIiwKKwkJCWFkZHIs IGxlbiwgYnVmLCByZXQpOworCQljdHgtPmVycm9yID0gcmV0ID86IC1FSU87CisJfQorCisJaWYg KGxlbiA+IDEpCisJCWtmcmVlKG1zZy5idWYpOworfQorCisjZGVmaW5lIHNpaTg2MjBfd3JpdGUo Y3R4LCBhZGRyLCBhcnIuLi4pIFwKKyh7XAorCXU4IGRbXSA9IHsgYXJyIH07IFwKKwlzaWk4NjIw X3dyaXRlX2J1ZihjdHgsIGFkZHIsIGQsIEFSUkFZX1NJWkUoZCkpOyBcCit9KQorCitzdGF0aWMg dm9pZCBfX3NpaTg2MjBfd3JpdGVfc2VxKHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiAqc2VxLCBp bnQgbGVuKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGxlbjsgaSArPSAyKQorCQlz aWk4NjIwX3dyaXRlKGN0eCwgc2VxW2ldLCBzZXFbaSArIDFdKTsKK30KKworI2RlZmluZSBzaWk4 NjIwX3dyaXRlX3NlcShjdHgsIHNlcS4uLikgXAorKHtcCisJdTE2IGRbXSA9IHsgc2VxIH07IFwK KwlfX3NpaTg2MjBfd3JpdGVfc2VxKGN0eCwgZCwgQVJSQVlfU0laRShkKSk7IFwKK30pCisKK3N0 YXRpYyB2b2lkIHNpaTg2MjBfc2V0Yml0cyhzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1MTYgYWRkciwg dTggbWFzaywgdTggdmFsKQoreworCXZhbCA9ICh2YWwgJiBtYXNrKSB8IChzaWk4NjIwX3JlYWRi KGN0eCwgYWRkcikgJiB+bWFzayk7CisJc2lpODYyMF93cml0ZShjdHgsIGFkZHIsIHZhbCk7Cit9 CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfY2xlYW51cChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQor eworCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnLCAqbjsKKworCWxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZShtc2csIG4sICZjdHgtPm10X3F1ZXVlLCBub2RlKSB7CisJCWxpc3RfZGVsKCZtc2ct Pm5vZGUpOworCQlrZnJlZShtc2cpOworCX0KKwljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVfUkVB RFk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfd29yayhzdHJ1Y3Qgc2lpODYyMCAqY3R4 KQoreworCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnOworCisJaWYgKGN0eC0+ZXJyb3IpCisJ CXJldHVybjsKKwlpZiAoY3R4LT5tdF9zdGF0ZSA9PSBNVF9TVEFURV9CVVNZIHx8IGxpc3RfZW1w dHkoJmN0eC0+bXRfcXVldWUpKQorCQlyZXR1cm47CisKKwlpZiAoY3R4LT5tdF9zdGF0ZSA9PSBN VF9TVEFURV9ET05FKSB7CisJCWN0eC0+bXRfc3RhdGUgPSBNVF9TVEFURV9SRUFEWTsKKwkJbXNn ID0gbGlzdF9maXJzdF9lbnRyeSgmY3R4LT5tdF9xdWV1ZSwgc3RydWN0IHNpaTg2MjBfbXRfbXNn LAorCQkJCSAgICAgICBub2RlKTsKKwkJaWYgKG1zZy0+cmVjdikKKwkJCW1zZy0+cmVjdihjdHgs IG1zZyk7CisJCWxpc3RfZGVsKCZtc2ctPm5vZGUpOworCQlrZnJlZShtc2cpOworCX0KKworCWlm IChjdHgtPm10X3N0YXRlICE9IE1UX1NUQVRFX1JFQURZIHx8IGxpc3RfZW1wdHkoJmN0eC0+bXRf cXVldWUpKQorCQlyZXR1cm47CisKKwljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVfQlVTWTsKKwlt c2cgPSBsaXN0X2ZpcnN0X2VudHJ5KCZjdHgtPm10X3F1ZXVlLCBzdHJ1Y3Qgc2lpODYyMF9tdF9t c2csIG5vZGUpOworCWlmIChtc2ctPnNlbmQpCisJCW1zZy0+c2VuZChjdHgsIG1zZyk7Cit9CisK K3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfbXNjX2NtZF9zZW5kKHN0cnVjdCBzaWk4NjIwICpjdHgs CisJCQkJICAgICAgIHN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnKQoreworCXN3aXRjaCAobXNn LT5yZWdbMF0pIHsKKwljYXNlIE1ITF9XUklURV9TVEFUOgorCWNhc2UgTUhMX1NFVF9JTlQ6CisJ CXNpaTg2MjBfd3JpdGVfYnVmKGN0eCwgUkVHX01TQ19DTURfT1JfT0ZGU0VULCBtc2ctPnJlZyAr IDEsIDIpOworCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX01TQ19DT01NQU5EX1NUQVJULAorCQkJ ICAgICAgQklUX01TQ19DT01NQU5EX1NUQVJUX1dSSVRFX1NUQVQpOworCQlicmVhazsKKwljYXNl IE1ITF9NU0NfTVNHOgorCQlzaWk4NjIwX3dyaXRlX2J1ZihjdHgsIFJFR19NU0NfQ01EX09SX09G RlNFVCwgbXNnLT5yZWcsIDMpOworCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX01TQ19DT01NQU5E X1NUQVJULAorCQkJICAgICAgQklUX01TQ19DT01NQU5EX1NUQVJUX01TQ19NU0cpOworCQlicmVh azsKKwlkZWZhdWx0OgorCQlkZXZfZXJyKGN0eC0+ZGV2LCAiJXM6IGNvbW1hbmQgJSN4IG5vdCBz dXBwb3J0ZWRcbiIsIF9fZnVuY19fLAorCQkJbXNnLT5yZWdbMF0pOworCX0KK30KKworc3RhdGlj IHN0cnVjdCBzaWk4NjIwX210X21zZyAqc2lpODYyMF9tdF9tc2dfbmV3KHN0cnVjdCBzaWk4NjIw ICpjdHgpCit7CisJc3RydWN0IHNpaTg2MjBfbXRfbXNnICptc2cgPSBremFsbG9jKHNpemVvZigq bXNnKSwgR0ZQX0tFUk5FTCk7CisKKwlpZiAoIW1zZykKKwkJY3R4LT5lcnJvciA9IC1FTk9NRU07 CisJZWxzZQorCQlsaXN0X2FkZF90YWlsKCZtc2ctPm5vZGUsICZjdHgtPm10X3F1ZXVlKTsKKwor CXJldHVybiBtc2c7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfbXNjX2NtZChzdHJ1Y3Qg c2lpODYyMCAqY3R4LCB1OCBjbWQsIHU4IGFyZzEsIHU4IGFyZzIpCit7CisJc3RydWN0IHNpaTg2 MjBfbXRfbXNnICptc2cgPSBzaWk4NjIwX210X21zZ19uZXcoY3R4KTsKKworCWlmICghbXNnKQor CQlyZXR1cm47CisKKwltc2ctPnJlZ1swXSA9IGNtZDsKKwltc2ctPnJlZ1sxXSA9IGFyZzE7CisJ bXNnLT5yZWdbMl0gPSBhcmcyOworCW1zZy0+c2VuZCA9IHNpaTg2MjBfbXRfbXNjX2NtZF9zZW5k OworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX210X3dyaXRlX3N0YXQoc3RydWN0IHNpaTg2MjAg KmN0eCwgdTggcmVnLCB1OCB2YWwpCit7CisJc2lpODYyMF9tdF9tc2NfY21kKGN0eCwgTUhMX1dS SVRFX1NUQVQsIHJlZywgdmFsKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHNpaTg2MjBfbXRf c2V0X2ludChzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1OCBpcnEsIHU4IG1hc2spCit7CisJc2lpODYy MF9tdF9tc2NfY21kKGN0eCwgTUhMX1NFVF9JTlQsIGlycSwgbWFzayk7Cit9CisKK3N0YXRpYyB2 b2lkIHNpaTg2MjBfbXRfbXNjX21zZyhzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1OCBjbWQsIHU4IGRh dGEpCit7CisJc2lpODYyMF9tdF9tc2NfY21kKGN0eCwgTUhMX01TQ19NU0csIGNtZCwgZGF0YSk7 Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfcmFwKHN0cnVjdCBzaWk4NjIwICpjdHgsIHU4 IGNvZGUpCit7CisJc2lpODYyMF9tdF9tc2NfbXNnKGN0eCwgTUhMX01TQ19NU0dfUkFQLCBjb2Rl KTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9tdF9yZWFkX2RldmNhcF9zZW5kKHN0cnVjdCBz aWk4NjIwICpjdHgsCisJCQkJCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnKQoreworCXU4IGN0 cmwgPSBCSVRfRURJRF9DVFJMX0RFVkNBUF9TRUxFQ1RfREVWQ0FQCisJCQl8IEJJVF9FRElEX0NU UkxfRURJRF9GSUZPX0FERFJfQVVUTworCQkJfCBCSVRfRURJRF9DVFJMX0VESURfTU9ERV9FTjsK KworCWlmIChtc2ctPnJlZ1swXSA9PSBNSExfUkVBRF9YREVWQ0FQKQorCQljdHJsIHw9IEJJVF9F RElEX0NUUkxfWERFVkNBUF9FTjsKKworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX0lO VFI5X01BU0ssIEJJVF9JTlRSOV9ERVZDQVBfRE9ORSwKKwkJUkVHX0VESURfQ1RSTCwgY3RybCwK KwkJUkVHX1RQSV9DQlVTX1NUQVJULCBCSVRfVFBJX0NCVVNfU1RBUlRfR0VUX0RFVkNBUF9TVEFS VAorCSk7Cit9CisKKy8qIGNvcHkgc3JjIHRvIGRzdCBhbmQgc2V0IGNoYW5nZWQgYml0cyBpbiBz cmMgKi8KK3N0YXRpYyB2b2lkIHNpaTg2MjBfdXBkYXRlX2FycmF5KHU4ICpkc3QsIHU4ICpzcmMs IGludCBjb3VudCkKK3sKKwl3aGlsZSAoLS1jb3VudCA+PSAwKSB7CisJCSpzcmMgXj0gKmRzdDsK KwkJKmRzdCsrIF49ICpzcmMrKzsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXJfZGV2 Y2FwKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBz aW5rX3N0cltdID0geworCQlbU0lOS19OT05FXSA9ICJOT05FIiwKKwkJW1NJTktfSERNSV0gPSAi SERNSSIsCisJCVtTSU5LX0RWSV0gPSAiRFZJIgorCX07CisKKwl1OCBkY2FwW01ITF9EQ0FQX1NJ WkVdOworCWNoYXIgc2lua19uYW1lWzIwXTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjdHgtPmRl djsKKworCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfRURJRF9GSUZPX1JEX0RBVEEsIGRjYXAs IE1ITF9EQ0FQX1NJWkUpOworCWlmIChjdHgtPmVycm9yIDwgMCkKKwkJcmV0dXJuOworCisJZGV2 X2luZm8oZGV2LCAiZGNhcDogJSpwaFxuIiwgTUhMX0RDQVBfU0laRSwgZGNhcCk7CisJZGV2X2lu Zm8oZGV2LCAiZGV0ZWN0ZWQgZG9uZ2xlIE1ITCAlZC4lZCwgQ2hpcElEICUwMnglMDJ4OiUwMngl MDJ4XG4iLAorCQlkY2FwW01ITF9EQ0FQX01ITF9WRVJTSU9OXSAvIDE2LCBkY2FwW01ITF9EQ0FQ X01ITF9WRVJTSU9OXSAlIDE2LAorCQlkY2FwW01ITF9EQ0FQX0FET1BURVJfSURfSF0sIGRjYXBb TUhMX0RDQVBfQURPUFRFUl9JRF9MXSwKKwkJZGNhcFtNSExfRENBUF9ERVZJQ0VfSURfSF0sIGRj YXBbTUhMX0RDQVBfREVWSUNFX0lEX0xdKTsKKwlzaWk4NjIwX3VwZGF0ZV9hcnJheShjdHgtPmRl dmNhcCwgZGNhcCwgTUhMX0RDQVBfU0laRSk7CisKKwlpZiAoIShkY2FwW01ITF9EQ0FQX0NBVF0g JiBNSExfRENBUF9DQVRfU0lOSykpCisJCXJldHVybjsKKworCXNpaTg2MjBfZmV0Y2hfZWRpZChj dHgpOworCWlmICghY3R4LT5lZGlkKSB7CisJCWRldl9lcnIoY3R4LT5kZXYsICJDYW5ub3QgZmV0 Y2ggRURJRFxuIik7CisJCXNpaTg2MjBfbWhsX2Rpc2Nvbm5lY3RlZChjdHgpOworCQlyZXR1cm47 CisJfQorCisJaWYgKGRybV9kZXRlY3RfaGRtaV9tb25pdG9yKGN0eC0+ZWRpZCkpCisJCWN0eC0+ c2lua190eXBlID0gU0lOS19IRE1JOworCWVsc2UKKwkJY3R4LT5zaW5rX3R5cGUgPSBTSU5LX0RW STsKKworCWRybV9lZGlkX2dldF9tb25pdG9yX25hbWUoY3R4LT5lZGlkLCBzaW5rX25hbWUsIEFS UkFZX1NJWkUoc2lua19uYW1lKSk7CisKKwlkZXZfaW5mbyhkZXYsICJkZXRlY3RlZCBzaW5rKHR5 cGU6ICVzKTogJXNcbiIsCisJCXNpbmtfc3RyW2N0eC0+c2lua190eXBlXSwgc2lua19uYW1lKTsK KwlzaWk4NjIwX3NldF91cHN0cmVhbV9lZGlkKGN0eCk7CisJc2lpODYyMF9lbmFibGVfaHBkKGN0 eCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXJfeGRldmNhcChzdHJ1Y3Qgc2lpODYyMCAq Y3R4KQoreworCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfRURJRF9GSUZPX1JEX0RBVEEsIGN0 eC0+eGRldmNhcCwKKwkJCSBNSExfWERDX1NJWkUpOworCisJc2lpODYyMF9tdF93cml0ZV9zdGF0 KGN0eCwgTUhMX1hEU19SRUcoQ1VSUl9FQ0JVU19NT0RFKSwKKwkJCSAgICAgIE1ITF9YRFNfRUNC VVNfUyB8IE1ITF9YRFNfU0xPVF9NT0RFXzhCSVQpOworCXNpaTg2MjBfbXRfcmFwKGN0eCwgTUhM X1JBUF9DQlVTX01PREVfVVApOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX210X3JlYWRfZGV2 Y2FwX3JlY3Yoc3RydWN0IHNpaTg2MjAgKmN0eCwKKwkJCQkJc3RydWN0IHNpaTg2MjBfbXRfbXNn ICptc2cpCit7CisJdTggY3RybCA9IEJJVF9FRElEX0NUUkxfREVWQ0FQX1NFTEVDVF9ERVZDQVAK KwkJfCBCSVRfRURJRF9DVFJMX0VESURfRklGT19BRERSX0FVVE8KKwkJfCBCSVRfRURJRF9DVFJM X0VESURfTU9ERV9FTjsKKworCWlmIChtc2ctPnJlZ1swXSA9PSBNSExfUkVBRF9YREVWQ0FQKQor CQljdHJsIHw9IEJJVF9FRElEX0NUUkxfWERFVkNBUF9FTjsKKworCXNpaTg2MjBfd3JpdGVfc2Vx KGN0eCwKKwkJUkVHX0lOVFI5X01BU0ssIEJJVF9JTlRSOV9ERVZDQVBfRE9ORSB8IEJJVF9JTlRS OV9FRElEX0RPTkUKKwkJCXwgQklUX0lOVFI5X0VESURfRVJST1IsCisJCVJFR19FRElEX0NUUkws IGN0cmwsCisJCVJFR19FRElEX0ZJRk9fQUREUiwgMAorCSk7CisKKwlpZiAobXNnLT5yZWdbMF0g PT0gTUhMX1JFQURfWERFVkNBUCkKKwkJc2lpODYyMF9tcl94ZGV2Y2FwKGN0eCk7CisJZWxzZQor CQlzaWk4NjIwX21yX2RldmNhcChjdHgpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX210X3Jl YWRfZGV2Y2FwKHN0cnVjdCBzaWk4NjIwICpjdHgsIGJvb2wgeGRldmNhcCkKK3sKKwlzdHJ1Y3Qg c2lpODYyMF9tdF9tc2cgKm1zZyA9IHNpaTg2MjBfbXRfbXNnX25ldyhjdHgpOworCisJaWYgKCFt c2cpCisJCXJldHVybjsKKworCW1zZy0+cmVnWzBdID0geGRldmNhcCA/IE1ITF9SRUFEX1hERVZD QVAgOiBNSExfUkVBRF9ERVZDQVA7CisJbXNnLT5zZW5kID0gc2lpODYyMF9tdF9yZWFkX2RldmNh cF9zZW5kOworCW1zZy0+cmVjdiA9IHNpaTg2MjBfbXRfcmVhZF9kZXZjYXBfcmVjdjsKK30KKwor c3RhdGljIHZvaWQgc2lpODYyMF9mZXRjaF9lZGlkKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJ dTggbG1fZGRjLCBkZGNfY21kLCBpbnQzLCBjYnVzOworCWludCBmZXRjaGVkLCBpOworCWludCBl ZGlkX2xlbiA9IEVESURfTEVOR1RIOworCXU4ICplZGlkOworCisJc2lpODYyMF9yZWFkYihjdHgs IFJFR19DQlVTX1NUQVRVUyk7CisJbG1fZGRjID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19MTV9E REMpOworCWRkY19jbWQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0REQ19DTUQpOworCisJc2lp ODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfSU5UUjlfTUFTSywgMCwKKwkJUkVHX0VESURfQ1RS TCwgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQUREUl9BVVRPLAorCQlSRUdfSERDUDJYX1BPTExf Q1MsIDB4NzEsCisJCVJFR19IRENQMlhfQ1RSTF8wLCBCSVRfSERDUDJYX0NUUkxfMF9IRENQMlhf SERDUFRYLAorCQlSRUdfTE1fRERDLCBsbV9kZGMgfCBCSVRfTE1fRERDX1NXX1RQSV9FTl9ESVNB QkxFRCwKKwkpOworCisJZm9yIChpID0gMDsgaSA8IDI1NjsgKytpKSB7CisJCXU4IGRkY19zdGF0 ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19ERENfU1RBVFVTKTsKKworCQlpZiAoIShkZGNfc3Rh dCAmIEJJVF9ERENfU1RBVFVTX0REQ19JMkNfSU5fUFJPRykpCisJCQlicmVhazsKKwkJc2lpODYy MF93cml0ZShjdHgsIFJFR19ERENfU1RBVFVTLAorCQkJICAgICAgIEJJVF9ERENfU1RBVFVTX0RE Q19GSUZPX0VNUFRZKTsKKwl9CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0REQ19BRERSLCAw eDUwIDw8IDEpOworCisJZWRpZCA9IGttYWxsb2MoRURJRF9MRU5HVEgsIEdGUF9LRVJORUwpOwor CWlmICghZWRpZCkgeworCQljdHgtPmVycm9yID0gLUVOT01FTTsKKwkJcmV0dXJuOworCX0KKwor I2RlZmluZSBGRVRDSF9TSVpFIDE2CisJZm9yIChmZXRjaGVkID0gMDsgZmV0Y2hlZCA8IGVkaWRf bGVuOyBmZXRjaGVkICs9IEZFVENIX1NJWkUpIHsKKwkJc2lpODYyMF9yZWFkYihjdHgsIFJFR19E RENfU1RBVFVTKTsKKwkJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQkJUkVHX0REQ19DTUQsIGRk Y19jbWQgfCBWQUxfRERDX0NNRF9ERENfQ01EX0FCT1JULAorCQkJUkVHX0REQ19DTUQsIGRkY19j bWQgfCBWQUxfRERDX0NNRF9ERENfQ01EX0NMRUFSX0ZJRk8sCisJCQlSRUdfRERDX1NUQVRVUywg QklUX0REQ19TVEFUVVNfRERDX0ZJRk9fRU1QVFkKKwkJKTsKKwkJc2lpODYyMF93cml0ZV9zZXEo Y3R4LAorCQkJUkVHX0REQ19TRUdNLCBmZXRjaGVkID4+IDgsCisJCQlSRUdfRERDX09GRlNFVCwg ZmV0Y2hlZCAmIDB4ZmYsCisJCQlSRUdfRERDX0RJTl9DTlQxLCBGRVRDSF9TSVpFLAorCQkJUkVH X0REQ19ESU5fQ05UMiwgMCwKKwkJCVJFR19ERENfQ01ELCBkZGNfY21kIHwgVkFMX0REQ19DTURf RU5IX0REQ19SRUFEX05PX0FDSworCQkpOworCisJCWRvIHsKKwkJCWludDMgPSBzaWk4NjIwX3Jl YWRiKGN0eCwgUkVHX0lOVFIzKTsKKwkJCWNidXMgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0NC VVNfU1RBVFVTKTsKKworCQkJaWYgKGludDMgJiBCSVRfRERDX0NNRF9ET05FKQorCQkJCWJyZWFr OworCisJCQlpZiAoIShjYnVzICYgQklUX0NCVVNfU1RBVFVTX0NCVVNfQ09OTkVDVEVEKSkgewor CQkJCWtmcmVlKGVkaWQpOworCQkJCWVkaWQgPSBOVUxMOworCQkJCWdvdG8gZW5kOworCQkJfQor CQl9IHdoaWxlICgxKTsKKworCQlzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0REQ19TVEFUVVMpOwor CQl3aGlsZSAoc2lpODYyMF9yZWFkYihjdHgsIFJFR19ERENfRE9VVF9DTlQpIDwgRkVUQ0hfU0la RSkKKwkJCXVzbGVlcF9yYW5nZSgxMCwgMjApOworCisJCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBS RUdfRERDX0RBVEEsIGVkaWQgKyBmZXRjaGVkLCBGRVRDSF9TSVpFKTsKKwkJaWYgKGZldGNoZWQg KyBGRVRDSF9TSVpFID09IEVESURfTEVOR1RIKSB7CisJCQl1OCBleHQgPSAoKHN0cnVjdCBlZGlk ICopZWRpZCktPmV4dGVuc2lvbnM7CisKKwkJCWlmIChleHQpIHsKKwkJCQl1OCAqbmV3X2VkaWQ7 CisKKwkJCQllZGlkX2xlbiArPSBleHQgKiBFRElEX0xFTkdUSDsKKwkJCQluZXdfZWRpZCA9IGty ZWFsbG9jKGVkaWQsIGVkaWRfbGVuLCBHRlBfS0VSTkVMKTsKKwkJCQlpZiAoIW5ld19lZGlkKSB7 CisJCQkJCWtmcmVlKGVkaWQpOworCQkJCQljdHgtPmVycm9yID0gLUVOT01FTTsKKwkJCQkJcmV0 dXJuOworCQkJCX0KKwkJCQllZGlkID0gbmV3X2VkaWQ7CisJCQl9CisJCX0KKworCQlpZiAoZmV0 Y2hlZCArIEZFVENIX1NJWkUgPT0gZWRpZF9sZW4pCisJCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVH X0lOVFIzLCBpbnQzKTsKKwl9CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0xNX0REQywgbG1f ZGRjKTsKKworZW5kOgorCWtmcmVlKGN0eC0+ZWRpZCk7CisJY3R4LT5lZGlkID0gKHN0cnVjdCBl ZGlkICopZWRpZDsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9zZXRfdXBzdHJlYW1fZWRpZChz dHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNpaTg2MjBfc2V0Yml0cyhjdHgsIFJFR19EUEQsIEJJ VF9EUERfUEROUlgxMiB8IEJJVF9EUERfUERJRENLX04KKwkJCXwgQklUX0RQRF9QRF9NSExfQ0xL X04sIDB4ZmYpOworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfUlhfSERNSV9DVFJM MywgMHgwMCwKKwkJUkVHX1BLVF9GSUxURVJfMCwgMHhGRiwKKwkJUkVHX1BLVF9GSUxURVJfMSwg MHhGRiwKKwkJUkVHX0FMSUNFMF9CV19JMkMsIDB4MDYKKwkpOworCisJc2lpODYyMF9zZXRiaXRz KGN0eCwgUkVHX1JYX0hETUlfQ0xSX0JVRkZFUiwKKwkJCUJJVF9SWF9IRE1JX0NMUl9CVUZGRVJf VlNJX0NMUl9FTiwgMHhmZik7CisKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19FRElE X0NUUkwsIEJJVF9FRElEX0NUUkxfRURJRF9GSUZPX0FERFJfQVVUTworCQkJfCBCSVRfRURJRF9D VFJMX0VESURfTU9ERV9FTiwKKwkJUkVHX0VESURfRklGT19BRERSLCAwLAorCSk7CisKKwlzaWk4 NjIwX3dyaXRlX2J1ZihjdHgsIFJFR19FRElEX0ZJRk9fV1JfREFUQSwgKHU4ICopY3R4LT5lZGlk LAorCQkJKGN0eC0+ZWRpZC0+ZXh0ZW5zaW9ucyArIDEpICogRURJRF9MRU5HVEgpOworCisJc2lp ODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfRURJRF9DVFJMLCBCSVRfRURJRF9DVFJMX0VESURf UFJJTUVfVkFMSUQKKwkJCXwgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQUREUl9BVVRPCisJCQl8 IEJJVF9FRElEX0NUUkxfRURJRF9NT0RFX0VOLAorCQlSRUdfSU5UUjVfTUFTSywgQklUX0lOVFJf U0NEVF9DSEFOR0UsCisJCVJFR19JTlRSOV9NQVNLLCAwCisJKTsKK30KKworc3RhdGljIHZvaWQg c2lpODYyMF94dGFsX3NldF9yYXRlKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RhdGljIGNv bnN0IHN0cnVjdCB7CisJCXVuc2lnbmVkIGludCByYXRlOworCQl1OCBkaXY7CisJCXU4IHRwMTsK Kwl9IHJhdGVzW10gPSB7CisJCXsgMTkyMDAsIDB4MDQsIDB4NTMgfSwKKwkJeyAyMDAwMCwgMHgw NCwgMHg2MiB9LAorCQl7IDI0MDAwLCAweDA1LCAweDc1IH0sCisJCXsgMzAwMDAsIDB4MDYsIDB4 OTIgfSwKKwkJeyAzODQwMCwgMHgwYywgMHhiYyB9LAorCX07CisJdW5zaWduZWQgbG9uZyByYXRl ID0gY2xrX2dldF9yYXRlKGN0eC0+Y2xrX3h0YWwpIC8gMTAwMDsKKwlpbnQgaTsKKworCWZvciAo aSA9IDA7IGkgPCBBUlJBWV9TSVpFKHJhdGVzKSAtIDE7ICsraSkKKwkJaWYgKHJhdGUgPD0gcmF0 ZXNbaV0ucmF0ZSkKKwkJCWJyZWFrOworCisJaWYgKHJhdGUgIT0gcmF0ZXNbaV0ucmF0ZSkKKwkJ ZGV2X2VycihjdHgtPmRldiwgInh0YWwgY2xvY2sgcmF0ZSglbHVrSHopIG5vdCBzdXBwb3J0ZWQs IHNldHRpbmcgTUhMIGZvciAldWtIei5cbiIsCisJCQlyYXRlLCByYXRlc1tpXS5yYXRlKTsKKwor CXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfRElWX0NUTF9NQUlOLCByYXRlc1tpXS5kaXYpOworCXNp aTg2MjBfd3JpdGUoY3R4LCBSRUdfSERDUDJYX1RQMSwgcmF0ZXNbaV0udHAxKTsKK30KKworc3Rh dGljIGludCBzaWk4NjIwX2h3X29uKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaW50IHJldDsK KworCXJldCA9IHJlZ3VsYXRvcl9idWxrX2VuYWJsZShBUlJBWV9TSVpFKGN0eC0+c3VwcGxpZXMp LCBjdHgtPnN1cHBsaWVzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCXVzbGVlcF9yYW5n ZSgxMDAwMCwgMjAwMDApOworCXJldHVybiBjbGtfcHJlcGFyZV9lbmFibGUoY3R4LT5jbGtfeHRh bCk7Cit9CisKK3N0YXRpYyBpbnQgc2lpODYyMF9od19vZmYoc3RydWN0IHNpaTg2MjAgKmN0eCkK K3sKKwljbGtfZGlzYWJsZV91bnByZXBhcmUoY3R4LT5jbGtfeHRhbCk7CisJZ3Bpb2Rfc2V0X3Zh bHVlKGN0eC0+Z3Bpb19yZXNldCwgMSk7CisJcmV0dXJuIHJlZ3VsYXRvcl9idWxrX2Rpc2FibGUo QVJSQVlfU0laRShjdHgtPnN1cHBsaWVzKSwgY3R4LT5zdXBwbGllcyk7Cit9CisKK3N0YXRpYyB2 b2lkIHNpaTg2MjBfaHdfcmVzZXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1c2xlZXBfcmFu Z2UoMTAwMDAsIDIwMDAwKTsKKwlncGlvZF9zZXRfdmFsdWUoY3R4LT5ncGlvX3Jlc2V0LCAwKTsK Kwl1c2xlZXBfcmFuZ2UoNTAwMCwgMjAwMDApOworCWdwaW9kX3NldF92YWx1ZShjdHgtPmdwaW9f cmVzZXQsIDEpOworCXVzbGVlcF9yYW5nZSgxMDAwMCwgMjAwMDApOworCWdwaW9kX3NldF92YWx1 ZShjdHgtPmdwaW9fcmVzZXQsIDApOworCW1zbGVlcCgzMDApOworfQorCitzdGF0aWMgdm9pZCBz aWk4NjIwX2NidXNfcmVzZXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3dyaXRl X3NlcShjdHgsCisJCVJFR19QV0RfU1JTVCwgQklUX1BXRF9TUlNUX0NCVVNfUlNUCisJCQl8IEJJ VF9QV0RfU1JTVF9DQlVTX1JTVF9TV19FTiwKKwkJUkVHX1BXRF9TUlNULCBCSVRfUFdEX1NSU1Rf Q0JVU19SU1RfU1dfRU4KKwkpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3NldF9hdXRvX3pv bmUoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlpZiAoY3R4LT5tb2RlICE9IENNX01ITDEpIHsK KwkJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQkJUkVHX1RYX1pPTkVfQ1RMMSwgMHgwLAorCQkJ UkVHX01ITF9QTExfQ1RMMCwgVkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT18xWAorCQkJ CXwgQklUX01ITF9QTExfQ1RMMF9DUllTVEFMX0NMS19TRUwKKwkJCQl8IEJJVF9NSExfUExMX0NU TDBfWk9ORV9NQVNLX09FCisJCSk7CisJfSBlbHNlIHsKKwkJc2lpODYyMF93cml0ZV9zZXEoY3R4 LAorCQkJUkVHX1RYX1pPTkVfQ1RMMSwgVkFMX1RYX1pPTkVfQ1RMMV9UWF9aT05FX0NUUkxfTU9E RSwKKwkJCVJFR19NSExfUExMX0NUTDAsIFZBTF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU9f MVgKKwkJCQl8IEJJVF9NSExfUExMX0NUTDBfWk9ORV9NQVNLX09FCisJCSk7CisJfQorfQorCitz dGF0aWMgdm9pZCBzaWk4NjIwX3N0b3BfdmlkZW8oc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1 OCB1bmluaXRpYWxpemVkX3Zhcih2YWwpOworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlS RUdfVFBJX0lOVFJfRU4sIDAsCisJCVJFR19IRENQMlhfSU5UUjBfTUFTSywgMCwKKwkJUkVHX1RQ SV9DT1BQX0RBVEEyLCAwLAorCQlSRUdfVFBJX0lOVFJfU1QwLCB+MCwKKwkpOworCisJc3dpdGNo IChjdHgtPnNpbmtfdHlwZSkgeworCWNhc2UgU0lOS19EVkk6CisJCXZhbCA9IEJJVF9UUElfU0Nf UkVHX1RNRFNfT0VfUE9XRVJfRE9XTgorCQkJfCBCSVRfVFBJX1NDX1RQSV9BVl9NVVRFOworCQli cmVhazsKKwljYXNlIFNJTktfSERNSToKKwkJdmFsID0gQklUX1RQSV9TQ19SRUdfVE1EU19PRV9Q T1dFUl9ET1dOCisJCQl8IEJJVF9UUElfU0NfVFBJX0FWX01VVEUKKwkJCXwgQklUX1RQSV9TQ19U UElfT1VUUFVUX01PREVfMF9IRE1JOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm47CisJ fQorCisJc2lpODYyMF93cml0ZShjdHgsIFJFR19UUElfU0MsIHZhbCk7Cit9CisKK3N0YXRpYyB2 b2lkIHNpaTg2MjBfc3RhcnRfaGRtaShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNpaTg2MjBf d3JpdGVfc2VxKGN0eCwKKwkJUkVHX1JYX0hETUlfQ1RSTDIsIFZBTF9SWF9IRE1JX0NUUkwyX0RF RlZBTAorCQkJfCBCSVRfUlhfSERNSV9DVFJMMl9VU0VfQVZfTVVURSwKKwkJUkVHX1ZJRF9PVlJS RCwgQklUX1ZJRF9PVlJSRF9QUF9BVVRPX0RJU0FCTEUKKwkJCXwgQklUX1ZJRF9PVlJSRF9NMTA4 MFBfT1ZSUkQsCisJCVJFR19WSURfTU9ERSwgMCwKKwkJUkVHX01ITF9UT1BfQ1RMLCAweDEsCisJ CVJFR19NSExUWF9DVEw2LCAweGEwLAorCQlSRUdfVFBJX0lOUFVULCBWQUxfVFBJX0ZPUk1BVChS R0IsIEZVTEwpLAorCQlSRUdfVFBJX09VVFBVVCwgVkFMX1RQSV9GT1JNQVQoUkdCLCBGVUxMKSwK KwkpOworCisJc2lpODYyMF9tdF93cml0ZV9zdGF0KGN0eCwgTUhMX0RTVF9SRUcoTElOS19NT0RF KSwKKwkJCU1ITF9EU1RfTE1fQ0xLX01PREVfTk9STUFMIHwgTUhMX0RTVF9MTV9QQVRIX0VOQUJM RUQpOworCisJc2lpODYyMF9zZXRfYXV0b196b25lKGN0eCk7CisKKwlzaWk4NjIwX3dyaXRlKGN0 eCwgUkVHX1RQSV9TQywgQklUX1RQSV9TQ19UUElfT1VUUFVUX01PREVfMF9IRE1JKTsKKworCXNp aTg2MjBfd3JpdGVfYnVmKGN0eCwgUkVHX1RQSV9BVklfQ0hTVU0sIGN0eC0+YXZpZiwKKwkJCSAg QVJSQVlfU0laRShjdHgtPmF2aWYpKTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfUEtUX0ZJ TFRFUl8wLCAweGExLCAweDIpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3N0YXJ0X3ZpZGVv KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaWYgKGN0eC0+bW9kZSA8IENNX01ITDMpCisJCXNp aTg2MjBfc3RvcF92aWRlbyhjdHgpOworCisJc3dpdGNoIChjdHgtPnNpbmtfdHlwZSkgeworCWNh c2UgU0lOS19IRE1JOgorCQlzaWk4NjIwX3N0YXJ0X2hkbWkoY3R4KTsKKwkJYnJlYWs7CisJY2Fz ZSBTSU5LX0RWSToKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHNp aTg2MjBfZGlzYWJsZV9ocGQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3NldGJp dHMoY3R4LCBSRUdfRURJRF9DVFJMLCBCSVRfRURJRF9DVFJMX0VESURfUFJJTUVfVkFMSUQsIDAp OworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX0hQRF9DVFJMLCBCSVRfSFBEX0NUUkxf SFBEX09VVF9PVlJfRU4sCisJCVJFR19JTlRSOF9NQVNLLCAwCisJKTsKK30KKworc3RhdGljIHZv aWQgc2lpODYyMF9lbmFibGVfaHBkKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF9z ZXRiaXRzKGN0eCwgUkVHX1RNRFNfQ1NUQVRfUDMsCisJCQlCSVRfVE1EU19DU1RBVF9QM19TQ0RU X0NMUl9BVklfRElTCisJCQl8IEJJVF9UTURTX0NTVEFUX1AzX0NMUl9BVkksIH4wKTsKKwlzaWk4 NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19IUERfQ1RSTCwgQklUX0hQRF9DVFJMX0hQRF9PVVRf T1ZSX0VOCisJCQl8IEJJVF9IUERfQ1RSTF9IUERfSElHSCwKKwkpOworfQorCitzdGF0aWMgdm9p ZCBzaWk4NjIwX2VuYWJsZV9nZW4yX3dyaXRlX2J1cnN0KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7 CisJaWYgKGN0eC0+Z2VuMl93cml0ZV9idXJzdCkKKwkJcmV0dXJuOworCisJc2lpODYyMF93cml0 ZV9zZXEoY3R4LAorCQlSRUdfTURUX1JDVl9USU1FT1VULCAxMDAsCisJCVJFR19NRFRfUkNWX0NU UkwsIEJJVF9NRFRfUkNWX0NUUkxfTURUX1JDVl9FTgorCSk7CisJY3R4LT5nZW4yX3dyaXRlX2J1 cnN0ID0gMTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9kaXNhYmxlX2dlbjJfd3JpdGVfYnVy c3Qoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlpZiAoIWN0eC0+Z2VuMl93cml0ZV9idXJzdCkK KwkJcmV0dXJuOworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfTURUX1hNSVRfQ1RS TCwgMCwKKwkJUkVHX01EVF9SQ1ZfQ1RSTCwgMAorCSk7CisJY3R4LT5nZW4yX3dyaXRlX2J1cnN0 ID0gMDsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9zdGFydF9nZW4yX3dyaXRlX2J1cnN0KHN0 cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfTURU X0lOVF8xX01BU0ssIEJJVF9NRFRfUkNWX1RJTUVPVVQKKwkJCXwgQklUX01EVF9SQ1ZfU01fQUJP UlRfUEtUX1JDVkQgfCBCSVRfTURUX1JDVl9TTV9FUlJPUgorCQkJfCBCSVRfTURUX1hNSVRfVElN RU9VVCB8IEJJVF9NRFRfWE1JVF9TTV9BQk9SVF9QS1RfUkNWRAorCQkJfCBCSVRfTURUX1hNSVRf U01fRVJST1IsCisJCVJFR19NRFRfSU5UXzBfTUFTSywgQklUX01EVF9YRklGT19FTVBUWQorCQkJ fCBCSVRfTURUX0lETEVfQUZURVJfSEFXQl9ESVNBQkxFCisJCQl8IEJJVF9NRFRfUkZJRk9fREFU QV9SRFkKKwkpOworCXNpaTg2MjBfZW5hYmxlX2dlbjJfd3JpdGVfYnVyc3QoY3R4KTsKK30KKwor c3RhdGljIHZvaWQgc2lpODYyMF9taGxfZGlzY292ZXIoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sK KwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19ESVNDX0NUUkw5LCBCSVRfRElTQ19DVFJM OV9XQUtFX0RSVkZMVAorCQkJfCBCSVRfRElTQ19DVFJMOV9ESVNDX1BVTFNFX1BST0NFRUQsCisJ CVJFR19ESVNDX0NUUkw0LCBWQUxfRElTQ19DVFJMNChWQUxfUFVQXzVLLCBWQUxfUFVQXzIwSyks CisJCVJFR19DQlVTX0RJU0NfSU5UUjBfTUFTSywgQklUX01ITDNfRVNUX0lOVAorCQkJfCBCSVRf TUhMX0VTVF9JTlQKKwkJCXwgQklUX05PVF9NSExfRVNUX0lOVAorCQkJfCBCSVRfQ0JVU19NSEwz X0RJU0NPTl9JTlQKKwkJCXwgQklUX0NCVVNfTUhMMTJfRElTQ09OX0lOVAorCQkJfCBCSVRfUkdO RF9SRUFEWV9JTlQsCisJCVJFR19NSExfUExMX0NUTDAsIFZBTF9NSExfUExMX0NUTDBfSERNSV9D TEtfUkFUSU9fMVgKKwkJCXwgQklUX01ITF9QTExfQ1RMMF9DUllTVEFMX0NMS19TRUwKKwkJCXwg QklUX01ITF9QTExfQ1RMMF9aT05FX01BU0tfT0UsCisJCVJFR19NSExfRFBfQ1RMMCwgQklUX01I TF9EUF9DVEwwX0RQX09FCisJCQl8IEJJVF9NSExfRFBfQ1RMMF9UWF9PRV9PVlIsCisJCVJFR19N M19DVFJMLCBWQUxfTTNfQ1RSTF9NSEwzX1ZBTFVFLAorCQlSRUdfTUhMX0RQX0NUTDEsIDB4QTIs CisJCVJFR19NSExfRFBfQ1RMMiwgMHgwMywKKwkJUkVHX01ITF9EUF9DVEwzLCAweDM1LAorCQlS RUdfTUhMX0RQX0NUTDUsIDB4MDIsCisJCVJFR19NSExfRFBfQ1RMNiwgMHgwMiwKKwkJUkVHX01I TF9EUF9DVEw3LCAweDAzLAorCQlSRUdfQ09DX0NUTEMsIDB4RkYsCisJCVJFR19EUEQsIEJJVF9E UERfUFdST05fUExMIHwgQklUX0RQRF9QRE5UWDEyCisJCQl8IEJJVF9EUERfT1NDX0VOIHwgQklU X0RQRF9QV1JPTl9IU0lDLAorCQlSRUdfQ09DX0lOVFJfTUFTSywgQklUX0NPQ19QTExfTE9DS19T VEFUVVNfQ0hBTkdFCisJCQl8IEJJVF9DT0NfQ0FMSUJSQVRJT05fRE9ORSwKKwkJUkVHX0NCVVNf SU5UXzFfTUFTSywgQklUX0NCVVNfTVNDX0FCT1JUX1JDVkQKKwkJCXwgQklUX0NCVVNfQ01EX0FC T1JULAorCQlSRUdfQ0JVU19JTlRfMF9NQVNLLCBCSVRfQ0JVU19NU0NfTVRfRE9ORQorCQkJfCBC SVRfQ0JVU19IUERfQ0hHCisJCQl8IEJJVF9DQlVTX01TQ19NUl9XUklURV9TVEFUCisJCQl8IEJJ VF9DQlVTX01TQ19NUl9NU0NfTVNHCisJCQl8IEJJVF9DQlVTX01TQ19NUl9XUklURV9CVVJTVAor CQkJfCBCSVRfQ0JVU19NU0NfTVJfU0VUX0lOVAorCQkJfCBCSVRfQ0JVU19NU0NfTVRfRE9ORV9O QUNLCisJKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9wZWVyX3NwZWNpZmljX2luaXQoc3Ry dWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlpZiAoY3R4LT5tb2RlID09IENNX01ITDMpCisJCXNpaTg2 MjBfd3JpdGVfc2VxKGN0eCwKKwkJCVJFR19TWVNfQ1RSTDEsIEJJVF9TWVNfQ1RSTDFfQkxPQ0tf RERDX0JZX0hQRCwKKwkJCVJFR19FTVNDSU5UUk1BU0sxLAorCQkJCUJJVF9FTVNDSU5UUjFfRU1T Q19UUkFJTklOR19DT01NQV9FUlIKKwkJKTsKKwllbHNlCisJCXNpaTg2MjBfd3JpdGVfc2VxKGN0 eCwKKwkJCVJFR19IRENQMlhfSU5UUjBfTUFTSywgMHgwMCwKKwkJCVJFR19FTVNDSU5UUk1BU0sx LCAweDAwLAorCQkJUkVHX0hEQ1AyWF9JTlRSMCwgMHhGRiwKKwkJCVJFR19JTlRSMSwgMHhGRiwK KwkJCVJFR19TWVNfQ1RSTDEsIEJJVF9TWVNfQ1RSTDFfQkxPQ0tfRERDX0JZX0hQRAorCQkJCXwg QklUX1NZU19DVFJMMV9UWF9DVFJMX0hETUkKKwkJKTsKK30KKworI2RlZmluZSBTSUk4NjIwX01I TF9WRVJTSU9OCQkJMHgzMgorI2RlZmluZSBTSUk4NjIwX1NDUkFUQ0hQQURfU0laRQkJCTE2Cisj ZGVmaW5lIFNJSTg2MjBfSU5UX1NUQVRfU0laRQkJCTB4MzMKKworc3RhdGljIHZvaWQgc2lpODYy MF9zZXRfZGV2X2NhcChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXN0YXRpYyBjb25zdCB1OCBk ZXZjYXBbTUhMX0RDQVBfU0laRV0gPSB7CisJCVtNSExfRENBUF9NSExfVkVSU0lPTl0gPSBTSUk4 NjIwX01ITF9WRVJTSU9OLAorCQlbTUhMX0RDQVBfQ0FUXSA9IE1ITF9EQ0FQX0NBVF9TT1VSQ0Ug fCBNSExfRENBUF9DQVRfUE9XRVIsCisJCVtNSExfRENBUF9BRE9QVEVSX0lEX0hdID0gMHgwMSwK KwkJW01ITF9EQ0FQX0FET1BURVJfSURfTF0gPSAweDQxLAorCQlbTUhMX0RDQVBfVklEX0xJTktf TU9ERV0gPSBNSExfRENBUF9WSURfTElOS19SR0I0NDQKKwkJCXwgTUhMX0RDQVBfVklEX0xJTktf UFBJWEVMCisJCQl8IE1ITF9EQ0FQX1ZJRF9MSU5LXzE2QlBQLAorCQlbTUhMX0RDQVBfQVVEX0xJ TktfTU9ERV0gPSBNSExfRENBUF9BVURfTElOS18yQ0gsCisJCVtNSExfRENBUF9WSURFT19UWVBF XSA9IE1ITF9EQ0FQX1ZUX0dSQVBISUNTLAorCQlbTUhMX0RDQVBfTE9HX0RFVl9NQVBdID0gTUhM X0RDQVBfTERfR1VJLAorCQlbTUhMX0RDQVBfQkFORFdJRFRIXSA9IDB4MGYsCisJCVtNSExfRENB UF9GRUFUVVJFX0ZMQUddID0gTUhMX0RDQVBfRkVBVFVSRV9SQ1BfU1VQUE9SVAorCQkJfCBNSExf RENBUF9GRUFUVVJFX1JBUF9TVVBQT1JUCisJCQl8IE1ITF9EQ0FQX0ZFQVRVUkVfU1BfU1VQUE9S VCwKKwkJW01ITF9EQ0FQX1NDUkFUQ0hQQURfU0laRV0gPSBTSUk4NjIwX1NDUkFUQ0hQQURfU0la RSwKKwkJW01ITF9EQ0FQX0lOVF9TVEFUX1NJWkVdID0gU0lJODYyMF9JTlRfU1RBVF9TSVpFLAor CX07CisJc3RhdGljIGNvbnN0IHU4IHhkY2FwW01ITF9YRENfU0laRV0gPSB7CisJCVtNSExfWERD X0VDQlVTX1NQRUVEU10gPSBNSExfWERDX0VDQlVTX1NfMDc1CisJCQl8IE1ITF9YRENfRUNCVVNf U184QklULAorCQlbTUhMX1hEQ19UTURTX1NQRUVEU10gPSBNSExfWERDX1RNRFNfMTUwCisJCQl8 IE1ITF9YRENfVE1EU18zMDAgfCBNSExfWERDX1RNRFNfNjAwLAorCQlbTUhMX1hEQ19FQ0JVU19S T0xFU10gPSBNSExfWERDX0RFVl9IT1NULAorCQlbTUhMX1hEQ19MT0dfREVWX01BUFhdID0gTUhM X1hEQ19MRF9QSE9ORSwKKwl9OworCisJc2lpODYyMF93cml0ZV9idWYoY3R4LCBSRUdfTUhMX0RF VkNBUF8wLCBkZXZjYXAsIEFSUkFZX1NJWkUoZGV2Y2FwKSk7CisJc2lpODYyMF93cml0ZV9idWYo Y3R4LCBSRUdfTUhMX0VYVERFVkNBUF8wLCB4ZGNhcCwgQVJSQVlfU0laRSh4ZGNhcCkpOworfQor CitzdGF0aWMgdm9pZCBzaWk4NjIwX21obF9pbml0KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJ c2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfRElTQ19DVFJMNCwgVkFMX0RJU0NfQ1RSTDQo VkFMX1BVUF9PRkYsIFZBTF9QVVBfMjBLKSwKKwkJUkVHX0NCVVNfTVNDX0NPTVBBVF9DVFJMLAor CQkJQklUX0NCVVNfTVNDX0NPTVBBVF9DVFJMX1hERVZDQVBfRU4sCisJKTsKKworCXNpaTg2MjBf cGVlcl9zcGVjaWZpY19pbml0KGN0eCk7CisKKwlzaWk4NjIwX2Rpc2FibGVfaHBkKGN0eCk7CisK KwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19FRElEX0NUUkwsIEJJVF9FRElEX0NUUkxf RURJRF9GSUZPX0FERFJfQVVUTywKKwkJUkVHX0RJU0NfQ1RSTDksIEJJVF9ESVNDX0NUUkw5X1dB S0VfRFJWRkxUCisJCQl8IEJJVF9ESVNDX0NUUkw5X1dBS0VfUFVMU0VfQllQQVNTLAorCQlSRUdf VE1EUzBfQ0NUUkwxLCAweDkwLAorCQlSRUdfVE1EU19DTEtfRU4sIDB4MDEsCisJCVJFR19UTURT X0NIX0VOLCAweDExLAorCQlSRUdfQkdSX0JJQVMsIDB4ODcsCisJCVJFR19BTElDRTBfWk9ORV9D VFJMLCAweEU4LAorCQlSRUdfQUxJQ0UwX01PREVfQ1RSTCwgMHgwNCwKKwkpOworCXNpaTg2MjBf c2V0Yml0cyhjdHgsIFJFR19MTV9EREMsIEJJVF9MTV9ERENfU1dfVFBJX0VOX0RJU0FCTEVELCAw KTsKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19UUElfSFdfT1BUMywgMHg3NiwKKwkJ UkVHX1RNRFNfQ0NUUkwsIEJJVF9UTURTX0NDVFJMX1RNRFNfT0UsCisJCVJFR19UUElfRFREX0Iy LCA3OSwKKwkpOworCXNpaTg2MjBfc2V0X2Rldl9jYXAoY3R4KTsKKwlzaWk4NjIwX3dyaXRlX3Nl cShjdHgsCisJCVJFR19NRFRfWE1JVF9USU1FT1VULCAxMDAsCisJCVJFR19NRFRfWE1JVF9DVFJM LCAweDAzLAorCQlSRUdfTURUX1hGSUZPX1NUQVQsIDB4MDAsCisJCVJFR19NRFRfUkNWX1RJTUVP VVQsIDEwMCwKKwkJUkVHX0NCVVNfTElOS19DVFJMXzgsIDB4MUQsCisJKTsKKworCXNpaTg2MjBf c3RhcnRfZ2VuMl93cml0ZV9idXJzdChjdHgpOworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJ UkVHX0JJU1RfQ1RSTCwgMHgwMCwKKwkJUkVHX0NPQ19DVEwxLCAweDEwLAorCQlSRUdfQ09DX0NU TDIsIDB4MTgsCisJCVJFR19DT0NfQ1RMRiwgMHgwNywKKwkJUkVHX0NPQ19DVEwxMSwgMHhGOCwK KwkJUkVHX0NPQ19DVEwxNywgMHg2MSwKKwkJUkVHX0NPQ19DVEwxOCwgMHg0NiwKKwkJUkVHX0NP Q19DVEwxOSwgMHgxNSwKKwkJUkVHX0NPQ19DVEwxQSwgMHgwMSwKKwkJUkVHX01ITF9DT0NfQ1RM MywgQklUX01ITF9DT0NfQ1RMM19DT0NfQUVDSE9fRU4sCisJCVJFR19NSExfQ09DX0NUTDQsIDB4 MkQsCisJCVJFR19NSExfQ09DX0NUTDUsIDB4RjksCisJCVJFR19NU0NfSEVBUlRCRUFUX0NUUkws IDB4MjcsCisJKTsKKwlzaWk4NjIwX2Rpc2FibGVfZ2VuMl93cml0ZV9idXJzdChjdHgpOworCisJ LyogY3VycmVudGx5IE1ITDMgaXMgbm90IHN1cHBvcnRlZCwgc28gd2UgZm9yY2UgdmVyc2lvbiB0 byAwICovCisJc2lpODYyMF9tdF93cml0ZV9zdGF0KGN0eCwgTUhMX0RTVF9SRUcoVkVSU0lPTiks IDApOworCXNpaTg2MjBfbXRfd3JpdGVfc3RhdChjdHgsIE1ITF9EU1RfUkVHKENPTk5FQ1RFRF9S RFkpLAorCQkJICAgICAgTUhMX0RTVF9DT05OX0RDQVBfUkRZIHwgTUhMX0RTVF9DT05OX1hERVZD QVBQX1NVUFAKKwkJCSAgICAgIHwgTUhMX0RTVF9DT05OX1BPV19TVEFUKTsKKwlzaWk4NjIwX210 X3NldF9pbnQoY3R4LCBNSExfSU5UX1JFRyhSQ0hBTkdFKSwgTUhMX0lOVF9SQ19EQ0FQX0NIRyk7 Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfc2V0X21vZGUoc3RydWN0IHNpaTg2MjAgKmN0eCwg ZW51bSBzaWk4NjIwX21vZGUgbW9kZSkKK3sKKwlpZiAoY3R4LT5tb2RlID09IG1vZGUpCisJCXJl dHVybjsKKworCWN0eC0+bW9kZSA9IG1vZGU7CisKKwlzd2l0Y2ggKG1vZGUpIHsKKwljYXNlIENN X01ITDE6CisJCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJCVJFR19DQlVTX01TQ19DT01QQVRf Q1RSTCwgMHgwMiwKKwkJCVJFR19NM19DVFJMLCBWQUxfTTNfQ1RSTF9NSEwxXzJfVkFMVUUsCisJ CQlSRUdfRFBELCBCSVRfRFBEX1BXUk9OX1BMTCB8IEJJVF9EUERfUEROVFgxMgorCQkJCXwgQklU X0RQRF9PU0NfRU4sCisJCQlSRUdfQ09DX0lOVFJfTUFTSywgMAorCQkpOworCQlicmVhazsKKwlj YXNlIENNX01ITDM6CisJCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJCVJFR19NM19DVFJMLCBW QUxfTTNfQ1RSTF9NSEwzX1ZBTFVFLAorCQkJUkVHX0NPQ19DVEwwLCAweDQwLAorCQkJUkVHX01I TF9DT0NfQ1RMMSwgMHgwNworCQkpOworCQlicmVhazsKKwljYXNlIENNX0RJU0NPTk5FQ1RFRDoK KwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZGV2X2VycihjdHgtPmRldiwgIiVzIG1vZGUgJWQgbm90 IHN1cHBvcnRlZFxuIiwgX19mdW5jX18sIG1vZGUpOworCQlicmVhazsKKwl9OworCisJc2lpODYy MF9zZXRfYXV0b196b25lKGN0eCk7CisKKwlpZiAobW9kZSAhPSBDTV9NSEwxKQorCQlyZXR1cm47 CisKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19NSExfRFBfQ1RMMCwgMHhCQywKKwkJ UkVHX01ITF9EUF9DVEwxLCAweEJCLAorCQlSRUdfTUhMX0RQX0NUTDMsIDB4NDgsCisJCVJFR19N SExfRFBfQ1RMNSwgMHgzOSwKKwkJUkVHX01ITF9EUF9DVEwyLCAweDJBLAorCQlSRUdfTUhMX0RQ X0NUTDYsIDB4MkEsCisJCVJFR19NSExfRFBfQ1RMNywgMHgwOAorCSk7Cit9CisKK3N0YXRpYyB2 b2lkIHNpaTg2MjBfZGlzY29ubmVjdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNpaTg2MjBf ZGlzYWJsZV9nZW4yX3dyaXRlX2J1cnN0KGN0eCk7CisJc2lpODYyMF9zdG9wX3ZpZGVvKGN0eCk7 CisJbXNsZWVwKDUwKTsKKwlzaWk4NjIwX2NidXNfcmVzZXQoY3R4KTsKKwlzaWk4NjIwX3NldF9t b2RlKGN0eCwgQ01fRElTQ09OTkVDVEVEKTsKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJF R19DT0NfQ1RMMCwgMHg0MCwKKwkJUkVHX0NCVVMzX0NOVlQsIDB4ODQsCisJCVJFR19DT0NfQ1RM MTQsIDB4MDAsCisJCVJFR19DT0NfQ1RMMCwgMHg0MCwKKwkJUkVHX0hSWENUUkwzLCAweDA3LAor CQlSRUdfTUhMX1BMTF9DVEwwLCBWQUxfTUhMX1BMTF9DVEwwX0hETUlfQ0xLX1JBVElPXzFYCisJ CQl8IEJJVF9NSExfUExMX0NUTDBfQ1JZU1RBTF9DTEtfU0VMCisJCQl8IEJJVF9NSExfUExMX0NU TDBfWk9ORV9NQVNLX09FLAorCQlSRUdfTUhMX0RQX0NUTDAsIEJJVF9NSExfRFBfQ1RMMF9EUF9P RQorCQkJfCBCSVRfTUhMX0RQX0NUTDBfVFhfT0VfT1ZSLAorCQlSRUdfTUhMX0RQX0NUTDEsIDB4 QkIsCisJCVJFR19NSExfRFBfQ1RMMywgMHg0OCwKKwkJUkVHX01ITF9EUF9DVEw1LCAweDNGLAor CQlSRUdfTUhMX0RQX0NUTDIsIDB4MkYsCisJCVJFR19NSExfRFBfQ1RMNiwgMHgyQSwKKwkJUkVH X01ITF9EUF9DVEw3LCAweDAzCisJKTsKKwlzaWk4NjIwX2Rpc2FibGVfaHBkKGN0eCk7CisJc2lp ODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfTTNfQ1RSTCwgVkFMX00zX0NUUkxfTUhMM19WQUxV RSwKKwkJUkVHX01ITF9DT0NfQ1RMMSwgMHgwNywKKwkJUkVHX0RJU0NfQ1RSTDQsIFZBTF9ESVND X0NUUkw0KFZBTF9QVVBfT0ZGLCBWQUxfUFVQXzIwSyksCisJCVJFR19ESVNDX0NUUkw4LCAweDAw LAorCQlSRUdfRElTQ19DVFJMOSwgQklUX0RJU0NfQ1RSTDlfV0FLRV9EUlZGTFQKKwkJCXwgQklU X0RJU0NfQ1RSTDlfV0FLRV9QVUxTRV9CWVBBU1MsCisJCVJFR19JTlRfQ1RSTCwgMHgwMCwKKwkJ UkVHX01TQ19IRUFSVEJFQVRfQ1RSTCwgMHgyNywKKwkJUkVHX0RJU0NfQ1RSTDEsIDB4MjUsCisJ CVJFR19DQlVTX0RJU0NfSU5UUjAsICh1OCl+QklUX1JHTkRfUkVBRFlfSU5ULAorCQlSRUdfQ0JV U19ESVNDX0lOVFIwX01BU0ssIEJJVF9SR05EX1JFQURZX0lOVCwKKwkJUkVHX01EVF9JTlRfMSwg MHhmZiwKKwkJUkVHX01EVF9JTlRfMV9NQVNLLCAweDAwLAorCQlSRUdfTURUX0lOVF8wLCAweGZm LAorCQlSRUdfTURUX0lOVF8wX01BU0ssIDB4MDAsCisJCVJFR19DT0NfSU5UUiwgMHhmZiwKKwkJ UkVHX0NPQ19JTlRSX01BU0ssIDB4MDAsCisJCVJFR19UUlhJTlRILCAweGZmLAorCQlSRUdfVFJY SU5UTUgsIDB4MDAsCisJCVJFR19DQlVTX0lOVF8wLCAweGZmLAorCQlSRUdfQ0JVU19JTlRfMF9N QVNLLCAweDAwLAorCQlSRUdfQ0JVU19JTlRfMSwgMHhmZiwKKwkJUkVHX0NCVVNfSU5UXzFfTUFT SywgMHgwMCwKKwkJUkVHX0VNU0NJTlRSLCAweGZmLAorCQlSRUdfRU1TQ0lOVFJNQVNLLCAweDAw LAorCQlSRUdfRU1TQ0lOVFIxLCAweGZmLAorCQlSRUdfRU1TQ0lOVFJNQVNLMSwgMHgwMCwKKwkJ UkVHX0lOVFI4LCAweGZmLAorCQlSRUdfSU5UUjhfTUFTSywgMHgwMCwKKwkJUkVHX1RQSV9JTlRS X1NUMCwgMHhmZiwKKwkJUkVHX1RQSV9JTlRSX0VOLCAweDAwLAorCQlSRUdfSERDUDJYX0lOVFIw LCAweGZmLAorCQlSRUdfSERDUDJYX0lOVFIwX01BU0ssIDB4MDAsCisJCVJFR19JTlRSOSwgMHhm ZiwKKwkJUkVHX0lOVFI5X01BU0ssIDB4MDAsCisJCVJFR19JTlRSMywgMHhmZiwKKwkJUkVHX0lO VFIzX01BU0ssIDB4MDAsCisJCVJFR19JTlRSNSwgMHhmZiwKKwkJUkVHX0lOVFI1X01BU0ssIDB4 MDAsCisJCVJFR19JTlRSMiwgMHhmZiwKKwkJUkVHX0lOVFIyX01BU0ssIDB4MDAsCisJKTsKKwlt ZW1zZXQoY3R4LT5zdGF0LCAwLCBzaXplb2YoY3R4LT5zdGF0KSk7CisJbWVtc2V0KGN0eC0+eHN0 YXQsIDAsIHNpemVvZihjdHgtPnhzdGF0KSk7CisJbWVtc2V0KGN0eC0+ZGV2Y2FwLCAwLCBzaXpl b2YoY3R4LT5kZXZjYXApKTsKKwltZW1zZXQoY3R4LT54ZGV2Y2FwLCAwLCBzaXplb2YoY3R4LT54 ZGV2Y2FwKSk7CisJY3R4LT5jYnVzX3N0YXR1cyA9IDA7CisJY3R4LT5zaW5rX3R5cGUgPSBTSU5L X05PTkU7CisJa2ZyZWUoY3R4LT5lZGlkKTsKKwljdHgtPmVkaWQgPSBOVUxMOworCXNpaTg2MjBf bXRfY2xlYW51cChjdHgpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX21obF9kaXNjb25uZWN0 ZWQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJF R19ESVNDX0NUUkw0LCBWQUxfRElTQ19DVFJMNChWQUxfUFVQX09GRiwgVkFMX1BVUF8yMEspLAor CQlSRUdfQ0JVU19NU0NfQ09NUEFUX0NUUkwsCisJCQlCSVRfQ0JVU19NU0NfQ09NUEFUX0NUUkxf WERFVkNBUF9FTgorCSk7CisJc2lpODYyMF9kaXNjb25uZWN0KGN0eCk7Cit9CisKK3N0YXRpYyB2 b2lkIHNpaTg2MjBfaXJxX2Rpc2Moc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdGF0ID0g c2lpODYyMF9yZWFkYihjdHgsIFJFR19DQlVTX0RJU0NfSU5UUjApOworCisJaWYgKHN0YXQgJiBW QUxfQ0JVU19NSExfRElTQ09OKQorCQlzaWk4NjIwX21obF9kaXNjb25uZWN0ZWQoY3R4KTsKKwor CWlmIChzdGF0ICYgQklUX1JHTkRfUkVBRFlfSU5UKSB7CisJCXU4IHN0YXQyID0gc2lpODYyMF9y ZWFkYihjdHgsIFJFR19ESVNDX1NUQVQyKTsKKworCQlpZiAoKHN0YXQyICYgTVNLX0RJU0NfU1RB VDJfUkdORCkgPT0gVkFMX1JHTkRfMUspCisJCQlzaWk4NjIwX21obF9kaXNjb3ZlcihjdHgpOwor CQllbHNlIHsKKwkJCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJCQlSRUdfRElTQ19DVFJMOSwg QklUX0RJU0NfQ1RSTDlfV0FLRV9EUlZGTFQKKwkJCQkJfCBCSVRfRElTQ19DVFJMOV9OT01ITF9F U1QKKwkJCQkJfCBCSVRfRElTQ19DVFJMOV9XQUtFX1BVTFNFX0JZUEFTUywKKwkJCQlSRUdfQ0JV U19ESVNDX0lOVFIwX01BU0ssIEJJVF9SR05EX1JFQURZX0lOVAorCQkJCQl8IEJJVF9DQlVTX01I TDNfRElTQ09OX0lOVAorCQkJCQl8IEJJVF9DQlVTX01ITDEyX0RJU0NPTl9JTlQKKwkJCQkJfCBC SVRfTk9UX01ITF9FU1RfSU5UCisJCQkpOworCQl9CisJfQorCWlmIChzdGF0ICYgQklUX01ITF9F U1RfSU5UKQorCQlzaWk4NjIwX21obF9pbml0KGN0eCk7CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwg UkVHX0NCVVNfRElTQ19JTlRSMCwgc3RhdCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJx X2cyd2Ioc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihj dHgsIFJFR19NRFRfSU5UXzApOworCisJaWYgKHN0YXQgJiBCSVRfTURUX0lETEVfQUZURVJfSEFX Ql9ESVNBQkxFKQorCQlkZXZfZGJnKGN0eC0+ZGV2LCAiSEFXQiBpZGxlXG4iKTsKKworCXNpaTg2 MjBfd3JpdGUoY3R4LCBSRUdfTURUX0lOVF8wLCBzdGF0KTsKK30KKworc3RhdGljIHZvaWQgc2lp ODYyMF9zdGF0dXNfY2hhbmdlZF9kY2FwKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaWYgKGN0 eC0+c3RhdFtNSExfRFNUX0NPTk5FQ1RFRF9SRFldICYgTUhMX0RTVF9DT05OX0RDQVBfUkRZKSB7 CisJCXNpaTg2MjBfc2V0X21vZGUoY3R4LCBDTV9NSEwxKTsKKwkJc2lpODYyMF9wZWVyX3NwZWNp ZmljX2luaXQoY3R4KTsKKwkJc2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRSOV9NQVNLLCBCSVRf SU5UUjlfREVWQ0FQX0RPTkUKKwkJCSAgICAgICB8IEJJVF9JTlRSOV9FRElEX0RPTkUgfCBCSVRf SU5UUjlfRURJRF9FUlJPUik7CisJfQorfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3N0YXR1c19j aGFuZ2VkX3BhdGgoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlpZiAoY3R4LT5zdGF0W01ITF9E U1RfTElOS19NT0RFXSAmIE1ITF9EU1RfTE1fUEFUSF9FTkFCTEVEKSB7CisJCXNpaTg2MjBfbXRf d3JpdGVfc3RhdChjdHgsIE1ITF9EU1RfUkVHKExJTktfTU9ERSksCisJCQkJICAgICAgTUhMX0RT VF9MTV9DTEtfTU9ERV9OT1JNQUwKKwkJCQkgICAgICB8IE1ITF9EU1RfTE1fUEFUSF9FTkFCTEVE KTsKKwkJc2lpODYyMF9tdF9yZWFkX2RldmNhcChjdHgsIGZhbHNlKTsKKwl9IGVsc2UgeworCQlz aWk4NjIwX210X3dyaXRlX3N0YXQoY3R4LCBNSExfRFNUX1JFRyhMSU5LX01PREUpLAorCQkJCSAg ICAgIE1ITF9EU1RfTE1fQ0xLX01PREVfTk9STUFMKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHNp aTg2MjBfbXNjX21yX3dyaXRlX3N0YXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdFtN SExfRFNUX1NJWkVdLCB4c3RbTUhMX1hEU19TSVpFXTsKKworCXNpaTg2MjBfcmVhZF9idWYoY3R4 LCBSRUdfTUhMX1NUQVRfMCwgc3QsIE1ITF9EU1RfU0laRSk7CisJc2lpODYyMF9yZWFkX2J1Zihj dHgsIFJFR19NSExfRVhUU1RBVF8wLCB4c3QsIE1ITF9YRFNfU0laRSk7CisKKwlzaWk4NjIwX3Vw ZGF0ZV9hcnJheShjdHgtPnN0YXQsIHN0LCBNSExfRFNUX1NJWkUpOworCXNpaTg2MjBfdXBkYXRl X2FycmF5KGN0eC0+eHN0YXQsIHhzdCwgTUhMX1hEU19TSVpFKTsKKworCWlmIChzdFtNSExfRFNU X0NPTk5FQ1RFRF9SRFldICYgTUhMX0RTVF9DT05OX0RDQVBfUkRZKQorCQlzaWk4NjIwX3N0YXR1 c19jaGFuZ2VkX2RjYXAoY3R4KTsKKworCWlmIChzdFtNSExfRFNUX0xJTktfTU9ERV0gJiBNSExf RFNUX0xNX1BBVEhfRU5BQkxFRCkKKwkJc2lpODYyMF9zdGF0dXNfY2hhbmdlZF9wYXRoKGN0eCk7 Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXNjX21yX3NldF9pbnQoc3RydWN0IHNpaTg2MjAg KmN0eCkKK3sKKwl1OCBpbnRzW01ITF9JTlRfU0laRV07CisKKwlzaWk4NjIwX3JlYWRfYnVmKGN0 eCwgUkVHX01ITF9JTlRfMCwgaW50cywgTUhMX0lOVF9TSVpFKTsKKwlzaWk4NjIwX3dyaXRlX2J1 ZihjdHgsIFJFR19NSExfSU5UXzAsIGludHMsIE1ITF9JTlRfU0laRSk7Cit9CisKK3N0YXRpYyBz dHJ1Y3Qgc2lpODYyMF9tdF9tc2cgKnNpaTg2MjBfbXNjX21zZ19maXJzdChzdHJ1Y3Qgc2lpODYy MCAqY3R4KQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2OworCisJaWYgKGxpc3Rf ZW1wdHkoJmN0eC0+bXRfcXVldWUpKSB7CisJCWRldl9lcnIoZGV2LCAidW5leHBlY3RlZCBNU0Mg TVQgcmVzcG9uc2VcbiIpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlyZXR1cm4gbGlzdF9maXJz dF9lbnRyeSgmY3R4LT5tdF9xdWV1ZSwgc3RydWN0IHNpaTg2MjBfbXRfbXNnLCBub2RlKTsKK30K Kworc3RhdGljIHZvaWQgc2lpODYyMF9tc2NfbXRfZG9uZShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQor eworCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnID0gc2lpODYyMF9tc2NfbXNnX2ZpcnN0KGN0 eCk7CisKKwlpZiAoIW1zZykKKwkJcmV0dXJuOworCisJbXNnLT5yZXQgPSBzaWk4NjIwX3JlYWRi KGN0eCwgUkVHX01TQ19NVF9SQ1ZEX0RBVEEwKTsKKwljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVf RE9ORTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9tc2NfbXJfbXNjX21zZyhzdHJ1Y3Qgc2lp ODYyMCAqY3R4KQoreworCXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnID0gc2lpODYyMF9tc2Nf bXNnX2ZpcnN0KGN0eCk7CisJdTggYnVmWzJdOworCisJaWYgKCFtc2cpCisJCXJldHVybjsKKwor CXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfTVNDX01SX01TQ19NU0dfUkNWRF8xU1RfREFUQSwg YnVmLCAyKTsKKworCXN3aXRjaCAoYnVmWzBdKSB7CisJY2FzZSBNSExfTVNDX01TR19SQVBLOgor CQltc2ctPnJldCA9IGJ1ZlsxXTsKKwkJY3R4LT5tdF9zdGF0ZSA9IE1UX1NUQVRFX0RPTkU7CisJ CWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl9lcnIoY3R4LT5kZXYsICIlcyBtZXNzYWdlIHR5cGUg JWQsJWQgbm90IHN1cHBvcnRlZCIsCisJCQlfX2Z1bmNfXywgYnVmWzBdLCBidWZbMV0pOworCX0K K30KKworc3RhdGljIHZvaWQgc2lpODYyMF9pcnFfbXNjKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7 CisJdTggc3RhdCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfQ0JVU19JTlRfMCk7CisKKwlpZiAo c3RhdCAmIH5CSVRfQ0JVU19IUERfQ0hHKQorCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0NCVVNf SU5UXzAsIHN0YXQgJiB+QklUX0NCVVNfSFBEX0NIRyk7CisKKwlpZiAoc3RhdCAmIEJJVF9DQlVT X0hQRF9DSEcpIHsKKwkJdTggY2J1c19zdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19DQlVT X1NUQVRVUyk7CisKKwkJaWYgKChjYnVzX3N0YXQgXiBjdHgtPmNidXNfc3RhdHVzKSAmIEJJVF9D QlVTX1NUQVRVU19DQlVTX0hQRCkgeworCQkJc2lpODYyMF93cml0ZShjdHgsIFJFR19DQlVTX0lO VF8wLCBCSVRfQ0JVU19IUERfQ0hHKTsKKwkJfSBlbHNlIHsKKwkJCXN0YXQgXj0gQklUX0NCVVNf U1RBVFVTX0NCVVNfSFBEOworCQkJY2J1c19zdGF0IF49IEJJVF9DQlVTX1NUQVRVU19DQlVTX0hQ RDsKKwkJfQorCQljdHgtPmNidXNfc3RhdHVzID0gY2J1c19zdGF0OworCX0KKworCWlmIChzdGF0 ICYgQklUX0NCVVNfTVNDX01SX1dSSVRFX1NUQVQpCisJCXNpaTg2MjBfbXNjX21yX3dyaXRlX3N0 YXQoY3R4KTsKKworCWlmIChzdGF0ICYgQklUX0NCVVNfTVNDX01SX1NFVF9JTlQpCisJCXNpaTg2 MjBfbXNjX21yX3NldF9pbnQoY3R4KTsKKworCWlmIChzdGF0ICYgQklUX0NCVVNfTVNDX01UX0RP TkUpCisJCXNpaTg2MjBfbXNjX210X2RvbmUoY3R4KTsKKworCWlmIChzdGF0ICYgQklUX0NCVVNf TVNDX01SX01TQ19NU0cpCisJCXNpaTg2MjBfbXNjX21yX21zY19tc2coY3R4KTsKK30KKworc3Rh dGljIHZvaWQgc2lpODYyMF9pcnFfY29jKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJdTggc3Rh dCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfQ09DX0lOVFIpOworCisJc2lpODYyMF93cml0ZShj dHgsIFJFR19DT0NfSU5UUiwgc3RhdCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX21l cnIoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgs IFJFR19DQlVTX0lOVF8xKTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfQ0JVU19JTlRfMSwg c3RhdCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX2VkaWQoc3RydWN0IHNpaTg2MjAg KmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19JTlRSOSk7CisKKwlz aWk4NjIwX3dyaXRlKGN0eCwgUkVHX0lOVFI5LCBzdGF0KTsKKworCWlmIChzdGF0ICYgQklUX0lO VFI5X0RFVkNBUF9ET05FKQorCQljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVfRE9ORTsKK30KKwor c3RhdGljIHZvaWQgc2lpODYyMF9zY2R0X2hpZ2goc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlz aWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19JTlRSOF9NQVNLLCBCSVRfQ0VBX05FV19BVkkg fCBCSVRfQ0VBX05FV19WU0ksCisJCVJFR19UUElfU0MsIEJJVF9UUElfU0NfVFBJX09VVFBVVF9N T0RFXzBfSERNSSwKKwkpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3NjZHRfbG93KHN0cnVj dCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF93cml0ZShjdHgsIFJFR19UTURTX0NTVEFUX1Az LAorCQkgICAgICAgQklUX1RNRFNfQ1NUQVRfUDNfU0NEVF9DTFJfQVZJX0RJUworCQkgICAgICAg fCBCSVRfVE1EU19DU1RBVF9QM19DTFJfQVZJKTsKKworCXNpaTg2MjBfc3RvcF92aWRlbyhjdHgp OworCisJc2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRSOF9NQVNLLCAwKTsKK30KKworc3RhdGlj IHZvaWQgc2lpODYyMF9pcnFfc2NkdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXU4IHN0YXQg PSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0lOVFI1KTsKKworCWlmIChzdGF0ICYgQklUX0lOVFJf U0NEVF9DSEFOR0UpIHsKKwkJdTggY3N0YXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX1RNRFNf Q1NUQVRfUDMpOworCisJCWlmIChjc3RhdCAmIEJJVF9UTURTX0NTVEFUX1AzX1NDRFQpCisJCQlz aWk4NjIwX3NjZHRfaGlnaChjdHgpOworCQllbHNlCisJCQlzaWk4NjIwX3NjZHRfbG93KGN0eCk7 CisJfQorCisJc2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRSNSwgc3RhdCk7Cit9CisKK3N0YXRp YyB2b2lkIHNpaTg2MjBfbmV3X3ZzaShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXU4IHZzaWZb MTFdOworCisJc2lpODYyMF93cml0ZShjdHgsIFJFR19SWF9IRE1JX0NUUkwyLAorCQkgICAgICAg VkFMX1JYX0hETUlfQ1RSTDJfREVGVkFMCisJCSAgICAgICB8IEJJVF9SWF9IRE1JX0NUUkwyX1ZT SV9NT05fU0VMX1ZTSSk7CisJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19SWF9IRE1JX01PTl9Q S1RfSEVBREVSMSwgdnNpZiwKKwkJCSBBUlJBWV9TSVpFKHZzaWYpKTsKK30KKworc3RhdGljIHZv aWQgc2lpODYyMF9uZXdfYXZpKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF93cml0 ZShjdHgsIFJFR19SWF9IRE1JX0NUUkwyLCBWQUxfUlhfSERNSV9DVFJMMl9ERUZWQUwpOworCXNp aTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfUlhfSERNSV9NT05fUEtUX0hFQURFUjEsIGN0eC0+YXZp ZiwKKwkJCSBBUlJBWV9TSVpFKGN0eC0+YXZpZikpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIw X2lycV9pbmZyKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJdTggc3RhdCA9IHNpaTg2MjBfcmVh ZGIoY3R4LCBSRUdfSU5UUjgpCisJCSYgKEJJVF9DRUFfTkVXX1ZTSSB8IEJJVF9DRUFfTkVXX0FW SSk7CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0lOVFI4LCBzdGF0KTsKKworCWlmIChzdGF0 ICYgQklUX0NFQV9ORVdfVlNJKQorCQlzaWk4NjIwX25ld192c2koY3R4KTsKKworCWlmIChzdGF0 ICYgQklUX0NFQV9ORVdfQVZJKQorCQlzaWk4NjIwX25ld19hdmkoY3R4KTsKKworCWlmIChzdGF0 ICYgKEJJVF9DRUFfTkVXX1ZTSSB8IEJJVF9DRUFfTkVXX0FWSSkpCisJCXNpaTg2MjBfc3RhcnRf dmlkZW8oY3R4KTsKK30KKworLyogZW5kaWFuIGFnbm9zdGljLCBub24tdm9sYXRpbGUgdmVyc2lv biBvZiB0ZXN0X2JpdCAqLworc3RhdGljIGJvb2wgc2lpODYyMF90ZXN0X2JpdCh1bnNpZ25lZCBp bnQgbnIsIGNvbnN0IHU4ICphZGRyKQoreworCXJldHVybiAxICYgKGFkZHJbbnIgLyBCSVRTX1BF Ul9CWVRFXSA+PiAobnIgJSBCSVRTX1BFUl9CWVRFKSk7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5f dCBzaWk4NjIwX2lycV90aHJlYWQoaW50IGlycSwgdm9pZCAqZGF0YSkKK3sKKwlzdGF0aWMgY29u c3Qgc3RydWN0IHsKKwkJaW50IGJpdDsKKwkJdm9pZCAoKmhhbmRsZXIpKHN0cnVjdCBzaWk4NjIw ICpjdHgpOworCX0gaXJxX3ZlY1tdID0geworCQl7IEJJVF9GQVNUX0lOVFJfU1RBVF9ESVNDLCBz aWk4NjIwX2lycV9kaXNjIH0sCisJCXsgQklUX0ZBU1RfSU5UUl9TVEFUX0cyV0IsIHNpaTg2MjBf aXJxX2cyd2IgfSwKKwkJeyBCSVRfRkFTVF9JTlRSX1NUQVRfQ09DLCBzaWk4NjIwX2lycV9jb2Mg fSwKKwkJeyBCSVRfRkFTVF9JTlRSX1NUQVRfTVNDLCBzaWk4NjIwX2lycV9tc2MgfSwKKwkJeyBC SVRfRkFTVF9JTlRSX1NUQVRfTUVSUiwgc2lpODYyMF9pcnFfbWVyciB9LAorCQl7IEJJVF9GQVNU X0lOVFJfU1RBVF9FRElELCBzaWk4NjIwX2lycV9lZGlkIH0sCisJCXsgQklUX0ZBU1RfSU5UUl9T VEFUX1NDRFQsIHNpaTg2MjBfaXJxX3NjZHQgfSwKKwkJeyBCSVRfRkFTVF9JTlRSX1NUQVRfSU5G Uiwgc2lpODYyMF9pcnFfaW5mciB9LAorCX07CisJc3RydWN0IHNpaTg2MjAgKmN0eCA9IGRhdGE7 CisJdTggc3RhdHNbTEVOX0ZBU1RfSU5UUl9TVEFUXTsKKwlpbnQgaSwgcmV0OworCisJbXV0ZXhf bG9jaygmY3R4LT5sb2NrKTsKKworCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfRkFTVF9JTlRS X1NUQVQsIHN0YXRzLCBBUlJBWV9TSVpFKHN0YXRzKSk7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZ X1NJWkUoaXJxX3ZlYyk7ICsraSkKKwkJaWYgKHNpaTg2MjBfdGVzdF9iaXQoaXJxX3ZlY1tpXS5i aXQsIHN0YXRzKSkKKwkJCWlycV92ZWNbaV0uaGFuZGxlcihjdHgpOworCisJc2lpODYyMF9tdF93 b3JrKGN0eCk7CisKKwlyZXQgPSBzaWk4NjIwX2NsZWFyX2Vycm9yKGN0eCk7CisJaWYgKHJldCkg eworCQlkZXZfZXJyKGN0eC0+ZGV2LCAiRXJyb3IgZHVyaW5nIElSUSBoYW5kbGluZywgJWQuXG4i LCByZXQpOworCQlzaWk4NjIwX21obF9kaXNjb25uZWN0ZWQoY3R4KTsKKwl9CisJbXV0ZXhfdW5s b2NrKCZjdHgtPmxvY2spOworCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgdm9p ZCBzaWk4NjIwX2NhYmxlX2luKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RydWN0IGRldmlj ZSAqZGV2ID0gY3R4LT5kZXY7CisJdTggdmVyWzVdOworCWludCByZXQ7CisKKwlyZXQgPSBzaWk4 NjIwX2h3X29uKGN0eCk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKGRldiwgIkVycm9yIHBvd2Vy aW5nIG9uLCAlZC5cbiIsIHJldCk7CisJCXJldHVybjsKKwl9CisJc2lpODYyMF9od19yZXNldChj dHgpOworCisJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19WTkRfSURMLCB2ZXIsIEFSUkFZX1NJ WkUodmVyKSk7CisJcmV0ID0gc2lpODYyMF9jbGVhcl9lcnJvcihjdHgpOworCWlmIChyZXQpIHsK KwkJZGV2X2VycihkZXYsICJFcnJvciBhY2Nlc3NpbmcgSTJDIGJ1cywgJWQuXG4iLCByZXQpOwor CQlyZXR1cm47CisJfQorCisJZGV2X2luZm8oZGV2LCAiQ2hpcElEICUwMnglMDJ4OiUwMnglMDJ4 IHJldiAlMDJ4LlxuIiwgdmVyWzFdLCB2ZXJbMF0sCisJCSB2ZXJbM10sIHZlclsyXSwgdmVyWzRd KTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfRFBELAorCQkJQklUX0RQRF9QV1JPTl9QTEwg fCBCSVRfRFBEX1BETlRYMTIgfCBCSVRfRFBEX09TQ19FTik7CisKKwlzaWk4NjIwX3h0YWxfc2V0 X3JhdGUoY3R4KTsKKwlzaWk4NjIwX2Rpc2Nvbm5lY3QoY3R4KTsKKworCXNpaTg2MjBfd3JpdGVf c2VxKGN0eCwKKwkJUkVHX01ITF9DQlVTX0NUTDAsIFZBTF9NSExfQ0JVU19DVEwwX0NCVVNfRFJW X1NFTF9TVFJPTkcKKwkJCXwgVkFMX01ITF9DQlVTX0NUTDBfQ0JVU19SR05EX1ZCSUFTXzczNCwK KwkJUkVHX01ITF9DQlVTX0NUTDEsIFZBTF9NSExfQ0JVU19DVEwxXzExMTVfT0hNLAorCQlSRUdf RFBELCBCSVRfRFBEX1BXUk9OX1BMTCB8IEJJVF9EUERfUEROVFgxMiB8IEJJVF9EUERfT1NDX0VO LAorCSk7CisKKwlyZXQgPSBzaWk4NjIwX2NsZWFyX2Vycm9yKGN0eCk7CisJaWYgKHJldCkgewor CQlkZXZfZXJyKGRldiwgIkVycm9yIGFjY2Vzc2luZyBJMkMgYnVzLCAlZC5cbiIsIHJldCk7CisJ CXJldHVybjsKKwl9CisKKwllbmFibGVfaXJxKHRvX2kyY19jbGllbnQoY3R4LT5kZXYpLT5pcnEp OworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBzaWk4NjIwICpicmlkZ2VfdG9fc2lpODYyMChz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQoreworCXJldHVybiBjb250YWluZXJfb2YoYnJpZGdl LCBzdHJ1Y3Qgc2lpODYyMCwgYnJpZGdlKTsKK30KKwordm9pZCBzaWk4NjIwX2JyaWRnZV9kdW1t eShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQoreworCit9CisKK2Jvb2wgc2lpODYyMF9tb2Rl X2ZpeHVwKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCSAgIGNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlLAorCQkgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSkKK3sKKwlzdHJ1Y3Qgc2lpODYyMCAqY3R4ID0gYnJpZGdlX3RvX3NpaTg2MjAoYnJp ZGdlKTsKKwlib29sIHJldCA9IGZhbHNlOworCWludCBtYXhfY2xvY2sgPSA3NDI1MDsKKworCW11 dGV4X2xvY2soJmN0eC0+bG9jayk7CisKKwlpZiAobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFH X0lOVEVSTEFDRSkKKwkJZ290byBvdXQ7CisKKwlpZiAoY3R4LT5kZXZjYXBbTUhMX0RDQVBfVklE X0xJTktfTU9ERV0gJiBNSExfRENBUF9WSURfTElOS19QUElYRUwpCisJCW1heF9jbG9jayA9IDMw MDAwMDsKKworCXJldCA9IG1vZGUtPmNsb2NrIDw9IG1heF9jbG9jazsKKworb3V0OgorCW11dGV4 X3VubG9jaygmY3R4LT5sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CisKKworc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIHNpaTg2MjBfYnJpZGdlX2Z1bmNzID0geworCS5wcmVf ZW5hYmxlID0gc2lpODYyMF9icmlkZ2VfZHVtbXksCisJLmVuYWJsZSA9IHNpaTg2MjBfYnJpZGdl X2R1bW15LAorCS5kaXNhYmxlID0gc2lpODYyMF9icmlkZ2VfZHVtbXksCisJLnBvc3RfZGlzYWJs ZSA9IHNpaTg2MjBfYnJpZGdlX2R1bW15LAorCS5tb2RlX2ZpeHVwID0gc2lpODYyMF9tb2RlX2Zp eHVwLAorfTsKKworc3RhdGljIGludCBzaWk4NjIwX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpj bGllbnQsCisJCQkgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgKmlkKQoreworCXN0cnVjdCBk ZXZpY2UgKmRldiA9ICZjbGllbnQtPmRldjsKKwlzdHJ1Y3Qgc2lpODYyMCAqY3R4OworCWludCBy ZXQ7CisKKwljdHggPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKmN0eCksIEdGUF9LRVJORUwp OworCWlmICghY3R4KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWN0eC0+ZGV2ID0gZGV2OworCW11 dGV4X2luaXQoJmN0eC0+bG9jayk7CisJSU5JVF9MSVNUX0hFQUQoJmN0eC0+bXRfcXVldWUpOwor CisJY3R4LT5jbGtfeHRhbCA9IGRldm1fY2xrX2dldChkZXYsICJ4dGFsIik7CisJaWYgKElTX0VS UihjdHgtPmNsa194dGFsKSkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgeHRhbCBj bG9jayBmcm9tIERUXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIoY3R4LT5jbGtfeHRhbCk7CisJfQor CisJaWYgKCFjbGllbnQtPmlycSkgeworCQlkZXZfZXJyKGRldiwgIm5vIGlycSBwcm92aWRlZFxu Iik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlpcnFfc2V0X3N0YXR1c19mbGFncyhjbGllbnQt PmlycSwgSVJRX05PQVVUT0VOKTsKKwlyZXQgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKGRl diwgY2xpZW50LT5pcnEsIE5VTEwsCisJCQlzaWk4NjIwX2lycV90aHJlYWQsIElSUUZfVFJJR0dF Ul9ISUdIIHwgSVJRRl9PTkVTSE9ULAorCQkJInNpaTg2MjAiLCBjdHgpOworCisJY3R4LT5ncGlv X3Jlc2V0ID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAicmVzZXQiLCBHUElPRF9PVVRfSElHSCk7CisJ aWYgKElTX0VSUihjdHgtPmdwaW9fcmVzZXQpKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRv IGdldCByZXNldCBncGlvIGZyb20gRFRcbiIpOworCQlyZXR1cm4gUFRSX0VSUihjdHgtPmdwaW9f cmVzZXQpOworCX0KKworCWN0eC0+c3VwcGxpZXNbMF0uc3VwcGx5ID0gImN2Y2MxMCI7CisJY3R4 LT5zdXBwbGllc1sxXS5zdXBwbHkgPSAiaW92Y2MxOCI7CisJcmV0ID0gZGV2bV9yZWd1bGF0b3Jf YnVsa19nZXQoZGV2LCAyLCBjdHgtPnN1cHBsaWVzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0 OworCisJaTJjX3NldF9jbGllbnRkYXRhKGNsaWVudCwgY3R4KTsKKworCWN0eC0+YnJpZGdlLmZ1 bmNzID0gJnNpaTg2MjBfYnJpZGdlX2Z1bmNzOworCWN0eC0+YnJpZGdlLm9mX25vZGUgPSBkZXYt Pm9mX25vZGU7CisJZHJtX2JyaWRnZV9hZGQoJmN0eC0+YnJpZGdlKTsKKworCXNpaTg2MjBfY2Fi bGVfaW4oY3R4KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNpaTg2MjBfcmVtb3Zl KHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IHNpaTg2MjAgKmN0eCA9IGky Y19nZXRfY2xpZW50ZGF0YShjbGllbnQpOworCisJZGlzYWJsZV9pcnEodG9faTJjX2NsaWVudChj dHgtPmRldiktPmlycSk7CisJbXV0ZXhfbG9jaygmY3R4LT5sb2NrKTsKKwlkcm1fYnJpZGdlX3Jl bW92ZSgmY3R4LT5icmlkZ2UpOworCXNpaTg2MjBfaHdfb2ZmKGN0eCk7CisJbXV0ZXhfdW5sb2Nr KCZjdHgtPmxvY2spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2Zf ZGV2aWNlX2lkIHNpaTg2MjBfZHRfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gInNpbCxz aWk4NjIwIiB9LAorCXsgfSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzaWk4NjIwX2R0 X21hdGNoKTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIHNpaTg2MjBfaWRb XSA9IHsKKwl7ICJTSUk4NjIwIiwgMCB9LAorCXsgfSwKK307CisKK01PRFVMRV9ERVZJQ0VfVEFC TEUoaTJjLCBzaWk4NjIwX2lkKTsKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBzaWk4NjIwX2Ry aXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZQk9ICJzaWk4NjIwIiwKKwkJLm93bmVyCT0g VEhJU19NT0RVTEUsCisJCS5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX3B0cihzaWk4NjIwX2R0 X21hdGNoKSwKKwl9LAorCS5wcm9iZQkJPSBzaWk4NjIwX3Byb2JlLAorCS5yZW1vdmUJCT0gc2lp ODYyMF9yZW1vdmUsCisJLmlkX3RhYmxlID0gc2lpODYyMF9pZCwKK307CisKK21vZHVsZV9pMmNf ZHJpdmVyKHNpaTg2MjBfZHJpdmVyKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuaCBiL2RyaXZlcnMvZ3B1 L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi42ZmY2MTZhCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9z aWwtc2lpODYyMC5oCkBAIC0wLDAgKzEsMTUxNyBAQAorLyoKKyAqIFJlZ2lzdGVycyBvZiBTaWxp Y29uIEltYWdlIFNpSTg2MjAgTW9iaWxlIEhEIFRyYW5zbWl0dGVyCisgKgorICogQ29weXJpZ2h0 IChDKSAyMDE1LCBTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorICogQW5kcnplaiBIYWpk YSA8YS5oYWpkYUBzYW1zdW5nLmNvbT4KKyAqCisgKiBCYXNlZCBvbiBNSEwgZHJpdmVyIGZvciBB bmRyb2lkIGRldmljZXMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBTaWxpY29uIEltYWdl LCBJbmMuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaWZuZGVmIF9fU0lMX1NJSTg2 MjBfSF9fCisjZGVmaW5lIF9fU0lMX1NJSTg2MjBfSF9fCisKKy8qIFZlbmRvciBJRCBMb3cgYnl0 ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMSAqLworI2RlZmluZSBSRUdfVk5EX0lETAkJCQkweDAwMDAK KworLyogVmVuZG9yIElEIEhpZ2ggYnl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfVk5EX0lESAkJCQkweDAwMDEKKworLyogRGV2aWNlIElEIExvdyBieXRlLCBkZWZhdWx0 IHZhbHVlOiAweDYwICovCisjZGVmaW5lIFJFR19ERVZfSURMCQkJCTB4MDAwMgorCisvKiBEZXZp Y2UgSUQgSGlnaCBieXRlLCBkZWZhdWx0IHZhbHVlOiAweDg2ICovCisjZGVmaW5lIFJFR19ERVZf SURICQkJCTB4MDAwMworCisvKiBEZXZpY2UgUmV2aXNpb24sIGRlZmF1bHQgdmFsdWU6IDB4MTAg Ki8KKyNkZWZpbmUgUkVHX0RFVl9SRVYJCQkJMHgwMDA0CisKKy8qIE9UUCBEQllURTUxMCwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfT1RQX0RCWVRFNTEwCQkJMHgwMDA2CisK Ky8qIFN5c3RlbSBDb250cm9sICMxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19TWVNfQ1RSTDEJCQkJMHgwMDA4CisjZGVmaW5lIEJJVF9TWVNfQ1RSTDFfT1RQVk1VVEVPVlJf U0VUCQlCSVQoNykKKyNkZWZpbmUgQklUX1NZU19DVFJMMV9WU1lOQ1BJTgkJCUJJVCg2KQorI2Rl ZmluZSBCSVRfU1lTX0NUUkwxX09UUEFEUk9QT1ZSX1NFVAkJQklUKDUpCisjZGVmaW5lIEJJVF9T WVNfQ1RSTDFfQkxPQ0tfRERDX0JZX0hQRAkJQklUKDQpCisjZGVmaW5lIEJJVF9TWVNfQ1RSTDFf T1RQMlhWT1ZSX0VOCQlCSVQoMykKKyNkZWZpbmUgQklUX1NZU19DVFJMMV9PVFAyWEFPVlJfRU4J CUJJVCgyKQorI2RlZmluZSBCSVRfU1lTX0NUUkwxX1RYX0NUUkxfSERNSQkJQklUKDEpCisjZGVm aW5lIEJJVF9TWVNfQ1RSTDFfT1RQQU1VVEVPVlJfU0VUCQlCSVQoMCkKKworLyogU3lzdGVtIENv bnRyb2wgRFBELCBkZWZhdWx0IHZhbHVlOiAweDkwICovCisjZGVmaW5lIFJFR19EUEQJCQkJCTB4 MDAwYgorI2RlZmluZSBCSVRfRFBEX1BXUk9OX1BMTAkJCUJJVCg3KQorI2RlZmluZSBCSVRfRFBE X1BETlRYMTIJCQkJQklUKDYpCisjZGVmaW5lIEJJVF9EUERfUEROUlgxMgkJCQlCSVQoNSkKKyNk ZWZpbmUgQklUX0RQRF9PU0NfRU4JCQkJQklUKDQpCisjZGVmaW5lIEJJVF9EUERfUFdST05fSFNJ QwkJCUJJVCgzKQorI2RlZmluZSBCSVRfRFBEX1BESURDS19OCQkJQklUKDIpCisjZGVmaW5lIEJJ VF9EUERfUERfTUhMX0NMS19OCQkJQklUKDEpCisKKy8qIER1YWwgbGluayBDb250cm9sLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19EQ1RMCQkJCTB4MDAwZAorI2RlZmluZSBC SVRfRENUTF9URE1fTENMS19QSEFTRQkJCUJJVCg3KQorI2RlZmluZSBCSVRfRENUTF9IU0lDX0NM S19QSEFTRQkJCUJJVCg2KQorI2RlZmluZSBCSVRfRENUTF9DVFNfVENLX1BIQVNFCQkJQklUKDUp CisjZGVmaW5lIEJJVF9EQ1RMX0VYVF9ERENfU0VMCQkJQklUKDQpCisjZGVmaW5lIEJJVF9EQ1RM X1RSQU5TQ09ERQkJCUJJVCgzKQorI2RlZmluZSBCSVRfRENUTF9IU0lDX1JYX1NUUk9CRV9QSEFT RQkJQklUKDIpCisjZGVmaW5lIEJJVF9EQ1RMX0hTSUNfVFhfQklTVF9TVEFSVF9TRUwJCUJJVCgx KQorI2RlZmluZSBCSVRfRENUTF9UQ0xLTlhfUEhBU0UJCQlCSVQoMCkKKworLyogUFdEIFNvZnR3 YXJlIFJlc2V0LCBkZWZhdWx0IHZhbHVlOiAweDIwICovCisjZGVmaW5lIFJFR19QV0RfU1JTVAkJ CQkweDAwMGUKKyNkZWZpbmUgQklUX1BXRF9TUlNUX0NPQ19ET0NfUlNUCQlCSVQoNykKKyNkZWZp bmUgQklUX1BXRF9TUlNUX0NCVVNfUlNUX1NXCQlCSVQoNikKKyNkZWZpbmUgQklUX1BXRF9TUlNU X0NCVVNfUlNUX1NXX0VOCQlCSVQoNSkKKyNkZWZpbmUgQklUX1BXRF9TUlNUX01ITEZJRk9fUlNU CQlCSVQoNCkKKyNkZWZpbmUgQklUX1BXRF9TUlNUX0NCVVNfUlNUCQkJQklUKDMpCisjZGVmaW5l IEJJVF9QV0RfU1JTVF9TV19SU1RfQVVUTwkJQklUKDIpCisjZGVmaW5lIEJJVF9QV0RfU1JTVF9I RENQMlhfU1dfUlNUCQlCSVQoMSkKKyNkZWZpbmUgQklUX1BXRF9TUlNUX1NXX1JTVAkJCUJJVCgw KQorCisvKiBBS1NWXzEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0FLU1Zf MQkJCQkweDAwMWQKKworLyogVmlkZW8gSCBSZXNvbHV0aW9uICMxLCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCisjZGVmaW5lIFJFR19IX1JFU0wJCQkJMHgwMDNhCisKKy8qIFZpZGVvIE1vZGUsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1ZJRF9NT0RFCQkJCTB4MDA0YQorI2Rl ZmluZSBCSVRfVklEX01PREVfTTEwODBQCQkJQklUKDYpCisKKy8qIFZpZGVvIElucHV0IE1vZGUs IGRlZmF1bHQgdmFsdWU6IDB4YzAgKi8KKyNkZWZpbmUgUkVHX1ZJRF9PVlJSRAkJCQkweDAwNTEK KyNkZWZpbmUgQklUX1ZJRF9PVlJSRF9QUF9BVVRPX0RJU0FCTEUJCUJJVCg3KQorI2RlZmluZSBC SVRfVklEX09WUlJEX00xMDgwUF9PVlJSRAkJQklUKDYpCisjZGVmaW5lIEJJVF9WSURfT1ZSUkRf TUlOSVZTWU5DX09OCQlCSVQoNSkKKyNkZWZpbmUgQklUX1ZJRF9PVlJSRF8zRENPTlZfRU5fRlJB TUVfUEFDSwlCSVQoNCkKKyNkZWZpbmUgQklUX1ZJRF9PVlJSRF9FTkFCTEVfQVVUT19QQVRIX0VO CUJJVCgzKQorI2RlZmluZSBCSVRfVklEX09WUlJEX0VOUkdCMllDQkNSX09WUlJECQlCSVQoMikK KyNkZWZpbmUgQklUX1ZJRF9PVlJSRF9FTkRPV05TQU1QTEVfT1ZSUkQJQklUKDApCisKKy8qIEky QyBBZGRyZXNzIHJlYXNzaWdubWVudCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfUEFHRV9NSExTUEVDX0FERFIJCQkweDAwNTcKKyNkZWZpbmUgUkVHX1BBR0U3X0FERFIJCQkJ MHgwMDU4CisjZGVmaW5lIFJFR19QQUdFOF9BRERSCQkJCTB4MDA1YworCisvKiBGYXN0IEludGVy cnVwdCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0ZBU1RfSU5U Ul9TVEFUCQkJMHgwMDVmCisjZGVmaW5lIExFTl9GQVNUX0lOVFJfU1RBVAkJCTcKKyNkZWZpbmUg QklUX0ZBU1RfSU5UUl9TVEFUX1RJTVIJCQk4CisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9J TlQyCQkJOQorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfRERDCQkJMTAKKyNkZWZpbmUgQklU X0ZBU1RfSU5UUl9TVEFUX1NDRFQJCQkxMQorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfSU5G UgkJCTEzCisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9FRElECQkJMTQKKyNkZWZpbmUgQklU X0ZBU1RfSU5UUl9TVEFUX0hEQ1AJCQkxNQorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfTVND CQkJMTYKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX01FUlIJCQkxNworI2RlZmluZSBCSVRf RkFTVF9JTlRSX1NUQVRfRzJXQgkJCTE4CisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9HMldC X0VSUgkJMTkKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0RJU0MJCQkyOAorI2RlZmluZSBC SVRfRkFTVF9JTlRSX1NUQVRfQkxPQ0sJCTMwCisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9M VFJOCQkJMzEKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0hEQ1AyCQkzMgorI2RlZmluZSBC SVRfRkFTVF9JTlRSX1NUQVRfVERNCQkJNDIKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0NP QwkJCTUxCisKKy8qIEdQSU8gQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgxNSAqLworI2RlZmlu ZSBSRUdfR1BJT19DVFJMMQkJCQkweDAwNmUKKyNkZWZpbmUgQklUX0NUUkwxX0dQSU9fSV84CQkJ QklUKDUpCisjZGVmaW5lIEJJVF9DVFJMMV9HUElPX09FTl84CQkJQklUKDQpCisjZGVmaW5lIEJJ VF9DVFJMMV9HUElPX0lfNwkJCUJJVCgzKQorI2RlZmluZSBCSVRfQ1RSTDFfR1BJT19PRU5fNwkJ CUJJVCgyKQorI2RlZmluZSBCSVRfQ1RSTDFfR1BJT19JXzYJCQlCSVQoMSkKKyNkZWZpbmUgQklU X0NUUkwxX0dQSU9fT0VOXzYJCQlCSVQoMCkKKworLyogSW50ZXJydXB0IENvbnRyb2wsIGRlZmF1 bHQgdmFsdWU6IDB4MDYgKi8KKyNkZWZpbmUgUkVHX0lOVF9DVFJMCQkJCTB4MDA2ZgorI2RlZmlu ZSBCSVRfSU5UX0NUUkxfU09GVFdBUkVfV1AJCUJJVCg3KQorI2RlZmluZSBCSVRfSU5UX0NUUkxf SU5UUl9PRAkJCUJJVCgyKQorI2RlZmluZSBCSVRfSU5UX0NUUkxfSU5UUl9QT0xBUklUWQkJQklU KDEpCisKKy8qIEludGVycnVwdCBTdGF0ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfSU5UUl9TVEFURQkJCQkweDAwNzAKKyNkZWZpbmUgQklUX0lOVFJfU1RBVEVfSU5UUl9T VEFURQkJQklUKDApCisKKy8qIEludGVycnVwdCBTb3VyY2UgIzEsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFIxCQkJCTB4MDA3MQorCisvKiBJbnRlcnJ1cHQgU291cmNl ICMyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19JTlRSMgkJCQkweDAwNzIK KworLyogSW50ZXJydXB0IFNvdXJjZSAjMywgZGVmYXVsdCB2YWx1ZTogMHgwMSAqLworI2RlZmlu ZSBSRUdfSU5UUjMJCQkJMHgwMDczCisjZGVmaW5lIEJJVF9ERENfQ01EX0RPTkUJCQlCSVQoMykK KworLyogSW50ZXJydXB0IFNvdXJjZSAjNSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfSU5UUjUJCQkJMHgwMDc0CisKKy8qIEludGVycnVwdCAjMSBNYXNrLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19JTlRSMV9NQVNLCQkJCTB4MDA3NQorCisvKiBJbnRl cnJ1cHQgIzIgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSU5UUjJf TUFTSwkJCQkweDAwNzYKKworLyogSW50ZXJydXB0ICMzIE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFIzX01BU0sJCQkJMHgwMDc3CisKKy8qIEludGVycnVwdCAj NSBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19JTlRSNV9NQVNLCQkJ CTB4MDA3OAorI2RlZmluZSBCSVRfSU5UUl9TQ0RUX0NIQU5HRQkJCUJJVCgwKQorCisvKiBIb3Qg UGx1ZyBDb25uZWN0aW9uIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4NDUgKi8KKyNkZWZpbmUg UkVHX0hQRF9DVFJMCQkJCTB4MDA3OQorI2RlZmluZSBCSVRfSFBEX0NUUkxfSFBEX0RTX1NJR05B TAkJQklUKDcpCisjZGVmaW5lIEJJVF9IUERfQ1RSTF9IUERfT1VUX09EX0VOCQlCSVQoNikKKyNk ZWZpbmUgQklUX0hQRF9DVFJMX0hQRF9ISUdICQkJQklUKDUpCisjZGVmaW5lIEJJVF9IUERfQ1RS TF9IUERfT1VUX09WUl9FTgkJQklUKDQpCisjZGVmaW5lIEJJVF9IUERfQ1RSTF9HUElPX0lfMQkJ CUJJVCgzKQorI2RlZmluZSBCSVRfSFBEX0NUUkxfR1BJT19PRU5fMQkJCUJJVCgyKQorI2RlZmlu ZSBCSVRfSFBEX0NUUkxfR1BJT19JXzAJCQlCSVQoMSkKKyNkZWZpbmUgQklUX0hQRF9DVFJMX0dQ SU9fT0VOXzAJCQlCSVQoMCkKKworLyogR1BJTyBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDU1 ICovCisjZGVmaW5lIFJFR19HUElPX0NUUkwJCQkJMHgwMDdhCisjZGVmaW5lIEJJVF9DVFJMX0dQ SU9fSV81CQkJQklUKDcpCisjZGVmaW5lIEJJVF9DVFJMX0dQSU9fT0VOXzUJCQlCSVQoNikKKyNk ZWZpbmUgQklUX0NUUkxfR1BJT19JXzQJCQlCSVQoNSkKKyNkZWZpbmUgQklUX0NUUkxfR1BJT19P RU5fNAkJCUJJVCg0KQorI2RlZmluZSBCSVRfQ1RSTF9HUElPX0lfMwkJCUJJVCgzKQorI2RlZmlu ZSBCSVRfQ1RSTF9HUElPX09FTl8zCQkJQklUKDIpCisjZGVmaW5lIEJJVF9DVFJMX0dQSU9fSV8y CQkJQklUKDEpCisjZGVmaW5lIEJJVF9DVFJMX0dQSU9fT0VOXzIJCQlCSVQoMCkKKworLyogSW50 ZXJydXB0IFNvdXJjZSA3LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19JTlRS NwkJCQkweDAwN2IKKworLyogSW50ZXJydXB0IFNvdXJjZSA4LCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19JTlRSOAkJCQkweDAwN2MKKworLyogSW50ZXJydXB0ICM3IE1hc2ss IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFI3X01BU0sJCQkJMHgwMDdk CisKKy8qIEludGVycnVwdCAjOCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5l IFJFR19JTlRSOF9NQVNLCQkJCTB4MDA3ZQorI2RlZmluZSBCSVRfQ0VBX05FV19WU0kJCQkJQklU KDIpCisjZGVmaW5lIEJJVF9DRUFfTkVXX0FWSQkJCQlCSVQoMSkKKworLyogSUVFRSwgZGVmYXVs dCB2YWx1ZTogMHgxMCAqLworI2RlZmluZSBSRUdfVE1EU19DQ1RSTAkJCQkweDAwODAKKyNkZWZp bmUgQklUX1RNRFNfQ0NUUkxfVE1EU19PRQkJCUJJVCg0KQorCisvKiBUTURTIENvbnRyb2wgIzQs IGRlZmF1bHQgdmFsdWU6IDB4MDIgKi8KKyNkZWZpbmUgUkVHX1RNRFNfQ1RSTDQJCQkJMHgwMDg1 CisjZGVmaW5lIEJJVF9UTURTX0NUUkw0X1NDRFRfQ0tEVF9TRUwJCUJJVCgxKQorI2RlZmluZSBC SVRfVE1EU19DVFJMNF9UWF9FTl9CWV9TQ0RUCQlCSVQoMCkKKworLyogQklTVCBDTlRMLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19CSVNUX0NUUkwJCQkJMHgwMGJiCisjZGVm aW5lIEJJVF9SWEJJU1RfVkdCX0VOCQkJQklUKDcpCisjZGVmaW5lIEJJVF9UWEJJU1RfVkdCX0VO CQkJQklUKDYpCisjZGVmaW5lIEJJVF9CSVNUX1NUQVJUX1NFTAkJCUJJVCg1KQorI2RlZmluZSBC SVRfQklTVF9TVEFSVF9CSVQJCQlCSVQoNCkKKyNkZWZpbmUgQklUX0JJU1RfQUxXQVlTX09OCQkJ QklUKDMpCisjZGVmaW5lIEJJVF9CSVNUX1RSQU5TCQkJCUJJVCgyKQorI2RlZmluZSBCSVRfQklT VF9SRVNFVAkJCQlCSVQoMSkKKyNkZWZpbmUgQklUX0JJU1RfRU4JCQkJQklUKDApCisKKy8qIEJJ U1QgRFVSQVRJT04wLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19CSVNUX1RF U1RfU0VMCQkJMHgwMGJkCisjZGVmaW5lIE1TS19CSVNUX1RFU1RfU0VMX0JJU1RfUEFUVF9TRUwJ CTB4MGYKKworLyogQklTVCBWSURFT19NT0RFLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19CSVNUX1ZJREVPX01PREUJCQkweDAwYmUKKyNkZWZpbmUgTVNLX0JJU1RfVklERU9f TU9ERV9CSVNUX1ZJREVPX01PREVfM18wCTB4MGYKKworLyogQklTVCBEVVJBVElPTjAsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0JJU1RfRFVSQVRJT05fMAkJCTB4MDBiZgor CisvKiBCSVNUIERVUkFUSU9OMSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf QklTVF9EVVJBVElPTl8xCQkJMHgwMGMwCisKKy8qIEJJU1QgRFVSQVRJT04yLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19CSVNUX0RVUkFUSU9OXzIJCQkweDAwYzEKKworLyog QklTVCA4QklUX1BBVFRFUk4sIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0JJ U1RfOEJJVF9QQVRURVJOCQkJMHgwMGMyCisKKy8qIExNIEREQywgZGVmYXVsdCB2YWx1ZTogMHg4 MCAqLworI2RlZmluZSBSRUdfTE1fRERDCQkJCTB4MDBjNworI2RlZmluZSBCSVRfTE1fRERDX1NX X1RQSV9FTl9ESVNBQkxFRAkJQklUKDcpCisKKyNkZWZpbmUgQklUX0xNX0REQ19WSURFT19NVVRF X0VOCQlCSVQoNSkKKyNkZWZpbmUgQklUX0xNX0REQ19ERENfVFBJX1NXCQkJQklUKDIpCisjZGVm aW5lIEJJVF9MTV9ERENfRERDX0dSQU5UCQkJQklUKDEpCisjZGVmaW5lIEJJVF9MTV9ERENfRERD X0dQVV9SRVFVRVNUCQlCSVQoMCkKKworLyogRERDIEkyQyBNYW51YWwsIGRlZmF1bHQgdmFsdWU6 IDB4MDMgKi8KKyNkZWZpbmUgUkVHX0REQ19NQU5VQUwJCQkJMHgwMGVjCisjZGVmaW5lIEJJVF9E RENfTUFOVUFMX01BTl9EREMJCQlCSVQoNykKKyNkZWZpbmUgQklUX0REQ19NQU5VQUxfVlBfU0VM CQkJQklUKDYpCisjZGVmaW5lIEJJVF9ERENfTUFOVUFMX0RTREEJCQlCSVQoNSkKKyNkZWZpbmUg QklUX0REQ19NQU5VQUxfRFNDTAkJCUJJVCg0KQorI2RlZmluZSBCSVRfRERDX01BTlVBTF9HQ1Bf SFdfQ1RMX0VOCQlCSVQoMykKKyNkZWZpbmUgQklUX0REQ19NQU5VQUxfRERDTV9BQk9SVF9XUAkJ QklUKDIpCisjZGVmaW5lIEJJVF9ERENfTUFOVUFMX0lPX0RTREEJCQlCSVQoMSkKKyNkZWZpbmUg QklUX0REQ19NQU5VQUxfSU9fRFNDTAkJCUJJVCgwKQorCisvKiBEREMgSTJDIFRhcmdldCBTbGF2 ZSBBZGRyZXNzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ERENfQUREUgkJ CQkweDAwZWQKKyNkZWZpbmUgTVNLX0REQ19BRERSX0REQ19BRERSCQkJMHhmZQorCisvKiBEREMg STJDIFRhcmdldCBTZWdtZW50IEFkZHJlc3MsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX0REQ19TRUdNCQkJCTB4MDBlZQorCisvKiBEREMgSTJDIFRhcmdldCBPZmZzZXQgQWRk cmVzcywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRERDX09GRlNFVAkJCQkw eDAwZWYKKworLyogRERDIEkyQyBEYXRhIEluIGNvdW50ICMxLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19ERENfRElOX0NOVDEJCQkweDAwZjAKKworLyogRERDIEkyQyBEYXRh IEluIGNvdW50ICMyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ERENfRElO X0NOVDIJCQkweDAwZjEKKyNkZWZpbmUgTVNLX0REQ19ESU5fQ05UMl9ERENfRElOX0NOVF85XzgJ MHgwMworCisvKiBEREMgSTJDIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwNCAqLworI2RlZmlu ZSBSRUdfRERDX1NUQVRVUwkJCQkweDAwZjIKKyNkZWZpbmUgQklUX0REQ19TVEFUVVNfRERDX0JV U19MT1cJCUJJVCg2KQorI2RlZmluZSBCSVRfRERDX1NUQVRVU19ERENfTk9fQUNLCQlCSVQoNSkK KyNkZWZpbmUgQklUX0REQ19TVEFUVVNfRERDX0kyQ19JTl9QUk9HCQlCSVQoNCkKKyNkZWZpbmUg QklUX0REQ19TVEFUVVNfRERDX0ZJRk9fRlVMTAkJQklUKDMpCisjZGVmaW5lIEJJVF9ERENfU1RB VFVTX0REQ19GSUZPX0VNUFRZCQlCSVQoMikKKyNkZWZpbmUgQklUX0REQ19TVEFUVVNfRERDX0ZJ Rk9fUkVBRF9JTl9TVUUJQklUKDEpCisjZGVmaW5lIEJJVF9ERENfU1RBVFVTX0REQ19GSUZPX1dS SVRFX0lOX1VTRQlCSVQoMCkKKworLyogRERDIEkyQyBDb21tYW5kLCBkZWZhdWx0IHZhbHVlOiAw eDcwICovCisjZGVmaW5lIFJFR19ERENfQ01ECQkJCTB4MDBmMworI2RlZmluZSBCSVRfRERDX0NN RF9IRENQX0REQ19FTgkJCUJJVCg2KQorI2RlZmluZSBCSVRfRERDX0NNRF9TREFfREVMX0VOCQkJ QklUKDUpCisjZGVmaW5lIEJJVF9ERENfQ01EX0REQ19GTFRfRU4JCQlCSVQoNCkKKworI2RlZmlu ZSBNU0tfRERDX0NNRF9ERENfQ01ECQkJMHgwZgorI2RlZmluZSBWQUxfRERDX0NNRF9FTkhfRERD X1JFQURfTk9fQUNLCQkweDA0CisjZGVmaW5lIFZBTF9ERENfQ01EX0REQ19DTURfQ0xFQVJfRklG TwkJMHgwOQorI2RlZmluZSBWQUxfRERDX0NNRF9ERENfQ01EX0FCT1JUCQkweDBmCisKKy8qIERE QyBJMkMgRklGTyBEYXRhIEluL091dCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfRERDX0RBVEEJCQkJMHgwMGY0CisKKy8qIEREQyBJMkMgRGF0YSBPdXQgQ291bnRlciwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRERDX0RPVVRfQ05UCQkJMHgwMGY1Cisj ZGVmaW5lIEJJVF9ERENfRE9VVF9DTlRfRERDX0RFTEFZX0NOVF84CUJJVCg3KQorI2RlZmluZSBN U0tfRERDX0RPVVRfQ05UX0REQ19EQVRBX09VVF9DTlQJMHgxZgorCisvKiBEREMgSTJDIERlbGF5 IENvdW50LCBkZWZhdWx0IHZhbHVlOiAweDE0ICovCisjZGVmaW5lIFJFR19ERENfREVMQVlfQ05U CQkJMHgwMGY2CisKKy8qIFRlc3QgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHg4MCAqLworI2Rl ZmluZSBSRUdfVEVTVF9UWENUUkwJCQkJMHgwMGY3CisjZGVmaW5lIEJJVF9URVNUX1RYQ1RSTF9S Q0xLX1JFRl9TRUwJCUJJVCg3KQorI2RlZmluZSBCSVRfVEVTVF9UWENUUkxfUENMS19SRUZfU0VM CQlCSVQoNikKKyNkZWZpbmUgTVNLX1RFU1RfVFhDVFJMX0JZUEFTU19QTExfQ0xLCQkweDNjCisj ZGVmaW5lIEJJVF9URVNUX1RYQ1RSTF9IRE1JX01PREUJCUJJVCgxKQorI2RlZmluZSBCSVRfVEVT VF9UWENUUkxfVFNUX1BMTENLCQlCSVQoMCkKKworLyogQ0JVUyBBZGRyZXNzLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19QQUdFX0NCVVNfQUREUgkJCTB4MDBmOAorCisvKiBJ MkMgRGV2aWNlIEFkZHJlc3MgcmUtYXNzaWdubWVudCAqLworI2RlZmluZSBSRUdfUEFHRTFfQURE UgkJCQkweDAwZmMKKyNkZWZpbmUgUkVHX1BBR0UyX0FERFIJCQkJMHgwMGZkCisjZGVmaW5lIFJF R19QQUdFM19BRERSCQkJCTB4MDBmZQorI2RlZmluZSBSRUdfSFdfVFBJX0FERFIJCQkJMHgwMGZm CisKKy8qIFVTQlQgQ1RSTDAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1VU U1JTVAkJCQkweDAxMDAKKyNkZWZpbmUgQklUX1VUU1JTVF9GQ19TUlNUCQkJQklUKDUpCisjZGVm aW5lIEJJVF9VVFNSU1RfS0VFUEVSX1NSU1QJCQlCSVQoNCkKKyNkZWZpbmUgQklUX1VUU1JTVF9I VFhfU1JTVAkJCUJJVCgzKQorI2RlZmluZSBCSVRfVVRTUlNUX1RSWF9TUlNUCQkJQklUKDIpCisj ZGVmaW5lIEJJVF9VVFNSU1RfVFRYX1NSU1QJCQlCSVQoMSkKKyNkZWZpbmUgQklUX1VUU1JTVF9I UlhfU1JTVAkJCUJJVCgwKQorCisvKiBIU0lDIFJYIENvbnRyb2wzLCBkZWZhdWx0IHZhbHVlOiAw eDA3ICovCisjZGVmaW5lIFJFR19IUlhDVFJMMwkJCQkweDAxMDQKKyNkZWZpbmUgTVNLX0hSWENU UkwzX0hSWF9BRkZDVFJMCQkweGYwCisjZGVmaW5lIEJJVF9IUlhDVFJMM19IUlhfT1VUX0VOCQkJ QklUKDIpCisjZGVmaW5lIEJJVF9IUlhDVFJMM19TVEFUVVNfRU4JCQlCSVQoMSkKKyNkZWZpbmUg QklUX0hSWENUUkwzX0hSWF9TVEFZX1JFU0VUCQlCSVQoMCkKKworLyogSFNJQyBSWCBJTlQgUmVn aXN0ZXJzICovCisjZGVmaW5lIFJFR19IUlhJTlRMCQkJCTB4MDExMQorI2RlZmluZSBSRUdfSFJY SU5USAkJCQkweDAxMTIKKworLyogVERNIFRYIE5VTUJJVFMsIGRlZmF1bHQgdmFsdWU6IDB4MGMg Ki8KKyNkZWZpbmUgUkVHX1RUWE5VTUIJCQkJMHgwMTE2CisjZGVmaW5lIE1TS19UVFhOVU1CX1RU WF9BRkZDVFJMXzNfMAkJMHhmMAorI2RlZmluZSBCSVRfVFRYTlVNQl9UVFhfQ09NMV9BVF9TWU5D X1dBSVQJQklUKDMpCisjZGVmaW5lIE1TS19UVFhOVU1CX1RUWF9OVU1CUFNfMl8wCQkweDA3CisK Ky8qIFRETSBUWCBOVU1TUElTWU0sIGRlZmF1bHQgdmFsdWU6IDB4MDQgKi8KKyNkZWZpbmUgUkVH X1RUWFNQSU5VTVMJCQkJMHgwMTE3CisKKy8qIFRETSBUWCBOVU1IU0lDU1lNLCBkZWZhdWx0IHZh bHVlOiAweDE0ICovCisjZGVmaW5lIFJFR19UVFhIU0lDTlVNUwkJCQkweDAxMTgKKworLyogVERN IFRYIE5VTVRPVFNZTSwgZGVmYXVsdCB2YWx1ZTogMHgxOCAqLworI2RlZmluZSBSRUdfVFRYVE9U TlVNUwkJCQkweDAxMTkKKworLyogVERNIFRYIElOVCBMb3csIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX1RUWElOVEwJCQkJMHgwMTM2CisjZGVmaW5lIEJJVF9UVFhJTlRMX1RU WF9JTlRSNwkJCUJJVCg3KQorI2RlZmluZSBCSVRfVFRYSU5UTF9UVFhfSU5UUjYJCQlCSVQoNikK KyNkZWZpbmUgQklUX1RUWElOVExfVFRYX0lOVFI1CQkJQklUKDUpCisjZGVmaW5lIEJJVF9UVFhJ TlRMX1RUWF9JTlRSNAkJCUJJVCg0KQorI2RlZmluZSBCSVRfVFRYSU5UTF9UVFhfSU5UUjMJCQlC SVQoMykKKyNkZWZpbmUgQklUX1RUWElOVExfVFRYX0lOVFIyCQkJQklUKDIpCisjZGVmaW5lIEJJ VF9UVFhJTlRMX1RUWF9JTlRSMQkJCUJJVCgxKQorI2RlZmluZSBCSVRfVFRYSU5UTF9UVFhfSU5U UjAJCQlCSVQoMCkKKworLyogVERNIFRYIElOVCBIaWdoLCBkZWZhdWx0IHZhbHVlOiAweDAwICov CisjZGVmaW5lIFJFR19UVFhJTlRICQkJCTB4MDEzNworI2RlZmluZSBCSVRfVFRYSU5USF9UVFhf SU5UUjE1CQkJQklUKDcpCisjZGVmaW5lIEJJVF9UVFhJTlRIX1RUWF9JTlRSMTQJCQlCSVQoNikK KyNkZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFIxMwkJCUJJVCg1KQorI2RlZmluZSBCSVRfVFRY SU5USF9UVFhfSU5UUjEyCQkJQklUKDQpCisjZGVmaW5lIEJJVF9UVFhJTlRIX1RUWF9JTlRSMTEJ CQlCSVQoMykKKyNkZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFIxMAkJCUJJVCgyKQorI2RlZmlu ZSBCSVRfVFRYSU5USF9UVFhfSU5UUjkJCQlCSVQoMSkKKyNkZWZpbmUgQklUX1RUWElOVEhfVFRY X0lOVFI4CQkJQklUKDApCisKKy8qIFRETSBSWCBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDFj ICovCisjZGVmaW5lIFJFR19UUlhDVFJMCQkJCTB4MDEzYgorI2RlZmluZSBCSVRfVFJYQ1RSTF9U UlhfQ0xSX1dWQUxMT1cJCUJJVCg0KQorI2RlZmluZSBCSVRfVFJYQ1RSTF9UUlhfRlJPTV9TRV9D T0MJCUJJVCgzKQorI2RlZmluZSBNU0tfVFJYQ1RSTF9UUlhfTlVNQlBTXzJfMAkJMHgwNworCisv KiBURE0gUlggTlVNU1BJU1lNLCBkZWZhdWx0IHZhbHVlOiAweDA0ICovCisjZGVmaW5lIFJFR19U UlhTUElOVU1TCQkJCTB4MDEzYworCisvKiBURE0gUlggTlVNSFNJQ1NZTSwgZGVmYXVsdCB2YWx1 ZTogMHgxNCAqLworI2RlZmluZSBSRUdfVFJYSFNJQ05VTVMJCQkJMHgwMTNkCisKKy8qIFRETSBS WCBOVU1UT1RTWU0sIGRlZmF1bHQgdmFsdWU6IDB4MTggKi8KKyNkZWZpbmUgUkVHX1RSWFRPVE5V TVMJCQkJMHgwMTNlCisKKy8qIFRETSBSWCBTdGF0dXMgMm5kLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19UUlhTVEEyCQkJCTB4MDE1YworCisvKiBURE0gUlggSU5UIExvdywg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFJYSU5UTAkJCQkweDAxNjMKKwor LyogVERNIFJYIElOVCBIaWdoLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19U UlhJTlRICQkJCTB4MDE2NAorCisvKiBURE0gUlggSU5UTUFTSyBIaWdoLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19UUlhJTlRNSAkJCQkweDAxNjYKKworLyogSFNJQyBUWCBD UlRMLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19IVFhDVFJMCQkJCTB4MDE2 OQorI2RlZmluZSBCSVRfSFRYQ1RSTF9IVFhfQUxMU0JFX1NPUAkJQklUKDQpCisjZGVmaW5lIEJJ VF9IVFhDVFJMX0hUWF9SR0RJTlZfVVNCCQlCSVQoMykKKyNkZWZpbmUgQklUX0hUWENUUkxfSFRY X1JTUFRETV9CVVNZCQlCSVQoMikKKyNkZWZpbmUgQklUX0hUWENUUkxfSFRYX0RSVkNPTk4xCQlC SVQoMSkKKyNkZWZpbmUgQklUX0hUWENUUkxfSFRYX0RSVlJTVDEJCQlCSVQoMCkKKworLyogSFNJ QyBUWCBJTlQgTG93LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19IVFhJTlRM CQkJCTB4MDE3ZAorCisvKiBIU0lDIFRYIElOVCBIaWdoLCBkZWZhdWx0IHZhbHVlOiAweDAwICov CisjZGVmaW5lIFJFR19IVFhJTlRICQkJCTB4MDE3ZQorCisvKiBIU0lDIEtlZXBlciwgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfS0VFUEVSCQkJCTB4MDE4MQorI2RlZmluZSBN U0tfS0VFUEVSX0tFRVBFUl9NT0RFXzFfMAkJMHgwMworCisvKiBIU0lDIEZsb3cgQ29udHJvbCBH ZW5lcmFsLCBkZWZhdWx0IHZhbHVlOiAweDAyICovCisjZGVmaW5lIFJFR19GQ0dDCQkJCTB4MDE4 MworI2RlZmluZSBCSVRfRkNHQ19IU0lDX0ZDX0hPU1RNT0RFCQlCSVQoMSkKKyNkZWZpbmUgQklU X0ZDR0NfSFNJQ19GQ19FTkFCTEUJCQlCSVQoMCkKKworLyogSFNJQyBGbG93IENvbnRyb2wgQ1RS MTMsIGRlZmF1bHQgdmFsdWU6IDB4ZmMgKi8KKyNkZWZpbmUgUkVHX0ZDQ1RSMTMJCQkJMHgwMTkx CisKKy8qIEhTSUMgRmxvdyBDb250cm9sIENUUjE0LCBkZWZhdWx0IHZhbHVlOiAweGZmICovCisj ZGVmaW5lIFJFR19GQ0NUUjE0CQkJCTB4MDE5MgorCisvKiBIU0lDIEZsb3cgQ29udHJvbCBDVFIx NSwgZGVmYXVsdCB2YWx1ZTogMHhmZiAqLworI2RlZmluZSBSRUdfRkNDVFIxNQkJCQkweDAxOTMK KworLyogSFNJQyBGbG93IENvbnRyb2wgQ1RSNTAsIGRlZmF1bHQgdmFsdWU6IDB4MDMgKi8KKyNk ZWZpbmUgUkVHX0ZDQ1RSNTAJCQkJMHgwMWI2CisKKy8qIEhTSUMgRmxvdyBDb250cm9sIElOVFIw LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19GQ0lOVFIwCQkJCTB4MDFlYwor I2RlZmluZSBSRUdfRkNJTlRSMQkJCQkweDAxZWQKKyNkZWZpbmUgUkVHX0ZDSU5UUjIJCQkJMHgw MWVlCisjZGVmaW5lIFJFR19GQ0lOVFIzCQkJCTB4MDFlZgorI2RlZmluZSBSRUdfRkNJTlRSNAkJ CQkweDAxZjAKKyNkZWZpbmUgUkVHX0ZDSU5UUjUJCQkJMHgwMWYxCisjZGVmaW5lIFJFR19GQ0lO VFI2CQkJCTB4MDFmMgorI2RlZmluZSBSRUdfRkNJTlRSNwkJCQkweDAxZjMKKworLyogVERNIExv dyBMYXRlbmN5LCBkZWZhdWx0IHZhbHVlOiAweDIwICovCisjZGVmaW5lIFJFR19URE1MTENUTAkJ CQkweDAxZmMKKyNkZWZpbmUgTVNLX1RETUxMQ1RMX1RSWF9MTF9TRUxfTUFOVUFMCQkweGMwCisj ZGVmaW5lIE1TS19URE1MTENUTF9UUlhfTExfU0VMX01PREUJCTB4MzAKKyNkZWZpbmUgTVNLX1RE TUxMQ1RMX1RUWF9MTF9TRUxfTUFOVUFMCQkweDBjCisjZGVmaW5lIEJJVF9URE1MTENUTF9UVFhf TExfVElFX0xPVwkJQklUKDEpCisjZGVmaW5lIEJJVF9URE1MTENUTF9UVFhfTExfU0VMX01PREUJ CUJJVCgwKQorCisvKiBUTURTIDAgQ2xvY2sgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgxMCAq LworI2RlZmluZSBSRUdfVE1EUzBfQ0NUUkwxCQkJMHgwMjEwCisjZGVmaW5lIE1TS19UTURTMF9D Q1RSTDFfVEVTVF9TRUwJCTB4YzAKKyNkZWZpbmUgTVNLX1RNRFMwX0NDVFJMMV9DTEsxWF9DVEwJ CTB4MzAKKworLyogVE1EUyBDbG9jayBFbmFibGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX1RNRFNfQ0xLX0VOCQkJCTB4MDIxMQorI2RlZmluZSBCSVRfVE1EU19DTEtfRU5f Q0xLX0VOCQkJQklUKDApCisKKy8qIFRNRFMgQ2hhbm5lbCBFbmFibGUsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RNRFNfQ0hfRU4JCQkJMHgwMjEyCisjZGVmaW5lIEJJVF9U TURTX0NIX0VOX0NIMF9FTgkJCUJJVCg0KQorI2RlZmluZSBCSVRfVE1EU19DSF9FTl9DSDEyX0VO CQkJQklUKDApCisKKy8qIEJHUl9CSUFTLCBkZWZhdWx0IHZhbHVlOiAweDA3ICovCisjZGVmaW5l IFJFR19CR1JfQklBUwkJCQkweDAyMTUKKyNkZWZpbmUgQklUX0JHUl9CSUFTX0JHUl9FTgkJCUJJ VCg3KQorI2RlZmluZSBNU0tfQkdSX0JJQVNfQklBU19CR1JfRAkJCTB4MGYKKworLyogVE1EUyAw IERpZ2l0YWwgSTJDIEJXLCBkZWZhdWx0IHZhbHVlOiAweDBhICovCisjZGVmaW5lIFJFR19BTElD RTBfQldfSTJDCQkJMHgwMjMxCisKKy8qIFRNRFMgMCBEaWdpdGFsIFpvbmUgQ29udHJvbCwgZGVm YXVsdCB2YWx1ZTogMHhlMCAqLworI2RlZmluZSBSRUdfQUxJQ0UwX1pPTkVfQ1RSTAkJCTB4MDI0 YworI2RlZmluZSBCSVRfQUxJQ0UwX1pPTkVfQ1RSTF9JQ1JTVF9OCQlCSVQoNykKKyNkZWZpbmUg QklUX0FMSUNFMF9aT05FX0NUUkxfVVNFX0lOVF9ESVYyMAlCSVQoNikKKyNkZWZpbmUgTVNLX0FM SUNFMF9aT05FX0NUUkxfU1pPTkVfSTJDCQkweDMwCisjZGVmaW5lIE1TS19BTElDRTBfWk9ORV9D VFJMX1pPTkVfQ1RSTAkJMHgwZgorCisvKiBUTURTIDAgRGlnaXRhbCBQTEwgTW9kZSBDb250cm9s LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19BTElDRTBfTU9ERV9DVFJMCQkJ MHgwMjRkCisjZGVmaW5lIE1TS19BTElDRTBfTU9ERV9DVFJMX1BMTF9NT0RFX0kyQwkweDBjCisj ZGVmaW5lIE1TS19BTElDRTBfTU9ERV9DVFJMX0RJVjIwX0NUUkwJCTB4MDMKKworLyogTUhMIFR4 IENvbnRyb2wgNnRoLCBkZWZhdWx0IHZhbHVlOiAweGEwICovCisjZGVmaW5lIFJFR19NSExUWF9D VEw2CQkJCTB4MDI4NQorI2RlZmluZSBNU0tfTUhMVFhfQ1RMNl9FTUlfU0VMCQkJMHhlMAorI2Rl ZmluZSBNU0tfTUhMVFhfQ1RMNl9UWF9DTEtfU0hBUEVfOV84CQkweDAzCisKKy8qIFBhY2tldCBG aWx0ZXIwLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19QS1RfRklMVEVSXzAJ CQkweDAyOTAKKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMF9EUk9QX0NFQV9HQU1VVF9QS1QJQklU KDcpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9DRUFfQ1BfUEtUCUJJVCg2KQorI2Rl ZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfTVBFR19QS1QJCUJJVCg1KQorI2RlZmluZSBCSVRf UEtUX0ZJTFRFUl8wX0RST1BfU1BJRl9QS1QJCUJJVCg0KQorI2RlZmluZSBCSVRfUEtUX0ZJTFRF Ul8wX0RST1BfQUlGX1BLVAkJQklUKDMpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9B VklfUEtUCQlCSVQoMikKKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMF9EUk9QX0NUU19QS1QJCUJJ VCgxKQorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfR0NQX1BLVAkJQklUKDApCisKKy8q IFBhY2tldCBGaWx0ZXIxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19QS1Rf RklMVEVSXzEJCQkweDAyOTEKKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMV9WU0lfT1ZFUlJJREVf RElTCUJJVCg3KQorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8xX0FWSV9PVkVSUklERV9ESVMJQklU KDYpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzFfRFJPUF9BVURJT19QS1QJCUJJVCgzKQorI2Rl ZmluZSBCSVRfUEtUX0ZJTFRFUl8xX0RST1BfR0VOMl9QS1QJCUJJVCgyKQorI2RlZmluZSBCSVRf UEtUX0ZJTFRFUl8xX0RST1BfR0VOX1BLVAkJQklUKDEpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVS XzFfRFJPUF9WU0lGX1BLVAkJQklUKDApCisKKy8qIFRNRFMgQ2xvY2sgU3RhdHVzLCBkZWZhdWx0 IHZhbHVlOiAweDEwICovCisjZGVmaW5lIFJFR19UTURTX0NTVEFUX1AzCQkJMHgwMmEwCisjZGVm aW5lIEJJVF9UTURTX0NTVEFUX1AzX1JYX0hETUlfQ1BfQ0xSX01VVEUJQklUKDcpCisjZGVmaW5l IEJJVF9UTURTX0NTVEFUX1AzX1JYX0hETUlfQ1BfU0VUX01VVEUJQklUKDYpCisjZGVmaW5lIEJJ VF9UTURTX0NTVEFUX1AzX1JYX0hETUlfQ1BfTkVXX0NQCUJJVCg1KQorI2RlZmluZSBCSVRfVE1E U19DU1RBVF9QM19DTFJfQVZJCQlCSVQoMykKKyNkZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfU0NE VF9DTFJfQVZJX0RJUwlCSVQoMikKKyNkZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfU0NEVAkJCUJJ VCgxKQorI2RlZmluZSBCSVRfVE1EU19DU1RBVF9QM19DS0RUCQkJQklUKDApCisKKy8qIFJYX0hE TUkgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgxMCAqLworI2RlZmluZSBSRUdfUlhfSERNSV9D VFJMMAkJCTB4MDJhMQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9CWVBfRFZJRklMVF9TWU5D CUJJVCg1KQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9IRE1JX01PREVfRU5fSVRTRUxGX0NM UiBCSVQoNCkKKyNkZWZpbmUgQklUX1JYX0hETUlfQ1RSTDBfSERNSV9NT0RFX1NXX1ZBTFVFCUJJ VCgzKQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9IRE1JX01PREVfT1ZFUldSSVRFCUJJVCgy KQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9SWF9IRE1JX0hETUlfTU9ERV9FTglCSVQoMSkK KyNkZWZpbmUgQklUX1JYX0hETUlfQ1RSTDBfUlhfSERNSV9IRE1JX01PREUJQklUKDApCisKKy8q IFJYX0hETUkgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgzOCAqLworI2RlZmluZSBSRUdfUlhf SERNSV9DVFJMMgkJCTB4MDJhMworI2RlZmluZSBNU0tfUlhfSERNSV9DVFJMMl9JRExFX0NOVAkJ MHhmMAorI2RlZmluZSBWQUxfUlhfSERNSV9DVFJMMl9JRExFX0NOVChuKQkJKChuKSA8PCA0KQor I2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMl9VU0VfQVZfTVVURQkJQklUKDMpCisjZGVmaW5lIEJJ VF9SWF9IRE1JX0NUUkwyX1ZTSV9NT05fU0VMX1ZTSQlCSVQoMCkKKworLyogUlhfSERNSSBDb250 cm9sLCBkZWZhdWx0IHZhbHVlOiAweDBmICovCisjZGVmaW5lIFJFR19SWF9IRE1JX0NUUkwzCQkJ MHgwMmE0CisjZGVmaW5lIE1TS19SWF9IRE1JX0NUUkwzX1BQX01PREVfQ0xLX0VOCTB4MGYKKwor LyogcnhfaGRtaSBDbGVhciBCdWZmZXIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX1JYX0hETUlfQ0xSX0JVRkZFUgkJCTB4MDJhYworI2RlZmluZSBNU0tfUlhfSERNSV9DTFJf QlVGRkVSX0FJRjRWU0lfQ01QCTB4YzAKKyNkZWZpbmUgQklUX1JYX0hETUlfQ0xSX0JVRkZFUl9V U0VfQUlGNFZTSQlCSVQoNSkKKyNkZWZpbmUgQklUX1JYX0hETUlfQ0xSX0JVRkZFUl9WU0lfQ0xS X1dfQVZJCUJJVCg0KQorI2RlZmluZSBCSVRfUlhfSERNSV9DTFJfQlVGRkVSX1ZTSV9JRUVFX0lE X0NIS19FTiBCSVQoMykKKyNkZWZpbmUgQklUX1JYX0hETUlfQ0xSX0JVRkZFUl9TV0FQX1ZTSV9J RUVFX0lECUJJVCgyKQorI2RlZmluZSBCSVRfUlhfSERNSV9DTFJfQlVGRkVSX0FJRl9DTFJfRU4J QklUKDEpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NMUl9CVUZGRVJfVlNJX0NMUl9FTglCSVQoMCkK KworLyogUlhfSERNSSBWU0kgSGVhZGVyMSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfUlhfSERNSV9NT05fUEtUX0hFQURFUjEJCTB4MDJiOAorCisvKiBSWF9IRE1JIFZTSSBN SEwgTW9uaXRvciwgZGVmYXVsdCB2YWx1ZTogMHgzYyAqLworI2RlZmluZSBSRUdfUlhfSERNSV9W U0lGX01ITF9NT04JCTB4MDJkNworCisjZGVmaW5lIE1TS19SWF9IRE1JX1ZTSUZfTUhMX01PTl9S WF9IRE1JX01ITF8zRF9GT1JNQVQgMHgzYworI2RlZmluZSBNU0tfUlhfSERNSV9WU0lGX01ITF9N T05fUlhfSERNSV9NSExfVklEX0ZPUk1BVCAweDAzCisKKy8qIEludGVycnVwdCBTb3VyY2UgOSwg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSU5UUjkJCQkJMHgwMmUwCisjZGVm aW5lIEJJVF9JTlRSOV9FRElEX0VSUk9SCQkJQklUKDYpCisjZGVmaW5lIEJJVF9JTlRSOV9FRElE X0RPTkUJCQlCSVQoNSkKKyNkZWZpbmUgQklUX0lOVFI5X0RFVkNBUF9ET05FCQkJQklUKDQpCisK Ky8qIEludGVycnVwdCA5IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVH X0lOVFI5X01BU0sJCQkJMHgwMmUxCisKKy8qIFRQSSBDQlVTIFN0YXJ0LCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19UUElfQ0JVU19TVEFSVAkJCTB4MDJlMgorI2RlZmluZSBC SVRfVFBJX0NCVVNfU1RBUlRfUkNQX1JFUV9TVEFSVAlCSVQoNykKKyNkZWZpbmUgQklUX1RQSV9D QlVTX1NUQVJUX1JDUEtfUkVQTFlfU1RBUlQJQklUKDYpCisjZGVmaW5lIEJJVF9UUElfQ0JVU19T VEFSVF9SQ1BFX1JFUExZX1NUQVJUCUJJVCg1KQorI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RBUlRf UFVUX0xJTktfTU9ERV9TVEFSVAlCSVQoNCkKKyNkZWZpbmUgQklUX1RQSV9DQlVTX1NUQVJUX1BV VF9EQ0FQQ0hHX1NUQVJUCUJJVCgzKQorI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RBUlRfUFVUX0RD QVBSRFlfU1RBUlQJQklUKDIpCisjZGVmaW5lIEJJVF9UUElfQ0JVU19TVEFSVF9HRVRfRURJRF9T VEFSVF8wCUJJVCgxKQorI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RBUlRfR0VUX0RFVkNBUF9TVEFS VAlCSVQoMCkKKworLyogRURJRCBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDEwICovCisjZGVm aW5lIFJFR19FRElEX0NUUkwJCQkJMHgwMmUzCisjZGVmaW5lIEJJVF9FRElEX0NUUkxfRURJRF9Q UklNRV9WQUxJRAkJQklUKDcpCisjZGVmaW5lIEJJVF9FRElEX0NUUkxfWERFVkNBUF9FTgkJQklU KDYpCisjZGVmaW5lIEJJVF9FRElEX0NUUkxfREVWQ0FQX1NFTEVDVF9ERVZDQVAJQklUKDUpCisj ZGVmaW5lIEJJVF9FRElEX0NUUkxfRURJRF9GSUZPX0FERFJfQVVUTwlCSVQoNCkKKyNkZWZpbmUg QklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQUNDRVNTX0FMV0FZU19FTiBCSVQoMykKKyNkZWZpbmUg QklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQkxPQ0tfU0VMCUJJVCgyKQorI2RlZmluZSBCSVRfRURJ RF9DVFJMX0lOVkFMSURfQktTVgkJQklUKDEpCisjZGVmaW5lIEJJVF9FRElEX0NUUkxfRURJRF9N T0RFX0VOCQlCSVQoMCkKKworLyogRURJRCBGSUZPIEFkZHIsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX0VESURfRklGT19BRERSCQkJMHgwMmU5CisKKy8qIEVESUQgRklGTyBX cml0ZSBEYXRhLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19FRElEX0ZJRk9f V1JfREFUQQkJCTB4MDJlYQorCisvKiBFRElEL0RFVkNBUCBGSUZPIEludGVybmFsIEFkZHIsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0VESURfRklGT19BRERSX01PTgkJCTB4 MDJlYgorCisvKiBFRElEIEZJRk8gUmVhZCBEYXRhLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19FRElEX0ZJRk9fUkRfREFUQQkJCTB4MDJlYworCisvKiBFRElEIEREQyBTZWdt ZW50IFBvaW50ZXIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0VESURfU1RB UlRfRVhUCQkJMHgwMmVkCisKKy8qIFRYIElQIEJJU1QgQ05UTCBhbmQgU3RhdHVzLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UWF9JUF9CSVNUX0NOVExTVEEJCQkweDAyZjIK KyNkZWZpbmUgQklUX1RYX0lQX0JJU1RfQ05UTFNUQV9UWEJJU1RfUVVBUlRFUl9DTEtfU0VMIEJJ VCg2KQorI2RlZmluZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RBX1RYQklTVF9ET05FCUJJVCg1KQor I2RlZmluZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RBX1RYQklTVF9PTglCSVQoNCkKKyNkZWZpbmUg QklUX1RYX0lQX0JJU1RfQ05UTFNUQV9UWEJJU1RfUlVOCUJJVCgzKQorI2RlZmluZSBCSVRfVFhf SVBfQklTVF9DTlRMU1RBX1RYQ0xLX0hBTEZfU0VMCUJJVCgyKQorI2RlZmluZSBCSVRfVFhfSVBf QklTVF9DTlRMU1RBX1RYQklTVF9FTglCSVQoMSkKKyNkZWZpbmUgQklUX1RYX0lQX0JJU1RfQ05U TFNUQV9UWEJJU1RfU0VMCUJJVCgwKQorCisvKiBUWCBJUCBCSVNUIElOU1QgTE9XLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UWF9JUF9CSVNUX0lOU1RfTE9XCQkJMHgwMmYz CisjZGVmaW5lIFJFR19UWF9JUF9CSVNUX0lOU1RfSElHSAkJMHgwMmY0CisKKy8qIFRYIElQIEJJ U1QgUEFUVEVSTiBMT1csIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RYX0lQ X0JJU1RfUEFUX0xPVwkJCTB4MDJmNQorI2RlZmluZSBSRUdfVFhfSVBfQklTVF9QQVRfSElHSAkJ CTB4MDJmNgorCisvKiBUWCBJUCBCSVNUIENPTkZJR1VSRSBMT1csIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfQ09ORl9MT1cJCQkweDAyZjcKKyNkZWZpbmUg UkVHX1RYX0lQX0JJU1RfQ09ORl9ISUdICQkweDAyZjgKKworLyogRS1NU0MgR2VuZXJhbCBDb250 cm9sLCBkZWZhdWx0IHZhbHVlOiAweDgwICovCisjZGVmaW5lIFJFR19HRU5DVEwJCQkJMHgwMzAw CisjZGVmaW5lIEJJVF9HRU5DVExfU1BFQ19UUkFOU19ESVMJCUJJVCg3KQorI2RlZmluZSBCSVRf R0VOQ1RMX0RJU19YTUlUX0VSUl9TVEFURQkJQklUKDYpCisjZGVmaW5lIEJJVF9HRU5DVExfU1BJ X01JU09fRURHRQkJQklUKDUpCisjZGVmaW5lIEJJVF9HRU5DVExfU1BJX01PU0lfRURHRQkJQklU KDQpCisjZGVmaW5lIEJJVF9HRU5DVExfQ0xSX0VNU0NfUkZJRk8JCUJJVCgzKQorI2RlZmluZSBC SVRfR0VOQ1RMX0NMUl9FTVNDX1hGSUZPCQlCSVQoMikKKyNkZWZpbmUgQklUX0dFTkNUTF9TVEFS VF9UUkFJTl9TRVEJCUJJVCgxKQorI2RlZmluZSBCSVRfR0VOQ1RMX0VNU0NfRU4JCQlCSVQoMCkK KworLyogRS1NU0MgQ29tbWEgRXJyb3JDTlQsIGRlZmF1bHQgdmFsdWU6IDB4MDMgKi8KKyNkZWZp bmUgUkVHX0NPTU1FQ05UCQkJCTB4MDMwNQorI2RlZmluZSBCSVRfQ09NTUVDTlRfSTJDX1RPX0VN U0NfRU4JCUJJVCg3KQorI2RlZmluZSBNU0tfQ09NTUVDTlRfQ09NTUFfQ0hBUl9FUlJfQ05UCQkw eDBmCisKKy8qIEUtTVNDIFJGSUZPIEJ5dGVDbnQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX0VNU0NSRklGT0JDTlRMCQkJMHgwMzFhCisjZGVmaW5lIFJFR19FTVNDUkZJRk9C Q05USAkJCTB4MDMxYgorCisvKiBTUEkgQnVyc3QgQ250IFN0YXR1cywgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfU1BJQlVSU1RDTlQJCQkJMHgwMzFlCisKKy8qIFNQSSBCdXJz dCBTdGF0dXMgYW5kIFNXUlNULCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19T UElCVVJTVFNUQVQJCQkweDAzMjIKKyNkZWZpbmUgQklUX1NQSUJVUlNUU1RBVF9TUElfSERDUFJT VAkJQklUKDcpCisjZGVmaW5lIEJJVF9TUElCVVJTVFNUQVRfU1BJX0NCVVNSU1QJCUJJVCg2KQor I2RlZmluZSBCSVRfU1BJQlVSU1RTVEFUX1NQSV9TUlNUCQlCSVQoNSkKKyNkZWZpbmUgQklUX1NQ SUJVUlNUU1RBVF9FTVNDX05PUk1BTF9NT0RFCUJJVCgwKQorCisvKiBFLU1TQyAxc3QgSW50ZXJy dXB0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19FTVNDSU5UUgkJCQkweDAz MjMKKyNkZWZpbmUgQklUX0VNU0NJTlRSX0VNU0NfWEZJRk9fRU1QVFkJCUJJVCg3KQorI2RlZmlu ZSBCSVRfRU1TQ0lOVFJfRU1TQ19YTUlUX0FDS19UT1VUCQlCSVQoNikKKyNkZWZpbmUgQklUX0VN U0NJTlRSX0VNU0NfUkZJRk9fUkVBRF9FUlIJQklUKDUpCisjZGVmaW5lIEJJVF9FTVNDSU5UUl9F TVNDX1hGSUZPX1dSSVRFX0VSUglCSVQoNCkKKyNkZWZpbmUgQklUX0VNU0NJTlRSX0VNU0NfQ09N TUFfQ0hBUl9FUlIJQklUKDMpCisjZGVmaW5lIEJJVF9FTVNDSU5UUl9FTVNDX1hNSVRfRE9ORQkJ QklUKDIpCisjZGVmaW5lIEJJVF9FTVNDSU5UUl9FTVNDX1hNSVRfR05UX1RPVVQJCUJJVCgxKQor I2RlZmluZSBCSVRfRU1TQ0lOVFJfU1BJX0RWTEQJCUJJVCgwKQorCisvKiBFLU1TQyBJbnRlcnJ1 cHQgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRU1TQ0lOVFJNQVNL CQkJMHgwMzI0CisKKy8qIEkyQyBFLU1TQyBYTUlUIEZJRk8gV3JpdGUgUG9ydCwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRU1TQ19YTUlUX1dSSVRFX1BPUlQJCTB4MDMyYQor CisvKiBJMkMgRS1NU0MgUkNWIEZJRk8gV3JpdGUgUG9ydCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq LworI2RlZmluZSBSRUdfRU1TQ19SQ1ZfUkVBRF9QT1JUCQkJMHgwMzJiCisKKy8qIEUtTVNDIDJu ZCBJbnRlcnJ1cHQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0VNU0NJTlRS MQkJCQkweDAzMmMKKyNkZWZpbmUgQklUX0VNU0NJTlRSMV9FTVNDX1RSQUlOSU5HX0NPTU1BX0VS UglCSVQoMCkKKworLyogRS1NU0MgSW50ZXJydXB0IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX0VNU0NJTlRSTUFTSzEJCQkweDAzMmQKKyNkZWZpbmUgQklUX0VNU0NJ TlRSTUFTSzFfRU1TQ19JTlRSTUFTSzFfMAlCSVQoMCkKKworLyogTUhMIFRvcCBDdGwsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01ITF9UT1BfQ1RMCQkJCTB4MDMzMAorI2Rl ZmluZSBCSVRfTUhMX1RPUF9DVExfTUhMM19ET0NfU0VMCQlCSVQoNykKKyNkZWZpbmUgQklUX01I TF9UT1BfQ1RMX01ITF9QUF9TRUwJCUJJVCg2KQorI2RlZmluZSBNU0tfTUhMX1RPUF9DVExfSUZf VElNSU5HX0NUTAkJMHgwMworCisvKiBNSEwgRGF0YVBhdGggMXN0IEN0bCwgZGVmYXVsdCB2YWx1 ZTogMHhiYyAqLworI2RlZmluZSBSRUdfTUhMX0RQX0NUTDAJCQkJMHgwMzMxCisjZGVmaW5lIEJJ VF9NSExfRFBfQ1RMMF9EUF9PRQkJCUJJVCg3KQorI2RlZmluZSBCSVRfTUhMX0RQX0NUTDBfVFhf T0VfT1ZSCQlCSVQoNikKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwwX1RYX09FCQkJMHgzZgorCisv KiBNSEwgRGF0YVBhdGggMm5kIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHhiYiAqLworI2RlZmluZSBS RUdfTUhMX0RQX0NUTDEJCQkJMHgwMzMyCisjZGVmaW5lIE1TS19NSExfRFBfQ1RMMV9DS19TV0lO R19DVEwJCTB4ZjAKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwxX0RUX1NXSU5HX0NUTAkJMHgwZgor CisvKiBNSEwgRGF0YVBhdGggM3JkIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgyZiAqLworI2RlZmlu ZSBSRUdfTUhMX0RQX0NUTDIJCQkJMHgwMzMzCisjZGVmaW5lIEJJVF9NSExfRFBfQ1RMMl9DTEtf QllQQVNTX0VOCQlCSVQoNykKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwyX0RBTVBfVEVSTV9TRUwJ CTB4MzAKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwyX0NLX1RFUk1fU0VMCQkweDBjCisjZGVmaW5l IE1TS19NSExfRFBfQ1RMMl9EVF9URVJNX1NFTAkJMHgwMworCisvKiBNSEwgRGF0YVBhdGggNHRo IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHg0OCAqLworI2RlZmluZSBSRUdfTUhMX0RQX0NUTDMJCQkJ MHgwMzM0CisjZGVmaW5lIE1TS19NSExfRFBfQ1RMM19EVF9EUlZfVk5CQ19DVEwJCTB4ZjAKKyNk ZWZpbmUgTVNLX01ITF9EUF9DVEwzX0RUX0RSVl9WTkJfQ1RMCQkweDBmCisKKy8qIE1ITCBEYXRh UGF0aCA1dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDQ4ICovCisjZGVmaW5lIFJFR19NSExfRFBf Q1RMNAkJCQkweDAzMzUKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEw0X0NLX0RSVl9WTkJDX0NUTAkJ MHhmMAorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDRfQ0tfRFJWX1ZOQl9DVEwJCTB4MGYKKworLyog TUhMIERhdGFQYXRoIDZ0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4M2YgKi8KKyNkZWZpbmUgUkVH X01ITF9EUF9DVEw1CQkJCTB4MDMzNgorI2RlZmluZSBCSVRfTUhMX0RQX0NUTDVfUlNFTl9FTl9P VlIJCUJJVCg3KQorI2RlZmluZSBCSVRfTUhMX0RQX0NUTDVfUlNFTl9FTgkJCUJJVCg2KQorI2Rl ZmluZSBNU0tfTUhMX0RQX0NUTDVfREFNUF9URVJNX1ZHU19DVEwJMHgzMAorI2RlZmluZSBNU0tf TUhMX0RQX0NUTDVfQ0tfVEVSTV9WR1NfQ1RMCQkweDBjCisjZGVmaW5lIE1TS19NSExfRFBfQ1RM NV9EVF9URVJNX1ZHU19DVEwJCTB4MDMKKworLyogTUhMIFBMTCAxc3QgQ3RsLCBkZWZhdWx0IHZh bHVlOiAweDA1ICovCisjZGVmaW5lIFJFR19NSExfUExMX0NUTDAJCQkweDAzMzcKKyNkZWZpbmUg QklUX01ITF9QTExfQ1RMMF9BVURfQ0xLX0VOCQlCSVQoNykKKworI2RlZmluZSBNU0tfTUhMX1BM TF9DVEwwX0FVRF9DTEtfUkFUSU8JCTB4NzAKKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9BVURf Q0xLX1JBVElPXzVfMTAJMHg3MAorI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0FVRF9DTEtfUkFU SU9fNV82CTB4NjAKKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9BVURfQ0xLX1JBVElPXzVfNAkw eDUwCisjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJT181XzIJMHg0MAorI2Rl ZmluZSBWQUxfTUhMX1BMTF9DVEwwX0FVRF9DTEtfUkFUSU9fNV81CTB4MzAKKyNkZWZpbmUgVkFM X01ITF9QTExfQ1RMMF9BVURfQ0xLX1JBVElPXzVfMwkweDIwCisjZGVmaW5lIFZBTF9NSExfUExM X0NUTDBfQVVEX0NMS19SQVRJT181XzJfUFJJTUUgMHgxMAorI2RlZmluZSBWQUxfTUhMX1BMTF9D VEwwX0FVRF9DTEtfUkFUSU9fNV8xCTB4MDAKKworI2RlZmluZSBNU0tfTUhMX1BMTF9DVEwwX0hE TUlfQ0xLX1JBVElPCQkweDBjCisjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFU SU9fNFgJMHgwYworI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0hETUlfQ0xLX1JBVElPXzJYCTB4 MDgKKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT18xWAkweDA0CisjZGVm aW5lIFZBTF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU9fSEFMRl9YCTB4MDAKKworI2RlZmlu ZSBCSVRfTUhMX1BMTF9DVEwwX0NSWVNUQUxfQ0xLX1NFTAlCSVQoMSkKKyNkZWZpbmUgQklUX01I TF9QTExfQ1RMMF9aT05FX01BU0tfT0UJCUJJVCgwKQorCisvKiBNSEwgUExMIDNyZCBDdGwsIGRl ZmF1bHQgdmFsdWU6IDB4ODAgKi8KKyNkZWZpbmUgUkVHX01ITF9QTExfQ1RMMgkJCTB4MDMzOQor I2RlZmluZSBCSVRfTUhMX1BMTF9DVEwyX0NMS0RFVEVDVF9FTgkJQklUKDcpCisjZGVmaW5lIEJJ VF9NSExfUExMX0NUTDJfTUVBU19GVkNPCQlCSVQoMykKKyNkZWZpbmUgQklUX01ITF9QTExfQ1RM Ml9QTExfRkFTVF9MT0NLCQlCSVQoMikKKyNkZWZpbmUgTVNLX01ITF9QTExfQ1RMMl9QTExfTEZf U0VMCQkweDAzCisKKy8qIE1ITCBDQlVTIDFzdCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MTIgKi8K KyNkZWZpbmUgUkVHX01ITF9DQlVTX0NUTDAJCQkweDAzNDAKKyNkZWZpbmUgQklUX01ITF9DQlVT X0NUTDBfQ0JVU19SR05EX1RFU1RfTU9ERQlCSVQoNykKKworI2RlZmluZSBNU0tfTUhMX0NCVVNf Q1RMMF9DQlVTX1JHTkRfVlRIX0NUTAkweDMwCisjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwwX0NC VVNfUkdORF9WQklBU183MzQJMHgwMAorI2RlZmluZSBWQUxfTUhMX0NCVVNfQ1RMMF9DQlVTX1JH TkRfVkJJQVNfNzQ3CTB4MTAKKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDBfQ0JVU19SR05EX1ZC SUFTXzc0MAkweDIwCisjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwwX0NCVVNfUkdORF9WQklBU183 NTQJMHgzMAorCisjZGVmaW5lIE1TS19NSExfQ0JVU19DVEwwX0NCVVNfUkVTX1RFU1RfU0VMCTB4 MGMKKworI2RlZmluZSBNU0tfTUhMX0NCVVNfQ1RMMF9DQlVTX0RSVl9TRUwJCTB4MDMKKyNkZWZp bmUgVkFMX01ITF9DQlVTX0NUTDBfQ0JVU19EUlZfU0VMX1dFQUtFU1QJMHgwMAorI2RlZmluZSBW QUxfTUhMX0NCVVNfQ1RMMF9DQlVTX0RSVl9TRUxfV0VBSwkweDAxCisjZGVmaW5lIFZBTF9NSExf Q0JVU19DVEwwX0NCVVNfRFJWX1NFTF9TVFJPTkcJMHgwMgorI2RlZmluZSBWQUxfTUhMX0NCVVNf Q1RMMF9DQlVTX0RSVl9TRUxfU1RST05HRVNUIDB4MDMKKworLyogTUhMIENCVVMgMm5kIEN0bCwg ZGVmYXVsdCB2YWx1ZTogMHgwMyAqLworI2RlZmluZSBSRUdfTUhMX0NCVVNfQ1RMMQkJCTB4MDM0 MQorI2RlZmluZSBNU0tfTUhMX0NCVVNfQ1RMMV9DQlVTX1JHTkRfUkVTX0NUTAkweDA3CisjZGVm aW5lIFZBTF9NSExfQ0JVU19DVEwxXzA4ODhfT0hNCQkweDAwCisjZGVmaW5lIFZBTF9NSExfQ0JV U19DVEwxXzExMTVfT0hNCQkweDA0CisjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwxXzEzNzhfT0hN CQkweDA3CisKKy8qIE1ITCBDb0MgMXN0IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHhjMyAqLworI2Rl ZmluZSBSRUdfTUhMX0NPQ19DVEwwCQkJMHgwMzQyCisjZGVmaW5lIEJJVF9NSExfQ09DX0NUTDBf Q09DX0JJQVNfRU4JCUJJVCg3KQorI2RlZmluZSBNU0tfTUhMX0NPQ19DVEwwX0NPQ19CSUFTX0NU TAkJMHg3MAorI2RlZmluZSBNU0tfTUhMX0NPQ19DVEwwX0NPQ19URVJNX0NUTAkJMHgwNworCisv KiBNSEwgQ29DIDJuZCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4ODcgKi8KKyNkZWZpbmUgUkVHX01I TF9DT0NfQ1RMMQkJCTB4MDM0MworI2RlZmluZSBCSVRfTUhMX0NPQ19DVEwxX0NPQ19FTgkJCUJJ VCg3KQorI2RlZmluZSBNU0tfTUhMX0NPQ19DVEwxX0NPQ19EUlZfQ1RMCQkweDNmCisKKy8qIE1I TCBDb0MgNHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhMX0NP Q19DVEwzCQkJMHgwMzQ1CisjZGVmaW5lIEJJVF9NSExfQ09DX0NUTDNfQ09DX0FFQ0hPX0VOCQlC SVQoMCkKKworLyogTUhMIENvQyA1dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDI4ICovCisjZGVm aW5lIFJFR19NSExfQ09DX0NUTDQJCQkweDAzNDYKKyNkZWZpbmUgTVNLX01ITF9DT0NfQ1RMNF9D T0NfSUZfQ1RMCQkweGYwCisjZGVmaW5lIE1TS19NSExfQ09DX0NUTDRfQ09DX1NMRVdfQ1RMCQkw eDBmCisKKy8qIE1ITCBDb0MgNnRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwZCAqLworI2RlZmlu ZSBSRUdfTUhMX0NPQ19DVEw1CQkJMHgwMzQ3CisKKy8qIE1ITCBEb0MgMXN0IEN0bCwgZGVmYXVs dCB2YWx1ZTogMHgxOCAqLworI2RlZmluZSBSRUdfTUhMX0RPQ19DVEwwCQkJMHgwMzQ5CisjZGVm aW5lIEJJVF9NSExfRE9DX0NUTDBfRE9DX1JYREFUQV9FTgkJQklUKDcpCisjZGVmaW5lIE1TS19N SExfRE9DX0NUTDBfRE9DX0RNX1RFUk0JCTB4MzgKKyNkZWZpbmUgTVNLX01ITF9ET0NfQ1RMMF9E T0NfT1BNT0RFCQkweDA2CisjZGVmaW5lIEJJVF9NSExfRE9DX0NUTDBfRE9DX1JYQklBU19FTgkJ QklUKDApCisKKy8qIE1ITCBEYXRhUGF0aCA3dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDJhICov CisjZGVmaW5lIFJFR19NSExfRFBfQ1RMNgkJCQkweDAzNTAKKyNkZWZpbmUgQklUX01ITF9EUF9D VEw2X0RQX1RBUDJfU0dOCQlCSVQoNSkKKyNkZWZpbmUgQklUX01ITF9EUF9DVEw2X0RQX1RBUDJf RU4JCUJJVCg0KQorI2RlZmluZSBCSVRfTUhMX0RQX0NUTDZfRFBfVEFQMV9TR04JCUJJVCgzKQor I2RlZmluZSBCSVRfTUhMX0RQX0NUTDZfRFBfVEFQMV9FTgkJQklUKDIpCisjZGVmaW5lIEJJVF9N SExfRFBfQ1RMNl9EVF9QUkVEUlZfRkVFRENBUF9FTglCSVQoMSkKKyNkZWZpbmUgQklUX01ITF9E UF9DVEw2X0RQX1BSRV9QT1NUX1NFTAkJQklUKDApCisKKy8qIE1ITCBEYXRhUGF0aCA4dGggQ3Rs LCBkZWZhdWx0IHZhbHVlOiAweDA2ICovCisjZGVmaW5lIFJFR19NSExfRFBfQ1RMNwkJCQkweDAz NTEKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEw3X0RUX0RSVl9WQklBU19DQVNDVEwJMHhmMAorI2Rl ZmluZSBNU0tfTUhMX0RQX0NUTDdfRFRfRFJWX0lSRUZfQ1RMCQkweDBmCisKKy8qIFR4IFpvbmUg Q3RsMSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFhfWk9ORV9DVEwxCQkJ MHgwMzYxCisjZGVmaW5lIFZBTF9UWF9aT05FX0NUTDFfVFhfWk9ORV9DVFJMX01PREUJMHgwOAor CisvKiBNSEwzIFR4IFpvbmUgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19NSEwzX1RYX1pPTkVfQ1RMCQkJMHgwMzY0CisjZGVmaW5lIEJJVF9NSEwzX1RYX1pPTkVfQ1RM X01ITDJfSU5UUExUX1pPTkVfTUFOVV9FTiBCSVQoNykKKyNkZWZpbmUgTVNLX01ITDNfVFhfWk9O RV9DVExfTUhMM19UWF9aT05FCTB4MDMKKworI2RlZmluZSBNU0tfVFhfWk9ORV9DVEwzX1RYX1pP TkUJCTB4MDMKKyNkZWZpbmUgVkFMX1RYX1pPTkVfQ1RMM19UWF9aT05FXzZHQlBTCQkweDAwCisj ZGVmaW5lIFZBTF9UWF9aT05FX0NUTDNfVFhfWk9ORV8zR0JQUwkJMHgwMQorI2RlZmluZSBWQUxf VFhfWk9ORV9DVEwzX1RYX1pPTkVfMV81R0JQUwkweDAyCisKKy8qIEhEQ1AgUG9sbGluZyBDb250 cm9sIGFuZCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4NzAgKi8KKyNkZWZpbmUgUkVHX0hEQ1Ay WF9QT0xMX0NTCQkJMHgwMzkxCisKKyNkZWZpbmUgQklUX0hEQ1AyWF9QT0xMX0NTX0hEQ1AyWF9N U0dfU1pfQ0xSX09QVElPTiBCSVQoNikKKyNkZWZpbmUgQklUX0hEQ1AyWF9QT0xMX0NTX0hEQ1Ay WF9SUFRfUkVBRFlfQ0xSX09QVElPTiBCSVQoNSkKKyNkZWZpbmUgQklUX0hEQ1AyWF9QT0xMX0NT X0hEQ1AyWF9SRUFVVEhfUkVRX0NMUl9PUFRJT04gQklUKDQpCisjZGVmaW5lIE1TS19IRENQMlhf UE9MTF9DU18JCQkweDBjCisjZGVmaW5lIEJJVF9IRENQMlhfUE9MTF9DU19IRENQMlhfRElTX1BP TExfR05UCUJJVCgxKQorI2RlZmluZSBCSVRfSERDUDJYX1BPTExfQ1NfSERDUDJYX0RJU19QT0xM X0VOCUJJVCgwKQorCisvKiBIRENQIEludGVycnVwdCAwLCBkZWZhdWx0IHZhbHVlOiAweDAwICov CisjZGVmaW5lIFJFR19IRENQMlhfSU5UUjAJCQkweDAzOTgKKworLyogSERDUCBJbnRlcnJ1cHQg MCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19IRENQMlhfSU5UUjBf TUFTSwkJCTB4MDM5OQorCisvKiBIRENQIEdlbmVyYWwgQ29udHJvbCAwLCBkZWZhdWx0IHZhbHVl OiAweDAyICovCisjZGVmaW5lIFJFR19IRENQMlhfQ1RSTF8wCQkJMHgwM2EwCisjZGVmaW5lIEJJ VF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9FTkNSWVBUX0VOCUJJVCg3KQorI2RlZmluZSBCSVRfSERD UDJYX0NUUkxfMF9IRENQMlhfUE9MSU5UX1NFTAlCSVQoNikKKyNkZWZpbmUgQklUX0hEQ1AyWF9D VFJMXzBfSERDUDJYX1BPTElOVF9PVlIJQklUKDUpCisjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8w X0hEQ1AyWF9QUkVDT01QVVRFCUJJVCg0KQorI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMF9IRENQ MlhfSERNSU1PREUJQklUKDMpCisjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9SRVBF QVRFUglCSVQoMikKKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzBfSERDUDJYX0hEQ1BUWAkJQklU KDEpCisjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8wX0hEQ1AyWF9FTgkJQklUKDApCisKKy8qIEhE Q1AgR2VuZXJhbCBDb250cm9sIDEsIGRlZmF1bHQgdmFsdWU6IDB4MDggKi8KKyNkZWZpbmUgUkVH X0hEQ1AyWF9DVFJMXzEJCQkweDAzYTEKKyNkZWZpbmUgTVNLX0hEQ1AyWF9DVFJMXzFfSERDUDJY X1JFQVVUSF9NU0tfM18wCTB4ZjAKKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzFfSERDUDJYX0hQ RF9TVwkJQklUKDMpCisjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8xX0hEQ1AyWF9IUERfT1ZSCUJJ VCgyKQorI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMV9IRENQMlhfQ1RMM01TSwlCSVQoMSkKKyNk ZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzFfSERDUDJYX1JFQVVUSF9TVwlCSVQoMCkKKworLyogSERD UCBNaXNjIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hEQ1Ay WF9NSVNDX0NUUkwJCQkweDAzYTUKKyNkZWZpbmUgQklUX0hEQ1AyWF9NSVNDX0NUUkxfSERDUDJY X1JQVF9TTU5HX1hGRVJfU1RBUlQgQklUKDQpCisjZGVmaW5lIEJJVF9IRENQMlhfTUlTQ19DVFJM X0hEQ1AyWF9SUFRfU01OR19XUl9TVEFSVCBCSVQoMykKKyNkZWZpbmUgQklUX0hEQ1AyWF9NSVND X0NUUkxfSERDUDJYX1JQVF9TTU5HX1dSCUJJVCgyKQorI2RlZmluZSBCSVRfSERDUDJYX01JU0Nf Q1RSTF9IRENQMlhfUlBUX1JDVklEX1JEX1NUQVJUIEJJVCgxKQorI2RlZmluZSBCSVRfSERDUDJY X01JU0NfQ1RSTF9IRENQMlhfUlBUX1JDVklEX1JECUJJVCgwKQorCisvKiBIRENQIFJQVCBTTU5H IEssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9SUFRfU01OR19L CQkJMHgwM2E2CisKKy8qIEhEQ1AgUlBUIFNNTkcgSW4sIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX0hEQ1AyWF9SUFRfU01OR19JTgkJCTB4MDNhNworCisvKiBIRENQIEF1dGgg U3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19IRENQMlhfQVVUSF9T VEFUCQkJMHgwM2FhCisKKy8qIEhEQ1AgUlBUIFJDVklEIE91dCwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLworI2RlZmluZSBSRUdfSERDUDJYX1JQVF9SQ1ZJRF9PVVQJCTB4MDNhYworCisvKiBIRENQ IFRQMSwgZGVmYXVsdCB2YWx1ZTogMHg2MiAqLworI2RlZmluZSBSRUdfSERDUDJYX1RQMQkJCQkw eDAzYjQKKworLyogSERDUCBHUCBPdXQgMCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfSERDUDJYX0dQX09VVDAJCQkweDAzYzcKKworLyogSERDUCBSZXBlYXRlciBSQ1ZSIElE IDAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9SUFRfUkNWUl9J RDAJCQkweDAzZDEKKworLyogSERDUCBERENNIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAq LworI2RlZmluZSBSRUdfSERDUDJYX0REQ01fU1RTCQkJMHgwM2Q4CisjZGVmaW5lIE1TS19IRENQ MlhfRERDTV9TVFNfSERDUDJYX0REQ01fRVJSX1NUU18zXzAgMHhmMAorI2RlZmluZSBNU0tfSERD UDJYX0REQ01fU1RTX0hEQ1AyWF9ERENNX0NUTF9DU18zXzAgMHgwZgorCisvKiBIRE1JMk1ITDMg Q29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgwYSAqLworI2RlZmluZSBSRUdfTTNfQ1RSTAkJCQkw eDAzZTAKKyNkZWZpbmUgQklUX00zX0NUUkxfSDJNX1NXUlNUCQkJQklUKDQpCisjZGVmaW5lIEJJ VF9NM19DVFJMX1NXX01ITDNfU0VMCQkJQklUKDMpCisjZGVmaW5lIEJJVF9NM19DVFJMX00zQVZf RU4JCQlCSVQoMikKKyNkZWZpbmUgQklUX00zX0NUUkxfRU5DX1RNRFMJCQlCSVQoMSkKKyNkZWZp bmUgQklUX00zX0NUUkxfTUhMM19NQVNURVJfRU4JCUJJVCgwKQorCisjZGVmaW5lIFZBTF9NM19D VFJMX01ITDFfMl9WQUxVRSAoQklUX00zX0NUUkxfU1dfTUhMM19TRUwgXAorCQkJCSAgfCBCSVRf TTNfQ1RSTF9FTkNfVE1EUykKKyNkZWZpbmUgVkFMX00zX0NUUkxfTUhMM19WQUxVRSAoQklUX00z X0NUUkxfU1dfTUhMM19TRUwgXAorCQkJCXwgQklUX00zX0NUUkxfTTNBVl9FTiBcCisJCQkJfCBC SVRfTTNfQ1RSTF9FTkNfVE1EUyBcCisJCQkJfCBCSVRfTTNfQ1RSTF9NSEwzX01BU1RFUl9FTikK KworLyogSERNSTJNSEwzIFBvcnQwIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDQgKi8KKyNk ZWZpbmUgUkVHX00zX1AwQ1RSTAkJCQkweDAzZTEKKyNkZWZpbmUgQklUX00zX1AwQ1RSTF9NSEwz X1AwX0hEQ1BfRU5DX0VOCUJJVCg0KQorI2RlZmluZSBCSVRfTTNfUDBDVFJMX01ITDNfUDBfVU5M SU1JVF9FTglCSVQoMykKKyNkZWZpbmUgQklUX00zX1AwQ1RSTF9NSEwzX1AwX0hEQ1BfRU4JCUJJ VCgyKQorI2RlZmluZSBCSVRfTTNfUDBDVFJMX01ITDNfUDBfUElYRUxfTU9ERV9QQUNLRUQJQklU KDEpCisjZGVmaW5lIEJJVF9NM19QMENUUkxfTUhMM19QMF9QT1JUX0VOCQlCSVQoMCkKKworI2Rl ZmluZSBSRUdfTTNfUE9TVE0JCQkJMHgwM2UyCisjZGVmaW5lIE1TS19NM19QT1NUTV9SUlBfREVD T0RFCQkJMHhmOAorI2RlZmluZSBNU0tfTTNfUE9TVE1fTUhMM19QMF9TVE1fSUQJCTB4MDcKKwor LyogSERNSTJNSEwzIFNjcmFtYmxlIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4NDEgKi8KKyNk ZWZpbmUgUkVHX00zX1NDVFJMCQkJCTB4MDNlNgorI2RlZmluZSBNU0tfTTNfU0NUUkxfTUhMM19T Ul9MRU5HVEgJCTB4ZjAKKyNkZWZpbmUgQklUX00zX1NDVFJMX01ITDNfU0NSQU1CTEVSX0VOCQlC SVQoMCkKKworLyogSFNJQyBEaXYgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDA1ICovCisjZGVmaW5l IFJFR19ESVZfQ1RMX01BSU4JCQkweDAzZjIKKyNkZWZpbmUgTVNLX0RJVl9DVExfTUFJTl9QUkVf RElWX0NUTF9NQUlOCTB4MWMKKyNkZWZpbmUgTVNLX0RJVl9DVExfTUFJTl9GQl9ESVZfQ1RMX01B SU4JMHgwMworCisvKiBNSEwgQ2FwYWJpbGl0eSAxc3QgQnl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLworI2RlZmluZSBSRUdfTUhMX0RFVkNBUF8wCQkJMHgwNDAwCisKKy8qIE1ITCBJbnRlcnJ1 cHQgMXN0IEJ5dGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01ITF9JTlRf MAkJCQkweDA0MjAKKworLyogRGV2aWNlIFN0YXR1cyAxc3QgYnl0ZSwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfTUhMX1NUQVRfMAkJCQkweDA0MzAKKworLyogQ0JVUyBTY3Jh dGNoIFBhZCAxc3QgQnl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhM X1NDUlBBRF8wCQkJMHgwNDQwCisKKy8qIE1ITCBFeHRlbmRlZCBDYXBhYmlsaXR5IDFzdCBCeXRl LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NSExfRVhUREVWQ0FQXzAJCQkw eDA0ODAKKworLyogRGV2aWNlIEV4dGVuZGVkIFN0YXR1cyAxc3QgYnl0ZSwgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhMX0VYVFNUQVRfMAkJCTB4MDQ5MAorCisvKiBUUEkg RFREIEJ5dGUyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfRFREX0Iy CQkJCTB4MDYwMgorCisjZGVmaW5lIFZBTF9UUElfUVVBTl9SQU5HRV9MSU1JVEVECQkweDAxCisj ZGVmaW5lIFZBTF9UUElfUVVBTl9SQU5HRV9GVUxMCQkJMHgwMgorI2RlZmluZSBWQUxfVFBJX0ZP Uk1BVF9SR0IJCQkweDAwCisjZGVmaW5lIFZBTF9UUElfRk9STUFUX1lDQkNSNDQ0CQkJMHgwMQor I2RlZmluZSBWQUxfVFBJX0ZPUk1BVF9ZQ0JDUjQyMgkJCTB4MDIKKyNkZWZpbmUgVkFMX1RQSV9G T1JNQVRfSU5URVJOQUxfUkdCCQkweDAzCisjZGVmaW5lIFZBTF9UUElfRk9STUFUKF9mbXQsIF9x cikgXAorCQkoVkFMX1RQSV9GT1JNQVRfIyNfZm10IHwgKFZBTF9UUElfUVVBTl9SQU5HRV8jI19x ciA8PCAyKSkKKworLyogSW5wdXQgRm9ybWF0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19UUElfSU5QVVQJCQkJMHgwNjA5CisjZGVmaW5lIEJJVF9UUElfSU5QVVRfRVhURU5E RURCSVRNT0RFCQlCSVQoNykKKyNkZWZpbmUgQklUX1RQSV9JTlBVVF9FTkRJVEhFUgkJCUJJVCg2 KQorI2RlZmluZSBNU0tfVFBJX0lOUFVUX0lOUFVUX1FVQU5fUkFOR0UJCTB4MGMKKyNkZWZpbmUg TVNLX1RQSV9JTlBVVF9JTlBVVF9GT1JNQVQJCTB4MDMKKworLyogT3V0cHV0IEZvcm1hdCwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX09VVFBVVAkJCQkweDA2MGEKKyNk ZWZpbmUgQklUX1RQSV9PVVRQVVRfQ1NDTU9ERTcwOQkJQklUKDQpCisjZGVmaW5lIE1TS19UUElf T1VUUFVUX09VVFBVVF9RVUFOX1JBTkdFCTB4MGMKKyNkZWZpbmUgTVNLX1RQSV9PVVRQVVRfT1VU UFVUX0ZPUk1BVAkJMHgwMworCisvKiBUUEkgQVZJIENoZWNrIFN1bSwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0FWSV9DSFNVTQkJCTB4MDYwYworCisvKiBUUEkgU3lz dGVtIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9TQwkJ CQkweDA2MWEKKyNkZWZpbmUgQklUX1RQSV9TQ19UUElfVVBEQVRFX0ZMRwkJQklUKDcpCisjZGVm aW5lIEJJVF9UUElfU0NfVFBJX1JFQVVUSF9DVEwJCUJJVCg2KQorI2RlZmluZSBCSVRfVFBJX1ND X1RQSV9PVVRQVVRfTU9ERV8xCQlCSVQoNSkKKyNkZWZpbmUgQklUX1RQSV9TQ19SRUdfVE1EU19P RV9QT1dFUl9ET1dOCUJJVCg0KQorI2RlZmluZSBCSVRfVFBJX1NDX1RQSV9BVl9NVVRFCQkJQklU KDMpCisjZGVmaW5lIEJJVF9UUElfU0NfRERDX0dQVV9SRVFVRVNUCQlCSVQoMikKKyNkZWZpbmUg QklUX1RQSV9TQ19ERENfVFBJX1NXCQkJQklUKDEpCisjZGVmaW5lIEJJVF9UUElfU0NfVFBJX09V VFBVVF9NT0RFXzBfSERNSQlCSVQoMCkKKworLyogVFBJIENPUFAgUXVlcnkgRGF0YSwgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0NPUFBfREFUQTEJCQkweDA2MjkKKyNk ZWZpbmUgQklUX1RQSV9DT1BQX0RBVEExX0NPUFBfR1BST1QJCUJJVCg3KQorI2RlZmluZSBCSVRf VFBJX0NPUFBfREFUQTFfQ09QUF9MUFJPVAkJQklUKDYpCisjZGVmaW5lIE1TS19UUElfQ09QUF9E QVRBMV9DT1BQX0xJTktfU1RBVFVTCTB4MzAKKyNkZWZpbmUgVkFMX1RQSV9DT1BQX0xJTktfU1RB VFVTX05PUk1BTAkJMHgwMAorI2RlZmluZSBWQUxfVFBJX0NPUFBfTElOS19TVEFUVVNfTElOS19M T1NUCTB4MTAKKyNkZWZpbmUgVkFMX1RQSV9DT1BQX0xJTktfU1RBVFVTX1JFTkVHT1RJQVRJT05f UkVRIDB4MjAKKyNkZWZpbmUgVkFMX1RQSV9DT1BQX0xJTktfU1RBVFVTX0xJTktfU1VTUEVOREVE CTB4MzAKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEExX0NPUFBfSERDUF9SRVAJQklUKDMpCisj ZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMV9DT1BQX0NPTk5UWVBFXzAJQklUKDIpCisjZGVmaW5l IEJJVF9UUElfQ09QUF9EQVRBMV9DT1BQX1BST1RZUEUJCUJJVCgxKQorI2RlZmluZSBCSVRfVFBJ X0NPUFBfREFUQTFfQ09QUF9DT05OVFlQRV8xCUJJVCgwKQorCisvKiBUUEkgQ09QUCBDb250cm9s IERhdGEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9DT1BQX0RBVEEy CQkJMHgwNjJhCisjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMl9JTlRSX0VOQ1JZUFRJT04JQklU KDUpCisjZGVmaW5lIEJJVF9UUElfQ09QUF9EQVRBMl9LU1ZfRk9SV0FSRAkJQklUKDQpCisjZGVm aW5lIEJJVF9UUElfQ09QUF9EQVRBMl9JTlRFUk1fUklfQ0hFQ0tfRU4JQklUKDMpCisjZGVmaW5l IEJJVF9UUElfQ09QUF9EQVRBMl9ET1VCTEVfUklfQ0hFQ0sJQklUKDIpCisjZGVmaW5lIEJJVF9U UElfQ09QUF9EQVRBMl9ERENfU0hPUlRfUklfUkQJQklUKDEpCisjZGVmaW5lIEJJVF9UUElfQ09Q UF9EQVRBMl9DT1BQX1BST1RMRVZFTAlCSVQoMCkKKworLyogVFBJIEludGVycnVwdCBFbmFibGUs IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9JTlRSX0VOCQkJCTB4MDYz YworCisvKiBUUEkgSW50ZXJydXB0IFN0YXR1cyBMb3cgQnl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLworI2RlZmluZSBSRUdfVFBJX0lOVFJfU1QwCQkJMHgwNjNkCisjZGVmaW5lIEJJVF9UUElf SU5UUl9TVDBfVFBJX0FVVEhfQ0hOR0VfU1RBVAlCSVQoNykKKyNkZWZpbmUgQklUX1RQSV9JTlRS X1NUMF9UUElfVl9SRFlfU1RBVAkJQklUKDYpCisjZGVmaW5lIEJJVF9UUElfSU5UUl9TVDBfVFBJ X0NPUFBfQ0hOR0VfU1RBVAlCSVQoNSkKKyNkZWZpbmUgQklUX1RQSV9JTlRSX1NUMF9LU1ZfRklG T19GSVJTVF9TVEFUCUJJVCgzKQorI2RlZmluZSBCSVRfVFBJX0lOVFJfU1QwX1JFQURfQktTVl9C Q0FQU19ET05FX1NUQVQgQklUKDIpCisjZGVmaW5lIEJJVF9UUElfSU5UUl9TVDBfUkVBRF9CS1NW X0JDQVBTX0VSUl9TVEFUIEJJVCgxKQorI2RlZmluZSBCSVRfVFBJX0lOVFJfU1QwX1JFQURfQktT Vl9FUlJfU1RBVAlCSVQoMCkKKworLyogVFBJIERTIEJDQVBTIFN0YXR1cywgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0RTX0JDQVBTCQkJMHgwNjQ0CisKKy8qIFRQSSBC U3RhdHVzMSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0JTVEFUVVMx CQkJMHgwNjQ1CisjZGVmaW5lIEJJVF9UUElfQlNUQVRVUzFfRFNfREVWX0VYQ0VFRAkJQklUKDcp CisjZGVmaW5lIE1TS19UUElfQlNUQVRVUzFfRFNfREVWX0NOVAkJMHg3ZgorCisvKiBUUEkgQlN0 YXR1czIsIGRlZmF1bHQgdmFsdWU6IDB4MTAgKi8KKyNkZWZpbmUgUkVHX1RQSV9CU1RBVFVTMgkJ CTB4MDY0NgorI2RlZmluZSBNU0tfVFBJX0JTVEFUVVMyX0RTX0JTVEFUVVMJCTB4ZTAKKyNkZWZp bmUgQklUX1RQSV9CU1RBVFVTMl9EU19IRE1JX01PREUJCUJJVCg0KQorI2RlZmluZSBCSVRfVFBJ X0JTVEFUVVMyX0RTX0NBU0NfRVhDRUVECQlCSVQoMykKKyNkZWZpbmUgTVNLX1RQSV9CU1RBVFVT Ml9EU19ERVBUSAkJMHgwNworCisvKiBUUEkgSFcgT3B0aW1pemF0aW9uIENvbnRyb2wgIzMsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9IV19PUFQzCQkJCTB4MDZiYgor I2RlZmluZSBCSVRfVFBJX0hXX09QVDNfRERDX0RFQlVHCQlCSVQoNykKKyNkZWZpbmUgQklUX1RQ SV9IV19PUFQzX1JJX0NIRUNLX1NLSVAJCUJJVCgzKQorI2RlZmluZSBCSVRfVFBJX0hXX09QVDNf VFBJX0REQ19CVVJTVF9NT0RFCUJJVCgyKQorI2RlZmluZSBNU0tfVFBJX0hXX09QVDNfVFBJX0RE Q19SRVFfTEVWRUwJMHgwMworCisvKiBUUEkgSW5mbyBGcmFtZSBTZWxlY3QsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9JTkZPX0ZTRUwJCQkweDA2YmYKKyNkZWZpbmUg QklUX1RQSV9JTkZPX0ZTRUxfVFBJX0lORk9fRU4JCUJJVCg3KQorI2RlZmluZSBCSVRfVFBJX0lO Rk9fRlNFTF9UUElfSU5GT19SUFQJCUJJVCg2KQorI2RlZmluZSBCSVRfVFBJX0lORk9fRlNFTF9U UElfSU5GT19SRUFEX0ZMQUcJQklUKDUpCisjZGVmaW5lIE1TS19UUElfSU5GT19GU0VMX1RQSV9J TkZPX1NFTAkJMHgwNworCisvKiBUUEkgSW5mbyBCeXRlICMwLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19UUElfSU5GT19CMAkJCQkweDA2YzAKKworLyogQ29DIFN0YXR1cywg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX1NUQVRfMAkJCQkweDA3MDAK KyNkZWZpbmUgUkVHX0NPQ19TVEFUXzEJCQkJMHgwNzAxCisjZGVmaW5lIFJFR19DT0NfU1RBVF8y CQkJCTB4MDcwMgorI2RlZmluZSBSRUdfQ09DX1NUQVRfMwkJCQkweDA3MDMKKyNkZWZpbmUgUkVH X0NPQ19TVEFUXzQJCQkJMHgwNzA0CisjZGVmaW5lIFJFR19DT0NfU1RBVF81CQkJCTB4MDcwNQor CisvKiBDb0MgMXN0IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHg0MCAqLworI2RlZmluZSBSRUdfQ09D X0NUTDAJCQkJMHgwNzEwCisKKy8qIENvQyAybmQgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDBhICov CisjZGVmaW5lIFJFR19DT0NfQ1RMMQkJCQkweDA3MTEKKyNkZWZpbmUgTVNLX0NPQ19DVEwxX0NP Q19DVFJMMV83XzYJCTB4YzAKKyNkZWZpbmUgTVNLX0NPQ19DVEwxX0NPQ19DVFJMMV81XzAJCTB4 M2YKKworLyogQ29DIDNyZCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MTQgKi8KKyNkZWZpbmUgUkVH X0NPQ19DVEwyCQkJCTB4MDcxMgorI2RlZmluZSBNU0tfQ09DX0NUTDJfQ09DX0NUUkwyXzdfNgkJ MHhjMAorI2RlZmluZSBNU0tfQ09DX0NUTDJfQ09DX0NUUkwyXzVfMAkJMHgzZgorCisvKiBDb0Mg NHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHg0MCAqLworI2RlZmluZSBSRUdfQ09DX0NUTDMJCQkJ MHgwNzEzCisjZGVmaW5lIEJJVF9DT0NfQ1RMM19DT0NfQ1RSTDNfNwkJQklUKDcpCisjZGVmaW5l IE1TS19DT0NfQ1RMM19DT0NfQ1RSTDNfNl8wCQkweDdmCisKKy8qIENvQyA3dGggQ3RsLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfQ1RMNgkJCQkweDA3MTYKKyNkZWZp bmUgQklUX0NPQ19DVEw2X0NPQ19DVFJMNl83CQlCSVQoNykKKyNkZWZpbmUgQklUX0NPQ19DVEw2 X0NPQ19DVFJMNl82CQlCSVQoNikKKyNkZWZpbmUgTVNLX0NPQ19DVEw2X0NPQ19DVFJMNl81XzAJ CTB4M2YKKworLyogQ29DIDh0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDYgKi8KKyNkZWZpbmUg UkVHX0NPQ19DVEw3CQkJCTB4MDcxNworI2RlZmluZSBCSVRfQ09DX0NUTDdfQ09DX0NUUkw3XzcJ CUJJVCg3KQorI2RlZmluZSBCSVRfQ09DX0NUTDdfQ09DX0NUUkw3XzYJCUJJVCg2KQorI2RlZmlu ZSBCSVRfQ09DX0NUTDdfQ09DX0NUUkw3XzUJCUJJVCg1KQorI2RlZmluZSBNU0tfQ09DX0NUTDdf Q09DX0NUUkw3XzRfMwkJMHgxOAorI2RlZmluZSBNU0tfQ09DX0NUTDdfQ09DX0NUUkw3XzJfMAkJ MHgwNworCisvKiBDb0MgMTB0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX0NPQ19DVEw5CQkJCTB4MDcxOQorCisvKiBDb0MgMTF0aCBDdGwsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVExBCQkJCTB4MDcxYQorCisvKiBDb0MgMTJ0aCBD dGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVExCCQkJCTB4MDcx YgorCisvKiBDb0MgMTN0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MGYgKi8KKyNkZWZpbmUgUkVH X0NPQ19DVExDCQkJCTB4MDcxYworCisvKiBDb0MgMTR0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4 MGEgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVExECQkJCTB4MDcxZAorI2RlZmluZSBCSVRfQ09DX0NU TERfQ09DX0NUUkxEXzcJCUJJVCg3KQorI2RlZmluZSBNU0tfQ09DX0NUTERfQ09DX0NUUkxEXzZf MAkJMHg3ZgorCisvKiBDb0MgMTV0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MGEgKi8KKyNkZWZp bmUgUkVHX0NPQ19DVExFCQkJCTB4MDcxZQorI2RlZmluZSBCSVRfQ09DX0NUTEVfQ09DX0NUUkxF XzcJCUJJVCg3KQorI2RlZmluZSBNU0tfQ09DX0NUTEVfQ09DX0NUUkxFXzZfMAkJMHg3ZgorCisv KiBDb0MgMTZ0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19D VExGCQkJCTB4MDcxZgorI2RlZmluZSBNU0tfQ09DX0NUTEZfQ09DX0NUUkxGXzdfMwkJMHhmOAor I2RlZmluZSBNU0tfQ09DX0NUTEZfQ09DX0NUUkxGXzJfMAkJMHgwNworCisvKiBDb0MgMTh0aCBD dGwsIGRlZmF1bHQgdmFsdWU6IDB4MzIgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEwxMQkJCQkweDA3 MjEKKyNkZWZpbmUgTVNLX0NPQ19DVEwxMV9DT0NfQ1RSTDExXzdfNAkJMHhmMAorI2RlZmluZSBN U0tfQ09DX0NUTDExX0NPQ19DVFJMMTFfM18wCQkweDBmCisKKy8qIENvQyAyMXN0IEN0bCwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NUTDE0CQkJCTB4MDcyNAorI2Rl ZmluZSBNU0tfQ09DX0NUTDE0X0NPQ19DVFJMMTRfN180CQkweGYwCisjZGVmaW5lIE1TS19DT0Nf Q1RMMTRfQ09DX0NUUkwxNF8zXzAJCTB4MGYKKworLyogQ29DIDIybmQgQ3RsLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfQ1RMMTUJCQkJMHgwNzI1CisjZGVmaW5lIEJJ VF9DT0NfQ1RMMTVfQ09DX0NUUkwxNV83CQlCSVQoNykKKyNkZWZpbmUgTVNLX0NPQ19DVEwxNV9D T0NfQ1RSTDE1XzZfNAkJMHg3MAorI2RlZmluZSBNU0tfQ09DX0NUTDE1X0NPQ19DVFJMMTVfM18w CQkweDBmCisKKy8qIENvQyBJbnRlcnJ1cHQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX0NPQ19JTlRSCQkJCTB4MDcyNgorCisvKiBDb0MgSW50ZXJydXB0IE1hc2ssIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19JTlRSX01BU0sJCQkweDA3MjcKKyNk ZWZpbmUgQklUX0NPQ19QTExfTE9DS19TVEFUVVNfQ0hBTkdFCQlCSVQoMCkKKyNkZWZpbmUgQklU X0NPQ19DQUxJQlJBVElPTl9ET05FCQlCSVQoMSkKKworLyogQ29DIE1pc2MgQ3RsLCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfTUlTQ19DVEwwCQkJMHgwNzI4CisjZGVm aW5lIEJJVF9DT0NfTUlTQ19DVEwwX0ZTTV9NT04JCUJJVCg3KQorCisvKiBDb0MgMjR0aCBDdGws IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEwxNwkJCQkweDA3MmEK KyNkZWZpbmUgTVNLX0NPQ19DVEwxN19DT0NfQ1RSTDE3XzdfNAkJMHhmMAorI2RlZmluZSBNU0tf Q09DX0NUTDE3X0NPQ19DVFJMMTdfM18wCQkweDBmCisKKy8qIENvQyAyNXRoIEN0bCwgZGVmYXVs dCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NUTDE4CQkJCTB4MDcyYgorI2RlZmlu ZSBNU0tfQ09DX0NUTDE4X0NPQ19DVFJMMThfN180CQkweGYwCisjZGVmaW5lIE1TS19DT0NfQ1RM MThfQ09DX0NUUkwxOF8zXzAJCTB4MGYKKworLyogQ29DIDI2dGggQ3RsLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfQ1RMMTkJCQkJMHgwNzJjCisjZGVmaW5lIE1TS19D T0NfQ1RMMTlfQ09DX0NUUkwxOV83XzQJCTB4ZjAKKyNkZWZpbmUgTVNLX0NPQ19DVEwxOV9DT0Nf Q1RSTDE5XzNfMAkJMHgwZgorCisvKiBDb0MgMjd0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX0NPQ19DVEwxQQkJCQkweDA3MmQKKyNkZWZpbmUgTVNLX0NPQ19DVEwx QV9DT0NfQ1RSTDFBXzdfMgkJMHhmYworI2RlZmluZSBNU0tfQ09DX0NUTDFBX0NPQ19DVFJMMUFf MV8wCQkweDAzCisKKy8qIERvQyA5dGggU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19ET0NfU1RBVF84CQkJCTB4MDc0MAorCisvKiBEb0MgMTB0aCBTdGF0dXMsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19TVEFUXzkJCQkJMHgwNzQxCisK Ky8qIERvQyA1dGggQ0ZHLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ET0Nf Q0ZHNAkJCQkweDA3NGUKKyNkZWZpbmUgTVNLX0RPQ19DRkc0X0RCR19TVEFURV9ET0NfRlNNCQkw eDBmCisKKy8qIERvQyAxc3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDQwICovCisjZGVmaW5lIFJF R19ET0NfQ1RMMAkJCQkweDA3NTEKKworLyogRG9DIDd0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19DVEw2CQkJCTB4MDc1NworI2RlZmluZSBCSVRfRE9DX0NU TDZfRE9DX0NUUkw2XzcJCUJJVCg3KQorI2RlZmluZSBCSVRfRE9DX0NUTDZfRE9DX0NUUkw2XzYJ CUJJVCg2KQorI2RlZmluZSBNU0tfRE9DX0NUTDZfRE9DX0NUUkw2XzVfNAkJMHgzMAorI2RlZmlu ZSBNU0tfRE9DX0NUTDZfRE9DX0NUUkw2XzNfMAkJMHgwZgorCisvKiBEb0MgOHRoIEN0bCwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRE9DX0NUTDcJCQkJMHgwNzU4CisjZGVm aW5lIEJJVF9ET0NfQ1RMN19ET0NfQ1RSTDdfNwkJQklUKDcpCisjZGVmaW5lIEJJVF9ET0NfQ1RM N19ET0NfQ1RSTDdfNgkJQklUKDYpCisjZGVmaW5lIEJJVF9ET0NfQ1RMN19ET0NfQ1RSTDdfNQkJ QklUKDUpCisjZGVmaW5lIE1TS19ET0NfQ1RMN19ET0NfQ1RSTDdfNF8zCQkweDE4CisjZGVmaW5l IE1TS19ET0NfQ1RMN19ET0NfQ1RSTDdfMl8wCQkweDA3CisKKy8qIERvQyA5dGggQ3RsLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ET0NfQ1RMOAkJCQkweDA3NmMKKyNkZWZp bmUgQklUX0RPQ19DVEw4X0RPQ19DVFJMOF83CQlCSVQoNykKKyNkZWZpbmUgTVNLX0RPQ19DVEw4 X0RPQ19DVFJMOF82XzQJCTB4NzAKKyNkZWZpbmUgTVNLX0RPQ19DVEw4X0RPQ19DVFJMOF8zXzIJ CTB4MGMKKyNkZWZpbmUgTVNLX0RPQ19DVEw4X0RPQ19DVFJMOF8xXzAJCTB4MDMKKworLyogRG9D IDEwdGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ET0NfQ1RMOQkJ CQkweDA3NmQKKworLyogRG9DIDExdGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19ET0NfQ1RMQQkJCQkweDA3NmUKKworLyogRG9DIDE1dGggQ3RsLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ET0NfQ1RMRQkJCQkweDA3NzIKKyNkZWZpbmUgQklU X0RPQ19DVExFX0RPQ19DVFJMRV83CQlCSVQoNykKKyNkZWZpbmUgQklUX0RPQ19DVExFX0RPQ19D VFJMRV82CQlCSVQoNikKKyNkZWZpbmUgTVNLX0RPQ19DVExFX0RPQ19DVFJMRV81XzQJCTB4MzAK KyNkZWZpbmUgTVNLX0RPQ19DVExFX0RPQ19DVFJMRV8zXzAJCTB4MGYKKworLyogSW50ZXJydXB0 IE1hc2sgMXN0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NSExfSU5UXzBf TUFTSwkJCTB4MDU4MAorCisvKiBJbnRlcnJ1cHQgTWFzayAybmQsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX01ITF9JTlRfMV9NQVNLCQkJMHgwNTgxCisKKy8qIEludGVycnVw dCBNYXNrIDNyZCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhMX0lOVF8y X01BU0sJCQkweDA1ODIKKworLyogSW50ZXJydXB0IE1hc2sgNHRoLCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCisjZGVmaW5lIFJFR19NSExfSU5UXzNfTUFTSwkJCTB4MDU4MworCisvKiBNRFQgUmVj ZWl2ZSBUaW1lIE91dCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTURUX1JD Vl9USU1FT1VUCQkJMHgwNTg0CisKKy8qIE1EVCBUcmFuc21pdCBUaW1lIE91dCwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTURUX1hNSVRfVElNRU9VVAkJCTB4MDU4NQorCisv KiBNRFQgUmVjZWl2ZSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19NRFRfUkNWX0NUUkwJCQkweDA1ODYKKyNkZWZpbmUgQklUX01EVF9SQ1ZfQ1RSTF9NRFRfUkNW X0VOCQlCSVQoNykKKyNkZWZpbmUgQklUX01EVF9SQ1ZfQ1RSTF9NRFRfREVMQVlfUkNWX0VOCUJJ VCg2KQorI2RlZmluZSBCSVRfTURUX1JDVl9DVFJMX01EVF9SRklGT19PVkVSX1dSX0VOCUJJVCg0 KQorI2RlZmluZSBCSVRfTURUX1JDVl9DVFJMX01EVF9YRklGT19PVkVSX1dSX0VOCUJJVCgzKQor I2RlZmluZSBCSVRfTURUX1JDVl9DVFJMX01EVF9ESVNBQkxFCQlCSVQoMikKKyNkZWZpbmUgQklU X01EVF9SQ1ZfQ1RSTF9NRFRfUkZJRk9fQ0xSX0FMTAlCSVQoMSkKKyNkZWZpbmUgQklUX01EVF9S Q1ZfQ1RSTF9NRFRfUkZJRk9fQ0xSX0NVUglCSVQoMCkKKworLyogTURUIFJlY2VpdmUgUmVhZCBQ b3J0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NRFRfUkNWX1JFQURfUE9S VAkJCTB4MDU4NworCisvKiBNRFQgVHJhbnNtaXQgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHg3 MCAqLworI2RlZmluZSBSRUdfTURUX1hNSVRfQ1RSTAkJCTB4MDU4OAorI2RlZmluZSBCSVRfTURU X1hNSVRfQ1RSTF9NRFRfWE1JVF9FTgkJQklUKDcpCisjZGVmaW5lIEJJVF9NRFRfWE1JVF9DVFJM X01EVF9YTUlUX0NNRF9NRVJHRV9FTglCSVQoNikKKyNkZWZpbmUgQklUX01EVF9YTUlUX0NUUkxf TURUX1hNSVRfRklYRURfQlVSU1RfTEVOIEJJVCg1KQorI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RS TF9NRFRfWE1JVF9GSVhFRF9BSUQJQklUKDQpCisjZGVmaW5lIEJJVF9NRFRfWE1JVF9DVFJMX01E VF9YTUlUX1NJTkdMRV9SVU5fRU4gQklUKDMpCisjZGVmaW5lIEJJVF9NRFRfWE1JVF9DVFJMX01E VF9DTFJfQUJPUlRfV0FJVAlCSVQoMikKKyNkZWZpbmUgQklUX01EVF9YTUlUX0NUUkxfTURUX1hG SUZPX0NMUl9BTEwJQklUKDEpCisjZGVmaW5lIEJJVF9NRFRfWE1JVF9DVFJMX01EVF9YRklGT19D TFJfQ1VSCUJJVCgwKQorCisvKiBNRFQgUmVjZWl2ZSBXUklURSBQb3J0LCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19NRFRfWE1JVF9XUklURV9QT1JUCQkJMHgwNTg5CisKKy8q IE1EVCBSRklGTyBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01E VF9SRklGT19TVEFUCQkJMHgwNThhCisjZGVmaW5lIE1TS19NRFRfUkZJRk9fU1RBVF9NRFRfUkZJ Rk9fQ05UCTB4ZTAKKyNkZWZpbmUgTVNLX01EVF9SRklGT19TVEFUX01EVF9SRklGT19DVVJfQllU RV9DTlQgMHgxZgorCisvKiBNRFQgWEZJRk8gU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDgwICov CisjZGVmaW5lIFJFR19NRFRfWEZJRk9fU1RBVAkJCTB4MDU4YgorI2RlZmluZSBNU0tfTURUX1hG SUZPX1NUQVRfTURUX1hGSUZPX0xFVkVMX0FWQUlMIDB4ZTAKKyNkZWZpbmUgQklUX01EVF9YRklG T19TVEFUX01EVF9YTUlUX1BSRV9IU19FTglCSVQoNCkKKyNkZWZpbmUgTVNLX01EVF9YRklGT19T VEFUX01EVF9XUklURV9CVVJTVF9MRU4JMHgwZgorCisvKiBNRFQgSW50ZXJydXB0IDAsIGRlZmF1 bHQgdmFsdWU6IDB4MGMgKi8KKyNkZWZpbmUgUkVHX01EVF9JTlRfMAkJCQkweDA1OGMKKyNkZWZp bmUgQklUX01EVF9SRklGT19EQVRBX1JEWQkJCUJJVCgwKQorI2RlZmluZSBCSVRfTURUX0lETEVf QUZURVJfSEFXQl9ESVNBQkxFCQlCSVQoMikKKyNkZWZpbmUgQklUX01EVF9YRklGT19FTVBUWQkJ CUJJVCgzKQorCisvKiBNRFQgSW50ZXJydXB0IDAgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAq LworI2RlZmluZSBSRUdfTURUX0lOVF8wX01BU0sJCQkweDA1OGQKKworLyogTURUIEludGVycnVw dCAxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NRFRfSU5UXzEJCQkJMHgw NThlCisjZGVmaW5lIEJJVF9NRFRfUkNWX1RJTUVPVVQJCQlCSVQoMCkKKyNkZWZpbmUgQklUX01E VF9SQ1ZfU01fQUJPUlRfUEtUX1JDVkQJCUJJVCgxKQorI2RlZmluZSBCSVRfTURUX1JDVl9TTV9F UlJPUgkJCUJJVCgyKQorI2RlZmluZSBCSVRfTURUX1hNSVRfVElNRU9VVAkJCUJJVCg1KQorI2Rl ZmluZSBCSVRfTURUX1hNSVRfU01fQUJPUlRfUEtUX1JDVkQJCUJJVCg2KQorI2RlZmluZSBCSVRf TURUX1hNSVRfU01fRVJST1IJCQlCSVQoNykKKworLyogTURUIEludGVycnVwdCAxIE1hc2ssIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01EVF9JTlRfMV9NQVNLCQkJMHgwNThm CisKKy8qIENCVVMgVmVuZG9yIElELCBkZWZhdWx0IHZhbHVlOiAweDAxICovCisjZGVmaW5lIFJF R19DQlVTX1ZFTkRPUl9JRAkJCTB4MDU5MAorCisvKiBDQlVTIENvbm5lY3Rpb24gU3RhdHVzLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DQlVTX1NUQVRVUwkJCQkweDA1OTEK KyNkZWZpbmUgQklUX0NCVVNfU1RBVFVTX01ITF9DQUJMRV9QUkVTRU5UCUJJVCg0KQorI2RlZmlu ZSBCSVRfQ0JVU19TVEFUVVNfTVNDX0hCX1NVQ0NFU1MJCUJJVCgzKQorI2RlZmluZSBCSVRfQ0JV U19TVEFUVVNfQ0JVU19IUEQJCUJJVCgyKQorI2RlZmluZSBCSVRfQ0JVU19TVEFUVVNfTUhMX01P REUJCUJJVCgxKQorI2RlZmluZSBCSVRfQ0JVU19TVEFUVVNfQ0JVU19DT05ORUNURUQJCUJJVCgw KQorCisvKiBDQlVTIEludGVycnVwdCAxc3QsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX0NCVVNfSU5UXzAJCQkJMHgwNTkyCisjZGVmaW5lIEJJVF9DQlVTX01TQ19NVF9ET05F X05BQ0sJCUJJVCg3KQorI2RlZmluZSBCSVRfQ0JVU19NU0NfTVJfU0VUX0lOVAkJCUJJVCg2KQor I2RlZmluZSBCSVRfQ0JVU19NU0NfTVJfV1JJVEVfQlVSU1QJCUJJVCg1KQorI2RlZmluZSBCSVRf Q0JVU19NU0NfTVJfTVNDX01TRwkJCUJJVCg0KQorI2RlZmluZSBCSVRfQ0JVU19NU0NfTVJfV1JJ VEVfU1RBVAkJQklUKDMpCisjZGVmaW5lIEJJVF9DQlVTX0hQRF9DSEcJCQlCSVQoMikKKyNkZWZp bmUgQklUX0NCVVNfTVNDX01UX0RPTkUJCQlCSVQoMSkKKyNkZWZpbmUgQklUX0NCVVNfQ05YX0NI RwkJCUJJVCgwKQorCisvKiBDQlVTIEludGVycnVwdCBNYXNrIDFzdCwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfQ0JVU19JTlRfMF9NQVNLCQkJMHgwNTkzCisKKy8qIENCVVMg SW50ZXJydXB0IDJuZCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ0JVU19J TlRfMQkJCQkweDA1OTQKKyNkZWZpbmUgQklUX0NCVVNfQ01EX0FCT1JUCQkJQklUKDYpCisjZGVm aW5lIEJJVF9DQlVTX01TQ19BQk9SVF9SQ1ZECQkJQklUKDMpCisjZGVmaW5lIEJJVF9DQlVTX0RE Q19BQk9SVAkJCUJJVCgyKQorI2RlZmluZSBCSVRfQ0JVU19DRUNfQUJPUlQJCQlCSVQoMSkKKwor LyogQ0JVUyBJbnRlcnJ1cHQgTWFzayAybmQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX0NCVVNfSU5UXzFfTUFTSwkJCTB4MDU5NQorCisvKiBDQlVTIEREQyBBYm9ydCBJbnRl cnJ1cHQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0REQ19BQk9SVF9JTlQJ CQkweDA1OTgKKworLyogQ0JVUyBEREMgQWJvcnQgSW50ZXJydXB0IE1hc2ssIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0REQ19BQk9SVF9JTlRfTUFTSwkJCTB4MDU5OQorCisv KiBDQlVTIE1TQyBSZXF1ZXN0ZXIgQWJvcnQgSW50ZXJydXB0LCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19NU0NfTVRfQUJPUlRfSU5UCQkJMHgwNTlhCisKKy8qIENCVVMgTVND IFJlcXVlc3RlciBBYm9ydCBJbnRlcnJ1cHQgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwor I2RlZmluZSBSRUdfTVNDX01UX0FCT1JUX0lOVF9NQVNLCQkweDA1OWIKKworLyogQ0JVUyBNU0Mg UmVzcG9uZGVyIEFib3J0IEludGVycnVwdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfTVNDX01SX0FCT1JUX0lOVAkJCTB4MDU5YworCisvKiBDQlVTIE1TQyBSZXNwb25kZXIg QWJvcnQgSW50ZXJydXB0IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVH X01TQ19NUl9BQk9SVF9JTlRfTUFTSwkJMHgwNTlkCisKKy8qIENCVVMgUlggRElTQ09WRVJZIGlu dGVycnVwdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ0JVU19SWF9ESVND X0lOVDAJCQkweDA1OWUKKworLyogQ0JVUyBSWCBESVNDT1ZFUlkgSW50ZXJydXB0IE1hc2ssIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NCVVNfUlhfRElTQ19JTlQwX01BU0sJ CTB4MDU5ZgorCisvKiBDQlVTX0xpbmtfTGF5ZXIgQ29udHJvbCAjOCwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfQ0JVU19MSU5LX0NUUkxfOAkJCTB4MDVhNworCisvKiBNRFQg U3RhdGUgTWFjaGluZSBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVH X01EVF9TTV9TVEFUCQkJCTB4MDViNQorI2RlZmluZSBNU0tfTURUX1NNX1NUQVRfTURUX1JDVl9T VEFURQkJMHhmMAorI2RlZmluZSBNU0tfTURUX1NNX1NUQVRfTURUX1hNSVRfU1RBVEUJCTB4MGYK KworLyogQ0JVUyBNU0MgY29tbWFuZCB0cmlnZ2VyLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19NU0NfQ09NTUFORF9TVEFSVAkJCTB4MDViOAorI2RlZmluZSBCSVRfTVNDX0NP TU1BTkRfU1RBUlRfREVCVUcJCUJJVCg1KQorI2RlZmluZSBCSVRfTVNDX0NPTU1BTkRfU1RBUlRf V1JJVEVfQlVSU1QJQklUKDQpCisjZGVmaW5lIEJJVF9NU0NfQ09NTUFORF9TVEFSVF9XUklURV9T VEFUCUJJVCgzKQorI2RlZmluZSBCSVRfTVNDX0NPTU1BTkRfU1RBUlRfUkVBRF9ERVZDQVAJQklU KDIpCisjZGVmaW5lIEJJVF9NU0NfQ09NTUFORF9TVEFSVF9NU0NfTVNHCQlCSVQoMSkKKyNkZWZp bmUgQklUX01TQ19DT01NQU5EX1NUQVJUX1BFRVIJCUJJVCgwKQorCisvKiBDQlVTIE1TQyBDb21t YW5kL09mZnNldCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTVNDX0NNRF9P Ul9PRkZTRVQJCQkweDA1YjkKKworLyogQ0JVUyBNU0MgVHJhbnNtaXQgRGF0YSAqLworI2RlZmlu ZSBSRUdfTVNDXzFTVF9UUkFOU01JVF9EQVRBCQkweDA1YmEKKyNkZWZpbmUgUkVHX01TQ18yTkRf VFJBTlNNSVRfREFUQQkJMHgwNWJiCisKKy8qIENCVVMgTVNDIFJlcXVlc3RlciBSZWNlaXZlZCBE YXRhICovCisjZGVmaW5lIFJFR19NU0NfTVRfUkNWRF9EQVRBMAkJCTB4MDViYworI2RlZmluZSBS RUdfTVNDX01UX1JDVkRfREFUQTEJCQkweDA1YmQKKworLyogQ0JVUyBNU0MgUmVzcG9uZGVyIE1T Q19NU0cgUmVjZWl2ZWQgRGF0YSAqLworI2RlZmluZSBSRUdfTVNDX01SX01TQ19NU0dfUkNWRF8x U1RfREFUQQkweDA1YmYKKyNkZWZpbmUgUkVHX01TQ19NUl9NU0NfTVNHX1JDVkRfMk5EX0RBVEEJ MHgwNWMwCisKKy8qIENCVVMgTVNDIEhlYXJ0YmVhdCBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAw eDI3ICovCisjZGVmaW5lIFJFR19NU0NfSEVBUlRCRUFUX0NUUkwJCQkweDA1YzQKKyNkZWZpbmUg QklUX01TQ19IRUFSVEJFQVRfQ1RSTF9NU0NfSEJfRU4JQklUKDcpCisjZGVmaW5lIE1TS19NU0Nf SEVBUlRCRUFUX0NUUkxfTVNDX0hCX0ZBSUxfTElNSVQgMHg3MAorI2RlZmluZSBNU0tfTVNDX0hF QVJUQkVBVF9DVFJMX01TQ19IQl9QRVJJT0RfTVNCIDB4MGYKKworLyogQ0JVUyBNU0MgQ29tcGF0 aWJpbGl0eSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDAyICovCisjZGVmaW5lIFJFR19DQlVT X01TQ19DT01QQVRfQ1RSTAkJMHgwNWM3CisjZGVmaW5lIEJJVF9DQlVTX01TQ19DT01QQVRfQ1RS TF9YREVWQ0FQX0VOCUJJVCg3KQorI2RlZmluZSBCSVRfQ0JVU19NU0NfQ09NUEFUX0NUUkxfRElT QUJMRV9NU0NfT05fQ0JVUyBCSVQoNikKKyNkZWZpbmUgQklUX0NCVVNfTVNDX0NPTVBBVF9DVFJM X0RJU0FCTEVfRERDX09OX0NCVVMgQklUKDUpCisjZGVmaW5lIEJJVF9DQlVTX01TQ19DT01QQVRf Q1RSTF9ESVNBQkxFX0dFVF9ERENfRVJST1JDT0RFIEJJVCgzKQorI2RlZmluZSBCSVRfQ0JVU19N U0NfQ09NUEFUX0NUUkxfRElTQUJMRV9HRVRfVlMxX0VSUk9SQ09ERSBCSVQoMikKKworLyogQ0JV UzMgQ29udmVydGVyIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MjQgKi8KKyNkZWZpbmUgUkVH X0NCVVMzX0NOVlQJCQkJMHgwNWRjCisjZGVmaW5lIE1TS19DQlVTM19DTlZUX0NCVVMzX1JFVFJZ TE1UCQkweGYwCisjZGVmaW5lIE1TS19DQlVTM19DTlZUX0NCVVMzX1BFRVJUT1VUX1NFTAkweDBj CisjZGVmaW5lIEJJVF9DQlVTM19DTlZUX1RFQVJDQlVTX0VOCQlCSVQoMSkKKyNkZWZpbmUgQklU X0NCVVMzX0NOVlRfQ0JVUzNDTlZUX0VOCQlCSVQoMCkKKworLyogRGlzY292ZXJ5IENvbnRyb2wx LCBkZWZhdWx0IHZhbHVlOiAweDI0ICovCisjZGVmaW5lIFJFR19ESVNDX0NUUkwxCQkJCTB4MDVl MAorI2RlZmluZSBCSVRfRElTQ19DVFJMMV9DQlVTX0lOVFJfRU4JCUJJVCg3KQorI2RlZmluZSBC SVRfRElTQ19DVFJMMV9IQl9PTkxZCQkJQklUKDYpCisjZGVmaW5lIE1TS19ESVNDX0NUUkwxX0RJ U0NfQVRUCQkJMHgzMAorI2RlZmluZSBNU0tfRElTQ19DVFJMMV9ESVNDX0NZQwkJCTB4MGMKKyNk ZWZpbmUgQklUX0RJU0NfQ1RSTDFfRElTQ19FTgkJCUJJVCgwKQorCisjZGVmaW5lIFZBTF9QVVBf T0ZGCQkJCTAKKyNkZWZpbmUgVkFMX1BVUF8yMEsJCQkJMQorI2RlZmluZSBWQUxfUFVQXzVLCQkJ CTIKKworLyogRGlzY292ZXJ5IENvbnRyb2w0LCBkZWZhdWx0IHZhbHVlOiAweDgwICovCisjZGVm aW5lIFJFR19ESVNDX0NUUkw0CQkJCTB4MDVlMworI2RlZmluZSBNU0tfRElTQ19DVFJMNF9DQlVT RElTQ19QVVBfU0VMCQkweGMwCisjZGVmaW5lIE1TS19ESVNDX0NUUkw0X0NCVVNJRExFX1BVUF9T RUwJCTB4MzAKKyNkZWZpbmUgVkFMX0RJU0NfQ1RSTDQocHVwX2Rpc2MsIHB1cF9pZGxlKSAoKChw dXBfZGlzYykgPDwgNikgfCAocHVwX2lkbGUgPDwgNCkpCisKKy8qIERpc2NvdmVyeSBDb250cm9s NSwgZGVmYXVsdCB2YWx1ZTogMHgwMyAqLworI2RlZmluZSBSRUdfRElTQ19DVFJMNQkJCQkweDA1 ZTQKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDVfRFNNX09WUklERQkJQklUKDMpCisjZGVmaW5lIE1T S19ESVNDX0NUUkw1X0NCVVNNSExfUFVQX1NFTAkJMHgwMworCisvKiBEaXNjb3ZlcnkgQ29udHJv bDgsIGRlZmF1bHQgdmFsdWU6IDB4ODEgKi8KKyNkZWZpbmUgUkVHX0RJU0NfQ1RSTDgJCQkJMHgw NWU3CisjZGVmaW5lIEJJVF9ESVNDX0NUUkw4X05PTUhMSU5UX0NMUl9CWVBBU1MJQklUKDcpCisj ZGVmaW5lIEJJVF9ESVNDX0NUUkw4X0RFTEFZX0NCVVNfSU5UUl9FTglCSVQoMCkKKworLyogRGlz Y292ZXJ5IENvbnRyb2w5LCBkZWZhdWx0IHZhbHVlOiAweDU0ICovCisjZGVmaW5lIFJFR19ESVND X0NUUkw5CQkJMHgwNWU4CisjZGVmaW5lIEJJVF9ESVNDX0NUUkw5X01ITDNfUlNFTl9CWVAJCUJJ VCg3KQorI2RlZmluZSBCSVRfRElTQ19DVFJMOV9NSEwzRElTQ19FTgkJQklUKDYpCisjZGVmaW5l IEJJVF9ESVNDX0NUUkw5X1dBS0VfRFJWRkxUCQlCSVQoNCkKKyNkZWZpbmUgQklUX0RJU0NfQ1RS TDlfTk9NSExfRVNUCQlCSVQoMykKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDlfRElTQ19QVUxTRV9Q Uk9DRUVECUJJVCgyKQorI2RlZmluZSBCSVRfRElTQ19DVFJMOV9XQUtFX1BVTFNFX0JZUEFTUwlC SVQoMSkKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDlfVkJVU19PVVRQVVRfQ0FQQUJJTElUWV9TUkMg QklUKDApCisKKy8qIERpc2NvdmVyeSBTdGF0dXMxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisj ZGVmaW5lIFJFR19ESVNDX1NUQVQxCQkJCTB4MDVlYgorI2RlZmluZSBCSVRfRElTQ19TVEFUMV9Q U01fT1ZSSURFCQlCSVQoNSkKKyNkZWZpbmUgTVNLX0RJU0NfU1RBVDFfRElTQ19TTQkJCTB4MGYK KworLyogRGlzY292ZXJ5IFN0YXR1czIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX0RJU0NfU1RBVDIJCQkJMHgwNWVjCisjZGVmaW5lIEJJVF9ESVNDX1NUQVQyX0NCVVNfT0Vf UE9MCQlCSVQoNikKKyNkZWZpbmUgQklUX0RJU0NfU1RBVDJfQ0JVU19TQVRVUwkJQklUKDUpCisj ZGVmaW5lIEJJVF9ESVNDX1NUQVQyX1JTRU4JCQlCSVQoNCkKKworI2RlZmluZSBNU0tfRElTQ19T VEFUMl9NSExfVlJTTgkJCTB4MGMKKyNkZWZpbmUgVkFMX0RJU0NfU1RBVDJfREVGQVVMVAkJCTB4 MDAKKyNkZWZpbmUgVkFMX0RJU0NfU1RBVDJfTUhMMV8yCQkJMHgwNAorI2RlZmluZSBWQUxfRElT Q19TVEFUMl9NSEwzCQkJMHgwOAorI2RlZmluZSBWQUxfRElTQ19TVEFUMl9SRVNFUlZFRAkJCTB4 MGMKKworI2RlZmluZSBNU0tfRElTQ19TVEFUMl9SR05ECQkJMHgwMworI2RlZmluZSBWQUxfUkdO RF9PUEVOCQkJCTB4MDAKKyNkZWZpbmUgVkFMX1JHTkRfMksJCQkJMHgwMQorI2RlZmluZSBWQUxf UkdORF8xSwkJCQkweDAyCisjZGVmaW5lIFZBTF9SR05EX1NIT1JUCQkJCTB4MDMKKworLyogSW50 ZXJydXB0IENCVVNfcmVnMSBJTlRSMCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfQ0JVU19ESVNDX0lOVFIwCQkJMHgwNWVkCisjZGVmaW5lIEJJVF9SR05EX1JFQURZX0lOVAkJ CUJJVCg2KQorI2RlZmluZSBCSVRfQ0JVU19NSEwxMl9ESVNDT05fSU5UCQlCSVQoNSkKKyNkZWZp bmUgQklUX0NCVVNfTUhMM19ESVNDT05fSU5UCQlCSVQoNCkKKyNkZWZpbmUgQklUX05PVF9NSExf RVNUX0lOVAkJCUJJVCgzKQorI2RlZmluZSBCSVRfTUhMX0VTVF9JTlQJCQkJQklUKDIpCisjZGVm aW5lIEJJVF9NSEwzX0VTVF9JTlQJCQlCSVQoMSkKKyNkZWZpbmUgVkFMX0NCVVNfTUhMX0RJU0NP TiAoQklUX0NCVVNfTUhMMTJfRElTQ09OX0lOVCBcCisJCQkgICAgfCBCSVRfQ0JVU19NSEwzX0RJ U0NPTl9JTlQgXAorCQkJICAgIHwgQklUX05PVF9NSExfRVNUX0lOVCkKKworLyogSW50ZXJydXB0 IENCVVNfcmVnMSBJTlRSMCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19DQlVTX0RJU0NfSU5UUjBfTUFTSwkJMHgwNWVlCisKKyNlbmRpZiAvKiBfX1NJTF9TSUk4NjIw X0hfXyAqLwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=