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, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 17655 invoked from network); 29 Aug 2022 17:11:20 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 29 Aug 2022 17:11:20 -0000 Content-Type: multipart/mixed; boundary="===============3641583215360221250==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_New_package=3A_7zip-22=2E01?= To: ml@inbox.vuxu.org From: r-ricci Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Mon, 29 Aug 2022 19:11:20 +0200 List-Id: Message-ID: <20220829171120.0xRZx9V86rheTrtmF84AyxOXq5dN7o1L3fNO82rnbi8@z> GitHub notification mails are now in MIME to allow UTF8. --===============3641583215360221250== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgci1yaWNjaSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vci1y aWNjaS92b2lkLXBhY2thZ2VzIDd6aXAKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzM3OTQwCgpOZXcgcGFja2FnZTogN3ppcC0yMi4wMQo8IS0tIFVuY29t bWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJlIG5vdCBh cHBsaWNhYmxlIC0tPg0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0ZWQgdGhl IGNoYW5nZXMgaW4gdGhpcyBQUjogKipicmllZmx5KioNCg0KPCEtLQ0KIyMjIyBOZXcgcGFja2Fn ZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1aXJlbWVu dHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0 ZXIvTWFudWFsLm1kI3F1YWxpdHktcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioNCi0tPg0K DQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBo b3VycywgcGxlYXNlIGFkZCBjaSBza2lwIHRhZyBhcyBkZXNjcmliZWQgaW4NCmh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5H Lm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24NCmFuZCB0ZXN0IGF0IGxlYXN0IG9uZSBuYXRpdmUg YnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQsIGF0IGxlYXN0IG9uZSBjcm9zcyBidWlsZC4NCklnbm9y ZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQUiBpcyBub3Qgc2tpcHBpbmcgQ0kuDQotLT4NCjwhLS0N CiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZw0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3Ig bXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKEFSQ0gtTElCQykNCi0gSSBidWlsdCB0aGlzIFBSIGxv Y2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1 aWxkcyk6DQogIC0gYWFyY2g2NC1tdXNsDQogIC0gYXJtdjdsDQogIC0gYXJtdjZsLW11c2wNCi0t Pg0KDQpJIGRvbid0IHRoaW5rIHRoZXJlJ3MgYW55IHJlYXNvbiB0byBzaGlwIHRoZSBmdWxsIGFu ZCB0aGUgcmVkdWNlZCB2ZXJzaW9ucyBpbiB0aGUgc2FtZSBwYWNrYWdlLCBzbyBJIGp1c3QgY29t cGlsZSB0aGUgZnVsbCBvbmUgYW5kIGNyZWF0ZSBzeW1saW5rcyBmb3IgY29tcGF0aWJpbGl0eS4N Cg0KIyMjIyBUT0RPOg0KDQotIFt4XSBmaXggbXVzbA0KLSBbIF0gfmJ1aWxkIHdpdGggYXNzZW1i bHkgd2hlcmUgcG9zc2libGU6IG9uIGk2ODYgYW5kIHg4Nl82NCogaXQgcmVxdWlyZXMgYGFzbWNg IG9yIGBqd2FzbWAvYHVhc21gIGFzc2VtYmxlcnMsIG5vbmUgb2Ygd2hpY2ggYXJlIHBhY2thZ2Vk fg0KLSBbeF0gYnVpbGQgYSB2ZXJzaW9uIHdpdGggUkFSIHN1cHBvcnQgKG5vbmZyZWUgcmVwbykN Ci0gW3hdIHVzZSBvdXIgY29tcGlsZSBhbmQgbGluayBmbGFncw0KLSBbeF0gdGVzdCBwYWNrYWdl cyB0aGF0IGRlcGVuZCBvbiBgcDd6aXBgIGF0IGJ1aWxkL2NoZWNrIHRpbWU6IFNMQURFLCBaODBF eHBsb3JlciwgYXJrLCBjYnAybWFrZS4gKEkganVzdCB0ZXN0ZWQgdGhhdCB0aGV5IHN0aWxsIGJ1 aWxkKQ0KLSB0ZXN0IHBhY2thZ2VzIHRoYXQgZGVwZW5kIG9uIGBwN3ppcGAgYXQgcnVuIHRpbWU6 DQogICAgLSBbIF0ganVsaWENCiAgICAtIFsgXSBsdXRyaXMNCiAgICAtIFsgXSBtdWx0aWJvb3R1 c2INCiAgICAtIFsgXSBwbGF5b25saW51eA0KDQpjbG9zZXMgIzM3ODc1CgpBIHBhdGNoIGZpbGUg ZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzc5 NDAucGF0Y2ggaXMgYXR0YWNoZWQ= --===============3641583215360221250== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-7zip-37940.patch" RnJvbSA4Nzg0YzIyOTVlN2QzNjlmMTUwNTNmNmRiOWE5NDEwNWIzZTQ2MDU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnRvIFJpY2NpIDxyaWNjaUBkaXNyb290Lm9yZz4KRGF0 ZTogTW9uLCAyOSBBdWcgMjAyMiAxOTowMToxNyArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIE5ldyBw YWNrYWdlOiA3emlwLTIyLjAxCgotLS0KIHNyY3BrZ3MvN3ppcC11bnJhciAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzLzd6aXAvcDd6aXAtdW5yYXIuSU5TVEFMTC5t c2cgICAgICAgICAgfCAgIDUgKwogc3JjcGtncy83emlwL3BhdGNoZXMvYnVpbGRfZmxhZ3MucGF0 Y2ggICAgICAgIHwgIDU2ICsrKysKIHNyY3BrZ3MvN3ppcC90ZW1wbGF0ZSAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA3NCArKysrKwogc3JjcGtncy83emlwL3VwZGF0ZSAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAyICsKIHNyY3BrZ3MvcDd6aXAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL3A3emlwLXVucmFyICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8yMC1DVkUtMjAxOC01OTk2 LnBhdGNoICB8IDIyMSAtLS0tLS0tLS0tLS0tCiBzcmNwa2dzL3A3emlwL3BhdGNoZXMvMzAtQ1ZF LTIwMTgtMTAxMTUucGF0Y2ggfCAzMTEgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL3A3emlw L3BhdGNoZXMvQ1ZFLTIwMTYtOTI5Ni5wYXRjaCAgICAgfCAgMTIgLQogc3JjcGtncy9wN3ppcC9w YXRjaGVzL0NWRS0yMDE3LTE3OTY5LnBhdGNoICAgIHwgIDI2IC0tCiBzcmNwa2dzL3A3emlwL3Rl bXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDcgLS0tCiBzcmNwa2dzL3A3emlwL3Vw ZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgLQogMTMgZmlsZXMgY2hhbmdlZCwg MTQwIGluc2VydGlvbnMoKyksIDYxOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEyMDAwMCBz cmNwa2dzLzd6aXAtdW5yYXIKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzLzd6aXAvcDd6aXAt dW5yYXIuSU5TVEFMTC5tc2cKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzLzd6aXAvcGF0Y2hl cy9idWlsZF9mbGFncy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvN3ppcC90ZW1w bGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvN3ppcC91cGRhdGUKIGNyZWF0ZSBtb2Rl IDEyMDAwMCBzcmNwa2dzL3A3emlwCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9wN3ppcC9w YXRjaGVzLzIwLUNWRS0yMDE4LTU5OTYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3A3emlwL3BhdGNoZXMvMzAtQ1ZFLTIwMTgtMTAxMTUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTYtOTI5Ni5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNy0xNzk2OS5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcDd6aXAvdGVtcGxhdGUKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3A3emlwL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvN3ppcC11bnJhciBiL3Ny Y3BrZ3MvN3ppcC11bnJhcgpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAu LjI4NDMxMjU5NWE0YwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvN3ppcC11bnJhcgpAQCAt MCwwICsxIEBACis3emlwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv c3JjcGtncy83emlwL3A3emlwLXVucmFyLklOU1RBTEwubXNnIGIvc3JjcGtncy83emlwL3A3emlw LXVucmFyLklOU1RBTEwubXNnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uNzc1Zjk0M2MwYTU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy83emlwL3A3emlwLXVu cmFyLklOU1RBTEwubXNnCkBAIC0wLDAgKzEsNSBAQAorVGhlIHA3emlwLXVucmFyIHBhY2thZ2Ug aGFzIGJlZW4gcmVwbGFjZWQgYnkgN3ppcC11bnJhci4KK1RvIHVzZSB0aGUgUkFSLWVuYWJsZWQg dmVyc2lvbiBvZiBgN3pgLCBtYWtlIHN1cmUgdGhlIGRlc2lyZWQKK2FsdGVybmF0aXZlIGlzIGNv bmZpZ3VyZWQ6CisKKwkjIHhicHMtYWx0ZXJuYXRpdmVzIC1zIDd6aXAtdW5yYXIKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvN3ppcC9wYXRjaGVzL2J1aWxkX2ZsYWdzLnBhdGNoIGIvc3JjcGtncy83emlw L3BhdGNoZXMvYnVpbGRfZmxhZ3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5mMzZkZDU3OTE2ODAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzLzd6aXAv cGF0Y2hlcy9idWlsZF9mbGFncy5wYXRjaApAQCAtMCwwICsxLDU2IEBACithZGFwdGVkIGZyb20g aHR0cHM6Ly9zb3VyY2VzLmRlYmlhbi5vcmcvcGF0Y2hlcy83emlwLzIyLjAxK2Rmc2ctNC8wMDAx LUFjY2VwdC1EZWJpYW4tYnVpbGQtZmxhZ3MucGF0Y2gvCithbmQgaHR0cHM6Ly9naXRsYWIuYWxw aW5lbGludXgub3JnL2FscGluZS9hcG9ydHMvLS9yYXcvMjkxYTJiNjFkNmU2MTNmYmUzZWQwNTdj MWYyZWU0MWZkMmFlYTlhYy9jb21tdW5pdHkvN3ppcC83LXppcC1mbGFncy5wYXRjaAorLS0tIGEv Q1BQLzd6aXAvN3ppcF9nY2MubWFrCisrKysgYi9DUFAvN3ppcC83emlwX2djYy5tYWsKK0BAIC0x OCwxMyArMTgsMTMgQEAKKyANCisgDQorIGlmbmVxICgkKENDKSwgeGxjKQ0KKy1DRkxBR1NfV0FS Tl9XQUxMID0gLVdhbGwgLVdlcnJvciAtV2V4dHJhDQorK0NGTEFHU19XQVJOX1dBTEwgPSAtV2Fs bCAtV2V4dHJhDQorIGVuZGlmDQorIA0KKyAjIGZvciBvYmplY3QgZmlsZQ0KKyBDRkxBR1NfQkFT RV9MSVNUID0gLWMNCisgIyBDRkxBR1NfQkFTRV9MSVNUID0gLVMNCistQ0ZMQUdTX0JBU0UgPSAt TzIgJChDRkxBR1NfQkFTRV9MSVNUKSAkKENGTEFHU19XQVJOX1dBTEwpICQoQ0ZMQUdTX1dBUk4p IFwNCisrQ0ZMQUdTX0JBU0UgPSAkKENGTEFHU19CQVNFX0xJU1QpICQoQ0ZMQUdTX1dBUk5fV0FM TCkgJChDRkxBR1NfV0FSTikgXA0KKyAgLUROREVCVUcgLURfUkVFTlRSQU5UIC1EX0ZJTEVfT0ZG U0VUX0JJVFM9NjQgLURfTEFSR0VGSUxFX1NPVVJDRSBcDQorICAtZlBJQw0KKyANCitAQCAtODIs NyArODIsNyBAQAorIA0KKyBlbHNlDQorIA0KKy1MREZMQUdTID0gJChMREZMQUdTX1NUQVRJQykN CisrTERGTEFHUyA9ICQoVk9JRF9MREZMQUdTKSAkKExERkxBR1NfU1RBVElDKQ0KKyAjIC1zIGlz IG5vdCByZXF1aXJlZCBmb3IgY2xhbmcsIGRvIHdlIG5lZWQgaXQgZm9yIEdHQyA/Pz8NCisgIyAt cw0KKyANCitAQCAtMTM4LDcgKzEzOCw3IEBACisgDQorIA0KKyANCistQ0ZMQUdTID0gJChNWV9B UkNIXzIpICQoTE9DQUxfRkxBR1MpICQoQ0ZMQUdTX0JBU0UyKSAkKENGTEFHU19CQVNFKSAkKEND X1NIQVJFRCkgLW8gJEANCisrQ0ZMQUdTID0gJChWT0lEX0NGTEFHUykgJChWT0lEX0NQUEZMQUdT KSAkKE1ZX0FSQ0hfMikgJChMT0NBTF9GTEFHUykgJChDRkxBR1NfQkFTRTIpICQoQ0ZMQUdTX0JB U0UpICQoQ0NfU0hBUkVEKSAtbyAkQA0KKyANCisgDQorIGlmZGVmIElTX01JTkdXDQorQEAgLTE3 OSw3ICsxNzksNyBAQAorICMtV25vLWludmFsaWQtb2Zmc2V0b2YNCisgIy1Xbm8tcmVvcmRlcg0K KyANCistQ1hYRkxBR1MgPSAkKE1ZX0FSQ0hfMikgJChMT0NBTF9GTEFHUykgJChDWFhGTEFHU19C QVNFMikgJChDRkxBR1NfQkFTRSkgJChDWFhGTEFHU19FWFRSQSkgJChDQ19TSEFSRUQpIC1vICRA ICQoQ1hYX1dBUk5fRkxBR1MpDQorK0NYWEZMQUdTID0gJChWT0lEX0NYWEZMQUdTKSAkKFZPSURf Q1BQRkxBR1MpICQoTVlfQVJDSF8yKSAkKExPQ0FMX0ZMQUdTKSAkKENYWEZMQUdTX0JBU0UyKSAk KENGTEFHU19CQVNFKSAkKENYWEZMQUdTX0VYVFJBKSAkKENDX1NIQVJFRCkgLW8gJEAgJChDWFhf V0FSTl9GTEFHUykNCisgDQorIFNUQVRJQ19UQVJHRVQ9DQorIGlmZGVmIENPTVBMX1NUQVRJQw0K K0BAIC0xOTIsNyArMTkyLDcgQEAKKyAkKE8pOg0KKyAJJChNWV9NS0RJUikgJChPKQ0KKyANCist TEZMQUdTX0FMTCA9IC1zICQoTVlfQVJDSF8yKSAkKExERkxBR1MpICQoTERfYXJjaCkgJChPQkpT KSAkKE1ZX0xJQlMpICQoTElCMikNCisrTEZMQUdTX0FMTCA9ICQoTVlfQVJDSF8yKSAkKExERkxB R1MpICQoTERfYXJjaCkgJChPQkpTKSAkKE1ZX0xJQlMpICQoTElCMikNCisgJChQUk9HUEFUSCk6 ICQoT0JKUykNCisgCSQoQ1hYKSAtbyAkKFBST0dQQVRIKSAkKExGTEFHU19BTEwpDQorIA0KZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvN3ppcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvN3ppcC90ZW1wbGF0ZQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjEzY2IxNjRhN2UwYwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvN3ppcC90ZW1wbGF0ZQpAQCAtMCwwICsxLDc0IEBACisj IFRlbXBsYXRlIGZpbGUgZm9yICc3emlwJworcGtnbmFtZT03emlwCit2ZXJzaW9uPTIyLjAxCity ZXZpc2lvbj0xCitjcmVhdGVfd3Jrc3JjPXllcworc2hvcnRfZGVzYz0iRmlsZSBhcmNoaXZlciB3 aXRoIGEgaGlnaCBjb21wcmVzc2lvbiByYXRpbyIKK21haW50YWluZXI9IlJvYmVydG8gUmljY2kg PHJpY2NpQGRpc3Jvb3Qub3JnPiIKK2xpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyLCBCU0QtMy1D bGF1c2UiCitob21lcGFnZT0iaHR0cHM6Ly93d3cuNy16aXAub3JnIgorY2hhbmdlbG9nPSJodHRw czovL3d3dy43LXppcC5vcmcvaGlzdG9yeS50eHQiCitkaXN0ZmlsZXM9Imh0dHBzOi8vd3d3Ljct emlwLm9yZy9hLzd6JHt2ZXJzaW9uLy8uL30tc3JjLnRhci54eiIKK2NoZWNrc3VtPTM5MzA5ODcz MGM3MDA0MjM5MmFmODA4OTE3ZTc2NTk0NWRjMjQzN2RlZTdhYWUzY2ZjYzQ5NjZlYjkyMGZiYzUK K2FsdGVybmF0aXZlcz0iCisgN3o6N3o6L3Vzci9iaW4vN3ppcAorIDd6Ojd6YTovdXNyL2Jpbi83 emlwCisgN3o6N3pyOi91c3IvYmluLzd6aXAiCisKK2lmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9 IG11c2wgXTsgdGhlbgorCSMgbWlzc2luZyBwdGhyZWFkX2F0dHJfc2V0YWZmaW5pdHlfbnAoKQor CUNGTEFHUys9Ii1EXzdaSVBfQUZGSU5JVFlfRElTQUJMRSIKKwlDWFhGTEFHUys9Ii1EXzdaSVBf QUZGSU5JVFlfRElTQUJMRSIKK2ZpCisKK2RvX2J1aWxkKCkgeworCWNkICIkd3Jrc3JjIi9DUFAv N3ppcC9CdW5kbGVzL0Fsb25lMgorCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJ YWFyY2g2NCopIF83el9tYWtlZmlsZT0iLi4vLi4vY21wbF9nY2NfYXJtNjQubWFrIjs7CisJKikg ICAgICAgIF83el9tYWtlZmlsZT0iLi4vLi4vY21wbF9nY2MubWFrIjs7CisJZXNhYworCisJZm9y IG9wdHMgaW4gIk89Yi9ub3JhciBESVNBQkxFX1JBUl9DT01QUkVTUz0xIiAiTz1iL3JhciI7IGRv CisJCW1ha2UgIiRtYWtlam9icyIgLWYgIiRfN3pfbWFrZWZpbGUiIFwKKwkJCUNDPSIkQ0MiIENY WD0iJENYWCIgXAorCQkJVk9JRF9DRkxBR1M9IiRDRkxBR1MiIFZPSURfQ1hYRkxBR1M9IiRDWFhG TEFHUyIgXAorCQkJVk9JRF9MREZMQUdTPSIkTERGTEFHUyIgVk9JRF9DUFBGTEFHUz0iJENQUEZM QUdTIiBcCisJCQkkb3B0cworCWRvbmUKK30KKworZG9faW5zdGFsbCgpIHsKKwl2YmluICIke3dy a3NyY30vQ1BQLzd6aXAvQnVuZGxlcy9BbG9uZTIvYi9ub3Jhci83enoiICI3emlwIgorCXZsaWNl bnNlICIke3dya3NyY30vRE9DL0xpY2Vuc2UudHh0IgorfQorCis3emlwLXVucmFyX3BhY2thZ2Uo KSB7CisJbGljZW5zZSs9IiwgY3VzdG9tOmZyZWV3YXJlIgorCXJlcG9zaXRvcnk9bm9uZnJlZQor CXNob3J0X2Rlc2MrPSIgLSBSQVIgc3VwcG9ydCIKKwlhbHRlcm5hdGl2ZXM9IgorCSA3ejo3ejov dXNyL2Jpbi83emlwLXVucmFyCisJIDd6Ojd6YTovdXNyL2Jpbi83emlwLXVucmFyCisJIDd6Ojd6 cjovdXNyL2Jpbi83emlwLXVucmFyIgorCisJcGtnX2luc3RhbGwoKSB7CisJCXZiaW4gIiR7d3Jr c3JjfS9DUFAvN3ppcC9CdW5kbGVzL0Fsb25lMi9iL3Jhci83enoiICI3emlwLXVucmFyIgorCQl2 bGljZW5zZSAiJHt3cmtzcmN9L0RPQy9MaWNlbnNlLnR4dCIKKwl9Cit9CisKK3A3emlwX3BhY2th Z2UoKSB7CisJYnVpbGRfc3R5bGU9bWV0YQorCWRlcGVuZHM9N3ppcAorCXNob3J0X2Rlc2M9IkNv bW1hbmQtbGluZSB2ZXJzaW9uIG9mIHRoZSA3emlwIGNvbXByZXNzZWQgZmlsZSBhcmNoaXZlIgor CXNob3J0X2Rlc2MrPSIgKHRyYW5zaXRpb25hbCBkdW1teSBwYWNrYWdlKSIKK30KKworcDd6aXAt dW5yYXJfcGFja2FnZSgpIHsKKwlidWlsZF9zdHlsZT1tZXRhCisJcmVwb3NpdG9yeT1ub25mcmVl CisJZGVwZW5kcz03emlwLXVucmFyCisJc2hvcnRfZGVzYz0iQ29tbWFuZC1saW5lIHZlcnNpb24g b2YgdGhlIDd6aXAgY29tcHJlc3NlZCBmaWxlIGFyY2hpdmUgLSBSQVIgc3VwcG9ydCIKKwlzaG9y dF9kZXNjKz0iICh0cmFuc2l0aW9uYWwgZHVtbXkgcGFja2FnZSkiCit9CmRpZmYgLS1naXQgYS9z cmNwa2dzLzd6aXAvdXBkYXRlIGIvc3JjcGtncy83emlwL3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU0NjNmMTQ4ZTRmOAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvN3ppcC91cGRhdGUKQEAgLTAsMCArMSwyIEBACitzaXRlPSdodHRwczovLzctemlw Lm9yZy9kb3dubG9hZC5odG1sJworcGF0dGVybj0nRG93bmxvYWQgNy1aaXAgXEtbXGQuXSsnCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3A3emlwIGIvc3JjcGtncy9wN3ppcApuZXcgZmlsZSBtb2RlIDEy MDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjI4NDMxMjU5NWE0YwotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvcDd6aXAKQEAgLTAsMCArMSBAQAorN3ppcApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcDd6aXAtdW5yYXIgYi9zcmNwa2dzL3A3emlwLXVu cmFyCmluZGV4IGJmNTM0OWVlNjY2Ni4uMjg0MzEyNTk1YTRjIDEyMDAwMAotLS0gYS9zcmNwa2dz L3A3emlwLXVucmFyCisrKyBiL3NyY3BrZ3MvcDd6aXAtdW5yYXIKQEAgLTEgKzEgQEAKLXA3emlw ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorN3ppcApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8yMC1DVkUtMjAxOC01OTk2 LnBhdGNoIGIvc3JjcGtncy9wN3ppcC9wYXRjaGVzLzIwLUNWRS0yMDE4LTU5OTYucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3MzNiZmY5MTg5NS4uMDAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8yMC1DVkUtMjAxOC01OTk2LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMjIxICswLDAgQEAKLUZyb206IFJvYmVydCBMdWJlcmRhIDxyb2JlcnRAZGVi aWFuLm9yZz4KLURhdGU6IFN1biwgMjggSmFuIDIwMTggMjM6NDc6NDAgKzAxMDAKLVN1YmplY3Q6 IENWRS0yMDE4LTU5OTYKLQotSG9wZWZ1bGx5IGZpeCBNZW1vcnkgQ29ycnVwdGlvbnMgdmlhIFJB UiBQUE1kIChDVkUtMjAxOC01OTk2KSBieQotYXBwbHlpbmcgYSBmZXcgY2hhbmdlcyBmcm9tIDda aXAgMTguMDAtYmV0YS4KLQotQnVnLURlYmlhbjogaHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcvIzg4 ODMxNAotLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuY3BwIHwgMTMgKysrKysr KysrLS0tLQotIENQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmggICB8ICAxICsKLSBDUFAv N3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5jcHAgfCAxMCArKysrKysrKystCi0gQ1BQLzd6aXAv Q29tcHJlc3MvUmFyMkRlY29kZXIuaCAgIHwgIDEgKwotIENQUC83emlwL0NvbXByZXNzL1JhcjNE ZWNvZGVyLmNwcCB8IDIzICsrKysrKysrKysrKysrKysrKysrLS0tCi0gQ1BQLzd6aXAvQ29tcHJl c3MvUmFyM0RlY29kZXIuaCAgIHwgIDIgKysKLSA2IGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlv bnMoKyksIDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9S YXIxRGVjb2Rlci5jcHAgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAKLWluZGV4 IDFhYWVkY2MuLjY4MDMwYzcgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVj b2Rlci5jcHAKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcAotQEAgLTI5 LDcgKzI5LDcgQEAgcHVibGljOgotIH07Ci0gKi8KLSAKLS1DRGVjb2Rlcjo6Q0RlY29kZXIoKTog bV9Jc1NvbGlkKGZhbHNlKSB7IH0KLStDRGVjb2Rlcjo6Q0RlY29kZXIoKTogbV9Jc1NvbGlkKGZh bHNlKSwgX2Vycm9yTW9kZShmYWxzZSkgeyB9Ci0gCi0gdm9pZCBDRGVjb2Rlcjo6SW5pdFN0cnVj dHVyZXMoKQotIHsKLUBAIC00MDYsOSArNDA2LDE0IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVS ZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAq Ci0gICBJbml0RGF0YSgpOwotICAgaWYgKCFtX0lzU29saWQpCi0gICB7Ci0rICAgIF9lcnJvck1v ZGUgPSBmYWxzZTsKLSAgICAgSW5pdFN0cnVjdHVyZXMoKTsKLSAgICAgSW5pdEh1ZmYoKTsKLSAg IH0KLSsKLSsgIGlmIChfZXJyb3JNb2RlKQotKyAgICByZXR1cm4gU19GQUxTRTsKLSsKLSAgIGlm IChtX1VucGFja1NpemUgPiAwKQotICAgewotICAgICBHZXRGbGFnc0J1ZigpOwotQEAgLTQ3Nyw5 ICs0ODIsOSBAQCBTVERNRVRIT0RJTVAgQ0RlY29kZXI6OkNvZGUoSVNlcXVlbnRpYWxJblN0cmVh bSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtCi0gICAgIGNvbnN0IFVJbnQ2NCAqaW5T aXplLCBjb25zdCBVSW50NjQgKm91dFNpemUsIElDb21wcmVzc1Byb2dyZXNzSW5mbyAqcHJvZ3Jl c3MpCi0gewotICAgdHJ5IHsgcmV0dXJuIENvZGVSZWFsKGluU3RyZWFtLCBvdXRTdHJlYW0sIGlu U2l6ZSwgb3V0U2l6ZSwgcHJvZ3Jlc3MpOyB9Ci0tICBjYXRjaChjb25zdCBDSW5CdWZmZXJFeGNl cHRpb24gJmUpIHsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0tICBjYXRjaChjb25zdCBDTHpPdXRX aW5kb3dFeGNlcHRpb24gJmUpIHsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0tICBjYXRjaCguLi4p IHsgcmV0dXJuIFNfRkFMU0U7IH0KLSsgIGNhdGNoKGNvbnN0IENJbkJ1ZmZlckV4Y2VwdGlvbiAm ZSkgeyBfZXJyb3JNb2RlID0gdHJ1ZTsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0rICBjYXRjaChj b25zdCBDTHpPdXRXaW5kb3dFeGNlcHRpb24gJmUpIHsgX2Vycm9yTW9kZSA9IHRydWU7IHJldHVy biBlLkVycm9yQ29kZTsgfQotKyAgY2F0Y2goLi4uKSB7IF9lcnJvck1vZGUgPSB0cnVlOyByZXR1 cm4gU19GQUxTRTsgfQotIH0KLSAKLSBTVERNRVRIT0RJTVAgQ0RlY29kZXI6OlNldERlY29kZXJQ cm9wZXJ0aWVzMihjb25zdCBCeXRlICpkYXRhLCBVSW50MzIgc2l6ZSkKLWRpZmYgLS1naXQgYS9D UFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURl Y29kZXIuaAotaW5kZXggNjMwZjA4OS4uMDFiNjA2YiAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0Nv bXByZXNzL1JhcjFEZWNvZGVyLmgKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVy LmgKLUBAIC0zOSw2ICszOSw3IEBAIHB1YmxpYzoKLSAKLSAgIEludDY0IG1fVW5wYWNrU2l6ZTsK LSAgIGJvb2wgbV9Jc1NvbGlkOwotKyAgYm9vbCBfZXJyb3JNb2RlOwotIAotICAgVUludDMyIFJl YWRCaXRzKGludCBudW1CaXRzKTsKLSAgIEhSRVNVTFQgQ29weUJsb2NrKFVJbnQzMiBkaXN0YW5j ZSwgVUludDMyIGxlbik7Ci1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29k ZXIuY3BwIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwCi1pbmRleCBiM2YyYjRi Li4wNTgwYzhkIDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3Bw Ci0rKysgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5jcHAKLUBAIC04MCw3ICs4MCw4 IEBAIHN0YXRpYyBjb25zdCBVSW50MzIga0hpc3RvcnlTaXplID0gMSA8PCAyMDsKLSBzdGF0aWMg Y29uc3QgVUludDMyIGtXaW5kb3dSZXNlcnZTaXplID0gKDEgPDwgMjIpICsgMjU2OwotIAotIENE ZWNvZGVyOjpDRGVjb2RlcigpOgotLSAgbV9Jc1NvbGlkKGZhbHNlKQotKyAgbV9Jc1NvbGlkKGZh bHNlKSwKLSsgIG1fVGFibGVzT0soZmFsc2UpCi0gewotIH0KLSAKLUBAIC0xMDAsNiArMTAxLDgg QEAgVUludDMyIENEZWNvZGVyOjpSZWFkQml0cyh1bnNpZ25lZCBudW1CaXRzKSB7IHJldHVybiBt X0luQml0U3RyZWFtLlJlYWRCaXRzKG51bUIKLSAKLSBib29sIENEZWNvZGVyOjpSZWFkVGFibGVz KHZvaWQpCi0gewotKyAgbV9UYWJsZXNPSyA9IGZhbHNlOwotKwotICAgQnl0ZSBsZXZlbExldmVs c1trTGV2ZWxUYWJsZVNpemVdOwotICAgQnl0ZSBuZXdMZXZlbHNba01heFRhYmxlU2l6ZV07Ci0g ICBtX0F1ZGlvTW9kZSA9IChSZWFkQml0cygxKSA9PSAxKTsKLUBAIC0xNzAsNiArMTczLDggQEAg Ym9vbCBDRGVjb2Rlcjo6UmVhZFRhYmxlcyh2b2lkKQotICAgfQotICAgCi0gICBtZW1jcHkobV9M YXN0TGV2ZWxzLCBuZXdMZXZlbHMsIGtNYXhUYWJsZVNpemUpOwotKyAgbV9UYWJsZXNPSyA9IHRy dWU7Ci0rCi0gICByZXR1cm4gdHJ1ZTsKLSB9Ci0gCi1AQCAtMzQ0LDYgKzM0OSw5IEBAIEhSRVNV TFQgQ0RlY29kZXI6OkNvZGVSZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2Vx dWVudGlhbE91dFN0cmVhbSAqCi0gICAgICAgcmV0dXJuIFNfRkFMU0U7Ci0gICB9Ci0gCi0rICBp ZiAoIW1fVGFibGVzT0spCi0rICAgIHJldHVybiBTX0ZBTFNFOwotKwotICAgVUludDY0IHN0YXJ0 UG9zID0gbV9PdXRXaW5kb3dTdHJlYW0uR2V0UHJvY2Vzc2VkU2l6ZSgpOwotICAgd2hpbGUgKHBv cyA8IHVuUGFja1NpemUpCi0gICB7Ci1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFy MkRlY29kZXIuaCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmgKLWluZGV4IDNhMDUz NWMuLjBlOTAwNWYgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5o Ci0rKysgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oCi1AQCAtMTM5LDYgKzEzOSw3 IEBAIGNsYXNzIENEZWNvZGVyIDoKLSAKLSAgIFVJbnQ2NCBtX1BhY2tTaXplOwotICAgYm9vbCBt X0lzU29saWQ7Ci0rICBib29sIG1fVGFibGVzT0s7Ci0gCi0gICB2b2lkIEluaXRTdHJ1Y3R1cmVz KCk7Ci0gICBVSW50MzIgUmVhZEJpdHModW5zaWduZWQgbnVtQml0cyk7Ci1kaWZmIC0tZ2l0IGEv Q1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFy M0RlY29kZXIuY3BwCi1pbmRleCAzYmYyNTEzLi42Y2I4YTZhIDEwMDY0NAotLS0tIGEvQ1BQLzd6 aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwCi0rKysgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIz RGVjb2Rlci5jcHAKLUBAIC05Miw3ICs5Miw4IEBAIENEZWNvZGVyOjpDRGVjb2RlcigpOgotICAg X3dyaXR0ZW5GaWxlU2l6ZSgwKSwKLSAgIF92bURhdGEoMCksCi0gICBfdm1Db2RlKDApLAotLSAg bV9Jc1NvbGlkKGZhbHNlKQotKyAgbV9Jc1NvbGlkKGZhbHNlKSwKLSsgIF9lcnJvck1vZGUoZmFs c2UpCi0gewotICAgUHBtZDdfQ29uc3RydWN0KCZfcHBtZCk7Ci0gfQotQEAgLTU0NSw2ICs1NDYs OSBAQCBIUkVTVUxUIENEZWNvZGVyOjpSZWFkVGFibGVzKGJvb2wgJmtlZXBEZWNvbXByZXNzaW5n KQotICAgICByZXR1cm4gSW5pdFBQTSgpOwotICAgfQotIAotKyAgVGFibGVzUmVhZCA9IGZhbHNl OwotKyAgVGFibGVzT0sgPSBmYWxzZTsKLSsKLSAgIF9sek1vZGUgPSB0cnVlOwotICAgUHJldkFs aWduQml0cyA9IDA7Ci0gICBQcmV2QWxpZ25Db3VudCA9IDA7Ci1AQCAtNjA2LDYgKzYxMCw5IEBA IEhSRVNVTFQgQ0RlY29kZXI6OlJlYWRUYWJsZXMoYm9vbCAma2VlcERlY29tcHJlc3NpbmcpCi0g ICAgICAgfQotICAgICB9Ci0gICB9Ci0rICBpZiAoSW5wdXRFb2ZFcnJvcigpKQotKyAgICByZXR1 cm4gU19GQUxTRTsKLSsKLSAgIFRhYmxlc1JlYWQgPSB0cnVlOwotIAotICAgLy8gb3JpZ2luYWwg Y29kZSBoYXMgY2hlY2sgaGVyZToKLUBAIC02MjMsNiArNjMwLDkgQEAgSFJFU1VMVCBDRGVjb2Rl cjo6UmVhZFRhYmxlcyhib29sICZrZWVwRGVjb21wcmVzc2luZykKLSAgIFJJRihtX0xlbkRlY29k ZXIuQnVpbGQoJm5ld0xldmVsc1trTWFpblRhYmxlU2l6ZSArIGtEaXN0VGFibGVTaXplICsga0Fs aWduVGFibGVTaXplXSkpOwotIAotICAgbWVtY3B5KG1fTGFzdExldmVscywgbmV3TGV2ZWxzLCBr VGFibGVzU2l6ZXNTdW0pOwotKwotKyAgVGFibGVzT0sgPSB0cnVlOwotKwotICAgcmV0dXJuIFNf T0s7Ci0gfQotIAotQEAgLTgyNCw3ICs4MzQsMTIgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJl YWwoSUNvbXByZXNzUHJvZ3Jlc3NJbmZvICpwcm9ncmVzcykKLSAgICAgUHBtRXNjQ2hhciA9IDI7 Ci0gICAgIFBwbUVycm9yID0gdHJ1ZTsKLSAgICAgSW5pdEZpbHRlcnMoKTsKLSsgICAgX2Vycm9y TW9kZSA9IGZhbHNlOwotICAgfQotKwotKyAgaWYgKF9lcnJvck1vZGUpCi0rICAgIHJldHVybiBT X0ZBTFNFOwotKwotICAgaWYgKCFtX0lzU29saWQgfHwgIVRhYmxlc1JlYWQpCi0gICB7Ci0gICAg IGJvb2wga2VlcERlY29tcHJlc3Npbmc7Ci1AQCAtODM4LDYgKzg1Myw4IEBAIEhSRVNVTFQgQ0Rl Y29kZXI6OkNvZGVSZWFsKElDb21wcmVzc1Byb2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gICAgIGJv b2wga2VlcERlY29tcHJlc3Npbmc7Ci0gICAgIGlmIChfbHpNb2RlKQotICAgICB7Ci0rICAgICAg aWYgKCFUYWJsZXNPSykKLSsgICAgICAgIHJldHVybiBTX0ZBTFNFOwotICAgICAgIFJJTk9LKERl Y29kZUxaKGtlZXBEZWNvbXByZXNzaW5nKSkKLSAgICAgfQotICAgICBlbHNlCi1AQCAtOTAxLDgg KzkxOCw4IEBAIFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6Q29kZShJU2VxdWVudGlhbEluU3RyZWFt ICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0KLSAgICAgX3VucGFja1NpemUgPSBvdXRT aXplID8gKm91dFNpemUgOiAoVUludDY0KShJbnQ2NCktMTsKLSAgICAgcmV0dXJuIENvZGVSZWFs KHByb2dyZXNzKTsKLSAgIH0KLS0gIGNhdGNoKGNvbnN0IENJbkJ1ZmZlckV4Y2VwdGlvbiAmZSkg IHsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0tICBjYXRjaCguLi4pIHsgcmV0dXJuIFNfRkFMU0U7 IH0KLSsgIGNhdGNoKGNvbnN0IENJbkJ1ZmZlckV4Y2VwdGlvbiAmZSkgIHsgX2Vycm9yTW9kZSA9 IHRydWU7IHJldHVybiBlLkVycm9yQ29kZTsgfQotKyAgY2F0Y2goLi4uKSB7IF9lcnJvck1vZGUg PSB0cnVlOyByZXR1cm4gU19GQUxTRTsgfQotICAgLy8gQ05ld0V4Y2VwdGlvbiBpcyBwb3NzaWJs ZSBoZXJlLiBCdXQgcHJvYmFibHkgQ05ld0V4Y2VwdGlvbiBpcyBjYXVzZWQKLSAgIC8vIGJ5IGVy cm9yIGluIGRhdGEgc3RyZWFtLgotIH0KLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9S YXIzRGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuaAotaW5kZXggYzEz MGNlYy4uMmY3MmQ3ZCAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVy LmgKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmgKLUBAIC0xOTIsNiArMTky LDcgQEAgY2xhc3MgQ0RlY29kZXI6Ci0gICBVSW50MzIgX2xhc3RGaWx0ZXI7Ci0gCi0gICBib29s IG1fSXNTb2xpZDsKLSsgIGJvb2wgX2Vycm9yTW9kZTsKLSAKLSAgIGJvb2wgX2x6TW9kZTsKLSAg IGJvb2wgX3Vuc3VwcG9ydGVkRmlsdGVyOwotQEAgLTIwMCw2ICsyMDEsNyBAQCBjbGFzcyBDRGVj b2RlcjoKLSAgIFVJbnQzMiBQcmV2QWxpZ25Db3VudDsKLSAKLSAgIGJvb2wgVGFibGVzUmVhZDsK LSsgIGJvb2wgVGFibGVzT0s7Ci0gCi0gICBDUHBtZDcgX3BwbWQ7Ci0gICBpbnQgUHBtRXNjQ2hh cjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8zMC1DVkUtMjAxOC0xMDExNS5w YXRjaCBiL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8zMC1DVkUtMjAxOC0xMDExNS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Q5YzRiZjgxZjAwLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9wN3ppcC9wYXRjaGVzLzMwLUNWRS0yMDE4LTEwMTE1LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMzExICswLDAgQEAKLUZyb206IFJvYmVydCBMdWJlcmRhIDxyb2JlcnRAZGVi aWFuLm9yZz4KLURhdGU6IFR1ZSwgMjkgTWF5IDIwMTggMjM6NTk6MDkgKzAyMDAKLVN1YmplY3Q6 IEZpeCBDVkUtMjAxOC0xMDExNQotCi1BcHBseSAicGF0Y2giIHRha2VuIGZyb20gaHR0cHM6Ly9s YW5kYXZlLmlvL2ZpbGVzL3BhdGNoXzd6aXBfQ1ZFLTIwMTgtMTAxMTUudHh0Ci0KLQotQnVncy1E ZWJpYW46IGh0dHBzOi8vYnVncy5kZWJpYW4ub3JnLzg5NzY3NAotLS0tCi0gQ1BQLzd6aXAvQ29t cHJlc3MvUmFyMURlY29kZXIuY3BwIHwgMTYgKysrKysrKysrKystLS0tLQotIENQUC83emlwL0Nv bXByZXNzL1JhcjFEZWNvZGVyLmggICB8ICAzICsrLQotIENQUC83emlwL0NvbXByZXNzL1JhcjJE ZWNvZGVyLmNwcCB8IDE3ICsrKysrKysrKysrKystLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFy MkRlY29kZXIuaCAgIHwgIDMgKystCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3Bw IHwgMTkgKysrKysrKysrKysrKysrLS0tLQotIENQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVy LmggICB8ICAzICsrLQotIENQUC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmNwcCB8ICA4ICsr KysrKysrCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuaCAgIHwgIDEgKwotIDggZmls ZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAgYi9DUFAvN3ppcC9Db21wcmVz cy9SYXIxRGVjb2Rlci5jcHAKLWluZGV4IDY4MDMwYzcuLjhjODkwYzggMTAwNjQ0Ci0tLS0gYS9D UFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAKLSsrKyBiL0NQUC83emlwL0NvbXByZXNz L1JhcjFEZWNvZGVyLmNwcAotQEAgLTI5LDcgKzI5LDcgQEAgcHVibGljOgotIH07Ci0gKi8KLSAK LS1DRGVjb2Rlcjo6Q0RlY29kZXIoKTogbV9Jc1NvbGlkKGZhbHNlKSwgX2Vycm9yTW9kZShmYWxz ZSkgeyB9Ci0rQ0RlY29kZXI6OkNEZWNvZGVyKCk6IF9pc1NvbGlkKGZhbHNlKSwgX3NvbGlkQWxs b3dlZChmYWxzZSksIF9lcnJvck1vZGUoZmFsc2UpIHsgfQotIAotIHZvaWQgQ0RlY29kZXI6Oklu aXRTdHJ1Y3R1cmVzKCkKLSB7Ci1AQCAtMzQ1LDcgKzM0NSw3IEBAIHZvaWQgQ0RlY29kZXI6Okdl dEZsYWdzQnVmKCkKLSAKLSB2b2lkIENEZWNvZGVyOjpJbml0RGF0YSgpCi0gewotLSAgaWYgKCFt X0lzU29saWQpCi0rICBpZiAoIV9pc1NvbGlkKQotICAgewotICAgICBBdnJQbGNCID0gQXZyTG4x ID0gQXZyTG4yID0gQXZyTG4zID0gTnVtSHVmID0gQnVmNjAgPSAwOwotICAgICBBdnJQbGMgPSAw eDM1MDA7Ci1AQCAtMzkxLDYgKzM5MSwxMSBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJ U2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotICAg aWYgKGluU2l6ZSA9PSBOVUxMIHx8IG91dFNpemUgPT0gTlVMTCkKLSAgICAgcmV0dXJuIEVfSU5W QUxJREFSRzsKLSAKLSsgIGlmIChfaXNTb2xpZCAmJiAhX3NvbGlkQWxsb3dlZCkKLSsgICAgcmV0 dXJuIFNfRkFMU0U7Ci0rCi0rICBfc29saWRBbGxvd2VkID0gZmFsc2U7Ci0rCi0gICBpZiAoIW1f T3V0V2luZG93U3RyZWFtLkNyZWF0ZShrSGlzdG9yeVNpemUpKQotICAgICByZXR1cm4gRV9PVVRP Rk1FTU9SWTsKLSAgIGlmICghbV9JbkJpdFN0cmVhbS5DcmVhdGUoMSA8PCAyMCkpCi1AQCAtMzk4 LDEzICs0MDMsMTMgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0 cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAKLSAgIG1fVW5wYWNrU2l6 ZSA9IChJbnQ2NCkqb3V0U2l6ZTsKLSAgIG1fT3V0V2luZG93U3RyZWFtLlNldFN0cmVhbShvdXRT dHJlYW0pOwotLSAgbV9PdXRXaW5kb3dTdHJlYW0uSW5pdChtX0lzU29saWQpOwotKyAgbV9PdXRX aW5kb3dTdHJlYW0uSW5pdChfaXNTb2xpZCk7Ci0gICBtX0luQml0U3RyZWFtLlNldFN0cmVhbShp blN0cmVhbSk7Ci0gICBtX0luQml0U3RyZWFtLkluaXQoKTsKLSAKLSAgIC8vIENDb2RlclJlbGVh c2VyIGNvZGVyUmVsZWFzZXIodGhpcyk7Ci0gICBJbml0RGF0YSgpOwotLSAgaWYgKCFtX0lzU29s aWQpCi0rICBpZiAoIV9pc1NvbGlkKQotICAgewotICAgICBfZXJyb3JNb2RlID0gZmFsc2U7Ci0g ICAgIEluaXRTdHJ1Y3R1cmVzKCk7Ci1AQCAtNDc1LDYgKzQ4MCw3IEBAIEhSRVNVTFQgQ0RlY29k ZXI6OkNvZGVSZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91 dFN0cmVhbSAqCi0gICB9Ci0gICBpZiAobV9VbnBhY2tTaXplIDwgMCkKLSAgICAgcmV0dXJuIFNf RkFMU0U7Ci0rICBfc29saWRBbGxvd2VkID0gdHJ1ZTsKLSAgIHJldHVybiBtX091dFdpbmRvd1N0 cmVhbS5GbHVzaCgpOwotIH0KLSAKLUBAIC00OTEsNyArNDk3LDcgQEAgU1RETUVUSE9ESU1QIENE ZWNvZGVyOjpTZXREZWNvZGVyUHJvcGVydGllczIoY29uc3QgQnl0ZSAqZGF0YSwgVUludDMyIHNp emUpCi0gewotICAgaWYgKHNpemUgPCAxKQotICAgICByZXR1cm4gRV9JTlZBTElEQVJHOwotLSAg bV9Jc1NvbGlkID0gKChkYXRhWzBdICYgMSkgIT0gMCk7Ci0rICBfaXNTb2xpZCA9ICgoZGF0YVsw XSAmIDEpICE9IDApOwotICAgcmV0dXJuIFNfT0s7Ci0gfQotIAotZGlmZiAtLWdpdCBhL0NQUC83 emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmggYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rl ci5oCi1pbmRleCAwMWI2MDZiLi44YWJiM2EzIDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJl c3MvUmFyMURlY29kZXIuaAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaAot QEAgLTM4LDcgKzM4LDggQEAgcHVibGljOgotICAgVUludDMyIExhc3RMZW5ndGg7Ci0gCi0gICBJ bnQ2NCBtX1VucGFja1NpemU7Ci0tICBib29sIG1fSXNTb2xpZDsKLSsgIGJvb2wgX2lzU29saWQ7 Ci0rICBib29sIF9zb2xpZEFsbG93ZWQ7Ci0gICBib29sIF9lcnJvck1vZGU7Ci0gCi0gICBVSW50 MzIgUmVhZEJpdHMoaW50IG51bUJpdHMpOwotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNz L1JhcjJEZWNvZGVyLmNwcCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNwcAotaW5k ZXggMDU4MGM4ZC4uYmU4ZDg0MiAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1JhcjJE ZWNvZGVyLmNwcAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwCi1AQCAt ODAsNyArODAsOCBAQCBzdGF0aWMgY29uc3QgVUludDMyIGtIaXN0b3J5U2l6ZSA9IDEgPDwgMjA7 Ci0gc3RhdGljIGNvbnN0IFVJbnQzMiBrV2luZG93UmVzZXJ2U2l6ZSA9ICgxIDw8IDIyKSArIDI1 NjsKLSAKLSBDRGVjb2Rlcjo6Q0RlY29kZXIoKToKLS0gIG1fSXNTb2xpZChmYWxzZSksCi0rICBf aXNTb2xpZChmYWxzZSksCi0rICBfc29saWRBbGxvd2VkKGZhbHNlKSwKLSAgIG1fVGFibGVzT0so ZmFsc2UpCi0gewotIH0KLUBAIC0zMjAsNiArMzIxLDEwIEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNv ZGVSZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVh bSAqCi0gICBpZiAoaW5TaXplID09IE5VTEwgfHwgb3V0U2l6ZSA9PSBOVUxMKQotICAgICByZXR1 cm4gRV9JTlZBTElEQVJHOwotIAotKyAgaWYgKF9pc1NvbGlkICYmICFfc29saWRBbGxvd2VkKQot KyAgICByZXR1cm4gU19GQUxTRTsKLSsgIF9zb2xpZEFsbG93ZWQgPSBmYWxzZTsKLSsKLSAgIGlm ICghbV9PdXRXaW5kb3dTdHJlYW0uQ3JlYXRlKGtIaXN0b3J5U2l6ZSkpCi0gICAgIHJldHVybiBF X09VVE9GTUVNT1JZOwotICAgaWYgKCFtX0luQml0U3RyZWFtLkNyZWF0ZSgxIDw8IDIwKSkKLUBA IC0zMzAsMTIgKzMzNSwxMiBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJU2VxdWVudGlh bEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotICAgVUludDY0IHBv cyA9IDAsIHVuUGFja1NpemUgPSAqb3V0U2l6ZTsKLSAgIAotICAgbV9PdXRXaW5kb3dTdHJlYW0u U2V0U3RyZWFtKG91dFN0cmVhbSk7Ci0tICBtX091dFdpbmRvd1N0cmVhbS5Jbml0KG1fSXNTb2xp ZCk7Ci0rICBtX091dFdpbmRvd1N0cmVhbS5Jbml0KF9pc1NvbGlkKTsKLSAgIG1fSW5CaXRTdHJl YW0uU2V0U3RyZWFtKGluU3RyZWFtKTsKLSAgIG1fSW5CaXRTdHJlYW0uSW5pdCgpOwotIAotICAg Ly8gQ0NvZGVyUmVsZWFzZXIgY29kZXJSZWxlYXNlcih0aGlzKTsKLS0gIGlmICghbV9Jc1NvbGlk KQotKyAgaWYgKCFfaXNTb2xpZCkKLSAgIHsKLSAgICAgSW5pdFN0cnVjdHVyZXMoKTsKLSAgICAg aWYgKHVuUGFja1NpemUgPT0gMCkKLUBAIC0zNDMsNiArMzQ4LDcgQEAgSFJFU1VMVCBDRGVjb2Rl cjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0 U3RyZWFtICoKLSAgICAgICBpZiAobV9JbkJpdFN0cmVhbS5HZXRQcm9jZXNzZWRTaXplKCkgKyAy IDw9IG1fUGFja1NpemUpIC8vIHRlc3QgaXQ6IHByb2JhYmx5IGluY29ycmVjdDsKLSAgICAgICAg IGlmICghUmVhZFRhYmxlcygpKQotICAgICAgICAgICByZXR1cm4gU19GQUxTRTsKLSsgICAgICBf c29saWRBbGxvd2VkID0gdHJ1ZTsKLSAgICAgICByZXR1cm4gU19PSzsKLSAgICAgfQotICAgICBp ZiAoIVJlYWRUYWJsZXMoKSkKLUBAIC0zODYsNiArMzkyLDkgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6 Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3Ry ZWFtICoKLSAKLSAgIGlmICghUmVhZExhc3RUYWJsZXMoKSkKLSAgICAgcmV0dXJuIFNfRkFMU0U7 Ci0rCi0rICBfc29saWRBbGxvd2VkID0gdHJ1ZTsKLSsKLSAgIHJldHVybiBtX091dFdpbmRvd1N0 cmVhbS5GbHVzaCgpOwotIH0KLSAKLUBAIC00MDIsNyArNDExLDcgQEAgU1RETUVUSE9ESU1QIENE ZWNvZGVyOjpTZXREZWNvZGVyUHJvcGVydGllczIoY29uc3QgQnl0ZSAqZGF0YSwgVUludDMyIHNp emUpCi0gewotICAgaWYgKHNpemUgPCAxKQotICAgICByZXR1cm4gRV9JTlZBTElEQVJHOwotLSAg bV9Jc1NvbGlkID0gKChkYXRhWzBdICYgMSkgIT0gMCk7Ci0rICBfaXNTb2xpZCA9ICgoZGF0YVsw XSAmIDEpICE9IDApOwotICAgcmV0dXJuIFNfT0s7Ci0gfQotIAotZGlmZiAtLWdpdCBhL0NQUC83 emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmggYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rl ci5oCi1pbmRleCAwZTkwMDVmLi4zNzBiY2UyIDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJl c3MvUmFyMkRlY29kZXIuaAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuaAot QEAgLTEzOCw3ICsxMzgsOCBAQCBjbGFzcyBDRGVjb2RlciA6Ci0gICBCeXRlIG1fTGFzdExldmVs c1trTWF4VGFibGVTaXplXTsKLSAKLSAgIFVJbnQ2NCBtX1BhY2tTaXplOwotLSAgYm9vbCBtX0lz U29saWQ7Ci0rICBib29sIF9pc1NvbGlkOwotKyAgYm9vbCBfc29saWRBbGxvd2VkOwotICAgYm9v bCBtX1RhYmxlc09LOwotIAotICAgdm9pZCBJbml0U3RydWN0dXJlcygpOwotZGlmZiAtLWdpdCBh L0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmNwcCBiL0NQUC83emlwL0NvbXByZXNzL1Jh cjNEZWNvZGVyLmNwcAotaW5kZXggNmNiOGE2YS4uN2I4NTgzMyAxMDA2NDQKLS0tLSBhL0NQUC83 emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmNwcAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFy M0RlY29kZXIuY3BwCi1AQCAtOTIsNyArOTIsOCBAQCBDRGVjb2Rlcjo6Q0RlY29kZXIoKToKLSAg IF93cml0dGVuRmlsZVNpemUoMCksCi0gICBfdm1EYXRhKDApLAotICAgX3ZtQ29kZSgwKSwKLS0g IG1fSXNTb2xpZChmYWxzZSksCi0rICBfaXNTb2xpZChmYWxzZSksCi0rICBfc29saWRBbGxvd2Vk KGZhbHNlKSwKLSAgIF9lcnJvck1vZGUoZmFsc2UpCi0gewotICAgUHBtZDdfQ29uc3RydWN0KCZf cHBtZCk7Ci1AQCAtODIxLDcgKzgyMiw3IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElD b21wcmVzc1Byb2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gewotICAgX3dyaXR0ZW5GaWxlU2l6ZSA9 IDA7Ci0gICBfdW5zdXBwb3J0ZWRGaWx0ZXIgPSBmYWxzZTsKLS0gIGlmICghbV9Jc1NvbGlkKQot KyAgaWYgKCFfaXNTb2xpZCkKLSAgIHsKLSAgICAgX2x6U2l6ZSA9IDA7Ci0gICAgIF93aW5Qb3Mg PSAwOwotQEAgLTg0MCwxMiArODQxLDE1IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElD b21wcmVzc1Byb2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gICBpZiAoX2Vycm9yTW9kZSkKLSAgICAg cmV0dXJuIFNfRkFMU0U7Ci0gCi0tICBpZiAoIW1fSXNTb2xpZCB8fCAhVGFibGVzUmVhZCkKLSsg IGlmICghX2lzU29saWQgfHwgIVRhYmxlc1JlYWQpCi0gICB7Ci0gICAgIGJvb2wga2VlcERlY29t cHJlc3Npbmc7Ci0gICAgIFJJTk9LKFJlYWRUYWJsZXMoa2VlcERlY29tcHJlc3NpbmcpKTsKLSAg ICAgaWYgKCFrZWVwRGVjb21wcmVzc2luZykKLSsgICAgewotKyAgICAgIF9zb2xpZEFsbG93ZWQg PSB0cnVlOwotICAgICAgIHJldHVybiBTX09LOwotKyAgICB9Ci0gICB9Ci0gCi0gICBmb3IgKDs7 KQotQEAgLTg3MCw2ICs4NzQsOSBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJQ29tcHJl c3NQcm9ncmVzc0luZm8gKnByb2dyZXNzKQotICAgICBpZiAoIWtlZXBEZWNvbXByZXNzaW5nKQot ICAgICAgIGJyZWFrOwotICAgfQotKwotKyAgX3NvbGlkQWxsb3dlZCA9IHRydWU7Ci0rCi0gICBS SU5PSyhXcml0ZUJ1ZigpKTsKLSAgIFVJbnQ2NCBwYWNrU2l6ZSA9IG1fSW5CaXRTdHJlYW0uQml0 RGVjb2Rlci5HZXRQcm9jZXNzZWRTaXplKCk7Ci0gICBSSU5PSyhwcm9ncmVzcy0+U2V0UmF0aW9J bmZvKCZwYWNrU2l6ZSwgJl93cml0dGVuRmlsZVNpemUpKTsKLUBAIC04OTAsNiArODk3LDEwIEBA IFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6Q29kZShJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVh bSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0KLSAgICAgaWYgKCFpblNpemUpCi0gICAgICAgcmV0dXJu IEVfSU5WQUxJREFSRzsKLSAKLSsgICAgaWYgKF9pc1NvbGlkICYmICFfc29saWRBbGxvd2VkKQot KyAgICAgIHJldHVybiBTX0ZBTFNFOwotKyAgICBfc29saWRBbGxvd2VkID0gZmFsc2U7Ci0rCi0g ICAgIGlmICghX3ZtRGF0YSkKLSAgICAgewotICAgICAgIF92bURhdGEgPSAoQnl0ZSAqKTo6TWlk QWxsb2Moa1ZtRGF0YVNpemVNYXggKyBrVm1Db2RlU2l6ZU1heCk7Ci1AQCAtOTI4LDcgKzkzOSw3 IEBAIFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6U2V0RGVjb2RlclByb3BlcnRpZXMyKGNvbnN0IEJ5 dGUgKmRhdGEsIFVJbnQzMiBzaXplKQotIHsKLSAgIGlmIChzaXplIDwgMSkKLSAgICAgcmV0dXJu IEVfSU5WQUxJREFSRzsKLS0gIG1fSXNTb2xpZCA9ICgoZGF0YVswXSAmIDEpICE9IDApOwotKyAg X2lzU29saWQgPSAoKGRhdGFbMF0gJiAxKSAhPSAwKTsKLSAgIHJldHVybiBTX09LOwotIH0KLSAK LWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oIGIvQ1BQLzd6aXAv Q29tcHJlc3MvUmFyM0RlY29kZXIuaAotaW5kZXggMmY3MmQ3ZC4uMzJjODk0MyAxMDA2NDQKLS0t LSBhL0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmgKLSsrKyBiL0NQUC83emlwL0NvbXBy ZXNzL1JhcjNEZWNvZGVyLmgKLUBAIC0xOTEsNyArMTkxLDggQEAgY2xhc3MgQ0RlY29kZXI6Ci0g ICBDUmVjb3JkVmVjdG9yPENUZW1wRmlsdGVyICo+ICBfdGVtcEZpbHRlcnM7Ci0gICBVSW50MzIg X2xhc3RGaWx0ZXI7Ci0gCi0tICBib29sIG1fSXNTb2xpZDsKLSsgIGJvb2wgX2lzU29saWQ7Ci0r ICBib29sIF9zb2xpZEFsbG93ZWQ7Ci0gICBib29sIF9lcnJvck1vZGU7Ci0gCi0gICBib29sIF9s ek1vZGU7Ci1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuY3BwIGIv Q1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuY3BwCi1pbmRleCBkYzg4MzBmLi5hODI2ZDVh IDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuY3BwCi0rKysgYi9D UFAvN3ppcC9Db21wcmVzcy9SYXI1RGVjb2Rlci5jcHAKLUBAIC03Miw2ICs3Miw3IEBAIENEZWNv ZGVyOjpDRGVjb2RlcigpOgotICAgICBfd3JpdHRlbkZpbGVTaXplKDApLAotICAgICBfZGljdFNp emVMb2coMCksCi0gICAgIF9pc1NvbGlkKGZhbHNlKSwKLSsgICAgX3NvbGlkQWxsb3dlZChmYWxz ZSksCi0gICAgIF93YXNJbml0KGZhbHNlKSwKLSAgICAgX2lucHV0QnVmKE5VTEwpCi0gewotQEAg LTgwMSw3ICs4MDIsMTAgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoKQotICAgKi8KLSAK LSAgIGlmIChyZXMgPT0gU19PSykKLSsgIHsKLSsgICAgX3NvbGlkQWxsb3dlZCA9IHRydWU7Ci0g ICAgIHJlcyA9IHJlczI7Ci0rICB9Ci0gICAgICAKLSAgIGlmIChyZXMgPT0gU19PSyAmJiBfdW5w YWNrU2l6ZV9EZWZpbmVkICYmIF93cml0dGVuRmlsZVNpemUgIT0gX3VucGFja1NpemUpCi0gICAg IHJldHVybiBTX0ZBTFNFOwotQEAgLTgyMSw2ICs4MjUsMTAgQEAgU1RETUVUSE9ESU1QIENEZWNv ZGVyOjpDb2RlKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0 cmVhbQotIHsKLSAgIHRyeQotICAgewotKyAgICBpZiAoX2lzU29saWQgJiYgIV9zb2xpZEFsbG93 ZWQpCi0rICAgICAgcmV0dXJuIFNfRkFMU0U7Ci0rICAgIF9zb2xpZEFsbG93ZWQgPSBmYWxzZTsK LSsKLSAgICAgaWYgKF9kaWN0U2l6ZUxvZyA+PSBzaXplb2Yoc2l6ZV90KSAqIDgpCi0gICAgICAg cmV0dXJuIEVfTk9USU1QTDsKLSAKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXI1 RGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuaAotaW5kZXggYjBhNGRk MS4uM2RiNTAxOCAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmgK LSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmgKLUBAIC0yNzEsNiArMjcxLDcg QEAgY2xhc3MgQ0RlY29kZXI6Ci0gICBCeXRlIF9kaWN0U2l6ZUxvZzsKLSAgIGJvb2wgX3RhYmxl V2FzRmlsbGVkOwotICAgYm9vbCBfaXNTb2xpZDsKLSsgIGJvb2wgX3NvbGlkQWxsb3dlZDsKLSAg IGJvb2wgX3dhc0luaXQ7Ci0gCi0gICBVSW50MzIgX3JlcHNba051bVJlcHNdOwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9wN3ppcC9wYXRjaGVzL0NWRS0yMDE2LTkyOTYucGF0Y2ggYi9zcmNwa2dzL3A3 emlwL3BhdGNoZXMvQ1ZFLTIwMTYtOTI5Ni5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZmJiYjMzNzczN2U1Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9wN3ppcC9wYXRj aGVzL0NWRS0yMDE2LTkyOTYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0t LS0gYS9DUFAvN3ppcC9BcmNoaXZlLzd6Lzd6SW4uY3BwCVN1biBOb3YgMjAgMDk6Mjk6NDEgMjAx NgotKysrIGIvQ1BQLzd6aXAvQXJjaGl2ZS83ei83ekluLmNwcAlTdW4gTm92IDIwIDA5OjMxOjIy IDIwMTYKLUBAIC0xMDk3LDcgKzEwOTcsOCBAQCBIUkVTVUxUIENJbkFyY2hpdmU6OlJlYWRBbmRE ZWNvZGVQYWNrZWRTdHJlYW1zKAotICAgICAgIGlmIChDcmNDYWxjKGRhdGEsIHVucGFja1NpemUp ICE9IGZvbGRlcnMuRm9sZGVyQ1JDcy5WYWxzW2ldKQotICAgICAgICAgVGhyb3dJbmNvcnJlY3Qo KTsKLSAgIH0KLS0gIEhlYWRlcnNTaXplICs9IGZvbGRlcnMuUGFja1Bvc2l0aW9uc1tmb2xkZXJz Lk51bVBhY2tTdHJlYW1zXTsKLSsgIGlmIChmb2xkZXJzLlBhY2tQb3NpdGlvbnMpCi0rICAgICAg SGVhZGVyc1NpemUgKz0gZm9sZGVycy5QYWNrUG9zaXRpb25zW2ZvbGRlcnMuTnVtUGFja1N0cmVh bXNdOwotICAgcmV0dXJuIFNfT0s7Ci0gfQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9wN3ppcC9w YXRjaGVzL0NWRS0yMDE3LTE3OTY5LnBhdGNoIGIvc3JjcGtncy9wN3ppcC9wYXRjaGVzL0NWRS0y MDE3LTE3OTY5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YTgyMGFmNzMw NjcuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTctMTc5 NjkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1Gcm9tOiA9P3V0Zi04P3E/ QW50b2luZV9CZWF1cHI9QzM9QTk/PSA8YW5hcmNhdEBkZWJpYW4ub3JnPgotRGF0ZTogU3VuLCAy OCBKYW4gMjAxOCAyMToxOTo1MCArMDEwMAotU3ViamVjdDogYmFja3BvcnQgb2YgdGhlIENWRS0y MDE3LTE3OTY5IGZpeCBmcm9tIDd6aXAgMTguMDAtYmV0YQotCi0tLS0KLSBDUFAvN3ppcC9Db21w cmVzcy9TaHJpbmtEZWNvZGVyLmNwcCB8IDcgKysrKysrLQotIDEgZmlsZSBjaGFuZ2VkLCA2IGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXBy ZXNzL1Nocmlua0RlY29kZXIuY3BwIGIvQ1BQLzd6aXAvQ29tcHJlc3MvU2hyaW5rRGVjb2Rlci5j cHAKLWluZGV4IDgwYjdlNjcuLjRhY2RjZTUgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVz cy9TaHJpbmtEZWNvZGVyLmNwcAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvU2hyaW5rRGVjb2Rl ci5jcHAKLUBAIC0xMjEsNyArMTIxLDEyIEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElT ZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAqCi0gICAg IHsKLSAgICAgICBfc3RhY2tbaSsrXSA9IF9zdWZmaXhlc1tjdXJdOwotICAgICAgIGN1ciA9IF9w YXJlbnRzW2N1cl07Ci0tICAgIH0KLSsgICAgICBpZiAoaSA+PSBrTnVtSXRlbXMpCi0rICAgICAg ICBicmVhazsKLSsgICAgIH0KLSsKLSsgICAgaWYgKGkgPj0ga051bUl0ZW1zKQotKyAgICAgIGJy ZWFrOwotICAgICAKLSAgICAgX3N0YWNrW2krK10gPSAoQnl0ZSljdXI7Ci0gICAgIGxhc3RDaGFy MiA9IChCeXRlKWN1cjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcDd6aXAvdGVtcGxhdGUgYi9zcmNw a2dzL3A3emlwL3RlbXBsYXRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDJlMjRh ZGFmNTIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3A3emlwL3RlbXBsYXRlCisrKyAvZGV2 L251bGwKQEAgLTEsNDcgKzAsMCBAQAotIyBUZW1wbGF0ZSBmaWxlIGZvciAncDd6aXAnCi1wa2du YW1lPXA3emlwCi12ZXJzaW9uPTE2LjAyCi1yZXZpc2lvbj01Ci13cmtzcmM9IiR7cGtnbmFtZX1f JHt2ZXJzaW9ufSIKLWhvc3RtYWtlZGVwZW5kcz0ieWFzbSBuYXNtIgotc2hvcnRfZGVzYz0iQ29t bWFuZC1saW5lIHZlcnNpb24gb2YgdGhlIDd6aXAgY29tcHJlc3NlZCBmaWxlIGFyY2hpdmUiCi1t YWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgotbGljZW5zZT0iTEdQ TC0yLjEtb3ItbGF0ZXIiCi1ob21lcGFnZT0iaHR0cDovL3A3emlwLnNvdXJjZWZvcmdlLm5ldC8i Ci1kaXN0ZmlsZXM9IiR7U09VUkNFRk9SR0VfU0lURX0vJHtwa2duYW1lfS8ke3BrZ25hbWV9XyR7 dmVyc2lvbn1fc3JjX2FsbC50YXIuYnoyIgotY2hlY2tzdW09NWViMjBhYzBlMjk0NGY2Y2I5YzJk NTFkZDZjNDUxODk0MWMxODUzNDdkNDA4OWVhODkwODdmZmRkNmUyMzQxZgotCi1DWFhGTEFHUz0i LVduby1uYXJyb3dpbmciCi0KLWRvX2NvbmZpZ3VyZSgpIHsKLQljYXNlICIkWEJQU19UQVJHRVRf TUFDSElORSIgaW4KLQkJaTY4NiopIGNwIG1ha2VmaWxlLmxpbnV4X3g4Nl9hc21fZ2NjXzQuWCBt YWtlZmlsZS5tYWNoaW5lOzsKLQkJeDg2XzY0KikgY3AgbWFrZWZpbGUubGludXhfYW1kNjRfYXNt IG1ha2VmaWxlLm1hY2hpbmU7OwotCQkqKSBjcCBtYWtlZmlsZS5saW51eF9hbnlfY3B1X2djY180 LlggbWFrZWZpbGUubWFjaGluZTs7Ci0JZXNhYwotCXNlZCAtZSAicyxnKyssJHtDWFh9LCIgLWkg bWFrZWZpbGUubWFjaGluZQotCXNlZCAtZSAicyxnY2MsJHtDQ30sIiAtaSBtYWtlZmlsZS5tYWNo aW5lCi19Ci1kb19idWlsZCgpIHsKLQltYWtlIGFsbDMgT1BURkxBR1M9IiRDWFhGTEFHUyIgJHtt YWtlam9ic30KLX0KLWRvX2luc3RhbGwoKSB7Ci0JbWFrZSBpbnN0YWxsIERFU1RfRElSPSIke0RF U1RESVJ9IiBERVNUX0hPTUU9Ii91c3IiIFwKLQkJREVTVF9NQU49Ii91c3Ivc2hhcmUvbWFuIiBc Ci0JCURFU1RfU0hBUkVfRE9DPSIvdXNyL3NoYXJlL2RvYy8ke3BrZ25hbWV9IgotCWZpbmQgJHtE RVNURElSfS91c3Ivc2hhcmUvZG9jLyRwa2duYW1lIC10eXBlIGQgLWV4ZWMgY2htb2QgNzU1IHt9 IFw7Ci0JbWtkaXIgLXAgJHtERVNURElSfS91c3Ivc2hhcmUvbGljZW5zZXMvcDd6aXAvCi0JbXYg JHtERVNURElSfS91c3Ivc2hhcmUvZG9jL3A3emlwL0RPQy9jb3B5aW5nLnR4dCBcCi0JICAgJHtE RVNURElSfS91c3Ivc2hhcmUvbGljZW5zZXMvcDd6aXAvTElDRU5TRQotfQotCi1wN3ppcC11bnJh cl9wYWNrYWdlKCkgewotCXNob3J0X2Rlc2MrPSIgLSBSQVIgc3VwcG9ydCIKLQlsaWNlbnNlPSJj dXN0b206ZnJlZXdhcmUiCi0JZGVwZW5kcz0iJHtzb3VyY2Vwa2d9LSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCi0JcmVwb3NpdG9yeT1ub25mcmVlCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVz ci9saWIvcDd6aXAvQ29kZWNzL1Jhci5zbwotCQl2bGljZW5zZSBET0MvdW5SYXJMaWNlbnNlLnR4 dCBMSUNFTlNFCi0JfQotfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wN3ppcC91cGRhdGUgYi9zcmNw a2dzL3A3emlwL3VwZGF0ZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODRlZDQ2ZDc0 YTFhLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9wN3ppcC91cGRhdGUKKysrIC9kZXYvbnVs bApAQCAtMSArMCwwIEBACi1wYXR0ZXJuPSdwN3ppcF9cS1suXGRdKycK --===============3641583215360221250==--