From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 16455 invoked from network); 17 Dec 2022 11:34:48 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 17 Dec 2022 11:34:48 -0000 Content-Type: multipart/mixed; boundary="===============7923226111071132106==" MIME-Version: 1.0 Subject: =?utf8?b?UmU6IFtQUiBQQVRDSF0gW1VwZGF0ZWRdIG5vZGVqczogdXBkYXRlIHRvIDE2LjE5LjAu?= To: ml@inbox.vuxu.org From: paper42 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 17 Dec 2022 12:34:48 +0100 List-Id: Message-ID: <20221217113448.Jhz1de35adh1nzXpzl48wIaQwc-dyhkvthRZjtGjp5g@z> GitHub notification mails are now in MIME to allow UTF8. --===============7923226111071132106== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcGFwZXI0MiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vcGFw ZXI0Mi92b2lkLXBhY2thZ2VzIG5vZGVqcy0xNi4xOApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDExMTMKCm5vZGVqczogdXBkYXRlIHRvIDE2LjE5LjAu CjwhLS0gVW5jb21tZW50IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0aW9ucyB3aGlj aCBhcmUgbm90IGFwcGxpY2FibGUgLS0+DQoNCiMjIyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJ IHRlc3RlZCB0aGUgY2hhbmdlcyBpbiB0aGlzIFBSOiAqKk5PKioNCg0KY2MgQGFraWVyaWcgDQo8 IS0tDQojIyMjIE5ldyBwYWNrYWdlDQotIFRoaXMgbmV3IHBhY2thZ2UgY29uZm9ybXMgdG8gdGhl IFtwYWNrYWdlIHJlcXVpcmVtZW50c10oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjcGFja2FnZS1yZXF1aXJlbWVu dHMpOiAqKllFUyoqfCoqTk8qKg0KLS0+DQoNCjwhLS0gTm90ZTogSWYgdGhlIGJ1aWxkIGlzIGxp a2VseSB0byB0YWtlIG1vcmUgdGhhbiAyIGhvdXJzLCBwbGVhc2UgYWRkIGNpIHNraXAgdGFnIGFz IGRlc2NyaWJlZCBpbg0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjY29udGludW91cy1pbnRlZ3JhdGlvbg0KYW5k IHRlc3QgYXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwgYXQgbGVh c3Qgb25lIGNyb3NzIGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBpZiB0aGlzIFBSIGlzIG5v dCBza2lwcGluZyBDSS4NCi0tPg0KPCEtLQ0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0aW5nDQotIEkg YnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciBteSBuYXRpdmUgYXJjaGl0ZWN0dXJlLCAoQVJDSC1M SUJDKQ0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAo aWYgc3VwcG9ydGVkLiBtYXJrIGNyb3NzYnVpbGRzKToNCiAgLSBhYXJjaDY0LW11c2wNCiAgLSBh cm12N2wNCiAgLSBhcm12NmwtbXVzbA0KLS0+DQoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8v Z2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80MTExMy5wYXRjaCBpcyBh dHRhY2hlZA== --===============7923226111071132106== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-nodejs-16.18-41113.patch" RnJvbSAzYzk0OTIyMDFhMzBmODUzOWU2OGZlYTUzZTZjODBlNWE5Y2I3Yjg0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWwgVmFzaWxlayA8bWljaGFsQHZhc2lsZWsuY3o+CkRh dGU6IFN1biwgMjAgTm92IDIwMjIgMTk6NDM6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIXSBub2Rl anM6IHVwZGF0ZSB0byAxNi4xOS4wLgoKLS0tCiBzcmNwa2dzL25vZGVqcy9wYXRjaGVzL2Nyb3Nz LWFhcmNoNjQucGF0Y2ggICAgfCAgMjkgKwogLi4uL3BhdGNoZXMvcHBjLWZpeGVzLWZvci1vbGRl ci1tb2RlbHMucGF0Y2ggIHwgOTcyIC0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9ub2RlanMv cGF0Y2hlcy9weXRob24zLjExLnBhdGNoICAgICAgIHwgIDc0IC0tCiBzcmNwa2dzL25vZGVqcy90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIDQgZmlsZXMgY2hhbmdlZCwg MzMgaW5zZXJ0aW9ucygrKSwgMTA1MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL25vZGVqcy9wYXRjaGVzL2Nyb3NzLWFhcmNoNjQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL25vZGVqcy9wYXRjaGVzL3BwYy1maXhlcy1mb3Itb2xkZXItbW9kZWxzLnBh dGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9ub2RlanMvcGF0Y2hlcy9weXRob24zLjEx LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ub2RlanMvcGF0Y2hlcy9jcm9zcy1hYXJjaDY0 LnBhdGNoIGIvc3JjcGtncy9ub2RlanMvcGF0Y2hlcy9jcm9zcy1hYXJjaDY0LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2I5NmM4N2YyZmRiCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9ub2RlanMvcGF0Y2hlcy9jcm9zcy1hYXJjaDY0LnBhdGNoCkBA IC0wLDAgKzEsMjkgQEAKK0Zyb20gNGFjOTBjNDEwNjVkMzM4YzQzMDVjZjZkYzM5ZTMwODRiMjFh N2Y3OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pY2hhbCBWYXNpbGVrIDxtaWNo YWxAdmFzaWxlay5jej4KK0RhdGU6IFN1biwgMjAgTm92IDIwMjIgMTk6MjI6MDMgKzAxMDAKK1N1 YmplY3Q6IFtQQVRDSF0gUmV2ZXJ0ICJidWlsZDogZW5hYmxlIHBvaW50ZXIgYXV0aGVudGljYXRp b24gZm9yIGJyYW5jaAorIHByb3RlY3Rpb24gb24gYXJtNjQiCisKK1RoaXMgcmV2ZXJ0cyBjb21t aXQgOTM4MjEyZjNlNzRhNzRkMGI0MzY5NDFhYTI0ZTcxNDI1ZmY2NjZjNS4KKy0tLQorIGNvbmZp Z3VyZS5weSB8IDQgLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvY29uZmlndXJlLnB5IGIvY29uZmlndXJlLnB5CitpbmRleCBkMzE5MmNhMDRjLi4y ZDA0OWViOTM4IDEwMDc1NQorLS0tIGEvY29uZmlndXJlLnB5CisrKysgYi9jb25maWd1cmUucHkK K0BAIC0xMjQxLDEwICsxMjQxLDYgQEAgZGVmIGNvbmZpZ3VyZV9ub2RlKG8pOgorIAorICAgb1sn dmFyaWFibGVzJ11bJ3dhbnRfc2VwYXJhdGVfaG9zdF90b29sc2V0J10gPSBpbnQoY3Jvc3NfY29t cGlsaW5nKQorIAorLSAgIyBFbmFibGUgYnJhbmNoIHByb3RlY3Rpb24gZm9yIGFybTY0CistICBp ZiB0YXJnZXRfYXJjaCA9PSAnYXJtNjQnOgorLSAgICBvWydjZmxhZ3MnXSs9WyctbXNpZ24tcmV0 dXJuLWFkZHJlc3M9YWxsJ10KKy0KKyAgIGlmIG9wdGlvbnMubm9kZV9zbmFwc2hvdF9tYWluIGlz IG5vdCBOb25lOgorICAgICBpZiBvcHRpb25zLnNoYXJlZDoKKyAgICAgICAjIFRoaXMgc2hvdWxk IGJlIHBvc3NpYmxlIHRvIGZpeCwgYnV0IHdlIHdpbGwgbmVlZCB0byByZWZhY3RvciB0aGUKKy0t IAorMi4zOC4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvbm9kZWpzL3BhdGNoZXMvcHBjLWZpeGVz LWZvci1vbGRlci1tb2RlbHMucGF0Y2ggYi9zcmNwa2dzL25vZGVqcy9wYXRjaGVzL3BwYy1maXhl cy1mb3Itb2xkZXItbW9kZWxzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx ZDkzMzQxZTg3MjkuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL25vZGVqcy9wYXRjaGVzL3Bw Yy1maXhlcy1mb3Itb2xkZXItbW9kZWxzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTcyICsw LDAgQEAKLUZpeCBQb3dlclBDIENQVSBkZXRlY3Rpb24gYW5kIGNvZGVnZW4gdG8gd29yayB3aXRo IG1vcmUgcHJvY2Vzc29ycy4KLQotVGhpcyBwYXRjaCBkZWZpbmVzIHRoZSBjb3JyZWN0IG9wdGlv bmFsIFBvd2VyIElTQSBmZWF0dXJlcyB0aGF0IHRoZQotUFBDIGNvZGUgZ2VuZXJhdG9yIG5lZWRz IGluIG9yZGVyIHRvIHJ1biB3aXRob3V0IGNyYXNoaW5nIG9uIHYyLjAxCi1hbmQgb2xkZXIgQ1BV cyBzdWNoIGFzIFBQQyA5NzAgKEc1KSBvciBOWFAgZTY1MDAsIGFuZCB0byBydW4gbW9yZQotZWZm aWNpZW50bHkgb24gQ1BVcyB3aXRoIGZlYXR1cmVzIHRoYXQgd2VyZW4ndCBiZWluZyB1c2VkIGJl Zm9yZS4KLQotUG93ZXJQQyBJU0EgdjIuMDEgYW5kIG9sZGVyIENQVXMgZG9uJ3QgaGF2ZSBGUCBy b3VuZCB0byBpbnQgaW5zdHJ1Y3Rpb25zLAotYW5kIFBvd2VyUEMgSVNBIHYyLjA2IGFuZCBvbGRl ciBhcmUgbWlzc2luZyBzdXBwb3J0IGZvciB1bnNpZ25lZCA2NC1iaXQKLXRvL2Zyb20gZG91Ymxl LCBhcyB3ZWxsIGFzIGludGVnZXIgdG8vZnJvbSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0LgotCi1V c2UgdGhlIGN1cnJlbnQgUFBDXzVfUExVUyBDUFUgZmVhdHVyZSB0byBkZXRlcm1pbmUgd2hldGhl ciB0byBnZW5lcmF0ZQotRlAgcm91bmQgdG8gaW50LCBhbmQgdXNlIHRoZSBQUENfN19QTFVTIGZl YXR1cmUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIKLXRvIHVzZSB0aGUgdjIuMDYgSVNBIGluc3RydWN0 aW9ucyBvciB3aGV0aGVyIHRvIGdlbmVyYXRlIGFuIGFsdGVybmF0ZQotZ2VuZXJpYyBQUEMgc2Vx dWVuY2UgdG8gaGFuZGxlIHRoZSBjYXNlcyBvZiA2NC1iaXQgdW5zaWduZWQgaW50ZWdlcgotdG8v ZnJvbSBmbG9hdGluZyBwb2ludCwgaW50ZWdlcnMgdG8gc2luZ2xlLXByZWNpc2lvbiBmbG9hdGlu ZyBwb2ludCwKLWFuZCBsb2FkaW5nIGFuZCBzdG9yaW5nIDY0LWJpdCBpbnRlZ2VycyB3aXRoIGJ5 dGUgcmV2ZXJzYWwuCi0KLUFkZCBhIG5ldyBQUENfN19QTFVTX05YUCBmZWF0dXJlIGZvciB0aGUg cG9wY250IGFuZCBsZGJyeC9zdGRicngKLW9wY29kZXMgYWRkZWQgaW4gUG93ZXIgSVNBIHYyLjA2 LCB3aGljaCBhcmUgYWxzbyBwcmVzZW50IGluIHRoZSBOWFAKLWU1NTAwIGFuZCBlNjUwMCBjb3Jl cywgd2hpY2ggYXJlIG90aGVyd2lzZSBtaXNzaW5nIG1hbnkgb2YgdGhlCi1mZWF0dXJlcyBhZGRl ZCBzaW5jZSB2Mi4wMS4gVGhpcyBlbmFibGVzIE5YUCBjb3JlcyB0byB1c2UgYSBmZXcKLW1vcmUg ZmVhdHVyZXMuIEFkZGl0aW9uYWxseSwgYnJpbmcgYmFjayB0aGUgSVNFTEVDVCBmZWF0dXJlIGZs YWcsCi13aGljaCBpcyBhbHNvIHN1cHBvcnRlZCBieSBOWFAgY29yZXMsIGluY2x1ZGluZyBvbGRl ciBvbmVzLCBhbmQKLWhhcyBpdHMgb3duIEFUX0hXQ0FQMiBmZWF0dXJlIGZsYWcgaW4gTGludXgu Ci0KLUJ5IGRlZmluaW5nIGEgbmV3IElDQUNIRV9TTk9PUCBmZWF0dXJlIGJpdCB0byByZXBsYWNl IHRoZSB1c2Ugb2YgCi1QUENfNl9QTFVTLCB0aGUgbWVhbmluZyBvZiB0aGUgaW5zdHJ1Y3Rpb24g Y2FjaGUgZmx1c2hpbmcgZmFzdCBwYXRoLAotYW5kIHRoZSBDUFVzIHRoYXQgY2FuIHVzZSBpdCwg aXMgbW9yZSBjbGVhcmx5IGRlZmluZWQuIEluIGFkZGl0aW9uLAotZm9yIHRoZSBvdGhlciBQb3dl clBDIGNoaXBzLCB0aGUgbG9vcCB0byBmbHVzaCB0aGUgZGF0YSBhbmQgaW5zdHJ1Y3Rpb24KLWNh Y2hlIGJsb2NrcyBoYXMgYmVlbiBzcGxpdCBpbnRvIHR3byBsb29wcywgd2l0aCBhIHNpbmdsZSAi c3luYyIgYW5kCi0iaXN5bmMiIGFmdGVyIGVhY2ggbG9vcCwgd2hpY2ggc2hvdWxkIGJlIG1vcmUg ZWZmaWNpZW50LCBhbmQgYWxzbyBoYW5kbGVzCi10aGUgZmV3IENQVXMgd2l0aCBkaWZmZXJpbmcg ZGF0YSBhbmQgaW5zdHJ1Y3Rpb24gY2FjaGUgbGluZSBzaXplcy4KLQotSW4gdGhlIG1hY3JvIGFz c2VtYmxlciBtZXRob2RzLCBpbiBhZGRpdGlvbiB0byBwcm92aWRpbmcgYW4gYWx0ZXJuYXRlCi1w YXRoIGZvciBGUCBjb252ZXJzaW9uIG9wY29kZXMgYWRkZWQgaW4gUE9XRVI3IChJU0EgdjIuMDYp LCB1bm5lY2Vzc2FyeQotaW5zdHJ1Y3Rpb25zIHRvIG1vdmUgc3AgZG93biBhbmQgdGhlbiBpbW1l ZGlhdGVseSBiYWNrIHVwIHdlcmUgcmVwbGFjZWQKLXdpdGggbmVnYXRpdmUgb2Zmc2V0cyBmcm9t IHRoZSBjdXJyZW50IHNwLiBUaGlzIHNob3VsZCBiZSBmYXN0ZXIsIGFuZCBhbHNvCi1zcCBpcyBz dXBwb3NlZCB0byBwb2ludCB0byBhIGJhY2sgY2hhaW4gYXQgYWxsIHRpbWVzIChWOCBtYXkgbm90 IGRvIHRoaXMpLgotCi0tLS0gYS9kZXBzL3Y4L3NyYy9iYXNlL2NwdS5jYwkyMDIyLTAyLTA4IDA0 OjM3OjQ4LjAwMDAwMDAwMCAtMDgwMAotKysrIGIvZGVwcy92OC9zcmMvYmFzZS9jcHUuY2MJMjAy Mi0wMi0xOSAxNDozODozNy45OTcxNjE4MzUgLTA4MDAKLUBAIC0xNCwxNSArMTQsMTMgQEAKLSAj aWYgVjhfT1NfTElOVVgKLSAjaW5jbHVkZSA8bGludXgvYXV4dmVjLmg+ICAvLyBBVF9IV0NBUAot ICNlbmRpZgotLSNpZiBWOF9HTElCQ19QUkVSRVEoMiwgMTYpCi0rI2lmIFY4X0dMSUJDX1BSRVJF USgyLCAxNikgfHwgXAotKyAgICAoVjhfT1NfTElOVVggJiYgKFY4X0hPU1RfQVJDSF9QUEMgfHwg VjhfSE9TVF9BUkNIX1BQQzY0KSkKLSAjaW5jbHVkZSA8c3lzL2F1eHYuaD4gIC8vIGdldGF1eHZh bCgpCi0gI2VuZGlmCi0gI2lmIFY4X09TX1FOWAotICNpbmNsdWRlIDxzeXMvc3lzcGFnZS5oPiAg Ly8gY3B1aW5mbwotICNlbmRpZgotLSNpZiBWOF9PU19MSU5VWCAmJiAoVjhfSE9TVF9BUkNIX1BQ QyB8fCBWOF9IT1NUX0FSQ0hfUFBDNjQpCi0tI2luY2x1ZGUgPGVsZi5oPgotLSNlbmRpZgotICNp ZiBWOF9PU19BSVgKLSAjaW5jbHVkZSA8c3lzL3N5c3RlbWNmZy5oPiAgLy8gX3N5c3RlbV9jb25m aWd1cmF0aW9uCi0gI2lmbmRlZiBQT1dFUl84Ci1AQCAtNzcyLDU2ICs3NzAsNTUgQEAKLSAKLSAj aWZuZGVmIFVTRV9TSU1VTEFUT1IKLSAjaWYgVjhfT1NfTElOVVgKLS0gIC8vIFJlYWQgcHJvY2Vz c29yIGluZm8gZnJvbSAvcHJvYy9zZWxmL2F1eHYuCi0tICBjaGFyKiBhdXh2X2NwdV90eXBlID0g bnVsbHB0cjsKLS0gIEZJTEUqIGZwID0gYmFzZTo6Rm9wZW4oIi9wcm9jL3NlbGYvYXV4diIsICJy Iik7Ci0tICBpZiAoZnAgIT0gbnVsbHB0cikgewotLSNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAot LSAgICBFbGY2NF9hdXh2X3QgZW50cnk7Ci0tI2Vsc2UKLS0gICAgRWxmMzJfYXV4dl90IGVudHJ5 OwotLSNlbmRpZgotLSAgICBmb3IgKDs7KSB7Ci0tICAgICAgc2l6ZV90IG4gPSBmcmVhZCgmZW50 cnksIHNpemVvZihlbnRyeSksIDEsIGZwKTsKLS0gICAgICBpZiAobiA9PSAwIHx8IGVudHJ5LmFf dHlwZSA9PSBBVF9OVUxMKSB7Ci0tICAgICAgICBicmVhazsKLS0gICAgICB9Ci0tICAgICAgc3dp dGNoIChlbnRyeS5hX3R5cGUpIHsKLS0gICAgICAgIGNhc2UgQVRfUExBVEZPUk06Ci0tICAgICAg ICAgIGF1eHZfY3B1X3R5cGUgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihlbnRyeS5hX3VuLmFf dmFsKTsKLS0gICAgICAgICAgYnJlYWs7Ci0tICAgICAgICBjYXNlIEFUX0lDQUNIRUJTSVpFOgot LSAgICAgICAgICBpY2FjaGVfbGluZV9zaXplXyA9IGVudHJ5LmFfdW4uYV92YWw7Ci0tICAgICAg ICAgIGJyZWFrOwotLSAgICAgICAgY2FzZSBBVF9EQ0FDSEVCU0laRToKLS0gICAgICAgICAgZGNh Y2hlX2xpbmVfc2l6ZV8gPSBlbnRyeS5hX3VuLmFfdmFsOwotLSAgICAgICAgICBicmVhazsKLS0g ICAgICB9Ci0tICAgIH0KLS0gICAgYmFzZTo6RmNsb3NlKGZwKTsKLS0gIH0KLS0KLS0gIHBhcnRf ID0gLTE7Ci0tICBpZiAoYXV4dl9jcHVfdHlwZSkgewotLSAgICBpZiAoc3RyY21wKGF1eHZfY3B1 X3R5cGUsICJwb3dlcjEwIikgPT0gMCkgewotLSAgICAgIHBhcnRfID0ga1BQQ1Bvd2VyMTA7Ci0t ICAgIH0gZWxzZSBpZiAoc3RyY21wKGF1eHZfY3B1X3R5cGUsICJwb3dlcjkiKSA9PSAwKSB7Ci0t ICAgICAgcGFydF8gPSBrUFBDUG93ZXI5OwotLSAgICB9IGVsc2UgaWYgKHN0cmNtcChhdXh2X2Nw dV90eXBlLCAicG93ZXI4IikgPT0gMCkgewotLSAgICAgIHBhcnRfID0ga1BQQ1Bvd2VyODsKLS0g ICAgfSBlbHNlIGlmIChzdHJjbXAoYXV4dl9jcHVfdHlwZSwgInBvd2VyNyIpID09IDApIHsKLS0g ICAgICBwYXJ0XyA9IGtQUENQb3dlcjc7Ci0tICAgIH0gZWxzZSBpZiAoc3RyY21wKGF1eHZfY3B1 X3R5cGUsICJwb3dlcjYiKSA9PSAwKSB7Ci0tICAgICAgcGFydF8gPSBrUFBDUG93ZXI2OwotLSAg ICB9IGVsc2UgaWYgKHN0cmNtcChhdXh2X2NwdV90eXBlLCAicG93ZXI1IikgPT0gMCkgewotLSAg ICAgIHBhcnRfID0ga1BQQ1Bvd2VyNTsKLS0gICAgfSBlbHNlIGlmIChzdHJjbXAoYXV4dl9jcHVf dHlwZSwgInBwYzk3MCIpID09IDApIHsKLS0gICAgICBwYXJ0XyA9IGtQUENHNTsKLS0gICAgfSBl bHNlIGlmIChzdHJjbXAoYXV4dl9jcHVfdHlwZSwgInBwYzc0NTAiKSA9PSAwKSB7Ci0tICAgICAg cGFydF8gPSBrUFBDRzQ7Ci0tICAgIH0gZWxzZSBpZiAoc3RyY21wKGF1eHZfY3B1X3R5cGUsICJw YTZ0IikgPT0gMCkgewotLSAgICAgIHBhcnRfID0ga1BQQ1BBNlQ7Ci0tICAgIH0KLSsgIC8vIFJl YWQgcHJvY2Vzc29yIGluZm8gZnJvbSBnZXRhdXh2YWwoKSAobmVlZHMgYXQgbGVhc3QgZ2xpYmMg Mi4xOCBvciBtdXNsKS4KLSsgIGljYWNoZV9saW5lX3NpemVfID0gc3RhdGljX2Nhc3Q8aW50Pihn ZXRhdXh2YWwoQVRfSUNBQ0hFQlNJWkUpKTsKLSsgIGRjYWNoZV9saW5lX3NpemVfID0gc3RhdGlj X2Nhc3Q8aW50PihnZXRhdXh2YWwoQVRfRENBQ0hFQlNJWkUpKTsKLSsgIGNvbnN0IHVuc2lnbmVk IGxvbmcgaHdjYXAgPSBnZXRhdXh2YWwoQVRfSFdDQVApOwotKyAgY29uc3QgdW5zaWduZWQgbG9u ZyBod2NhcDIgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsKLSsgIGNvbnN0IGNoYXIqIHBsYXRmb3Jt ID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZ2V0YXV4dmFsKEFUX1BMQVRGT1JNKSk7 Ci0rCi0rICAvLyBOT1RFOiBBVF9IV0NBUCBJU0EgdmVyc2lvbiBiaXRzIGFyZW4ndCBjdW11bGF0 aXZlLCBzbyBpdCdzIG5lY2Vzc2FyeQotKyAgLy8gdG8gY29tcGFyZSBhZ2FpbnN0IGEgbWFzayBv ZiBhbGwgc3VwcG9ydGVkIHZlcnNpb25zIGFuZCBDUFVzLCB1cCB0bwotKyAgLy8gSVNBIHYyLjA2 LCB3aGljaCAqaXMqIHNldCBmb3IgbGF0ZXIgQ1BVcy4gSW4gY29udHJhc3QsIHRoZSBBVF9IV0NB UDIKLSsgIC8vIElTQSB2ZXJzaW9uIGJpdHMgZnJvbSB2Mi4wNyBvbndhcmQgYXJlIHNldCBjdW11 bGF0aXZlbHksIHNvIFBPV0VSMTAKLSsgIC8vIHdpbGwgc2V0IHRoZSBJU0EgdmVyc2lvbiBiaXRz IGZyb20gdjIuMDYgKGluIEFUX0hXQ0FQKSB0aHJvdWdoIHYzLjEuCi0rCi0rICAvLyBpLWNhY2hl IGNvaGVyZW5jeSByZXF1aXJlcyBQb3dlciBJU0EgdjIuMDIgb3IgbGF0ZXI7IGhhcyBpdHMgb3du IGZsYWcuCi0rICBoYXNfaWNhY2hlX3Nub29wXyA9IChod2NhcCAmIFBQQ19GRUFUVVJFX0lDQUNI RV9TTk9PUCk7Ci0rCi0rICAvLyByZXF1aXJlcyBQb3dlciBJU0EgdjIuMDMgb3IgbGF0ZXIsIG9y IHRoZSBIQVNfSVNFTCBiaXQgKGUuZy4gZTY1MDApLgotKyAgaGFzX2lzZWxfID0gKGh3Y2FwICYg KFBQQ19GRUFUVVJFX1BPV0VSNV9QTFVTIHwgUFBDX0ZFQVRVUkVfQVJDSF8yXzA1IHwKLSsgICAg ICBQUENfRkVBVFVSRV9QQTZUIHwgUFBDX0ZFQVRVUkVfUE9XRVI2X0VYVCB8IFBQQ19GRUFUVVJF X0FSQ0hfMl8wNikpIHx8Ci0rICAgICAgKGh3Y2FwMiAmIFBQQ19GRUFUVVJFMl9IQVNfSVNFTCk7 Ci0rCi0rICAvLyBod2NhcCBtYXNrIGZvciBvbGRlciA2NC1iaXQgUFBDIENQVXMgd2l0aCBBbHRp dmVjLCBlLmcuIEc1LCBDZWxsLgotKyAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcga0h3Y2Fw TWFza1BQQ0c1ID0KLSsgICAgICAoUFBDX0ZFQVRVUkVfNjQgfCBQUENfRkVBVFVSRV9IQVNfQUxU SVZFQyk7Ci0rCi0rICBpZiAoaHdjYXAyICYgUFBDX0ZFQVRVUkUyX0FSQ0hfM18xKSB7Ci0rICAg IHBhcnRfID0ga1BQQ1Bvd2VyMTA7Ci0rICB9IGVsc2UgaWYgKGh3Y2FwMiAmIFBQQ19GRUFUVVJF Ml9BUkNIXzNfMDApIHsKLSsgICAgcGFydF8gPSBrUFBDUG93ZXI5OwotKyAgfSBlbHNlIGlmICho d2NhcDIgJiBQUENfRkVBVFVSRTJfQVJDSF8yXzA3KSB7Ci0rICAgIHBhcnRfID0ga1BQQ1Bvd2Vy ODsKLSsgIH0gZWxzZSBpZiAoaHdjYXAgJiBQUENfRkVBVFVSRV9BUkNIXzJfMDYpIHsKLSsgICAg cGFydF8gPSBrUFBDUG93ZXI3OwotKyAgfSBlbHNlIGlmIChod2NhcCAmIFBQQ19GRUFUVVJFX0FS Q0hfMl8wNSkgewotKyAgICBwYXJ0XyA9IGtQUENQb3dlcjY7Ci0rICB9IGVsc2UgaWYgKGh3Y2Fw ICYgKFBQQ19GRUFUVVJFX1BPV0VSNSB8IFBQQ19GRUFUVVJFX1BPV0VSNV9QTFVTKSkgewotKyAg ICBwYXJ0XyA9IGtQUENQb3dlcjU7Ci0rICB9IGVsc2UgaWYgKGh3Y2FwICYgUFBDX0ZFQVRVUkVf UEE2VCkgewotKyAgICBwYXJ0XyA9IGtQUENQQTZUOwotKyAgfSBlbHNlIGlmIChzdHJjbXAocGxh dGZvcm0sICJwcGNlNjUwMCIpID09IDApIHsKLSsgICAgcGFydF8gPSBrUFBDRTY1MDA7Ci0rICB9 IGVsc2UgaWYgKHN0cmNtcChwbGF0Zm9ybSwgInBwY2U1NTAwIikgPT0gMCkgewotKyAgICBwYXJ0 XyA9IGtQUENFNTUwMDsKLSsgIH0gZWxzZSBpZiAoKGh3Y2FwICYga0h3Y2FwTWFza1BQQ0c1KSA9 PSBrSHdjYXBNYXNrUFBDRzUpIHsKLSsgICAgcGFydF8gPSBrUFBDRzU7Ci0rICB9IGVsc2UgaWYg KGh3Y2FwICYgUFBDX0ZFQVRVUkVfSEFTX0FMVElWRUMpIHsKLSsgICAgcGFydF8gPSBrUFBDRzQ7 Ci0rICB9IGVsc2UgewotKyAgICBwYXJ0XyA9IGtQUENHMzsKLSAgIH0KLSAKLSAjZWxpZiBWOF9P U19BSVgKLUBAIC04NDIsOSArODM5LDEzIEBACi0gICAgICAgcGFydF8gPSBrUFBDUG93ZXI2Owot ICAgICAgIGJyZWFrOwotICAgICBjYXNlIFBPV0VSXzU6Ci0rICAgIGRlZmF1bHQ6Ci0gICAgICAg cGFydF8gPSBrUFBDUG93ZXI1OwotICAgICAgIGJyZWFrOwotICAgfQotKwotKyAgaGFzX2ljYWNo ZV9zbm9vcF8gPSB0cnVlOwotKyAgaGFzX2lzZWxfID0gKHBhcnRfICE9IGtQUENQb3dlcjUpOyAg ICAvLyBpc2VsIHdhcyBhZGRlZCBpbiBQT1dFUjUrICh2Mi4wMykKLSAjZW5kaWYgIC8vIFY4X09T X0FJWAotICNlbmRpZiAgLy8gIVVTRV9TSU1VTEFUT1IKLSAjZW5kaWYgIC8vIFY4X0hPU1RfQVJD SF9QUEMgfHwgVjhfSE9TVF9BUkNIX1BQQzY0Ci0tLS0gYS9kZXBzL3Y4L3NyYy9iYXNlL2NwdS5o CTIwMjItMDItMDggMDQ6Mzc6NDguMDAwMDAwMDAwIC0wODAwCi0rKysgYi9kZXBzL3Y4L3NyYy9i YXNlL2NwdS5oCTIwMjItMDItMTkgMTQ6MzI6MDkuODMxNTc5MTMzIC0wODAwCi1AQCAtNzEsOSAr NzEsMTIgQEAKLSAgICAga1BQQ1Bvd2VyOCwKLSAgICAga1BQQ1Bvd2VyOSwKLSAgICAga1BQQ1Bv d2VyMTAsCi0rICAgIGtQUENHMywKLSAgICAga1BQQ0c0LAotICAgICBrUFBDRzUsCi0tICAgIGtQ UENQQTZUCi0rICAgIGtQUENQQTZULAotKyAgICBrUFBDRTU1MDAsCi0rICAgIGtQUENFNjUwMAot ICAgfTsKLSAKLSAgIC8vIEdlbmVyYWwgZmVhdHVyZXMKLUBAIC0xMTksNiArMTIyLDEwIEBACi0g ICBib29sIGlzX2ZwNjRfbW9kZSgpIGNvbnN0IHsgcmV0dXJuIGlzX2ZwNjRfbW9kZV87IH0KLSAg IGJvb2wgaGFzX21zYSgpIGNvbnN0IHsgcmV0dXJuIGhhc19tc2FfOyB9Ci0gCi0rICAvLyBQb3dl clBDIGZlYXR1cmVzCi0rICBib29sIGhhc19pY2FjaGVfc25vb3AoKSBjb25zdCB7IHJldHVybiBo YXNfaWNhY2hlX3Nub29wXzsgfQotKyAgYm9vbCBoYXNfaXNlbCgpIGNvbnN0IHsgcmV0dXJuIGhh c19pc2VsXzsgfQotKwotICBwcml2YXRlOgotICNpZiBkZWZpbmVkKFY4X09TX1NUQVJCT0FSRCkK LSAgIGJvb2wgU3RhcmJvYXJkRGV0ZWN0Q1BVKCk7Ci1AQCAtMTY2LDYgKzE3Myw4IEBACi0gICBi b29sIGhhc19ub25fc3RvcF90aW1lX3N0YW1wX2NvdW50ZXJfOwotICAgYm9vbCBpc19ydW5uaW5n X2luX3ZtXzsKLSAgIGJvb2wgaGFzX21zYV87Ci0rICBib29sIGhhc19pY2FjaGVfc25vb3BfOwot KyAgYm9vbCBoYXNfaXNlbF87Ci0gfTsKLSAKLSB9ICAvLyBuYW1lc3BhY2UgYmFzZQotLS0tIGEv ZGVwcy92OC9zcmMvYnVpbHRpbnMvcHBjL2J1aWx0aW5zLXBwYy5jYwkyMDIyLTAyLTA4IDA0OjM3 OjQ4LjAwMDAwMDAwMCAtMDgwMAotKysrIGIvZGVwcy92OC9zcmMvYnVpbHRpbnMvcHBjL2J1aWx0 aW5zLXBwYy5jYwkyMDIyLTAyLTE5IDE1OjE4OjM2LjM3MzAzMTQ1NyAtMDgwMAotQEAgLTI4MjMs NyArMjgyMyw3IEBACi0gICBfXyBsYnooc2NyYXRjaCwgTWVtT3BlcmFuZChzY3JhdGNoLCAwKSk7 Ci0gICBfXyBjbXBpKHNjcmF0Y2gsIE9wZXJhbmQ6Olplcm8oKSk7Ci0gCi0tICBpZiAoQ3B1RmVh dHVyZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVMpKSB7Ci0rICBpZiAoQ3B1RmVhdHVyZXM6Oklz U3VwcG9ydGVkKElTRUxFQ1QpKSB7Ci0gICAgIF9fIE1vdmUoc2NyYXRjaCwgdGh1bmtfcmVmKTsK LSAgICAgX18gaXNlbChlcSwgc2NyYXRjaCwgZnVuY3Rpb25fYWRkcmVzcywgc2NyYXRjaCk7Ci0g ICB9IGVsc2UgewotLS0tIGEvZGVwcy92OC9zcmMvY29kZWdlbi9wcGMvbWFjcm8tYXNzZW1ibGVy LXBwYy5jYwkyMDIyLTAyLTE5IDE4OjQ1OjQ0LjY4NzU5MzE5NCAtMDgwMAotKysrIGIvZGVwcy92 OC9zcmMvY29kZWdlbi9wcGMvbWFjcm8tYXNzZW1ibGVyLXBwYy5jYwkyMDIyLTAyLTE5IDE4OjMz OjE1LjA2MDY3NDM4OSAtMDgwMAotQEAgLTkyNSwxMyArOTI1LDI1IEBACi0gCi0gdm9pZCBUdXJi b0Fzc2VtYmxlcjo6Q29udmVydEludFRvRmxvYXQoUmVnaXN0ZXIgc3JjLCBEb3VibGVSZWdpc3Rl ciBkc3QpIHsKLSAgIE1vdkludFRvRG91YmxlKGRzdCwgc3JjLCByMCk7Ci0tICBmY2ZpZHMoZHN0 LCBkc3QpOwotKwotKyAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChQUENfN19QTFVTKSkg ewotKyAgICBmY2ZpZHMoZHN0LCBkc3QpOwotKyAgfSBlbHNlIHsKLSsgICAgZmNmaWQoZHN0LCBk c3QpOwotKyAgICBmcnNwKGRzdCwgZHN0KTsKLSsgIH0KLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2Vt Ymxlcjo6Q29udmVydFVuc2lnbmVkSW50VG9GbG9hdChSZWdpc3RlciBzcmMsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3VibGVSZWdpc3RlciBkc3Qp IHsKLSAgIE1vdlVuc2lnbmVkSW50VG9Eb3VibGUoZHN0LCBzcmMsIHIwKTsKLS0gIGZjZmlkcyhk c3QsIGRzdCk7Ci0rCi0rICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVMp KSB7Ci0rICAgIGZjZmlkcyhkc3QsIGRzdCk7Ci0rICB9IGVsc2UgewotKyAgICBmY2ZpZChkc3Qs IGRzdCk7Ci0rICAgIGZyc3AoZHN0LCBkc3QpOwotKyAgfQotIH0KLSAKLSAjaWYgVjhfVEFSR0VU X0FSQ0hfUFBDNjQKLUBAIC05NDMsMjAgKzk1NSw1MiBAQAotIAotIHZvaWQgVHVyYm9Bc3NlbWJs ZXI6OkNvbnZlcnRVbnNpZ25lZEludDY0VG9GbG9hdChSZWdpc3RlciBzcmMsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvdWJsZVJlZ2lzdGVyIGRv dWJsZV9kc3QpIHsKLS0gIE1vdkludDY0VG9Eb3VibGUoZG91YmxlX2RzdCwgc3JjKTsKLS0gIGZj ZmlkdXMoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0rICBpZiAoQ3B1RmVhdHVyZXM6OklzU3Vw cG9ydGVkKFBQQ183X1BMVVMpKSB7Ci0rICAgIE1vdkludDY0VG9Eb3VibGUoZG91YmxlX2RzdCwg c3JjKTsKLSsgICAgZmNmaWR1cyhkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgIH0gZWxzZSB7 Ci0rICAgIENvbnZlcnRVbnNpZ25lZEludDY0VG9Eb3VibGUoc3JjLCBkb3VibGVfZHN0KTsKLSsg ICAgZnJzcChkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgIH0KLSB9Ci0gCi0gdm9pZCBUdXJi b0Fzc2VtYmxlcjo6Q29udmVydFVuc2lnbmVkSW50NjRUb0RvdWJsZShSZWdpc3RlciBzcmMsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3VibGVS ZWdpc3RlciBkb3VibGVfZHN0KSB7Ci0tICBNb3ZJbnQ2NFRvRG91YmxlKGRvdWJsZV9kc3QsIHNy Yyk7Ci0tICBmY2ZpZHUoZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0rICBpZiAoQ3B1RmVhdHVy ZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVMpKSB7Ci0rICAgIE1vdkludDY0VG9Eb3VibGUoZG91 YmxlX2RzdCwgc3JjKTsKLSsgICAgZmNmaWR1KGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAg fSBlbHNlIHsKLSsgICAgTGFiZWwgbmVnYXRpdmU7Ci0rICAgIExhYmVsIGRvbmU7Ci0rICAgIGNt cGkoc3JjLCBPcGVyYW5kOjpaZXJvKCkpOwotKyAgICBibHQoJm5lZ2F0aXZlKTsKLSsgICAgc3Rk KHNyYywgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0rICAgIG5vcChHUk9VUF9FTkRJ TkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0rICAgIGxmZChkb3VibGVfZHN0LCBN ZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSsgICAgZmNmaWQoZG91YmxlX2RzdCwgZG91 YmxlX2RzdCk7Ci0rICAgIGIoJmRvbmUpOwotKyAgICBiaW5kKCZuZWdhdGl2ZSk7Ci0rICAgIC8v IE5vdGU6IEdDQyBzYXZlcyB0aGUgbG93ZXN0IGJpdCwgdGhlbiBPUnMgaXQgYWZ0ZXIgc2hpZnRp bmcgcmlnaHQgMSBiaXQsCi0rICAgIC8vIHByZXN1bWFibHkgZm9yIGJldHRlciByb3VuZGluZy4g VGhpcyB2ZXJzaW9uIG9ubHkgc2hpZnRzIHJpZ2h0IDEgYml0LgotKyAgICBzcmRpKHIwLCBzcmMs IE9wZXJhbmQoMSkpOwotKyAgICBzdGQocjAsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkp OwotKyAgICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgot KyAgICBsZmQoZG91YmxlX2RzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0rICAg IGZjZmlkKGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgICBmYWRkKGRvdWJsZV9kc3QsIGRv dWJsZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgICBiaW5kKCZkb25lKTsKLSsgICB9Ci0gfQotIAot IHZvaWQgVHVyYm9Bc3NlbWJsZXI6OkNvbnZlcnRJbnQ2NFRvRmxvYXQoUmVnaXN0ZXIgc3JjLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG91YmxlUmVnaXN0ZXIg ZG91YmxlX2RzdCkgewotICAgTW92SW50NjRUb0RvdWJsZShkb3VibGVfZHN0LCBzcmMpOwotLSAg ZmNmaWRzKGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgaWYgKENwdUZlYXR1cmVzOjpJc1N1 cHBvcnRlZChQUENfN19QTFVTKSkgewotKyAgICBmY2ZpZHMoZG91YmxlX2RzdCwgZG91YmxlX2Rz dCk7Ci0rICB9IGVsc2UgewotKyAgICBmY2ZpZChkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsg ICAgZnJzcChkb3VibGVfZHN0LCBkb3VibGVfZHN0KTsKLSsgIH0KLSB9Ci0gI2VuZGlmCi0gCi1A QCAtOTg2LDE1ICsxMDMwLDU2IEBACi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6Q29udmVydERvdWJs ZVRvVW5zaWduZWRJbnQ2NCgKLSAgICAgY29uc3QgRG91YmxlUmVnaXN0ZXIgZG91YmxlX2lucHV0 LCBjb25zdCBSZWdpc3RlciBkc3QsCi0gICAgIGNvbnN0IERvdWJsZVJlZ2lzdGVyIGRvdWJsZV9k c3QsIEZQUm91bmRpbmdNb2RlIHJvdW5kaW5nX21vZGUpIHsKLS0gIGlmIChyb3VuZGluZ19tb2Rl ID09IGtSb3VuZFRvWmVybykgewotLSAgICBmY3RpZHV6KGRvdWJsZV9kc3QsIGRvdWJsZV9pbnB1 dCk7Ci0rICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVMpKSB7Ci0rICAg IGlmIChyb3VuZGluZ19tb2RlID09IGtSb3VuZFRvWmVybykgewotKyAgICAgIGZjdGlkdXooZG91 YmxlX2RzdCwgZG91YmxlX2lucHV0KTsKLSsgICAgfSBlbHNlIHsKLSsgICAgICBTZXRSb3VuZGlu Z01vZGUocm91bmRpbmdfbW9kZSk7Ci0rICAgICAgZmN0aWR1KGRvdWJsZV9kc3QsIGRvdWJsZV9p bnB1dCk7Ci0rICAgICAgUmVzZXRSb3VuZGluZ01vZGUoKTsKLSsgICAgfQotKwotKyAgICBNb3ZE b3VibGVUb0ludDY0KGRzdCwgZG91YmxlX2RzdCk7Ci0gICB9IGVsc2UgewotLSAgICBTZXRSb3Vu ZGluZ01vZGUocm91bmRpbmdfbW9kZSk7Ci0tICAgIGZjdGlkdShkb3VibGVfZHN0LCBkb3VibGVf aW5wdXQpOwotLSAgICBSZXNldFJvdW5kaW5nTW9kZSgpOwotKyAgICBMYWJlbCBzYWZlX3NpemU7 Ci0rICAgIExhYmVsIGRvbmU7Ci0rICAgIG1vdihkc3QsIE9wZXJhbmQoMTU5MzgzNTUyMCkpOyAg Ly8gYml0IHBhdHRlcm4gZm9yIDJeNjMgYXMgYSBmbG9hdAotKyAgICBzdHcoZHN0LCBNZW1PcGVy YW5kKHNwLCAta0Zsb2F0U2l6ZSkpOwotKyAgICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBM SFMvUkFXIG9wdGltaXphdGlvbgotKyAgICBsZnMoZG91YmxlX2RzdCwgTWVtT3BlcmFuZChzcCwg LWtGbG9hdFNpemUpKTsKLSsgICAgZmNtcHUoZG91YmxlX2lucHV0LCBkb3VibGVfZHN0KTsKLSsg ICAgYmx0KCZzYWZlX3NpemUpOwotKyAgICAvLyBTdWJ0cmFjdCAyXjYzLCB0aGVuIE9SIHRoZSB0 b3AgYml0IG9mIHRoZSB1aW50NjQgdG8gYWRkIGJhY2sKLSsgICAgZnN1Yihkb3VibGVfZHN0LCBk b3VibGVfaW5wdXQsIGRvdWJsZV9kc3QpOwotKyAgICBpZiAocm91bmRpbmdfbW9kZSA9PSBrUm91 bmRUb1plcm8pIHsKLSsgICAgICBmY3RpZHooZG91YmxlX2RzdCwgZG91YmxlX2RzdCk7Ci0rICAg IH0gZWxzZSB7Ci0rICAgICAgU2V0Um91bmRpbmdNb2RlKHJvdW5kaW5nX21vZGUpOwotKyAgICAg IGZjdGlkKGRvdWJsZV9kc3QsIGRvdWJsZV9kc3QpOwotKyAgICAgIFJlc2V0Um91bmRpbmdNb2Rl KCk7Ci0rICAgIH0KLSsgICAgLy8gc2V0IHIwIHRvIC0xLCB0aGVuIGNsZWFyIGFsbCBidXQgdGhl IE1TQi4KLSsgICAgbW92KHIwLCBPcGVyYW5kKC0xKSk7Ci0rICAgIHJsZGljcihyMCwgcjAsIDAs IDApOwotKyAgICBzdGZkKGRvdWJsZV9kc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkp OwotKyAgICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgot KyAgICBsZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotKyAgICBvcngoZHN0 LCBkc3QsIHIwKTsKLSsgICAgYigmZG9uZSk7Ci0rICAgIC8vIEhhbmRsaW5nIGZvciB2YWx1ZXMg c21hbGxlciB0aGFuIDJeNjMuCi0rICAgIGJpbmQoJnNhZmVfc2l6ZSk7Ci0rICAgIGlmIChyb3Vu ZGluZ19tb2RlID09IGtSb3VuZFRvWmVybykgewotKyAgICAgIGZjdGlkeihkb3VibGVfZHN0LCBk b3VibGVfaW5wdXQpOwotKyAgICB9IGVsc2UgewotKyAgICAgIFNldFJvdW5kaW5nTW9kZShyb3Vu ZGluZ19tb2RlKTsKLSsgICAgICBmY3RpZChkb3VibGVfZHN0LCBkb3VibGVfaW5wdXQpOwotKyAg ICAgIFJlc2V0Um91bmRpbmdNb2RlKCk7Ci0rICAgIH0KLSsgICAgc3RmZChkb3VibGVfZHN0LCBN ZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSsgICAgbm9wKEdST1VQX0VORElOR19OT1Ap OyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRpb24KLSsgICAgbGQoZHN0LCBNZW1PcGVyYW5kKHNwLCAt a0RvdWJsZVNpemUpKTsKLSsgICAgYmluZCgmZG9uZSk7Ci0gICB9Ci0tCi0tICBNb3ZEb3VibGVU b0ludDY0KGRzdCwgZG91YmxlX2RzdCk7Ci0gfQotICNlbmRpZgotIAotQEAgLTI0NTksMTkgKzI1 NDQsMTcgQEAKLSAgIH0KLSAjZW5kaWYKLSAKLS0gIGFkZGkoc3AsIHNwLCBPcGVyYW5kKC1rRG91 YmxlU2l6ZSkpOwotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotICAgbW92KHNjcmF0Y2gsIE9w ZXJhbmQobGl0VmFsLml2YWwpKTsKLS0gIHN0ZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNwKSk7Ci0r ICBzdGQoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gI2Vsc2UKLSAg IExvYWRJbnRMaXRlcmFsKHNjcmF0Y2gsIGxpdFZhbC5pdmFsWzBdKTsKLS0gIHN0dyhzY3JhdGNo LCBNZW1PcGVyYW5kKHNwLCAwKSk7Ci0rICBzdHcoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgLWtE b3VibGVTaXplKSk7Ci0gICBMb2FkSW50TGl0ZXJhbChzY3JhdGNoLCBsaXRWYWwuaXZhbFsxXSk7 Ci0tICBzdHcoc2NyYXRjaCwgTWVtT3BlcmFuZChzcCwgNCkpOwotKyAgc3R3KHNjcmF0Y2gsIE1l bU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSArIDQpKTsKLSAjZW5kaWYKLSAgIG5vcChHUk9VUF9F TkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsZmQocmVzdWx0LCBNZW1P cGVyYW5kKHNwLCAwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkpOwot KyAgbGZkKHJlc3VsdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gfQotIAotIHZv aWQgVHVyYm9Bc3NlbWJsZXI6Ok1vdkludFRvRG91YmxlKERvdWJsZVJlZ2lzdGVyIGRzdCwgUmVn aXN0ZXIgc3JjLAotQEAgLTI0ODUsMTggKzI1NjgsMTYgQEAKLSAjZW5kaWYKLSAKLSAgIERDSEVD SyhzcmMgIT0gc2NyYXRjaCk7Ci0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkp OwotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotICAgZXh0c3coc2NyYXRjaCwgc3JjKTsKLS0g IHN0ZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCAwKSk7Ci0rICBzdGQoc2NyYXRjaCwgTWVtT3Bl cmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gI2Vsc2UKLSAgIHNyYXdpKHNjcmF0Y2gsIHNyYywg MzEpOwotLSAgc3R3KHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprRXhwb25lbnRP ZmZzZXQpKTsKLS0gIHN0dyhzcmMsIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprTWFudGlzc2FP ZmZzZXQpKTsKLSsgIHN0dyhzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBS ZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0rICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCAt a0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0gI2VuZGlmCi0gICBu b3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgotLSAgbGZkKGRz dCwgTWVtT3BlcmFuZChzcCwgMCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNp emUpKTsKLSsgIGxmZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotIH0KLSAK LSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpNb3ZVbnNpZ25lZEludFRvRG91YmxlKERvdWJsZVJlZ2lz dGVyIGRzdCwgUmVnaXN0ZXIgc3JjLAotQEAgLTI1MTAsMTggKzI1OTEsMTYgQEAKLSAjZW5kaWYK LSAKLSAgIERDSEVDSyhzcmMgIT0gc2NyYXRjaCk7Ci0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChr RG91YmxlU2l6ZSkpOwotICNpZiBWOF9UQVJHRVRfQVJDSF9QUEM2NAotICAgY2xybGRpKHNjcmF0 Y2gsIHNyYywgT3BlcmFuZCgzMikpOwotLSAgc3RkKHNjcmF0Y2gsIE1lbU9wZXJhbmQoc3AsIDAp KTsKLSsgIHN0ZChzY3JhdGNoLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAjZWxz ZQotICAgbGkoc2NyYXRjaCwgT3BlcmFuZDo6WmVybygpKTsKLS0gIHN0dyhzY3JhdGNoLCBNZW1P cGVyYW5kKHNwLCBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0tICBzdHcoc3JjLCBNZW1P cGVyYW5kKHNwLCBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0rICBzdHcoc2NyYXRjaCwg TWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6OmtFeHBvbmVudE9mZnNldCkp OwotKyAgc3R3KHNyYywgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6OmtN YW50aXNzYU9mZnNldCkpOwotICNlbmRpZgotICAgbm9wKEdST1VQX0VORElOR19OT1ApOyAgLy8g TEhTL1JBVyBvcHRpbWl6YXRpb24KLS0gIGxmZChkc3QsIE1lbU9wZXJhbmQoc3AsIDApKTsKLS0g IGFkZGkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0rICBsZmQoZHN0LCBNZW1PcGVy YW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6TW92 SW50NjRUb0RvdWJsZShEb3VibGVSZWdpc3RlciBkc3QsCi1AQCAtMjUzNiwxNiArMjYxNSwxNCBA QAotICAgfQotICNlbmRpZgotIAotLSAgc3ViaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUp KTsKLSAjaWYgVjhfVEFSR0VUX0FSQ0hfUFBDNjQKLS0gIHN0ZChzcmMsIE1lbU9wZXJhbmQoc3As IDApKTsKLSsgIHN0ZChzcmMsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotICNlbHNl Ci0tICBzdHcoc3JjX2hpLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0 KSk7Ci0tICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0 KSk7Ci0rICBzdHcoc3JjX2hpLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rl cjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0rICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJs ZVNpemUgKyBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0gI2VuZGlmCi0gICBub3AoR1JP VVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgotLSAgbGZkKGRzdCwgTWVt T3BlcmFuZChzcCwgMCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsK LSsgIGxmZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotIH0KLSAKLSAjaWYg VjhfVEFSR0VUX0FSQ0hfUFBDNjQKLUBAIC0yNTYwLDEyICsyNjM3LDEwIEBACi0gICAgIHJldHVy bjsKLSAgIH0KLSAKLS0gIHN1Ymkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0tICBz dHcoc3JjX2hpLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0t ICBzdHcoc3JjX2xvLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7 Ci0rICBzdHcoc3JjX2hpLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6 a0V4cG9uZW50T2Zmc2V0KSk7Ci0rICBzdHcoc3JjX2xvLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJs ZVNpemUgKyBSZWdpc3Rlcjo6a01hbnRpc3NhT2Zmc2V0KSk7Ci0gICBub3AoR1JPVVBfRU5ESU5H X05PUCk7ICAvLyBMSFMvUkFXIG9wdGltaXphdGlvbgotLSAgbGZkKGRzdCwgTWVtT3BlcmFuZChz cCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLSsgIGxmZChkc3Qs IE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSkpOwotIH0KLSAjZW5kaWYKLSAKLUBAIC0yNTgw LDEyICsyNjU1LDEwIEBACi0gICB9Ci0gI2VuZGlmCi0gCi0tICBzdWJpKHNwLCBzcCwgT3BlcmFu ZChrRG91YmxlU2l6ZSkpOwotLSAgc3RmZChkc3QsIE1lbU9wZXJhbmQoc3ApKTsKLS0gIHN0dyhz cmMsIE1lbU9wZXJhbmQoc3AsIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQpKTsKLSsgIHN0ZmQo ZHN0LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSsgIHN0dyhzcmMsIE1lbU9wZXJh bmQoc3AsIC1rRG91YmxlU2l6ZSArIFJlZ2lzdGVyOjprTWFudGlzc2FPZmZzZXQpKTsKLSAgIG5v cChHUk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsZmQoZHN0 LCBNZW1PcGVyYW5kKHNwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91YmxlU2l6ZSkp OwotKyAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gfQotIAotIHZv aWQgVHVyYm9Bc3NlbWJsZXI6Okluc2VydERvdWJsZUhpZ2goRG91YmxlUmVnaXN0ZXIgZHN0LCBS ZWdpc3RlciBzcmMsCi1AQCAtMjU5OSwxMiArMjY3MiwxMCBAQAotICAgfQotICNlbmRpZgotIAot LSAgc3ViaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLS0gIHN0ZmQoZHN0LCBNZW1P cGVyYW5kKHNwKSk7Ci0tICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCBSZWdpc3Rlcjo6a0V4cG9u ZW50T2Zmc2V0KSk7Ci0rICBzdGZkKGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplKSk7 Ci0rICBzdHcoc3JjLCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUgKyBSZWdpc3Rlcjo6a0V4 cG9uZW50T2Zmc2V0KSk7Ci0gICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9w dGltaXphdGlvbgotLSAgbGZkKGRzdCwgTWVtT3BlcmFuZChzcCkpOwotLSAgYWRkaShzcCwgc3As IE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLSsgIGxmZChkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91 YmxlU2l6ZSkpOwotIH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpNb3ZEb3VibGVMb3dUb0lu dChSZWdpc3RlciBkc3QsIERvdWJsZVJlZ2lzdGVyIHNyYykgewotQEAgLTI2MTUsMTEgKzI2ODYs OSBAQAotICAgfQotICNlbmRpZgotIAotLSAgc3ViaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNp emUpKTsKLS0gIHN0ZmQoc3JjLCBNZW1PcGVyYW5kKHNwKSk7Ci0rICBzdGZkKHNyYywgTWVtT3Bl cmFuZChzcCwgLWtEb3VibGVTaXplKSk7Ci0gICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBM SFMvUkFXIG9wdGltaXphdGlvbgotLSAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgUmVnaXN0ZXI6 OmtNYW50aXNzYU9mZnNldCkpOwotLSAgYWRkaShzcCwgc3AsIE9wZXJhbmQoa0RvdWJsZVNpemUp KTsKLSsgIGx3eihkc3QsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6ZSArIFJlZ2lzdGVyOjpr TWFudGlzc2FPZmZzZXQpKTsKLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6TW92RG91Ymxl SGlnaFRvSW50KFJlZ2lzdGVyIGRzdCwgRG91YmxlUmVnaXN0ZXIgc3JjKSB7Ci1AQCAtMjYzMSwx MSArMjcwMCw5IEBACi0gICB9Ci0gI2VuZGlmCi0gCi0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChr RG91YmxlU2l6ZSkpOwotLSAgc3RmZChzcmMsIE1lbU9wZXJhbmQoc3ApKTsKLSsgIHN0ZmQoc3Jj LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAgIG5vcChHUk9VUF9FTkRJTkdfTk9Q KTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsd3ooZHN0LCBNZW1PcGVyYW5kKHNwLCBS ZWdpc3Rlcjo6a0V4cG9uZW50T2Zmc2V0KSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRG91 YmxlU2l6ZSkpOwotKyAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVn aXN0ZXI6OmtFeHBvbmVudE9mZnNldCkpOwotIH0KLSAKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpN b3ZEb3VibGVUb0ludDY0KAotQEAgLTI2NTAsMzIgKzI3MTcsMjYgQEAKLSAgIH0KLSAjZW5kaWYK LSAKLS0gIHN1Ymkoc3AsIHNwLCBPcGVyYW5kKGtEb3VibGVTaXplKSk7Ci0tICBzdGZkKHNyYywg TWVtT3BlcmFuZChzcCkpOwotKyAgc3RmZChzcmMsIE1lbU9wZXJhbmQoc3AsIC1rRG91YmxlU2l6 ZSkpOwotICAgbm9wKEdST1VQX0VORElOR19OT1ApOyAgLy8gTEhTL1JBVyBvcHRpbWl6YXRpb24K LSAjaWYgVjhfVEFSR0VUX0FSQ0hfUFBDNjQKLS0gIGxkKGRzdCwgTWVtT3BlcmFuZChzcCwgMCkp OwotKyAgbGQoZHN0LCBNZW1PcGVyYW5kKHNwLCAta0RvdWJsZVNpemUpKTsKLSAjZWxzZQotLSAg bHd6KGRzdF9oaSwgTWVtT3BlcmFuZChzcCwgUmVnaXN0ZXI6OmtFeHBvbmVudE9mZnNldCkpOwot LSAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgUmVnaXN0ZXI6OmtNYW50aXNzYU9mZnNldCkpOwot KyAgbHd6KGRzdF9oaSwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXplICsgUmVnaXN0ZXI6OmtF eHBvbmVudE9mZnNldCkpOwotKyAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgLWtEb3VibGVTaXpl ICsgUmVnaXN0ZXI6OmtNYW50aXNzYU9mZnNldCkpOwotICNlbmRpZgotLSAgYWRkaShzcCwgc3As IE9wZXJhbmQoa0RvdWJsZVNpemUpKTsKLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6TW92 SW50VG9GbG9hdChEb3VibGVSZWdpc3RlciBkc3QsIFJlZ2lzdGVyIHNyYykgewotLSAgc3ViaShz cCwgc3AsIE9wZXJhbmQoa0Zsb2F0U2l6ZSkpOwotLSAgc3R3KHNyYywgTWVtT3BlcmFuZChzcCwg MCkpOwotKyAgc3R3KHNyYywgTWVtT3BlcmFuZChzcCwgLWtGbG9hdFNpemUpKTsKLSAgIG5vcChH Uk9VUF9FTkRJTkdfTk9QKTsgIC8vIExIUy9SQVcgb3B0aW1pemF0aW9uCi0tICBsZnMoZHN0LCBN ZW1PcGVyYW5kKHNwLCAwKSk7Ci0tICBhZGRpKHNwLCBzcCwgT3BlcmFuZChrRmxvYXRTaXplKSk7 Ci0rICBsZnMoZHN0LCBNZW1PcGVyYW5kKHNwLCAta0Zsb2F0U2l6ZSkpOwotIH0KLSAKLSB2b2lk IFR1cmJvQXNzZW1ibGVyOjpNb3ZGbG9hdFRvSW50KFJlZ2lzdGVyIGRzdCwgRG91YmxlUmVnaXN0 ZXIgc3JjKSB7Ci0tICBzdWJpKHNwLCBzcCwgT3BlcmFuZChrRmxvYXRTaXplKSk7Ci0tICBzdGZz KHNyYywgTWVtT3BlcmFuZChzcCwgMCkpOwotKyAgc3RmcyhzcmMsIE1lbU9wZXJhbmQoc3AsIC1r RmxvYXRTaXplKSk7Ci0gICBub3AoR1JPVVBfRU5ESU5HX05PUCk7ICAvLyBMSFMvUkFXIG9wdGlt aXphdGlvbgotLSAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgMCkpOwotLSAgYWRkaShzcCwgc3As IE9wZXJhbmQoa0Zsb2F0U2l6ZSkpOwotKyAgbHd6KGRzdCwgTWVtT3BlcmFuZChzcCwgLWtGbG9h dFNpemUpKTsKLSB9Ci0gCi0gdm9pZCBUdXJib0Fzc2VtYmxlcjo6QWRkUzY0KFJlZ2lzdGVyIGRz dCwgUmVnaXN0ZXIgc3JjLCBSZWdpc3RlciB2YWx1ZSwgT0VCaXQgcywKLUBAIC0zMTg5LDEwICsz MjUwLDggQEAKLSAgIH0KLSAKLSAjZGVmaW5lIE1FTV9MRV9PUF9MSVNUKFYpIFwKLS0gIFYoTG9h ZFU2NCwgbGRicngpICAgICAgIFwKLSAgIFYoTG9hZFUzMiwgbHdicngpICAgICAgIFwKLSAgIFYo TG9hZFUxNiwgbGhicngpICAgICAgIFwKLS0gIFYoU3RvcmVVNjQsIHN0ZGJyeCkgICAgIFwKLSAg IFYoU3RvcmVVMzIsIHN0d2JyeCkgICAgIFwKLSAgIFYoU3RvcmVVMTYsIHN0aGJyeCkKLSAKLUBA IC0zMjE0LDYgKzMyNzMsMzcgQEAKLSAjdW5kZWYgTUVNX0xFX09QX0ZVTkNUSU9OCi0gI3VuZGVm IE1FTV9MRV9PUF9MSVNUCi0gCi0rdm9pZCBUdXJib0Fzc2VtYmxlcjo6TG9hZFU2NExFKFJlZ2lz dGVyIGRzdCwgY29uc3QgTWVtT3BlcmFuZCYgbWVtLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZWdpc3RlciBzY3JhdGNoKSB7Ci0rI2lmZGVmIFY4X1RBUkdFVF9CSUdfRU5ESUFO Ci0rICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ183X1BMVVNfTlhQKSkgewotKyAg ICBHZW5lcmF0ZU1lbW9yeUxFT3BlcmF0aW9uKGRzdCwgbWVtLCBsZGJyeCk7Ci0rICB9IGVsc2Ug ewotKyAgICBsd2JyeChkc3QsIG1lbSk7Ci0rICAgIGx3YnJ4KHNjcmF0Y2gsIE1lbU9wZXJhbmQo bWVtLnJhKCksIG1lbS5yYigpLCBtZW0ub2Zmc2V0KCkgKyA0KSk7Ci0rICAgIHJsZGljcihzY3Jh dGNoLCBzY3JhdGNoLCAzMiwgMzEpOwotKyAgICBvcngoZHN0LCBkc3QsIHNjcmF0Y2gpOwotKyAg fQotKyNlbHNlCi0rICBMb2FkVTY0KGRzdCwgbWVtLCBzY3JhdGNoKTsKLSsjZW5kaWYKLSt9Ci0r Ci0rdm9pZCBUdXJib0Fzc2VtYmxlcjo6U3RvcmVVNjRMRShSZWdpc3RlciBzcmMsIGNvbnN0IE1l bU9wZXJhbmQmIG1lbSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVy IHNjcmF0Y2gpIHsKLSsjaWZkZWYgVjhfVEFSR0VUX0JJR19FTkRJQU4KLSsgIGlmIChDcHVGZWF0 dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzdfUExVU19OWFApKSB7Ci0rICAgIEdlbmVyYXRlTWVtb3J5 TEVPcGVyYXRpb24oc3JjLCBtZW0sIHN0ZGJyeCk7Ci0rICB9IGVsc2UgewotKyAgICBzdHdicngo c3JjLCBtZW0pOwotKyAgICBybGRpY2woc2NyYXRjaCwgc3JjLCAzMiwgMzIpOwotKyAgICBzdHdi cngoc2NyYXRjaCwgTWVtT3BlcmFuZChtZW0ucmEoKSwgbWVtLnJiKCksIG1lbS5vZmZzZXQoKSAr IDQpKTsKLSsgIH0KLSsjZWxzZQotKyAgU3RvcmVVNjQoc3JjLCBtZW0sIHNjcmF0Y2gpOwotKyNl bmRpZgotK30KLSsKLSB2b2lkIFR1cmJvQXNzZW1ibGVyOjpMb2FkUzMyTEUoUmVnaXN0ZXIgZHN0 LCBjb25zdCBNZW1PcGVyYW5kJiBtZW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJlZ2lzdGVyIHNjcmF0Y2gpIHsKLSAjaWZkZWYgVjhfVEFSR0VUX0JJR19FTkRJQU4KLS0tLSBh L2RlcHMvdjgvc3JjL2NvZGVnZW4vY3B1LWZlYXR1cmVzLmgJMjAyMi0wMi0xOSAyMToxOToxNS45 ODIyODg2OTAgLTA4MDAKLSsrKyBiL2RlcHMvdjgvc3JjL2NvZGVnZW4vY3B1LWZlYXR1cmVzLmgJ MjAyMi0wMi0xOSAyMToyMjo0My4wNzE0ODczNjkgLTA4MDAKLUBAIC01MiwxMSArNTIsMTUgQEAK LSAgIE1JUFNfU0lNRCwgIC8vIE1TQSBpbnN0cnVjdGlvbnMKLSAKLSAjZWxpZiBWOF9UQVJHRVRf QVJDSF9QUEMgfHwgVjhfVEFSR0VUX0FSQ0hfUFBDNjQKLSsgIFBQQ181X1BMVVMsCi0gICBQUENf Nl9QTFVTLAotICAgUFBDXzdfUExVUywKLSAgIFBQQ184X1BMVVMsCi0gICBQUENfOV9QTFVTLAot ICAgUFBDXzEwX1BMVVMsCi0rICBJQ0FDSEVfU05PT1AsICAgICAvLyBJU0EgdjIuMDIgKFBPV0VS NSkKLSsgIElTRUxFQ1QsICAgICAgICAgIC8vIElTQSB2Mi4wMyAoUE9XRVI1KyBhbmQgc29tZSBO WFAgY29yZXMpCi0rICBQUENfN19QTFVTX05YUCwgICAvLyBJU0EgdjIuMDYgKFBPV0VSNyBhbmQg TlhQIGU1NTAwL2U2NTAwKQotIAotICNlbGlmIFY4X1RBUkdFVF9BUkNIX1MzOTBYCi0gICBGUFUs Ci0tLS0gYS9kZXBzL3Y4L3NyYy9jb21waWxlci9iYWNrZW5kL3BwYy9pbnN0cnVjdGlvbi1zZWxl Y3Rvci1wcGMuY2MJMjAyMi0wMi0yMCAyMzozNToyMS4yMTIzMzc2MzkgLTA4MDAKLSsrKyBiL2Rl cHMvdjgvc3JjL2NvbXBpbGVyL2JhY2tlbmQvcHBjL2luc3RydWN0aW9uLXNlbGVjdG9yLXBwYy5j YwkyMDIyLTAyLTIwIDIzOjM2OjIwLjkyNTg1ODg0MCAtMDgwMAotQEAgLTI3MDIsMTYgKzI3MDIs MjYgQEAKLSAvLyBzdGF0aWMKLSBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjpGbGFncwotIEluc3Ry dWN0aW9uU2VsZWN0b3I6OlN1cHBvcnRlZE1hY2hpbmVPcGVyYXRvckZsYWdzKCkgewotLSAgcmV0 dXJuIE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtGbG9hdDMyUm91bmREb3duIHwKLS0gICAgICAg ICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQ2NFJvdW5kRG93biB8Ci0tICAgICAgICAg TWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0MzJSb3VuZFVwIHwKLS0gICAgICAgICBNYWNo aW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQ2NFJvdW5kVXAgfAotLSAgICAgICAgIE1hY2hpbmVP cGVyYXRvckJ1aWxkZXI6OmtGbG9hdDMyUm91bmRUcnVuY2F0ZSB8Ci0tICAgICAgICAgTWFjaGlu ZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0NjRSb3VuZFRydW5jYXRlIHwKLS0gICAgICAgICBNYWNo aW5lT3BlcmF0b3JCdWlsZGVyOjprRmxvYXQ2NFJvdW5kVGllc0F3YXkgfAotLSAgICAgICAgIE1h Y2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtXb3JkMzJQb3BjbnQgfAotLSAgICAgICAgIE1hY2hpbmVP cGVyYXRvckJ1aWxkZXI6OmtXb3JkNjRQb3BjbnQ7Ci0rICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVy OjpGbGFncyBmbGFncyA9IE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OkZsYWc6OmtOb0ZsYWdzOwot KyAgLy8gRlAgcm91bmRpbmcgdG8gaW50ZWdlciBpbnN0cnVjdGlvbnMgcmVxdWlyZSBQb3dlciBJ U0EgdjIuMDIgb3IgbGF0ZXIuCi0rICBpZiAoQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ181 X1BMVVMpKSB7Ci0rICAgIGZsYWdzIHw9IE1hY2hpbmVPcGVyYXRvckJ1aWxkZXI6OmtGbG9hdDMy Um91bmREb3duIHwKLSsgICAgICAgICAgICAgTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a0Zsb2F0 NjRSb3VuZERvd24gfAotKyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxv YXQzMlJvdW5kVXAgfAotKyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxv YXQ2NFJvdW5kVXAgfAotKyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVyOjprRmxv YXQzMlJvdW5kVHJ1bmNhdGUgfAotKyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JCdWlsZGVy OjprRmxvYXQ2NFJvdW5kVHJ1bmNhdGUgfAotKyAgICAgICAgICAgICBNYWNoaW5lT3BlcmF0b3JC dWlsZGVyOjprRmxvYXQ2NFJvdW5kVGllc0F3YXk7Ci0rICB9Ci0rICAvLyBQb3B1bGF0aW9uIGNv dW50IHJlcXVpcmVzIFBvd2VyIElTQSB2Mi4wNiwgb3IgTlhQIGU1NTAwL2U2NTAwLgotKyAgaWYg KENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChQUENfN19QTFVTX05YUCkpIHsKLSsgICAgZmxhZ3Mg fD0gTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a1dvcmQzMlBvcGNudDsKLSsjaWYgVjhfVEFSR0VU X0FSQ0hfUFBDNjQKLSsgICAgZmxhZ3MgfD0gTWFjaGluZU9wZXJhdG9yQnVpbGRlcjo6a1dvcmQ2 NFBvcGNudDsKLSsjZW5kaWYKLSsgIH0KLSAgIC8vIFdlIG9taXQga1dvcmQzMlNoaWZ0SXNTYWZl IGFzIHNbcmxddyB1c2UgMHgzRiBhcyBhIG1hc2sgcmF0aGVyIHRoYW4gMHgxRi4KLSsgIHJldHVy biBmbGFnczsKLSB9Ci0gCi0gLy8gc3RhdGljCi0tLS0gYS9kZXBzL3Y4L3NyYy9jb21waWxlci9i YWNrZW5kL3BwYy9jb2RlLWdlbmVyYXRvci1wcGMuY2MJMjAyMi0wMi0yMCAyMzozNToyMS4yMTYz Mzc3NDEgLTA4MDAKLSsrKyBiL2RlcHMvdjgvc3JjL2NvbXBpbGVyL2JhY2tlbmQvcHBjL2NvZGUt Z2VuZXJhdG9yLXBwYy5jYwkyMDIyLTAyLTIwIDIzOjM5OjU2LjQ3OTM1MTQ4MiAtMDgwMAotQEAg LTc4NSw2ICs3ODUsNyBAQAotICAgLy8gQ2FsY3VsYXRlIGEgbWFzayB3aGljaCBoYXMgYWxsIGJp dHMgc2V0IGluIHRoZSBub3JtYWwgY2FzZSwgYnV0IGhhcyBhbGwKLSAgIC8vIGJpdHMgY2xlYXJl ZCBpZiB3ZSBhcmUgc3BlY3VsYXRpdmVseSBleGVjdXRpbmcgdGhlIHdyb25nIFBDLgotICAgX18g Q21wUzY0KGtKYXZhU2NyaXB0Q2FsbENvZGVTdGFydFJlZ2lzdGVyLCBzY3JhdGNoKTsKLSsgIC8v IFRPRE86IGlzIGFsdGVybmF0ZSBzZXF1ZW5jZSBuZWVkZWQgZm9yIENQVXMgd2l0aG91dCBpc2Vs PwotICAgX18gbGkoc2NyYXRjaCwgT3BlcmFuZDo6WmVybygpKTsKLSAgIF9fIG5vdHgoa1NwZWN1 bGF0aW9uUG9pc29uUmVnaXN0ZXIsIHNjcmF0Y2gpOwotICAgX18gaXNlbChlcSwga1NwZWN1bGF0 aW9uUG9pc29uUmVnaXN0ZXIsIGtTcGVjdWxhdGlvblBvaXNvblJlZ2lzdGVyLCBzY3JhdGNoKTsK LUBAIC0xODIzLDYgKzE4MjQsNyBAQAotICAgICAgICAgaW50IGNyYml0ID0gdjg6OmludGVybmFs OjpBc3NlbWJsZXI6OmVuY29kZV9jcmJpdCgKLSAgICAgICAgICAgICBjciwgc3RhdGljX2Nhc3Q8 Q1JCaXQ+KFZYQ1ZJICUgQ1JXSURUSCkpOwotICAgICAgICAgX18gbWNyZnMoY3IsIFZYQ1ZJKTsg IC8vIGV4dHJhY3QgRlBTQ1IgZmllbGQgY29udGFpbmluZyBWWENWSSBpbnRvIGNyNwotKyAgICAg ICAgLy8gVE9ETzogaXMgYWx0ZXJuYXRlIHNlcXVlbmNlIG5lZWRlZCBmb3IgQ1BVcyB3aXRob3V0 IGlzZWw/Ci0gICAgICAgICBfXyBsaShrU2NyYXRjaFJlZywgT3BlcmFuZCgxKSk7Ci0gICAgICAg ICBfXyBTaGlmdExlZnRVNjQoa1NjcmF0Y2hSZWcsIGtTY3JhdGNoUmVnLAotICAgICAgICAgICAg ICAgICAgICAgICAgIE9wZXJhbmQoMzEpKTsgIC8vIGdlbmVyYXRlIElOVDMyX01JTi4KLUBAIC0x ODQ0LDYgKzE4NDYsNyBAQAotICAgICAgICAgaW50IGNyYml0ID0gdjg6OmludGVybmFsOjpBc3Nl bWJsZXI6OmVuY29kZV9jcmJpdCgKLSAgICAgICAgICAgICBjciwgc3RhdGljX2Nhc3Q8Q1JCaXQ+ KFZYQ1ZJICUgQ1JXSURUSCkpOwotICAgICAgICAgX18gbWNyZnMoY3IsIFZYQ1ZJKTsgIC8vIGV4 dHJhY3QgRlBTQ1IgZmllbGQgY29udGFpbmluZyBWWENWSSBpbnRvIGNyNwotKyAgICAgICAgLy8g VE9ETzogaXMgYWx0ZXJuYXRlIHNlcXVlbmNlIG5lZWRlZCBmb3IgQ1BVcyB3aXRob3V0IGlzZWw/ Ci0gICAgICAgICBfXyBsaShrU2NyYXRjaFJlZywgT3BlcmFuZDo6WmVybygpKTsKLSAgICAgICAg IF9fIGlzZWwoaS5PdXRwdXRSZWdpc3RlcigwKSwga1NjcmF0Y2hSZWcsIGkuT3V0cHV0UmVnaXN0 ZXIoMCksIGNyYml0KTsKLSAgICAgICB9Ci1AQCAtMTg2OCw3ICsxODcxLDcgQEAKLSAgICAgICAg ICAgICBjciwgc3RhdGljX2Nhc3Q8Q1JCaXQ+KFZYQ1ZJICUgQ1JXSURUSCkpOwotICAgICAgICAg X18gbWNyZnMoY3IsIFZYQ1ZJKTsgIC8vIGV4dHJhY3QgRlBTQ1IgZmllbGQgY29udGFpbmluZyBW WENWSSBpbnRvIGNyNwotICAgICAgICAgLy8gSGFuZGxlIGNvbnZlcnNpb24gZmFpbHVyZXMgKHN1 Y2ggYXMgb3ZlcmZsb3cpLgotLSAgICAgICAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChQ UENfN19QTFVTKSkgewotKyAgICAgICAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChJU0VM RUNUKSkgewotICAgICAgICAgICBpZiAoY2hlY2tfY29udmVyc2lvbikgewotICAgICAgICAgICAg IF9fIGxpKGkuT3V0cHV0UmVnaXN0ZXIoMSksIE9wZXJhbmQoMSkpOwotICAgICAgICAgICAgIF9f IGlzZWwoaS5PdXRwdXRSZWdpc3RlcigxKSwgcjAsIGkuT3V0cHV0UmVnaXN0ZXIoMSksIGNyYml0 KTsKLUBAIC0xOTA1LDcgKzE5MDgsNyBAQAotICAgICAgICAgaW50IGNyYml0ID0gdjg6OmludGVy bmFsOjpBc3NlbWJsZXI6OmVuY29kZV9jcmJpdCgKLSAgICAgICAgICAgICBjciwgc3RhdGljX2Nh c3Q8Q1JCaXQ+KFZYQ1ZJICUgQ1JXSURUSCkpOwotICAgICAgICAgX18gbWNyZnMoY3IsIFZYQ1ZJ KTsgIC8vIGV4dHJhY3QgRlBTQ1IgZmllbGQgY29udGFpbmluZyBWWENWSSBpbnRvIGNyNwotLSAg ICAgICAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChQUENfN19QTFVTKSkgewotKyAgICAg ICAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChJU0VMRUNUKSkgewotICAgICAgICAgICBf XyBsaShpLk91dHB1dFJlZ2lzdGVyKDEpLCBPcGVyYW5kKDEpKTsKLSAgICAgICAgICAgX18gaXNl bChpLk91dHB1dFJlZ2lzdGVyKDEpLCByMCwgaS5PdXRwdXRSZWdpc3RlcigxKSwgY3JiaXQpOwot ICAgICAgICAgfSBlbHNlIHsKLUBAIC0yMTY4LDEyICsyMTcxLDY3IEBACi0gICAgICAgYnJlYWs7 Ci0gICAgIH0KLSAgICAgY2FzZSBrUFBDX0xvYWRCeXRlUmV2NjQ6IHsKLS0gICAgICBBU1NFTUJM RV9MT0FEX0lOVEVHRVJfUlIobGRicngpOwotKyAgICAgIC8vIGlubGluZWQgdmVyc2lvbiBvZiBB U1NFTUJMRV9MT0FEX0lOVEVHRVJfUlIoKQotKyAgICAgIFJlZ2lzdGVyIHJlc3VsdCA9IGkuT3V0 cHV0UmVnaXN0ZXIoKTsKLSsgICAgICBBZGRyZXNzaW5nTW9kZSBtb2RlID0ga01vZGVfTm9uZTsK LSsgICAgICBNZW1PcGVyYW5kIG9wZXJhbmQgPSBpLk1lbW9yeU9wZXJhbmQoJm1vZGUpOwotKyAg ICAgIERDSEVDS19FUShtb2RlLCBrTW9kZV9NUlIpOwotKyAgICAgIGJvb2wgaXNfYXRvbWljID0g aS5JbnB1dEludDMyKDIpOwotKyAgICAgIGlmIChDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBD XzdfUExVU19OWFApKSB7Ci0rICAgICAgICBfXyBsZGJyeChyZXN1bHQsIG9wZXJhbmQpOwotKyAg ICAgIH0gZWxzZSB7Ci0rI2lmZGVmIFY4X1RBUkdFVF9CSUdfRU5ESUFOCi0rICAgICAgICAvLyBs b3cgYW5kIGhpZ2ggd29yZHMgZnJvbSByZXZlcnNlZCBwZXJzcGVjdGl2ZQotKyAgICAgICAgTWVt T3BlcmFuZCBvcF9sb3cgPSBvcGVyYW5kOwotKyAgICAgICAgTWVtT3BlcmFuZCBvcF9oaWdoID0g TWVtT3BlcmFuZChvcGVyYW5kLnJhKCksIG9wZXJhbmQucmIoKSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmFuZC5vZmZzZXQoKSArIDQpOwotKyNlbHNlCi0r ICAgICAgICAvLyBsb3cgYW5kIGhpZ2ggd29yZHMgZnJvbSByZXZlcnNlZCBwZXJzcGVjdGl2ZQot KyAgICAgICAgTWVtT3BlcmFuZCBvcF9oaWdoID0gb3BlcmFuZDsKLSsgICAgICAgIE1lbU9wZXJh bmQgb3BfbG93ID0gTWVtT3BlcmFuZChvcGVyYW5kLnJhKCksIG9wZXJhbmQucmIoKSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYW5kLm9mZnNldCgpICsgNCk7 Ci0rI2VuZGlmCi0rICAgICAgICBSZWdpc3RlciB0ZW1wMSA9IHIwOwotKyAgICAgICAgX18gbHdi cngocmVzdWx0LCBvcF9sb3cpOwotKyAgICAgICAgX18gbHdicngodGVtcDEsIG9wX2hpZ2gpOwot KyAgICAgICAgX18gcmxkaWNyKHRlbXAxLCB0ZW1wMSwgMzIsIDMxKTsKLSsgICAgICAgIF9fIG9y eChyZXN1bHQsIHJlc3VsdCwgdGVtcDEpOwotKyAgICAgIH0KLSsgICAgICBpZiAoaXNfYXRvbWlj KSBfXyBsd3N5bmMoKTsKLSsgICAgICBEQ0hFQ0tfRVEoTGVhdmVSQywgaS5PdXRwdXRSQ0JpdCgp KTsKLSAgICAgICBFbWl0V29yZExvYWRQb2lzb25pbmdJZk5lZWRlZCh0aGlzLCBpbnN0ciwgaSk7 Ci0gICAgICAgYnJlYWs7Ci0gICAgIH0KLSAgICAgY2FzZSBrUFBDX1N0b3JlQnl0ZVJldjY0OiB7 Ci0tICAgICAgQVNTRU1CTEVfU1RPUkVfSU5URUdFUl9SUihzdGRicngpOwotKyAgICAgIC8vIGlu bGluZWQgdmVyc2lvbiBvZiBBU1NFTUJMRV9TVE9SRV9JTlRFR0VSX1JSKCkKLSsgICAgICBzaXpl X3QgaW5kZXggPSAwOwotKyAgICAgIEFkZHJlc3NpbmdNb2RlIG1vZGUgPSBrTW9kZV9Ob25lOwot KyAgICAgIE1lbU9wZXJhbmQgb3BlcmFuZCA9IGkuTWVtb3J5T3BlcmFuZCgmbW9kZSwgJmluZGV4 KTsKLSsgICAgICBEQ0hFQ0tfRVEobW9kZSwga01vZGVfTVJSKTsKLSsgICAgICBSZWdpc3RlciB2 YWx1ZSA9IGkuSW5wdXRSZWdpc3RlcihpbmRleCk7Ci0rICAgICAgYm9vbCBpc19hdG9taWMgPSBp LklucHV0SW50MzIoMyk7Ci0rICAgICAgaWYgKGlzX2F0b21pYykgX18gbHdzeW5jKCk7Ci0rICAg ICAgaWYgKENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChQUENfN19QTFVTX05YUCkpIHsKLSsgICAg ICAgIF9fIHN0ZGJyeCh2YWx1ZSwgb3BlcmFuZCk7Ci0rICAgICAgfSBlbHNlIHsKLSsjaWZkZWYg VjhfVEFSR0VUX0JJR19FTkRJQU4KLSsgICAgICAgIC8vIGxvdyBhbmQgaGlnaCB3b3JkcyBmcm9t IHJldmVyc2VkIHBlcnNwZWN0aXZlCi0rICAgICAgICBNZW1PcGVyYW5kIG9wX2xvdyA9IG9wZXJh bmQ7Ci0rICAgICAgICBNZW1PcGVyYW5kIG9wX2hpZ2ggPSBNZW1PcGVyYW5kKG9wZXJhbmQucmEo KSwgb3BlcmFuZC5yYigpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvcGVyYW5kLm9mZnNldCgpICsgNCk7Ci0rI2Vsc2UKLSsgICAgICAgIC8vIGxvdyBhbmQgaGln aCB3b3JkcyBmcm9tIHJldmVyc2VkIHBlcnNwZWN0aXZlCi0rICAgICAgICBNZW1PcGVyYW5kIG9w X2hpZ2ggPSBvcGVyYW5kOwotKyAgICAgICAgTWVtT3BlcmFuZCBvcF9sb3cgPSBNZW1PcGVyYW5k KG9wZXJhbmQucmEoKSwgb3BlcmFuZC5yYigpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9wZXJhbmQub2Zmc2V0KCkgKyA0KTsKLSsjZW5kaWYKLSsgICAgICAgIFJl Z2lzdGVyIHRlbXAxID0gcjA7Ci0rICAgICAgICBfXyBzdHdicngodmFsdWUsIG9wX2xvdyk7Ci0r ICAgICAgICBfXyBybGRpY2wodGVtcDEsIHZhbHVlLCAzMiwgMzIpOwotKyAgICAgICAgX18gc3R3 YnJ4KHRlbXAxLCBvcF9oaWdoKTsKLSsgICAgICB9Ci0rICAgICAgaWYgKGlzX2F0b21pYykgX18g c3luYygpOwotKyAgICAgIERDSEVDS19FUShMZWF2ZVJDLCBpLk91dHB1dFJDQml0KCkpOwotICAg ICAgIGJyZWFrOwotICAgICB9Ci0gICAgIGNhc2Uga1BQQ19GNjR4MlNwbGF0OiB7Ci1AQCAtMjkx MSwxMSArMjk2OSwxMyBAQAotICAgICAgIF9fIGxpKGlwLCBPcGVyYW5kKDEpKTsKLSAgICAgICAv LyBDaGVjayBpZiBib3RoIGxhbmVzIGFyZSAwLCBpZiBzbyB0aGVuIHJldHVybiBmYWxzZS4KLSAg ICAgICBfXyB2eG9yKGtTY3JhdGNoU2ltZDEyOFJlZywga1NjcmF0Y2hTaW1kMTI4UmVnLCBrU2Ny YXRjaFNpbWQxMjhSZWcpOwotKyAgICAgIC8vIFRPRE86IGlzIGFsdGVybmF0ZSBzZXF1ZW5jZSBu ZWVkZWQgZm9yIENQVXMgd2l0aG91dCBpc2VsPwotICAgICAgIF9fIG10Y3JmKHIwLCBmeG0pOyAg Ly8gQ2xlYXIgY3I2LgotICAgICAgIF9fIHZjbXBlcXVkKGtTY3JhdGNoU2ltZDEyOFJlZywgc3Jj LCBrU2NyYXRjaFNpbWQxMjhSZWcsIFNldFJDKTsKLSAgICAgICBfXyBpc2VsKGRzdCwgcjAsIGlw LCBiaXRfbnVtYmVyKTsKLSAgICAgICBicmVhazsKLSAgICAgfQotKy8vIFRPRE86IGlzIGFsdGVy bmF0ZSBzZXF1ZW5jZSBuZWVkZWQgZm9yIENQVXMgd2l0aG91dCBpc2VsPwotICNkZWZpbmUgU0lN RF9BTExfVFJVRShvcGNvZGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAotICAgU2ltZDEyOFJlZ2lzdGVyIHNyYyA9IGkuSW5wdXRTaW1kMTI4UmVnaXN0ZXIoMCk7 ICAgICAgICAgICAgICAgICAgICAgXAotICAgUmVnaXN0ZXIgZHN0ID0gaS5PdXRwdXRSZWdpc3Rl cigpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotQEAgLTM4MDksNiArMzg2 OSw3IEBACi0gCi0gICBBcmNoT3Bjb2RlIG9wID0gaW5zdHItPmFyY2hfb3Bjb2RlKCk7Ci0gICBj b25kaXRpb24gPSBOZWdhdGVGbGFnc0NvbmRpdGlvbihjb25kaXRpb24pOwotKyAgLy8gVE9ETzog aXMgYWx0ZXJuYXRlIHNlcXVlbmNlIG5lZWRlZCBmb3IgQ1BVcyB3aXRob3V0IGlzZWw/Ci0gICBf XyBsaShrU2NyYXRjaFJlZywgT3BlcmFuZDo6WmVybygpKTsKLSAgIF9fIGlzZWwoRmxhZ3NDb25k aXRpb25Ub0NvbmRpdGlvbihjb25kaXRpb24sIG9wKSwga1NwZWN1bGF0aW9uUG9pc29uUmVnaXN0 ZXIsCi0gICAgICAgICAgIGtTY3JhdGNoUmVnLCBrU3BlY3VsYXRpb25Qb2lzb25SZWdpc3Rlciwg Y3IwKTsKLUBAIC0zOTIyLDcgKzM5ODMsNyBAQAotICAgICAvLyBVbm5lY2Vzc2FyeSBmb3IgZXEv bHQgJiBuZS9nZSBzaW5jZSBvbmx5IEZVIGJpdCB3aWxsIGJlIHNldC4KLSAgIH0KLSAKLS0gIGlm IChDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoUFBDXzdfUExVUykpIHsKLSsgIGlmIChDcHVGZWF0 dXJlczo6SXNTdXBwb3J0ZWQoSVNFTEVDVCkpIHsKLSAgICAgc3dpdGNoIChjb25kKSB7Ci0gICAg ICAgY2FzZSBlcToKLSAgICAgICBjYXNlIGx0OgotLS0tIGEvZGVwcy92OC9zcmMvY29kZWdlbi9w cGMvY3B1LXBwYy5jYwkyMDIyLTAyLTA4IDA0OjM3OjQ4LjAwMDAwMDAwMCAtMDgwMAotKysrIGIv ZGVwcy92OC9zcmMvY29kZWdlbi9wcGMvY3B1LXBwYy5jYwkyMDIyLTAyLTIwIDE3OjAyOjE3Ljkw MDAwMDc4NSAtMDgwMAotQEAgLTgsMTQgKzgsMTIgQEAKLSAKLSAjaW5jbHVkZSAic3JjL2NvZGVn ZW4vY3B1LWZlYXR1cmVzLmgiCi0gCi0tI2RlZmluZSBJTlNUUl9BTkRfREFUQV9DQUNIRV9DT0hF UkVOQ1kgUFBDXzZfUExVUwotLQotIG5hbWVzcGFjZSB2OCB7Ci0gbmFtZXNwYWNlIGludGVybmFs IHsKLSAKLSB2b2lkIENwdUZlYXR1cmVzOjpGbHVzaElDYWNoZSh2b2lkKiBidWZmZXIsIHNpemVf dCBzaXplKSB7Ci0gI2lmICFkZWZpbmVkKFVTRV9TSU1VTEFUT1IpCi0tICBpZiAoQ3B1RmVhdHVy ZXM6OklzU3VwcG9ydGVkKElOU1RSX0FORF9EQVRBX0NBQ0hFX0NPSEVSRU5DWSkpIHsKLSsgIGlm IChDcHVGZWF0dXJlczo6SXNTdXBwb3J0ZWQoSUNBQ0hFX1NOT09QKSkgewotICAgICBfX2FzbV9f IF9fdm9sYXRpbGVfXygKLSAgICAgICAgICJzeW5jIFxuIgotICAgICAgICAgImljYmkgMCwgJTAg IFxuIgotQEAgLTI2LDI1ICsyNCwzMyBAQAotICAgICByZXR1cm47Ci0gICB9Ci0gCi0tICBjb25z dCBpbnQga0NhY2hlTGluZVNpemUgPSBDcHVGZWF0dXJlczo6aWNhY2hlX2xpbmVfc2l6ZSgpOwot LSAgaW50cHRyX3QgbWFzayA9IGtDYWNoZUxpbmVTaXplIC0gMTsKLSsgIGNvbnN0IGludCBrSW5z dHJDYWNoZUxpbmVTaXplID0gQ3B1RmVhdHVyZXM6OmljYWNoZV9saW5lX3NpemUoKTsKLSsgIGNv bnN0IGludCBrRGF0YUNhY2hlTGluZVNpemUgPSBDcHVGZWF0dXJlczo6ZGNhY2hlX2xpbmVfc2l6 ZSgpOwotKyAgaW50cHRyX3QgaWNfbWFzayA9IGtJbnN0ckNhY2hlTGluZVNpemUgLSAxOwotKyAg aW50cHRyX3QgZGNfbWFzayA9IGtEYXRhQ2FjaGVMaW5lU2l6ZSAtIDE7Ci0gICBieXRlKiBzdGFy dCA9Ci0tICAgICAgcmVpbnRlcnByZXRfY2FzdDxieXRlKj4ocmVpbnRlcnByZXRfY2FzdDxpbnRw dHJfdD4oYnVmZmVyKSAmIH5tYXNrKTsKLSsgICAgICByZWludGVycHJldF9jYXN0PGJ5dGUqPihy ZWludGVycHJldF9jYXN0PGludHB0cl90PihidWZmZXIpICYgfmRjX21hc2spOwotICAgYnl0ZSog ZW5kID0gc3RhdGljX2Nhc3Q8Ynl0ZSo+KGJ1ZmZlcikgKyBzaXplOwotLSAgZm9yIChieXRlKiBw b2ludGVyID0gc3RhcnQ7IHBvaW50ZXIgPCBlbmQ7IHBvaW50ZXIgKz0ga0NhY2hlTGluZVNpemUp IHsKLS0gICAgX19hc21fXygKLSsgIGZvciAoYnl0ZSogcG9pbnRlciA9IHN0YXJ0OyBwb2ludGVy IDwgZW5kOyBwb2ludGVyICs9IGtEYXRhQ2FjaGVMaW5lU2l6ZSkgewotKyAgICBfX2FzbV9fIF9f dm9sYXRpbGVfXygKLSAgICAgICAgICJkY2JmIDAsICUwICBcbiIKLS0gICAgICAgICJzeW5jICAg ICAgICBcbiIKLS0gICAgICAgICJpY2JpIDAsICUwICBcbiIKLS0gICAgICAgICJpc3luYyAgICAg ICBcbiIKLSAgICAgICAgIDogLyogbm8gb3V0cHV0ICovCi0gICAgICAgICA6ICJyIihwb2ludGVy KSk7Ci0gICB9Ci0rICBfX2FzbV9fIF9fdm9sYXRpbGVfXygic3luYyIpOwotIAotKyAgc3RhcnQg PQotKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Ynl0ZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRy X3Q+KGJ1ZmZlcikgJiB+aWNfbWFzayk7Ci0rICBmb3IgKGJ5dGUqIHBvaW50ZXIgPSBzdGFydDsg cG9pbnRlciA8IGVuZDsgcG9pbnRlciArPSBrSW5zdHJDYWNoZUxpbmVTaXplKSB7Ci0rICAgIF9f YXNtX18gX192b2xhdGlsZV9fKAotKyAgICAgICAgImljYmkgMCwgJTAgIFxuIgotKyAgICAgICAg OiAvKiBubyBvdXRwdXQgKi8KLSsgICAgICAgIDogInIiKHBvaW50ZXIpKTsKLSsgIH0KLSsgIF9f YXNtX18gX192b2xhdGlsZV9fKCJpc3luYyIpOwotICNlbmRpZiAgLy8gIVVTRV9TSU1VTEFUT1IK LSB9Ci0gfSAgLy8gbmFtZXNwYWNlIGludGVybmFsCi0gfSAgLy8gbmFtZXNwYWNlIHY4Ci0gCi0t I3VuZGVmIElOU1RSX0FORF9EQVRBX0NBQ0hFX0NPSEVSRU5DWQotICNlbmRpZiAgLy8gVjhfVEFS R0VUX0FSQ0hfUFBDIHx8IFY4X1RBUkdFVF9BUkNIX1BQQzY0Ci0tLS0gLi9kZXBzL3Y4L3NyYy9j b2RlZ2VuL3BwYy9hc3NlbWJsZXItcHBjLmNjLm9yaWcJMjAyMi0wMi0wOCAwNDozNzo0OC4wMDAw MDAwMDAgLTA4MDAKLSsrKyAuL2RlcHMvdjgvc3JjL2NvZGVnZW4vcHBjL2Fzc2VtYmxlci1wcGMu Y2MJMjAyMi0wMi0yMCAxNzoyMDoyNS4wMTk1OTEyMjUgLTA4MDAKLUBAIC02NSw2ICs2NSw3IEBA Ci0gdm9pZCBDcHVGZWF0dXJlczo6UHJvYmVJbXBsKGJvb2wgY3Jvc3NfY29tcGlsZSkgewotICAg c3VwcG9ydGVkXyB8PSBDcHVGZWF0dXJlc0ltcGxpZWRCeUNvbXBpbGVyKCk7Ci0gICBpY2FjaGVf bGluZV9zaXplXyA9IDEyODsKLSsgIGRjYWNoZV9saW5lX3NpemVfID0gMTI4OwotIAotICAgLy8g T25seSB1c2Ugc3RhdGljYWxseSBkZXRlcm1pbmVkIGZlYXR1cmVzIGZvciBjcm9zcyBjb21waWxl IChzbmFwc2hvdCkuCi0gICBpZiAoY3Jvc3NfY29tcGlsZSkgcmV0dXJuOwotQEAgLTczLDYgKzc0 LDggQEAKLSAjaWZkZWYgVVNFX1NJTVVMQVRPUgotICAgLy8gU2ltdWxhdG9yCi0gICBzdXBwb3J0 ZWRfIHw9ICgxdSA8PCBQUENfMTBfUExVUyk7Ci0rICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBJQ0FD SEVfU05PT1ApOwotKyAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgSVNFTEVDVCk7Ci0gI2Vsc2UKLSAg IGJhc2U6OkNQVSBjcHU7Ci0gICBpZiAoY3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OmtQUENQb3dl cjEwKSB7Ci1AQCAtODUsMTcgKzg4LDM3IEBACi0gICAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IFBQ Q183X1BMVVMpOwotICAgfSBlbHNlIGlmIChjcHUucGFydCgpID09IGJhc2U6OkNQVTo6a1BQQ1Bv d2VyNikgewotICAgICBzdXBwb3J0ZWRfIHw9ICgxdSA8PCBQUENfNl9QTFVTKTsKLSsgIH0gZWxz ZSBpZiAoY3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OmtQUENQb3dlcjUgfHwKLSsgICAgICAgICAg ICAgY3B1LnBhcnQoKSA9PSBiYXNlOjpDUFU6OmtQUENQQTZUKSB7Ci0rICAgIHN1cHBvcnRlZF8g fD0gKDF1IDw8IFBQQ181X1BMVVMpOwotKyAgfSBlbHNlIGlmIChjcHUucGFydCgpID09IGJhc2U6 OkNQVTo6a1BQQ0U2NTAwIHx8Ci0rICAgICAgICAgICAgIGNwdS5wYXJ0KCkgPT0gYmFzZTo6Q1BV OjprUFBDRTU1MDApIHsKLSsgICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwgUFBDXzdfUExVU19OWFAp OyAgIC8vIE5YUC1zdXBwb3J0ZWQgdjIuMDYgZmVhdHVyZXMKLSsgIH0KLSsKLSsgIGlmIChjcHUu aGFzX2ljYWNoZV9zbm9vcCgpKSB7Ci0rICAgIHN1cHBvcnRlZF8gfD0gKDF1IDw8IElDQUNIRV9T Tk9PUCk7Ci0rICB9Ci0rICBpZiAoY3B1Lmhhc19pc2VsKCkpIHsKLSsgICAgc3VwcG9ydGVkXyB8 PSAoMXUgPDwgSVNFTEVDVCk7Ci0gICB9Ci0gI2lmIFY4X09TX0xJTlVYCi0gICBpZiAoY3B1Lmlj YWNoZV9saW5lX3NpemUoKSAhPSBiYXNlOjpDUFU6OmtVbmtub3duQ2FjaGVMaW5lU2l6ZSkgewot ICAgICBpY2FjaGVfbGluZV9zaXplXyA9IGNwdS5pY2FjaGVfbGluZV9zaXplKCk7Ci0gICB9Ci0r ICBpZiAoY3B1LmRjYWNoZV9saW5lX3NpemUoKSAhPSBiYXNlOjpDUFU6OmtVbmtub3duQ2FjaGVM aW5lU2l6ZSkgewotKyAgICBkY2FjaGVfbGluZV9zaXplXyA9IGNwdS5kY2FjaGVfbGluZV9zaXpl KCk7Ci0rICB9Ci0gI2VuZGlmCi0gI2VuZGlmCi0gICBpZiAoc3VwcG9ydGVkXyAmICgxdSA8PCBQ UENfMTBfUExVUykpIHN1cHBvcnRlZF8gfD0gKDF1IDw8IFBQQ185X1BMVVMpOwotICAgaWYgKHN1 cHBvcnRlZF8gJiAoMXUgPDwgUFBDXzlfUExVUykpIHN1cHBvcnRlZF8gfD0gKDF1IDw8IFBQQ184 X1BMVVMpOwotICAgaWYgKHN1cHBvcnRlZF8gJiAoMXUgPDwgUFBDXzhfUExVUykpIHN1cHBvcnRl ZF8gfD0gKDF1IDw8IFBQQ183X1BMVVMpOwotLSAgaWYgKHN1cHBvcnRlZF8gJiAoMXUgPDwgUFBD XzdfUExVUykpIHN1cHBvcnRlZF8gfD0gKDF1IDw8IFBQQ182X1BMVVMpOwotKyAgaWYgKHN1cHBv cnRlZF8gJiAoMXUgPDwgUFBDXzdfUExVUykpIHsKLSsgICAgc3VwcG9ydGVkXyB8PSAoMXUgPDwg UFBDXzdfUExVU19OWFApOyAgIC8vIE5YUC1zdXBwb3J0ZWQgdjIuMDYgZmVhdHVyZXMKLSsgICAg c3VwcG9ydGVkXyB8PSAoMXUgPDwgUFBDXzZfUExVUyk7Ci0rICB9Ci0rICBpZiAoc3VwcG9ydGVk XyAmICgxdSA8PCBQUENfNl9QTFVTKSkgc3VwcG9ydGVkXyB8PSAoMXUgPDwgUFBDXzVfUExVUyk7 Ci0gCi0gICAvLyBTZXQgYSBzdGF0aWMgdmFsdWUgb24gd2hldGhlciBTaW1kIGlzIHN1cHBvcnRl ZC4KLSAgIC8vIFRoaXMgdmFyaWFibGUgaXMgb25seSB1c2VkIGZvciBjZXJ0YWluIGFyY2hzIHRv IHF1ZXJ5IFN1cHBvcnRXYXNtU2ltZDEyOCgpCi1AQCAtMTE3LDExICsxNDAsMTUgQEAKLSB9Ci0g Ci0gdm9pZCBDcHVGZWF0dXJlczo6UHJpbnRGZWF0dXJlcygpIHsKLSsgIHByaW50ZigiUFBDXzVf UExVUz0lZFxuIiwgQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ181X1BMVVMpKTsKLSAgIHBy aW50ZigiUFBDXzZfUExVUz0lZFxuIiwgQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ182X1BM VVMpKTsKLSAgIHByaW50ZigiUFBDXzdfUExVUz0lZFxuIiwgQ3B1RmVhdHVyZXM6OklzU3VwcG9y dGVkKFBQQ183X1BMVVMpKTsKLSAgIHByaW50ZigiUFBDXzhfUExVUz0lZFxuIiwgQ3B1RmVhdHVy ZXM6OklzU3VwcG9ydGVkKFBQQ184X1BMVVMpKTsKLSAgIHByaW50ZigiUFBDXzlfUExVUz0lZFxu IiwgQ3B1RmVhdHVyZXM6OklzU3VwcG9ydGVkKFBQQ185X1BMVVMpKTsKLSAgIHByaW50ZigiUFBD XzEwX1BMVVM9JWRcbiIsIENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChQUENfMTBfUExVUykpOwot KyAgcHJpbnRmKCJJQ0FDSEVfU05PT1A9JWRcbiIsIENwdUZlYXR1cmVzOjpJc1N1cHBvcnRlZChJ Q0FDSEVfU05PT1ApKTsKLSsgIHByaW50ZigiSVNFTEVDVD0lZFxuIiwgQ3B1RmVhdHVyZXM6Oklz U3VwcG9ydGVkKElTRUxFQ1QpKTsKLSsgIHByaW50ZigiUFBDXzdfUExVU19OWFA9JWRcbiIsIENw dUZlYXR1cmVzOjpJc1N1cHBvcnRlZChQUENfN19QTFVTX05YUCkpOwotIH0KLSAKLSBSZWdpc3Rl ciBUb1JlZ2lzdGVyKGludCBudW0pIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvbm9kZWpzL3BhdGNo ZXMvcHl0aG9uMy4xMS5wYXRjaCBiL3NyY3BrZ3Mvbm9kZWpzL3BhdGNoZXMvcHl0aG9uMy4xMS5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I5ZGJjYjk5NTg0Li4wMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9ub2RlanMvcGF0Y2hlcy9weXRob24zLjExLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotRnJvbSBjZjc0OGFkMmI3Zjc2MGUyZGYxYmM4YTgx MWY4ODcxNjFiODkyNTM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTHVpZ2kgUGlu Y2EgPGx1aWdpcGluY2FAZ21haWwuY29tPgotRGF0ZTogV2VkLCAyNiBPY3QgMjAyMiAxNTowMTo1 OSArMDIwMAotU3ViamVjdDogW1BBVENIXSBidWlsZDogc3VwcG9ydCBQeXRob24gMy4xMQotTUlN RS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAot Q29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1QUi1VUkw6IGh0dHBzOi8vZ2l0aHVi LmNvbS9ub2RlanMvbm9kZS9wdWxsLzQ1MTkxCi1SZXZpZXdlZC1CeTogUmljaCBUcm90dCA8cnRy b3R0QGdtYWlsLmNvbT4KLVJldmlld2VkLUJ5OiBNb3NoZSBBdGxvdyA8bW9zaGVAYXRsb3cuY28u aWw+Ci1SZXZpZXdlZC1CeTogUmljaGFyZCBMYXUgPHJsYXVAcmVkaGF0LmNvbT4KLVJldmlld2Vk LUJ5OiBDaHJpc3RpYW4gQ2xhdXNzIDxjY2xhdXNzQG1lLmNvbT4KLVJldmlld2VkLUJ5OiBZYWdp eiBOaXppcGxpIDx5YWdpekBuaXppcGxpLmNvbT4KLVJldmlld2VkLUJ5OiBKYW1lcyBNIFNuZWxs IDxqYXNuZWxsQGdtYWlsLmNvbT4KLVJldmlld2VkLUJ5OiBKaWF3ZW4gR2VuZyA8dGVjaG5pY2Fs Y3V0ZUBnbWFpbC5jb20+Ci1SZXZpZXdlZC1CeTogSnVhbiBKb3PDqSBBcmJvbGVkYSA8c295anVh bmFyYm9sQGdtYWlsLmNvbT4KLS0tLQotIEJVSUxESU5HLm1kIHwgNiArKystLS0KLSBjb25maWd1 cmUgICB8IDMgKystCi0gMiBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9CVUlMRElORy5tZCBiL0JVSUxESU5HLm1kCi1pbmRleCAw ZGQ5NTQ4ODAxMzEuLmU2NmFhMzE0ZDMyOSAxMDA2NDQKLS0tLSBhL0JVSUxESU5HLm1kCi0rKysg Yi9CVUlMRElORy5tZAotQEAgLTIyNSw3ICsyMjUsNyBAQCBUaGUgTm9kZS5qcyBwcm9qZWN0IHN1 cHBvcnRzIFB5dGhvbiA+PSAzIGZvciBidWlsZGluZyBhbmQgdGVzdGluZy4KLSAKLSAqIGBnY2Ng IGFuZCBgZysrYCA+PSA4LjMgb3IgbmV3ZXIKLSAqIEdOVSBNYWtlIDMuODEgb3IgbmV3ZXIKLS0q IFB5dGhvbiAzLjYsIDMuNywgMy44LCAzLjksIG9yIDMuMTAgKHNlZSBub3RlIGFib3ZlKQotKyog UHl0aG9uID49My42IDw9My4xMSAoc2VlIG5vdGUgYWJvdmUpCi0gICAqIEZvciB0ZXN0IGNvdmVy YWdlLCB5b3VyIFB5dGhvbiBpbnN0YWxsYXRpb24gbXVzdCBpbmNsdWRlIHBpcC4KLSAKLSBJbnN0 YWxsYXRpb24gdmlhIExpbnV4IHBhY2thZ2UgbWFuYWdlciBjYW4gYmUgYWNoaWV2ZWQgd2l0aDoK LUBAIC0yNDEsNyArMjQxLDcgQEAgRnJlZUJTRCBhbmQgT3BlbkJTRCB1c2VycyBtYXkgYWxzbyBu ZWVkIHRvIGluc3RhbGwgYGxpYmV4ZWNpbmZvYC4KLSAjIyMjIG1hY09TIHByZXJlcXVpc2l0ZXMK LSAKLSAqIFhjb2RlIENvbW1hbmQgTGluZSBUb29scyA+PSAxMSBmb3IgbWFjT1MKLS0qIFB5dGhv biAzLjYsIDMuNywgMy44LCAzLjksIG9yIDMuMTAgKHNlZSBub3RlIGFib3ZlKQotKyogUHl0aG9u ID49My42IDw9My4xMSAoc2VlIG5vdGUgYWJvdmUpCi0gICAqIEZvciB0ZXN0IGNvdmVyYWdlLCB5 b3VyIFB5dGhvbiBpbnN0YWxsYXRpb24gbXVzdCBpbmNsdWRlIHBpcC4KLSAKLSBtYWNPUyB1c2Vy cyBjYW4gaW5zdGFsbCB0aGUgYFhjb2RlIENvbW1hbmQgTGluZSBUb29sc2AgYnkgcnVubmluZwot QEAgLTU2NSw3ICs1NjUsNyBAQCB0byBydW4gaXQgYWdhaW4gYmVmb3JlIGludm9raW5nIGBtYWtl IC1qNGAuCi0gCi0gIyMjIyMgT3B0aW9uIDE6IE1hbnVhbCBpbnN0YWxsCi0gCi0tKiBbUHl0aG9u IDMuMTBdKGh0dHBzOi8vd3d3Lm1pY3Jvc29mdC5jb20vZW4tdXMvcC9weXRob24tMzEwLzlwanB3 NWxkeGx6NSkKLSsqIFtQeXRob24gMy4xMV0oaHR0cHM6Ly9hcHBzLm1pY3Jvc29mdC5jb20vc3Rv cmUvZGV0YWlsL3B5dGhvbi0zMTEvOU5SV01KUDM3MTdLKQotICogVGhlICJEZXNrdG9wIGRldmVs b3BtZW50IHdpdGggQysrIiB3b3JrbG9hZCBmcm9tCi0gICBbVmlzdWFsIFN0dWRpbyAyMDE5XSho dHRwczovL3Zpc3VhbHN0dWRpby5taWNyb3NvZnQuY29tL3ZzL29sZGVyLWRvd25sb2Fkcy8jdmlz dWFsLXN0dWRpby0yMDE5LWFuZC1vdGhlci1wcm9kdWN0cykgb3IKLSAgIHRoZSAiQysrIGJ1aWxk IHRvb2xzIiB3b3JrbG9hZCBmcm9tIHRoZQotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZp Z3VyZQotaW5kZXggNmVmMmRhMmU2MzFlLi5mZWZiMzEzYzljZDEgMTAwNzU1Ci0tLS0gYS9jb25m aWd1cmUKLSsrKyBiL2NvbmZpZ3VyZQotQEAgLTQsNiArNCw3IEBACi0gIyBOb3RlIHRoYXQgdGhl IG1peCBvZiBzaW5nbGUgYW5kIGRvdWJsZSBxdW90ZXMgaXMgaW50ZW50aW9uYWwsCi0gIyBhcyBp cyB0aGUgZmFjdCB0aGF0IHRoZSBdIGdvZXMgb24gYSBuZXcgbGluZS4KLSBfPVsgJ2V4ZWMnICcv YmluL3NoJyAnLWMnICcnJwotK2NvbW1hbmQgLXYgcHl0aG9uMy4xMSA+L2Rldi9udWxsICYmIGV4 ZWMgcHl0aG9uMy4xMSAiJDAiICIkQCIKLSBjb21tYW5kIC12IHB5dGhvbjMuMTAgPi9kZXYvbnVs bCAmJiBleGVjIHB5dGhvbjMuMTAgIiQwIiAiJEAiCi0gY29tbWFuZCAtdiBweXRob24zLjkgPi9k ZXYvbnVsbCAmJiBleGVjIHB5dGhvbjMuOSAiJDAiICIkQCIKLSBjb21tYW5kIC12IHB5dGhvbjMu OCA+L2Rldi9udWxsICYmIGV4ZWMgcHl0aG9uMy44ICIkMCIgIiRAIgotQEAgLTIyLDcgKzIzLDcg QEAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgZnJvbSBkaXN0dXRpbHMuc3Bhd24gaW1wb3J0IGZp bmRfZXhlY3V0YWJsZSBhcyB3aGljaAotIAotIHByaW50KCdOb2RlLmpzIGNvbmZpZ3VyZTogRm91 bmQgUHl0aG9uIHt9Lnt9Lnt9Li4uJy5mb3JtYXQoKnN5cy52ZXJzaW9uX2luZm8pKQotLWFjY2Vw dGFibGVfcHl0aG9ucyA9ICgoMywgMTApLCAoMywgOSksICgzLCA4KSwgKDMsIDcpLCAoMywgNikp Ci0rYWNjZXB0YWJsZV9weXRob25zID0gKCgzLCAxMSksICgzLCAxMCksICgzLCA5KSwgKDMsIDgp LCAoMywgNyksICgzLCA2KSkKLSBpZiBzeXMudmVyc2lvbl9pbmZvWzoyXSBpbiBhY2NlcHRhYmxl X3B5dGhvbnM6Ci0gICBpbXBvcnQgY29uZmlndXJlCi0gZWxzZToKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvbm9kZWpzL3RlbXBsYXRlIGIvc3JjcGtncy9ub2RlanMvdGVtcGxhdGUKaW5kZXggYzJmNGQ0 ZWIzNDBmLi4wZmVlMGE4ZWM3MjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvbm9kZWpzL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3Mvbm9kZWpzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnbm9kZWpzJwogcGtnbmFtZT1ub2RlanMKLXZlcnNpb249MTYuMTUuMQotcmV2 aXNpb249MgordmVyc2lvbj0xNi4xOS4wCityZXZpc2lvbj0xCiAjIE5lZWQgdGhlc2UgZm9yIGhv c3QgdjggZm9yIHRvcnF1ZSwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlanMvbm9kZS9wdWxs LzIxMDc5CiBob3N0bWFrZWRlcGVuZHM9IndoaWNoIHBrZy1jb25maWcgcHl0aG9uMyBsaWJhdG9t aWMtZGV2ZWwgemxpYi1kZXZlbAogICQodm9wdF9pZiBpY3UgaWN1LWRldmVsKSAkKHZvcHRfaWYg c3NsIG9wZW5zc2wtZGV2ZWwpICQodm9wdF9pZiBsaWJ1diBsaWJ1di1kZXZlbCkKQEAgLTE1LDcg KzE1LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9Ik1JVCIKIGhvbWVwYWdlPSJodHRwczovL25vZGVqcy5vcmcvIgogZGlzdGZpbGVz PSJodHRwczovL25vZGVqcy5vcmcvZGlzdC92JHt2ZXJzaW9ufS9ub2RlLXYke3ZlcnNpb259LnRh ci5neiIKLWNoZWNrc3VtPTMwOGFlZTcxNDljNDA5MmE1M2M4N2MyOGVmNDllMjNhOGQxNjA2MTE5 ZTc5YWU2ODMzMzA2MmUyYTFmOTQyMDgKK2NoZWNrc3VtPThiOGEyOTM5ZmE1ZjY1NGZmNjFjYWUy OWIxMjExOGMyNDEwOTI3MzQ1OGVjYmU2MTYyYWQ4YTg4NTgzMDllMGQKIHB5dGhvbl92ZXJzaW9u PTMKIAogYnVpbGRfb3B0aW9ucz0ic3NsIGxpYnV2IGljdSBuZ2h0dHAyIGNhcmVzIgpAQCAtODgs NyArODgsNyBAQCBkb19idWlsZCgpIHsKIH0KIAogZG9fY2hlY2soKSB7Ci0JbG9jYWwgQ0lfU0tJ UF9URVNUUz0idGVzdC1jbHVzdGVyLXByaW1hcnktZXJyb3IuanMsdGVzdC1jbHVzdGVyLXByaW1h cnkta2lsbC5qcyIKKwlsb2NhbCBDSV9TS0lQX1RFU1RTPSJ0ZXN0LWNsdXN0ZXItcHJpbWFyeS1l cnJvci5qcyx0ZXN0LWNsdXN0ZXItcHJpbWFyeS1raWxsLmpzLHRlc3QtY2hpbGQtcHJvY2Vzcy11 aWQtZ2lkLmpzLHRlc3QtcHJvY2Vzcy1ldWlkLWVnaWQuanMsdGVzdC1wcm9jZXNzLXVpZC1naWQu anMsdGVzdC1zb2NrZXQtd3JpdGUtYWZ0ZXItZmluLWVycm9yLmpzLHRlc3QtZG5zLXBlcmZfaG9v a3MuanMiCiAJbWFrZSBDSV9TS0lQX1RFU1RTPSIkQ0lfU0tJUF9URVNUUyIgTEQ9IiRDWFgiIExE RkxBR1MrPS1sZGwgJHttYWtlam9ic30gVj0xIHRlc3Qtb25seQogfQogCg== --===============7923226111071132106==--