From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 28120 invoked from network); 11 Jan 2023 14:18:26 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 11 Jan 2023 14:18:26 -0000 Content-Type: multipart/mixed; boundary="===============0598293851790158630==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_chromium=3A_update_to_109=2E0=2E5414=2E74=2E?= To: ml@inbox.vuxu.org From: Duncaen Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 11 Jan 2023 15:18:26 +0100 List-Id: Message-ID: <20230111141826.1X87W0Hcq8Z0zMB7tTAti4Mh5osTNxFUFYXJ3gxWLOA@z> GitHub notification mails are now in MIME to allow UTF8. --===============0598293851790158630== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgRHVuY2FlbiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vRHVu Y2Flbi92b2lkLXBhY2thZ2VzIGNocm9taXVtLTEwOQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDE1NzAKCmNocm9taXVtOiB1cGRhdGUgdG8gMTA5LjAu NTQxNC43NC4KW2NpIHNraXBdDQoNCiogW3hdIHg4Nl82NC1nbGliYw0KKiBbIF0geDg2XzY0LW11 c2wNCiogWyBdIGFhcmNoNjQtbXVzbA0KKiBbIF0gaTY4NgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0 cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQxNTcwLnBhdGNo IGlzIGF0dGFjaGVk --===============0598293851790158630== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-109-41570.patch" RnJvbSBlYzQ5ODE3Yzk0YmVkYjNhMzY5NmUxYjE0MjIyOWEyMzkxYzJlYTQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEdW5jYWVuIDxkdW5jYWVuQHZvaWRsaW51eC5vcmc+CkRhdGU6 IFdlZCwgMTEgSmFuIDIwMjMgMDE6Mjg6NDAgKzAxMDAKU3ViamVjdDogW1BBVENIXSBjaHJvbWl1 bTogdXBkYXRlIHRvIDEwOS4wLjU0MTQuNzQuCgotLS0KIC4uLi9tdXNsLXBhdGNoZXMveHh4LXBw YzY0bGUtc3VwcG9ydC5wYXRjaCAgICB8ICAxODcgLQogLi4uL3BhdGNoZXMvYnVpbGQtYWRkLXVz ZV9jeHgxNy5wYXRjaCAgICAgICAgIHwgICAzOCArLQogLi4uL3BhdGNoZXMvZml4LWJ1aWxkLXdp dGgtb2xkLWNsYW5nLnBhdGNoICAgIHwgICAyMCArCiAuLi4vcGF0Y2hlcy9maXgtY29uc3RleHBy LW5hcnJvd2luZy5wYXRjaCAgICAgfCAgIDIxICsKIC4uLi9wYXRjaGVzL2ZpeC1tdXNsLXB0aHJl YWQtc3RhY2tzaXplLnBhdGNoICB8ICAgNDAgLQogLi4uL2Nocm9taXVtL3BhdGNoZXMvZml4LW5h cnJvd2luZy1jYXN0LnBhdGNoIHwgICA1MyAtCiAuLi4vcGF0Y2hlcy9maXgtbmFzbS1tdXNsLWNv bmZpZy5wYXRjaCAgICAgICAgfCAgIDEyIC0KIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uYXJy b3dpbmctY2FzdC5wYXRjaCB8ICAgMjEgKwogLi4udWlsZC1lcnJvci1vbi1saW51eC13aXRoLXN5 c3RlbS16bGliLnBhdGNoIHwgICA0MSAtCiAuLi4vcGF0Y2hlcy9yZW1vdmUtc3RyaXBfYmluYXJ5 LnBhdGNoICAgICAgICAgfCAgIDMyIC0KIC4uLi9wYXRjaGVzL3h4eC1wcGM2NGxlLTRrLXBhZ2Vz LnBhdGNoICAgICAgICB8ICAgNjAgLQogLi4uL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUt bGlidnB4LnBhdGNoIHwgICAzMyAtCiAuLi4veHh4LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0 LnBhdGNoICAgICAgfCAgIDMxIC0KIC4uLi9wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0 Y2ggICAgICAgICB8IDM1OTAgLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9wYXRjaGVzL3h4eC1wcGM2 NGxlLXN3aWZ0c2hhZGVyLnBhdGNoICAgICB8ICAgMTggLQogc3JjcGtncy9jaHJvbWl1bS90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArLQogMTYgZmlsZXMgY2hhbmdlZCwgODMg aW5zZXJ0aW9ucygrKSwgNDEyNSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1idWlsZC13 aXRoLW9sZC1jbGFuZy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9maXgtY29uc3RleHByLW5hcnJvd2luZy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbXVzbC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtbmFycm93 aW5nLWNhc3QucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNo ZXMvZml4LW5hc20tbXVzbC1jb25maWcucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvbmFycm93aW5nLWNhc3QucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvcmUtZml4LVRGTGl0ZS1idWlsZC1lcnJvci1vbi1s aW51eC13aXRoLXN5c3RlbS16bGliLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL3JlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtNGstcGFnZXMucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUt bGlidnB4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L3h4eC1wcGM2NGxlLXNhbmRib3gtbGludXgtc3RhdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXN3aWZ0 c2hhZGVyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBh dGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMv bXVzbC1wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDU1NWY2OWMwNzJjOC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hy b21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxODcgKzAsMCBAQAotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L2JwZl9k c2wvc2VjY29tcF9tYWNyb3MuaCBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3Mu aAotaW5kZXggYTZhZWM1NDRlLi4yYTRhN2YxYmMgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9i cGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLSsrKyBzYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29t cF9tYWNyb3MuaAotQEAgLTE2LDcgKzE2LDcgQEAKLSAjaWYgZGVmaW5lZChfX21pcHNfXykKLSAv LyBzeXMvdXNlci5oIGluIGVnbGliYyBtaXNzZXMgc2l6ZV90IGRlZmluaXRpb24KLSAjaW5jbHVk ZSA8c3RkZGVmLmg+Ci0tI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyNlbGlmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykgJiYgZGVmaW5lZChfX0dMSUJDX18pCi0gLy8gTWFudWFsbHkgZGVm aW5lIGdyZWdfdCBvbiBwcGM2NAotIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGdyZWdfdDsK LSAjZW5kaWYKLUBAIC0zNjEsMTEgKzM2MSwxMSBAQCB0eXBlZGVmIHN0cnVjdCBwdF9yZWdzIHJl Z3Nfc3RydWN0OwotICNkZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElUX0FSQ0hfUFBDNjQKLSAjZW5k aWYKLSAKLS0jZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgoX2N0eCktPnVjX21jb250 ZXh0LnJlZ3MtPmdwcltfcmVnXSkKLSsjZGVmaW5lIFNFQ0NPTVBfUkVHKF9jdHgsIF9yZWcpICgo KHN0cnVjdCBwdF9yZWdzICopKF9jdHgpLT51Y19tY29udGV4dC5yZWdzKS0+Z3ByW19yZWddKQot IAotICNkZWZpbmUgU0VDQ09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKLSAj ZGVmaW5lIFNFQ0NPTVBfU1lTQ0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAwKQotLSNkZWZp bmUgU0VDQ09NUF9JUChfY3R4KSAoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPm5pcAotKyNkZWZp bmUgU0VDQ09NUF9JUChfY3R4KSAoKHN0cnVjdCBwdF9yZWdzICopKF9jdHgpLT51Y19tY29udGV4 dC5yZWdzKS0+bmlwCi0gI2RlZmluZSBTRUNDT01QX1BBUk0xKF9jdHgpIFNFQ0NPTVBfUkVHKF9j dHgsIDMpCi0gI2RlZmluZSBTRUNDT01QX1BBUk0yKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDQp Ci0gI2RlZmluZSBTRUNDT01QX1BBUk0zKF9jdHgpIFNFQ0NPTVBfUkVHKF9jdHgsIDUpCi1kaWZm IC0tZ2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYyBzYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKLWluZGV4IGQ1M2E3ZmY1Ni4uYzI5MGYwZTkyIDEwMDY0 NAotLS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotKysrIHNhbmRib3gv bGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwotQEAgLTQ5OSw5ICs0OTksOSBAQCB2b2lkIFN5 c2NhbGw6OlB1dFZhbHVlSW5VY29udGV4dChpbnRwdHJfdCByZXRfdmFsLCB1Y29udGV4dF90KiBj dHgpIHsKLSAgIC8vIFNhbWUgYXMgTUlQUywgbmVlZCB0byBpbnZlcnQgcmV0IGFuZCBzZXQgZXJy b3IgcmVnaXN0ZXIgKGNyMC5TTykKLSAgIGlmIChyZXRfdmFsIDw9IC0xICYmIHJldF92YWwgPj0g LTQwOTUpIHsKLSAgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOwotLSAgICBjdHgtPnVjX21jb250ZXh0 LnJlZ3MtPmNjciB8PSAoMSA8PCAyOCk7Ci0rICAgICgoc3RydWN0IHB0X3JlZ3MgKiljdHgtPnVj X21jb250ZXh0LnJlZ3MpLT5jY3IgfD0gKDEgPDwgMjgpOwotICAgfSBlbHNlIHsKLS0gICAgY3R4 LT51Y19tY29udGV4dC5yZWdzLT5jY3IgJj0gfigxIDw8IDI4KTsKLSsgICAgKChzdHJ1Y3QgcHRf cmVncyAqKWN0eC0+dWNfbWNvbnRleHQucmVncyktPmNjciAmPSB+KDEgPDwgMjgpOwotICAgfQot ICNlbmRpZgotICAgU0VDQ09NUF9SRVNVTFQoY3R4KSA9IHN0YXRpY19jYXN0PGdyZWdfdD4ocmV0 X3ZhbCk7Ci0tLS0gdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5z Y2FsZWRjeWNsZWNsb2NrX2NvbmZpZy5oCi0rKysgdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNs L2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNsZWNsb2NrX2NvbmZpZy5oCi1AQCAtMjIsNiArMjIs NyBAQAotIC8vIFRoZSBmb2xsb3dpbmcgcGxhdGZvcm1zIGhhdmUgYW4gaW1wbGVtZW50YXRpb24g b2YgYSBoYXJkd2FyZSBjb3VudGVyLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFwKLSAgICAgZGVmaW5lZChf X3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcmlzY3YpIHx8ICAg ICBcCi0rICAgICgoZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVmaW5lZChfX3BwY19fKSkgJiYg ZGVmaW5lZChfX0dMSUJDX18pKSB8fCBkZWZpbmVkKF9fcmlzY3YpIHx8ICAgICBcCi0gICAgIGRl ZmluZWQoX01fSVg4NikgfHwgKGRlZmluZWQoX01fWDY0KSAmJiAhZGVmaW5lZChfTV9BUk02NEVD KSkKLSAjZGVmaW5lIEFCU0xfSEFWRV9VTlNDQUxFRF9DWUNMRUNMT0NLX0lNUExFTUVOVEFUSU9O IDEKLSAjZWxzZQotLS0tIHRoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9kZWJ1Z2dpbmcvaW50 ZXJuYWwvc3RhY2t0cmFjZV9jb25maWcuaAotKysrIHRoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJz bC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV9jb25maWcuaAotQEAgLTY0LDcgKzY0LDcg QEAKLSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCi0gI2Rl ZmluZSBBQlNMX1NUQUNLVFJBQ0VfSU5MX0hFQURFUiBcCi0gICAiYWJzbC9kZWJ1Z2dpbmcvaW50 ZXJuYWwvc3RhY2t0cmFjZV94ODYtaW5sLmluYyIKLS0jZWxpZiBkZWZpbmVkKF9fcHBjX18pIHx8 IGRlZmluZWQoX19QUENfXykKLSsjZWxpZiAoZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9f UFBDX18pKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKLSAjZGVmaW5lIEFCU0xfU1RBQ0tUUkFDRV9J TkxfSEVBREVSIFwKLSAgICJhYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX3Bvd2Vy cGMtaW5sLmluYyIKLSAjZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbiB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgot aW5kZXggZjlhNjBlMzcuLjI1ZjNhMGI3IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFk L0JVSUxELmduCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLUBAIC02MzcsNiAr NjM3LDcgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAKLSAgICAgaWYgKGN1cnJl bnRfY3B1ID09ICJwcGM2NCIpIHsKLSAgICAgICAgIGRlZmluZXMgPSBbICJIQVZFX0dFVENPTlRF WFQiIF0KLSsgICAgICAgIGxpYnMgKz0gWyAidWNvbnRleHQiIF0KLSAgICAgfSBlbHNlIHsKLSAg ICAgICAgIHNvdXJjZXMgKz0gWwotICAgICAgICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xp bnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2lu Zm8uY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1w X3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLWluZGV4IDAzYWZlYzdhLi4wMjY0ZWNmMSAx MDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9p bmZvLmNjCi1AQCAtMjczLDYgKzI3Myw5IEBAIHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRl eHQoUmF3Q29udGV4dENQVSogb3V0KSBjb25zdCB7Ci0gCi0gI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotIAotKyNpbmNsdWRlIDxhc20vZWxmLmg+Ci0rI2luY2x1ZGUgPGFzbS9wdHJhY2Uu aD4KLSsKLSB1aW50cHRyX3QgVGhyZWFkSW5mbzo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKCkgY29u c3QgewotICAgICByZXR1cm4gbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotIH0KLUBAIC0yOTAs OSArMjkzLDkgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BV KiBvdXQpIGNvbnN0IHsKLSAgICAgb3V0LT5jdHIgPSBtY29udGV4dC5ncF9yZWdzW1BUX0NUUl07 Ci0gICAgIAotICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBD X0ZQUl9DT1VOVDsgaSsrKQotLSAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZwcmVnc1tpXSA9IG1j b250ZXh0LmZwX3JlZ3NbaV07Ci0rICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0g KCh1aW50NjRfdCAqKSZtY29udGV4dC5mcF9yZWdzKVtpXTsKLSAKLS0gICAgb3V0LT5mbG9hdF9z YXZlLmZwc2NyID0gbWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07Ci0rICAgIG91dC0+ZmxvYXRf c2F2ZS5mcHNjciA9ICgodWludDY0X3QgKikmbWNvbnRleHQuZnBfcmVncylbRUxGX05GUFJFRy0x XTsKLSAKLSAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJf Q09VTlQ7IGkrKykKLSAgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9IFwKLWRp ZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3Jl YWRlci5jYwotaW5kZXggMTA5MDQ3MGYuLmU1ODAyMzNkIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vj b250ZXh0X3JlYWRlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5jYwotQEAgLTI1 Nyw2ICsyNTcsOSBAQCB2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250 ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjKSB7Ci0gCi0gI2VsaWYgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotIAotKyNpbmNsdWRlIDxhc20vZWxmLmg+Ci0rI2luY2x1ZGUgPGFzbS9w dHJhY2UuaD4KLSsKLSB1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldFN0YWNrUG9pbnRlcihj b25zdCB1Y29udGV4dF90KiB1YykgewotICAgICByZXR1cm4gdWMtPnVjX21jb250ZXh0LmdwX3Jl Z3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdOwotIH0KLUBAIC0yODAsOSArMjgzLDkgQEAgdm9p ZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0LCBjb25z dCB1Y29udGV4dF90KiB1YywKLSAgICAgb3V0LT5jdHIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVn c1tQVF9DVFJdOwotICAgICAKLSAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NB VkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKLS0gICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJl Z3NbaV0gPSB1Yy0+dWNfbWNvbnRleHQuZnBfcmVnc1tpXTsKLSsgICAgICAgIG91dC0+ZmxvYXRf c2F2ZS5mcHJlZ3NbaV0gPSAoKHVpbnQ2NF90ICopJnVjLT51Y19tY29udGV4dC5mcF9yZWdzKVtp XTsKLSAKLS0gICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gdWMtPnVjX21jb250ZXh0LmZwX3Jl Z3NbTkZQUkVHLTFdOwotKyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSAoKHVpbnQ2NF90ICop JnVjLT51Y19tY29udGV4dC5mcF9yZWdzKVtFTEZfTkZQUkVHLTFdOwotIAotICAgICBmb3IgKGlu dCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKQotICAgICAg ICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldID0KLWRpZmYgLS1naXQgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5k bGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFu ZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotaW5kZXggNWE3YWI1MGMuLmVlOGI4NThjIDEwMDY0 NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFu ZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotQEAgLTEw NSw2ICsxMDUsMTEgQEAKLSAjZGVmaW5lIFBSX1NFVF9QVFJBQ0VSIDB4NTk2MTZkNjEKLSAjZW5k aWYKLSAKLSsvKiBtdXNsIGhhY2ssIGNhbid0IGluY2x1ZGUgYXNtL3B0cmFjZS5oIGFzIHRoYXQg Y2F1c2VzIGNvbmZsaWN0cyAqLwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICFkZWZp bmVkKFBUX05JUCkKLSsjZGVmaW5lIFBUX05JUCAzMgotKyNlbmRpZgotKwotIG5hbWVzcGFjZSBn b29nbGVfYnJlYWtwYWQgewotIAotIG5hbWVzcGFjZSB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmggdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaAot aW5kZXggOGUzMzVhMDkuLmIyYTBmMTU1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKLSsrKyB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCi1AQCAt NDY5LDcgKzQ2OSw3IEBAIHN0cnVjdCBNQ29udGV4dDY0IHsKLSAgIFNpZ25hbFRocmVhZENvbnRl eHQ2NCBncF9yZWdzOwotICAgU2lnbmFsRmxvYXRDb250ZXh0NjQgIGZwX3JlZ3M7Ci0gICBTaWdu YWxWZWN0b3JDb250ZXh0NjQgKnZfcmVnczsKLS0gIGludDY0X3Qgdm14X3Jlc2VydmVbNjldOwot KyAgaW50NjRfdCB2bXhfcmVzZXJ2ZVsxMDFdOwotIH07Ci0gCi0gc3RydWN0IENvbnRleHRUcmFp dHM2NCA6IHB1YmxpYyBUcmFpdHM2NCB7Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKLWluZGV4IGRlYTBkMWYzLi5iMjAzZTVi MiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3Ro cmVhZF9pbmZvLmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4 L3RocmVhZF9pbmZvLmgKLUBAIC0zMCw2ICszMCw3IEBACi0gCi0gI2lmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQotICNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KLSsjaW5jbHVkZSA8 YXNtL3B0cmFjZS5oPgotICNlbmRpZgotIAotIG5hbWVzcGFjZSBjcmFzaHBhZCB7Ci1kaWZmIC0t Z2l0IHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaCB0aGlyZF9wYXJ0eS9s c3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKLWluZGV4IDk5NTVjZTQ0Li40YzFjYzQ4OCAxMDA2 NDQKLS0tLSB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKLSsrKyB0aGly ZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKLUBAIC00MjE2LDkgKzQyMTYsMTMg QEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgewotICAgICB9Ci0gICAjZW5kaWYKLSAgICNpZiBkZWZp bmVkKF9fTlJfZnN0YXRhdDY0KQotKyAgICAvLyBtdXNsIGRvZXMgI2RlZmluZSBmc3RhdGF0NjQg ZnN0YXRhdAotKyAgICAjdW5kZWYgZnN0YXRhdDY0Ci0gICAgIExTU19JTkxJTkUgX3N5c2NhbGw0 KGludCwgICBmc3RhdGF0NjQsICAgICAgICBpbnQsICAgZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqLCAgICAgIHAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBrZXJuZWxfc3RhdDY0ICosICAgYiwgICAgaW50LCAgIGYpCi0rICAgIC8vIHNldCBpdCBi YWNrIGxpa2UgaXQgd2FzCi0rICAgICNkZWZpbmUgZnN0YXRhdDY0IGZzdGF0YXQKLSAgICNlbmRp ZgotICAgI2lmIGRlZmluZWQoX19OUl93YWl0cGlkKQotICAgICAvLyB3YWl0cGlkIGlzIHBvbHlm aWxsZWQgYmVsb3cgd2hlbiBub3QgYXZhaWxhYmxlLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2J1aWxkLWFkZC11c2VfY3h4MTcucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvYnVpbGQtYWRkLXVzZV9jeHgxNy5wYXRjaAppbmRleCAwOTFiMWM1NTM3MjcuLmI1 MDgyNWZiN2UyYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2J1aWxkLWFk ZC11c2VfY3h4MTcucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2J1aWxkLWFk ZC11c2VfY3h4MTcucGF0Y2gKQEAgLTEsMjYgKzEsMjIgQEAKIC0tLSBhL2J1aWxkL2NvbmZpZy9j b21waWxlci9CVUlMRC5nbgogKysrIGIvYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCi1A QCAtMTY3LDYgKzE2NywxMCBAQAotICAgIyBFbmFibGUgLUgsIHdoaWNoIHByaW50cyB0aGUgaW5j bHVkZSB0cmVlIGR1cmluZyBjb21waWxhdGlvbi4KLSAgICMgRm9yIHVzZSBieSB0b29scy9jbGFu Zy9zY3JpcHRzL2FuYWx5emVfaW5jbHVkZXMucHkKLSAgIHNob3dfaW5jbHVkZXMgPSBmYWxzZQot KwotKyAgIyBBbGxvdyBwcm9qZWN0cyB0aGF0IHdpc2ggdG8gc3RheSBvbiBDKysxNyB0byBvdmVy cmlkZSBDaHJvbWl1bSdzIGRlZmF1bHQuCi0rICAjIFRPRE8oY3JidWcuY29tLzE0MDIyNDkpOiBl dmFsdWF0ZSByZW1vdmluZyB0aGlzIGVuZCBvZiAyMDIzCi0rICB1c2VfY3h4MTcgPSBmYWxzZQor QEAgLTE5MSw2ICsxOTEsMTAgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gIng2NCIpKSkpCiAgfQogIAotIGRl Y2xhcmVfYXJncygpIHsKLUBAIC01OTYsNyArNjAwLDExIEBACi0gICAgIH0gZWxzZSBpZiAoaXNf bGludXgpIHsKLSAgICAgICAjIFRPRE8oY3JidWcuY29tLzEyODQyNzUpOiBTd2l0Y2ggdG8gQysr MjAgb24gYWxsIHBsYXRmb3Jtcy4KLSAgICAgICBpZiAoaXNfY2xhbmcpIHsKLS0gICAgICAgIGNm bGFnc19jYyArPSBbICItc3RkPSR7c3RhbmRhcmRfcHJlZml4fSsrMjAiIF0KLSsgICAgICAgIGlm ICh1c2VfY3h4MTcpIHsKLSsgICAgICAgICAgY2ZsYWdzX2NjICs9IFsgIi1zdGQ9JHtzdGFuZGFy ZF9wcmVmaXh9KysxNyIgXQotKyAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgY2ZsYWdzX2Nj ICs9IFsgIi1zdGQ9JHtzdGFuZGFyZF9wcmVmaXh9KysyMCIgXQotKyAgICAgICAgfQorK2RlY2xh cmVfYXJncygpIHsKKysgIHVzZV9jeHgxNyA9IGZhbHNlCisrfQorKworIGlmIChpc19hbmRyb2lk IHx8IChpc19jaHJvbWVvc19hc2ggJiYgaXNfY2hyb21lb3NfZGV2aWNlKSkgeworICAgIyBTZXQg dGhlIHBhdGggdG8gdXNlIG9yZGVyZmlsZSBmb3IgbGlua2luZyBDaHJvbWUKKyAgICMgTm90ZSB0 aGF0IHRoaXMgaXMgZm9yIHVzaW5nIG9ubHkgb25lIG9yZGVyZmlsZSBmb3IgbGlua2luZworQEAg LTYwNSw3ICs2MDksNyBAQAorICAgICAgICAgY2ZsYWdzX2NjICs9IFsgIi1mbm8tdHJpZ3JhcGhz IiBdCisgICAgICAgfQorICAgICB9IGVsc2UgaWYgKGlzX2NsYW5nKSB7CistICAgICAgaWYgKGlz X2Nocm9tZW9zX2RldmljZSkgeworKyAgICAgIGlmIChpc19jaHJvbWVvc19kZXZpY2UgfHwgdXNl X2N4eDE3KSB7CisgICAgICAgICAjIFRPRE8oY3JidWcuY29tLzEzOTI0NzEpOiBTdXBwb3J0IEMr KzIwIGluIENyT1MgdG9vbGNoYWluLgorICAgICAgICAgY2ZsYWdzX2NjICs9IFsgIi1zdGQ9JHtz dGFuZGFyZF9wcmVmaXh9KysxNyIgXQogICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAjIFRoZSBn Y2MgYm90cyBhcmUgY3VycmVudGx5IHVzaW5nIEdDQyA5LCB3aGljaCBpcyBub3QgbmV3IGVub3Vn aCB0bwotICAgICAgICAgIyBzdXBwb3J0ICJjKysyMCIvImdudSsrMjAiLgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1idWlsZC13aXRoLW9sZC1jbGFuZy5wYXRjaCBi L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtYnVpbGQtd2l0aC1vbGQtY2xhbmcucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mMjMyMThlNzFlNGQKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LWJ1aWxkLXdpdGgt b2xkLWNsYW5nLnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAKKy0tLSBhL2J1aWxkL2NvbmZpZy9jb21w aWxlci9CVUlMRC5nbgorKysrIGIvYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCitAQCAt ODA1LDE3ICs4MDUsNiBAQAorICAgICBjZmxhZ3MgKz0gWyAiLWZjb21wbGV0ZS1tZW1iZXItcG9p bnRlcnMiIF0KKyAgIH0KKyAKKy0gICMgVXNlIERXQVJGIHNpbXBsZSB0ZW1wbGF0ZSBuYW1lcywg d2l0aCB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnM6CistICAjCistICAjICogV2luZG93cyBpcyBu b3Qgc3VwcG9ydGVkIGFzIGl0IGRvZXNuJ3QgdXNlIERXQVJGLgorLSAgIyAqIEFwcGxlIHBsYXRm b3JtcyAoZS5nLiBNYWNPUywgaVBob25lLCBpUGFkKSBhcmVuJ3Qgc3VwcG9ydGVkIGJlY2F1c2Ug eGNvZGUKKy0gICMgICBsbGRiIGRvZXNuJ3QgaGF2ZSB0aGUgbmVlZGVkIGNoYW5nZXMgeWV0Lgor LSAgIyAqIEZ1Y2hzaWEgaXNuJ3Qgc3VwcG9ydGVkIGFzIHp4ZGIgZG9lc24ndCBzdXBwb3J0IHNp bXBsZSB0ZW1wbGF0ZSBuYW1lcyB5ZXQuCistICAjIFRPRE8oY3JidWcuY29tLzEzNzkwNzApOiBS ZW1vdmUgaWYgdGhlIHVwc3RyZWFtIGRlZmF1bHQgZXZlciBjaGFuZ2VzLgorLSAgaWYgKGlzX2Ns YW5nICYmICFpc19uYWNsICYmICFpc193aW4gJiYgIWlzX2FwcGxlICYmICFpc19mdWNoc2lhKSB7 CistICAgIGNmbGFnc19jYyArPSBbICItZ3NpbXBsZS10ZW1wbGF0ZS1uYW1lcyIgXQorLSAgfQor LQorICAgIyBNTEdPIHNwZWNpZmljIGZsYWdzLiBUaGVzZSBmbGFncyBlbmFibGUgYW4gTUwtYmFz ZWQgaW5saW5lciB0cmFpbmVkIG9uCisgICAjIENocm9tZSBvbiBBbmRyb2lkIChhcm0zMikgd2l0 aCBUaGluTFRPIGVuYWJsZWQsIG9wdGltaXppbmcgZm9yIHNpemUuCisgICAjIFRoZSAicmVsZWFz ZSIgTUwgbW9kZWwgaXMgZW1iZWRkZWQgaW50byBjbGFuZyBhcyBwYXJ0IG9mIGl0cyBidWlsZC4K ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtY29uc3RleHByLW5hcnJv d2luZy5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgtY29uc3RleHByLW5hcnJv d2luZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU3MGNh NmU2OWE4MAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9maXgt Y29uc3RleHByLW5hcnJvd2luZy5wYXRjaApAQCAtMCwwICsxLDIxIEBACistLS0gYS90aGlyZF9w YXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9tZWRpYS93ZWJfbWVkaWFfcGxheWVyX2ltcGwu Y2Mub3JpZworKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vbWVkaWEv d2ViX21lZGlhX3BsYXllcl9pbXBsLmNjCitAQCAtMzg4MSwxNSArMzg4MSwxNSBAQAorICAgICBj b25zdCBUJi4uLiB2YWx1ZXMpIHsKKyAgIHN0ZDo6c3RyaW5nIHN0cmtleSA9IHN0ZDo6c3RyaW5n KGtleSk7CisgCistICBpZiBjb25zdGV4cHIgKEZsYWdzICYga0VuY3J5cHRlZCkgeworKyAgaWYg Y29uc3RleHByIChGbGFncyAmIGtFbmNyeXB0ZWQgIT0gMCkgeworICAgICBpZiAoaXNfZW5jcnlw dGVkXykKKyAgICAgICBVbWFGdW5jdGlvbihzdHJrZXkgKyAiLkVNRSIsIHZhbHVlcy4uLik7Cisg ICB9CisgCistICBpZiBjb25zdGV4cHIgKEZsYWdzICYga1RvdGFsKQorKyAgaWYgY29uc3RleHBy IChGbGFncyAmIGtUb3RhbCAhPSAwKQorICAgICBVbWFGdW5jdGlvbihzdHJrZXkgKyAiLkFsbCIs IHZhbHVlcy4uLik7CisgCistICBpZiBjb25zdGV4cHIgKEZsYWdzICYga1BsYXliYWNrVHlwZSkg eworKyAgaWYgY29uc3RleHByIChGbGFncyAmIGtQbGF5YmFja1R5cGUgIT0gMCkgeworICAgICBh dXRvIGRlbXV4ZXJfdHlwZSA9IEdldERlbXV4ZXJUeXBlKCk7CisgICAgIGlmICghZGVtdXhlcl90 eXBlLmhhc192YWx1ZSgpKQorICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hy b21pdW0vcGF0Y2hlcy9maXgtbXVzbC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaCBiL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9maXgtbXVzbC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Q1NTMzMTkwZGI5Li4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1tdXNsLXB0aHJlYWQtc3RhY2tzaXplLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLS0tIGEvYmFzZS90aHJlYWRpbmcvcGxh dGZvcm1fdGhyZWFkX2xpbnV4LmNjCi0rKysgYi9iYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJl YWRfbGludXguY2MKLUBAIC00MzYsOCArNDM2LDEzIEBACi0gCi0gc2l6ZV90IEdldERlZmF1bHRU aHJlYWRTdGFja1NpemUoY29uc3QgcHRocmVhZF9hdHRyX3QmIGF0dHJpYnV0ZXMpIHsKLSAjaWYg IWRlZmluZWQoVEhSRUFEX1NBTklUSVpFUikKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pCi0gICBy ZXR1cm4gMDsKLSAjZWxzZQotKyAgLy8gbXVzbCBsaWJjcyBkZWZhdWx0IGlzIHRvbyBzbWFsbCwg dXNlIDhtYiBsaWtlIGdsaWJjCi0rICByZXR1cm4gKDEgPDwgMjMpOwotKyNlbmRpZgotKyNlbHNl Ci0gICAvLyBUaHJlYWRTYW5pdGl6ZXIgYmxvYXRzIHRoZSBzdGFjayBoZWF2aWx5LiBFdmlkZW5j ZSBoYXMgYmVlbiB0aGF0IHRoZQotICAgLy8gZGVmYXVsdCBzdGFjayBzaXplIGlzbid0IGVub3Vn aCBmb3Igc29tZSBicm93c2VyIHRlc3RzLgotICAgcmV0dXJuIDIgKiAoMSA8PCAyMyk7ICAvLyAy IHRpbWVzIDgxOTJLICh0aGUgZGVmYXVsdCBzdGFjayBzaXplIG9uIExpbnV4KS4KLS0tLSBhL2No cm9tZS9icm93c2VyL3NodXRkb3duX3NpZ25hbF9oYW5kbGVyc19wb3NpeC5jYwotKysrIGIvY2hy b21lL2Jyb3dzZXIvc2h1dGRvd25fc2lnbmFsX2hhbmRsZXJzX3Bvc2l4LmNjCi1AQCAtMTg4LDEx ICsxODgsMjEgQEAKLSAgIGdfc2h1dGRvd25fcGlwZV9yZWFkX2ZkID0gcGlwZWZkWzBdOwotICAg Z19zaHV0ZG93bl9waXBlX3dyaXRlX2ZkID0gcGlwZWZkWzFdOwotICNpZiAhZGVmaW5lZChBRERS RVNTX1NBTklUSVpFUikKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pCi0gICBjb25zdCBzaXplX3Qg a1NodXRkb3duRGV0ZWN0b3JUaHJlYWRTdGFja1NpemUgPSBQVEhSRUFEX1NUQUNLX01JTiAqIDI7 Ci0gI2Vsc2UKLSsgIC8vIG1hdGNoIHVwIG11c2xzIDJrIFBUSFJFQURfU1RBQ0tfTUlOIHdpdGgg Z2xpYmNzIDE2awotKyAgY29uc3Qgc2l6ZV90IGtTaHV0ZG93bkRldGVjdG9yVGhyZWFkU3RhY2tT aXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiAyICogODsKLSsjZW5kaWYKLSsjZWxzZQotICAgLy8g QVNhbiBpbnN0cnVtZW50YXRpb24gYmxvYXRzIHRoZSBzdGFjayBmcmFtZXMsIHNvIHdlIG5lZWQg dG8gaW5jcmVhc2UgdGhlCi0gICAvLyBzdGFjayBzaXplIHRvIGF2b2lkIGhpdHRpbmcgdGhlIGd1 YXJkIHBhZ2UuCi0rI2lmIGRlZmluZWQoX19HTElCQ19fKQotICAgY29uc3Qgc2l6ZV90IGtTaHV0 ZG93bkRldGVjdG9yVGhyZWFkU3RhY2tTaXplID0gUFRIUkVBRF9TVEFDS19NSU4gKiA0OwotKyNl bHNlCi0rICBjb25zdCBzaXplX3Qga1NodXRkb3duRGV0ZWN0b3JUaHJlYWRTdGFja1NpemUgPSBQ VEhSRUFEX1NUQUNLX01JTiAqIDQgKiA4OwotKyAgLy8gbWF0Y2ggdXAgbXVzbHMgMmsgUFRIUkVB RF9TVEFDS19NSU4gd2l0aCBnbGliY3MgMTZrCi0rI2VuZGlmCi0gI2VuZGlmCi0gICBTaHV0ZG93 bkRldGVjdG9yKiBkZXRlY3RvciA9IG5ldyBTaHV0ZG93bkRldGVjdG9yKAotICAgICAgIGdfc2h1 dGRvd25fcGlwZV9yZWFkX2ZkLCBzdGQ6Om1vdmUoc2h1dGRvd25fY2FsbGJhY2spLCB0YXNrX3J1 bm5lcik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LW5hcnJvd2lu Zy1jYXN0LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1uYXJyb3dpbmctY2Fz dC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWZkNDJhMTQ4OWFlLi4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1uYXJyb3dpbmctY2Fz dC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS0tLSBhL2Jhc2UvZmlsZXMv ZmlsZV91dGlsX2xpbnV4LmNjCi0rKysgYi9iYXNlL2ZpbGVzL2ZpbGVfdXRpbF9saW51eC5jYwot QEAgLTIzLDE0ICsyMywxNCBAQAotIAotICAgLy8gTm90IGFsbCBwb3NzaWJsZSB8c3RhdGZzX2J1 Zi5mX3R5cGV8IHZhbHVlcyBhcmUgaW4gbGludXgvbWFnaWMuaC4KLSAgIC8vIE1pc3NpbmcgdmFs dWVzIGFyZSBjb3BpZWQgZnJvbSB0aGUgc3RhdGZzIG1hbiBwYWdlLgotLSAgc3dpdGNoIChzdGF0 ZnNfYnVmLmZfdHlwZSkgewotKyAgc3dpdGNoIChzdGF0aWNfY2FzdDx1aW50bWF4X3Q+KHN0YXRm c19idWYuZl90eXBlKSkgewotICAgICBjYXNlIDA6Ci0gICAgICAgKnR5cGUgPSBGSUxFX1NZU1RF TV8wOwotICAgICAgIGJyZWFrOwotICAgICBjYXNlIEVYVDJfU1VQRVJfTUFHSUM6ICAvLyBBbHNv IGV4dDMgYW5kIGV4dDQKLSAgICAgY2FzZSBNU0RPU19TVVBFUl9NQUdJQzoKLSAgICAgY2FzZSBS RUlTRVJGU19TVVBFUl9NQUdJQzoKLS0gICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQ+KEJUUkZTX1NV UEVSX01BR0lDKToKLSsgICAgY2FzZSBCVFJGU19TVVBFUl9NQUdJQzoKLSAgICAgY2FzZSAweDUz NDY1NDRFOiAgLy8gTlRGUwotICAgICBjYXNlIDB4NTg0NjUzNDI6ICAvLyBYRlMKLSAgICAgY2Fz ZSAweDMxNTM0NjRBOiAgLy8gSkZTCi1AQCAtNDAsMTQgKzQwLDE0IEBACi0gICAgICAgKnR5cGUg PSBGSUxFX1NZU1RFTV9ORlM7Ci0gICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgU01CX1NVUEVSX01B R0lDOgotLSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oMHhGRjUzNEQ0Mik6ICAvLyBDSUZTCi0r ICAgIGNhc2UgMHhGRjUzNEQ0MjogIC8vIENJRlMKLSAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVN X1NNQjsKLSAgICAgICBicmVhazsKLSAgICAgY2FzZSBDT0RBX1NVUEVSX01BR0lDOgotICAgICAg ICp0eXBlID0gRklMRV9TWVNURU1fQ09EQTsKLSAgICAgICBicmVhazsKLS0gICAgY2FzZSBzdGF0 aWNfY2FzdDxpbnQ+KEhVR0VUTEJGU19NQUdJQyk6Ci0tICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50 PihSQU1GU19NQUdJQyk6Ci0rICAgIGNhc2UgSFVHRVRMQkZTX01BR0lDOgotKyAgICBjYXNlIFJB TUZTX01BR0lDOgotICAgICBjYXNlIFRNUEZTX01BR0lDOgotICAgICAgICp0eXBlID0gRklMRV9T WVNURU1fTUVNT1JZOwotICAgICAgIGJyZWFrOwotLS0tIGEvYmFzZS9zeXN0ZW0vc3lzX2luZm9f cG9zaXguY2MKLSsrKyBiL2Jhc2Uvc3lzdGVtL3N5c19pbmZvX3Bvc2l4LmNjCi1AQCAtMTAwLDEw ICsxMDAsMTAgQEAKLSAgIGlmIChIQU5ETEVfRUlOVFIoc3RhdGZzKHBhdGgudmFsdWUoKS5jX3N0 cigpLCAmc3RhdHMpKSAhPSAwKQotICAgICByZXR1cm4gZmFsc2U7Ci0gCi0tICBzd2l0Y2ggKHN0 YXRzLmZfdHlwZSkgewotKyAgc3dpdGNoIChzdGF0aWNfY2FzdDx1aW50bWF4X3Q+KHN0YXRzLmZf dHlwZSkpIHsKLSAgICAgY2FzZSBUTVBGU19NQUdJQzoKLS0gICAgY2FzZSBzdGF0aWNfY2FzdDxp bnQ+KEhVR0VUTEJGU19NQUdJQyk6Ci0tICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihSQU1GU19N QUdJQyk6Ci0rICAgIGNhc2UgSFVHRVRMQkZTX01BR0lDOgotKyAgICBjYXNlIFJBTUZTX01BR0lD OgotICAgICAgIHJldHVybiB0cnVlOwotICAgfQotICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1uYXNtLW11c2wtY29uZmlnLnBhdGNoIGIv c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2ZpeC1uYXNtLW11c2wtY29uZmlnLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YTAzMzdmM2JmM2IuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvZml4LW5hc20tbXVzbC1jb25maWcucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0gYS90aGlyZF9wYXJ0eS9uYXNtL2NvbmZp Zy9jb25maWctbGludXguaAotKysrIGIvdGhpcmRfcGFydHkvbmFzbS9jb25maWcvY29uZmlnLWxp bnV4LmgKLUBAIC0xMzksNyArMTM5LDkgQEAKLSAjZGVmaW5lIEhBVkVfQUNDRVNTIDEKLSAKLSAv KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNhbm9uaWNhbGl6ZV9maWxlX25hbWUnIGZ1 bmN0aW9uLiAqLwotKyNpZmRlZiBfX0dMSUJDX18KLSAjZGVmaW5lIEhBVkVfQ0FOT05JQ0FMSVpF X0ZJTEVfTkFNRSAxCi0rI2VuZGlmCi0gCi0gLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IGBjcHVfdG9fbGUxNicgaW50cmluc2ljIGZ1bmN0aW9uLiAqLwotIC8qICN1bmRlZiBIQVZFX0NQ VV9UT19MRTE2ICovCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbmFycm93 aW5nLWNhc3QucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbmFycm93aW5nLWNhc3Qu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kMTA5NDBlYjdl ODkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbmFycm93aW5n LWNhc3QucGF0Y2gKQEAgLTAsMCArMSwyMSBAQAorZnJvbSB0aGUgbWFucGFnZSBmb3Igc3RhdGZz OgorCitUaGUgX19mc3dvcmRfdCB0eXBlIHVzZWQgZm9yIHZhcmlvdXMgZmllbGRzIGluIHRoZSBz dGF0ZnMgc3RydWN0dXJlCitkZWZpbml0aW9uIGlzIGEgZ2xpYmMgaW50ZXJuYWwgdHlwZSwgbm90 IGludGVuZGVkIGZvciBwdWJsaWMgdXNlLiAgVGhpcworbGVhdmVzIHRoZSBwcm9ncmFtbWVyIGlu IGEgYml0IG9mIGEgY29udW5kcnVtIHdoZW4gdHJ5aW5nIHRvIGNvcHkgb3IKK2NvbXBhcmUgdGhl c2UgZmllbGRzIHRvIGxvY2FsIHZhcmlhYmxlcyBpbiBhIHByb2dyYW0uICBVc2luZwordW5zaWdu ZWTCoGludCBmb3Igc3VjaCB2YXJpYWJsZXMgc3VmZmljZXMgb24gbW9zdCBzeXN0ZW1zLgorCist LS0gYS9iYXNlL3N5c3RlbS9zeXNfaW5mb19wb3NpeC5jYworKysrIGIvYmFzZS9zeXN0ZW0vc3lz X2luZm9fcG9zaXguY2MKK0BAIC02NCw4ICs2NCw4IEBACisgCisgICBzd2l0Y2ggKHN0YXRzLmZf dHlwZSkgeworICAgICBjYXNlIFRNUEZTX01BR0lDOgorLSAgICBjYXNlIHN0YXRpY19jYXN0PGlu dD4oSFVHRVRMQkZTX01BR0lDKToKKy0gICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQ+KFJBTUZTX01B R0lDKToKKysgICAgY2FzZSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KEhVR0VUTEJGU19NQUdJ Qyk6CisrICAgIGNhc2Ugc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihSQU1GU19NQUdJQyk6Cisg ICAgICAgcmV0dXJuIHRydWU7CisgICB9CisgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9z cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvcmUtZml4LVRGTGl0ZS1idWlsZC1lcnJvci1vbi1saW51 eC13aXRoLXN5c3RlbS16bGliLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3JlLWZp eC1URkxpdGUtYnVpbGQtZXJyb3Itb24tbGludXgtd2l0aC1zeXN0ZW0temxpYi5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTNkNTA0ZDNlNzkyLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3JlLWZpeC1URkxpdGUtYnVpbGQtZXJyb3Itb24t bGludXgtd2l0aC1zeXN0ZW0temxpYi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAg QEAKLUZyb20gZGRhMDFhNzA2NDUzZGVkOGMwMWM0MTc3NTcwN2NiNWVmNGUzMTZmOCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFuZHJlcyBTYWxvbW9uIDxkaWxpbmdlckBxdWV1ZWQu bmV0PgotRGF0ZTogVHVlLCAyNSBPY3QgMjAyMiAyMToxMTo0NiArMDAwMAotU3ViamVjdDogW1BB VENIXSBSZS1maXggVEZMaXRlIGJ1aWxkIGVycm9yIG9uIGxpbnV4IHdoZW4gdXNpbmcgdGhlIHN5 c3RlbSB6bGliCi0KLUluIGNvbW1pdCBhZTBmOWFkYjdlMTRjMGQxOWNhNjk1ZWY2YWQ0MGIzMjFh OGNiNjRjLCBJIGZpeGVkIHNvbWUgYnVpbGQKLWVycm9ycyByZWxhdGVkIHRvIG1pbml6aXAgcGF0 Y2ggaW5jbHVzaW9uIGluIFRGTGl0ZS4gSG93ZXZlciwgYWZ0ZXIgdGhhdAotd2hlbiBURkxpdGUg U3VwcG9ydCB3YXMgcm9sbGVkIHRvIEhFQUQsIGEgc21hbGwgcGFydCBvZiB0aGF0IHBhdGNoIGdv dAotZHJvcHBlZC4gVGhlIHJlc3VsdCBpcyB0aGUgZm9sbG93aW5nIGJ1aWxkIGVycm9yIHdpdGgg MTA3LjAuNTMwNC42MjoKLQotLi4vLi4vdGhpcmRfcGFydHkvdGZsaXRlX3N1cHBvcnQvc3JjL3Rl bnNvcmZsb3dfbGl0ZV9zdXBwb3J0L21ldGFkYXRhL2NjL3V0aWxzL3ppcF9yZWFkb25seV9tZW1f ZmlsZS5jYzoyMjoxMDogZmF0YWwgZXJyb3I6ICdjb250cmliL21pbml6aXAvaW9hcGkuaCcgZmls ZSBub3QgZm91bmQKLSAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLTEgZXJyb3Ig Z2VuZXJhdGVkLgotCi1UaGlzIGNvbW1pdCByZS1hZGRzIHRoZSBsb3N0IGZpeC4KLQotUj1qdW56 b3VAY2hyb21pdW0ub3JnCi0KLUNoYW5nZS1JZDogSWU5NmMzNTcxODk0YjUxMDBhMWUyYTI3NzFk YTI5Njk5ZWZmMGJlYjMKLVJldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29n bGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMzk3MjA4NwotUmV2aWV3ZWQtYnk6IFJvYmVy dCBPZ2RlbiA8cm9iZXJ0b2dkZW5AY2hyb21pdW0ub3JnPgotQ29tbWl0LVF1ZXVlOiBSb2JlcnQg T2dkZW4gPHJvYmVydG9nZGVuQGNocm9taXVtLm9yZz4KLUF1dG8tU3VibWl0OiBBbmRyZXMgU2Fs b21vbiA8ZGlsaW5nZXJAcXVldWVkLm5ldD4KLUNyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFk cy9tYWluQHsjMTA2MzQ3OH0KLS0tLQotIC4uLi9tZXRhZGF0YS9jYy91dGlscy96aXBfcmVhZG9u bHlfbWVtX2ZpbGUuY2MgICAgICAgICAgICAgICAgICB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3RmbGl0ZV9zdXBwb3J0L3NyYy90ZW5zb3JmbG93X2xpdGVfc3VwcG9ydC9tZXRhZGF0YS9jYy91 dGlscy96aXBfcmVhZG9ubHlfbWVtX2ZpbGUuY2MgYi90aGlyZF9wYXJ0eS90ZmxpdGVfc3VwcG9y dC9zcmMvdGVuc29yZmxvd19saXRlX3N1cHBvcnQvbWV0YWRhdGEvY2MvdXRpbHMvemlwX3JlYWRv bmx5X21lbV9maWxlLmNjCi1pbmRleCAzOTJiNmI0MTFmZS4uNTI1YWU0YTJiNDUgMTAwNjQ0Ci0t LS0gYS90aGlyZF9wYXJ0eS90ZmxpdGVfc3VwcG9ydC9zcmMvdGVuc29yZmxvd19saXRlX3N1cHBv cnQvbWV0YWRhdGEvY2MvdXRpbHMvemlwX3JlYWRvbmx5X21lbV9maWxlLmNjCi0rKysgYi90aGly ZF9wYXJ0eS90ZmxpdGVfc3VwcG9ydC9zcmMvdGVuc29yZmxvd19saXRlX3N1cHBvcnQvbWV0YWRh dGEvY2MvdXRpbHMvemlwX3JlYWRvbmx5X21lbV9maWxlLmNjCi1AQCAtMTksNyArMTksNyBAQCBs aW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotIAotICNp bmNsdWRlICJhYnNsL3N0cmluZ3Mvc3RyaW5nX3ZpZXcuaCIgIC8vIGZyb20gQGNvbV9nb29nbGVf YWJzbAotLSNpbmNsdWRlICJjb250cmliL21pbml6aXAvaW9hcGkuaCIKLSsjaW5jbHVkZSAidGhp cmRfcGFydHkvemxpYi9jb250cmliL21pbml6aXAvaW9hcGkuaCIKLSAKLSBuYW1lc3BhY2UgdGZs aXRlIHsKLSBuYW1lc3BhY2UgbWV0YWRhdGEgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL3JlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvcmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggOGIxM2M2YTA1NmE4Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL3JlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMiAr MCwwIEBACi0tLS0gYS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvQlVJTEQuZ24ub3JpZwotKysr IGIvY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL0JVSUxELmduCi1AQCAtMzA4LDExICszMDgsNyBA QAotICAgfQotIH0KLSAKLS1pZiAoaXNfbGludXgpIHsKLS0gIGNocm9tZWRyaXZlcl9vdXRwdXQg PSAiY2hyb21lZHJpdmVyLnVuc3RyaXBwZWQiCi0tfSBlbHNlIHsKLS0gIGNocm9tZWRyaXZlcl9v dXRwdXQgPSAiY2hyb21lZHJpdmVyIgotLX0KLStjaHJvbWVkcml2ZXJfb3V0cHV0ID0gImNocm9t ZWRyaXZlciIKLSAKLSBleGVjdXRhYmxlKCIkY2hyb21lZHJpdmVyX291dHB1dCIpIHsKLSAgIHRl c3Rvbmx5ID0gdHJ1ZQotQEAgLTMzNiwxNiArMzMyLDYgQEAKLSAgIH0KLSB9Ci0gCi0taWYgKGlz X2xpbnV4KSB7Ci0tICBzdHJpcF9iaW5hcnkoImNocm9tZWRyaXZlciIpIHsKLS0gICAgdGVzdG9u bHkgPSB0cnVlCi0tICAgIGJpbmFyeV9pbnB1dCA9ICIkcm9vdF9vdXRfZGlyLyRjaHJvbWVkcml2 ZXJfb3V0cHV0IgotLSAgICBzeW1ib2xfb3V0cHV0ID0gIiRyb290X291dF9kaXIvY2hyb21lZHJp dmVyLmRlYnVnIgotLSAgICBzdHJpcHBlZF9iaW5hcnlfb3V0cHV0ID0gIiRyb290X291dF9kaXIv Y2hyb21lZHJpdmVyIgotLSAgICBkZXBzID0gWyAiOiRjaHJvbWVkcml2ZXJfb3V0cHV0IiBdCi0t ICB9Ci0tfQotLQotIHB5dGhvbl9saWJyYXJ5KCJjaHJvbWVkcml2ZXJfcHlfdGVzdHMiKSB7Ci0g ICB0ZXN0b25seSA9IHRydWUKLSAgIGRlcHMgPSBbCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtNGstcGFnZXMucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMveHh4LXBwYzY0bGUtNGstcGFnZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDI4YzRhZDM1ZjE0ZS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21p dW0vcGF0Y2hlcy94eHgtcHBjNjRsZS00ay1wYWdlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDYwICswLDAgQEAKLWNvbW1pdCA0NTgwOWY4NWJjMzUyNGY4NjdlNmU5NTRmNDQ0ZmRkZDIzMzMy NDVhCi1BdXRob3I6IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiAgIEZyaSBKYW4g NyAxODoxODo1MiAyMDIyICswMTAwCi0KLSAgICBzd2l0Y2ggcHBjNjQgdG8gNGsgcGFnZXMKLSAg ICAKLSAgICBzaW5jZSB0aGUgcGFydGl0aW9uIGFsbG9jYXRvciBhcHBlYXJzIHRvIGhhdGUgbGFy Z2VyIGNvbnN0YW50cwotICAgIGFuZCBhdCB0aGlzIHBvaW50IGVycm9ycyBhdCBjb21waWxlIHRp bWUgYW5kIGkgYW0gbm90IHdpbGxpbmcKLSAgICB0byB3YWRlIHRocm91Z2ggdGhpcyBwaWxlIG9m IGN1cnNlIGFuZCB3ZSB1c2UgNGsga2VybmVscyBhbnl3YXksCi0gICAgYXNzdW1lIDRLIHBhZ2Vz IGZvciBwcGM2NAotCi1kaWZmIC0tZ2l0IGEvYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9j YXRvci9wYWdlX2FsbG9jYXRvcl9jb25zdGFudHMuaCBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlv bl9hbGxvY2F0b3IvcGFnZV9hbGxvY2F0b3JfY29uc3RhbnRzLmgKLWluZGV4IGJmZDU3NTMuLjA0 NTA4MmIgMTAwNjQ0Ci0tLS0gYS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3Bh Z2VfYWxsb2NhdG9yX2NvbnN0YW50cy5oCi0rKysgYi9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25f YWxsb2NhdG9yL3BhZ2VfYWxsb2NhdG9yX2NvbnN0YW50cy5oCi1AQCAtNjksNyArNjksNyBAQCBu YW1lc3BhY2UgYmFzZSB7Ci0KLSBQQUdFX0FMTE9DQVRPUl9DT05TVEFOVFNfREVDTEFSRV9DT05T VEVYUFIgUEFfQUxXQVlTX0lOTElORSBzaXplX3QKLSBQYWdlQWxsb2NhdGlvbkdyYW51bGFyaXR5 U2hpZnQoKSB7Ci0tI2lmIEJVSUxERkxBRyhJU19XSU4pIHx8IGRlZmluZWQoQVJDSF9DUFVfUFBD NjQpCi0rI2lmIEJVSUxERkxBRyhJU19XSU4pCi0gICAvLyBNb2Rlcm4gcHBjNjQgc3lzdGVtcyBz dXBwb3J0IDRrQiAoc2hpZnQgPSAxMikgYW5kIDY0a0IgKHNoaWZ0ID0gMTYpIHBhZ2UKLSAgIC8v IHNpemVzLiAgU2luY2UgNjRrQiBpcyB0aGUgZGUgZmFjdG8gc3RhbmRhcmQgb24gdGhlIHBsYXRm b3JtIGFuZCBiaW5hcmllcwotICAgLy8gY29tcGlsZWQgZm9yIDY0a0IgYXJlIGxpa2VseSB0byB3 b3JrIG9uIDRrQiBzeXN0ZW1zLCA2NGtCIGlzIGEgZ29vZCBjaG9pY2UKLWRpZmYgLS1naXQgYS9i YXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY19jb25zdGFu dHMuaCBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9j X2NvbnN0YW50cy5oCi1pbmRleCAwYjkyNjBkLi4zZTA1NGVjIDEwMDY0NAotLS0tIGEvYmFzZS9h bGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NfY29uc3RhbnRzLmgK LSsrKyBiL2Jhc2UvYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9j X2NvbnN0YW50cy5oCi1AQCAtOTAsMTEgKzkwLDYgQEAKLSBQYXJ0aXRpb25QYWdlU2hpZnQoKSB7 Ci0gICByZXR1cm4gMTY7ICAvLyA2NCBLaUIKLSB9Ci0tI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NCkKLS1QQUdFX0FMTE9DQVRPUl9DT05TVEFOVFNfREVDTEFSRV9DT05TVEVYUFIgUEFfQUxX QVlTX0lOTElORSBzaXplX3QKLS1QYXJ0aXRpb25QYWdlU2hpZnQoKSB7Ci0tICByZXR1cm4gMTg7 ICAvLyAyNTYgS2lCCi0tfQotICNlbGlmIChCVUlMREZMQUcoSVNfQVBQTEUpICYmIGRlZmluZWQo QVJDSF9DUFVfNjRfQklUUykpIHx8IFwKLSAgICAgKEJVSUxERkxBRyhJU19MSU5VWCkgJiYgZGVm aW5lZChBUkNIX0NQVV9BUk02NCkpCi0gUEFHRV9BTExPQ0FUT1JfQ09OU1RBTlRTX0RFQ0xBUkVf Q09OU1RFWFBSIFBBX0FMV0FZU19JTkxJTkUgc2l6ZV90Ci0tLS0gYS9iYXNlL2FsbG9jYXRvci9w YXJ0aXRpb25fYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY19mb3J3YXJkLmgKLSsrKyBiL2Jhc2Uv YWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jX2ZvcndhcmQuaAot QEAgLTI1LDEyICsyNSwxNyBAQAotIC8vIHRoZSBzZWNvbmQgb25lIDE2LiBXZSBjb3VsZCB0ZWNo bmljYWxseSByZXR1cm4gc29tZXRoaW5nIGRpZmZlcmVudCBmb3IKLSAvLyBtYWxsb2MoKSBhbmQg b3BlcmF0b3IgbmV3KCksIGJ1dCB0aGlzIHdvdWxkIGNvbXBsaWNhdGUgdGhpbmdzLCBhbmQgbW9z dCBvZgotIC8vIG91ciBhbGxvY2F0aW9ucyBhcmUgcHJlc3VtYWJseSBjb21pbmcgZnJvbSBvcGVy YXRvciBuZXcoKSBhbnl3YXkuCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsvKiB3ZSB3 YW50IHRoaXMgdG8gYmUgMTYgaGVyZSBhbHdheXMgKi8KLStjb25zdGV4cHIgc2l6ZV90IGtBbGln bm1lbnQgPSAxNjsKLSsjZWxzZQotIGNvbnN0ZXhwciBzaXplX3Qga0FsaWdubWVudCA9Ci0gICAg IHN0ZDo6bWF4KGFsaWdub2YobWF4X2FsaWduX3QpLAotICAgICAgICAgICAgICBzdGF0aWNfY2Fz dDxzaXplX3Q+KF9fU1REQ1BQX0RFRkFVTFRfTkVXX0FMSUdOTUVOVF9fKSk7Ci0gc3RhdGljX2Fz c2VydChrQWxpZ25tZW50IDw9IDE2LAotICAgICAgICAgICAgICAgIlBhcnRpdGlvbkFsbG9jIGRv ZXNuJ3Qgc3VwcG9ydCBhIGZ1bmRhbWVudGFsIGFsaWdubWVudCBsYXJnZXIgIgotICAgICAgICAg ICAgICAgInRoYW4gMTYgYnl0ZXMuIik7Ci0rI2VuZGlmCi0gCi0gY29uc3RleHByIGJvb2wgVGhy ZWFkU2FmZSA9IHRydWU7Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv eHh4LXBwYzY0bGUtbGlidnB4LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1w cGM2NGxlLWxpYnZweC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGMwM2Fk NGE2NWViLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1w cGM2NGxlLWxpYnZweC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLWNvbW1p dCA5ODE0MzdiYzg0NmZjZGI4NTQwNjJlODlmZDNkODZmMTEyZTVmNDI2Ci1BdXRob3I6IHE2NiA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiAgIFNhdCBKdW4gMjUgMTI6MzU6MzcgMjAyMiAr MDIwMAotCi0gICAgVXNlIGdlbmVyaWMgdGFyZ2V0IGZvciBub3cuCi0gICAgCi0gICAgVGhpcyBp cyBiZWNhdXNlIHRoZSBzb3VyY2UgdHJlZSBpcyBtaXNzaW5nIHZzeCBvcHRpbWl6YXRpb25zIHRo YXQKLSAgICB0aGVuIGRvIG5vdCBnZXQgaW5jbHVkZWQgYW5kIHJlc3VsdCBpbiBmYWlsZWQgbGlu a2luZyBzdWNoIGFzOgotICAgIAotICAgIGxkLmxsZDogZXJyb3I6IHVuZGVmaW5lZCBzeW1ib2w6 IHZweF9tc2UxNngxNl92c3gKLQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYnZweC9nZW5l cmF0ZV9nbmkuc2ggYi90aGlyZF9wYXJ0eS9saWJ2cHgvZ2VuZXJhdGVfZ25pLnNoCi1pbmRleCA3 NDI5MDgwLi40M2VlMjlhIDEwMDc1NQotLS0tIGEvdGhpcmRfcGFydHkvbGlidnB4L2dlbmVyYXRl X2duaS5zaAotKysrIGIvdGhpcmRfcGFydHkvbGlidnB4L2dlbmVyYXRlX2duaS5zaAotQEAgLTQw NSw3ICs0MDUsNyBAQAotIGdlbl9jb25maWdfZmlsZXMgbGludXgvbWlwczY0ZWwgIi0tdGFyZ2V0 PW1pcHM2NC1saW51eC1nY2MgJHthbGxfcGxhdGZvcm1zfSIKLSBnZW5fY29uZmlnX2ZpbGVzIGxp bnV4L2xvb25nYXJjaCBcCi0gICAiLS10YXJnZXQ9bG9vbmdhcmNoNjQtbGludXgtZ2NjICR7YWxs X3BsYXRmb3Jtc30iCi0tZ2VuX2NvbmZpZ19maWxlcyBsaW51eC9wcGM2NCAiLS10YXJnZXQ9cHBj NjRsZS1saW51eC1nY2MgJHthbGxfcGxhdGZvcm1zfSIKLStnZW5fY29uZmlnX2ZpbGVzIGxpbnV4 L3BwYzY0ICItLXRhcmdldD1nZW5lcmljLWdudSAke2FsbF9wbGF0Zm9ybXN9IgotIGdlbl9jb25m aWdfZmlsZXMgbGludXgvZ2VuZXJpYyAiLS10YXJnZXQ9Z2VuZXJpYy1nbnUgJEhJR0hCRCAke2Fs bF9wbGF0Zm9ybXN9IgotIGdlbl9jb25maWdfZmlsZXMgd2luL2FybTY0IFwKLSAgICItLXRhcmdl dD1hcm02NC13aW42NC12czE1ICR7YWxsX3BsYXRmb3Jtc30gJHtISUdIQkR9IgotQEAgLTQ2OCw3 ICs0NjgsNyBAQAotIGdlbl9ydGNkX2hlYWRlciBsaW51eC9taXBzZWwgbWlwc2VsCi0gZ2VuX3J0 Y2RfaGVhZGVyIGxpbnV4L21pcHM2NGVsIG1pcHM2NGVsCi0gZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4 L2xvb25nYXJjaCBsb29uZ2FyY2gKLS1nZW5fcnRjZF9oZWFkZXIgbGludXgvcHBjNjQgcHBjCi0r Z2VuX3J0Y2RfaGVhZGVyIGxpbnV4L3BwYzY0IGdlbmVyaWMKLSBnZW5fcnRjZF9oZWFkZXIgbGlu dXgvZ2VuZXJpYyBnZW5lcmljCi0gZ2VuX3J0Y2RfaGVhZGVyIHdpbi9hcm02NCBhcm12OAotIGdl bl9ydGNkX2hlYWRlciB3aW4vaWEzMiB4ODYgIiR7cmVxdWlyZV9zc2UyfSIKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1zYW5kYm94LWxpbnV4LXN0YXQu cGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtc2FuZGJveC1saW51 eC1zdGF0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmZiNWQ0OTRiMDYu LjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUt c2FuZGJveC1saW51eC1zdGF0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAot LS0tIGEvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zdGF0LmgKLSsrKyBiL3Nh bmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3RhdC5oCi1AQCAtMTU1LDYgKzE1NSwy OCBAQCBzdHJ1Y3Qga2VybmVsX3N0YXQgewotICAgdW5zaWduZWQgaW50IF9fdW51c2VkNDsKLSAg IHVuc2lnbmVkIGludCBfX3VudXNlZDU7Ci0gfTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0rc3RydWN0IGtlcm5lbF9zdGF0IHsKLSsgIHVuc2lnbmVkIGxvbmcJc3RfZGV2OwotKyAg dW5zaWduZWQgbG9uZwlzdF9pbm87Ci0rICB1bnNpZ25lZCBsb25nCXN0X25saW5rOwotKyAgdW5z aWduZWQgaW50CXN0X21vZGU7Ci0rICB1bnNpZ25lZCBpbnQJc3RfdWlkOwotKyAgdW5zaWduZWQg aW50CXN0X2dpZDsKLSsgIHVuc2lnbmVkIGxvbmcJc3RfcmRldjsKLSsgIGxvbmcJCXN0X3NpemU7 Ci0rICB1bnNpZ25lZCBsb25nCXN0X2Jsa3NpemU7Ci0rICB1bnNpZ25lZCBsb25nCXN0X2Jsb2Nr czsKLSsgIHVuc2lnbmVkIGxvbmcJc3RfYXRpbWVfOwotKyAgdW5zaWduZWQgbG9uZwlzdF9hdGlt ZV9uc2VjXzsKLSsgIHVuc2lnbmVkIGxvbmcJc3RfbXRpbWVfOwotKyAgdW5zaWduZWQgbG9uZwlz dF9tdGltZV9uc2VjXzsKLSsgIHVuc2lnbmVkIGxvbmcJc3RfY3RpbWVfOwotKyAgdW5zaWduZWQg bG9uZwlzdF9jdGltZV9uc2VjXzsKLSsgIHVuc2lnbmVkIGxvbmcJX191bnVzZWQ0OwotKyAgdW5z aWduZWQgbG9uZwlfX3VudXNlZDU7Ci0rICB1bnNpZ25lZCBsb25nCV9fdW51c2VkNjsKLSt9Owot ICNlbmRpZgotIAotIC8vIE9uIDMyLWJpdCBzeXN0ZW1zLCB3ZSBkZWZhdWx0IHRvIHRoZSA2NC1i aXQgc3RhdCBzdHJ1Y3QgbGlrZSBsaWJjCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwYmM1MDUzNTg5MTYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNo ZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM1OTAgKzAs MCBAQAotY29tbWl0IDJjMDEzYTMxN2IxMTE0ZWY2N2NkYmJjMzA4MjRiMjg5MDdiOWVhOTQKLUF1 dGhvcjogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiAgIFdlZCBN YXIgMyAxOTowODoyOSAyMDIxICswMTAwCi0KLSAgICBwcGM2NGxlIHN1cHBvcnQKLQotZGlmZiAt LWdpdCBhL2J1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weSBiL2J1aWxkL2Rvd25sb2Fk X25hY2xfdG9vbGNoYWlucy5weQotaW5kZXggMjg2YTkyYTI3Li5lYzM2YTg1ZDMgMTAwNzU1Ci0t LS0gYS9idWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKLSsrKyBiL2J1aWxkL2Rvd25s b2FkX25hY2xfdG9vbGNoYWlucy5weQotQEAgLTEzLDYgKzEzLDEwIEBAIGltcG9ydCBzeXMKLSAK LSAKLSBkZWYgTWFpbihhcmdzKToKLSsgICMgSWYgYGRpc2FibGVfbmFjbD0xYCBpcyBpbiBHWVBf REVGSU5FUywgZXhpdAotKyAgaWYgJ2Rpc2FibGVfbmFjbD0xJyBpbiBvcy5lbnZpcm9uLmdldCgn R1lQX0RFRklORVMnLCAnJyk6Ci0rICAgIHJldHVybiAwCi0rCi0gICBzY3JpcHRfZGlyID0gb3Mu cGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpCi0gICBzcmNfZGlyID0gb3Mu cGF0aC5kaXJuYW1lKHNjcmlwdF9kaXIpCi0gICBuYWNsX2RpciA9IG9zLnBhdGguam9pbihzcmNf ZGlyLCAnbmF0aXZlX2NsaWVudCcpCi0tLS0gYS9jaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxE LmduCi0rKysgYi9jaHJvbWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxELmduCi1AQCAtOTcsOCArOTcs NiBAQAotICAgICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRnLW1pbWUiLAotICAg ICAgICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIveGRnLXNldHRpbmdzIiwKLSAgICAgICAg ICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL2xvY2FsZXMvZW4tVVMucGFrIiwKLS0gICAgICAg ICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL01FSVByZWxvYWQvbWFuaWZlc3QuanNvbiIsCi0t ICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9NRUlQcmVsb2FkL3ByZWxvYWRlZF9k YXRhLnBiIiwKLSAgICAgICAgICAgICAgICAgICBdCi0gCi0gYWN0aW9uX2ZvcmVhY2goImNhbGN1 bGF0ZV9kZWJfZGVwZW5kZW5jaWVzIikgewotQEAgLTM3Nyw3ICszNzcsNiBAQAotICAgICAiLy9j aHJvbWUiLAotICAgICAiLy9jaHJvbWU6cGFja2VkX3Jlc291cmNlcyIsCi0gICAgICIvL2Nocm9t ZS9icm93c2VyL2VudGVycHJpc2UvY29ubmVjdG9ycy9kZXZpY2VfdHJ1c3Qva2V5X21hbmFnZW1l bnQvaW5zdGFsbGVyL21hbmFnZW1lbnRfc2VydmljZTpjaHJvbWVfbWFuYWdlbWVudF9zZXJ2aWNl IiwKLS0gICAgIi8vY2hyb21lL2Jyb3dzZXIvcmVzb3VyY2VzL21lZGlhL21laV9wcmVsb2FkOmNv bXBvbmVudCIsCi0gICAgICIvL2NvbXBvbmVudHMvY3Jhc2gvY29yZS9hcHA6Y2hyb21lX2NyYXNo cGFkX2hhbmRsZXIiLAotICAgICAiLy9zYW5kYm94L2xpbnV4OmNocm9tZV9zYW5kYm94IiwKLSAg IF0KLWRpZmYgLS1naXQgYS9zYW5kYm94L2ZlYXR1cmVzLmduaSBiL3NhbmRib3gvZmVhdHVyZXMu Z25pCi1pbmRleCBkYjMwYWU2ZDYuLjlkYzA5YmY1MyAxMDA2NDQKLS0tLSBhL3NhbmRib3gvZmVh dHVyZXMuZ25pCi0rKysgYi9zYW5kYm94L2ZlYXR1cmVzLmduaQotQEAgLTExLDcgKzExLDggQEAg aW1wb3J0KCIvL2J1aWxkL2NvbmZpZy9uYWNsL2NvbmZpZy5nbmkiKQotIHVzZV9zZWNjb21wX2Jw ZiA9IChpc19saW51eCB8fCBpc19jaHJvbWVvcyB8fCBpc19hbmRyb2lkKSAmJgotICAgICAgICAg ICAgICAgICAgIChjdXJyZW50X2NwdSA9PSAieDg2IiB8fCBjdXJyZW50X2NwdSA9PSAieDY0IiB8 fAotICAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAiYXJtIiB8fCBjdXJyZW50X2Nw dSA9PSAiYXJtNjQiIHx8Ci0tICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJtaXBz ZWwiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIpCi0rICAgICAgICAgICAgICAgICAgIGN1 cnJlbnRfY3B1ID09ICJtaXBzZWwiIHx8IGN1cnJlbnRfY3B1ID09ICJtaXBzNjRlbCIgfHwKLSsg ICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUgPT0gInBwYzY0IikKLSAKLSB1c2Vfc2VjY29t cF9icGYgPSB1c2Vfc2VjY29tcF9icGYgfHwgaXNfbmFjbF9ub25zZmkKLSAKLWRpZmYgLS1naXQg YS9zYW5kYm94L2xpbnV4L0JVSUxELmduIGIvc2FuZGJveC9saW51eC9CVUlMRC5nbgotaW5kZXgg ZTlhOTRiNDYxLi5jY2ExYTVkYTUgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L2xpbnV4L0JVSUxELmdu Ci0rKysgYi9zYW5kYm94L2xpbnV4L0JVSUxELmduCi1AQCAtNDI3LDYgKzQyNyw4IEBAIGNvbXBv bmVudCgic2FuZGJveF9zZXJ2aWNlcyIpIHsKLSAKLSBzb3VyY2Vfc2V0KCJzYW5kYm94X3NlcnZp Y2VzX2hlYWRlcnMiKSB7Ci0gICBzb3VyY2VzID0gWwotKyAgICAic3lzdGVtX2hlYWRlcnMvcHBj NjRfbGludXhfc3lzY2FsbHMuaCIsCi0rICAgICJzeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF91 Y29udGV4dC5oIiwKLSAgICAgInN5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgi LAotICAgICAic3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgiLAotICAgICAic3lz dGVtX2hlYWRlcnMvYXJtX2xpbnV4X3Vjb250ZXh0LmgiLAotZGlmZiAtLWdpdCBhL3NhbmRib3gv bGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oIGIvc2FuZGJveC9saW51eC9icGZf ZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgKLWluZGV4IDMxMzUxMWYyMi4uMGNhM2EzMjZmIDEw MDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgK LSsrKyBiL3NhbmRib3gvbGludXgvYnBmX2RzbC9saW51eF9zeXNjYWxsX3Jhbmdlcy5oCi1AQCAt NTYsNiArNTYsMTMgQEAKLSAjZGVmaW5lIE1BWF9QVUJMSUNfU1lTQ0FMTCBfX05SX3N5c2NhbGxz Ci0gI2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElDX1NZU0NBTEwKLSAKLSsjZWxpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0rCi0rI2luY2x1ZGUgPGFzbS1nZW5lcmljL3VuaXN0ZC5oPgot KyNkZWZpbmUgTUlOX1NZU0NBTEwgMHUKLSsjZGVmaW5lIE1BWF9QVUJMSUNfU1lTQ0FMTCBfX05S X3N5c2NhbGxzCi0rI2RlZmluZSBNQVhfU1lTQ0FMTCBNQVhfUFVCTElDX1NZU0NBTEwKLSsKLSAj ZWxzZQotICNlcnJvciAiVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlIgotICNlbmRpZgotZGlmZiAt LWdpdCBhL3NhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oIGIvc2FuZGJveC9s aW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLWluZGV4IDFhNDA3Yjk1Mi4uYTZhZWM1NDRl IDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLSsr KyBiL3NhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi1AQCAtMTYsNiArMTYs OSBAQAotICNpZiBkZWZpbmVkKF9fbWlwc19fKQotIC8vIHN5cy91c2VyLmggaW4gZWdsaWJjIG1p c3NlcyBzaXplX3QgZGVmaW5pdGlvbgotICNpbmNsdWRlIDxzdGRkZWYuaD4KLSsjZWxpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0rLy8gTWFudWFsbHkgZGVmaW5lIGdyZWdfdCBvbiBwcGM2NAot K3R5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGdyZWdfdDsKLSAjZW5kaWYKLSAjZW5kaWYKLSAK LUBAIC0zNDYsNiArMzQ5LDUxIEBAIHN0cnVjdCByZWdzX3N0cnVjdCB7Ci0gI2RlZmluZSBTRUND T01QX1BUX1BBUk00KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbM10KLSAjZGVmaW5lIFNFQ0NPTVBfUFRf UEFSTTUoX3JlZ3MpIChfcmVncykucmVnc1s0XQotICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihf cmVncykgKF9yZWdzKS5yZWdzWzVdCi0rCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0rCi0rdHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyByZWdz X3N0cnVjdDsKLSsKLSsjaWZkZWYgQVJDSF9DUFVfTElUVExFX0VORElBTgotKyNkZWZpbmUgU0VD Q09NUF9BUkNIIEFVRElUX0FSQ0hfUFBDNjRMRQotKyNlbHNlCi0rI2RlZmluZSBTRUNDT01QX0FS Q0ggQVVESVRfQVJDSF9QUEM2NAotKyNlbmRpZgotKwotKyNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0 eCwgX3JlZykgKChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+Z3ByW19yZWddKQotKwotKyNkZWZp bmUgU0VDQ09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUcoX2N0eCwgMykKLSsjZGVmaW5lIFNF Q0NPTVBfU1lTQ0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAwKQotKyNkZWZpbmUgU0VDQ09N UF9JUChfY3R4KSAoX2N0eCktPnVjX21jb250ZXh0LnJlZ3MtPm5pcAotKyNkZWZpbmUgU0VDQ09N UF9QQVJNMShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQotKyNkZWZpbmUgU0VDQ09NUF9QQVJN MihfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA0KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNMyhfY3R4 KSBTRUNDT01QX1JFRyhfY3R4LCA1KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNChfY3R4KSBTRUND T01QX1JFRyhfY3R4LCA2KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNShfY3R4KSBTRUNDT01QX1JF RyhfY3R4LCA3KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNihfY3R4KSBTRUNDT01QX1JFRyhfY3R4 LCA4KQotKwotKyNkZWZpbmUgU0VDQ09NUF9OUl9JRFggKG9mZnNldG9mKHN0cnVjdCBhcmNoX3Nl Y2NvbXBfZGF0YSwgbnIpKQotKyNkZWZpbmUgU0VDQ09NUF9BUkNIX0lEWCAob2Zmc2V0b2Yoc3Ry dWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmNoKSkKLSsjZGVmaW5lIFNFQ0NPTVBfSVBfTVNCX0lE WCBcCi0rICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBpbnN0cnVjdGlvbl9w b2ludGVyKSArIDQpCi0rI2RlZmluZSBTRUNDT01QX0lQX0xTQl9JRFggXAotKyAgKG9mZnNldG9m KHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgaW5zdHJ1Y3Rpb25fcG9pbnRlcikgKyAwKQotKyNk ZWZpbmUgU0VDQ09NUF9BUkdfTVNCX0lEWChucikgXAotKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNo X3NlY2NvbXBfZGF0YSwgYXJncykgKyA4ICogKG5yKSArIDQpCi0rI2RlZmluZSBTRUNDT01QX0FS R19MU0JfSURYKG5yKSBcCi0rICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBh cmdzKSArIDggKiAobnIpICsgMCkKLSsKLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUkVTVUxUKF9yZWdz KSAoX3JlZ3MpLmdwclszXQotKyNkZWZpbmUgU0VDQ09NUF9QVF9TWVNDQUxMKF9yZWdzKSAoX3Jl Z3MpLmdwclswXQotKyNkZWZpbmUgU0VDQ09NUF9QVF9JUChfcmVncykgKF9yZWdzKS5uaXAKLSsj ZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTEoX3JlZ3MpIChfcmVncykuZ3ByWzNdCi0rI2RlZmluZSBT RUNDT01QX1BUX1BBUk0yKF9yZWdzKSAoX3JlZ3MpLmdwcls0XQotKyNkZWZpbmUgU0VDQ09NUF9Q VF9QQVJNMyhfcmVncykgKF9yZWdzKS5ncHJbNV0KLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTQo X3JlZ3MpIChfcmVncykuZ3ByWzZdCi0rI2RlZmluZSBTRUNDT01QX1BUX1BBUk01KF9yZWdzKSAo X3JlZ3MpLmdwcls3XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5n cHJbOF0KLSsKLSAjZWxzZQotICNlcnJvciBVbnN1cHBvcnRlZCB0YXJnZXQgcGxhdGZvcm0KLSAK LWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVf cG9saWN5LmNjIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3Bv bGljeS5jYwotaW5kZXggNmExZWMyMzg5Li5mMjBjNTgyZGQgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCi0rKysgYi9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCi1AQCAtODgs NyArODgsOCBAQCBib29sIElzQmFzZWxpbmVQb2xpY3lXYXRjaGVkKGludCBzeXNubykgewotICAg ICAgICAgIFN5c2NhbGxTZXRzOjpJc1ByY3RsKHN5c25vKSB8fAotICAgICAgICAgIFN5c2NhbGxT ZXRzOjpJc1Byb2Nlc3NHcm91cE9yU2Vzc2lvbihzeXNubykgfHwKLSAjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgICAgICAgIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoc3lzbm8pIHx8Ci0g I2VuZGlmCi0gI2lmIGRlZmluZWQoX19hcm1fXykKLUBAIC0yMjcsNyArMjI4LDcgQEAgUmVzdWx0 RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZW5pZWRfZXJybm8sCi0gICB9Ci0gCi0g I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBpZiAoc3lzbm8gPT0gX19O Ul9tbWFwKQotICAgICByZXR1cm4gUmVzdHJpY3RNbWFwRmxhZ3MoKTsKLSAjZW5kaWYKLUBAIC0y NDUsNyArMjQ2LDcgQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZW5p ZWRfZXJybm8sCi0gICAgIHJldHVybiBSZXN0cmljdFByY3RsKCk7Ci0gCi0gI2lmIGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBc Ci0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8 IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIGlmIChzeXNubyA9PSBfX05SX3NvY2tldHBhaXIp IHsKLSAgICAgLy8gT25seSBhbGxvdyBBRl9VTklYLCBQRl9VTklYLiBDcmFzaCBpZiBhbnl0aGlu ZyBlbHNlIGlzIHNlZW4uCi0gICAgIHN0YXRpY19hc3NlcnQoQUZfVU5JWCA9PSBQRl9VTklYLAot QEAgLTI4NSw3ICsyODYsOCBAQCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZz X2RlbmllZF9lcnJubywKLSAgIH0KLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgaWYg KFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoc3lzbm8pKQotICAgICByZXR1cm4gUmVzdHJpY3RT b2NrZXRjYWxsQ29tbWFuZCgpOwotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MgYi9zYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjCi1p bmRleCAwMWMwNDZkZGEuLjdlNWE2YmU4MiAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvc2Vj Y29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MJMjAyMS0wNC0xNSAx MzoxMToxMC40ODE1Nzk0NzAgLTA0MDAKLSsrKyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYt aGVscGVycy9iYXNlbGluZV9wb2xpY3lfdW5pdHRlc3QuY2MJMjAyMS0wNC0xNSAxMzoxMjo0My41 MjQ4MzEzNzYgLTA0MDAKLUBAIC0zMDIsNyArMzAyLDcgQEAKLSBURVNUX0JBU0VMSU5FX1NJR1NZ UyhfX05SX3N5c2xvZykKLSBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX3RpbWVyX2NyZWF0ZSkK LSAKLS0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCi0rI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9f KSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJf aW5vdGlmeV9pbml0KQotIFRFU1RfQkFTRUxJTkVfU0lHU1lTKF9fTlJfdnNlcnZlcikKLSAjZW5k aWYKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lz X2hhbmRsZXJzLmNjIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5c19o YW5kbGVycy5jYwotaW5kZXggMDFjMDQ2ZGRhLi43ZTVhNmJlODIgMTAwNjQ0Ci0tLS0gYS9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmNjCi0rKysgYi9z YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmNjCi1AQCAt MzU4LDcgKzM1OCwxNiBAQAotICAgaWYgKGFyZ3MubnIgPT0gX19OUl9mc3RhdGF0X2RlZmF1bHQp IHsKLSAgICAgaWYgKCpyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihhcmdzLmFyZ3NbMV0p ID09ICdcMCcgJiYKLSAgICAgICAgIGFyZ3MuYXJnc1szXSA9PSBzdGF0aWNfY2FzdDx1aW50NjRf dD4oQVRfRU1QVFlfUEFUSCkpIHsKLS0gICAgICByZXR1cm4gc3lzY2FsbChfX05SX2ZzdGF0X2Rl ZmF1bHQsIHN0YXRpY19jYXN0PGludD4oYXJncy5hcmdzWzBdKSwKLSsgICAgICAgICAgaW50IGZk ID0gc3RhdGljX2Nhc3Q8aW50PihhcmdzLmFyZ3NbMF0pOwotKyNpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0rICAgICAgLy8gT24gcHBjNjQrZ2xpYmMsIHNvbWUgc3lzY2FsbHMgc2VlbSB0byBh Y2NpZGVudGFsbHkgbmVnYXRlIHRoZSBmaXJzdAotKyAgICAgIC8vIHBhcmFtZXRlciB3aGljaCBj YXVzZXMgY2hlY2tzIGFnYWluc3QgaXQgdG8gZmFpbC4gRm9yIG5vdywgbWFudWFsbHkKLSsgICAg ICAvLyBuZWdhdGUgdGhlbSBiYWNrLgotKyAgICAgIC8vIFRPRE86IEludmVzdGlnYXRlIHRoZSBy b290IGNhdXNlIGFuZCBmaXggaW4gZ2xpYmMKLSsgICAgICBpZiAoZmQgPCAwKQotKyAgICAgICAg ZmQgPSAtZmQ7Ci0rI2VuZGlmCi0rICAgICAgcmV0dXJuIHN5c2NhbGwoX19OUl9mc3RhdF9kZWZh dWx0LCBmZCwKLSAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGRlZmF1bHRf c3RhdF9zdHJ1Y3QqPihhcmdzLmFyZ3NbMl0pKTsKLSAgICAgfQotICAgICByZXR1cm4gLXJlaW50 ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGZzX2RlbmllZF9lcnJubyk7Ci1kaWZmIC0tZ2l0IGEvc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmlj dGlvbnMuY2MgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJh bWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYwotaW5kZXggMmE5N2QzOTE2Li44ZTgxYWE2Y2YgMTAwNjQ0 Ci0tLS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0 ZXJzX3Jlc3RyaWN0aW9ucy5jYwkyMDIxLTA0LTE0IDE0OjQxOjA4LjAwMDAwMDAwMCAtMDQwMAot KysrIGIvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVy c19yZXN0cmljdGlvbnMuY2MJMjAyMS0wNC0xNSAxMzoxNzo1Ny44MDg3MTU3MzMgLTA0MDAKLUBA IC0zNyw3ICszNyw4IEBACi0gCi0gI2lmIChCVUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxB RyhJU19DSFJPTUVPU19MQUNST1MpKSAmJiBcCi0gICAgICFkZWZpbmVkKF9fYXJtX18pICYmICFk ZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAgICAgICAgICAgICBcCi0tICAgICFkZWZpbmVkKFBUUkFD RV9HRVRfVEhSRUFEX0FSRUEpCi0rICAgICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEp ICYmICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgICFkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gLy8gQWxzbyBpbmNsdWRlIGFzbS9wdHJhY2UtYWJpLmggc2luY2UgcHRyYWNlLmggaW4gb2xk ZXIgbGliYyAoZm9yIGluc3RhbmNlCi0gLy8gdGhlIG9uZSBpbiBVYnVudHUgMTYuMDQgTFRTKSBp cyBtaXNzaW5nIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEuCi0gLy8gYXNtL3B0cmFjZS1hYmkuaCBk b2Vzbid0IGV4aXN0IG9uIGFybTMyIGFuZCBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBIGlzbid0Ci1A QCAtNDUsNiArNDYsMTEgQEAKLSAjaW5jbHVkZSA8YXNtL3B0cmFjZS1hYmkuaD4KLSAjZW5kaWYK LSAKLSsvLyBPbiBQUEM2NCwgVENHRVRTIGlzIGRlZmluZWQgaW4gdGVybXMgb2Ygc3RydWN0IHRl cm1pb3MsIHNvIHdlIG11c3QgaW5jbHVkZSB0ZXJtaW9zLmgKLSsjaWZkZWYgX19wb3dlcnBjNjRf XwotKyNpbmNsdWRlIDx0ZXJtaW9zLmg+Ci0rI2VuZGlmCi0rCi0gI2lmIEJVSUxERkxBRyhJU19B TkRST0lEKQotIAotICNpZiAhZGVmaW5lZChGX0RVUEZEX0NMT0VYRUMpCi1AQCAtOTksNiArMTA1 LDE0IEBACi0gICByZXR1cm4gdHJ1ZTsKLSAjZWxzZQotICAgcmV0dXJuIGZhbHNlOwotKyNlbmRp ZgotK30KLSsKLStpbmxpbmUgYm9vbCBJc0FyY2hpdGVjdHVyZVBQQzY0KCkgewotKyNpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0rICByZXR1cm4gdHJ1ZTsKLSsjZWxzZQotKyAgcmV0dXJuIGZh bHNlOwotICNlbmRpZgotIH0KLSAKLUBAIC0yMzksNiArMjU0LDggQEAKLSAgIHVpbnQ2NF90IGtP TGFyZ2VGaWxlRmxhZyA9IE9fTEFSR0VGSUxFOwotICAgaWYgKElzQXJjaGl0ZWN0dXJlWDg2XzY0 KCkgfHwgSXNBcmNoaXRlY3R1cmVJMzg2KCkgfHwgSXNBcmNoaXRlY3R1cmVNaXBzKCkpCi0gICAg IGtPTGFyZ2VGaWxlRmxhZyA9IDAxMDAwMDA7Ci0rICBlbHNlIGlmIChJc0FyY2hpdGVjdHVyZVBQ QzY0KCkpCi0rICAgIGtPTGFyZ2VGaWxlRmxhZyA9IDAyMDAwMDA7Ci0gCi0gICBjb25zdCBBcmc8 aW50PiBjbWQoMSk7Ci0gICBjb25zdCBBcmc8bG9uZz4gbG9uZ19hcmcoMik7Ci1AQCAtMjU2LDcg KzI3MywxNiBAQAotICAgICAgICAgICAgICAgRl9TRVRMS1csCi0gICAgICAgICAgICAgICBGX0dF VExLLAotICAgICAgICAgICAgICAgRl9EVVBGRCwKLS0gICAgICAgICAgICAgIEZfRFVQRkRfQ0xP RVhFQyksCi0rICAgICAgICAgICAgICBGX0RVUEZEX0NMT0VYRUMKLSsjaWYgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotKy8vIE9uIFBQQzY0LCBGX1NFVExLLCBGX0dFVExLLCBGX1NFVExLVyBhcmUg ZGVmaW5lZCBhcyB0aGUgNjQtYml0IHZhcmlhbnRzCi0rLy8gYnV0IGdsaWJjIHdpbGwgc29tZXRp bWVzIHN0aWxsIHVzZSB0aGUgMzItYml0IHZlcnNpb25zLiBBbGxvdyBib3RoLgotKyAgICAgICAg ICAgICAgLAotKyAgICAgICAgICAgICAgNSwgLyogRl9HRVRMSyAoMzIpICovCi0rICAgICAgICAg ICAgICA2LCAvKiBGX1NFVExLICgzMikgKi8KLSsgICAgICAgICAgICAgIDcgIC8qIEZfU0VUTEtX ICgzMikgKi8KLSsjZW5kaWYKLSsJICAgICApLAotICAgICAgICAgICAgICBBbGxvdygpKQotICAg ICAgIC5DYXNlKEZfU0VURkwsCi0gICAgICAgICAgICAgSWYoKGxvbmdfYXJnICYgfmtBbGxvd2Vk TWFzaykgPT0gMCwgQWxsb3coKSkuRWxzZShDcmFzaFNJR1NZUygpKSkKLUBAIC0yNjYsNyArMjky LDcgQEAKLSAgIC8vIGNsYW5nLWZvcm1hdCBvbgotIH0KLSAKLS0jaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIFJlc3VsdEV4cHIgUmVzdHJp Y3RTb2NrZXRjYWxsQ29tbWFuZCgpIHsKLSAgIC8vIFVuZm9ydHVuYXRlbHksIHdlIGFyZSB1bmFi bGUgdG8gcmVzdHJpY3QgdGhlIGZpcnN0IHBhcmFtZXRlciB0bwotICAgLy8gc29ja2V0cGFpcigy KS4gV2hpbHN0IGluaXRpYWxseSBzb3VuZGluZyBiYWQsIGl0J3Mgbm90ZXdvcnRoeSB0aGF0IHZl cnkKLUBAIC00MTksNyArNDQ1LDcgQEAKLSAjZW5kaWYKLSAgIHJldHVybiBTd2l0Y2gocmVxdWVz dCkKLSAgICAgICAuQ0FTRVMoKAotLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKLSsjaWYgIWRl ZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgICAgICAg ICAgICAgICBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX0dFVEZQUkVHUywgUFRSQUNFX0dFVF9USFJF QURfQVJFQSwKLSAgICAgICAgICAgICAgICAgIFBUUkFDRV9HRVRSRUdTRVQsCi0gI2VuZGlmCi1k aWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFy YW1ldGVyc19yZXN0cmljdGlvbnMuaCBiL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVy cy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKLWluZGV4IGJhNDI4OWYwNS4uOWE0 ZDVhYjJkIDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5 c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaAotKysrIGIvc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaAotQEAgLTQ4 LDcgKzQ4LDcgQEAgU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXN0cmljdE1w cm90ZWN0RmxhZ3MoKTsKLSAvLyBPX05PTkJMT0NLIHwgT19TWU5DIHwgT19MQVJHRUZJTEUgfCBP X0NMT0VYRUMgfCBPX05PQVRJTUUuCi0gU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhw ciBSZXN0cmljdEZjbnRsQ29tbWFuZHMoKTsKLSAKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21p cHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8vIFJlc3RyaWN0IHNvY2tldGNhbGwo MikgdG8gb25seSBhbGxvdyBzb2NrZXRwYWlyKDIpLCBzZW5kKDIpLCByZWN2KDIpLAotIC8vIHNl bmR0bygyKSwgcmVjdmZyb20oMiksIHNodXRkb3duKDIpLCBzZW5kbXNnKDIpIGFuZCByZWN2bXNn KDIpLgotIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmVzdHJpY3RTb2NrZXRj YWxsQ29tbWFuZCgpOwotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9zeXNjYWxsX3NldHMuY2MgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMv c3lzY2FsbF9zZXRzLmNjCi1pbmRleCA2NDJkZjcyMDcuLjM0ZjQ3ZWI3MyAxMDA2NDQKLS0tLSBh L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLSsrKyBi L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLUBAIC0y OSw3ICsyOSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldHRpbWUoaW50IHN5c25v KSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9nZXR0aW1lb2ZkYXk6Ci0g I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgXAotLSAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNl IF9fTlJfdGltZToKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLUBAIC01MiwxMiArNTMs MTQgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0dGltZShpbnQgc3lzbm8pIHsKLSAg ICAgY2FzZSBfX05SX2Nsb2NrX25hbm9zbGVlcF90aW1lNjQ6ICAvLyBQYXJhbWV0ZXJzIGZpbHRl cmVkIGJ5IFJlc3RyaWN0Q2xvY2tJRCgpLgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFS Q0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYg ZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0gICAgIGNhc2UgX19OUl9mdGltZTogIC8vIE9ic29sZXRlLgotICNlbmRpZgotICAgICBj YXNlIF9fTlJfc2V0dGltZW9mZGF5OiAgLy8gUHJpdmlsZWdlZC4KLSAjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgICBjYXNlIF9fTlJfc3RpbWU6Ci0gI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci1A QCAtMTM1LDcgKzEzOCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lz bm8pIHsKLSAgICAgY2FzZSBfX05SX2ZhY2Nlc3NhdDogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVy cm5vLgotICAgICBjYXNlIF9fTlJfZmNobW9kYXQ6Ci0gICAgIGNhc2UgX19OUl9mY2hvd25hdDog IC8vIFNob3VsZCBiZSBjYWxsZWQgY2hvd25hdCA/Ci0tI2lmIGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9uZXdmc3RhdGF0OiAgLy8gZnN0YXRhdCgpLiBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAj ZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLSAgICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp Ci1AQCAtMTU0LDcgKzE1Nyw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQg c3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX21lbWZkX2NyZWF0ZToKLSAgICAgY2FzZSBfX05SX21r ZGlyYXQ6Ci0gICAgIGNhc2UgX19OUl9ta25vZGF0OgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQot KyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNh c2UgX19OUl9vbGRsc3RhdDoKLSAgICAgY2FzZSBfX05SX29sZHN0YXQ6Ci0gI2VuZGlmCi1AQCAt MTY4LDcgKzE3MSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lzbm8p IHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3N0YXRmczogIC8vIEVQRVJNIG5vdCBhIHZhbGlk IGVycm5vLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwK LS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVf MzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg ICAgY2FzZSBfX05SX3N0YXRmczY0OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc3ltbGlua2F0 OgotQEAgLTE3OCw3ICsxODIsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50 IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl90cnVuY2F0ZTY0OgotICNlbmRpZgotICAgICBjYXNl IF9fTlJfdW5saW5rYXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZf NjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3V0aW1lOgotICNlbmRpZgotICAgICBjYXNl IF9fTlJfdXRpbWVuc2F0OiAgLy8gTmV3LgotQEAgLTIwMyw3ICsyMDgsOCBAQCBib29sIFN5c2Nh bGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7Ci0gI2Vu ZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci0gLy8gVE9ETyhqbG4pOiB0aGVzZSBzaG91bGQgYmUg ZGVuaWVkIGdyYWNlZnVsbHkgYXMgd2VsbCAobW92ZWQgYmVsb3cpLgotLSNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21p cHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9m YWR2aXNlNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjZW5kaWYKLSAjaWYgZGVm aW5lZChfX2kzODZfXykKLUBAIC0yMTYsMTEgKzIyMiwxMiBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19O Ul9mbG9jazogICAgICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAgICAgY2FzZSBfX05S X2ZzdGF0ZnM6ICAgIC8vIEdpdmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHdob2xlIGZpbGVzeXN0 ZW0uCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAg ICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9C SVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBj YXNlIF9fTlJfZnN0YXRmczY0OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfZnN5bmM6ICAvLyBF UEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLS0jaWYgZGVmaW5lZChfX2kzODZfXykKLSsjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJf b2xkZnN0YXQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotQEAgLTIyOCw2ICsyMzUsOCBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQoaW50IHN5c25v KSB7Ci0gICAgIGNhc2UgX19OUl9zeW5jX2ZpbGVfcmFuZ2U6ICAvLyBFUEVSTSBub3QgYSB2YWxp ZCBlcnJuby4KLSAjZWxpZiBkZWZpbmVkKF9fYXJtX18pCi0gICAgIGNhc2UgX19OUl9hcm1fc3lu Y19maWxlX3JhbmdlOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0rI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKyAgICBjYXNlIF9fTlJfc3luY19maWxlX3JhbmdlMjogLy8gRVBF Uk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci0gICAgICAgcmV0 dXJuIGZhbHNlOwotQEAgLTI0OCw3ICsyNTcsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0Rlbmll ZEZpbGVTeXN0ZW1BY2Nlc3NWaWFGZChpbnQgc3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBf X05SX2dldGRlbnRzNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYg ZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfcmVhZGRpcjoKLSAjZW5kaWYKLSAgICAgICBy ZXR1cm4gdHJ1ZTsKLUBAIC0yODksNyArMjk5LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNHZXRT aW1wbGVJZChpbnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxTZXRzOjpJc1Byb2Nlc3NQcml2aWxl Z2VDaGFuZ2UoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19O Ul9jYXBzZXQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykK LSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9pb3Blcm06ICAvLyBJbnRlbCBwcml2aWxl Z2UuCi0gICAgIGNhc2UgX19OUl9pb3BsOiAgICAvLyBJbnRlbCBwcml2aWxlZ2UuCi0gI2VuZGlm Ci1AQCAtMzQwLDggKzM1MCwxMSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxI YW5kbGluZyhpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3J0X3NpZ3JldHVybjoKLSAgICAg Y2FzZSBfX05SX3J0X3NpZ3RpbWVkd2FpdDoKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBT X0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rI2lmbmRlZiBfX3Bvd2VycGM2NF9fCi0gICAgIGNhc2UgX19OUl9y dF9zaWd0aW1lZHdhaXRfdGltZTY0OgotKyNlbmRpZgotICAgICBjYXNlIF9fTlJfc2lnYWN0aW9u OgotICAgICBjYXNlIF9fTlJfc2lncHJvY21hc2s6Ci0gICAgIGNhc2UgX19OUl9zaWdyZXR1cm46 Ci1AQCAtMzU3LDcgKzM3MCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFNpZ25hbEhh bmRsaW5nKGludCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJfc2lnbmFsZmQ0Ogot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp Ci0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX3NpZ3BlbmRpbmc6Ci0gICAgIGNhc2UgX19OUl9zaWdzdXNwZW5kOgotICNlbmRpZgotQEAg LTM4MSw3ICszOTUsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRPcGVyYXRpb25PbkZk KGludCBzeXNubykgewotICNlbmRpZgotICAgICBjYXNlIF9fTlJfZHVwMzoKLSAjaWYgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8 IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2h1dGRvd246Ci0gI2Vu ZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1AQCAtNDE0LDcgKzQyOCw3IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7Ci0gICAgIGNh c2UgX19OUl9leGl0X2dyb3VwOgotICAgICBjYXNlIF9fTlJfd2FpdDQ6Ci0gICAgIGNhc2UgX19O Ul93YWl0aWQ6Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3dhaXRwaWQ6Ci0gI2Vu ZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1AQCAtNDMxLDcgKzQ0NSw3IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7Ci0gI2VuZGlm Ci0gICAgIGNhc2UgX19OUl9zZXRfdGlkX2FkZHJlc3M6Ci0gICAgIGNhc2UgX19OUl91bnNoYXJl OgotLSNpZiAhZGVmaW5lZChfX21pcHNfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pCi0rI2lm ICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdmZvcms6Ci0gI2VuZGlmCi0gICAgIGRlZmF1 bHQ6Ci1AQCAtNDg0LDcgKzQ5OCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldE9y TW9kaWZ5U29ja2V0KGludCBzeXNubykgewotICAgICAgIHJldHVybiB0cnVlOwotICAgICBkZWZh dWx0OgotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9zb2NrZXRwYWlyOiAgLy8gV2Ugd2lsbCB3YW50IHRvIGluc3BlY3QgaXRzIGFyZ3VtZW50Lgot ICNlbmRpZgotICAgICAgIHJldHVybiBmYWxzZTsKLUBAIC00OTQsNyArNTA4LDcgQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0gYm9v bCBTeXNjYWxsU2V0czo6SXNEZW5pZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pIHsKLSAg IHN3aXRjaCAoc3lzbm8pIHsKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9f YXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRf XykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICBjYXNlIF9fTlJfYWNjZXB0OgotICAgICBjYXNlIF9fTlJfYWNjZXB0NDoKLSAgICAgY2Fz ZSBfX05SX2JpbmQ6Ci1AQCAtNTA5LDcgKzUyMyw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRGVu aWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0gfQotIAotICNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gLy8gQmlnIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbCBmb3Igc29ja2V0cy4K LSBib29sIFN5c2NhbGxTZXRzOjpJc1NvY2tldENhbGwoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2gg KHN5c25vKSB7Ci1AQCAtNTIzLDcgKzUzOCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzU29ja2V0 Q2FsbChpbnQgc3lzbm8pIHsKLSB9Ci0gI2VuZGlmCi0gCi0tI2lmIGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwg XAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNOZXR3 b3JrU29ja2V0SW5mb3JtYXRpb24oaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0g ICAgIGNhc2UgX19OUl9nZXRwZWVybmFtZToKLUBAIC01NDgsNyArNTY0LDcgQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNBbGxvd2VkQWRkcmVzc1NwYWNlQWNjZXNzKGludCBzeXNubykgewotICAgICBj YXNlIF9fTlJfbWluY29yZToKLSAgICAgY2FzZSBfX05SX21sb2NrYWxsOgotICNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8 IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbW1hcDoKLSAjZW5kaWYK LSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi1AQCAtNTc4 LDcgKzU5NCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdlbmVyYWxJbyhpbnQgc3lz bm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2xzZWVrOgotICNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAg IChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJ VFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX19s bHNlZWs6Ci0gI2VuZGlmCi0gI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotQEAgLTU5OCwyNiAr NjE1LDI4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdlbmVyYWxJbyhpbnQgc3lzbm8p IHsKLSAgICAgY2FzZSBfX05SX3JlYWR2OgotICAgICBjYXNlIF9fTlJfcHJlYWQ2NDoKLSAjaWYg ZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9yZWN2OgotICNlbmRpZgotICNpZiBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNf XykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9yZWN2ZnJvbTog IC8vIENvdWxkIHNwZWNpZnkgc291cmNlLgotICAgICBjYXNlIF9fTlJfcmVjdm1zZzogICAvLyBD b3VsZCBzcGVjaWZ5IHNvdXJjZS4KLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX3g4Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3NlbGVj dDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f YXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg ICAgY2FzZSBfX05SX19uZXdzZWxlY3Q6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19hcm1fXykg fHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotICAgICBjYXNlIF9fTlJfc2VuZDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVm aW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfc2VuZG1zZzogIC8vIENvdWxkIHNwZWNpZnkg ZGVzdGluYXRpb24uCi0gICAgIGNhc2UgX19OUl9zZW5kdG86ICAgLy8gQ291bGQgc3BlY2lmeSBk ZXN0aW5hdGlvbi4KLSAjZW5kaWYKLUBAIC02NzMsNyArNjkyLDggQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNBbGxvd2VkQmFzaWNTY2hlZHVsZXIoaW50IHN5c25vKSB7Ci0gICAgICAgcmV0dXJuIHRy dWU7Ci0gICAgIGNhc2UgX19OUl9nZXRwcmlvcml0eToKLSAjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9uaWNlOgotICNlbmRpZgotICAg ICBjYXNlIF9fTlJfc2V0cHJpb3JpdHk6Ci1AQCAtNjg1LDcgKzcwNSw4IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1bGVyKGludCBzeXNubykgewotIGJvb2wgU3lzY2Fs bFNldHM6OklzQWRtaW5PcGVyYXRpb24oaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7 Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICAo ZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRT KSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9D UFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNl IF9fTlJfYmRmbHVzaDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX2tleGVjX2xvYWQ6Ci1AQCAt NzAxLDcgKzcyMiw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWRtaW5PcGVyYXRpb24oaW50IHN5 c25vKSB7Ci0gCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNLZXJuZWxNb2R1bGUoaW50IHN5c25vKSB7 Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2NyZWF0ZV9tb2R1bGU6Ci0gICAg IGNhc2UgX19OUl9nZXRfa2VybmVsX3N5bXM6ICAvLyBTaG91bGQgRU5PU1lTLgotICAgICBjYXNl IF9fTlJfcXVlcnlfbW9kdWxlOgotQEAgLTczNCw3ICs3NTYsOCBAQCBib29sIFN5c2NhbGxTZXRz OjpJc0ZzQ29udHJvbChpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3N3YXBvZmY6Ci0gICAg IGNhc2UgX19OUl9zd2Fwb246Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRl ZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykp Ci0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX3Vtb3VudDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3Vtb3VudDI6Ci1AQCAtNzUwLDcg Kzc3Myw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTnVtYShpbnQgc3lzbm8pIHsKLSAgICAgY2Fz ZSBfX05SX2dldGNwdToKLSAgICAgY2FzZSBfX05SX21iaW5kOgotICNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0g ICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbWlncmF0ZV9wYWdlczoKLSAjZW5k aWYKLSAgICAgY2FzZSBfX05SX21vdmVfcGFnZXM6Ci1AQCAtNzg1LDE0ICs4MDgsMTUgQEAgYm9v bCBTeXNjYWxsU2V0czo6SXNHbG9iYWxQcm9jZXNzRW52aXJvbm1lbnQoaW50IHN5c25vKSB7Ci0g ICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9hY2N0OiAgLy8gUHJpdmlsZWdlZC4K LSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQo X19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2dl dHJsaW1pdDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2Fy bV9fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3VnZXRybGltaXQ6Ci0gI2VuZGlmCi0g I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAg IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3VsaW1pdDoKLSAjZW5kaWYK LSAgICAgY2FzZSBfX05SX2dldHJ1c2FnZToKLUBAIC04MjYsNyArODUwLDcgQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNHbG9iYWxTeXN0ZW1TdGF0dXMoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAg IGNhc2UgX19OUl9zeXNpbmZvOgotICAgICBjYXNlIF9fTlJfdW5hbWU6Ci0tI2lmIGRlZmluZWQo X19pMzg2X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgICAgY2FzZSBfX05SX29sZHVuYW1lOgotICAgICBjYXNlIF9fTlJfb2xkb2xkdW5hbWU6 Ci0gI2VuZGlmCi1AQCAtODkyLDggKzkxNiwxNiBAQCBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3Rl bVZTZW1hcGhvcmVzKGludCBzeXNubykgewotIH0KLSAjZW5kaWYKLSAKLSsvKiBzaGl0dHkgaGFj ayBhcm91bmQgVm9pZCdzIDQuMTkga2VybmVsIGhlYWRlcnMgbWlzc2luZyB0aG9zZSBudW1iZXJz ICovCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgIWRlZmluZWQoX19OUl9zaG1nZXQp Ci0rI2RlZmluZSBfX05SX3NobWdldCAzOTUKLSsjZGVmaW5lIF9fTlJfc2htY3RsIDM5NgotKyNk ZWZpbmUgX19OUl9zaG1hdCAzOTcKLSsjZGVmaW5lIF9fTlJfc2htZHQgMzk4Ci0rI2VuZGlmCi0r Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX2FybV9fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAotICAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82NF9CSVRTKSkKLSAvLyBUaGVzZSBnaXZl IGEgbG90IG9mIGFtYmllbnQgYXV0aG9yaXR5IGFuZCBieXBhc3MgdGhlIHNldHVpZCBzYW5kYm94 LgotIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVlNoYXJlZE1lbW9yeShpbnQgc3lzbm8pIHsK LUBAIC05MjUsNyArOTU3LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WTWVzc2FnZVF1 ZXVlKGludCBzeXNubykgewotICNlbmRpZgotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBc Ci0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BV XzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0g Ly8gQmlnIHN5c3RlbSBWIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbC4KLSBib29sIFN5c2NhbGxT ZXRzOjpJc1N5c3RlbVZJcGMoaW50IHN5c25vKSB7Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci1AQCAt OTQ1LDcgKzk3OCw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQW55U3lzdGVtVihpbnQgc3lzbm8p IHsKLSAgIHJldHVybiBJc1N5c3RlbVZNZXNzYWdlUXVldWUoc3lzbm8pIHx8IElzU3lzdGVtVlNl bWFwaG9yZXMoc3lzbm8pIHx8Ci0gICAgICAgICAgSXNTeXN0ZW1WU2hhcmVkTWVtb3J5KHN5c25v KTsKLSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwg XAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICByZXR1cm4gSXNTeXN0ZW1WSXBjKHN5 c25vKTsKLSAjZW5kaWYKLSB9Ci1AQCAtMTAwMiw3ICsxMDM2LDggQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNGYU5vdGlmeShpbnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxTZXRzOjpJc1RpbWVyKGlu dCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9fTlJfZ2V0aXRpbWVy OgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0gICAgIGNhc2UgX19OUl9hbGFybToKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3NldGl0aW1l cjoKLUBAIC0xMDg0LDE4ICsxMTE5LDIyIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTWlzYyhpbnQg c3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3N5bmNmczoKLSAgICAgY2FzZSBfX05SX3ZoYW5ndXA6 Ci0gLy8gVGhlIHN5c3RlbSBjYWxscyBiZWxvdyBhcmUgbm90IGltcGxlbWVudGVkLgotLSNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBz X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNh c2UgX19OUl9hZnNfc3lzY2FsbDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg XAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICBjYXNlIF9fTlJfYnJlYWs6Ci0gI2VuZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBc Ci0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2dldHBtc2c6Ci0g I2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZp bmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8 fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2d0dHk6Ci0g ICAgIGNhc2UgX19OUl9pZGxlOgotICAgICBjYXNlIF9fTlJfbG9jazoKLUBAIC0xMTAzLDIwICsx MTQyLDIyIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTWlzYyhpbnQgc3lzbm8pIHsKLSAgICAgY2Fz ZSBfX05SX3Byb2Y6Ci0gICAgIGNhc2UgX19OUl9wcm9maWw6Ci0gI2VuZGlmCi0tI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykK LSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX3B1dHBtc2c6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykKLSAgICAgY2Fz ZSBfX05SX3NlY3VyaXR5OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0t ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMy X0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAg IGNhc2UgX19OUl9zdHR5OgotICNlbmRpZgotLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pCi0rI2lm IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNl IF9fTlJfdHV4Y2FsbDoKLSAjZW5kaWYKLS0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCi0rI2lm ICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBj YXNlIF9fTlJfdnNlcnZlcjoKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLWRpZmYgLS1n aXQgYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmggYi9z YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmgKLWluZGV4IDky MzUzM2VjOS4uNDExZjcyYWNkIDEwMDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCi0rKysgYi9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm LWhlbHBlcnMvc3lzY2FsbF9zZXRzLmgKLUBAIC00MywxMyArNDMsMTQgQEAgY2xhc3MgU0FOREJP WF9FWFBPUlQgU3lzY2FsbFNldHMgewotICAgc3RhdGljIGJvb2wgSXNEZW5pZWRHZXRPck1vZGlm eVNvY2tldChpbnQgc3lzbm8pOwotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCi0tICAg IChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJ VFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAvLyBC aWcgbXVsdGlwbGV4aW5nIHN5c3RlbSBjYWxsIGZvciBzb2NrZXRzLgotICAgc3RhdGljIGJvb2wg SXNTb2NrZXRDYWxsKGludCBzeXNubyk7Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX194ODZf NjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAg IGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSAgIHN0YXRpYyBib29sIElzTmV0d29ya1NvY2tldEluZm9ybWF0 aW9uKGludCBzeXNubyk7Ci0gI2VuZGlmCi0gCi1AQCAtNzYsNyArNzcsNyBAQCBjbGFzcyBTQU5E Qk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7Ci0gICBzdGF0aWMgYm9vbCBJc1N5c3RlbVZTZW1hcGhv cmVzKGludCBzeXNubyk7Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIGRlZmluZWQoX19h YXJjaDY0X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0r ICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAot ICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV82 NF9CSVRTKSkKLSAgIC8vIFRoZXNlIGdpdmUgYSBsb3Qgb2YgYW1iaWVudCBhdXRob3JpdHkgYW5k IGJ5cGFzcyB0aGUgc2V0dWlkIHNhbmRib3guCi0gICBzdGF0aWMgYm9vbCBJc1N5c3RlbVZTaGFy ZWRNZW1vcnkoaW50IHN5c25vKTsKLUBAIC04OCw3ICs4OSw4IEBAIGNsYXNzIFNBTkRCT1hfRVhQ T1JUIFN5c2NhbGxTZXRzIHsKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg XAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgLy8gQmlnIHN5c3RlbSBWIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbC4KLSAgIHN0YXRpYyBi b29sIElzU3lzdGVtVklwYyhpbnQgc3lzbm8pOwotICNlbmRpZgotZGlmZiAtLWdpdCBhL3NhbmRi b3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYyBiL3NhbmRib3gvbGludXgvc2VjY29tcC1i cGYvc3lzY2FsbC5jYwotaW5kZXggZTQ3ZTk4YmY1Li5kNTNhN2ZmNTYgMTAwNjQ0Ci0tLS0gYS9z YW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKLSsrKyBiL3NhbmRib3gvbGludXgv c2VjY29tcC1icGYvc3lzY2FsbC5jYwotQEAgLTE4LDcgKzE4LDcgQEAgbmFtZXNwYWNlIHNhbmRi b3ggewotIG5hbWVzcGFjZSB7Ci0gCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkg fHwgZGVmaW5lZChBUkNIX0NQVV9BUk1fRkFNSUxZKSB8fCBcCi0tICAgIGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpCi0rICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpIHx8IGRl ZmluZWQgKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAvLyBOdW1iZXIgdGhhdCdzIG5vdCBjdXJy ZW50bHkgdXNlZCBieSBhbnkgTGludXgga2VybmVsIEFCSXMuCi0gY29uc3QgaW50IGtJbnZhbGlk U3lzY2FsbE51bWJlciA9IDB4MzUxZDM7Ci0gI2Vsc2UKLUBAIC0zMTAsMTIgKzMxMCw1NiBAQCBh c20oLy8gV2UgbmVlZCB0byBiZSBhYmxlIHRvIHRlbGwgdGhlIGtlcm5lbCBleGFjdGx5IHdoZXJl IHdlIG1hZGUgYQotICAgICAvLyBFbnRlciB0aGUga2VybmVsCi0gICAgICJzdmMgMFxuIgotICAg ICAiMjpyZXRcbiIKLSsgICAgIi5jZmlfZW5kcHJvY1xuIgotKyAgICAiLnNpemUgU3lzY2FsbEFz bSwgLi1TeXNjYWxsQXNtXG4iCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAi LnRleHRcbiIKLSsgICAgIi5hbGlnbiA0XG4iCi0rICAgICIudHlwZSBTeXNjYWxsQXNtIEBmdW5j dGlvblxuIgotKyAgICAiU3lzY2FsbEFzbTpcbiIKLSsgICAgIi5jZmlfc3RhcnRwcm9jXG4iCi0r Ci0rICAgIC8vIENoZWNrIGlmIHIzIGlzIG5lZ2F0aXZlCi0rICAgICJjbXBkaSAzLCAwXG4iCi0r ICAgICJiZ3QgMmZcbiIKLSsKLSsgICAgLy8gTG9hZCBhZGRyZXNzIG9mIDNmIGludG8gcjMgYW5k IHJldHVybgotKyAgICAibWZsciAxMFxuIgotKyAgICAiYmwgMWZcbiIKLSsgICAgIjE6IG1mbHIg M1xuIgotKyAgICAibXRsciAxMFxuIgotKyAgICAiYWRkaSAzLCAzLCA0KjEzXG4iCi0rICAgICJi bHJcbiIKLSsKLSsgICAgLy8gTG9hZCBhcmd1bWVudHMgZnJvbSBhcnJheSBpbnRvIHIzLTgKLSsg ICAgLy8gc2F2ZSBwYXJhbSAzIGluIHIxMAotKyAgICAiMjpcbiIKLSsgICAgIm1yIDAsIDNcbiIK LSsgICAgImxkIDMsIDAoNClcbiIKLSsgICAgImxkIDUsIDE2KDQpXG4iCi0rICAgICJsZCA2LCAy NCg0KVxuIgotKyAgICAibGQgNywgMzIoNClcbiIKLSsgICAgImxkIDgsIDQwKDQpXG4iCi0rICAg ICJsZCA0LCA4KDQpXG4iCi0rICAgICJsaSA5LCAwXG4iCi0rCi0rICAgIC8vIEVudGVyIGtlcm5l bAotKyAgICAic2NcbiIKLSsKLSsgICAgLy8gTWFnaWMgcmV0dXJuIGFkZHJlc3MKLSsgICAgIjM6 XG4iCi0rICAgIC8vIExpa2UgTUlQUywgcHBjNjQgcmV0dXJuIHZhbHVlcyBhcmUgYWx3YXlzIHBv c2l0aXZlLgotKyAgICAvLyBDaGVjayBmb3IgZXJyb3IgaW4gY3IwLlNPIGFuZCBuZWdhdGUgdXBv biBlcnJvcgotKyAgICAiYmMgNCwgMywgNGZcbiIKLSsgICAgIm5lZyAzLCAzXG4iCi0rICAgICI0 OiBibHJcbiIKLSsKLSAgICAgIi5jZmlfZW5kcHJvY1xuIgotICAgICAiLnNpemUgU3lzY2FsbEFz bSwgLi1TeXNjYWxsQXNtXG4iCi0gI2VuZGlmCi0gICAgICk7ICAvLyBhc20KLSAKLS0jaWYgZGVm aW5lZChfX3g4Nl82NF9fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSBleHRlcm4gIkMiIHsKLSBpbnRwdHJfdCBTeXNjYWxsQXNtKGludHB0cl90 IG5yLCBjb25zdCBpbnRwdHJfdCBhcmdzWzZdKTsKLSB9Ci1AQCAtNDI5LDYgKzQ3Myw4IEBAIGlu dHB0cl90IFN5c2NhbGw6OkNhbGwoaW50IG5yLAotICAgICByZXQgPSBpbm91dDsKLSAgIH0KLSAK LSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBpbnRwdHJfdCByZXQgPSBTeXNjYWxs QXNtKG5yLCBhcmdzKTsKLSAjZWxzZQotICNlcnJvciAiVW5pbXBsZW1lbnRlZCBhcmNoaXRlY3R1 cmUiCi0gI2VuZGlmCi1AQCAtNDQ1LDggKzQ5MSwxOCBAQCB2b2lkIFN5c2NhbGw6OlB1dFZhbHVl SW5VY29udGV4dChpbnRwdHJfdCByZXRfdmFsLCB1Y29udGV4dF90KiBjdHgpIHsKLSAgICAgLy8g bmVlZHMgdG8gYmUgY2hhbmdlZCBiYWNrLgotICAgICByZXRfdmFsID0gLXJldF92YWw7Ci0gICAg IFNFQ0NPTVBfUEFSTTQoY3R4KSA9IDE7Ci0tICB9IGVsc2UKLSsgIH0gZWxzZSB7Ci0gICAgIFNF Q0NPTVBfUEFSTTQoY3R4KSA9IDA7Ci0rICB9Ci0rI2VuZGlmCi0rI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSsgIC8vIFNhbWUgYXMgTUlQUywgbmVlZCB0byBpbnZlcnQgcmV0IGFuZCBzZXQg ZXJyb3IgcmVnaXN0ZXIgKGNyMC5TTykKLSsgIGlmIChyZXRfdmFsIDw9IC0xICYmIHJldF92YWwg Pj0gLTQwOTUpIHsKLSsgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOwotKyAgICBjdHgtPnVjX21jb250 ZXh0LnJlZ3MtPmNjciB8PSAoMSA8PCAyOCk7Ci0rICB9IGVsc2UgewotKyAgICBjdHgtPnVjX21j b250ZXh0LnJlZ3MtPmNjciAmPSB+KDEgPDwgMjgpOwotKyAgfQotICNlbmRpZgotICAgU0VDQ09N UF9SRVNVTFQoY3R4KSA9IHN0YXRpY19jYXN0PGdyZWdfdD4ocmV0X3ZhbCk7Ci0gfQotZGlmZiAt LWdpdCBhL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYyBiL3NhbmRib3gvbGludXgv c2VjY29tcC1icGYvdHJhcC5jYwotaW5kZXggZjViODZhNzNhLi41ZTZjNGEwNjggMTAwNjQ0Ci0t LS0gYS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKLSsrKyBiL3NhbmRib3gvbGlu dXgvc2VjY29tcC1icGYvdHJhcC5jYwotQEAgLTIzMiw2ICsyMzIsMjAgQEAgdm9pZCBUcmFwOjpT aWdTeXMoaW50IG5yLCBMaW51eFNpZ0luZm8qIGluZm8sIHVjb250ZXh0X3QqIGN0eCkgewotICAg ICAgIFNldElzSW5TaWdIYW5kbGVyKCk7Ci0gICAgIH0KLSAKLSsjaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgICAvLyBPbiBwcGM2NCtnbGliYywgc29tZSBzeXNjYWxscyBzZWVtIHRvIGFj Y2lkZW50YWxseSBuZWdhdGUgdGhlIGZpcnN0Ci0rICAgIC8vIHBhcmFtZXRlciB3aGljaCBjYXVz ZXMgY2hlY2tzIGFnYWluc3QgaXQgdG8gZmFpbC4gRm9yIG5vdywgbWFudWFsbHkKLSsgICAgLy8g bmVnYXRlIHRoZW0gYmFjay4KLSsgICAgLy8gVE9ETyhzaGF3bkBhbmFzdGFzLmlvKTogaW52ZXN0 aWdhdGUgdGhpcyBpc3N1ZSBmdXJ0aGVyCi0rICAgIGF1dG8gbnIgPSBTRUNDT01QX1NZU0NBTEwo Y3R4KTsKLSsgICAgaWYgKG5yID09IF9fTlJfb3BlbmF0IHx8IG5yID09IF9fTlJfbWtkaXJhdCB8 fCBuciA9PSBfX05SX2ZhY2Nlc3NhdCB8fCBuciA9PSBfX05SX3JlYWRsaW5rYXQgfHwKLSsgICAg ICAgIG5yID09IF9fTlJfcmVuYW1lYXQgfHwgbnIgPT0gX19OUl9yZW5hbWVhdDIgfHwgbnIgPT0g X19OUl9uZXdmc3RhdGF0IHx8IG5yID09IF9fTlJfdW5saW5rYXQpIHsKLSsgICAgICAgIGlmIChz dGF0aWNfY2FzdDxpbnQ+KFNFQ0NPTVBfUEFSTTEoY3R4KSkgPiAwKSB7Ci0rICAgICAgICAgICAg U0VDQ09NUF9QQVJNMShjdHgpID0gLVNFQ0NPTVBfUEFSTTEoY3R4KTsKLSsgICAgICAgIH0KLSsg ICAgfQotKyNlbmRpZgotKwotICAgICAvLyBDb3B5IHRoZSBzZWNjb21wLXNwZWNpZmljIGRhdGEg aW50byBhIGFyY2hfc2VjY29tcF9kYXRhIHN0cnVjdHVyZS4gVGhpcwotICAgICAvLyBpcyB3aGF0 IHdlIGFyZSBzaG93aW5nIHRvIFRyYXBGbmMgY2FsbGJhY2tzIHRoYXQgdGhlIHN5c3RlbSBjYWxs Ci0gICAgIC8vIGV2YWx1YXRvciByZWdpc3RlcmVkIHdpdGggdGhlIHNhbmRib3guCi1kaWZmIC0t Z2l0IGEvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYyBiL3NhbmRib3gvbGlu dXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2MKLWluZGV4IGQ3YjVkOGM0NC4uNGFkYzZkMGQ0IDEw MDY0NAotLS0tIGEvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYwotKysrIGIv c2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYwotQEAgLTgxLDcgKzgxLDcgQEAg Ym9vbCBDaHJvb3RUb1NhZmVFbXB0eURpcigpIHsKLSAgIHBpZF90IHBpZCA9IC0xOwotICAgYWxp Z25hcygxNikgY2hhciBzdGFja19idWZbUFRIUkVBRF9TVEFDS19NSU5dOwotICNpZiBkZWZpbmVk KEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwg XAotLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotKyAgICBkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAgIC8v IFRoZSBzdGFjayBncm93cyBkb3dud2FyZC4KLSAgIHZvaWQqIHN0YWNrID0gc3RhY2tfYnVmICsg c2l6ZW9mKHN0YWNrX2J1Zik7Ci0gI2Vsc2UKLUBAIC05MCw3ICs5MCw5IEBACi0gCi0gICBpbnQg Y2xvbmVfZmxhZ3MgPSBDTE9ORV9GUyB8IExJTlVYX1NJR0NITEQ7Ci0gICB2b2lkKiB0bHMgPSBu dWxscHRyOwotLSNpZiAoZGVmaW5lZChBUkNIX0NQVV9YODZfNjQpIHx8IGRlZmluZWQoQVJDSF9D UFVfQVJNX0ZBTUlMWSkpICYmIFwKLSsvLyBSQUpBIHRoaXMgbWlnaHQgYmUgaXQuLi4KLSsjaWYg KGRlZmluZWQoQVJDSF9DUFVfWDg2XzY0KSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkp IHx8IFwKLSsgICAgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpKSAmJiBcCi0gICAgICFk ZWZpbmVkKE1FTU9SWV9TQU5JVElaRVIpCi0gICAvLyBVc2UgQ0xPTkVfVk0gfCBDTE9ORV9WRk9S SyBhcyBhbiBvcHRpbWl6YXRpb24gdG8gYXZvaWQgY29weWluZyBwYWdlIHRhYmxlcy4KLSAgIC8v IFNpbmNlIGNsb25lIHdyaXRlcyB0byB0aGUgbmV3IGNoaWxkJ3MgVExTIGJlZm9yZSByZXR1cm5p bmcsIHdlIG11c3Qgc2V0IGEKLUBAIC05OCw2ICsxMDAsMTEgQEAKLSAgIC8vIGdsaWJjIHBlcmZv cm1zIHN5c2NhbGxzIGJ5IGNhbGxpbmcgYSBmdW5jdGlvbiBwb2ludGVyIGluIFRMUywgc28gd2Ug ZG8gbm90Ci0gICAvLyBhdHRlbXB0IHRoaXMgb3B0aW1pemF0aW9uLgotICAgLy8gVE9ETyhjcmJ1 Zy5jb20vMTI0NzQ1OCkgQnJva2VuIGluIE1TYW4gYnVpbGRzIGFmdGVyIExMVk0gZjFiYjMwYTQ5 NTZmLgotKyAgLy8KLSsgIC8vIE5PVEU6IFdpdGhvdXQgQ0xPTkVfVk0sIGZvbnRjb25maWcgd2ls bCBhdHRlbXB0IHRvIHJlbG9hZCBjb25maWd1cmF0aW9uCi0rICAvLyBpbiBldmVyeSB0aHJlYWQu ICBTaW5jZSB0aGUgcmVuZGVyZWQgdGhyZWFkcyBhcmUgc2FuZGJveGVkIHdpdGhvdXQKLSsgIC8v IGZpbGVzeXN0ZW0gYWNjZXNzIChlLmcuIHRvIC9ldGMvZm9udHMvZm9udHMuY29uZikgdGhpcyB3 aWxsIGNhdXNlIGZvbnQKLSsgIC8vIGNvbmZpZ3VyYWl0b24gbG9hZGluZyBmYWlsdXJlcyBhbmQg bm8gZm9udHMgd2lsbCBiZSBkaXNwbGF5ZWQhCi0gICBjbG9uZV9mbGFncyB8PSBDTE9ORV9WTSB8 IENMT05FX1ZGT1JLIHwgQ0xPTkVfU0VUVExTOwotIAotICAgY2hhciB0bHNfYnVmW1BUSFJFQURf U1RBQ0tfTUlOXSA9IHswfTsKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5 c2NhbGxfd3JhcHBlcnMuY2MgYi9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBl cnMuY2MKLWluZGV4IGZjZmQyYWExMi4uZjZlYjMyZmI3IDEwMDY0NAotLS0tIGEvc2FuZGJveC9s aW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmNjCi0rKysgYi9zYW5kYm94L2xpbnV4L3Nl cnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKLUBAIC01OCw3ICs1OCw3IEBAIGxvbmcgc3lzX2Ns b25lKHVuc2lnbmVkIGxvbmcgZmxhZ3MsCi0gI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2XzY0KQot ICAgcmV0dXJuIHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3MsIGNoaWxkX3N0YWNrLCBwdGlkLCBj dGlkLCB0bHMpOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfWDg2KSB8fCBkZWZpbmVkKEFSQ0hf Q1BVX0FSTV9GQU1JTFkpIHx8IFwKLS0gICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkK LSsgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9Q UEM2NF9GQU1JTFkpCi0gICAvLyBDT05GSUdfQ0xPTkVfQkFDS1dBUkRTIGRlZmluZWQuCi0gICBy ZXR1cm4gc3lzY2FsbChfX05SX2Nsb25lLCBmbGFncywgY2hpbGRfc3RhY2ssIHB0aWQsIHRscywg Y3RpZCk7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tl ci9icm9rZXJfcHJvY2Vzcy5jYyBiL3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2Vy X3Byb2Nlc3MuY2MKLWluZGV4IGQ3MmM5ZDIzOC4uNzdmMWQ5NWY1IDEwMDY0NAotLS0tIGEvc2Fu ZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYwotKysrIGIvc2FuZGJv eC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYwotQEAgLTE2OSw3ICsxNjks NyBAQCBib29sIEJyb2tlclByb2Nlc3M6OklzU3lzY2FsbEJyb2tlcmFibGUoaW50IHN5c25vLCBi b29sIGZhc3RfY2hlY2spIGNvbnN0IHsKLSAjaWYgZGVmaW5lZChfX05SX2ZzdGF0YXQ2NCkKLSAg ICAgY2FzZSBfX05SX2ZzdGF0YXQ2NDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX25ld2ZzdGF0YXQ6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuICFmYXN0X2NoZWNrIHx8IGFs bG93ZWRfY29tbWFuZF9zZXRfLnRlc3QoQ09NTUFORF9TVEFUKTsKLWRpZmYgLS1naXQgYS9zYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaCBiL3NhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oCi1pbmRleCAxZmE0N2VkMDkuLjM5Y2M5YWI1 MyAxMDA2NDQKLS0tLSBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29t cC5oCi0rKysgYi9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAot QEAgLTQxLDYgKzQxLDkgQEAKLSAjaWZuZGVmIEVNX0FBUkNINjQKLSAjZGVmaW5lIEVNX0FBUkNI NjQgMTgzCi0gI2VuZGlmCi0rI2lmbmRlZiBFTV9QUEM2NAotKyNkZWZpbmUgRU1fUFBDNjQgMjEK LSsjZW5kaWYKLSAKLSAjaWZuZGVmIF9fQVVESVRfQVJDSF82NEJJVAotICNkZWZpbmUgX19BVURJ VF9BUkNIXzY0QklUIDB4ODAwMDAwMDAKLUBAIC03Myw2ICs3NiwxMiBAQAotICNpZm5kZWYgQVVE SVRfQVJDSF9BQVJDSDY0Ci0gI2RlZmluZSBBVURJVF9BUkNIX0FBUkNINjQgKEVNX0FBUkNINjQg fCBfX0FVRElUX0FSQ0hfNjRCSVQgfCBfX0FVRElUX0FSQ0hfTEUpCi0gI2VuZGlmCi0rI2lmbmRl ZiBBVURJVF9BUkNIX1BQQzY0Ci0rI2RlZmluZSBBVURJVF9BUkNIX1BQQzY0IChFTV9QUEM2NCB8 IF9fQVVESVRfQVJDSF82NEJJVCkKLSsjZW5kaWYKLSsjaWZuZGVmIEFVRElUX0FSQ0hfUFBDNjRM RQotKyNkZWZpbmUgQVVESVRfQVJDSF9QUEM2NExFIChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82 NEJJVCB8IF9fQVVESVRfQVJDSF9MRSkKLSsjZW5kaWYKLSAKLSAvLyBGb3IgcHJjdGwuaAotICNp Zm5kZWYgUFJfU0VUX1NFQ0NPTVAKLWRpZmYgLS1naXQgYS9zYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL2xpbnV4X3NpZ25hbC5oIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51 eF9zaWduYWwuaAotaW5kZXggZjVhNzM2NzYxLi41MTViMjFhNWYgMTAwNjQ0Ci0tLS0gYS9zYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCi0rKysgYi9zYW5kYm94L2xp bnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCi1AQCAtMTMsNyArMTMsNyBAQAotIC8v IChub3QgdW5kZWZpbmVkLCBidXQgZGVmaW5lZCBkaWZmZXJlbnQgdmFsdWVzIGFuZCBpbiBkaWZm ZXJlbnQgbWVtb3J5Ci0gLy8gbGF5b3V0cykuIFNvLCBmaWxsIHRoZSBnYXAgaGVyZS4KLSAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsgICAgZGVmaW5lZChfX2FhcmNo NjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIAotICNkZWZpbmUgTElOVVhfU0lHSFVQ IDEKLSAjZGVmaW5lIExJTlVYX1NJR0lOVCAyCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9saW51eC9z eXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oIGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9saW51eF9zeXNjYWxscy5oCi1pbmRleCAyYjc4YTBjYzMuLjBhNzBmNWVhNSAxMDA2NDQK LS0tLSBhL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaAotKysr IGIvc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oCi1AQCAtMzUs NSArMzUsOSBAQAotICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0 X2xpbnV4X3N5c2NhbGxzLmgiCi0gI2VuZGlmCi0gCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSsjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9z eXNjYWxscy5oIgotKyNlbmRpZgotKwotICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1f SEVBREVSU19MSU5VWF9TWVNDQUxMU19IXwotIAotZGlmZiAtLWdpdCBhL3NhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaCBiL3NhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQK LWluZGV4IDAwMDAwMDAwMC4uY2NhY2ZmZTIyCi0tLS0gL2Rldi9udWxsCi0rKysgYi9zYW5kYm94 L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgKLUBAIC0wLDAgKzEs MTIgQEAKLSsvLyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC4KLSsvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh IEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0rLy8gZm91bmQgaW4gdGhlIExJQ0VOU0Ug ZmlsZS4KLSsKLSsjaWZuZGVmIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElO VVhfU1lTQ0FMTFNfSF8KLSsjZGVmaW5lIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBD NjRfTElOVVhfU1lTQ0FMTFNfSF8KLSsKLSsjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgotKwotKy8v VE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRvIHJlZGVmaW5lIHN5c2NhbGwgbnVtYmVycyBmb3IgUFBD NjQ/Ci0rCi0rI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0X0xJ TlVYX1NZU0NBTExTX0hfCi1kaWZmIC0tZ2l0IGEvc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3V0 aWxpdHlfcG9saWN5X2xpbnV4LmNjIGIvc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3V0aWxpdHlf cG9saWN5X2xpbnV4LmNjCi1pbmRleCAyNTg4ZmM3OTIuLmQ0NTVjNDYwMSAxMDA2NDQKLS0tLSBh L3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl91dGlsaXR5X3BvbGljeV9saW51eC5jYwotKysrIGIv c2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3V0aWxpdHlfcG9saWN5X2xpbnV4LmNjCi1AQCAtMzQs NyArMzQsNyBAQAotICAgICBjYXNlIF9fTlJfZmRhdGFzeW5jOgotICAgICBjYXNlIF9fTlJfZnN5 bmM6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9nZXRybGltaXQ6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X19hcm1fXykKLWRpZmYgLS1naXQgYS9zYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJf cG9saWN5X2xpbnV4LmNjIGIvc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGlj eV9saW51eC5jYwotaW5kZXggMjU4OGZjNzkyLi5kNDU1YzQ2MDEgMTAwNjQ0Ci0tLS0gYS9zYW5k Ym94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCi0rKysgYi9zYW5k Ym94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCi1AQCAtMTUsNiAr MTUsMTEgQEAKLSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9z eXNjYWxscy5oIgotICNpbmNsdWRlICJzYW5kYm94L3BvbGljeS9saW51eC9zYW5kYm94X2xpbnV4 LmgiCi0gCi0rLy8gT24gUFBDNjQsIFRDR0VUUyBpcyBkZWZpbmVkIGluIHRlcm1zIG9mIHN0cnVj dCB0ZXJtaW9zLCBzbyB3ZSBtdXN0IGluY2x1ZGUgdGVybWlvcy5oCi0rI2lmZGVmIF9fcG93ZXJw YzY0X18KLSsjaW5jbHVkZSA8dGVybWlvcy5oPgotKyNlbmRpZgotKwotIC8vIFRPRE8odmlnbmF0 dGkpOiByZXBsYWNlIHRoZSBsb2NhbCBkZWZpbml0aW9ucyBiZWxvdyB3aXRoICNpbmNsdWRlCi0g Ly8gPGxpbnV4L2RtYS1idWYuaD4gb25jZSBrZXJuZWwgdmVyc2lvbiA0LjYgYmVjb21lcyB3aWRl bHkgdXNlZC4KLSAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLUBAIC03Nyw3ICs3Nyw3IEBACi0g ICAgIGNhc2UgX19OUl9mdHJ1bmNhdGU2NDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAg IGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2dldHJsaW1pdDoKLSAgICAgY2FzZSBf X05SX3NldHJsaW1pdDoKLSAvLyBXZSBhbGxvdyBzZXRybGltaXQgdG8gZHluYW1pY2FsbHkgYWRq dXN0IHRoZSBhZGRyZXNzIHNwYWNlIGxpbWl0IGFzCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv YW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaCBiL3RoaXJkX3BhcnR5L2Fu Z2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmgKLWluZGV4IDNhODA3ZTFlMy4u NTI1ODYxN2E3IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3Ry YW5zbGF0b3IvSW5mb1NpbmsuaAotKysrIGIvdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVy L3RyYW5zbGF0b3IvSW5mb1NpbmsuaAotQEAgLTkyLDcgKzkyLDE2IEBAIGNsYXNzIFRJbmZvU2lu a0Jhc2UKLSAgICAgICAgICAgICBzdHJlYW0ucHJlY2lzaW9uKDgpOwotICAgICAgICAgICAgIHN0 cmVhbSA8PCBmOwotICAgICAgICAgfQotLSAgICAgICAgc2luay5hcHBlbmQoc3RyZWFtLnN0cigp KTsKLSsKLSsgICAgICAgIC8vIEhhY2sgdG8gd29yayBhcm91bmQgYSBidWcgd2hlcmUgbmVnYXRp dmUgZmxvYXRpbmcgcG9pbnQgdmFsdWVzCi0rICAgICAgICAvLyBhcmUgcmVuZGVyZWQgbGlrZSAn LjAuNScgaW5zdGVhZCBvZiAnLTAuNScKLSsgICAgICAgIHN0ZDo6c3RyaW5nIHJlcyhzdHJlYW0u c3RyKCkpOwotKwotKyAgICAgICAgaWYgKHNpZ25iaXQoZikpIHsgLy8gdGVzdCBpZiBmIGlzIG5l Z2F0aXZlCi0rICAgICAgICAgICAgcmVzWzBdID0gJy0nOwotKyAgICAgICAgfQotKwotKyAgICAg ICAgc2luay5hcHBlbmQocmVzKTsKLSAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgfQotICAg ICAvLyBXcml0ZSBib29sZWFuIHZhbHVlcyBhcyB0aGVpciBuYW1lcyBpbnN0ZWFkIG9mIGludGVn cmFsIHZhbHVlLgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9D b25zdGFudHMuaCBiL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaAot aW5kZXggZmNiYzkyNDZhLi4zOWFlNjYxNDggMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9hbmds ZS9zcmMvbGliQU5HTEUvQ29uc3RhbnRzLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9s aWJBTkdMRS9Db25zdGFudHMuaAotQEAgLTksNiArOSw3IEBACi0gI2lmbmRlZiBMSUJBTkdMRV9D T05TVEFOVFNfSF8KLSAjZGVmaW5lIExJQkFOR0xFX0NPTlNUQU5UU19IXwotIAotKyNpbmNsdWRl IDxjc3RkZGVmPgotICNpbmNsdWRlICJjb21tb24vcGxhdGZvcm0uaCIKLSAKLSAjaW5jbHVkZSA8 c3RkaW50Lmg+Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduIGIv dGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCi1pbmRleCAxN2NmOWNkYTkuLjhjZTk2YmQz MiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JvcmluZ3NzbC9CVUlMRC5nbgotKysrIGIvdGhp cmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCi1AQCAtMTAzLDYgKzEwMywxMyBAQCBpZiAoaXNf d2luICYmICFpc19tc2FuICYmIGN1cnJlbnRfY3B1ICE9ICJhcm02NCIpIHsKLSAgICAgICB9IGVs c2UgewotICAgICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6bm9fYXNtX2NvbmZpZyIgXQotICAg ICAgIH0KLSsgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0rICAgICAg aWYgKGlzX2xpbnV4KSB7Ci0rICAgICAgICAjIFRPRE86IHBwYzY0IChiZSkgY2hlY2sKLSsgICAg ICAgIHNvdXJjZXMgKz0gY3J5cHRvX3NvdXJjZXNfbGludXhfcHBjNjRsZQotKyAgICAgIH0gZWxz ZSB7Ci0rICAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBdCi0rICAg ICAgfQotICAgICB9IGVsc2UgewotICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5vX2FzbV9j b25maWciIF0KLSAgICAgfQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxE LmduIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLWluZGV4IDRhZjNkN2JiZi4uYWRi ZjU0MTU5IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLSsrKyBi L3RoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi1AQCAtNTk2LDcgKzU5Niw2IEBAIGlmIChp c19saW51eCB8fCBpc19jaHJvbWVvcyB8fCBpc19hbmRyb2lkKSB7Ci0gICAgICAgImJyZWFrcGFk L3NyYy9jbGllbnQvbWluaWR1bXBfZmlsZV93cml0ZXIuaCIsCi0gICAgICAgImJyZWFrcGFkL3Ny Yy9jb21tb24vY29udmVydF9VVEYuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2Nv bnZlcnRfVVRGLmgiLAotLSAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFk X2dldGNvbnRleHQuUyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2Nv cmVfZHVtcC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVf ZHVtcC5oIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZ1dGlscy5jYyIs Ci1AQCAtNjM0LDYgKzYzMywxNCBAQCBpZiAoaXNfbGludXggfHwgaXNfY2hyb21lb3MgfHwgaXNf YW5kcm9pZCkgewotIAotICAgICBsaWJzID0gWyAiZGwiIF0KLSAKLSsgICAgaWYgKGN1cnJlbnRf Y3B1ID09ICJwcGM2NCIpIHsKLSsgICAgICAgIGRlZmluZXMgPSBbICJIQVZFX0dFVENPTlRFWFQi IF0KLSsgICAgfSBlbHNlIHsKLSsgICAgICAgIHNvdXJjZXMgKz0gWwotKyAgICAgICAgICAgICJi cmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIKLSsgICAgICAg IF0KLSsgICAgfQotKwotICAgICBpbmNsdWRlX2RpcnMgPSBbCi0gICAgICAgIi4iLAotICAgICAg ICJicmVha3BhZC9zcmMiLAotQEAgLTY4Miw3ICs2ODksNiBAQCBpZiAoaXNfbGludXggfHwgaXNf Y2hyb21lb3MgfHwgaXNfYW5kcm9pZCkgewotICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MiLAotICAgICAg ICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0 ZXJfdW5pdHRlc3RfdXRpbHMuY2MiLAotICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L2xpbnV4 L21pbmlkdW1wX3dyaXRlci9wcm9jX2NwdWluZm9fcmVhZGVyX3VuaXR0ZXN0LmNjIiwKLS0gICAg ICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0X3VuaXR0ZXN0 LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wX3Vu aXR0ZXN0LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9maWxlX2lkX3Vu aXR0ZXN0LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9saW51eF9saWJj X3N1cHBvcnRfdW5pdHRlc3QuY2MiLAotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0 X2NwdS5oIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgKLWluZGV4IDA3ZDkxNzFhMC4uOWFl ZDRjYjM2IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgKLSsrKyBiL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJf Y29tbW9uL3Jhd19jb250ZXh0X2NwdS5oCi1AQCAtNDQsNiArNDQsOCBAQCB0eXBlZGVmIE1EUmF3 Q29udGV4dEFSTSBSYXdDb250ZXh0Q1BVOwotIHR5cGVkZWYgTURSYXdDb250ZXh0QVJNNjRfT2xk IFJhd0NvbnRleHRDUFU7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSB0eXBlZGVmIE1EUmF3 Q29udGV4dE1JUFMgUmF3Q29udGV4dENQVTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rdHlwZWRlZiBNRFJhd0NvbnRleHRQUEM2NCBSYXdDb250ZXh0Q1BVOwotICNlbHNlCi0gI2Vy cm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4i Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MgYi90aGlyZF9w YXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1v bi90aHJlYWRfaW5mby5jYwotaW5kZXggYWFlMWRjMTNiLi4wM2FmZWM3YTUgMTAwNjQ0Ci0tLS0g YS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3Jp dGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MK LUBAIC0yNzAsNyArMjcwLDQyIEBAIHZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3 Q29udGV4dENQVSogb3V0KSBjb25zdCB7Ci0gICBvdXQtPmZsb2F0X3NhdmUuZmlyID0gbWNvbnRl eHQuZnBjX2VpcjsKLSAjZW5kaWYKLSB9Ci0tI2VuZGlmICAvLyBfX21pcHNfXwotKwotKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsKLSt1aW50cHRyX3QgVGhyZWFkSW5mbzo6R2V0SW5z dHJ1Y3Rpb25Qb2ludGVyKCkgY29uc3QgewotKyAgICByZXR1cm4gbWNvbnRleHQuZ3BfcmVnc1tQ VF9OSVBdOwotK30KLSsKLSt2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRl eHRDUFUqIG91dCkgY29uc3QgewotKyAgICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhU X1BQQzY0X0ZVTEw7Ci0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2NF9H UFJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+Z3ByW2ldID0gbWNvbnRleHQuZ3BfcmVnc1tp XTsKLSsKLSsgICAgb3V0LT5sciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXTsKLSsgICAgb3V0 LT5zcnIwID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOwotKyAgICBvdXQtPnNycjEgPSBtY29u dGV4dC5ncF9yZWdzW1BUX01TUl07Ci0rICAgIG91dC0+Y3IgPSBtY29udGV4dC5ncF9yZWdzW1BU X0NDUl07Ci0rICAgIG91dC0+eGVyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJdOwotKyAgICBv dXQtPmN0ciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKLSsgICAgCi0rICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0rICAg ICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gbWNvbnRleHQuZnBfcmVnc1tpXTsKLSsK LSsgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gbWNvbnRleHQuZnBfcmVnc1tORlBSRUctMV07 Ci0rCi0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NP VU5UOyBpKyspCi0rICAgICAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0gPSBcCi0rICAg ICAgICAgICAgeygoKHVpbnQ2NF90KXZyZWdzLnZycmVnc1tpXVswXSkgPDwgMzIpIAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy52cnJlZ3NbaV1bMV0sIAotKyAgICAgICAgICAg ICgoKHVpbnQ2NF90KXZyZWdzLnZycmVnc1tpXVsyXSkgPDwgMzIpCi0rICAgICAgICAgICAgICAg ICAgICAgICAgIHwgdnJlZ3MudnJyZWdzW2ldWzNdfTsKLSsKLSsgICAgb3V0LT52cnNhdmUgPSB2 cmVncy52cnNhdmU7Ci0rICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92c2NyID0gezAsIHZyZWdz LnZzY3IudnNjcl93b3JkfTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZydmFsaWQgPSAw eEZGRkZGRkZGOyAKLSt9Ci0rI2VuZGlmICAvLyBfX3Bvd2VycGM2NF9fCi0gCi0gdm9pZCBUaHJl YWRJbmZvOjpHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVycyh2b2lkKiogZ3BfcmVncywgc2l6ZV90 KiBzaXplKSB7Ci0gICBhc3NlcnQoZ3BfcmVncyB8fCBzaXplKTsKLUBAIC0yNzksNiArMzE0LDEx IEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnModm9pZCoqIGdw X3JlZ3MsIHNpemVfdCogc2l6ZSkgewotICAgICAqZ3BfcmVncyA9IG1jb250ZXh0LmdyZWdzOwot ICAgaWYgKHNpemUpCi0gICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmdyZWdzKTsKLSsjZWxp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBpZiAoZ3BfcmVncykKLSsgICAgKmdwX3JlZ3Mg PSBtY29udGV4dC5ncF9yZWdzOwotKyAgaWYgKHNpemUpCi0rICAgICpzaXplID0gc2l6ZW9mKG1j b250ZXh0LmdwX3JlZ3MpOwotICNlbHNlCi0gICBpZiAoZ3BfcmVncykKLSAgICAgKmdwX3JlZ3Mg PSAmcmVnczsKLUBAIC0yOTQsNiArMzM0LDExIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0RmxvYXRp bmdQb2ludFJlZ2lzdGVycyh2b2lkKiogZnBfcmVncywgc2l6ZV90KiBzaXplKSB7Ci0gICAgICpm cF9yZWdzID0gJm1jb250ZXh0LmZwcmVnczsKLSAgIGlmIChzaXplKQotICAgICAqc2l6ZSA9IHNp emVvZihtY29udGV4dC5mcHJlZ3MpOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsg IGlmIChmcF9yZWdzKQotKyAgICAqZnBfcmVncyA9ICZtY29udGV4dC5mcF9yZWdzOwotKyAgaWYg KHNpemUpCi0rICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmZwX3JlZ3MpOwotICNlbHNlCi0g ICBpZiAoZnBfcmVncykKLSAgICAgKmZwX3JlZ3MgPSAmZnByZWdzOwotQEAgLTMwMiw0ICszNDcs MTMgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKHZvaWQqKiBm cF9yZWdzLCBzaXplX3QqIHNpemUpIHsKLSAjZW5kaWYKLSB9Ci0gCi0rI2lmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSt2b2lkIFRocmVhZEluZm86OkdldFZlY3RvclJlZ2lzdGVycyh2b2lkKiog dl9yZWdzLCBzaXplX3QqIHNpemUpIHsKLSsgICAgaWYgKHZfcmVncykKLSsgICAgICAgICp2X3Jl Z3MgPSAmdnJlZ3M7Ci0rICAgIGlmIChzaXplKQotKyAgICAgICAgKnNpemUgPSBzaXplb2YodnJl Z3MpOwotK30KLSsjZW5kaWYKLSsKLSB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCi1k aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZv LmgKLWluZGV4IGZiMjE2ZmE2ZC4uNTkzYWFjODIyIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhy ZWFkX2luZm8uaAotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAotQEAgLTY4LDYgKzY4LDEw IEBAIHN0cnVjdCBUaHJlYWRJbmZvIHsKLSAgIC8vIFVzZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVk IGluIDxzeXMvdXNlci5oPgotICAgc3RydWN0IHVzZXJfcmVnc19zdHJ1Y3QgcmVnczsKLSAgIHN0 cnVjdCB1c2VyX2Zwc2ltZF9zdHJ1Y3QgZnByZWdzOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsgIC8vIFVzZSB0aGUgc3RydWN0dXJlcyBkZWZpbmVkIGluIDxzeXMvdWNvbnRleHQu aD4uCi0rICBtY29udGV4dF90IG1jb250ZXh0OwotKyAgdnJyZWdzZXRfdCB2cmVnczsKLSAjZWxp ZiBkZWZpbmVkKF9fbWlwc19fKQotICAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmUgZGVmaW5lZCBpbiA8 c3lzL3Vjb250ZXh0Lmg+LgotICAgbWNvbnRleHRfdCBtY29udGV4dDsKLUBAIC04NCw2ICs4OCwx MSBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7Ci0gCi0gICAvLyBSZXR1cm5zIHRoZSBwb2ludGVyIGFu ZCBzaXplIG9mIGZsb2F0IHBvaW50IHJlZ2lzdGVyIGFyZWEuCi0gICB2b2lkIEdldEZsb2F0aW5n UG9pbnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3MsIHNpemVfdCogc2l6ZSk7Ci0rCi0rI2lmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFJldHVybnMgdGhlIHBvaW50ZXIgYW5kIHNpemUg b2YgdGhlIHZlY3RvciByZWdpc3RlciBhcmVhLiAoUFBDNjQgb25seSkKLSsgIHZvaWQgR2V0VmVj dG9yUmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3MsIHNpemVfdCogc2l6ZSk7Ci0rI2VuZGlmCi0gfTsK LSAKLSB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCi1kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21t b24vdWNvbnRleHRfcmVhZGVyLmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCi1pbmRl eCA2ZWVjMWJlMjQuLjc0MTk4M2ExYSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3Jl YWRlci5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCi1AQCAtMjU0LDYgKzI1 NCw0OCBAQCB2b2lkIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BV KiBvdXQsIGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7Ci0gICBvdXQtPmZsb2F0X3NhdmUuZmlyID0g dWMtPnVjX21jb250ZXh0LmZwY19laXI7ICAvLyBVbnVzZWQuCi0gI2VuZGlmCi0gfQotKwotKyNl bGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsKLSt1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6 OkdldFN0YWNrUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1YykgewotKyAgICByZXR1cm4gdWMt PnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09OVEVYVF9QUEM2NF9SRUdfU1BdOwotK30KLSsKLSt1 aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldEluc3RydWN0aW9uUG9pbnRlcihjb25zdCB1Y29u dGV4dF90KiB1YykgewotKyAgICByZXR1cm4gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQ XTsKLSt9Ci0rCi0rdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4 dENQVSogb3V0LCBjb25zdCB1Y29udGV4dF90KiB1YywKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCB2cnJlZ3NldF90KiB2cmVncykgewotKyAgICBvdXQtPmNvbnRl eHRfZmxhZ3MgPSBNRF9DT05URVhUX1BQQzY0X0ZVTEw7Ci0rCi0rICAgIGZvciAoaW50IGkgPSAw OyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+Z3By W2ldID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbaV07Ci0rCi0rICAgIG91dC0+bHIgPSB1Yy0+ dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdOyAgICAKLSsgICAgb3V0LT5zcnIwID0gdWMtPnVj X21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKLSsgICAgb3V0LT5zcnIxID0gdWMtPnVjX21jb250 ZXh0LmdwX3JlZ3NbUFRfTVNSXTsKLSsgICAgb3V0LT5jciA9IHVjLT51Y19tY29udGV4dC5ncF9y ZWdzW1BUX0NDUl07Ci0rICAgIG91dC0+eGVyID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRf WEVSXTsKLSsgICAgb3V0LT5jdHIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdOwot KyAgICAKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19G UFJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSB1Yy0+ dWNfbWNvbnRleHQuZnBfcmVnc1tpXTsKLSsKLSsgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0g dWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbTkZQUkVHLTFdOwotKwotKyAgICBmb3IgKGludCBpID0g MDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKQotKyAgICAgICAgb3V0 LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldID0KLSsgICAgICAgICAgICB7KCgodWludDY0X3QpdnJl Z3MtPnZycmVnc1tpXVswXSkgPDwgMzIpIAotKyAgICAgICAgICAgICAgICAgICAgICAgICB8IHZy ZWdzLT52cnJlZ3NbaV1bMV0sIAotKyAgICAgICAgICAgICAoKCh1aW50NjRfdCl2cmVncy0+dnJy ZWdzW2ldWzJdKSA8PCAzMikKLSsgICAgICAgICAgICAgICAgICAgICAgICAgfCB2cmVncy0+dnJy ZWdzW2ldWzNdfTsKLSsKLSsgICAgb3V0LT52cnNhdmUgPSB2cmVncy0+dnJzYXZlOwotKyAgICBv dXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnNjciA9IHswLCB2cmVncy0+dnNjci52c2NyX3dvcmR9Owot KyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJ2YWxpZCA9IDB4RkZGRkZGRkY7IAotK30KLSsK LSAjZW5kaWYKLSAKLSB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCi1kaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmggYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIu aAotaW5kZXggN2Q0MTAwODgxLi5jMTIyYWM5MmUgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29u dGV4dF9yZWFkZXIuaAotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKLUBAIC01NSw2 ICs1NSw5IEBAIHN0cnVjdCBVQ29udGV4dFJlYWRlciB7Ci0gI2VsaWYgZGVmaW5lZChfX2FhcmNo NjRfXykKLSAgIHN0YXRpYyB2b2lkIEZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwg Y29uc3QgdWNvbnRleHRfdCogdWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgZnBzaW1kX2NvbnRleHQqIGZwcmVncyk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSAqb3V0 LCBjb25zdCB1Y29udGV4dF90ICp1YywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHZycmVnc2V0X3QqIHZyZWdzKTsKLSAjZWxzZQotICAgc3RhdGljIHZvaWQgRmlsbENQVUNv bnRleHQoUmF3Q29udGV4dENQVSogb3V0LCBjb25zdCB1Y29udGV4dF90KiB1Yyk7Ci0gI2VuZGlm Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi1p bmRleCBhNmNiNWY5ODQuLmFlMTZiNjRkOSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5j YwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9o YW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCi1AQCAtNDYxLDkgKzQ2MSwxNiBAQCBib29sIEV4 Y2VwdGlvbkhhbmRsZXI6OkhhbmRsZVNpZ25hbChpbnQgLypzaWcqLywgc2lnaW5mb190KiBpbmZv LCB2b2lkKiB1YykgewotICAgICBtZW1jcHkoJmdfY3Jhc2hfY29udGV4dF8uZmxvYXRfc3RhdGUs IGZwX3B0ciwKLSAgICAgICAgICAgIHNpemVvZihnX2NyYXNoX2NvbnRleHRfLmZsb2F0X3N0YXRl KSk7Ci0gICB9Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gT24gUFBDNjQs IHdlIG11c3QgY29weSBWUiBzdGF0ZQotKyAgdWNvbnRleHRfdCogdWNfcHRyID0gKHVjb250ZXh0 X3QqKXVjOwotKyAgaWYgKHVjX3B0ci0+dWNfbWNvbnRleHQudl9yZWdzKSB7Ci0rICAgIG1lbWNw eSgmZ19jcmFzaF9jb250ZXh0Xy52ZWN0b3Jfc3RhdGUsIHVjX3B0ci0+dWNfbWNvbnRleHQudl9y ZWdzLAotKyAgICAgICAgICAgc2l6ZW9mKGdfY3Jhc2hfY29udGV4dF8udmVjdG9yX3N0YXRlKSk7 Ci0rICB9Ci0gI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNf XykKLSAgIC8vIEZQIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIHVzZXIgQUJJIG9uIEFSTSBMaW51eC4K LS0gIC8vIEluIGNhc2Ugb2YgTUlQUyBMaW51eCBGUCBzdGF0ZSBpcyBhbHJlYWR5IHBhcnQgb2Yg dWNvbnRleHRfdAotKyAgLy8gSW4gY2FzZSBvZiBNSVBTLCBMaW51eCBGUCBzdGF0ZSBpcyBhbHJl YWR5IHBhcnQgb2YgdWNvbnRleHRfdAotICAgLy8gYW5kICdmbG9hdF9zdGF0ZScgaXMgbm90IGEg bWVtYmVyIG9mIENyYXNoQ29udGV4dC4KLSAgIHVjb250ZXh0X3QqIHVjX3B0ciA9ICh1Y29udGV4 dF90Kil1YzsKLSAgIGlmICh1Y19wdHItPnVjX21jb250ZXh0LmZwcmVncykgewotQEAgLTcwOCwx MSArNzE1LDE5IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAg IH0KLSAjZW5kaWYKLSAKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChf X2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0rI2lmICFkZWZpbmVkKF9fQVJNX0VB QklfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fbWlwc19fKSBcCi0r ICAgICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAvLyBGUFUgc3RhdGUgaXMgbm90IHBh cnQgb2YgQVJNIEVBQkkgdWNvbnRleHRfdC4KLSAgIG1lbWNweSgmY29udGV4dC5mbG9hdF9zdGF0 ZSwgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LmZwcmVncywKLSAgICAgICAgICBzaXplb2Yo Y29udGV4dC5mbG9hdF9zdGF0ZSkpOwotICNlbmRpZgotKwotKyNpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0rICAvLyBWZWN0b3IgcmVnaXN0ZXJzIG11c3QgYmUgY29waWVkIG9uIFBQQzY0Ci0r ICBtZW1jcHkoJmNvbnRleHQudmVjdG9yX3N0YXRlLCBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRl eHQudl9yZWdzLAotKyAgICAgICAgIHNpemVvZihjb250ZXh0LnZlY3Rvcl9zdGF0ZSkpOwotKyNl bmRpZgotKwotICAgY29udGV4dC50aWQgPSBzeXNfZ2V0dGlkKCk7Ci0gCi0gICAvLyBBZGQgYW4g ZXhjZXB0aW9uIHN0cmVhbSB0byB0aGUgbWluaWR1bXAgZm9yIGJldHRlciByZXBvcnRpbmcuCi1A QCAtNzMzLDYgKzc0OCw5IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgp IHsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgY29udGV4dC5zaWdpbmZvLnNpX2FkZHIg PQotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnRleHQuY29udGV4dC51Y19tY29u dGV4dC5wYyk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgY29udGV4dC5zaWdp bmZvLnNpX2FkZHIgPQotKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnRleHQuY29u dGV4dC51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF0pOwotICNlbHNlCi0gI2Vycm9yICJUaGlz IGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldC4iCi0gI2VuZGlm Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmggYi90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAotaW5k ZXggZjgwODQzZWE3Li4yNjBkZDEwZjcgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaAot KysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5k bGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmgKLUBAIC0xOTIsNyArMTkyLDExIEBAIGNsYXNzIEV4Y2Vw dGlvbkhhbmRsZXIgewotICAgICBzaWdpbmZvX3Qgc2lnaW5mbzsKLSAgICAgcGlkX3QgdGlkOyAg Ly8gdGhlIGNyYXNoaW5nIHRocmVhZC4KLSAgICAgdWNvbnRleHRfdCBjb250ZXh0OwotLSNpZiAh ZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rICAgIC8vIFBQQzY0J3MgRlAgc3RhdGUgaXMgYSBwYXJ0IG9mIHVj b250ZXh0X3QgbGlrZSBNSVBTIGJ1dCB0aGUgdmVjdG9yCi0rICAgIC8vIHN0YXRlIGlzIG5vdCwg c28gYSBzdHJ1Y3QgaXMgbmVlZGVkLgotKyAgICB2c3RhdGVfdCB2ZWN0b3Jfc3RhdGU7Ci0rI2Vs aWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgICAgLy8g I2lmZGVmIHRoaXMgb3V0IGJlY2F1c2UgRlAgc3RhdGUgaXMgbm90IHBhcnQgb2YgdXNlciBBQkkg Zm9yIExpbnV4IEFSTS4KLSAgICAgLy8gSW4gY2FzZSBvZiBNSVBTIExpbnV4IEZQIHN0YXRlIGlz IGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90IHNvCi0gICAgIC8vICdmbG9hdF9zdGF0ZScgaXMg bm90IHJlcXVpcmVkLgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5jYyBi L3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9l eGNlcHRpb25faGFuZGxlcl91bml0dGVzdC5jYwotaW5kZXggMzVkY2JmZDRkLi43OTM0MzcwZmQg MTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xp bnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MKLSsrKyBiL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25f aGFuZGxlcl91bml0dGVzdC5jYwotQEAgLTMwNyw3ICszMDcsNyBAQCBURVNUKEV4Y2VwdGlvbkhh bmRsZXJUZXN0LCBQYXJhbGxlbENoaWxkQ3Jhc2hlc0RvbnRIYW5nKSB7Ci0gICB9Ci0gCi0gICAv LyBXYWl0IGEgd2hpbGUgdW50aWwgdGhlIGNoaWxkIHNob3VsZCBoYXZlIGNyYXNoZWQuCi0tICB1 c2xlZXAoMTAwMDAwMCk7Ci0rICB1c2xlZXAoMjAwMDAwMCk7Ci0gICAvLyBLaWxsIHRoZSBjaGls ZCBpZiBpdCBpcyBzdGlsbCBydW5uaW5nLgotICAga2lsbChjaGlsZCwgU0lHS0lMTCk7Ci0gCi1A QCAtNTU5LDYgKzU1OSw4IEBAIGNvbnN0IHVuc2lnbmVkIGNoYXIga0lsbGVnYWxJbnN0cnVjdGlv bltdID0gewotICNpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgLy8gbWZjMiB6ZXJvLEltcGwgLSB1 c3VhbGx5IGlsbGVnYWwgaW4gdXNlcnNwYWNlLgotICAgMHg0OCwgMHgwMCwgMHgwMCwgMHg0OAot KyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIDB4MDEsIDB4MDEsIDB4MDEsIDB4MDEg Ly8gQ3Jhc2hlcyBvbiBhIHRlc3RlZCBQT1dFUjkgY3B1Ci0gI2Vsc2UKLSAgIC8vIFRoaXMgY3Jh c2hlcyB3aXRoIFNJR0lMTCBvbiB4ODYveDg2LTY0L2FybS4KLSAgIDB4ZmYsIDB4ZmYsIDB4ZmYs IDB4ZmYKLUBAIC03NTQsMTAgKzc1NiwxMCBAQCBURVNUKEV4Y2VwdGlvbkhhbmRsZXJUZXN0LCBJ bnN0cnVjdGlvblBvaW50ZXJNZW1vcnlNYXhCb3VuZCkgewotIAotICAgLy8gVGhlc2UgYXJlIGRl ZmluZWQgaGVyZSBzbyB0aGUgcGFyZW50IGNhbiB1c2UgdGhlbSB0byBjaGVjayB0aGUKLSAgIC8v IGRhdGEgZnJvbSB0aGUgbWluaWR1bXAgYWZ0ZXJ3YXJkcy4KLS0gIC8vIFVzZSA0ayBoZXJlIGJl Y2F1c2UgdGhlIE9TIHdpbGwgaGFuZCBvdXQgYSBzaW5nbGUgcGFnZSBldmVuCi0rICAvLyBVc2Ug dGhlIHBhZ2Ugc2l6ZSBoZXJlIGJlY2F1c2UgdGhlIE9TIHdpbGwgaGFuZCBvdXQgYSBzaW5nbGUg cGFnZSBldmVuCi0gICAvLyBpZiBhIHNtYWxsZXIgc2l6ZSBpcyByZXF1ZXN0ZWQsIGFuZCB0aGlz IHRlc3Qgd2FudHMgdG8KLSAgIC8vIHRlc3QgdGhlIHVwcGVyIGJvdW5kIG9mIHRoZSBtZW1vcnkg cmFuZ2UuCi0tICBjb25zdCB1aW50MzJfdCBrTWVtb3J5U2l6ZSA9IDQwOTY7ICAvLyBieXRlcwot KyAgY29uc3QgdWludDMyX3Qga01lbW9yeVNpemUgPSBnZXRwYWdlc2l6ZSgpOyAgLy8gYnl0ZXMK LSAgIGNvbnN0IGludCBrT2Zmc2V0ID0ga01lbW9yeVNpemUgLSBzaXplb2Yoa0lsbGVnYWxJbnN0 cnVjdGlvbik7Ci0gCi0gICBjb25zdCBwaWRfdCBjaGlsZCA9IGZvcmsoKTsKLWRpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVt cF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNj Ci1pbmRleCBmYTNjMTcxM2EuLjZjZTcwOWUyZiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1 bXBfd3JpdGVyLmNjCi0rKysgYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xp ZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYwotQEAgLTEzOCw3 ICsxMzgsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICAgICAgICAgICAgICAgICAgIGNv bnN0IE1pY3JvZHVtcEV4dHJhSW5mbyYgbWljcm9kdW1wX2V4dHJhX2luZm8sCi0gICAgICAgICAg ICAgICAgICAgTGludXhEdW1wZXIqIGR1bXBlcikKLSAgICAgICA6IHVjb250ZXh0Xyhjb250ZXh0 ID8gJmNvbnRleHQtPmNvbnRleHQgOiBOVUxMKSwKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9f KSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAg ICAgICAgdmVjdG9yX3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPnZlY3Rvcl9zdGF0ZSA6IE5V TEwpLAotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18p Ci0gICAgICAgICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT5mbG9hdF9zdGF0ZSA6 IE5VTEwpLAotICNlbmRpZgotICAgICAgICAgZHVtcGVyXyhkdW1wZXIpLAotQEAgLTMzNyw2ICsz MzksOCBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICMgZWxzZQotICMgIGVycm9yICJUaGlz IG1pcHMgQUJJIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIChuMzIpIgotICNlbmRpZgotKyNl bGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgY29uc3QgY2hhciBrQXJjaFtdID0gInBw YzY0IjsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8g eW91ciBwbGF0Zm9ybSB5ZXQiCi0gI2VuZGlmCi1AQCAtNDA5LDcgKzQxMyw5IEBAIGNsYXNzIE1p Y3JvZHVtcFdyaXRlciB7Ci0gICB2b2lkIER1bXBDUFVTdGF0ZSgpIHsKLSAgICAgUmF3Q29udGV4 dENQVSBjcHU7Ci0gICAgIG15X21lbXNldCgmY3B1LCAwLCBzaXplb2YoUmF3Q29udGV4dENQVSkp OwotLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29u dGV4dCgmY3B1LCB1Y29udGV4dF8sIHZlY3Rvcl9zdGF0ZV8pOwotKyNlbGlmICFkZWZpbmVkKF9f QVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgIFVDb250ZXh0UmVhZGVyOjpG aWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8sIGZsb2F0X3N0YXRlXyk7Ci0gI2Vsc2UKLSAg ICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KCZjcHUsIHVjb250ZXh0Xyk7Ci1AQCAt NjA1LDcgKzYxMSw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7Ci0gICB2b2lkKiBBbGxvYyh1 bnNpZ25lZCBieXRlcykgeyByZXR1cm4gZHVtcGVyXy0+YWxsb2NhdG9yKCktPkFsbG9jKGJ5dGVz KTsgfQotIAotICAgY29uc3QgdWNvbnRleHRfdCogY29uc3QgdWNvbnRleHRfOwotLSNpZiAhZGVm aW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OnZzdGF0ZV90KiBjb25zdCB2 ZWN0b3Jfc3RhdGVfOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQo X19taXBzX18pCi0gICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OmZwc3RhdGVfdCogY29uc3QgZmxv YXRfc3RhdGVfOwotICNlbmRpZgotICAgTGludXhEdW1wZXIqIGR1bXBlcl87Ci1kaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1 bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MgYi90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1w X3dyaXRlcl91bml0dGVzdC5jYwotaW5kZXggNjMzOWFjMGNkLi4yOTFhZjEwNmIgMTAwNjQ0Ci0t LS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3Jv ZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYwotKysrIGIvdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21p Y3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLUBAIC0yNzksMTAgKzI3OSwxOSBAQCBURVNUKE1p Y3JvZHVtcFdyaXRlclRlc3QsIEJhc2ljV2l0aE1hcHBpbmdzKSB7Ci0gICBDcmFzaEFuZEdldE1p Y3JvZHVtcChtYXBwaW5ncywgTWljcm9kdW1wRXh0cmFJbmZvKCksICZidWYpOwotICAgQVNTRVJU X1RSVUUoQ29udGFpbnNNaWNyb2R1bXAoYnVmKSk7Ci0gCi0rICBpbnQgcGFnZV9zaXplID0gZ2V0 cGFnZXNpemUoKTsKLSAjaWZkZWYgX19MUDY0X18KLS0gIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6 bnBvcywKLS0gICAgICAgICAgICBidWYuZmluZCgiTSAwMDAwMDAwMDAwMDAxMDAwIDAwMDAwMDAw MDAwMDAwMkEgMDAwMDAwMDAwMDAwMTAwMCAiCi0tICAgICAgICAgICAgICAgICAgICAgIjMzMjIx MTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28iKSk7Ci0rICAvLyBUaGlzIHRl c3QgaXMgb25seSBhdmFpbGFibGUgZm9yIHRoZSBmb2xsb3dpbmcgcGFnZSBzaXplcwotKyAgQVNT RVJUX1RSVUUoKHBhZ2Vfc2l6ZSA9PSA0MDk2KSB8fCAocGFnZV9zaXplID09IDY1NTM2KSk7Ci0r ICBpZiAocGFnZV9zaXplID09IDQwOTYpIHsgCi0rICAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6 bnBvcywKLSsgICAgICAgICAgICAgIGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMDEwMDAgMDAwMDAw MDAwMDAwMDAyQSAwMDAwMDAwMDAwMDAxMDAwICIKLSsgICAgICAgICAgICAgICAgICAgICAgICIz MzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJDQ0RERUVGRjAgbGliZm9vLnNvIikpOwotKyAgfSBlbHNl IHsKLSsgICAgQVNTRVJUX05FKHN0ZDo6c3RyaW5nOjpucG9zLAotKyAgICAgICAgICAgICAgYnVm LmZpbmQoIk0gMDAwMDAwMDAwMDAxMDAwMCAwMDAwMDAwMDAwMDAwMDJBIDAwMDAwMDAwMDAwMTAw MDAgIgotKyAgICAgICAgICAgICAgICAgICAgICAgIjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkND RERFRUZGMCBsaWJmb28uc28iKSk7Ci0rICB9Ci0gI2Vsc2UKLSAgIEFTU0VSVF9ORShzdGQ6OnN0 cmluZzo6bnBvcywKLSAgICAgICAgICAgICBidWYuZmluZCgiTSAwMDAwMTAwMCAwMDAwMDAyQSAw MDAwMTAwMCAiCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MgYi90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9saW51eF9jb3JlX2R1bXBlci5jYwotaW5kZXggNDE1MDY4OTgzLi5iOTNlNGFmY2YgMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29y ZV9kdW1wZXIuY2MKLUBAIC0xMTIsNiArMTEyLDkgQEAgYm9vbCBMaW51eENvcmVEdW1wZXI6Okdl dFRocmVhZEluZm9CeUluZGV4KHNpemVfdCBpbmRleCwgVGhyZWFkSW5mbyogaW5mbykgewotICNl bGlmIGRlZmluZWQoX19taXBzX18pCi0gICBzdGFja19wb2ludGVyID0KLSAgICAgICByZWludGVy cHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNf UkVHX1NQXSk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgc3RhY2tfcG9pbnRl ciA9Ci0rICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3Bf cmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF0pOwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNv ZGUgaGFzbid0IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKLSAjZW5kaWYKLUBA IC0xOTcsNyArMjAwLDEwIEBAIGJvb2wgTGludXhDb3JlRHVtcGVyOjpFbnVtZXJhdGVUaHJlYWRz KCkgewotICAgICAgICAgbWVtc2V0KCZpbmZvLCAwLCBzaXplb2YoVGhyZWFkSW5mbykpOwotICAg ICAgICAgaW5mby50Z2lkID0gc3RhdHVzLT5wcl9wZ3JwOwotICAgICAgICAgaW5mby5wcGlkID0g c3RhdHVzLT5wcl9wcGlkOwotLSNpZiBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDMxOyBpKyspCi0rICAg ICAgICAgICAgaW5mby5tY29udGV4dC5ncF9yZWdzW2ldID0gc3RhdHVzLT5wcl9yZWdbaV07Ci0r I2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAjaWYgZGVmaW5lZChfX0FORFJPSURfXykKLSAgICAg ICAgIGZvciAoaW50IGkgPSBFRl9SMDsgaSA8PSBFRl9SMzE7IGkrKykKLSAgICAgICAgICAgaW5m by5tY29udGV4dC5ncmVnc1tpIC0gRUZfUjBdID0gc3RhdHVzLT5wcl9yZWdbaV07Ci1kaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjCi1pbmRl eCA3ZmQ2NTMyYWQuLjE5OWNiZmZmZCAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFk L2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5j YwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9t aW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjCi1AQCAtNzY1LDcgKzc2NSw5IEBAIGJvb2wg TGludXhEdW1wZXI6OkdldFN0YWNrSW5mbyhjb25zdCB2b2lkKiogc3RhY2ssIHNpemVfdCogc3Rh Y2tfbGVuLAotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGludF9zdGFja19wb2lu dGVyICYgfihwYWdlX3NpemUgLSAxKSk7Ci0gCi0gICAvLyBUaGUgbnVtYmVyIG9mIGJ5dGVzIG9m IHN0YWNrIHdoaWNoIHdlIHRyeSB0byBjYXB0dXJlLgotLSAgc3RhdGljIGNvbnN0IHB0cmRpZmZf dCBrU3RhY2tUb0NhcHR1cmUgPSAzMiAqIDEwMjQ7Ci0rICAvLyBUaGlzIG5vdyBkZXBlbmRzIG9u IHBhZ2Vfc2l6ZSB0byBhdm9pZCBtaXNzaW5nIGRhdGEKLSsgIC8vIG9uIHN5c3RlbXMgd2l0aCBs YXJnZXIgcGFnZSBzaXplcy4KLSsgIHN0YXRpYyBjb25zdCBwdHJkaWZmX3Qga1N0YWNrVG9DYXB0 dXJlID0gOCAqIHBhZ2Vfc2l6ZTsKLSAKLSAgIGNvbnN0IE1hcHBpbmdJbmZvKiBtYXBwaW5nID0g RmluZE1hcHBpbmcoc3RhY2tfcG9pbnRlcik7Ci0gICBpZiAoIW1hcHBpbmcpCi1kaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfZHVtcGVyLmggYi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAotaW5kZXggN2Jl ZTE2MGYxLi4wN2JiMmI4MWEgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAotKysr IGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfZHVtcGVyLmgKLUBAIC02Myw3ICs2Myw4IEBAIG5hbWVzcGFjZSBnb29n bGVfYnJlYWtwYWQgewotICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQklP MzIpCi0gdHlwZWRlZiBFbGYzMl9hdXh2X3QgZWxmX2F1eF9lbnRyeTsKLSAjZWxpZiBkZWZpbmVk KF9feDg2XzY0KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCi0tICAgICAoZGVmaW5lZChf X21pcHNfXykgJiYgX01JUFNfU0lNICE9IF9BQklPMzIpCi0rICAgICAoZGVmaW5lZChfX21pcHNf XykgJiYgX01JUFNfU0lNICE9IF9BQklPMzIpIHx8IFwKLSsgICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSB0eXBlZGVmIEVsZjY0X2F1eHZfdCBlbGZfYXV4X2VudHJ5OwotICNlbmRpZgotIAot ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MgYi90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi1pbmRleCAzMzFmNGJiMzQuLjNmNzIy OTQ3ZiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MK LSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MKLUBAIC01MSw2ICs1 MSw4IEBACi0gI2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICJyY3giCi0gI2VsaWYgZGVmaW5lZChf X21pcHNfXykKLSAjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgIiQxIgotKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSsjZGVmaW5lIFRJRF9QVFJfUkVHSVNURVIgInI4IgotICNlbHNlCi0g I2Vycm9yIFRoaXMgdGVzdCBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0uCi0g I2VuZGlmCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYyBiL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVy L2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MKLWluZGV4IGUzZGRiODFhNi4uZmEyODU3NWVmIDEwMDY0 NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9t aW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYwotKysrIGIvdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf cHRyYWNlX2R1bXBlci5jYwotQEAgLTE0OSwxOSArMTQ5LDI3IEBAIGJvb2wgTGludXhQdHJhY2VE dW1wZXI6OkNvcHlGcm9tUHJvY2Vzcyh2b2lkKiBkZXN0LCBwaWRfdCBjaGlsZCwKLSAgIHJldHVy biB0cnVlOwotIH0KLSAKLS1ib29sIExpbnV4UHRyYWNlRHVtcGVyOjpSZWFkUmVnaXN0ZXJTZXQo VGhyZWFkSW5mbyogaW5mbywgcGlkX3QgdGlkKQotLXsKLStib29sIExpbnV4UHRyYWNlRHVtcGVy OjpSZWFkUmVnaXN0ZXJTZXQoVGhyZWFkSW5mbyogaW5mbywgcGlkX3QgdGlkKSB7Ci0gI2lmZGVm IFBUUkFDRV9HRVRSRUdTRVQKLSAgIHN0cnVjdCBpb3ZlYyBpbzsKLSAgIGluZm8tPkdldEdlbmVy YWxQdXJwb3NlUmVnaXN0ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOwotLSAgaWYgKHN5 c19wdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfUFJTVEFUVVMsICh2b2lk KikmaW8pID09IC0xKSB7Ci0rICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZv aWQqKU5UX1BSU1RBVFVTLCAodm9pZCopJmlvKSA9PSAtMSkgewotICAgICByZXR1cm4gZmFsc2U7 Ci0gICB9Ci0gCi0gICBpbmZvLT5HZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKCZpby5pb3ZfYmFz ZSwgJmlvLmlvdl9sZW4pOwotLSAgaWYgKHN5c19wdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlk LCAodm9pZCopTlRfRlBSRUdTRVQsICh2b2lkKikmaW8pID09IC0xKSB7Ci0rICBpZiAocHRyYWNl KFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX0ZQUkVHU0VULCAodm9pZCopJmlvKSA9 PSAtMSkgewotICAgICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0rCi0rI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKLSsgIC8vIEdyYWIgdGhlIHZlY3RvciByZWdpc3RlcnMgb24gUFBDNjQgdG9vCi0r ICBpbmZvLT5HZXRWZWN0b3JSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAmaW8uaW92X2xlbik7Ci0r ICBpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX1BQQ19WTVgsICh2 b2lkKikmaW8pID09IC0xKSB7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsjZW5kaWYgLy8g ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKwotICAgcmV0dXJuIHRydWU7Ci0gI2Vsc2UKLSAgIHJl dHVybiBmYWxzZTsKLUBAIC0yOTgsNiArMzA2LDkgQEAgYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6 R2V0VGhyZWFkSW5mb0J5SW5kZXgoc2l6ZV90IGluZGV4LCBUaHJlYWRJbmZvKiBpbmZvKSB7Ci0g I2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIHN0YWNrX3BvaW50ZXIgPQotICAgICAgIHJlaW50 ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQ U19SRUdfU1BdKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBzdGFja19wb2lu dGVyID0KLSsgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5n cF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXSk7Ci0gI2Vsc2UKLSAjZXJyb3IgIlRoaXMg Y29kZSBoYXNuJ3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgotICNlbmRpZgot ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGlu dXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MgYi90aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0ZXN0LmNjCi1pbmRleCBkYTcxZTE1ZGMuLjEyYmZi MzE3YSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MK LSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRlc3QuY2MKLUBAIC00NjIsNiAr NDYyLDkgQEAgVEVTVChMaW51eFB0cmFjZUR1bXBlclRlc3QsIFZlcmlmeVN0YWNrUmVhZFdpdGhN dWx0aXBsZVRocmVhZHMpIHsKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICAgICBwaWRfdCog cHJvY2Vzc190aWRfbG9jYXRpb24gPQotICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxwaWRfdCo+ KG9uZV90aHJlYWQubWNvbnRleHQuZ3JlZ3NbMV0pOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSsgICAgcGlkX3QqIHByb2Nlc3NfdGlkX2xvY2F0aW9uID0KLSsgICAgICAgIHJlaW50 ZXJwcmV0X2Nhc3Q8cGlkX3QqPihvbmVfdGhyZWFkLm1jb250ZXh0LmdwX3JlZ3NbOF0pOwotICNl bHNlCi0gI2Vycm9yIFRoaXMgdGVzdCBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZv cm0uCi0gI2VuZGlmCi1AQCAtNTU5LDYgKzU2Miw4IEBAIFRFU1RfRihMaW51eFB0cmFjZUR1bXBl clRlc3QsIFNhbml0aXplU3RhY2tDb3B5KSB7Ci0gICB1aW50cHRyX3QgaGVhcF9hZGRyID0gdGhy ZWFkX2luZm8ucmVncy5yY3g7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIHVpbnRwdHJf dCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5mby5tY29udGV4dC5ncmVnc1sxXTsKLSsjZWxpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0rICB1aW50cHRyX3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8u bWNvbnRleHQuZ3BfcmVnc1s4XTsKLSAjZWxzZQotICNlcnJvciBUaGlzIHRlc3QgaGFzIG5vdCBi ZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVy L21pbmlkdW1wX3dyaXRlci5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYwotaW5kZXggMzI2 MzRlZjAwLi4yYTU2OTQ4ZGUgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MK LSsrKyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5jYwotQEAgLTEzNiw3ICsxMzYsOSBAQCBjbGFz cyBNaW5pZHVtcFdyaXRlciB7Ci0gICAgICAgOiBmZF8obWluaWR1bXBfZmQpLAotICAgICAgICAg cGF0aF8obWluaWR1bXBfcGF0aCksCi0gICAgICAgICB1Y29udGV4dF8oY29udGV4dCA/ICZjb250 ZXh0LT5jb250ZXh0IDogTlVMTCksCi0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRl ZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIHZl Y3Rvcl9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT52ZWN0b3Jfc3RhdGUgOiBOVUxMKSwKLSsj ZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgICAg ICAgZmxvYXRfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+ZmxvYXRfc3RhdGUgOiBOVUxMKSwK LSAjZW5kaWYKLSAgICAgICAgIGR1bXBlcl8oZHVtcGVyKSwKLUBAIC00NjgsNyArNDcwLDkgQEAg Y2xhc3MgTWluaWR1bXBXcml0ZXIgewotICAgICAgICAgaWYgKCFjcHUuQWxsb2NhdGUoKSkKLSAg ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgbXlfbWVtc2V0KGNwdS5nZXQoKSwgMCwg c2l6ZW9mKFJhd0NvbnRleHRDUFUpKTsKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAh ZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgICAgICAg VUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQoKSwgdWNvbnRleHRfLCB2ZWN0 b3Jfc3RhdGVfKTsKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9f bWlwc19fKQotICAgICAgICAgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KGNwdS5nZXQo KSwgdWNvbnRleHRfLCBmbG9hdF9zdGF0ZV8pOwotICNlbHNlCi0gICAgICAgICBVQ29udGV4dFJl YWRlcjo6RmlsbENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29udGV4dF8pOwotQEAgLTg5Nyw3ICs5 MDEsNyBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gICAgIGRpcmVudC0+bG9jYXRpb24ucnZh ID0gMDsKLSAgIH0KLSAKLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSAgIGJvb2wgV3JpdGVDUFVJbmZvcm1hdGlvbihNRFJhd1N5c3RlbUluZm8qIHN5c19p bmZvKSB7Ci0gICAgIGNoYXIgdmVuZG9yX2lkW3NpemVvZihzeXNfaW5mby0+Y3B1Lng4Nl9jcHVf aW5mby52ZW5kb3JfaWQpICsgMV0gPSB7MH07Ci0gICAgIHN0YXRpYyBjb25zdCBjaGFyIHZlbmRv cl9pZF9uYW1lW10gPSAidmVuZG9yX2lkIjsKLUBAIC05MTcsNyArOTIxLDkgQEAgY2xhc3MgTWlu aWR1bXBXcml0ZXIgewotIAotICAgICAvLyBwcm9jZXNzb3JfYXJjaGl0ZWN0dXJlIHNob3VsZCBh bHdheXMgYmUgc2V0LCBkbyB0aGlzIGZpcnN0Ci0gICAgIHN5c19pbmZvLT5wcm9jZXNzb3JfYXJj aGl0ZWN0dXJlID0KLS0jaWYgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgICAgICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9QUEM2NDsKLSsjZWxpZiBkZWZp bmVkKF9fbWlwc19fKQotICMgaWYgX01JUFNfU0lNID09IF9BQklPMzIKLSAgICAgICAgIE1EX0NQ VV9BUkNISVRFQ1RVUkVfTUlQUzsKLSAjIGVsaWYgX01JUFNfU0lNID09IF9BQkk2NAotQEAgLTEz MzMsNyArMTMzOSw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAgIGNvbnN0IGNoYXIqIHBh dGhfOyAgLy8gUGF0aCB0byB0aGUgZmlsZSB3aGVyZSB0aGUgbWluaWR1bSBzaG91bGQgYmUgd3Jp dHRlbi4KLSAKLSAgIGNvbnN0IHVjb250ZXh0X3QqIGNvbnN0IHVjb250ZXh0XzsgIC8vIGFsc28g ZnJvbSB0aGUgc2lnbmFsIGhhbmRsZXIKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAh ZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgY29uc3Qg Z29vZ2xlX2JyZWFrcGFkOjp2c3RhdGVfdCogY29uc3QgdmVjdG9yX3N0YXRlXzsKLSsjZWxpZiAh ZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgY29uc3QgZ29v Z2xlX2JyZWFrcGFkOjpmcHN0YXRlX3QqIGNvbnN0IGZsb2F0X3N0YXRlXzsgIC8vIGRpdHRvCi0g I2VuZGlmCi0gICBMaW51eER1bXBlciogZHVtcGVyXzsKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5p ZHVtcF93cml0ZXIuaCBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCi1pbmRleCBlM2IwYjE2ZGEu LmNjZDhhYTBhNCAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCi0rKysgYi90 aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dy aXRlci9taW5pZHVtcF93cml0ZXIuaAotQEAgLTQ4LDYgKzQ4LDggQEAgY2xhc3MgRXhjZXB0aW9u SGFuZGxlcjsKLSAKLSAjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKLSB0eXBlZGVmIHN0cnVjdCBm cHNpbWRfY29udGV4dCBmcHN0YXRlX3Q7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot K3R5cGVkZWYgdnJyZWdzZXRfdCB2c3RhdGVfdDsKLSAjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJ X18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotIHR5cGVkZWYgc3RkOjpyZW1vdmVfcG9pbnRlcjxm cHJlZ3NldF90Pjo6dHlwZSBmcHN0YXRlX3Q7Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0 ZXN0LmNjCi1pbmRleCBkMTkyZTVjYmIuLmZjMWJmYThkNyAxMDA2NDQKLS0tLSBhL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21p bmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3Vu aXR0ZXN0LmNjCi1AQCAtNzE1LDYgKzcxNSw5IEBAIFRFU1QoTWluaWR1bXBXcml0ZXJUZXN0LCBJ bnZhbGlkU3RhY2tQb2ludGVyKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIGNvbnRl eHQuY29udGV4dC51Y19tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSA9Ci0g ICAgICAgaW52YWxpZF9zdGFja19wb2ludGVyOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSsgIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBD NjRfUkVHX1NQXSA9Ci0rICAgICAgaW52YWxpZF9zdGFja19wb2ludGVyOwotICNlbHNlCi0gIyBl cnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQu IgotICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNjIGIvdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MKLWluZGV4 IDk5MzYyOTQ1Yy4uYzU0YmE3MTQ1IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MKLSsrKyBiL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBl ZF9maWxlLmNjCi1AQCAtNjUsOCArNjUsNyBAQCBib29sIE1lbW9yeU1hcHBlZEZpbGU6Ok1hcChj b25zdCBjaGFyKiBwYXRoLCBzaXplX3Qgb2Zmc2V0KSB7Ci0gICB9Ci0gCi0gI2lmIGRlZmluZWQo X194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAotLSAgIChkZWZpbmVkKF9f bWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX0FCSTY0KQotLQotKyAgIChkZWZpbmVkKF9fbWlwc19f KSAmJiBfTUlQU19TSU0gPT0gX0FCSTY0KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBz dHJ1Y3Qga2VybmVsX3N0YXQgc3Q7Ci0gICBpZiAoc3lzX2ZzdGF0KGZkLCAmc3QpID09IC0xIHx8 IHN0LnN0X3NpemUgPCAwKSB7Ci0gI2Vsc2UKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZV91bml0dGVz dC5jYyBiL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVt b3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCi1pbmRleCBmYWQ1OWY0MGMuLjYxNjQ5NmQ2NyAx MDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGlu dXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZV91bml0dGVz dC5jYwotQEAgLTE3Niw5ICsxNzYsMTAgQEAgVEVTVF9GKE1lbW9yeU1hcHBlZEZpbGVUZXN0LCBS ZW1hcEFmdGVyTWFwKSB7Ci0gVEVTVF9GKE1lbW9yeU1hcHBlZEZpbGVUZXN0LCBNYXBXaXRoT2Zm c2V0KSB7Ci0gICAvLyBQdXQgbW9yZSBkYXRhIGluIHRoZSB0ZXN0IGZpbGUgdGhpcyB0aW1lLiBP ZmZzZXRzIGNhbiBvbmx5IGJlCi0gICAvLyBkb25lIG9uIHBhZ2UgYm91bmRhcmllcywgc28gd2Ug bmVlZCBhIHR3byBwYWdlIGZpbGUgdG8gdGVzdCB0aGlzLgotLSAgY29uc3QgaW50IHBhZ2Vfc2l6 ZSA9IDQwOTY7Ci0tICBjaGFyIGRhdGExWzIgKiBwYWdlX3NpemVdOwotLSAgc2l6ZV90IGRhdGEx X3NpemUgPSBzaXplb2YoZGF0YTEpOwotKyAgY29uc3QgaW50IHBhZ2Vfc2l6ZSA9IGdldHBhZ2Vz aXplKCk7Ci0rICBjaGFyICpkYXRhMSA9IHN0YXRpY19jYXN0PGNoYXIqPihtYWxsb2MoMiAqIHBh Z2Vfc2l6ZSkpOwotKyAgRVhQRUNUX1RSVUUoZGF0YTEgIT0gTlVMTCk7Ci0rICBzaXplX3QgZGF0 YTFfc2l6ZSA9ICgyICogcGFnZV9zaXplKTsKLSAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGF0 YTFfc2l6ZTsgKytpKSB7Ci0gICAgIGRhdGExW2ldID0gaSAmIDB4N2Y7Ci0gICB9Ci1kaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxs b2NhdG9yX3VuaXR0ZXN0LmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Nv bW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjCi1pbmRleCA1ODAzYjkwZDUuLjJhMWNm MTRmMCAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21t b24vbWVtb3J5X2FsbG9jYXRvcl91bml0dGVzdC5jYwotKysrIGIvdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjCi1AQCAt NTcsOCArNTcsOSBAQCBURVNUKFBhZ2VBbGxvY2F0b3JUZXN0LCBMYXJnZU9iamVjdCkgewotIAot ICAgRVhQRUNUX0VRKDBVLCBhbGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOwotICAgdWludDhf dCogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGFsbG9jYXRvci5BbGxvYygxMDAwMCkp OwotKyAgdWludDY0X3QgZXhwZWN0ZWRfcGFnZXMgPSAxICsgKCgxMDAwMCAtIDEpIC8gZ2V0cGFn ZXNpemUoKSk7Ci0gICBBU1NFUlRfRkFMU0UocCA9PSBOVUxMKTsKLS0gIEVYUEVDVF9FUSgzVSwg YWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKLSsgIEVYUEVDVF9FUShleHBlY3RlZF9wYWdl cywgYWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKLSAgIGZvciAodW5zaWduZWQgaSA9IDE7 IGkgPCAxMDsgKytpKSB7Ci0gICAgIHVpbnQ4X3QqIHAgPSByZWludGVycHJldF9jYXN0PHVpbnQ4 X3QqPihhbGxvY2F0b3IuQWxsb2MoaSkpOwotICAgICBBU1NFUlRfRkFMU0UocCA9PSBOVUxMKTsK LWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29y L2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51eC5jYwotaW5kZXggNzk4MDU2ZGZhLi4y MmJkODFmZmYgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv cHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNjCi1AQCAt MjAyLDEyICsyMDIsMTQgQEAgYm9vbCBFeHBsb2l0YWJpbGl0eUxpbnV4OjpFbmRlZE9uSWxsZWdh bFdyaXRlKHVpbnQ2NF90IGluc3RydWN0aW9uX3B0cikgewotICAgLy8gQ2hlY2sgYXJjaGl0ZWN0 dXJlIGFuZCBzZXQgYXJjaGl0ZWN0dXJlIHZhcmlhYmxlIHRvIGNvcnJlc3BvbmRpbmcgZmxhZwot ICAgLy8gaW4gb2JqZHVtcC4KLSAgIHN3aXRjaCAoY29udGV4dC0+R2V0Q29udGV4dENQVSgpKSB7 Ci0rI2lmIGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KQotICAgICBjYXNlIE1E X0NPTlRFWFRfWDg2OgotICAgICAgIGFyY2hpdGVjdHVyZSA9ICJpMzg2IjsKLSAgICAgICBicmVh azsKLSAgICAgY2FzZSBNRF9DT05URVhUX0FNRDY0OgotICAgICAgIGFyY2hpdGVjdHVyZSA9ICJp Mzg2Ong4Ni02NCI7Ci0gICAgICAgYnJlYWs7Ci0rI2VuZGlmCi0gICAgIGRlZmF1bHQ6Ci0gICAg ICAgLy8gVW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLiBOb3RlIHRoYXQgQVJNIGFyY2hpdGVjdHVy ZXMgYXJlIG5vdAotICAgICAgIC8vIHN1cHBvcnRlZCBiZWNhdXNlIG9iamR1bXAgZG9lcyBub3Qg c3VwcG9ydCBBUk0uCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYyBiL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MK LWluZGV4IDUyOGVlNWYyMS4uNzI3NjRkNmMxIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91bml0dGVzdC5jYwot KysrIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0 YWJpbGl0eV91bml0dGVzdC5jYwotQEAgLTEwNCw2ICsxMDQsOCBAQCBFeHBsb2l0YWJpbGl0eUZv cihjb25zdCBzdHJpbmcmIGZpbGVuYW1lKSB7Ci0gfQotIAotIFRFU1QoRXhwbG9pdGFiaWxpdHlU ZXN0LCBUZXN0V2luZG93c0VuZ2luZSkgewotKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIG9u bHkgZXhlY3V0YWJsZSBvbiBhbiB4ODYtY2xhc3MgbGludXggbWFjaGluZS4KLSsjaWYgIWRlZmlu ZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQotICAg QVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKLSAgICAgICAg ICAgICBFeHBsb2l0YWJpbGl0eUZvcigiYXNjaWlfcmVhZF9hdi5kbXAiKSk7Ci0gICBBU1NFUlRf RVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAotQEAgLTEzNiw5ICsxMzgs MTIgQEAgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RXaW5kb3dzRW5naW5lKSB7Ci0gICAg ICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoInJlYWRfYXZfY2xvYmJlcl93cml0ZS5kbXAiKSk7 Ci0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9MT1csCi0gICAg ICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoInJlYWRfYXZfY29uZGl0aW9uYWwuZG1wIikpOwot KyNlbmRpZgotIH0KLSAKLSBURVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdExpbnV4RW5naW5l KSB7Ci0rLy8gVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgb25seSBleGVjdXRhYmxlIG9uIGFuIHg4 Ni1jbGFzcyBsaW51eCBtYWNoaW5lLgotKyNpZiBkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChf X3g4Nl82NCkKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0lO VEVSRVNUSU5HLAotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9udWxsX3Jl YWRfYXYuZG1wIikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJ VFlfSElHSCwKLUBAIC0xNzEsNyArMTc2LDggQEAgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRl c3RMaW51eEVuZ2luZSkgewotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9l eGVjdXRhYmxlX2hlYXAuZG1wIikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQ TE9JVEFCSUxJVFlfSElHSCwKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhf am1wX3RvX21vZHVsZV9ub3RfZXhlX3JlZ2lvbi5kbXAiKSk7Ci0tI2lmbmRlZiBfV0lOMzIKLSsj ZW5kaWYKLSsjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmlu ZWQoX194ODZfNjQpKQotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJ VFlfSElHSCwKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfd3JpdGVfdG9f bm9ud3JpdGFibGVfbW9kdWxlLmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6 OkVYUExPSVRBQklMSVRZX0hJR0gsCi1AQCAtMTgyLDEwICsxODgsMTAgQEAgVEVTVChFeHBsb2l0 YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVuZ2luZSkgewotICAgICAgICAgICAgIEV4cGxvaXRhYmls aXR5Rm9yKCJsaW51eF93cml0ZV90b19vdXRzaWRlX21vZHVsZV92aWFfbWF0aC5kbXAiKSk7Ci0g ICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9JTlRFUkVTVElORywK LSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfd3JpdGVfdG9fdW5kZXJfNGsu ZG1wIikpOwotLSNlbmRpZiAgLy8gX1dJTjMyCi0rI2VuZGlmICAvLyAhZGVmaW5lZChfV0lOMzIp ICYmICghZGVmaW5lZChfX2kzODYpICYmICFkZWZpbmVkKF9feDg2XzY0KSkKLSB9Ci0gCi0tI2lm bmRlZiBfV0lOMzIKLSsjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODYpIHx8 IGRlZmluZWQoX194ODZfNjQpKQotIFRFU1QoRXhwbG9pdGFiaWxpdHlMaW51eFV0aWxzVGVzdCwg RGlzYXNzZW1ibGVCeXRlc1Rlc3QpIHsKLSAgIEFTU0VSVF9GQUxTRShFeHBsb2l0YWJpbGl0eUxp bnV4VGVzdDo6RGlzYXNzZW1ibGVCeXRlcygiIiwgTlVMTCwgNSwgTlVMTCkpOwotICAgdWludDhf dCBieXRlc1s2XSA9IHsweGM3LCAweDAsIDB4NSwgMHgwLCAweDAsIDB4MH07Ci1AQCAtMzAxLDYg KzMwNyw3IEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlMaW51eFV0aWxzVGVzdCwgQ2FsY3VsYXRlQWRk cmVzc1Rlc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZ3cml0ZV9hZGRyZXNzKSk7Ci0gfQotLSNlbmRpZiAg Ly8gX1dJTjMyCi0rI2VuZGlmICAvLyAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9faTM4 NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCi0rCi0gCi0gfSAgLy8gbmFtZXNwYWNlCi1kaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNv cmUvbWluaWR1bXAtMi1jb3JlLmNjIGIvdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCi1pbmRleCBhYWRlODJjOTku LjE5NWFhNzNmMyAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy90b29scy9saW51eC9tZDJjb3JlL21pbmlkdW1wLTItY29yZS5jYwotKysrIGIvdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1j b3JlLmNjCi1AQCAtNzcsNiArNzcsOCBAQAotICAgI2RlZmluZSBFTEZfQVJDSCAgRU1fTUlQUwot ICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gICAjZGVmaW5lIEVMRl9BUkNIICBFTV9BQVJD SDY0Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgI2RlZmluZSBFTEZfQVJDSCAg RU1fUFBDNjQKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX2FybV9fKQotQEAgLTg3LDYgKzg5 LDggQEAgdHlwZWRlZiB1c2VyX3JlZ3MgdXNlcl9yZWdzX3N0cnVjdDsKLSAjZWxpZiBkZWZpbmVk IChfX21pcHNfXykKLSAvLyBUaGlzIGZpbGUtbG9jYWwgdHlwZWRlZiBzaW1wbGlmaWVzIHRoZSBz b3VyY2UgY29kZS4KLSB0eXBlZGVmIGdyZWdzZXRfdCB1c2VyX3JlZ3Nfc3RydWN0OwotKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSt0eXBlZGVmIHN0cnVjdCBwdF9yZWdzIHVzZXJfcmVn c19zdHJ1Y3Q7Ci0gI2VuZGlmCi0gCi0gdXNpbmcgZ29vZ2xlX2JyZWFrcGFkOjpNRFR5cGVIZWxw ZXI7Ci1AQCAtMzIxLDYgKzMyNSw5IEBAIHN0cnVjdCBDcmFzaGVkUHJvY2VzcyB7Ci0gI2VuZGlm Ci0gI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gICAgIHVzZXJfZnBzaW1kX3N0cnVjdCBmcHJl Z3M7Ci0rI2VuZGlmCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgbWNvbnRleHRf dCBtY29udGV4dDsKLSAjZW5kaWYKLSAgICAgdWludHB0cl90IHN0YWNrX2FkZHI7Ci0gICAgIGNv bnN0IHVpbnQ4X3QqIHN0YWNrOwotQEAgLTUzNSw2ICs1NDIsMzggQEAgUGFyc2VUaHJlYWRSZWdp c3RlcnMoQ3Jhc2hlZFByb2Nlc3M6OlRocmVhZCogdGhyZWFkLAotICAgdGhyZWFkLT5tY29udGV4 dC5mcGNfZWlyID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5maXI7Ci0gI2VuZGlmCi0gfQotKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLStzdGF0aWMgdm9pZAotK1BhcnNlVGhyZWFkUmVnaXN0 ZXJzKENyYXNoZWRQcm9jZXNzOjpUaHJlYWQqIHRocmVhZCwKLSsgICAgICAgICAgICAgICAgICAg ICBjb25zdCBNaW5pZHVtcE1lbW9yeVJhbmdlJiByYW5nZSkgewotKyAgY29uc3QgTURSYXdDb250 ZXh0UFBDNjQqIHJhd3JlZ3MgPSByYW5nZS5HZXREYXRhPE1EUmF3Q29udGV4dFBQQzY0PigwKTsK LSsKLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkr KykKLSsgICAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW2ldID0gcmF3cmVncy0+Z3ByW2ldOwot KwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX0xOS10gPSByYXdyZWdzLT5scjsKLSsg IHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdID0gcmF3cmVncy0+c3JyMDsKLSsgIHRo cmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdID0gcmF3cmVncy0+c3JyMTsKLSsgIHRocmVh ZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdID0gcmF3cmVncy0+Y3I7Ci0rICB0aHJlYWQtPm1j b250ZXh0LmdwX3JlZ3NbUFRfWEVSXSA9IHJhd3JlZ3MtPnhlcjsKLSsgIHRocmVhZC0+bWNvbnRl eHQuZ3BfcmVnc1tQVF9DVFJdID0gcmF3cmVncy0+Y3RyOwotKyAgdGhyZWFkLT5tY29udGV4dC52 X3JlZ3MtPnZyc2F2ZSA9IHJhd3JlZ3MtPnZyc2F2ZTsKLSsKLSsgIGZvciAoaW50IGkgPSAwOyBp IDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0rICAgICAgdGhyZWFk LT5tY29udGV4dC5mcF9yZWdzW2ldID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV07Ci0r Ci0rICB0aHJlYWQtPm1jb250ZXh0LmZwX3JlZ3NbTkZQUkVHLTFdID0gcmF3cmVncy0+ZmxvYXRf c2F2ZS5mcHNjcjsKLSsKLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFf UFBDX1ZSX0NPVU5UOyBpKyspIHsKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJy ZWdzW2ldWzBdID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5oaWdoID4+IDMyOwot KyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bMV0gPSByYXdyZWdzLT52 ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmhpZ2g7Ci0rICAgICAgdGhyZWFkLT5tY29udGV4dC52X3Jl Z3MtPnZycmVnc1tpXVsyXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0ubG93ID4+ IDMyOwotKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bM10gPSByYXdy ZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmxvdzsKLSsgIH0KLSsKLSsgIHRocmVhZC0+bWNv bnRleHQudl9yZWdzLT52c2NyLnZzY3Jfd29yZCA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVf dnNjci5sb3cgJiAweEZGRkZGRkZGOwotK30KLSsKLSAjZWxzZQotICNlcnJvciAiVGhpcyBjb2Rl IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCi0gI2VuZGlmCi1AQCAt NjIzLDYgKzY2MiwxMiBAQCBQYXJzZVN5c3RlbUluZm8oY29uc3QgT3B0aW9ucyYgb3B0aW9ucywg Q3Jhc2hlZFByb2Nlc3MqIGNyYXNoaW5mbywKLSAjIGVsc2UKLSAjICBlcnJvciAiVGhpcyBtaXBz IEFCSSBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCAobjMyKSIKLSAjIGVuZGlmCi0rI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgaWYgKHN5c2luZm8tPnByb2Nlc3Nvcl9hcmNoaXRl Y3R1cmUgIT0gTURfQ1BVX0FSQ0hJVEVDVFVSRV9QUEM2NCkgewotKyAgICBmcHJpbnRmKHN0ZGVy ciwKLSsgICAgICAgICAgICAiVGhpcyB2ZXJzaW9uIG9mIG1pbmlkdW1wLTItY29yZSBvbmx5IHN1 cHBvcnRzIFBQQzY0LlxuIik7Ci0rICAgIGV4aXQoMSk7Ci0rICB9Ci0gI2Vsc2UKLSAjZXJyb3Ig IlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0IgotICNl bmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJV VE9SUyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUwotaW5kZXgg ODcyNGI3ZjMyLi44ZTI5NDI0ZWYgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9DT05UUklCVVRPUlMKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L0NPTlRSSUJVVE9SUwotQEAgLTEzLDMgKzEzLDQgQEAgTWFyayBNZW50b3ZhaSA8bWFya0BjaHJv bWl1bS5vcmc+Ci0gUm9iZXJ0IFNlc2VrIDxyc2VzZWtAY2hyb21pdW0ub3JnPgotIFNjb3R0IEdy YWhhbSA8c2NvdHRtZ0BjaHJvbWl1bS5vcmc+Ci0gSm9zaHVhIFBlcmF6YSA8anBlcmF6YUBjaHJv bWl1bS5vcmc+Ci0rU2hhd24gQW5hc3Rhc2lvIDxzaGF3bkBhbmFzdGFzLmlvPgotZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5o IGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgK LWluZGV4IDZlZDc3YTk4ZS4uMWZkODM0NjlhIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKLSsrKyBiL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5oCi1AQCAtMTUsNiArMTUs NyBAQAotICNpZm5kZWYgQ1JBU0hQQURfQ09NUEFUX0xJTlVYX1NZU19VU0VSX0hfCi0gI2RlZmlu ZSBDUkFTSFBBRF9DT01QQVRfTElOVVhfU1lTX1VTRVJfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0ZGRl Zj4KLSAjaW5jbHVkZV9uZXh0IDxzeXMvdXNlci5oPgotIAotICNpbmNsdWRlIDxmZWF0dXJlcy5o PgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21p bmlkdW1wX2NvbnRleHQuaCBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1w L21pbmlkdW1wX2NvbnRleHQuaAotaW5kZXggM2EzZTYwM2NiLi4zMTE4ZDllOWYgMTAwNjQ0Ci0t LS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250 ZXh0LmgKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlk dW1wX2NvbnRleHQuaAotQEAgLTU5Miw2ICs1OTIsNzAgQEAgc3RydWN0IE1pbmlkdW1wQ29udGV4 dE1JUFM2NCB7Ci0gICB1aW50NjRfdCBmaXI7Ci0gfTsKLSAKLSsvLyEgXGJyaWVmIHBwYzY0LXNw ZWNpZmljIGZsYWdzIGZvciBNaW5pZHVtcFBQQzY0Ojpjb250ZXh0X2ZsYWdzCi0rLy8hIEJhc2Vk IG9uIG1pbmlkdW1wX2NwdV9wcGM2NC5oIGZyb20gYnJlYWtwYWQKLStlbnVtIE1pbmlkdW1wQ29u dGV4dFBQQzY0RmxhZ3MgOiB1aW50MzJfdCB7Ci0rICAvLyEgXGJyaWVmIElkZW50aWZpZXMgdGhl IGNvbnRleHQgYXMgUFBDNjQuCi0rICBrTWluaWR1bXBDb250ZXh0UFBDNjQgPSAweDAxMDAwMDAw LAotKwotKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGdlbmVyYWwgcHVy cG9zZSByZWdpc3RlcnMuCi0rICAvLyEKLSsgIC8vISBSZWdpc3RlcnMgYHIwYC1gcjMxYCwgYG5p cGAsIGBtc3JgLCBgbHJgLCBldGMuIGFyZSB2YWxpZC4KLSsgIGtNaW5pZHVtcENvbnRleHRQUEM2 NEJhc2UgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDAxLAotKwotKyAgLy8hIFxi cmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4K LSsgIC8vIQotKyAgLy8hIFJlZ2lzdGVycyBgZnAwYC1gZnAzMWAsIGBmcHNjcmAgYXJlIHZhbGlk LgotKyAga01pbmlkdW1wQ29udGV4dFBQQzY0RmxvYXRpbmcgPSBrTWluaWR1bXBDb250ZXh0UFBD NjQgfCAweDAwMDAwMDA4LAotKwotKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5 IG9mIEFsdGl2ZWMvVk1YIHJlZ2lzdGVycy4KLSsgIC8vIQotKyAgLy8hIFJlZ2lzdGVycyBgdjBg LWB2MzFgLCBgdnNjcmAsIGB2cnNhdmVgLgotKyAga01pbmlkdW1wQ29udGV4dFBQQzY0VmVjdG9y ID0ga01pbmlkdW1wQ29udGV4dFBQQzY0IHwgMHgwMDAwMDAyMCwKLSsKLSsgIC8vISBcYnJpZWYg SW5kaWNhdGVzIHRoZSB2YWxpZGl0eSBvZiBhbGwgcmVnaXN0ZXJzCi0rICBrTWluaWR1bXBDb250 ZXh0UFBDNjRBbGwgPSBrTWluaWR1bXBDb250ZXh0UFBDNjRCYXNlICAgICB8Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGluZyB8Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRWZWN0b3IKLSt9 OwotKwotKy8vISBcYnJpZWYgQSBQUEM2NCBDUFUgY29udGV4dCBjYXJyaWVkIGluIGEgbWluaWR1 bXAgZmlsZS4KLSsvLyEgQmFzZWQgb24gbWluaWR1bXBfY3B1X3BwYzY0LmggZnJvbSBicmVha3Bh ZC4KLStzdHJ1Y3QgTWluaWR1bXBDb250ZXh0UFBDNjQgewotKyAgdWludDY0X3QgY29udGV4dF9m bGFnczsKLSsKLSsgIC8vISBcYnJpZWYgR2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KLSsgIHVp bnQ2NF90IG5pcDsKLSsgIHVpbnQ2NF90IG1zcjsKLSsgIHVpbnQ2NF90IHJlZ3NbMzJdOwotKyAg dWludDY0X3QgY2NyOwotKyAgdWludDY0X3QgeGVyOwotKyAgdWludDY0X3QgbG5rOwotKyAgdWlu dDY0X3QgY3RyOwotKwotKyAgLy8hIFxicmllZiBGbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCi0r ICBkb3VibGUgZnByZWdzWzMyXTsKLSsKLSsgIC8vISBcYnJpZWYgRlBVIHN0YXR1cyByZWdpc3Rl ci4KLSsgIGRvdWJsZSBmcHNjcjsKLSsKLSsgIC8vISBcYnJpZWYgQWx0aXZlYy9WTVggdmVjdG9y IHJlZ2lzdGVycy4KLSsgIHN0cnVjdCB7Ci0rICAgICAgLy8hIFxicmllZiBWZWN0b3IgcmVnaXN0 ZXJzIGFyZSAxMjhiaXRzLgotKyAgICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnJbMzJdOwotKyAg ICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnNjcjsKLSsKLSsgICAgICAvLyEgXGJyaWVmIFBhZGRp bmcgaW5jbHVkZWQgZm9yIGJyZWFrcGFkIGNvbXBhdGliaWx0aXkuCi0rICAgICAgdWludDMyX3Qg c2F2ZV9wYWQ1WzRdOwotKwotKyAgICAgIC8vISBcYnJpZWYgVlJTQVZFIHJlZ2lzdGVyLgotKyAg ICAgIHVpbnQzMl90IHNhdmVfdnJzYXZlOwotKwotKyAgICAgIC8vISBcYnJpZWYgUGFkZGluZyBp bmNsdWRlZCBmb3IgYnJlYWtwYWQgY29tcGF0aWJpbHRpeS4KLSsgICAgICB1aW50MzJfdCBzYXZl X3BhZDZbN107Ci0rICB9IHZyZWdzOwotK307Ci0rCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFk Ci0gCi0gI2VuZGlmICAvLyBDUkFTSFBBRF9NSU5JRFVNUF9NSU5JRFVNUF9DT05URVhUX0hfCi1k aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1 bXBfY29udGV4dF93cml0ZXIuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5p ZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5jYwotaW5kZXggZDdlNTNhNDkzLi5kODllYjll MDEgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9t aW5pZHVtcF9jb250ZXh0X3dyaXRlci5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MKLUBAIC0xMDEsNiArMTAx LDEzIEBAIE1pbmlkdW1wQ29udGV4dFdyaXRlcjo6Q3JlYXRlRnJvbVNuYXBzaG90KGNvbnN0IENQ VUNvbnRleHQqIGNvbnRleHRfc25hcHNob3QpIHsKLSAgICAgICBicmVhazsKLSAgICAgfQotIAot KyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDogewotKyAgICAgIGNvbnRleHQgPSBzdGQ6 Om1ha2VfdW5pcXVlPE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyPigpOwotKyAgICAgIHJlaW50 ZXJwcmV0X2Nhc3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIqPihjb250ZXh0LmdldCgpKQot KyAgICAgICAgICAtPkluaXRhbGl6ZUZyb21TbmFwc2hvdChjb250ZXh0X3NuYXBzaG90LT5wcGM2 NCk7Ci0rICAgICAgYnJlYWs7Ci0rICAgIH0KLSsKLSAgICAgZGVmYXVsdDogewotICAgICAgIExP RyhFUlJPUikgPDwgInVua25vd24gY29udGV4dCBhcmNoaXRlY3R1cmUgIgotICAgICAgICAgICAg ICAgICAgPDwgY29udGV4dF9zbmFwc2hvdC0+YXJjaGl0ZWN0dXJlOwotQEAgLTQ1Myw0ICs0NjAs NDcgQEAgc2l6ZV90IE1pbmlkdW1wQ29udGV4dE1JUFM2NFdyaXRlcjo6Q29udGV4dFNpemUoKSBj b25zdCB7Ci0gICByZXR1cm4gc2l6ZW9mKGNvbnRleHRfKTsKLSB9Ci0gCi0rTWluaWR1bXBDb250 ZXh0UFBDNjRXcml0ZXI6Ok1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkKLSsgIDogTWluaWR1 bXBDb250ZXh0V3JpdGVyKCksIGNvbnRleHRfKCkgewotKyAgICBjb250ZXh0Xy5jb250ZXh0X2Zs YWdzID0ga01pbmlkdW1wQ29udGV4dFBQQzY0OwotK30KLSsKLStNaW5pZHVtcENvbnRleHRQUEM2 NFdyaXRlcjo6fk1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCkgPSBkZWZhdWx0OwotKwotK3Zv aWQgTWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXI6OkluaXRhbGl6ZUZyb21TbmFwc2hvdCgKLSsg ICAgY29uc3QgQ1BVQ29udGV4dFBQQzY0KiBjb250ZXh0X3NuYXBzaG90KSB7Ci0rICBEQ0hFQ0tf RVEoc3RhdGUoKSwga1N0YXRlTXV0YWJsZSk7Ci0rICBEQ0hFQ0tfRVEoY29udGV4dF8uY29udGV4 dF9mbGFncywga01pbmlkdW1wQ29udGV4dFBQQzY0KTsKLSsKLSsgIGNvbnRleHRfLmNvbnRleHRf ZmxhZ3MgPSBrTWluaWR1bXBDb250ZXh0UFBDNjRBbGw7Ci0rCi0rICBtZW1jcHkoY29udGV4dF8u cmVncywgY29udGV4dF9zbmFwc2hvdC0+cmVncywgc2l6ZW9mKGNvbnRleHRfLnJlZ3MpKTsKLSsg IGNvbnRleHRfLm5pcCA9IGNvbnRleHRfc25hcHNob3QtPm5pcDsKLSsgIGNvbnRleHRfLm1zciA9 IGNvbnRleHRfc25hcHNob3QtPm1zcjsKLSsgIGNvbnRleHRfLmNjciA9IGNvbnRleHRfc25hcHNo b3QtPmNjcjsKLSsgIGNvbnRleHRfLnhlciA9IGNvbnRleHRfc25hcHNob3QtPnhlcjsKLSsgIGNv bnRleHRfLmxuayA9IGNvbnRleHRfc25hcHNob3QtPmxuazsKLSsgIGNvbnRleHRfLmN0ciA9IGNv bnRleHRfc25hcHNob3QtPmN0cjsKLSsKLSsgIG1lbWNweShjb250ZXh0Xy5mcHJlZ3MsIGNvbnRl eHRfc25hcHNob3QtPmZwcmVncywgc2l6ZW9mKGNvbnRleHRfLmZwcmVncykpOwotKyAgY29udGV4 dF8uZnBzY3IgPSBjb250ZXh0X3NuYXBzaG90LT5mcHNjcjsKLSsKLSsgIG1lbWNweShjb250ZXh0 Xy52cmVncy5zYXZlX3ZyLCBjb250ZXh0X3NuYXBzaG90LT52cmVncy5zYXZlX3ZyLAotKyAgICAg ICAgIHNpemVvZihjb250ZXh0Xy52cmVncy5zYXZlX3ZyKSk7Ci0rICBtZW1jcHkoJmNvbnRleHRf LnZyZWdzLnNhdmVfdnNjciwgJmNvbnRleHRfc25hcHNob3QtPnZyZWdzLnNhdmVfdnNjciwKLSsg ICAgICAgICBzaXplb2YoY29udGV4dF8udnJlZ3Muc2F2ZV92c2NyKSk7Ci0rICBjb250ZXh0Xy52 cmVncy5zYXZlX3Zyc2F2ZSA9IGNvbnRleHRfc25hcHNob3QtPnZyZWdzLnNhdmVfdnJzYXZlOwot K30KLSsKLStib29sIE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjpXcml0ZU9iamVjdCgKLSsg ICAgRmlsZVdyaXRlckludGVyZmFjZSogZmlsZV93cml0ZXIpIHsKLSsgIERDSEVDS19FUShzdGF0 ZSgpLCBrU3RhdGVXcml0YWJsZSk7Ci0rICByZXR1cm4gZmlsZV93cml0ZXItPldyaXRlKCZjb250 ZXh0Xywgc2l6ZW9mKGNvbnRleHRfKSk7Ci0rfQotKwotK3NpemVfdCBNaW5pZHVtcENvbnRleHRQ UEM2NFdyaXRlcjo6Q29udGV4dFNpemUoKSBjb25zdCB7Ci0rICBEQ0hFQ0tfR0Uoc3RhdGUoKSwg a1N0YXRlRnJvemVuKTsKLSsgIHJldHVybiBzaXplb2YoY29udGV4dF8pOwotK30KLSsKLSB9ICAv LyBuYW1lc3BhY2UgY3Jhc2hwYWQKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oIGIvdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuaAotaW5k ZXggZDRhYjkzNmVlLi4xZDIyZmM1OWMgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oCi0rKysgYi90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRl ci5oCi1AQCAtMzE1LDYgKzMxNSw0MyBAQCBjbGFzcyBNaW5pZHVtcENvbnRleHRNSVBTNjRXcml0 ZXIgZmluYWwgOiBwdWJsaWMgTWluaWR1bXBDb250ZXh0V3JpdGVyIHsKLSAgIE1pbmlkdW1wQ29u dGV4dE1JUFM2NCBjb250ZXh0XzsKLSB9OwotIAotK2NsYXNzIE1pbmlkdW1wQ29udGV4dFBQQzY0 V3JpdGVyIGZpbmFsIDogcHVibGljIE1pbmlkdW1wQ29udGV4dFdyaXRlciB7Ci0rIHB1YmxpYzoK LSsgIE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCk7Ci0rICB+TWluaWR1bXBDb250ZXh0UFBD NjRXcml0ZXIoKSBvdmVycmlkZTsKLSsKLSsgIC8vISBcYnJpZWYgSW5pdGFsaXplcyB0aGUgTWlu aWR1bXBDb250ZXh0UFBDNjQgYmFzZWQgb24gXGEgY29udGV4dF9zbmFwc2hvdC4KLSsgIC8vIQot KyAgLy8hIFxwYXJhbVtpbl0gY29udGV4dF9zbmFwc2hvdCBUaGUgY29udGV4dCBzbmFwc2hvdCB0 byB1c2UgYXMgc291cmNlIGRhdGEuCi0rICAvLyEKLSsgIC8vISBcbm90ZSBWYWxpZCBpbiAja1N0 YXRlTXV0YWJsZS4gTm8gbXV0YXRpb24gb2YgY29udGV4dCgpIG1heSBiZSBkb25lIGJlZm9yZQot KyAgLy8hICAgICBjYWxsaW5nIHRoaXMgbWV0aG9kLCBhbmQgaXQgaXMgbm90IG5vcm1hbGx5IG5l Y2Vzc2FyeSB0byBhbHRlcgotKyAgLy8hICAgICBjb250ZXh0KCkgYWZ0ZXIgY2FsbGluZyB0aGlz IG1ldGhvZC4KLSsgIHZvaWQgSW5pdGFsaXplRnJvbVNuYXBzaG90KGNvbnN0IENQVUNvbnRleHRQ UEM2NCogY29udGV4dF9zbmFwc2hvdCk7Ci0rCi0rICAvLyEgXGJyaWVmIFJldHVybnMgYSBwb2lu dGVyIHRvIHRoZSBjb250ZXh0IHN0cnVjdHVyZSB0aGF0IHRoaXMgb2JqZWN0IHdpbGwKLSsgIC8v ISAgICAgd3JpdGUuCi0rICAvLyEKLSsgIC8vISBcYXR0ZW50aW9uIFRoaXMgcmV0dXJucyBhIG5v bi1gY29uc3RgIHBvaW50ZXIgdG8gdGhpcyBvYmplY3TigJlzIHByaXZhdGUKLSsgIC8vISAgICAg ZGF0YSBzbyB0aGF0IGEgY2FsbGVyIGNhbiBwb3B1bGF0ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUg ZGlyZWN0bHkuCi0rICAvLyEgICAgIFRoaXMgaXMgZG9uZSBiZWNhdXNlIHByb3ZpZGluZyBzZXR0 ZXIgaW50ZXJmYWNlcyB0byBlYWNoIGZpZWxkIGluIHRoZQotKyAgLy8hICAgICBjb250ZXh0IHN0 cnVjdHVyZSB3b3VsZCBiZSB1bndpZWxkeSBhbmQgY3VtYmVyc29tZS4gQ2FyZSBtdXN0IGJlIHRh a2VuCi0rICAvLyEgICAgIHRvIHBvcHVsYXRlIHRoZSBjb250ZXh0IHN0cnVjdHVyZSBjb3JyZWN0 bHkuIFRoZSBjb250ZXh0IHN0cnVjdHVyZQotKyAgLy8hICAgICBtdXN0IG9ubHkgYmUgbW9kaWZp ZWQgd2hpbGUgdGhpcyBvYmplY3QgaXMgaW4gdGhlICNrU3RhdGVNdXRhYmxlCi0rICAvLyEgICAg IHN0YXRlLgotKyAgTWluaWR1bXBDb250ZXh0UFBDNjQqIGNvbnRleHQoKSB7IHJldHVybiAmY29u dGV4dF87IH0KLSsKLSsgcHJvdGVjdGVkOgotKyAgLy8gTWluaWR1bXBXcml0YWJsZToKLSsgIGJv b2wgV3JpdGVPYmplY3QoRmlsZVdyaXRlckludGVyZmFjZSogZmlsZV93cml0ZXIpIG92ZXJyaWRl OwotKwotKyAgLy8gTWluaWR1bXBDb250ZXh0V3JpdGVyOgotKyAgc2l6ZV90IENvbnRleHRTaXpl KCkgY29uc3Qgb3ZlcnJpZGU7Ci0rCi0rIHByaXZhdGU6Ci0rICBNaW5pZHVtcENvbnRleHRQUEM2 NCBjb250ZXh0XzsKLSt9OwotKwotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotIAotICNlbmRp ZiAgLy8gQ1JBU0hQQURfTUlOSURVTVBfTUlOSURVTVBfQ09OVEVYVF9XUklURVJfSF8KLWRpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9j b250ZXh0X3dyaXRlcl90ZXN0LmNjIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWlu aWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYwotaW5kZXggMzIxNmE5MDZiLi5h OWZjYmU5ZDggMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5p ZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNj Ci1AQCAtMjEzLDYgKzIxMywyMSBAQCBURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgTUlQUzY0 X0Zyb21TbmFwc2hvdCkgewotICAgICAgIGNvbnRleHQsIEV4cGVjdE1pbmlkdW1wQ29udGV4dE1J UFM2NCwga1NlZWQpOwotIH0KLSAKLStURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgUFBDNjRf WmVyb3MpIHsKLSsgIEVtcHR5Q29udGV4dFRlc3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIs IE1pbmlkdW1wQ29udGV4dFBQQzY0PigKLSsgICAgRXhwZWN0TWluaWR1bXBDb250ZXh0UFBDNjQp OwotK30KLSsKLStURVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgUFBDNjRfRnJvbVNuYXBzaG90 KSB7Ci0rICBjb25zdGV4cHIgdWludDMyX3Qga1NlZWQgPSA2NDsKLSsgIENQVUNvbnRleHRQUEM2 NCBjb250ZXh0X3BwYzY0OwotKyAgQ1BVQ29udGV4dCBjb250ZXh0OwotKyAgY29udGV4dC5wcGM2 NCA9ICZjb250ZXh0X3BwYzY0OwotKyAgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgmY29udGV4 dCwga1NlZWQpOwotKyAgRnJvbVNuYXBzaG90VGVzdDxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRl ciwgTWluaWR1bXBDb250ZXh0UFBDNjQ+KAotKyAgICAgIGNvbnRleHQsIEV4cGVjdE1pbmlkdW1w Q29udGV4dFBQQzY0LCBrU2VlZCk7Ci0rfQotKwotIH0gIC8vIG5hbWVzcGFjZQotIH0gIC8vIG5h bWVzcGFjZSB0ZXN0Ci0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi1kaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dy aXRlci5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1w X21pc2NfaW5mb193cml0ZXIuY2MKLWluZGV4IDA5NzRlM2RkZi4uYjcxZWM1ODgwIDEwMDY0NAot LS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlz Y19pbmZvX3dyaXRlci5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWlu aWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYwotQEAgLTEzNSw2ICsxMzUsOCBAQCBz dGQ6OnN0cmluZyBNaW5pZHVtcE1pc2NJbmZvRGVidWdCdWlsZFN0cmluZygpIHsKLSAgIHN0YXRp YyBjb25zdGV4cHIgY2hhciBrQ1BVW10gPSAibWlwcyI7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQ VV9NSVBTNjRFTCkKLSAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrQ1BVW10gPSAibWlwczY0IjsK LSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotKyAgc3RhdGljIGNvbnN0ZXhwciBjaGFy IGtDUFVbXSA9ICJwcGM2NCI7Ci0gI2Vsc2UKLSAjZXJyb3IgZGVmaW5lIGtDUFUgZm9yIHRoaXMg Q1BVCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYwotaW5kZXggN2ExYjI3NjNjLi5iZWRhOGRhOWUg MTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0 dXJlX21lbW9yeS5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvY2FwdHVyZV9tZW1vcnkuY2MKLUBAIC0xMTIsNiArMTEyLDExIEBAIHZvaWQgQ2FwdHVyZU1l bW9yeTo6UG9pbnRlZFRvQnlDb250ZXh0KGNvbnN0IENQVUNvbnRleHQmIGNvbnRleHQsCi0gICBm b3IgKHNpemVfdCBpID0gMDsgaSA8IHN0ZDo6c2l6ZShjb250ZXh0Lm1pcHNlbC0+cmVncyk7ICsr aSkgewotICAgICBNYXliZUNhcHR1cmVNZW1vcnlBcm91bmQoZGVsZWdhdGUsIGNvbnRleHQubWlw c2VsLT5yZWdzW2ldKTsKLSAgIH0KLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlM WSkKLSsgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4dC5wcGM2NC0+ bmlwKTsKLSsgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RkOjpzaXplKGNvbnRleHQucHBjNjQt PnJlZ3MpOyArK2kpIHsKLSsgICAgTWF5YmVDYXB0dXJlTWVtb3J5QXJvdW5kKGRlbGVnYXRlLCBj b250ZXh0LnBwYzY0LT5yZWdzW2ldKTsKLSsgIH0KLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNl bmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2NwdV9hcmNoaXRlY3R1cmUuaCBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2NwdV9hcmNoaXRlY3R1cmUuaAotaW5kZXggODExYTcyMDk1Li5mNGY4Mzk4MWQgMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0 ZWN0dXJlLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2Nw dV9hcmNoaXRlY3R1cmUuaAotQEAgLTQzLDcgKzQzLDEwIEBAIGVudW0gQ1BVQXJjaGl0ZWN0dXJl IHsKLSAgIGtDUFVBcmNoaXRlY3R1cmVNSVBTRUwsCi0gCi0gICAvLyEgXGJyaWVmIDY0LWJpdCBN SVBTRUwuCi0tICBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwKLSsgIGtDUFVBcmNoaXRlY3R1cmVN SVBTNjRFTCwKLSsKLSsgIC8vISBcYnJpZWYgNjQtYml0IFBQQzY0LgotKyAga0NQVUFyY2hpdGVj dHVyZVBQQzY0Ci0gfTsKLSAKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLWRpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYyBi L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCi1p bmRleCBjNzViNTU1NWUuLmFlYWRlNTc3YSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYwotQEAgLTE2OSw2ICsxNjks OCBAQCB1aW50NjRfdCBDUFVDb250ZXh0OjpJbnN0cnVjdGlvblBvaW50ZXIoKSBjb25zdCB7Ci0g ICAgICAgcmV0dXJuIGFybS0+cGM7Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTTY0Ogot ICAgICAgIHJldHVybiBhcm02NC0+cGM7Ci0rICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0 OgotKyAgICAgIHJldHVybiBwcGM2NC0+bmlwOwotICAgICBkZWZhdWx0OgotICAgICAgIE5PVFJF QUNIRUQoKTsKLSAgICAgICByZXR1cm4gfjB1bGw7Ci1AQCAtMTg1LDYgKzE4Nyw4IEBAIHVpbnQ2 NF90IENQVUNvbnRleHQ6OlN0YWNrUG9pbnRlcigpIGNvbnN0IHsKLSAgICAgICByZXR1cm4gYXJt LT5zcDsKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6Ci0gICAgICAgcmV0dXJuIGFy bTY0LT5zcDsKLSsgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6Ci0rICAgICAgcmV0dXJu IHBwYzY0LT5yZWdzWzFdOwotICAgICBkZWZhdWx0OgotICAgICAgIE5PVFJFQUNIRUQoKTsKLSAg ICAgICByZXR1cm4gfjB1bGw7Ci1AQCAtMTk2LDYgKzIwMCw3IEBAIGJvb2wgQ1BVQ29udGV4dDo6 SXM2NEJpdCgpIGNvbnN0IHsKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2XzY0OgotICAg ICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk02NDoKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJl TUlQUzY0RUw6Ci0rICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgotICAgICAgIHJldHVy biB0cnVlOwotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVYODY6Ci0gICAgIGNhc2Uga0NQVUFy Y2hpdGVjdHVyZUFSTToKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvY3B1X2NvbnRleHQuaAotaW5kZXggZmIyM2M0Njc5Li5lZWJlZGU2M2MgMTAwNjQ0 Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4 dC5oCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29u dGV4dC5oCi1AQCAtMzUyLDYgKzM1MiwyNCBAQCBzdHJ1Y3QgQ1BVQ29udGV4dE1JUFM2NCB7Ci0g ICB1aW50NjRfdCBmaXI7Ci0gfTsKLSAKLSsvLyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUg Y2FycnlpbmcgUFBDNjQgQ1BVIHN0YXRlLgotK3N0cnVjdCBDUFVDb250ZXh0UFBDNjQgewotKyAg dWludDY0X3QgbmlwOwotKyAgdWludDY0X3QgbXNyOwotKyAgdWludDY0X3QgcmVnc1szMl07Ci0r ICB1aW50NjRfdCBjY3I7Ci0rICB1aW50NjRfdCB4ZXI7Ci0rICB1aW50NjRfdCBsbms7Ci0rICB1 aW50NjRfdCBjdHI7Ci0rICBkb3VibGUgZnByZWdzWzMyXTsKLSsgIGRvdWJsZSBmcHNjcjsKLSsg IHN0cnVjdCB7Ci0rICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnJbMzJdOwotKyAgICB1aW50MTI4 X3N0cnVjdCBzYXZlX3ZzY3I7Ci0rICAgIHVpbnQzMl90IHNhdmVfdnJzYXZlOwotKyAgfSB2cmVn czsKLSt9OwotKwotIC8vISBcYnJpZWYgQSBjb250ZXh0IHN0cnVjdHVyZSBjYXBhYmxlIG9mIGNh cnJ5aW5nIHRoZSBjb250ZXh0IG9mIGFueSBzdXBwb3J0ZWQKLSAvLyEgICAgIENQVSBhcmNoaXRl Y3R1cmUuCi0gc3RydWN0IENQVUNvbnRleHQgewotQEAgLTM4Miw2ICs0MDAsNyBAQCBzdHJ1Y3Qg Q1BVQ29udGV4dCB7Ci0gICAgIENQVUNvbnRleHRBUk02NCogYXJtNjQ7Ci0gICAgIENQVUNvbnRl eHRNSVBTKiBtaXBzZWw7Ci0gICAgIENQVUNvbnRleHRNSVBTNjQqIG1pcHM2NDsKLSsgICAgQ1BV Q29udGV4dFBQQzY0KiBwcGM2NDsKLSAgIH07Ci0gfTsKLSAKLWRpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9saW51eC5o IGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRl eHRfbGludXguaAotaW5kZXggOWY0NmE0ODk3Li5hYTY3N2M0ZWIgMTAwNjQ0Ci0tLS0gYS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9saW51 eC5oCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9j cHVfY29udGV4dF9saW51eC5oCi1AQCAtMTUsNiArMTUsNyBAQAotICNpZm5kZWYgQ1JBU0hQQURf U05BUFNIT1RfTElOVVhfQ1BVX0NPTlRFWFRfTElOVVhfSF8KLSAjZGVmaW5lIENSQVNIUEFEX1NO QVBTSE9UX0xJTlVYX0NQVV9DT05URVhUX0xJTlVYX0hfCi0gCi0rI2luY2x1ZGUgPGNzdHJpbmc+ Ci0gI2luY2x1ZGUgImJ1aWxkL2J1aWxkX2NvbmZpZy5oIgotICNpbmNsdWRlICJzbmFwc2hvdC9j cHVfY29udGV4dC5oIgotICNpbmNsdWRlICJzbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5o IgotQEAgLTE3NCw2ICsxNzUsNzggQEAgdm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dE1JUFMoCi0g Ci0gI2VuZGlmICAvLyBBUkNIX0NQVV9NSVBTX0ZBTUlMWSB8fCBET1hZR0VOCi0gCi0rI2lmIGRl ZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKSB8fCBET1hZR0VOCi0rCi0rLy8hIFxicmllZiBJ bml0YWxpemVzIGEgQ1BVQ29udGV4dFBQQzY0IHN0cnVjdHVyZSBmcm9tIG5hdGl2ZSBjb250ZXh0 Ci0rLy8hICAgICBzdHJ1Y3R1cmVzIG9uIExpbnV4LgotKy8vIQotKy8vISBccGFyYW1baW5dIHRo cmVhZF9jb250ZXh0IFRoZSBuYXRpdmUgdGhyZWFkIGNvbnRleHQuCi0rLy8hIFxwYXJhbVtpbl0g ZmxvYXRfY29udGV4dCBUaGUgbmF0aXZlIGZsb2F0IGNvbnRleHQuCi0rLy8hIFxwYXJhbVtpbl0g dmVjdG9yX2NvbnRleHQgVGhlIG5hdGl2ZSB2ZWN0b3IgY29udGV4dC4KLSsvLyEgXHBhcmFtW291 dF0gY29udGV4dCBUaGUgQ1BVQ29udGV4dFBQQzY0IHN0cnVjdHVyZSB0byBpbml0YWxpemUuCi0r dGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KLSt2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0UFBD NjQoCi0rICAgIGNvbnN0IFRocmVhZENvbnRleHQ6OnQ2NF90JiB0aHJlYWRfY29udGV4dCwKLSsg ICAgY29uc3QgRmxvYXRDb250ZXh0OjpmNjRfdCYgZmxvYXRfY29udGV4dCwKLSsgICAgY29uc3Qg VmVjdG9yQ29udGV4dDo6djY0X3QmIHZlY3Rvcl9jb250ZXh0LAotKyAgICB0eXBlbmFtZSBUcmFp dHM6OkNQVUNvbnRleHQqIGNvbnRleHQpIHsKLSsKLSsgIG1lbWNweShjb250ZXh0LT5yZWdzLCB0 aHJlYWRfY29udGV4dC5ncHIsIHNpemVvZihjb250ZXh0LT5yZWdzKSk7Ci0rICBjb250ZXh0LT5u aXAgPSB0aHJlYWRfY29udGV4dC5uaXA7Ci0rICBjb250ZXh0LT5tc3IgPSB0aHJlYWRfY29udGV4 dC5tc3I7Ci0rICBjb250ZXh0LT5jY3IgPSB0aHJlYWRfY29udGV4dC5jY3I7Ci0rICBjb250ZXh0 LT54ZXIgPSB0aHJlYWRfY29udGV4dC54ZXI7Ci0rICBjb250ZXh0LT5sbmsgPSB0aHJlYWRfY29u dGV4dC5sbms7Ci0rICBjb250ZXh0LT5jdHIgPSB0aHJlYWRfY29udGV4dC5jdHI7Ci0rCi0rICBt ZW1jcHkoY29udGV4dC0+ZnByZWdzLCBmbG9hdF9jb250ZXh0LmZwcmVncywgc2l6ZW9mKGNvbnRl eHQtPmZwcmVncykpOwotKyAgY29udGV4dC0+ZnBzY3IgPSBmbG9hdF9jb250ZXh0LmZwc2NyOwot KwotKyAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgMzI7IGkrKykgewotKyAgICBjb250ZXh0LT52 cmVncy5zYXZlX3ZyW2ldID0gewotKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZy cmVnc1tpXVswXSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsx XSwKLSsgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMl0pIDw8IDMy KSB8Ci0rICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bM10KLSsgICAgfTsKLSsgIH0K LSsgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJzYXZlID0gdmVjdG9yX2NvbnRleHQudnJzYXZlOwot KyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92c2NyID0gezAsICh1aW50NjRfdCl2ZWN0b3JfY29udGV4 dC52c2NyLnZzY3Jfd29yZH07Ci0rfQotKwotK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Ci0r dm9pZCBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0KAotKyAgICBjb25zdCBTaWduYWxUaHJlYWRD b250ZXh0NjQgJnRocmVhZF9jb250ZXh0LAotKyAgICBjb25zdCBTaWduYWxGbG9hdENvbnRleHQ2 NCAmZmxvYXRfY29udGV4dCwKLSsgICAgY29uc3QgU2lnbmFsVmVjdG9yQ29udGV4dDY0ICZ2ZWN0 b3JfY29udGV4dCwKLSsgICAgdHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBjb250ZXh0KSB7 Ci0rCi0rICBtZW1jcHkoY29udGV4dC0+cmVncywgdGhyZWFkX2NvbnRleHQucmVncywgc2l6ZW9m KGNvbnRleHQtPnJlZ3MpKTsKLSsgIGNvbnRleHQtPm5pcCA9IHRocmVhZF9jb250ZXh0Lm5pcDsK LSsgIGNvbnRleHQtPm1zciA9IHRocmVhZF9jb250ZXh0Lm1zcjsKLSsgIGNvbnRleHQtPmNjciA9 IHRocmVhZF9jb250ZXh0LmNjcjsKLSsgIGNvbnRleHQtPnhlciA9IHRocmVhZF9jb250ZXh0Lnhl cjsKLSsgIGNvbnRleHQtPmxuayA9IHRocmVhZF9jb250ZXh0LmxuazsKLSsgIGNvbnRleHQtPmN0 ciA9IHRocmVhZF9jb250ZXh0LmN0cjsKLSsKLSsgIG1lbWNweShjb250ZXh0LT5mcHJlZ3MsIGZs b2F0X2NvbnRleHQucmVncywgc2l6ZW9mKGNvbnRleHQtPmZwcmVncykpOwotKyAgY29udGV4dC0+ ZnBzY3IgPSBmbG9hdF9jb250ZXh0LmZwc2NyOwotKwotKyAgZm9yICh1aW50OF90IGkgPSAwOyBp IDwgMzI7IGkrKykgewotKyAgICBjb250ZXh0LT52cmVncy5zYXZlX3ZyW2ldID0gewotKyAgICAg ICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVswXSkgPDwgMzIpIHwKLSsgICAg ICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsxXSwKLSsgICAgICAoKCh1aW50NjRfdCl2ZWN0 b3JfY29udGV4dC52cnJlZ3NbaV1bMl0pIDw8IDMyKSB8Ci0rICAgICAgICB2ZWN0b3JfY29udGV4 dC52cnJlZ3NbaV1bM10KLSsgICAgfTsKLSsgIH0KLSsgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJz YXZlID0gdmVjdG9yX2NvbnRleHQudnJzYXZlOwotKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92c2Ny ID0gezAsICh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52c2NyLnZzY3Jfd29yZH07Ci0rfQotKwot KwotKyNlbmRpZgotKwotIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotIH0gIC8vIG5hbWVzcGFj ZSBjcmFzaHBhZAotIAotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYyBiL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRlenZvdXNfdGVzdC5jYwot aW5kZXggZDMyYmQxOTM3Li4yZGQ1MzhjMmIgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MKLSsr KyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3Jl bmRlenZvdXNfdGVzdC5jYwotQEAgLTE5Miw2ICsxOTIsOCBAQCB2b2lkIFRlc3RBZ2FpbnN0VGFy Z2V0KFB0cmFjZUNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pIHsKLSAgICAgICAgICAgICAgIGRldmlj ZSA9PSAwICYmIGlub2RlID09IDAgJiYgbWFwcGluZ19uYW1lID09ICJbdmRzb10iOwotICNpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1g4NikKLSAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQ cmVmaXhbXSA9ICJsaW51eC1nYXRlLnNvLiI7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2 NCkKLSsgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXhbXSA9ICJsaW51eC12 ZHNvNjQuc28uIjsKLSAjZWxzZQotICAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGNoYXIga1By ZWZpeFtdID0gImxpbnV4LXZkc28uc28uIjsKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3Rf bGludXguY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9l eGNlcHRpb25fc25hcHNob3RfbGludXguY2MKLWluZGV4IGNkNDBiM2IxMi4uNmJjZjIzYjZmIDEw MDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv ZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguY2MKLUBAIC0z MjMsNiArMzIzLDY5IEBAIGJvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8 Q29udGV4dFRyYWl0czY0PigKLSAgICAgICByZWFkZXIsIGNvbnRleHRfYWRkcmVzcywgY29udGV4 dF8ubWlwczY0KTsKLSB9Ci0gCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkp Ci0rCi0rdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KLStzdGF0aWMgYm9vbCBSZWFkQ29udGV4 dChQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICBM aW51eFZNQWRkcmVzcyBjb250ZXh0X2FkZHJlc3MsCi0rICAgICAgICAgICAgICAgICAgICAgICAg dHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBkZXN0X2NvbnRleHQpIHsKLSsgIGNvbnN0IFBy b2Nlc3NNZW1vcnkqIG1lbW9yeSA9IHJlYWRlci0+TWVtb3J5KCk7Ci0rCi0rICBMaW51eFZNQWRk cmVzcyBncF9yZWdzX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKwotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6 Ok1Db250ZXh0LCBncF9yZWdzKTsKLSsKLSsgIHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsVGhyZWFk Q29udGV4dCB0aHJlYWRfY29udGV4dDsKLSsgIGlmICghbWVtb3J5LT5SZWFkKGdwX3JlZ3NfYWRk cmVzcywgc2l6ZW9mKHRocmVhZF9jb250ZXh0KSwgJnRocmVhZF9jb250ZXh0KSkgewotKyAgICBM T0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIGdwX3JlZ3MhIjsKLSsgICAgcmV0dXJuIGZhbHNl OwotKyAgfQotKwotKyAgTGludXhWTUFkZHJlc3MgZnBfcmVnc19hZGRyZXNzID0gY29udGV4dF9h ZGRyZXNzICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKFVD b250ZXh0LCBtY29udGV4dCkgKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0b2YodHlwZW5hbWUgVHJhaXRzOjpNQ29udGV4dCwgZnBfcmVncyk7Ci0rCi0rICB0eXBl bmFtZSBUcmFpdHM6OlNpZ25hbEZsb2F0Q29udGV4dCBmcF9jb250ZXh0OwotKyAgaWYgKCFtZW1v cnktPlJlYWQoZnBfcmVnc19hZGRyZXNzLCBzaXplb2YoZnBfY29udGV4dCksICZmcF9jb250ZXh0 KSkgewotKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIGZwX3JlZ3MhIjsKLSsgICAg cmV0dXJuIGZhbHNlOwotKyAgfQotKwotKyAgTGludXhWTUFkZHJlc3Mgdl9yZWdzX3B0cl9hZGRy ZXNzID0gY29udGV4dF9hZGRyZXNzICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9mZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIHZteF9yZXNl cnZlKSArIDg7Ci0rCi0rICB0eXBlbmFtZSBUcmFpdHM6OlNpZ25hbFZlY3RvckNvbnRleHQgdl9j b250ZXh0OwotKyAgaWYgKCFtZW1vcnktPlJlYWQodl9yZWdzX3B0cl9hZGRyZXNzLCBzaXplb2Yo dl9jb250ZXh0KSwgJnZfY29udGV4dCkpIHsKLSsgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qg cmVhZCB2X3JlZ3MhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKwotKyAgSW5pdGlhbGl6 ZUNQVUNvbnRleHRQUEM2NDxDb250ZXh0VHJhaXRzNjQ+KHRocmVhZF9jb250ZXh0LCBmcF9jb250 ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2X2NvbnRleHQsIGRlc3RfY29udGV4 dCk7Ci0rCi0rICByZXR1cm4gdHJ1ZTsKLSt9Ci0rCi0rdGVtcGxhdGU8PgotK2Jvb2wgRXhjZXB0 aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czY0PigKLSsgICAgUHJv Y2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCi0rICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRk cmVzcykgewotKyAgY29udGV4dF8uYXJjaGl0ZWN0dXJlID0ga0NQVUFyY2hpdGVjdHVyZVBQQzY0 OwotKyAgY29udGV4dF8ucHBjNjQgPSAmY29udGV4dF91bmlvbl8ucHBjNjQ7Ci0rCi0rICByZXR1 cm4gaW50ZXJuYWw6OlJlYWRDb250ZXh0PENvbnRleHRUcmFpdHM2ND4oCi0rICAgICAgcmVhZGVy LCBjb250ZXh0X2FkZHJlc3MsIGNvbnRleHRfLnBwYzY0KTsKLSt9Ci0rCi0rdGVtcGxhdGU8Pgot K2Jvb2wgRXhjZXB0aW9uU25hcHNob3RMaW51eDo6UmVhZENvbnRleHQ8Q29udGV4dFRyYWl0czMy PigKLSsgICAgUHJvY2Vzc1JlYWRlckxpbnV4KiByZWFkZXIsCi0rICAgIExpbnV4Vk1BZGRyZXNz IGNvbnRleHRfYWRkcmVzcykgewotKyAgLy8gUFBDNjQgaXMgNjQtYml0Ci0rICByZXR1cm4gZmFs c2U7Ci0rfQotKwotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotIAotIGJvb2wgRXhj ZXB0aW9uU25hcHNob3RMaW51eDo6SW5pdGlhbGl6ZShQcm9jZXNzUmVhZGVyTGludXgqIHByb2Nl c3NfcmVhZGVyLAotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5oIGIvdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgK LWluZGV4IGVhMGNkMjEwNi4uZTQyZGY1MjBmIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmgK LSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2Vw dGlvbl9zbmFwc2hvdF9saW51eC5oCi1AQCAtODQsNiArODQsOCBAQCBjbGFzcyBFeGNlcHRpb25T bmFwc2hvdExpbnV4IGZpbmFsIDogcHVibGljIEV4Y2VwdGlvblNuYXBzaG90IHsKLSAjZWxpZiBk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgICBDUFVDb250ZXh0TUlQUyBtaXBzZWw7 Ci0gICAgIENQVUNvbnRleHRNSVBTNjQgbWlwczY0OwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQotKyAgICBDUFVDb250ZXh0UFBDNjQgcHBjNjQ7Ci0gI2VuZGlmCi0gICB9 IGNvbnRleHRfdW5pb25fOwotICAgQ1BVQ29udGV4dCBjb250ZXh0XzsKLWRpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25h cHNob3RfbGludXhfdGVzdC5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNjCi1pbmRleCBjMTcxNzBi NDMuLmI2YTcxNGNjNiAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNjCi0rKysgYi90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25h cHNob3RfbGludXhfdGVzdC5jYwotQEAgLTI5Niw3ICsyOTYsMjggQEAgdm9pZCBFeHBlY3RDb250 ZXh0KGNvbnN0IENQVUNvbnRleHQmIGFjdHVhbCwgY29uc3QgTmF0aXZlQ1BVQ29udGV4dCYgZXhw ZWN0ZWQpIHsKLSAgICAgICAgICAgICAwKTsKLSAjdW5kZWYgQ1BVX0FSQ0hfTkFNRQotIH0KLSsj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSt1c2luZyBOYXRpdmVDUFVDb250 ZXh0ID0gdWNvbnRleHRfdDsKLSsKLSt2b2lkIEluaXRpYWxpemVDb250ZXh0KE5hdGl2ZUNQVUNv bnRleHQqIGNvbnRleHQpIHsKLSsgIGZvciAoc2l6ZV90IHJlZyA9IDA7IHJlZyA8IDMyOyArK3Jl ZykgewotKyAgICBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW3JlZ10gPSByZWc7Ci0rICB9 Ci0rCi0rICBtZW1zZXQoJmNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3MsIDQ0LAotKyAgICAg IHNpemVvZihjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzKSk7Ci0rfQotIAotK3ZvaWQgRXhw ZWN0Q29udGV4dChjb25zdCBDUFVDb250ZXh0JiBhY3R1YWwsIGNvbnN0IE5hdGl2ZUNQVUNvbnRl eHQmIGV4cGVjdGVkKSB7Ci0rICBFWFBFQ1RfRVEoYWN0dWFsLmFyY2hpdGVjdHVyZSwga0NQVUFy Y2hpdGVjdHVyZVBQQzY0KTsKLSsKLSsgIGZvciAoc2l6ZV90IHJlZyA9IDA7IHJlZyA8IDMyOyAr K3JlZykgewotKyAgICBFWFBFQ1RfRVEoYWN0dWFsLnBwYzY0LT5yZWdzW3JlZ10sIGV4cGVjdGVk LnVjX21jb250ZXh0LmdwX3JlZ3NbcmVnXSk7Ci0rICB9Ci0rCi0rICBFWFBFQ1RfRVEobWVtY21w KGFjdHVhbC5wcGM2NC0+ZnByZWdzLCBleHBlY3RlZC51Y19tY29udGV4dC5mcF9yZWdzLAotKyAg ICAgICAgICAgIHNpemVvZihhY3R1YWwucHBjNjQtPmZwcmVncykpLCAwKTsKLSt9Ci0gI2Vsc2UK LSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYyBiL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xp bnV4LmNjCi1pbmRleCBlZTI0NmU4YmMuLjk1NTVkY2UwNCAxMDA2NDQKLS0tLSBhL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4 LmNjCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9w cm9jZXNzX3JlYWRlcl9saW51eC5jYwotQEAgLTEwOCw2ICsxMDgsOCBAQCB2b2lkIFByb2Nlc3NS ZWFkZXJMaW51eDo6VGhyZWFkOjpJbml0aWFsaXplU3RhY2soUHJvY2Vzc1JlYWRlckxpbnV4KiBy ZWFkZXIpIHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgc3RhY2tf cG9pbnRlciA9IHJlYWRlci0+SXM2NEJpdCgpID8gdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQu dDY0LnJlZ3NbMjldCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aHJl YWRfaW5mby50aHJlYWRfY29udGV4dC50MzIucmVnc1syOV07Ci0rI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCi0rICBzdGFja19wb2ludGVyID0gdGhyZWFkX2luZm8udGhyZWFk X2NvbnRleHQudDY0LmdwclsxXTsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Np Z25hbF9jb250ZXh0LmggYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC9zaWduYWxfY29udGV4dC5oCi1pbmRleCAxMTAwMjQ2ODAuLmExZjJkYTI1OSAxMDA2NDQK LS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25h bF9jb250ZXh0LmgKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKLUBAIC00MjIsNiArNDIyLDg5IEBAIHN0YXRpY19hc3Nl cnQob2Zmc2V0b2YoVUNvbnRleHQ8Q29udGV4dFRyYWl0czY0PiwgbWNvbnRleHQuZnByZWdzKSA9 PQotICAgICAgICAgICAgICAgImNvbnRleHQgb2Zmc2V0IG1pc21hdGNoIik7Ci0gI2VuZGlmCi0g Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rCi0rc3RydWN0IFNpZ25h bFRocmVhZENvbnRleHQ2NCB7Ci0rICB1aW50NjRfdCByZWdzWzMyXTsKLSsgIHVpbnQ2NF90IG5p cDsKLSsgIHVpbnQ2NF90IG1zcjsKLSsgIHVpbnQ2NF90IG9yaWdfcjM7Ci0rICB1aW50NjRfdCBj dHI7Ci0rICB1aW50NjRfdCBsbms7Ci0rICB1aW50NjRfdCB4ZXI7Ci0rICB1aW50NjRfdCBjY3I7 Ci0rICB1aW50NjRfdCBzb2Z0ZTsKLSsgIHVpbnQ2NF90IHRyYXA7Ci0rICB1aW50NjRfdCBkYXI7 Ci0rICB1aW50NjRfdCBkc2lzcjsKLSsgIHVpbnQ2NF90IHJlc3VsdDsKLSsgIHVpbnQ2NF90IGRz Y3I7Ci0rICB1aW50NjRfdCBmcHIwWzNdOwotK307Ci0rCi0rc3RydWN0IFNpZ25hbEZsb2F0Q29u dGV4dDY0IHsKLSsgIGRvdWJsZSByZWdzWzMyXTsKLSsgIGRvdWJsZSBmcHNjcjsKLSt9OwotKwot K3N0cnVjdCBTaWduYWxWZWN0b3JDb250ZXh0NjQgewotKyAgaW50MzJfdCB2cnJlZ3NbMzJdWzRd OwotKyAgc3RydWN0IHsKLSsgICAgaW50MzJfdCBfX3BhZFszXTsKLSsgICAgaW50MzJfdCB2c2Ny X3dvcmQ7Ci0rICB9IHZzY3I7Ci0rICBpbnQzMl90IHZyc2F2ZTsKLSsgIGludDMyX3QgX19wYWRb M107Ci0rfSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKTsKLSsKLSsKLSsjcHJhZ21h IHBhY2socG9wKQotK3N0cnVjdCBNQ29udGV4dDY0IHsKLSsgIHVpbnQ2NF90IHJlc2VydmVkWzRd OwotKyAgaW50MzJfdCBzaWduYWw7Ci0rICBpbnQzMl90IF9fcGFkMDsKLSsgIHVpbnQ2NF90IGhh bmRsZXI7Ci0rICB1aW50NjRfdCBvbGRtYXNrOwotKyAgdWludDY0X3QgcHRfcmVnc19wdHI7Ci0r ICBTaWduYWxUaHJlYWRDb250ZXh0NjQgZ3BfcmVnczsKLSsgIFNpZ25hbEZsb2F0Q29udGV4dDY0 ICBmcF9yZWdzOwotKyAgU2lnbmFsVmVjdG9yQ29udGV4dDY0ICp2X3JlZ3M7Ci0rICBpbnQ2NF90 IHZteF9yZXNlcnZlWzY5XTsKLSt9OwotKwotK3N0cnVjdCBDb250ZXh0VHJhaXRzNjQgOiBwdWJs aWMgVHJhaXRzNjQgewotKyAgdXNpbmcgTUNvbnRleHQgPSBNQ29udGV4dDY0OwotKyAgdXNpbmcg U2lnbmFsVGhyZWFkQ29udGV4dCA9IFNpZ25hbFRocmVhZENvbnRleHQ2NDsKLSsgIHVzaW5nIFNp Z25hbEZsb2F0Q29udGV4dCA9IFNpZ25hbEZsb2F0Q29udGV4dDY0OwotKyAgdXNpbmcgU2lnbmFs VmVjdG9yQ29udGV4dCA9IFNpZ25hbFZlY3RvckNvbnRleHQ2NDsKLSsgIHVzaW5nIENQVUNvbnRl eHQgPSBDUFVDb250ZXh0UFBDNjQ7Ci0rfTsKLSsKLStzdHJ1Y3QgQ29udGV4dFRyYWl0czMyIDog cHVibGljIFRyYWl0czMyIHt9OwotKwotK3N0cnVjdCBVQ29udGV4dCB7Ci0rICB1aW50NjRfdCBm bGFnczsKLSsgIHVpbnQ2NF90IGxpbms7Ci0rICBTaWduYWxTdGFjazxDb250ZXh0VHJhaXRzNjQ+ IHN0YWNrOwotKyAgU2lnc2V0PENvbnRleHRUcmFpdHM2ND4gc2lnbWFzazsKLSsgIE1Db250ZXh0 NjQgbWNvbnRleHQ7Ci0rfTsKLSsjcHJhZ21hIHBhY2socHVzaCwgMSkKLSsKLStzdGF0aWNfYXNz ZXJ0KHNpemVvZihVQ29udGV4dCkgPT0gc2l6ZW9mKHVjb250ZXh0X3QpLAotKyAgICAgICAgICAg ICAgInVjb250ZXh0X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKE1D b250ZXh0NjQpID09IHNpemVvZihtY29udGV4dF90KSwKLSsgICAgICAgICAgICAgICJtY29udGV4 dF90IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxUaHJlYWRD b250ZXh0NjQpID09IHNpemVvZihncmVnc2V0X3QpLAotKyAgICAgICAgICAgICAgImdyZWdzZXRf dCBzaXplIG1pc21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsRmxvYXRDb250 ZXh0NjQpID09IHNpemVvZihmcHJlZ3NldF90KSwKLSsgICAgICAgICAgICAgICJmcHJlZ3NldF90 IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxWZWN0b3JDb250 ZXh0NjQpID09IHNpemVvZih2cnJlZ3NldF90KSwKLSsgICAgICAgICAgICAgICJ2cnJlZ3NldF90 IHNpemUgbWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKFVDb250ZXh0LCBtY29u dGV4dCkgPT0KLSsgICAgICAgICAgICAgIG9mZnNldG9mKHVjb250ZXh0X3QsIHVjX21jb250ZXh0 KSwgIm1jb250ZXh0IG9mZnNldCBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQob2Zmc2V0b2Yo TUNvbnRleHQ2NCwgZ3BfcmVncykgPT0KLSsgICAgICAgICAgICAgIG9mZnNldG9mKG1jb250ZXh0 X3QsIGdwX3JlZ3MpLCAiZ3BfcmVncyBvZmZzZXQgbWlzbWF0Y2giKTsKLSAjZWxzZQotICNlcnJv ciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hv dF9saW51eC5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4 L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYwotaW5kZXggYTk5ZGEzZTRiLi4wM2I5NzMwODMgMTAw NjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9z eXN0ZW1fc25hcHNob3RfbGludXguY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L3N5c3RlbV9zbmFwc2hvdF9saW51eC5jYwotQEAgLTIwNCw2ICsy MDQsOCBAQCBDUFVBcmNoaXRlY3R1cmUgU3lzdGVtU25hcHNob3RMaW51eDo6R2V0Q1BVQXJjaGl0 ZWN0dXJlKCkgY29uc3QgewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0g ICByZXR1cm4gcHJvY2Vzc19yZWFkZXJfLT5JczY0Qml0KCkgPyBrQ1BVQXJjaGl0ZWN0dXJlTUlQ UzY0RUwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGtDUFVBcmNoaXRl Y3R1cmVNSVBTRUw7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBy ZXR1cm4ga0NQVUFyY2hpdGVjdHVyZVBQQzY0OwotICNlbHNlCi0gI2Vycm9yIHBvcnQgdG8geW91 ciBhcmNoaXRlY3R1cmUKLSAjZW5kaWYKLUBAIC0yMTksNiArMjIxLDkgQEAgdWludDMyX3QgU3lz dGVtU25hcHNob3RMaW51eDo6Q1BVUmV2aXNpb24oKSBjb25zdCB7Ci0gI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIC8vIE5vdCBpbXBsZW1lbnRhYmxlIG9uIE1JUFMKLSAg IHJldHVybiAwOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgLy8g Tm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAotKyAgcmV0dXJuIDA7Ci0gI2Vsc2UKLSAjZXJy b3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQotICNlbmRpZgotQEAgLTIzOSw2ICsyNDQsOSBA QCBzdGQ6OnN0cmluZyBTeXN0ZW1TbmFwc2hvdExpbnV4OjpDUFVWZW5kb3IoKSBjb25zdCB7Ci0g I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIC8vIE5vdCBpbXBsZW1lbnRh YmxlIG9uIE1JUFMKLSAgIHJldHVybiBzdGQ6OnN0cmluZygpOwotKyNlbGlmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAot KyAgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7Ci0gI2Vsc2UKLSAjZXJyb3IgcG9ydCB0byB5b3VyIGFy Y2hpdGVjdHVyZQotICNlbmRpZgotQEAgLTM3Miw2ICszODAsOSBAQCBib29sIFN5c3RlbVNuYXBz aG90TGludXg6Ok5YRW5hYmxlZCgpIGNvbnN0IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKQotICAgLy8gTm90IGltcGxlbWVudGFibGUgb24gTUlQUwotICAgcmV0dXJuIGZh bHNlOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgLy8gTm90IHll dCBpbXBsZW1lbnRlZCBvbiBQUEM2NAotKyAgcmV0dXJuIGZhbHNlOwotICNlbHNlCi0gI2Vycm9y IFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1kaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGVzdF9tb2R1bGVzLmNj IGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGVzdF9tb2R1 bGVzLmNjCi1pbmRleCBiMjQ1MGMyMDYuLjdiYTc4YjJhZSAxMDA2NDQKLS0tLSBhL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Rlc3RfbW9kdWxlcy5jYwotKysr IGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGVzdF9tb2R1 bGVzLmNjCi1AQCAtMTEwLDYgKzExMCw4IEBAIGJvb2wgV3JpdGVUZXN0TW9kdWxlKGNvbnN0IGJh c2U6OkZpbGVQYXRoJiBtb2R1bGVfcGF0aCwKLSAgIG1vZHVsZS5laGRyLmVfbWFjaGluZSA9IEVN X0FBUkNINjQ7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTRUwpIHx8IGRlZmluZWQoQVJD SF9DUFVfTUlQUzY0RUwpCi0gICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBFTV9NSVBTOwotKyNl bGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCi0rICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBF TV9QUEM2NDsKLSAjZW5kaWYKLSAKLSAgIG1vZHVsZS5laGRyLmVfdmVyc2lvbiA9IEVWX0NVUlJF TlQ7Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjCi1pbmRleCBlM2Uy YmViZGQuLjhlZjQzNzUyZSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYwotKysrIGIvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xp bnV4LmNjCi1AQCAtMTg2LDYgKzE4NiwxNCBAQCBib29sIFRocmVhZFNuYXBzaG90TGludXg6Oklu aXRpYWxpemUoUHJvY2Vzc1JlYWRlckxpbnV4KiBwcm9jZXNzX3JlYWRlciwKLSAgICAgICAgIHRo cmVhZC50aHJlYWRfaW5mby5mbG9hdF9jb250ZXh0LmYzMiwKLSAgICAgICAgIGNvbnRleHRfLm1p cHNlbCk7Ci0gICB9Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBj b250ZXh0Xy5hcmNoaXRlY3R1cmUgPSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ7Ci0rICBjb250ZXh0 Xy5wcGM2NCA9ICZjb250ZXh0X3VuaW9uXy5wcGM2NDsKLSsgIEluaXRpYWxpemVDUFVDb250ZXh0 UFBDNjQ8Q29udGV4dFRyYWl0czY0PigKLSsgICAgICB0aHJlYWQudGhyZWFkX2luZm8udGhyZWFk X2NvbnRleHQudDY0LAotKyAgICAgIHRocmVhZC50aHJlYWRfaW5mby5mbG9hdF9jb250ZXh0LmY2 NCwKLSsgICAgICB0aHJlYWQudGhyZWFkX2luZm8udmVjdG9yX2NvbnRleHQudjY0LAotKyAgICAg IGNvbnRleHRfLnBwYzY0KTsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVh ZF9zbmFwc2hvdF9saW51eC5oIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKLWluZGV4IDQ0Y2M2ZjZkOS4uZDQxMzY0 NjFlIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCi1AQCAtNjgs NiArNjgsOCBAQCBjbGFzcyBUaHJlYWRTbmFwc2hvdExpbnV4IGZpbmFsIDogcHVibGljIFRocmVh ZFNuYXBzaG90IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgICBD UFVDb250ZXh0TUlQUyBtaXBzZWw7Ci0gICAgIENQVUNvbnRleHRNSVBTNjQgbWlwczY0OwotKyNl bGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICBDUFVDb250ZXh0UFBDNjQg cHBjNjQ7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9G QU1JTFkKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbmV0L2h0dHBf dHJhbnNwb3J0X2xpYmN1cmwuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3V0aWwvbmV0L2h0dHBfdHJhbnNwb3J0X2xpYmN1cmwuY2MKLUBAIC0yMzYsNiArMjM2LDEyIEBA Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9CSUdfRU5ESUFOKQotICAgICBzdGF0aWMgY29uc3Rl eHByIGNoYXIgYXJjaFtdID0gImFhcmNoNjRfYmUiOwotICNlbmRpZgotKyNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9MSVRUTEVfRU5ESUFOKQotKyAg ICBzdGF0aWMgY29uc3RleHByIGNoYXIgYXJjaFtdID0gInBwYzY0bGUiOwotKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfQklHX0VORElBTikKLSsgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGFyY2hb XSA9ICJwcGM2NCI7Ci0rI2VuZGlmCi0gI2Vsc2UKLSAjZXJyb3IgUG9ydAotICNlbmRpZgotZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxp YXJ5X3ZlY3Rvci5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgv YXV4aWxpYXJ5X3ZlY3Rvci5jYwotaW5kZXggZDNkNWViZGZiLi4zZmQ3MzBjYjUgMTAwNjQ0Ci0t LS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L2F1eGlsaWFyeV92 ZWN0b3IuY2MKLSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgv YXV4aWxpYXJ5X3ZlY3Rvci5jYwotQEAgLTU2LDYgKzU2LDExIEBAIGJvb2wgQXV4aWxpYXJ5VmVj dG9yOjpSZWFkKFB0cmFjZUNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pIHsKLSAgICAgaWYgKHR5cGUg PT0gQVRfSUdOT1JFKSB7Ci0gICAgICAgY29udGludWU7Ci0gICAgIH0KLSsjaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIGlmICh0eXBlID09IEFUX0lHTk9SRVBQQykgewot KyAgICAgIGNvbnRpbnVlOwotKyAgICB9Ci0rI2VuZGlmCi0gICAgIGlmICghTWFwSW5zZXJ0T3JS ZXBsYWNlKCZ2YWx1ZXNfLCB0eXBlLCB2YWx1ZSwgbnVsbHB0cikpIHsKLSAgICAgICBMT0coRVJS T1IpIDw8ICJkdXBsaWNhdGUgYXV4diBlbnRyeSI7Ci0gICAgICAgcmV0dXJuIGZhbHNlOwotZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNl ci5jYyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5j YwotaW5kZXggNTU3ZTBkMzYzLi4wOGFlNDM0YjggMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKLSsrKyBiL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5jYwotQEAgLTM5OCw2ICszOTgs NjQgQEAgYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlkLAotICAgcmV0dXJuIHRydWU7Ci0g fQotIAotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKy8vIFBQQzY0IGhh cyBoYWQgSEFWRV9BUkNIX1RSQUNFSE9PSyBzZXQgc2luY2UgMi42LjI3IChldmVuIGJlZm9yZSB4 ODYgaGFkIGl0KS4KLSsvLyBUaGF0IG1lYW5zIHdlIGNhbiBzaW1wbHkgdXNlIFBUUkFDRV9HRVRS RUdFU0VULgotKwotK3RlbXBsYXRlIDx0eXBlbmFtZSBEZXN0aW5hdGlvbj4KLStib29sIEdldFJl Z2lzdGVyU2V0KHBpZF90IHRpZCwgaW50IHNldCwgRGVzdGluYXRpb24qIGRlc3QsIGJvb2wgY2Fu X2xvZykgewotKyAgaW92ZWMgaW92OwotKyAgaW92Lmlvdl9iYXNlID0gcmVpbnRlcnByZXRfY2Fz dDx2b2lkKj4oZGVzdCk7Ci0rICBpb3YuaW92X2xlbiA9IHNpemVvZigqZGVzdCk7Ci0rICBpZiAo cHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc2V0 KSwgJmlvdikgIT0gMCkgewotKyAgICBQTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAicHRyYWNl IjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKyAgaWYgKGlvdi5pb3ZfbGVuICE9IHNpemVv ZigqZGVzdCkpIHsKLSsgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAiVW5leHBlY3RlZCBy ZWdpc3RlcnMgc2l6ZSI7Ci0rICAgIHJldHVybiBmYWxzZTsKLSsgIH0KLSsgIHJldHVybiB0cnVl OwotK30KLSsKLStib29sIEdldFZlY3RvclJlZ2lzdGVyczY0KHBpZF90IHRpZCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgIFZlY3RvckNvbnRleHQqIGNvbnRleHQsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKLSsgIHJldHVybiBHZXRSZWdpc3RlclNldCh0 aWQsIE5UX1BQQ19WTVgsICZjb250ZXh0LT52NjQsIGNhbl9sb2cpOwotK30KLSsKLStib29sIEdl dEZsb2F0aW5nUG9pbnRSZWdpc3RlcnM2NChwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgewotKyAgcmV0dXJuIEdldFJlZ2lzdGVyU2V0 KHRpZCwgTlRfUFJGUFJFRywgJmNvbnRleHQtPmY2NCwgY2FuX2xvZyk7Ci0rfQotKwotK2Jvb2wg R2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKLSsgICAgICAgICAgICAgICAgICAgICBjb25zdCBU aHJlYWRDb250ZXh0JiBjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgIExpbnV4Vk1BZGRy ZXNzKiBhZGRyZXNzLAotKyAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgewotKyAg Ly8gUFBDNjQgZG9lc24ndCBoYXZlIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEgc2luY2UgdGhlIHRo cmVhZCBwb2ludGVyCi0rICAvLyBpcyBzdG9yZWQgaW4gR1BSIDEzLgotKyAgVGhyZWFkQ29udGV4 dDo6dDY0X3QgdGM7Ci0rICBpZiAoIUdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFJTVEFUVVMsICZ0 YywgY2FuX2xvZykpIHsKLSsgICAgTE9HX0lGKEVSUk9SLCBjYW5fbG9nKSA8PCAiVW5hYmxlIHRv IGdldCB0aHJlYWQgcG9pbnRlciEiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rCi0rICAq YWRkcmVzcyA9IHRjLmdwclsxM107Ci0rCi0rICByZXR1cm4gdHJ1ZTsKLSt9Ci0rCi0rLy8gU3R1 YnMgZm9yIDMyLWJpdCBmdW5jdGlvbnMgbm90IGFwcGxpY2FibGUgb24gUFBDNjQKLStib29sIEdl dEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMzMihwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRmxvYXRDb250ZXh0KiBjb250ZXh0LAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xvZykgeyByZXR1cm4gZmFsc2U7IH0KLStib29sIEdl dFRocmVhZEFyZWEzMihwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGhy ZWFkQ29udGV4dCAmY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRkcmVz cyAqYWRkcmVzcywKLSsgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsgcmV0dXJu IGZhbHNlOyB9Ci0rCi0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BV X1g4Nl9GQU1JTFkKLUBAIC00OTQsNiArNTUyLDkgQEAgYm9vbCBQdHJhY2VyOjpHZXRUaHJlYWRJ bmZvKHBpZF90IHRpZCwgVGhyZWFkSW5mbyogaW5mbykgewotICAgaWYgKGlzXzY0X2JpdF8pIHsK LSAgICAgcmV0dXJuIEdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzNjQodGlkLCAmaW5mby0+dGhy ZWFkX2NvbnRleHQsIGNhbl9sb2dfKSAmJgotICAgICAgICAgICAgR2V0RmxvYXRpbmdQb2ludFJl Z2lzdGVyczY0KHRpZCwgJmluZm8tPmZsb2F0X2NvbnRleHQsIGNhbl9sb2dfKSAmJgotKyNpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgICAgICAgIEdldFZlY3RvclJlZ2lz dGVyczY0KHRpZCwgJmluZm8tPnZlY3Rvcl9jb250ZXh0LCBjYW5fbG9nXykgJiYKLSsjZW5kaWYK LSAgICAgICAgICAgIEdldFRocmVhZEFyZWE2NCh0aWQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5mby0+dGhyZWFkX2NvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg JmluZm8tPnRocmVhZF9zcGVjaWZpY19kYXRhX2FkZHJlc3MsCi1kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oIGIvdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCi1pbmRleCA1 YjU1YzI0YTcuLmRlYTBkMWYzOSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCi1AQCAtMjgsNiArMjgsMTAgQEAK LSAjaW5jbHVkZSA8YW5kcm9pZC9hcGktbGV2ZWwuaD4KLSAjZW5kaWYKLSAKLSsjaWYgZGVmaW5l ZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgotKyNl bmRpZgotKwotIG5hbWVzcGFjZSBjcmFzaHBhZCB7Ci0gCi0gLy8hIFxicmllZiBUaGUgc2V0IG9m IGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMgZm9yIGFuIGFyY2hpdGVjdHVyZSBmYW1pbHkuCi1A QCAtNzksNiArODMsOCBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKLSAgICAgdWludDMyX3QgY3Aw X3N0YXR1czsKLSAgICAgdWludDMyX3QgY3AwX2NhdXNlOwotICAgICB1aW50MzJfdCBwYWRkaW5n MV87Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIFBQQzY0 IGlzIDY0LWJpdAotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9Y ODZfRkFNSUxZCi1AQCAtMTMyLDYgKzEzOCwyMSBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKLSAg ICAgdWludDY0X3QgY3AwX2JhZHZhZGRyOwotICAgICB1aW50NjRfdCBjcDBfc3RhdHVzOwotICAg ICB1aW50NjRfdCBjcDBfY2F1c2U7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1J TFkpCi0rICAgIC8vIFJlZmxlY3RzIHN0cnVjdCBwdF9yZWdzIGluIGFzbS9wdHJhY2UuaC4KLSsg ICAgdWludDY0X3QgZ3ByWzMyXTsKLSsgICAgdWludDY0X3QgbmlwOwotKyAgICB1aW50NjRfdCBt c3I7Ci0rICAgIHVpbnQ2NF90IG9yaWdfZ3ByMzsKLSsgICAgdWludDY0X3QgY3RyOwotKyAgICB1 aW50NjRfdCBsbms7Ci0rICAgIHVpbnQ2NF90IHhlcjsKLSsgICAgdWludDY0X3QgY2NyOwotKyAg ICB1aW50NjRfdCBzb2Z0ZTsKLSsgICAgdWludDY0X3QgdHJhcDsKLSsgICAgdWludDY0X3QgZGFy OwotKyAgICB1aW50NjRfdCBkc2lzcjsKLSsgICAgdWludDY0X3QgcmVzdWx0OwotICNlbHNlCi0g I2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMTQzLDYg KzE2NCw4IEBAIHVuaW9uIFRocmVhZENvbnRleHQgewotICAgdXNpbmcgTmF0aXZlVGhyZWFkQ29u dGV4dCA9IHVzZXJfcmVnczsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQot IC8vIE5vIGFwcHJvcHJpYXRlIE5hdGl2ZVRocmVhZHNDb250ZXh0IHR5cGUgYXZhaWxhYmxlIGZv ciBNSVBTCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICB1c2luZyBO YXRpdmVUaHJlYWRDb250ZXh0ID0gc3RydWN0IHB0X3JlZ3M7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9y dC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1JTFkgfHwgQVJDSF9DUFVfQVJNNjQKLUBA IC0yMTgsNiArMjQxLDkgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKLSAgICAgfSBmcHJlZ3NbMzJd OwotICAgICB1aW50MzJfdCBmcGNzcjsKLSAgICAgdWludDMyX3QgZnB1X2lkOwotKyNlbGlmIGRl ZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAvLyBDcmFzaHBhZCdzIFBQQyBzdXBw b3J0IGlzIDY0LWJpdCBvbmx5LCBzbyB0aGlzCi0rICAgIC8vIDMyYml0LW9ubHkgc3RydWN0IGlz IGRlY2xhcmVkIGFzIGVtcHR5LgotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBB UkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMjUyLDYgKzI3OCwxMCBAQCB1bmlvbiBGbG9hdENvbnRl eHQgewotICAgICBkb3VibGUgZnByZWdzWzMyXTsKLSAgICAgdWludDMyX3QgZnBjc3I7Ci0gICAg IHVpbnQzMl90IGZwdV9pZDsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkK LSsgICAgLy8gUmVmbGVjdHMgZnByZWdzZXRfdCBpbiBzeXMvdWNvbnRleHQuaAotKyAgICBkb3Vi bGUgZnByZWdzWzMyXTsKLSsgICAgZG91YmxlIGZwc2NyOwotICNlbHNlCi0gI2Vycm9yIFBvcnQu Ci0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMjgwLDYgKzMxMCw4IEBAIHVu aW9uIEZsb2F0Q29udGV4dCB7Ci0gICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmNjQpID09IHNpemVv Zih1c2VyX2Zwc2ltZF9zdHJ1Y3QpLCAiU2l6ZSBtaXNtYXRjaCIpOwotICNlbGlmIGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gLy8gTm8gYXBwcm9wcmlhdGUgZmxvYXRpbmcgcG9pbnQg Y29udGV4dCBuYXRpdmUgdHlwZSBmb3IgYXZhaWxhYmxlIE1JUFMuCi0rI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmNjQpID09IHNp emVvZihmcHJlZ3NldF90KSwgIlNpemUgbWlzbWF0Y2giKTsKLSAjZWxzZQotICNlcnJvciBQb3J0 LgotICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2Ci1AQCAtMjg3LDYgKzMxOSwyNiBAQCB1bmlvbiBG bG9hdENvbnRleHQgewotIHN0YXRpY19hc3NlcnQoc3RkOjppc19zdGFuZGFyZF9sYXlvdXQ8Rmxv YXRDb250ZXh0Pjo6dmFsdWUsCi0gICAgICAgICAgICAgICAiTm90IHN0YW5kYXJkIGxheW91dCIp OwotIAotKy8vISBcYnJpZWYgVGhlIHZlY3RvciByZWdpc3RlcnMgdXNlZCBmb3IgYW4gYXJjaGl0 ZWN0dXJlIGZhbWlseQotK3VuaW9uIFZlY3RvckNvbnRleHQgewotKyAgc3RydWN0IHYzMl90IHt9 IHYzMjsKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBfX2F0dHJpYnV0 ZV9fKChfX2FsaWduZWRfXygxNikpKSAvLyBWZWN0b3IgY29udGV4dCBtdXN0IGJlIGRvdWJsZXdv cmQgYWxpZ25lZC4KLSsjZW5kaWYKLSsgIHN0cnVjdCB2NjRfdCB7Ci0rI2lmIGRlZmluZWQoQVJD SF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICAvLyBSZWZsZWN0cyB2cnJlZ3NldF90IGluIHN5cy91 Y29udGV4dC5oCi0rICAgIHVpbnQzMl90IHZycmVnc1szMl1bNF07Ci0rICAgIHN0cnVjdCB7Ci0r ICAgICAgdWludDMyX3QgX19wYWRbM107Ci0rICAgICAgdWludDMyX3QgdnNjcl93b3JkOwotKyAg ICB9IHZzY3I7Ci0rICAgIHVpbnQzMl90IHZyc2F2ZTsKLSsgICAgdWludDMyX3QgX19wYWRbM107 Ci0rI2VuZGlmCi0rICB9IHY2NDsKLSt9OwotKwotIC8vISBcYnJpZWYgQSBjb2xsZWN0aW9uIG9m IGBwdHJhY2VgLWFibGUgaW5mb3JtYXRpb24gYWJvdXQgYSB0aHJlYWQuCi0gc3RydWN0IFRocmVh ZEluZm8gewotICAgVGhyZWFkSW5mbygpOwotQEAgLTI5OCw2ICszNTAsOSBAQCBzdHJ1Y3QgVGhy ZWFkSW5mbyB7Ci0gICAvLyEgXGJyaWVmIFRoZSBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMgZm9y IHRoZSB0aHJlYWQuCi0gICBGbG9hdENvbnRleHQgZmxvYXRfY29udGV4dDsKLSAKLSsgIC8vISBc YnJpZWYgKE9wdGlvbmFsKSBUaGUgdmVjdG9yIHJlZ2lzdGVycyB1c2VkIGZvciB0aGUgdGhyZWFk LgotKyAgVmVjdG9yQ29udGV4dCB2ZWN0b3JfY29udGV4dDsKLSsKLSAgIC8vISBcYnJpZWYgVGhl IHRocmVhZC1sb2NhbCBzdG9yYWdlIGFkZHJlc3MgZm9yIHRoZSB0aHJlYWQuCi0gICBMaW51eFZN QWRkcmVzcyB0aHJlYWRfc3BlY2lmaWNfZGF0YV9hZGRyZXNzOwotIH07Ci1kaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5o IGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4 dC5oCi1pbmRleCBkMjFhMjRmMTkuLmFjYzMyNTM0OSAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaAotKysrIGIvdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dC5oCi1A QCAtNjksNiArNjksNyBAQCB1c2luZyBOYXRpdmVDUFVDb250ZXh0ID0gdWNvbnRleHRfdDsKLSAv LyEgICAgIG1hY09TL0xpbnV4L0Z1Y2hzaWEgfCB4ODZfNjQgICAgICAgfCBgJSVyZGlgCi0gLy8h ICAgICBMaW51eCAgICAgICAgICAgICAgIHwgQVJNL0FSTTY0ICAgIHwgYHIwYC9geDBgCi0gLy8h ICAgICBMaW51eCAgICAgICAgICAgICAgIHwgTUlQUy9NSVBTNjQgIHwgYCRhMGAKLSsvLyEgICAg IExpbnV4ICAgICAgICAgICAgICAgfCBQUEM2NCAgICAgICAgfCBgcjNgCi0gLy8hCi0gLy8hICAg ICBBZGRpdGlvbmFsbHksIHRoZSB2YWx1ZSBgTFJgIG9uIEFSTS9BUk02NCB3aWxsIGJlIHRoZSBy ZXR1cm4gYWRkcmVzcyBvZgotIC8vISAgICAgdGhpcyBmdW5jdGlvbi4KLWRpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X2xp bnV4LlMgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9j b250ZXh0X2xpbnV4LlMKLWluZGV4IDUyMjE1ZWU1ZC4uYjNlNGEzZWM3IDEwMDY0NAotLS0tIGEv dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF9s aW51eC5TCi0rKysgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2Fw dHVyZV9jb250ZXh0X2xpbnV4LlMKLUBAIC0zMiw3ICszMiw3IEBACi0gICAuYmFsaWduIDQsIDB4 MAotICAgLnR5cGUgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MLCAlZnVuY3Rpb24KLSAgIC50eXBlIENB UFRVUkVDT05URVhUX1NZTUJPTDIsICVmdW5jdGlvbgotLSNlbGlmIGRlZmluZWQoX19taXBzX18p Ci0rI2VsaWYgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAg LmJhbGlnbiA0LCAweDAKLSAjZW5kaWYKLSAKLUBAIC00MjMsNCArNDIzLDIxNCBAQCBDQVBUVVJF Q09OVEVYVF9TWU1CT0wyOgotICAganIgJHJhCi0gCi0gICAuc2V0IGF0Ci0rI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gU3RvcmUgcjAtcjMxCi0rICBzdGQgMCwgMHhlOCgzKSAg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMF0KLSsgIHN0ZCAxLCAweGYwKDMpICAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1sxXQotKyAgc3RkIDIsIDB4ZjgoMykgICAv LyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzJdCi0rICAvLyBub3RlIHRoYXQgcjMncyBv cmlnaW5hbCB2YWx1ZSB3YXMgbG9zdAotKyAgc3RkIDMsIDB4MTAwKDMpICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzNdCi0rICBzdGQgNCwgMHgxMDgoMykgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LmdwX3JlZ3NbNF0KLSsgIHN0ZCA1LCAweDExMCgzKSAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQuZ3BfcmVnc1s1XQotKyAgc3RkIDYsIDB4MTE4KDMpICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5ncF9yZWdzWzZdCi0rICBzdGQgNywgMHgxMjAoMykgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmdwX3JlZ3NbN10KLSsgIHN0ZCA4LCAweDEyOCgzKSAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZ3BfcmVnc1s4XQotKyAgc3RkIDksIDB4MTMwKDMpICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzWzldCi0rICBzdGQgMTAsIDB4MTM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMTBdCi0rICBzdGQgMTEsIDB4MTQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMTFdCi0rICBzdGQgMTIsIDB4MTQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMTJdCi0rICBzdGQgMTMsIDB4MTUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMTNdCi0rICBzdGQgMTQsIDB4MTU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMTRdCi0rICBzdGQgMTUsIDB4MTYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMTVdCi0rICBzdGQgMTYsIDB4MTY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMTZdCi0rICBzdGQgMTcsIDB4MTcwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMTddCi0rICBzdGQgMTgsIDB4MTc4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMThdCi0rICBzdGQgMTksIDB4MTgwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMTldCi0rICBzdGQgMjAsIDB4MTg4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMjBdCi0rICBzdGQgMjEsIDB4MTkwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMjFdCi0rICBzdGQgMjIsIDB4MTk4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMjJdCi0rICBzdGQgMjMsIDB4MWEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMjNdCi0rICBzdGQgMjQsIDB4MWE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMjRdCi0rICBzdGQgMjUsIDB4MWIwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMjVdCi0rICBzdGQgMjYsIDB4MWI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMjZdCi0rICBzdGQgMjcsIDB4MWMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMjddCi0rICBzdGQgMjgsIDB4MWM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMjhdCi0rICBzdGQgMjksIDB4MWQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMjldCi0rICBzdGQgMzAsIDB4MWQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMzBdCi0rICBzdGQgMzEsIDB4MWUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmdwX3JlZ3NbMzFdCi0rCi0rICAvLyBGb3IgTklQLCB3ZSBjYW4gdXNlIHRoZSB2YWx1ZSBp biB0aGUgbGluayByZWdpc3RlcgotKyAgbWZsciAwCi0rICBzdGQgMCwgMHgxZTgoMykgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdCi0rCi0rICAvLyBDVFIKLSsgIG1mY3Ry IDAKLSsgIHN0ZCAwLCAweDIwMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BU X0NUUl0KLSsKLSsgIC8vIEZvciBMTkssIHdlJ2xsIHVzZSB0aGUgY2FsbGVyJ3MgTFIgc2F2ZSBh cmVhICgyIHN0YWNrIGZyYW1lcyB1cCkuCi0rICAvLyByNCBjYW4gYmUgdXNlZCBhcyBhIHNjcmF0 Y2ggcmVnaXN0ZXIgc2luY2UgaXQgaGFzIGFscmVhZHkgYmVlbiBzYXZlZC4KLSsgIGxkIDQsIDAo MSkKLSsgIGxkIDQsIDE2KDQpCi0rICBzdGQgNCwgMHgyMDgoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZ3BfcmVnc1tQVF9MTktdCi0rCi0rICAvLyBYRVIKLSsgIG1meGVyIDAKLSsgIHN0ZCAw LCAweDIxMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1hFUl0KLSsKLSsg IC8vIENDUgotKyAgbWZjciAwCi0rICBzdGQgMCwgMHgyMTgoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZ3BfcmVnc1tQVF9DQ1JdCi0rCi0rICAvLyBNU1IsIG9yaWdfcjMsIE1RLCBUUkFQLCBE QVIsIERTSVNSLCBSRVNVTFQsIERTQ1IsCi0rICAvLyBub3QgdXNlZCBvciBub3QgcmVsZXZhbnQs ICB6ZXJvIHRoZW0gb3V0LgotKyAgbGkgNCwgMAotKyAgc3RkIDQsIDB4MWYwKDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXQotKyAgc3RkIDQsIDB4MWY4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfT1JJR19SM10KLSsgIHN0ZCA0LCAweDIyMCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01RXQotKyAgc3RkIDQsIDB4MjI4 KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfVFJBUF0KLSsgIHN0ZCA0LCAw eDIzMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0RBUl0KLSsgIHN0ZCA0 LCAweDIzOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0RTSVNSXQotKyAg c3RkIDQsIDB4MjQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfUkVTVUxU XQotKyAgc3RkIDQsIDB4MjQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRf RFNDUl0KLSsKLSsgIC8vIFVwZGF0ZSBjb250ZXh0LT51Y19tY29udGV4dC5yZWdzIHRvIHBvaW50 IHRvIGdwX3JlZ3MKLSsgIGFkZGkgMCwgMywgMHhlOAotKyAgc3RkIDAsIDB4ZTAoMykKLSsKLSsg IC8vIFNhdmUgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIDAtMzEKLSsgIHN0ZmQgMCwgMHgyNjgo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMF0KLSsgIHN0ZmQgMSwgMHgyNzAo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMV0KLSsgIHN0ZmQgMiwgMHgyNzgo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMl0KLSsgIHN0ZmQgMywgMHgyODAo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbM10KLSsgIHN0ZmQgNCwgMHgyODgo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNF0KLSsgIHN0ZmQgNSwgMHgyOTAo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNV0KLSsgIHN0ZmQgNiwgMHgyOTgo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbNl0KLSsgIHN0ZmQgNywgMHgyYTAo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbN10KLSsgIHN0ZmQgOCwgMHgyYTgo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOF0KLSsgIHN0ZmQgOSwgMHgyYjAo MykgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbOV0KLSsgIHN0ZmQgMTAsIDB4MmI4 KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTBdCi0rICBzdGZkIDExLCAweDJj MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzExXQotKyAgc3RmZCAxMiwgMHgy YzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxMl0KLSsgIHN0ZmQgMTMsIDB4 MmQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTNdCi0rICBzdGZkIDE0LCAw eDJkOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE0XQotKyAgc3RmZCAxNSwg MHgyZTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxNV0KLSsgIHN0ZmQgMTYs IDB4MmU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTZdCi0rICBzdGZkIDE3 LCAweDJmMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE3XQotKyAgc3RmZCAx OCwgMHgyZjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxOF0KLSsgIHN0ZmQg MTksIDB4MzAwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTldCi0rICBzdGZk IDIwLCAweDMwOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIwXQotKyAgc3Rm ZCAyMSwgMHgzMTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syMV0KLSsgIHN0 ZmQgMjIsIDB4MzE4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjJdCi0rICBz dGZkIDIzLCAweDMyMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIzXQotKyAg c3RmZCAyNCwgMHgzMjgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syNF0KLSsg IHN0ZmQgMjUsIDB4MzMwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjVdCi0r ICBzdGZkIDI2LCAweDMzOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI2XQot KyAgc3RmZCAyNywgMHgzNDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syN10K LSsgIHN0ZmQgMjgsIDB4MzQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjhd Ci0rICBzdGZkIDI5LCAweDM1MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzI5 XQotKyAgc3RmZCAzMCwgMHgzNTgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sz MF0KLSsgIHN0ZmQgMzEsIDB4MzYwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb MzFdCi0rCi0rICAvLyBGUFNDUgotKyAgbWZmcyAwCi0rICBzdGZkIDAsIDB4MzY4KDMpIC8vIGNv bnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMzJdCi0rCi0rICAvLyBTYXZlIFZNWCBWZWN0b3Ig cmVnaXN0ZXJzCi0rICAvLyBVcGRhdGUgcjQgdG8gY29udGFpbiB0aGUgYmFzZSBhZGRyZXNzIG9m IHZteF9yZXNlcnZlCi0rICBhZGRpIDQsIDMsIDB4Mzc4Ci0rICAvLyBFbnN1cmUgdGhhdCBpdCBp cyBxdWFkd29yZCBhbGlnbmVkCi0rICBhbmRpLiA1LCA0LCAweEYKLSsgIGJlcSAxZiAvLyBObyBh bGlnbm1lbnQgaXMgbmVjZXNzYXJ5Ci0rICAvLyBBZGRyZXNzIGlzIGRvdWJsZXdvcmQgYWxpZ25l ZCBhbmQgbm90IHF1YWR3b3JkIGFsaWduZWQsIGFkZCA4Ci0rICBhZGRpIDQsIDQsIDgKLSsKLSsx OgotKyAgLy8gU3RvcmUgVk1YIHJlZ2lzdGVycyAwLTMxCi0rICAvLyByNCB3aWxsIGNvbnRhaW4g dGhlIGJhc2UgYWRkcmVzcwotKyAgLy8gcjUgd2lsbCBjb250YWluIHRoZSBpbmRleAotKyAgbGkg NSwgMAotKyAgc3R2eCAwLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2Vy dmVbKGFsaWduKSArIDBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEsIDQsIDUgICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMV0KLSsgIGFkZGkgNSwg NSwgMTYKLSsgIHN0dnggMiwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNl cnZlWyhhbGlnbikgKyAyXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAzLCA0LCA1ICAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDNdCi0rICBhZGRpIDUs IDUsIDE2Ci0rICBzdHZ4IDQsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgNF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggNSwgNCwgNSAgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA1XQotKyAgYWRkaSA1 LCA1LCAxNgotKyAgc3R2eCA2LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jl c2VydmVbKGFsaWduKSArIDZdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDcsIDQsIDUgICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgN10KLSsgIGFkZGkg NSwgNSwgMTYKLSsgIHN0dnggOCwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9y ZXNlcnZlWyhhbGlnbikgKyA4XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA5LCA0LCA1ICAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDldCi0rICBhZGRp IDUsIDUsIDE2Ci0rICBzdHZ4IDEwLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgMTBdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDExLCA0LCA1 ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTFdCi0rICBh ZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEyLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTJdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDEzLCA0 LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTNdCi0r ICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE0LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTRdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE1 LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTVd Ci0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE2LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29u dGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMTZdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4 IDE3LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsg MTddCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDE4LCA0LCA1ICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMThdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBz dHZ4IDE5LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgMTldCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIwLCA0LCA1ICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjBdCi0rICBhZGRpIDUsIDUsIDE2Ci0r ICBzdHZ4IDIxLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxp Z24pICsgMjFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIyLCA0LCA1ICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjJdCi0rICBhZGRpIDUsIDUsIDE2 Ci0rICBzdHZ4IDIzLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVso YWxpZ24pICsgMjNdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI0LCA0LCA1ICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjRdCi0rICBhZGRpIDUsIDUs IDE2Ci0rICBzdHZ4IDI1LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2 ZVsoYWxpZ24pICsgMjVdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI2LCA0LCA1ICAvLyBj b250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjZdCi0rICBhZGRpIDUs IDUsIDE2Ci0rICBzdHZ4IDI3LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVz ZXJ2ZVsoYWxpZ24pICsgMjddCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDI4LCA0LCA1ICAv LyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMjhdCi0rICBhZGRp IDUsIDUsIDE2Ci0rICBzdHZ4IDI5LCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhf cmVzZXJ2ZVsoYWxpZ24pICsgMjldCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDMwLCA0LCA1 ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzBdCi0rICBh ZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDMxLCA0LCA1ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMzFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rCi0rICAvLyBWU0NS Ci0rICBtZnZzY3IgMAotKyAgc3R2eCAwLCA0LCA1Ci0rICBhZGRpIDUsIDUsIDE2Ci0rCi0rICAv LyBWUlNBVkUKLSsgIG1mdnJzYXZlIDAKLSsgIHN0d3ggMCwgNCwgNQotKwotKyAgLy8gVXBkYXRl IGNvbnRleHQtPnVjX21jb250ZXh0LnZfcmVncyB0byBwb2ludCB0byB2bXhfcmVzZXJ2ZSArIGFs aWdubWVudC4KLSsgIHN0ZCA0LCAweDM3MCgzKQotKwotKyAgLy8gWmVybyBvdXQgYWxsIHVudXNl ZCBmaWVsZHMKLSsgIGxpIDQsIDAKLSsgIHN0ZCA0LCAweGM4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LnNpZ25hbAotKyAgc3RkIDQsIDB4ZDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu aGFuZGxlcgotKyAgc3RkIDQsIDB4ZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQub2xkbWFz awotKwotKyAgYmxyCi0gI2VuZGlmICAvLyBfX2kzODZfXwotZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdC5jYyBi L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRf dGVzdC5jYwotaW5kZXggY2YyM2MyZGVmLi41ZjI2NGJjOTIgMTAwNjQ0Ci0tLS0gYS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MK LSsrKyBiL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2Nv bnRleHRfdGVzdC5jYwotQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBUZXN0Q2FwdHVyZUNvbnRleHQo KSB7Ci0gICB1aW50cHRyX3QgcGMgPSBQcm9ncmFtQ291bnRlckZyb21Db250ZXh0KGNvbnRleHRf MSk7Ci0gCi0gI2lmICFkZWZpbmVkKEFERFJFU1NfU0FOSVRJWkVSKSAmJiAhZGVmaW5lZChBUkNI X0NQVV9NSVBTX0ZBTUlMWSkgJiYgXAotLSAgICAhZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKQot KyAgICAhZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2 NF9GQU1JTFkpCi0gICAvLyBTYW5pdGl6ZXJzIGNhbiBjYXVzZSBlbm91Z2ggY29kZSBibG9hdCB0 aGF0IHRoZSDigJxuZWFyYnnigJ0gY2hlY2sgd291bGQKLSAgIC8vIGxpa2VseSBmYWlsLgotICAg Y29uc3QgdWludHB0cl90IGtSZWZlcmVuY2VQQyA9Ci1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGlu dXguY2MgYi90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9j b250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYwotaW5kZXggMzBhMmFiMjFkLi42MDUwOWYyMWQgMTAw NjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVy ZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYwotKysrIGIvdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKLUBA IC0zNSw2ICszNSw4IEBAIHZvaWQgU2FuaXR5Q2hlY2tDb250ZXh0KGNvbnN0IE5hdGl2ZUNQVUNv bnRleHQmIGNvbnRleHQpIHsKLSAgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LnJlZ3Nb MF0sIEZyb21Qb2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7Ci0gI2VsaWYgZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0 LmdyZWdzWzRdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29udGV4dCkpOwotKyNlbGlm IGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgRVhQRUNUX0VRKGNvbnRleHQudWNf bWNvbnRleHQuZ3BfcmVnc1szXSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRleHQp KTsKLSAjZW5kaWYKLSB9Ci0gCi1AQCAtNDksNiArNTEsOCBAQCB1aW50cHRyX3QgUHJvZ3JhbUNv dW50ZXJGcm9tQ29udGV4dChjb25zdCBOYXRpdmVDUFVDb250ZXh0JiBjb250ZXh0KSB7Ci0gICBy ZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5wYzsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01J UFNfRkFNSUxZKQotICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQucGM7Ci0rI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1cm4gY29udGV4dC51Y19tY29udGV4 dC5ncF9yZWdzW1BUX05JUF07Ci0gI2VuZGlmCi0gfQotIAotQEAgLTYzLDYgKzY3LDggQEAgdWlu dHB0cl90IFN0YWNrUG9pbnRlckZyb21Db250ZXh0KGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGNv bnRleHQpIHsKLSAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LnNwOwotICNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5n cmVnc1syOV07Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICByZXR1 cm4gY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzWzFdOwotICNlbmRpZgotIH0KLSAKLWRpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9kYXYxZC9jb25maWcvbGludXgvcHBjNjQvY29uZmlnLmggYi90 aGlyZF9wYXJ0eS9kYXYxZC9jb25maWcvbGludXgvcHBjNjQvY29uZmlnLmgKLW5ldyBmaWxlIG1v ZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAuLjlmYmJmNzVjYwotLS0tIC9kZXYvbnVsbAotKysr IGIvdGhpcmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3BwYzY0L2NvbmZpZy5oCi1AQCAtMCww ICsxLDM5IEBACi0rLyoKLSsgKiBBdXRvZ2VuZXJhdGVkIGJ5IHRoZSBNZXNvbiBidWlsZCBzeXN0 ZW0uCi0rICogRG8gbm90IGVkaXQsIHlvdXIgY2hhbmdlcyB3aWxsIGJlIGxvc3QuCi0rICovCi0r Ci0rI3ByYWdtYSBvbmNlCi0rCi0rI2RlZmluZSBBUkNIX0FBUkNINjQgMAotKwotKyNkZWZpbmUg QVJDSF9BUk0gMAotKwotKyNkZWZpbmUgQVJDSF9QUEM2NExFIDEKLSsKLSsjZGVmaW5lIEFSQ0hf WDg2IDAKLSsKLSsjZGVmaW5lIEFSQ0hfWDg2XzMyIDAKLSsKLSsjZGVmaW5lIEFSQ0hfWDg2XzY0 IDAKLSsKLSsjZGVmaW5lIENPTkZJR18xNkJQQyAxCi0rCi0rI2RlZmluZSBDT05GSUdfOEJQQyAx Ci0rCi0rLy8gI2RlZmluZSBDT05GSUdfTE9HIDEgLS0gTG9nZ2luZyBpcyBjb250cm9sbGVkIGJ5 IENocm9taXVtCi0rCi0rI2RlZmluZSBFTkRJQU5ORVNTX0JJRyAwCi0rCi0rI2RlZmluZSBIQVZF X0FTTSAxCi0rCi0rI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJTUUgMQotKwotKyNkZWZpbmUgSEFW RV9ETFNZTSAxCi0rCi0rI2RlZmluZSBIQVZFX0dFVEFVWFZBTCAxCi0rCi0rI2RlZmluZSBIQVZF X1BPU0lYX01FTUFMSUdOIDEKLSsKLSsjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotKwotZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvZGF2MWRfdHlwZXMuaCBi L3RoaXJkX3BhcnR5L2RhdjFkL2xpYmRhdjFkL3NyYy9wcGMvZGF2MWRfdHlwZXMuaAotaW5kZXgg MGI0YmQ3MmYwLi5hMGNhYTVlNzEgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9kYXYxZC9saWJk YXYxZC9zcmMvcHBjL2RhdjFkX3R5cGVzLmgKLSsrKyBiL3RoaXJkX3BhcnR5L2RhdjFkL2xpYmRh djFkL3NyYy9wcGMvZGF2MWRfdHlwZXMuaAotQEAgLTUxLDQgKzUxLDE5IEBACi0gI2RlZmluZSB1 MTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNfbWVyZ2VsKCh1MTZ4OCkgdiwgdmVjX3NwbGF0X3Ux NigwKSkpCi0gI2RlZmluZSBpMTZsX3RvX2kzMih2KSAoKGkzMng0KSB2ZWNfdW5wYWNrbCgoaTE2 eDgpdikpCi0gCi0rI2lmIGRlZmluZWQoX19jbGFuZ19fKQotKyN1bmRlZiB2ZWNfc3BsYXRzCi0r I2RlZmluZSB2ZWNfc3BsYXRzKE4pICAgICAgICAgICAgICAgICAgICAgXAotKyAgICBfR2VuZXJp YygoTiksICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgICAgIHVuc2lnbmVkIGNoYXI6 ICAgICAgKCh1OHgxNikoTikpLCBcCi0rICAgICAgICBzaWduZWQgY2hhcjogICAgICAgICgoaTh4 MTYpKE4pKSwgXAotKyAgICAgICAgdW5zaWduZWQgc2hvcnQ6ICAgICAoKHUxNng4KShOKSksIFwK LSsgICAgICAgIHNpZ25lZCBzaG9ydDogICAgICAgKChpMTZ4OCkoTikpLCBcCi0rICAgICAgICB1 bnNpZ25lZCBpbnQ6ICAgICAgICgodTMyeDQpKE4pKSwgXAotKyAgICAgICAgc2lnbmVkIGludDog ICAgICAgICAoKGkzMng0KShOKSksIFwKLSsgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZzogKCh1 NjR4MikoTikpLCBcCi0rICAgICAgICBzaWduZWQgbG9uZyBsb25nOiAgICgoaTY0eDIpKE4pKSAg XAotKyAgICApCi0rI2VuZGlmCi0rCi0gI2VuZGlmIC8qIERBVjFEX1NSQ19QUENfVFlQRVNfSCAq LwotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2VpZ2VuMy9CVUlMRC5nbiBiL3RoaXJkX3BhcnR5 L2VpZ2VuMy9CVUlMRC5nbgotaW5kZXggMGQ0ZTE4NC4uZjJjZTQ4NCAxMDA2NDQKLS0tLSBhL3Ro aXJkX3BhcnR5L2VpZ2VuMy9CVUlMRC5nbgotKysrIGIvdGhpcmRfcGFydHkvZWlnZW4zL0JVSUxE LmduCi1AQCAtMjIsNCArMjIsOCBAQCBjb25maWcoImVpZ2VuX2luY2x1ZGVzIikgewotICAgICAj IGZvciB0aGlzIGNvbXBvbmVudCBvbiBXaW5kb3dzIG9uIEFybSBkdWUgdG8gY29tcGlsYXRpb24g ZXJyb3JzLgotICAgICBkZWZpbmVzICs9IFsgIkVJR0VOX0RPTlRfVkVDVE9SSVpFIiBdCi0gICB9 Ci0rCi0rICBpZiAodGFyZ2V0X2NwdSA9PSAicHBjNjQiKSB7Ci0rICAgIGRlZmluZXMgKz0gWyAi RUlHRU5fRE9OVF9WRUNUT1JJWkUiIF0KLSsgIH0KLSB9Ci0KLWRpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9saWJhb20vQlVJTEQuZ24gYi90aGlyZF9wYXJ0eS9saWJhb20vQlVJTEQuZ24KLWluZGV4 IDliMDY1YmQuLmRmM2FmMDIgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9saWJhb20vQlVJTEQu Z24KLSsrKyBiL3RoaXJkX3BhcnR5L2xpYmFvbS9CVUlMRC5nbgotQEAgLTQwLDYgKzQwLDggQEAK LSAgIGNwdV9hcmNoX2Z1bGwgPSAiZ2VuZXJpYyIKLSB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09 ICJsb29uZzY0IikgewotICAgY3B1X2FyY2hfZnVsbCA9ICJnZW5lcmljIgotK30gZWxzZSBpZiAo Y3VycmVudF9jcHUgPT0gInBwYzY0IikgewotKyAgY3B1X2FyY2hfZnVsbCA9ICJnZW5lcmljIgot IH0gZWxzZSB7Ci0gICBjcHVfYXJjaF9mdWxsID0gY3VycmVudF9jcHUKLSB9Ci1kaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oIGIvdGhpcmRfcGFydHkv bHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCi1pbmRleCBlNGFjMjI2NDQuLjFjNTcwMTVkYiAx MDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaAotKysr IGIvdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCi1AQCAtMzk0Nyw3ICsz OTQ3LDcgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgewotICAgICAgIExTU19SRUcoMiwgYnVmKTsK LSAgICAgICBMU1NfQk9EWSh2b2lkKiwgbW1hcDIsICIwIihfX3IyKSk7Ci0gICAgIH0KLS0jZWxz ZQotKyNlbGlmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pIC8qIHBwYzY0IGRvZXNuJ3QgaGF2ZSBt bWFwMiAqLwotICAgICAjZGVmaW5lIF9fTlJfX21tYXAyIF9fTlJfbW1hcDIKLSAgICAgTFNTX0lO TElORSBfc3lzY2FsbDYodm9pZCosIF9tbWFwMiwgICAgICAgICAgICB2b2lkKiwgcywKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90LCAgICAgICAgICAgICAgICAgICBsLCBpbnQsICAg ICAgICAgICAgICAgcCwKLUBAIC00MDU4LDcgKzQwNTgsNyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRm cyB7Ci0gICAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgIGRlZmluZWQoX19BUk1fQVJDSF8z X18pIHx8IGRlZmluZWQoX19BUk1fRUFCSV9fKSB8fCAgICAgICAgICAgICAgICAgICAgIFwKLSAg ICAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19TSU0gPT0gX01JUFNfU0lNX0FCSTMyKSB8 fCAgICAgICAgICAgICAgICAgICBcCi0tICAgICAgZGVmaW5lZChfX1BQQ19fKSB8fCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAgKGRl ZmluZWQoX19QUENfXykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykpIHx8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAoZGVmaW5l ZChfX3MzOTBfXykgJiYgIWRlZmluZWQoX19zMzkweF9fKSkKLSAgICAgLyogT24gdGhlc2UgYXJj aGl0ZWN0dXJlcywgaW1wbGVtZW50IG1tYXAoKSB3aXRoIG1tYXAyKCkuICovCi0gICAgIExTU19J TkxJTkUgdm9pZCogTFNTX05BTUUobW1hcCkodm9pZCAqcywgc2l6ZV90IGwsIGludCBwLCBpbnQg ZiwgaW50IGQsCi1AQCAtNDg3MiwxMSArNDg3MiwxMSBAQCBzdHJ1Y3Qga2VybmVsX3N0YXR4IHsK LSAgICAgICBMU1NfU0NfQk9EWSg0LCBpbnQsIDgsIGQsIHR5cGUsIHByb3RvY29sLCBzdik7Ci0g ICAgIH0KLSAgICNlbmRpZgotLSAgI2lmIGRlZmluZWQoX19OUl9yZWN2bXNnKQotKyAgI2lmIGRl ZmluZWQoX19OUl9yZWN2bXNnKSAmJiAhZGVmaW5lZChfX1BQQ19fKQotICAgICBMU1NfSU5MSU5F IF9zeXNjYWxsMyhzc2l6ZV90LCByZWN2bXNnLCBpbnQsIHMsIHN0cnVjdCBrZXJuZWxfbXNnaGRy KiwgbXNnLAotICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQsIGZsYWdzKQotICAgI2VuZGlm Ci0tICAjaWYgZGVmaW5lZChfX05SX3NlbmRtc2cpCi0rICAjaWYgZGVmaW5lZChfX05SX3NlbmRt c2cpICYmICFkZWZpbmVkKF9fUFBDX18pCi0gICAgIExTU19JTkxJTkUgX3N5c2NhbGwzKHNzaXpl X3QsIHNlbmRtc2csIGludCwgcywgY29uc3Qgc3RydWN0IGtlcm5lbF9tc2doZHIqLAotICAgICAg ICAgICAgICAgICAgICAgICAgICBtc2csIGludCwgZmxhZ3MpCi0gICAjZW5kaWYKLUBAIC00ODg1 LDEzICs0ODg1LDEzIEBAIHN0cnVjdCBrZXJuZWxfc3RhdHggewotICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQsIGZsYWdzLCBjb25zdCBzdHJ1Y3Qga2VybmVsX3NvY2thZGRyKiwgdG8sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwgdG9sZW4pCi0gICAjZW5kaWYK LS0gICNpZiBkZWZpbmVkKF9fTlJfc2h1dGRvd24pCi0rICAjaWYgZGVmaW5lZChfX05SX3NodXRk b3duKSAmJiAhZGVmaW5lZChfX1BQQ19fKQotICAgICBMU1NfSU5MSU5FIF9zeXNjYWxsMihpbnQs IHNodXRkb3duLCBpbnQsIHMsIGludCwgaG93KQotICAgI2VuZGlmCi0tICAjaWYgZGVmaW5lZChf X05SX3NvY2tldCkKLSsgICNpZiBkZWZpbmVkKF9fTlJfc29ja2V0KSAmJiAhZGVmaW5lZChfX1BQ Q19fKQotICAgICBMU1NfSU5MSU5FIF9zeXNjYWxsMyhpbnQsIHNvY2tldCwgaW50LCBkb21haW4s IGludCwgdHlwZSwgaW50LCBwcm90b2NvbCkKLSAgICNlbmRpZgotLSAgI2lmIGRlZmluZWQoX19O Ul9zb2NrZXRwYWlyKQotKyAgI2lmIGRlZmluZWQoX19OUl9zb2NrZXRwYWlyKSAmJiAhZGVmaW5l ZChfX1BQQ19fKQotICAgICBMU1NfSU5MSU5FIF9zeXNjYWxsNChpbnQsIHNvY2tldHBhaXIsIGlu dCwgZCwgaW50LCB0eXBlLCBpbnQsIHByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQqLCBzdikKLSAgICNlbmRpZgotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3BkZml1bS90 aGlyZF9wYXJ0eS9saWJwbmcxNi9wbmdwcml2LmggYi90aGlyZF9wYXJ0eS9wZGZpdW0vdGhpcmRf cGFydHkvbGlicG5nMTYvcG5ncHJpdi5oCi1pbmRleCA1ODNjMjZmLi5lMDNkNjk3IDEwMDY0NAot LS0tIGEvdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2xpYnBuZzE2L3BuZ3ByaXYuaAot KysrIGIvdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2xpYnBuZzE2L3BuZ3ByaXYuaAot QEAgLTE5NiwxMSArMTk2LDcgQEAKLSAjZW5kaWYKLSAKLSAjaWZuZGVmIFBOR19QT1dFUlBDX1ZT WF9PUFQKLS0jICBpZiBkZWZpbmVkKF9fUFBDNjRfXykgJiYgZGVmaW5lZChfX0FMVElWRUNfXykg JiYgZGVmaW5lZChfX1ZTWF9fKQotLSMgICAgIGRlZmluZSBQTkdfUE9XRVJQQ19WU1hfT1BUIDIK LS0jICBlbHNlCi0tIyAgICAgZGVmaW5lIFBOR19QT1dFUlBDX1ZTWF9PUFQgMAotLSMgIGVuZGlm Ci0rIyAgZGVmaW5lIFBOR19QT1dFUlBDX1ZTWF9PUFQgMAotICNlbmRpZgotIAotICNpZm5kZWYg UE5HX0lOVEVMX1NTRV9PUFQKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZm ZnQuYyBiL3RoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5jCi1pbmRleCBiZGFjNGQ3ODQuLjUx ZTBmMmNhYyAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5jCi0rKysg Yi90aGlyZF9wYXJ0eS9wZmZmdC9zcmMvcGZmZnQuYwotQEAgLTEwMCw2ICsxMDAsNyBAQAotICAg IEFsdGl2ZWMgc3VwcG9ydCBtYWNyb3MgCi0gKi8KLSAjaWYgIWRlZmluZWQoUEZGRlRfU0lNRF9E SVNBQkxFKSAmJiAoZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykpCi0rI2lu Y2x1ZGUgPGFsdGl2ZWMuaD4KLSB0eXBlZGVmIHZlY3RvciBmbG9hdCB2NHNmOwotICMgIGRlZmlu ZSBTSU1EX1NaIDQKLSAjICBkZWZpbmUgVlpFUk8oKSAoKHZlY3RvciBmbG9hdCkgdmVjX3NwbGF0 X3U4KDApKQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9u L3NxbGl0ZTMuYyBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMu YwotaW5kZXggNmI0YTc4OTlkLi5iOGM3ZmU0MTQgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9z cWxpdGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKLSsrKyBiL3RoaXJkX3BhcnR5L3NxbGl0 ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYwotQEAgLTE0NDc0LDcgKzE0NDc0LDggQEAgdHlw ZWRlZiBJTlQxNl9UWVBFIExvZ0VzdDsKLSAjIGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBkZWZp bmVkKF9faTM4Nl9fKSAgICAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICAgZGVm aW5lZChfX3g4Nl82NCkgIHx8IGRlZmluZWQoX194ODZfNjRfXykgICAgfHwgZGVmaW5lZChfTV9Y NjQpICB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9BUk0p ICAgICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKLS0gICAgIGRlZmluZWQoX19BUk1F TF9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpCi0rICAg ICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVk KF9NX0FSTTY0KSB8fCAgIFwKLSsgICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllU RV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQotICMgICBkZWZpbmUgU1FMSVRF X0JZVEVPUkRFUiAgICAxMjM0Ci0gIyBlbGlmIGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVk KF9fcHBjX18pIHx8IFwKLSAgICAgICAgZGVmaW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19B QVJDSDY0RUJfXykKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1h dGlvbl9kZXYvc3FsaXRlMy5jIGIvdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25f ZGV2L3NxbGl0ZTMuYwotaW5kZXggZDMwYzliN2RlLi5jZjc1YTY5ZDkgMTAwNjQ0Ci0tLS0gYS90 aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jCi0rKysgYi90 aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5jCi1AQCAtMTQ0 ODcsNyArMTQ0ODcsOCBAQCB0eXBlZGVmIElOVDE2X1RZUEUgTG9nRXN0OwotICMgaWYgZGVmaW5l ZChpMzg2KSAgICAgIHx8IGRlZmluZWQoX19pMzg2X18pICAgICAgfHwgZGVmaW5lZChfTV9JWDg2 KSB8fCAgICBcCi0gICAgICBkZWZpbmVkKF9feDg2XzY0KSAgfHwgZGVmaW5lZChfX3g4Nl82NF9f KSAgICB8fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX01fQU1ENjQp ICB8fCBkZWZpbmVkKF9NX0FSTSkgICAgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAot LSAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVm aW5lZChfTV9BUk02NCkKLSsgICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBkZWZpbmVkKF9fQUFS Q0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpIHx8ICAgXAotKyAgICAgZGVmaW5lZChfX3Bv d2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18p Ci0gIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEyMzQKLSAjIGVsaWYgZGVmaW5lZChz cGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAotICAgICAgICBkZWZpbmVkKF9fQVJN RUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3NxbGl0ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMgYi90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4 dC9ydHJlZS9ydHJlZS5jCi1pbmRleCBmNWI1N2E1ZTIuLjgwYTJkMGFkOCAxMDA2NDQKLS0tLSBh L3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMKLSsrKyBiL3RoaXJkX3Bh cnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVlL3J0cmVlLmMKLUBAIC00NTAsNyArNDUwLDcgQEAgc3Ry dWN0IFJ0cmVlTWF0Y2hBcmcgewotICNpZiBkZWZpbmVkKGkzODYpICAgICB8fCBkZWZpbmVkKF9f aTM4Nl9fKSAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICBkZWZpbmVkKF9feDg2 XzY0KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAot ICAgICBkZWZpbmVkKF9NX0FNRDY0KSB8fCBkZWZpbmVkKF9NX0FSTSkgICAgIHx8IGRlZmluZWQo X194ODYpICAgfHwgICAgXAotLSAgICBkZWZpbmVkKF9fYXJtX18pCi0rICAgIGRlZmluZWQoX19h cm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19P UkRFUl9MSVRUTEVfRU5ESUFOX18pCi0gIyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0 Ci0gI2VsaWYgZGVmaW5lZChzcGFyYykgICAgfHwgZGVmaW5lZChfX3BwY19fKQotICMgZGVmaW5l IFNRTElURV9CWVRFT1JERVIgICAgNDMyMQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3NxbGl0 ZS9zcmMvc3JjL3NxbGl0ZUludC5oIGIvdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRl SW50LmgKLWluZGV4IDI0NTA3MGQ0Zi4uYjI1MTY0ZTk1IDEwMDY0NAotLS0tIGEvdGhpcmRfcGFy dHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgKLSsrKyBiL3RoaXJkX3BhcnR5L3NxbGl0ZS9z cmMvc3JjL3NxbGl0ZUludC5oCi1AQCAtODc3LDcgKzg3Nyw4IEBAIHR5cGVkZWYgSU5UMTZfVFlQ RSBMb2dFc3Q7Ci0gIyBpZiBkZWZpbmVkKGkzODYpICAgICAgfHwgZGVmaW5lZChfX2kzODZfXykg ICAgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKLSAgICAgIGRlZmluZWQoX194ODZfNjQp ICB8fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAot ICAgICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQoX01fQVJNKSAgICAgICAgfHwgZGVm aW5lZChfX3g4NikgICB8fCAgICBcCi0tICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5l ZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KQotKyAgICAgZGVmaW5lZChfX0FS TUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkgfHwg XAotKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19P UkRFUl9MSVRUTEVfRU5ESUFOX18pCi0gIyAgIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDEy MzQKLSAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAot ICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFQl9fKQotZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oIGIvdGhp cmRfcGFydHkvd2VicnRjL3J0Y19iYXNlL3N5c3RlbS9hcmNoLmgKLWluZGV4IGJlMjM2N2I4NS4u YmU0ZWU0MjMzIDEwMDY0NAotLS0tIGEvdGhpcmRfcGFydHkvd2VicnRjL3J0Y19iYXNlL3N5c3Rl bS9hcmNoLmgKLSsrKyBiL3RoaXJkX3BhcnR5L3dlYnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5o Ci1AQCAtNzksNiArNzksMTggQEAKLSAjZWxpZiBkZWZpbmVkKF9fRU1TQ1JJUFRFTl9fKQotICNk ZWZpbmUgV0VCUlRDX0FSQ0hfMzJfQklUUwotICNkZWZpbmUgV0VCUlRDX0FSQ0hfTElUVExFX0VO RElBTgotKyNlbGlmIGRlZmluZWQoX19QUENfXykKLSsjZGVmaW5lIFdFQlJUQ19BUkNIX1BQQ19G QU1JTFkKLSsjaWYgX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18KLSsj ZGVmaW5lIFdFQlJUQ19BUkNIX0xJVFRMRV9FTkRJQU4KLSsjZWxzZQotKyNkZWZpbmUgV0VCUlRD X0FSQ0hfQklHX0VORElBTgotKyNlbmRpZgotKyNpZiBkZWZpbmVkKF9fTFA2NF9fKQotKyNkZWZp bmUgV0VCUlRDX0FSQ0hfNjRfQklUUwotKyNlbHNlCi0rI2RlZmluZSBXRUJSVENfQVJDSF8zMl9C SVRTCi0rI2VuZGlmCi0gI2Vsc2UKLSAjZXJyb3IgUGxlYXNlIGFkZCBzdXBwb3J0IGZvciB5b3Vy IGFyY2hpdGVjdHVyZSBpbiBydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi0gI2VuZGlmCi1kaWZmIC0t Z2l0IGEvdjgvQlVJTEQuZ24gYi92OC9CVUlMRC5nbgotaW5kZXggZjM5NTI5YTNhLi5lODRmYzQ0 OWUgMTAwNjQ0Ci0tLS0gYS92OC9CVUlMRC5nbgotKysrIGIvdjgvQlVJTEQuZ24KLUBAIC04NTAs NiArODUwLDEyIEBAIGNvbmZpZygidG9vbGNoYWluIikgewotICAgICB9Ci0gICAgIGlmIChob3N0 X2J5dGVvcmRlciA9PSAibGl0dGxlIikgewotICAgICAgIGRlZmluZXMgKz0gWyAiVjhfVEFSR0VU X0FSQ0hfUFBDX0xFIiBdCi0rICAgICAgY2ZsYWdzICs9IFsKLSsgICAgICAgICMgRW5hYmxlIHVz YWdlIG9mIEFsdGlWZWMsIFZTWCwgYW5kIG90aGVyIFBPV0VSOCBhbmQgaGlnaGVyIGZlYXR1cmVz Ci0rICAgICAgICAiLW1jcHU9cG93ZXI4IiwKLSsgICAgICAgICItbWFsdGl2ZWMiLAotKyAgICAg ICAgIi1tdnN4IiwKLSsgICAgICBdCi0gICAgIH0gZWxzZSBpZiAoaG9zdF9ieXRlb3JkZXIgPT0g ImJpZyIpIHsKLSAgICAgICBkZWZpbmVzICs9IFsgIlY4X1RBUkdFVF9BUkNIX1BQQ19CRSIgXQot ICAgICAgIGlmIChjdXJyZW50X29zID09ICJhaXgiKSB7Ci0tLS0gYS91aS9nbC9mZWF0dXJlcy5n bmkKLSsrKyBiL3VpL2dsL2ZlYXR1cmVzLmduaQotQEAgLTMzLDUgKzMzLDUgQEAKLSAgICAgICAg aXNfY2hyb21lb3NfYXNoIHx8IGlzX2Z1Y2hzaWEpICYmCi0gICAgICAgKHRhcmdldF9jcHUgPT0g Ing4NiIgfHwgdGFyZ2V0X2NwdSA9PSAieDY0IiB8fCB0YXJnZXRfY3B1ID09ICJhcm0iIHx8Ci0g ICAgICAgIHRhcmdldF9jcHUgPT0gImFybTY0IiB8fCB0YXJnZXRfY3B1ID09ICJtaXBzZWwiIHx8 Ci0tICAgICAgIHRhcmdldF9jcHUgPT0gIm1pcHM2NGVsIiB8fCB0YXJnZXRfY3B1ID09ICJyaXNj djY0IikKLSsgICAgICAgdGFyZ2V0X2NwdSA9PSAibWlwczY0ZWwiIHx8IHRhcmdldF9jcHUgPT0g InJpc2N2NjQiIHx8IHRhcmdldF9jcHUgPT0gInBwYzY0IikKLSB9Ci1kaWZmIC0tZ2l0IGEvdjgv dGVzdC9CVUlMRC5nbiBiL3Y4L3Rlc3QvQlVJTEQuZ24KLWluZGV4IGZiODcyYWQzOS4uNDVmYzU4 NWRkIDEwMDY0NAotLS0tIGEvdjgvdGVzdC9CVUlMRC5nbgotKysrIGIvdjgvdGVzdC9CVUlMRC5n bgotQEAgLTQyLDcgKzQyLDcgQEAgZ3JvdXAoImduX2FsbCIpIHsKLSAgICAgICAiYmVuY2htYXJr cy9jcHA6Z25fYWxsIiwKLSAgICAgICAiY2N0ZXN0OmNjdGVzdCIsCi0gICAgICAgInVuaXR0ZXN0 czpnZW5lcmF0ZS1ieXRlY29kZS1leHBlY3RhdGlvbnMiLAotLSAgICAgICJ1bml0dGVzdHM6dW5p dHRlc3RzIiwKLSsgICAgICAjInVuaXR0ZXN0czp1bml0dGVzdHMiLAotICAgICBdCi0gICB9Ci0g fQotQEAgLTg0LDcgKzg0LDcgQEAKLSAgICAgIm1lc3NhZ2U6djhfbWVzc2FnZSIsCi0gICAgICJt anN1bml0OnY4X21qc3VuaXQiLAotICAgICAibWtncm9rZHVtcDpta2dyb2tkdW1wIiwKLS0gICAg InVuaXR0ZXN0czp1bml0dGVzdHMiLAotKyAgICAjInVuaXR0ZXN0czp1bml0dGVzdHMiLAotICAg ICAid2Via2l0OnY4X3dlYmtpdCIsCi0gICBdCi0gCi1AQCAtMTA5LDcgKzEwOSw3IEBACi0gICAg ICJtZXNzYWdlOnY4X21lc3NhZ2UiLAotICAgICAibWpzdW5pdDp2OF9tanN1bml0IiwKLSAgICAg Im1rZ3Jva2R1bXA6bWtncm9rZHVtcCIsCi0tICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSsg ICAgIyJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSAgIF0KLSAKLSAgIGlmICh2OF9lbmFibGVfd2Vi YXNzZW1ibHkpIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBj NjRsZS1zd2lmdHNoYWRlci5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBj NjRsZS1zd2lmdHNoYWRlci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGY0 NTNmNDkxZDhjLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4 eC1wcGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA QAotLS0tIGEvdGhpcmRfcGFydHkvc3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS0xMC4wL0JV SUxELmduCi0rKysgYi90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEw LjAvQlVJTEQuZ24KLUBAIC01NzQsNiArNTc0LDcgQEAgc3dpZnRzaGFkZXJfbGx2bV9zb3VyY2Vf c2V0KCJzd2lmdHNoYWRlcgotICAgICAibGx2bS9saWIvTUMvTUNBc21JbmZvQ09GRi5jcHAiLAot ICAgICAibGx2bS9saWIvTUMvTUNBc21JbmZvRGFyd2luLmNwcCIsCi0gICAgICJsbHZtL2xpYi9N Qy9NQ0FzbUluZm9FTEYuY3BwIiwKLSsgICAgImxsdm0vbGliL01DL01DQXNtSW5mb1hDT0ZGLmNw cCIsCi0gICAgICJsbHZtL2xpYi9NQy9NQ0FzbU1hY3JvLmNwcCIsCi0gICAgICJsbHZtL2xpYi9N Qy9NQ0FzbVN0cmVhbWVyLmNwcCIsCi0gICAgICJsbHZtL2xpYi9NQy9NQ0Fzc2VtYmxlci5jcHAi LAotQEAgLTYyOSw2ICs2MzAsNyBAQCBzd2lmdHNoYWRlcl9sbHZtX3NvdXJjZV9zZXQoInN3aWZ0 c2hhZGVyCi0gICAgICJsbHZtL2xpYi9NQy9NQ1dpbkNPRkZTdHJlYW1lci5jcHAiLAotICAgICAi bGx2bS9saWIvTUMvTUNXaW5FSC5jcHAiLAotICAgICAibGx2bS9saWIvTUMvTUNYQ09GRlN0cmVh bWVyLmNwcCIsCi0rICAgICJsbHZtL2xpYi9NQy9NQ1hDT0ZGT2JqZWN0VGFyZ2V0V3JpdGVyLmNw cCIsCi0gICAgICJsbHZtL2xpYi9NQy9NYWNoT2JqZWN0V3JpdGVyLmNwcCIsCi0gICAgICJsbHZt L2xpYi9NQy9TdHJpbmdUYWJsZUJ1aWxkZXIuY3BwIiwKLSAgICAgImxsdm0vbGliL01DL1N1YnRh cmdldEZlYXR1cmUuY3BwIiwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUg Yi9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCmluZGV4IDdkZWE4YmJlNTBkMy4uNTBiOWEzYWVj NDA5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Y2hyb21pdW0vdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdj aHJvbWl1bScKIHBrZ25hbWU9Y2hyb21pdW0KICMgU2VlIGh0dHBzOi8vY2hyb21pdW1kYXNoLmFw cHNwb3QuY29tL3JlbGVhc2VzP3BsYXRmb3JtPUxpbnV4IGZvciB0aGUgbGF0ZXN0IHZlcnNpb24K LXZlcnNpb249MTA4LjAuNTM1OS4xMjQKK3ZlcnNpb249MTA5LjAuNTQxNC43NAogcmV2aXNpb249 MQogYXJjaHM9Imk2ODYqIHg4Nl82NCogYWFyY2g2NCogYXJtdjdsKiBwcGM2NGxlKiIKIGhvc3Rt YWtlZGVwZW5kcz0iCkBAIC0yOCw3ICsyOCw3IEBAIG1haW50YWluZXI9IkR1bmNhZW4gPGR1bmNh ZW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJCU0QtMy1DbGF1c2UiCiBob21lcGFnZT0iaHR0 cHM6Ly93d3cuY2hyb21pdW0ub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9jb21tb25kYXRhc3Rv cmFnZS5nb29nbGVhcGlzLmNvbS9jaHJvbWl1bS1icm93c2VyLW9mZmljaWFsLyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kNDhkZmFjMmE2MWIxNGE1ZDdkMmY0NjBiMDli NzBlZjNhYjg4ZTI3YjgyZTMxNzM5MzhjYjU0ZWFhNjEyYTc1CitjaGVja3N1bT1lZGVkMjMzYzI2 YWI2MzFiZTMyNWFkNDljYjMwNmMzMzg1MTNiNmE2NTI4MTk3ZDQyNjUzZTY2MTg3NTQ4ZTVkCiAK IGxpYjMyZGlzYWJsZWQ9eWVzCiAKQEAgLTIyMCw5ICsyMjAsNiBAQCBkb19jb25maWd1cmUoKSB7 CiAKIAkJJ2ljdV91c2VfZGF0YV9maWxlPXRydWUnCiAKLQkJJ3VzZV9hbGxvY2F0b3I9Im5vbmUi JwotCQkndXNlX2FsbG9jYXRvcl9zaGltPWZhbHNlJwotCiAJCSdlbmFibGVfd2lkZXZpbmU9dHJ1 ZScKIAkJJ2VuYWJsZV9oYW5nb3V0X3NlcnZpY2VzX2V4dGVuc2lvbj10cnVlJwogCkBAIC0zMTgs MTMgKzMxNSwxMyBAQCBkb19jb25maWd1cmUoKSB7CiAKIGRvX2J1aWxkKCkgewogCV9zZXR1cF90 b29sY2hhaW4KLQlDQ0FDSEVfU0xPUFBJTkVTUz1pbmNsdWRlX2ZpbGVfbXRpbWUgbmluamEgLUMg b3V0L1JlbGVhc2UgJHttYWtlam9ic30gY2hyb21lIGNocm9tZWRyaXZlciBjaHJvbWVfY3Jhc2hw YWRfaGFuZGxlcgorCUNDQUNIRV9TTE9QUElORVNTPWluY2x1ZGVfZmlsZV9tdGltZSBuaW5qYSAt QyBvdXQvUmVsZWFzZSAke21ha2Vqb2JzfSBjaHJvbWUgY2hyb21lZHJpdmVyLnVuc3RyaXBwZWQg Y2hyb21lX2NyYXNocGFkX2hhbmRsZXIKIH0KIAogZG9faW5zdGFsbCgpIHsKIAl2aW5zdGFsbCBv dXQvUmVsZWFzZS9jaHJvbWUgNzU1IHVzci9saWIvJHtwa2duYW1lfSAke3BrZ25hbWV9CiAJdmlu c3RhbGwgb3V0L1JlbGVhc2UvY2hyb21lX2NyYXNocGFkX2hhbmRsZXIgNzU1IHVzci9saWIvJHtw a2duYW1lfSBjaHJvbWVfY3Jhc2hwYWRfaGFuZGxlcgotCXZpbnN0YWxsIG91dC9SZWxlYXNlL2No cm9tZWRyaXZlciA3NTUgdXNyL2xpYi8ke3BrZ25hbWV9IGNocm9tZWRyaXZlcgorCXZpbnN0YWxs IG91dC9SZWxlYXNlL2Nocm9tZWRyaXZlci51bnN0cmlwcGVkIDc1NSB1c3IvbGliLyR7cGtnbmFt ZX0gY2hyb21lZHJpdmVyCiAJdmluc3RhbGwgb3V0L1JlbGVhc2UvbGliRUdMLnNvIDc1NSB1c3Iv bGliLyR7cGtnbmFtZX0gbGliRUdMLnNvCiAJdmluc3RhbGwgb3V0L1JlbGVhc2UvbGliR0xFU3Yy LnNvIDc1NSB1c3IvbGliLyR7cGtnbmFtZX0gbGliR0xFU3YyLnNvCiAJdmluc3RhbGwgb3V0L1Jl bGVhc2UvbGlidmtfc3dpZnRzaGFkZXIuc28gNzU1IHVzci9saWIvJHtwa2duYW1lfSBsaWJ2a19z d2lmdHNoYWRlci5zbwo= --===============0598293851790158630==--