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=0.7 required=5.0 tests=ALL_TRUSTED,URIBL_BLACK autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 8069 invoked from network); 1 Nov 2023 19:07:23 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 1 Nov 2023 19:07:23 -0000 Content-Type: multipart/mixed; boundary="===============0449472916904316856==" MIME-Version: 1.0 Subject: =?utf8?b?UmU6IFtQUiBQQVRDSF0gW1VwZGF0ZWRdIG11c2wgMS4y?= To: ml@inbox.vuxu.org From: dkwo Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 01 Nov 2023 20:07:23 +0100 List-Id: Message-ID: <20231101190723.hDtizCn49BQdXu6INw_bXzrrz285tyEko1ARluzzh0s@z> GitHub notification mails are now in MIME to allow UTF8. --===============0449472916904316856== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgZGt3byBhZ2FpbnN0IG1hc3RlciBv biB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vZGt3by92 b2lkLXBhY2thZ2VzIG11c2wKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzQzMTA2CgptdXNsIDEuMgpbY2kgc2tpcF0NCg0KLSBJIHRlc3RlZCB0aGUgY2hh bmdlcyBpbiB0aGlzIFBSOiB5ZXMNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5h dGl2ZSBhcmNoaXRlY3R1cmUsICh4ODZfNjQtbXVzbCkNCi0ga2VlcGluZyB0aGUgbGFyZ2UtZmls ZSBwYXRjaCwgZm9yIG5vdw0KLSByZXF1aXJlcyBjaGFuZ2VzIHRvIHhicHMsIGFsb25nIHRoZSBs aW5lcyBvZiBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC94YnBzL3B1bGwvMzMxCgpBIHBh dGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2Vz L3B1bGwvNDMxMDYucGF0Y2ggaXMgYXR0YWNoZWQ= --===============0449472916904316856== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-musl-43106.patch" RnJvbSBhNWMxOTQ0ZjExMDVkZGQwNzY3NzM2NGNlOTMzMjVkNDdhMmEyZDU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBka3dvIDxuaWNvbG9waWF6emFsdW5nYUBnbWFpbC5jb20+CkRh dGU6IFRodSwgMTMgTWF5IDIwMjEgMTM6NTE6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEvM10g bXVzbDogdXBkYXRlIHRvIDEuMi40CgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAtcmVhbGxv Y2FycmF5LnBhdGNoICAgIHwgIDQyIC0tLS0KIC4uLi9wYXRjaGVzLzAwMDEtcmVtb3ZlLU9fTEFS R0VGSUxFLnBhdGNoICAgICB8ICAyNiArKysKIC4uLmlzdF91bmxpbmtfaW5fcHRocmVhZF9leGl0 X2FmdGVyX2FsbC5wYXRjaCB8ICA1NiAtLS0tLQogLi4uaHJlYWRzX21pbnVzXzFfYXNfcmVsYXhl ZF9hdG9taWNfZm9yLnBhdGNoIHwgIDc4IC0tLS0tLS0KIC4uLm93bl9zaXplX29mX3NvbWVfbGli Y19zdHJ1Y3RfbWVtYmVycy5wYXRjaCB8ICAzMCAtLS0KIC4uLnBwaW5nX2Zvcl9wcm9jZXNzZXNf dGhhdF9yZXR1cm5fdG9fcy5wYXRjaCB8IDEwMiAtLS0tLS0tLQogLi4uODhhOWRhNWU3YjI5MjVk ZGExN2EyZDY4MjBkZGRmMWZiMjg3LnBhdGNoIHwgMTM5IC0tLS0tLS0tLS0tCiAuLi4wOThhODg1 ZmVhZTNhZThjMzJiNDA3MzUwZDhjYTg1ZGQxNzgucGF0Y2ggfCAxMTMgLS0tLS0tLS0tCiBzcmNw a2dzL211c2wvcGF0Y2hlcy9DVkUtMjAyMC0yODkyOC5wYXRjaCAgICAgfCAgNjQgLS0tLS0KIHNy Y3BrZ3MvbXVzbC9wYXRjaGVzL2FhcmNoNjQtZnJlZ3MucGF0Y2ggICAgICB8ICAzNyAtLS0KIHNy Y3BrZ3MvbXVzbC9wYXRjaGVzL2FkZC1xc29ydF9yLnBhdGNoICAgICAgICB8IDIwMSAtLS0tLS0t LS0tLS0tLS0tCiAuLi5kLXN1cHBvcnQtZm9yLVNJR0VWX1RIUkVBRF9JRC10aW1lcnMucGF0Y2gg fCAgNzQgLS0tLS0tCiAuLi5ybGltaXQtbWlzYmVoYXZpb3ItYW5kLWhhbmctaW4tdmZvcmsucGF0 Y2ggfCAgNDkgLS0tLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvZXBvbGxfY3AucGF0Y2ggICAgICAg ICAgIHwgIDI4IC0tLQogLi4uL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0xLnBhdGNo ICAgIHwgIDU2IC0tLS0tCiAuLi4vbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTIucGF0 Y2ggICAgfCAgNDggLS0tLQogLi4uL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0zLnBh dGNoICAgIHwgIDI4IC0tLQogLi4uc29uLW9mLWRpZ2l0LXNlcXVlbmNlLXdpdGgtbm9uLnBhdGNo LnBhdGNoIHwgIDM4IC0tLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvZ2V0dGlkLnBhdGNoICAgICAg ICAgICAgIHwgIDQ5IC0tLS0KIC4uLnRseV9pbnN0ZWFkX29mX3VzaW5nX3Byb2Nmc19yZWFkbGlu ay5wYXRjaCB8IDIxOSAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvbXVzbC9wYXRjaGVzL2lz YXNjaWkucGF0Y2ggICAgICAgICAgICB8ICAyMSAtLQogc3JjcGtncy9tdXNsL3BhdGNoZXMvbW9f bG9va3VwLnBhdGNoICAgICAgICAgIHwgIDE5IC0tCiBzcmNwa2dzL211c2wvcGF0Y2hlcy9wcGMt cHRfcmVncy5wYXRjaCAgICAgICAgfCAgMzggLS0tCiBzcmNwa2dzL211c2wvcGF0Y2hlcy9wcGM2 NC1mcHJlZ3NldF90LnBhdGNoICAgfCAgMzEgLS0tCiBzcmNwa2dzL211c2wvcGF0Y2hlcy9wcGNs ZS5wYXRjaCAgICAgICAgICAgICAgfCAgMjQgLS0KIC4uLmluX3JlYWRsaW5rX3N5c2NhbGxfd2l0 aF96ZXJvX2J1ZmZlci5wYXRjaCB8ICA1OSAtLS0tLQogc3JjcGtncy9tdXNsL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICstCiAyOCBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNl cnRpb25zKCspLCAxNjQ4IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv bXVzbC9wYXRjaGVzLzAwLXJlYWxsb2NhcnJheS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDEtcmVtb3ZlLU9fTEFSR0VGSUxFLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMV9yZW9yZGVyX3RocmVhZF9saXN0 X3VubGlua19pbl9wdGhyZWFkX2V4aXRfYWZ0ZXJfYWxsLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMl9kb25fdF91c2VfbGliY190aHJlYWRzX21pbnVz XzFfYXNfcmVsYXhlZF9hdG9taWNfZm9yLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9tdXNsL3BhdGNoZXMvMDAwM19jdXRfZG93bl9zaXplX29mX3NvbWVfbGliY19zdHJ1Y3RfbWVt YmVycy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDRf cmVzdG9yZV9sb2NrX3NraXBwaW5nX2Zvcl9wcm9jZXNzZXNfdGhhdF9yZXR1cm5fdG9fcy5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzLzk4ZTY4OGE5ZGE1ZTdi MjkyNWRkYTE3YTJkNjgyMGRkZGYxZmIyODcucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL211c2wvcGF0Y2hlcy85OWQ1MDk4YTg4NWZlYWUzYWU4YzMyYjQwNzM1MGQ4Y2E4NWRkMTc4 LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvQ1ZFLTIwMjAt Mjg5MjgucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9hYXJj aDY0LWZyZWdzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMv YWRkLXFzb3J0X3IucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hl cy9hZGQtc3VwcG9ydC1mb3ItU0lHRVZfVEhSRUFEX0lELXRpbWVycy5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL2F2b2lkLXNldC1pZC1zZXRybGltaXQtbWlz YmVoYXZpb3ItYW5kLWhhbmctaW4tdmZvcmsucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL211c2wvcGF0Y2hlcy9lcG9sbF9jcC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTEucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgtY29uZC0yLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMy5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1zdHJ2ZXJz Y21wLWNvbXBhcmlzb24tb2YtZGlnaXQtc2VxdWVuY2Utd2l0aC1ub24ucGF0Y2gucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9nZXR0aWQucGF0Y2gKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9pbXBsZW1lbnRfcmVhbHBhdGhfZGly ZWN0bHlfaW5zdGVhZF9vZl91c2luZ19wcm9jZnNfcmVhZGxpbmsucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9pc2FzY2lpLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvbW9fbG9va3VwLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvcHBjLXB0X3JlZ3MucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy9wcGM2NC1mcHJlZ3NldF90LnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXNsL3BhdGNoZXMvcHBjbGUucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL211c2wvcGF0Y2hlcy93b3JrX2Fyb3VuZF9saW51eF9idWdfaW5f cmVhZGxpbmtfc3lzY2FsbF93aXRoX3plcm9fYnVmZmVyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvY29t bW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggOTAzNmE2NzVjMWFlNS4uMTVlZGE0NjAx NTBlNCAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0x Niw3ICsxNiw3IEBACiAjIFBMRUFTRSBOT1RFOiB3aGVuIG11bHRpcGxlIHBhY2thZ2VzIHByb3Zp ZGUgdGhlIHNhbWUgU09OQU1FLCB0aGUgZmlyc3QKICMgb25lIChvcmRlciB0b3AtPmJvdHRvbSkg aXMgcHJlZmVycmVkIG92ZXIgdGhlIG5leHQgb25lcy4KICMKLWxpYmMuc28gbXVzbC0xLjEuMjRf NworbGliYy5zbyBtdXNsLTEuMi4zXzEKIGxpYmMuc28uNiBnbGliYy0yLjM2XzEKIGxpYm0uc28u NiBnbGliYy0yLjM2XzEKIGxpYnB0aHJlYWQuc28uMCBnbGliYy0yLjM2XzEKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwLXJlYWxsb2NhcnJheS5wYXRjaCBiL3NyY3BrZ3MvbXVz bC9wYXRjaGVzLzAwLXJlYWxsb2NhcnJheS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggY2ZhYWIzMzBlODlhZC4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0 Y2hlcy8wMC1yZWFsbG9jYXJyYXkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBA Ci1Gcm9tIDgyMTA4M2FjN2I1NGVhYTA0MGQ1YThkZGM2N2M2MjA2YTE3NWUwY2EgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBcmlhZG5lIENvbmlsbCA8YXJpYWRuZUBkZXJlZmVyZW5j ZWQub3JnPgotRGF0ZTogU2F0LCAxIEF1ZyAyMDIwIDA4OjI2OjM1IC0wNjAwCi1TdWJqZWN0OiBb UEFUQ0hdIGltcGxlbWVudCByZWFsbG9jYXJyYXkKLQotcmVhbGxvY2FycmF5IGlzIGFuIGV4dGVu c2lvbiBpbnRyb2R1Y2VkIGJ5IE9wZW5CU0QsIHdoaWNoIGludHJvZHVjZXMKLWNhbGxvYyBvdmVy ZmxvdyBjaGVja2luZyB0byByZWFsbG9jLgotCi1nbGliYyAyLjI4IGludHJvZHVjZWQgc3VwcG9y dCBmb3IgdGhpcyBmdW5jdGlvbiBiZWhpbmQgX0dOVV9TT1VSQ0UsCi13aGlsZSBnbGliYyAyLjI5 IGFsbG93cyBpdHMgdXNhZ2UgaW4gX0RFRkFVTFRfU09VUkNFLgotCi1kaWZmIC0tZ2l0IGEvaW5j bHVkZS9zdGRsaWIuaCBiL2luY2x1ZGUvc3RkbGliLmgKLWluZGV4IDE5NGMyMDMzLi5iNTRhMDUx ZiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvc3RkbGliLmgKLSsrKyBiL2luY2x1ZGUvc3RkbGliLmgK LUBAIC0xNDUsNiArMTQ1LDcgQEAgaW50IGdldGxvYWRhdmcoZG91YmxlICosIGludCk7Ci0gaW50 IGNsZWFyZW52KHZvaWQpOwotICNkZWZpbmUgV0NPUkVEVU1QKHMpICgocykgJiAweDgwKQotICNk ZWZpbmUgV0lGQ09OVElOVUVEKHMpICgocykgPT0gMHhmZmZmKQotK3ZvaWQgKnJlYWxsb2NhcnJh eSAodm9pZCAqLCBzaXplX3QsIHNpemVfdCk7Ci0gI2VuZGlmCi0gCi0gI2lmZGVmIF9HTlVfU09V UkNFCi1kaWZmIC0tZ2l0IGEvc3JjL21hbGxvYy9yZWFsbG9jYXJyYXkuYyBiL3NyYy9tYWxsb2Mv cmVhbGxvY2FycmF5LmMKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMC4uNGE2 ZWJlNDYKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9tYWxsb2MvcmVhbGxvY2FycmF5LmMKLUBA IC0wLDAgKzEsMTMgQEAKLSsjZGVmaW5lIF9CU0RfU09VUkNFCi0rI2luY2x1ZGUgPGVycm5vLmg+ Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKwotK3ZvaWQgKnJlYWxsb2NhcnJheSh2b2lkICpwdHIs IHNpemVfdCBtLCBzaXplX3QgbikKLSt7Ci0rCWlmIChuICYmIG0gPiAtMSAvIG4pIHsKLSsJCWVy cm5vID0gRU5PTUVNOwotKwkJcmV0dXJuIDA7Ci0rCX0KLSsKLSsJcmV0dXJuIHJlYWxsb2MocHRy LCBtICogbik7Ci0rfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMS1yZW1v dmUtT19MQVJHRUZJTEUucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAxLXJlbW92ZS1P X0xBUkdFRklMRS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw Li4xY2EzNjI2MzY5MWM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMv MDAwMS1yZW1vdmUtT19MQVJHRUZJTEUucGF0Y2gKQEAgLTAsMCArMSwyNiBAQAorRnJvbSA3ZDU1 NGQwYzc4NmY1NDMxYWQzMDM1YTMyODgxNTg5MGE5NWEyOTc5IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogPT9VVEYtOD9xPz1DMz04OXJpY289MjBOb2d1ZWlyYT89IDxlcmljb25yQGRp c3Jvb3Qub3JnPgorRGF0ZTogV2VkLCAxMiBNYXkgMjAyMSAxNzozOToyMCAtMDMwMAorU3ViamVj dDogW1BBVENIXSByZW1vdmUgT19MQVJHRUZJTEUKKwordXNlZnVsIGhhY2sgdG8gYnVpbGQgMS4y LjIgbXVzbCBmb3IgeDg2XzY0IGFuZCBub3QgaGF2ZSB0byByZWJ1aWxkCitmaXJlZm94LgorLS0t CisgYXJjaC9nZW5lcmljL2JpdHMvZmNudGwuaCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2FyY2gvZ2VuZXJpYy9i aXRzL2ZjbnRsLmggYi9hcmNoL2dlbmVyaWMvYml0cy9mY250bC5oCitpbmRleCA3MzBhOThjZi4u YzJmZDE3NjAgMTAwNjQ0CistLS0gYS9hcmNoL2dlbmVyaWMvYml0cy9mY250bC5oCisrKysgYi9h cmNoL2dlbmVyaWMvYml0cy9mY250bC5oCitAQCAtMTMsNyArMTMsNyBAQAorIAorICNkZWZpbmUg T19BU1lOQyAgICAgIDAyMDAwMAorICNkZWZpbmUgT19ESVJFQ1QgICAgIDA0MDAwMAorLSNkZWZp bmUgT19MQVJHRUZJTEUgMDEwMDAwMAorKyNkZWZpbmUgT19MQVJHRUZJTEUgMAorICNkZWZpbmUg T19OT0FUSU1FICAwMTAwMDAwMAorICNkZWZpbmUgT19QQVRIICAgIDAxMDAwMDAwMAorICNkZWZp bmUgT19UTVBGSUxFIDAyMDIwMDAwMAorLS0gCisyLjMxLjEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bXVzbC9wYXRjaGVzLzAwMDFfcmVvcmRlcl90aHJlYWRfbGlzdF91bmxpbmtfaW5fcHRocmVhZF9l eGl0X2FmdGVyX2FsbC5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDFfcmVvcmRlcl90 aHJlYWRfbGlzdF91bmxpbmtfaW5fcHRocmVhZF9leGl0X2FmdGVyX2FsbC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2MxYTU1YmM4NWUzMC4uMDAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAxX3Jlb3JkZXJfdGhyZWFkX2xpc3RfdW5saW5rX2lu X3B0aHJlYWRfZXhpdF9hZnRlcl9hbGwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCww IEBACi0+RnJvbSA0ZDVhYTIwYTk0YTJkM2ZhZTNlNjkyODlkYzIzZWNhZmJkMGMxNmM0IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4 PgotRGF0ZTogRnJpLCAyMiBNYXkgMjAyMCAxNzozNToxNCAtMDQwMAotU3ViamVjdDogW1BBVENI IDEvNF0gcmVvcmRlciB0aHJlYWQgbGlzdCB1bmxpbmsgaW4gcHRocmVhZF9leGl0IGFmdGVyIGFs bAotIGxvY2tzCi0KLXNpbmNlIHRoZSBiYWNrZW5kIGZvciBMT0NLKCkgc2tpcHMgbG9ja2luZyBp ZiBzaW5nbGUtdGhyZWFkZWQsIGl0J3MKLXVuc2FmZSB0byBtYWtlIHRoZSBwcm9jZXNzIGFwcGVh ciBzaW5nbGUtdGhyZWFkZWQgYmVmb3JlIHRoZSBsYXN0IHVzZQotb2YgbG9jay4KLQotdGhpcyBm aXhlcyBwb3RlbnRpYWwgdW5zeW5jaHJvbml6ZWQgYWNjZXNzIHRvIGEgbGlua2VkIGxpc3Qgdmlh Ci1fX2RsX3RocmVhZF9jbGVhbnVwLgotLS0tCi0gc3JjL3RocmVhZC9wdGhyZWFkX2NyZWF0ZS5j IHwgMTkgKysrKysrKysrKystLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25z KCspLCA4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3RocmVhZC9wdGhyZWFkX2Ny ZWF0ZS5jIGIvc3JjL3RocmVhZC9wdGhyZWFkX2NyZWF0ZS5jCi1pbmRleCA1ZjQ5MTA5Mi4uNmEz YjBjMjEgMTAwNjQ0Ci0tLS0gYS9zcmMvdGhyZWFkL3B0aHJlYWRfY3JlYXRlLmMKLSsrKyBiL3Ny Yy90aHJlYWQvcHRocmVhZF9jcmVhdGUuYwotQEAgLTkwLDE0ICs5MCw3IEBAIF9Ob3JldHVybiB2 b2lkIF9fcHRocmVhZF9leGl0KHZvaWQgKnJlc3VsdCkKLSAJCWV4aXQoMCk7Ci0gCX0KLSAKLS0J LyogQXQgdGhpcyBwb2ludCB3ZSBhcmUgY29tbWl0dGVkIHRvIHRocmVhZCB0ZXJtaW5hdGlvbi4g VW5saW5rCi0tCSAqIHRoZSB0aHJlYWQgZnJvbSB0aGUgbGlzdC4gVGhpcyBjaGFuZ2Ugd2lsbCBu b3QgYmUgdmlzaWJsZQotLQkgKiB1bnRpbCB0aGUgbG9jayBpcyByZWxlYXNlZCwgd2hpY2ggb25s eSBoYXBwZW5zIGFmdGVyIFNZU19leGl0Ci0tCSAqIGhhcyBiZWVuIGNhbGxlZCwgdmlhIHRoZSBl eGl0IGZ1dGV4IGFkZHJlc3MgcG9pbnRpbmcgYXQgdGhlIGxvY2suICovCi0tCWxpYmMudGhyZWFk c19taW51c18xLS07Ci0tCXNlbGYtPm5leHQtPnByZXYgPSBzZWxmLT5wcmV2OwotLQlzZWxmLT5w cmV2LT5uZXh0ID0gc2VsZi0+bmV4dDsKLS0Jc2VsZi0+cHJldiA9IHNlbGYtPm5leHQgPSBzZWxm OwotKwkvKiBBdCB0aGlzIHBvaW50IHdlIGFyZSBjb21taXR0ZWQgdG8gdGhyZWFkIHRlcm1pbmF0 aW9uLiAqLwotIAotIAkvKiBQcm9jZXNzIHJvYnVzdCBsaXN0IGluIHVzZXJzcGFjZSB0byBoYW5k bGUgbm9uLXBzaGFyZWQgbXV0ZXhlcwotIAkgKiBhbmQgdGhlIGRldGFjaGVkIHRocmVhZCBjYXNl IHdoZXJlIHRoZSByb2J1c3QgbGlzdCBoZWFkIHdpbGwKLUBAIC0xMjEsNiArMTE0LDE2IEBAIF9O b3JldHVybiB2b2lkIF9fcHRocmVhZF9leGl0KHZvaWQgKnJlc3VsdCkKLSAJX19kb19vcnBoYW5l ZF9zdGRpb19sb2NrcygpOwotIAlfX2RsX3RocmVhZF9jbGVhbnVwKCk7Ci0gCi0rCS8qIExhc3Qs IHVubGluayB0aHJlYWQgZnJvbSB0aGUgbGlzdC4gVGhpcyBjaGFuZ2Ugd2lsbCBub3QgYmUgdmlz aWJsZQotKwkgKiB1bnRpbCB0aGUgbG9jayBpcyByZWxlYXNlZCwgd2hpY2ggb25seSBoYXBwZW5z IGFmdGVyIFNZU19leGl0Ci0rCSAqIGhhcyBiZWVuIGNhbGxlZCwgdmlhIHRoZSBleGl0IGZ1dGV4 IGFkZHJlc3MgcG9pbnRpbmcgYXQgdGhlIGxvY2suCi0rCSAqIFRoaXMgbmVlZHMgdG8gaGFwcGVu IGFmdGVyIGFueSBwb3NzaWJsZSBjYWxscyB0byBMT0NLKCkgdGhhdCBtaWdodAotKwkgKiBza2lw IGxvY2tpbmcgaWYgbGliYy50aHJlYWRzX21pbnVzXzEgaXMgemVyby4gKi8KLSsJbGliYy50aHJl YWRzX21pbnVzXzEtLTsKLSsJc2VsZi0+bmV4dC0+cHJldiA9IHNlbGYtPnByZXY7Ci0rCXNlbGYt PnByZXYtPm5leHQgPSBzZWxmLT5uZXh0OwotKwlzZWxmLT5wcmV2ID0gc2VsZi0+bmV4dCA9IHNl bGY7Ci0rCi0gCS8qIFRoaXMgYXRvbWljIHBvdGVudGlhbGx5IGNvbXBldGVzIHdpdGggYSBjb25j dXJyZW50IHB0aHJlYWRfZGV0YWNoCi0gCSAqIGNhbGw7IHRoZSBsb3NlciBpcyByZXNwb25zaWJs ZSBmb3IgZnJlZWluZyB0aHJlYWQgcmVzb3VyY2VzLiAqLwotIAlpbnQgc3RhdGUgPSBhX2Nhcygm c2VsZi0+ZGV0YWNoX3N0YXRlLCBEVF9KT0lOQUJMRSwgRFRfRVhJVElORyk7Ci0tLSAKLTIuMjEu MAotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy8wMDAyX2Rvbl90X3VzZV9saWJj X3RocmVhZHNfbWludXNfMV9hc19yZWxheGVkX2F0b21pY19mb3IucGF0Y2ggYi9zcmNwa2dzL211 c2wvcGF0Y2hlcy8wMDAyX2Rvbl90X3VzZV9saWJjX3RocmVhZHNfbWludXNfMV9hc19yZWxheGVk X2F0b21pY19mb3IucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwNjA3NjJl OTlhNjIuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwMl9kb25f dF91c2VfbGliY190aHJlYWRzX21pbnVzXzFfYXNfcmVsYXhlZF9hdG9taWNfZm9yLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsNzggKzAsMCBAQAotPkZyb20gZTAxYjU5MzliMzhhZWE1ZWNiZTQx NjcwNjQzMTk5ODI1ODc0YjI2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJpY2gg RmVsa2VyIDxkYWxpYXNAYWVyaWZhbC5jeD4KLURhdGU6IFRodSwgMjEgTWF5IDIwMjAgMjM6MzI6 NDUgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSCAyLzRdIGRvbid0IHVzZSBsaWJjLnRocmVhZHNfbWlu dXNfMSBhcyByZWxheGVkIGF0b21pYyBmb3IKLSBza2lwcGluZyBsb2NrcwotCi1hZnRlciBhbGwg YnV0IHRoZSBsYXN0IHRocmVhZCBleGl0cywgdGhlIG5leHQgdGhyZWFkIHRvIG9ic2VydmUKLWxp YmMudGhyZWFkc19taW51c18xPT0wIGFuZCBjb25jbHVkZSB0aGF0IGl0IGNhbiBza2lwIGxvY2tp bmcgZmFpbHMgdG8KLXN5bmNocm9uaXplIHdpdGggYW55IGNoYW5nZXMgdG8gbWVtb3J5IHRoYXQg d2VyZSBtYWRlIGJ5IHRoZQotbGFzdC1leGl0aW5nIHRocmVhZC4gdGhpcyBjYW4gcHJvZHVjZSBk YXRhIHJhY2VzLgotCi1vbiBzb21lIGFyY2hzLCBhdCBsZWFzdCB4ODYsIG1lbW9yeSBzeW5jaHJv bml6YXRpb24gaXMgdW5saWtlbHkgdG8gYmUKLWEgcHJvYmxlbTsgaG93ZXZlciwgd2l0aCB0aGUg aW5saW5lIGxvY2tzIGluIG1hbGxvYywgc2tpcHBpbmcgdGhlIGxvY2sKLWFsc28gZWxpbWluYXRl ZCB0aGUgY29tcGlsZXIgYmFycmllciwgYW5kIGNhdXNlZCBjb2RlIHRoYXQgbmVlZGVkIHRvCi1y ZS1jaGVjayBjaHVuayBpbi11c2UgYml0cyBhZnRlciBvYnRhaW5pbmcgdGhlIGxvY2sgdG8gcmV1 c2UgYSBzdGFsZQotdmFsdWUsIHBvc3NpYmx5IGZyb20gYmVmb3JlIHRoZSBwcm9jZXNzIGJlY2Ft ZSBzaW5nbGUtdGhyZWFkZWQuIHRoaXMKLWluIHR1cm4gcHJvZHVjZWQgY29ycnVwdGlvbiBvZiB0 aGUgaGVhcCBzdGF0ZS4KLQotc29tZSB1c2VzIG9mIGxpYmMudGhyZWFkc19taW51c18xIHJlbWFp biwgZXNwZWNpYWxseSBmb3IgYWxsb2NhdGlvbiBvZgotbmV3IFRMUyBpbiB0aGUgZHluYW1pYyBs aW5rZXI7IG90aGVyd2lzZSwgaXQgY291bGQgYmUgcmVtb3ZlZAotZW50aXJlbHkuIGl0J3MgbWFk ZSBub24tdm9sYXRpbGUgdG8gcmVmbGVjdCB0aGF0IHRoZSByZW1haW5pbmcKLWFjY2Vzc2VzIGFy ZSBvbmx5IG1hZGUgdW5kZXIgbG9jayBvbiB0aGUgdGhyZWFkIGxpc3QuCi0KLWluc3RlYWQgb2Yg bGliYy50aHJlYWRzX21pbnVzXzEsIGxpYmMudGhyZWFkZWQgaXMgbm93IHVzZWQgZm9yCi1za2lw cGluZyBsb2Nrcy4gdGhlIGRpZmZlcmVuY2UgaXMgdGhhdCBsaWJjLnRocmVhZGVkIGlzIHBlcm1h bmVudGx5Ci10cnVlIG9uY2UgYW4gYWRkaXRpb25hbCB0aHJlYWQgaGFzIGJlZW4gY3JlYXRlZC4g dGhpcyB3aWxsIHByb2R1Y2UKLXNvbWUgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiBpbiBwcm9jZXNz ZXMgdGhhdCBhcmUgbW9zdGx5Ci1zaW5nbGUtdGhyZWFkZWQgYnV0IG9jY2FzaW9uYWxseSBjcmVh dGluZyB0aHJlYWRzLiBpbiB0aGUgZnV0dXJlIGl0Ci1tYXkgYmUgcG9zc2libGUgdG8gYnJpbmcg YmFjayB0aGUgZnVsbCBsb2NrLXNraXBwaW5nLCBidXQgbW9yZSBjYXJlCi1uZWVkcyB0byBiZSB0 YWtlbiB0byBwcm9kdWNlIGEgc2FmZSBkZXNpZ24uCi0tLS0KLSBzcmMvaW50ZXJuYWwvbGliYy5o IHwgMiArLQotIHNyYy9tYWxsb2MvbWFsbG9jLmMgfCAyICstCi0gc3JjL3RocmVhZC9fX2xvY2su YyB8IDIgKy0KLSAzIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL3NyYy9pbnRlcm5hbC9saWJjLmggYi9zcmMvaW50ZXJuYWwvbGli Yy5oCi1pbmRleCBhYzk3ZGM3ZS4uYzA2MTQ4NTIgMTAwNjQ0Ci0tLS0gYS9zcmMvaW50ZXJuYWwv bGliYy5oCi0rKysgYi9zcmMvaW50ZXJuYWwvbGliYy5oCi1AQCAtMjEsNyArMjEsNyBAQCBzdHJ1 Y3QgX19saWJjIHsKLSAJaW50IGNhbl9kb190aHJlYWRzOwotIAlpbnQgdGhyZWFkZWQ7Ci0gCWlu dCBzZWN1cmU7Ci0tCXZvbGF0aWxlIGludCB0aHJlYWRzX21pbnVzXzE7Ci0rCWludCB0aHJlYWRz X21pbnVzXzE7Ci0gCXNpemVfdCAqYXV4djsKLSAJc3RydWN0IHRsc19tb2R1bGUgKnRsc19oZWFk OwotIAlzaXplX3QgdGxzX3NpemUsIHRsc19hbGlnbiwgdGxzX2NudDsKLWRpZmYgLS1naXQgYS9z cmMvbWFsbG9jL21hbGxvYy5jIGIvc3JjL21hbGxvYy9tYWxsb2MuYwotaW5kZXggOTY5ODI1OTYu LjI1NTNhNjJlIDEwMDY0NAotLS0tIGEvc3JjL21hbGxvYy9tYWxsb2MuYwotKysrIGIvc3JjL21h bGxvYy9tYWxsb2MuYwotQEAgLTI2LDcgKzI2LDcgQEAgaW50IF9fbWFsbG9jX3JlcGxhY2VkOwot IAotIHN0YXRpYyBpbmxpbmUgdm9pZCBsb2NrKHZvbGF0aWxlIGludCAqbGspCi0gewotLQlpZiAo bGliYy50aHJlYWRzX21pbnVzXzEpCi0rCWlmIChsaWJjLnRocmVhZGVkKQotIAkJd2hpbGUoYV9z d2FwKGxrLCAxKSkgX193YWl0KGxrLCBsaysxLCAxLCAxKTsKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEv c3JjL3RocmVhZC9fX2xvY2suYyBiL3NyYy90aHJlYWQvX19sb2NrLmMKLWluZGV4IDQ1NTU3Yzg4 Li41YjliMTQ0ZSAxMDA2NDQKLS0tLSBhL3NyYy90aHJlYWQvX19sb2NrLmMKLSsrKyBiL3NyYy90 aHJlYWQvX19sb2NrLmMKLUBAIC0xOCw3ICsxOCw3IEBACi0gCi0gdm9pZCBfX2xvY2sodm9sYXRp bGUgaW50ICpsKQotIHsKLS0JaWYgKCFsaWJjLnRocmVhZHNfbWludXNfMSkgcmV0dXJuOwotKwlp ZiAoIWxpYmMudGhyZWFkZWQpIHJldHVybjsKLSAJLyogZmFzdCBwYXRoOiBJTlRfTUlOIGZvciB0 aGUgbG9jaywgKzEgZm9yIHRoZSBjb25nZXN0aW9uICovCi0gCWludCBjdXJyZW50ID0gYV9jYXMo bCwgMCwgSU5UX01JTiArIDEpOwotIAlpZiAoIWN1cnJlbnQpIHJldHVybjsKLS0tIAotMi4yMS4w Ci0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDNfY3V0X2Rvd25fc2l6ZV9v Zl9zb21lX2xpYmNfc3RydWN0X21lbWJlcnMucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy8w MDAzX2N1dF9kb3duX3NpemVfb2Zfc29tZV9saWJjX3N0cnVjdF9tZW1iZXJzLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDBjNWQ5NTAxOTU3Li4wMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzAwMDNfY3V0X2Rvd25fc2l6ZV9vZl9zb21lX2xpYmNf c3RydWN0X21lbWJlcnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi0+RnJv bSBmMTI4ODhlOWViOWVlZDYwY2MyNjZiODk5ZGNhZmVjYjQ3NTI5NjRhIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4PgotRGF0ZTog RnJpLCAyMiBNYXkgMjAyMCAxNzoyNTozOCAtMDQwMAotU3ViamVjdDogW1BBVENIIDMvNF0gY3V0 IGRvd24gc2l6ZSBvZiBzb21lIGxpYmMgc3RydWN0IG1lbWJlcnMKLQotdGhlc2UgYXJlIGFsbCBm bGFncyB0aGF0IGNhbiBiZSBzaW5nbGUtYnl0ZSB2YWx1ZXMuCi0tLS0KLSBzcmMvaW50ZXJuYWwv bGliYy5oIHwgNiArKystLS0KLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2ludGVybmFsL2xpYmMuaCBiL3NyYy9pbnRl cm5hbC9saWJjLmgKLWluZGV4IGMwNjE0ODUyLi5kNDdmNThlMCAxMDA2NDQKLS0tLSBhL3NyYy9p bnRlcm5hbC9saWJjLmgKLSsrKyBiL3NyYy9pbnRlcm5hbC9saWJjLmgKLUBAIC0xOCw5ICsxOCw5 IEBAIHN0cnVjdCB0bHNfbW9kdWxlIHsKLSB9OwotIAotIHN0cnVjdCBfX2xpYmMgewotLQlpbnQg Y2FuX2RvX3RocmVhZHM7Ci0tCWludCB0aHJlYWRlZDsKLS0JaW50IHNlY3VyZTsKLSsJY2hhciBj YW5fZG9fdGhyZWFkczsKLSsJY2hhciB0aHJlYWRlZDsKLSsJY2hhciBzZWN1cmU7Ci0gCWludCB0 aHJlYWRzX21pbnVzXzE7Ci0gCXNpemVfdCAqYXV4djsKLSAJc3RydWN0IHRsc19tb2R1bGUgKnRs c19oZWFkOwotLS0gCi0yLjIxLjAKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMv MDAwNF9yZXN0b3JlX2xvY2tfc2tpcHBpbmdfZm9yX3Byb2Nlc3Nlc190aGF0X3JldHVybl90b19z LnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvMDAwNF9yZXN0b3JlX2xvY2tfc2tpcHBpbmdf Zm9yX3Byb2Nlc3Nlc190aGF0X3JldHVybl90b19zLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBlNzAzYzFmNDAzYzU5Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVz bC9wYXRjaGVzLzAwMDRfcmVzdG9yZV9sb2NrX3NraXBwaW5nX2Zvcl9wcm9jZXNzZXNfdGhhdF9y ZXR1cm5fdG9fcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMiArMCwwIEBACi0+RnJvbSA4 ZDgxYmE4YzBiYzZmZTMxMTM2Y2IxNWM5YzgyZWY0YzI0OTY1MDQwIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4PgotRGF0ZTogRnJp LCAyMiBNYXkgMjAyMCAxNzo0NTo0NyAtMDQwMAotU3ViamVjdDogW1BBVENIIDQvNF0gcmVzdG9y ZSBsb2NrLXNraXBwaW5nIGZvciBwcm9jZXNzZXMgdGhhdCByZXR1cm4gdG8KLSBzaW5nbGUtdGhy ZWFkZWQgc3RhdGUKLQotdGhlIGRlc2lnbiB1c2VkIGhlcmUgcmVsaWVzIG9uIHRoZSBiYXJyaWVy IHByb3ZpZGVkIGJ5IHRoZSBmaXJzdCBsb2NrCi1vcGVyYXRpb24gYWZ0ZXIgdGhlIHByb2Nlc3Mg cmV0dXJucyB0byBzaW5nbGUtdGhyZWFkZWQgc3RhdGUgdG8KLXN5bmNocm9uaXplIHdpdGggYWN0 aW9ucyBieSB0aGUgbGFzdCB0aHJlYWQgdGhhdCBleGl0ZWQuIGJ5IHN0b3JpbmcKLXRoZSBpbnRl bnQgdG8gY2hhbmdlIG1vZGVzIGluIHRoZSBzYW1lIG9iamVjdCB1c2VkIHRvIGRldGVjdCB3aGV0 aGVyCi1sb2NraW5nIGlzIG5lZWRlZCwgaXQncyBwb3NzaWJsZSB0byBhdm9pZCBhbiBleHRyYSAo cG9zc2libHkgY29zdGx5KQotbWVtb3J5IGxvYWQgYWZ0ZXIgdGhlIGxvY2sgaXMgdGFrZW4uCi0t LS0KLSBzcmMvaW50ZXJuYWwvbGliYy5oICAgICAgICAgfCAxICsKLSBzcmMvbWFsbG9jL21hbGxv Yy5jICAgICAgICAgfCA1ICsrKystCi0gc3JjL3RocmVhZC9fX2xvY2suYyAgICAgICAgIHwgNCAr KystCi0gc3JjL3RocmVhZC9wdGhyZWFkX2NyZWF0ZS5jIHwgOCArKysrLS0tLQotIDQgZmlsZXMg Y2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L3NyYy9pbnRlcm5hbC9saWJjLmggYi9zcmMvaW50ZXJuYWwvbGliYy5oCi1pbmRleCBkNDdmNThl MC4uNjE5YmJhODYgMTAwNjQ0Ci0tLS0gYS9zcmMvaW50ZXJuYWwvbGliYy5oCi0rKysgYi9zcmMv aW50ZXJuYWwvbGliYy5oCi1AQCAtMjEsNiArMjEsNyBAQCBzdHJ1Y3QgX19saWJjIHsKLSAJY2hh ciBjYW5fZG9fdGhyZWFkczsKLSAJY2hhciB0aHJlYWRlZDsKLSAJY2hhciBzZWN1cmU7Ci0rCXZv bGF0aWxlIHNpZ25lZCBjaGFyIG5lZWRfbG9ja3M7Ci0gCWludCB0aHJlYWRzX21pbnVzXzE7Ci0g CXNpemVfdCAqYXV4djsKLSAJc3RydWN0IHRsc19tb2R1bGUgKnRsc19oZWFkOwotZGlmZiAtLWdp dCBhL3NyYy9tYWxsb2MvbWFsbG9jLmMgYi9zcmMvbWFsbG9jL21hbGxvYy5jCi1pbmRleCAyNTUz YTYyZS4uYTgwM2Q0YzkgMTAwNjQ0Ci0tLS0gYS9zcmMvbWFsbG9jL21hbGxvYy5jCi0rKysgYi9z cmMvbWFsbG9jL21hbGxvYy5jCi1AQCAtMjYsOCArMjYsMTEgQEAgaW50IF9fbWFsbG9jX3JlcGxh Y2VkOwotIAotIHN0YXRpYyBpbmxpbmUgdm9pZCBsb2NrKHZvbGF0aWxlIGludCAqbGspCi0gewot LQlpZiAobGliYy50aHJlYWRlZCkKLSsJaW50IG5lZWRfbG9ja3MgPSBsaWJjLm5lZWRfbG9ja3M7 Ci0rCWlmIChuZWVkX2xvY2tzKSB7Ci0gCQl3aGlsZShhX3N3YXAobGssIDEpKSBfX3dhaXQobGss IGxrKzEsIDEsIDEpOwotKwkJaWYgKG5lZWRfbG9ja3MgPCAwKSBsaWJjLm5lZWRfbG9ja3MgPSAw OwotKwl9Ci0gfQotIAotIHN0YXRpYyBpbmxpbmUgdm9pZCB1bmxvY2sodm9sYXRpbGUgaW50ICps aykKLWRpZmYgLS1naXQgYS9zcmMvdGhyZWFkL19fbG9jay5jIGIvc3JjL3RocmVhZC9fX2xvY2su YwotaW5kZXggNWI5YjE0NGUuLjYwZWVjZTQ5IDEwMDY0NAotLS0tIGEvc3JjL3RocmVhZC9fX2xv Y2suYwotKysrIGIvc3JjL3RocmVhZC9fX2xvY2suYwotQEAgLTE4LDkgKzE4LDExIEBACi0gCi0g dm9pZCBfX2xvY2sodm9sYXRpbGUgaW50ICpsKQotIHsKLS0JaWYgKCFsaWJjLnRocmVhZGVkKSBy ZXR1cm47Ci0rCWludCBuZWVkX2xvY2tzID0gbGliYy5uZWVkX2xvY2tzOwotKwlpZiAoIW5lZWRf bG9ja3MpIHJldHVybjsKLSAJLyogZmFzdCBwYXRoOiBJTlRfTUlOIGZvciB0aGUgbG9jaywgKzEg Zm9yIHRoZSBjb25nZXN0aW9uICovCi0gCWludCBjdXJyZW50ID0gYV9jYXMobCwgMCwgSU5UX01J TiArIDEpOwotKwlpZiAobmVlZF9sb2NrcyA8IDApIGxpYmMubmVlZF9sb2NrcyA9IDA7Ci0gCWlm ICghY3VycmVudCkgcmV0dXJuOwotIAkvKiBBIGZpcnN0IHNwaW4gbG9vcCwgZm9yIG1lZGl1bSBj b25nZXN0aW9uLiAqLwotIAlmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTA7ICsraSkgewotZGlm ZiAtLWdpdCBhL3NyYy90aHJlYWQvcHRocmVhZF9jcmVhdGUuYyBiL3NyYy90aHJlYWQvcHRocmVh ZF9jcmVhdGUuYwotaW5kZXggNmEzYjBjMjEuLjZiZGZiNDRmIDEwMDY0NAotLS0tIGEvc3JjL3Ro cmVhZC9wdGhyZWFkX2NyZWF0ZS5jCi0rKysgYi9zcmMvdGhyZWFkL3B0aHJlYWRfY3JlYXRlLmMK LUBAIC0xMTgsOCArMTE4LDggQEAgX05vcmV0dXJuIHZvaWQgX19wdGhyZWFkX2V4aXQodm9pZCAq cmVzdWx0KQotIAkgKiB1bnRpbCB0aGUgbG9jayBpcyByZWxlYXNlZCwgd2hpY2ggb25seSBoYXBw ZW5zIGFmdGVyIFNZU19leGl0Ci0gCSAqIGhhcyBiZWVuIGNhbGxlZCwgdmlhIHRoZSBleGl0IGZ1 dGV4IGFkZHJlc3MgcG9pbnRpbmcgYXQgdGhlIGxvY2suCi0gCSAqIFRoaXMgbmVlZHMgdG8gaGFw cGVuIGFmdGVyIGFueSBwb3NzaWJsZSBjYWxscyB0byBMT0NLKCkgdGhhdCBtaWdodAotLQkgKiBz a2lwIGxvY2tpbmcgaWYgbGliYy50aHJlYWRzX21pbnVzXzEgaXMgemVyby4gKi8KLS0JbGliYy50 aHJlYWRzX21pbnVzXzEtLTsKLSsJICogc2tpcCBsb2NraW5nIGlmIHByb2Nlc3MgYXBwZWFycyBz aW5nbGUtdGhyZWFkZWQuICovCi0rCWlmICghLS1saWJjLnRocmVhZHNfbWludXNfMSkgbGliYy5u ZWVkX2xvY2tzID0gLTE7Ci0gCXNlbGYtPm5leHQtPnByZXYgPSBzZWxmLT5wcmV2OwotIAlzZWxm LT5wcmV2LT5uZXh0ID0gc2VsZi0+bmV4dDsKLSAJc2VsZi0+cHJldiA9IHNlbGYtPm5leHQgPSBz ZWxmOwotQEAgLTMzOSw3ICszMzksNyBAQCBpbnQgX19wdGhyZWFkX2NyZWF0ZShwdGhyZWFkX3Qg KnJlc3RyaWN0IHJlcywgY29uc3QgcHRocmVhZF9hdHRyX3QgKnJlc3RyaWN0IGF0dAotIAkJfigx VUw8PCgoU0lHQ0FOQ0VMLTEpJSg4KnNpemVvZihsb25nKSkpKTsKLSAKLSAJX190bF9sb2NrKCk7 Ci0tCWxpYmMudGhyZWFkc19taW51c18xKys7Ci0rCWlmICghbGliYy50aHJlYWRzX21pbnVzXzEr KykgbGliYy5uZWVkX2xvY2tzID0gMTsKLSAJcmV0ID0gX19jbG9uZSgoYzExID8gc3RhcnRfYzEx IDogc3RhcnQpLCBzdGFjaywgZmxhZ3MsIGFyZ3MsICZuZXctPnRpZCwgVFBfQURKKG5ldyksICZf X3RocmVhZF9saXN0X2xvY2spOwotIAotIAkvKiBBbGwgY2xvbmUgZmFpbHVyZXMgdHJhbnNsYXRl IHRvIEVBR0FJTi4gSWYgZXhwbGljaXQgc2NoZWR1bGluZwotQEAgLTM2Myw3ICszNjMsNyBAQCBp bnQgX19wdGhyZWFkX2NyZWF0ZShwdGhyZWFkX3QgKnJlc3RyaWN0IHJlcywgY29uc3QgcHRocmVh ZF9hdHRyX3QgKnJlc3RyaWN0IGF0dAotIAkJbmV3LT5uZXh0LT5wcmV2ID0gbmV3OwotIAkJbmV3 LT5wcmV2LT5uZXh0ID0gbmV3OwotIAl9IGVsc2UgewotLQkJbGliYy50aHJlYWRzX21pbnVzXzEt LTsKLSsJCWlmICghLS1saWJjLnRocmVhZHNfbWludXNfMSkgbGliYy5uZWVkX2xvY2tzID0gMDsK LSAJfQotIAlfX3RsX3VubG9jaygpOwotIAlfX3Jlc3RvcmVfc2lncygmc2V0KTsKLS0tIAotMi4y MS4wCi0KLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvOThlNjg4YTlkYTVlN2Iy OTI1ZGRhMTdhMmQ2ODIwZGRkZjFmYjI4Ny5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzk4 ZTY4OGE5ZGE1ZTdiMjkyNWRkYTE3YTJkNjgyMGRkZGYxZmIyODcucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGE4YmZhNjZkNmM0N2QuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9tdXNsL3BhdGNoZXMvOThlNjg4YTlkYTVlN2IyOTI1ZGRhMTdhMmQ2ODIwZGRkZjFmYjI4 Ny5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCwwIEBACi1Gcm9tIDk4ZTY4OGE5ZGE1 ZTdiMjkyNWRkYTE3YTJkNjgyMGRkZGYxZmIyODcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBJc21hZWwgTHVjZW5vIDxpc21hZWxAaW9kZXYuY28udWs+Ci1EYXRlOiBTdW4sIDE1IEF1 ZyAyMDIxIDE3OjUxOjU3ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGRlZmluZSBOVUxMIGFzIG51 bGxwdHIgd2hlbiB1c2VkIGluIEMrKzExIG9yIGxhdGVyCi0KLVRoaXMgc2hvdWxkIGJlIHNhZmVy IGZvciBjYXN0aW5nIGFuZCBtb3JlIGNvbXBhdGlibGUgd2l0aCBleGlzdGluZyBjb2RlCi1iYXNl cyB0aGF0IHdyb25nbHkgYXNzdW1lIGl0IG11c3QgYmUgZGVmaW5lZCBhcyBhIHBvaW50ZXIuCi0t LS0KLSBpbmNsdWRlL2xvY2FsZS5oIHwgNCArKystCi0gaW5jbHVkZS9zdGRkZWYuaCB8IDQgKysr LQotIGluY2x1ZGUvc3RkaW8uaCAgfCA0ICsrKy0KLSBpbmNsdWRlL3N0ZGxpYi5oIHwgNCArKyst Ci0gaW5jbHVkZS9zdHJpbmcuaCB8IDQgKysrLQotIGluY2x1ZGUvdGltZS5oICAgfCA0ICsrKy0K LSBpbmNsdWRlL3VuaXN0ZC5oIHwgNCArKystCi0gaW5jbHVkZS93Y2hhci5oICB8IDQgKysrLQot IDggZmlsZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbG9jYWxlLmggYi9pbmNsdWRlL2xvY2FsZS5oCi1pbmRleCBjZTM4 NDM4MWMuLjExMTA2ZmVhOCAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvbG9jYWxlLmgKLSsrKyBiL2lu Y2x1ZGUvbG9jYWxlLmgKLUBAIC03LDcgKzcsOSBAQCBleHRlcm4gIkMiIHsKLSAKLSAjaW5jbHVk ZSA8ZmVhdHVyZXMuaD4KLSAKLS0jaWZkZWYgX19jcGx1c3BsdXMKLSsjaWYgX19jcGx1c3BsdXMg Pj0gMjAxMTAzTAotKyNkZWZpbmUgTlVMTCBudWxscHRyCi0rI2VsaWYgZGVmaW5lZChfX2NwbHVz cGx1cykKLSAjZGVmaW5lIE5VTEwgMEwKLSAjZWxzZQotICNkZWZpbmUgTlVMTCAoKHZvaWQqKTAp Ci1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9zdGRkZWYuaCBiL2luY2x1ZGUvc3RkZGVmLmgKLWluZGV4 IGJkNzUzODUzNS4uZjI1Yjg2Mzk2IDEwMDY0NAotLS0tIGEvaW5jbHVkZS9zdGRkZWYuaAotKysr IGIvaW5jbHVkZS9zdGRkZWYuaAotQEAgLTEsNyArMSw5IEBACi0gI2lmbmRlZiBfU1REREVGX0gK LSAjZGVmaW5lIF9TVERERUZfSAotIAotLSNpZmRlZiBfX2NwbHVzcGx1cwotKyNpZiBfX2NwbHVz cGx1cyA+PSAyMDExMDNMCi0rI2RlZmluZSBOVUxMIG51bGxwdHIKLSsjZWxpZiBkZWZpbmVkKF9f Y3BsdXNwbHVzKQotICNkZWZpbmUgTlVMTCAwTAotICNlbHNlCi0gI2RlZmluZSBOVUxMICgodm9p ZCopMCkKLWRpZmYgLS1naXQgYS9pbmNsdWRlL3N0ZGlvLmggYi9pbmNsdWRlL3N0ZGlvLmgKLWlu ZGV4IDM2MDQxOThjMy4uZDFlZDAxZjAzIDEwMDY0NAotLS0tIGEvaW5jbHVkZS9zdGRpby5oCi0r KysgYi9pbmNsdWRlL3N0ZGlvLmgKLUBAIC0yNSw3ICsyNSw5IEBAIGV4dGVybiAiQyIgewotIAot ICNpbmNsdWRlIDxiaXRzL2FsbHR5cGVzLmg+Ci0gCi0tI2lmZGVmIF9fY3BsdXNwbHVzCi0rI2lm IF9fY3BsdXNwbHVzID49IDIwMTEwM0wKLSsjZGVmaW5lIE5VTEwgbnVsbHB0cgotKyNlbGlmIGRl ZmluZWQoX19jcGx1c3BsdXMpCi0gI2RlZmluZSBOVUxMIDBMCi0gI2Vsc2UKLSAjZGVmaW5lIE5V TEwgKCh2b2lkKikwKQotZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3RkbGliLmggYi9pbmNsdWRlL3N0 ZGxpYi5oCi1pbmRleCA3YWY4NmUzYmMuLmI1MDdjYTMzYiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUv c3RkbGliLmgKLSsrKyBiL2luY2x1ZGUvc3RkbGliLmgKLUBAIC03LDcgKzcsOSBAQCBleHRlcm4g IkMiIHsKLSAKLSAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLSAKLS0jaWZkZWYgX19jcGx1c3BsdXMK LSsjaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAotKyNkZWZpbmUgTlVMTCBudWxscHRyCi0rI2Vs aWYgZGVmaW5lZChfX2NwbHVzcGx1cykKLSAjZGVmaW5lIE5VTEwgMEwKLSAjZWxzZQotICNkZWZp bmUgTlVMTCAoKHZvaWQqKTApCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9zdHJpbmcuaCBiL2luY2x1 ZGUvc3RyaW5nLmgKLWluZGV4IDc5NWEyYWJjZC4uNDNhZDA5NDJlIDEwMDY0NAotLS0tIGEvaW5j bHVkZS9zdHJpbmcuaAotKysrIGIvaW5jbHVkZS9zdHJpbmcuaAotQEAgLTcsNyArNyw5IEBAIGV4 dGVybiAiQyIgewotIAotICNpbmNsdWRlIDxmZWF0dXJlcy5oPgotIAotLSNpZmRlZiBfX2NwbHVz cGx1cwotKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCi0rI2RlZmluZSBOVUxMIG51bGxwdHIK LSsjZWxpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotICNkZWZpbmUgTlVMTCAwTAotICNlbHNlCi0g I2RlZmluZSBOVUxMICgodm9pZCopMCkKLWRpZmYgLS1naXQgYS9pbmNsdWRlL3RpbWUuaCBiL2lu Y2x1ZGUvdGltZS5oCi1pbmRleCA1NDk0ZGYxODMuLjNkOTQ4MzcyMCAxMDA2NDQKLS0tLSBhL2lu Y2x1ZGUvdGltZS5oCi0rKysgYi9pbmNsdWRlL3RpbWUuaAotQEAgLTcsNyArNyw5IEBAIGV4dGVy biAiQyIgewotIAotICNpbmNsdWRlIDxmZWF0dXJlcy5oPgotIAotLSNpZmRlZiBfX2NwbHVzcGx1 cwotKyNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCi0rI2RlZmluZSBOVUxMIG51bGxwdHIKLSsj ZWxpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotICNkZWZpbmUgTlVMTCAwTAotICNlbHNlCi0gI2Rl ZmluZSBOVUxMICgodm9pZCopMCkKLWRpZmYgLS1naXQgYS9pbmNsdWRlL3VuaXN0ZC5oIGIvaW5j bHVkZS91bmlzdGQuaAotaW5kZXggMTMwNjQwMjYwLi5lZTJkYmU4YWYgMTAwNjQ0Ci0tLS0gYS9p bmNsdWRlL3VuaXN0ZC5oCi0rKysgYi9pbmNsdWRlL3VuaXN0ZC5oCi1AQCAtMTUsNyArMTUsOSBA QCBleHRlcm4gIkMiIHsKLSAjZGVmaW5lIFNFRUtfQ1VSIDEKLSAjZGVmaW5lIFNFRUtfRU5EIDIK LSAKLS0jaWZkZWYgX19jcGx1c3BsdXMKLSsjaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAotKyNk ZWZpbmUgTlVMTCBudWxscHRyCi0rI2VsaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKLSAjZGVmaW5l IE5VTEwgMEwKLSAjZWxzZQotICNkZWZpbmUgTlVMTCAoKHZvaWQqKTApCi1kaWZmIC0tZ2l0IGEv aW5jbHVkZS93Y2hhci5oIGIvaW5jbHVkZS93Y2hhci5oCi1pbmRleCA4OGViNTViMTguLmVkNWQ3 NzRkZiAxMDA2NDQKLS0tLSBhL2luY2x1ZGUvd2NoYXIuaAotKysrIGIvaW5jbHVkZS93Y2hhci5o Ci1AQCAtMzgsNyArMzgsOSBAQCBleHRlcm4gIkMiIHsKLSAjZGVmaW5lIFdDSEFSX01JTiAoLTEt MHg3ZmZmZmZmZitMJ1wwJykKLSAjZW5kaWYKLSAKLS0jaWZkZWYgX19jcGx1c3BsdXMKLSsjaWYg X19jcGx1c3BsdXMgPj0gMjAxMTAzTAotKyNkZWZpbmUgTlVMTCBudWxscHRyCi0rI2VsaWYgZGVm aW5lZChfX2NwbHVzcGx1cykKLSAjZGVmaW5lIE5VTEwgMEwKLSAjZWxzZQotICNkZWZpbmUgTlVM TCAoKHZvaWQqKTApCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzk5ZDUwOThh ODg1ZmVhZTNhZThjMzJiNDA3MzUwZDhjYTg1ZGQxNzgucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0 Y2hlcy85OWQ1MDk4YTg4NWZlYWUzYWU4YzMyYjQwNzM1MGQ4Y2E4NWRkMTc4LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTAzYWQxNjA3Y2U5Li4wMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzLzk5ZDUwOThhODg1ZmVhZTNhZThjMzJiNDA3MzUwZDhj YTg1ZGQxNzgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTMgKzAsMCBAQAotRnJvbSA5OWQ1 MDk4YTg4NWZlYWUzYWU4YzMyYjQwNzM1MGQ4Y2E4NWRkMTc4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogSnVsaWVuIFJhbXNlaWVyIDxqLnJhbXNlaWVyQGdtYWlsLmNvbT4KLURhdGU6 IFN1biwgMTggT2N0IDIwMjAgMTI6MTU6MDYgLTA0MDAKLVN1YmplY3Q6IHVwZGF0ZSBjcnlwdF9i bG93ZmlzaCB0byBzdXBwb3J0ICQyYiQgcHJlZml4Ci0KLU1lcmdlIGNoYW5nZXMgZnJvbSBTb2xh ciBEZXNpZ25lcidzIGNyeXB0X2Jsb3dmaXNoIHYxLjMuIFRoaXMgbWFrZXMKLWNyeXB0X2Jsb3dm aXNoIGZ1bGx5IGNvbXBhdGlibGUgd2l0aCBPcGVuQlNEJ3MgYmNyeXB0IGJ5IGFkZGluZwotc3Vw cG9ydCBmb3IgdGhlICQyYiQgcHJlZml4ICh3aGljaCBiZWhhdmVzIHRoZSBzYW1lIGFzCi1jcnlw dF9ibG93ZmlzaCdzICQyeSQpLgotLS0tCi0gc3JjL2NyeXB0L2NyeXB0X2Jsb3dmaXNoLmMgfCAz OCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2Vk LCAyMyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKLQotKGxpbWl0ZWQgdG8gJ3NyYy9j cnlwdC9jcnlwdF9ibG93ZmlzaC5jJykKLQotZGlmZiAtLWdpdCBhL3NyYy9jcnlwdC9jcnlwdF9i bG93ZmlzaC5jIGIvc3JjL2NyeXB0L2NyeXB0X2Jsb3dmaXNoLmMKLWluZGV4IGQzZjc5ODUxLi5k NzIyNjA3YiAxMDA2NDQKLS0tLSBhL3NyYy9jcnlwdC9jcnlwdF9ibG93ZmlzaC5jCi0rKysgYi9z cmMvY3J5cHQvY3J5cHRfYmxvd2Zpc2guYwotQEAgLTE1LDcgKzE1LDcgQEAKLSAgKiBObyBjb3B5 cmlnaHQgaXMgY2xhaW1lZCwgYW5kIHRoZSBzb2Z0d2FyZSBpcyBoZXJlYnkgcGxhY2VkIGluIHRo ZSBwdWJsaWMKLSAgKiBkb21haW4uICBJbiBjYXNlIHRoaXMgYXR0ZW1wdCB0byBkaXNjbGFpbSBj b3B5cmlnaHQgYW5kIHBsYWNlIHRoZSBzb2Z0d2FyZQotICAqIGluIHRoZSBwdWJsaWMgZG9tYWlu IGlzIGRlZW1lZCBudWxsIGFuZCB2b2lkLCB0aGVuIHRoZSBzb2Z0d2FyZSBpcwotLSAqIENvcHly aWdodCAoYykgMTk5OC0yMDEyIFNvbGFyIERlc2lnbmVyIGFuZCBpdCBpcyBoZXJlYnkgcmVsZWFz ZWQgdG8gdGhlCi0rICogQ29weXJpZ2h0IChjKSAxOTk4LTIwMTQgU29sYXIgRGVzaWduZXIgYW5k IGl0IGlzIGhlcmVieSByZWxlYXNlZCB0byB0aGUKLSAgKiBnZW5lcmFsIHB1YmxpYyB1bmRlciB0 aGUgZm9sbG93aW5nIHRlcm1zOgotICAqCi0gICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1AQCAtMzEsMTIgKzMxLDEy IEBACi0gICogeW91IHBsYWNlIHRoaXMgY29kZSBhbmQgYW55IG1vZGlmaWNhdGlvbnMgeW91IG1h a2UgdW5kZXIgYSBsaWNlbnNlCi0gICogb2YgeW91ciBjaG9pY2UuCi0gICoKLS0gKiBUaGlzIGlt cGxlbWVudGF0aW9uIGlzIG1vc3RseSBjb21wYXRpYmxlIHdpdGggT3BlbkJTRCdzIGJjcnlwdC5j IChwcmVmaXgKLS0gKiAiJDJhJCIpIGJ5IE5pZWxzIFByb3ZvcyA8cHJvdm9zIGF0IGNpdGkudW1p Y2guZWR1PiwgYW5kIHVzZXMgc29tZSBvZiBoaXMKLS0gKiBpZGVhcy4gIFRoZSBwYXNzd29yZCBo YXNoaW5nIGFsZ29yaXRobSB3YXMgZGVzaWduZWQgYnkgRGF2aWQgTWF6aWVyZXMKLS0gKiA8ZG0g YXQgbGNzLm1pdC5lZHU+LiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIGxldmVsIG9mIGNv bXBhdGliaWxpdHksCi0tICogcGxlYXNlIHJlZmVyIHRvIHRoZSBjb21tZW50cyBpbiBCRl9zZXRf a2V5KCkgYmVsb3cgYW5kIHRvIHRoZSBpbmNsdWRlZAotLSAqIGNyeXB0KDMpIG1hbiBwYWdlLgot KyAqIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgZnVsbHkgY29tcGF0aWJsZSB3aXRoIE9wZW5CU0Qn cyBiY3J5cHQuYyBmb3IgcHJlZml4Ci0rICogIiQyYiQiLCBvcmlnaW5hbGx5IGJ5IE5pZWxzIFBy b3ZvcyA8cHJvdm9zIGF0IGNpdGkudW1pY2guZWR1PiwgYW5kIGl0IHVzZXMKLSsgKiBzb21lIG9m IGhpcyBpZGVhcy4gIFRoZSBwYXNzd29yZCBoYXNoaW5nIGFsZ29yaXRobSB3YXMgZGVzaWduZWQg YnkgRGF2aWQKLSsgKiBNYXppZXJlcyA8ZG0gYXQgbGNzLm1pdC5lZHU+LiAgRm9yIGluZm9ybWF0 aW9uIG9uIHRoZSBsZXZlbCBvZgotKyAqIGNvbXBhdGliaWxpdHkgZm9yIGJjcnlwdCBoYXNoIHBy ZWZpeGVzIG90aGVyIHRoYW4gIiQyYiQiLCBwbGVhc2UgcmVmZXIgdG8KLSsgKiB0aGUgY29tbWVu dHMgaW4gQkZfc2V0X2tleSgpIGJlbG93IGFuZCB0byB0aGUgaW5jbHVkZWQgY3J5cHQoMykgbWFu IHBhZ2UuCi0gICoKLSAgKiBUaGVyZSdzIGEgcGFwZXIgb24gdGhlIGFsZ29yaXRobSB0aGF0IGV4 cGxhaW5zIGl0cyBkZXNpZ24gZGVjaXNpb25zOgotICAqCi1AQCAtNTMzLDYgKzUzMyw3IEBAIHN0 YXRpYyB2b2lkIEJGX3NldF9rZXkoY29uc3QgY2hhciAqa2V5LCBCRl9rZXkgZXhwYW5kZWQsIEJG X2tleSBpbml0aWFsLAotICAqIFZhbGlkIGNvbWJpbmF0aW9ucyBvZiBzZXR0aW5ncyBhcmU6Ci0g ICoKLSAgKiBQcmVmaXggIiQyYSQiOiBidWcgPSAwLCBzYWZldHkgPSAweDEwMDAwCi0rICogUHJl Zml4ICIkMmIkIjogYnVnID0gMCwgc2FmZXR5ID0gMAotICAqIFByZWZpeCAiJDJ4JCI6IGJ1ZyA9 IDEsIHNhZmV0eSA9IDAKLSAgKiBQcmVmaXggIiQyeSQiOiBidWcgPSAwLCBzYWZldHkgPSAwCi0g ICovCi1AQCAtNTk2LDEyICs1OTcsMTQgQEAgc3RhdGljIHZvaWQgQkZfc2V0X2tleShjb25zdCBj aGFyICprZXksIEJGX2tleSBleHBhbmRlZCwgQkZfa2V5IGluaXRpYWwsCi0gCWluaXRpYWxbMF0g Xj0gc2lnbjsKLSB9Ci0gCi0rc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZmxhZ3NfYnlfc3Vi dHlwZVsyNl0gPSB7Ci0rCTIsIDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCi0r CTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDQsIDAKLSt9OwotKwotIHN0YXRpYyBj aGFyICpCRl9jcnlwdChjb25zdCBjaGFyICprZXksIGNvbnN0IGNoYXIgKnNldHRpbmcsCi0gCWNo YXIgKm91dHB1dCwgQkZfd29yZCBtaW4pCi0gewotLQlzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hh ciBmbGFnc19ieV9zdWJ0eXBlWzI2XSA9Ci0tCQl7MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCwKLS0JCTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDQsIDB9Owot IAlzdHJ1Y3QgewotIAkJQkZfY3R4IGN0eDsKLSAJCUJGX2tleSBleHBhbmRlZF9rZXk7Ci1AQCAt NzQ2LDkgKzc0OSwxMSBAQCBjaGFyICpfX2NyeXB0X2Jsb3dmaXNoKGNvbnN0IGNoYXIgKmtleSwg Y29uc3QgY2hhciAqc2V0dGluZywgY2hhciAqb3V0cHV0KQotIHsKLSAJY29uc3QgY2hhciAqdGVz dF9rZXkgPSAiOGIgXHhkMFx4YzFceGQyXHhjZlx4Y2NceGQ4IjsKLSAJY29uc3QgY2hhciAqdGVz dF9zZXR0aW5nID0gIiQyYSQwMCRhYmNkZWZnaGlqa2xtbm9wcXJzdHV1IjsKLS0Jc3RhdGljIGNv bnN0IGNoYXIgdGVzdF9oYXNoWzJdWzM0XSA9Ci0tCQl7IlZVclBtWEQ2cS9uVlNTcDdwTkRoQ1I5 MDcxSWZJUmVcMFx4NTUiLCAvKiAkMngkICovCi0tCQkiaTFENzA5dmZhbXVsaW1sR2NxMHFxM1V2 dVVhc3ZFYVwwXHg1NSJ9OyAvKiAkMmEkLCAkMnkkICovCi0rCXN0YXRpYyBjb25zdCBjaGFyIHRl c3RfaGFzaGVzWzJdWzM0XSA9IHsKLSsJCSJpMUQ3MDl2ZmFtdWxpbWxHY3EwcXEzVXZ1VWFzdkVh XDBceDU1IiwgLyogJ2EnLCAnYicsICd5JyAqLwotKwkJIlZVclBtWEQ2cS9uVlNTcDdwTkRoQ1I5 MDcxSWZJUmVcMFx4NTUiLCAvKiAneCcgKi8KLSsJfTsKLSsJY29uc3QgY2hhciAqdGVzdF9oYXNo ID0gdGVzdF9oYXNoZXNbMF07Ci0gCWNoYXIgKnJldHZhbDsKLSAJY29uc3QgY2hhciAqcDsKLSAJ aW50IG9rOwotQEAgLTc2OCw4ICs3NzMsMTEgQEAgY2hhciAqX19jcnlwdF9ibG93ZmlzaChjb25z dCBjaGFyICprZXksIGNvbnN0IGNoYXIgKnNldHRpbmcsIGNoYXIgKm91dHB1dCkKLSAgKiBkZXRl Y3RlZCBieSB0aGUgc2VsZi10ZXN0LgotICAqLwotIAltZW1jcHkoYnVmLnMsIHRlc3Rfc2V0dGlu Zywgc2l6ZW9mKGJ1Zi5zKSk7Ci0tCWlmIChyZXR2YWwpCi0rCWlmIChyZXR2YWwpIHsKLSsJCXVu c2lnbmVkIGludCBmbGFncyA9IGZsYWdzX2J5X3N1YnR5cGVbc2V0dGluZ1syXSAtICdhJ107Ci0r CQl0ZXN0X2hhc2ggPSB0ZXN0X2hhc2hlc1tmbGFncyAmIDFdOwotIAkJYnVmLnNbMl0gPSBzZXR0 aW5nWzJdOwotKwl9Ci0gCW1lbXNldChidWYubywgMHg1NSwgc2l6ZW9mKGJ1Zi5vKSk7Ci0gCWJ1 Zi5vW3NpemVvZihidWYubykgLSAxXSA9IDA7Ci0gCXAgPSBCRl9jcnlwdCh0ZXN0X2tleSwgYnVm LnMsIGJ1Zi5vLCAxKTsKLUBAIC03NzcsNyArNzg1LDcgQEAgY2hhciAqX19jcnlwdF9ibG93Zmlz aChjb25zdCBjaGFyICprZXksIGNvbnN0IGNoYXIgKnNldHRpbmcsIGNoYXIgKm91dHB1dCkKLSAJ b2sgPSAocCA9PSBidWYubyAmJgotIAkgICAgIW1lbWNtcChwLCBidWYucywgNyArIDIyKSAmJgot IAkgICAgIW1lbWNtcChwICsgKDcgKyAyMiksCi0tCSAgICB0ZXN0X2hhc2hbYnVmLnNbMl0gJiAx XSwKLSsJICAgIHRlc3RfaGFzaCwKLSAJICAgIDMxICsgMSArIDEgKyAxKSk7Ci0gCi0gCXsKLS0t IAotY2dpdCB2MS4yLjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvQ1ZFLTIw MjAtMjg5MjgucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9DVkUtMjAyMC0yODkyOC5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjNmZjNiNGVlMDhmMC4uMDAwMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9DVkUtMjAyMC0yODkyOC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS0tLSBhL3NyYy9tdWx0aWJ5dGUvd2NzbnJ0b21i cy5jCi0rKysgYi9zcmMvbXVsdGlieXRlL3djc25ydG9tYnMuYwotQEAgLTEsNDEgKzEsMzMgQEAK LSAjaW5jbHVkZSA8d2NoYXIuaD4KLSsjaW5jbHVkZSA8bGltaXRzLmg+Ci0rI2luY2x1ZGUgPHN0 cmluZy5oPgotIAotIHNpemVfdCB3Y3NucnRvbWJzKGNoYXIgKnJlc3RyaWN0IGRzdCwgY29uc3Qg d2NoYXJfdCAqKnJlc3RyaWN0IHdjcywgc2l6ZV90IHduLCBzaXplX3QgbiwgbWJzdGF0ZV90ICpy ZXN0cmljdCBzdCkKLSB7Ci0tCXNpemVfdCBsLCBjbnQ9MCwgbjI7Ci0tCWNoYXIgKnMsIGJ1Zlsy NTZdOwotIAljb25zdCB3Y2hhcl90ICp3cyA9ICp3Y3M7Ci0tCWNvbnN0IHdjaGFyX3QgKnRtcF93 czsKLS0KLS0JaWYgKCFkc3QpIHMgPSBidWYsIG4gPSBzaXplb2YgYnVmOwotLQllbHNlIHMgPSBk c3Q7Ci0tCi0tCXdoaWxlICggd3MgJiYgbiAmJiAoIChuMj13bik+PW4gfHwgbjI+MzIgKSApIHsK LS0JCWlmIChuMj49bikgbjI9bjsKLS0JCXRtcF93cyA9IHdzOwotLQkJbCA9IHdjc3J0b21icyhz LCAmd3MsIG4yLCAwKTsKLS0JCWlmICghKGwrMSkpIHsKLS0JCQljbnQgPSBsOwotLQkJCW4gPSAw OwotKwlzaXplX3QgY250ID0gMDsKLSsJaWYgKCFkc3QpIG49MDsKLSsJd2hpbGUgKHdzICYmIHdu KSB7Ci0rCQljaGFyIHRtcFtNQl9MRU5fTUFYXTsKLSsJCXNpemVfdCBsID0gd2NydG9tYihuPE1C X0xFTl9NQVggPyB0bXAgOiBkc3QsICp3cywgMCk7Ci0rCQlpZiAobD09LTEpIHsKLSsJCQljbnQg PSAtMTsKLSAJCQlicmVhazsKLSAJCX0KLS0JCWlmIChzICE9IGJ1ZikgewotLQkJCXMgKz0gbDsK LSsJCWlmIChkc3QpIHsKLSsJCQlpZiAobjxNQl9MRU5fTUFYKSB7Ci0rCQkJCWlmIChsPm4pIGJy ZWFrOwotKwkJCQltZW1jcHkoZHN0LCB0bXAsIGwpOwotKwkJCX0KLSsJCQlkc3QgKz0gbDsKLSAJ CQluIC09IGw7Ci0gCQl9Ci0tCQl3biA9IHdzID8gd24gLSAod3MgLSB0bXBfd3MpIDogMDsKLS0J CWNudCArPSBsOwotLQl9Ci0tCWlmICh3cykgd2hpbGUgKG4gJiYgd24pIHsKLS0JCWwgPSB3Y3J0 b21iKHMsICp3cywgMCk7Ci0tCQlpZiAoKGwrMSk8PTEpIHsKLS0JCQlpZiAoIWwpIHdzID0gMDsK LS0JCQllbHNlIGNudCA9IGw7Ci0rCQlpZiAoISp3cykgewotKwkJCXdzID0gMDsKLSAJCQlicmVh azsKLSAJCX0KLS0JCXdzKys7IHduLS07Ci0tCQkvKiBzYWZlIC0gdGhpcyBsb29wIHJ1bnMgZmV3 ZXIgdGhhbiBzaXplb2YoYnVmKSB0aW1lcyAqLwotLQkJcys9bDsgbi09bDsKLSsJCXdzKys7Ci0r CQl3bi0tOwotIAkJY250ICs9IGw7Ci0gCX0KLSAJaWYgKGRzdCkgKndjcyA9IHdzOwotCmRpZmYg LS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9hYXJjaDY0LWZyZWdzLnBhdGNoIGIvc3JjcGtn cy9tdXNsL3BhdGNoZXMvYWFyY2g2NC1mcmVncy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDI0ZWVkMTFhOGU1My4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wv cGF0Y2hlcy9hYXJjaDY0LWZyZWdzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBA QAotVXNlIHR5cGVzIGNvbXBhdGlibGUgd2l0aCBnbGliYy9rZXJuZWwgaGVhZGVycy4KLQotZGlm ZiAtLWdpdCBhL2FyY2gvYWFyY2g2NC9iaXRzL3NpZ25hbC5oIGIvYXJjaC9hYXJjaDY0L2JpdHMv c2lnbmFsLmgKLWluZGV4IGI3MTI2MWY1Li41MDk4YzczNCAxMDA2NDQKLS0tLSBhL2FyY2gvYWFy Y2g2NC9iaXRzL3NpZ25hbC5oCi0rKysgYi9hcmNoL2FhcmNoNjQvYml0cy9zaWduYWwuaAotQEAg LTExLDcgKzExLDcgQEAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGdyZWdfdDsKLSB0eXBlZGVmIHVu c2lnbmVkIGxvbmcgZ3JlZ3NldF90WzM0XTsKLSAKLSB0eXBlZGVmIHN0cnVjdCB7Ci0tCWxvbmcg ZG91YmxlIHZyZWdzWzMyXTsKLSsJX191aW50MTI4X3QgdnJlZ3NbMzJdOwotIAl1bnNpZ25lZCBp bnQgZnBzcjsKLSAJdW5zaWduZWQgaW50IGZwY3I7Ci0gfSBmcHJlZ3NldF90OwotQEAgLTM0LDcg KzM0LDcgQEAgc3RydWN0IGZwc2ltZF9jb250ZXh0IHsKLSAJc3RydWN0IF9hYXJjaDY0X2N0eCBo ZWFkOwotIAl1bnNpZ25lZCBpbnQgZnBzcjsKLSAJdW5zaWduZWQgaW50IGZwY3I7Ci0tCWxvbmcg ZG91YmxlIHZyZWdzWzMyXTsKLSsJX191aW50MTI4X3QgdnJlZ3NbMzJdOwotIH07Ci0gc3RydWN0 IGVzcl9jb250ZXh0IHsKLSAJc3RydWN0IF9hYXJjaDY0X2N0eCBoZWFkOwotZGlmZiAtLWdpdCBh L2FyY2gvYWFyY2g2NC9iaXRzL3VzZXIuaCBiL2FyY2gvYWFyY2g2NC9iaXRzL3VzZXIuaAotaW5k ZXggZDEyY2RmN2YuLjhhMTAwMmFhIDEwMDY0NAotLS0tIGEvYXJjaC9hYXJjaDY0L2JpdHMvdXNl ci5oCi0rKysgYi9hcmNoL2FhcmNoNjQvYml0cy91c2VyLmgKLUBAIC02LDcgKzYsNyBAQCBzdHJ1 Y3QgdXNlcl9yZWdzX3N0cnVjdCB7Ci0gfTsKLSAKLSBzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RydWN0 IHsKLS0JbG9uZyBkb3VibGUgdnJlZ3NbMzJdOwotKwlfX3VpbnQxMjhfdCB2cmVnc1szMl07Ci0g CXVuc2lnbmVkIGludCBmcHNyOwotIAl1bnNpZ25lZCBpbnQgZnBjcjsKLSB9OwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvYWRkLXFzb3J0X3IucGF0Y2ggYi9zcmNwa2dzL211c2wv cGF0Y2hlcy9hZGQtcXNvcnRfci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg M2Q4NTQ5NmFmYjY5Zi4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9h ZGQtcXNvcnRfci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIwMSArMCwwIEBACi1Gcm9tIGI3 NmYzN2ZkNTYyNWQwMzgxNDFiNTIxODQ5NTZmYjRiNzgzOGU5YTUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/PUMzPTg5cmljbz0yME5vZ3VlaXJhPz0gPGVyaWNvbnJA ZGlzcm9vdC5vcmc+Ci1EYXRlOiBUdWUsIDkgTWFyIDIwMjEgMTg6MDI6MTMgLTAzMDAKLVN1Ympl Y3Q6IFtQQVRDSF0gYWRkIHFzb3J0X3IgYW5kIG1ha2UgcXNvcnQgYSB3cmFwcGVyIGFyb3VuZCBp dAotCi13ZSBtYWtlIHFzb3J0IGEgd3JhcHBlciBieSBwcm92aWRpbmcgYSB3cmFwcGVyX2NtcCBm dW5jdGlvbiB0aGF0IHVzZXMKLXRoZSBleHRyYSBhcmd1bWVudCBhcyBhIGZ1bmN0aW9uIHBvaW50 ZXIuIHNob3VsZCBiZSBvcHRpbWl6ZWQgdG8gYSB0YWlsCi1jYWxsIG9uIG1vc3QgYXJjaGl0ZWN0 dXJlcywgYXMgbG9uZyBhcyBpdCdzIGJ1aWx0IHdpdGgKLS1mb21pdC1mcmFtZS1wb2ludGVyLCBz byB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0IHNob3VsZCBiZSBtaW5pbWFsLgotCi10byBrZWVwIHRo ZSBnaXQgaGlzdG9yeSBjbGVhbiwgZm9yIG5vdyBxc29ydF9yIGlzIGltcGxlbWVudGVkIGluIHFz b3J0LmMKLWFuZCBxc29ydCBpcyBpbXBsZW1lbnRlZCBpbiBxc29ydF9uci5jLiAgcXNvcnQuYyBh bHNvIHJlY2VpdmVkIGEgZmV3Ci10cml2aWFsIGNsZWFudXBzLCBpbmNsdWRpbmcgcmVwbGFjaW5n ICgqY21wKSgpIGNhbGxzIHdpdGggY21wKCkuCi1xc29ydF9uci5jIGNvbnRhaW5zIG9ubHkgd3Jh cHBlcl9jbXAgYW5kIHFzb3J0IGFzIGEgcXNvcnRfciB3cmFwcGVyCi1pdHNlbGYuCi0tLS0KLSBp bmNsdWRlL3N0ZGxpYi5oICAgICAgfCAgMSArCi0gc3JjL2luY2x1ZGUvc3RkbGliLmggIHwgIDEg KwotIHNyYy9zdGRsaWIvcXNvcnQuYyAgICB8IDM3ICsrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0KLSBzcmMvc3RkbGliL3Fzb3J0X25yLmMgfCAxNCArKysrKysrKysrKysrKwot IDQgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCi0gY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9zdGRsaWIvcXNvcnRfbnIuYwotCi1kaWZmIC0tZ2l0IGEvaW5j bHVkZS9zdGRsaWIuaCBiL2luY2x1ZGUvc3RkbGliLmgKLWluZGV4IGI1NGEwNTFmZS4uN2FmODZl M2JjIDEwMDY0NAotLS0tIGEvaW5jbHVkZS9zdGRsaWIuaAotKysrIGIvaW5jbHVkZS9zdGRsaWIu aAotQEAgLTE0Niw2ICsxNDYsNyBAQCBpbnQgY2xlYXJlbnYodm9pZCk7Ci0gI2RlZmluZSBXQ09S RURVTVAocykgKChzKSAmIDB4ODApCi0gI2RlZmluZSBXSUZDT05USU5VRUQocykgKChzKSA9PSAw eGZmZmYpCi0gdm9pZCAqcmVhbGxvY2FycmF5ICh2b2lkICosIHNpemVfdCwgc2l6ZV90KTsKLSt2 b2lkIHFzb3J0X3IgKHZvaWQgKiwgc2l6ZV90LCBzaXplX3QsIGludCAoKikoY29uc3Qgdm9pZCAq LCBjb25zdCB2b2lkICosIHZvaWQgKiksIHZvaWQgKik7Ci0gI2VuZGlmCi0gCi0gI2lmZGVmIF9H TlVfU09VUkNFCi1kaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RkbGliLmggYi9zcmMvaW5jbHVk ZS9zdGRsaWIuaAotaW5kZXggZTlkYTIwMTU4Li44MTJiMDRkZTIgMTAwNjQ0Ci0tLS0gYS9zcmMv aW5jbHVkZS9zdGRsaWIuaAotKysrIGIvc3JjL2luY2x1ZGUvc3RkbGliLmgKLUBAIC04LDYgKzgs NyBAQCBoaWRkZW4gdm9pZCBfX2Vudl9ybV9hZGQoY2hhciAqLCBjaGFyICopOwotIGhpZGRlbiBp bnQgX19ta29zdGVtcHMoY2hhciAqLCBpbnQsIGludCk7Ci0gaGlkZGVuIGludCBfX3B0c25hbWVf cihpbnQsIGNoYXIgKiwgc2l6ZV90KTsKLSBoaWRkZW4gY2hhciAqX19yYW5kbmFtZShjaGFyICop OwotK2hpZGRlbiB2b2lkIF9fcXNvcnRfciAodm9pZCAqLCBzaXplX3QsIHNpemVfdCwgaW50ICgq KShjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKiwgdm9pZCAqKSwgdm9pZCAqKTsKLSAKLSBoaWRk ZW4gdm9pZCAqX19saWJjX21hbGxvYyhzaXplX3QpOwotIGhpZGRlbiB2b2lkICpfX2xpYmNfbWFs bG9jX2ltcGwoc2l6ZV90KTsKLWRpZmYgLS1naXQgYS9zcmMvc3RkbGliL3Fzb3J0LmMgYi9zcmMv c3RkbGliL3Fzb3J0LmMKLWluZGV4IGRhNThmZDMxNy4uMzE0ZGRjMjlkIDEwMDY0NAotLS0tIGEv c3JjL3N0ZGxpYi9xc29ydC5jCi0rKysgYi9zcmMvc3RkbGliL3Fzb3J0LmMKLUBAIC0yNCw2ICsy NCw3IEBACi0gLyogU21vb3Roc29ydCwgYW4gYWRhcHRpdmUgdmFyaWFudCBvZiBIZWFwc29ydC4g IE1lbW9yeSB1c2FnZTogTygxKS4KLSAgICBSdW4gdGltZTogV29yc3QgY2FzZSBPKG4gbG9nIG4p LCBjbG9zZSB0byBPKG4pIGluIHRoZSBtb3N0bHktc29ydGVkIGNhc2UuICovCi0gCi0rI2RlZmlu ZSBfQlNEX1NPVVJDRQotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAjaW5jbHVkZSA8c3RkbGliLmg+ Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotQEAgLTMxLDcgKzMyLDcgQEAKLSAjaW5jbHVkZSAiYXRv bWljLmgiCi0gI2RlZmluZSBudHooeCkgYV9jdHpfbCgoeCkpCi0gCi0tdHlwZWRlZiBpbnQgKCpj bXBmdW4pKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqKTsKLSt0eXBlZGVmIGludCAoKmNtcGZ1 bikoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICosIHZvaWQgKik7Ci0gCi0gc3RhdGljIGlubGlu ZSBpbnQgcG50eihzaXplX3QgcFsyXSkgewotIAlpbnQgciA9IG50eihwWzBdIC0gMSk7Ci1AQCAt ODgsNyArODksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2hyKHNpemVfdCBwWzJdLCBpbnQgbikK LSAJcFsxXSA+Pj0gbjsKLSB9Ci0gCi0tc3RhdGljIHZvaWQgc2lmdCh1bnNpZ25lZCBjaGFyICpo ZWFkLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXAsIGludCBwc2hpZnQsIHNpemVfdCBscFtdKQot K3N0YXRpYyB2b2lkIHNpZnQodW5zaWduZWQgY2hhciAqaGVhZCwgc2l6ZV90IHdpZHRoLCBjbXBm dW4gY21wLCB2b2lkICphcmcsIGludCBwc2hpZnQsIHNpemVfdCBscFtdKQotIHsKLSAJdW5zaWdu ZWQgY2hhciAqcnQsICpsZjsKLSAJdW5zaWduZWQgY2hhciAqYXJbMTQgKiBzaXplb2Yoc2l6ZV90 KSArIDFdOwotQEAgLTk5LDEwICsxMDAsMTAgQEAgc3RhdGljIHZvaWQgc2lmdCh1bnNpZ25lZCBj aGFyICpoZWFkLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXAsIGludCBwc2hpZnQsIHNpemUKLSAJ CXJ0ID0gaGVhZCAtIHdpZHRoOwotIAkJbGYgPSBoZWFkIC0gd2lkdGggLSBscFtwc2hpZnQgLSAy XTsKLSAKLS0JCWlmKCgqY21wKShhclswXSwgbGYpID49IDAgJiYgKCpjbXApKGFyWzBdLCBydCkg Pj0gMCkgewotKwkJaWYoY21wKGFyWzBdLCBsZiwgYXJnKSA+PSAwICYmIGNtcChhclswXSwgcnQs IGFyZykgPj0gMCkgewotIAkJCWJyZWFrOwotIAkJfQotLQkJaWYoKCpjbXApKGxmLCBydCkgPj0g MCkgewotKwkJaWYoY21wKGxmLCBydCwgYXJnKSA+PSAwKSB7Ci0gCQkJYXJbaSsrXSA9IGxmOwot IAkJCWhlYWQgPSBsZjsKLSAJCQlwc2hpZnQgLT0gMTsKLUBAIC0xMTUsNyArMTE2LDcgQEAgc3Rh dGljIHZvaWQgc2lmdCh1bnNpZ25lZCBjaGFyICpoZWFkLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBj bXAsIGludCBwc2hpZnQsIHNpemUKLSAJY3ljbGUod2lkdGgsIGFyLCBpKTsKLSB9Ci0gCi0tc3Rh dGljIHZvaWQgdHJpbmtsZSh1bnNpZ25lZCBjaGFyICpoZWFkLCBzaXplX3Qgd2lkdGgsIGNtcGZ1 biBjbXAsIHNpemVfdCBwcFsyXSwgaW50IHBzaGlmdCwgaW50IHRydXN0eSwgc2l6ZV90IGxwW10p Ci0rc3RhdGljIHZvaWQgdHJpbmtsZSh1bnNpZ25lZCBjaGFyICpoZWFkLCBzaXplX3Qgd2lkdGgs IGNtcGZ1biBjbXAsIHZvaWQgKmFyZywgc2l6ZV90IHBwWzJdLCBpbnQgcHNoaWZ0LCBpbnQgdHJ1 c3R5LCBzaXplX3QgbHBbXSkKLSB7Ci0gCXVuc2lnbmVkIGNoYXIgKnN0ZXBzb24sCi0gCSAgICAg ICAgICAgICAgKnJ0LCAqbGY7Ci1AQCAtMTMwLDEzICsxMzEsMTMgQEAgc3RhdGljIHZvaWQgdHJp bmtsZSh1bnNpZ25lZCBjaGFyICpoZWFkLCBzaXplX3Qgd2lkdGgsIGNtcGZ1biBjbXAsIHNpemVf dCBwcFsyXSwKLSAJYXJbMF0gPSBoZWFkOwotIAl3aGlsZShwWzBdICE9IDEgfHwgcFsxXSAhPSAw KSB7Ci0gCQlzdGVwc29uID0gaGVhZCAtIGxwW3BzaGlmdF07Ci0tCQlpZigoKmNtcCkoc3RlcHNv biwgYXJbMF0pIDw9IDApIHsKLSsJCWlmKGNtcChzdGVwc29uLCBhclswXSwgYXJnKSA8PSAwKSB7 Ci0gCQkJYnJlYWs7Ci0gCQl9Ci0gCQlpZighdHJ1c3R5ICYmIHBzaGlmdCA+IDEpIHsKLSAJCQly dCA9IGhlYWQgLSB3aWR0aDsKLSAJCQlsZiA9IGhlYWQgLSB3aWR0aCAtIGxwW3BzaGlmdCAtIDJd OwotLQkJCWlmKCgqY21wKShydCwgc3RlcHNvbikgPj0gMCB8fCAoKmNtcCkobGYsIHN0ZXBzb24p ID49IDApIHsKLSsJCQlpZihjbXAocnQsIHN0ZXBzb24sIGFyZykgPj0gMCB8fCBjbXAobGYsIHN0 ZXBzb24sIGFyZykgPj0gMCkgewotIAkJCQlicmVhazsKLSAJCQl9Ci0gCQl9Ci1AQCAtMTUwLDEx ICsxNTEsMTEgQEAgc3RhdGljIHZvaWQgdHJpbmtsZSh1bnNpZ25lZCBjaGFyICpoZWFkLCBzaXpl X3Qgd2lkdGgsIGNtcGZ1biBjbXAsIHNpemVfdCBwcFsyXSwKLSAJfQotIAlpZighdHJ1c3R5KSB7 Ci0gCQljeWNsZSh3aWR0aCwgYXIsIGkpOwotLQkJc2lmdChoZWFkLCB3aWR0aCwgY21wLCBwc2hp ZnQsIGxwKTsKLSsJCXNpZnQoaGVhZCwgd2lkdGgsIGNtcCwgYXJnLCBwc2hpZnQsIGxwKTsKLSAJ fQotIH0KLSAKLS12b2lkIHFzb3J0KHZvaWQgKmJhc2UsIHNpemVfdCBuZWwsIHNpemVfdCB3aWR0 aCwgY21wZnVuIGNtcCkKLSt2b2lkIF9fcXNvcnRfcih2b2lkICpiYXNlLCBzaXplX3QgbmVsLCBz aXplX3Qgd2lkdGgsIGNtcGZ1biBjbXAsIHZvaWQgKmFyZykKLSB7Ci0gCXNpemVfdCBscFsxMipz aXplb2Yoc2l6ZV90KV07Ci0gCXNpemVfdCBpLCBzaXplID0gd2lkdGggKiBuZWw7Ci1AQCAtMTcz LDE2ICsxNzQsMTYgQEAgdm9pZCBxc29ydCh2b2lkICpiYXNlLCBzaXplX3QgbmVsLCBzaXplX3Qg d2lkdGgsIGNtcGZ1biBjbXApCi0gCi0gCXdoaWxlKGhlYWQgPCBoaWdoKSB7Ci0gCQlpZigocFsw XSAmIDMpID09IDMpIHsKLS0JCQlzaWZ0KGhlYWQsIHdpZHRoLCBjbXAsIHBzaGlmdCwgbHApOwot KwkJCXNpZnQoaGVhZCwgd2lkdGgsIGNtcCwgYXJnLCBwc2hpZnQsIGxwKTsKLSAJCQlzaHIocCwg Mik7Ci0gCQkJcHNoaWZ0ICs9IDI7Ci0gCQl9IGVsc2UgewotIAkJCWlmKGxwW3BzaGlmdCAtIDFd ID49IGhpZ2ggLSBoZWFkKSB7Ci0tCQkJCXRyaW5rbGUoaGVhZCwgd2lkdGgsIGNtcCwgcCwgcHNo aWZ0LCAwLCBscCk7Ci0rCQkJCXRyaW5rbGUoaGVhZCwgd2lkdGgsIGNtcCwgYXJnLCBwLCBwc2hp ZnQsIDAsIGxwKTsKLSAJCQl9IGVsc2UgewotLQkJCQlzaWZ0KGhlYWQsIHdpZHRoLCBjbXAsIHBz aGlmdCwgbHApOwotKwkJCQlzaWZ0KGhlYWQsIHdpZHRoLCBjbXAsIGFyZywgcHNoaWZ0LCBscCk7 Ci0gCQkJfQotLQkJCQotKwotIAkJCWlmKHBzaGlmdCA9PSAxKSB7Ci0gCQkJCXNobChwLCAxKTsK LSAJCQkJcHNoaWZ0ID0gMDsKLUBAIC0xOTEsMTIgKzE5MiwxMiBAQCB2b2lkIHFzb3J0KHZvaWQg KmJhc2UsIHNpemVfdCBuZWwsIHNpemVfdCB3aWR0aCwgY21wZnVuIGNtcCkKLSAJCQkJcHNoaWZ0 ID0gMTsKLSAJCQl9Ci0gCQl9Ci0tCQkKLSsKLSAJCXBbMF0gfD0gMTsKLSAJCWhlYWQgKz0gd2lk dGg7Ci0gCX0KLSAKLS0JdHJpbmtsZShoZWFkLCB3aWR0aCwgY21wLCBwLCBwc2hpZnQsIDAsIGxw KTsKLSsJdHJpbmtsZShoZWFkLCB3aWR0aCwgY21wLCBhcmcsIHAsIHBzaGlmdCwgMCwgbHApOwot IAotIAl3aGlsZShwc2hpZnQgIT0gMSB8fCBwWzBdICE9IDEgfHwgcFsxXSAhPSAwKSB7Ci0gCQlp Zihwc2hpZnQgPD0gMSkgewotQEAgLTIwOCwxMSArMjA5LDEzIEBAIHZvaWQgcXNvcnQodm9pZCAq YmFzZSwgc2l6ZV90IG5lbCwgc2l6ZV90IHdpZHRoLCBjbXBmdW4gY21wKQotIAkJCXBzaGlmdCAt PSAyOwotIAkJCXBbMF0gXj0gNzsKLSAJCQlzaHIocCwgMSk7Ci0tCQkJdHJpbmtsZShoZWFkIC0g bHBbcHNoaWZ0XSAtIHdpZHRoLCB3aWR0aCwgY21wLCBwLCBwc2hpZnQgKyAxLCAxLCBscCk7Ci0r CQkJdHJpbmtsZShoZWFkIC0gbHBbcHNoaWZ0XSAtIHdpZHRoLCB3aWR0aCwgY21wLCBhcmcsIHAs IHBzaGlmdCArIDEsIDEsIGxwKTsKLSAJCQlzaGwocCwgMSk7Ci0gCQkJcFswXSB8PSAxOwotLQkJ CXRyaW5rbGUoaGVhZCAtIHdpZHRoLCB3aWR0aCwgY21wLCBwLCBwc2hpZnQsIDEsIGxwKTsKLSsJ CQl0cmlua2xlKGhlYWQgLSB3aWR0aCwgd2lkdGgsIGNtcCwgYXJnLCBwLCBwc2hpZnQsIDEsIGxw KTsKLSAJCX0KLSAJCWhlYWQgLT0gd2lkdGg7Ci0gCX0KLSB9Ci0rCi0rd2Vha19hbGlhcyhfX3Fz b3J0X3IsIHFzb3J0X3IpOwotZGlmZiAtLWdpdCBhL3NyYy9zdGRsaWIvcXNvcnRfbnIuYyBiL3Ny Yy9zdGRsaWIvcXNvcnRfbnIuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAw MC4uZWZlN2NjZWNkCi0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvc3RkbGliL3Fzb3J0X25yLmMK LUBAIC0wLDAgKzEsMTQgQEAKLSsjZGVmaW5lIF9CU0RfU09VUkNFCi0rI2luY2x1ZGUgPHN0ZGxp Yi5oPgotKwotK3R5cGVkZWYgaW50ICgqY21wZnVuKShjb25zdCB2b2lkICosIGNvbnN0IHZvaWQg Kik7Ci0rCi0rc3RhdGljIGludCB3cmFwcGVyX2NtcChjb25zdCB2b2lkICp2MSwgY29uc3Qgdm9p ZCAqdjIsIHZvaWQgKmNtcCkKLSt7Ci0rCXJldHVybiAoKGNtcGZ1biljbXApKHYxLCB2Mik7Ci0r fQotKwotK3ZvaWQgcXNvcnQodm9pZCAqYmFzZSwgc2l6ZV90IG5lbCwgc2l6ZV90IHdpZHRoLCBj bXBmdW4gY21wKQotK3sKLSsJX19xc29ydF9yKGJhc2UsIG5lbCwgd2lkdGgsIHdyYXBwZXJfY21w LCBjbXApOwotK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2FkZC1zdXBwb3J0 LWZvci1TSUdFVl9USFJFQURfSUQtdGltZXJzLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMv YWRkLXN1cHBvcnQtZm9yLVNJR0VWX1RIUkVBRF9JRC10aW1lcnMucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGUyMGRmZjViYTBkNDUuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9tdXNsL3BhdGNoZXMvYWRkLXN1cHBvcnQtZm9yLVNJR0VWX1RIUkVBRF9JRC10aW1lcnMu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi1Gcm9tIDdjNzE3OTJlODc2OTE0 NTFmMmE2Yjc2MzQ4ZTgzYWQxODg5ZjFkY2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBKYW1lcyBZIEtuaWdodCA8anlrbmlnaHRAZ29vZ2xlLmNvbT4KLURhdGU6IFN1biwgMzAgSnVu IDIwMTkgMjE6NTU6MjAgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSF0gYWRkIHN1cHBvcnQgZm9yIFNJ R0VWX1RIUkVBRF9JRCB0aW1lcnMKLQotVGhpcyBpcyBsaWtlIFNJR0VWX1NJR05BTCwgYnV0IHRh cmdldGVkIHRvIGEgcGFydGljdWxhciB0aHJlYWQncwotdGlkLCByYXRoZXIgdGhhbiB0aGUgcHJv Y2Vzcy4KLS0tLQotIGluY2x1ZGUvc2lnbmFsLmggICAgICAgIHwgMTYgKysrKysrKysrKysrKy0t LQotIHNyYy90aW1lL3RpbWVyX2NyZWF0ZS5jIHwgIDggKysrKysrLS0KLSAyIGZpbGVzIGNoYW5n ZWQsIDE5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9pbmNs dWRlL3NpZ25hbC5oIGIvaW5jbHVkZS9zaWduYWwuaAotaW5kZXggZmJkZjY2N2IyLi45ZWQ5Mjll NGYgMTAwNjQ0Ci0tLS0gYS9pbmNsdWRlL3NpZ25hbC5oCi0rKysgYi9pbmNsdWRlL3NpZ25hbC5o Ci1AQCAtMTgwLDE0ICsxODAsMjQgQEAgc3RydWN0IHNpZ2V2ZW50IHsKLSAJdW5pb24gc2lndmFs IHNpZ2V2X3ZhbHVlOwotIAlpbnQgc2lnZXZfc2lnbm87Ci0gCWludCBzaWdldl9ub3RpZnk7Ci0t CXZvaWQgKCpzaWdldl9ub3RpZnlfZnVuY3Rpb24pKHVuaW9uIHNpZ3ZhbCk7Ci0tCXB0aHJlYWRf YXR0cl90ICpzaWdldl9ub3RpZnlfYXR0cmlidXRlczsKLS0JY2hhciBfX3BhZFs1Ni0zKnNpemVv Zihsb25nKV07Ci0rCXVuaW9uIHsKLSsJCWNoYXIgX19wYWRbNjQgLSAyKnNpemVvZihpbnQpIC0g c2l6ZW9mKHVuaW9uIHNpZ3ZhbCldOwotKwkJcGlkX3Qgc2lnZXZfbm90aWZ5X3RocmVhZF9pZDsK LSsJCXN0cnVjdCB7Ci0rCQkJdm9pZCAoKnNpZ2V2X25vdGlmeV9mdW5jdGlvbikodW5pb24gc2ln dmFsKTsKLSsJCQlwdGhyZWFkX2F0dHJfdCAqc2lnZXZfbm90aWZ5X2F0dHJpYnV0ZXM7Ci0rCQl9 IF9fc2V2X3RocmVhZDsKLSsJfSBfX3Nldl9maWVsZHM7Ci0gfTsKLSAKLSsjZGVmaW5lIHNpZ2V2 X25vdGlmeV90aHJlYWRfaWQgX19zZXZfZmllbGRzLnNpZ2V2X25vdGlmeV90aHJlYWRfaWQKLSsj ZGVmaW5lIHNpZ2V2X25vdGlmeV9mdW5jdGlvbiBfX3Nldl9maWVsZHMuX19zZXZfdGhyZWFkLnNp Z2V2X25vdGlmeV9mdW5jdGlvbgotKyNkZWZpbmUgc2lnZXZfbm90aWZ5X2F0dHJpYnV0ZXMgX19z ZXZfZmllbGRzLl9fc2V2X3RocmVhZC5zaWdldl9ub3RpZnlfYXR0cmlidXRlcwotKwotICNkZWZp bmUgU0lHRVZfU0lHTkFMIDAKLSAjZGVmaW5lIFNJR0VWX05PTkUgMQotICNkZWZpbmUgU0lHRVZf VEhSRUFEIDIKLSsjZGVmaW5lIFNJR0VWX1RIUkVBRF9JRCA0Ci0gCi0gaW50IF9fbGliY19jdXJy ZW50X3NpZ3J0bWluKHZvaWQpOwotIGludCBfX2xpYmNfY3VycmVudF9zaWdydG1heCh2b2lkKTsK LWRpZmYgLS1naXQgYS9zcmMvdGltZS90aW1lcl9jcmVhdGUuYyBiL3NyYy90aW1lL3RpbWVyX2Ny ZWF0ZS5jCi1pbmRleCA1ZGRmZGEyNzguLjRiZWYyMzkwNSAxMDA2NDQKLS0tLSBhL3NyYy90aW1l L3RpbWVyX2NyZWF0ZS5jCi0rKysgYi9zcmMvdGltZS90aW1lcl9jcmVhdGUuYwotQEAgLTcxLDEx ICs3MSwxNSBAQCBpbnQgdGltZXJfY3JlYXRlKGNsb2NraWRfdCBjbGssIHN0cnVjdCBzaWdldmVu dCAqcmVzdHJpY3QgZXZwLCB0aW1lcl90ICpyZXN0cmljdAotIAlzd2l0Y2ggKGV2cCA/IGV2cC0+ c2lnZXZfbm90aWZ5IDogU0lHRVZfU0lHTkFMKSB7Ci0gCWNhc2UgU0lHRVZfTk9ORToKLSAJY2Fz ZSBTSUdFVl9TSUdOQUw6Ci0rCWNhc2UgU0lHRVZfVEhSRUFEX0lEOgotIAkJaWYgKGV2cCkgewot IAkJCWtzZXYuc2lnZXZfdmFsdWUgPSBldnAtPnNpZ2V2X3ZhbHVlOwotIAkJCWtzZXYuc2lnZXZf c2lnbm8gPSBldnAtPnNpZ2V2X3NpZ25vOwotIAkJCWtzZXYuc2lnZXZfbm90aWZ5ID0gZXZwLT5z aWdldl9ub3RpZnk7Ci0tCQkJa3Nldi5zaWdldl90aWQgPSAwOwotKwkJCWlmIChldnAtPnNpZ2V2 X25vdGlmeSA9PSBTSUdFVl9USFJFQURfSUQpCi0rCQkJCWtzZXYuc2lnZXZfdGlkID0gZXZwLT5z aWdldl9ub3RpZnlfdGhyZWFkX2lkOwotKwkJCWVsc2UKLSsJCQkJa3Nldi5zaWdldl90aWQgPSAw OwotIAkJCWtzZXZwID0gJmtzZXY7Ci0gCQl9Ci0gCQlpZiAoc3lzY2FsbChTWVNfdGltZXJfY3Jl YXRlLCBjbGssIGtzZXZwLCAmdGltZXJpZCkgPCAwKQotQEAgLTEwNyw3ICsxMTEsNyBAQCBpbnQg dGltZXJfY3JlYXRlKGNsb2NraWRfdCBjbGssIHN0cnVjdCBzaWdldmVudCAqcmVzdHJpY3QgZXZw LCB0aW1lcl90ICpyZXN0cmljdAotIAotIAkJa3Nldi5zaWdldl92YWx1ZS5zaXZhbF9wdHIgPSAw OwotIAkJa3Nldi5zaWdldl9zaWdubyA9IFNJR1RJTUVSOwotLQkJa3Nldi5zaWdldl9ub3RpZnkg PSA0OyAvKiBTSUdFVl9USFJFQURfSUQgKi8KLSsJCWtzZXYuc2lnZXZfbm90aWZ5ID0gU0lHRVZf VEhSRUFEX0lEOwotIAkJa3Nldi5zaWdldl90aWQgPSB0ZC0+dGlkOwotIAkJaWYgKHN5c2NhbGwo U1lTX3RpbWVyX2NyZWF0ZSwgY2xrLCAma3NldiwgJnRpbWVyaWQpIDwgMCkKLSAJCQl0aW1lcmlk ID0gLTE7CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9hdm9pZC1zZXQtaWQtc2V0 cmxpbWl0LW1pc2JlaGF2aW9yLWFuZC1oYW5nLWluLXZmb3JrLnBhdGNoIGIvc3JjcGtncy9tdXNs L3BhdGNoZXMvYXZvaWQtc2V0LWlkLXNldHJsaW1pdC1taXNiZWhhdmlvci1hbmQtaGFuZy1pbi12 Zm9yay5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjFmMjM2YjNhNmNkMS4u MDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9hdm9pZC1zZXQtaWQtc2V0 cmxpbWl0LW1pc2JlaGF2aW9yLWFuZC1oYW5nLWluLXZmb3JrLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNDkgKzAsMCBAQAotRnJvbSBhNWFmZjE5NzJjOWUzOTgxNTY2NDE0YjA5YTI4ZTMzMWNj ZDJiZTVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlh c0BhZXJpZmFsLmN4PgotRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAxNTowOTo0NiAtMDQwMAotU3Vi amVjdDogW1BBVENIIDIzNy81MTNdIGF2b2lkIHNldCppZC9zZXRybGltaXQgbWlzYmVoYXZpb3Ig YW5kIGhhbmcgaW4KLSB2Zm9ya2VkL2Nsb25lZCBjaGlsZAotCi10YWtpbmcgdGhlIGRlcHJlY2F0 ZWQvZHJvcHBlZCB2Zm9yayBzcGVjIHN0cmljdGx5LCBkb2luZyBwcmV0dHkgbXVjaAotYW55dGhp bmcgYnV0IGV4ZWN2ZSBpbiB0aGUgY2hpbGQgaXMgd3JvbmcgYW5kIHVuZGVmaW5lZC4gaG93ZXZl ciwKLXRoZXNlIGFyZSBjb21tb25seSBuZWVkZWQgb3BlcmF0aW9ucyB0byBzZXR1cCB0aGUgY2hp bGQgc3RhdGUgYmVmb3JlCi1leGVjLCBhbmQgaGlzdG9yaWNhbCBpbXBsZW1lbnRhdGlvbnMgdG9s ZXJhdGVkIHRoZW0uCi0KLWZvciBzaW5nbGUtdGhyZWFkZWQgcGFyZW50cywgdGhlc2Ugb3BlcmF0 aW9ucyBhbHJlYWR5IHdvcmtlZCBhcwotZXhwZWN0ZWQgaW4gdGhlIHZmb3JrZWQgY2hpbGQuIGhv d2V2ZXIsIGR1ZSB0byB0aGUgbmVlZCBmb3IgX19zeW5jY2FsbAotdG8gc3luY2hyb25pemUgaWQv cmVzb3VyY2UgbGltaXQgY2hhbmdlcyBhbW9uZyBhbGwgdGhyZWFkcywgY2FsbGluZwotdGhlc2Ug ZnVuY3Rpb25zIGluIHRoZSB2Zm9ya2VkIGNoaWxkIG9mIGEgbXVsdGl0aHJlYWRlZCBwYXJlbnQg Y2F1c2VkCi1hIG1pc2RpcmVjdGVkIGJyb2FkY2FzdCBzaWduYWxpbmcgb2YgYWxsIHRocmVhZHMg aW4gdGhlIHBhcmVudC4gdGhlc2UKLXNpZ25hbHMgY291bGQga2lsbCB0aGUgcGFyZW50IGVudGly ZWx5IGlmIHRoZSBzeW5jY2FsbCBzaWduYWwgaGFuZGxlcgotaGFkIG5ldmVyIGJlZW4gaW5zdGFs bGVkIGluIHRoZSBwYXJlbnQsIG9yIGNvdWxkIGJlIGlnbm9yZWQgaWYgaXQgaGFkLAotb3IgY291 bGQgc2lnbmFsL2tpbGwgb25lIG9yIG1vcmUgdXR0ZXJseSB3cm9uZyBwcm9jZXNzZXMgaWYgdGhl IHBhcmVudAotYWxyZWFkeSB0ZXJtaW5hdGVkIChkdWUgdG8gdmZvcmsgc2VtYW50aWNzLCBvbmx5 IHBvc3NpYmxlIHZpYSBmYXRhbAotc2lnbmFsKSBhbmQgdGhlIHBhcmVudCB0aWRzIHdlcmUgcmVj eWNsZWQuIGluIGFueSBjYXNlLCB0aGUgZXhwZWN0ZWQKLW51bWJlciBvZiBzZW1hcGhvcmUgcG9z dHMgd291bGQgbmV2ZXIgaGFwcGVuLCBzbyB0aGUgY2hpbGQgd291bGQKLXBlcm1hbmVudGx5IGhh bmcgKHdpdGggYWxsIHNpZ25hbHMgYmxvY2tlZCkgd2FpdGluZyBmb3IgdGhlbS4KLQotdG8gbWl0 aWdhdGUgdGhpcywgYW5kIGFsc28gbWFrZSB0aGUgbm9ybWFsIHVzYWdlIGNhc2Ugd29yayBhcwot aW50ZW5kZWQsIHRyZWF0IHRoZSBjb25kaXRpb24gd2hlcmUgdGhlIGNhbGxlcidzIGFjdHVhbCB0 aWQgZG9lcyBub3QKLW1hdGNoIHRoZSB0aWQgaW4gaXRzIHRocmVhZCBzdHJ1Y3R1cmUgYXMgc2lu Z2xlLXRocmVhZGVkLCBhbmQgYnlwYXNzCi10aGUgZW50aXJlIHN5bmNjYWxsIGJyb2FkY2FzdCBv cGVyYXRpb24uCi0tLS0KLSBzcmMvdGhyZWFkL3N5bmNjYWxsLmMgfCAzICsrLQotIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3Ny Yy90aHJlYWQvc3luY2NhbGwuYyBiL3NyYy90aHJlYWQvc3luY2NhbGwuYwotaW5kZXggNjQ4YTZh ZDQuLmQ1OGM4NTFmIDEwMDY0NAotLS0tIGEvc3JjL3RocmVhZC9zeW5jY2FsbC5jCi0rKysgYi9z cmMvdGhyZWFkL3N5bmNjYWxsLmMKLUBAIC02Myw3ICs2Myw4IEBAIHZvaWQgX19zeW5jY2FsbCh2 b2lkICgqZnVuYykodm9pZCAqKSwgdm9pZCAqY3R4KQotIAlzZW1faW5pdCgmdGFyZ2V0X3NlbSwg MCwgMCk7Ci0gCXNlbV9pbml0KCZjYWxsZXJfc2VtLCAwLCAwKTsKLSAKLS0JaWYgKCFsaWJjLnRo cmVhZHNfbWludXNfMSkgZ290byBzaW5nbGVfdGhyZWFkZWQ7Ci0rCWlmICghbGliYy50aHJlYWRz X21pbnVzXzEgfHwgX19zeXNjYWxsKFNZU19nZXR0aWQpICE9IHNlbGYtPnRpZCkKLSsJCWdvdG8g c2luZ2xlX3RocmVhZGVkOwotIAotIAljYWxsYmFjayA9IGZ1bmM7Ci0gCWNvbnRleHQgPSBjdHg7 Ci0tLSAKLTIuNDEuMAotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9lcG9sbF9j cC5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2Vwb2xsX2NwLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA5MmY0NzU1MWFkOGViLi4wMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvbXVzbC9wYXRjaGVzL2Vwb2xsX2NwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjgg KzAsMCBAQAotRnJvbSAyYzAwZjk1YzFhYzdkZDUwZjUzZDllMzYxODQ3ZWJkMjUxM2M4ZGEwIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFs LmN4PgotRGF0ZTogU2F0LCAzIEFwciAyMDIxIDIxOjE2OjQxIC0wNDAwCi1TdWJqZWN0OiBbUEFU Q0hdIG1ha2UgZXBvbGxfW3Bdd2FpdCBhIGNhbmNlbGxhdGlvbiBwb2ludAotCi10aGlzIGlzIGEg TGludXgtc3BlY2lmaWMgZnVuY3Rpb24gYW5kIG5vdCBjb3ZlcmVkIGJ5IFBPU0lYJ3MKLXJlcXVp cmVtZW50cyBmb3Igd2hpY2ggaW50ZXJmYWNlcyBhcmUgY2FuY2VsbGF0aW9uIHBvaW50cywgYnV0 IGdsaWJjCi1tYWtlcyBpdCBvbmUgYW5kIGV4aXN0aW5nIHNvZnR3YXJlIHJlbGllcyBvbiBpdCBi ZWluZyBvbmUuCi0KLWF0IHNvbWUgcG9pbnQgYSByZXZpZXcgZm9yIHNpbWlsYXIgZnVuY3Rpb25z IHRoYXQgc2hvdWxkIGJlIG1hZGUKLWNhbmNlbGxhdGlvbiBwb2ludHMgc2hvdWxkIGJlIGRvbmUu Ci0KLWRpZmYgLS1naXQgc3JjL2xpbnV4L2Vwb2xsLmMgc3JjL2xpbnV4L2Vwb2xsLmMKLWluZGV4 IGRlZmY1YjEwLi45M2JhYTgxNCAxMDA2NDQKLS0tLSBhL3NyYy9saW51eC9lcG9sbC5jCi0rKysg Yi9zcmMvbGludXgvZXBvbGwuYwotQEAgLTI0LDkgKzI0LDkgQEAgaW50IGVwb2xsX2N0bChpbnQg ZmQsIGludCBvcCwgaW50IGZkMiwgc3RydWN0IGVwb2xsX2V2ZW50ICpldikKLSAKLSBpbnQgZXBv bGxfcHdhaXQoaW50IGZkLCBzdHJ1Y3QgZXBvbGxfZXZlbnQgKmV2LCBpbnQgY250LCBpbnQgdG8s IGNvbnN0IHNpZ3NldF90ICpzaWdzKQotIHsKLS0JaW50IHIgPSBfX3N5c2NhbGwoU1lTX2Vwb2xs X3B3YWl0LCBmZCwgZXYsIGNudCwgdG8sIHNpZ3MsIF9OU0lHLzgpOwotKwlpbnQgciA9IF9fc3lz Y2FsbF9jcChTWVNfZXBvbGxfcHdhaXQsIGZkLCBldiwgY250LCB0bywgc2lncywgX05TSUcvOCk7 Ci0gI2lmZGVmIFNZU19lcG9sbF93YWl0Ci0tCWlmIChyPT0tRU5PU1lTICYmICFzaWdzKSByID0g X19zeXNjYWxsKFNZU19lcG9sbF93YWl0LCBmZCwgZXYsIGNudCwgdG8pOwotKwlpZiAocj09LUVO T1NZUyAmJiAhc2lncykgciA9IF9fc3lzY2FsbF9jcChTWVNfZXBvbGxfd2FpdCwgZmQsIGV2LCBj bnQsIHRvKTsKLSAjZW5kaWYKLSAJcmV0dXJuIF9fc3lzY2FsbF9yZXQocik7Ci0gfQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMS5wYXRjaCBiL3Ny Y3BrZ3MvbXVzbC9wYXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTEucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDM5YWY3MmIwYzVmOTEuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9tdXNsL3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDU2ICswLDAgQEAKLUZyb20gMmQwYmJlNmM3ODg5MzhkMTMzMjYwOWMwMTRlZWViYzFk ZmY5NjZhYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJpY2ggRmVsa2VyIDxkYWxp YXNAYWVyaWZhbC5jeD4KLURhdGU6IE1vbiwgMjYgT2N0IDIwMjAgMTU6NTY6MjUgLTA0MDAKLVN1 YmplY3Q6IGZpeCBwdGhyZWFkX2NvbmRfd2FpdCBwYWlyZWQgd2l0aCB3aXRoIHByaW9yaXR5LWlu aGVyaXRhbmNlIG11dGV4Ci0KLXB0aHJlYWRfY29uZF93YWl0IGFycmFuZ2VkIGZvciByZXF1ZXVl ZCB3YWl0ZXJzIHRvIHdha2Ugd2hlbiB0aGUgbXV0ZXgKLWlzIHVubG9ja2VkIGJ5IHRlbXBvcmFy aWx5IGFkanVzdGluZyB0aGUgbXV0ZXgncyB3YWl0ZXIgY291bnQuIGNvbW1pdAotNTRjYTY3Nzk4 M2Q0NzUyOWJhYjg3NTIzMTVhYzFhMmI0OTg4ODg3MCBicm9rZSB0aGlzIHdoZW4gaW50cm9kdWNp bmcKLVBJIG11dGV4ZXMgYnkgcmVwdXJwb3NpbmcgdGhlIHdhaXRlciBjb3VudCBmaWVsZCBvZiB0 aGUgbXV0ZXgKLXN0cnVjdHVyZS4gc2luY2UgdGhlbiwgZm9yIFBJIG11dGV4ZXMsIHRoZSB3YWl0 ZXIgY291bnQgYWRqdXN0bWVudCB3YXMKLW1pc2ludGVycHJldGVkIGJ5IHRoZSBtdXRleCBsb2Nr aW5nIGNvZGUgYXMgaW5kaWNhdGluZyB0aGF0IHRoZSBtdXRleAotaXMgbm9uIGEgbm9uLXJlY292 ZXJhYmxlIHN0YXRlLgotCi1pdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBzcGVjaWFsLWNhc2UgUEkg bXV0ZXhlcyBoZXJlLCBidXQgaW5zdGVhZCBqdXN0Ci1kcm9wIGFsbCBhZGp1c3RtZW50IG9mIHRo ZSB3YWl0ZXJzIGNvdW50LCBhbmQgaW5zdGVhZCB1c2UgdGhlIGxvY2sKLXdvcmQgd2FpdGVycyBi aXQgZm9yIGFsbCBtdXRleCB0eXBlcy4gc2luY2UgdGhlIG11dGV4IGlzIGVpdGhlciBoZWxkCi1i eSB0aGUgY2FsbGVyIG9yIGluIHVucmVjb3ZlcmFibGUgc3RhdGUgYXQgdGhlIHRpbWUgdGhlIGJp dCBpcyBzZXQsIGl0Ci13aWxsIG5lY2Vzc2FyaWx5IHN0aWxsIGJlIHNldCBhdCB0aGUgdGltZSBv ZiBhbnkgc3Vic2VxdWVudCB2YWxpZAotdW5sb2NrIG9wZXJhdGlvbiwgYW5kIHRoaXMgd2lsbCBw cm9kdWNlIHRoZSBkZXNpcmVkIGVmZmVjdCBvZiB3YWtpbmcKLXRoZSBuZXh0IHdhaXRlci4KLQot aWYgd2FpdGVyIGNvdW50cyBhcmUgZW50aXJlbHkgZHJvcHBlZCBhdCBzb21lIHBvaW50IGluIHRo ZSBmdXR1cmUgdGhpcwotY29kZSBzaG91bGQgc3RpbGwgd29yayB3aXRob3V0IG1vZGlmaWNhdGlv bi4KLS0tLQotIHNyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jIHwgMTEgKysrKyst LS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQot Ci0obGltaXRlZCB0byAnc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMnKQotCi1k aWZmIC0tZ2l0IGEvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMgYi9zcmMvdGhy ZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYwotaW5kZXggZDE1MDEyNDAuLmY1ZjM3YWYxIDEw MDY0NAotLS0tIGEvc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMKLSsrKyBiL3Ny Yy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jCi1AQCAtMTQ2LDE0ICsxNDYsMTMgQEAg cmVsb2NrOgotIAotIAlpZiAob2xkc3RhdGUgPT0gV0FJVElORykgZ290byBkb25lOwotIAotLQlp ZiAoIW5vZGUubmV4dCkgYV9pbmMoJm0tPl9tX3dhaXRlcnMpOwotLQotIAkvKiBVbmxvY2sgdGhl IGJhcnJpZXIgdGhhdCdzIGhvbGRpbmcgYmFjayB0aGUgbmV4dCB3YWl0ZXIsIGFuZAotIAkgKiBl aXRoZXIgd2FrZSBpdCBvciByZXF1ZXVlIGl0IHRvIHRoZSBtdXRleC4gKi8KLS0JaWYgKG5vZGUu cHJldikKLS0JCXVubG9ja19yZXF1ZXVlKCZub2RlLnByZXYtPmJhcnJpZXIsICZtLT5fbV9sb2Nr LCBtLT5fbV90eXBlICYgMTI4KTsKLS0JZWxzZQotLQkJYV9kZWMoJm0tPl9tX3dhaXRlcnMpOwot KwlpZiAobm9kZS5wcmV2KSB7Ci0rCQlpbnQgdmFsID0gbS0+X21fbG9jazsKLSsJCWlmICh2YWw+ MCkgYV9jYXMoJm0tPl9tX2xvY2ssIHZhbCwgdmFsfDB4ODAwMDAwMDApOwotKwkJdW5sb2NrX3Jl cXVldWUoJm5vZGUucHJldi0+YmFycmllciwgJm0tPl9tX2xvY2ssIG0tPl9tX3R5cGUgJiAoOHwx MjgpKTsKLSsJfQotIAotIAkvKiBTaW5jZSBhIHNpZ25hbCB3YXMgY29uc3VtZWQsIGNhbmNlbGxh dGlvbiBpcyBub3QgcGVybWl0dGVkLiAqLwotIAlpZiAoZSA9PSBFQ0FOQ0VMRUQpIGUgPSAwOwot LS0gCi1jZ2l0IHYxLjIuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9maXgt cGktbXV0ZXgtY29uZC0yLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LXBpLW11dGV4 LWNvbmQtMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjM1NmUzOGI2MWY4 My4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9maXgtcGktbXV0ZXgt Y29uZC0yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotRnJvbSAyN2IyZmM5 ZDZkYjk1NjM1OTcyN2E2NmMyNjJmMWU2OTk5NTY2MGFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4PgotRGF0ZTogRnJpLCAzMCBP Y3QgMjAyMCAxMToyMTowNiAtMDQwMAotU3ViamVjdDogZml4IG1pc3Npbmctd2FrZSByZWdyZXNz aW9uIGluIHB0aHJlYWRfY29uZF93YWl0Ci0KLXRoZSByZWFzb25pbmcgaW4gY29tbWl0IDJkMGJi ZTZjNzg4OTM4ZDEzMzI2MDljMDE0ZWVlYmMxZGZmOTY2YWMgd2FzCi1ub3QgZW50aXJlbHkgY29y cmVjdC4gd2hpbGUgaXQncyB0cnVlIHRoYXQgc2V0dGluZyB0aGUgd2FpdGVycyBmbGFnCi1lbnN1 cmVzIHRoYXQgdGhlIG5leHQgdW5sb2NrIHdpbGwgcGVyZm9ybSBhIHdha2UsIGl0J3MgcG9zc2li bGUgdGhhdAotdGhlIHdha2UgaXMgY29uc3VtZWQgYnkgYSBtdXRleCB3YWl0ZXIgdGhhdCBoYXMg bm8gcmVsYXRpb25zaGlwIHdpdGgKLXRoZSBjb25kdmFyIHdhaXQgcXVldWUgYmVpbmcgcHJvY2Vz c2VkLCB3aGljaCB0aGVuIHRha2VzIHRoZSBtdXRleC4KLXdoZW4gdGhhdCB0aHJlYWQgc3Vic2Vx dWVudGx5IHVubG9ja3MsIGl0IHNlZXMgbm8gd2FpdGVycywgYW5kIGxlYXZlcwotdGhlIHJlc3Qg b2YgdGhlIGNvbmR2YXIgcXVldWUgc3R1Y2suCi0KLWJyaW5nIGJhY2sgdGhlIHdhaXRlciBjb3Vu dCBhZGp1c3RtZW50LCBidXQgc2tpcCBpdCBmb3IgUEkgbXV0ZXhlcywKLWZvciB3aGljaCBhIHN1 Y2Nlc3NmdWwgbG9jay1hZnRlci13YWl0aW5nIGFsd2F5cyBzZXRzIHRoZSB3YWl0ZXJzIGJpdC4K LWlmIGZ1dHVyZSBjaGFuZ2VzIGFyZSBtYWRlIHRvIGJyaW5nIHRoaXMgc2FtZSB3YWl0ZXJzLWJp dCBjb250cmFjdCB0bwotYWxsIGxvY2sgdHlwZXMsIHRoaXMgY2FuIGJlIHJldmVydGVkLgotLS0t Ci0gc3JjL3RocmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMgfCA1ICsrKysrCi0gMSBmaWxl IGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQotCi0obGltaXRlZCB0byAnc3JjL3RocmVhZC9wdGhy ZWFkX2NvbmRfdGltZWR3YWl0LmMnKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3RocmVhZC9wdGhyZWFk X2NvbmRfdGltZWR3YWl0LmMgYi9zcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYwot aW5kZXggZjVmMzdhZjEuLmEwY2Q0OTA0IDEwMDY0NAotLS0tIGEvc3JjL3RocmVhZC9wdGhyZWFk X2NvbmRfdGltZWR3YWl0LmMKLSsrKyBiL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2Fp dC5jCi1AQCAtMTQ2LDEyICsxNDYsMTcgQEAgcmVsb2NrOgotIAotIAlpZiAob2xkc3RhdGUgPT0g V0FJVElORykgZ290byBkb25lOwotIAotKwlpZiAoIW5vZGUubmV4dCAmJiAhKG0tPl9tX3R5cGUg JiA4KSkKLSsJCWFfaW5jKCZtLT5fbV93YWl0ZXJzKTsKLSsKLSAJLyogVW5sb2NrIHRoZSBiYXJy aWVyIHRoYXQncyBob2xkaW5nIGJhY2sgdGhlIG5leHQgd2FpdGVyLCBhbmQKLSAJICogZWl0aGVy IHdha2UgaXQgb3IgcmVxdWV1ZSBpdCB0byB0aGUgbXV0ZXguICovCi0gCWlmIChub2RlLnByZXYp IHsKLSAJCWludCB2YWwgPSBtLT5fbV9sb2NrOwotIAkJaWYgKHZhbD4wKSBhX2NhcygmbS0+X21f bG9jaywgdmFsLCB2YWx8MHg4MDAwMDAwMCk7Ci0gCQl1bmxvY2tfcmVxdWV1ZSgmbm9kZS5wcmV2 LT5iYXJyaWVyLCAmbS0+X21fbG9jaywgbS0+X21fdHlwZSAmICg4fDEyOCkpOwotKwl9IGVsc2Ug aWYgKCEhKG0tPl9tX3R5cGUgJiA4KSkgewotKwkJYV9kZWMoJm0tPl9tX3dhaXRlcnMpOwkJCi0g CX0KLSAKLSAJLyogU2luY2UgYSBzaWduYWwgd2FzIGNvbnN1bWVkLCBjYW5jZWxsYXRpb24gaXMg bm90IHBlcm1pdHRlZC4gKi8KLS0tIAotY2dpdCB2MS4yLjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9tdXNsL3BhdGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMy5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9w YXRjaGVzL2ZpeC1waS1tdXRleC1jb25kLTMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDJjYzk0M2YyNmY2YTYuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3Bh dGNoZXMvZml4LXBpLW11dGV4LWNvbmQtMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICsw LDAgQEAKLUZyb20gZDkxYTZjZjZlMzY5YTc5NTg3YzU2NjVmY2U5NjM1ZTU2MzRjYTIwMSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJpY2ggRmVsa2VyIDxkYWxpYXNAYWVyaWZhbC5j eD4KLURhdGU6IEZyaSwgMzAgT2N0IDIwMjAgMTY6NTA6MDggLTA0MDAKLVN1YmplY3Q6IGZpeCBl cnJvbmVvdXMgcHRocmVhZF9jb25kX3dhaXQgbXV0ZXggd2FpdGVyIGNvdW50IGxvZ2ljIGR1ZSB0 byB0eXBvCi0KLWludHJvZHVjZWQgaW4gY29tbWl0IDI3YjJmYzlkNmRiOTU2MzU5NzI3YTY2YzI2 MmYxZTY5OTk1NjYwYWEuCi0tLS0KLSBzcmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQu YyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK LQotKGxpbWl0ZWQgdG8gJ3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jJykKLQot ZGlmZiAtLWdpdCBhL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jIGIvc3JjL3Ro cmVhZC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMKLWluZGV4IGEwY2Q0OTA0Li42Yjc2MTQ1NSAx MDA2NDQKLS0tLSBhL3NyYy90aHJlYWQvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jCi0rKysgYi9z cmMvdGhyZWFkL3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYwotQEAgLTE1NSw3ICsxNTUsNyBAQCBy ZWxvY2s6Ci0gCQlpbnQgdmFsID0gbS0+X21fbG9jazsKLSAJCWlmICh2YWw+MCkgYV9jYXMoJm0t Pl9tX2xvY2ssIHZhbCwgdmFsfDB4ODAwMDAwMDApOwotIAkJdW5sb2NrX3JlcXVldWUoJm5vZGUu cHJldi0+YmFycmllciwgJm0tPl9tX2xvY2ssIG0tPl9tX3R5cGUgJiAoOHwxMjgpKTsKLS0JfSBl bHNlIGlmICghIShtLT5fbV90eXBlICYgOCkpIHsKLSsJfSBlbHNlIGlmICghKG0tPl9tX3R5cGUg JiA4KSkgewotIAkJYV9kZWMoJm0tPl9tX3dhaXRlcnMpOwkJCi0gCX0KLSAKLS0tIAotY2dpdCB2 MS4yLjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4LXN0cnZlcnNjbXAt Y29tcGFyaXNvbi1vZi1kaWdpdC1zZXF1ZW5jZS13aXRoLW5vbi5wYXRjaC5wYXRjaCBiL3NyY3Br Z3MvbXVzbC9wYXRjaGVzL2ZpeC1zdHJ2ZXJzY21wLWNvbXBhcmlzb24tb2YtZGlnaXQtc2VxdWVu Y2Utd2l0aC1ub24ucGF0Y2gucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUw ZjBiOGJmZmZmYzkuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvZml4 LXN0cnZlcnNjbXAtY29tcGFyaXNvbi1vZi1kaWdpdC1zZXF1ZW5jZS13aXRoLW5vbi5wYXRjaC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLUZyb20gYjUwZWI4YzM2YzIwZjk2 N2JkMGVkNzBjMGIwZGIzOGE0NTA4ODZiYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IFJpY2ggRmVsa2VyIDxkYWxpYXNAYWVyaWZhbC5jeD4KLURhdGU6IE1vbiwgNyBOb3YgMjAyMiAy MjoxNzo1NSAtMDUwMAotU3ViamVjdDogW1BBVENIXSBmaXggc3RydmVyc2NtcCBjb21wYXJpc29u IG9mIGRpZ2l0IHNlcXVlbmNlIHdpdGggbm9uLWRpZ2l0cwotCi10aGUgcnVsZSB0aGF0IGxvbmdl c3QgZGlnaXQgc2VxdWVuY2Ugbm90IGJlZ2lubmluZyB3aXRoIGEgemVybyBpcwotZ3JlYXRlciBv bmx5IGFwcGxpZXMgd2hlbiBib3RoIHNlcXVlbmNlcyBiZWluZyBjb21wYXJlZCBhcmUKLW5vbi1k ZWdlbmVyYXRlLiB0aGlzIGlzIHNwZWxsZWQgb3V0IGV4cGxpY2l0bHkgaW4gdGhlIG1hbiBwYWdl LCB3aGljaAotbWF5IGJlIGRlZW1lZCBhdXRob3JpdGF0aXZlIGZvciB0aGlzIG5vbnN0YW5kYXJk IGZ1bmN0aW9uOiAiSWYgb25lIG9yCi1ib3RoIG9mIHRoZXNlIGlzIGVtcHR5LCB0aGVuIHJldHVy biB3aGF0IHN0cmNtcCgzKSB3b3VsZCBoYXZlCi1yZXR1cm5lZC4uLiIKLQotd2Ugd2VyZSB3cm9u Z2x5IHRyZWF0aW5nIGFueSBzZXF1ZW5jZSBvZiBkaWdpdHMgbm90IGJlZ2lubmluZyB3aXRoIGEK LXplcm8gYXMgZ3JlYXRlciB0aGFuIGEgbm9uLWRpZ2l0IGluIHRoZSBvdGhlciBzdHJpbmcuCi0t LS0KLSBzcmMvc3RyaW5nL3N0cnZlcnNjbXAuYyB8IDYgKysrLS0tCi0gMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9zdHJp bmcvc3RydmVyc2NtcC5jIGIvc3JjL3N0cmluZy9zdHJ2ZXJzY21wLmMKLWluZGV4IDRkYWYyNzZk Li4xNmMxZGEyMiAxMDA2NDQKLS0tLSBhL3NyYy9zdHJpbmcvc3RydmVyc2NtcC5jCi0rKysgYi9z cmMvc3RyaW5nL3N0cnZlcnNjbXAuYwotQEAgLTE4LDkgKzE4LDkgQEAgaW50IHN0cnZlcnNjbXAo Y29uc3QgY2hhciAqbDAsIGNvbnN0IGNoYXIgKnIwKQotIAkJZWxzZSBpZiAoYyE9JzAnKSB6PTA7 Ci0gCX0KLSAKLS0JaWYgKGxbZHBdIT0nMCcgJiYgcltkcF0hPScwJykgewotLQkJLyogSWYgd2Un cmUgbm90IGxvb2tpbmcgYXQgYSBkaWdpdCBzZXF1ZW5jZSB0aGF0IGJlZ2FuCi0tCQkgKiB3aXRo IGEgemVybywgbG9uZ2VzdCBkaWdpdCBzdHJpbmcgaXMgZ3JlYXRlci4gKi8KLSsJaWYgKGxbZHBd LScxJzw5VSAmJiByW2RwXS0nMSc8OVUpIHsKLSsJCS8qIElmIHdlJ3JlIGxvb2tpbmcgYXQgbm9u LWRlZ2VuZXJhdGUgZGlnaXQgc2VxdWVuY2VzIHN0YXJ0aW5nCi0rCQkgKiB3aXRoIG5vbnplcm8g ZGlnaXRzLCBsb25nZXN0IGRpZ2l0IHN0cmluZyBpcyBncmVhdGVyLiAqLwotIAkJZm9yIChqPWk7 IGlzZGlnaXQobFtqXSk7IGorKykKLSAJCQlpZiAoIWlzZGlnaXQocltqXSkpIHJldHVybiAxOwot IAkJaWYgKGlzZGlnaXQocltqXSkpIHJldHVybiAtMTsKLS0tIAotMi40MS4wCi0KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2dldHRpZC5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRj aGVzL2dldHRpZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI4YmY1OTA1 Yjg4MC4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9nZXR0aWQucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1Gcm9tIGQ0OWNmMDc1NDFiYjU0YTVh YzdhZWMxZmVlYzg1MTRkYjMzZGI4ZWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBS aWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+Ci1EYXRlOiBNb24sIDE3IEF1ZyAyMDIwIDIw OjEyOjUzIC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIGFkZCBnZXR0aWQgZnVuY3Rpb24KLQotdGhp cyBpcyBhIHByZXJlcXVpc2l0ZSBmb3IgYWRkaXRpb24gb2Ygb3RoZXIgaW50ZXJmYWNlcyB0aGF0 IHVzZQota2VybmVsIHRpZHMsIGluY2x1ZGluZyBmdXRleCBhbmQgU0lHRVZfVEhSRUFEX0lELgot Ci10aGVyZSBpcyBzb21lIGFtYmlndWl0eSBhcyB0byB3aGV0aGVyIHRoZSBzZW1hbnRpYyByZXR1 cm4gdHlwZSBzaG91bGQKLWJlIGludCBvciBwaWRfdC4gZWl0aGVyIHdheSwgZnV0ZXggQVBJIGlt cG9zZXMgYSBjb250cmFjdCB0aGF0IHRoZQotdmFsdWVzIGZpdCBpbiBpbnQgKGV4Y2x1ZGluZyBz b21lIHVwcGVyIHJlc2VydmVkIGJpdHMpLiBnbGliYyB1c2VkCi1waWRfdCwgc28gaW4gdGhlIGlu dGVyZXN0IG9mIG5vdCBoYXZpbmcgZ3JhdHVpdG91cyBtaXNtYXRjaCAodGhlCi11bmRlcmx5aW5n IHR5cGVzIGFyZSB0aGUgc2FtZSBhbnl3YXkpLCBwaWRfdCBpcyB1c2VkIGhlcmUgYXMgd2VsbC4K LQotd2hpbGUgY29uY2VwdHVhbGx5IHRoaXMgaXMgYSBzeXNjYWxsLCB0aGUgY29weSBzdG9yZWQg aW4gdGhlIHRocmVhZAotc3RydWN0dXJlIGlzIGFsd2F5cyB2YWxpZCBpbiBhbGwgY29udGV4dHMg d2hlcmUgaXQncyB2YWxpZCB0byBjYWxsCi1saWJjIGZ1bmN0aW9ucywgc28gaXQncyB1c2VkIHRv IGF2b2lkIHRoZSBzeXNjYWxsLgotLS0tCi0gaW5jbHVkZS91bmlzdGQuaCAgIHwgMSArCi0gc3Jj L2xpbnV4L2dldHRpZC5jIHwgOCArKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRp b25zKCspCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9saW51eC9nZXR0aWQuYwotCi1kaWZmIC0t Z2l0IGEvaW5jbHVkZS91bmlzdGQuaCBiL2luY2x1ZGUvdW5pc3RkLmgKLWluZGV4IDdiY2JmZjk0 My4uMDc1ODRhMjNlIDEwMDY0NAotLS0tIGEvaW5jbHVkZS91bmlzdGQuaAotKysrIGIvaW5jbHVk ZS91bmlzdGQuaAotQEAgLTE5MCw2ICsxOTAsNyBAQCBpbnQgc3luY2ZzKGludCk7Ci0gaW50IGV1 aWRhY2Nlc3MoY29uc3QgY2hhciAqLCBpbnQpOwotIGludCBlYWNjZXNzKGNvbnN0IGNoYXIgKiwg aW50KTsKLSBzc2l6ZV90IGNvcHlfZmlsZV9yYW5nZShpbnQsIG9mZl90ICosIGludCwgb2ZmX3Qg Kiwgc2l6ZV90LCB1bnNpZ25lZCk7Ci0rcGlkX3QgZ2V0dGlkKHZvaWQpOwotICNlbmRpZgotIAot ICNpZiBkZWZpbmVkKF9MQVJHRUZJTEU2NF9TT1VSQ0UpIHx8IGRlZmluZWQoX0dOVV9TT1VSQ0Up Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpbnV4L2dldHRpZC5jIGIvc3JjL2xpbnV4L2dldHRpZC5jCi1u ZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi43MDc2NzEzN2UKLS0tLSAvZGV2 L251bGwKLSsrKyBiL3NyYy9saW51eC9nZXR0aWQuYwotQEAgLTAsMCArMSw4IEBACi0rI2RlZmlu ZSBfR05VX1NPVVJDRQotKyNpbmNsdWRlIDx1bmlzdGQuaD4KLSsjaW5jbHVkZSAicHRocmVhZF9p bXBsLmgiCi0rCi0rcGlkX3QgZ2V0dGlkKHZvaWQpCi0rewotKwlyZXR1cm4gX19wdGhyZWFkX3Nl bGYoKS0+dGlkOwotK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ltcGxlbWVu dF9yZWFscGF0aF9kaXJlY3RseV9pbnN0ZWFkX29mX3VzaW5nX3Byb2Nmc19yZWFkbGluay5wYXRj aCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2ltcGxlbWVudF9yZWFscGF0aF9kaXJlY3RseV9pbnN0 ZWFkX29mX3VzaW5nX3Byb2Nmc19yZWFkbGluay5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggNTY5YTFmNTJjN2NkOS4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211c2wv cGF0Y2hlcy9pbXBsZW1lbnRfcmVhbHBhdGhfZGlyZWN0bHlfaW5zdGVhZF9vZl91c2luZ19wcm9j ZnNfcmVhZGxpbmsucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMTkgKzAsMCBAQAotRnJvbSAy OWZmNzU5OWE0NDgyMzJmMjUyNzg0MWMyMzYyNjQzZDI0NmNlZTM2IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4PgotRGF0ZTogTW9u LCAzMCBOb3YgMjAyMCAxMjoxNDo0NyAtMDUwMAotU3ViamVjdDogW1BBVENIXSBpbXBsZW1lbnQg cmVhbHBhdGggZGlyZWN0bHkgaW5zdGVhZCBvZiB1c2luZyBwcm9jZnMgcmVhZGxpbmsKLQotaW5h YmlsaXR5IHRvIHVzZSByZWFscGF0aCBpbiBjaHJvb3QvY29udGFpbmVyIHdpdGhvdXQgcHJvY2Zz IGFjY2VzcwotYW5kIGF0IGVhcmx5IGJvb3QgcHJpb3IgdG8gbW91bnQgb2YgL3Byb2MgaGFzIGJl ZW4gYW4gb25nb2luZyBpc3N1ZSwKLWFuZCBpdCB0dXJucyBvdXQgcmVhbHBhdGggd2FzIG9uZSBv ZiB0aGUgbGFzdCByZW1haW5pbmcgaW50ZXJmYWNlcwotdGhhdCBuZWVkZWQgcHJvY2ZzIGZvciBp dHMgY29yZSBmdW5jdGlvbmFsaXR5LiBkdXJpbmcgaW52ZXN0aWdhdGlvbgotd2hpbGUgcmVpbXBs ZW1lbnRpbmcsIGl0IHdhcyBkZXRlcm1pbmVkIHRoYXQgdGhlcmUgd2VyZSBhbHNvIHNlcmlvdXMK LXByb2JsZW1zIHdpdGggdGhlIHByb2Nmcy1iYXNlZCBpbXBsZW1lbnRhdGlvbi4gbW9zdCBzZXJp b3VzbHkgaXQgd2FzCi11bnNhZmUgb24gcHJlLU9fUEFUSCBrZXJuZWxzLCBhbmQgdW5saWtlIG90 aGVyIHBsYWNlcyB3aGVyZSBPX1BBVEggd2FzCi11c2VkLCB0aGUgdW5zYWZldHkgd2FzIGhhcmQg b3IgaW1wb3NzaWJsZSB0byBmaXggYmVjYXVzZSBPX05PRk9MTE9XCi1jYW4ndCBiZSB1c2VkIChz aW5jZSB0aGUgd2hvbGUgcHVycG9zZSB3YXMgdG8gZm9sbG93IHN5bWxpbmtzKS4KLQotdGhlIG5l dyBpbXBsZW1lbnRhdGlvbiBpcyBhIGRpcmVjdCBvbmUsIHBlcmZvcm1pbmcgcmVhZGxpbmsgb24g ZWFjaAotcGF0aCBjb21wb25lbnQgdG8gcmVzb2x2ZSBpdC4gYW4gZXhwbGljaXQgc3RhY2ssIGFz IG9wcG9zZWQgdG8KLXJlY3Vyc2lvbiwgaXMgdXNlZCB0byByZXByZXNlbnQgdGhlIHJlbWFpbmlu ZyBjb21wb25lbnRzIHRvIGJlCi1wcm9jZXNzZWQuIHRoZSBzdGFjayBzdGFydHMgb3V0IGhvbGRp bmcganVzdCB0aGUgaW5wdXQgc3RyaW5nLCBhbmQKLXJlYWRpbmcgYSBsaW5rIHB1c2hlcyB0aGUg bGluayBjb250ZW50cyBvbnRvIHRoZSBzdGFjay4KLQotdW5saWtlIG1hbnkgb3RoZXIgaW1wbGVt ZW50YXRpb25zLCB0aGlzIG9uZSBkb2VzIG5vdCBjYWxsIGdldGN3ZAotaW5pdGlhbGx5IGZvciBy ZWxhdGl2ZSBwYXRobmFtZXMuIGluc3RlYWQgaXQgYWNjdW11bGF0ZXMgaW5pdGlhbCAuLgotY29t cG9uZW50cyB0byBiZSBhcHBsaWVkIHRvIHRoZSB3b3JraW5nIGRpcmVjdG9yeSBpZiB0aGUgcmVz dWx0IGlzCi1zdGlsbCBhIHJlbGF0aXZlIHBhdGguIHRoaXMgYXZvaWRzIGNhbGxpbmcgZ2V0Y3dk ICh3aGljaCBtYXkgZmFpbCkgYXQKLWFsbCB3aGVuIHN5bWxpbmsgdHJhdmVyc2FsIHdpbGwgZXZl bnR1YWxseSB5aWVsZCBhbiBhYnNvbHV0ZSBwYXRoLiBpdAotYWxzbyBkb2Vzbid0IHVzZSBhbnkg Zm9ybSBvZiBzdGF0IG9wZXJhdGlvbjsgaW5zdGVhZCBpdCBhcnJhbmdlcyBmb3IKLXJlYWRsaW5r IHRvIHRlbGwgaXQgd2hlbiBhIG5vbi1kaXJlY3RvcnkgaXMgdXNlZCBpbiBhIGNvbnRleHQgd2hl cmUgYQotZGlyZWN0b3J5IGlzIG5lZWRlZC4gdGhpcyBtaW5pbWl6ZXMgdGhlIG51bWJlciBvZiBz eXNjYWxscyBuZWVkZWQsCi1hdm9pZHMgYWNjZXNzaW5nIGlub2RlcyB3aGVuIHRoZSBkaXJlY3Rv cnkgdGFibGUgc3VmZmljZXMsIGFuZCByZWR1Y2VzCi10aGUgYW1vdW50IG9mIGNvZGUgcHVsbGVk IGluIGZvciBzdGF0aWMgbGlua2luZy4KLS0tLQotIHNyYy9taXNjL3JlYWxwYXRoLmMgfCAxNTkg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KLSAxIGZpbGUgY2hh bmdlZCwgMTM2IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv c3JjL21pc2MvcmVhbHBhdGguYyBiL3NyYy9taXNjL3JlYWxwYXRoLmMKLWluZGV4IGQyNzA4ZTU5 ZC4uZGI4Yjc0ZGM4IDEwMDY0NAotLS0tIGEvc3JjL21pc2MvcmVhbHBhdGguYwotKysrIGIvc3Jj L21pc2MvcmVhbHBhdGguYwotQEAgLTEsNDMgKzEsMTU2IEBACi0gI2luY2x1ZGUgPHN0ZGxpYi5o PgotICNpbmNsdWRlIDxsaW1pdHMuaD4KLS0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLS0jaW5jbHVk ZSA8ZmNudGwuaD4KLSAjaW5jbHVkZSA8ZXJybm8uaD4KLSAjaW5jbHVkZSA8dW5pc3RkLmg+Ci0g I2luY2x1ZGUgPHN0cmluZy5oPgotLSNpbmNsdWRlICJzeXNjYWxsLmgiCi0rCi0rc3RhdGljIHNp emVfdCBzbGFzaF9sZW4oY29uc3QgY2hhciAqcykKLSt7Ci0rCWNvbnN0IGNoYXIgKnMwID0gczsK LSsJd2hpbGUgKCpzID09ICcvJykgcysrOwotKwlyZXR1cm4gcy1zMDsKLSt9Ci0gCi0gY2hhciAq cmVhbHBhdGgoY29uc3QgY2hhciAqcmVzdHJpY3QgZmlsZW5hbWUsIGNoYXIgKnJlc3RyaWN0IHJl c29sdmVkKQotIHsKLS0JaW50IGZkOwotLQlzc2l6ZV90IHI7Ci0tCXN0cnVjdCBzdGF0IHN0MSwg c3QyOwotLQljaGFyIGJ1ZlsxNSszKnNpemVvZihpbnQpXTsKLS0JY2hhciB0bXBbUEFUSF9NQVhd OwotKwljaGFyIHN0YWNrW1BBVEhfTUFYKzFdOwotKwljaGFyIG91dHB1dFtQQVRIX01BWF07Ci0r CXNpemVfdCBwLCBxLCBsLCBsMCwgY250PTAsIG51cD0wOwotKwlpbnQgY2hlY2tfZGlyPTA7Ci0g Ci0gCWlmICghZmlsZW5hbWUpIHsKLSAJCWVycm5vID0gRUlOVkFMOwotIAkJcmV0dXJuIDA7Ci0g CX0KLSsJbCA9IHN0cm5sZW4oZmlsZW5hbWUsIHNpemVvZiBzdGFjayk7Ci0rCWlmICghbCkgewot KwkJZXJybm8gPSBFTk9FTlQ7Ci0rCQlyZXR1cm4gMDsKLSsJfQotKwlpZiAobCA+PSBQQVRIX01B WCkgZ290byB0b29sb25nOwotKwlwID0gc2l6ZW9mIHN0YWNrIC0gbCAtIDE7Ci0rCXEgPSAwOwot KwltZW1jcHkoc3RhY2srcCwgZmlsZW5hbWUsIGwrMSk7Ci0rCi0rCS8qIE1haW4gbG9vcC4gRWFj aCBpdGVyYXRpb24gcG9wcyB0aGUgbmV4dCBwYXJ0IGZyb20gc3RhY2sgb2YKLSsJICogcmVtYWlu aW5nIHBhdGggY29tcG9uZW50cyBhbmQgY29uc3VtZXMgYW55IHNsYXNoZXMgdGhhdCBmb2xsb3cu Ci0rCSAqIElmIG5vdCBhIGxpbmssIGl0J3MgbW92ZWQgdG8gb3V0cHV0OyBpZiBhIGxpbmssIGNv bnRlbnRzIGFyZQotKwkgKiBwdXNoZWQgdG8gdGhlIHN0YWNrLiAqLwotK3Jlc3RhcnQ6Ci0rCWZv ciAoOyA7IHArPXNsYXNoX2xlbihzdGFjaytwKSkgewotKwkJLyogSWYgc3RhY2sgc3RhcnRzIHdp dGggLywgdGhlIHdob2xlIGNvbXBvbmVudCBpcyAvIG9yIC8vCi0rCQkgKiBhbmQgdGhlIG91dHB1 dCBzdGF0ZSBtdXN0IGJlIHJlc2V0LiAqLwotKwkJaWYgKHN0YWNrW3BdID09ICcvJykgewotKwkJ CWNoZWNrX2Rpcj0wOwotKwkJCW51cD0wOwotKwkJCXE9MDsKLSsJCQlvdXRwdXRbcSsrXSA9ICcv JzsKLSsJCQlwKys7Ci0rCQkJLyogSW5pdGlhbCAvLyBpcyBzcGVjaWFsLiAqLwotKwkJCWlmIChz dGFja1twXSA9PSAnLycgJiYgc3RhY2tbcCsxXSAhPSAnLycpCi0rCQkJCW91dHB1dFtxKytdID0g Jy8nOwotKwkJCWNvbnRpbnVlOwotKwkJfQotKwotKwkJY2hhciAqeiA9IF9fc3RyY2hybnVsKHN0 YWNrK3AsICcvJyk7Ci0rCQlsMCA9IGwgPSB6LShzdGFjaytwKTsKLSAKLS0JZmQgPSBzeXNfb3Bl bihmaWxlbmFtZSwgT19QQVRIfE9fTk9OQkxPQ0t8T19DTE9FWEVDKTsKLS0JaWYgKGZkIDwgMCkg cmV0dXJuIDA7Ci0tCV9fcHJvY2ZkbmFtZShidWYsIGZkKTsKLSsJCWlmICghbCAmJiAhY2hlY2tf ZGlyKSBicmVhazsKLSAKLS0JciA9IHJlYWRsaW5rKGJ1ZiwgdG1wLCBzaXplb2YgdG1wIC0gMSk7 Ci0tCWlmIChyIDwgMCkgZ290byBlcnI7Ci0tCXRtcFtyXSA9IDA7Ci0rCQkvKiBTa2lwIGFueSAu IGNvbXBvbmVudCBidXQgcHJlc2VydmUgY2hlY2tfZGlyIHN0YXR1cy4gKi8KLSsJCWlmIChsPT0x ICYmIHN0YWNrW3BdPT0nLicpIHsKLSsJCQlwICs9IGw7Ci0rCQkJY29udGludWU7Ci0rCQl9Ci0g Ci0tCWZzdGF0KGZkLCAmc3QxKTsKLS0JciA9IHN0YXQodG1wLCAmc3QyKTsKLS0JaWYgKHI8MCB8 fCBzdDEuc3RfZGV2ICE9IHN0Mi5zdF9kZXYgfHwgc3QxLnN0X2lubyAhPSBzdDIuc3RfaW5vKSB7 Ci0tCQlpZiAoIXIpIGVycm5vID0gRUxPT1A7Ci0tCQlnb3RvIGVycjsKLSsJCS8qIENvcHkgbmV4 dCBjb21wb25lbnQgb250byBvdXRwdXQgYXQgbGVhc3QgdGVtcG9yYXJpbHksIHRvCi0rCQkgKiBj YWxsIHJlYWRsaW5rLCBidXQgd2FpdCB0byBhZHZhbmNlIG91dHB1dCBwb3NpdGlvbiB1bnRpbAot KwkJICogZGV0ZXJtaW5pbmcgaXQncyBub3QgYSBsaW5rLiAqLwotKwkJaWYgKHEgJiYgb3V0cHV0 W3EtMV0gIT0gJy8nKSB7Ci0rCQkJaWYgKCFwKSBnb3RvIHRvb2xvbmc7Ci0rCQkJc3RhY2tbLS1w XSA9ICcvJzsKLSsJCQlsKys7Ci0rCQl9Ci0rCQlpZiAocStsID49IFBBVEhfTUFYKSBnb3RvIHRv b2xvbmc7Ci0rCQltZW1jcHkob3V0cHV0K3EsIHN0YWNrK3AsIGwpOwotKwkJb3V0cHV0W3ErbF0g PSAwOwotKwkJcCArPSBsOwotKwotKwkJaW50IHVwID0gMDsKLSsJCWlmIChsMD09MiAmJiBzdGFj a1twLTJdPT0nLicgJiYgc3RhY2tbcC0xXT09Jy4nKSB7Ci0rCQkJdXAgPSAxOwotKwkJCS8qIEFu eSBub24tLi4gcGF0aCBjb21wb25lbnRzIHdlIGNvdWxkIGNhbmNlbCBzdGFydAotKwkJCSAqIGFm dGVyIG51cCByZXBldGl0aW9ucyBvZiB0aGUgMy1ieXRlIHN0cmluZyAiLi4vIjsKLSsJCQkgKiBp ZiB0aGVyZSBhcmUgbm9uZSwgYWNjdW11bGF0ZSAuLiBjb21wb25lbnRzIHRvCi0rCQkJICogbGF0 ZXIgYXBwbHkgdG8gY3dkLCBpZiBuZWVkZWQuICovCi0rCQkJaWYgKHEgPD0gMypudXApIHsKLSsJ CQkJbnVwKys7Ci0rCQkJCXEgKz0gbDsKLSsJCQkJY29udGludWU7Ci0rCQkJfQotKwkJCS8qIFdo ZW4gcHJldmlvdXMgY29tcG9uZW50cyBhcmUgYWxyZWFkeSBrbm93biB0byBiZQotKwkJCSAqIGRp cmVjdG9yaWVzLCBwcm9jZXNzaW5nIC4uIGNhbiBza2lwIHJlYWRsaW5rLiAqLwotKwkJCWlmICgh Y2hlY2tfZGlyKSBnb3RvIHNraXBfcmVhZGxpbms7Ci0rCQl9Ci0rCQlzc2l6ZV90IGsgPSByZWFk bGluayhvdXRwdXQsIHN0YWNrLCBwKTsKLSsJCWlmIChrPT1wKSBnb3RvIHRvb2xvbmc7Ci0rCQlp ZiAoIWspIHsKLSsJCQllcnJubyA9IEVOT0VOVDsKLSsJCQlyZXR1cm4gMDsKLSsJCX0KLSsJCWlm IChrPDApIHsKLSsJCQlpZiAoZXJybm8gIT0gRUlOVkFMKSByZXR1cm4gMDsKLStza2lwX3JlYWRs aW5rOgotKwkJCWNoZWNrX2RpciA9IDA7Ci0rCQkJaWYgKHVwKSB7Ci0rCQkJCXdoaWxlKHEgJiYg b3V0cHV0W3EtMV0hPScvJykgcS0tOwotKwkJCQlpZiAocT4xICYmIChxPjIgfHwgb3V0cHV0WzBd IT0nLycpKSBxLS07Ci0rCQkJCWNvbnRpbnVlOwotKwkJCX0KLSsJCQlpZiAobDApIHEgKz0gbDsK LSsJCQljaGVja19kaXIgPSBzdGFja1twXTsKLSsJCQljb250aW51ZTsKLSsJCX0KLSsJCWlmICgr K2NudCA9PSBTWU1MT09QX01BWCkgewotKwkJCWVycm5vID0gRUxPT1A7Ci0rCQkJcmV0dXJuIDA7 Ci0rCQl9Ci0rCi0rCQkvKiBJZiBsaW5rIGNvbnRlbnRzIGVuZCBpbiAvLCBzdHJpcCBhbnkgc2xh c2hlcyBhbHJlYWR5IG9uCi0rCQkgKiBzdGFjayB0byBhdm9pZCAvLT4vLyBvciAvLy0+Ly8vIG9y IHNwdXJpb3VzIHRvb2xvbmcuICovCi0rCQlpZiAoc3RhY2tbay0xXT09Jy8nKSB3aGlsZSAoc3Rh Y2tbcF09PScvJykgcCsrOwotKwkJcCAtPSBrOwotKwkJbWVtbW92ZShzdGFjaytwLCBzdGFjaywg ayk7Ci0rCi0rCQkvKiBTa2lwIHRoZSBzdGFjayBhZHZhbmNlbWVudCBpbiBjYXNlIHdlIGhhdmUg YSBuZXcKLSsJCSAqIGFic29sdXRlIGJhc2UgcGF0aC4gKi8KLSsJCWdvdG8gcmVzdGFydDsKLSAJ fQotIAotLQlfX3N5c2NhbGwoU1lTX2Nsb3NlLCBmZCk7Ci0tCXJldHVybiByZXNvbHZlZCA/IHN0 cmNweShyZXNvbHZlZCwgdG1wKSA6IHN0cmR1cCh0bXApOwotLWVycjoKLS0JX19zeXNjYWxsKFNZ U19jbG9zZSwgZmQpOwotKyAJb3V0cHV0W3FdID0gMDsKLSsKLSsJaWYgKG91dHB1dFswXSAhPSAn LycpIHsKLSsJCWlmICghZ2V0Y3dkKHN0YWNrLCBzaXplb2Ygc3RhY2spKSByZXR1cm4gMDsKLSsJ CWwgPSBzdHJsZW4oc3RhY2spOwotKwkJLyogQ2FuY2VsIGFueSBpbml0aWFsIC4uIGNvbXBvbmVu dHMuICovCi0rCQlwID0gMDsKLSsJCXdoaWxlIChudXAtLSkgewotKwkJCXdoaWxlKGw+MSAmJiBz dGFja1tsLTFdIT0nLycpIGwtLTsKLSsJCQlpZiAobD4xKSBsLS07Ci0rCQkJcCArPSAyOwotKwkJ CWlmIChwPHEpIHArKzsKLSsJCX0KLSsJCWlmIChxLXAgJiYgc3RhY2tbbC0xXSE9Jy8nKSBzdGFj a1tsKytdID0gJy8nOwotKwkJaWYgKGwgKyAocS1wKSArIDEgPj0gUEFUSF9NQVgpIGdvdG8gdG9v bG9uZzsKLSsJCW1lbW1vdmUob3V0cHV0ICsgbCwgb3V0cHV0ICsgcCwgcSAtIHAgKyAxKTsKLSsJ CW1lbWNweShvdXRwdXQsIHN0YWNrLCBsKTsKLSsJCXEgPSBsICsgcS1wOwotKwl9Ci0rCi0rCWlm IChyZXNvbHZlZCkgcmV0dXJuIG1lbWNweShyZXNvbHZlZCwgb3V0cHV0LCBxKzEpOwotKwllbHNl IHJldHVybiBzdHJkdXAob3V0cHV0KTsKLSsKLSt0b29sb25nOgotKwllcnJubyA9IEVOQU1FVE9P TE9ORzsKLSAJcmV0dXJuIDA7Ci0gfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMv aXNhc2NpaS5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL2lzYXNjaWkucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3MTlkMmVlMTg4ZmEuLjAwMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvaXNhc2NpaS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDIxICswLDAgQEAKLUZyb20gZTQ4ZTk5YzExMjI0NmZiNTgwNTk2NDA0MDc0NDQ1Y2IyNWQ3ODU4 ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT89QzM9ODlyaWNvPTIw Um9saW0/PSA8ZXJpY29uckBkaXNyb290Lm9yZz4KLURhdGU6IE1vbiwgNCBKYW4gMjAyMSAyMjo0 ODozNCAtMDMwMAotU3ViamVjdDogW1BBVENIXSBzdXBwcmVzcyBpc2FzY2lpKCkgbWFjcm8gZm9y IEMrKwotCi1hbmFsb2dvdXMgdG8gY29tbWl0IGE2MDQ1N2M4NGE0YjU5YWI1NjRkN2Y0YWJiNjYw YTcwMjgzYmE5OGQuCi0KLWRpZmYgLS1naXQgaW5jbHVkZS9jdHlwZS5oIGluY2x1ZGUvY3R5cGUu aAotaW5kZXggNzkzNjUzNmYuLjMyYmNlZjRkIDEwMDY0NAotLS0tIGEvaW5jbHVkZS9jdHlwZS5o Ci0rKysgYi9pbmNsdWRlL2N0eXBlLmgKLUBAIC02NCw3ICs2NCw5IEBAIGludCAgIGlzYXNjaWko aW50KTsKLSBpbnQgICB0b2FzY2lpKGludCk7Ci0gI2RlZmluZSBfdG9sb3dlcihhKSAoKGEpfDB4 MjApCi0gI2RlZmluZSBfdG91cHBlcihhKSAoKGEpJjB4NWYpCi0rI2lmbmRlZiBfX2NwbHVzcGx1 cwotICNkZWZpbmUgaXNhc2NpaShhKSAoMCA/IGlzYXNjaWkoYSkgOiAodW5zaWduZWQpKGEpIDwg MTI4KQotKyNlbmRpZgotIAotICNlbmRpZgotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3Bh dGNoZXMvbW9fbG9va3VwLnBhdGNoIGIvc3JjcGtncy9tdXNsL3BhdGNoZXMvbW9fbG9va3VwLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTg2ZTMzYzljNzAwLi4wMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL21vX2xvb2t1cC5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDE5ICswLDAgQEAKLURvIG5vdCBjcmFzaCB3aXRoIGEgTlVMTCBwb2ludGVy IGRlcmVmZXJlbmNlIHdoZW4gZGNuZ2V0dGV4dCgpCi1pcyBjYWxsZWQgd2l0aCBOVUxMIG1zZ2lk WzEyXSBhcmd1bWVudHMuCi0KLUZpeCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgv dm9pZC1wYWNrYWdlcy9pc3N1ZXMvMTIwNDIKLWFuZCBwcm9iYWJseSBvdGhlcnMuCi0KLQktLXh0 cmFlbWUKLQotLS0tIGEvc3JjL2xvY2FsZS9fX21vX2xvb2t1cC5jLm9yaWcJMjAxOS0wNi0yNiAw OTo1NTozNi44NDMwMTI2NzQgKzAyMDAKLSsrKyBiL3NyYy9sb2NhbGUvX19tb19sb29rdXAuYwky MDE5LTA2LTI2IDA5OjU2OjExLjUyOTQ0Mzk1NSArMDIwMAotQEAgLTEzLDcgKzEzLDcgQEAgY29u c3QgY2hhciAqX19tb19sb29rdXAoY29uc3Qgdm9pZCAqcCwgcwotIAl1aW50MzJfdCBiID0gMCwg biA9IHN3YXBjKG1vWzJdLCBzdyk7Ci0gCXVpbnQzMl90IG8gPSBzd2FwYyhtb1szXSwgc3cpOwot IAl1aW50MzJfdCB0ID0gc3dhcGMobW9bNF0sIHN3KTsKLS0JaWYgKG4+PXNpemUvNCB8fCBvPj1z aXplLTQqbiB8fCB0Pj1zaXplLTQqbiB8fCAoKG98dCklNCkpCi0rCWlmICghcyB8fCBuPj1zaXpl LzQgfHwgbz49c2l6ZS00Km4gfHwgdD49c2l6ZS00Km4gfHwgKChvfHQpJTQpKQotIAkJcmV0dXJu IDA7Ci0gCW8vPTQ7Ci0gCXQvPTQ7CmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2wvcGF0Y2hlcy9w cGMtcHRfcmVncy5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwYy1wdF9yZWdzLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTgxNTMyMWJmMGYxLi4wMDAwMDAwMDAw MDAwCi0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwYy1wdF9yZWdzLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMzggKzAsMCBAQAotY29tbWl0IGMyNTE4YThlZmI2NTA3ZjFiNDFjM2IxMmUw M2IwNmY4ZjIzMTdhMWYKLUF1dGhvcjogUmljaCBGZWxrZXIgPGRhbGlhc0BhZXJpZmFsLmN4Pgot RGF0ZTogICBTYXQgT2N0IDE5IDE1OjUzOjQzIDIwMTkgLTA0MDAKLQotICAgIHVzZSBzdHJ1Y3Qg cHRfcmVncyAqIHJhdGhlciB0aGFuIHZvaWQgKiBmb3IgcG93ZXJwY1s2NF0gc2lnY29udGV4dCBy ZWdzCi0gICAgCi0gICAgdGhpcyBpcyB0byBtYXRjaCB0aGUga2VybmVsIGFuZCBnbGliYyBpbnRl cmZhY2VzLiBoZXJlLCBzdHJ1Y3QgcHRfcmVncwotICAgIGlzIGFuIGluY29tcGxldGUgdHlwZSwg YnV0IHRoYXQncyBoYXJtbGVzcywgYW5kIGlmIGl0J3MgY29tcGxldGVkIGJ5Ci0gICAgaW5jbHVz aW9uIG9mIGFub3RoZXIgaGVhZGVyIHRoZW4gbWVtYmVycyBvZiB0aGUgc3RydWN0IHBvaW50ZWQg dG8gYnkKLSAgICB0aGUgcmVncyBtZW1iZXIgY2FuIGJlIGFjY2Vzc2VkIGRpcmVjdGx5IHdpdGhv dXQgZ29pbmcgdGhyb3VnaCBhIGNhc3QKLSAgICBvciBpbnRlcm1lZGlhdGUgcG9pbnRlciBvYmpl Y3QuCi0KLWRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvYml0cy9zaWduYWwuaCBiL2FyY2gvcG93 ZXJwYy9iaXRzL3NpZ25hbC5oCi1pbmRleCAwNmVmYjExYy4uYzFiZjNjYWYgMTAwNjQ0Ci0tLS0g YS9hcmNoL3Bvd2VycGMvYml0cy9zaWduYWwuaAotKysrIGIvYXJjaC9wb3dlcnBjL2JpdHMvc2ln bmFsLmgKLUBAIC0yOCw3ICsyOCw3IEBAIHN0cnVjdCBzaWdjb250ZXh0IHsKLSAJaW50IHNpZ25h bDsKLSAJdW5zaWduZWQgbG9uZyBoYW5kbGVyOwotIAl1bnNpZ25lZCBsb25nIG9sZG1hc2s7Ci0t CXZvaWQgKnJlZ3M7Ci0rCXN0cnVjdCBwdF9yZWdzICpyZWdzOwotIH07Ci0gCi0gdHlwZWRlZiBz dHJ1Y3QgewotZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYzY0L2JpdHMvc2lnbmFsLmggYi9hcmNo L3Bvd2VycGM2NC9iaXRzL3NpZ25hbC5oCi1pbmRleCA0ZGVjMjJhNS4uZDU0OTNiMTggMTAwNjQ0 Ci0tLS0gYS9hcmNoL3Bvd2VycGM2NC9iaXRzL3NpZ25hbC5oCi0rKysgYi9hcmNoL3Bvd2VycGM2 NC9iaXRzL3NpZ25hbC5oCi1AQCAtMzIsNyArMzIsNyBAQCB0eXBlZGVmIHN0cnVjdCBzaWdjb250 ZXh0IHsKLSAJaW50IF9wYWQwOwotIAl1bnNpZ25lZCBsb25nIGhhbmRsZXI7Ci0gCXVuc2lnbmVk IGxvbmcgb2xkbWFzazsKLS0Jdm9pZCAqcmVnczsKLSsJc3RydWN0IHB0X3JlZ3MgKnJlZ3M7Ci0g CWdyZWdzZXRfdCBncF9yZWdzOwotIAlmcHJlZ3NldF90IGZwX3JlZ3M7Ci0gCXZycmVnc2V0X3Qg KnZfcmVnczsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwYzY0LWZwcmVnc2V0 X3QucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9wcGM2NC1mcHJlZ3NldF90LnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjYxN2JhMGVmN2Q1Li4wMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvbXVzbC9wYXRjaGVzL3BwYzY0LWZwcmVnc2V0X3QucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1jb21taXQgYzlmNDhjZGUwYTIyNjQxY2UzZGFmNTQ1 OTZhOWVjZWJkYWI5MTQzNQotQXV0aG9yOiBSaWNoIEZlbGtlciA8ZGFsaWFzQGFlcmlmYWwuY3g+ Ci1EYXRlOiAgIFNhdCBPY3QgMTkgMTU6Mzk6NDUgMjAxOSAtMDQwMAotCi0gICAgZml4IGZwcmVn c2V0X3QgdHlwZSBvbiBwb3dlcnBjNjQKLSAgICAKLSAgICB0aGUgdXNlcnNwYWNlIHVjb250ZXh0 IEFQSSBoYXMgdGhpcyBhcyBhbiBhcnJheSByYXRoZXIgdGhhbiBhCi0gICAgc3RydWN0dXJlLgot ICAgIAotICAgIGNvbW1pdCAzYzU5YTg2ODk1NjYzNmJjOGFkYWZiMWIxNjhkMDkwODk3NjkyNTMy IGZpeGVkIHRoZQotICAgIGNvcnJlc3BvbmRpbmcgbWlzdGFrZSBmb3IgdnJyZWdzZXRfdCwgbmFt ZWx5IHRoYXQgdGhlIG9yaWdpbmFsCi0gICAgcG93ZXJwYzY0IHBvcnQgdXNlZCBhIG1peCBvZiB0 eXBlcyBmcm9tIDMyLWJpdCBwb3dlcnBjIGFuZCBwb3dlcnBjNjQKLSAgICByYXRoZXIgdGhhbiBt YXRjaGluZyB0aGUgNjQtYml0IHR5cGVzLgotCi1kaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjNjQv Yml0cy9zaWduYWwuaCBiL2FyY2gvcG93ZXJwYzY0L2JpdHMvc2lnbmFsLmgKLWluZGV4IDJjYzA2 MDRjLi40ZGVjMjJhNSAxMDA2NDQKLS0tLSBhL2FyY2gvcG93ZXJwYzY0L2JpdHMvc2lnbmFsLmgK LSsrKyBiL2FyY2gvcG93ZXJwYzY0L2JpdHMvc2lnbmFsLmgKLUBAIC05LDExICs5LDcgQEAKLSAj aWYgZGVmaW5lZChfR05VX1NPVVJDRSkgfHwgZGVmaW5lZChfQlNEX1NPVVJDRSkKLSAKLSB0eXBl ZGVmIHVuc2lnbmVkIGxvbmcgZ3JlZ190LCBncmVnc2V0X3RbNDhdOwotLQotLXR5cGVkZWYgc3Ry dWN0IHsKLS0JZG91YmxlIGZwcmVnc1szMl07Ci0tCWRvdWJsZSBmcHNjcjsKLS19IGZwcmVnc2V0 X3Q7Ci0rdHlwZWRlZiBkb3VibGUgZnByZWdzZXRfdFszM107Ci0gCi0gdHlwZWRlZiBzdHJ1Y3Qg ewotICNpZmRlZiBfX0dOVUNfXwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvcHBj bGUucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9wcGNsZS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggN2Q0OTMzOGE1YTBmMS4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL211c2wvcGF0Y2hlcy9wcGNsZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAg QEAKLUZyb20gMjBkZmMyMDAyNDgyYTIxYjk1NWI3MTBhZjExOWEwMWFlY2VlNzg0YiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgotRGF0ZTogVHVlLCAxNSBEZWMgMjAyMCAyMDo0MjoxNyArMDEwMAotU3ViamVjdDogW1BB VENIXSBhZGQgcHBjMzIgbGUgc3ViYXJjaAotCi0tLS0KLSBjb25maWd1cmUgfCAxICsKLSAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBjb25maWd1cmUgY29uZmln dXJlCi1pbmRleCA4NjgwMTI4Li5mMWNhNThlIDEwMDc1NQotLS0tIGEvY29uZmlndXJlCi0rKysg Yi9jb25maWd1cmUKLUBAIC02NDUsNiArNjQ1LDcgQEAgZmkKLSBpZiB0ZXN0ICIkQVJDSCIgPSAi cG93ZXJwYyIgOyB0aGVuCi0gdHJ5Y3BwaWYgIl9fTk9fRlBSU19fICYmICFfU09GVF9GTE9BVCIg IiR0IiAmJiBmYWlsIFwKLSAgICIkMDogZXJyb3I6IGNvbXBpbGVyJ3MgZmxvYXRpbmcgcG9pbnQg Y29uZmlndXJhdGlvbiBpcyB1bnN1cHBvcnRlZCIKLSt0cnljcHBpZiBfX0xJVFRMRV9FTkRJQU5f XyAiJHQiICYmIFNVQkFSQ0g9JHtTVUJBUkNIfWxlCi0gdHJ5Y3BwaWYgX1NPRlRfRkxPQVQgIiR0 IiAmJiBTVUJBUkNIPSR7U1VCQVJDSH0tc2YKLSBmaQotIAotLS0gCi0yLjI5LjIKLQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvd29ya19hcm91bmRfbGludXhfYnVnX2luX3JlYWRs aW5rX3N5c2NhbGxfd2l0aF96ZXJvX2J1ZmZlci5wYXRjaCBiL3NyY3BrZ3MvbXVzbC9wYXRjaGVz L3dvcmtfYXJvdW5kX2xpbnV4X2J1Z19pbl9yZWFkbGlua19zeXNjYWxsX3dpdGhfemVyb19idWZm ZXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyODY0MzJlYmVhMjMuLjAw MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvd29ya19hcm91bmRfbGludXhf YnVnX2luX3JlYWRsaW5rX3N5c2NhbGxfd2l0aF96ZXJvX2J1ZmZlci5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDU5ICswLDAgQEAKLUZyb20gZTJmYTcyMGJlNzAyNGNjZTRmYzQ4OWYzODc3NDc2 ZDM1ZGE0OGVlMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJpY2ggRmVsa2VyIDxk YWxpYXNAYWVyaWZhbC5jeD4KLURhdGU6IE1vbiwgMjMgTm92IDIwMjAgMTk6NDQ6MTkgLTA1MDAK LVN1YmplY3Q6IFtQQVRDSF0gd29yayBhcm91bmQgbGludXggYnVnIGluIHJlYWRsaW5rIHN5c2Nh bGwgd2l0aCB6ZXJvIGJ1ZmZlcgotIHNpemUKLQotbGludXggZmFpbHMgd2l0aCBFSU5WQUwgd2hl biBhIHplcm8gYnVmZmVyIHNpemUgaXMgcGFzc2VkIHRvIHRoZQotc3lzY2FsbC4gdGhpcyBpcyBu b24tY29uZm9ybWluZyBiZWNhdXNlIFBPU0lYIGFscmVhZHkgZGVmaW5lcyBFSU5WQUwKLXdpdGgg YSBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBtZWFuaW5nOiB0aGUgdGFyZ2V0IGlzIG5vdCBhIHN5 bWxpbmsuCi0KLXNpbmNlIHRoZSByZXF1ZXN0IGlzIHNlbWFudGljYWxseSB2YWxpZCwgcGF0Y2gg aXQgdXAgYnkgdXNpbmcgYSBkdW1teQotYnVmZmVyIG9mIGxlbmd0aCBvbmUsIGFuZCB0cnVuY2F0 aW5nIHRoZSByZXR1cm4gdmFsdWUgdG8gemVybyBpZiBpdAotc3VjY2VlZHMuCi0tLS0KLSBzcmMv dW5pc3RkL3JlYWRsaW5rLmMgICB8IDExICsrKysrKysrKy0tCi0gc3JjL3VuaXN0ZC9yZWFkbGlu a2F0LmMgfCAgOSArKysrKysrKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvdW5pc3RkL3JlYWRsaW5rLmMgYi9z cmMvdW5pc3RkL3JlYWRsaW5rLmMKLWluZGV4IGExNTJkNTI0OS4uMzJmNDUzN2Y5IDEwMDY0NAot LS0tIGEvc3JjL3VuaXN0ZC9yZWFkbGluay5jCi0rKysgYi9zcmMvdW5pc3RkL3JlYWRsaW5rLmMK LUBAIC00LDkgKzQsMTYgQEAKLSAKLSBzc2l6ZV90IHJlYWRsaW5rKGNvbnN0IGNoYXIgKnJlc3Ry aWN0IHBhdGgsIGNoYXIgKnJlc3RyaWN0IGJ1Ziwgc2l6ZV90IGJ1ZnNpemUpCi0gewotKwljaGFy IGR1bW15WzFdOwotKwlpZiAoIWJ1ZnNpemUpIHsKLSsJCWJ1ZiA9IGR1bW15OwotKwkJYnVmc2l6 ZSA9IDE7Ci0rCX0KLSAjaWZkZWYgU1lTX3JlYWRsaW5rCi0tCXJldHVybiBzeXNjYWxsKFNZU19y ZWFkbGluaywgcGF0aCwgYnVmLCBidWZzaXplKTsKLSsJaW50IHIgPSBfX3N5c2NhbGwoU1lTX3Jl YWRsaW5rLCBwYXRoLCBidWYsIGJ1ZnNpemUpOwotICNlbHNlCi0tCXJldHVybiBzeXNjYWxsKFNZ U19yZWFkbGlua2F0LCBBVF9GRENXRCwgcGF0aCwgYnVmLCBidWZzaXplKTsKLSsJaW50IHIgPSBf X3N5c2NhbGwoU1lTX3JlYWRsaW5rYXQsIEFUX0ZEQ1dELCBwYXRoLCBidWYsIGJ1ZnNpemUpOwot ICNlbmRpZgotKwlpZiAoYnVmID09IGR1bW15ICYmIHIgPiAwKSByID0gMDsKLSsJcmV0dXJuIF9f c3lzY2FsbF9yZXQocik7Ci0gfQotZGlmZiAtLWdpdCBhL3NyYy91bmlzdGQvcmVhZGxpbmthdC5j IGIvc3JjL3VuaXN0ZC9yZWFkbGlua2F0LmMKLWluZGV4IDlhZjQ1Y2Q1YS4uZjc5ZDNkMTQyIDEw MDY0NAotLS0tIGEvc3JjL3VuaXN0ZC9yZWFkbGlua2F0LmMKLSsrKyBiL3NyYy91bmlzdGQvcmVh ZGxpbmthdC5jCi1AQCAtMyw1ICszLDEyIEBACi0gCi0gc3NpemVfdCByZWFkbGlua2F0KGludCBm ZCwgY29uc3QgY2hhciAqcmVzdHJpY3QgcGF0aCwgY2hhciAqcmVzdHJpY3QgYnVmLCBzaXplX3Qg YnVmc2l6ZSkKLSB7Ci0tCXJldHVybiBzeXNjYWxsKFNZU19yZWFkbGlua2F0LCBmZCwgcGF0aCwg YnVmLCBidWZzaXplKTsKLSsJY2hhciBkdW1teVsxXTsKLSsJaWYgKCFidWZzaXplKSB7Ci0rCQli dWYgPSBkdW1teTsKLSsJCWJ1ZnNpemUgPSAxOwotKwl9Ci0rCWludCByID0gX19zeXNjYWxsKFNZ U19yZWFkbGlua2F0LCBmZCwgcGF0aCwgYnVmLCBidWZzaXplKTsKLSsJaWYgKGJ1ZiA9PSBkdW1t eSAmJiByID4gMCkgciA9IDA7Ci0rCXJldHVybiBfX3N5c2NhbGxfcmV0KHIpOwotIH0KZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbXVzbC90ZW1wbGF0ZQppbmRl eCA2Yzk4ZmFjMDk2MmU5Li45ZWJmODExOGVkNmQ4IDEwMDY0NAotLS0gYS9zcmNwa2dzL211c2wv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9tdXNsL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnbXVzbCcKIHBrZ25hbWU9bXVzbAotcmV2ZXJ0cz0iMS4yLjBfMSIK LXZlcnNpb249MS4xLjI0Ci1yZXZpc2lvbj0xOAordmVyc2lvbj0xLjIuNAorcmV2aXNpb249MQog YXJjaHM9IiotbXVzbCIKIGJvb3RzdHJhcD15ZXMKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUK QEAgLTEyLDcgKzExLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCIKIGhvbWVwYWdlPSJodHRwczovL211c2wubGliYy5vcmcv IgogZGlzdGZpbGVzPSJodHRwczovL211c2wubGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke3ZlcnNp b259LnRhci5neiIKLWNoZWNrc3VtPTEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNj MzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKK2NoZWNrc3VtPTdhMzVlYWUzM2Q1MzcyYTdj MGRhMTE4OGRlNzk4NzI2ZjY4ODI1NTEzYjdhZTNlYmU5N2FhYWE1MjExNGYwMzkKIAogbm9zdHJp cF9maWxlcz0ibGliYy5zbyIKIHNobGliX3Byb3ZpZGVzPSJsaWJjLnNvIgoKRnJvbSA2ZDk5MzBk OTQzYTkwMzJkNzgxNTE5NGE4Njc1MzE1OTU4NzdmYTJkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBka3dvIDxuaWNvbG9waWF6emFsdW5nYUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjkg TWFyIDIwMjMgMTU6MDg6MTYgLTA0MDAKU3ViamVjdDogW1BBVENIIDIvM10gYmFzZS1jaHJvb3Q6 IGJ1bXAgbXVzbC1kZXZlbCB2ZXJzaW9uCgotLS0KIHNyY3BrZ3MvYmFzZS1jaHJvb3QvdGVtcGxh dGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Jhc2UtY2hyb290L3RlbXBsYXRlIGIvc3JjcGtn cy9iYXNlLWNocm9vdC90ZW1wbGF0ZQppbmRleCBlNmYxNjg0ZWQzNzBkLi4zNTA2ZTcwNGYzZjA3 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Jhc2UtY2hyb290L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv YmFzZS1jaHJvb3QvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdiYXNlLWNocm9vdCcKIHBrZ25hbWU9YmFzZS1jaHJvb3QKLXZlcnNpb249MC42NwotcmV2aXNp b249MgordmVyc2lvbj0wLjY4CityZXZpc2lvbj0xCiBib290c3RyYXA9eWVzCiBidWlsZF9zdHls ZT1tZXRhCiBzaG9ydF9kZXNjPSJNaW5pbWFsIHNldCBvZiBwYWNrYWdlcyByZXF1aXJlZCBmb3Ig Y2hyb290IHdpdGggeGJwcy1zcmMiCkBAIC0xMSw3ICsxMSw3IEBAIGhvbWVwYWdlPSJodHRwOi8v d3d3LnZvaWRsaW51eC5vcmciCiByZXBvc2l0b3J5PWJvb3RzdHJhcAogCiBjYXNlICIkWEJQU19U QVJHRVRfTElCQyIgaW4KLQltdXNsKSBkZXBlbmRzPSJtdXNsLWRldmVsIjs7CisJbXVzbCkgZGVw ZW5kcz0ibXVzbC1kZXZlbD49MS4yLjRfMSI7OwogCSopIGRlcGVuZHM9ImdsaWJjLWRldmVsIGds aWJjLWxvY2FsZXMiOzsKIGVzYWMKIAoKRnJvbSBjMTA4YTkyMWE4NWI1YTc4NDViOTZjYjg1NmMx ODRlYThmZmYwMGFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBka3dvIDxuaWNvbG9w aWF6emFsdW5nYUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjkgTWFyIDIwMjMgMTU6MDk6MDEgLTA0 MDAKU3ViamVjdDogW1BBVENIIDMvM10gYmFzZS1kZXZlbDogYnVtcCBtdXNsLWRldmVsIHZlcnNp b24KCi0tLQogc3JjcGtncy9iYXNlLWRldmVsL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvYmFzZS1kZXZlbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmFzZS1kZXZlbC90ZW1wbGF0ZQppbmRl eCA1NzBmNjk5Y2E5NjAxLi4zMDNhN2Y1MGU0NzM4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Jhc2Ut ZGV2ZWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9iYXNlLWRldmVsL3RlbXBsYXRlCkBAIC0xLDcg KzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmFzZS1kZXZlbCcKIHBrZ25hbWU9YmFzZS1k ZXZlbAogdmVyc2lvbj0yMDE4MTAwMwotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5 bGU9bWV0YQogZGVwZW5kcz0iYXV0b2NvbmYgYXV0b21ha2UgYmMgYmludXRpbHMgYmlzb24gZWQg ZmxleCBnY2MgZ2V0dGV4dAogIGdyb2ZmIGxpYnRvb2wgbTQgbWFrZSBwYXRjaCBwa2ctY29uZmln IHRleGluZm8gdW56aXAgeHoiCkBAIC0xMiw2ICsxMiw2IEBAIGhvbWVwYWdlPSJodHRwOi8vd3d3 LnZvaWRsaW51eC5vcmcvIgogbGliMzJkaXNhYmxlZD15ZXMKIAogY2FzZSAiJFhCUFNfVEFSR0VU X01BQ0hJTkUiIGluCi0JKi1tdXNsKSBkZXBlbmRzKz0iIG11c2wtZGV2ZWwiOzsKKwkqLW11c2wp IGRlcGVuZHMrPSIgbXVzbC1kZXZlbD49MS4yLjRfMSI7OwogCSopIGRlcGVuZHMrPSIgZ2xpYmMt ZGV2ZWwiOzsKIGVzYWMK --===============0449472916904316856==--