From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: [PATCH v4 3/3] drm/bridge: add Silicon Image SiI8620 driver Date: Fri, 07 Oct 2016 09:02:42 +0200 Message-ID: <1475823762-16237-4-git-send-email-a.hajda@samsung.com> References: <1475823762-16237-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 E388E6EAF2 for ; Fri, 7 Oct 2016 07:03:01 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OEO00B170WYZS60@mailout2.w1.samsung.com> for dri-devel@lists.freedesktop.org; Fri, 07 Oct 2016 08:02:58 +0100 (BST) In-reply-to: <1475823762-16237-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" , Archit Taneja Cc: Marek Szyprowski , Daniel Vetter , Bartlomiej Zolnierkiewicz List-Id: dri-devel@lists.freedesktop.org U2lJODYyMCB0cmFuc21pdHRlciBjb252ZXJ0cyBlVE1EUy9IRE1JIHNpZ25hbCB0byBNSEwgMy4w LgpJdCBpcyBjb250cm9sbGVkIHZpYSBJMkMgYnVzLiBJdHMgaW50ZXJhY3Rpb24gd2l0aCBvdGhl cgpkZXZpY2VzIGluIHZpZGVvIHBpcGVsaW5lIGlzIHBlcmZvcm1lZCBtYWlubHkgb24gSFcgbGV2 ZWwuClRoZSBvbmx5IGludGVyYWN0aW9uIGl0IGRvZXMgb24gZGV2aWNlIGRyaXZlciBsZXZlbCBp cwpmaWx0ZXJpbmctb3V0IHVuc3VwcG9ydGVkIHZpZGVvIG1vZGVzLCBpdCBleHBvc2VzIGRybV9i cmlkZ2UKaW50ZXJmYWNlIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24uCgpTaWduZWQtb2ZmLWJ5 OiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgotLS0KdjQ6CiAgLSB1cGRhdGVk IG1obC5oIGxvY2F0aW9uCnYzOgogIC0gbW9kaWZpZWQgZHJpdmVyIGRlc2NyaXB0aW9uLAogIC0g cmVtb3ZlZCBkdW1teSBicmlkZ2UgY2FsbGJhY2tzLAogIC0gcmVtb3ZlZCBsb2NraW5nIGZyb20g ZHJpdmVyIHJlbW92ZSBmdW5jdGlvbi4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL0tjb25m aWcgICAgICAgfCAgICA3ICsKIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvTWFrZWZpbGUgICAgICB8 ICAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jIHwgMTU1NyArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3Np bC1zaWk4NjIwLmggfCAxNTE3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNCBm aWxlcyBjaGFuZ2VkLCAzMDgyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYnJpZGdlL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL0tjb25maWcKaW5k ZXggYjU5MGU2Ny4uZTdmYjE3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9L Y29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZwpAQCAtNTAsNiArNTAs MTMgQEAgY29uZmlnIERSTV9QQVJBREVfUFM4NjIyCiAJLS0taGVscC0tLQogCSAgUGFyYWRlIGVE UC1MVkRTIGJyaWRnZSBjaGlwIGRyaXZlci4KIAorY29uZmlnIERSTV9TSUxfU0lJODYyMAorCXRy aXN0YXRlICJTaWxpY29uIEltYWdlIFNJSTg2MjAgSERNSS9NSEwgYnJpZGdlIgorCWRlcGVuZHMg b24gT0YKKwlzZWxlY3QgRFJNX0tNU19IRUxQRVIKKwloZWxwCisJICBTaWxpY29uIEltYWdlIFNJ STg2MjAgSERNSS9NSEwgYnJpZGdlIGNoaXAgZHJpdmVyLgorCiBjb25maWcgRFJNX1NJSTkwMlgK IAl0cmlzdGF0ZSAiU2lsaWNvbiBJbWFnZSBzaWk5MDJ4IFJHQi9IRE1JIGJyaWRnZSIKIAlkZXBl bmRzIG9uIE9GCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlIGIv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZQppbmRleCBlZmRiMDdlLi4zMDRjZjlkIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvTWFrZWZpbGUKQEAgLTUsNiArNSw3IEBAIG9iai0kKENPTkZJR19EUk1f RFdfSERNSSkgKz0gZHctaGRtaS5vCiBvYmotJChDT05GSUdfRFJNX0RXX0hETUlfQUhCX0FVRElP KSArPSBkdy1oZG1pLWFoYi1hdWRpby5vCiBvYmotJChDT05GSUdfRFJNX05YUF9QVE4zNDYwKSAr PSBueHAtcHRuMzQ2MC5vCiBvYmotJChDT05GSUdfRFJNX1BBUkFERV9QUzg2MjIpICs9IHBhcmFk ZS1wczg2MjIubworb2JqLSQoQ09ORklHX0RSTV9TSUxfU0lJODYyMCkgKz0gc2lsLXNpaTg2MjAu bwogb2JqLSQoQ09ORklHX0RSTV9TSUk5MDJYKSArPSBzaWk5MDJ4Lm8KIG9iai0kKENPTkZJR19E Uk1fVE9TSElCQV9UQzM1ODc2NykgKz0gdGMzNTg3Njcubwogb2JqLSQoQ09ORklHX0RSTV9BTkFM T0dJWF9EUCkgKz0gYW5hbG9naXgvCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdl L3NpbC1zaWk4NjIwLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2YwNTNhNQotLS0gL2Rldi9udWxsCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lsLXNpaTg2MjAuYwpAQCAtMCwwICsxLDE1NTcg QEAKKy8qCisgKiBTaWxpY29uIEltYWdlIFNpSTg2MjAgSERNSS9NSEwgYnJpZGdlIGRyaXZlcgor ICoKKyAqIENvcHlyaWdodCAoQykgMjAxNSwgU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4K KyAqIEFuZHJ6ZWogSGFqZGEgPGEuaGFqZGFAc2Ftc3VuZy5jb20+CisgKgorICogVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbi4KKyAqLworCisjaW5jbHVkZSA8ZHJtL2JyaWRnZS9taGwuaD4KKyNpbmNsdWRlIDxkcm0v ZHJtX2NydGMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KKworI2luY2x1ZGUgPGxpbnV4 L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby9j b25zdW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVy cnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5o PgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNp bmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1l ci5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKworI2luY2x1ZGUgInNpbC1zaWk4NjIwLmgi CisKKyNkZWZpbmUgVkFMX1JYX0hETUlfQ1RSTDJfREVGVkFMCVZBTF9SWF9IRE1JX0NUUkwyX0lE TEVfQ05UKDMpCisKK2VudW0gc2lpODYyMF9tb2RlIHsKKwlDTV9ESVNDT05ORUNURUQsCisJQ01f RElTQ09WRVJZLAorCUNNX01ITDEsCisJQ01fTUhMMywKKwlDTV9FQ0JVU19TCit9OworCitlbnVt IHNpaTg2MjBfc2lua190eXBlIHsKKwlTSU5LX05PTkUsCisJU0lOS19IRE1JLAorCVNJTktfRFZJ Cit9OworCitlbnVtIHNpaTg2MjBfbXRfc3RhdGUgeworCU1UX1NUQVRFX1JFQURZLAorCU1UX1NU QVRFX0JVU1ksCisJTVRfU1RBVEVfRE9ORQorfTsKKworc3RydWN0IHNpaTg2MjAgeworCXN0cnVj dCBkcm1fYnJpZGdlIGJyaWRnZTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJc3RydWN0IGNsayAq Y2xrX3h0YWw7CisJc3RydWN0IGdwaW9fZGVzYyAqZ3Bpb19yZXNldDsKKwlzdHJ1Y3QgZ3Bpb19k ZXNjICpncGlvX2ludDsKKwlzdHJ1Y3QgcmVndWxhdG9yX2J1bGtfZGF0YSBzdXBwbGllc1syXTsK KwlzdHJ1Y3QgbXV0ZXggbG9jazsgLyogY29udGV4dCBsb2NrLCBwcm90ZWN0cyBmaWVsZHMgYmVs b3cgKi8KKwlpbnQgZXJyb3I7CisJZW51bSBzaWk4NjIwX21vZGUgbW9kZTsKKwllbnVtIHNpaTg2 MjBfc2lua190eXBlIHNpbmtfdHlwZTsKKwl1OCBjYnVzX3N0YXR1czsKKwl1OCBzdGF0W01ITF9E U1RfU0laRV07CisJdTggeHN0YXRbTUhMX1hEU19TSVpFXTsKKwl1OCBkZXZjYXBbTUhMX0RDQVBf U0laRV07CisJdTggeGRldmNhcFtNSExfWERDX1NJWkVdOworCXU4IGF2aWZbMTldOworCXN0cnVj dCBlZGlkICplZGlkOworCXVuc2lnbmVkIGludCBnZW4yX3dyaXRlX2J1cnN0OjE7CisJZW51bSBz aWk4NjIwX210X3N0YXRlIG10X3N0YXRlOworCXN0cnVjdCBsaXN0X2hlYWQgbXRfcXVldWU7Cit9 OworCitzdHJ1Y3Qgc2lpODYyMF9tdF9tc2c7CisKK3R5cGVkZWYgdm9pZCAoKnNpaTg2MjBfbXRf bXNnX2NiKShzdHJ1Y3Qgc2lpODYyMCAqY3R4LAorCQkJCSAgc3RydWN0IHNpaTg2MjBfbXRfbXNn ICptc2cpOworCitzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cgeworCXN0cnVjdCBsaXN0X2hlYWQgbm9k ZTsKKwl1OCByZWdbNF07CisJdTggcmV0OworCXNpaTg2MjBfbXRfbXNnX2NiIHNlbmQ7CisJc2lp ODYyMF9tdF9tc2dfY2IgcmVjdjsKK307CisKK3N0YXRpYyBjb25zdCB1OCBzaWk4NjIwX2kyY19w YWdlW10gPSB7CisJMHgzOSwgLyogTWFpbiBTeXN0ZW0gKi8KKwkweDNkLCAvKiBURE0gYW5kIEhT SUMgKi8KKwkweDQ5LCAvKiBUTURTIFJlY2VpdmVyLCBNSEwgRURJRCAqLworCTB4NGQsIC8qIGVN U0MsIEhEQ1AsIEhTSUMgKi8KKwkweDVkLCAvKiBNSEwgU3BlYyAqLworCTB4NjQsIC8qIE1ITCBD QlVTICovCisJMHg1OSwgLyogSGFyZHdhcmUgVFBJIChUcmFuc21pdHRlciBQcm9ncmFtbWluZyBJ bnRlcmZhY2UpICovCisJMHg2MSwgLyogZUNCVVMtUywgZUNCVVMtRCAqLworfTsKKworc3RhdGlj IHZvaWQgc2lpODYyMF9mZXRjaF9lZGlkKHN0cnVjdCBzaWk4NjIwICpjdHgpOworc3RhdGljIHZv aWQgc2lpODYyMF9zZXRfdXBzdHJlYW1fZWRpZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KTsKK3N0YXRp YyB2b2lkIHNpaTg2MjBfZW5hYmxlX2hwZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KTsKK3N0YXRpYyB2 b2lkIHNpaTg2MjBfbWhsX2Rpc2Nvbm5lY3RlZChzdHJ1Y3Qgc2lpODYyMCAqY3R4KTsKKworc3Rh dGljIGludCBzaWk4NjIwX2NsZWFyX2Vycm9yKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaW50 IHJldCA9IGN0eC0+ZXJyb3I7CisKKwljdHgtPmVycm9yID0gMDsKKwlyZXR1cm4gcmV0OworfQor CitzdGF0aWMgdm9pZCBzaWk4NjIwX3JlYWRfYnVmKHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiBh ZGRyLCB1OCAqYnVmLCBpbnQgbGVuKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2 OworCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQgPSB0b19pMmNfY2xpZW50KGRldik7CisJdTgg ZGF0YSA9IGFkZHI7CisJc3RydWN0IGkyY19tc2cgbXNnW10gPSB7CisJCXsKKwkJCS5hZGRyID0g c2lpODYyMF9pMmNfcGFnZVthZGRyID4+IDhdLAorCQkJLmZsYWdzID0gY2xpZW50LT5mbGFncywK KwkJCS5sZW4gPSAxLAorCQkJLmJ1ZiA9ICZkYXRhCisJCX0sCisJCXsKKwkJCS5hZGRyID0gc2lp ODYyMF9pMmNfcGFnZVthZGRyID4+IDhdLAorCQkJLmZsYWdzID0gY2xpZW50LT5mbGFncyB8IEky Q19NX1JELAorCQkJLmxlbiA9IGxlbiwKKwkJCS5idWYgPSBidWYKKwkJfSwKKwl9OworCWludCBy ZXQ7CisKKwlpZiAoY3R4LT5lcnJvcikKKwkJcmV0dXJuOworCisJcmV0ID0gaTJjX3RyYW5zZmVy KGNsaWVudC0+YWRhcHRlciwgbXNnLCAyKTsKKwlkZXZfZGJnKGRldiwgInJlYWQgYXQgJTA0eDog JSpwaCwgJWRcbiIsIGFkZHIsIGxlbiwgYnVmLCByZXQpOworCisJaWYgKHJldCAhPSAyKSB7CisJ CWRldl9lcnIoZGV2LCAiUmVhZCBhdCAlIzA2eCBvZiAlZCBieXRlcyBmYWlsZWQgd2l0aCBjb2Rl ICVkLlxuIiwKKwkJCWFkZHIsIGxlbiwgcmV0KTsKKwkJY3R4LT5lcnJvciA9IHJldCA8IDAgPyBy ZXQgOiAtRUlPOworCX0KK30KKworc3RhdGljIHU4IHNpaTg2MjBfcmVhZGIoc3RydWN0IHNpaTg2 MjAgKmN0eCwgdTE2IGFkZHIpCit7CisJdTggcmV0OworCisJc2lpODYyMF9yZWFkX2J1ZihjdHgs IGFkZHIsICZyZXQsIDEpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBf d3JpdGVfYnVmKHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiBhZGRyLCBjb25zdCB1OCAqYnVmLAor CQkJICAgICAgaW50IGxlbikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjdHgtPmRldjsKKwlz dHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50ID0gdG9faTJjX2NsaWVudChkZXYpOworCXU4IGRhdGFb Ml07CisJc3RydWN0IGkyY19tc2cgbXNnID0geworCQkuYWRkciA9IHNpaTg2MjBfaTJjX3BhZ2Vb YWRkciA+PiA4XSwKKwkJLmZsYWdzID0gY2xpZW50LT5mbGFncywKKwkJLmxlbiA9IGxlbiArIDEs CisJfTsKKwlpbnQgcmV0OworCisJaWYgKGN0eC0+ZXJyb3IpCisJCXJldHVybjsKKworCWlmIChs ZW4gPiAxKSB7CisJCW1zZy5idWYgPSBrbWFsbG9jKGxlbiArIDEsIEdGUF9LRVJORUwpOworCQlp ZiAoIW1zZy5idWYpIHsKKwkJCWN0eC0+ZXJyb3IgPSAtRU5PTUVNOworCQkJcmV0dXJuOworCQl9 CisJCW1lbWNweShtc2cuYnVmICsgMSwgYnVmLCBsZW4pOworCX0gZWxzZSB7CisJCW1zZy5idWYg PSBkYXRhOworCQltc2cuYnVmWzFdID0gKmJ1ZjsKKwl9CisKKwltc2cuYnVmWzBdID0gYWRkcjsK KworCXJldCA9IGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIsICZtc2csIDEpOworCWRldl9k YmcoZGV2LCAid3JpdGUgYXQgJTA0eDogJSpwaCwgJWRcbiIsIGFkZHIsIGxlbiwgYnVmLCByZXQp OworCisJaWYgKHJldCAhPSAxKSB7CisJCWRldl9lcnIoZGV2LCAiV3JpdGUgYXQgJSMwNnggb2Yg JSpwaCBmYWlsZWQgd2l0aCBjb2RlICVkLlxuIiwKKwkJCWFkZHIsIGxlbiwgYnVmLCByZXQpOwor CQljdHgtPmVycm9yID0gcmV0ID86IC1FSU87CisJfQorCisJaWYgKGxlbiA+IDEpCisJCWtmcmVl KG1zZy5idWYpOworfQorCisjZGVmaW5lIHNpaTg2MjBfd3JpdGUoY3R4LCBhZGRyLCBhcnIuLi4p IFwKKyh7XAorCXU4IGRbXSA9IHsgYXJyIH07IFwKKwlzaWk4NjIwX3dyaXRlX2J1ZihjdHgsIGFk ZHIsIGQsIEFSUkFZX1NJWkUoZCkpOyBcCit9KQorCitzdGF0aWMgdm9pZCBfX3NpaTg2MjBfd3Jp dGVfc2VxKHN0cnVjdCBzaWk4NjIwICpjdHgsIHUxNiAqc2VxLCBpbnQgbGVuKQoreworCWludCBp OworCisJZm9yIChpID0gMDsgaSA8IGxlbjsgaSArPSAyKQorCQlzaWk4NjIwX3dyaXRlKGN0eCwg c2VxW2ldLCBzZXFbaSArIDFdKTsKK30KKworI2RlZmluZSBzaWk4NjIwX3dyaXRlX3NlcShjdHgs IHNlcS4uLikgXAorKHtcCisJdTE2IGRbXSA9IHsgc2VxIH07IFwKKwlfX3NpaTg2MjBfd3JpdGVf c2VxKGN0eCwgZCwgQVJSQVlfU0laRShkKSk7IFwKK30pCisKK3N0YXRpYyB2b2lkIHNpaTg2MjBf c2V0Yml0cyhzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1MTYgYWRkciwgdTggbWFzaywgdTggdmFsKQor eworCXZhbCA9ICh2YWwgJiBtYXNrKSB8IChzaWk4NjIwX3JlYWRiKGN0eCwgYWRkcikgJiB+bWFz ayk7CisJc2lpODYyMF93cml0ZShjdHgsIGFkZHIsIHZhbCk7Cit9CisKK3N0YXRpYyB2b2lkIHNp aTg2MjBfbXRfY2xlYW51cChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXN0cnVjdCBzaWk4NjIw X210X21zZyAqbXNnLCAqbjsKKworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShtc2csIG4sICZj dHgtPm10X3F1ZXVlLCBub2RlKSB7CisJCWxpc3RfZGVsKCZtc2ctPm5vZGUpOworCQlrZnJlZSht c2cpOworCX0KKwljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVfUkVBRFk7Cit9CisKK3N0YXRpYyB2 b2lkIHNpaTg2MjBfbXRfd29yayhzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXN0cnVjdCBzaWk4 NjIwX210X21zZyAqbXNnOworCisJaWYgKGN0eC0+ZXJyb3IpCisJCXJldHVybjsKKwlpZiAoY3R4 LT5tdF9zdGF0ZSA9PSBNVF9TVEFURV9CVVNZIHx8IGxpc3RfZW1wdHkoJmN0eC0+bXRfcXVldWUp KQorCQlyZXR1cm47CisKKwlpZiAoY3R4LT5tdF9zdGF0ZSA9PSBNVF9TVEFURV9ET05FKSB7CisJ CWN0eC0+bXRfc3RhdGUgPSBNVF9TVEFURV9SRUFEWTsKKwkJbXNnID0gbGlzdF9maXJzdF9lbnRy eSgmY3R4LT5tdF9xdWV1ZSwgc3RydWN0IHNpaTg2MjBfbXRfbXNnLAorCQkJCSAgICAgICBub2Rl KTsKKwkJaWYgKG1zZy0+cmVjdikKKwkJCW1zZy0+cmVjdihjdHgsIG1zZyk7CisJCWxpc3RfZGVs KCZtc2ctPm5vZGUpOworCQlrZnJlZShtc2cpOworCX0KKworCWlmIChjdHgtPm10X3N0YXRlICE9 IE1UX1NUQVRFX1JFQURZIHx8IGxpc3RfZW1wdHkoJmN0eC0+bXRfcXVldWUpKQorCQlyZXR1cm47 CisKKwljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVfQlVTWTsKKwltc2cgPSBsaXN0X2ZpcnN0X2Vu dHJ5KCZjdHgtPm10X3F1ZXVlLCBzdHJ1Y3Qgc2lpODYyMF9tdF9tc2csIG5vZGUpOworCWlmICht c2ctPnNlbmQpCisJCW1zZy0+c2VuZChjdHgsIG1zZyk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2 MjBfbXRfbXNjX2NtZF9zZW5kKHN0cnVjdCBzaWk4NjIwICpjdHgsCisJCQkJICAgICAgIHN0cnVj dCBzaWk4NjIwX210X21zZyAqbXNnKQoreworCXN3aXRjaCAobXNnLT5yZWdbMF0pIHsKKwljYXNl IE1ITF9XUklURV9TVEFUOgorCWNhc2UgTUhMX1NFVF9JTlQ6CisJCXNpaTg2MjBfd3JpdGVfYnVm KGN0eCwgUkVHX01TQ19DTURfT1JfT0ZGU0VULCBtc2ctPnJlZyArIDEsIDIpOworCQlzaWk4NjIw X3dyaXRlKGN0eCwgUkVHX01TQ19DT01NQU5EX1NUQVJULAorCQkJICAgICAgQklUX01TQ19DT01N QU5EX1NUQVJUX1dSSVRFX1NUQVQpOworCQlicmVhazsKKwljYXNlIE1ITF9NU0NfTVNHOgorCQlz aWk4NjIwX3dyaXRlX2J1ZihjdHgsIFJFR19NU0NfQ01EX09SX09GRlNFVCwgbXNnLT5yZWcsIDMp OworCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX01TQ19DT01NQU5EX1NUQVJULAorCQkJICAgICAg QklUX01TQ19DT01NQU5EX1NUQVJUX01TQ19NU0cpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlk ZXZfZXJyKGN0eC0+ZGV2LCAiJXM6IGNvbW1hbmQgJSN4IG5vdCBzdXBwb3J0ZWRcbiIsIF9fZnVu Y19fLAorCQkJbXNnLT5yZWdbMF0pOworCX0KK30KKworc3RhdGljIHN0cnVjdCBzaWk4NjIwX210 X21zZyAqc2lpODYyMF9tdF9tc2dfbmV3KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RydWN0 IHNpaTg2MjBfbXRfbXNnICptc2cgPSBremFsbG9jKHNpemVvZigqbXNnKSwgR0ZQX0tFUk5FTCk7 CisKKwlpZiAoIW1zZykKKwkJY3R4LT5lcnJvciA9IC1FTk9NRU07CisJZWxzZQorCQlsaXN0X2Fk ZF90YWlsKCZtc2ctPm5vZGUsICZjdHgtPm10X3F1ZXVlKTsKKworCXJldHVybiBtc2c7Cit9CisK K3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfbXNjX2NtZChzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1OCBj bWQsIHU4IGFyZzEsIHU4IGFyZzIpCit7CisJc3RydWN0IHNpaTg2MjBfbXRfbXNnICptc2cgPSBz aWk4NjIwX210X21zZ19uZXcoY3R4KTsKKworCWlmICghbXNnKQorCQlyZXR1cm47CisKKwltc2ct PnJlZ1swXSA9IGNtZDsKKwltc2ctPnJlZ1sxXSA9IGFyZzE7CisJbXNnLT5yZWdbMl0gPSBhcmcy OworCW1zZy0+c2VuZCA9IHNpaTg2MjBfbXRfbXNjX2NtZF9zZW5kOworfQorCitzdGF0aWMgdm9p ZCBzaWk4NjIwX210X3dyaXRlX3N0YXQoc3RydWN0IHNpaTg2MjAgKmN0eCwgdTggcmVnLCB1OCB2 YWwpCit7CisJc2lpODYyMF9tdF9tc2NfY21kKGN0eCwgTUhMX1dSSVRFX1NUQVQsIHJlZywgdmFs KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHNpaTg2MjBfbXRfc2V0X2ludChzdHJ1Y3Qgc2lp ODYyMCAqY3R4LCB1OCBpcnEsIHU4IG1hc2spCit7CisJc2lpODYyMF9tdF9tc2NfY21kKGN0eCwg TUhMX1NFVF9JTlQsIGlycSwgbWFzayk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXRfbXNj X21zZyhzdHJ1Y3Qgc2lpODYyMCAqY3R4LCB1OCBjbWQsIHU4IGRhdGEpCit7CisJc2lpODYyMF9t dF9tc2NfY21kKGN0eCwgTUhMX01TQ19NU0csIGNtZCwgZGF0YSk7Cit9CisKK3N0YXRpYyB2b2lk IHNpaTg2MjBfbXRfcmFwKHN0cnVjdCBzaWk4NjIwICpjdHgsIHU4IGNvZGUpCit7CisJc2lpODYy MF9tdF9tc2NfbXNnKGN0eCwgTUhMX01TQ19NU0dfUkFQLCBjb2RlKTsKK30KKworc3RhdGljIHZv aWQgc2lpODYyMF9tdF9yZWFkX2RldmNhcF9zZW5kKHN0cnVjdCBzaWk4NjIwICpjdHgsCisJCQkJ CXN0cnVjdCBzaWk4NjIwX210X21zZyAqbXNnKQoreworCXU4IGN0cmwgPSBCSVRfRURJRF9DVFJM X0RFVkNBUF9TRUxFQ1RfREVWQ0FQCisJCQl8IEJJVF9FRElEX0NUUkxfRURJRF9GSUZPX0FERFJf QVVUTworCQkJfCBCSVRfRURJRF9DVFJMX0VESURfTU9ERV9FTjsKKworCWlmIChtc2ctPnJlZ1sw XSA9PSBNSExfUkVBRF9YREVWQ0FQKQorCQljdHJsIHw9IEJJVF9FRElEX0NUUkxfWERFVkNBUF9F TjsKKworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX0lOVFI5X01BU0ssIEJJVF9JTlRS OV9ERVZDQVBfRE9ORSwKKwkJUkVHX0VESURfQ1RSTCwgY3RybCwKKwkJUkVHX1RQSV9DQlVTX1NU QVJULCBCSVRfVFBJX0NCVVNfU1RBUlRfR0VUX0RFVkNBUF9TVEFSVAorCSk7Cit9CisKKy8qIGNv cHkgc3JjIHRvIGRzdCBhbmQgc2V0IGNoYW5nZWQgYml0cyBpbiBzcmMgKi8KK3N0YXRpYyB2b2lk IHNpaTg2MjBfdXBkYXRlX2FycmF5KHU4ICpkc3QsIHU4ICpzcmMsIGludCBjb3VudCkKK3sKKwl3 aGlsZSAoLS1jb3VudCA+PSAwKSB7CisJCSpzcmMgXj0gKmRzdDsKKwkJKmRzdCsrIF49ICpzcmMr KzsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXJfZGV2Y2FwKHN0cnVjdCBzaWk4NjIw ICpjdHgpCit7CisJc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzaW5rX3N0cltdID0geworCQlb U0lOS19OT05FXSA9ICJOT05FIiwKKwkJW1NJTktfSERNSV0gPSAiSERNSSIsCisJCVtTSU5LX0RW SV0gPSAiRFZJIgorCX07CisKKwl1OCBkY2FwW01ITF9EQ0FQX1NJWkVdOworCWNoYXIgc2lua19u YW1lWzIwXTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjdHgtPmRldjsKKworCXNpaTg2MjBfcmVh ZF9idWYoY3R4LCBSRUdfRURJRF9GSUZPX1JEX0RBVEEsIGRjYXAsIE1ITF9EQ0FQX1NJWkUpOwor CWlmIChjdHgtPmVycm9yIDwgMCkKKwkJcmV0dXJuOworCisJZGV2X2luZm8oZGV2LCAiZGNhcDog JSpwaFxuIiwgTUhMX0RDQVBfU0laRSwgZGNhcCk7CisJZGV2X2luZm8oZGV2LCAiZGV0ZWN0ZWQg ZG9uZ2xlIE1ITCAlZC4lZCwgQ2hpcElEICUwMnglMDJ4OiUwMnglMDJ4XG4iLAorCQlkY2FwW01I TF9EQ0FQX01ITF9WRVJTSU9OXSAvIDE2LCBkY2FwW01ITF9EQ0FQX01ITF9WRVJTSU9OXSAlIDE2 LAorCQlkY2FwW01ITF9EQ0FQX0FET1BURVJfSURfSF0sIGRjYXBbTUhMX0RDQVBfQURPUFRFUl9J RF9MXSwKKwkJZGNhcFtNSExfRENBUF9ERVZJQ0VfSURfSF0sIGRjYXBbTUhMX0RDQVBfREVWSUNF X0lEX0xdKTsKKwlzaWk4NjIwX3VwZGF0ZV9hcnJheShjdHgtPmRldmNhcCwgZGNhcCwgTUhMX0RD QVBfU0laRSk7CisKKwlpZiAoIShkY2FwW01ITF9EQ0FQX0NBVF0gJiBNSExfRENBUF9DQVRfU0lO SykpCisJCXJldHVybjsKKworCXNpaTg2MjBfZmV0Y2hfZWRpZChjdHgpOworCWlmICghY3R4LT5l ZGlkKSB7CisJCWRldl9lcnIoY3R4LT5kZXYsICJDYW5ub3QgZmV0Y2ggRURJRFxuIik7CisJCXNp aTg2MjBfbWhsX2Rpc2Nvbm5lY3RlZChjdHgpOworCQlyZXR1cm47CisJfQorCisJaWYgKGRybV9k ZXRlY3RfaGRtaV9tb25pdG9yKGN0eC0+ZWRpZCkpCisJCWN0eC0+c2lua190eXBlID0gU0lOS19I RE1JOworCWVsc2UKKwkJY3R4LT5zaW5rX3R5cGUgPSBTSU5LX0RWSTsKKworCWRybV9lZGlkX2dl dF9tb25pdG9yX25hbWUoY3R4LT5lZGlkLCBzaW5rX25hbWUsIEFSUkFZX1NJWkUoc2lua19uYW1l KSk7CisKKwlkZXZfaW5mbyhkZXYsICJkZXRlY3RlZCBzaW5rKHR5cGU6ICVzKTogJXNcbiIsCisJ CXNpbmtfc3RyW2N0eC0+c2lua190eXBlXSwgc2lua19uYW1lKTsKKwlzaWk4NjIwX3NldF91cHN0 cmVhbV9lZGlkKGN0eCk7CisJc2lpODYyMF9lbmFibGVfaHBkKGN0eCk7Cit9CisKK3N0YXRpYyB2 b2lkIHNpaTg2MjBfbXJfeGRldmNhcChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNpaTg2MjBf cmVhZF9idWYoY3R4LCBSRUdfRURJRF9GSUZPX1JEX0RBVEEsIGN0eC0+eGRldmNhcCwKKwkJCSBN SExfWERDX1NJWkUpOworCisJc2lpODYyMF9tdF93cml0ZV9zdGF0KGN0eCwgTUhMX1hEU19SRUco Q1VSUl9FQ0JVU19NT0RFKSwKKwkJCSAgICAgIE1ITF9YRFNfRUNCVVNfUyB8IE1ITF9YRFNfU0xP VF9NT0RFXzhCSVQpOworCXNpaTg2MjBfbXRfcmFwKGN0eCwgTUhMX1JBUF9DQlVTX01PREVfVVAp OworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX210X3JlYWRfZGV2Y2FwX3JlY3Yoc3RydWN0IHNp aTg2MjAgKmN0eCwKKwkJCQkJc3RydWN0IHNpaTg2MjBfbXRfbXNnICptc2cpCit7CisJdTggY3Ry bCA9IEJJVF9FRElEX0NUUkxfREVWQ0FQX1NFTEVDVF9ERVZDQVAKKwkJfCBCSVRfRURJRF9DVFJM X0VESURfRklGT19BRERSX0FVVE8KKwkJfCBCSVRfRURJRF9DVFJMX0VESURfTU9ERV9FTjsKKwor CWlmIChtc2ctPnJlZ1swXSA9PSBNSExfUkVBRF9YREVWQ0FQKQorCQljdHJsIHw9IEJJVF9FRElE X0NUUkxfWERFVkNBUF9FTjsKKworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX0lOVFI5 X01BU0ssIEJJVF9JTlRSOV9ERVZDQVBfRE9ORSB8IEJJVF9JTlRSOV9FRElEX0RPTkUKKwkJCXwg QklUX0lOVFI5X0VESURfRVJST1IsCisJCVJFR19FRElEX0NUUkwsIGN0cmwsCisJCVJFR19FRElE X0ZJRk9fQUREUiwgMAorCSk7CisKKwlpZiAobXNnLT5yZWdbMF0gPT0gTUhMX1JFQURfWERFVkNB UCkKKwkJc2lpODYyMF9tcl94ZGV2Y2FwKGN0eCk7CisJZWxzZQorCQlzaWk4NjIwX21yX2RldmNh cChjdHgpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX210X3JlYWRfZGV2Y2FwKHN0cnVjdCBz aWk4NjIwICpjdHgsIGJvb2wgeGRldmNhcCkKK3sKKwlzdHJ1Y3Qgc2lpODYyMF9tdF9tc2cgKm1z ZyA9IHNpaTg2MjBfbXRfbXNnX25ldyhjdHgpOworCisJaWYgKCFtc2cpCisJCXJldHVybjsKKwor CW1zZy0+cmVnWzBdID0geGRldmNhcCA/IE1ITF9SRUFEX1hERVZDQVAgOiBNSExfUkVBRF9ERVZD QVA7CisJbXNnLT5zZW5kID0gc2lpODYyMF9tdF9yZWFkX2RldmNhcF9zZW5kOworCW1zZy0+cmVj diA9IHNpaTg2MjBfbXRfcmVhZF9kZXZjYXBfcmVjdjsKK30KKworc3RhdGljIHZvaWQgc2lpODYy MF9mZXRjaF9lZGlkKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJdTggbG1fZGRjLCBkZGNfY21k LCBpbnQzLCBjYnVzOworCWludCBmZXRjaGVkLCBpOworCWludCBlZGlkX2xlbiA9IEVESURfTEVO R1RIOworCXU4ICplZGlkOworCisJc2lpODYyMF9yZWFkYihjdHgsIFJFR19DQlVTX1NUQVRVUyk7 CisJbG1fZGRjID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19MTV9EREMpOworCWRkY19jbWQgPSBz aWk4NjIwX3JlYWRiKGN0eCwgUkVHX0REQ19DTUQpOworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4 LAorCQlSRUdfSU5UUjlfTUFTSywgMCwKKwkJUkVHX0VESURfQ1RSTCwgQklUX0VESURfQ1RSTF9F RElEX0ZJRk9fQUREUl9BVVRPLAorCQlSRUdfSERDUDJYX1BPTExfQ1MsIDB4NzEsCisJCVJFR19I RENQMlhfQ1RSTF8wLCBCSVRfSERDUDJYX0NUUkxfMF9IRENQMlhfSERDUFRYLAorCQlSRUdfTE1f RERDLCBsbV9kZGMgfCBCSVRfTE1fRERDX1NXX1RQSV9FTl9ESVNBQkxFRCwKKwkpOworCisJZm9y IChpID0gMDsgaSA8IDI1NjsgKytpKSB7CisJCXU4IGRkY19zdGF0ID0gc2lpODYyMF9yZWFkYihj dHgsIFJFR19ERENfU1RBVFVTKTsKKworCQlpZiAoIShkZGNfc3RhdCAmIEJJVF9ERENfU1RBVFVT X0REQ19JMkNfSU5fUFJPRykpCisJCQlicmVhazsKKwkJc2lpODYyMF93cml0ZShjdHgsIFJFR19E RENfU1RBVFVTLAorCQkJICAgICAgIEJJVF9ERENfU1RBVFVTX0REQ19GSUZPX0VNUFRZKTsKKwl9 CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0REQ19BRERSLCAweDUwIDw8IDEpOworCisJZWRp ZCA9IGttYWxsb2MoRURJRF9MRU5HVEgsIEdGUF9LRVJORUwpOworCWlmICghZWRpZCkgeworCQlj dHgtPmVycm9yID0gLUVOT01FTTsKKwkJcmV0dXJuOworCX0KKworI2RlZmluZSBGRVRDSF9TSVpF IDE2CisJZm9yIChmZXRjaGVkID0gMDsgZmV0Y2hlZCA8IGVkaWRfbGVuOyBmZXRjaGVkICs9IEZF VENIX1NJWkUpIHsKKwkJc2lpODYyMF9yZWFkYihjdHgsIFJFR19ERENfU1RBVFVTKTsKKwkJc2lp ODYyMF93cml0ZV9zZXEoY3R4LAorCQkJUkVHX0REQ19DTUQsIGRkY19jbWQgfCBWQUxfRERDX0NN RF9ERENfQ01EX0FCT1JULAorCQkJUkVHX0REQ19DTUQsIGRkY19jbWQgfCBWQUxfRERDX0NNRF9E RENfQ01EX0NMRUFSX0ZJRk8sCisJCQlSRUdfRERDX1NUQVRVUywgQklUX0REQ19TVEFUVVNfRERD X0ZJRk9fRU1QVFkKKwkJKTsKKwkJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQkJUkVHX0REQ19T RUdNLCBmZXRjaGVkID4+IDgsCisJCQlSRUdfRERDX09GRlNFVCwgZmV0Y2hlZCAmIDB4ZmYsCisJ CQlSRUdfRERDX0RJTl9DTlQxLCBGRVRDSF9TSVpFLAorCQkJUkVHX0REQ19ESU5fQ05UMiwgMCwK KwkJCVJFR19ERENfQ01ELCBkZGNfY21kIHwgVkFMX0REQ19DTURfRU5IX0REQ19SRUFEX05PX0FD SworCQkpOworCisJCWRvIHsKKwkJCWludDMgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0lOVFIz KTsKKwkJCWNidXMgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0NCVVNfU1RBVFVTKTsKKworCQkJ aWYgKGludDMgJiBCSVRfRERDX0NNRF9ET05FKQorCQkJCWJyZWFrOworCisJCQlpZiAoIShjYnVz ICYgQklUX0NCVVNfU1RBVFVTX0NCVVNfQ09OTkVDVEVEKSkgeworCQkJCWtmcmVlKGVkaWQpOwor CQkJCWVkaWQgPSBOVUxMOworCQkJCWdvdG8gZW5kOworCQkJfQorCQl9IHdoaWxlICgxKTsKKwor CQlzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX0REQ19TVEFUVVMpOworCQl3aGlsZSAoc2lpODYyMF9y ZWFkYihjdHgsIFJFR19ERENfRE9VVF9DTlQpIDwgRkVUQ0hfU0laRSkKKwkJCXVzbGVlcF9yYW5n ZSgxMCwgMjApOworCisJCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfRERDX0RBVEEsIGVkaWQg KyBmZXRjaGVkLCBGRVRDSF9TSVpFKTsKKwkJaWYgKGZldGNoZWQgKyBGRVRDSF9TSVpFID09IEVE SURfTEVOR1RIKSB7CisJCQl1OCBleHQgPSAoKHN0cnVjdCBlZGlkICopZWRpZCktPmV4dGVuc2lv bnM7CisKKwkJCWlmIChleHQpIHsKKwkJCQl1OCAqbmV3X2VkaWQ7CisKKwkJCQllZGlkX2xlbiAr PSBleHQgKiBFRElEX0xFTkdUSDsKKwkJCQluZXdfZWRpZCA9IGtyZWFsbG9jKGVkaWQsIGVkaWRf bGVuLCBHRlBfS0VSTkVMKTsKKwkJCQlpZiAoIW5ld19lZGlkKSB7CisJCQkJCWtmcmVlKGVkaWQp OworCQkJCQljdHgtPmVycm9yID0gLUVOT01FTTsKKwkJCQkJcmV0dXJuOworCQkJCX0KKwkJCQll ZGlkID0gbmV3X2VkaWQ7CisJCQl9CisJCX0KKworCQlpZiAoZmV0Y2hlZCArIEZFVENIX1NJWkUg PT0gZWRpZF9sZW4pCisJCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0lOVFIzLCBpbnQzKTsKKwl9 CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0xNX0REQywgbG1fZGRjKTsKKworZW5kOgorCWtm cmVlKGN0eC0+ZWRpZCk7CisJY3R4LT5lZGlkID0gKHN0cnVjdCBlZGlkICopZWRpZDsKK30KKwor c3RhdGljIHZvaWQgc2lpODYyMF9zZXRfdXBzdHJlYW1fZWRpZChzdHJ1Y3Qgc2lpODYyMCAqY3R4 KQoreworCXNpaTg2MjBfc2V0Yml0cyhjdHgsIFJFR19EUEQsIEJJVF9EUERfUEROUlgxMiB8IEJJ VF9EUERfUERJRENLX04KKwkJCXwgQklUX0RQRF9QRF9NSExfQ0xLX04sIDB4ZmYpOworCisJc2lp ODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfUlhfSERNSV9DVFJMMywgMHgwMCwKKwkJUkVHX1BL VF9GSUxURVJfMCwgMHhGRiwKKwkJUkVHX1BLVF9GSUxURVJfMSwgMHhGRiwKKwkJUkVHX0FMSUNF MF9CV19JMkMsIDB4MDYKKwkpOworCisJc2lpODYyMF9zZXRiaXRzKGN0eCwgUkVHX1JYX0hETUlf Q0xSX0JVRkZFUiwKKwkJCUJJVF9SWF9IRE1JX0NMUl9CVUZGRVJfVlNJX0NMUl9FTiwgMHhmZik7 CisKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19FRElEX0NUUkwsIEJJVF9FRElEX0NU UkxfRURJRF9GSUZPX0FERFJfQVVUTworCQkJfCBCSVRfRURJRF9DVFJMX0VESURfTU9ERV9FTiwK KwkJUkVHX0VESURfRklGT19BRERSLCAwLAorCSk7CisKKwlzaWk4NjIwX3dyaXRlX2J1ZihjdHgs IFJFR19FRElEX0ZJRk9fV1JfREFUQSwgKHU4ICopY3R4LT5lZGlkLAorCQkJKGN0eC0+ZWRpZC0+ ZXh0ZW5zaW9ucyArIDEpICogRURJRF9MRU5HVEgpOworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4 LAorCQlSRUdfRURJRF9DVFJMLCBCSVRfRURJRF9DVFJMX0VESURfUFJJTUVfVkFMSUQKKwkJCXwg QklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQUREUl9BVVRPCisJCQl8IEJJVF9FRElEX0NUUkxfRURJ RF9NT0RFX0VOLAorCQlSRUdfSU5UUjVfTUFTSywgQklUX0lOVFJfU0NEVF9DSEFOR0UsCisJCVJF R19JTlRSOV9NQVNLLCAwCisJKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF94dGFsX3NldF9y YXRlKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RhdGljIGNvbnN0IHN0cnVjdCB7CisJCXVu c2lnbmVkIGludCByYXRlOworCQl1OCBkaXY7CisJCXU4IHRwMTsKKwl9IHJhdGVzW10gPSB7CisJ CXsgMTkyMDAsIDB4MDQsIDB4NTMgfSwKKwkJeyAyMDAwMCwgMHgwNCwgMHg2MiB9LAorCQl7IDI0 MDAwLCAweDA1LCAweDc1IH0sCisJCXsgMzAwMDAsIDB4MDYsIDB4OTIgfSwKKwkJeyAzODQwMCwg MHgwYywgMHhiYyB9LAorCX07CisJdW5zaWduZWQgbG9uZyByYXRlID0gY2xrX2dldF9yYXRlKGN0 eC0+Y2xrX3h0YWwpIC8gMTAwMDsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9T SVpFKHJhdGVzKSAtIDE7ICsraSkKKwkJaWYgKHJhdGUgPD0gcmF0ZXNbaV0ucmF0ZSkKKwkJCWJy ZWFrOworCisJaWYgKHJhdGUgIT0gcmF0ZXNbaV0ucmF0ZSkKKwkJZGV2X2VycihjdHgtPmRldiwg Inh0YWwgY2xvY2sgcmF0ZSglbHVrSHopIG5vdCBzdXBwb3J0ZWQsIHNldHRpbmcgTUhMIGZvciAl dWtIei5cbiIsCisJCQlyYXRlLCByYXRlc1tpXS5yYXRlKTsKKworCXNpaTg2MjBfd3JpdGUoY3R4 LCBSRUdfRElWX0NUTF9NQUlOLCByYXRlc1tpXS5kaXYpOworCXNpaTg2MjBfd3JpdGUoY3R4LCBS RUdfSERDUDJYX1RQMSwgcmF0ZXNbaV0udHAxKTsKK30KKworc3RhdGljIGludCBzaWk4NjIwX2h3 X29uKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaW50IHJldDsKKworCXJldCA9IHJlZ3VsYXRv cl9idWxrX2VuYWJsZShBUlJBWV9TSVpFKGN0eC0+c3VwcGxpZXMpLCBjdHgtPnN1cHBsaWVzKTsK KwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCXVzbGVlcF9yYW5nZSgxMDAwMCwgMjAwMDApOwor CXJldHVybiBjbGtfcHJlcGFyZV9lbmFibGUoY3R4LT5jbGtfeHRhbCk7Cit9CisKK3N0YXRpYyBp bnQgc2lpODYyMF9od19vZmYoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwljbGtfZGlzYWJsZV91 bnByZXBhcmUoY3R4LT5jbGtfeHRhbCk7CisJZ3Bpb2Rfc2V0X3ZhbHVlKGN0eC0+Z3Bpb19yZXNl dCwgMSk7CisJcmV0dXJuIHJlZ3VsYXRvcl9idWxrX2Rpc2FibGUoQVJSQVlfU0laRShjdHgtPnN1 cHBsaWVzKSwgY3R4LT5zdXBwbGllcyk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaHdfcmVz ZXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1c2xlZXBfcmFuZ2UoMTAwMDAsIDIwMDAwKTsK KwlncGlvZF9zZXRfdmFsdWUoY3R4LT5ncGlvX3Jlc2V0LCAwKTsKKwl1c2xlZXBfcmFuZ2UoNTAw MCwgMjAwMDApOworCWdwaW9kX3NldF92YWx1ZShjdHgtPmdwaW9fcmVzZXQsIDEpOworCXVzbGVl cF9yYW5nZSgxMDAwMCwgMjAwMDApOworCWdwaW9kX3NldF92YWx1ZShjdHgtPmdwaW9fcmVzZXQs IDApOworCW1zbGVlcCgzMDApOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX2NidXNfcmVzZXQo c3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19Q V0RfU1JTVCwgQklUX1BXRF9TUlNUX0NCVVNfUlNUCisJCQl8IEJJVF9QV0RfU1JTVF9DQlVTX1JT VF9TV19FTiwKKwkJUkVHX1BXRF9TUlNULCBCSVRfUFdEX1NSU1RfQ0JVU19SU1RfU1dfRU4KKwkp OworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3NldF9hdXRvX3pvbmUoc3RydWN0IHNpaTg2MjAg KmN0eCkKK3sKKwlpZiAoY3R4LT5tb2RlICE9IENNX01ITDEpIHsKKwkJc2lpODYyMF93cml0ZV9z ZXEoY3R4LAorCQkJUkVHX1RYX1pPTkVfQ1RMMSwgMHgwLAorCQkJUkVHX01ITF9QTExfQ1RMMCwg VkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT18xWAorCQkJCXwgQklUX01ITF9QTExfQ1RM MF9DUllTVEFMX0NMS19TRUwKKwkJCQl8IEJJVF9NSExfUExMX0NUTDBfWk9ORV9NQVNLX09FCisJ CSk7CisJfSBlbHNlIHsKKwkJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQkJUkVHX1RYX1pPTkVf Q1RMMSwgVkFMX1RYX1pPTkVfQ1RMMV9UWF9aT05FX0NUUkxfTU9ERSwKKwkJCVJFR19NSExfUExM X0NUTDAsIFZBTF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU9fMVgKKwkJCQl8IEJJVF9NSExf UExMX0NUTDBfWk9ORV9NQVNLX09FCisJCSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBzaWk4NjIw X3N0b3BfdmlkZW8oc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCB1bmluaXRpYWxpemVkX3Zh cih2YWwpOworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfVFBJX0lOVFJfRU4sIDAs CisJCVJFR19IRENQMlhfSU5UUjBfTUFTSywgMCwKKwkJUkVHX1RQSV9DT1BQX0RBVEEyLCAwLAor CQlSRUdfVFBJX0lOVFJfU1QwLCB+MCwKKwkpOworCisJc3dpdGNoIChjdHgtPnNpbmtfdHlwZSkg eworCWNhc2UgU0lOS19EVkk6CisJCXZhbCA9IEJJVF9UUElfU0NfUkVHX1RNRFNfT0VfUE9XRVJf RE9XTgorCQkJfCBCSVRfVFBJX1NDX1RQSV9BVl9NVVRFOworCQlicmVhazsKKwljYXNlIFNJTktf SERNSToKKwkJdmFsID0gQklUX1RQSV9TQ19SRUdfVE1EU19PRV9QT1dFUl9ET1dOCisJCQl8IEJJ VF9UUElfU0NfVFBJX0FWX01VVEUKKwkJCXwgQklUX1RQSV9TQ19UUElfT1VUUFVUX01PREVfMF9I RE1JOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm47CisJfQorCisJc2lpODYyMF93cml0 ZShjdHgsIFJFR19UUElfU0MsIHZhbCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfc3RhcnRf aGRtaShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJ UkVHX1JYX0hETUlfQ1RSTDIsIFZBTF9SWF9IRE1JX0NUUkwyX0RFRlZBTAorCQkJfCBCSVRfUlhf SERNSV9DVFJMMl9VU0VfQVZfTVVURSwKKwkJUkVHX1ZJRF9PVlJSRCwgQklUX1ZJRF9PVlJSRF9Q UF9BVVRPX0RJU0FCTEUKKwkJCXwgQklUX1ZJRF9PVlJSRF9NMTA4MFBfT1ZSUkQsCisJCVJFR19W SURfTU9ERSwgMCwKKwkJUkVHX01ITF9UT1BfQ1RMLCAweDEsCisJCVJFR19NSExUWF9DVEw2LCAw eGEwLAorCQlSRUdfVFBJX0lOUFVULCBWQUxfVFBJX0ZPUk1BVChSR0IsIEZVTEwpLAorCQlSRUdf VFBJX09VVFBVVCwgVkFMX1RQSV9GT1JNQVQoUkdCLCBGVUxMKSwKKwkpOworCisJc2lpODYyMF9t dF93cml0ZV9zdGF0KGN0eCwgTUhMX0RTVF9SRUcoTElOS19NT0RFKSwKKwkJCU1ITF9EU1RfTE1f Q0xLX01PREVfTk9STUFMIHwgTUhMX0RTVF9MTV9QQVRIX0VOQUJMRUQpOworCisJc2lpODYyMF9z ZXRfYXV0b196b25lKGN0eCk7CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX1RQSV9TQywgQklU X1RQSV9TQ19UUElfT1VUUFVUX01PREVfMF9IRE1JKTsKKworCXNpaTg2MjBfd3JpdGVfYnVmKGN0 eCwgUkVHX1RQSV9BVklfQ0hTVU0sIGN0eC0+YXZpZiwKKwkJCSAgQVJSQVlfU0laRShjdHgtPmF2 aWYpKTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfUEtUX0ZJTFRFUl8wLCAweGExLCAweDIp OworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3N0YXJ0X3ZpZGVvKHN0cnVjdCBzaWk4NjIwICpj dHgpCit7CisJaWYgKGN0eC0+bW9kZSA8IENNX01ITDMpCisJCXNpaTg2MjBfc3RvcF92aWRlbyhj dHgpOworCisJc3dpdGNoIChjdHgtPnNpbmtfdHlwZSkgeworCWNhc2UgU0lOS19IRE1JOgorCQlz aWk4NjIwX3N0YXJ0X2hkbWkoY3R4KTsKKwkJYnJlYWs7CisJY2FzZSBTSU5LX0RWSToKKwlkZWZh dWx0OgorCQlicmVhazsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfZGlzYWJsZV9ocGQo c3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3NldGJpdHMoY3R4LCBSRUdfRURJRF9D VFJMLCBCSVRfRURJRF9DVFJMX0VESURfUFJJTUVfVkFMSUQsIDApOworCXNpaTg2MjBfd3JpdGVf c2VxKGN0eCwKKwkJUkVHX0hQRF9DVFJMLCBCSVRfSFBEX0NUUkxfSFBEX09VVF9PVlJfRU4sCisJ CVJFR19JTlRSOF9NQVNLLCAwCisJKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9lbmFibGVf aHBkKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF9zZXRiaXRzKGN0eCwgUkVHX1RN RFNfQ1NUQVRfUDMsCisJCQlCSVRfVE1EU19DU1RBVF9QM19TQ0RUX0NMUl9BVklfRElTCisJCQl8 IEJJVF9UTURTX0NTVEFUX1AzX0NMUl9BVkksIH4wKTsKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgs CisJCVJFR19IUERfQ1RSTCwgQklUX0hQRF9DVFJMX0hQRF9PVVRfT1ZSX0VOCisJCQl8IEJJVF9I UERfQ1RSTF9IUERfSElHSCwKKwkpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX2VuYWJsZV9n ZW4yX3dyaXRlX2J1cnN0KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaWYgKGN0eC0+Z2VuMl93 cml0ZV9idXJzdCkKKwkJcmV0dXJuOworCisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdf TURUX1JDVl9USU1FT1VULCAxMDAsCisJCVJFR19NRFRfUkNWX0NUUkwsIEJJVF9NRFRfUkNWX0NU UkxfTURUX1JDVl9FTgorCSk7CisJY3R4LT5nZW4yX3dyaXRlX2J1cnN0ID0gMTsKK30KKworc3Rh dGljIHZvaWQgc2lpODYyMF9kaXNhYmxlX2dlbjJfd3JpdGVfYnVyc3Qoc3RydWN0IHNpaTg2MjAg KmN0eCkKK3sKKwlpZiAoIWN0eC0+Z2VuMl93cml0ZV9idXJzdCkKKwkJcmV0dXJuOworCisJc2lp ODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfTURUX1hNSVRfQ1RSTCwgMCwKKwkJUkVHX01EVF9S Q1ZfQ1RSTCwgMAorCSk7CisJY3R4LT5nZW4yX3dyaXRlX2J1cnN0ID0gMDsKK30KKworc3RhdGlj IHZvaWQgc2lpODYyMF9zdGFydF9nZW4yX3dyaXRlX2J1cnN0KHN0cnVjdCBzaWk4NjIwICpjdHgp Cit7CisJc2lpODYyMF93cml0ZV9zZXEoY3R4LAorCQlSRUdfTURUX0lOVF8xX01BU0ssIEJJVF9N RFRfUkNWX1RJTUVPVVQKKwkJCXwgQklUX01EVF9SQ1ZfU01fQUJPUlRfUEtUX1JDVkQgfCBCSVRf TURUX1JDVl9TTV9FUlJPUgorCQkJfCBCSVRfTURUX1hNSVRfVElNRU9VVCB8IEJJVF9NRFRfWE1J VF9TTV9BQk9SVF9QS1RfUkNWRAorCQkJfCBCSVRfTURUX1hNSVRfU01fRVJST1IsCisJCVJFR19N RFRfSU5UXzBfTUFTSywgQklUX01EVF9YRklGT19FTVBUWQorCQkJfCBCSVRfTURUX0lETEVfQUZU RVJfSEFXQl9ESVNBQkxFCisJCQl8IEJJVF9NRFRfUkZJRk9fREFUQV9SRFkKKwkpOworCXNpaTg2 MjBfZW5hYmxlX2dlbjJfd3JpdGVfYnVyc3QoY3R4KTsKK30KKworc3RhdGljIHZvaWQgc2lpODYy MF9taGxfZGlzY292ZXIoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3dyaXRlX3Nl cShjdHgsCisJCVJFR19ESVNDX0NUUkw5LCBCSVRfRElTQ19DVFJMOV9XQUtFX0RSVkZMVAorCQkJ fCBCSVRfRElTQ19DVFJMOV9ESVNDX1BVTFNFX1BST0NFRUQsCisJCVJFR19ESVNDX0NUUkw0LCBW QUxfRElTQ19DVFJMNChWQUxfUFVQXzVLLCBWQUxfUFVQXzIwSyksCisJCVJFR19DQlVTX0RJU0Nf SU5UUjBfTUFTSywgQklUX01ITDNfRVNUX0lOVAorCQkJfCBCSVRfTUhMX0VTVF9JTlQKKwkJCXwg QklUX05PVF9NSExfRVNUX0lOVAorCQkJfCBCSVRfQ0JVU19NSEwzX0RJU0NPTl9JTlQKKwkJCXwg QklUX0NCVVNfTUhMMTJfRElTQ09OX0lOVAorCQkJfCBCSVRfUkdORF9SRUFEWV9JTlQsCisJCVJF R19NSExfUExMX0NUTDAsIFZBTF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU9fMVgKKwkJCXwg QklUX01ITF9QTExfQ1RMMF9DUllTVEFMX0NMS19TRUwKKwkJCXwgQklUX01ITF9QTExfQ1RMMF9a T05FX01BU0tfT0UsCisJCVJFR19NSExfRFBfQ1RMMCwgQklUX01ITF9EUF9DVEwwX0RQX09FCisJ CQl8IEJJVF9NSExfRFBfQ1RMMF9UWF9PRV9PVlIsCisJCVJFR19NM19DVFJMLCBWQUxfTTNfQ1RS TF9NSEwzX1ZBTFVFLAorCQlSRUdfTUhMX0RQX0NUTDEsIDB4QTIsCisJCVJFR19NSExfRFBfQ1RM MiwgMHgwMywKKwkJUkVHX01ITF9EUF9DVEwzLCAweDM1LAorCQlSRUdfTUhMX0RQX0NUTDUsIDB4 MDIsCisJCVJFR19NSExfRFBfQ1RMNiwgMHgwMiwKKwkJUkVHX01ITF9EUF9DVEw3LCAweDAzLAor CQlSRUdfQ09DX0NUTEMsIDB4RkYsCisJCVJFR19EUEQsIEJJVF9EUERfUFdST05fUExMIHwgQklU X0RQRF9QRE5UWDEyCisJCQl8IEJJVF9EUERfT1NDX0VOIHwgQklUX0RQRF9QV1JPTl9IU0lDLAor CQlSRUdfQ09DX0lOVFJfTUFTSywgQklUX0NPQ19QTExfTE9DS19TVEFUVVNfQ0hBTkdFCisJCQl8 IEJJVF9DT0NfQ0FMSUJSQVRJT05fRE9ORSwKKwkJUkVHX0NCVVNfSU5UXzFfTUFTSywgQklUX0NC VVNfTVNDX0FCT1JUX1JDVkQKKwkJCXwgQklUX0NCVVNfQ01EX0FCT1JULAorCQlSRUdfQ0JVU19J TlRfMF9NQVNLLCBCSVRfQ0JVU19NU0NfTVRfRE9ORQorCQkJfCBCSVRfQ0JVU19IUERfQ0hHCisJ CQl8IEJJVF9DQlVTX01TQ19NUl9XUklURV9TVEFUCisJCQl8IEJJVF9DQlVTX01TQ19NUl9NU0Nf TVNHCisJCQl8IEJJVF9DQlVTX01TQ19NUl9XUklURV9CVVJTVAorCQkJfCBCSVRfQ0JVU19NU0Nf TVJfU0VUX0lOVAorCQkJfCBCSVRfQ0JVU19NU0NfTVRfRE9ORV9OQUNLCisJKTsKK30KKworc3Rh dGljIHZvaWQgc2lpODYyMF9wZWVyX3NwZWNpZmljX2luaXQoc3RydWN0IHNpaTg2MjAgKmN0eCkK K3sKKwlpZiAoY3R4LT5tb2RlID09IENNX01ITDMpCisJCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwK KwkJCVJFR19TWVNfQ1RSTDEsIEJJVF9TWVNfQ1RSTDFfQkxPQ0tfRERDX0JZX0hQRCwKKwkJCVJF R19FTVNDSU5UUk1BU0sxLAorCQkJCUJJVF9FTVNDSU5UUjFfRU1TQ19UUkFJTklOR19DT01NQV9F UlIKKwkJKTsKKwllbHNlCisJCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJCVJFR19IRENQMlhf SU5UUjBfTUFTSywgMHgwMCwKKwkJCVJFR19FTVNDSU5UUk1BU0sxLCAweDAwLAorCQkJUkVHX0hE Q1AyWF9JTlRSMCwgMHhGRiwKKwkJCVJFR19JTlRSMSwgMHhGRiwKKwkJCVJFR19TWVNfQ1RSTDEs IEJJVF9TWVNfQ1RSTDFfQkxPQ0tfRERDX0JZX0hQRAorCQkJCXwgQklUX1NZU19DVFJMMV9UWF9D VFJMX0hETUkKKwkJKTsKK30KKworI2RlZmluZSBTSUk4NjIwX01ITF9WRVJTSU9OCQkJMHgzMgor I2RlZmluZSBTSUk4NjIwX1NDUkFUQ0hQQURfU0laRQkJCTE2CisjZGVmaW5lIFNJSTg2MjBfSU5U X1NUQVRfU0laRQkJCTB4MzMKKworc3RhdGljIHZvaWQgc2lpODYyMF9zZXRfZGV2X2NhcChzdHJ1 Y3Qgc2lpODYyMCAqY3R4KQoreworCXN0YXRpYyBjb25zdCB1OCBkZXZjYXBbTUhMX0RDQVBfU0la RV0gPSB7CisJCVtNSExfRENBUF9NSExfVkVSU0lPTl0gPSBTSUk4NjIwX01ITF9WRVJTSU9OLAor CQlbTUhMX0RDQVBfQ0FUXSA9IE1ITF9EQ0FQX0NBVF9TT1VSQ0UgfCBNSExfRENBUF9DQVRfUE9X RVIsCisJCVtNSExfRENBUF9BRE9QVEVSX0lEX0hdID0gMHgwMSwKKwkJW01ITF9EQ0FQX0FET1BU RVJfSURfTF0gPSAweDQxLAorCQlbTUhMX0RDQVBfVklEX0xJTktfTU9ERV0gPSBNSExfRENBUF9W SURfTElOS19SR0I0NDQKKwkJCXwgTUhMX0RDQVBfVklEX0xJTktfUFBJWEVMCisJCQl8IE1ITF9E Q0FQX1ZJRF9MSU5LXzE2QlBQLAorCQlbTUhMX0RDQVBfQVVEX0xJTktfTU9ERV0gPSBNSExfRENB UF9BVURfTElOS18yQ0gsCisJCVtNSExfRENBUF9WSURFT19UWVBFXSA9IE1ITF9EQ0FQX1ZUX0dS QVBISUNTLAorCQlbTUhMX0RDQVBfTE9HX0RFVl9NQVBdID0gTUhMX0RDQVBfTERfR1VJLAorCQlb TUhMX0RDQVBfQkFORFdJRFRIXSA9IDB4MGYsCisJCVtNSExfRENBUF9GRUFUVVJFX0ZMQUddID0g TUhMX0RDQVBfRkVBVFVSRV9SQ1BfU1VQUE9SVAorCQkJfCBNSExfRENBUF9GRUFUVVJFX1JBUF9T VVBQT1JUCisJCQl8IE1ITF9EQ0FQX0ZFQVRVUkVfU1BfU1VQUE9SVCwKKwkJW01ITF9EQ0FQX1ND UkFUQ0hQQURfU0laRV0gPSBTSUk4NjIwX1NDUkFUQ0hQQURfU0laRSwKKwkJW01ITF9EQ0FQX0lO VF9TVEFUX1NJWkVdID0gU0lJODYyMF9JTlRfU1RBVF9TSVpFLAorCX07CisJc3RhdGljIGNvbnN0 IHU4IHhkY2FwW01ITF9YRENfU0laRV0gPSB7CisJCVtNSExfWERDX0VDQlVTX1NQRUVEU10gPSBN SExfWERDX0VDQlVTX1NfMDc1CisJCQl8IE1ITF9YRENfRUNCVVNfU184QklULAorCQlbTUhMX1hE Q19UTURTX1NQRUVEU10gPSBNSExfWERDX1RNRFNfMTUwCisJCQl8IE1ITF9YRENfVE1EU18zMDAg fCBNSExfWERDX1RNRFNfNjAwLAorCQlbTUhMX1hEQ19FQ0JVU19ST0xFU10gPSBNSExfWERDX0RF Vl9IT1NULAorCQlbTUhMX1hEQ19MT0dfREVWX01BUFhdID0gTUhMX1hEQ19MRF9QSE9ORSwKKwl9 OworCisJc2lpODYyMF93cml0ZV9idWYoY3R4LCBSRUdfTUhMX0RFVkNBUF8wLCBkZXZjYXAsIEFS UkFZX1NJWkUoZGV2Y2FwKSk7CisJc2lpODYyMF93cml0ZV9idWYoY3R4LCBSRUdfTUhMX0VYVERF VkNBUF8wLCB4ZGNhcCwgQVJSQVlfU0laRSh4ZGNhcCkpOworfQorCitzdGF0aWMgdm9pZCBzaWk4 NjIwX21obF9pbml0KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF93cml0ZV9zZXEo Y3R4LAorCQlSRUdfRElTQ19DVFJMNCwgVkFMX0RJU0NfQ1RSTDQoVkFMX1BVUF9PRkYsIFZBTF9Q VVBfMjBLKSwKKwkJUkVHX0NCVVNfTVNDX0NPTVBBVF9DVFJMLAorCQkJQklUX0NCVVNfTVNDX0NP TVBBVF9DVFJMX1hERVZDQVBfRU4sCisJKTsKKworCXNpaTg2MjBfcGVlcl9zcGVjaWZpY19pbml0 KGN0eCk7CisKKwlzaWk4NjIwX2Rpc2FibGVfaHBkKGN0eCk7CisKKwlzaWk4NjIwX3dyaXRlX3Nl cShjdHgsCisJCVJFR19FRElEX0NUUkwsIEJJVF9FRElEX0NUUkxfRURJRF9GSUZPX0FERFJfQVVU TywKKwkJUkVHX0RJU0NfQ1RSTDksIEJJVF9ESVNDX0NUUkw5X1dBS0VfRFJWRkxUCisJCQl8IEJJ VF9ESVNDX0NUUkw5X1dBS0VfUFVMU0VfQllQQVNTLAorCQlSRUdfVE1EUzBfQ0NUUkwxLCAweDkw LAorCQlSRUdfVE1EU19DTEtfRU4sIDB4MDEsCisJCVJFR19UTURTX0NIX0VOLCAweDExLAorCQlS RUdfQkdSX0JJQVMsIDB4ODcsCisJCVJFR19BTElDRTBfWk9ORV9DVFJMLCAweEU4LAorCQlSRUdf QUxJQ0UwX01PREVfQ1RSTCwgMHgwNCwKKwkpOworCXNpaTg2MjBfc2V0Yml0cyhjdHgsIFJFR19M TV9EREMsIEJJVF9MTV9ERENfU1dfVFBJX0VOX0RJU0FCTEVELCAwKTsKKwlzaWk4NjIwX3dyaXRl X3NlcShjdHgsCisJCVJFR19UUElfSFdfT1BUMywgMHg3NiwKKwkJUkVHX1RNRFNfQ0NUUkwsIEJJ VF9UTURTX0NDVFJMX1RNRFNfT0UsCisJCVJFR19UUElfRFREX0IyLCA3OSwKKwkpOworCXNpaTg2 MjBfc2V0X2Rldl9jYXAoY3R4KTsKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19NRFRf WE1JVF9USU1FT1VULCAxMDAsCisJCVJFR19NRFRfWE1JVF9DVFJMLCAweDAzLAorCQlSRUdfTURU X1hGSUZPX1NUQVQsIDB4MDAsCisJCVJFR19NRFRfUkNWX1RJTUVPVVQsIDEwMCwKKwkJUkVHX0NC VVNfTElOS19DVFJMXzgsIDB4MUQsCisJKTsKKworCXNpaTg2MjBfc3RhcnRfZ2VuMl93cml0ZV9i dXJzdChjdHgpOworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX0JJU1RfQ1RSTCwgMHgw MCwKKwkJUkVHX0NPQ19DVEwxLCAweDEwLAorCQlSRUdfQ09DX0NUTDIsIDB4MTgsCisJCVJFR19D T0NfQ1RMRiwgMHgwNywKKwkJUkVHX0NPQ19DVEwxMSwgMHhGOCwKKwkJUkVHX0NPQ19DVEwxNywg MHg2MSwKKwkJUkVHX0NPQ19DVEwxOCwgMHg0NiwKKwkJUkVHX0NPQ19DVEwxOSwgMHgxNSwKKwkJ UkVHX0NPQ19DVEwxQSwgMHgwMSwKKwkJUkVHX01ITF9DT0NfQ1RMMywgQklUX01ITF9DT0NfQ1RM M19DT0NfQUVDSE9fRU4sCisJCVJFR19NSExfQ09DX0NUTDQsIDB4MkQsCisJCVJFR19NSExfQ09D X0NUTDUsIDB4RjksCisJCVJFR19NU0NfSEVBUlRCRUFUX0NUUkwsIDB4MjcsCisJKTsKKwlzaWk4 NjIwX2Rpc2FibGVfZ2VuMl93cml0ZV9idXJzdChjdHgpOworCisJLyogY3VycmVudGx5IE1ITDMg aXMgbm90IHN1cHBvcnRlZCwgc28gd2UgZm9yY2UgdmVyc2lvbiB0byAwICovCisJc2lpODYyMF9t dF93cml0ZV9zdGF0KGN0eCwgTUhMX0RTVF9SRUcoVkVSU0lPTiksIDApOworCXNpaTg2MjBfbXRf d3JpdGVfc3RhdChjdHgsIE1ITF9EU1RfUkVHKENPTk5FQ1RFRF9SRFkpLAorCQkJICAgICAgTUhM X0RTVF9DT05OX0RDQVBfUkRZIHwgTUhMX0RTVF9DT05OX1hERVZDQVBQX1NVUFAKKwkJCSAgICAg IHwgTUhMX0RTVF9DT05OX1BPV19TVEFUKTsKKwlzaWk4NjIwX210X3NldF9pbnQoY3R4LCBNSExf SU5UX1JFRyhSQ0hBTkdFKSwgTUhMX0lOVF9SQ19EQ0FQX0NIRyk7Cit9CisKK3N0YXRpYyB2b2lk IHNpaTg2MjBfc2V0X21vZGUoc3RydWN0IHNpaTg2MjAgKmN0eCwgZW51bSBzaWk4NjIwX21vZGUg bW9kZSkKK3sKKwlpZiAoY3R4LT5tb2RlID09IG1vZGUpCisJCXJldHVybjsKKworCWN0eC0+bW9k ZSA9IG1vZGU7CisKKwlzd2l0Y2ggKG1vZGUpIHsKKwljYXNlIENNX01ITDE6CisJCXNpaTg2MjBf d3JpdGVfc2VxKGN0eCwKKwkJCVJFR19DQlVTX01TQ19DT01QQVRfQ1RSTCwgMHgwMiwKKwkJCVJF R19NM19DVFJMLCBWQUxfTTNfQ1RSTF9NSEwxXzJfVkFMVUUsCisJCQlSRUdfRFBELCBCSVRfRFBE X1BXUk9OX1BMTCB8IEJJVF9EUERfUEROVFgxMgorCQkJCXwgQklUX0RQRF9PU0NfRU4sCisJCQlS RUdfQ09DX0lOVFJfTUFTSywgMAorCQkpOworCQlicmVhazsKKwljYXNlIENNX01ITDM6CisJCXNp aTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJCVJFR19NM19DVFJMLCBWQUxfTTNfQ1RSTF9NSEwzX1ZB TFVFLAorCQkJUkVHX0NPQ19DVEwwLCAweDQwLAorCQkJUkVHX01ITF9DT0NfQ1RMMSwgMHgwNwor CQkpOworCQlicmVhazsKKwljYXNlIENNX0RJU0NPTk5FQ1RFRDoKKwkJYnJlYWs7CisJZGVmYXVs dDoKKwkJZGV2X2VycihjdHgtPmRldiwgIiVzIG1vZGUgJWQgbm90IHN1cHBvcnRlZFxuIiwgX19m dW5jX18sIG1vZGUpOworCQlicmVhazsKKwl9OworCisJc2lpODYyMF9zZXRfYXV0b196b25lKGN0 eCk7CisKKwlpZiAobW9kZSAhPSBDTV9NSEwxKQorCQlyZXR1cm47CisKKwlzaWk4NjIwX3dyaXRl X3NlcShjdHgsCisJCVJFR19NSExfRFBfQ1RMMCwgMHhCQywKKwkJUkVHX01ITF9EUF9DVEwxLCAw eEJCLAorCQlSRUdfTUhMX0RQX0NUTDMsIDB4NDgsCisJCVJFR19NSExfRFBfQ1RMNSwgMHgzOSwK KwkJUkVHX01ITF9EUF9DVEwyLCAweDJBLAorCQlSRUdfTUhMX0RQX0NUTDYsIDB4MkEsCisJCVJF R19NSExfRFBfQ1RMNywgMHgwOAorCSk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfZGlzY29u bmVjdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXNpaTg2MjBfZGlzYWJsZV9nZW4yX3dyaXRl X2J1cnN0KGN0eCk7CisJc2lpODYyMF9zdG9wX3ZpZGVvKGN0eCk7CisJbXNsZWVwKDUwKTsKKwlz aWk4NjIwX2NidXNfcmVzZXQoY3R4KTsKKwlzaWk4NjIwX3NldF9tb2RlKGN0eCwgQ01fRElTQ09O TkVDVEVEKTsKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19DT0NfQ1RMMCwgMHg0MCwK KwkJUkVHX0NCVVMzX0NOVlQsIDB4ODQsCisJCVJFR19DT0NfQ1RMMTQsIDB4MDAsCisJCVJFR19D T0NfQ1RMMCwgMHg0MCwKKwkJUkVHX0hSWENUUkwzLCAweDA3LAorCQlSRUdfTUhMX1BMTF9DVEww LCBWQUxfTUhMX1BMTF9DVEwwX0hETUlfQ0xLX1JBVElPXzFYCisJCQl8IEJJVF9NSExfUExMX0NU TDBfQ1JZU1RBTF9DTEtfU0VMCisJCQl8IEJJVF9NSExfUExMX0NUTDBfWk9ORV9NQVNLX09FLAor CQlSRUdfTUhMX0RQX0NUTDAsIEJJVF9NSExfRFBfQ1RMMF9EUF9PRQorCQkJfCBCSVRfTUhMX0RQ X0NUTDBfVFhfT0VfT1ZSLAorCQlSRUdfTUhMX0RQX0NUTDEsIDB4QkIsCisJCVJFR19NSExfRFBf Q1RMMywgMHg0OCwKKwkJUkVHX01ITF9EUF9DVEw1LCAweDNGLAorCQlSRUdfTUhMX0RQX0NUTDIs IDB4MkYsCisJCVJFR19NSExfRFBfQ1RMNiwgMHgyQSwKKwkJUkVHX01ITF9EUF9DVEw3LCAweDAz CisJKTsKKwlzaWk4NjIwX2Rpc2FibGVfaHBkKGN0eCk7CisJc2lpODYyMF93cml0ZV9zZXEoY3R4 LAorCQlSRUdfTTNfQ1RSTCwgVkFMX00zX0NUUkxfTUhMM19WQUxVRSwKKwkJUkVHX01ITF9DT0Nf Q1RMMSwgMHgwNywKKwkJUkVHX0RJU0NfQ1RSTDQsIFZBTF9ESVNDX0NUUkw0KFZBTF9QVVBfT0ZG LCBWQUxfUFVQXzIwSyksCisJCVJFR19ESVNDX0NUUkw4LCAweDAwLAorCQlSRUdfRElTQ19DVFJM OSwgQklUX0RJU0NfQ1RSTDlfV0FLRV9EUlZGTFQKKwkJCXwgQklUX0RJU0NfQ1RSTDlfV0FLRV9Q VUxTRV9CWVBBU1MsCisJCVJFR19JTlRfQ1RSTCwgMHgwMCwKKwkJUkVHX01TQ19IRUFSVEJFQVRf Q1RSTCwgMHgyNywKKwkJUkVHX0RJU0NfQ1RSTDEsIDB4MjUsCisJCVJFR19DQlVTX0RJU0NfSU5U UjAsICh1OCl+QklUX1JHTkRfUkVBRFlfSU5ULAorCQlSRUdfQ0JVU19ESVNDX0lOVFIwX01BU0ss IEJJVF9SR05EX1JFQURZX0lOVCwKKwkJUkVHX01EVF9JTlRfMSwgMHhmZiwKKwkJUkVHX01EVF9J TlRfMV9NQVNLLCAweDAwLAorCQlSRUdfTURUX0lOVF8wLCAweGZmLAorCQlSRUdfTURUX0lOVF8w X01BU0ssIDB4MDAsCisJCVJFR19DT0NfSU5UUiwgMHhmZiwKKwkJUkVHX0NPQ19JTlRSX01BU0ss IDB4MDAsCisJCVJFR19UUlhJTlRILCAweGZmLAorCQlSRUdfVFJYSU5UTUgsIDB4MDAsCisJCVJF R19DQlVTX0lOVF8wLCAweGZmLAorCQlSRUdfQ0JVU19JTlRfMF9NQVNLLCAweDAwLAorCQlSRUdf Q0JVU19JTlRfMSwgMHhmZiwKKwkJUkVHX0NCVVNfSU5UXzFfTUFTSywgMHgwMCwKKwkJUkVHX0VN U0NJTlRSLCAweGZmLAorCQlSRUdfRU1TQ0lOVFJNQVNLLCAweDAwLAorCQlSRUdfRU1TQ0lOVFIx LCAweGZmLAorCQlSRUdfRU1TQ0lOVFJNQVNLMSwgMHgwMCwKKwkJUkVHX0lOVFI4LCAweGZmLAor CQlSRUdfSU5UUjhfTUFTSywgMHgwMCwKKwkJUkVHX1RQSV9JTlRSX1NUMCwgMHhmZiwKKwkJUkVH X1RQSV9JTlRSX0VOLCAweDAwLAorCQlSRUdfSERDUDJYX0lOVFIwLCAweGZmLAorCQlSRUdfSERD UDJYX0lOVFIwX01BU0ssIDB4MDAsCisJCVJFR19JTlRSOSwgMHhmZiwKKwkJUkVHX0lOVFI5X01B U0ssIDB4MDAsCisJCVJFR19JTlRSMywgMHhmZiwKKwkJUkVHX0lOVFIzX01BU0ssIDB4MDAsCisJ CVJFR19JTlRSNSwgMHhmZiwKKwkJUkVHX0lOVFI1X01BU0ssIDB4MDAsCisJCVJFR19JTlRSMiwg MHhmZiwKKwkJUkVHX0lOVFIyX01BU0ssIDB4MDAsCisJKTsKKwltZW1zZXQoY3R4LT5zdGF0LCAw LCBzaXplb2YoY3R4LT5zdGF0KSk7CisJbWVtc2V0KGN0eC0+eHN0YXQsIDAsIHNpemVvZihjdHgt PnhzdGF0KSk7CisJbWVtc2V0KGN0eC0+ZGV2Y2FwLCAwLCBzaXplb2YoY3R4LT5kZXZjYXApKTsK KwltZW1zZXQoY3R4LT54ZGV2Y2FwLCAwLCBzaXplb2YoY3R4LT54ZGV2Y2FwKSk7CisJY3R4LT5j YnVzX3N0YXR1cyA9IDA7CisJY3R4LT5zaW5rX3R5cGUgPSBTSU5LX05PTkU7CisJa2ZyZWUoY3R4 LT5lZGlkKTsKKwljdHgtPmVkaWQgPSBOVUxMOworCXNpaTg2MjBfbXRfY2xlYW51cChjdHgpOwor fQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX21obF9kaXNjb25uZWN0ZWQoc3RydWN0IHNpaTg2MjAg KmN0eCkKK3sKKwlzaWk4NjIwX3dyaXRlX3NlcShjdHgsCisJCVJFR19ESVNDX0NUUkw0LCBWQUxf RElTQ19DVFJMNChWQUxfUFVQX09GRiwgVkFMX1BVUF8yMEspLAorCQlSRUdfQ0JVU19NU0NfQ09N UEFUX0NUUkwsCisJCQlCSVRfQ0JVU19NU0NfQ09NUEFUX0NUUkxfWERFVkNBUF9FTgorCSk7CisJ c2lpODYyMF9kaXNjb25uZWN0KGN0eCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX2Rp c2Moc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgs IFJFR19DQlVTX0RJU0NfSU5UUjApOworCisJaWYgKHN0YXQgJiBWQUxfQ0JVU19NSExfRElTQ09O KQorCQlzaWk4NjIwX21obF9kaXNjb25uZWN0ZWQoY3R4KTsKKworCWlmIChzdGF0ICYgQklUX1JH TkRfUkVBRFlfSU5UKSB7CisJCXU4IHN0YXQyID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19ESVND X1NUQVQyKTsKKworCQlpZiAoKHN0YXQyICYgTVNLX0RJU0NfU1RBVDJfUkdORCkgPT0gVkFMX1JH TkRfMUspCisJCQlzaWk4NjIwX21obF9kaXNjb3ZlcihjdHgpOworCQllbHNlIHsKKwkJCXNpaTg2 MjBfd3JpdGVfc2VxKGN0eCwKKwkJCQlSRUdfRElTQ19DVFJMOSwgQklUX0RJU0NfQ1RSTDlfV0FL RV9EUlZGTFQKKwkJCQkJfCBCSVRfRElTQ19DVFJMOV9OT01ITF9FU1QKKwkJCQkJfCBCSVRfRElT Q19DVFJMOV9XQUtFX1BVTFNFX0JZUEFTUywKKwkJCQlSRUdfQ0JVU19ESVNDX0lOVFIwX01BU0ss IEJJVF9SR05EX1JFQURZX0lOVAorCQkJCQl8IEJJVF9DQlVTX01ITDNfRElTQ09OX0lOVAorCQkJ CQl8IEJJVF9DQlVTX01ITDEyX0RJU0NPTl9JTlQKKwkJCQkJfCBCSVRfTk9UX01ITF9FU1RfSU5U CisJCQkpOworCQl9CisJfQorCWlmIChzdGF0ICYgQklUX01ITF9FU1RfSU5UKQorCQlzaWk4NjIw X21obF9pbml0KGN0eCk7CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0NCVVNfRElTQ19JTlRS MCwgc3RhdCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX2cyd2Ioc3RydWN0IHNpaTg2 MjAgKmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19NRFRfSU5UXzAp OworCisJaWYgKHN0YXQgJiBCSVRfTURUX0lETEVfQUZURVJfSEFXQl9ESVNBQkxFKQorCQlkZXZf ZGJnKGN0eC0+ZGV2LCAiSEFXQiBpZGxlXG4iKTsKKworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdf TURUX0lOVF8wLCBzdGF0KTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9zdGF0dXNfY2hhbmdl ZF9kY2FwKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJaWYgKGN0eC0+c3RhdFtNSExfRFNUX0NP Tk5FQ1RFRF9SRFldICYgTUhMX0RTVF9DT05OX0RDQVBfUkRZKSB7CisJCXNpaTg2MjBfc2V0X21v ZGUoY3R4LCBDTV9NSEwxKTsKKwkJc2lpODYyMF9wZWVyX3NwZWNpZmljX2luaXQoY3R4KTsKKwkJ c2lpODYyMF93cml0ZShjdHgsIFJFR19JTlRSOV9NQVNLLCBCSVRfSU5UUjlfREVWQ0FQX0RPTkUK KwkJCSAgICAgICB8IEJJVF9JTlRSOV9FRElEX0RPTkUgfCBCSVRfSU5UUjlfRURJRF9FUlJPUik7 CisJfQorfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3N0YXR1c19jaGFuZ2VkX3BhdGgoc3RydWN0 IHNpaTg2MjAgKmN0eCkKK3sKKwlpZiAoY3R4LT5zdGF0W01ITF9EU1RfTElOS19NT0RFXSAmIE1I TF9EU1RfTE1fUEFUSF9FTkFCTEVEKSB7CisJCXNpaTg2MjBfbXRfd3JpdGVfc3RhdChjdHgsIE1I TF9EU1RfUkVHKExJTktfTU9ERSksCisJCQkJICAgICAgTUhMX0RTVF9MTV9DTEtfTU9ERV9OT1JN QUwKKwkJCQkgICAgICB8IE1ITF9EU1RfTE1fUEFUSF9FTkFCTEVEKTsKKwkJc2lpODYyMF9tdF9y ZWFkX2RldmNhcChjdHgsIGZhbHNlKTsKKwl9IGVsc2UgeworCQlzaWk4NjIwX210X3dyaXRlX3N0 YXQoY3R4LCBNSExfRFNUX1JFRyhMSU5LX01PREUpLAorCQkJCSAgICAgIE1ITF9EU1RfTE1fQ0xL X01PREVfTk9STUFMKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbXNjX21yX3dyaXRl X3N0YXQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdFtNSExfRFNUX1NJWkVdLCB4c3Rb TUhMX1hEU19TSVpFXTsKKworCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfTUhMX1NUQVRfMCwg c3QsIE1ITF9EU1RfU0laRSk7CisJc2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19NSExfRVhUU1RB VF8wLCB4c3QsIE1ITF9YRFNfU0laRSk7CisKKwlzaWk4NjIwX3VwZGF0ZV9hcnJheShjdHgtPnN0 YXQsIHN0LCBNSExfRFNUX1NJWkUpOworCXNpaTg2MjBfdXBkYXRlX2FycmF5KGN0eC0+eHN0YXQs IHhzdCwgTUhMX1hEU19TSVpFKTsKKworCWlmIChzdFtNSExfRFNUX0NPTk5FQ1RFRF9SRFldICYg TUhMX0RTVF9DT05OX0RDQVBfUkRZKQorCQlzaWk4NjIwX3N0YXR1c19jaGFuZ2VkX2RjYXAoY3R4 KTsKKworCWlmIChzdFtNSExfRFNUX0xJTktfTU9ERV0gJiBNSExfRFNUX0xNX1BBVEhfRU5BQkxF RCkKKwkJc2lpODYyMF9zdGF0dXNfY2hhbmdlZF9wYXRoKGN0eCk7Cit9CisKK3N0YXRpYyB2b2lk IHNpaTg2MjBfbXNjX21yX3NldF9pbnQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBpbnRz W01ITF9JTlRfU0laRV07CisKKwlzaWk4NjIwX3JlYWRfYnVmKGN0eCwgUkVHX01ITF9JTlRfMCwg aW50cywgTUhMX0lOVF9TSVpFKTsKKwlzaWk4NjIwX3dyaXRlX2J1ZihjdHgsIFJFR19NSExfSU5U XzAsIGludHMsIE1ITF9JTlRfU0laRSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc2lpODYyMF9tdF9t c2cgKnNpaTg2MjBfbXNjX21zZ19maXJzdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXN0cnVj dCBkZXZpY2UgKmRldiA9IGN0eC0+ZGV2OworCisJaWYgKGxpc3RfZW1wdHkoJmN0eC0+bXRfcXVl dWUpKSB7CisJCWRldl9lcnIoZGV2LCAidW5leHBlY3RlZCBNU0MgTVQgcmVzcG9uc2VcbiIpOwor CQlyZXR1cm4gTlVMTDsKKwl9CisKKwlyZXR1cm4gbGlzdF9maXJzdF9lbnRyeSgmY3R4LT5tdF9x dWV1ZSwgc3RydWN0IHNpaTg2MjBfbXRfbXNnLCBub2RlKTsKK30KKworc3RhdGljIHZvaWQgc2lp ODYyMF9tc2NfbXRfZG9uZShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXN0cnVjdCBzaWk4NjIw X210X21zZyAqbXNnID0gc2lpODYyMF9tc2NfbXNnX2ZpcnN0KGN0eCk7CisKKwlpZiAoIW1zZykK KwkJcmV0dXJuOworCisJbXNnLT5yZXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX01TQ19NVF9S Q1ZEX0RBVEEwKTsKKwljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVfRE9ORTsKK30KKworc3RhdGlj IHZvaWQgc2lpODYyMF9tc2NfbXJfbXNjX21zZyhzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXN0 cnVjdCBzaWk4NjIwX210X21zZyAqbXNnID0gc2lpODYyMF9tc2NfbXNnX2ZpcnN0KGN0eCk7CisJ dTggYnVmWzJdOworCisJaWYgKCFtc2cpCisJCXJldHVybjsKKworCXNpaTg2MjBfcmVhZF9idWYo Y3R4LCBSRUdfTVNDX01SX01TQ19NU0dfUkNWRF8xU1RfREFUQSwgYnVmLCAyKTsKKworCXN3aXRj aCAoYnVmWzBdKSB7CisJY2FzZSBNSExfTVNDX01TR19SQVBLOgorCQltc2ctPnJldCA9IGJ1Zlsx XTsKKwkJY3R4LT5tdF9zdGF0ZSA9IE1UX1NUQVRFX0RPTkU7CisJCWJyZWFrOworCWRlZmF1bHQ6 CisJCWRldl9lcnIoY3R4LT5kZXYsICIlcyBtZXNzYWdlIHR5cGUgJWQsJWQgbm90IHN1cHBvcnRl ZCIsCisJCQlfX2Z1bmNfXywgYnVmWzBdLCBidWZbMV0pOworCX0KK30KKworc3RhdGljIHZvaWQg c2lpODYyMF9pcnFfbXNjKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJdTggc3RhdCA9IHNpaTg2 MjBfcmVhZGIoY3R4LCBSRUdfQ0JVU19JTlRfMCk7CisKKwlpZiAoc3RhdCAmIH5CSVRfQ0JVU19I UERfQ0hHKQorCQlzaWk4NjIwX3dyaXRlKGN0eCwgUkVHX0NCVVNfSU5UXzAsIHN0YXQgJiB+QklU X0NCVVNfSFBEX0NIRyk7CisKKwlpZiAoc3RhdCAmIEJJVF9DQlVTX0hQRF9DSEcpIHsKKwkJdTgg Y2J1c19zdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19DQlVTX1NUQVRVUyk7CisKKwkJaWYg KChjYnVzX3N0YXQgXiBjdHgtPmNidXNfc3RhdHVzKSAmIEJJVF9DQlVTX1NUQVRVU19DQlVTX0hQ RCkgeworCQkJc2lpODYyMF93cml0ZShjdHgsIFJFR19DQlVTX0lOVF8wLCBCSVRfQ0JVU19IUERf Q0hHKTsKKwkJfSBlbHNlIHsKKwkJCXN0YXQgXj0gQklUX0NCVVNfU1RBVFVTX0NCVVNfSFBEOwor CQkJY2J1c19zdGF0IF49IEJJVF9DQlVTX1NUQVRVU19DQlVTX0hQRDsKKwkJfQorCQljdHgtPmNi dXNfc3RhdHVzID0gY2J1c19zdGF0OworCX0KKworCWlmIChzdGF0ICYgQklUX0NCVVNfTVNDX01S X1dSSVRFX1NUQVQpCisJCXNpaTg2MjBfbXNjX21yX3dyaXRlX3N0YXQoY3R4KTsKKworCWlmIChz dGF0ICYgQklUX0NCVVNfTVNDX01SX1NFVF9JTlQpCisJCXNpaTg2MjBfbXNjX21yX3NldF9pbnQo Y3R4KTsKKworCWlmIChzdGF0ICYgQklUX0NCVVNfTVNDX01UX0RPTkUpCisJCXNpaTg2MjBfbXNj X210X2RvbmUoY3R4KTsKKworCWlmIChzdGF0ICYgQklUX0NCVVNfTVNDX01SX01TQ19NU0cpCisJ CXNpaTg2MjBfbXNjX21yX21zY19tc2coY3R4KTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9p cnFfY29jKHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJdTggc3RhdCA9IHNpaTg2MjBfcmVhZGIo Y3R4LCBSRUdfQ09DX0lOVFIpOworCisJc2lpODYyMF93cml0ZShjdHgsIFJFR19DT0NfSU5UUiwg c3RhdCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfaXJxX21lcnIoc3RydWN0IHNpaTg2MjAg KmN0eCkKK3sKKwl1OCBzdGF0ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19DQlVTX0lOVF8xKTsK KworCXNpaTg2MjBfd3JpdGUoY3R4LCBSRUdfQ0JVU19JTlRfMSwgc3RhdCk7Cit9CisKK3N0YXRp YyB2b2lkIHNpaTg2MjBfaXJxX2VkaWQoc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwl1OCBzdGF0 ID0gc2lpODYyMF9yZWFkYihjdHgsIFJFR19JTlRSOSk7CisKKwlzaWk4NjIwX3dyaXRlKGN0eCwg UkVHX0lOVFI5LCBzdGF0KTsKKworCWlmIChzdGF0ICYgQklUX0lOVFI5X0RFVkNBUF9ET05FKQor CQljdHgtPm10X3N0YXRlID0gTVRfU1RBVEVfRE9ORTsKK30KKworc3RhdGljIHZvaWQgc2lpODYy MF9zY2R0X2hpZ2goc3RydWN0IHNpaTg2MjAgKmN0eCkKK3sKKwlzaWk4NjIwX3dyaXRlX3NlcShj dHgsCisJCVJFR19JTlRSOF9NQVNLLCBCSVRfQ0VBX05FV19BVkkgfCBCSVRfQ0VBX05FV19WU0ks CisJCVJFR19UUElfU0MsIEJJVF9UUElfU0NfVFBJX09VVFBVVF9NT0RFXzBfSERNSSwKKwkpOwor fQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX3NjZHRfbG93KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7 CisJc2lpODYyMF93cml0ZShjdHgsIFJFR19UTURTX0NTVEFUX1AzLAorCQkgICAgICAgQklUX1RN RFNfQ1NUQVRfUDNfU0NEVF9DTFJfQVZJX0RJUworCQkgICAgICAgfCBCSVRfVE1EU19DU1RBVF9Q M19DTFJfQVZJKTsKKworCXNpaTg2MjBfc3RvcF92aWRlbyhjdHgpOworCisJc2lpODYyMF93cml0 ZShjdHgsIFJFR19JTlRSOF9NQVNLLCAwKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9pcnFf c2NkdChzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXU4IHN0YXQgPSBzaWk4NjIwX3JlYWRiKGN0 eCwgUkVHX0lOVFI1KTsKKworCWlmIChzdGF0ICYgQklUX0lOVFJfU0NEVF9DSEFOR0UpIHsKKwkJ dTggY3N0YXQgPSBzaWk4NjIwX3JlYWRiKGN0eCwgUkVHX1RNRFNfQ1NUQVRfUDMpOworCisJCWlm IChjc3RhdCAmIEJJVF9UTURTX0NTVEFUX1AzX1NDRFQpCisJCQlzaWk4NjIwX3NjZHRfaGlnaChj dHgpOworCQllbHNlCisJCQlzaWk4NjIwX3NjZHRfbG93KGN0eCk7CisJfQorCisJc2lpODYyMF93 cml0ZShjdHgsIFJFR19JTlRSNSwgc3RhdCk7Cit9CisKK3N0YXRpYyB2b2lkIHNpaTg2MjBfbmV3 X3ZzaShzdHJ1Y3Qgc2lpODYyMCAqY3R4KQoreworCXU4IHZzaWZbMTFdOworCisJc2lpODYyMF93 cml0ZShjdHgsIFJFR19SWF9IRE1JX0NUUkwyLAorCQkgICAgICAgVkFMX1JYX0hETUlfQ1RSTDJf REVGVkFMCisJCSAgICAgICB8IEJJVF9SWF9IRE1JX0NUUkwyX1ZTSV9NT05fU0VMX1ZTSSk7CisJ c2lpODYyMF9yZWFkX2J1ZihjdHgsIFJFR19SWF9IRE1JX01PTl9QS1RfSEVBREVSMSwgdnNpZiwK KwkJCSBBUlJBWV9TSVpFKHZzaWYpKTsKK30KKworc3RhdGljIHZvaWQgc2lpODYyMF9uZXdfYXZp KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc2lpODYyMF93cml0ZShjdHgsIFJFR19SWF9IRE1J X0NUUkwyLCBWQUxfUlhfSERNSV9DVFJMMl9ERUZWQUwpOworCXNpaTg2MjBfcmVhZF9idWYoY3R4 LCBSRUdfUlhfSERNSV9NT05fUEtUX0hFQURFUjEsIGN0eC0+YXZpZiwKKwkJCSBBUlJBWV9TSVpF KGN0eC0+YXZpZikpOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX2lycV9pbmZyKHN0cnVjdCBz aWk4NjIwICpjdHgpCit7CisJdTggc3RhdCA9IHNpaTg2MjBfcmVhZGIoY3R4LCBSRUdfSU5UUjgp CisJCSYgKEJJVF9DRUFfTkVXX1ZTSSB8IEJJVF9DRUFfTkVXX0FWSSk7CisKKwlzaWk4NjIwX3dy aXRlKGN0eCwgUkVHX0lOVFI4LCBzdGF0KTsKKworCWlmIChzdGF0ICYgQklUX0NFQV9ORVdfVlNJ KQorCQlzaWk4NjIwX25ld192c2koY3R4KTsKKworCWlmIChzdGF0ICYgQklUX0NFQV9ORVdfQVZJ KQorCQlzaWk4NjIwX25ld19hdmkoY3R4KTsKKworCWlmIChzdGF0ICYgKEJJVF9DRUFfTkVXX1ZT SSB8IEJJVF9DRUFfTkVXX0FWSSkpCisJCXNpaTg2MjBfc3RhcnRfdmlkZW8oY3R4KTsKK30KKwor LyogZW5kaWFuIGFnbm9zdGljLCBub24tdm9sYXRpbGUgdmVyc2lvbiBvZiB0ZXN0X2JpdCAqLwor c3RhdGljIGJvb2wgc2lpODYyMF90ZXN0X2JpdCh1bnNpZ25lZCBpbnQgbnIsIGNvbnN0IHU4ICph ZGRyKQoreworCXJldHVybiAxICYgKGFkZHJbbnIgLyBCSVRTX1BFUl9CWVRFXSA+PiAobnIgJSBC SVRTX1BFUl9CWVRFKSk7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBzaWk4NjIwX2lycV90aHJl YWQoaW50IGlycSwgdm9pZCAqZGF0YSkKK3sKKwlzdGF0aWMgY29uc3Qgc3RydWN0IHsKKwkJaW50 IGJpdDsKKwkJdm9pZCAoKmhhbmRsZXIpKHN0cnVjdCBzaWk4NjIwICpjdHgpOworCX0gaXJxX3Zl Y1tdID0geworCQl7IEJJVF9GQVNUX0lOVFJfU1RBVF9ESVNDLCBzaWk4NjIwX2lycV9kaXNjIH0s CisJCXsgQklUX0ZBU1RfSU5UUl9TVEFUX0cyV0IsIHNpaTg2MjBfaXJxX2cyd2IgfSwKKwkJeyBC SVRfRkFTVF9JTlRSX1NUQVRfQ09DLCBzaWk4NjIwX2lycV9jb2MgfSwKKwkJeyBCSVRfRkFTVF9J TlRSX1NUQVRfTVNDLCBzaWk4NjIwX2lycV9tc2MgfSwKKwkJeyBCSVRfRkFTVF9JTlRSX1NUQVRf TUVSUiwgc2lpODYyMF9pcnFfbWVyciB9LAorCQl7IEJJVF9GQVNUX0lOVFJfU1RBVF9FRElELCBz aWk4NjIwX2lycV9lZGlkIH0sCisJCXsgQklUX0ZBU1RfSU5UUl9TVEFUX1NDRFQsIHNpaTg2MjBf aXJxX3NjZHQgfSwKKwkJeyBCSVRfRkFTVF9JTlRSX1NUQVRfSU5GUiwgc2lpODYyMF9pcnFfaW5m ciB9LAorCX07CisJc3RydWN0IHNpaTg2MjAgKmN0eCA9IGRhdGE7CisJdTggc3RhdHNbTEVOX0ZB U1RfSU5UUl9TVEFUXTsKKwlpbnQgaSwgcmV0OworCisJbXV0ZXhfbG9jaygmY3R4LT5sb2NrKTsK KworCXNpaTg2MjBfcmVhZF9idWYoY3R4LCBSRUdfRkFTVF9JTlRSX1NUQVQsIHN0YXRzLCBBUlJB WV9TSVpFKHN0YXRzKSk7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaXJxX3ZlYyk7ICsr aSkKKwkJaWYgKHNpaTg2MjBfdGVzdF9iaXQoaXJxX3ZlY1tpXS5iaXQsIHN0YXRzKSkKKwkJCWly cV92ZWNbaV0uaGFuZGxlcihjdHgpOworCisJc2lpODYyMF9tdF93b3JrKGN0eCk7CisKKwlyZXQg PSBzaWk4NjIwX2NsZWFyX2Vycm9yKGN0eCk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKGN0eC0+ ZGV2LCAiRXJyb3IgZHVyaW5nIElSUSBoYW5kbGluZywgJWQuXG4iLCByZXQpOworCQlzaWk4NjIw X21obF9kaXNjb25uZWN0ZWQoY3R4KTsKKwl9CisJbXV0ZXhfdW5sb2NrKCZjdHgtPmxvY2spOwor CisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgdm9pZCBzaWk4NjIwX2NhYmxlX2lu KHN0cnVjdCBzaWk4NjIwICpjdHgpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gY3R4LT5kZXY7 CisJdTggdmVyWzVdOworCWludCByZXQ7CisKKwlyZXQgPSBzaWk4NjIwX2h3X29uKGN0eCk7CisJ aWYgKHJldCkgeworCQlkZXZfZXJyKGRldiwgIkVycm9yIHBvd2VyaW5nIG9uLCAlZC5cbiIsIHJl dCk7CisJCXJldHVybjsKKwl9CisJc2lpODYyMF9od19yZXNldChjdHgpOworCisJc2lpODYyMF9y ZWFkX2J1ZihjdHgsIFJFR19WTkRfSURMLCB2ZXIsIEFSUkFZX1NJWkUodmVyKSk7CisJcmV0ID0g c2lpODYyMF9jbGVhcl9lcnJvcihjdHgpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICJF cnJvciBhY2Nlc3NpbmcgSTJDIGJ1cywgJWQuXG4iLCByZXQpOworCQlyZXR1cm47CisJfQorCisJ ZGV2X2luZm8oZGV2LCAiQ2hpcElEICUwMnglMDJ4OiUwMnglMDJ4IHJldiAlMDJ4LlxuIiwgdmVy WzFdLCB2ZXJbMF0sCisJCSB2ZXJbM10sIHZlclsyXSwgdmVyWzRdKTsKKworCXNpaTg2MjBfd3Jp dGUoY3R4LCBSRUdfRFBELAorCQkJQklUX0RQRF9QV1JPTl9QTEwgfCBCSVRfRFBEX1BETlRYMTIg fCBCSVRfRFBEX09TQ19FTik7CisKKwlzaWk4NjIwX3h0YWxfc2V0X3JhdGUoY3R4KTsKKwlzaWk4 NjIwX2Rpc2Nvbm5lY3QoY3R4KTsKKworCXNpaTg2MjBfd3JpdGVfc2VxKGN0eCwKKwkJUkVHX01I TF9DQlVTX0NUTDAsIFZBTF9NSExfQ0JVU19DVEwwX0NCVVNfRFJWX1NFTF9TVFJPTkcKKwkJCXwg VkFMX01ITF9DQlVTX0NUTDBfQ0JVU19SR05EX1ZCSUFTXzczNCwKKwkJUkVHX01ITF9DQlVTX0NU TDEsIFZBTF9NSExfQ0JVU19DVEwxXzExMTVfT0hNLAorCQlSRUdfRFBELCBCSVRfRFBEX1BXUk9O X1BMTCB8IEJJVF9EUERfUEROVFgxMiB8IEJJVF9EUERfT1NDX0VOLAorCSk7CisKKwlyZXQgPSBz aWk4NjIwX2NsZWFyX2Vycm9yKGN0eCk7CisJaWYgKHJldCkgeworCQlkZXZfZXJyKGRldiwgIkVy cm9yIGFjY2Vzc2luZyBJMkMgYnVzLCAlZC5cbiIsIHJldCk7CisJCXJldHVybjsKKwl9CisKKwll bmFibGVfaXJxKHRvX2kyY19jbGllbnQoY3R4LT5kZXYpLT5pcnEpOworfQorCitzdGF0aWMgaW5s aW5lIHN0cnVjdCBzaWk4NjIwICpicmlkZ2VfdG9fc2lpODYyMChzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlKQoreworCXJldHVybiBjb250YWluZXJfb2YoYnJpZGdlLCBzdHJ1Y3Qgc2lpODYyMCwg YnJpZGdlKTsKK30KKworYm9vbCBzaWk4NjIwX21vZGVfZml4dXAoc3RydWN0IGRybV9icmlkZ2Ug KmJyaWRnZSwKKwkJICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisJCSAg IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQoreworCXN0cnVjdCBzaWk4 NjIwICpjdHggPSBicmlkZ2VfdG9fc2lpODYyMChicmlkZ2UpOworCWJvb2wgcmV0ID0gZmFsc2U7 CisJaW50IG1heF9jbG9jayA9IDc0MjUwOworCisJbXV0ZXhfbG9jaygmY3R4LT5sb2NrKTsKKwor CWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQorCQlnb3RvIG91dDsK KworCWlmIChjdHgtPmRldmNhcFtNSExfRENBUF9WSURfTElOS19NT0RFXSAmIE1ITF9EQ0FQX1ZJ RF9MSU5LX1BQSVhFTCkKKwkJbWF4X2Nsb2NrID0gMzAwMDAwOworCisJcmV0ID0gbW9kZS0+Y2xv Y2sgPD0gbWF4X2Nsb2NrOworCitvdXQ6CisJbXV0ZXhfdW5sb2NrKCZjdHgtPmxvY2spOworCisJ cmV0dXJuIHJldDsKK30KKworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3Mg c2lpODYyMF9icmlkZ2VfZnVuY3MgPSB7CisJLm1vZGVfZml4dXAgPSBzaWk4NjIwX21vZGVfZml4 dXAsCit9OworCitzdGF0aWMgaW50IHNpaTg2MjBfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNs aWVudCwKKwkJCSBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCit7CisJc3RydWN0IGRl dmljZSAqZGV2ID0gJmNsaWVudC0+ZGV2OworCXN0cnVjdCBzaWk4NjIwICpjdHg7CisJaW50IHJl dDsKKworCWN0eCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqY3R4KSwgR0ZQX0tFUk5FTCk7 CisJaWYgKCFjdHgpCisJCXJldHVybiAtRU5PTUVNOworCisJY3R4LT5kZXYgPSBkZXY7CisJbXV0 ZXhfaW5pdCgmY3R4LT5sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmY3R4LT5tdF9xdWV1ZSk7CisK KwljdHgtPmNsa194dGFsID0gZGV2bV9jbGtfZ2V0KGRldiwgInh0YWwiKTsKKwlpZiAoSVNfRVJS KGN0eC0+Y2xrX3h0YWwpKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCB4dGFsIGNs b2NrIGZyb20gRFRcbiIpOworCQlyZXR1cm4gUFRSX0VSUihjdHgtPmNsa194dGFsKTsKKwl9CisK KwlpZiAoIWNsaWVudC0+aXJxKSB7CisJCWRldl9lcnIoZGV2LCAibm8gaXJxIHByb3ZpZGVkXG4i KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWlycV9zZXRfc3RhdHVzX2ZsYWdzKGNsaWVudC0+ aXJxLCBJUlFfTk9BVVRPRU4pOworCXJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoZGV2 LCBjbGllbnQtPmlycSwgTlVMTCwKKwkJCXNpaTg2MjBfaXJxX3RocmVhZCwgSVJRRl9UUklHR0VS X0hJR0ggfCBJUlFGX09ORVNIT1QsCisJCQkic2lpODYyMCIsIGN0eCk7CisKKwljdHgtPmdwaW9f cmVzZXQgPSBkZXZtX2dwaW9kX2dldChkZXYsICJyZXNldCIsIEdQSU9EX09VVF9ISUdIKTsKKwlp ZiAoSVNfRVJSKGN0eC0+Z3Bpb19yZXNldCkpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8g Z2V0IHJlc2V0IGdwaW8gZnJvbSBEVFxuIik7CisJCXJldHVybiBQVFJfRVJSKGN0eC0+Z3Bpb19y ZXNldCk7CisJfQorCisJY3R4LT5zdXBwbGllc1swXS5zdXBwbHkgPSAiY3ZjYzEwIjsKKwljdHgt PnN1cHBsaWVzWzFdLnN1cHBseSA9ICJpb3ZjYzE4IjsKKwlyZXQgPSBkZXZtX3JlZ3VsYXRvcl9i dWxrX2dldChkZXYsIDIsIGN0eC0+c3VwcGxpZXMpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7 CisKKwlpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCBjdHgpOworCisJY3R4LT5icmlkZ2UuZnVu Y3MgPSAmc2lpODYyMF9icmlkZ2VfZnVuY3M7CisJY3R4LT5icmlkZ2Uub2Zfbm9kZSA9IGRldi0+ b2Zfbm9kZTsKKwlkcm1fYnJpZGdlX2FkZCgmY3R4LT5icmlkZ2UpOworCisJc2lpODYyMF9jYWJs ZV9pbihjdHgpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc2lpODYyMF9yZW1vdmUo c3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKK3sKKwlzdHJ1Y3Qgc2lpODYyMCAqY3R4ID0gaTJj X2dldF9jbGllbnRkYXRhKGNsaWVudCk7CisKKwlkaXNhYmxlX2lycSh0b19pMmNfY2xpZW50KGN0 eC0+ZGV2KS0+aXJxKTsKKwlkcm1fYnJpZGdlX3JlbW92ZSgmY3R4LT5icmlkZ2UpOworCXNpaTg2 MjBfaHdfb2ZmKGN0eCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBv Zl9kZXZpY2VfaWQgc2lpODYyMF9kdF9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAic2ls LHNpaTg2MjAiIH0sCisJeyB9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNpaTg2MjBf ZHRfbWF0Y2gpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgc2lpODYyMF9p ZFtdID0geworCXsgIlNJSTg2MjAiLCAwIH0sCisJeyB9LAorfTsKKworTU9EVUxFX0RFVklDRV9U QUJMRShpMmMsIHNpaTg2MjBfaWQpOworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHNpaTg2MjBf ZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lCT0gInNpaTg2MjAiLAorCQkub3duZXIJ PSBUSElTX01PRFVMRSwKKwkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfcHRyKHNpaTg2MjBf ZHRfbWF0Y2gpLAorCX0sCisJLnByb2JlCQk9IHNpaTg2MjBfcHJvYmUsCisJLnJlbW92ZQkJPSBz aWk4NjIwX3JlbW92ZSwKKwkuaWRfdGFibGUgPSBzaWk4NjIwX2lkLAorfTsKKworbW9kdWxlX2ky Y19kcml2ZXIoc2lpODYyMF9kcml2ZXIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5oIGIvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjZmZjYxNmEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdl L3NpbC1zaWk4NjIwLmgKQEAgLTAsMCArMSwxNTE3IEBACisvKgorICogUmVnaXN0ZXJzIG9mIFNp bGljb24gSW1hZ2UgU2lJODYyMCBNb2JpbGUgSEQgVHJhbnNtaXR0ZXIKKyAqCisgKiBDb3B5cmln aHQgKEMpIDIwMTUsIFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisgKiBBbmRyemVqIEhh amRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgorICoKKyAqIEJhc2VkIG9uIE1ITCBkcml2ZXIgZm9y IEFuZHJvaWQgZGV2aWNlcy4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE0IFNpbGljb24gSW1h Z2UsIEluYy4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX19TSUxfU0lJ ODYyMF9IX18KKyNkZWZpbmUgX19TSUxfU0lJODYyMF9IX18KKworLyogVmVuZG9yIElEIExvdyBi eXRlLCBkZWZhdWx0IHZhbHVlOiAweDAxICovCisjZGVmaW5lIFJFR19WTkRfSURMCQkJCTB4MDAw MAorCisvKiBWZW5kb3IgSUQgSGlnaCBieXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19WTkRfSURICQkJCTB4MDAwMQorCisvKiBEZXZpY2UgSUQgTG93IGJ5dGUsIGRlZmF1 bHQgdmFsdWU6IDB4NjAgKi8KKyNkZWZpbmUgUkVHX0RFVl9JREwJCQkJMHgwMDAyCisKKy8qIERl dmljZSBJRCBIaWdoIGJ5dGUsIGRlZmF1bHQgdmFsdWU6IDB4ODYgKi8KKyNkZWZpbmUgUkVHX0RF Vl9JREgJCQkJMHgwMDAzCisKKy8qIERldmljZSBSZXZpc2lvbiwgZGVmYXVsdCB2YWx1ZTogMHgx MCAqLworI2RlZmluZSBSRUdfREVWX1JFVgkJCQkweDAwMDQKKworLyogT1RQIERCWVRFNTEwLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19PVFBfREJZVEU1MTAJCQkweDAwMDYK KworLyogU3lzdGVtIENvbnRyb2wgIzEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX1NZU19DVFJMMQkJCQkweDAwMDgKKyNkZWZpbmUgQklUX1NZU19DVFJMMV9PVFBWTVVURU9W Ul9TRVQJCUJJVCg3KQorI2RlZmluZSBCSVRfU1lTX0NUUkwxX1ZTWU5DUElOCQkJQklUKDYpCisj ZGVmaW5lIEJJVF9TWVNfQ1RSTDFfT1RQQURST1BPVlJfU0VUCQlCSVQoNSkKKyNkZWZpbmUgQklU X1NZU19DVFJMMV9CTE9DS19ERENfQllfSFBECQlCSVQoNCkKKyNkZWZpbmUgQklUX1NZU19DVFJM MV9PVFAyWFZPVlJfRU4JCUJJVCgzKQorI2RlZmluZSBCSVRfU1lTX0NUUkwxX09UUDJYQU9WUl9F TgkJQklUKDIpCisjZGVmaW5lIEJJVF9TWVNfQ1RSTDFfVFhfQ1RSTF9IRE1JCQlCSVQoMSkKKyNk ZWZpbmUgQklUX1NZU19DVFJMMV9PVFBBTVVURU9WUl9TRVQJCUJJVCgwKQorCisvKiBTeXN0ZW0g Q29udHJvbCBEUEQsIGRlZmF1bHQgdmFsdWU6IDB4OTAgKi8KKyNkZWZpbmUgUkVHX0RQRAkJCQkJ MHgwMDBiCisjZGVmaW5lIEJJVF9EUERfUFdST05fUExMCQkJQklUKDcpCisjZGVmaW5lIEJJVF9E UERfUEROVFgxMgkJCQlCSVQoNikKKyNkZWZpbmUgQklUX0RQRF9QRE5SWDEyCQkJCUJJVCg1KQor I2RlZmluZSBCSVRfRFBEX09TQ19FTgkJCQlCSVQoNCkKKyNkZWZpbmUgQklUX0RQRF9QV1JPTl9I U0lDCQkJQklUKDMpCisjZGVmaW5lIEJJVF9EUERfUERJRENLX04JCQlCSVQoMikKKyNkZWZpbmUg QklUX0RQRF9QRF9NSExfQ0xLX04JCQlCSVQoMSkKKworLyogRHVhbCBsaW5rIENvbnRyb2wsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RDVEwJCQkJMHgwMDBkCisjZGVmaW5l IEJJVF9EQ1RMX1RETV9MQ0xLX1BIQVNFCQkJQklUKDcpCisjZGVmaW5lIEJJVF9EQ1RMX0hTSUNf Q0xLX1BIQVNFCQkJQklUKDYpCisjZGVmaW5lIEJJVF9EQ1RMX0NUU19UQ0tfUEhBU0UJCQlCSVQo NSkKKyNkZWZpbmUgQklUX0RDVExfRVhUX0REQ19TRUwJCQlCSVQoNCkKKyNkZWZpbmUgQklUX0RD VExfVFJBTlNDT0RFCQkJQklUKDMpCisjZGVmaW5lIEJJVF9EQ1RMX0hTSUNfUlhfU1RST0JFX1BI QVNFCQlCSVQoMikKKyNkZWZpbmUgQklUX0RDVExfSFNJQ19UWF9CSVNUX1NUQVJUX1NFTAkJQklU KDEpCisjZGVmaW5lIEJJVF9EQ1RMX1RDTEtOWF9QSEFTRQkJCUJJVCgwKQorCisvKiBQV0QgU29m dHdhcmUgUmVzZXQsIGRlZmF1bHQgdmFsdWU6IDB4MjAgKi8KKyNkZWZpbmUgUkVHX1BXRF9TUlNU CQkJCTB4MDAwZQorI2RlZmluZSBCSVRfUFdEX1NSU1RfQ09DX0RPQ19SU1QJCUJJVCg3KQorI2Rl ZmluZSBCSVRfUFdEX1NSU1RfQ0JVU19SU1RfU1cJCUJJVCg2KQorI2RlZmluZSBCSVRfUFdEX1NS U1RfQ0JVU19SU1RfU1dfRU4JCUJJVCg1KQorI2RlZmluZSBCSVRfUFdEX1NSU1RfTUhMRklGT19S U1QJCUJJVCg0KQorI2RlZmluZSBCSVRfUFdEX1NSU1RfQ0JVU19SU1QJCQlCSVQoMykKKyNkZWZp bmUgQklUX1BXRF9TUlNUX1NXX1JTVF9BVVRPCQlCSVQoMikKKyNkZWZpbmUgQklUX1BXRF9TUlNU X0hEQ1AyWF9TV19SU1QJCUJJVCgxKQorI2RlZmluZSBCSVRfUFdEX1NSU1RfU1dfUlNUCQkJQklU KDApCisKKy8qIEFLU1ZfMSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQUtT Vl8xCQkJCTB4MDAxZAorCisvKiBWaWRlbyBIIFJlc29sdXRpb24gIzEsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hfUkVTTAkJCQkweDAwM2EKKworLyogVmlkZW8gTW9kZSwg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVklEX01PREUJCQkJMHgwMDRhCisj ZGVmaW5lIEJJVF9WSURfTU9ERV9NMTA4MFAJCQlCSVQoNikKKworLyogVmlkZW8gSW5wdXQgTW9k ZSwgZGVmYXVsdCB2YWx1ZTogMHhjMCAqLworI2RlZmluZSBSRUdfVklEX09WUlJECQkJCTB4MDA1 MQorI2RlZmluZSBCSVRfVklEX09WUlJEX1BQX0FVVE9fRElTQUJMRQkJQklUKDcpCisjZGVmaW5l IEJJVF9WSURfT1ZSUkRfTTEwODBQX09WUlJECQlCSVQoNikKKyNkZWZpbmUgQklUX1ZJRF9PVlJS RF9NSU5JVlNZTkNfT04JCUJJVCg1KQorI2RlZmluZSBCSVRfVklEX09WUlJEXzNEQ09OVl9FTl9G UkFNRV9QQUNLCUJJVCg0KQorI2RlZmluZSBCSVRfVklEX09WUlJEX0VOQUJMRV9BVVRPX1BBVEhf RU4JQklUKDMpCisjZGVmaW5lIEJJVF9WSURfT1ZSUkRfRU5SR0IyWUNCQ1JfT1ZSUkQJCUJJVCgy KQorI2RlZmluZSBCSVRfVklEX09WUlJEX0VORE9XTlNBTVBMRV9PVlJSRAlCSVQoMCkKKworLyog STJDIEFkZHJlc3MgcmVhc3NpZ25tZW50LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5l IFJFR19QQUdFX01ITFNQRUNfQUREUgkJCTB4MDA1NworI2RlZmluZSBSRUdfUEFHRTdfQUREUgkJ CQkweDAwNTgKKyNkZWZpbmUgUkVHX1BBR0U4X0FERFIJCQkJMHgwMDVjCisKKy8qIEZhc3QgSW50 ZXJydXB0IFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRkFTVF9J TlRSX1NUQVQJCQkweDAwNWYKKyNkZWZpbmUgTEVOX0ZBU1RfSU5UUl9TVEFUCQkJNworI2RlZmlu ZSBCSVRfRkFTVF9JTlRSX1NUQVRfVElNUgkJCTgKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFU X0lOVDIJCQk5CisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9EREMJCQkxMAorI2RlZmluZSBC SVRfRkFTVF9JTlRSX1NUQVRfU0NEVAkJCTExCisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9J TkZSCQkJMTMKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0VESUQJCQkxNAorI2RlZmluZSBC SVRfRkFTVF9JTlRSX1NUQVRfSERDUAkJCTE1CisjZGVmaW5lIEJJVF9GQVNUX0lOVFJfU1RBVF9N U0MJCQkxNgorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfTUVSUgkJCTE3CisjZGVmaW5lIEJJ VF9GQVNUX0lOVFJfU1RBVF9HMldCCQkJMTgKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFUX0cy V0JfRVJSCQkxOQorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfRElTQwkJCTI4CisjZGVmaW5l IEJJVF9GQVNUX0lOVFJfU1RBVF9CTE9DSwkJMzAKKyNkZWZpbmUgQklUX0ZBU1RfSU5UUl9TVEFU X0xUUk4JCQkzMQorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRfSERDUDIJCTMyCisjZGVmaW5l IEJJVF9GQVNUX0lOVFJfU1RBVF9URE0JCQk0MgorI2RlZmluZSBCSVRfRkFTVF9JTlRSX1NUQVRf Q09DCQkJNTEKKworLyogR1BJTyBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDE1ICovCisjZGVm aW5lIFJFR19HUElPX0NUUkwxCQkJCTB4MDA2ZQorI2RlZmluZSBCSVRfQ1RSTDFfR1BJT19JXzgJ CQlCSVQoNSkKKyNkZWZpbmUgQklUX0NUUkwxX0dQSU9fT0VOXzgJCQlCSVQoNCkKKyNkZWZpbmUg QklUX0NUUkwxX0dQSU9fSV83CQkJQklUKDMpCisjZGVmaW5lIEJJVF9DVFJMMV9HUElPX09FTl83 CQkJQklUKDIpCisjZGVmaW5lIEJJVF9DVFJMMV9HUElPX0lfNgkJCUJJVCgxKQorI2RlZmluZSBC SVRfQ1RSTDFfR1BJT19PRU5fNgkJCUJJVCgwKQorCisvKiBJbnRlcnJ1cHQgQ29udHJvbCwgZGVm YXVsdCB2YWx1ZTogMHgwNiAqLworI2RlZmluZSBSRUdfSU5UX0NUUkwJCQkJMHgwMDZmCisjZGVm aW5lIEJJVF9JTlRfQ1RSTF9TT0ZUV0FSRV9XUAkJQklUKDcpCisjZGVmaW5lIEJJVF9JTlRfQ1RS TF9JTlRSX09ECQkJQklUKDIpCisjZGVmaW5lIEJJVF9JTlRfQ1RSTF9JTlRSX1BPTEFSSVRZCQlC SVQoMSkKKworLyogSW50ZXJydXB0IFN0YXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19JTlRSX1NUQVRFCQkJCTB4MDA3MAorI2RlZmluZSBCSVRfSU5UUl9TVEFURV9JTlRS X1NUQVRFCQlCSVQoMCkKKworLyogSW50ZXJydXB0IFNvdXJjZSAjMSwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfSU5UUjEJCQkJMHgwMDcxCisKKy8qIEludGVycnVwdCBTb3Vy Y2UgIzIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFIyCQkJCTB4MDA3 MgorCisvKiBJbnRlcnJ1cHQgU291cmNlICMzLCBkZWZhdWx0IHZhbHVlOiAweDAxICovCisjZGVm aW5lIFJFR19JTlRSMwkJCQkweDAwNzMKKyNkZWZpbmUgQklUX0REQ19DTURfRE9ORQkJCUJJVCgz KQorCisvKiBJbnRlcnJ1cHQgU291cmNlICM1LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19JTlRSNQkJCQkweDAwNzQKKworLyogSW50ZXJydXB0ICMxIE1hc2ssIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFIxX01BU0sJCQkJMHgwMDc1CisKKy8qIElu dGVycnVwdCAjMiBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19JTlRS Ml9NQVNLCQkJCTB4MDA3NgorCisvKiBJbnRlcnJ1cHQgIzMgTWFzaywgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfSU5UUjNfTUFTSwkJCQkweDAwNzcKKworLyogSW50ZXJydXB0 ICM1IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFI1X01BU0sJ CQkJMHgwMDc4CisjZGVmaW5lIEJJVF9JTlRSX1NDRFRfQ0hBTkdFCQkJQklUKDApCisKKy8qIEhv dCBQbHVnIENvbm5lY3Rpb24gQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHg0NSAqLworI2RlZmlu ZSBSRUdfSFBEX0NUUkwJCQkJMHgwMDc5CisjZGVmaW5lIEJJVF9IUERfQ1RSTF9IUERfRFNfU0lH TkFMCQlCSVQoNykKKyNkZWZpbmUgQklUX0hQRF9DVFJMX0hQRF9PVVRfT0RfRU4JCUJJVCg2KQor I2RlZmluZSBCSVRfSFBEX0NUUkxfSFBEX0hJR0gJCQlCSVQoNSkKKyNkZWZpbmUgQklUX0hQRF9D VFJMX0hQRF9PVVRfT1ZSX0VOCQlCSVQoNCkKKyNkZWZpbmUgQklUX0hQRF9DVFJMX0dQSU9fSV8x CQkJQklUKDMpCisjZGVmaW5lIEJJVF9IUERfQ1RSTF9HUElPX09FTl8xCQkJQklUKDIpCisjZGVm aW5lIEJJVF9IUERfQ1RSTF9HUElPX0lfMAkJCUJJVCgxKQorI2RlZmluZSBCSVRfSFBEX0NUUkxf R1BJT19PRU5fMAkJCUJJVCgwKQorCisvKiBHUElPIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4 NTUgKi8KKyNkZWZpbmUgUkVHX0dQSU9fQ1RSTAkJCQkweDAwN2EKKyNkZWZpbmUgQklUX0NUUkxf R1BJT19JXzUJCQlCSVQoNykKKyNkZWZpbmUgQklUX0NUUkxfR1BJT19PRU5fNQkJCUJJVCg2KQor I2RlZmluZSBCSVRfQ1RSTF9HUElPX0lfNAkJCUJJVCg1KQorI2RlZmluZSBCSVRfQ1RSTF9HUElP X09FTl80CQkJQklUKDQpCisjZGVmaW5lIEJJVF9DVFJMX0dQSU9fSV8zCQkJQklUKDMpCisjZGVm aW5lIEJJVF9DVFJMX0dQSU9fT0VOXzMJCQlCSVQoMikKKyNkZWZpbmUgQklUX0NUUkxfR1BJT19J XzIJCQlCSVQoMSkKKyNkZWZpbmUgQklUX0NUUkxfR1BJT19PRU5fMgkJCUJJVCgwKQorCisvKiBJ bnRlcnJ1cHQgU291cmNlIDcsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0lO VFI3CQkJCTB4MDA3YgorCisvKiBJbnRlcnJ1cHQgU291cmNlIDgsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX0lOVFI4CQkJCTB4MDA3YworCisvKiBJbnRlcnJ1cHQgIzcgTWFz aywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSU5UUjdfTUFTSwkJCQkweDAw N2QKKworLyogSW50ZXJydXB0ICM4IE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZp bmUgUkVHX0lOVFI4X01BU0sJCQkJMHgwMDdlCisjZGVmaW5lIEJJVF9DRUFfTkVXX1ZTSQkJCQlC SVQoMikKKyNkZWZpbmUgQklUX0NFQV9ORVdfQVZJCQkJCUJJVCgxKQorCisvKiBJRUVFLCBkZWZh dWx0IHZhbHVlOiAweDEwICovCisjZGVmaW5lIFJFR19UTURTX0NDVFJMCQkJCTB4MDA4MAorI2Rl ZmluZSBCSVRfVE1EU19DQ1RSTF9UTURTX09FCQkJQklUKDQpCisKKy8qIFRNRFMgQ29udHJvbCAj NCwgZGVmYXVsdCB2YWx1ZTogMHgwMiAqLworI2RlZmluZSBSRUdfVE1EU19DVFJMNAkJCQkweDAw ODUKKyNkZWZpbmUgQklUX1RNRFNfQ1RSTDRfU0NEVF9DS0RUX1NFTAkJQklUKDEpCisjZGVmaW5l IEJJVF9UTURTX0NUUkw0X1RYX0VOX0JZX1NDRFQJCUJJVCgwKQorCisvKiBCSVNUIENOVEwsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0JJU1RfQ1RSTAkJCQkweDAwYmIKKyNk ZWZpbmUgQklUX1JYQklTVF9WR0JfRU4JCQlCSVQoNykKKyNkZWZpbmUgQklUX1RYQklTVF9WR0Jf RU4JCQlCSVQoNikKKyNkZWZpbmUgQklUX0JJU1RfU1RBUlRfU0VMCQkJQklUKDUpCisjZGVmaW5l IEJJVF9CSVNUX1NUQVJUX0JJVAkJCUJJVCg0KQorI2RlZmluZSBCSVRfQklTVF9BTFdBWVNfT04J CQlCSVQoMykKKyNkZWZpbmUgQklUX0JJU1RfVFJBTlMJCQkJQklUKDIpCisjZGVmaW5lIEJJVF9C SVNUX1JFU0VUCQkJCUJJVCgxKQorI2RlZmluZSBCSVRfQklTVF9FTgkJCQlCSVQoMCkKKworLyog QklTVCBEVVJBVElPTjAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0JJU1Rf VEVTVF9TRUwJCQkweDAwYmQKKyNkZWZpbmUgTVNLX0JJU1RfVEVTVF9TRUxfQklTVF9QQVRUX1NF TAkJMHgwZgorCisvKiBCSVNUIFZJREVPX01PREUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX0JJU1RfVklERU9fTU9ERQkJCTB4MDBiZQorI2RlZmluZSBNU0tfQklTVF9WSURF T19NT0RFX0JJU1RfVklERU9fTU9ERV8zXzAJMHgwZgorCisvKiBCSVNUIERVUkFUSU9OMCwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQklTVF9EVVJBVElPTl8wCQkJMHgwMGJm CisKKy8qIEJJU1QgRFVSQVRJT04xLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJF R19CSVNUX0RVUkFUSU9OXzEJCQkweDAwYzAKKworLyogQklTVCBEVVJBVElPTjIsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0JJU1RfRFVSQVRJT05fMgkJCTB4MDBjMQorCisv KiBCSVNUIDhCSVRfUEFUVEVSTiwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf QklTVF84QklUX1BBVFRFUk4JCQkweDAwYzIKKworLyogTE0gRERDLCBkZWZhdWx0IHZhbHVlOiAw eDgwICovCisjZGVmaW5lIFJFR19MTV9EREMJCQkJMHgwMGM3CisjZGVmaW5lIEJJVF9MTV9ERENf U1dfVFBJX0VOX0RJU0FCTEVECQlCSVQoNykKKworI2RlZmluZSBCSVRfTE1fRERDX1ZJREVPX01V VEVfRU4JCUJJVCg1KQorI2RlZmluZSBCSVRfTE1fRERDX0REQ19UUElfU1cJCQlCSVQoMikKKyNk ZWZpbmUgQklUX0xNX0REQ19ERENfR1JBTlQJCQlCSVQoMSkKKyNkZWZpbmUgQklUX0xNX0REQ19E RENfR1BVX1JFUVVFU1QJCUJJVCgwKQorCisvKiBEREMgSTJDIE1hbnVhbCwgZGVmYXVsdCB2YWx1 ZTogMHgwMyAqLworI2RlZmluZSBSRUdfRERDX01BTlVBTAkJCQkweDAwZWMKKyNkZWZpbmUgQklU X0REQ19NQU5VQUxfTUFOX0REQwkJCUJJVCg3KQorI2RlZmluZSBCSVRfRERDX01BTlVBTF9WUF9T RUwJCQlCSVQoNikKKyNkZWZpbmUgQklUX0REQ19NQU5VQUxfRFNEQQkJCUJJVCg1KQorI2RlZmlu ZSBCSVRfRERDX01BTlVBTF9EU0NMCQkJQklUKDQpCisjZGVmaW5lIEJJVF9ERENfTUFOVUFMX0dD UF9IV19DVExfRU4JCUJJVCgzKQorI2RlZmluZSBCSVRfRERDX01BTlVBTF9ERENNX0FCT1JUX1dQ CQlCSVQoMikKKyNkZWZpbmUgQklUX0REQ19NQU5VQUxfSU9fRFNEQQkJCUJJVCgxKQorI2RlZmlu ZSBCSVRfRERDX01BTlVBTF9JT19EU0NMCQkJQklUKDApCisKKy8qIEREQyBJMkMgVGFyZ2V0IFNs YXZlIEFkZHJlc3MsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0REQ19BRERS CQkJCTB4MDBlZAorI2RlZmluZSBNU0tfRERDX0FERFJfRERDX0FERFIJCQkweGZlCisKKy8qIERE QyBJMkMgVGFyZ2V0IFNlZ21lbnQgQWRkcmVzcywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2Rl ZmluZSBSRUdfRERDX1NFR00JCQkJMHgwMGVlCisKKy8qIEREQyBJMkMgVGFyZ2V0IE9mZnNldCBB ZGRyZXNzLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ERENfT0ZGU0VUCQkJ CTB4MDBlZgorCisvKiBEREMgSTJDIERhdGEgSW4gY291bnQgIzEsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX0REQ19ESU5fQ05UMQkJCTB4MDBmMAorCisvKiBEREMgSTJDIERh dGEgSW4gY291bnQgIzIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0REQ19E SU5fQ05UMgkJCTB4MDBmMQorI2RlZmluZSBNU0tfRERDX0RJTl9DTlQyX0REQ19ESU5fQ05UXzlf OAkweDAzCisKKy8qIEREQyBJMkMgU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDA0ICovCisjZGVm aW5lIFJFR19ERENfU1RBVFVTCQkJCTB4MDBmMgorI2RlZmluZSBCSVRfRERDX1NUQVRVU19ERENf QlVTX0xPVwkJQklUKDYpCisjZGVmaW5lIEJJVF9ERENfU1RBVFVTX0REQ19OT19BQ0sJCUJJVCg1 KQorI2RlZmluZSBCSVRfRERDX1NUQVRVU19ERENfSTJDX0lOX1BST0cJCUJJVCg0KQorI2RlZmlu ZSBCSVRfRERDX1NUQVRVU19ERENfRklGT19GVUxMCQlCSVQoMykKKyNkZWZpbmUgQklUX0REQ19T VEFUVVNfRERDX0ZJRk9fRU1QVFkJCUJJVCgyKQorI2RlZmluZSBCSVRfRERDX1NUQVRVU19ERENf RklGT19SRUFEX0lOX1NVRQlCSVQoMSkKKyNkZWZpbmUgQklUX0REQ19TVEFUVVNfRERDX0ZJRk9f V1JJVEVfSU5fVVNFCUJJVCgwKQorCisvKiBEREMgSTJDIENvbW1hbmQsIGRlZmF1bHQgdmFsdWU6 IDB4NzAgKi8KKyNkZWZpbmUgUkVHX0REQ19DTUQJCQkJMHgwMGYzCisjZGVmaW5lIEJJVF9ERENf Q01EX0hEQ1BfRERDX0VOCQkJQklUKDYpCisjZGVmaW5lIEJJVF9ERENfQ01EX1NEQV9ERUxfRU4J CQlCSVQoNSkKKyNkZWZpbmUgQklUX0REQ19DTURfRERDX0ZMVF9FTgkJCUJJVCg0KQorCisjZGVm aW5lIE1TS19ERENfQ01EX0REQ19DTUQJCQkweDBmCisjZGVmaW5lIFZBTF9ERENfQ01EX0VOSF9E RENfUkVBRF9OT19BQ0sJCTB4MDQKKyNkZWZpbmUgVkFMX0REQ19DTURfRERDX0NNRF9DTEVBUl9G SUZPCQkweDA5CisjZGVmaW5lIFZBTF9ERENfQ01EX0REQ19DTURfQUJPUlQJCTB4MGYKKworLyog RERDIEkyQyBGSUZPIERhdGEgSW4vT3V0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5l IFJFR19ERENfREFUQQkJCQkweDAwZjQKKworLyogRERDIEkyQyBEYXRhIE91dCBDb3VudGVyLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ERENfRE9VVF9DTlQJCQkweDAwZjUK KyNkZWZpbmUgQklUX0REQ19ET1VUX0NOVF9ERENfREVMQVlfQ05UXzgJQklUKDcpCisjZGVmaW5l IE1TS19ERENfRE9VVF9DTlRfRERDX0RBVEFfT1VUX0NOVAkweDFmCisKKy8qIEREQyBJMkMgRGVs YXkgQ291bnQsIGRlZmF1bHQgdmFsdWU6IDB4MTQgKi8KKyNkZWZpbmUgUkVHX0REQ19ERUxBWV9D TlQJCQkweDAwZjYKKworLyogVGVzdCBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDgwICovCisj ZGVmaW5lIFJFR19URVNUX1RYQ1RSTAkJCQkweDAwZjcKKyNkZWZpbmUgQklUX1RFU1RfVFhDVFJM X1JDTEtfUkVGX1NFTAkJQklUKDcpCisjZGVmaW5lIEJJVF9URVNUX1RYQ1RSTF9QQ0xLX1JFRl9T RUwJCUJJVCg2KQorI2RlZmluZSBNU0tfVEVTVF9UWENUUkxfQllQQVNTX1BMTF9DTEsJCTB4M2MK KyNkZWZpbmUgQklUX1RFU1RfVFhDVFJMX0hETUlfTU9ERQkJQklUKDEpCisjZGVmaW5lIEJJVF9U RVNUX1RYQ1RSTF9UU1RfUExMQ0sJCUJJVCgwKQorCisvKiBDQlVTIEFkZHJlc3MsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1BBR0VfQ0JVU19BRERSCQkJMHgwMGY4CisKKy8q IEkyQyBEZXZpY2UgQWRkcmVzcyByZS1hc3NpZ25tZW50ICovCisjZGVmaW5lIFJFR19QQUdFMV9B RERSCQkJCTB4MDBmYworI2RlZmluZSBSRUdfUEFHRTJfQUREUgkJCQkweDAwZmQKKyNkZWZpbmUg UkVHX1BBR0UzX0FERFIJCQkJMHgwMGZlCisjZGVmaW5lIFJFR19IV19UUElfQUREUgkJCQkweDAw ZmYKKworLyogVVNCVCBDVFJMMCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf VVRTUlNUCQkJCTB4MDEwMAorI2RlZmluZSBCSVRfVVRTUlNUX0ZDX1NSU1QJCQlCSVQoNSkKKyNk ZWZpbmUgQklUX1VUU1JTVF9LRUVQRVJfU1JTVAkJCUJJVCg0KQorI2RlZmluZSBCSVRfVVRTUlNU X0hUWF9TUlNUCQkJQklUKDMpCisjZGVmaW5lIEJJVF9VVFNSU1RfVFJYX1NSU1QJCQlCSVQoMikK KyNkZWZpbmUgQklUX1VUU1JTVF9UVFhfU1JTVAkJCUJJVCgxKQorI2RlZmluZSBCSVRfVVRTUlNU X0hSWF9TUlNUCQkJQklUKDApCisKKy8qIEhTSUMgUlggQ29udHJvbDMsIGRlZmF1bHQgdmFsdWU6 IDB4MDcgKi8KKyNkZWZpbmUgUkVHX0hSWENUUkwzCQkJCTB4MDEwNAorI2RlZmluZSBNU0tfSFJY Q1RSTDNfSFJYX0FGRkNUUkwJCTB4ZjAKKyNkZWZpbmUgQklUX0hSWENUUkwzX0hSWF9PVVRfRU4J CQlCSVQoMikKKyNkZWZpbmUgQklUX0hSWENUUkwzX1NUQVRVU19FTgkJCUJJVCgxKQorI2RlZmlu ZSBCSVRfSFJYQ1RSTDNfSFJYX1NUQVlfUkVTRVQJCUJJVCgwKQorCisvKiBIU0lDIFJYIElOVCBS ZWdpc3RlcnMgKi8KKyNkZWZpbmUgUkVHX0hSWElOVEwJCQkJMHgwMTExCisjZGVmaW5lIFJFR19I UlhJTlRICQkJCTB4MDExMgorCisvKiBURE0gVFggTlVNQklUUywgZGVmYXVsdCB2YWx1ZTogMHgw YyAqLworI2RlZmluZSBSRUdfVFRYTlVNQgkJCQkweDAxMTYKKyNkZWZpbmUgTVNLX1RUWE5VTUJf VFRYX0FGRkNUUkxfM18wCQkweGYwCisjZGVmaW5lIEJJVF9UVFhOVU1CX1RUWF9DT00xX0FUX1NZ TkNfV0FJVAlCSVQoMykKKyNkZWZpbmUgTVNLX1RUWE5VTUJfVFRYX05VTUJQU18yXzAJCTB4MDcK KworLyogVERNIFRYIE5VTVNQSVNZTSwgZGVmYXVsdCB2YWx1ZTogMHgwNCAqLworI2RlZmluZSBS RUdfVFRYU1BJTlVNUwkJCQkweDAxMTcKKworLyogVERNIFRYIE5VTUhTSUNTWU0sIGRlZmF1bHQg dmFsdWU6IDB4MTQgKi8KKyNkZWZpbmUgUkVHX1RUWEhTSUNOVU1TCQkJCTB4MDExOAorCisvKiBU RE0gVFggTlVNVE9UU1lNLCBkZWZhdWx0IHZhbHVlOiAweDE4ICovCisjZGVmaW5lIFJFR19UVFhU T1ROVU1TCQkJCTB4MDExOQorCisvKiBURE0gVFggSU5UIExvdywgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLworI2RlZmluZSBSRUdfVFRYSU5UTAkJCQkweDAxMzYKKyNkZWZpbmUgQklUX1RUWElOVExf VFRYX0lOVFI3CQkJQklUKDcpCisjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRSNgkJCUJJVCg2 KQorI2RlZmluZSBCSVRfVFRYSU5UTF9UVFhfSU5UUjUJCQlCSVQoNSkKKyNkZWZpbmUgQklUX1RU WElOVExfVFRYX0lOVFI0CQkJQklUKDQpCisjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9JTlRSMwkJ CUJJVCgzKQorI2RlZmluZSBCSVRfVFRYSU5UTF9UVFhfSU5UUjIJCQlCSVQoMikKKyNkZWZpbmUg QklUX1RUWElOVExfVFRYX0lOVFIxCQkJQklUKDEpCisjZGVmaW5lIEJJVF9UVFhJTlRMX1RUWF9J TlRSMAkJCUJJVCgwKQorCisvKiBURE0gVFggSU5UIEhpZ2gsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX1RUWElOVEgJCQkJMHgwMTM3CisjZGVmaW5lIEJJVF9UVFhJTlRIX1RU WF9JTlRSMTUJCQlCSVQoNykKKyNkZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFIxNAkJCUJJVCg2 KQorI2RlZmluZSBCSVRfVFRYSU5USF9UVFhfSU5UUjEzCQkJQklUKDUpCisjZGVmaW5lIEJJVF9U VFhJTlRIX1RUWF9JTlRSMTIJCQlCSVQoNCkKKyNkZWZpbmUgQklUX1RUWElOVEhfVFRYX0lOVFIx MQkJCUJJVCgzKQorI2RlZmluZSBCSVRfVFRYSU5USF9UVFhfSU5UUjEwCQkJQklUKDIpCisjZGVm aW5lIEJJVF9UVFhJTlRIX1RUWF9JTlRSOQkJCUJJVCgxKQorI2RlZmluZSBCSVRfVFRYSU5USF9U VFhfSU5UUjgJCQlCSVQoMCkKKworLyogVERNIFJYIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4 MWMgKi8KKyNkZWZpbmUgUkVHX1RSWENUUkwJCQkJMHgwMTNiCisjZGVmaW5lIEJJVF9UUlhDVFJM X1RSWF9DTFJfV1ZBTExPVwkJQklUKDQpCisjZGVmaW5lIEJJVF9UUlhDVFJMX1RSWF9GUk9NX1NF X0NPQwkJQklUKDMpCisjZGVmaW5lIE1TS19UUlhDVFJMX1RSWF9OVU1CUFNfMl8wCQkweDA3CisK Ky8qIFRETSBSWCBOVU1TUElTWU0sIGRlZmF1bHQgdmFsdWU6IDB4MDQgKi8KKyNkZWZpbmUgUkVH X1RSWFNQSU5VTVMJCQkJMHgwMTNjCisKKy8qIFRETSBSWCBOVU1IU0lDU1lNLCBkZWZhdWx0IHZh bHVlOiAweDE0ICovCisjZGVmaW5lIFJFR19UUlhIU0lDTlVNUwkJCQkweDAxM2QKKworLyogVERN IFJYIE5VTVRPVFNZTSwgZGVmYXVsdCB2YWx1ZTogMHgxOCAqLworI2RlZmluZSBSRUdfVFJYVE9U TlVNUwkJCQkweDAxM2UKKworLyogVERNIFJYIFN0YXR1cyAybmQsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX1RSWFNUQTIJCQkJMHgwMTVjCisKKy8qIFRETSBSWCBJTlQgTG93 LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUlhJTlRMCQkJCTB4MDE2Mwor CisvKiBURE0gUlggSU5UIEhpZ2gsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVH X1RSWElOVEgJCQkJMHgwMTY0CisKKy8qIFRETSBSWCBJTlRNQVNLIEhpZ2gsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RSWElOVE1ICQkJCTB4MDE2NgorCisvKiBIU0lDIFRY IENSVEwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hUWENUUkwJCQkJMHgw MTY5CisjZGVmaW5lIEJJVF9IVFhDVFJMX0hUWF9BTExTQkVfU09QCQlCSVQoNCkKKyNkZWZpbmUg QklUX0hUWENUUkxfSFRYX1JHRElOVl9VU0IJCUJJVCgzKQorI2RlZmluZSBCSVRfSFRYQ1RSTF9I VFhfUlNQVERNX0JVU1kJCUJJVCgyKQorI2RlZmluZSBCSVRfSFRYQ1RSTF9IVFhfRFJWQ09OTjEJ CUJJVCgxKQorI2RlZmluZSBCSVRfSFRYQ1RSTF9IVFhfRFJWUlNUMQkJCUJJVCgwKQorCisvKiBI U0lDIFRYIElOVCBMb3csIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hUWElO VEwJCQkJMHgwMTdkCisKKy8qIEhTSUMgVFggSU5UIEhpZ2gsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX0hUWElOVEgJCQkJMHgwMTdlCisKKy8qIEhTSUMgS2VlcGVyLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19LRUVQRVIJCQkJMHgwMTgxCisjZGVmaW5l IE1TS19LRUVQRVJfS0VFUEVSX01PREVfMV8wCQkweDAzCisKKy8qIEhTSUMgRmxvdyBDb250cm9s IEdlbmVyYWwsIGRlZmF1bHQgdmFsdWU6IDB4MDIgKi8KKyNkZWZpbmUgUkVHX0ZDR0MJCQkJMHgw MTgzCisjZGVmaW5lIEJJVF9GQ0dDX0hTSUNfRkNfSE9TVE1PREUJCUJJVCgxKQorI2RlZmluZSBC SVRfRkNHQ19IU0lDX0ZDX0VOQUJMRQkJCUJJVCgwKQorCisvKiBIU0lDIEZsb3cgQ29udHJvbCBD VFIxMywgZGVmYXVsdCB2YWx1ZTogMHhmYyAqLworI2RlZmluZSBSRUdfRkNDVFIxMwkJCQkweDAx OTEKKworLyogSFNJQyBGbG93IENvbnRyb2wgQ1RSMTQsIGRlZmF1bHQgdmFsdWU6IDB4ZmYgKi8K KyNkZWZpbmUgUkVHX0ZDQ1RSMTQJCQkJMHgwMTkyCisKKy8qIEhTSUMgRmxvdyBDb250cm9sIENU UjE1LCBkZWZhdWx0IHZhbHVlOiAweGZmICovCisjZGVmaW5lIFJFR19GQ0NUUjE1CQkJCTB4MDE5 MworCisvKiBIU0lDIEZsb3cgQ29udHJvbCBDVFI1MCwgZGVmYXVsdCB2YWx1ZTogMHgwMyAqLwor I2RlZmluZSBSRUdfRkNDVFI1MAkJCQkweDAxYjYKKworLyogSFNJQyBGbG93IENvbnRyb2wgSU5U UjAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0ZDSU5UUjAJCQkJMHgwMWVj CisjZGVmaW5lIFJFR19GQ0lOVFIxCQkJCTB4MDFlZAorI2RlZmluZSBSRUdfRkNJTlRSMgkJCQkw eDAxZWUKKyNkZWZpbmUgUkVHX0ZDSU5UUjMJCQkJMHgwMWVmCisjZGVmaW5lIFJFR19GQ0lOVFI0 CQkJCTB4MDFmMAorI2RlZmluZSBSRUdfRkNJTlRSNQkJCQkweDAxZjEKKyNkZWZpbmUgUkVHX0ZD SU5UUjYJCQkJMHgwMWYyCisjZGVmaW5lIFJFR19GQ0lOVFI3CQkJCTB4MDFmMworCisvKiBURE0g TG93IExhdGVuY3ksIGRlZmF1bHQgdmFsdWU6IDB4MjAgKi8KKyNkZWZpbmUgUkVHX1RETUxMQ1RM CQkJCTB4MDFmYworI2RlZmluZSBNU0tfVERNTExDVExfVFJYX0xMX1NFTF9NQU5VQUwJCTB4YzAK KyNkZWZpbmUgTVNLX1RETUxMQ1RMX1RSWF9MTF9TRUxfTU9ERQkJMHgzMAorI2RlZmluZSBNU0tf VERNTExDVExfVFRYX0xMX1NFTF9NQU5VQUwJCTB4MGMKKyNkZWZpbmUgQklUX1RETUxMQ1RMX1RU WF9MTF9USUVfTE9XCQlCSVQoMSkKKyNkZWZpbmUgQklUX1RETUxMQ1RMX1RUWF9MTF9TRUxfTU9E RQkJQklUKDApCisKKy8qIFRNRFMgMCBDbG9jayBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDEw ICovCisjZGVmaW5lIFJFR19UTURTMF9DQ1RSTDEJCQkweDAyMTAKKyNkZWZpbmUgTVNLX1RNRFMw X0NDVFJMMV9URVNUX1NFTAkJMHhjMAorI2RlZmluZSBNU0tfVE1EUzBfQ0NUUkwxX0NMSzFYX0NU TAkJMHgzMAorCisvKiBUTURTIENsb2NrIEVuYWJsZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwor I2RlZmluZSBSRUdfVE1EU19DTEtfRU4JCQkJMHgwMjExCisjZGVmaW5lIEJJVF9UTURTX0NMS19F Tl9DTEtfRU4JCQlCSVQoMCkKKworLyogVE1EUyBDaGFubmVsIEVuYWJsZSwgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVE1EU19DSF9FTgkJCQkweDAyMTIKKyNkZWZpbmUgQklU X1RNRFNfQ0hfRU5fQ0gwX0VOCQkJQklUKDQpCisjZGVmaW5lIEJJVF9UTURTX0NIX0VOX0NIMTJf RU4JCQlCSVQoMCkKKworLyogQkdSX0JJQVMsIGRlZmF1bHQgdmFsdWU6IDB4MDcgKi8KKyNkZWZp bmUgUkVHX0JHUl9CSUFTCQkJCTB4MDIxNQorI2RlZmluZSBCSVRfQkdSX0JJQVNfQkdSX0VOCQkJ QklUKDcpCisjZGVmaW5lIE1TS19CR1JfQklBU19CSUFTX0JHUl9ECQkJMHgwZgorCisvKiBUTURT IDAgRGlnaXRhbCBJMkMgQlcsIGRlZmF1bHQgdmFsdWU6IDB4MGEgKi8KKyNkZWZpbmUgUkVHX0FM SUNFMF9CV19JMkMJCQkweDAyMzEKKworLyogVE1EUyAwIERpZ2l0YWwgWm9uZSBDb250cm9sLCBk ZWZhdWx0IHZhbHVlOiAweGUwICovCisjZGVmaW5lIFJFR19BTElDRTBfWk9ORV9DVFJMCQkJMHgw MjRjCisjZGVmaW5lIEJJVF9BTElDRTBfWk9ORV9DVFJMX0lDUlNUX04JCUJJVCg3KQorI2RlZmlu ZSBCSVRfQUxJQ0UwX1pPTkVfQ1RSTF9VU0VfSU5UX0RJVjIwCUJJVCg2KQorI2RlZmluZSBNU0tf QUxJQ0UwX1pPTkVfQ1RSTF9TWk9ORV9JMkMJCTB4MzAKKyNkZWZpbmUgTVNLX0FMSUNFMF9aT05F X0NUUkxfWk9ORV9DVFJMCQkweDBmCisKKy8qIFRNRFMgMCBEaWdpdGFsIFBMTCBNb2RlIENvbnRy b2wsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0FMSUNFMF9NT0RFX0NUUkwJ CQkweDAyNGQKKyNkZWZpbmUgTVNLX0FMSUNFMF9NT0RFX0NUUkxfUExMX01PREVfSTJDCTB4MGMK KyNkZWZpbmUgTVNLX0FMSUNFMF9NT0RFX0NUUkxfRElWMjBfQ1RSTAkJMHgwMworCisvKiBNSEwg VHggQ29udHJvbCA2dGgsIGRlZmF1bHQgdmFsdWU6IDB4YTAgKi8KKyNkZWZpbmUgUkVHX01ITFRY X0NUTDYJCQkJMHgwMjg1CisjZGVmaW5lIE1TS19NSExUWF9DVEw2X0VNSV9TRUwJCQkweGUwCisj ZGVmaW5lIE1TS19NSExUWF9DVEw2X1RYX0NMS19TSEFQRV85XzgJCTB4MDMKKworLyogUGFja2V0 IEZpbHRlcjAsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1BLVF9GSUxURVJf MAkJCTB4MDI5MAorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfQ0VBX0dBTVVUX1BLVAlC SVQoNykKKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMF9EUk9QX0NFQV9DUF9QS1QJQklUKDYpCisj ZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9NUEVHX1BLVAkJQklUKDUpCisjZGVmaW5lIEJJ VF9QS1RfRklMVEVSXzBfRFJPUF9TUElGX1BLVAkJQklUKDQpCisjZGVmaW5lIEJJVF9QS1RfRklM VEVSXzBfRFJPUF9BSUZfUEtUCQlCSVQoMykKKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMF9EUk9Q X0FWSV9QS1QJCUJJVCgyKQorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8wX0RST1BfQ1RTX1BLVAkJ QklUKDEpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzBfRFJPUF9HQ1BfUEtUCQlCSVQoMCkKKwor LyogUGFja2V0IEZpbHRlcjEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1BL VF9GSUxURVJfMQkJCTB4MDI5MQorI2RlZmluZSBCSVRfUEtUX0ZJTFRFUl8xX1ZTSV9PVkVSUklE RV9ESVMJQklUKDcpCisjZGVmaW5lIEJJVF9QS1RfRklMVEVSXzFfQVZJX09WRVJSSURFX0RJUwlC SVQoNikKKyNkZWZpbmUgQklUX1BLVF9GSUxURVJfMV9EUk9QX0FVRElPX1BLVAkJQklUKDMpCisj ZGVmaW5lIEJJVF9QS1RfRklMVEVSXzFfRFJPUF9HRU4yX1BLVAkJQklUKDIpCisjZGVmaW5lIEJJ VF9QS1RfRklMVEVSXzFfRFJPUF9HRU5fUEtUCQlCSVQoMSkKKyNkZWZpbmUgQklUX1BLVF9GSUxU RVJfMV9EUk9QX1ZTSUZfUEtUCQlCSVQoMCkKKworLyogVE1EUyBDbG9jayBTdGF0dXMsIGRlZmF1 bHQgdmFsdWU6IDB4MTAgKi8KKyNkZWZpbmUgUkVHX1RNRFNfQ1NUQVRfUDMJCQkweDAyYTAKKyNk ZWZpbmUgQklUX1RNRFNfQ1NUQVRfUDNfUlhfSERNSV9DUF9DTFJfTVVURQlCSVQoNykKKyNkZWZp bmUgQklUX1RNRFNfQ1NUQVRfUDNfUlhfSERNSV9DUF9TRVRfTVVURQlCSVQoNikKKyNkZWZpbmUg QklUX1RNRFNfQ1NUQVRfUDNfUlhfSERNSV9DUF9ORVdfQ1AJQklUKDUpCisjZGVmaW5lIEJJVF9U TURTX0NTVEFUX1AzX0NMUl9BVkkJCUJJVCgzKQorI2RlZmluZSBCSVRfVE1EU19DU1RBVF9QM19T Q0RUX0NMUl9BVklfRElTCUJJVCgyKQorI2RlZmluZSBCSVRfVE1EU19DU1RBVF9QM19TQ0RUCQkJ QklUKDEpCisjZGVmaW5lIEJJVF9UTURTX0NTVEFUX1AzX0NLRFQJCQlCSVQoMCkKKworLyogUlhf SERNSSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDEwICovCisjZGVmaW5lIFJFR19SWF9IRE1J X0NUUkwwCQkJMHgwMmExCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwwX0JZUF9EVklGSUxUX1NZ TkMJQklUKDUpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwwX0hETUlfTU9ERV9FTl9JVFNFTEZf Q0xSIEJJVCg0KQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9IRE1JX01PREVfU1dfVkFMVUUJ QklUKDMpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwwX0hETUlfTU9ERV9PVkVSV1JJVEUJQklU KDIpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwwX1JYX0hETUlfSERNSV9NT0RFX0VOCUJJVCgx KQorI2RlZmluZSBCSVRfUlhfSERNSV9DVFJMMF9SWF9IRE1JX0hETUlfTU9ERQlCSVQoMCkKKwor LyogUlhfSERNSSBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDM4ICovCisjZGVmaW5lIFJFR19S WF9IRE1JX0NUUkwyCQkJMHgwMmEzCisjZGVmaW5lIE1TS19SWF9IRE1JX0NUUkwyX0lETEVfQ05U CQkweGYwCisjZGVmaW5lIFZBTF9SWF9IRE1JX0NUUkwyX0lETEVfQ05UKG4pCQkoKG4pIDw8IDQp CisjZGVmaW5lIEJJVF9SWF9IRE1JX0NUUkwyX1VTRV9BVl9NVVRFCQlCSVQoMykKKyNkZWZpbmUg QklUX1JYX0hETUlfQ1RSTDJfVlNJX01PTl9TRUxfVlNJCUJJVCgwKQorCisvKiBSWF9IRE1JIENv bnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MGYgKi8KKyNkZWZpbmUgUkVHX1JYX0hETUlfQ1RSTDMJ CQkweDAyYTQKKyNkZWZpbmUgTVNLX1JYX0hETUlfQ1RSTDNfUFBfTU9ERV9DTEtfRU4JMHgwZgor CisvKiByeF9oZG1pIENsZWFyIEJ1ZmZlciwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfUlhfSERNSV9DTFJfQlVGRkVSCQkJMHgwMmFjCisjZGVmaW5lIE1TS19SWF9IRE1JX0NM Ul9CVUZGRVJfQUlGNFZTSV9DTVAJMHhjMAorI2RlZmluZSBCSVRfUlhfSERNSV9DTFJfQlVGRkVS X1VTRV9BSUY0VlNJCUJJVCg1KQorI2RlZmluZSBCSVRfUlhfSERNSV9DTFJfQlVGRkVSX1ZTSV9D TFJfV19BVkkJQklUKDQpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NMUl9CVUZGRVJfVlNJX0lFRUVf SURfQ0hLX0VOIEJJVCgzKQorI2RlZmluZSBCSVRfUlhfSERNSV9DTFJfQlVGRkVSX1NXQVBfVlNJ X0lFRUVfSUQJQklUKDIpCisjZGVmaW5lIEJJVF9SWF9IRE1JX0NMUl9CVUZGRVJfQUlGX0NMUl9F TglCSVQoMSkKKyNkZWZpbmUgQklUX1JYX0hETUlfQ0xSX0JVRkZFUl9WU0lfQ0xSX0VOCUJJVCgw KQorCisvKiBSWF9IRE1JIFZTSSBIZWFkZXIxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19SWF9IRE1JX01PTl9QS1RfSEVBREVSMQkJMHgwMmI4CisKKy8qIFJYX0hETUkgVlNJ IE1ITCBNb25pdG9yLCBkZWZhdWx0IHZhbHVlOiAweDNjICovCisjZGVmaW5lIFJFR19SWF9IRE1J X1ZTSUZfTUhMX01PTgkJMHgwMmQ3CisKKyNkZWZpbmUgTVNLX1JYX0hETUlfVlNJRl9NSExfTU9O X1JYX0hETUlfTUhMXzNEX0ZPUk1BVCAweDNjCisjZGVmaW5lIE1TS19SWF9IRE1JX1ZTSUZfTUhM X01PTl9SWF9IRE1JX01ITF9WSURfRk9STUFUIDB4MDMKKworLyogSW50ZXJydXB0IFNvdXJjZSA5 LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19JTlRSOQkJCQkweDAyZTAKKyNk ZWZpbmUgQklUX0lOVFI5X0VESURfRVJST1IJCQlCSVQoNikKKyNkZWZpbmUgQklUX0lOVFI5X0VE SURfRE9ORQkJCUJJVCg1KQorI2RlZmluZSBCSVRfSU5UUjlfREVWQ0FQX0RPTkUJCQlCSVQoNCkK KworLyogSW50ZXJydXB0IDkgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfSU5UUjlfTUFTSwkJCQkweDAyZTEKKworLyogVFBJIENCVVMgU3RhcnQsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9DQlVTX1NUQVJUCQkJMHgwMmUyCisjZGVmaW5l IEJJVF9UUElfQ0JVU19TVEFSVF9SQ1BfUkVRX1NUQVJUCUJJVCg3KQorI2RlZmluZSBCSVRfVFBJ X0NCVVNfU1RBUlRfUkNQS19SRVBMWV9TVEFSVAlCSVQoNikKKyNkZWZpbmUgQklUX1RQSV9DQlVT X1NUQVJUX1JDUEVfUkVQTFlfU1RBUlQJQklUKDUpCisjZGVmaW5lIEJJVF9UUElfQ0JVU19TVEFS VF9QVVRfTElOS19NT0RFX1NUQVJUCUJJVCg0KQorI2RlZmluZSBCSVRfVFBJX0NCVVNfU1RBUlRf UFVUX0RDQVBDSEdfU1RBUlQJQklUKDMpCisjZGVmaW5lIEJJVF9UUElfQ0JVU19TVEFSVF9QVVRf RENBUFJEWV9TVEFSVAlCSVQoMikKKyNkZWZpbmUgQklUX1RQSV9DQlVTX1NUQVJUX0dFVF9FRElE X1NUQVJUXzAJQklUKDEpCisjZGVmaW5lIEJJVF9UUElfQ0JVU19TVEFSVF9HRVRfREVWQ0FQX1NU QVJUCUJJVCgwKQorCisvKiBFRElEIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MTAgKi8KKyNk ZWZpbmUgUkVHX0VESURfQ1RSTAkJCQkweDAyZTMKKyNkZWZpbmUgQklUX0VESURfQ1RSTF9FRElE X1BSSU1FX1ZBTElECQlCSVQoNykKKyNkZWZpbmUgQklUX0VESURfQ1RSTF9YREVWQ0FQX0VOCQlC SVQoNikKKyNkZWZpbmUgQklUX0VESURfQ1RSTF9ERVZDQVBfU0VMRUNUX0RFVkNBUAlCSVQoNSkK KyNkZWZpbmUgQklUX0VESURfQ1RSTF9FRElEX0ZJRk9fQUREUl9BVVRPCUJJVCg0KQorI2RlZmlu ZSBCSVRfRURJRF9DVFJMX0VESURfRklGT19BQ0NFU1NfQUxXQVlTX0VOIEJJVCgzKQorI2RlZmlu ZSBCSVRfRURJRF9DVFJMX0VESURfRklGT19CTE9DS19TRUwJQklUKDIpCisjZGVmaW5lIEJJVF9F RElEX0NUUkxfSU5WQUxJRF9CS1NWCQlCSVQoMSkKKyNkZWZpbmUgQklUX0VESURfQ1RSTF9FRElE X01PREVfRU4JCUJJVCgwKQorCisvKiBFRElEIEZJRk8gQWRkciwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLworI2RlZmluZSBSRUdfRURJRF9GSUZPX0FERFIJCQkweDAyZTkKKworLyogRURJRCBGSUZP IFdyaXRlIERhdGEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0VESURfRklG T19XUl9EQVRBCQkJMHgwMmVhCisKKy8qIEVESUQvREVWQ0FQIEZJRk8gSW50ZXJuYWwgQWRkciwg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRURJRF9GSUZPX0FERFJfTU9OCQkJ MHgwMmViCisKKy8qIEVESUQgRklGTyBSZWFkIERhdGEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX0VESURfRklGT19SRF9EQVRBCQkJMHgwMmVjCisKKy8qIEVESUQgRERDIFNl Z21lbnQgUG9pbnRlciwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRURJRF9T VEFSVF9FWFQJCQkweDAyZWQKKworLyogVFggSVAgQklTVCBDTlRMIGFuZCBTdGF0dXMsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfQ05UTFNUQQkJCTB4MDJm MgorI2RlZmluZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RBX1RYQklTVF9RVUFSVEVSX0NMS19TRUwg QklUKDYpCisjZGVmaW5lIEJJVF9UWF9JUF9CSVNUX0NOVExTVEFfVFhCSVNUX0RPTkUJQklUKDUp CisjZGVmaW5lIEJJVF9UWF9JUF9CSVNUX0NOVExTVEFfVFhCSVNUX09OCUJJVCg0KQorI2RlZmlu ZSBCSVRfVFhfSVBfQklTVF9DTlRMU1RBX1RYQklTVF9SVU4JQklUKDMpCisjZGVmaW5lIEJJVF9U WF9JUF9CSVNUX0NOVExTVEFfVFhDTEtfSEFMRl9TRUwJQklUKDIpCisjZGVmaW5lIEJJVF9UWF9J UF9CSVNUX0NOVExTVEFfVFhCSVNUX0VOCUJJVCgxKQorI2RlZmluZSBCSVRfVFhfSVBfQklTVF9D TlRMU1RBX1RYQklTVF9TRUwJQklUKDApCisKKy8qIFRYIElQIEJJU1QgSU5TVCBMT1csIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfSU5TVF9MT1cJCQkweDAy ZjMKKyNkZWZpbmUgUkVHX1RYX0lQX0JJU1RfSU5TVF9ISUdICQkweDAyZjQKKworLyogVFggSVAg QklTVCBQQVRURVJOIExPVywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFhf SVBfQklTVF9QQVRfTE9XCQkJMHgwMmY1CisjZGVmaW5lIFJFR19UWF9JUF9CSVNUX1BBVF9ISUdI CQkJMHgwMmY2CisKKy8qIFRYIElQIEJJU1QgQ09ORklHVVJFIExPVywgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfVFhfSVBfQklTVF9DT05GX0xPVwkJCTB4MDJmNworI2RlZmlu ZSBSRUdfVFhfSVBfQklTVF9DT05GX0hJR0gJCTB4MDJmOAorCisvKiBFLU1TQyBHZW5lcmFsIENv bnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4ODAgKi8KKyNkZWZpbmUgUkVHX0dFTkNUTAkJCQkweDAz MDAKKyNkZWZpbmUgQklUX0dFTkNUTF9TUEVDX1RSQU5TX0RJUwkJQklUKDcpCisjZGVmaW5lIEJJ VF9HRU5DVExfRElTX1hNSVRfRVJSX1NUQVRFCQlCSVQoNikKKyNkZWZpbmUgQklUX0dFTkNUTF9T UElfTUlTT19FREdFCQlCSVQoNSkKKyNkZWZpbmUgQklUX0dFTkNUTF9TUElfTU9TSV9FREdFCQlC SVQoNCkKKyNkZWZpbmUgQklUX0dFTkNUTF9DTFJfRU1TQ19SRklGTwkJQklUKDMpCisjZGVmaW5l IEJJVF9HRU5DVExfQ0xSX0VNU0NfWEZJRk8JCUJJVCgyKQorI2RlZmluZSBCSVRfR0VOQ1RMX1NU QVJUX1RSQUlOX1NFUQkJQklUKDEpCisjZGVmaW5lIEJJVF9HRU5DVExfRU1TQ19FTgkJCUJJVCgw KQorCisvKiBFLU1TQyBDb21tYSBFcnJvckNOVCwgZGVmYXVsdCB2YWx1ZTogMHgwMyAqLworI2Rl ZmluZSBSRUdfQ09NTUVDTlQJCQkJMHgwMzA1CisjZGVmaW5lIEJJVF9DT01NRUNOVF9JMkNfVE9f RU1TQ19FTgkJQklUKDcpCisjZGVmaW5lIE1TS19DT01NRUNOVF9DT01NQV9DSEFSX0VSUl9DTlQJ CTB4MGYKKworLyogRS1NU0MgUkZJRk8gQnl0ZUNudCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLwor I2RlZmluZSBSRUdfRU1TQ1JGSUZPQkNOVEwJCQkweDAzMWEKKyNkZWZpbmUgUkVHX0VNU0NSRklG T0JDTlRICQkJMHgwMzFiCisKKy8qIFNQSSBCdXJzdCBDbnQgU3RhdHVzLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19TUElCVVJTVENOVAkJCQkweDAzMWUKKworLyogU1BJIEJ1 cnN0IFN0YXR1cyBhbmQgU1dSU1QsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVH X1NQSUJVUlNUU1RBVAkJCTB4MDMyMgorI2RlZmluZSBCSVRfU1BJQlVSU1RTVEFUX1NQSV9IRENQ UlNUCQlCSVQoNykKKyNkZWZpbmUgQklUX1NQSUJVUlNUU1RBVF9TUElfQ0JVU1JTVAkJQklUKDYp CisjZGVmaW5lIEJJVF9TUElCVVJTVFNUQVRfU1BJX1NSU1QJCUJJVCg1KQorI2RlZmluZSBCSVRf U1BJQlVSU1RTVEFUX0VNU0NfTk9STUFMX01PREUJQklUKDApCisKKy8qIEUtTVNDIDFzdCBJbnRl cnJ1cHQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0VNU0NJTlRSCQkJCTB4 MDMyMworI2RlZmluZSBCSVRfRU1TQ0lOVFJfRU1TQ19YRklGT19FTVBUWQkJQklUKDcpCisjZGVm aW5lIEJJVF9FTVNDSU5UUl9FTVNDX1hNSVRfQUNLX1RPVVQJCUJJVCg2KQorI2RlZmluZSBCSVRf RU1TQ0lOVFJfRU1TQ19SRklGT19SRUFEX0VSUglCSVQoNSkKKyNkZWZpbmUgQklUX0VNU0NJTlRS X0VNU0NfWEZJRk9fV1JJVEVfRVJSCUJJVCg0KQorI2RlZmluZSBCSVRfRU1TQ0lOVFJfRU1TQ19D T01NQV9DSEFSX0VSUglCSVQoMykKKyNkZWZpbmUgQklUX0VNU0NJTlRSX0VNU0NfWE1JVF9ET05F CQlCSVQoMikKKyNkZWZpbmUgQklUX0VNU0NJTlRSX0VNU0NfWE1JVF9HTlRfVE9VVAkJQklUKDEp CisjZGVmaW5lIEJJVF9FTVNDSU5UUl9TUElfRFZMRAkJQklUKDApCisKKy8qIEUtTVNDIEludGVy cnVwdCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19FTVNDSU5UUk1B U0sJCQkweDAzMjQKKworLyogSTJDIEUtTVNDIFhNSVQgRklGTyBXcml0ZSBQb3J0LCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19FTVNDX1hNSVRfV1JJVEVfUE9SVAkJMHgwMzJh CisKKy8qIEkyQyBFLU1TQyBSQ1YgRklGTyBXcml0ZSBQb3J0LCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19FTVNDX1JDVl9SRUFEX1BPUlQJCQkweDAzMmIKKworLyogRS1NU0Mg Mm5kIEludGVycnVwdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRU1TQ0lO VFIxCQkJCTB4MDMyYworI2RlZmluZSBCSVRfRU1TQ0lOVFIxX0VNU0NfVFJBSU5JTkdfQ09NTUFf RVJSCUJJVCgwKQorCisvKiBFLU1TQyBJbnRlcnJ1cHQgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLworI2RlZmluZSBSRUdfRU1TQ0lOVFJNQVNLMQkJCTB4MDMyZAorI2RlZmluZSBCSVRfRU1T Q0lOVFJNQVNLMV9FTVNDX0lOVFJNQVNLMV8wCUJJVCgwKQorCisvKiBNSEwgVG9wIEN0bCwgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhMX1RPUF9DVEwJCQkJMHgwMzMwCisj ZGVmaW5lIEJJVF9NSExfVE9QX0NUTF9NSEwzX0RPQ19TRUwJCUJJVCg3KQorI2RlZmluZSBCSVRf TUhMX1RPUF9DVExfTUhMX1BQX1NFTAkJQklUKDYpCisjZGVmaW5lIE1TS19NSExfVE9QX0NUTF9J Rl9USU1JTkdfQ1RMCQkweDAzCisKKy8qIE1ITCBEYXRhUGF0aCAxc3QgQ3RsLCBkZWZhdWx0IHZh bHVlOiAweGJjICovCisjZGVmaW5lIFJFR19NSExfRFBfQ1RMMAkJCQkweDAzMzEKKyNkZWZpbmUg QklUX01ITF9EUF9DVEwwX0RQX09FCQkJQklUKDcpCisjZGVmaW5lIEJJVF9NSExfRFBfQ1RMMF9U WF9PRV9PVlIJCUJJVCg2KQorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDBfVFhfT0UJCQkweDNmCisK Ky8qIE1ITCBEYXRhUGF0aCAybmQgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweGJiICovCisjZGVmaW5l IFJFR19NSExfRFBfQ1RMMQkJCQkweDAzMzIKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwxX0NLX1NX SU5HX0NUTAkJMHhmMAorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDFfRFRfU1dJTkdfQ1RMCQkweDBm CisKKy8qIE1ITCBEYXRhUGF0aCAzcmQgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDJmICovCisjZGVm aW5lIFJFR19NSExfRFBfQ1RMMgkJCQkweDAzMzMKKyNkZWZpbmUgQklUX01ITF9EUF9DVEwyX0NM S19CWVBBU1NfRU4JCUJJVCg3KQorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDJfREFNUF9URVJNX1NF TAkJMHgzMAorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDJfQ0tfVEVSTV9TRUwJCTB4MGMKKyNkZWZp bmUgTVNLX01ITF9EUF9DVEwyX0RUX1RFUk1fU0VMCQkweDAzCisKKy8qIE1ITCBEYXRhUGF0aCA0 dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDQ4ICovCisjZGVmaW5lIFJFR19NSExfRFBfQ1RMMwkJ CQkweDAzMzQKKyNkZWZpbmUgTVNLX01ITF9EUF9DVEwzX0RUX0RSVl9WTkJDX0NUTAkJMHhmMAor I2RlZmluZSBNU0tfTUhMX0RQX0NUTDNfRFRfRFJWX1ZOQl9DVEwJCTB4MGYKKworLyogTUhMIERh dGFQYXRoIDV0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4NDggKi8KKyNkZWZpbmUgUkVHX01ITF9E UF9DVEw0CQkJCTB4MDMzNQorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDRfQ0tfRFJWX1ZOQkNfQ1RM CQkweGYwCisjZGVmaW5lIE1TS19NSExfRFBfQ1RMNF9DS19EUlZfVk5CX0NUTAkJMHgwZgorCisv KiBNSEwgRGF0YVBhdGggNnRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgzZiAqLworI2RlZmluZSBS RUdfTUhMX0RQX0NUTDUJCQkJMHgwMzM2CisjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNV9SU0VOX0VO X09WUgkJQklUKDcpCisjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNV9SU0VOX0VOCQkJQklUKDYpCisj ZGVmaW5lIE1TS19NSExfRFBfQ1RMNV9EQU1QX1RFUk1fVkdTX0NUTAkweDMwCisjZGVmaW5lIE1T S19NSExfRFBfQ1RMNV9DS19URVJNX1ZHU19DVEwJCTB4MGMKKyNkZWZpbmUgTVNLX01ITF9EUF9D VEw1X0RUX1RFUk1fVkdTX0NUTAkJMHgwMworCisvKiBNSEwgUExMIDFzdCBDdGwsIGRlZmF1bHQg dmFsdWU6IDB4MDUgKi8KKyNkZWZpbmUgUkVHX01ITF9QTExfQ1RMMAkJCTB4MDMzNworI2RlZmlu ZSBCSVRfTUhMX1BMTF9DVEwwX0FVRF9DTEtfRU4JCUJJVCg3KQorCisjZGVmaW5lIE1TS19NSExf UExMX0NUTDBfQVVEX0NMS19SQVRJTwkJMHg3MAorI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0FV RF9DTEtfUkFUSU9fNV8xMAkweDcwCisjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19S QVRJT181XzYJMHg2MAorI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0FVRF9DTEtfUkFUSU9fNV80 CTB4NTAKKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9BVURfQ0xLX1JBVElPXzVfMgkweDQwCisj ZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfQVVEX0NMS19SQVRJT181XzUJMHgzMAorI2RlZmluZSBW QUxfTUhMX1BMTF9DVEwwX0FVRF9DTEtfUkFUSU9fNV8zCTB4MjAKKyNkZWZpbmUgVkFMX01ITF9Q TExfQ1RMMF9BVURfQ0xLX1JBVElPXzVfMl9QUklNRSAweDEwCisjZGVmaW5lIFZBTF9NSExfUExM X0NUTDBfQVVEX0NMS19SQVRJT181XzEJMHgwMAorCisjZGVmaW5lIE1TS19NSExfUExMX0NUTDBf SERNSV9DTEtfUkFUSU8JCTB4MGMKKyNkZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19S QVRJT180WAkweDBjCisjZGVmaW5lIFZBTF9NSExfUExMX0NUTDBfSERNSV9DTEtfUkFUSU9fMlgJ MHgwOAorI2RlZmluZSBWQUxfTUhMX1BMTF9DVEwwX0hETUlfQ0xLX1JBVElPXzFYCTB4MDQKKyNk ZWZpbmUgVkFMX01ITF9QTExfQ1RMMF9IRE1JX0NMS19SQVRJT19IQUxGX1gJMHgwMAorCisjZGVm aW5lIEJJVF9NSExfUExMX0NUTDBfQ1JZU1RBTF9DTEtfU0VMCUJJVCgxKQorI2RlZmluZSBCSVRf TUhMX1BMTF9DVEwwX1pPTkVfTUFTS19PRQkJQklUKDApCisKKy8qIE1ITCBQTEwgM3JkIEN0bCwg ZGVmYXVsdCB2YWx1ZTogMHg4MCAqLworI2RlZmluZSBSRUdfTUhMX1BMTF9DVEwyCQkJMHgwMzM5 CisjZGVmaW5lIEJJVF9NSExfUExMX0NUTDJfQ0xLREVURUNUX0VOCQlCSVQoNykKKyNkZWZpbmUg QklUX01ITF9QTExfQ1RMMl9NRUFTX0ZWQ08JCUJJVCgzKQorI2RlZmluZSBCSVRfTUhMX1BMTF9D VEwyX1BMTF9GQVNUX0xPQ0sJCUJJVCgyKQorI2RlZmluZSBNU0tfTUhMX1BMTF9DVEwyX1BMTF9M Rl9TRUwJCTB4MDMKKworLyogTUhMIENCVVMgMXN0IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgxMiAq LworI2RlZmluZSBSRUdfTUhMX0NCVVNfQ1RMMAkJCTB4MDM0MAorI2RlZmluZSBCSVRfTUhMX0NC VVNfQ1RMMF9DQlVTX1JHTkRfVEVTVF9NT0RFCUJJVCg3KQorCisjZGVmaW5lIE1TS19NSExfQ0JV U19DVEwwX0NCVVNfUkdORF9WVEhfQ1RMCTB4MzAKKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDBf Q0JVU19SR05EX1ZCSUFTXzczNAkweDAwCisjZGVmaW5lIFZBTF9NSExfQ0JVU19DVEwwX0NCVVNf UkdORF9WQklBU183NDcJMHgxMAorI2RlZmluZSBWQUxfTUhMX0NCVVNfQ1RMMF9DQlVTX1JHTkRf VkJJQVNfNzQwCTB4MjAKKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDBfQ0JVU19SR05EX1ZCSUFT Xzc1NAkweDMwCisKKyNkZWZpbmUgTVNLX01ITF9DQlVTX0NUTDBfQ0JVU19SRVNfVEVTVF9TRUwJ MHgwYworCisjZGVmaW5lIE1TS19NSExfQ0JVU19DVEwwX0NCVVNfRFJWX1NFTAkJMHgwMworI2Rl ZmluZSBWQUxfTUhMX0NCVVNfQ1RMMF9DQlVTX0RSVl9TRUxfV0VBS0VTVAkweDAwCisjZGVmaW5l IFZBTF9NSExfQ0JVU19DVEwwX0NCVVNfRFJWX1NFTF9XRUFLCTB4MDEKKyNkZWZpbmUgVkFMX01I TF9DQlVTX0NUTDBfQ0JVU19EUlZfU0VMX1NUUk9ORwkweDAyCisjZGVmaW5lIFZBTF9NSExfQ0JV U19DVEwwX0NCVVNfRFJWX1NFTF9TVFJPTkdFU1QgMHgwMworCisvKiBNSEwgQ0JVUyAybmQgQ3Rs LCBkZWZhdWx0IHZhbHVlOiAweDAzICovCisjZGVmaW5lIFJFR19NSExfQ0JVU19DVEwxCQkJMHgw MzQxCisjZGVmaW5lIE1TS19NSExfQ0JVU19DVEwxX0NCVVNfUkdORF9SRVNfQ1RMCTB4MDcKKyNk ZWZpbmUgVkFMX01ITF9DQlVTX0NUTDFfMDg4OF9PSE0JCTB4MDAKKyNkZWZpbmUgVkFMX01ITF9D QlVTX0NUTDFfMTExNV9PSE0JCTB4MDQKKyNkZWZpbmUgVkFMX01ITF9DQlVTX0NUTDFfMTM3OF9P SE0JCTB4MDcKKworLyogTUhMIENvQyAxc3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweGMzICovCisj ZGVmaW5lIFJFR19NSExfQ09DX0NUTDAJCQkweDAzNDIKKyNkZWZpbmUgQklUX01ITF9DT0NfQ1RM MF9DT0NfQklBU19FTgkJQklUKDcpCisjZGVmaW5lIE1TS19NSExfQ09DX0NUTDBfQ09DX0JJQVNf Q1RMCQkweDcwCisjZGVmaW5lIE1TS19NSExfQ09DX0NUTDBfQ09DX1RFUk1fQ1RMCQkweDA3CisK Ky8qIE1ITCBDb0MgMm5kIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHg4NyAqLworI2RlZmluZSBSRUdf TUhMX0NPQ19DVEwxCQkJMHgwMzQzCisjZGVmaW5lIEJJVF9NSExfQ09DX0NUTDFfQ09DX0VOCQkJ QklUKDcpCisjZGVmaW5lIE1TS19NSExfQ09DX0NUTDFfQ09DX0RSVl9DVEwJCTB4M2YKKworLyog TUhMIENvQyA0dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NSExf Q09DX0NUTDMJCQkweDAzNDUKKyNkZWZpbmUgQklUX01ITF9DT0NfQ1RMM19DT0NfQUVDSE9fRU4J CUJJVCgwKQorCisvKiBNSEwgQ29DIDV0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MjggKi8KKyNk ZWZpbmUgUkVHX01ITF9DT0NfQ1RMNAkJCTB4MDM0NgorI2RlZmluZSBNU0tfTUhMX0NPQ19DVEw0 X0NPQ19JRl9DVEwJCTB4ZjAKKyNkZWZpbmUgTVNLX01ITF9DT0NfQ1RMNF9DT0NfU0xFV19DVEwJ CTB4MGYKKworLyogTUhMIENvQyA2dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDBkICovCisjZGVm aW5lIFJFR19NSExfQ09DX0NUTDUJCQkweDAzNDcKKworLyogTUhMIERvQyAxc3QgQ3RsLCBkZWZh dWx0IHZhbHVlOiAweDE4ICovCisjZGVmaW5lIFJFR19NSExfRE9DX0NUTDAJCQkweDAzNDkKKyNk ZWZpbmUgQklUX01ITF9ET0NfQ1RMMF9ET0NfUlhEQVRBX0VOCQlCSVQoNykKKyNkZWZpbmUgTVNL X01ITF9ET0NfQ1RMMF9ET0NfRE1fVEVSTQkJMHgzOAorI2RlZmluZSBNU0tfTUhMX0RPQ19DVEww X0RPQ19PUE1PREUJCTB4MDYKKyNkZWZpbmUgQklUX01ITF9ET0NfQ1RMMF9ET0NfUlhCSUFTX0VO CQlCSVQoMCkKKworLyogTUhMIERhdGFQYXRoIDd0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MmEg Ki8KKyNkZWZpbmUgUkVHX01ITF9EUF9DVEw2CQkJCTB4MDM1MAorI2RlZmluZSBCSVRfTUhMX0RQ X0NUTDZfRFBfVEFQMl9TR04JCUJJVCg1KQorI2RlZmluZSBCSVRfTUhMX0RQX0NUTDZfRFBfVEFQ Ml9FTgkJQklUKDQpCisjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNl9EUF9UQVAxX1NHTgkJQklUKDMp CisjZGVmaW5lIEJJVF9NSExfRFBfQ1RMNl9EUF9UQVAxX0VOCQlCSVQoMikKKyNkZWZpbmUgQklU X01ITF9EUF9DVEw2X0RUX1BSRURSVl9GRUVEQ0FQX0VOCUJJVCgxKQorI2RlZmluZSBCSVRfTUhM X0RQX0NUTDZfRFBfUFJFX1BPU1RfU0VMCQlCSVQoMCkKKworLyogTUhMIERhdGFQYXRoIDh0aCBD dGwsIGRlZmF1bHQgdmFsdWU6IDB4MDYgKi8KKyNkZWZpbmUgUkVHX01ITF9EUF9DVEw3CQkJCTB4 MDM1MQorI2RlZmluZSBNU0tfTUhMX0RQX0NUTDdfRFRfRFJWX1ZCSUFTX0NBU0NUTAkweGYwCisj ZGVmaW5lIE1TS19NSExfRFBfQ1RMN19EVF9EUlZfSVJFRl9DVEwJCTB4MGYKKworLyogVHggWm9u ZSBDdGwxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UWF9aT05FX0NUTDEJ CQkweDAzNjEKKyNkZWZpbmUgVkFMX1RYX1pPTkVfQ1RMMV9UWF9aT05FX0NUUkxfTU9ERQkweDA4 CisKKy8qIE1ITDMgVHggWm9uZSBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX01ITDNfVFhfWk9ORV9DVEwJCQkweDAzNjQKKyNkZWZpbmUgQklUX01ITDNfVFhfWk9ORV9D VExfTUhMMl9JTlRQTFRfWk9ORV9NQU5VX0VOIEJJVCg3KQorI2RlZmluZSBNU0tfTUhMM19UWF9a T05FX0NUTF9NSEwzX1RYX1pPTkUJMHgwMworCisjZGVmaW5lIE1TS19UWF9aT05FX0NUTDNfVFhf Wk9ORQkJMHgwMworI2RlZmluZSBWQUxfVFhfWk9ORV9DVEwzX1RYX1pPTkVfNkdCUFMJCTB4MDAK KyNkZWZpbmUgVkFMX1RYX1pPTkVfQ1RMM19UWF9aT05FXzNHQlBTCQkweDAxCisjZGVmaW5lIFZB TF9UWF9aT05FX0NUTDNfVFhfWk9ORV8xXzVHQlBTCTB4MDIKKworLyogSERDUCBQb2xsaW5nIENv bnRyb2wgYW5kIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHg3MCAqLworI2RlZmluZSBSRUdfSERD UDJYX1BPTExfQ1MJCQkweDAzOTEKKworI2RlZmluZSBCSVRfSERDUDJYX1BPTExfQ1NfSERDUDJY X01TR19TWl9DTFJfT1BUSU9OIEJJVCg2KQorI2RlZmluZSBCSVRfSERDUDJYX1BPTExfQ1NfSERD UDJYX1JQVF9SRUFEWV9DTFJfT1BUSU9OIEJJVCg1KQorI2RlZmluZSBCSVRfSERDUDJYX1BPTExf Q1NfSERDUDJYX1JFQVVUSF9SRVFfQ0xSX09QVElPTiBCSVQoNCkKKyNkZWZpbmUgTVNLX0hEQ1Ay WF9QT0xMX0NTXwkJCTB4MGMKKyNkZWZpbmUgQklUX0hEQ1AyWF9QT0xMX0NTX0hEQ1AyWF9ESVNf UE9MTF9HTlQJQklUKDEpCisjZGVmaW5lIEJJVF9IRENQMlhfUE9MTF9DU19IRENQMlhfRElTX1BP TExfRU4JQklUKDApCisKKy8qIEhEQ1AgSW50ZXJydXB0IDAsIGRlZmF1bHQgdmFsdWU6IDB4MDAg Ki8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9JTlRSMAkJCTB4MDM5OAorCisvKiBIRENQIEludGVycnVw dCAwIE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9JTlRS MF9NQVNLCQkJMHgwMzk5CisKKy8qIEhEQ1AgR2VuZXJhbCBDb250cm9sIDAsIGRlZmF1bHQgdmFs dWU6IDB4MDIgKi8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9DVFJMXzAJCQkweDAzYTAKKyNkZWZpbmUg QklUX0hEQ1AyWF9DVFJMXzBfSERDUDJYX0VOQ1JZUFRfRU4JQklUKDcpCisjZGVmaW5lIEJJVF9I RENQMlhfQ1RSTF8wX0hEQ1AyWF9QT0xJTlRfU0VMCUJJVCg2KQorI2RlZmluZSBCSVRfSERDUDJY X0NUUkxfMF9IRENQMlhfUE9MSU5UX09WUglCSVQoNSkKKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJM XzBfSERDUDJYX1BSRUNPTVBVVEUJQklUKDQpCisjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8wX0hE Q1AyWF9IRE1JTU9ERQlCSVQoMykKKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzBfSERDUDJYX1JF UEVBVEVSCUJJVCgyKQorI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMF9IRENQMlhfSERDUFRYCQlC SVQoMSkKKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzBfSERDUDJYX0VOCQlCSVQoMCkKKworLyog SERDUCBHZW5lcmFsIENvbnRyb2wgMSwgZGVmYXVsdCB2YWx1ZTogMHgwOCAqLworI2RlZmluZSBS RUdfSERDUDJYX0NUUkxfMQkJCTB4MDNhMQorI2RlZmluZSBNU0tfSERDUDJYX0NUUkxfMV9IRENQ MlhfUkVBVVRIX01TS18zXzAJMHhmMAorI2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMV9IRENQMlhf SFBEX1NXCQlCSVQoMykKKyNkZWZpbmUgQklUX0hEQ1AyWF9DVFJMXzFfSERDUDJYX0hQRF9PVlIJ QklUKDIpCisjZGVmaW5lIEJJVF9IRENQMlhfQ1RSTF8xX0hEQ1AyWF9DVEwzTVNLCUJJVCgxKQor I2RlZmluZSBCSVRfSERDUDJYX0NUUkxfMV9IRENQMlhfUkVBVVRIX1NXCUJJVCgwKQorCisvKiBI RENQIE1pc2MgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSERD UDJYX01JU0NfQ1RSTAkJCTB4MDNhNQorI2RlZmluZSBCSVRfSERDUDJYX01JU0NfQ1RSTF9IRENQ MlhfUlBUX1NNTkdfWEZFUl9TVEFSVCBCSVQoNCkKKyNkZWZpbmUgQklUX0hEQ1AyWF9NSVNDX0NU UkxfSERDUDJYX1JQVF9TTU5HX1dSX1NUQVJUIEJJVCgzKQorI2RlZmluZSBCSVRfSERDUDJYX01J U0NfQ1RSTF9IRENQMlhfUlBUX1NNTkdfV1IJQklUKDIpCisjZGVmaW5lIEJJVF9IRENQMlhfTUlT Q19DVFJMX0hEQ1AyWF9SUFRfUkNWSURfUkRfU1RBUlQgQklUKDEpCisjZGVmaW5lIEJJVF9IRENQ MlhfTUlTQ19DVFJMX0hEQ1AyWF9SUFRfUkNWSURfUkQJQklUKDApCisKKy8qIEhEQ1AgUlBUIFNN TkcgSywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSERDUDJYX1JQVF9TTU5H X0sJCQkweDAzYTYKKworLyogSERDUCBSUFQgU01ORyBJbiwgZGVmYXVsdCB2YWx1ZTogMHgwMCAq LworI2RlZmluZSBSRUdfSERDUDJYX1JQVF9TTU5HX0lOCQkJMHgwM2E3CisKKy8qIEhEQ1AgQXV0 aCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0hEQ1AyWF9BVVRI X1NUQVQJCQkweDAzYWEKKworLyogSERDUCBSUFQgUkNWSUQgT3V0LCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCisjZGVmaW5lIFJFR19IRENQMlhfUlBUX1JDVklEX09VVAkJMHgwM2FjCisKKy8qIEhE Q1AgVFAxLCBkZWZhdWx0IHZhbHVlOiAweDYyICovCisjZGVmaW5lIFJFR19IRENQMlhfVFAxCQkJ CTB4MDNiNAorCisvKiBIRENQIEdQIE91dCAwLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19IRENQMlhfR1BfT1VUMAkJCTB4MDNjNworCisvKiBIRENQIFJlcGVhdGVyIFJDVlIg SUQgMCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfSERDUDJYX1JQVF9SQ1ZS X0lEMAkJCTB4MDNkMQorCisvKiBIRENQIEREQ00gU3RhdHVzLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19IRENQMlhfRERDTV9TVFMJCQkweDAzZDgKKyNkZWZpbmUgTVNLX0hE Q1AyWF9ERENNX1NUU19IRENQMlhfRERDTV9FUlJfU1RTXzNfMCAweGYwCisjZGVmaW5lIE1TS19I RENQMlhfRERDTV9TVFNfSERDUDJYX0REQ01fQ1RMX0NTXzNfMCAweDBmCisKKy8qIEhETUkyTUhM MyBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAweDBhICovCisjZGVmaW5lIFJFR19NM19DVFJMCQkJ CTB4MDNlMAorI2RlZmluZSBCSVRfTTNfQ1RSTF9IMk1fU1dSU1QJCQlCSVQoNCkKKyNkZWZpbmUg QklUX00zX0NUUkxfU1dfTUhMM19TRUwJCQlCSVQoMykKKyNkZWZpbmUgQklUX00zX0NUUkxfTTNB Vl9FTgkJCUJJVCgyKQorI2RlZmluZSBCSVRfTTNfQ1RSTF9FTkNfVE1EUwkJCUJJVCgxKQorI2Rl ZmluZSBCSVRfTTNfQ1RSTF9NSEwzX01BU1RFUl9FTgkJQklUKDApCisKKyNkZWZpbmUgVkFMX00z X0NUUkxfTUhMMV8yX1ZBTFVFIChCSVRfTTNfQ1RSTF9TV19NSEwzX1NFTCBcCisJCQkJICB8IEJJ VF9NM19DVFJMX0VOQ19UTURTKQorI2RlZmluZSBWQUxfTTNfQ1RSTF9NSEwzX1ZBTFVFIChCSVRf TTNfQ1RSTF9TV19NSEwzX1NFTCBcCisJCQkJfCBCSVRfTTNfQ1RSTF9NM0FWX0VOIFwKKwkJCQl8 IEJJVF9NM19DVFJMX0VOQ19UTURTIFwKKwkJCQl8IEJJVF9NM19DVFJMX01ITDNfTUFTVEVSX0VO KQorCisvKiBIRE1JMk1ITDMgUG9ydDAgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgwNCAqLwor I2RlZmluZSBSRUdfTTNfUDBDVFJMCQkJCTB4MDNlMQorI2RlZmluZSBCSVRfTTNfUDBDVFJMX01I TDNfUDBfSERDUF9FTkNfRU4JQklUKDQpCisjZGVmaW5lIEJJVF9NM19QMENUUkxfTUhMM19QMF9V TkxJTUlUX0VOCUJJVCgzKQorI2RlZmluZSBCSVRfTTNfUDBDVFJMX01ITDNfUDBfSERDUF9FTgkJ QklUKDIpCisjZGVmaW5lIEJJVF9NM19QMENUUkxfTUhMM19QMF9QSVhFTF9NT0RFX1BBQ0tFRAlC SVQoMSkKKyNkZWZpbmUgQklUX00zX1AwQ1RSTF9NSEwzX1AwX1BPUlRfRU4JCUJJVCgwKQorCisj ZGVmaW5lIFJFR19NM19QT1NUTQkJCQkweDAzZTIKKyNkZWZpbmUgTVNLX00zX1BPU1RNX1JSUF9E RUNPREUJCQkweGY4CisjZGVmaW5lIE1TS19NM19QT1NUTV9NSEwzX1AwX1NUTV9JRAkJMHgwNwor CisvKiBIRE1JMk1ITDMgU2NyYW1ibGUgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHg0MSAqLwor I2RlZmluZSBSRUdfTTNfU0NUUkwJCQkJMHgwM2U2CisjZGVmaW5lIE1TS19NM19TQ1RSTF9NSEwz X1NSX0xFTkdUSAkJMHhmMAorI2RlZmluZSBCSVRfTTNfU0NUUkxfTUhMM19TQ1JBTUJMRVJfRU4J CUJJVCgwKQorCisvKiBIU0lDIERpdiBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDUgKi8KKyNkZWZp bmUgUkVHX0RJVl9DVExfTUFJTgkJCTB4MDNmMgorI2RlZmluZSBNU0tfRElWX0NUTF9NQUlOX1BS RV9ESVZfQ1RMX01BSU4JMHgxYworI2RlZmluZSBNU0tfRElWX0NUTF9NQUlOX0ZCX0RJVl9DVExf TUFJTgkweDAzCisKKy8qIE1ITCBDYXBhYmlsaXR5IDFzdCBCeXRlLCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCisjZGVmaW5lIFJFR19NSExfREVWQ0FQXzAJCQkweDA0MDAKKworLyogTUhMIEludGVy cnVwdCAxc3QgQnl0ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTUhMX0lO VF8wCQkJCTB4MDQyMAorCisvKiBEZXZpY2UgU3RhdHVzIDFzdCBieXRlLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19NSExfU1RBVF8wCQkJCTB4MDQzMAorCisvKiBDQlVTIFNj cmF0Y2ggUGFkIDFzdCBCeXRlLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19N SExfU0NSUEFEXzAJCQkweDA0NDAKKworLyogTUhMIEV4dGVuZGVkIENhcGFiaWxpdHkgMXN0IEJ5 dGUsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01ITF9FWFRERVZDQVBfMAkJ CTB4MDQ4MAorCisvKiBEZXZpY2UgRXh0ZW5kZWQgU3RhdHVzIDFzdCBieXRlLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NSExfRVhUU1RBVF8wCQkJMHgwNDkwCisKKy8qIFRQ SSBEVEQgQnl0ZTIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9EVERf QjIJCQkJMHgwNjAyCisKKyNkZWZpbmUgVkFMX1RQSV9RVUFOX1JBTkdFX0xJTUlURUQJCTB4MDEK KyNkZWZpbmUgVkFMX1RQSV9RVUFOX1JBTkdFX0ZVTEwJCQkweDAyCisjZGVmaW5lIFZBTF9UUElf Rk9STUFUX1JHQgkJCTB4MDAKKyNkZWZpbmUgVkFMX1RQSV9GT1JNQVRfWUNCQ1I0NDQJCQkweDAx CisjZGVmaW5lIFZBTF9UUElfRk9STUFUX1lDQkNSNDIyCQkJMHgwMgorI2RlZmluZSBWQUxfVFBJ X0ZPUk1BVF9JTlRFUk5BTF9SR0IJCTB4MDMKKyNkZWZpbmUgVkFMX1RQSV9GT1JNQVQoX2ZtdCwg X3FyKSBcCisJCShWQUxfVFBJX0ZPUk1BVF8jI19mbXQgfCAoVkFMX1RQSV9RVUFOX1JBTkdFXyMj X3FyIDw8IDIpKQorCisvKiBJbnB1dCBGb3JtYXQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX1RQSV9JTlBVVAkJCQkweDA2MDkKKyNkZWZpbmUgQklUX1RQSV9JTlBVVF9FWFRF TkRFREJJVE1PREUJCUJJVCg3KQorI2RlZmluZSBCSVRfVFBJX0lOUFVUX0VORElUSEVSCQkJQklU KDYpCisjZGVmaW5lIE1TS19UUElfSU5QVVRfSU5QVVRfUVVBTl9SQU5HRQkJMHgwYworI2RlZmlu ZSBNU0tfVFBJX0lOUFVUX0lOUFVUX0ZPUk1BVAkJMHgwMworCisvKiBPdXRwdXQgRm9ybWF0LCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfT1VUUFVUCQkJCTB4MDYwYQor I2RlZmluZSBCSVRfVFBJX09VVFBVVF9DU0NNT0RFNzA5CQlCSVQoNCkKKyNkZWZpbmUgTVNLX1RQ SV9PVVRQVVRfT1VUUFVUX1FVQU5fUkFOR0UJMHgwYworI2RlZmluZSBNU0tfVFBJX09VVFBVVF9P VVRQVVRfRk9STUFUCQkweDAzCisKKy8qIFRQSSBBVkkgQ2hlY2sgU3VtLCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19UUElfQVZJX0NIU1VNCQkJMHgwNjBjCisKKy8qIFRQSSBT eXN0ZW0gQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX1ND CQkJCTB4MDYxYQorI2RlZmluZSBCSVRfVFBJX1NDX1RQSV9VUERBVEVfRkxHCQlCSVQoNykKKyNk ZWZpbmUgQklUX1RQSV9TQ19UUElfUkVBVVRIX0NUTAkJQklUKDYpCisjZGVmaW5lIEJJVF9UUElf U0NfVFBJX09VVFBVVF9NT0RFXzEJCUJJVCg1KQorI2RlZmluZSBCSVRfVFBJX1NDX1JFR19UTURT X09FX1BPV0VSX0RPV04JQklUKDQpCisjZGVmaW5lIEJJVF9UUElfU0NfVFBJX0FWX01VVEUJCQlC SVQoMykKKyNkZWZpbmUgQklUX1RQSV9TQ19ERENfR1BVX1JFUVVFU1QJCUJJVCgyKQorI2RlZmlu ZSBCSVRfVFBJX1NDX0REQ19UUElfU1cJCQlCSVQoMSkKKyNkZWZpbmUgQklUX1RQSV9TQ19UUElf T1VUUFVUX01PREVfMF9IRE1JCUJJVCgwKQorCisvKiBUUEkgQ09QUCBRdWVyeSBEYXRhLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfQ09QUF9EQVRBMQkJCTB4MDYyOQor I2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTFfQ09QUF9HUFJPVAkJQklUKDcpCisjZGVmaW5lIEJJ VF9UUElfQ09QUF9EQVRBMV9DT1BQX0xQUk9UCQlCSVQoNikKKyNkZWZpbmUgTVNLX1RQSV9DT1BQ X0RBVEExX0NPUFBfTElOS19TVEFUVVMJMHgzMAorI2RlZmluZSBWQUxfVFBJX0NPUFBfTElOS19T VEFUVVNfTk9STUFMCQkweDAwCisjZGVmaW5lIFZBTF9UUElfQ09QUF9MSU5LX1NUQVRVU19MSU5L X0xPU1QJMHgxMAorI2RlZmluZSBWQUxfVFBJX0NPUFBfTElOS19TVEFUVVNfUkVORUdPVElBVElP Tl9SRVEgMHgyMAorI2RlZmluZSBWQUxfVFBJX0NPUFBfTElOS19TVEFUVVNfTElOS19TVVNQRU5E RUQJMHgzMAorI2RlZmluZSBCSVRfVFBJX0NPUFBfREFUQTFfQ09QUF9IRENQX1JFUAlCSVQoMykK KyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEExX0NPUFBfQ09OTlRZUEVfMAlCSVQoMikKKyNkZWZp bmUgQklUX1RQSV9DT1BQX0RBVEExX0NPUFBfUFJPVFlQRQkJQklUKDEpCisjZGVmaW5lIEJJVF9U UElfQ09QUF9EQVRBMV9DT1BQX0NPTk5UWVBFXzEJQklUKDApCisKKy8qIFRQSSBDT1BQIENvbnRy b2wgRGF0YSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0NPUFBfREFU QTIJCQkweDA2MmEKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0lOVFJfRU5DUllQVElPTglC SVQoNSkKKyNkZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0tTVl9GT1JXQVJECQlCSVQoNCkKKyNk ZWZpbmUgQklUX1RQSV9DT1BQX0RBVEEyX0lOVEVSTV9SSV9DSEVDS19FTglCSVQoMykKKyNkZWZp bmUgQklUX1RQSV9DT1BQX0RBVEEyX0RPVUJMRV9SSV9DSEVDSwlCSVQoMikKKyNkZWZpbmUgQklU X1RQSV9DT1BQX0RBVEEyX0REQ19TSE9SVF9SSV9SRAlCSVQoMSkKKyNkZWZpbmUgQklUX1RQSV9D T1BQX0RBVEEyX0NPUFBfUFJPVExFVkVMCUJJVCgwKQorCisvKiBUUEkgSW50ZXJydXB0IEVuYWJs ZSwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0lOVFJfRU4JCQkJMHgw NjNjCisKKy8qIFRQSSBJbnRlcnJ1cHQgU3RhdHVzIExvdyBCeXRlLCBkZWZhdWx0IHZhbHVlOiAw eDAwICovCisjZGVmaW5lIFJFR19UUElfSU5UUl9TVDAJCQkweDA2M2QKKyNkZWZpbmUgQklUX1RQ SV9JTlRSX1NUMF9UUElfQVVUSF9DSE5HRV9TVEFUCUJJVCg3KQorI2RlZmluZSBCSVRfVFBJX0lO VFJfU1QwX1RQSV9WX1JEWV9TVEFUCQlCSVQoNikKKyNkZWZpbmUgQklUX1RQSV9JTlRSX1NUMF9U UElfQ09QUF9DSE5HRV9TVEFUCUJJVCg1KQorI2RlZmluZSBCSVRfVFBJX0lOVFJfU1QwX0tTVl9G SUZPX0ZJUlNUX1NUQVQJQklUKDMpCisjZGVmaW5lIEJJVF9UUElfSU5UUl9TVDBfUkVBRF9CS1NW X0JDQVBTX0RPTkVfU1RBVCBCSVQoMikKKyNkZWZpbmUgQklUX1RQSV9JTlRSX1NUMF9SRUFEX0JL U1ZfQkNBUFNfRVJSX1NUQVQgQklUKDEpCisjZGVmaW5lIEJJVF9UUElfSU5UUl9TVDBfUkVBRF9C S1NWX0VSUl9TVEFUCUJJVCgwKQorCisvKiBUUEkgRFMgQkNBUFMgU3RhdHVzLCBkZWZhdWx0IHZh bHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfRFNfQkNBUFMJCQkweDA2NDQKKworLyogVFBJ IEJTdGF0dXMxLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19UUElfQlNUQVRV UzEJCQkweDA2NDUKKyNkZWZpbmUgQklUX1RQSV9CU1RBVFVTMV9EU19ERVZfRVhDRUVECQlCSVQo NykKKyNkZWZpbmUgTVNLX1RQSV9CU1RBVFVTMV9EU19ERVZfQ05UCQkweDdmCisKKy8qIFRQSSBC U3RhdHVzMiwgZGVmYXVsdCB2YWx1ZTogMHgxMCAqLworI2RlZmluZSBSRUdfVFBJX0JTVEFUVVMy CQkJMHgwNjQ2CisjZGVmaW5lIE1TS19UUElfQlNUQVRVUzJfRFNfQlNUQVRVUwkJMHhlMAorI2Rl ZmluZSBCSVRfVFBJX0JTVEFUVVMyX0RTX0hETUlfTU9ERQkJQklUKDQpCisjZGVmaW5lIEJJVF9U UElfQlNUQVRVUzJfRFNfQ0FTQ19FWENFRUQJCUJJVCgzKQorI2RlZmluZSBNU0tfVFBJX0JTVEFU VVMyX0RTX0RFUFRICQkweDA3CisKKy8qIFRQSSBIVyBPcHRpbWl6YXRpb24gQ29udHJvbCAjMywg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0hXX09QVDMJCQkJMHgwNmJi CisjZGVmaW5lIEJJVF9UUElfSFdfT1BUM19ERENfREVCVUcJCUJJVCg3KQorI2RlZmluZSBCSVRf VFBJX0hXX09QVDNfUklfQ0hFQ0tfU0tJUAkJQklUKDMpCisjZGVmaW5lIEJJVF9UUElfSFdfT1BU M19UUElfRERDX0JVUlNUX01PREUJQklUKDIpCisjZGVmaW5lIE1TS19UUElfSFdfT1BUM19UUElf RERDX1JFUV9MRVZFTAkweDAzCisKKy8qIFRQSSBJbmZvIEZyYW1lIFNlbGVjdCwgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfVFBJX0lORk9fRlNFTAkJCTB4MDZiZgorI2RlZmlu ZSBCSVRfVFBJX0lORk9fRlNFTF9UUElfSU5GT19FTgkJQklUKDcpCisjZGVmaW5lIEJJVF9UUElf SU5GT19GU0VMX1RQSV9JTkZPX1JQVAkJQklUKDYpCisjZGVmaW5lIEJJVF9UUElfSU5GT19GU0VM X1RQSV9JTkZPX1JFQURfRkxBRwlCSVQoNSkKKyNkZWZpbmUgTVNLX1RQSV9JTkZPX0ZTRUxfVFBJ X0lORk9fU0VMCQkweDA3CisKKy8qIFRQSSBJbmZvIEJ5dGUgIzAsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX1RQSV9JTkZPX0IwCQkJCTB4MDZjMAorCisvKiBDb0MgU3RhdHVz LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfU1RBVF8wCQkJCTB4MDcw MAorI2RlZmluZSBSRUdfQ09DX1NUQVRfMQkJCQkweDA3MDEKKyNkZWZpbmUgUkVHX0NPQ19TVEFU XzIJCQkJMHgwNzAyCisjZGVmaW5lIFJFR19DT0NfU1RBVF8zCQkJCTB4MDcwMworI2RlZmluZSBS RUdfQ09DX1NUQVRfNAkJCQkweDA3MDQKKyNkZWZpbmUgUkVHX0NPQ19TVEFUXzUJCQkJMHgwNzA1 CisKKy8qIENvQyAxc3QgQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDQwICovCisjZGVmaW5lIFJFR19D T0NfQ1RMMAkJCQkweDA3MTAKKworLyogQ29DIDJuZCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MGEg Ki8KKyNkZWZpbmUgUkVHX0NPQ19DVEwxCQkJCTB4MDcxMQorI2RlZmluZSBNU0tfQ09DX0NUTDFf Q09DX0NUUkwxXzdfNgkJMHhjMAorI2RlZmluZSBNU0tfQ09DX0NUTDFfQ09DX0NUUkwxXzVfMAkJ MHgzZgorCisvKiBDb0MgM3JkIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgxNCAqLworI2RlZmluZSBS RUdfQ09DX0NUTDIJCQkJMHgwNzEyCisjZGVmaW5lIE1TS19DT0NfQ1RMMl9DT0NfQ1RSTDJfN182 CQkweGMwCisjZGVmaW5lIE1TS19DT0NfQ1RMMl9DT0NfQ1RSTDJfNV8wCQkweDNmCisKKy8qIENv QyA0dGggQ3RsLCBkZWZhdWx0IHZhbHVlOiAweDQwICovCisjZGVmaW5lIFJFR19DT0NfQ1RMMwkJ CQkweDA3MTMKKyNkZWZpbmUgQklUX0NPQ19DVEwzX0NPQ19DVFJMM183CQlCSVQoNykKKyNkZWZp bmUgTVNLX0NPQ19DVEwzX0NPQ19DVFJMM182XzAJCTB4N2YKKworLyogQ29DIDd0aCBDdGwsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEw2CQkJCTB4MDcxNgorI2Rl ZmluZSBCSVRfQ09DX0NUTDZfQ09DX0NUUkw2XzcJCUJJVCg3KQorI2RlZmluZSBCSVRfQ09DX0NU TDZfQ09DX0NUUkw2XzYJCUJJVCg2KQorI2RlZmluZSBNU0tfQ09DX0NUTDZfQ09DX0NUUkw2XzVf MAkJMHgzZgorCisvKiBDb0MgOHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwNiAqLworI2RlZmlu ZSBSRUdfQ09DX0NUTDcJCQkJMHgwNzE3CisjZGVmaW5lIEJJVF9DT0NfQ1RMN19DT0NfQ1RSTDdf NwkJQklUKDcpCisjZGVmaW5lIEJJVF9DT0NfQ1RMN19DT0NfQ1RSTDdfNgkJQklUKDYpCisjZGVm aW5lIEJJVF9DT0NfQ1RMN19DT0NfQ1RSTDdfNQkJQklUKDUpCisjZGVmaW5lIE1TS19DT0NfQ1RM N19DT0NfQ1RSTDdfNF8zCQkweDE4CisjZGVmaW5lIE1TS19DT0NfQ1RMN19DT0NfQ1RSTDdfMl8w CQkweDA3CisKKy8qIENvQyAxMHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfQ09DX0NUTDkJCQkJMHgwNzE5CisKKy8qIENvQyAxMXRoIEN0bCwgZGVmYXVsdCB2YWx1 ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NUTEEJCQkJMHgwNzFhCisKKy8qIENvQyAxMnRo IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NUTEIJCQkJMHgw NzFiCisKKy8qIENvQyAxM3RoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwZiAqLworI2RlZmluZSBS RUdfQ09DX0NUTEMJCQkJMHgwNzFjCisKKy8qIENvQyAxNHRoIEN0bCwgZGVmYXVsdCB2YWx1ZTog MHgwYSAqLworI2RlZmluZSBSRUdfQ09DX0NUTEQJCQkJMHgwNzFkCisjZGVmaW5lIEJJVF9DT0Nf Q1RMRF9DT0NfQ1RSTERfNwkJQklUKDcpCisjZGVmaW5lIE1TS19DT0NfQ1RMRF9DT0NfQ1RSTERf Nl8wCQkweDdmCisKKy8qIENvQyAxNXRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwYSAqLworI2Rl ZmluZSBSRUdfQ09DX0NUTEUJCQkJMHgwNzFlCisjZGVmaW5lIEJJVF9DT0NfQ1RMRV9DT0NfQ1RS TEVfNwkJQklUKDcpCisjZGVmaW5lIE1TS19DT0NfQ1RMRV9DT0NfQ1RSTEVfNl8wCQkweDdmCisK Ky8qIENvQyAxNnRoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09D X0NUTEYJCQkJMHgwNzFmCisjZGVmaW5lIE1TS19DT0NfQ1RMRl9DT0NfQ1RSTEZfN18zCQkweGY4 CisjZGVmaW5lIE1TS19DT0NfQ1RMRl9DT0NfQ1RSTEZfMl8wCQkweDA3CisKKy8qIENvQyAxOHRo IEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgzMiAqLworI2RlZmluZSBSRUdfQ09DX0NUTDExCQkJCTB4 MDcyMQorI2RlZmluZSBNU0tfQ09DX0NUTDExX0NPQ19DVFJMMTFfN180CQkweGYwCisjZGVmaW5l IE1TS19DT0NfQ1RMMTFfQ09DX0NUUkwxMV8zXzAJCTB4MGYKKworLyogQ29DIDIxc3QgQ3RsLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfQ1RMMTQJCQkJMHgwNzI0Cisj ZGVmaW5lIE1TS19DT0NfQ1RMMTRfQ09DX0NUUkwxNF83XzQJCTB4ZjAKKyNkZWZpbmUgTVNLX0NP Q19DVEwxNF9DT0NfQ1RSTDE0XzNfMAkJMHgwZgorCisvKiBDb0MgMjJuZCBDdGwsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEwxNQkJCQkweDA3MjUKKyNkZWZpbmUg QklUX0NPQ19DVEwxNV9DT0NfQ1RSTDE1XzcJCUJJVCg3KQorI2RlZmluZSBNU0tfQ09DX0NUTDE1 X0NPQ19DVFJMMTVfNl80CQkweDcwCisjZGVmaW5lIE1TS19DT0NfQ1RMMTVfQ09DX0NUUkwxNV8z XzAJCTB4MGYKKworLyogQ29DIEludGVycnVwdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2Rl ZmluZSBSRUdfQ09DX0lOVFIJCQkJMHgwNzI2CisKKy8qIENvQyBJbnRlcnJ1cHQgTWFzaywgZGVm YXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0lOVFJfTUFTSwkJCTB4MDcyNwor I2RlZmluZSBCSVRfQ09DX1BMTF9MT0NLX1NUQVRVU19DSEFOR0UJCUJJVCgwKQorI2RlZmluZSBC SVRfQ09DX0NBTElCUkFUSU9OX0RPTkUJCUJJVCgxKQorCisvKiBDb0MgTWlzYyBDdGwsIGRlZmF1 bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19NSVNDX0NUTDAJCQkweDA3MjgKKyNk ZWZpbmUgQklUX0NPQ19NSVNDX0NUTDBfRlNNX01PTgkJQklUKDcpCisKKy8qIENvQyAyNHRoIEN0 bCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ09DX0NUTDE3CQkJCTB4MDcy YQorI2RlZmluZSBNU0tfQ09DX0NUTDE3X0NPQ19DVFJMMTdfN180CQkweGYwCisjZGVmaW5lIE1T S19DT0NfQ1RMMTdfQ09DX0NUUkwxN18zXzAJCTB4MGYKKworLyogQ29DIDI1dGggQ3RsLCBkZWZh dWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DT0NfQ1RMMTgJCQkJMHgwNzJiCisjZGVm aW5lIE1TS19DT0NfQ1RMMThfQ09DX0NUUkwxOF83XzQJCTB4ZjAKKyNkZWZpbmUgTVNLX0NPQ19D VEwxOF9DT0NfQ1RSTDE4XzNfMAkJMHgwZgorCisvKiBDb0MgMjZ0aCBDdGwsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NPQ19DVEwxOQkJCQkweDA3MmMKKyNkZWZpbmUgTVNL X0NPQ19DVEwxOV9DT0NfQ1RSTDE5XzdfNAkJMHhmMAorI2RlZmluZSBNU0tfQ09DX0NUTDE5X0NP Q19DVFJMMTlfM18wCQkweDBmCisKKy8qIENvQyAyN3RoIEN0bCwgZGVmYXVsdCB2YWx1ZTogMHgw MCAqLworI2RlZmluZSBSRUdfQ09DX0NUTDFBCQkJCTB4MDcyZAorI2RlZmluZSBNU0tfQ09DX0NU TDFBX0NPQ19DVFJMMUFfN18yCQkweGZjCisjZGVmaW5lIE1TS19DT0NfQ1RMMUFfQ09DX0NUUkwx QV8xXzAJCTB4MDMKKworLyogRG9DIDl0aCBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX0RPQ19TVEFUXzgJCQkJMHgwNzQwCisKKy8qIERvQyAxMHRoIFN0YXR1cywg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRE9DX1NUQVRfOQkJCQkweDA3NDEK KworLyogRG9DIDV0aCBDRkcsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RP Q19DRkc0CQkJCTB4MDc0ZQorI2RlZmluZSBNU0tfRE9DX0NGRzRfREJHX1NUQVRFX0RPQ19GU00J CTB4MGYKKworLyogRG9DIDFzdCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4NDAgKi8KKyNkZWZpbmUg UkVHX0RPQ19DVEwwCQkJCTB4MDc1MQorCisvKiBEb0MgN3RoIEN0bCwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfRE9DX0NUTDYJCQkJMHgwNzU3CisjZGVmaW5lIEJJVF9ET0Nf Q1RMNl9ET0NfQ1RSTDZfNwkJQklUKDcpCisjZGVmaW5lIEJJVF9ET0NfQ1RMNl9ET0NfQ1RSTDZf NgkJQklUKDYpCisjZGVmaW5lIE1TS19ET0NfQ1RMNl9ET0NfQ1RSTDZfNV80CQkweDMwCisjZGVm aW5lIE1TS19ET0NfQ1RMNl9ET0NfQ1RSTDZfM18wCQkweDBmCisKKy8qIERvQyA4dGggQ3RsLCBk ZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19ET0NfQ1RMNwkJCQkweDA3NTgKKyNk ZWZpbmUgQklUX0RPQ19DVEw3X0RPQ19DVFJMN183CQlCSVQoNykKKyNkZWZpbmUgQklUX0RPQ19D VEw3X0RPQ19DVFJMN182CQlCSVQoNikKKyNkZWZpbmUgQklUX0RPQ19DVEw3X0RPQ19DVFJMN181 CQlCSVQoNSkKKyNkZWZpbmUgTVNLX0RPQ19DVEw3X0RPQ19DVFJMN180XzMJCTB4MTgKKyNkZWZp bmUgTVNLX0RPQ19DVEw3X0RPQ19DVFJMN18yXzAJCTB4MDcKKworLyogRG9DIDl0aCBDdGwsIGRl ZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19DVEw4CQkJCTB4MDc2YworI2Rl ZmluZSBCSVRfRE9DX0NUTDhfRE9DX0NUUkw4XzcJCUJJVCg3KQorI2RlZmluZSBNU0tfRE9DX0NU TDhfRE9DX0NUUkw4XzZfNAkJMHg3MAorI2RlZmluZSBNU0tfRE9DX0NUTDhfRE9DX0NUUkw4XzNf MgkJMHgwYworI2RlZmluZSBNU0tfRE9DX0NUTDhfRE9DX0NUUkw4XzFfMAkJMHgwMworCisvKiBE b0MgMTB0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19DVEw5 CQkJCTB4MDc2ZAorCisvKiBEb0MgMTF0aCBDdGwsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNk ZWZpbmUgUkVHX0RPQ19DVExBCQkJCTB4MDc2ZQorCisvKiBEb0MgMTV0aCBDdGwsIGRlZmF1bHQg dmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0RPQ19DVExFCQkJCTB4MDc3MgorI2RlZmluZSBC SVRfRE9DX0NUTEVfRE9DX0NUUkxFXzcJCUJJVCg3KQorI2RlZmluZSBCSVRfRE9DX0NUTEVfRE9D X0NUUkxFXzYJCUJJVCg2KQorI2RlZmluZSBNU0tfRE9DX0NUTEVfRE9DX0NUUkxFXzVfNAkJMHgz MAorI2RlZmluZSBNU0tfRE9DX0NUTEVfRE9DX0NUUkxFXzNfMAkJMHgwZgorCisvKiBJbnRlcnJ1 cHQgTWFzayAxc3QsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01ITF9JTlRf MF9NQVNLCQkJMHgwNTgwCisKKy8qIEludGVycnVwdCBNYXNrIDJuZCwgZGVmYXVsdCB2YWx1ZTog MHgwMCAqLworI2RlZmluZSBSRUdfTUhMX0lOVF8xX01BU0sJCQkweDA1ODEKKworLyogSW50ZXJy dXB0IE1hc2sgM3JkLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NSExfSU5U XzJfTUFTSwkJCTB4MDU4MgorCisvKiBJbnRlcnJ1cHQgTWFzayA0dGgsIGRlZmF1bHQgdmFsdWU6 IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01ITF9JTlRfM19NQVNLCQkJMHgwNTgzCisKKy8qIE1EVCBS ZWNlaXZlIFRpbWUgT3V0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NRFRf UkNWX1RJTUVPVVQJCQkweDA1ODQKKworLyogTURUIFRyYW5zbWl0IFRpbWUgT3V0LCBkZWZhdWx0 IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NRFRfWE1JVF9USU1FT1VUCQkJMHgwNTg1CisK Ky8qIE1EVCBSZWNlaXZlIENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX01EVF9SQ1ZfQ1RSTAkJCTB4MDU4NgorI2RlZmluZSBCSVRfTURUX1JDVl9DVFJMX01EVF9S Q1ZfRU4JCUJJVCg3KQorI2RlZmluZSBCSVRfTURUX1JDVl9DVFJMX01EVF9ERUxBWV9SQ1ZfRU4J QklUKDYpCisjZGVmaW5lIEJJVF9NRFRfUkNWX0NUUkxfTURUX1JGSUZPX09WRVJfV1JfRU4JQklU KDQpCisjZGVmaW5lIEJJVF9NRFRfUkNWX0NUUkxfTURUX1hGSUZPX09WRVJfV1JfRU4JQklUKDMp CisjZGVmaW5lIEJJVF9NRFRfUkNWX0NUUkxfTURUX0RJU0FCTEUJCUJJVCgyKQorI2RlZmluZSBC SVRfTURUX1JDVl9DVFJMX01EVF9SRklGT19DTFJfQUxMCUJJVCgxKQorI2RlZmluZSBCSVRfTURU X1JDVl9DVFJMX01EVF9SRklGT19DTFJfQ1VSCUJJVCgwKQorCisvKiBNRFQgUmVjZWl2ZSBSZWFk IFBvcnQsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01EVF9SQ1ZfUkVBRF9Q T1JUCQkJMHgwNTg3CisKKy8qIE1EVCBUcmFuc21pdCBDb250cm9sLCBkZWZhdWx0IHZhbHVlOiAw eDcwICovCisjZGVmaW5lIFJFR19NRFRfWE1JVF9DVFJMCQkJMHgwNTg4CisjZGVmaW5lIEJJVF9N RFRfWE1JVF9DVFJMX01EVF9YTUlUX0VOCQlCSVQoNykKKyNkZWZpbmUgQklUX01EVF9YTUlUX0NU UkxfTURUX1hNSVRfQ01EX01FUkdFX0VOCUJJVCg2KQorI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RS TF9NRFRfWE1JVF9GSVhFRF9CVVJTVF9MRU4gQklUKDUpCisjZGVmaW5lIEJJVF9NRFRfWE1JVF9D VFJMX01EVF9YTUlUX0ZJWEVEX0FJRAlCSVQoNCkKKyNkZWZpbmUgQklUX01EVF9YTUlUX0NUUkxf TURUX1hNSVRfU0lOR0xFX1JVTl9FTiBCSVQoMykKKyNkZWZpbmUgQklUX01EVF9YTUlUX0NUUkxf TURUX0NMUl9BQk9SVF9XQUlUCUJJVCgyKQorI2RlZmluZSBCSVRfTURUX1hNSVRfQ1RSTF9NRFRf WEZJRk9fQ0xSX0FMTAlCSVQoMSkKKyNkZWZpbmUgQklUX01EVF9YTUlUX0NUUkxfTURUX1hGSUZP X0NMUl9DVVIJQklUKDApCisKKy8qIE1EVCBSZWNlaXZlIFdSSVRFIFBvcnQsIGRlZmF1bHQgdmFs dWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01EVF9YTUlUX1dSSVRFX1BPUlQJCQkweDA1ODkKKwor LyogTURUIFJGSUZPIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdf TURUX1JGSUZPX1NUQVQJCQkweDA1OGEKKyNkZWZpbmUgTVNLX01EVF9SRklGT19TVEFUX01EVF9S RklGT19DTlQJMHhlMAorI2RlZmluZSBNU0tfTURUX1JGSUZPX1NUQVRfTURUX1JGSUZPX0NVUl9C WVRFX0NOVCAweDFmCisKKy8qIE1EVCBYRklGTyBTdGF0dXMsIGRlZmF1bHQgdmFsdWU6IDB4ODAg Ki8KKyNkZWZpbmUgUkVHX01EVF9YRklGT19TVEFUCQkJMHgwNThiCisjZGVmaW5lIE1TS19NRFRf WEZJRk9fU1RBVF9NRFRfWEZJRk9fTEVWRUxfQVZBSUwgMHhlMAorI2RlZmluZSBCSVRfTURUX1hG SUZPX1NUQVRfTURUX1hNSVRfUFJFX0hTX0VOCUJJVCg0KQorI2RlZmluZSBNU0tfTURUX1hGSUZP X1NUQVRfTURUX1dSSVRFX0JVUlNUX0xFTgkweDBmCisKKy8qIE1EVCBJbnRlcnJ1cHQgMCwgZGVm YXVsdCB2YWx1ZTogMHgwYyAqLworI2RlZmluZSBSRUdfTURUX0lOVF8wCQkJCTB4MDU4YworI2Rl ZmluZSBCSVRfTURUX1JGSUZPX0RBVEFfUkRZCQkJQklUKDApCisjZGVmaW5lIEJJVF9NRFRfSURM RV9BRlRFUl9IQVdCX0RJU0FCTEUJCUJJVCgyKQorI2RlZmluZSBCSVRfTURUX1hGSUZPX0VNUFRZ CQkJQklUKDMpCisKKy8qIE1EVCBJbnRlcnJ1cHQgMCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAw ICovCisjZGVmaW5lIFJFR19NRFRfSU5UXzBfTUFTSwkJCTB4MDU4ZAorCisvKiBNRFQgSW50ZXJy dXB0IDEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX01EVF9JTlRfMQkJCQkw eDA1OGUKKyNkZWZpbmUgQklUX01EVF9SQ1ZfVElNRU9VVAkJCUJJVCgwKQorI2RlZmluZSBCSVRf TURUX1JDVl9TTV9BQk9SVF9QS1RfUkNWRAkJQklUKDEpCisjZGVmaW5lIEJJVF9NRFRfUkNWX1NN X0VSUk9SCQkJQklUKDIpCisjZGVmaW5lIEJJVF9NRFRfWE1JVF9USU1FT1VUCQkJQklUKDUpCisj ZGVmaW5lIEJJVF9NRFRfWE1JVF9TTV9BQk9SVF9QS1RfUkNWRAkJQklUKDYpCisjZGVmaW5lIEJJ VF9NRFRfWE1JVF9TTV9FUlJPUgkJCUJJVCg3KQorCisvKiBNRFQgSW50ZXJydXB0IDEgTWFzaywg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfTURUX0lOVF8xX01BU0sJCQkweDA1 OGYKKworLyogQ0JVUyBWZW5kb3IgSUQsIGRlZmF1bHQgdmFsdWU6IDB4MDEgKi8KKyNkZWZpbmUg UkVHX0NCVVNfVkVORE9SX0lECQkJMHgwNTkwCisKKy8qIENCVVMgQ29ubmVjdGlvbiBTdGF0dXMs IGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUgUkVHX0NCVVNfU1RBVFVTCQkJCTB4MDU5 MQorI2RlZmluZSBCSVRfQ0JVU19TVEFUVVNfTUhMX0NBQkxFX1BSRVNFTlQJQklUKDQpCisjZGVm aW5lIEJJVF9DQlVTX1NUQVRVU19NU0NfSEJfU1VDQ0VTUwkJQklUKDMpCisjZGVmaW5lIEJJVF9D QlVTX1NUQVRVU19DQlVTX0hQRAkJQklUKDIpCisjZGVmaW5lIEJJVF9DQlVTX1NUQVRVU19NSExf TU9ERQkJQklUKDEpCisjZGVmaW5lIEJJVF9DQlVTX1NUQVRVU19DQlVTX0NPTk5FQ1RFRAkJQklU KDApCisKKy8qIENCVVMgSW50ZXJydXB0IDFzdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2Rl ZmluZSBSRUdfQ0JVU19JTlRfMAkJCQkweDA1OTIKKyNkZWZpbmUgQklUX0NCVVNfTVNDX01UX0RP TkVfTkFDSwkJQklUKDcpCisjZGVmaW5lIEJJVF9DQlVTX01TQ19NUl9TRVRfSU5UCQkJQklUKDYp CisjZGVmaW5lIEJJVF9DQlVTX01TQ19NUl9XUklURV9CVVJTVAkJQklUKDUpCisjZGVmaW5lIEJJ VF9DQlVTX01TQ19NUl9NU0NfTVNHCQkJQklUKDQpCisjZGVmaW5lIEJJVF9DQlVTX01TQ19NUl9X UklURV9TVEFUCQlCSVQoMykKKyNkZWZpbmUgQklUX0NCVVNfSFBEX0NIRwkJCUJJVCgyKQorI2Rl ZmluZSBCSVRfQ0JVU19NU0NfTVRfRE9ORQkJCUJJVCgxKQorI2RlZmluZSBCSVRfQ0JVU19DTlhf Q0hHCQkJQklUKDApCisKKy8qIENCVVMgSW50ZXJydXB0IE1hc2sgMXN0LCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19DQlVTX0lOVF8wX01BU0sJCQkweDA1OTMKKworLyogQ0JV UyBJbnRlcnJ1cHQgMm5kLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DQlVT X0lOVF8xCQkJCTB4MDU5NAorI2RlZmluZSBCSVRfQ0JVU19DTURfQUJPUlQJCQlCSVQoNikKKyNk ZWZpbmUgQklUX0NCVVNfTVNDX0FCT1JUX1JDVkQJCQlCSVQoMykKKyNkZWZpbmUgQklUX0NCVVNf RERDX0FCT1JUCQkJQklUKDIpCisjZGVmaW5lIEJJVF9DQlVTX0NFQ19BQk9SVAkJCUJJVCgxKQor CisvKiBDQlVTIEludGVycnVwdCBNYXNrIDJuZCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2Rl ZmluZSBSRUdfQ0JVU19JTlRfMV9NQVNLCQkJMHgwNTk1CisKKy8qIENCVVMgRERDIEFib3J0IElu dGVycnVwdCwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRERDX0FCT1JUX0lO VAkJCTB4MDU5OAorCisvKiBDQlVTIEREQyBBYm9ydCBJbnRlcnJ1cHQgTWFzaywgZGVmYXVsdCB2 YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfRERDX0FCT1JUX0lOVF9NQVNLCQkJMHgwNTk5CisK Ky8qIENCVVMgTVNDIFJlcXVlc3RlciBBYm9ydCBJbnRlcnJ1cHQsIGRlZmF1bHQgdmFsdWU6IDB4 MDAgKi8KKyNkZWZpbmUgUkVHX01TQ19NVF9BQk9SVF9JTlQJCQkweDA1OWEKKworLyogQ0JVUyBN U0MgUmVxdWVzdGVyIEFib3J0IEludGVycnVwdCBNYXNrLCBkZWZhdWx0IHZhbHVlOiAweDAwICov CisjZGVmaW5lIFJFR19NU0NfTVRfQUJPUlRfSU5UX01BU0sJCTB4MDU5YgorCisvKiBDQlVTIE1T QyBSZXNwb25kZXIgQWJvcnQgSW50ZXJydXB0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVm aW5lIFJFR19NU0NfTVJfQUJPUlRfSU5UCQkJMHgwNTljCisKKy8qIENCVVMgTVNDIFJlc3BvbmRl ciBBYm9ydCBJbnRlcnJ1cHQgTWFzaywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfTVNDX01SX0FCT1JUX0lOVF9NQVNLCQkweDA1OWQKKworLyogQ0JVUyBSWCBESVNDT1ZFUlkg aW50ZXJydXB0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19DQlVTX1JYX0RJ U0NfSU5UMAkJCTB4MDU5ZQorCisvKiBDQlVTIFJYIERJU0NPVkVSWSBJbnRlcnJ1cHQgTWFzaywg ZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBSRUdfQ0JVU19SWF9ESVNDX0lOVDBfTUFT SwkJMHgwNTlmCisKKy8qIENCVVNfTGlua19MYXllciBDb250cm9sICM4LCBkZWZhdWx0IHZhbHVl OiAweDAwICovCisjZGVmaW5lIFJFR19DQlVTX0xJTktfQ1RSTF84CQkJMHgwNWE3CisKKy8qIE1E VCBTdGF0ZSBNYWNoaW5lIFN0YXR1cywgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmluZSBS RUdfTURUX1NNX1NUQVQJCQkJMHgwNWI1CisjZGVmaW5lIE1TS19NRFRfU01fU1RBVF9NRFRfUkNW X1NUQVRFCQkweGYwCisjZGVmaW5lIE1TS19NRFRfU01fU1RBVF9NRFRfWE1JVF9TVEFURQkJMHgw ZgorCisvKiBDQlVTIE1TQyBjb21tYW5kIHRyaWdnZXIsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX01TQ19DT01NQU5EX1NUQVJUCQkJMHgwNWI4CisjZGVmaW5lIEJJVF9NU0Nf Q09NTUFORF9TVEFSVF9ERUJVRwkJQklUKDUpCisjZGVmaW5lIEJJVF9NU0NfQ09NTUFORF9TVEFS VF9XUklURV9CVVJTVAlCSVQoNCkKKyNkZWZpbmUgQklUX01TQ19DT01NQU5EX1NUQVJUX1dSSVRF X1NUQVQJQklUKDMpCisjZGVmaW5lIEJJVF9NU0NfQ09NTUFORF9TVEFSVF9SRUFEX0RFVkNBUAlC SVQoMikKKyNkZWZpbmUgQklUX01TQ19DT01NQU5EX1NUQVJUX01TQ19NU0cJCUJJVCgxKQorI2Rl ZmluZSBCSVRfTVNDX0NPTU1BTkRfU1RBUlRfUEVFUgkJQklUKDApCisKKy8qIENCVVMgTVNDIENv bW1hbmQvT2Zmc2V0LCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5lIFJFR19NU0NfQ01E X09SX09GRlNFVAkJCTB4MDViOQorCisvKiBDQlVTIE1TQyBUcmFuc21pdCBEYXRhICovCisjZGVm aW5lIFJFR19NU0NfMVNUX1RSQU5TTUlUX0RBVEEJCTB4MDViYQorI2RlZmluZSBSRUdfTVNDXzJO RF9UUkFOU01JVF9EQVRBCQkweDA1YmIKKworLyogQ0JVUyBNU0MgUmVxdWVzdGVyIFJlY2VpdmVk IERhdGEgKi8KKyNkZWZpbmUgUkVHX01TQ19NVF9SQ1ZEX0RBVEEwCQkJMHgwNWJjCisjZGVmaW5l IFJFR19NU0NfTVRfUkNWRF9EQVRBMQkJCTB4MDViZAorCisvKiBDQlVTIE1TQyBSZXNwb25kZXIg TVNDX01TRyBSZWNlaXZlZCBEYXRhICovCisjZGVmaW5lIFJFR19NU0NfTVJfTVNDX01TR19SQ1ZE XzFTVF9EQVRBCTB4MDViZgorI2RlZmluZSBSRUdfTVNDX01SX01TQ19NU0dfUkNWRF8yTkRfREFU QQkweDA1YzAKKworLyogQ0JVUyBNU0MgSGVhcnRiZWF0IENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6 IDB4MjcgKi8KKyNkZWZpbmUgUkVHX01TQ19IRUFSVEJFQVRfQ1RSTAkJCTB4MDVjNAorI2RlZmlu ZSBCSVRfTVNDX0hFQVJUQkVBVF9DVFJMX01TQ19IQl9FTglCSVQoNykKKyNkZWZpbmUgTVNLX01T Q19IRUFSVEJFQVRfQ1RSTF9NU0NfSEJfRkFJTF9MSU1JVCAweDcwCisjZGVmaW5lIE1TS19NU0Nf SEVBUlRCRUFUX0NUUkxfTVNDX0hCX1BFUklPRF9NU0IgMHgwZgorCisvKiBDQlVTIE1TQyBDb21w YXRpYmlsaXR5IENvbnRyb2wsIGRlZmF1bHQgdmFsdWU6IDB4MDIgKi8KKyNkZWZpbmUgUkVHX0NC VVNfTVNDX0NPTVBBVF9DVFJMCQkweDA1YzcKKyNkZWZpbmUgQklUX0NCVVNfTVNDX0NPTVBBVF9D VFJMX1hERVZDQVBfRU4JQklUKDcpCisjZGVmaW5lIEJJVF9DQlVTX01TQ19DT01QQVRfQ1RSTF9E SVNBQkxFX01TQ19PTl9DQlVTIEJJVCg2KQorI2RlZmluZSBCSVRfQ0JVU19NU0NfQ09NUEFUX0NU UkxfRElTQUJMRV9ERENfT05fQ0JVUyBCSVQoNSkKKyNkZWZpbmUgQklUX0NCVVNfTVNDX0NPTVBB VF9DVFJMX0RJU0FCTEVfR0VUX0REQ19FUlJPUkNPREUgQklUKDMpCisjZGVmaW5lIEJJVF9DQlVT X01TQ19DT01QQVRfQ1RSTF9ESVNBQkxFX0dFVF9WUzFfRVJST1JDT0RFIEJJVCgyKQorCisvKiBD QlVTMyBDb252ZXJ0ZXIgQ29udHJvbCwgZGVmYXVsdCB2YWx1ZTogMHgyNCAqLworI2RlZmluZSBS RUdfQ0JVUzNfQ05WVAkJCQkweDA1ZGMKKyNkZWZpbmUgTVNLX0NCVVMzX0NOVlRfQ0JVUzNfUkVU UllMTVQJCTB4ZjAKKyNkZWZpbmUgTVNLX0NCVVMzX0NOVlRfQ0JVUzNfUEVFUlRPVVRfU0VMCTB4 MGMKKyNkZWZpbmUgQklUX0NCVVMzX0NOVlRfVEVBUkNCVVNfRU4JCUJJVCgxKQorI2RlZmluZSBC SVRfQ0JVUzNfQ05WVF9DQlVTM0NOVlRfRU4JCUJJVCgwKQorCisvKiBEaXNjb3ZlcnkgQ29udHJv bDEsIGRlZmF1bHQgdmFsdWU6IDB4MjQgKi8KKyNkZWZpbmUgUkVHX0RJU0NfQ1RSTDEJCQkJMHgw NWUwCisjZGVmaW5lIEJJVF9ESVNDX0NUUkwxX0NCVVNfSU5UUl9FTgkJQklUKDcpCisjZGVmaW5l IEJJVF9ESVNDX0NUUkwxX0hCX09OTFkJCQlCSVQoNikKKyNkZWZpbmUgTVNLX0RJU0NfQ1RSTDFf RElTQ19BVFQJCQkweDMwCisjZGVmaW5lIE1TS19ESVNDX0NUUkwxX0RJU0NfQ1lDCQkJMHgwYwor I2RlZmluZSBCSVRfRElTQ19DVFJMMV9ESVNDX0VOCQkJQklUKDApCisKKyNkZWZpbmUgVkFMX1BV UF9PRkYJCQkJMAorI2RlZmluZSBWQUxfUFVQXzIwSwkJCQkxCisjZGVmaW5lIFZBTF9QVVBfNUsJ CQkJMgorCisvKiBEaXNjb3ZlcnkgQ29udHJvbDQsIGRlZmF1bHQgdmFsdWU6IDB4ODAgKi8KKyNk ZWZpbmUgUkVHX0RJU0NfQ1RSTDQJCQkJMHgwNWUzCisjZGVmaW5lIE1TS19ESVNDX0NUUkw0X0NC VVNESVNDX1BVUF9TRUwJCTB4YzAKKyNkZWZpbmUgTVNLX0RJU0NfQ1RSTDRfQ0JVU0lETEVfUFVQ X1NFTAkJMHgzMAorI2RlZmluZSBWQUxfRElTQ19DVFJMNChwdXBfZGlzYywgcHVwX2lkbGUpICgo KHB1cF9kaXNjKSA8PCA2KSB8IChwdXBfaWRsZSA8PCA0KSkKKworLyogRGlzY292ZXJ5IENvbnRy b2w1LCBkZWZhdWx0IHZhbHVlOiAweDAzICovCisjZGVmaW5lIFJFR19ESVNDX0NUUkw1CQkJCTB4 MDVlNAorI2RlZmluZSBCSVRfRElTQ19DVFJMNV9EU01fT1ZSSURFCQlCSVQoMykKKyNkZWZpbmUg TVNLX0RJU0NfQ1RSTDVfQ0JVU01ITF9QVVBfU0VMCQkweDAzCisKKy8qIERpc2NvdmVyeSBDb250 cm9sOCwgZGVmYXVsdCB2YWx1ZTogMHg4MSAqLworI2RlZmluZSBSRUdfRElTQ19DVFJMOAkJCQkw eDA1ZTcKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDhfTk9NSExJTlRfQ0xSX0JZUEFTUwlCSVQoNykK KyNkZWZpbmUgQklUX0RJU0NfQ1RSTDhfREVMQVlfQ0JVU19JTlRSX0VOCUJJVCgwKQorCisvKiBE aXNjb3ZlcnkgQ29udHJvbDksIGRlZmF1bHQgdmFsdWU6IDB4NTQgKi8KKyNkZWZpbmUgUkVHX0RJ U0NfQ1RSTDkJCQkweDA1ZTgKKyNkZWZpbmUgQklUX0RJU0NfQ1RSTDlfTUhMM19SU0VOX0JZUAkJ QklUKDcpCisjZGVmaW5lIEJJVF9ESVNDX0NUUkw5X01ITDNESVNDX0VOCQlCSVQoNikKKyNkZWZp bmUgQklUX0RJU0NfQ1RSTDlfV0FLRV9EUlZGTFQJCUJJVCg0KQorI2RlZmluZSBCSVRfRElTQ19D VFJMOV9OT01ITF9FU1QJCUJJVCgzKQorI2RlZmluZSBCSVRfRElTQ19DVFJMOV9ESVNDX1BVTFNF X1BST0NFRUQJQklUKDIpCisjZGVmaW5lIEJJVF9ESVNDX0NUUkw5X1dBS0VfUFVMU0VfQllQQVNT CUJJVCgxKQorI2RlZmluZSBCSVRfRElTQ19DVFJMOV9WQlVTX09VVFBVVF9DQVBBQklMSVRZX1NS QyBCSVQoMCkKKworLyogRGlzY292ZXJ5IFN0YXR1czEsIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8K KyNkZWZpbmUgUkVHX0RJU0NfU1RBVDEJCQkJMHgwNWViCisjZGVmaW5lIEJJVF9ESVNDX1NUQVQx X1BTTV9PVlJJREUJCUJJVCg1KQorI2RlZmluZSBNU0tfRElTQ19TVEFUMV9ESVNDX1NNCQkJMHgw ZgorCisvKiBEaXNjb3ZlcnkgU3RhdHVzMiwgZGVmYXVsdCB2YWx1ZTogMHgwMCAqLworI2RlZmlu ZSBSRUdfRElTQ19TVEFUMgkJCQkweDA1ZWMKKyNkZWZpbmUgQklUX0RJU0NfU1RBVDJfQ0JVU19P RV9QT0wJCUJJVCg2KQorI2RlZmluZSBCSVRfRElTQ19TVEFUMl9DQlVTX1NBVFVTCQlCSVQoNSkK KyNkZWZpbmUgQklUX0RJU0NfU1RBVDJfUlNFTgkJCUJJVCg0KQorCisjZGVmaW5lIE1TS19ESVND X1NUQVQyX01ITF9WUlNOCQkJMHgwYworI2RlZmluZSBWQUxfRElTQ19TVEFUMl9ERUZBVUxUCQkJ MHgwMAorI2RlZmluZSBWQUxfRElTQ19TVEFUMl9NSEwxXzIJCQkweDA0CisjZGVmaW5lIFZBTF9E SVNDX1NUQVQyX01ITDMJCQkweDA4CisjZGVmaW5lIFZBTF9ESVNDX1NUQVQyX1JFU0VSVkVECQkJ MHgwYworCisjZGVmaW5lIE1TS19ESVNDX1NUQVQyX1JHTkQJCQkweDAzCisjZGVmaW5lIFZBTF9S R05EX09QRU4JCQkJMHgwMAorI2RlZmluZSBWQUxfUkdORF8ySwkJCQkweDAxCisjZGVmaW5lIFZB TF9SR05EXzFLCQkJCTB4MDIKKyNkZWZpbmUgVkFMX1JHTkRfU0hPUlQJCQkJMHgwMworCisvKiBJ bnRlcnJ1cHQgQ0JVU19yZWcxIElOVFIwLCBkZWZhdWx0IHZhbHVlOiAweDAwICovCisjZGVmaW5l IFJFR19DQlVTX0RJU0NfSU5UUjAJCQkweDA1ZWQKKyNkZWZpbmUgQklUX1JHTkRfUkVBRFlfSU5U CQkJQklUKDYpCisjZGVmaW5lIEJJVF9DQlVTX01ITDEyX0RJU0NPTl9JTlQJCUJJVCg1KQorI2Rl ZmluZSBCSVRfQ0JVU19NSEwzX0RJU0NPTl9JTlQJCUJJVCg0KQorI2RlZmluZSBCSVRfTk9UX01I TF9FU1RfSU5UCQkJQklUKDMpCisjZGVmaW5lIEJJVF9NSExfRVNUX0lOVAkJCQlCSVQoMikKKyNk ZWZpbmUgQklUX01ITDNfRVNUX0lOVAkJCUJJVCgxKQorI2RlZmluZSBWQUxfQ0JVU19NSExfRElT Q09OIChCSVRfQ0JVU19NSEwxMl9ESVNDT05fSU5UIFwKKwkJCSAgICB8IEJJVF9DQlVTX01ITDNf RElTQ09OX0lOVCBcCisJCQkgICAgfCBCSVRfTk9UX01ITF9FU1RfSU5UKQorCisvKiBJbnRlcnJ1 cHQgQ0JVU19yZWcxIElOVFIwIE1hc2ssIGRlZmF1bHQgdmFsdWU6IDB4MDAgKi8KKyNkZWZpbmUg UkVHX0NCVVNfRElTQ19JTlRSMF9NQVNLCQkweDA1ZWUKKworI2VuZGlmIC8qIF9fU0lMX1NJSTg2 MjBfSF9fICovCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==