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 26233 invoked from network); 11 May 2020 23:26:23 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 11 May 2020 23:26:23 -0000 Content-Type: multipart/mixed; boundary="===============1168546997069627909==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_New_package=3A_netrek-client-cow-3=2E3=2E1?= To: ml@inbox.vuxu.org From: Vaelatern Reply-to: ml@inbox.vuxu.org Message-ID: Date: Tue, 12 May 2020 01:26:17 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============1168546997069627909== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IFZhZWxhdGVybiBhZ2FpbnN0IG1hc3RlciBv biB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vVmFlbGF0 ZXJuL3ZvaWQtcGFja2FnZXMgbmV0cmVrCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC8yMTg1MwoKTmV3IHBhY2thZ2U6IG5ldHJlay1jbGllbnQtY293LTMu My4xCldpdGggc29tZSBwZW9wbGUgYmVpbmcgdmVyeSBib3JlZCwgdGhleSBtaWdodCBsaWtlIGhh dmluZyB0aGlzIHBhY2thZ2VkLg0KDQpJdCBkb2Vzbid0IGJ1aWxkLiBVcHN0cmVhbSBpcyBhY3Rp dmUuDQoNClRoZSBwYXRjaCBpcyBjaGFuZ2VzIGJldHdlZW4gdGhlIHBhY2thZ2VkIHJlbGVhc2Ug YW5kIG5vdywgSSBmaWxlZCBhIGJ1ZyB3aXRoIHVwc3RyZWFtIChidXQgc2luY2UgaXQgZmFpbHMg dG8gYnVpbGQgZnJvbSBzb3VyY2UsIHRoYXQgbWlnaHQgaGF2ZSBiZWVuIHByZW1hdHVyZSkuIGh0 dHBzOi8vZ2l0aHViLmNvbS9xdW96bC9uZXRyZWstY2xpZW50LWNvdy9pc3N1ZXMvMgoKQSBwYXRj aCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9w dWxsLzIxODUzLnBhdGNoIGlzIGF0dGFjaGVk --===============1168546997069627909== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-netrek-21853.patch" RnJvbSA1YzU1ZDVlYTQ0MGUxZjA0ZjRmNWVlNmNjMWRkN2QyMDRhN2UyOGRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUb3lhbSBDb3ggPFZhZWxhdGVybkB2b2lkbGludXgub3JnPgpE YXRlOiBNb24sIDExIE1heSAyMDIwIDE5OjE4OjI2IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gTmV3 IHBhY2thZ2U6IG5ldHJlay1jbGllbnQtY293LTMuMy4xCgotLS0KIC4uLi9wYXRjaGVzL3RvLWxh dGVzdC0yMDIwLTA1LTEwLnBhdGNoICAgICAgICB8IDI1NjIgKysrKysrKysrKysrKysrKysKIHNy Y3BrZ3MvbmV0cmVrLWNsaWVudC1jb3cvdGVtcGxhdGUgICAgICAgICAgICB8ICAgMjYgKwogMiBm aWxlcyBjaGFuZ2VkLCAyNTg4IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL25ldHJlay1jbGllbnQtY293L3BhdGNoZXMvdG8tbGF0ZXN0LTIwMjAtMDUtMTAucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL25ldHJlay1jbGllbnQtY293L3RlbXBsYXRlCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9uZXRyZWstY2xpZW50LWNvdy9wYXRjaGVzL3RvLWxhdGVzdC0y MDIwLTA1LTEwLnBhdGNoIGIvc3JjcGtncy9uZXRyZWstY2xpZW50LWNvdy9wYXRjaGVzL3RvLWxh dGVzdC0yMDIwLTA1LTEwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5mNDU3ZmRhNzA3NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbmV0cmVrLWNsaWVu dC1jb3cvcGF0Y2hlcy90by1sYXRlc3QtMjAyMC0wNS0xMC5wYXRjaApAQCAtMCwwICsxLDI1NjIg QEAKK2RpZmYgLS1naXQgYS9DT1cuRE9DIGIvQ09XLkRPQworaW5kZXggY2E1YzhkOS4uODVjNTEw NyAxMDA2NDQKKy0tLSBhL0NPVy5ET0MKKysrKyBiL0NPVy5ET0MKK0BAIC0xMjMsOSArMTIzLDcg QEAgaGF2ZSB1bmlxdWUgZGVmYXVsdHMgZmlsZXMuCisgCisgICAgMy4xLjQgIFZFUklGSUNBVElP TiBPUFRJT05TCisgCistICAgICBUaGUgIi1vIiBvcHRpb24gaW5zdHJ1Y3RzIHRoZSBjbGllbnQg dG8gdXNlIHRoZSBvbGQgcmVzZXJ2ZWQuYyB2ZXJpZmljYXRpb24KKy10byBpZGVudGlmeSBpdHNl bGYgdG8gdGhlIHNlcnZlci4gIFVwZ3JhZGVkIFJTQSBzZXJ2ZXJzIHdpbGwgcmVxdWlyZSB0aGF0 IHRoZQorLWNsaWVudCB1c2UgUlNBIHZlcmlmaWNhdGlvbi4gIFRoaXMgaXMgc2VsZWN0ZWQgdXNp bmcgdGhlICItUiIgb3B0aW9uLgorKyAgICAgW2RlbGV0ZWRdCisgICAgCisgICAgMy4xLjUgIFJF Q09SRCBHQU1FIE9QVElPTgorIAorQEAgLTIwNCwxMCArMjAyLDYgQEAgc29mdHdhcmUuCisgCXBl cmlvZHMuICBZb3UgbXVzdCByZWNvbm5lY3QgYmVmb3JlIHRoaXMgdGltZW91dCBleHBpcmVzIG9y CisgCXlvdXIgc2xvdCB3aWxsIGJlIGdpdmVuIHRvIHNvbWVvbmUgZWxzZSwgeW91IHdvbid0IGJl IGFibGUKKyAJdG8gcmVjb25uZWN0LiAgT24gbW9zdCBzZXJ2ZXJzIGl0IGlzIGFyb3VuZCA2IG1p bnV0ZXMgbG9uZy4KKy0JCistCU5vdGUgdG8gZXhwZXJ0czogIFRoZSBzZXJ2ZXIgd2lsbCByZXZl cmlmeSBjbGllbnRzIHVzaW5nIHdoYXRldmVyCistCWF2YWlsYWJsZSBtZWFucyBpdCBoYXMsIGlu Y2x1ZGluZyBSU0Egb3IgcmVzZXJ2ZWQuYyB3aGVuIGEgZ2hvc3RidXN0CistCW9jY3VycyBhbmQg dGhlcmVmb3JlIHdoZW5ldmVyIHRoaXMgZmVhdHVyZSBpcyB1c2VkLgorIAorICAgIDMuMS4xMSBF U09URVJJQyBPUFRJT05TCisgCitAQCAtNDEwLDEyICs0MDQsMTIgQEAgeW91IGNhbm5vdCBjaGFu Z2UgdGhlIGNvbG9ycy4KKyBJZiB5b3UgaGF2ZSBhbnkgY29tbWVudHMsIG1haWwgdGhlbSB0byBr YW50bmVyQGhvdC5jYWx0ZWNoLmVkdQorIAorICoqKiBTaGVsbCBlc2NhcGUgdG9vbAorLVlvdSBt YXkgZXhlY3V0ZSBhbnkgVW5peCBzaGVsbCBjb21hbmQgd2l0aGluIHRoZSBjbGllbnQuIFJlYWQg eW91ciBtYWlsIAorLW5vdyB3aXRoaW4gdGhlIGNsaWVudC4gVG8gZG8gc28sIGp1c3Qgc2VuZCBh IG1lc3NhZ2UgdG8gdGhlIGRlc3RpbmF0aW9uIAorLSIhIiBhbmQgeW91IGdldCBhIHNoZWxsIHBy b21wdC4gRW50ZXIgdGhlIGNvbWFuZCBhbmQgaXRzIG91dHB1dCB3aWxsIAorK1lvdSBtYXkgZXhl Y3V0ZSBhbnkgVW5peCBzaGVsbCBjb21tYW5kIHdpdGhpbiB0aGUgY2xpZW50LiBSZWFkIHlvdXIg bWFpbAorK25vdyB3aXRoaW4gdGhlIGNsaWVudC4gVG8gZG8gc28sIGp1c3Qgc2VuZCBhIG1lc3Nh Z2UgdG8gdGhlIGRlc3RpbmF0aW9uCisrIiEiIGFuZCB5b3UgZ2V0IGEgc2hlbGwgcHJvbXB0LiBF bnRlciB0aGUgY29tbWFuZCBhbmQgaXRzIG91dHB1dCB3aWxsCisgYmUgZGlzcGxheWVkIGluIHRo ZSB0b29scyB3aW5kb3cuIFdvcmtzIGFsc28gd2l0aCBtYWNyb3MgdG8gIiEiLgorIFlvdSBtYXkg ZGlzYWJsZSBpdCBpbiB0aGUgLnh0cmVrcmMgZm9yIHNlY3VyaXR5IHJlYXNvbnMgd2l0aCBzaGVs bFRvb2xzOiBvZmYKKy1DQVVUSU9OOiBUaGUgY2xpZW50IHdpbGwgYmUgYmxvY2tlZCBmb3IgdGhl IHRpbWUgdGhlIGNvbWFuZCBpcyBleGVjdXRlZC4KKytDQVVUSU9OOiBUaGUgY2xpZW50IHdpbGwg YmUgYmxvY2tlZCBmb3IgdGhlIHRpbWUgdGhlIGNvbW1hbmQgaXMgZXhlY3V0ZWQuCisgQWxzbyBz b21lIHByb2dyYW1zIHN1c3BlbmQgdGhlIGNsaWVudCBpZiBpdCBpcyBzdGFydGVkIGluIHRoZSBi YWNrZ3JvdW5kLgorIAorICoqKiBGYXN0IHF1aXQKK0BAIC00NjIsNyArNDU2LDYgQEAgYm9yZywg QUZBSUsuKSAgRm9yIGluc3RhbmNlOgorIAlDT1cgMy4wMHBsMCwgbGludXgsIDAzLzAzLzk4LCBS TUNTRTM2NUFtVHNyCisgVGhlIGxldHRlcnMgaW4gdGhlIGZvdXJ0aCBmaWVsZCBpbmRpY2F0ZSB3 aGljaCAjaWZkZWZzIHdlcmUgc3BlY2lmaWVkCisgYXQgY29tcGlsZSB0aW1lLiAgUG9zc2liaWxp dGllcyBhcmU6CistUjogUlNBIHN1cHBvcnRlZAorIE06IE1hY3JvcworIEQ6IERlYnVnZ2luZyBp bmZvcm1hdGlvbgorIEM6IENvcnJ1cHRlZCBwYWNrZXQgaGFuZGxpbmcKK0BAIC02MTUsOSArNjA4 LDYgQEAgcG9ydC5yaW86CTQ1NjYKKyAKKyBzaG93bW90ZDoJKG9uL29mZikgZGlzcGxheSBtb3Rk IGlmIGluIHdhaXQgcXVldWUKKyAKKy11c2VSU0E6CQkob24vb2ZmKSBkZWZhdWx0IHNldHRpbmcg Zm9yIHdoZXRoZXIgdGhlIGNsaWVudCBzaG91bGQgdXNlIFJTQQorLQkJdmVyaWZpY2F0aW9uLgor LQorIGF1dG9xdWl0OgkoaW50ZWdlcikgbGVuZ3RoIG9mIHRpbWUgdG8gd2FpdCBvbiB0ZWFtIHNl bGVjdGlvbiBzY3JlZW4KKyAJCWJlZm9yZSBBdXRvLXF1aXQgZXhpdHMgZm9yIHlvdS4KKyAKK0BA IC0xNzAwLDM3ICsxNjkwLDEzIEBAIHJlc3BvbmRzLiAgVGhlIGRlZmF1bHQgZm9yIHRoaXMgb3B0 aW9uIGlzOgorIENPVyBoYXMgdGhlIGJlc3QgYW5kIGVhc2llc3QgdG8gdXNlIGluc3RhbGxhdGlv biBwcm9jZWR1cmUgYSBjbGllbnQKKyBldmVyIGhhZC4KKyAKKy0xICoqKiBJZiB5b3UgYXJlIGNv bXBpbGluZyBDT1cgYW5kIGRvIG5vdCBpbnRlbmQgdG8gcmVsZWFzZSB0aGUgY2xpZW50CistICAq KiogZm9yIHB1YmxpYyBkaXN0cmlidXRpb24gd2l0aCBhbiBSU0EgYmxlc3NpbmcsIHNpbXBseSB0 eXBlOgorLQorIG1ha2UKKyAKKyBJbiBjYXNlIHlvdSB3aWxsIG5lZWQgc29tZSBhZGRpdGlvbmFs IGZsYWdzIGZvciB5b3VyIGNvbXBpbGVyIG9yIGxpbmtlciwKKyBlZGl0IHRoZSAic2FtcGxlX2tl eS5kZWYiIGZpbGUgYW5kIGNoYW5nZSB0aGUgY29ycmVzcG9uZGluZyBwYXJhbWV0ZXJzCisgYXQg dGhlIGJvdHRvbS4KKyAKKy0yICoqKiBJZiB5b3UgYXJlIGNvbXBpbGluZyBDT1cgd2l0aCB0aGUg aW50ZW50aW9uIG9mIHJlbGVhc2luZyBhIGNsaWVudAorLSAgKioqIGZvciBwdWJsaWMgZGlzdHJp YnV0aW9uIHdpdGggYW4gUlNBIGJsZXNzaW5nLCByZWFkIGJlbG93LgorLQorLUZpcnN0LCBwbGVh c2UgY29udGFjdCBjb3dAbmV0cmVrLm9yZyBzbyB3ZSBrbm93IGFib3V0CistdGhlIGV4aXN0YW5j ZSBvZiB0aGUgY2xpZW50IGFuZCB3aGVyZSBvdGhlciBwZW9wbGUgbWlnaHQgb2J0YWluIGl0Lgor LQorLU1ha2Ugc3VyZSB0aGF0IHlvdSBoYXZlIE1QIG9yIEdNUCBhdmFpbGFibGUgb24geW91ciBz eXN0ZW0uCistSWYgeW91IGRvIG5vdCBoYXZlIHRoZSBHTVAgaW5zdGFsbGF0aW9uLCB5b3UgbmVl ZCB0byBvYnRhaW4gaXQuCistSXQgc2hvdWxkIGJlIGF2YWlsYWJsZSBmcm9tIGdhdGVrZWVwZXIu ZGVjLmNvbS4KKy0KKy1UbyBpbnN0YWxsIGl0IGRvIHRoZSBmb2xsb3dpbmc6CistCistMSkgVGFr ZSB0aGUgc2FtcGxlX2tleS5kZWYgZmlsZSBhcyBhIGJhc2lzIHRvIGdlbmVyYXRlIGFuIG93biBS U0Ega2V5CistICAgZGVmaW5pdGlvbiBmaWxlLgorLTIpIEVkaXQgdGhlIE1ha2VmaWxlIGFuZCBz ZXQgS0VZREVGIHRvIHRoZSBuYW1lIG9mIHRoZSBuZXcgZ2VuZXJhdGVkIGZpbGUuCistMykgbWFr ZQorLQlJZiB5b3UgZG9uJ3QgaGF2ZSBhbHJlYWR5IGEga2V5IGEgbmV3IGtleSB3aWxsIGJlIGdl bmVyYXRlZC4KKy00KSBtYWtlIGRpc3RrZXkKKy0JU2VuZHMgYSBtYWlsIHRvIHRoZSBSU0Ega2V5 IGtlZXBlciB0byBnZXQgeW91ciBrZXkgaW5zdGFsbGVkIAorLQlhdCB0aGUgc2VydmVycy4KKy01 KSB5b3UgYXJlIGRvbmUhICB3YXRjaCB0aGF0IEdQQSBoaXQgdGhlIGZsb29yISEKKy0KKytZb3Ug YXJlIGRvbmUhICB3YXRjaCB0aGF0IEdQQSBoaXQgdGhlIGZsb29yISEKKyAKKyBjb3dAbmV0cmVr Lm9yZyBhbHdheXMgbGlrZXMgdG8gcmVjZWl2ZSBidWcgcmVwb3J0cyBmb3IKKyB0aGUgY2xpZW50 IGFuZCBpZiB5b3UgaGF2ZSBhbnkgc3VnZ2VzdGlvbiBmb3IgaG93IHRvIGltcHJvdmUgdGhlCitk aWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQoraW5kZXggZWZiMDJiYS4uYmU0MTJmZCAx MDA2NDQKKy0tLSBhL01ha2VmaWxlCisrKysgYi9NYWtlZmlsZQorQEAgLTIsMTMgKzIsNiBAQAor ICMgIE5vIGVkaXRhYmxlcyBiZWxvdyB0aGlzIHBvaW50LiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIAorLS1pbmNsdWRlIGtleS5tawor LQorLUtFWUdPRCA9IGNsaWVudGtleXNAY2xpZW50a2V5cy5uZXRyZWsub3JnCistTUFJTCAgID0g bWFpbAorLQorLWluY2x1ZGUgJChLRVlERUYpCistCisgUEFDS0FHRT1uZXRyZWstY2xpZW50LWNv dworIFZFUlNJT049JChzaGVsbCAuL25hbWUpCisgRFZFUlNJT049JChzaGVsbCBoZWFkIC0xIGRl Ymlhbi9jaGFuZ2Vsb2d8Y3V0IC1mMiAtZFwofGN1dCAtZjEgLWRcKSkKK0BAIC0xOCwzNyArMTEs MjcgQEAgYWxsOiBuZXRyZWstY2xpZW50LWNvdworIG5ldHJlay1jbGllbnQtY293OiBzeXN0ZW0u bWsgbmV0cmVrSQorIAorIG5ldHJla0k6OgorLQkkKE1BS0UpIC1mIHN5c3RlbS5tayBLRVlERUY9 JChLRVlERUYpIG5ldHJlay1jbGllbnQtY293CisrCSQoTUFLRSkgLWYgc3lzdGVtLm1rIG5ldHJl ay1jbGllbnQtY293CisgCisgbmV0cmVrLnNoYXJlZDogbmFtZSBzeXN0ZW0ubWsKKy0JJChNQUtF KSAtZiBzeXN0ZW0ubWsgS0VZREVGPSQoS0VZREVGKSBTPVNIQVJFRCBuZXRyZWsuc2hhcmVkCisr CSQoTUFLRSkgLWYgc3lzdGVtLm1rIFM9U0hBUkVEIG5ldHJlay5zaGFyZWQKKyAKKyBwcm9maWxl OgorLQkkKE1BS0UpIC1mIHN5c3RlbS5tayBPUFQ9Ii1nZ2RiMyAtcGcgLWEiIEVYVFJBTElOS0ZM QUdTPSItZ2dkYjMgLXBnIC1hIiBLRVlERUY9JChLRVlERUYpIG5ldHJlay1jbGllbnQtY293Cist CistY29udmVydDogbWtrZXkgJChLRVlGSUxFKSAkKEtFWVNIKQorLQkuL21ra2V5IC1oICQoS0VZ U0gpICQoS0VZRklMRSkgIkNsaWVudCBPZiBXaW4iIFwKKy0JJChERVNDKSAkKE1BS0VSKSAkKENP TU1FTlQpCistCistbmV3a2V5OiBta2tleQorLQl1bnRpbCAuL21ra2V5ICQoS0VZRklMRSkgIkNs aWVudCBPZiBXaW4iICQoREVTQykgJChNQUtFUikgJChDT01NRU5UKSAiaW5sLHN0YW5kYXJkMiI7 IGRvIHNsZWVwIDE7IGRvbmUKKy0KKy1ta2tleTogc3lzdGVtLm1rCistCSQoTUFLRSkgLWYgc3lz dGVtLm1rIEtFWURFRj0kKEtFWURFRikgbWtrZXkKKysJJChNQUtFKSAtZiBzeXN0ZW0ubWsgT1BU PSItZ2dkYjMgLXBnIC1hIiBFWFRSQUxJTktGTEFHUz0iLWdnZGIzIC1wZyAtYSIgbmV0cmVrLWNs aWVudC1jb3cKKyAKKyBjbGVhbjoKKyAJcm0gLWYgKi5vICQoT0JKKSAkKFNIQVJFRFRBUkdFVCkK KyAKKyByZWFsbHljbGVhbjogY2xlYW4KKy0Jcm0gLWYgbmV0cmVrLWNsaWVudC1jb3cgcmFuZG9t aXplIG1ra2V5IHJzYV9ib3gqLmMgbmFtZSBta2NmbGFncyBcCistCWNvbmZpZy5oIHN5c3RlbS5t ayBjb25maWcuc3RhdHVzIGNvbmZpZy5sb2cgY29uZmlnLmNhY2hlIGtleS5tYWlsIFwKKy0JbnVs bCBuZXRyZWsuc2hhcmVkIGxpYiogY2ZsYWdzLmMga2V5LmNvdy5saW51eCoga2V5Lm1rIFwKKysJ cm0gLWYgbmV0cmVrLWNsaWVudC1jb3cgbmFtZSBta2NmbGFncyBcCisrCWNvbmZpZy5oIHN5c3Rl bS5tayBjb25maWcuc3RhdHVzIGNvbmZpZy5sb2cgY29uZmlnLmNhY2hlIFwKKysJbnVsbCBuZXRy ZWsuc2hhcmVkIGxpYiogY2ZsYWdzLmMgXAorIAlwby9NYWtlZmlsZSBwby9NYWtlZmlsZS5pbgor IAorIGRpc3RjbGVhbjogY2xlYW4gcmVhbGx5Y2xlYW4KKyAKKyB0YWdzOiBzeXN0ZW0ubWsKKy0J JChNQUtFKSAtZiBzeXN0ZW0ubWsgS0VZREVGPSQoS0VZREVGKSB0YWdzCisrCSQoTUFLRSkgLWYg c3lzdGVtLm1rIHRhZ3MKKyAKKyBuYW1lczogbmFtZQorIAlAZWNobyAiUEFDS0FHRT0kKFBBQ0tB R0UpIgorQEAgLTc2LDU0ICs1OSw0MyBAQCBkaXN0YmluOiBuYW1lIG5ldHJlay1jbGllbnQtY293 CisgCS1ybSAtZiAkKFBBQ0tBR0UpLSQoVkVSU0lPTikuJChBUkNIKS5negorIAlnemlwIC05ICQo UEFDS0FHRSktJChWRVJTSU9OKS4kKEFSQ0gpCisgCistZGlzdGtleTogbmV0cmVrLWNsaWVudC1j b3cgJChLRVlGSUxFKQorLQllY2hvICJUaGlzIGlzIGFuIGF1dG9tYXRpYyBnZW5lcmF0ZWQgbWFp bC4iID5rZXkubWFpbAorLQllY2hvICJQbGVhc2UgYWRkIHRoZSBmb2xsb3dpbmcgJChBUkNIKSBD T1cga2V5IHRvIHRoZSBtZXRhc2VydmVyOiIgPj5rZXkubWFpbAorLQllY2hvICIiID4+a2V5Lm1h aWwKKy0JY2F0ICQoS0VZRklMRSkgPj5rZXkubWFpbAorLQllY2hvICIiID4+a2V5Lm1haWwKKy0J Li9uZXRyZWstY2xpZW50LWNvdyAtdiA+PmtleS5tYWlsCistCWNhdCBrZXkubWFpbCB8ICQoTUFJ TCkgJChLRVlHT0QpCistCisgbmFtZTogbmFtZS5jIHZlcnNpb24uaCBwYXRjaGxldmVsLmgKKyAJ JChDQykgJChDRkxBR1MpIC1vIG5hbWUgbmFtZS5jCisgCisgZGVwZW5kOiBzeXN0ZW0ubWsKKy0J JChNQUtFKSAtZiBzeXN0ZW0ubWsgS0VZREVGPSQoS0VZREVGKSBkZXBlbmQKKysJJChNQUtFKSAt ZiBzeXN0ZW0ubWsgZGVwZW5kCisgCistc3lzdGVtLm1rOiBNYWtlZmlsZSBzeXN0ZW0ubWsuaW4g Y29uZmlnLmguaW4gY29uZmlndXJlIGluc3RhbGwuc2ggJChLRVlERUYpCisrc3lzdGVtLm1rOiBN YWtlZmlsZSBzeXN0ZW0ubWsuaW4gY29uZmlnLmguaW4gY29uZmlndXJlIGluc3RhbGwuc2gKKyAJ Li9jb25maWd1cmUgJChDT05GRkxBR1MpCistCSQoTUFLRSkgLWYgc3lzdGVtLm1rIEtFWURFRj0k KEtFWURFRikgZGVwZW5kCisrCSQoTUFLRSkgLWYgc3lzdGVtLm1rIGRlcGVuZAorIAorIGluc3Rh bGwuc2g6CisgCXRvdWNoIGluc3RhbGwuc2gKKyAKKyBYVFJFS1JDOiBzeXN0ZW0ubWsKKy0JJChN QUtFKSAtZiBzeXN0ZW0ubWsgS0VZREVGPSQoS0VZREVGKSB4dHJla3JjCisrCSQoTUFLRSkgLWYg c3lzdGVtLm1rIHh0cmVrcmMKKyAJbXYgeHRyZWtyYyBYVFJFS1JDCisgCistY29uZmlndXJlOiBj b25maWd1cmUuaW4KKy0Jcm0gLWYgY29uZmlndXJlCistCSQoQVVUT0NPTkYpIGNvbmZpZ3VyZS5p biA+IGNvbmZpZ3VyZQorLQljaG1vZCAreCBjb25maWd1cmUKKytjb25maWd1cmU6IGNvbmZpZ3Vy ZS5hYworKwkkKEFVVE9DT05GKQorIAorIHVucHJvdG86IHN5c3RlbS5taworLQkkKE1BS0UpIC1m IHN5c3RlbS5tayBLRVlERUY9JChLRVlERUYpIHVucHJvdG8KKysJJChNQUtFKSAtZiBzeXN0ZW0u bWsgdW5wcm90bworIAorIHByb3RvOiBzeXN0ZW0ubWsKKy0JJChNQUtFKSAtZiBzeXN0ZW0ubWsg S0VZREVGPSQoS0VZREVGKSBwcm90bworKwkkKE1BS0UpIC1mIHN5c3RlbS5tayBwcm90bworIAor IGluZGVudDogc3lzdGVtLm1rCistCSQoTUFLRSkgLWYgc3lzdGVtLm1rIEtFWURFRj0kKEtFWURF RikgaW5kZW50CisrCSQoTUFLRSkgLWYgc3lzdGVtLm1rIGluZGVudAorIAorIHRvX3VuaXg6IHN5 c3RlbS5taworLQkkKE1BS0UpIC1mIHN5c3RlbS5tayBLRVlERUY9JChLRVlERUYpIHRvX3VuaXgK KysJJChNQUtFKSAtZiBzeXN0ZW0ubWsgdG9fdW5peAorIAorIHRvX2Rvczogc3lzdGVtLm1rCist CSQoTUFLRSkgLWYgc3lzdGVtLm1rIEtFWURFRj0kKEtFWURFRikgdG9fZG9zCisrCSQoTUFLRSkg LWYgc3lzdGVtLm1rIHRvX2RvcworIAorIGluc3RhbGw6IHN5c3RlbS5taworLQkkKE1BS0UpIC1m IHN5c3RlbS5tayBLRVlERUY9JChLRVlERUYpIGluc3RhbGwKKysJJChNQUtFKSAtZiBzeXN0ZW0u bWsgaW5zdGFsbAorIAorIHBhY2thZ2U6CisgCWZha2Vyb290IGRwa2ctYnVpbGRwYWNrYWdlIC1J Z3RrIC1JcHlndGsgLUlweXF0CitkaWZmIC0tZ2l0IGEvUkVBRE1FLnJlbGVhc2luZyBiL1JFQURN RS5yZWxlYXNpbmcKK2luZGV4IDE1NTY4M2MuLmUxZDUzOTggMTAwNjQ0CistLS0gYS9SRUFETUUu cmVsZWFzaW5nCisrKysgYi9SRUFETUUucmVsZWFzaW5nCitAQCAtMjcsNyArMjcsNyBAQCBtdiBu ZXRyZWstY2xpZW50LWNvdy0ke1ZFUlNJT059LnRhci5neiAuLgorIAorIGNkIC90bXAKKyBtZDVz dW0gbmV0cmVrLWNsaWVudC1jb3ctJHtWRVJTSU9OfS50YXIuZ3oKKy0wZmY1MzY2ZDM1YThiY2Ux ZDQxMzlhYTI5YmVhZDdjYyAgbmV0cmVrLWNsaWVudC1jb3ctMy4zLjAudGFyLmd6CisrYjRmNjg2 ZTM3YjY5NDA1MGU3MDFlNGIzNmY2MDUwMDggIG5ldHJlay1jbGllbnQtY293LTMuMy4xLnRhci5n egorIAorICMgdGVzdCBidWlsZCB0aGUgLnRhci5negorIGNkIC90bXAKK0BAIC00MCw4ICs0MCw3 IEBAIG1ha2UKKyAjIHJlbGVhc2UKKyBjZCAvdG1wCisgY3AgbmV0cmVrLWNsaWVudC1jb3ctJHtW RVJTSU9OfS50YXIuZ3ogfi9wdWJsaWNfaHRtbC9leHRlcm5hbC9taW5lL25ldHJlay8KKy1jZCB+ L3B1YmxpY19odG1sL2V4dGVybmFsLworLS4gdG8tYXUKKyt1cHcKKyBodHRwOi8vcXVvemwubGlu dXgub3JnLmF1L25ldHJlay8KKyAKKyAjIG9yaW9uIHVwbG9hZAorZGlmZiAtLWdpdCBhL2F1dG9n ZW4uc2ggYi9hdXRvZ2VuLnNoCitvbGQgbW9kZSAxMDA2NDQKK25ldyBtb2RlIDEwMDc1NQorZGlm ZiAtLWdpdCBhL2NhbWVyYS5jIGIvY2FtZXJhLmMKK2luZGV4IDk5NGRjZGUuLmUyZjY3ZmUgMTAw NjQ0CistLS0gYS9jYW1lcmEuYworKysrIGIvY2FtZXJhLmMKK0BAIC0yMiwxMyArMjIsMTEgQEAg c3RhdGljIGludCBpbml0aWFsaXNlZCA9IDA7CisgCisgdm9pZCBjYW1lcmFfaW5pdChEaXNwbGF5 ICphcmdfZGlzcCwgV2luZG93IGFyZ193aW5kb3cpIHsKKyAgIGlmIChpbml0aWFsaXNlZCkgcmV0 dXJuOworLSAgaW50IGRlcHRoOworICAgZGlzcCA9IGFyZ19kaXNwOworICAgdHcgPSBhcmdfd2lu ZG93OworIAorICAgc2NyID0gU2NyZWVuT2ZEaXNwbGF5KGRpc3AsIERlZmF1bHRTY3JlZW4oZGlz cCkpOworICAgdmlzID0gRGVmYXVsdFZpc3VhbChkaXNwLCBYU2NyZWVuTnVtYmVyT2ZTY3JlZW4o c2NyKSk7CistICBkZXB0aCA9IERlZmF1bHREZXB0aChkaXNwLCBYU2NyZWVuTnVtYmVyT2ZTY3Jl ZW4oc2NyKSk7CisgICBjbSA9IERlZmF1bHRDb2xvcm1hcChkaXNwLCBYU2NyZWVuTnVtYmVyT2ZT Y3JlZW4oc2NyKSk7CisgICBydyA9IFJvb3RXaW5kb3coZGlzcCwgWFNjcmVlbk51bWJlck9mU2Ny ZWVuKHNjcikpOworIAorZGlmZiAtLWdpdCBhL2NvbmZpZy5oLmluIGIvY29uZmlnLmguaW4KK2lu ZGV4IDU2NTk2YzMuLmM4ZWVhN2EgMTAwNjQ0CistLS0gYS9jb25maWcuaC5pbgorKysrIGIvY29u ZmlnLmguaW4KK0BAIC0yNCw5ICsyNCw2IEBACisgKi8KKyAKKyAKKy0vKiAgCVJTQSAJCQktIE5l dyBSU0EgcmVzZXJ2ZWQgcGFja2V0cyBzdHVmZiAJCSovCistLyogI2RlZmluZSBSU0EgIAkJLSBE ZWZpbmVkIGluIHRoZSBNYWtlZmlsZSAJCQkqLworLQorICNkZWZpbmUgUkNEICAgICAgICAgICAg ICAgICAgICAgLyogUkNEICAgICAgICAgICAgIC0gU3VwcG9ydCBSZWNpZXZlciB2YXJpYWJsZQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlz dHJlc3NlcyAqLworIAorZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5hYwor c2ltaWxhcml0eSBpbmRleCA3MCUKK3JlbmFtZSBmcm9tIGNvbmZpZ3VyZS5pbgorcmVuYW1lIHRv IGNvbmZpZ3VyZS5hYworaW5kZXggMDg2ZTRjYS4uY2U5NTZlZSAxMDA2NDQKKy0tLSBhL2NvbmZp Z3VyZS5pbgorKysrIGIvY29uZmlndXJlLmFjCitAQCAtNSwxMCArNSw2IEBAIEFDX0lOSVQobmFt ZS5jKQorIEFDX0NBTk9OSUNBTF9TWVNURU0KKyBBQ19DT05GSUdfSEVBREVSKGNvbmZpZy5oKQor IAorLUFDX01TR19DSEVDS0lORyh5b3VyIGtleSkKKy1BQ19BUkdfV0lUSChrZXksIFsgIC0td2l0 aC1rZXkgICAgICAgICAgICAgIGtleSBkZWZpbml0aW9uIGZpbGVdLEtFWURFRj0kd2l0aHZhbCxL RVlERUY9c2FtcGxlX2tleS5kZWYpCistQUNfU1VCU1QoS0VZREVGKQorLQorIEFDX1BST0dfSU5T VEFMTAorIAorIEFDX1BST0dfQ0MKK0BAIC0xNTIsMTE3ICsxNDgsNiBAQCBJTkNTPSIkSU5DUyAk WElOQ0xVREVTIgorIEFDX1NVQlNUKElOQ1MpCisgTElCUz0iJExJQlMgJFhMSUJTVyIKKyAKKy0j LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKy0jCUNoZWNrIGZvciBnbXAgYW5kIG1wCistIy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistCist QUNfQVJHX1dJVEgoZ21wLFsgIC0td2l0aC1nbXAgICAgICAgICAgICAgIEdNUCBEaXJdLCBNUElO Qz0iLUkkd2l0aHZhbC9pbmNsdWRlIiAgTVBMSUI9Ii1MJHdpdGh2YWwvbGliIC1sZ21wIiBzZWFy Y2g9ZmFsc2UsIE1QSU5DPW5vcGUgTVBMSUI9bm9wZSkKKy1pZiB0ZXN0ICIkTVBJTkMiID0gbm9w ZTsgdGhlbgorLSAgICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIG1wLmgpCistICAgIEFDX0VHUkVQX0NQ UChHTlVfTVAsWworLSNpbmNsdWRlIDxtcC5oPgorLV9fR05VX01QX18KKy1dLAorLSAgICAgICAg W2dudV9tcF9vaz15ZXNdLAorLSAgICAgICAgW2dudV9tcF9vaz1ub10pCistICAgIGlmIHRlc3Qg IngkZ251X21wX29rIiA9IHh5ZXM7IHRoZW4KKy0gICAgICAgIE1QSU5DPW5vcGUKKy0Jc2VhcmNo PXRydWUKKy0JQUNfTVNHX1JFU1VMVCh5ZXMpCistICAgIGVsc2UKKy0gICAgICAgIE1QSU5DPSIi CistCXNlYXJjaD1mYWxzZQorLQlBQ19NU0dfUkVTVUxUKG5vKQorLSAgICBmaQorLWZpCistCist QUNfTVNHX0NIRUNLSU5HKGZvciBnbXAuaCkKKy0KKy1pZiB0ZXN0ICIkTVBJTkMiID0gbm9wZTsg dGhlbgorLSAgIGRpcnM9IiRzcmNkaXIvZ21wLTIuMC4yIC91c3IvdW5zdXBwb3J0ZWQvaW5jbHVk ZSAvdXNyL2xvY2FsL2luY2x1ZGUgXAorLSAgICAgIC91c3IvZ251L2luY2x1ZGUgL3Vzci9nbnUv aW5jbHVkZS9tcCAvdXNyL2xvY2FsL2dudS9pbmNsdWRlIFwKKy0gICAgICAvdXNyL2xvY2FsL2du dS9pbmNsdWRlL21wIC91c3IvaW5jbHVkZS9nbnUgL3Vzci9sb2NhbC9saWIvZ21wLTIuMC4yIgor LSAgIGZvciBpIGluICRkaXJzOyBkbworLSAgICAgIGlmIHRlc3QgLXIgJGkvZ21wLmg7IHRoZW4K Ky0JTVBJTkM9Ii1JJGkiCistICAgICAgZmkKKy0gICBkb25lCistZmkKKy0KKy1pZiB0ZXN0ICIk TVBJTkMiID0gbm9wZTsgdGhlbgorLQorLSMgbXAgbm90IHN1cHBvcnRlZCB3aXRoIG5ldyBta2tl eS4KKy0gICBBQ19UUllfQ1BQKFsjaW5jbHVkZSA8bXAuaD5dLCBNUElOQz1ub3BlICwgTVBJTkM9 bm9wZSkKKy0KKy0gICBpZiB0ZXN0ICIkTVBJTkMiID0gbm9wZTsgdGhlbgorLSAgICAgIE1QSU5D PSIjIC1JLiIKKy0gICAgICBOT1JTQT0iIyIKKy0gICAgICBBQ19NU0dfUkVTVUxUKG5vKQorLSAg IGVsc2UKKy0gICAgIEFDX01TR19SRVNVTFQoeWVzKQorLSAgIGZpCistZWxzZQorLSAgIEFDX01T R19SRVNVTFQoeWVzKQorLWZpCistCistQUNfU1VCU1QoTVBJTkMpCistCistIyBDaGVja2luZyBm b3IgR01QIDIKKy1TQVZFSU5DUz0iJElOQ1MiCistSU5DUz0iJElOQ1MgJFhJTkNMVURFUyIKKy1B Q19FR1JFUF9DUFAoImdtcD0uKltbMDItOV1dIiwgWworLSAgI2luY2x1ZGUgPGdtcC5oPgorLSAg Z21wPV9fR05VX01QX18KKy0gIF0sQUNfREVGSU5FKEhBVkVfR01QMl9IKSkKKy1JTkNTPSIkU0FW RUlOQ1MiCistCistaWYgdGVzdCAiJE1QTElCIiA9IG5vcGU7IHRoZW4KKy0gIGlmIHRlc3QgIiRz ZWFyY2giID0gdHJ1ZTsgdGhlbgorLSAgICBNUExJQj1ub3BlCistICBlbHNlCistICAgIEFDX0NI RUNLX0xJQihtcCwgbWFpbiwgTVBMSUI9Ii1sbXAiLCBNUExJQj0iICIpCistICAgIEFDX0NIRUNL X0xJQihnbXAsIG1haW4sIE1QTElCPSIkTVBMSUIgLWxnbXAiLCBNUExJQj1ub3BlKQorLSAgZmkK Ky0gIGlmIHRlc3QgIiRNUExJQiIgPSBub3BlOyB0aGVuCistICAgIGRpcnM9IiRzcmNkaXIvZ21w LTIuMC4yIC91c3IvdW5zdXBwb3J0ZWQvbGliIC91c3IvbG9jYWwvbGliIC91c3IvZ251L2xpYiBc CistICAgICAgL3Vzci9sb2NhbC9nbnUvbGliIC91c3IvbGliL2dudSAvdXNyL2xvY2FsL2xpYi9n bXAtMi4wLjIiCistICAgIGZvciBpIGluICRkaXJzOyBkbworLSAgICAgIGlmIHRlc3QgLXIgJGkv bGlibXAuYTsgdGhlbgorLSAgICAJTVBMSUI9Ii1MJGkgLWxtcCIKKy0gICAgICBmaQorLSAgICAg IGlmIHRlc3QgLXIgJGkvbGliZ21wLmE7IHRoZW4KKy0JTVBMSUI9Ii1MJGkgLWxnbXAiCistCUFD X01TR19SRVNVTFQoeWVzKQorLSAgICAgIGZpCistICAgIGRvbmUKKy0gIGZpCistZmkKKy1pZiB0 ZXN0ICIkTVBMSUIiID0gbm9wZTsgdGhlbgorLSAgIEFDX0NIRUNLX0xJQihtcCwgbWFpbiwgTVBM SUI9YnNkbXAsIE1QTElCPW5vcGUpCistICAgaWYgdGVzdCAiJE1QTElCIiA9IGJzZG1wOyB0aGVu CistICAgICAgZWNobyAiU29ycnkgQ09XIHJlcXVpcmVzIGdtcCBub3QgbXAgZm9yIFJTQS4iCist ICAgICAgTVBMSUI9IiMgLUwuIC1sbXAgLWxnbXAiCistICAgICAgTk9SU0E9IiMiCistICAgZmkK Ky0gICBpZiB0ZXN0ICIkTVBMSUIiID0gbm9wZTsgdGhlbgorLSAgICAgIGVjaG8gV2FybmluZyBt cCBvciBnbXAgbGlicmFyeSBub3QgZm91bmQsIHR1cm5pbmcgUlNBIG9mZi4KKy0gICAgICBNUExJ Qj0iIyAtTC4gLWxtcCAtbGdtcCIKKy0gICAgICBOT1JTQT0iIyIKKy0gICBmaQorLWZpCistQUNf U1VCU1QoTVBMSUIpCistCistaWYgISB0ZXN0IC1yICIkc3JjZGlyL21ra2V5LmMiOyB0aGVuCist ICAgIGVjaG8KKy0gICAgZWNobyBXYXJuaW5nIFJTQSB1dGlsaXRpZXMgZm9yIENPVyBidWlsZCBu b3QgZm91bmQgaW4gc291cmNlLCB0dXJuaW5nIFJTQSBvZmYuCistICAgIE5PUlNBPSIjIgorLSAg ICBlY2hvCistZmkKKy0KKy1BQ19TVUJTVChSU0FJTkMpCistQUNfU1VCU1QoUlNBTElCKQorLUFD X1NVQlNUKE5PUlNBKQorLQorICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICMJQ2hlY2sgZm9yIHRoZSBleGlzdGVu Y2Ugb2YgdmFyaW91cyBsaWJyYXJpZXMuICBUaGUgb3JkZXIgaGVyZQorICMJaXMgaW1wb3J0YW50 LCBzbyB0aGF0IHRoZW4gZW5kIHVwIGluIHRoZSByaWdodCBvcmRlciBpbiB0aGUKK0BAIC0yOTEs NiArMTc2LDEyIEBAIEFDX1JFUExBQ0VfRlVOQ1ModXNsZWVwIHNldHN0YXRlIHN0cmR1cCByaW50 KQorICMgICAgICAgQ2hlY2sgZm9yIHN5c3RlbSBkZXBlbmRlbnQgcHJvZ3JhbXMKKyAjLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAKKysjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysjICAgICAgIENoZWNrIGZvciBJbWxpYgorKyMtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorK0FDX1NFQVJDSF9MSUJTKFtpbWxpYl9sb2FkX2ltYWdlXSwgW0ltbGliMl0sIFtd LAorKyAgICAgICAgICAgICAgIFtBQ19NU0dfRVJST1IoW0NvdWxkIG5vdCBmaW5kIEltbGliMl0p XSkKKysKKyAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAjICAgICAgIENoZWNrIGZvciBTREwKKyAjLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KK0BAIC0zMDcsOSArMTk4LDcgQEAgaWYgdGVzdCB4JG5vX3NkbCAhPSB4eWVzOyB0aGVuCisg ICBmaQorIGZpCisgCistQU1fR05VX0dFVFRFWFQoW2V4dGVybmFsXSkKKy0KKyAjLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAjICAgICAgIEVtaXQgb3V0cHV0CisgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistQUNfT1VUUFVUKHN5c3Rl bS5tayBrZXkubWsgcG8vTWFrZWZpbGUuaW4pCisrQUNfT1VUUFVUKHN5c3RlbS5taykKK2RpZmYg LS1naXQgYS9jb3cuaHRtbCBiL2Nvdy5odG1sCitpbmRleCA0Mzg3OWRmLi5kYjk5MzAyIDEwMDY0 NAorLS0tIGEvY293Lmh0bWwKKysrKyBiL2Nvdy5odG1sCitAQCAtODY2LDEyICs4NjYsMTIgQEAg U3RpbGwsIHRoZXkncmUgdGhlcmUhCisgCisgW05vdGU6IFRoaXMgaXMgbm90IHlldCBpbXBsZW1l bnRlZCBpbiBXaW5DT1cgXQorIDxwPgorLSAgICAgWW91IG1heSBleGVjdXRlIGFueSBVbml4IHNo ZWxsIGNvbWFuZCB3aXRoaW4gdGhlIGNsaWVudC4gUmVhZCB5b3VyIG1haWwgCistbm93IHdpdGhp biB0aGUgY2xpZW50LiBUbyBkbyBzbywganVzdCBzZW5kIGEgbWVzc2FnZSB0byB0aGUgZGVzdGlu YXRpb24gCistJnF1b3Q7ISZxdW90OyBhbmQgeW91IGdldCBhIHNoZWxsIHByb21wdC4gRW50ZXIg dGhlIGNvbWFuZCBhbmQgaXQncyBvdXRwdXQgd2lsbAorKyAgICAgWW91IG1heSBleGVjdXRlIGFu eSBVbml4IHNoZWxsIGNvbW1hbmQgd2l0aGluIHRoZSBjbGllbnQuIFJlYWQgeW91ciBtYWlsCisr bm93IHdpdGhpbiB0aGUgY2xpZW50LiBUbyBkbyBzbywganVzdCBzZW5kIGEgbWVzc2FnZSB0byB0 aGUgZGVzdGluYXRpb24KKysmcXVvdDshJnF1b3Q7IGFuZCB5b3UgZ2V0IGEgc2hlbGwgcHJvbXB0 LiBFbnRlciB0aGUgY29tbWFuZCBhbmQgaXQncyBvdXRwdXQgd2lsbAorIGJlIGRpc3BsYXllZCBp biB0aGUgdG9vbHMgd2luZG93LiBXb3JrcyBhbHNvIHdpdGggbWFjcm9zIHRvICZxdW90OyEmcXVv dDsuCisgWW91IG1heSBkaXNhYmxlIGl0IGluIHRoZSAueHRyZWtyYyBmb3Igc2VjdXJpdHkgcmVh c29ucyB3aXRoIHNoZWxsVG9vbHM6IG9mZgorLUNBVVRJT046IFRoZSBjbGllbnQgd2lsbCBiZSBi bG9ja2VkIGZvciB0aGUgdGltZSB0aGUgY29tYW5kIGlzIGV4ZWN1dGVkLgorK0NBVVRJT046IFRo ZSBjbGllbnQgd2lsbCBiZSBibG9ja2VkIGZvciB0aGUgdGltZSB0aGUgY29tbWFuZCBpcyBleGVj dXRlZC4KKyBBbHNvIHNvbWUgcHJvZ3JhbXMgc3VzcGVuZCB0aGUgY2xpZW50IGlmIGl0IGlzIHN0 YXJ0ZWQgaW4gdGhlIGJhY2tncm91bmQuCisgCisgCitkaWZmIC0tZ2l0IGEvY293YXBpLmggYi9j b3dhcGkuaAoraW5kZXggODExYTRlZi4uMjhkZDdlNiAxMDA2NDQKKy0tLSBhL2Nvd2FwaS5oCisr KysgYi9jb3dhcGkuaAorQEAgLTczLDE3ICs3Myw2IEBAIGV4dGVybiBpbnQgdGFrZU5lYXJlc3Q7 CisgIGV4dGVybiB1bnNpZ25lZCBMT05HICBuZXRhZGRyOworICNlbmRpZgorIAorLSNpZmRlZiBS U0EKKy1leHRlcm4gaW50IFJTQV9DbGllbnQ7CistZXh0ZXJuIGNoYXIga2V5X25hbWVbXTsKKy1l eHRlcm4gY2hhciBjbGllbnRfdHlwZVtdOworLWV4dGVybiBjaGFyIGNsaWVudF9hcmNoW107Cist ZXh0ZXJuIGNoYXIgY2xpZW50X2NyZWF0b3JbXTsKKy1leHRlcm4gY2hhciBjbGllbnRfY29tbWVu dHNbXTsKKy1leHRlcm4gY2hhciBjbGllbnRfa2V5X2RhdGVbXTsKKy0KKy0jZW5kaWYKKy0KKyAj aWZkZWYgVE9PTFMKKyBleHRlcm4gY2hhciAqd3d3bGluazsKKyBleHRlcm4gY2hhciAqdXBncmFk ZVVSTDsKK2RpZmYgLS1naXQgYS9jb3dtYWluLmMgYi9jb3dtYWluLmMKK2luZGV4IDI3ZWIyOWUu Ljk5ZjQ5ODQgMTAwNjQ0CistLS0gYS9jb3dtYWluLmMKKysrKyBiL2Nvd21haW4uYworQEAgLTE0 NSw3ICsxNDUsNyBAQCBjaGFyICAgKnN0cjsKKyAKKyAgIGlmICghc2VydmVyX2NvdW50KQorICAg ICB7CistICAgICAgZnByaW50ZihzdGRlcnIsIF8oIk5vIHNlcnZlciBsaXN0LCBjYW5ub3QgcmVz b2x2ZSBpZFxuIikpOworKyAgICAgIGZwcmludGYoc3RkZXJyLCAiTm8gc2VydmVyIGxpc3QsIGNh bm5vdCByZXNvbHZlIGlkXG4iKTsKKyAgICAgICByZXR1cm4gLTE7CisgICAgIH0KKyAKK0BAIC0x NjMsNyArMTYzLDcgQEAgY2hhciAgICpzdHI7CisgICAgIH0KKyAgIGlmIChpID09IHNlcnZlcl9j b3VudCkKKyAgICAgeworLSAgICAgIGZwcmludGYoc3RkZXJyLCBfKCJTcGVjaWZpZWQgc2VydmVy IG5vdCBmb3VuZC5cbiIpKTsKKysgICAgICBmcHJpbnRmKHN0ZGVyciwgIlNwZWNpZmllZCBzZXJ2 ZXIgbm90IGZvdW5kLlxuIik7CisgICAgICAgcmV0dXJuIC0xOworICAgICB9CisgCitAQCAtNjYy LDcgKzY2Miw3IEBAIGludCAgICAgY293bWFpbihjaGFyICpzZXJ2ZXIsIGludCBwb3J0LCBjaGFy ICpuYW1lKQorIAlzZXJ2ZXJOYW1lID0gc2VydmVyOworICAgICB9CisgCistICBTUkFORE9NKGdl dHBpZCgpICogdGltZSgoTE9ORyAqKSAwKSk7CisrICBTUkFORE9NKGdldHBpZCgpICogdGltZShO VUxMKSk7CisgCisgICBpZiAoIXBhc3NpdmUpCisgICAgIHsKK2RpZmYgLS1naXQgYS9kYXRhLmgg Yi9kYXRhLmgKK2luZGV4IGEzN2IyZDUuLjkwZGEwNjMgMTAwNjQ0CistLS0gYS9kYXRhLmgKKysr KyBiL2RhdGEuaAorQEAgLTEyOSwxOCArMTI5LDYgQEAgZXh0ZXJuIHVuc2lnbmVkIExPTkcgbmV0 YWRkcjsJCQkgLyogZm9yIGJsZXNzaW5nICovCisgCisgZXh0ZXJuIGludCBtZXNzYWdlb247Cisg CistI2lmZGVmIFJTQQorLWV4dGVybiBjaGFyIHRlc3RkYXRhW107CistZXh0ZXJuIGludCBSU0Ff Q2xpZW50OworLWV4dGVybiBjaGFyIGtleV9uYW1lW107CistZXh0ZXJuIGNoYXIgY2xpZW50X3R5 cGVbXTsKKy1leHRlcm4gY2hhciBjbGllbnRfYXJjaFtdOworLWV4dGVybiBjaGFyIGNsaWVudF9j cmVhdG9yW107CistZXh0ZXJuIGNoYXIgY2xpZW50X2NvbW1lbnRzW107CistZXh0ZXJuIGNoYXIg Y2xpZW50X2tleV9kYXRlW107CistCistI2VuZGlmCistCisgI2lmZGVmIE1FVEEKKyBleHRlcm4g Y2hhciAqbWV0YXNlcnZlcjsKKyBleHRlcm4gaW50IG1ldGFwb3J0OworZGlmZiAtLWdpdCBhL2Rl ZnMuaCBiL2RlZnMuaAoraW5kZXggNTNhZjJmOS4uMmE1N2U2YSAxMDA2NDQKKy0tLSBhL2RlZnMu aAorKysrIGIvZGVmcy5oCitAQCAtMiw4ICsyLDYgQEAKKyAjZGVmaW5lIF9oX2RlZnMKKyAKKyAj aW5jbHVkZSAiY29weXJpZ2h0LmgiCistI2luY2x1ZGUgImdldHRleHQuaCIKKy0jZGVmaW5lIF8o c3RyaW5nKSBnZXR0ZXh0IChzdHJpbmcpCisgCisgLyogIyQhQCQjJSBsZW5ndGggb2YgYWRkcmVz cyBmaWVsZCBvZiBtZXNzYWdlcyAqLworICNkZWZpbmUgQUREUkxFTiAxMAorQEAgLTkxLDkgKzg5 LDYgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRyYWN0b3IgYmVhbSAq LworIAorIAorLS8qIFJTQSBzdHVmZiAqLworLSNkZWZpbmUgUlNBX1ZFUlNJT04gIlJTQSB2Mi4w IENMSUVOVCIgICAvKiBzdHJpbmcgbXVzdCBiZWdpbiB3aXRoCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqIGNoYXJhY3RlcnMgIlJTQSIgKi8KKyAjZGVmaW5lIEtF WV9TSVpFIDMyCisgI2RlZmluZSBSRVNFUlZFRF9TSVpFIDE2CisgI2RlZmluZSBOQU1FX0xFTiAx NgorZGlmZiAtLWdpdCBhL2RtZXNzYWdlLmMgYi9kbWVzc2FnZS5jCitpbmRleCAzNGIzNWI0Li43 NmU3OWIxIDEwMDY0NAorLS0tIGEvZG1lc3NhZ2UuYworKysrIGIvZG1lc3NhZ2UuYworQEAgLTM1 LDcgKzM1LDcgQEAgdm9pZCBkbWVzc2FnZShjaGFyICptZXNzYWdlLCB1bnNpZ25lZCBjaGFyIGZs YWdzLCB1bnNpZ25lZCBjaGFyIGZyb20sIHVuc2lnbmVkIGMKKyAgIHJlZ2lzdGVyIGludCBsZW47 CisgICBXX0NvbG9yIGNvbG9yOworICAgY2hhciAgICB0aW1lYnVmWzEwXTsKKy0gIExPTkcgICAg Y3VydGltZTsKKysgIHRpbWVfdCAgY3VydGltZTsKKyAgIHN0cnVjdCB0bSAqdG07CisgICBpbnQg ICAgIHRha2UsIGRlc3Ryb3ksIHRlYW0sIGtpbGwsIGtpbGxwLCBraWxsYSwgYm9tYiwgY29ucTsK KyAgIHN0cnVjdCBkaXN0cmVzcyBkaXN0OworZGlmZiAtLWdpdCBhL2dldG5hbWUuYyBiL2dldG5h bWUuYworaW5kZXggMmQ2ZTQxOS4uYmU1MDcxYiAxMDA2NDQKKy0tLSBhL2dldG5hbWUuYworKysr IGIvZ2V0bmFtZS5jCitAQCAtNDE1LDcgKzQxNSw3IEBAIHZvaWQgZ2V0bmFtZShjaGFyICpkZWZu YW1lLCBjaGFyICpkZWZwYXNzd2QpCisgICAgICAgYnJlYWs7CisgICAgIH0KKyAKKy0gICAgZXZl bnRzKDApOworKyAgICBldmVudHMoKTsKKyAgICAgCisgICAgIGlmIChhdXRvbWF0aWMpIHsKKyAg ICAgICB0aW1lb3V0LnR2X3NlYyA9IDA7CitAQCAtNDk4LDcgKzQ5OCw3IEBAIHZvaWQgZ2V0bmFt ZShjaGFyICpkZWZuYW1lLCBjaGFyICpkZWZwYXNzd2QpCisgICAgIH0KKyAKKyAgICAgaWYgKEZE X0lTU0VUKFdfU29ja2V0KCksICZyZWFkZmRzKSkKKy0gICAgICB3aGlsZSAoV19FdmVudHNRdWV1 ZWRDaygpKSBldmVudHMoMCk7CisrICAgICAgd2hpbGUgKFdfRXZlbnRzUXVldWVkQ2soKSkgZXZl bnRzKCk7CisgCisgICAgIGlmICh0aW1lKDApICE9IGxhc3R0aW1lKSB7CisgICAgICAgbGFzdHRp bWUrKzsKK2RpZmYgLS1naXQgYS9nZXR0ZXh0LmggYi9nZXR0ZXh0LmgKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMjA5OTIxZS4uMDAwMDAwMAorLS0tIGEvZ2V0dGV4dC5oCisrKysg L2Rldi9udWxsCitAQCAtMSwyNzEgKzAsMCBAQAorLS8qIENvbnZlbmllbmNlIGhlYWRlciBmb3Ig Y29uZGl0aW9uYWwgdXNlIG9mIEdOVSA8bGliaW50bC5oPi4KKy0gICBDb3B5cmlnaHQgKEMpIDE5 OTUtMTk5OCwgMjAwMC0yMDAyLCAyMDA0LTIwMDYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCistCistICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKy0gICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZAorLSAgIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikK Ky0gICBhbnkgbGF0ZXIgdmVyc2lvbi4KKy0KKy0gICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy0gICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLSAgIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUgR05VCistICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCistCistICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljCistICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorLSAgIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwKKy0gICBV U0EuICAqLworLQorLSNpZm5kZWYgX0xJQkdFVFRFWFRfSAorLSNkZWZpbmUgX0xJQkdFVFRFWFRf SCAxCistCistLyogTkxTIGNhbiBiZSBkaXNhYmxlZCB0aHJvdWdoIHRoZSBjb25maWd1cmUgLS1k aXNhYmxlLW5scyBvcHRpb24uICAqLworLSNpZiBFTkFCTEVfTkxTCistCistLyogR2V0IGRlY2xh cmF0aW9ucyBvZiBHTlUgbWVzc2FnZSBjYXRhbG9nIGZ1bmN0aW9ucy4gICovCistIyBpbmNsdWRl IDxsaWJpbnRsLmg+CistCistLyogWW91IGNhbiBzZXQgdGhlIERFRkFVTFRfVEVYVF9ET01BSU4g bWFjcm8gdG8gc3BlY2lmeSB0aGUgZG9tYWluIHVzZWQgYnkKKy0gICB0aGUgZ2V0dGV4dCgpIGFu ZCBuZ2V0dGV4dCgpIG1hY3Jvcy4gIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gY2FsbGluZwor LSAgIHRleHRkb21haW4oKSwgYW5kIGlzIHVzZWZ1bCBmb3IgbGlicmFyaWVzLiAgKi8KKy0jIGlm ZGVmIERFRkFVTFRfVEVYVF9ET01BSU4KKy0jICB1bmRlZiBnZXR0ZXh0CistIyAgZGVmaW5lIGdl dHRleHQoTXNnaWQpIFwKKy0gICAgIGRnZXR0ZXh0IChERUZBVUxUX1RFWFRfRE9NQUlOLCBNc2dp ZCkKKy0jICB1bmRlZiBuZ2V0dGV4dAorLSMgIGRlZmluZSBuZ2V0dGV4dChNc2dpZDEsIE1zZ2lk MiwgTikgXAorLSAgICAgZG5nZXR0ZXh0IChERUZBVUxUX1RFWFRfRE9NQUlOLCBNc2dpZDEsIE1z Z2lkMiwgTikKKy0jIGVuZGlmCistCistI2Vsc2UKKy0KKy0vKiBTb2xhcmlzIC91c3IvaW5jbHVk ZS9sb2NhbGUuaCBpbmNsdWRlcyAvdXNyL2luY2x1ZGUvbGliaW50bC5oLCB3aGljaAorLSAgIGNo b2tlcyBpZiBkY2dldHRleHQgaXMgZGVmaW5lZCBhcyBhIG1hY3JvLiAgU28gaW5jbHVkZSBpdCBu b3csIHRvIG1ha2UKKy0gICBsYXRlciBpbmNsdXNpb25zIG9mIDxsb2NhbGUuaD4gYSBOT1AuICBX ZSBkb24ndCBpbmNsdWRlIDxsaWJpbnRsLmg+CistICAgYXMgd2VsbCBiZWNhdXNlIHBlb3BsZSB1 c2luZyAiZ2V0dGV4dC5oIiB3aWxsIG5vdCBpbmNsdWRlIDxsaWJpbnRsLmg+LAorLSAgIGFuZCBh bHNvIGluY2x1ZGluZyA8bGliaW50bC5oPiB3b3VsZCBmYWlsIG9uIFN1bk9TIDQsIHdoZXJlYXMg PGxvY2FsZS5oPgorLSAgIGlzIE9LLiAgKi8KKy0jaWYgZGVmaW5lZChfX3N1bikKKy0jIGluY2x1 ZGUgPGxvY2FsZS5oPgorLSNlbmRpZgorLQorLS8qIE1hbnkgaGVhZGVyIGZpbGVzIGZyb20gdGhl IGxpYnN0ZGMrKyBjb21pbmcgd2l0aCBnKysgMy4zIG9yIG5ld2VyIGluY2x1ZGUKKy0gICA8bGli aW50bC5oPiwgd2hpY2ggY2hva2VzIGlmIGRjZ2V0dGV4dCBpcyBkZWZpbmVkIGFzIGEgbWFjcm8u ICBTbyBpbmNsdWRlCistICAgaXQgbm93LCB0byBtYWtlIGxhdGVyIGluY2x1c2lvbnMgb2YgPGxp YmludGwuaD4gYSBOT1AuICAqLworLSNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiBkZWZpbmVk KF9fR05VR19fKSAmJiAoX19HTlVDX18gPj0gMykKKy0jIGluY2x1ZGUgPGNzdGRsaWI+CistIyBp ZiAoX19HTElCQ19fID49IDIpIHx8IF9HTElCQ1hYX0hBVkVfTElCSU5UTF9ICistIyAgaW5jbHVk ZSA8bGliaW50bC5oPgorLSMgZW5kaWYKKy0jZW5kaWYKKy0KKy0vKiBEaXNhYmxlZCBOTFMuCist ICAgVGhlIGNhc3RzIHRvICdjb25zdCBjaGFyIConIHNlcnZlIHRoZSBwdXJwb3NlIG9mIHByb2R1 Y2luZyB3YXJuaW5ncworLSAgIGZvciBpbnZhbGlkIHVzZXMgb2YgdGhlIHZhbHVlIHJldHVybmVk IGZyb20gdGhlc2UgZnVuY3Rpb25zLgorLSAgIE9uIHByZS1BTlNJIHN5c3RlbXMgd2l0aG91dCAn Y29uc3QnLCB0aGUgY29uZmlnLmggZmlsZSBpcyBzdXBwb3NlZCB0bworLSAgIGNvbnRhaW4gIiNk ZWZpbmUgY29uc3QiLiAgKi8KKy0jIGRlZmluZSBnZXR0ZXh0KE1zZ2lkKSAoKGNvbnN0IGNoYXIg KikgKE1zZ2lkKSkKKy0jIGRlZmluZSBkZ2V0dGV4dChEb21haW5uYW1lLCBNc2dpZCkgKCh2b2lk KSAoRG9tYWlubmFtZSksIGdldHRleHQgKE1zZ2lkKSkKKy0jIGRlZmluZSBkY2dldHRleHQoRG9t YWlubmFtZSwgTXNnaWQsIENhdGVnb3J5KSBcCistICAgICgodm9pZCkgKENhdGVnb3J5KSwgZGdl dHRleHQgKERvbWFpbm5hbWUsIE1zZ2lkKSkKKy0jIGRlZmluZSBuZ2V0dGV4dChNc2dpZDEsIE1z Z2lkMiwgTikgXAorLSAgICAoKE4pID09IDEgXAorLSAgICAgPyAoKHZvaWQpIChNc2dpZDIpLCAo Y29uc3QgY2hhciAqKSAoTXNnaWQxKSkgXAorLSAgICAgOiAoKHZvaWQpIChNc2dpZDEpLCAoY29u c3QgY2hhciAqKSAoTXNnaWQyKSkpCistIyBkZWZpbmUgZG5nZXR0ZXh0KERvbWFpbm5hbWUsIE1z Z2lkMSwgTXNnaWQyLCBOKSBcCistICAgICgodm9pZCkgKERvbWFpbm5hbWUpLCBuZ2V0dGV4dCAo TXNnaWQxLCBNc2dpZDIsIE4pKQorLSMgZGVmaW5lIGRjbmdldHRleHQoRG9tYWlubmFtZSwgTXNn aWQxLCBNc2dpZDIsIE4sIENhdGVnb3J5KSBcCistICAgICgodm9pZCkgKENhdGVnb3J5KSwgZG5n ZXR0ZXh0KERvbWFpbm5hbWUsIE1zZ2lkMSwgTXNnaWQyLCBOKSkKKy0jIGRlZmluZSB0ZXh0ZG9t YWluKERvbWFpbm5hbWUpICgoY29uc3QgY2hhciAqKSAoRG9tYWlubmFtZSkpCistIyBkZWZpbmUg YmluZHRleHRkb21haW4oRG9tYWlubmFtZSwgRGlybmFtZSkgXAorLSAgICAoKHZvaWQpIChEb21h aW5uYW1lKSwgKGNvbnN0IGNoYXIgKikgKERpcm5hbWUpKQorLSMgZGVmaW5lIGJpbmRfdGV4dGRv bWFpbl9jb2Rlc2V0KERvbWFpbm5hbWUsIENvZGVzZXQpIFwKKy0gICAgKCh2b2lkKSAoRG9tYWlu bmFtZSksIChjb25zdCBjaGFyICopIChDb2Rlc2V0KSkKKy0KKy0jZW5kaWYKKy0KKy0vKiBBIHBz ZXVkbyBmdW5jdGlvbiBjYWxsIHRoYXQgc2VydmVzIGFzIGEgbWFya2VyIGZvciB0aGUgYXV0b21h dGVkCistICAgZXh0cmFjdGlvbiBvZiBtZXNzYWdlcywgYnV0IGRvZXMgbm90IGNhbGwgZ2V0dGV4 dCgpLiAgVGhlIHJ1bi10aW1lCistICAgdHJhbnNsYXRpb24gaXMgZG9uZSBhdCBhIGRpZmZlcmVu dCBwbGFjZSBpbiB0aGUgY29kZS4KKy0gICBUaGUgYXJndW1lbnQsIFN0cmluZywgc2hvdWxkIGJl IGEgbGl0ZXJhbCBzdHJpbmcuICBDb25jYXRlbmF0ZWQgc3RyaW5ncworLSAgIGFuZCBvdGhlciBz dHJpbmcgZXhwcmVzc2lvbnMgd29uJ3Qgd29yay4KKy0gICBUaGUgbWFjcm8ncyBleHBhbnNpb24g aXMgbm90IHBhcmVudGhlc2l6ZWQsIHNvIHRoYXQgaXQgaXMgc3VpdGFibGUgYXMKKy0gICBpbml0 aWFsaXplciBmb3Igc3RhdGljICdjaGFyW10nIG9yICdjb25zdCBjaGFyW10nIHZhcmlhYmxlcy4g ICovCistI2RlZmluZSBnZXR0ZXh0X25vb3AoU3RyaW5nKSBTdHJpbmcKKy0KKy0vKiBUaGUgc2Vw YXJhdG9yIGJldHdlZW4gbXNnY3R4dCBhbmQgbXNnaWQgaW4gYSAubW8gZmlsZS4gICovCistI2Rl ZmluZSBHRVRURVhUX0NPTlRFWFRfR0xVRSAiXDAwNCIKKy0KKy0vKiBQc2V1ZG8gZnVuY3Rpb24g Y2FsbHMsIHRha2luZyBhIE1TR0NUWFQgYW5kIGEgTVNHSUQgaW5zdGVhZCBvZiBqdXN0IGEKKy0g ICBNU0dJRC4gIE1TR0NUWFQgYW5kIE1TR0lEIG11c3QgYmUgc3RyaW5nIGxpdGVyYWxzLiAgTVNH Q1RYVCBzaG91bGQgYmUKKy0gICBzaG9ydCBhbmQgcmFyZWx5IG5lZWQgdG8gY2hhbmdlLgorLSAg IFRoZSBsZXR0ZXIgJ3AnIHN0YW5kcyBmb3IgJ3BhcnRpY3VsYXInIG9yICdzcGVjaWFsJy4gICov CistI2lmZGVmIERFRkFVTFRfVEVYVF9ET01BSU4KKy0jIGRlZmluZSBwZ2V0dGV4dChNc2djdHh0 LCBNc2dpZCkgXAorLSAgIHBnZXR0ZXh0X2F1eCAoREVGQVVMVF9URVhUX0RPTUFJTiwgTXNnY3R4 dCBHRVRURVhUX0NPTlRFWFRfR0xVRSBNc2dpZCwgTXNnaWQsIExDX01FU1NBR0VTKQorLSNlbHNl CistIyBkZWZpbmUgcGdldHRleHQoTXNnY3R4dCwgTXNnaWQpIFwKKy0gICBwZ2V0dGV4dF9hdXgg KE5VTEwsIE1zZ2N0eHQgR0VUVEVYVF9DT05URVhUX0dMVUUgTXNnaWQsIE1zZ2lkLCBMQ19NRVNT QUdFUykKKy0jZW5kaWYKKy0jZGVmaW5lIGRwZ2V0dGV4dChEb21haW5uYW1lLCBNc2djdHh0LCBN c2dpZCkgXAorLSAgcGdldHRleHRfYXV4IChEb21haW5uYW1lLCBNc2djdHh0IEdFVFRFWFRfQ09O VEVYVF9HTFVFIE1zZ2lkLCBNc2dpZCwgTENfTUVTU0FHRVMpCistI2RlZmluZSBkY3BnZXR0ZXh0 KERvbWFpbm5hbWUsIE1zZ2N0eHQsIE1zZ2lkLCBDYXRlZ29yeSkgXAorLSAgcGdldHRleHRfYXV4 IChEb21haW5uYW1lLCBNc2djdHh0IEdFVFRFWFRfQ09OVEVYVF9HTFVFIE1zZ2lkLCBNc2dpZCwg Q2F0ZWdvcnkpCistI2lmZGVmIERFRkFVTFRfVEVYVF9ET01BSU4KKy0jIGRlZmluZSBucGdldHRl eHQoTXNnY3R4dCwgTXNnaWQsIE1zZ2lkUGx1cmFsLCBOKSBcCistICAgbnBnZXR0ZXh0X2F1eCAo REVGQVVMVF9URVhUX0RPTUFJTiwgTXNnY3R4dCBHRVRURVhUX0NPTlRFWFRfR0xVRSBNc2dpZCwg TXNnaWQsIE1zZ2lkUGx1cmFsLCBOLCBMQ19NRVNTQUdFUykKKy0jZWxzZQorLSMgZGVmaW5lIG5w Z2V0dGV4dChNc2djdHh0LCBNc2dpZCwgTXNnaWRQbHVyYWwsIE4pIFwKKy0gICBucGdldHRleHRf YXV4IChOVUxMLCBNc2djdHh0IEdFVFRFWFRfQ09OVEVYVF9HTFVFIE1zZ2lkLCBNc2dpZCwgTXNn aWRQbHVyYWwsIE4sIExDX01FU1NBR0VTKQorLSNlbmRpZgorLSNkZWZpbmUgZG5wZ2V0dGV4dChE b21haW5uYW1lLCBNc2djdHh0LCBNc2dpZCwgTXNnaWRQbHVyYWwsIE4pIFwKKy0gIG5wZ2V0dGV4 dF9hdXggKERvbWFpbm5hbWUsIE1zZ2N0eHQgR0VUVEVYVF9DT05URVhUX0dMVUUgTXNnaWQsIE1z Z2lkLCBNc2dpZFBsdXJhbCwgTiwgTENfTUVTU0FHRVMpCistI2RlZmluZSBkY25wZ2V0dGV4dChE b21haW5uYW1lLCBNc2djdHh0LCBNc2dpZCwgTXNnaWRQbHVyYWwsIE4sIENhdGVnb3J5KSBcCist ICBucGdldHRleHRfYXV4IChEb21haW5uYW1lLCBNc2djdHh0IEdFVFRFWFRfQ09OVEVYVF9HTFVF IE1zZ2lkLCBNc2dpZCwgTXNnaWRQbHVyYWwsIE4sIENhdGVnb3J5KQorLQorLSNpZmRlZiBfX0dO VUNfXworLV9faW5saW5lCistI2Vsc2UKKy0jaWZkZWYgX19jcGx1c3BsdXMKKy1pbmxpbmUKKy0j ZW5kaWYKKy0jZW5kaWYKKy1zdGF0aWMgY29uc3QgY2hhciAqCistcGdldHRleHRfYXV4IChjb25z dCBjaGFyICpkb21haW4sCistCSAgICAgIGNvbnN0IGNoYXIgKm1zZ19jdHh0X2lkLCBjb25zdCBj aGFyICptc2dpZCwKKy0JICAgICAgaW50IGNhdGVnb3J5KQorLXsKKy0gIGNvbnN0IGNoYXIgKnRy YW5zbGF0aW9uID0gZGNnZXR0ZXh0IChkb21haW4sIG1zZ19jdHh0X2lkLCBjYXRlZ29yeSk7Cist ICBpZiAodHJhbnNsYXRpb24gPT0gbXNnX2N0eHRfaWQpCistICAgIHJldHVybiBtc2dpZDsKKy0g IGVsc2UKKy0gICAgcmV0dXJuIHRyYW5zbGF0aW9uOworLX0KKy0KKy0jaWZkZWYgX19HTlVDX18K Ky1fX2lubGluZQorLSNlbHNlCistI2lmZGVmIF9fY3BsdXNwbHVzCistaW5saW5lCistI2VuZGlm CistI2VuZGlmCistc3RhdGljIGNvbnN0IGNoYXIgKgorLW5wZ2V0dGV4dF9hdXggKGNvbnN0IGNo YXIgKmRvbWFpbiwKKy0JICAgICAgIGNvbnN0IGNoYXIgKm1zZ19jdHh0X2lkLCBjb25zdCBjaGFy ICptc2dpZCwKKy0JICAgICAgIGNvbnN0IGNoYXIgKm1zZ2lkX3BsdXJhbCwgdW5zaWduZWQgbG9u ZyBpbnQgbiwKKy0JICAgICAgIGludCBjYXRlZ29yeSkKKy17CistICBjb25zdCBjaGFyICp0cmFu c2xhdGlvbiA9CistICAgIGRjbmdldHRleHQgKGRvbWFpbiwgbXNnX2N0eHRfaWQsIG1zZ2lkX3Bs dXJhbCwgbiwgY2F0ZWdvcnkpOworLSAgaWYgKHRyYW5zbGF0aW9uID09IG1zZ19jdHh0X2lkIHx8 IHRyYW5zbGF0aW9uID09IG1zZ2lkX3BsdXJhbCkKKy0gICAgcmV0dXJuIChuID09IDEgPyBtc2dp ZCA6IG1zZ2lkX3BsdXJhbCk7CistICBlbHNlCistICAgIHJldHVybiB0cmFuc2xhdGlvbjsKKy19 CistCistLyogVGhlIHNhbWUgdGhpbmcgZXh0ZW5kZWQgZm9yIG5vbi1jb25zdGFudCBhcmd1bWVu dHMuICBIZXJlIE1TR0NUWFQgYW5kIE1TR0lECistICAgY2FuIGJlIGFyYml0cmFyeSBleHByZXNz aW9ucy4gIEJ1dCBmb3Igc3RyaW5nIGxpdGVyYWxzIHRoZXNlIG1hY3JvcyBhcmUKKy0gICBsZXNz IGVmZmljaWVudCB0aGFuIHRob3NlIGFib3ZlLiAgKi8KKy0KKy0jaW5jbHVkZSA8c3RyaW5nLmg+ CistCistI2RlZmluZSBfTElCR0VUVEVYVF9IQVZFX1ZBUklBQkxFX1NJWkVfQVJSQVlTIFwKKy0g ICgoKF9fR05VQ19fID49IDMgfHwgX19HTlVHX18gPj0gMikgJiYgIV9fU1RSSUNUX0FOU0lfXykg XAorLSAgIC8qIHx8IF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxTCAqLyApCistCistI2lmICFf TElCR0VUVEVYVF9IQVZFX1ZBUklBQkxFX1NJWkVfQVJSQVlTCistI2luY2x1ZGUgPHN0ZGxpYi5o PgorLSNlbmRpZgorLQorLSNkZWZpbmUgcGdldHRleHRfZXhwcihNc2djdHh0LCBNc2dpZCkgXAor LSAgZGNwZ2V0dGV4dF9leHByIChOVUxMLCBNc2djdHh0LCBNc2dpZCwgTENfTUVTU0FHRVMpCist I2RlZmluZSBkcGdldHRleHRfZXhwcihEb21haW5uYW1lLCBNc2djdHh0LCBNc2dpZCkgXAorLSAg ZGNwZ2V0dGV4dF9leHByIChEb21haW5uYW1lLCBNc2djdHh0LCBNc2dpZCwgTENfTUVTU0FHRVMp CistCistI2lmZGVmIF9fR05VQ19fCistX19pbmxpbmUKKy0jZWxzZQorLSNpZmRlZiBfX2NwbHVz cGx1cworLWlubGluZQorLSNlbmRpZgorLSNlbmRpZgorLXN0YXRpYyBjb25zdCBjaGFyICoKKy1k Y3BnZXR0ZXh0X2V4cHIgKGNvbnN0IGNoYXIgKmRvbWFpbiwKKy0JCSBjb25zdCBjaGFyICptc2dj dHh0LCBjb25zdCBjaGFyICptc2dpZCwKKy0JCSBpbnQgY2F0ZWdvcnkpCisteworLSAgc2l6ZV90 IG1zZ2N0eHRfbGVuID0gc3RybGVuIChtc2djdHh0KSArIDE7CistICBzaXplX3QgbXNnaWRfbGVu ID0gc3RybGVuIChtc2dpZCkgKyAxOworLSAgY29uc3QgY2hhciAqdHJhbnNsYXRpb247CistI2lm IF9MSUJHRVRURVhUX0hBVkVfVkFSSUFCTEVfU0laRV9BUlJBWVMKKy0gIGNoYXIgbXNnX2N0eHRf aWRbbXNnY3R4dF9sZW4gKyBtc2dpZF9sZW5dOworLSNlbHNlCistICBjaGFyIGJ1ZlsxMDI0XTsK Ky0gIGNoYXIgKm1zZ19jdHh0X2lkID0KKy0gICAgKG1zZ2N0eHRfbGVuICsgbXNnaWRfbGVuIDw9 IHNpemVvZiAoYnVmKQorLSAgICAgPyBidWYKKy0gICAgIDogKGNoYXIgKikgbWFsbG9jIChtc2dj dHh0X2xlbiArIG1zZ2lkX2xlbikpOworLSAgaWYgKG1zZ19jdHh0X2lkICE9IE5VTEwpCistI2Vu ZGlmCistICAgIHsKKy0gICAgICBtZW1jcHkgKG1zZ19jdHh0X2lkLCBtc2djdHh0LCBtc2djdHh0 X2xlbiAtIDEpOworLSAgICAgIG1zZ19jdHh0X2lkW21zZ2N0eHRfbGVuIC0gMV0gPSAnXDAwNCc7 CistICAgICAgbWVtY3B5IChtc2dfY3R4dF9pZCArIG1zZ2N0eHRfbGVuLCBtc2dpZCwgbXNnaWRf bGVuKTsKKy0gICAgICB0cmFuc2xhdGlvbiA9IGRjZ2V0dGV4dCAoZG9tYWluLCBtc2dfY3R4dF9p ZCwgY2F0ZWdvcnkpOworLSNpZiAhX0xJQkdFVFRFWFRfSEFWRV9WQVJJQUJMRV9TSVpFX0FSUkFZ UworLSAgICAgIGlmIChtc2dfY3R4dF9pZCAhPSBidWYpCistCWZyZWUgKG1zZ19jdHh0X2lkKTsK Ky0jZW5kaWYKKy0gICAgICBpZiAodHJhbnNsYXRpb24gIT0gbXNnX2N0eHRfaWQpCistCXJldHVy biB0cmFuc2xhdGlvbjsKKy0gICAgfQorLSAgcmV0dXJuIG1zZ2lkOworLX0KKy0KKy0jZGVmaW5l IG5wZ2V0dGV4dF9leHByKE1zZ2N0eHQsIE1zZ2lkLCBNc2dpZFBsdXJhbCwgTikgXAorLSAgZGNu cGdldHRleHRfZXhwciAoTlVMTCwgTXNnY3R4dCwgTXNnaWQsIE1zZ2lkUGx1cmFsLCBOLCBMQ19N RVNTQUdFUykKKy0jZGVmaW5lIGRucGdldHRleHRfZXhwcihEb21haW5uYW1lLCBNc2djdHh0LCBN c2dpZCwgTXNnaWRQbHVyYWwsIE4pIFwKKy0gIGRjbnBnZXR0ZXh0X2V4cHIgKERvbWFpbm5hbWUs IE1zZ2N0eHQsIE1zZ2lkLCBNc2dpZFBsdXJhbCwgTiwgTENfTUVTU0FHRVMpCistCistI2lmZGVm IF9fR05VQ19fCistX19pbmxpbmUKKy0jZWxzZQorLSNpZmRlZiBfX2NwbHVzcGx1cworLWlubGlu ZQorLSNlbmRpZgorLSNlbmRpZgorLXN0YXRpYyBjb25zdCBjaGFyICoKKy1kY25wZ2V0dGV4dF9l eHByIChjb25zdCBjaGFyICpkb21haW4sCistCQkgIGNvbnN0IGNoYXIgKm1zZ2N0eHQsIGNvbnN0 IGNoYXIgKm1zZ2lkLAorLQkJICBjb25zdCBjaGFyICptc2dpZF9wbHVyYWwsIHVuc2lnbmVkIGxv bmcgaW50IG4sCistCQkgIGludCBjYXRlZ29yeSkKKy17CistICBzaXplX3QgbXNnY3R4dF9sZW4g PSBzdHJsZW4gKG1zZ2N0eHQpICsgMTsKKy0gIHNpemVfdCBtc2dpZF9sZW4gPSBzdHJsZW4gKG1z Z2lkKSArIDE7CistICBjb25zdCBjaGFyICp0cmFuc2xhdGlvbjsKKy0jaWYgX0xJQkdFVFRFWFRf SEFWRV9WQVJJQUJMRV9TSVpFX0FSUkFZUworLSAgY2hhciBtc2dfY3R4dF9pZFttc2djdHh0X2xl biArIG1zZ2lkX2xlbl07CistI2Vsc2UKKy0gIGNoYXIgYnVmWzEwMjRdOworLSAgY2hhciAqbXNn X2N0eHRfaWQgPQorLSAgICAobXNnY3R4dF9sZW4gKyBtc2dpZF9sZW4gPD0gc2l6ZW9mIChidWYp CistICAgICA/IGJ1ZgorLSAgICAgOiAoY2hhciAqKSBtYWxsb2MgKG1zZ2N0eHRfbGVuICsgbXNn aWRfbGVuKSk7CistICBpZiAobXNnX2N0eHRfaWQgIT0gTlVMTCkKKy0jZW5kaWYKKy0gICAgewor LSAgICAgIG1lbWNweSAobXNnX2N0eHRfaWQsIG1zZ2N0eHQsIG1zZ2N0eHRfbGVuIC0gMSk7Cist ICAgICAgbXNnX2N0eHRfaWRbbXNnY3R4dF9sZW4gLSAxXSA9ICdcMDA0JzsKKy0gICAgICBtZW1j cHkgKG1zZ19jdHh0X2lkICsgbXNnY3R4dF9sZW4sIG1zZ2lkLCBtc2dpZF9sZW4pOworLSAgICAg IHRyYW5zbGF0aW9uID0gZGNuZ2V0dGV4dCAoZG9tYWluLCBtc2dfY3R4dF9pZCwgbXNnaWRfcGx1 cmFsLCBuLCBjYXRlZ29yeSk7CistI2lmICFfTElCR0VUVEVYVF9IQVZFX1ZBUklBQkxFX1NJWkVf QVJSQVlTCistICAgICAgaWYgKG1zZ19jdHh0X2lkICE9IGJ1ZikKKy0JZnJlZSAobXNnX2N0eHRf aWQpOworLSNlbmRpZgorLSAgICAgIGlmICghKHRyYW5zbGF0aW9uID09IG1zZ19jdHh0X2lkIHx8 IHRyYW5zbGF0aW9uID09IG1zZ2lkX3BsdXJhbCkpCistCXJldHVybiB0cmFuc2xhdGlvbjsKKy0g ICAgfQorLSAgcmV0dXJuIChuID09IDEgPyBtc2dpZCA6IG1zZ2lkX3BsdXJhbCk7CistfQorLQor LSNlbmRpZiAvKiBfTElCR0VUVEVYVF9IICovCitkaWZmIC0tZ2l0IGEvaW5mb3JtLmMgYi9pbmZv cm0uYworaW5kZXggMWM0MTlhYy4uMzdiNjZjYyAxMDA2NDQKKy0tLSBhL2luZm9ybS5jCisrKysg Yi9pbmZvcm0uYworQEAgLTM5LDcgKzM5LDYgQEAgdm9pZCBpbmZvcm0oV19XaW5kb3cgd3csIGlu dCB4LCBpbnQgeSwgY2hhciBrZXkpCisgICByZWdpc3RlciBzdHJ1Y3QgcGxheWVyICpqOworICAg cmVnaXN0ZXIgc3RydWN0IHBsYW5ldCAqazsKKyAgIGludCAgICAgbXgsIG15OworLSAgZG91Ymxl ICBkaXN0OworICAgc3RydWN0IG9idHlwZSAqZ2V0dGFyZ2V0KFdfV2luZG93IHd3LCBpbnQgeCwg aW50IHksIGludCB0YXJndHlwZSksICp0YXJnZXQ7CisgICBpbnQgICAgIHdpbmRvd1dpZHRoLCB3 aW5kb3dIZWlnaHQ7CisgICBmbG9hdCAgIEtpbGxzUGVySG91ciwgTG9zc2VzUGVySG91cjsJCSAv KiBTQiBpbmZvIHdpbmRvdyBjaGFuZ2VkIHRvCitAQCAtMjE1LDggKzIxNCw2IEBAIHZvaWQgaW5m b3JtKFdfV2luZG93IHd3LCBpbnQgeCwgaW50IHksIGNoYXIga2V5KQorIAkJCSAgIDIsIGZvcmVD b2xvcik7CisgICAgICAgV19NYXBXaW5kb3coaW5mb3cpOworICAgICAgIGsgPSAmcGxhbmV0c1t0 YXJnZXQtPm9fbnVtXTsKKy0gICAgICBkaXN0ID0gaHlwb3QoKGRvdWJsZSkgKG1lLT5wX3ggLSBr LT5wbF94KSwKKy0JCSAgIChkb3VibGUpIChtZS0+cF95IC0gay0+cGxfeSkpOworICAgICAgIGlm ICgoay0+cGxfaW5mbyAmIG1lLT5wX3RlYW0pCisgCisgI2lmZGVmIFJFQ09SREdBTUUKK2RpZmYg LS1naXQgYS9pbnRlcmZhY2UuYyBiL2ludGVyZmFjZS5jCitpbmRleCA1MjkwM2E4Li41MzdkOWU0 IDEwMDY0NAorLS0tIGEvaW50ZXJmYWNlLmMKKysrKyBiL2ludGVyZmFjZS5jCitAQCAtMTAyLDgg KzEwMiw5IEBAIHZvaWQgcmVwYWlyX29mZih2b2lkKQorIAorIHZvaWQgcmVwZWF0X21lc3NhZ2Uo dm9pZCkKKyB7CistICBpZiAoKytsYXN0bSA9PSBNQVhNRVNTQUdFKTsKKy0gIGxhc3RtID0gMDsK KysgIGlmICgrK2xhc3RtID09IE1BWE1FU1NBR0UpIHsKKysgICAgbGFzdG0gPSAwOworKyAgfQor IH0KKyAKKyB2b2lkIGNsb2FrKHZvaWQpCitkaWZmIC0tZ2l0IGEva2V5Lm1rLmluIGIva2V5Lm1r LmluCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IGI1YjgwYjMuLjAwMDAwMDAKKy0t LSBhL2tleS5tay5pbgorKysrIC9kZXYvbnVsbAorQEAgLTEgKzAsMCBAQAorLUtFWURFRiA9IEBL RVlERUZACitkaWZmIC0tZ2l0IGEvbG9jYWwuYyBiL2xvY2FsLmMKK2luZGV4IDM0ODc1NzEuLjJj MzBlNmQgMTAwNjQ0CistLS0gYS9sb2NhbC5jCisrKysgYi9sb2NhbC5jCitAQCAtMTI5Miw3ICsx MjkyLDcgQEAgc3RhdGljIHZvaWQgRHJhd01pc2Modm9pZCkgeworIH0KKyAKKyAKKy1pbmxpbmUg dm9pZCBsb2NhbCh2b2lkKQorK2V4dGVybiB2b2lkIGxvY2FsKHZvaWQpCisgLyoKKyAgKiBEcmF3 IG91dCB0aGUgJ3RhY3RpY2FsJyBtYXAKKyAgKi8KK0BAIC0xMzEwLDcgKzEzMTAsNyBAQCBpbmxp bmUgdm9pZCBsb2NhbCh2b2lkKQorIH0KKyAKKyAKKy1pbmxpbmUgdm9pZCBjbGVhckxvY2FsKHZv aWQpCisrZXh0ZXJuIHZvaWQgY2xlYXJMb2NhbCh2b2lkKQorIC8qCisgICogQ2xlYXIgdGhlIGxv Y2FsIG1hcCAoaW50ZWxsaWdlbnRseSByYXRoZXIgdGhhbiBqdXN0IHNpbXBseSB3aXBpbmcKKyAg KiB0aGUgbWFwKS4KK2RpZmYgLS1naXQgYS9sb2NhbC5oIGIvbG9jYWwuaAoraW5kZXggMThmMGJj Yy4uNzczOTFjZSAxMDA2NDQKKy0tLSBhL2xvY2FsLmgKKysrKyBiL2xvY2FsLmgKK0BAIC0xNCwy MSArMTQsMTcgQEAKKyAjZGVmaW5lIFBIQVNFUl9VUERBVEVfRlVTRSAxMQkgLyogSWdub3JlIHBo YXNlciBpZiBubyB1cGRhdGUgaW4gdGhpcyB0aW1lICovCisgI2RlZmluZSBQTEFTTUFfVVBEQVRF X0ZVU0UgNgkgLyogSWdub3JlIHBsYXNtYSBpZiBubyB1cGRhdGUgaW4gdGhpcyB0aW1lICovCisg CistCisgLyogR2xvYmFsIEZ1bmN0aW9ucyAqLworLSAKKy1pbmxpbmUgdm9pZCBjbGVhckxvY2Fs KHZvaWQpOworKworK2V4dGVybiB2b2lkIGNsZWFyTG9jYWwodm9pZCk7CisgLyoKKyAgICBDbGVh ciB0aGUgbG9jYWwgbWFwIChpbnRlbGxpZ2VudGx5IHJhdGhlciB0aGFuIGp1c3Qgc2ltcGx5IHdp cGluZworICAgIHRoZSBtYXApLgorICovCisgCistaW5saW5lIHZvaWQgbG9jYWwodm9pZCk7Cisr ZXh0ZXJuIHZvaWQgbG9jYWwodm9pZCk7CisgLyoKKyAgICBEcmF3IG91dCB0aGUgJ3RhY3RpY2Fs JyBtYXAuCisgKi8KKyAKKy0KKy0KKyAjZW5kaWYgIC8qIE5vdCBkZWZpbmVkIGhfbG9jYWwgKi8K Ky0KK2RpZmYgLS1naXQgYS9tYWluLmMgYi9tYWluLmMKK2luZGV4IGM4ZjQ4OGEuLjRmZTM1ZjUg MTAwNjQ0CistLS0gYS9tYWluLmMKKysrKyBiL21haW4uYworQEAgLTgsNyArOCw2IEBACisgI2lu Y2x1ZGUgPHRpbWUuaD4KKyAjaW5jbHVkZSBJTkNfU1lTX1RJTUUKKyAjaW5jbHVkZSA8bG9jYWxl Lmg+CistI2luY2x1ZGUgImdldHRleHQuaCIKKyAKKyAjaWZkZWYgVE9PTFMKKyAjaW5jbHVkZSA8 c3RkbGliLmg+CitAQCAtNzUsOCArNzQsNiBAQCBpbnQgbWFpbjIoaW50IGFyZ2MsIGNoYXIgKiph cmd2KQorICAgcHJvZ3JhbSA9IGFyZ3ZbMF07CisgCisgICBzZXRsb2NhbGUoTENfQUxMLCAiIik7 CistICBiaW5kdGV4dGRvbWFpbigibmV0cmVrLWNsaWVudC1jb3ciLCAicG8vIik7CistICB0ZXh0 ZG9tYWluKCJuZXRyZWstY2xpZW50LWNvdyIpOworIAorICNpZmRlZiBXSU5ET1dNQUtFUgorICAg d21fYXJndj1hcmd2OworQEAgLTIyMCw3ICsyMTcsNyBAQCBpbnQgbWFpbjIoaW50IGFyZ2MsIGNo YXIgKiphcmd2KQorIAkgICAgY2FzZSAnbSc6IC8qIHVzZSBtdWx0aXBsZSBtZXRhc2VydmVycyBi eSBVRFAgKi8KKyAJICAgICAgaWYgKHVzZW1ldGEgJiYgdXNlbWV0YSAhPSAxKQorIAkJeworLQkJ ICBmcHV0cyhfKCJUaGUgb3B0aW9ucyAtayBhbmQgLW0gYW5kIC1NIGFyZSBtdXR1YWxseSBleGNs dXNpdmVcbiIpLAorKwkJICBmcHV0cygiVGhlIG9wdGlvbnMgLWsgYW5kIC1tIGFuZCAtTSBhcmUg bXV0dWFsbHkgZXhjbHVzaXZlXG4iLAorIAkJCXN0ZGVycik7CisgCQkgIGVycisrOworIAkJfQor QEAgLTIzMCw3ICsyMjcsNyBAQCBpbnQgbWFpbjIoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorIAkg ICAgY2FzZSAnayc6IC8qIHVzZSBtZXRhc2VydmVyIGNhY2hlIGZyb20gcHJpb3IgLU0gdXNhZ2Ug Ki8KKyAJICAgICAgaWYgKHVzZW1ldGEgJiYgdXNlbWV0YSAhPSAyKQorIAkJeworLQkJICBmcHV0 cyhfKCJUaGUgb3B0aW9ucyAtayBhbmQgLW0gYW5kIC1NIGFyZSBtdXR1YWxseSBleGNsdXNpdmVc biIpLAorKwkJICBmcHV0cygiVGhlIG9wdGlvbnMgLWsgYW5kIC1tIGFuZCAtTSBhcmUgbXV0dWFs bHkgZXhjbHVzaXZlXG4iLAorIAkJCXN0ZGVycik7CisgCQkgIGVycisrOworIAkJfQorQEAgLTI0 MCw3ICsyMzcsNyBAQCBpbnQgbWFpbjIoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorICAgICAgICAg ICAgY2FzZSAnTSc6IC8qIHVzZSBzaW5nbGUgbWV0YXNlcnZlciBieSBUQ1AgKi8KKyAgICAgICAg ICAgICAgaWYgKHVzZW1ldGEgJiYgdXNlbWV0YSAhPSAzKQorICAgICAgICAgICAgICAgIHsKKy0g ICAgICAgICAgICAgICAgIGZwdXRzKF8oIlRoZSBvcHRpb25zIC1rLCAtbSBhbmQgLU0gYXJlIG11 dHVhbGx5IGV4Y2x1c2l2ZVxuIiksCisrICAgICAgICAgICAgICAgICBmcHV0cygiVGhlIG9wdGlv bnMgLWssIC1tIGFuZCAtTSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlXG4iLAorICAgICAgICAgICAg ICAgICAgICAgICAgc3RkZXJyKTsKKyAgICAgICAgICAgICAgICAgIGVycisrOworICAgICAgICAg ICAgICAgIH0KK0BAIC0yNTQsMjAgKzI1MSwyMCBAQCBpbnQgbWFpbjIoaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQorIAkJCQkJCSAgKiAqICogbmVnYXRpdmUgaGVyZSAqIHRvCisgCQkJCQkJICAqIGZs YWcgKiAqIHRoYXQgaXQgc2hvdWxkCisgCQkJCQkJICAqIG92ZXJyaWRlICogKiB4dHJla3JjICov CistCSAgICAgIHByaW50ZihfKCJVc2luZyBzdGFuZGFyZCBiaW5hcnkgdmVyaWZpY2F0aW9uXG4i KSk7CisrCSAgICAgIHByaW50ZigiVXNpbmcgc3RhbmRhcmQgYmluYXJ5IHZlcmlmaWNhdGlvblxu Iik7CisgCSAgICAgIGJyZWFrOworIAkgICAgY2FzZSAnUic6CisgCSAgICAgIFJTQV9DbGllbnQg PSAtMjsJCQkgLyogd2lsbCBiZSByZXNldCBsZXRlciwgc2V0CisgCQkJCQkJICAqICogKiBuZWdh dGl2ZSBoZXJlICogdG8KKyAJCQkJCQkgICogZmxhZyAqICogdGhhdCBpdCBzaG91bGQKKyAJCQkJ CQkgICogb3ZlcnJpZGUgKiAqIHh0cmVrcmMgKi8KKy0JICAgICAgcHJpbnRmKF8oIlVzaW5nIFJT QSB2ZXJpZmljYXRpb25cbiIpKTsKKysJICAgICAgcHJpbnRmKCJVc2luZyBSU0EgdmVyaWZpY2F0 aW9uXG4iKTsKKyAJICAgICAgYnJlYWs7CisgI2Vsc2UKKyAJICAgIGNhc2UgJ1InOgorLQkgICAg ICBwcmludGYoXygiVGhpcyBjbGllbnQgZG9lcyBub3Qgc3VwcG9ydCBSU0EgdmVyaWZpY2F0aW9u XG4iKSk7CisrCSAgICAgIHByaW50ZigiVGhpcyBjbGllbnQgZG9lcyBub3Qgc3VwcG9ydCBSU0Eg dmVyaWZpY2F0aW9uXG4iKTsKKyAJICAgIGNhc2UgJ28nOgorLQkgICAgICBwcmludGYoXygiVXNp bmcgc3RhbmRhcmQgYmluYXJ5IHZlcmlmaWNhdGlvblxuIikpOworKwkgICAgICBwcmludGYoIlVz aW5nIHN0YW5kYXJkIGJpbmFyeSB2ZXJpZmljYXRpb25cbiIpOworIAkgICAgICBicmVhazsKKyAj ZW5kaWYKKyAKK0BAIC0yOTcsNyArMjk0LDcgQEAgaW50IG1haW4yKGludCBhcmdjLCBjaGFyICoq YXJndikKKyAJICAgIGNhc2UgJ1UnOgorIAkgICAgICBpZiAoKGJhc2VMb2NhbFBvcnQgPSBhdG9p KCphcmd2KSkgPT0gMCkKKyAJCXsKKy0JCSAgZnByaW50ZihzdGRlcnIsIF8oIkVycm9yOiAtVSBy ZXF1aXJlcyBhIHBvcnQgbnVtYmVyXG4iKSk7CisrCQkgIGZwcmludGYoc3RkZXJyLCAiRXJyb3I6 IC1VIHJlcXVpcmVzIGEgcG9ydCBudW1iZXJcbiIpOworIAkJICBleGl0KDEpOworIAkJfQorIAkg ICAgICBhcmdjLS07CitAQCAtMzE1LDcgKzMxMiw3IEBAIGludCBtYWluMihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCisgCQl7CisgCQkgIGdob3N0c3RhcnQrKzsKKyAJCSAgZ2hvc3RfcG5vID0gYXRv aSgqYXJndik7CistCQkgIHByaW50ZihfKCJFbWVyZ2VuY3kgcmVzdGFydCBiZWluZyBhdHRlbXB0 ZWQuLi5cbiIpKTsKKysJCSAgcHJpbnRmKCJFbWVyZ2VuY3kgcmVzdGFydCBiZWluZyBhdHRlbXB0 ZWQuLi5cbiIpOworIAkJICBhcmd2Kys7CisgCQkgIGFyZ2MtLTsKKyAJCX0KK0BAIC0zMzcsOCAr MzM0LDggQEAgaW50IG1haW4yKGludCBhcmdjLCBjaGFyICoqYXJndikKKyAJICAgICAgYnJlYWs7 CisgCSAgICBjYXNlICd2JzoKKyAJICAgICAgcHJpbnRmKCIlc1xuIiwgY293aWQpOworLQkgICAg ICBwcmludGYoXygiQ29tcGlsZSBvcHRpb25zIHVzZWQ6ICVzXG4iKSwgY2ZsYWdzKTsKKy0JICAg ICAgcHJpbnRmKF8oIkNvbXBpbGVkIG9uICVzIGJ5ICVzXG4iKSwgY2RhdGUsIGN3aG8pOworKwkg ICAgICBwcmludGYoIkNvbXBpbGUgb3B0aW9ucyB1c2VkOiAlc1xuIiwgY2ZsYWdzKTsKKysJICAg ICAgcHJpbnRmKCJDb21waWxlZCBvbiAlcyBieSAlc1xuIiwgY2RhdGUsIGN3aG8pOworIAkgICAg ICBwcmludGYoIiVzXG4iLCBjYnVncyk7CisgCisgI2lmZGVmIFJTQQorQEAgLTM1OCw3ICszNTUs NyBAQCBpbnQgbWFpbjIoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorIAorICNpZmRlZiBJR05PUkVf U0lHTkFMU19TRUdWX0JVUworIAkgICAgY2FzZSAnaSc6CistCSAgICAgIHByaW50ZihfKCJJZ25v cmluZyBzaWduYWxzIFNJR1NFR1YgYW5kIFNJR0JVU1xuIikpOworKwkgICAgICBwcmludGYoIkln bm9yaW5nIHNpZ25hbHMgU0lHU0VHViBhbmQgU0lHQlVTXG4iKTsKKyAJICAgICAgaWdub3JlX3Np Z25hbHMgPSAtMTsKKyAJICAgICAgYnJlYWs7CisgI2VuZGlmCitAQCAtMzkxLDcgKzM4OCw3IEBA IGludCBtYWluMihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisgCSAgICAgIGJyZWFrOworIAorIAkg ICAgZGVmYXVsdDoKKy0JICAgICAgZnByaW50ZihzdGRlcnIsIF8oIiVzOiB1bmtub3duIG9wdGlv biAnJWMnXG4iKSwgbmFtZSwgKnB0cik7CisrCSAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IHVu a25vd24gb3B0aW9uICclYydcbiIsIG5hbWUsICpwdHIpOworIAkgICAgICBlcnIrKzsKKyAJICAg ICAgYnJlYWs7CisgCSAgICB9CitkaWZmIC0tZ2l0IGEvbWFuaWZlc3QgYi9tYW5pZmVzdAoraW5k ZXggNDIwMjNmMS4uZmY1YjQ3NiAxMDA2NDQKKy0tLSBhL21hbmlmZXN0CisrKysgYi9tYW5pZmVz dAorQEAgLTE2MCw3ICsxNjAsNyBAQCBUT0RPCisgbmV0cmVrcmMuZXhhbXBsZQorIGF1dG9nZW4u c2gKKyBjb25maWcuaC5pbgorLWNvbmZpZ3VyZS5pbgorK2NvbmZpZ3VyZS5hYworIHN5c3RlbS5t ay5pbgorIGNvbmZpZ3VyZQorIGNvbmZpZy5zdWIKK0BAIC0xNzksOCArMTc5LDYgQEAgY293LnBu ZworIGNvdy5kZXNrdG9wCisgY293LnNwZWMKKyBsdXJrLnB5CistZ2V0dGV4dC5oCistcG8KKyBJ TlNUQUxMLlNHSQorIGJlZXBsaXRlLmgKKyBjZW5zb3IuaAorZGlmZiAtLWdpdCBhL21hcC5jIGIv bWFwLmMKK2luZGV4IDc1YjNkMDAuLmQ1ZjdhYWUgMTAwNjQ0CistLS0gYS9tYXAuYworKysrIGIv bWFwLmMKK0BAIC00NjUsNyArNDY1LDcgQEAgc3RhdGljIHZvaWQgZ3VfdXBkYXRlKCkKKyAKKyAg IC8qIGFkZCB3b3JkcyBmb3Igc29tZSBvZiB0aGUgZ2FtZXVwIGZsYWdzICovCisgICBzdHJjcHko Z3VfdGV4dCwgIiAiKTsKKy0gIGlmICghY29udGV4dC0+Z2FtZXVwICYgR1VfVU5TQUZFKSB7Cisr ICBpZiAoIShjb250ZXh0LT5nYW1ldXAgJiBHVV9VTlNBRkUpKSB7CisgICAgIHN0cmNhdChndV90 ZXh0LCAiU0FGRS1JRExFICIpOworICAgICBlYWdlcisrOworICAgfQorZGlmZiAtLWdpdCBhL25l dHJlay1jbGllbnQtY293LnNwZWMgYi9uZXRyZWstY2xpZW50LWNvdy5zcGVjCituZXcgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uYmMxNDNjMworLS0tIC9kZXYvbnVsbAorKysrIGIv bmV0cmVrLWNsaWVudC1jb3cuc3BlYworQEAgLTAsMCArMSw0NiBAQAorK05hbWU6CQluZXRyZWst Y2xpZW50LWNvdworK1ZlcnNpb246CTMuMy4xCisrUmVsZWFzZToJJW1rcmVsIDEKKytTdW1tYXJ5 OglOZXRyZWsgY2xpZW50CisrTGljZW5zZToJTUlUCisrR3JvdXA6CQlHYW1lcy9PdGhlcgorK1Nv dXJjZTA6CWh0dHA6Ly9uZXRyZWsub3JnL2ZpbGVzL0NPVy8le25hbWV9LSV7dmVyc2lvbn0udGFy Lmd6CisrVVJMOgkJaHR0cDovL3d3dy5uZXRyZWsub3JnCisrCisrQnVpbGRSZXF1aXJlczoJU0RM X21peGVyLWRldmVsCisrQnVpbGRSZXF1aXJlczoJU0RMLWRldmVsCisrQnVpbGRSZXF1aXJlczoJ aW1saWIyLWRldmVsCisrQnVpbGRSZXF1aXJlczoJbGlieHhmODZ2bS1kZXZlbAorK0J1aWxkUmVx dWlyZXM6CWdtcC1kZXZlbAorKworKworKyVkZXNjcmlwdGlvbgorK1RoaXMgaXMgYSBjbGllbnQg Zm9yIHRoZSBtdWx0aXBsYXllciBnYW1lIG9mIE5ldHJlaywgc3VwcG9ydGluZyBzb3VuZCwKKytj b2xvciBiaXRtYXBzIHJlY29yZGluZyBhbmQgcGxheWJhY2sgb2YgZ2FtZXMuIFRoZSBnYW1lIGl0 c2VsZiBoYXMgCisrZXhpc3RlZCBmb3Igb3ZlciAyMCB5ZWFycywgYW5kIGhhcyBhIHNvbGlkIHBs YXllcmJhc2UsIGluY2x1ZGluZyBzb21lIAorK3Blb3BsZSB3aG8gaGF2ZSBiZWVuIHBsYXlpbmcg Zm9yIG5lYXJseSBhcyBsb25nIGFzIHRoZSBnYW1lIGhhcyBleGlzdGVkLgorKworKworKyVwcmVw CisrJXNldHVwIC1xCisrCisrJWJ1aWxkCisrJWNvbmZpZ3VyZQorKyVtYWtlCisrCisrJWluc3Rh bGwKKyslbWFrZWluc3RhbGwKKysKKyslY2xlYW4KKytybSAtcmYgJXtidWlsZHJvb3R9CisrCisr JWZpbGVzCisrJWRvYyBDSEFOR0VTIFJFQURNRS4qIFRPRE8gKi5ET0MgQ09QWUlORyBYVFJFS1JD LmV4YW1wbGUKKyslZG9jIGNvdy5odG1sIGluZGV4Lm9yaWcuaHRtbCBuZXdiaWUuaHRtbCBjb3cu Y3NzIHN0YXJzLmdpZiBuZXRyZWtyYy5leGFtcGxlCisrJXtfZ2FtZXNiaW5kaXJ9LyV7bmFtZX0K Kysle19kYXRhZGlyfS9waXhtYXBzLyV7bmFtZX0vKgorKyV7X2RhdGFkaXJ9L2FwcGxpY2F0aW9u cy8le25hbWV9LmRlc2t0b3AKKysKKyslY2hhbmdlbG9nCisrKiBXZWQgRmViIDI5IDIwMTIgSm9o bm55IEEuIFNvbGJ1IDxzb2xidUBtYW5kcml2YS5vcmc+IDMuMy4xLTEKKystIEluaXRpYWwgcmVs ZWFzZQorZGlmZiAtLWdpdCBhL25ldHJla3JjLmV4YW1wbGUgYi9uZXRyZWtyYy5leGFtcGxlCitp bmRleCAyMGRiZDUzLi5iYzY0ODMwIDEwMDY0NAorLS0tIGEvbmV0cmVrcmMuZXhhbXBsZQorKysr IGIvbmV0cmVrcmMuZXhhbXBsZQorQEAgLTQzLDE2ICs0MywxNCBAQCBuYW1lOgkJCWd1ZXN0Cisg I3Bhc3N3b3JkOgkJb2dndHBhdQorIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0jIHRoaXMg c2V0cyB0aGUgZGVmYXVsdCBzZXJ2ZXIgYW5kIHBvcnQgKGFuZCB2ZXJpZmljYXRpb24gc2NoZW1l KQorKyMgdGhpcyBzZXRzIHRoZSBkZWZhdWx0IHNlcnZlciBhbmQgcG9ydAorIAorIHNlcnZlcjoJ CQlzZS5uZXRyZWsub3JnCisgcG9ydDoJCQkyNTkyCistdXNlUlNBOgkJCW9uCisgCisgIyB5b3Ug Y2FuIGFsc28gbWFrZSBuaWNrbmFtZXMgbGlrZToKKyBzZXJ2ZXIuYnJvbmNvOgkJYnJvbmNvLmVj ZS5jbXUuZWR1CisgcG9ydC5icm9uY286CQkyNTkyCistdXNlUlNBLmJyb25jby5lY2UuY211LmVk dToJb24KKyAKKyBzZXJ2ZXIuaG9ja2V5OgkJaG9ja2V5Lm5ldHJlay5vcmcKKyBwb3J0LmhvY2tl eToJCTI1OTIKK2RpZmYgLS1naXQgYS9wYXJzZW1ldGEuYyBiL3BhcnNlbWV0YS5jCitpbmRleCA2 ZGMzMWExLi4zNDVjN2FjIDEwMDY0NAorLS0tIGEvcGFyc2VtZXRhLmMKKysrKyBiL3BhcnNlbWV0 YS5jCitAQCAtMjAsNiArMjAsNyBAQAorICNpbmNsdWRlIDxhcnBhL2luZXQuaD4KKyAjaW5jbHVk ZSA8bmV0ZGIuaD4KKyAjaW5jbHVkZSA8ZXJybm8uaD4KKysjaW5jbHVkZSA8c2lnbmFsLmg+Cisg CisgI2luY2x1ZGUgIldsaWIuaCIKKyAjaW5jbHVkZSAiZGVmcy5oIgorQEAgLTk5Niw3ICs5OTcs NyBAQCB2b2lkICAgIG1ldGF3aW5kb3coKQorICAgc3RhdGljIGludCBsYXN0SGVpZ2h0ID0gMDsK KyAKKyAgIGlmICghbWV0YVdpbikgeworLSAgICBoZWlnaHQgPSAyNTAgKyBtZXRhSGVpZ2h0ICog KFdfVGV4dGhlaWdodCArIDgpICsgNCAqIChtZXRhSGVpZ2h0IC0gMSk7CisrICAgIGhlaWdodCA9 IDM1MCArIG1ldGFIZWlnaHQgKiAoV19UZXh0aGVpZ2h0ICsgOCkgKyA0ICogKG1ldGFIZWlnaHQg LSAxKTsKKyAgICAgbWV0YVdpbiA9IFdfTWFrZVdpbmRvdygiTmV0cmVrIFNlcnZlciBMaXN0Iiwg MCwgMCwgNzE2LCBoZWlnaHQsIE5VTEwsIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg Zm9yZUNvbG9yKTsKKyAgICAgV19TZXRCYWNrZ3JvdW5kSW1hZ2UobWV0YVdpbiwgIk1pc2MvbWFw X2JhY2sucG5nIik7CitkaWZmIC0tZ2l0IGEvcGxheWJhY2suYyBiL3BsYXliYWNrLmMKK2luZGV4 IDdhZmRjMGYuLjQ5NTdkMGEgMTAwNjQ0CistLS0gYS9wbGF5YmFjay5jCisrKysgYi9wbGF5YmFj ay5jCitAQCAtMTQ4LDExICsxNDgsMTEgQEAgaW50CisgICAgICAgb3V0bWVzc2FnZVtpXSA9ICdc MCc7CisgICAgIH0KKyAKKy0gIFNSQU5ET00odGltZSgwKSk7CisrICBTUkFORE9NKHRpbWUoTlVM TCkpOworIAorICAgaW5pdERlZmF1bHRzKGRlZmZpbGUpOworIAorLSAgU1JBTkRPTShnZXRwaWQo KSAqIHRpbWUoKExPTkcgKikgMCkpOworKyAgU1JBTkRPTShnZXRwaWQoKSAqIHRpbWUoTlVMTCkp OworIAorICAgbmV3d2luKGRpc3BsYXlfaG9zdCwgbmFtZSk7CisgCitkaWZmIC0tZ2l0IGEvcG8v Q2hhbmdlTG9nIGIvcG8vQ2hhbmdlTG9nCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDNiOWY0OGUuLjAwMDAwMDAKKy0tLSBhL3BvL0NoYW5nZUxvZworKysrIC9kZXYvbnVsbAorQEAg LTEsMTIgKzAsMCBAQAorLTIwMDktMDMtMTYgIGdldHRleHRpemUgIDxidWctZ251LWdldHRleHRA Z251Lm9yZz4KKy0KKy0JKiBNYWtlZmlsZS5pbi5pbjogTmV3IGZpbGUsIGZyb20gZ2V0dGV4dC0w LjE3LgorLQkqIFJ1bGVzLXF1b3Q6IE5ldyBmaWxlLCBmcm9tIGdldHRleHQtMC4xNy4KKy0JKiBi b2xkcXVvdC5zZWQ6IE5ldyBmaWxlLCBmcm9tIGdldHRleHQtMC4xNy4KKy0JKiBlbkBib2xkcXVv dC5oZWFkZXI6IE5ldyBmaWxlLCBmcm9tIGdldHRleHQtMC4xNy4KKy0JKiBlbkBxdW90LmhlYWRl cjogTmV3IGZpbGUsIGZyb20gZ2V0dGV4dC0wLjE3LgorLQkqIGluc2VydC1oZWFkZXIuc2luOiBO ZXcgZmlsZSwgZnJvbSBnZXR0ZXh0LTAuMTcuCistCSogcXVvdC5zZWQ6IE5ldyBmaWxlLCBmcm9t IGdldHRleHQtMC4xNy4KKy0JKiByZW1vdmUtcG90Y2RhdGUuc2luOiBOZXcgZmlsZSwgZnJvbSBn ZXR0ZXh0LTAuMTcuCistCSogUE9URklMRVMuaW46IE5ldyBmaWxlLgorLQorZGlmZiAtLWdpdCBh L3BvL01ha2VmaWxlLmluLmluIGIvcG8vTWFrZWZpbGUuaW4uaW4KK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggZmVjZjUwMC4uMDAwMDAwMAorLS0tIGEvcG8vTWFrZWZpbGUuaW4uaW4K KysrKyAvZGV2L251bGwKK0BAIC0xLDQyOSArMCwwIEBACistIyBNYWtlZmlsZSBmb3IgUE8gZGly ZWN0b3J5IGluIGFueSBwYWNrYWdlIHVzaW5nIEdOVSBnZXR0ZXh0LgorLSMgQ29weXJpZ2h0IChD KSAxOTk1LTE5OTcsIDIwMDAtMjAwNyBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBnbnUuYWku bWl0LmVkdT4KKy0jCistIyBUaGlzIGZpbGUgY2FuIGJlIGNvcGllZCBhbmQgdXNlZCBmcmVlbHkg d2l0aG91dCByZXN0cmljdGlvbnMuICBJdCBjYW4KKy0jIGJlIHVzZWQgaW4gcHJvamVjdHMgd2hp Y2ggYXJlIG5vdCBhdmFpbGFibGUgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworLSMgTGlj ZW5zZSBidXQgd2hpY2ggc3RpbGwgd2FudCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoZSBHTlUg Z2V0dGV4dAorLSMgZnVuY3Rpb25hbGl0eS4KKy0jIFBsZWFzZSBub3RlIHRoYXQgdGhlIGFjdHVh bCBjb2RlIG9mIEdOVSBnZXR0ZXh0IGlzIGNvdmVyZWQgYnkgdGhlIEdOVQorLSMgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhbmQgaXMgKm5vdCogaW4gdGhlIHB1YmxpYyBkb21haW4uCistIworLSMg T3JpZ2luOiBnZXR0ZXh0LTAuMTcKKy1HRVRURVhUX01BQ1JPX1ZFUlNJT04gPSAwLjE3CistCist UEFDS0FHRSA9IEBQQUNLQUdFQAorLVZFUlNJT04gPSBAVkVSU0lPTkAKKy1QQUNLQUdFX0JVR1JF UE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKKy0KKy1TSEVMTCA9IC9iaW4vc2gKKy1AU0VUX01B S0VACistCistc3JjZGlyID0gQHNyY2RpckAKKy10b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACist VlBBVEggPSBAc3JjZGlyQAorLQorLXByZWZpeCA9IEBwcmVmaXhACistZXhlY19wcmVmaXggPSBA ZXhlY19wcmVmaXhACistZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACistZGF0YWRpciA9IEBk YXRhZGlyQAorLWxvY2FsZWRpciA9IEBsb2NhbGVkaXJACistZ2V0dGV4dHNyY2RpciA9ICQoZGF0 YWRpcikvZ2V0dGV4dC9wbworLQorLUlOU1RBTEwgPSBASU5TVEFMTEAKKy1JTlNUQUxMX0RBVEEg PSBASU5TVEFMTF9EQVRBQAorLQorLSMgV2UgdXNlICQobWtkaXJfcCkuCistIyBJbiBhdXRvbWFr ZSA8PSAxLjkueCwgJChta2Rpcl9wKSBpcyBkZWZpbmVkIGVpdGhlciBhcyAibWtkaXIgLXAgLS0i IG9yIGFzCistIyAiJChta2luc3RhbGxkaXJzKSIgb3IgYXMgIiQoaW5zdGFsbF9zaCkgLWQiLiBG b3IgdGhlc2UgYXV0b21ha2UgdmVyc2lvbnMsCistIyBAaW5zdGFsbF9zaEAgZG9lcyBub3Qgc3Rh cnQgd2l0aCAkKFNIRUxMKSwgc28gd2UgYWRkIGl0LgorLSMgSW4gYXV0b21ha2UgPj0gMS4xMCwg QG1rZGlyX3BAIGlzIGRlcml2ZWQgZnJvbSAke01LRElSX1B9LCB3aGljaCBpcyBkZWZpbmVkCist IyBlaXRoZXIgYXMgIi9wYXRoL3RvL21rZGlyIC1wIiBvciAiLi4uL2luc3RhbGwtc2ggLWMgLWQi LiBGb3IgdGhlc2UgYXV0b21ha2UKKy0jIHZlcnNpb25zLCAkKG1raW5zdGFsbGRpcnMpIGFuZCAk KGluc3RhbGxfc2gpIGFyZSB1bnVzZWQuCistbWtpbnN0YWxsZGlycyA9ICQoU0hFTEwpIEBpbnN0 YWxsX3NoQCAtZAorLWluc3RhbGxfc2ggPSAkKFNIRUxMKSBAaW5zdGFsbF9zaEAKKy1NS0RJUl9Q ID0gQE1LRElSX1BACistbWtkaXJfcCA9IEBta2Rpcl9wQAorLQorLUdNU0dGTVRfID0gQEdNU0dG TVRACistR01TR0ZNVF9ubyA9IEBHTVNHRk1UQAorLUdNU0dGTVRfeWVzID0gQEdNU0dGTVRfMDE1 QAorLUdNU0dGTVQgPSAkKEdNU0dGTVRfJChVU0VfTVNHQ1RYVCkpCistTVNHRk1UXyA9IEBNU0dG TVRACistTVNHRk1UX25vID0gQE1TR0ZNVEAKKy1NU0dGTVRfeWVzID0gQE1TR0ZNVF8wMTVACist TVNHRk1UID0gJChNU0dGTVRfJChVU0VfTVNHQ1RYVCkpCistWEdFVFRFWFRfID0gQFhHRVRURVhU QAorLVhHRVRURVhUX25vID0gQFhHRVRURVhUQAorLVhHRVRURVhUX3llcyA9IEBYR0VUVEVYVF8w MTVACistWEdFVFRFWFQgPSAkKFhHRVRURVhUXyQoVVNFX01TR0NUWFQpKQorLU1TR01FUkdFID0g bXNnbWVyZ2UKKy1NU0dNRVJHRV9VUERBVEUgPSBATVNHTUVSR0VAIC0tdXBkYXRlCistTVNHSU5J VCA9IG1zZ2luaXQKKy1NU0dDT05WID0gbXNnY29udgorLU1TR0ZJTFRFUiA9IG1zZ2ZpbHRlcgor LQorLVBPRklMRVMgPSBAUE9GSUxFU0AKKy1HTU9GSUxFUyA9IEBHTU9GSUxFU0AKKy1VUERBVEVQ T0ZJTEVTID0gQFVQREFURVBPRklMRVNACistRFVNTVlQT0ZJTEVTID0gQERVTU1ZUE9GSUxFU0AK Ky1ESVNURklMRVMuY29tbW9uID0gTWFrZWZpbGUuaW4uaW4gcmVtb3ZlLXBvdGNkYXRlLnNpbiBc CistJChESVNURklMRVMuY29tbW9uLmV4dHJhMSkgJChESVNURklMRVMuY29tbW9uLmV4dHJhMikg JChESVNURklMRVMuY29tbW9uLmV4dHJhMykKKy1ESVNURklMRVMgPSAkKERJU1RGSUxFUy5jb21t b24pIE1ha2V2YXJzIFBPVEZJTEVTLmluIFwKKy0kKFBPRklMRVMpICQoR01PRklMRVMpIFwKKy0k KERJU1RGSUxFUy5leHRyYTEpICQoRElTVEZJTEVTLmV4dHJhMikgJChESVNURklMRVMuZXh0cmEz KQorLQorLVBPVEZJTEVTID0gXAorLQorLUNBVEFMT0dTID0gQENBVEFMT0dTQAorLQorLSMgTWFr ZXZhcnMgZ2V0cyBpbnNlcnRlZCBoZXJlLiAoRG9uJ3QgcmVtb3ZlIHRoaXMgbGluZSEpCistCist LlNVRkZJWEVTOgorLS5TVUZGSVhFUzogLnBvIC5nbW8gLm1vIC5zZWQgLnNpbiAubm9wIC5wby1j cmVhdGUgLnBvLXVwZGF0ZQorLQorLS5wby5tbzoKKy0JQGVjaG8gIiQoTVNHRk1UKSAtYyAtbyAk QCAkPCI7IFwKKy0JJChNU0dGTVQpIC1jIC1vIHQtJEAgJDwgJiYgbXYgdC0kQCAkQAorLQorLS5w by5nbW86CistCUBsYW5nPWBlY2hvICQqIHwgc2VkIC1lICdzLC4qLywsJ2A7IFwKKy0JdGVzdCAi JChzcmNkaXIpIiA9IC4gJiYgY2RjbWQ9IiIgfHwgY2RjbWQ9ImNkICQoc3JjZGlyKSAmJiAiOyBc CistCWVjaG8gIiQke2NkY21kfXJtIC1mICQke2xhbmd9LmdtbyAmJiAkKEdNU0dGTVQpIC1jIC0t c3RhdGlzdGljcyAtbyAkJHtsYW5nfS5nbW8gJCR7bGFuZ30ucG8iOyBcCistCWNkICQoc3JjZGly KSAmJiBybSAtZiAkJHtsYW5nfS5nbW8gJiYgJChHTVNHRk1UKSAtYyAtLXN0YXRpc3RpY3MgLW8g dC0kJHtsYW5nfS5nbW8gJCR7bGFuZ30ucG8gJiYgbXYgdC0kJHtsYW5nfS5nbW8gJCR7bGFuZ30u Z21vCistCistLnNpbi5zZWQ6CistCXNlZCAtZSAnL14jL2QnICQ8ID4gdC0kQAorLQltdiB0LSRA ICRACistCistCistYWxsOiBjaGVjay1tYWNyby12ZXJzaW9uIGFsbC1AVVNFX05MU0AKKy0KKy1h bGwteWVzOiBzdGFtcC1wbworLWFsbC1ubzoKKy0KKy0jIEVuc3VyZSB0aGF0IHRoZSBnZXR0ZXh0 IG1hY3JvcyBhbmQgdGhpcyBNYWtlZmlsZS5pbi5pbiBhcmUgaW4gc3luYy4KKy1jaGVjay1tYWNy by12ZXJzaW9uOgorLQlAdGVzdCAiJChHRVRURVhUX01BQ1JPX1ZFUlNJT04pIiA9ICJAR0VUVEVY VF9NQUNST19WRVJTSU9OQCIgXAorLQkgIHx8IHsgZWNobyAiKioqIGVycm9yOiBnZXR0ZXh0IGlu ZnJhc3RydWN0dXJlIG1pc21hdGNoOiB1c2luZyBhIE1ha2VmaWxlLmluLmluIGZyb20gZ2V0dGV4 dCB2ZXJzaW9uICQoR0VUVEVYVF9NQUNST19WRVJTSU9OKSBidXQgdGhlIGF1dG9jb25mIG1hY3Jv cyBhcmUgZnJvbSBnZXR0ZXh0IHZlcnNpb24gQEdFVFRFWFRfTUFDUk9fVkVSU0lPTkAiIDE+JjI7 IFwKKy0JICAgICAgIGV4aXQgMTsgXAorLQkgICAgIH0KKy0KKy0jICQoc3JjZGlyKS8kKERPTUFJ TikucG90IGlzIG9ubHkgY3JlYXRlZCB3aGVuIG5lZWRlZC4gV2hlbiB4Z2V0dGV4dCBmaW5kcyBu bworLSMgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMsIG5vICQoc3JjZGlyKS8kKERPTUFJTiku cG90IGlzIGNyZWF0ZWQgKGJlY2F1c2UKKy0jIHdlIGRvbid0IHdhbnQgdG8gYm90aGVyIHRyYW5z bGF0b3JzIHdpdGggZW1wdHkgUE9UIGZpbGVzKS4gV2UgYXNzdW1lIHRoYXQKKy0jIExJTkdVQVMg aXMgZW1wdHkgaW4gdGhpcyBjYXNlLCBpLmUuICQoUE9GSUxFUykgYW5kICQoR01PRklMRVMpIGFy ZSBlbXB0eS4KKy0jIEluIHRoaXMgY2FzZSwgc3RhbXAtcG8gaXMgYSBub3AgKGkuZS4gYSBwaG9u eSB0YXJnZXQpLgorLQorLSMgc3RhbXAtcG8gaXMgYSB0aW1lc3RhbXAgZGVub3RpbmcgdGhlIGxh c3QgdGltZSBhdCB3aGljaCB0aGUgQ0FUQUxPR1MgaGF2ZQorLSMgYmVlbiBsb29zZWx5IHVwZGF0 ZWQuIEl0cyBwdXJwb3NlIGlzIHRoYXQgd2hlbiBhIGRldmVsb3BlciBvciB0cmFuc2xhdG9yCist IyBjaGVja3Mgb3V0IHRoZSBwYWNrYWdlIHZpYSBDVlMsIGFuZCB0aGUgJChET01BSU4pLnBvdCBm aWxlIGlzIG5vdCBpbiBDVlMsCistIyAibWFrZSIgd2lsbCB1cGRhdGUgdGhlICQoRE9NQUlOKS5w b3QgYW5kIHRoZSAkKENBVEFMT0dTKSwgYnV0IHN1YnNlcXVlbnQKKy0jIGludm9jYXRpb25zIG9m ICJtYWtlIiB3aWxsIGRvIG5vdGhpbmcuIFRoaXMgdGltZXN0YW1wIHdvdWxkIG5vdCBiZSBuZWNl c3NhcnkKKy0jIGlmIHVwZGF0aW5nIHRoZSAkKENBVEFMT0dTKSB3b3VsZCBhbHdheXMgdG91Y2gg dGhlbTsgaG93ZXZlciwgdGhlIHJ1bGUgZm9yCistIyAkKFBPRklMRVMpIGhhcyBiZWVuIGRlc2ln bmVkIHRvIG5vdCB0b3VjaCBmaWxlcyB0aGF0IGRvbid0IG5lZWQgdG8gYmUKKy0jIGNoYW5nZWQu Cistc3RhbXAtcG86ICQoc3JjZGlyKS8kKERPTUFJTikucG90CistCXRlc3QgISAtZiAkKHNyY2Rp cikvJChET01BSU4pLnBvdCB8fCBcCistCSAgdGVzdCAteiAiJChHTU9GSUxFUykiIHx8ICQoTUFL RSkgJChHTU9GSUxFUykKKy0JQHRlc3QgISAtZiAkKHNyY2RpcikvJChET01BSU4pLnBvdCB8fCB7 IFwKKy0JICBlY2hvICJ0b3VjaCBzdGFtcC1wbyIgJiYgXAorLQkgIGVjaG8gdGltZXN0YW1wID4g c3RhbXAtcG9UICYmIFwKKy0JICBtdiBzdGFtcC1wb1Qgc3RhbXAtcG87IFwKKy0JfQorLQorLSMg Tm90ZTogVGFyZ2V0ICdhbGwnIG11c3Qgbm90IGRlcGVuZCBvbiB0YXJnZXQgJyQoRE9NQUlOKS5w b3QtdXBkYXRlJywKKy0jIG90aGVyd2lzZSBwYWNrYWdlcyBsaWtlIEdDQyBjYW4gbm90IGJlIGJ1 aWx0IGlmIG9ubHkgcGFydHMgb2YgdGhlIHNvdXJjZQorLSMgaGF2ZSBiZWVuIGRvd25sb2FkZWQu CistCistIyBUaGlzIHRhcmdldCByZWJ1aWxkcyAkKERPTUFJTikucG90OyBpdCBpcyBhbiBleHBl bnNpdmUgb3BlcmF0aW9uLgorLSMgTm90ZSB0aGF0ICQoRE9NQUlOKS5wb3QgaXMgbm90IHRvdWNo ZWQgaWYgaXQgZG9lc24ndCBuZWVkIHRvIGJlIGNoYW5nZWQuCistJChET01BSU4pLnBvdC11cGRh dGU6ICQoUE9URklMRVMpICQoc3JjZGlyKS9QT1RGSUxFUy5pbiByZW1vdmUtcG90Y2RhdGUuc2Vk CistCWlmIExDX0FMTD1DIGdyZXAgJ0dOVSBAUEFDS0FHRUAnICQodG9wX3NyY2RpcikvKiAyPi9k ZXYvbnVsbCB8IGdyZXAgLXYgJ2xpYnRvb2w6JyA+L2Rldi9udWxsOyB0aGVuIFwKKy0JICBwYWNr YWdlX2dudT0nR05VICc7IFwKKy0JZWxzZSBcCistCSAgcGFja2FnZV9nbnU9Jyc7IFwKKy0JZmk7 IFwKKy0JaWYgdGVzdCAtbiAnJChNU0dJRF9CVUdTX0FERFJFU1MpJyB8fCB0ZXN0ICckKFBBQ0tB R0VfQlVHUkVQT1JUKScgPSAnQCdQQUNLQUdFX0JVR1JFUE9SVCdAJzsgdGhlbiBcCistCSAgbXNn aWRfYnVnc19hZGRyZXNzPSckKE1TR0lEX0JVR1NfQUREUkVTUyknOyBcCistCWVsc2UgXAorLQkg IG1zZ2lkX2J1Z3NfYWRkcmVzcz0nJChQQUNLQUdFX0JVR1JFUE9SVCknOyBcCistCWZpOyBcCist CWNhc2UgYCQoWEdFVFRFWFQpIC0tdmVyc2lvbiB8IHNlZCAxcSB8IHNlZCAtZSAncyxeW14wLTld KiwsJ2AgaW4gXAorLQkgICcnIHwgMC5bMC05XSB8IDAuWzAtOV0uKiB8IDAuMVswLTVdIHwgMC4x WzAtNV0uKiB8IDAuMTYgfCAwLjE2LlswLTFdKikgXAorLQkgICAgJChYR0VUVEVYVCkgLS1kZWZh dWx0LWRvbWFpbj0kKERPTUFJTikgLS1kaXJlY3Rvcnk9JCh0b3Bfc3JjZGlyKSBcCistCSAgICAg IC0tYWRkLWNvbW1lbnRzPVRSQU5TTEFUT1JTOiAkKFhHRVRURVhUX09QVElPTlMpIEBYR0VUVEVY VF9FWFRSQV9PUFRJT05TQCBcCistCSAgICAgIC0tZmlsZXMtZnJvbT0kKHNyY2RpcikvUE9URklM RVMuaW4gXAorLQkgICAgICAtLWNvcHlyaWdodC1ob2xkZXI9JyQoQ09QWVJJR0hUX0hPTERFUikn IFwKKy0JICAgICAgLS1tc2dpZC1idWdzLWFkZHJlc3M9IiQkbXNnaWRfYnVnc19hZGRyZXNzIiBc CistCSAgICA7OyBcCistCSAgKikgXAorLQkgICAgJChYR0VUVEVYVCkgLS1kZWZhdWx0LWRvbWFp bj0kKERPTUFJTikgLS1kaXJlY3Rvcnk9JCh0b3Bfc3JjZGlyKSBcCistCSAgICAgIC0tYWRkLWNv bW1lbnRzPVRSQU5TTEFUT1JTOiAkKFhHRVRURVhUX09QVElPTlMpIEBYR0VUVEVYVF9FWFRSQV9P UFRJT05TQCBcCistCSAgICAgIC0tZmlsZXMtZnJvbT0kKHNyY2RpcikvUE9URklMRVMuaW4gXAor LQkgICAgICAtLWNvcHlyaWdodC1ob2xkZXI9JyQoQ09QWVJJR0hUX0hPTERFUiknIFwKKy0JICAg ICAgLS1wYWNrYWdlLW5hbWU9IiQke3BhY2thZ2VfZ251fUBQQUNLQUdFQCIgXAorLQkgICAgICAt LXBhY2thZ2UtdmVyc2lvbj0nQFZFUlNJT05AJyBcCistCSAgICAgIC0tbXNnaWQtYnVncy1hZGRy ZXNzPSIkJG1zZ2lkX2J1Z3NfYWRkcmVzcyIgXAorLQkgICAgOzsgXAorLQllc2FjCistCXRlc3Qg ISAtZiAkKERPTUFJTikucG8gfHwgeyBcCistCSAgaWYgdGVzdCAtZiAkKHNyY2RpcikvJChET01B SU4pLnBvdDsgdGhlbiBcCistCSAgICBzZWQgLWYgcmVtb3ZlLXBvdGNkYXRlLnNlZCA8ICQoc3Jj ZGlyKS8kKERPTUFJTikucG90ID4gJChET01BSU4pLjFwbyAmJiBcCistCSAgICBzZWQgLWYgcmVt b3ZlLXBvdGNkYXRlLnNlZCA8ICQoRE9NQUlOKS5wbyA+ICQoRE9NQUlOKS4ycG8gJiYgXAorLQkg ICAgaWYgY21wICQoRE9NQUlOKS4xcG8gJChET01BSU4pLjJwbyA+L2Rldi9udWxsIDI+JjE7IHRo ZW4gXAorLQkgICAgICBybSAtZiAkKERPTUFJTikuMXBvICQoRE9NQUlOKS4ycG8gJChET01BSU4p LnBvOyBcCistCSAgICBlbHNlIFwKKy0JICAgICAgcm0gLWYgJChET01BSU4pLjFwbyAkKERPTUFJ TikuMnBvICQoc3JjZGlyKS8kKERPTUFJTikucG90ICYmIFwKKy0JICAgICAgbXYgJChET01BSU4p LnBvICQoc3JjZGlyKS8kKERPTUFJTikucG90OyBcCistCSAgICBmaTsgXAorLQkgIGVsc2UgXAor LQkgICAgbXYgJChET01BSU4pLnBvICQoc3JjZGlyKS8kKERPTUFJTikucG90OyBcCistCSAgZmk7 IFwKKy0JfQorLQorLSMgVGhpcyBydWxlIGhhcyBubyBkZXBlbmRlbmNpZXM6IHdlIGRvbid0IG5l ZWQgdG8gdXBkYXRlICQoRE9NQUlOKS5wb3QgYXQKKy0jIGV2ZXJ5ICJtYWtlIiBpbnZvY2F0aW9u LCBvbmx5IGNyZWF0ZSBpdCB3aGVuIGl0IGlzIG1pc3NpbmcuCistIyBPbmx5ICJtYWtlICQoRE9N QUlOKS5wb3QtdXBkYXRlIiBvciAibWFrZSBkaXN0IiB3aWxsIGZvcmNlIGFuIHVwZGF0ZS4KKy0k KHNyY2RpcikvJChET01BSU4pLnBvdDoKKy0JJChNQUtFKSAkKERPTUFJTikucG90LXVwZGF0ZQor LQorLSMgVGhpcyB0YXJnZXQgcmVidWlsZHMgYSBQTyBmaWxlIGlmICQoRE9NQUlOKS5wb3QgaGFz IGNoYW5nZWQuCistIyBOb3RlIHRoYXQgYSBQTyBmaWxlIGlzIG5vdCB0b3VjaGVkIGlmIGl0IGRv ZXNuJ3QgbmVlZCB0byBiZSBjaGFuZ2VkLgorLSQoUE9GSUxFUyk6ICQoc3JjZGlyKS8kKERPTUFJ TikucG90CistCUBsYW5nPWBlY2hvICRAIHwgc2VkIC1lICdzLC4qLywsJyAtZSAncy9cLnBvJCQv LydgOyBcCistCWlmIHRlc3QgLWYgIiQoc3JjZGlyKS8kJHtsYW5nfS5wbyI7IHRoZW4gXAorLQkg IHRlc3QgIiQoc3JjZGlyKSIgPSAuICYmIGNkY21kPSIiIHx8IGNkY21kPSJjZCAkKHNyY2Rpcikg JiYgIjsgXAorLQkgIGVjaG8gIiQke2NkY21kfSQoTVNHTUVSR0VfVVBEQVRFKSAkJHtsYW5nfS5w byAkKERPTUFJTikucG90IjsgXAorLQkgIGNkICQoc3JjZGlyKSAmJiAkKE1TR01FUkdFX1VQREFU RSkgJCR7bGFuZ30ucG8gJChET01BSU4pLnBvdDsgXAorLQllbHNlIFwKKy0JICAkKE1BS0UpICQk e2xhbmd9LnBvLWNyZWF0ZTsgXAorLQlmaQorLQorLQorLWluc3RhbGw6IGluc3RhbGwtZXhlYyBp bnN0YWxsLWRhdGEKKy1pbnN0YWxsLWV4ZWM6CistaW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEt QFVTRV9OTFNACistCWlmIHRlc3QgIiQoUEFDS0FHRSkiID0gImdldHRleHQtdG9vbHMiOyB0aGVu IFwKKy0JICAkKG1rZGlyX3ApICQoREVTVERJUikkKGdldHRleHRzcmNkaXIpOyBcCistCSAgZm9y IGZpbGUgaW4gJChESVNURklMRVMuY29tbW9uKSBNYWtldmFycy50ZW1wbGF0ZTsgZG8gXAorLQkg ICAgJChJTlNUQUxMX0RBVEEpICQoc3JjZGlyKS8kJGZpbGUgXAorLQkJCSAgICAkKERFU1RESVIp JChnZXR0ZXh0c3JjZGlyKS8kJGZpbGU7IFwKKy0JICBkb25lOyBcCistCSAgZm9yIGZpbGUgaW4g TWFrZXZhcnM7IGRvIFwKKy0JICAgIHJtIC1mICQoREVTVERJUikkKGdldHRleHRzcmNkaXIpLyQk ZmlsZTsgXAorLQkgIGRvbmU7IFwKKy0JZWxzZSBcCistCSAgOiA7IFwKKy0JZmkKKy1pbnN0YWxs LWRhdGEtbm86IGFsbAorLWluc3RhbGwtZGF0YS15ZXM6IGFsbAorLQkkKG1rZGlyX3ApICQoREVT VERJUikkKGRhdGFkaXIpCistCUBjYXRhbG9ncz0nJChDQVRBTE9HUyknOyBcCistCWZvciBjYXQg aW4gJCRjYXRhbG9nczsgZG8gXAorLQkgIGNhdD1gYmFzZW5hbWUgJCRjYXRgOyBcCistCSAgbGFu Zz1gZWNobyAkJGNhdCB8IHNlZCAtZSAncy9cLmdtbyQkLy8nYDsgXAorLQkgIGRpcj0kKGxvY2Fs ZWRpcikvJCRsYW5nL0xDX01FU1NBR0VTOyBcCistCSAgJChta2Rpcl9wKSAkKERFU1RESVIpJCRk aXI7IFwKKy0JICBpZiB0ZXN0IC1yICQkY2F0OyB0aGVuIHJlYWxjYXQ9JCRjYXQ7IGVsc2UgcmVh bGNhdD0kKHNyY2RpcikvJCRjYXQ7IGZpOyBcCistCSAgJChJTlNUQUxMX0RBVEEpICQkcmVhbGNh dCAkKERFU1RESVIpJCRkaXIvJChET01BSU4pLm1vOyBcCistCSAgZWNobyAiaW5zdGFsbGluZyAk JHJlYWxjYXQgYXMgJChERVNURElSKSQkZGlyLyQoRE9NQUlOKS5tbyI7IFwKKy0JICBmb3IgbGMg aW4gJycgJChFWFRSQV9MT0NBTEVfQ0FURUdPUklFUyk7IGRvIFwKKy0JICAgIGlmIHRlc3QgLW4g IiQkbGMiOyB0aGVuIFwKKy0JICAgICAgaWYgKGNkICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRs YW5nICYmIExDX0FMTD1DIGxzIC1sIC1kICQkbGMgMj4vZGV2L251bGwpIHwgZ3JlcCAnIC0+ICcg Pi9kZXYvbnVsbDsgdGhlbiBcCistCSAgICAgICAgbGluaz1gY2QgJChERVNURElSKSQobG9jYWxl ZGlyKS8kJGxhbmcgJiYgTENfQUxMPUMgbHMgLWwgLWQgJCRsYyB8IHNlZCAtZSAncy9eLiogLT4g Ly8nYDsgXAorLQkgICAgICAgIG12ICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQkbGMg JChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYy5vbGQ7IFwKKy0JICAgICAgICBta2Rp ciAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFuZy8kJGxjOyBcCistCSAgICAgICAgKGNkICQo REVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQkbGMub2xkICYmIFwKKy0JICAgICAgICAgZm9y IGZpbGUgaW4gKjsgZG8gXAorLQkgICAgICAgICAgIGlmIHRlc3QgLWYgJCRmaWxlOyB0aGVuIFwK Ky0JICAgICAgICAgICAgIGxuIC1zIC4uLyQkbGluay8kJGZpbGUgJChERVNURElSKSQobG9jYWxl ZGlyKS8kJGxhbmcvJCRsYy8kJGZpbGU7IFwKKy0JICAgICAgICAgICBmaTsgXAorLQkgICAgICAg ICBkb25lKTsgXAorLQkgICAgICAgIHJtIC1mICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5n LyQkbGMub2xkOyBcCistCSAgICAgIGVsc2UgXAorLQkgICAgICAgIGlmIHRlc3QgLWQgJChERVNU RElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYzsgdGhlbiBcCistCSAgICAgICAgICA6OyBcCist CSAgICAgICAgZWxzZSBcCistCSAgICAgICAgICBybSAtZiAkKERFU1RESVIpJChsb2NhbGVkaXIp LyQkbGFuZy8kJGxjOyBcCistCSAgICAgICAgICBta2RpciAkKERFU1RESVIpJChsb2NhbGVkaXIp LyQkbGFuZy8kJGxjOyBcCistCSAgICAgICAgZmk7IFwKKy0JICAgICAgZmk7IFwKKy0JICAgICAg cm0gLWYgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYy8kKERPTUFJTikubW87IFwK Ky0JICAgICAgbG4gLXMgLi4vTENfTUVTU0FHRVMvJChET01BSU4pLm1vICQoREVTVERJUikkKGxv Y2FsZWRpcikvJCRsYW5nLyQkbGMvJChET01BSU4pLm1vIDI+L2Rldi9udWxsIHx8IFwKKy0JICAg ICAgbG4gJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvTENfTUVTU0FHRVMvJChET01BSU4p Lm1vICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQkbGMvJChET01BSU4pLm1vIDI+L2Rl di9udWxsIHx8IFwKKy0JICAgICAgY3AgLXAgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcv TENfTUVTU0FHRVMvJChET01BSU4pLm1vICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQk bGMvJChET01BSU4pLm1vOyBcCistCSAgICAgIGVjaG8gImluc3RhbGxpbmcgJCRyZWFsY2F0IGxp bmsgYXMgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYy8kKERPTUFJTikubW8iOyBc CistCSAgICBmaTsgXAorLQkgIGRvbmU7IFwKKy0JZG9uZQorLQorLWluc3RhbGwtc3RyaXA6IGlu c3RhbGwKKy0KKy1pbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtZXhlYyBpbnN0YWxsZGlycy1kYXRh CistaW5zdGFsbGRpcnMtZXhlYzoKKy1pbnN0YWxsZGlycy1kYXRhOiBpbnN0YWxsZGlycy1kYXRh LUBVU0VfTkxTQAorLQlpZiB0ZXN0ICIkKFBBQ0tBR0UpIiA9ICJnZXR0ZXh0LXRvb2xzIjsgdGhl biBcCistCSAgJChta2Rpcl9wKSAkKERFU1RESVIpJChnZXR0ZXh0c3JjZGlyKTsgXAorLQllbHNl IFwKKy0JICA6IDsgXAorLQlmaQorLWluc3RhbGxkaXJzLWRhdGEtbm86CistaW5zdGFsbGRpcnMt ZGF0YS15ZXM6CistCSQobWtkaXJfcCkgJChERVNURElSKSQoZGF0YWRpcikKKy0JQGNhdGFsb2dz PSckKENBVEFMT0dTKSc7IFwKKy0JZm9yIGNhdCBpbiAkJGNhdGFsb2dzOyBkbyBcCistCSAgY2F0 PWBiYXNlbmFtZSAkJGNhdGA7IFwKKy0JICBsYW5nPWBlY2hvICQkY2F0IHwgc2VkIC1lICdzL1wu Z21vJCQvLydgOyBcCistCSAgZGlyPSQobG9jYWxlZGlyKS8kJGxhbmcvTENfTUVTU0FHRVM7IFwK Ky0JICAkKG1rZGlyX3ApICQoREVTVERJUikkJGRpcjsgXAorLQkgIGZvciBsYyBpbiAnJyAkKEVY VFJBX0xPQ0FMRV9DQVRFR09SSUVTKTsgZG8gXAorLQkgICAgaWYgdGVzdCAtbiAiJCRsYyI7IHRo ZW4gXAorLQkgICAgICBpZiAoY2QgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcgJiYgTENf QUxMPUMgbHMgLWwgLWQgJCRsYyAyPi9kZXYvbnVsbCkgfCBncmVwICcgLT4gJyA+L2Rldi9udWxs OyB0aGVuIFwKKy0JICAgICAgICBsaW5rPWBjZCAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFu ZyAmJiBMQ19BTEw9QyBscyAtbCAtZCAkJGxjIHwgc2VkIC1lICdzL14uKiAtPiAvLydgOyBcCist CSAgICAgICAgbXYgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYyAkKERFU1RESVIp JChsb2NhbGVkaXIpLyQkbGFuZy8kJGxjLm9sZDsgXAorLQkgICAgICAgIG1rZGlyICQoREVTVERJ UikkKGxvY2FsZWRpcikvJCRsYW5nLyQkbGM7IFwKKy0JICAgICAgICAoY2QgJChERVNURElSKSQo bG9jYWxlZGlyKS8kJGxhbmcvJCRsYy5vbGQgJiYgXAorLQkgICAgICAgICBmb3IgZmlsZSBpbiAq OyBkbyBcCistCSAgICAgICAgICAgaWYgdGVzdCAtZiAkJGZpbGU7IHRoZW4gXAorLQkgICAgICAg ICAgICAgbG4gLXMgLi4vJCRsaW5rLyQkZmlsZSAkKERFU1RESVIpJChsb2NhbGVkaXIpLyQkbGFu Zy8kJGxjLyQkZmlsZTsgXAorLQkgICAgICAgICAgIGZpOyBcCistCSAgICAgICAgIGRvbmUpOyBc CistCSAgICAgICAgcm0gLWYgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxhbmcvJCRsYy5vbGQ7 IFwKKy0JICAgICAgZWxzZSBcCistCSAgICAgICAgaWYgdGVzdCAtZCAkKERFU1RESVIpJChsb2Nh bGVkaXIpLyQkbGFuZy8kJGxjOyB0aGVuIFwKKy0JICAgICAgICAgIDo7IFwKKy0JICAgICAgICBl bHNlIFwKKy0JICAgICAgICAgIHJtIC1mICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQk bGM7IFwKKy0JICAgICAgICAgIG1rZGlyICQoREVTVERJUikkKGxvY2FsZWRpcikvJCRsYW5nLyQk bGM7IFwKKy0JICAgICAgICBmaTsgXAorLQkgICAgICBmaTsgXAorLQkgICAgZmk7IFwKKy0JICBk b25lOyBcCistCWRvbmUKKy0KKy0jIERlZmluZSB0aGlzIGFzIGVtcHR5IHVudGlsIEkgZm91bmQg YSB1c2VmdWwgYXBwbGljYXRpb24uCistaW5zdGFsbGNoZWNrOgorLQorLXVuaW5zdGFsbDogdW5p bnN0YWxsLWV4ZWMgdW5pbnN0YWxsLWRhdGEKKy11bmluc3RhbGwtZXhlYzoKKy11bmluc3RhbGwt ZGF0YTogdW5pbnN0YWxsLWRhdGEtQFVTRV9OTFNACistCWlmIHRlc3QgIiQoUEFDS0FHRSkiID0g ImdldHRleHQtdG9vbHMiOyB0aGVuIFwKKy0JICBmb3IgZmlsZSBpbiAkKERJU1RGSUxFUy5jb21t b24pIE1ha2V2YXJzLnRlbXBsYXRlOyBkbyBcCistCSAgICBybSAtZiAkKERFU1RESVIpJChnZXR0 ZXh0c3JjZGlyKS8kJGZpbGU7IFwKKy0JICBkb25lOyBcCistCWVsc2UgXAorLQkgIDogOyBcCist CWZpCistdW5pbnN0YWxsLWRhdGEtbm86CistdW5pbnN0YWxsLWRhdGEteWVzOgorLQljYXRhbG9n cz0nJChDQVRBTE9HUyknOyBcCistCWZvciBjYXQgaW4gJCRjYXRhbG9nczsgZG8gXAorLQkgIGNh dD1gYmFzZW5hbWUgJCRjYXRgOyBcCistCSAgbGFuZz1gZWNobyAkJGNhdCB8IHNlZCAtZSAncy9c LmdtbyQkLy8nYDsgXAorLQkgIGZvciBsYyBpbiBMQ19NRVNTQUdFUyAkKEVYVFJBX0xPQ0FMRV9D QVRFR09SSUVTKTsgZG8gXAorLQkgICAgcm0gLWYgJChERVNURElSKSQobG9jYWxlZGlyKS8kJGxh bmcvJCRsYy8kKERPTUFJTikubW87IFwKKy0JICBkb25lOyBcCistCWRvbmUKKy0KKy1jaGVjazog YWxsCistCistaW5mbyBkdmkgcHMgcGRmIGh0bWwgdGFncyBUQUdTIGN0YWdzIENUQUdTIElEOgor LQorLW1vc3RseWNsZWFuOgorLQlybSAtZiByZW1vdmUtcG90Y2RhdGUuc2VkCistCXJtIC1mIHN0 YW1wLXBvVAorLQlybSAtZiBjb3JlIGNvcmUuKiAkKERPTUFJTikucG8gJChET01BSU4pLjFwbyAk KERPTUFJTikuMnBvICoubmV3LnBvCistCXJtIC1mciAqLm8KKy0KKy1jbGVhbjogbW9zdGx5Y2xl YW4KKy0KKy1kaXN0Y2xlYW46IGNsZWFuCistCXJtIC1mIE1ha2VmaWxlIE1ha2VmaWxlLmluIFBP VEZJTEVTICoubW8KKy0KKy1tYWludGFpbmVyLWNsZWFuOiBkaXN0Y2xlYW4KKy0JQGVjaG8gIlRo aXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlOyIKKy0JQGVjaG8g Iml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVp bGQuIgorLQlybSAtZiBzdGFtcC1wbyAkKEdNT0ZJTEVTKQorLQorLWRpc3RkaXIgPSAkKHRvcF9i dWlsZGRpcikvJChQQUNLQUdFKS0kKFZFUlNJT04pLyQoc3ViZGlyKQorLWRpc3QgZGlzdGRpcjoK Ky0JJChNQUtFKSB1cGRhdGUtcG8KKy0JQCQoTUFLRSkgZGlzdDIKKy0jIFRoaXMgaXMgYSBzZXBh cmF0ZSB0YXJnZXQgYmVjYXVzZSAndXBkYXRlLXBvJyBtdXN0IGJlIGV4ZWN1dGVkIGJlZm9yZS4K Ky1kaXN0Mjogc3RhbXAtcG8gJChESVNURklMRVMpCistCWRpc3RzPSIkKERJU1RGSUxFUykiOyBc CistCWlmIHRlc3QgIiQoUEFDS0FHRSkiID0gImdldHRleHQtdG9vbHMiOyB0aGVuIFwKKy0JICBk aXN0cz0iJCRkaXN0cyBNYWtldmFycy50ZW1wbGF0ZSI7IFwKKy0JZmk7IFwKKy0JaWYgdGVzdCAt ZiAkKHNyY2RpcikvJChET01BSU4pLnBvdDsgdGhlbiBcCistCSAgZGlzdHM9IiQkZGlzdHMgJChE T01BSU4pLnBvdCBzdGFtcC1wbyI7IFwKKy0JZmk7IFwKKy0JaWYgdGVzdCAtZiAkKHNyY2Rpcikv Q2hhbmdlTG9nOyB0aGVuIFwKKy0JICBkaXN0cz0iJCRkaXN0cyBDaGFuZ2VMb2ciOyBcCistCWZp OyBcCistCWZvciBpIGluIDAgMSAyIDMgNCA1IDYgNyA4IDk7IGRvIFwKKy0JICBpZiB0ZXN0IC1m ICQoc3JjZGlyKS9DaGFuZ2VMb2cuJCRpOyB0aGVuIFwKKy0JICAgIGRpc3RzPSIkJGRpc3RzIENo YW5nZUxvZy4kJGkiOyBcCistCSAgZmk7IFwKKy0JZG9uZTsgXAorLQlpZiB0ZXN0IC1mICQoc3Jj ZGlyKS9MSU5HVUFTOyB0aGVuIGRpc3RzPSIkJGRpc3RzIExJTkdVQVMiOyBmaTsgXAorLQlmb3Ig ZmlsZSBpbiAkJGRpc3RzOyBkbyBcCistCSAgaWYgdGVzdCAtZiAkJGZpbGU7IHRoZW4gXAorLQkg ICAgY3AgLXAgJCRmaWxlICQoZGlzdGRpcikgfHwgZXhpdCAxOyBcCistCSAgZWxzZSBcCistCSAg ICBjcCAtcCAkKHNyY2RpcikvJCRmaWxlICQoZGlzdGRpcikgfHwgZXhpdCAxOyBcCistCSAgZmk7 IFwKKy0JZG9uZQorLQorLXVwZGF0ZS1wbzogTWFrZWZpbGUKKy0JJChNQUtFKSAkKERPTUFJTiku cG90LXVwZGF0ZQorLQl0ZXN0IC16ICIkKFVQREFURVBPRklMRVMpIiB8fCAkKE1BS0UpICQoVVBE QVRFUE9GSUxFUykKKy0JJChNQUtFKSB1cGRhdGUtZ21vCistCistIyBHZW5lcmFsIHJ1bGUgZm9y IGNyZWF0aW5nIFBPIGZpbGVzLgorLQorLS5ub3AucG8tY3JlYXRlOgorLQlAbGFuZz1gZWNobyAk QCB8IHNlZCAtZSAncy9cLnBvLWNyZWF0ZSQkLy8nYDsgXAorLQllY2hvICJGaWxlICQkbGFuZy5w byBkb2VzIG5vdCBleGlzdC4gSWYgeW91IGFyZSBhIHRyYW5zbGF0b3IsIHlvdSBjYW4gY3JlYXRl IGl0IHRocm91Z2ggJ21zZ2luaXQnLiIgMT4mMjsgXAorLQlleGl0IDEKKy0KKy0jIEdlbmVyYWwg cnVsZSBmb3IgdXBkYXRpbmcgUE8gZmlsZXMuCistCistLm5vcC5wby11cGRhdGU6CistCUBsYW5n PWBlY2hvICRAIHwgc2VkIC1lICdzL1wucG8tdXBkYXRlJCQvLydgOyBcCistCWlmIHRlc3QgIiQo UEFDS0FHRSkiID0gImdldHRleHQtdG9vbHMiOyB0aGVuIFBBVEg9YHB3ZGAvLi4vc3JjOiQkUEFU SDsgZmk7IFwKKy0JdG1wZGlyPWBwd2RgOyBcCistCWVjaG8gIiQkbGFuZzoiOyBcCistCXRlc3Qg IiQoc3JjZGlyKSIgPSAuICYmIGNkY21kPSIiIHx8IGNkY21kPSJjZCAkKHNyY2RpcikgJiYgIjsg XAorLQllY2hvICIkJHtjZGNtZH0kKE1TR01FUkdFKSAkJGxhbmcucG8gJChET01BSU4pLnBvdCAt byAkJGxhbmcubmV3LnBvIjsgXAorLQljZCAkKHNyY2Rpcik7IFwKKy0JaWYgJChNU0dNRVJHRSkg JCRsYW5nLnBvICQoRE9NQUlOKS5wb3QgLW8gJCR0bXBkaXIvJCRsYW5nLm5ldy5wbzsgdGhlbiBc CistCSAgaWYgY21wICQkbGFuZy5wbyAkJHRtcGRpci8kJGxhbmcubmV3LnBvID4vZGV2L251bGwg Mj4mMTsgdGhlbiBcCistCSAgICBybSAtZiAkJHRtcGRpci8kJGxhbmcubmV3LnBvOyBcCistCSAg ZWxzZSBcCistCSAgICBpZiBtdiAtZiAkJHRtcGRpci8kJGxhbmcubmV3LnBvICQkbGFuZy5wbzsg dGhlbiBcCistCSAgICAgIDo7IFwKKy0JICAgIGVsc2UgXAorLQkgICAgICBlY2hvICJtc2dtZXJn ZSBmb3IgJCRsYW5nLnBvIGZhaWxlZDogY2Fubm90IG1vdmUgJCR0bXBkaXIvJCRsYW5nLm5ldy5w byB0byAkJGxhbmcucG8iIDE+JjI7IFwKKy0JICAgICAgZXhpdCAxOyBcCistCSAgICBmaTsgXAor LQkgIGZpOyBcCistCWVsc2UgXAorLQkgIGVjaG8gIm1zZ21lcmdlIGZvciAkJGxhbmcucG8gZmFp bGVkISIgMT4mMjsgXAorLQkgIHJtIC1mICQkdG1wZGlyLyQkbGFuZy5uZXcucG87IFwKKy0JZmkK Ky0KKy0kKERVTU1ZUE9GSUxFUyk6CistCistdXBkYXRlLWdtbzogTWFrZWZpbGUgJChHTU9GSUxF UykKKy0JQDoKKy0KKy1NYWtlZmlsZTogTWFrZWZpbGUuaW4uaW4gTWFrZXZhcnMgJCh0b3BfYnVp bGRkaXIpL2NvbmZpZy5zdGF0dXMgQFBPTUFLRUZJTEVERVBTQAorLQljZCAkKHRvcF9idWlsZGRp cikgXAorLQkgICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAuaW4gcG8t ZGlyZWN0b3JpZXMKKy0KKy1mb3JjZToKKy0KKy0jIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykg b2YgR05VIG1ha2Ugbm90IHRvIGV4cG9ydCBhbGwgdmFyaWFibGVzLgorLSMgT3RoZXJ3aXNlIGEg c3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgorLS5OT0VY UE9SVDoKK2RpZmYgLS1naXQgYS9wby9NYWtldmFycyBiL3BvL01ha2V2YXJzCitkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDRkYjkwNTkuLjAwMDAwMDAKKy0tLSBhL3BvL01ha2V2YXJz CisrKysgL2Rldi9udWxsCitAQCAtMSw0MSArMCwwIEBACistIyBNYWtlZmlsZSB2YXJpYWJsZXMg Zm9yIFBPIGRpcmVjdG9yeSBpbiBhbnkgcGFja2FnZSB1c2luZyBHTlUgZ2V0dGV4dC4KKy0KKy0j IFVzdWFsbHkgdGhlIG1lc3NhZ2UgZG9tYWluIGlzIHRoZSBzYW1lIGFzIHRoZSBwYWNrYWdlIG5h bWUuCistRE9NQUlOID0gJChQQUNLQUdFKQorLQorLSMgVGhlc2UgdHdvIHZhcmlhYmxlcyBkZXBl bmQgb24gdGhlIGxvY2F0aW9uIG9mIHRoaXMgZGlyZWN0b3J5LgorLXN1YmRpciA9IHBvCistdG9w X2J1aWxkZGlyID0gLi4KKy0KKy0jIFRoZXNlIG9wdGlvbnMgZ2V0IHBhc3NlZCB0byB4Z2V0dGV4 dC4KKy1YR0VUVEVYVF9PUFRJT05TID0gLS1rZXl3b3JkPV8gLS1rZXl3b3JkPU5fCistCistIyBU aGlzIGlzIHRoZSBjb3B5cmlnaHQgaG9sZGVyIHRoYXQgZ2V0cyBpbnNlcnRlZCBpbnRvIHRoZSBo ZWFkZXIgb2YgdGhlCistIyAkKERPTUFJTikucG90IGZpbGUuICBTZXQgdGhpcyB0byB0aGUgY29w eXJpZ2h0IGhvbGRlciBvZiB0aGUgc3Vycm91bmRpbmcKKy0jIHBhY2thZ2UuICAoTm90ZSB0aGF0 IHRoZSBtc2dzdHIgc3RyaW5ncywgZXh0cmFjdGVkIGZyb20gdGhlIHBhY2thZ2UncworLSMgc291 cmNlcywgYmVsb25nIHRvIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG9mIHRoZSBwYWNrYWdlLikgIFRy YW5zbGF0b3JzIGFyZQorLSMgZXhwZWN0ZWQgdG8gdHJhbnNmZXIgdGhlIGNvcHlyaWdodCBmb3Ig dGhlaXIgdHJhbnNsYXRpb25zIHRvIHRoaXMgcGVyc29uCistIyBvciBlbnRpdHksIG9yIHRvIGRp c2NsYWltIHRoZWlyIGNvcHlyaWdodC4gIFRoZSBlbXB0eSBzdHJpbmcgc3RhbmRzIGZvcgorLSMg dGhlIHB1YmxpYyBkb21haW47IGluIHRoaXMgY2FzZSB0aGUgdHJhbnNsYXRvcnMgYXJlIGV4cGVj dGVkIHRvIGRpc2NsYWltCistIyB0aGVpciBjb3B5cmlnaHQuCistQ09QWVJJR0hUX0hPTERFUiA9 IENocmlzIEd1dGhyaWUsIEtldmluIFAuIFNtaXRoLCBTY290dCBTaWx2ZXksIEVyaWMgTWVobGhh ZmYsIEtldmluIFBvd2VsbCwgTmljayBUcm93biwgSmVmZiBOZWxzb24sIEt1cnQgU2llZ2wsIExh cnMgQmVybmhhcmRzc29uLCBOYXRoYW4gRG9zcywgTWljaGFlbCBLYW50bmVyLCBKYW1lcyBDYW1l cm9uCistCistIyBUaGlzIGlzIHRoZSBlbWFpbCBhZGRyZXNzIG9yIFVSTCB0byB3aGljaCB0aGUg dHJhbnNsYXRvcnMgc2hhbGwgcmVwb3J0CistIyBidWdzIGluIHRoZSB1bnRyYW5zbGF0ZWQgc3Ry aW5nczoKKy0jIC0gU3RyaW5ncyB3aGljaCBhcmUgbm90IGVudGlyZSBzZW50ZW5jZXMsIHNlZSB0 aGUgbWFpbnRhaW5lciBndWlkZWxpbmVzCistIyAgIGluIHRoZSBHTlUgZ2V0dGV4dCBkb2N1bWVu dGF0aW9uLCBzZWN0aW9uICdQcmVwYXJpbmcgU3RyaW5ncycuCistIyAtIFN0cmluZ3Mgd2hpY2gg dXNlIHVuY2xlYXIgdGVybXMgb3IgcmVxdWlyZSBhZGRpdGlvbmFsIGNvbnRleHQgdG8gYmUKKy0j ICAgdW5kZXJzdG9vZC4KKy0jIC0gU3RyaW5ncyB3aGljaCBtYWtlIGludmFsaWQgYXNzdW1wdGlv bnMgYWJvdXQgbm90YXRpb24gb2YgZGF0ZSwgdGltZSBvcgorLSMgICBtb25leS4KKy0jIC0gUGx1 cmFsaXNhdGlvbiBwcm9ibGVtcy4KKy0jIC0gSW5jb3JyZWN0IEVuZ2xpc2ggc3BlbGxpbmcuCist IyAtIEluY29ycmVjdCBmb3JtYXR0aW5nLgorLSMgSXQgY2FuIGJlIHlvdXIgZW1haWwgYWRkcmVz cywgb3IgYSBtYWlsaW5nIGxpc3QgYWRkcmVzcyB3aGVyZSB0cmFuc2xhdG9ycworLSMgY2FuIHdy aXRlIHRvIHdpdGhvdXQgYmVpbmcgc3Vic2NyaWJlZCwgb3IgdGhlIFVSTCBvZiBhIHdlYiBwYWdl IHRocm91Z2gKKy0jIHdoaWNoIHRoZSB0cmFuc2xhdG9ycyBjYW4gY29udGFjdCB5b3UuCistTVNH SURfQlVHU19BRERSRVNTID0gbmV0cmVrLWRldkB1cy5uZXRyZWsub3JnCistCistIyBUaGlzIGlz IHRoZSBsaXN0IG9mIGxvY2FsZSBjYXRlZ29yaWVzLCBiZXlvbmQgTENfTUVTU0FHRVMsIGZvciB3 aGljaCB0aGUKKy0jIG1lc3NhZ2UgY2F0YWxvZ3Mgc2hhbGwgYmUgdXNlZC4gIEl0IGlzIHVzdWFs bHkgZW1wdHkuCistRVhUUkFfTE9DQUxFX0NBVEVHT1JJRVMgPQorZGlmZiAtLWdpdCBhL3BvL1BP VEZJTEVTLmluIGIvcG8vUE9URklMRVMuaW4KK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5k ZXggYWIyMGRjYi4uMDAwMDAwMAorLS0tIGEvcG8vUE9URklMRVMuaW4KKysrKyAvZGV2L251bGwK K0BAIC0xLDIgKzAsMCBAQAorLSMgTGlzdCBvZiBzb3VyY2UgZmlsZXMgd2hpY2ggY29udGFpbiB0 cmFuc2xhdGFibGUgc3RyaW5ncy4KKy1tYWluLmMKK2RpZmYgLS1naXQgYS9wby9SdWxlcy1xdW90 IGIvcG8vUnVsZXMtcXVvdAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCA5YzJhOTk1 Li4wMDAwMDAwCistLS0gYS9wby9SdWxlcy1xdW90CisrKysgL2Rldi9udWxsCitAQCAtMSw0NyAr MCwwIEBACistIyBTcGVjaWFsIE1ha2VmaWxlIHJ1bGVzIGZvciBFbmdsaXNoIG1lc3NhZ2UgY2F0 YWxvZ3Mgd2l0aCBxdW90YXRpb24gbWFya3MuCistCistRElTVEZJTEVTLmNvbW1vbi5leHRyYTEg PSBxdW90LnNlZCBib2xkcXVvdC5zZWQgZW5AcXVvdC5oZWFkZXIgZW5AYm9sZHF1b3QuaGVhZGVy IGluc2VydC1oZWFkZXIuc2luIFJ1bGVzLXF1b3QKKy0KKy0uU1VGRklYRVM6IC5pbnNlcnQtaGVh ZGVyIC5wby11cGRhdGUtZW4KKy0KKy1lbkBxdW90LnBvLWNyZWF0ZToKKy0JJChNQUtFKSBlbkBx dW90LnBvLXVwZGF0ZQorLWVuQGJvbGRxdW90LnBvLWNyZWF0ZToKKy0JJChNQUtFKSBlbkBib2xk cXVvdC5wby11cGRhdGUKKy0KKy1lbkBxdW90LnBvLXVwZGF0ZTogZW5AcXVvdC5wby11cGRhdGUt ZW4KKy1lbkBib2xkcXVvdC5wby11cGRhdGU6IGVuQGJvbGRxdW90LnBvLXVwZGF0ZS1lbgorLQor LS5pbnNlcnQtaGVhZGVyLnBvLXVwZGF0ZS1lbjoKKy0JQGxhbmc9YGVjaG8gJEAgfCBzZWQgLWUg J3MvXC5wby11cGRhdGUtZW4kJC8vJ2A7IFwKKy0JaWYgdGVzdCAiJChQQUNLQUdFKSIgPSAiZ2V0 dGV4dCI7IHRoZW4gUEFUSD1gcHdkYC8uLi9zcmM6JCRQQVRIOyBHRVRURVhUTElCRElSPWBjZCAk KHRvcF9zcmNkaXIpL3NyYyAmJiBwd2RgOyBleHBvcnQgR0VUVEVYVExJQkRJUjsgZmk7IFwKKy0J dG1wZGlyPWBwd2RgOyBcCistCWVjaG8gIiQkbGFuZzoiOyBcCistCWxsPWBlY2hvICQkbGFuZyB8 IHNlZCAtZSAncy9ALiovLydgOyBcCistCUxDX0FMTD1DOyBleHBvcnQgTENfQUxMOyBcCistCWNk ICQoc3JjZGlyKTsgXAorLQlpZiAkKE1TR0lOSVQpIC1pICQoRE9NQUlOKS5wb3QgLS1uby10cmFu c2xhdG9yIC1sICQkbGwgLW8gLSAyPi9kZXYvbnVsbCB8IHNlZCAtZiAkJHRtcGRpci8kJGxhbmcu aW5zZXJ0LWhlYWRlciB8ICQoTVNHQ09OVikgLXQgVVRGLTggfCAkKE1TR0ZJTFRFUikgc2VkIC1m IGBlY2hvICQkbGFuZyB8IHNlZCAtZSAncy8uKkAvLydgLnNlZCAyPi9kZXYvbnVsbCA+ICQkdG1w ZGlyLyQkbGFuZy5uZXcucG87IHRoZW4gXAorLQkgIGlmIGNtcCAkJGxhbmcucG8gJCR0bXBkaXIv JCRsYW5nLm5ldy5wbyA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAorLQkgICAgcm0gLWYgJCR0bXBk aXIvJCRsYW5nLm5ldy5wbzsgXAorLQkgIGVsc2UgXAorLQkgICAgaWYgbXYgLWYgJCR0bXBkaXIv JCRsYW5nLm5ldy5wbyAkJGxhbmcucG87IHRoZW4gXAorLQkgICAgICA6OyBcCistCSAgICBlbHNl IFwKKy0JICAgICAgZWNobyAiY3JlYXRpb24gb2YgJCRsYW5nLnBvIGZhaWxlZDogY2Fubm90IG1v dmUgJCR0bXBkaXIvJCRsYW5nLm5ldy5wbyB0byAkJGxhbmcucG8iIDE+JjI7IFwKKy0JICAgICAg ZXhpdCAxOyBcCistCSAgICBmaTsgXAorLQkgIGZpOyBcCistCWVsc2UgXAorLQkgIGVjaG8gImNy ZWF0aW9uIG9mICQkbGFuZy5wbyBmYWlsZWQhIiAxPiYyOyBcCistCSAgcm0gLWYgJCR0bXBkaXIv JCRsYW5nLm5ldy5wbzsgXAorLQlmaQorLQorLWVuQHF1b3QuaW5zZXJ0LWhlYWRlcjogaW5zZXJ0 LWhlYWRlci5zaW4KKy0Jc2VkIC1lICcvXiMvZCcgLWUgJ3MvSEVBREVSL2VuQHF1b3QuaGVhZGVy L2cnICQoc3JjZGlyKS9pbnNlcnQtaGVhZGVyLnNpbiA+IGVuQHF1b3QuaW5zZXJ0LWhlYWRlcgor LQorLWVuQGJvbGRxdW90Lmluc2VydC1oZWFkZXI6IGluc2VydC1oZWFkZXIuc2luCistCXNlZCAt ZSAnL14jL2QnIC1lICdzL0hFQURFUi9lbkBib2xkcXVvdC5oZWFkZXIvZycgJChzcmNkaXIpL2lu c2VydC1oZWFkZXIuc2luID4gZW5AYm9sZHF1b3QuaW5zZXJ0LWhlYWRlcgorLQorLW1vc3RseWNs ZWFuOiBtb3N0bHljbGVhbi1xdW90CistbW9zdGx5Y2xlYW4tcXVvdDoKKy0Jcm0gLWYgKi5pbnNl cnQtaGVhZGVyCitkaWZmIC0tZ2l0IGEvcG8vVE9ETyBiL3BvL1RPRE8KK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggODBmMDZhMy4uMDAwMDAwMAorLS0tIGEvcG8vVE9ETworKysrIC9k ZXYvbnVsbAorQEAgLTEsNTUgKzAsMCBAQAorLWh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9n ZXR0ZXh0L0ZBUS5odG1sI2ludGVncmF0aW5nX2hvd3RvCistCistIyBBZGQgYW4gaW52b2NhdGlv biBvZiBBTV9HTlVfR0VUVEVYVChbZXh0ZXJuYWxdKSB0byB0aGUgcGFja2FnZSdzCistICBjb25m aWd1cmUue2FjLGlufSBmaWxlLiAgW0RPTkVdCistCistIyBJbnZva2UgXHUyMDFjZ2V0dGV4dGl6 ZSAtLWNvcHlcdTIwMWQuIEl0IHdpbGwgZG8gbW9zdCBvZiB0aGUKKy0gIGF1dG9jb25mL2F1dG9t YWtlIHJlbGF0ZWQgd29yayBmb3IgeW91LiAgW0RPTkVdCistCistCVBsZWFzZSBhZGQgdGhlIGZp bGVzIGdldHRleHQubTQgaWNvbnYubTQgbGliLWxkLm00IGxpYi1saW5rLm00CistCWxpYi1wcmVm aXgubTQgbmxzLm00IHBvLm00IHByb2d0ZXN0Lm00IGZyb20gdGhlCistCS91c3Ivc2hhcmUvYWNs b2NhbCBkaXJlY3RvcnkgdG8geW91ciBhY2xvY2FsLm00IGZpbGUuCistCistCWNhdAorLQkvdXNy L3NoYXJlL2FjbG9jYWwve2dldHRleHQubTQsaWNvbnYubTQsbGliLWxkLm00LGxpYi1saW5rLm00 LGxpYi1wcmVmaXgubTQsbmxzLm00LHBvLm00LHByb2d0ZXN0Lm00fQorLQk+PiBhY2xvY2FsLm00 CistCistIyBBZGQgdGhlIGdldHRleHQuaCBmaWxlIHRvIHRoZSBwYWNrYWdlJ3Mgc291cmNlIGRp cmVjdG9yeSwgYW5kCistICBpbmNsdWRlIGl0IGluIGFsbCBzb3VyY2UgZmlsZXMgdGhhdCBjb250 YWluIHRyYW5zbGF0YWJsZSBzdHJpbmdzIG9yCistICBkbyBvdXRwdXQgdmlhIHByaW50ZiBvciBm cHJpbnRmLiAgW0RPTkVdCistCistIyBJbiB0aGUgc291cmNlIGZpbGUgZGVmaW5pbmcgdGhlIG1h aW4oKSBmdW5jdGlvbiBvZiB0aGUgcHJvZ3JhbSwgYWRkCistICB0aGVzZSBsaW5lcyB0byB0aGUg aGVhZGVyCistCistI2luY2x1ZGUgPGxvY2FsZS5oPgorLSNpbmNsdWRlICJnZXR0ZXh0LmgiCist CistYW5kIHRoZXNlIGxpbmVzIG5lYXIgdGhlIGJlZ2lubmluZyBvZiB0aGUgbWFpbigpIGZ1bmN0 aW9uOgorLQorLXNldGxvY2FsZSAoTENfQUxMLCAiIik7CistYmluZHRleHRkb21haW4gKFBBQ0tB R0UsIExPQ0FMRURJUik7CistdGV4dGRvbWFpbiAoUEFDS0FHRSk7CistCistW0RPTkVdCistCist IyBNYXJrIGFsbCBzdHJpbmdzIHRoYXQgc2hvdWxkIGJlIHRyYW5zbGF0ZWQgd2l0aCBfKCksIGxp a2UgdGhpczoKKy0gIF8oIk5vIGVycm9ycyBmb3VuZC4iKS4gV2hpbGUgZG9pbmcgdGhpcywgdHJ5 IHRvIHR1cm4gdGhlIHN0cmluZ3MKKy0gIGludG8gZ29vZCBFbmdsaXNoLCBvbmUgZW50aXJlIHNl bnRlbmNlIHBlciBzdHJpbmcsIG5vdCBtb3JlIHRoYW4gb25lCistICBwYXJhZ3JhcGggcGVyIHN0 cmluZywgYW5kIHVzZSBmb3JtYXQgc3RyaW5ncyBpbnN0ZWFkIG9mIHN0cmluZworLSAgY29uY2F0 ZW5hdGlvbi4gVGhpcyBpcyBuZWVkZWQgc28gdGhhdCB0aGUgdHJhbnNsYXRvcnMgY2FuIHByb3Zp ZGUKKy0gIGFjY3VyYXRlIHRyYW5zbGF0aW9ucy4gIFtQQVJUTFkgRE9ORV0KKy0KKy0jIEluIGV2 ZXJ5IHNvdXJjZSBmaWxlIGNvbnRhaW5pbmcgdHJhbnNsYXRhYmxlIHN0cmluZ3MsIGFkZCB0aGVz ZQorLSAgbGluZXMgdG8gdGhlIGhlYWRlcjoKKy0KKy0jaW5jbHVkZSAiZ2V0dGV4dC5oIgorLSNk ZWZpbmUgXyhzdHJpbmcpIGdldHRleHQgKHN0cmluZykKKy0KKy0jIEluIHRoZSBmcmVzaGx5IGNy ZWF0ZWQgcG8vIGRpcmVjdG9yeSwgc2V0IHVwIHRoZSBQT1RGSUxFUy5pbiBmaWxlLAorLSAgYW5k IGRvIGEgXHUyMDFjbWFrZSB1cGRhdGUtcG9cdTIwMWQuIFRoZW4gZGlzdHJpYnV0ZSB0aGUgZ2Vu ZXJhdGVkCistICAucG90IGZpbGUgdG8geW91ciBuZWFyZXN0IHRyYW5zbGF0aW9uIHByb2plY3Qu CistCistW1BBUlRMWSBET05FXQorLQorLSMgU2hvcnRseSBiZWZvcmUgYSByZWxlYXNlLCBpbnRl Z3JhdGUgdGhlIHRyYW5zbGF0b3JzJyAucG8gZmlsZXMgaW50bworLSAgdGhlIHBvLyBkaXJlY3Rv cnkgYW5kIGRvIFx1MjAxY21ha2UgdXBkYXRlLXBvXHUyMDFkIGFnYWluLgorZGlmZiAtLWdpdCBh L3BvL2JvbGRxdW90LnNlZCBiL3BvL2JvbGRxdW90LnNlZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCA0YjkzN2FhLi4wMDAwMDAwCistLS0gYS9wby9ib2xkcXVvdC5zZWQKKysrKyAv ZGV2L251bGwKK0BAIC0xLDEwICswLDAgQEAKKy1zLyJcKFteIl0qXCkiL+KAnFwx4oCdL2cKKy1z L2BcKFteYCddKlwpJy/igJhcMeKAmS9nCistcy8gJ1woW15gJ10qXCknIC8g4oCYXDHigJkgL2cK Ky1zLyAnXChbXmAnXSpcKSckLyDigJhcMeKAmS9nCistcy9eJ1woW15gJ10qXCknIC/igJhcMeKA mSAvZworLXMv4oCc4oCdLyIiL2cKKy1zL+KAnC/igJwbWzFtL2cKKy1zL+KAnS8bWzBt4oCdL2cK Ky1zL+KAmC/igJgbWzFtL2cKKy1zL+KAmS8bWzBt4oCZL2cKK2RpZmYgLS1naXQgYS9wby9lbkBi b2xkcXVvdC5oZWFkZXIgYi9wby9lbkBib2xkcXVvdC5oZWFkZXIKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggZmVkYjZhMC4uMDAwMDAwMAorLS0tIGEvcG8vZW5AYm9sZHF1b3QuaGVh ZGVyCisrKysgL2Rldi9udWxsCitAQCAtMSwyNSArMCwwIEBACistIyBBbGwgdGhpcyBjYXRhbG9n ICJ0cmFuc2xhdGVzIiBhcmUgcXVvdGF0aW9uIGNoYXJhY3RlcnMuCistIyBUaGUgbXNnaWRzIG11 c3QgYmUgQVNDSUkgYW5kIHRoZXJlZm9yZSBjYW5ub3QgY29udGFpbiByZWFsIHF1b3RhdGlvbgor LSMgY2hhcmFjdGVycywgb25seSBzdWJzdGl0dXRlcyBsaWtlIGdyYXZlIGFjY2VudCAoMHg2MCks IGFwb3N0cm9waGUgKDB4MjcpCistIyBhbmQgZG91YmxlIHF1b3RlICgweDIyKS4gVGhlc2Ugc3Vi c3RpdHV0ZXMgbG9vayBzdHJhbmdlOyBzZWUKKy0jIGh0dHA6Ly93d3cuY2wuY2FtLmFjLnVrL35t Z2syNS91Y3MvcXVvdGVzLmh0bWwKKy0jCistIyBUaGlzIGNhdGFsb2cgdHJhbnNsYXRlcyBncmF2 ZSBhY2NlbnQgKDB4NjApIGFuZCBhcG9zdHJvcGhlICgweDI3KSB0bworLSMgbGVmdCBzaW5nbGUg cXVvdGF0aW9uIG1hcmsgKFUrMjAxOCkgYW5kIHJpZ2h0IHNpbmdsZSBxdW90YXRpb24gbWFyayAo VSsyMDE5KS4KKy0jIEl0IGFsc28gdHJhbnNsYXRlcyBwYWlycyBvZiBhcG9zdHJvcGhlICgweDI3 KSB0bworLSMgbGVmdCBzaW5nbGUgcXVvdGF0aW9uIG1hcmsgKFUrMjAxOCkgYW5kIHJpZ2h0IHNp bmdsZSBxdW90YXRpb24gbWFyayAoVSsyMDE5KQorLSMgYW5kIHBhaXJzIG9mIHF1b3RhdGlvbiBt YXJrICgweDIyKSB0bworLSMgbGVmdCBkb3VibGUgcXVvdGF0aW9uIG1hcmsgKFUrMjAxQykgYW5k IHJpZ2h0IGRvdWJsZSBxdW90YXRpb24gbWFyayAoVSsyMDFEKS4KKy0jCistIyBXaGVuIG91dHB1 dCB0byBhbiBVVEYtOCB0ZXJtaW5hbCwgdGhlIHF1b3RhdGlvbiBjaGFyYWN0ZXJzIGFwcGVhciBw ZXJmZWN0bHkuCistIyBXaGVuIG91dHB1dCB0byBhbiBJU08tODg1OS0xIHRlcm1pbmFsLCB0aGUg c2luZ2xlIHF1b3RhdGlvbiBtYXJrcyBhcmUKKy0jIHRyYW5zbGl0ZXJhdGVkIHRvIGFwb3N0cm9w aGVzIChieSBpY29udiBpbiBnbGliYyAyLjIgb3IgbmV3ZXIpIG9yIHRvCistIyBncmF2ZS9hY3V0 ZSBhY2NlbnQgKGJ5IGxpYmljb252KSwgYW5kIHRoZSBkb3VibGUgcXVvdGF0aW9uIG1hcmtzIGFy ZQorLSMgdHJhbnNsaXRlcmF0ZWQgdG8gMHgyMi4KKy0jIFdoZW4gb3V0cHV0IHRvIGFuIEFTQ0lJ IHRlcm1pbmFsLCB0aGUgc2luZ2xlIHF1b3RhdGlvbiBtYXJrcyBhcmUKKy0jIHRyYW5zbGl0ZXJh dGVkIHRvIGFwb3N0cm9waGVzLCBhbmQgdGhlIGRvdWJsZSBxdW90YXRpb24gbWFya3MgYXJlCist IyB0cmFuc2xpdGVyYXRlZCB0byAweDIyLgorLSMKKy0jIFRoaXMgY2F0YWxvZyBmdXJ0aGVybW9y ZSBkaXNwbGF5cyB0aGUgdGV4dCBiZXR3ZWVuIHRoZSBxdW90YXRpb24gbWFya3MgaW4KKy0jIGJv bGQgZmFjZSwgYXNzdW1pbmcgdGhlIFZUMTAwL1hUZXJtIGVzY2FwZSBzZXF1ZW5jZXMuCistIwor ZGlmZiAtLWdpdCBhL3BvL2VuQHF1b3QuaGVhZGVyIGIvcG8vZW5AcXVvdC5oZWFkZXIKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggYTk2NDdmYy4uMDAwMDAwMAorLS0tIGEvcG8vZW5A cXVvdC5oZWFkZXIKKysrKyAvZGV2L251bGwKK0BAIC0xLDIyICswLDAgQEAKKy0jIEFsbCB0aGlz IGNhdGFsb2cgInRyYW5zbGF0ZXMiIGFyZSBxdW90YXRpb24gY2hhcmFjdGVycy4KKy0jIFRoZSBt c2dpZHMgbXVzdCBiZSBBU0NJSSBhbmQgdGhlcmVmb3JlIGNhbm5vdCBjb250YWluIHJlYWwgcXVv dGF0aW9uCistIyBjaGFyYWN0ZXJzLCBvbmx5IHN1YnN0aXR1dGVzIGxpa2UgZ3JhdmUgYWNjZW50 ICgweDYwKSwgYXBvc3Ryb3BoZSAoMHgyNykKKy0jIGFuZCBkb3VibGUgcXVvdGUgKDB4MjIpLiBU aGVzZSBzdWJzdGl0dXRlcyBsb29rIHN0cmFuZ2U7IHNlZQorLSMgaHR0cDovL3d3dy5jbC5jYW0u YWMudWsvfm1nazI1L3Vjcy9xdW90ZXMuaHRtbAorLSMKKy0jIFRoaXMgY2F0YWxvZyB0cmFuc2xh dGVzIGdyYXZlIGFjY2VudCAoMHg2MCkgYW5kIGFwb3N0cm9waGUgKDB4MjcpIHRvCistIyBsZWZ0 IHNpbmdsZSBxdW90YXRpb24gbWFyayAoVSsyMDE4KSBhbmQgcmlnaHQgc2luZ2xlIHF1b3RhdGlv biBtYXJrIChVKzIwMTkpLgorLSMgSXQgYWxzbyB0cmFuc2xhdGVzIHBhaXJzIG9mIGFwb3N0cm9w aGUgKDB4MjcpIHRvCistIyBsZWZ0IHNpbmdsZSBxdW90YXRpb24gbWFyayAoVSsyMDE4KSBhbmQg cmlnaHQgc2luZ2xlIHF1b3RhdGlvbiBtYXJrIChVKzIwMTkpCistIyBhbmQgcGFpcnMgb2YgcXVv dGF0aW9uIG1hcmsgKDB4MjIpIHRvCistIyBsZWZ0IGRvdWJsZSBxdW90YXRpb24gbWFyayAoVSsy MDFDKSBhbmQgcmlnaHQgZG91YmxlIHF1b3RhdGlvbiBtYXJrIChVKzIwMUQpLgorLSMKKy0jIFdo ZW4gb3V0cHV0IHRvIGFuIFVURi04IHRlcm1pbmFsLCB0aGUgcXVvdGF0aW9uIGNoYXJhY3RlcnMg YXBwZWFyIHBlcmZlY3RseS4KKy0jIFdoZW4gb3V0cHV0IHRvIGFuIElTTy04ODU5LTEgdGVybWlu YWwsIHRoZSBzaW5nbGUgcXVvdGF0aW9uIG1hcmtzIGFyZQorLSMgdHJhbnNsaXRlcmF0ZWQgdG8g YXBvc3Ryb3BoZXMgKGJ5IGljb252IGluIGdsaWJjIDIuMiBvciBuZXdlcikgb3IgdG8KKy0jIGdy YXZlL2FjdXRlIGFjY2VudCAoYnkgbGliaWNvbnYpLCBhbmQgdGhlIGRvdWJsZSBxdW90YXRpb24g bWFya3MgYXJlCistIyB0cmFuc2xpdGVyYXRlZCB0byAweDIyLgorLSMgV2hlbiBvdXRwdXQgdG8g YW4gQVNDSUkgdGVybWluYWwsIHRoZSBzaW5nbGUgcXVvdGF0aW9uIG1hcmtzIGFyZQorLSMgdHJh bnNsaXRlcmF0ZWQgdG8gYXBvc3Ryb3BoZXMsIGFuZCB0aGUgZG91YmxlIHF1b3RhdGlvbiBtYXJr cyBhcmUKKy0jIHRyYW5zbGl0ZXJhdGVkIHRvIDB4MjIuCistIworZGlmZiAtLWdpdCBhL3BvL2lu c2VydC1oZWFkZXIuc2luIGIvcG8vaW5zZXJ0LWhlYWRlci5zaW4KK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggYjI2ZGUwMS4uMDAwMDAwMAorLS0tIGEvcG8vaW5zZXJ0LWhlYWRlci5z aW4KKysrKyAvZGV2L251bGwKK0BAIC0xLDIzICswLDAgQEAKKy0jIFNlZCBzY3JpcHQgdGhhdCBp bnNlcnRzIHRoZSBmaWxlIGNhbGxlZCBIRUFERVIgYmVmb3JlIHRoZSBoZWFkZXIgZW50cnkuCist IworLSMgQXQgZWFjaCBvY2N1cnJlbmNlIG9mIGEgbGluZSBzdGFydGluZyB3aXRoICJtc2dpZCAi LCB3ZSBleGVjdXRlIHRoZSBmb2xsb3dpbmcKKy0jIGNvbW1hbmRzLiBBdCB0aGUgZmlyc3Qgb2Nj dXJyZW5jZSwgaW5zZXJ0IHRoZSBmaWxlLiBBdCB0aGUgZm9sbG93aW5nCistIyBvY2N1cnJlbmNl cywgZG8gbm90aGluZy4gVGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gdGhlIGZpcnN0IGFuZCB0aGUg Zm9sbG93aW5nCistIyBvY2N1cnJlbmNlcyBpcyBhY2hpZXZlZCBieSBsb29raW5nIGF0IHRoZSBo b2xkIHNwYWNlLgorLS9ebXNnaWQgL3sKKy14CistIyBUZXN0IGlmIHRoZSBob2xkIHNwYWNlIGlz IGVtcHR5LgorLXMvbS9tLworLXRhCistIyBZZXMgaXQgd2FzIGVtcHR5LiBGaXJzdCBvY2N1cnJl bmNlLiBSZWFkIHRoZSBmaWxlLgorLXIgSEVBREVSCistIyBPdXRwdXQgdGhlIGZpbGUncyBjb250 ZW50cyBieSByZWFkaW5nIHRoZSBuZXh0IGxpbmUuIEJ1dCBkb24ndCBsb3NlIHRoZQorLSMgY3Vy cmVudCBsaW5lIHdoaWxlIGRvaW5nIHRoaXMuCistZworLU4KKy1iYgorLTphCistIyBUaGUgaG9s ZCBzcGFjZSB3YXMgbm9uZW1wdHkuIEZvbGxvd2luZyBvY2N1cnJlbmNlcy4gRG8gbm90aGluZy4K Ky14CistOmIKKy19CitkaWZmIC0tZ2l0IGEvcG8vcXVvdC5zZWQgYi9wby9xdW90LnNlZAorZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMTIyYzQ2Li4wMDAwMDAwCistLS0gYS9wby9x dW90LnNlZAorKysrIC9kZXYvbnVsbAorQEAgLTEsNiArMCwwIEBACistcy8iXChbXiJdKlwpIi/i gJxcMeKAnS9nCistcy9gXChbXmAnXSpcKScv4oCYXDHigJkvZworLXMvICdcKFteYCddKlwpJyAv IOKAmFwx4oCZIC9nCistcy8gJ1woW15gJ10qXCknJC8g4oCYXDHigJkvZworLXMvXidcKFteYCdd KlwpJyAv4oCYXDHigJkgL2cKKy1zL+KAnOKAnS8iIi9nCitkaWZmIC0tZ2l0IGEvcG8vcmVtb3Zl LXBvdGNkYXRlLnNpbiBiL3BvL3JlbW92ZS1wb3RjZGF0ZS5zaW4KK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMjQzNmM0OS4uMDAwMDAwMAorLS0tIGEvcG8vcmVtb3ZlLXBvdGNkYXRl LnNpbgorKysrIC9kZXYvbnVsbAorQEAgLTEsMTkgKzAsMCBAQAorLSMgU2VkIHNjcmlwdCB0aGF0 IHJlbW92ZSB0aGUgUE9ULUNyZWF0aW9uLURhdGUgbGluZSBpbiB0aGUgaGVhZGVyIGVudHJ5Cist IyBmcm9tIGEgUE9UIGZpbGUuCistIworLSMgVGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gdGhlIGZp cnN0IGFuZCB0aGUgZm9sbG93aW5nIG9jY3VycmVuY2VzIG9mIHRoZQorLSMgcGF0dGVybiBpcyBh Y2hpZXZlZCBieSBsb29raW5nIGF0IHRoZSBob2xkIHNwYWNlLgorLS9eIlBPVC1DcmVhdGlvbi1E YXRlOiAuKiIkL3sKKy14CistIyBUZXN0IGlmIHRoZSBob2xkIHNwYWNlIGlzIGVtcHR5LgorLXMv UC9QLworLXRhCistIyBZZXMgaXQgd2FzIGVtcHR5LiBGaXJzdCBvY2N1cnJlbmNlLiBSZW1vdmUg dGhlIGxpbmUuCistZworLWQKKy1iYgorLTphCistIyBUaGUgaG9sZCBzcGFjZSB3YXMgbm9uZW1w dHkuIEZvbGxvd2luZyBvY2N1cnJlbmNlcy4gRG8gbm90aGluZy4KKy14CistOmIKKy19CitkaWZm IC0tZ2l0IGEvc2VuZGRpc3QuYyBiL3NlbmRkaXN0LmMKK2luZGV4IDNmNjE1ZjYuLmNjNzc4NmUg MTAwNjQ0CistLS0gYS9zZW5kZGlzdC5jCisrKysgYi9zZW5kZGlzdC5jCitAQCAtMTUzLDcgKzE1 Myw3IEBAIGludCBwbWFjcm8oaW50IG1udW0sIGNoYXIgd2hvLCBXX0V2ZW50ICogZGF0YSkKKyAg IGlmIChrZXlzWzBdICE9ICdcMCcpCisgICAgIHsKKyAgICAgICBpZiAoKHBtID0gSU5ERVgoKGNo YXIgKikga2V5cywgd2hvKSkpCistCXdobyA9IG1hY3JvS2V5c1soKGludCkgcG0pIC0gKChpbnQp IGtleXMpXS5kZXN0OworKyAgICAgICAgd2hvID0gbWFjcm9LZXlzW3BtIC0gKGNoYXIgKikga2V5 c10uZGVzdDsKKyAgICAgfQorICNlbmRpZgorIAorZGlmZiAtLWdpdCBhL3Nob3J0LmMgYi9zaG9y dC5jCitpbmRleCBiMjMwYWNiLi4xNTU3ZTAzIDEwMDY0NAorLS0tIGEvc2hvcnQuYworKysrIGIv c2hvcnQuYworQEAgLTcsNiArNyw3IEBACisgI2luY2x1ZGUgPHN0ZGlvLmg+CisgI2luY2x1ZGUg PHN0ZGxpYi5oPgorICNpbmNsdWRlIDxuZXRkYi5oPgorKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+ CisgCisgI2luY2x1ZGUgIldsaWIuaCIKKyAjaW5jbHVkZSAiZGVmcy5oIgorQEAgLTkxNiw3ICs5 MTcsNyBAQCB2b2lkICAgIGhhbmRsZVNNZXNzYWdlKHN0cnVjdCBtZXNnX3Nfc3BhY2tldCAqcGFj a2V0KQorICAgY2hhciAgICBhZGRyYnVmWzldOworIAorICAgaWYgKGRlYnVnKQorLSAgICBwcmlu dGYoIkxlbmd0aCBvZiBNZXNzYWdlIGlzOiAlZCAgdG90YWwgU2l6ZSAlZCBcbiIsIHN0cmxlbigm cGFja2V0LT5tZXNnKSwgKGludCkgcGFja2V0LT5sZW5ndGgpOworKyAgICBwcmludGYoIkxlbmd0 aCBvZiBNZXNzYWdlIGlzOiAlemQgIHRvdGFsIFNpemUgJWQgXG4iLCBzdHJsZW4oJnBhY2tldC0+ bWVzZyksIChpbnQpIHBhY2tldC0+bGVuZ3RoKTsKKyAgIGlmIChwYWNrZXQtPm1fZnJvbSA+PSBN QVhQTEFZRVIpCisgICAgIHBhY2tldC0+bV9mcm9tID0gMjU1OworIAorQEAgLTE3MzQsNyArMTcz NSw3IEBAIHZvaWQgICAgaGFuZGxlU1dhcm5pbmcoc3RydWN0IHdhcm5pbmdfc19zcGFja2V0ICpw YWNrZXQpCisgICAgIGNhc2UgREdIT1NUS0lMTDoKKyAgICAgICB7CisgCXN0cnVjdCBtZXNnX3Nw YWNrZXQgbXNnOworLQl1c2hvcnQgIGRhbWFnZTsKKysJdW5zaWduZWQgc2hvcnQgZGFtYWdlOwor IAorIAlkYW1hZ2UgPSAodW5zaWduZWQgY2hhcikga2FyZzM7CisgCWRhbWFnZSB8PSAodW5zaWdu ZWQgY2hhcikgKGthcmc0ICYgMHhmZikgPDwgODsKK0BAIC0xOTc5LDcgKzE5ODAsNyBAQCB1bnNp Z25lZCBjaGFyICpzYnVmOworICAgc3RydWN0IHBoYXNlcl9zX3NwYWNrZXQgKnBhY2tldCA9IChz dHJ1Y3QgcGhhc2VyX3Nfc3BhY2tldCAqKSAmc2J1ZlswXTsKKyAKKyAgIC8qIG5vdCBuaWNlIGJ1 dC4uICovCistICByZWdpc3RlciBpbnQgcG51bSwgc3RhdHVzLCB0YXJnZXQsIHgsIHksIGRpcjsK KysgIHJlZ2lzdGVyIGludCBwbnVtLCBzdGF0dXMsIHRhcmdldCA9IDAsIHggPSAwLCB5ID0gMCwg ZGlyID0gMDsKKyAKKyAgIHN0YXR1cyA9IHBhY2tldC0+c3RhdHVzICYgMHgwZjsKKyAgIHBudW0g PSBwYWNrZXQtPnBudW0gJiAweDNmOworZGlmZiAtLWdpdCBhL3NtZXNzYWdlLmMgYi9zbWVzc2Fn ZS5jCitpbmRleCAyN2E0MWZjLi5lYjc5ZjZmIDEwMDY0NAorLS0tIGEvc21lc3NhZ2UuYworKysr IGIvc21lc3NhZ2UuYworQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkICAgIHNtZXNzYWdlKGNoYXIg aWNoYXIpCisgICAgICAgaWYgKGtleXNbMF0gIT0gJ1wwJykKKyAJeworIAkgIGlmICgocG0gPSBJ TkRFWCgoY2hhciAqKSBrZXlzLCBpY2hhcikpKQorLQkgICAgaWNoYXIgPSBtYWNyb0tleXNbKChp bnQpIHBtKSAtICgoaW50KSBrZXlzKV0uZGVzdDsKKysJICAgIGljaGFyID0gbWFjcm9LZXlzW3Bt IC0gKGNoYXIgKikga2V5c10uZGVzdDsKKyAJfQorICNlbmRpZgorIAorZGlmZiAtLWdpdCBhL3Nv Y2tldC5jIGIvc29ja2V0LmMKK2luZGV4IGZmZjQ1NGQuLjY5NDM2MzYgMTAwNjQ0CistLS0gYS9z b2NrZXQuYworKysrIGIvc29ja2V0LmMKK0BAIC03ODIsNiArNzgyLDcgQEAgdHJ5YWdhaW46Cisg ICAgIHsKKyAgICAgICBwZXJyb3IoInVuYWJsZSB0byBnZXQgcGVlcm5hbWUiKTsKKyAgICAgICBz ZXJ2ZXJOYW1lID0gIm5vd2hlcmUiOworKyAgICAgIHByaW50ZigiQ29ubmVjdGlvbiBmcm9tIHNl cnZlclxuIik7CisgICAgIH0KKyAgIGVsc2UKKyAgICAgeworQEAgLTc5MSwxNCArNzkyLDE1IEBA IHRyeWFnYWluOgorIAl7CisgCSAgc2VydmVyTmFtZSA9IChjaGFyICopIG1hbGxvYyhzdHJsZW4o aHAtPmhfbmFtZSkgKyAxKTsKKyAJICBzdHJjcHkoc2VydmVyTmFtZSwgaHAtPmhfbmFtZSk7Cisr CSAgcHJpbnRmKCJDb25uZWN0aW9uIGZyb20gc2VydmVyICVzICglcylcbiIsIHNlcnZlck5hbWUs IGluZXRfbnRvYShhZGRyLnNpbl9hZGRyKSk7CisgCX0KKyAgICAgICBlbHNlCisgCXsKKyAJICBz ZXJ2ZXJOYW1lID0gKGNoYXIgKikgbWFsbG9jKHN0cmxlbihpbmV0X250b2EoYWRkci5zaW5fYWRk cikpICsgMSk7CisgCSAgc3RyY3B5KHNlcnZlck5hbWUsIGluZXRfbnRvYShhZGRyLnNpbl9hZGRy KSk7CisrCSAgcHJpbnRmKCJDb25uZWN0aW9uIGZyb20gc2VydmVyICVzXG4iLCBzZXJ2ZXJOYW1l KTsKKyAJfQorICAgICB9CistICBwcmludGYoIkNvbm5lY3Rpb24gZnJvbSBzZXJ2ZXIgJXMgKDB4 JWx4KVxuIiwgc2VydmVyTmFtZSwgc2VydmVyYWRkcik7CisgCisgfQorIAorQEAgLTEyNTgsNyAr MTI2MCw3IEBAIHN0YXRpYyBpbnQgZG9SZWFkKGludCBhc29jaykKKyAgICAgICAgICAgICAgICAg Im5leHQgYnl0ZSAlZCAoMHglMDJ4KVxuIiwgKmJ1ZnB0ciwgKmJ1ZnB0cik7CisgCisgICAgICAg ICBmcHJpbnRmKHN0ZGVyciwgInByb3RvY29sIGJ1ZmZlciBkdW1wLCBieXRlcyAlZCwgW2J1ZnB0 cl0gYXQgJWQgOlxuIiwKKy0gICAgICAgICAgICAgICAgY291bnQsIGJ1ZnB0ciAtIGJ1Zik7Cisr ICAgICAgICAgICAgICAgIGNvdW50LCAoaW50KSAoYnVmcHRyIC0gYnVmKSk7CisgICAgICAgICBm b3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICBpZiAoaSA9PSAoYnVmcHRy IC0gYnVmKSkgeworICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiWyUwMnhdIiwgKHVuc2ln bmVkIGludCkgYnVmW2ldICYgMHhmZik7CitAQCAtMjI0MiwxMSArMjI0NCwxMCBAQCB2b2lkICAg IGhhbmRsZUZsYWdzKHN0cnVjdCBmbGFnc19zcGFja2V0ICpwYWNrZXQpCisgICAgIH0KKyAjZW5k aWYKKyAKKy0gIGlmIChwbGF5ZXJzWyh1bnNpZ25lZCBjaGFyKSBwYWNrZXQtPnBudW1dLnBfZmxh Z3MgIT0gbnRvaGwocGFja2V0LT5mbGFncykKKysgIGlmIChwbC0+cF9mbGFncyAhPSBudG9obChw YWNrZXQtPmZsYWdzKQorIAorICNpZmRlZiBJTkNMVURFX1ZJU1RSQUNUCistICAgICAgfHwgcGxh eWVyc1sodW5zaWduZWQgY2hhcikgcGFja2V0LT5wbnVtXS5wX3RyYWN0b3IgIT0KKy0gICAgICAo KHNob3J0KSBwYWNrZXQtPnRyYWN0b3IgJiAofjB4NDApKQorKyAgICAgIHx8IHBsLT5wX3RyYWN0 b3IgIT0gKChzaG9ydCkgcGFja2V0LT50cmFjdG9yICYgKH4weDQwKSkKKyAjZW5kaWYKKyAKKyAg ICAgICApCitAQCAtMjI1NywxNiArMjI1OCwxNiBAQCB2b2lkICAgIGhhbmRsZUZsYWdzKHN0cnVj dCBmbGFnc19zcGFja2V0ICpwYWNrZXQpCisgICBlbHNlCisgICAgIHJldHVybjsKKyAKKy0gIHBs YXllcnNbKHVuc2lnbmVkIGNoYXIpIHBhY2tldC0+cG51bV0ucF9mbGFncyA9IG50b2hsKHBhY2tl dC0+ZmxhZ3MpOworKyAgcGwtPnBfZmxhZ3MgPSBudG9obChwYWNrZXQtPmZsYWdzKTsKKyAKKyAj aWZkZWYgSU5DTFVERV9WSVNUUkFDVAorICAgaWYgKHBhY2tldC0+dHJhY3RvciAmIDB4NDApIHsK Ky0gICAgcGxheWVyc1sodW5zaWduZWQgY2hhcikgcGFja2V0LT5wbnVtXS5wX3RyYWN0b3IgPQor KyAgICBwbC0+cF90cmFjdG9yID0KKyAgICAgICAoc2hvcnQpIHBhY2tldC0+dHJhY3RvciAmICh+ MHg0MCk7IC8qIEFUTSB2aXNpYmxlIHRyYWN0b3JzICovCisgICB9IGVsc2UKKyAjZW5kaWYgLyog SU5DTFVERV9WSVNUUkFDVCAqLworIAorLSAgICBwbGF5ZXJzWyh1bnNpZ25lZCBjaGFyKSBwYWNr ZXQtPnBudW1dLnBfdHJhY3RvciA9IC0xOworKyAgICBwbC0+cF90cmFjdG9yID0gLTE7CisgfQor IAorIHZvaWQgICAgaGFuZGxlS2lsbHMoc3RydWN0IGtpbGxzX3NwYWNrZXQgKnBhY2tldCkKK0BA IC0yODQ5LDcgKzI4NTAsNyBAQCBoYW5kbGVHZW5lcmljMzJfYiAoc3RydWN0IGdlbmVyaWNfMzJf c3BhY2tldF9iICpwYWNrZXQpCisgCSAgaWRsaW5nID0gMDsKKyAgICAgICAgIH0KKyAgICAgICB9 IGVsc2UgeworLSAgICAgICAgaWYgKCFjb250ZXh0LT5nYW1ldXAgJiBHVV9VTlNBRkUpIHsKKysg ICAgICAgIGlmICghKGNvbnRleHQtPmdhbWV1cCAmIEdVX1VOU0FGRSkpIHsKKyAgICAgICAgICAg aWYgKCFpZGxpbmcpIHsKKyAJICAgIGlmIChyYXRlIDwgMCkgeworIAkgICAgICB3YXJuaW5nKCJT YWZlIGlkbGUgc3RhcnQuIik7CitAQCAtMzQ5Niw3ICszNDk3LDcgQEAgc3RhdGljIGludCBvcGVu VWRwQ29ubih2b2lkKQorIAkgICAgfQorIAl9CisgICAgICAgc2VydmVyYWRkciA9IGFkZHIuc2lu X2FkZHIuc19hZGRyOworLSAgICAgIFVEUERJQUcoKCJGb3VuZCBzZXJ2ZXJhZGRyID09IDB4JWx4 XG4iLCBzZXJ2ZXJhZGRyKSk7CisrICAgICAgVURQRElBRygoIkZvdW5kIHNlcnZlcmFkZHIgPT0g JXNcbiIsIGluZXRfbnRvYShhZGRyLnNpbl9hZGRyKSkpOworICAgICB9CisgICByZXR1cm4gMDsK KyB9CitAQCAtMzUxMCw3ICszNTExLDggQEAgaW50IGNvbm5VZHBDb25uKCkKKyAgIGFkZHIuc2lu X2ZhbWlseSA9IEFGX0lORVQ7CisgICBhZGRyLnNpbl9wb3J0ID0gaHRvbnModWRwU2VydmVyUG9y dCk7CisgCistICBVRFBESUFHKCgiQ29ubmVjdGluZyB0byBob3N0IDB4JWx4IG9uIHBvcnQgJWRc biIsIHNlcnZlcmFkZHIsIHVkcFNlcnZlclBvcnQpKTsKKysgIFVEUERJQUcoKCJDb25uZWN0aW5n IHRvIGhvc3QgJXMgb24gcG9ydCAlZFxuIiwKKysJICAgaW5ldF9udG9hKGFkZHIuc2luX2FkZHIp LCB1ZHBTZXJ2ZXJQb3J0KSk7CisgICBpZiAoY29ubmVjdCh1ZHBTb2NrLCAoc3RydWN0IHNvY2th ZGRyICopICZhZGRyLCBzaXplb2YoYWRkcikpIDwgMCkKKyAgICAgeworICAgICAgIHBlcnJvcigi bmV0cmVrOiB1bmFibGUgdG8gY29ubmVjdCBVRFAgc29ja2V0Iik7CitAQCAtMzU4Miw4ICszNTg0 LDcgQEAgc3RhdGljIGludCByZWN2VWRwQ29ubih2b2lkKQorICAgICB7CisgICAgICAgLyogc2Fm ZT8gKi8KKyAgICAgICBzZXJ2ZXJhZGRyID0gZnJvbS5zaW5fYWRkci5zX2FkZHI7CistICAgICAg VURQRElBRygoIldhcm5pbmc6IGZyb20gMHgleCwgYnV0IHNlcnZlciBpcyAweCVseFxuIiwKKy0J ICAgICAgIGZyb20uc2luX2FkZHIuc19hZGRyLCBzZXJ2ZXJhZGRyKSk7CisrICAgICAgVURQRElB RygoIldhcm5pbmc6IGZyb20gZGlmZmVyZW50IElQXG4iKSk7CisgICAgIH0KKyAgIGlmIChmcm9t LnNpbl9mYW1pbHkgIT0gQUZfSU5FVCkKKyAgICAgeworQEAgLTM3MDcsOCArMzcwOCw4IEBAIHZv aWQgICAgaGFuZGxlU2VxdWVuY2Uoc3RydWN0IHNlcXVlbmNlX3NwYWNrZXQgKnBhY2tldCkKKyAJ ICAgICAgcmVjZW50X2NvdW50ICs9IChuZXdzZXEgLSBzZXF1ZW5jZSkgLSAxOworIAkgICAgICBp ZiAodWRwV2luKQorIAkJdWRwcmVmcmVzaChVRFBfRFJPUFBFRCk7CistCSAgICAgIFVEUERJQUco KCJzZXF1ZW5jZT0lbGQsIG5ld3NlcT0lbGQsIHdlIGxvc3Qgc29tZVxuIiwKKy0JCSAgICAgICBz ZXF1ZW5jZSwgbmV3c2VxKSk7CisrCSAgICAgIFVEUERJQUcoKCJzZXF1ZW5jZT0lZCwgbmV3c2Vx PSVkLCB3ZSBsb3N0IHNvbWVcbiIsCisrCQkgICAgICAgKGludCkgc2VxdWVuY2UsIChpbnQpIG5l d3NlcSkpOworIAkgICAgfQorIAkgIHNlcXVlbmNlID0gbmV3c2VxOworIAkgIC8qIFNfUDIgKi8K K0BAIC0zNzIyLDEyICszNzIzLDEyIEBAIHZvaWQgICAgaGFuZGxlU2VxdWVuY2Uoc3RydWN0IHNl cXVlbmNlX3NwYWNrZXQgKnBhY2tldCkKKyAJICAvKiByZWplY3QgKi8KKyAJICBpZiAocGFja2V0 LT50eXBlID09IFNQX1NDX1NFUVVFTkNFKQorIAkgICAgeworLQkgICAgICBWX1VEUERJQUcoKCIo aWdub3JpbmcgcmVwZWF0ICVsZClcbiIsIG5ld3NlcSkpOworKwkgICAgICBWX1VEUERJQUcoKCIo aWdub3JpbmcgcmVwZWF0ICVkKVxuIiwgKGludCkgbmV3c2VxKSk7CisgCSAgICB9CisgCSAgZWxz ZQorIAkgICAgeworLQkgICAgICBVRFBESUFHKCgic2VxdWVuY2U9JWxkLCBuZXdzZXE9JWxkLCBp Z25vcmluZyB0cmFuc21pc3Npb25cbiIsCistCQkgICAgICAgc2VxdWVuY2UsIG5ld3NlcSkpOwor KwkgICAgICBVRFBESUFHKCgic2VxdWVuY2U9JWQsIG5ld3NlcT0lZCwgaWdub3JpbmcgdHJhbnNt aXNzaW9uXG4iLAorKwkJICAgICAgIChpbnQpIHNlcXVlbmNlLCAoaW50KSBuZXdzZXEpKTsKKyAJ ICAgIH0KKyAJICAvKiB0aGUgcmVtYWluaW5nIHBhY2tldHMgd2lsbCBiZSBkcm9wcGVkIGFuZCB3 ZSBzaG91bGRuJ3QgY291bnQgdGhlCisgCSAgICogKiAqIFNQX1NFUVVFTkNFIHBhY2tldCBlaXRo ZXIgKi8KK2RpZmYgLS1naXQgYS9zb3VuZC5jIGIvc291bmQuYworaW5kZXggYmI3NjVhYy4uYThj MzNkMiAxMDA2NDQKKy0tLSBhL3NvdW5kLmMKKysrKyBiL3NvdW5kLmMKK0BAIC04ODgsNyArODg4 LDkgQEAgc3RhdGljIGNoYXIgKkRBVEFGSUxFKGNvbnN0IGNoYXIqIHdhdikgeworICAqIExvYWQg dGhlIC53YXZlIGZpbGVzIGludG8gdGhlIHNvdW5kcyBhcnJheQorICAqLworIHN0YXRpYyBpbnQg bG9hZFNvdW5kcyh2b2lkKSB7CisrI2lmZGVmIFNPVU5EX1dBUk5fTUlTU0lORworIAlpbnQgaTsK KysjZW5kaWYKKyAKKyAJc291bmRzW0NMT0FLX1dBVl0gPSBNaXhfTG9hZFdBVihEQVRBRklMRSgi bnRfY2xvYWtlZC53YXYiKSk7CisgCXNvdW5kc1tFTlRFUl9TSElQX1dBVl0gPSBNaXhfTG9hZFdB VihEQVRBRklMRSgibnRfZW50ZXJfc2hpcC53YXYiKSk7CitAQCAtOTU1LDYgKzk1Nyw3IEBAIHZv aWQgSW5pdF9Tb3VuZCh2b2lkKSB7CisgCisgI2lmIGRlZmluZWQoc2dpKQorIAlpbnQgZXJyOwor KyNlbGlmIGRlZmluZWQoSEFWRV9TREwpCisgI2Vsc2UKKyAJY2hhciBidWZbUEFUSF9NQVhdOwor ICNlbmRpZgorQEAgLTEwNjIsNiArMTA2NSwxMSBAQCB2b2lkIEluaXRfU291bmQodm9pZCkgewor IAorICAgICAgICAgTWl4X0FsbG9jYXRlQ2hhbm5lbHMoMTYpOworIAorKwlpZiAoZ2V0ZGVmYXVs dCgic291bmR2b2wiKSAhPSBOVUxMKSB7CisrCSAgaW50IHZvbCA9IGF0b2koZ2V0ZGVmYXVsdCgi c291bmR2b2wiKSk7CisrCSAgTWl4X1ZvbHVtZSgtMSwgdm9sKTsKKysJfQorKworIAkvKiBJZiB3 ZSBzdWNjZXNzZnVsbHkgbG9hZGVkIHRoZSB3YXYgZmlsZXMsIHNvIHNodXQtb2ZmCisgCSAgIHNv dW5kX2luaXQgYW5kIHBsYXkgdGhlIGludHJvZHVjdGlvbiAqLworIAlpZiAobG9hZFNvdW5kcygp KSB7CitAQCAtMTI0Miw3ICsxMjUwLDkgQEAgdm9pZCBFbmdpbmVfU291bmQoaW50IHNwZWVkLCBp bnQgbWF4c3BlZWQpIHsKKyAjZGVmaW5lIFNPVU5EX0lOSVQgICAgTUVTU0FHRV9TT1VORCArIDIK KyAjZGVmaW5lIFNPVU5EX0RPTkUgICAgTUVTU0FHRV9TT1VORCArIDMKKyAKKysjaWYgIWRlZmlu ZWQoSEFWRV9TREwpCisgc3RhdGljIHZvaWQgc291bmRyZWZyZXNoKGludCBpKTsKKysjZW5kaWYK KyAKKyBpbnQgc291bmRfd2luZG93X2hlaWdodCh2b2lkKSB7CisgI2lmIGRlZmluZWQoSEFWRV9T REwpCitkaWZmIC0tZ2l0IGEvc3RyaW5nX3V0aWwuYyBiL3N0cmluZ191dGlsLmMKK2luZGV4IDQz ZTgxZGUuLjU3MTIyZjYgMTAwNjQ0CistLS0gYS9zdHJpbmdfdXRpbC5jCisrKysgYi9zdHJpbmdf dXRpbC5jCitAQCAtNTMsNiArNTMsMTQgQEAgY2hhciAgICpmdG9hKGZsb2F0IGZ2YWwsIGNoYXIg KnJlc3VsdCwgaW50IHBhZCwgaW50IGlwcmVjLCBpbnQgZHByZWMpCisgICBpbnQgICAgIGksIGl2 YWw7CisgICBmbG9hdCAgIHZhbCA9IGZ2YWw7CisgCisrICBpZiAoZnZhbCA8IDApIHsKKysgICAg Zm9yIChpID0gMDsgaSA8PSBpcHJlYyArIGRwcmVjICsgMTsgaSsrKSB7CisrICAgICAgIHJlc3Vs dFtpXSA9ICc/JzsKKysgICAgfQorKyAgICByZXN1bHRbaXByZWMgKyBkcHJlYyArIDFdID0gJ1ww JzsKKysgICAgcmV0dXJuIHJlc3VsdDsKKysgIH0KKysKKyAgIGlmICgoaXByZWMgKyBkcHJlYykg IT0gMCkKKyAgICAgcmVzdWx0W2lwcmVjICsgZHByZWMgKyAxXSA9ICdcMCc7CisgCitkaWZmIC0t Z2l0IGEvc3RyaW5nX3V0aWwuaCBiL3N0cmluZ191dGlsLmgKK2luZGV4IDFhMWNjMzkuLmY5MTIw ZmMgMTAwNjQ0CistLS0gYS9zdHJpbmdfdXRpbC5oCisrKysgYi9zdHJpbmdfdXRpbC5oCitAQCAt MjAsNiArMjAsNyBAQCBjaGFyICppdG9hcGFkIChpbnQgdmFsLCBjaGFyICpyZXN1bHQsIGludCBw YWQsIGludCBwcmVjKTsKKyAgICAoaWYgcGFkIGlzIGZhbHNlKS4KKyAgICAKKyAgICBXQVJOSU5H OiB2YWwgbXVzdCBiZSA8PSAxMDAwMDAwMDAgKHNpemUgPCA5KS4KKysgICBEb2VzIG5vdCB3b3Jr IGZvciBuZWdhdGl2ZSBudW1iZXJzLgorICovCisgCisgCitkaWZmIC0tZ2l0IGEvc3lzdGVtLm1r LmluIGIvc3lzdGVtLm1rLmluCitpbmRleCAwZGJjOWIyLi5kMDAyYjkyIDEwMDY0NAorLS0tIGEv c3lzdGVtLm1rLmluCisrKysgYi9zeXN0ZW0ubWsuaW4KK0BAIC0xMCwzNCArMTAsMjQgQEAgZGF0 YXJvb3RkaXI9QGRhdGFyb290ZGlyQAorIAorIERFU1RESVI9CisgQklORElSPSR7cHJlZml4fS9n YW1lcworLURPQ0RJUj0ke2RhdGFyb290ZGlyfS9kb2MvJHtQQUNLQUdFfQorIFBJWE1BUERJUj0k e2RhdGFyb290ZGlyfS9waXhtYXBzLyR7UEFDS0FHRX0KKyBBUFBESVI9JHtkYXRhcm9vdGRpcn0v YXBwbGljYXRpb25zCisgCisgU0hFTEwJPSAvYmluL3NoCisgQ0MgICAgICA9IEBDQ0AKKyBMTgk9 IEBMTl9TQAorK0NXSE8gPSBcImB3aG9hbWlgQGBob3N0bmFtZSAtZmBcIgorIAorIFBST1RPSVpF ICAgPSBwcm90b2l6ZQorIFVOUFJPVE9JWkUgPSB1bnByb3RvaXplCisgSU5ERU5UICAgICA9IGlu ZGVudCAtaTIgLWJhcCAtYmFjYyAtYmFkIC1uYmMgLWJsIC1uaXAgLWRpOFwKKyAJCS1ucHNsIC1u Y2UgLWNsaTAuNSAtY2k0IC1ucGNzIC1mY2EgLW5jZGIgLXNjIC1jZDUwIC1jNTAKKyBUT1VDSAkg ICA9IHRvdWNoCistUk0JICAgPSBybSAtZiAKKy0KKy1SU0FfRkxBR1MgICAgICAgPSBATk9SU0FA IC1EUlNBCistUlNBU1JDICAgICAgICAgID0gQE5PUlNBQCByc2FfYm94LmMgcnNhX2JveF8wLmMg cnNhX2JveF8xLmMgcnNhX2JveF8yLmMgXAorLQkJcnNhX2JveF8zLmMgcnNhX2JveF80LmMgcnNh X2JveF81LmMgcnNhX2JveF82LmMgXAorLQkJcnNhX2JveF83LmMgcnNhX2JveF84LmMgcnNhX2Jv eF85LmMgcnNhX2JveF8xMC5jCistUlNBT0JKICAgICAgICAgID0gQE5PUlNBQCByc2FfYm94Lm8g cnNhX2JveF8wLm8gcnNhX2JveF8xLm8gcnNhX2JveF8yLm8gXAorLSAgICAgICAgICAgICAgICBy c2FfYm94XzMubyByc2FfYm94XzQubyByc2FfYm94XzUubyByc2FfYm94XzYubyBcCistCQlyc2Ff Ym94XzcubyByc2FfYm94XzgubyByc2FfYm94XzkubyByc2FfYm94XzEwLm8KKy1NUElOQyAgICAg ICAgICAgPSBATVBJTkNACistTE1QICAgICAgICAgICAgID0gQE1QTElCQAorK1JNCSAgID0gcm0g LWYKKyAKKyAjIE90aGVyIGxpYnJhcmllcyBuZWVlZGVkLiAoQWxsIHN5c3RlbXMgbmVlZCAtbFgx MSAtbG0pCisgCistTElCUyAgICAgICAgICAgID0gQExJQlNAIAorK0xJQlMgICAgICAgICAgICA9 IEBMSUJTQAorIElOQ1MJCT0gQElOQ1NACisgCisgIyBGbGFncyBmb3Igb3B0aW1pemluZworQEAg LTQ4LDcgKzM4LDcgQEAgT1BUICAgICAgICAgICAgID0gLWcgLVdhbGwKKyAjIEZsYWdzIGZvciBz aGFyZWQgbGlicmFyaWVzCisgCisgU0xfQ0ZMQUdTCT0gLWZQSUMKKy1TTF9MREZMQUdTCT0gLXNo YXJlZCAkKExJQlJBUklFUykgLWxjIAorK1NMX0xERkxBR1MJPSAtc2hhcmVkICQoTElCUkFSSUVT KSAtbGMKKyBTTF9MSUIgICAgICAgICAgPSBsaWJjb3cuc28uYC4vbmFtZSAxYAorIFNMX0xJQkZM QUdTCT0gLVdsLC1zb25hbWUsJChTTF9MSUIpCisgCitAQCAtNjUsMzggKzU1LDM0IEBAIFJBTkRP TU9CSiAgICAgICA9IEBMSUJPQkpTQAorICMgIE5vIGVkaXRhYmxlcyBiZWxvdyB0aGlzIHBvaW50 LgorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy0KKy1pbmNsdWRlICQoS0VZREVGKQorLQor LQorLVJPQkogCQk9IGNoZWNrLm8gY29sb3JzLm8gZGF0YS5vIGRlYXRoLm8gZGVmYXVsdHMubyBk bWVzc2FnZS5vXAorLSAgICAgICAgICAgICAgICAgIGVudGVyLm8gZmluZHNsb3QubyBnZXRuYW1l Lm8gZ2V0c2hpcC5vIGhlbHB3aW4ubyBpbmZvcm0ub1wKKy0gICAgICAgICAgICAgICAgICBpbnRl cmZhY2UubyBuZXd3aW4ubyBvcHRpb24ubyBwbGFuZXRsaXN0Lm8gbWFjcm93aW4ub1wKKy0JICAg ICAgICAgIG1hcC5vIHBsYXllcmxpc3QubyByYW5rbGlzdC5vIHJlc2VydmVkLm8gc2ludGFiLm9c CistCSAgICAgICAgICBzbWVzc2FnZS5vIHNvY2tldC5vIHBsYXliYWNrLm8gc3RhdHMubyB1dGls Lm8gd2FyLm8gd2FybmluZy5vXAorLQkgICAgICAgICAgdWRwb3B0Lm8gcGluZy5vIHBpbmdzdGF0 cy5vIHJvdGF0ZS5vIGxhZ21ldGVyLm8gcGFyc2VtZXRhLm9cCistCSAgICAgICAgICBuZXRzdGF0 Lm8gbmV0c3RhdG9wdC5vIHNwb3B0Lm8gZGFzaGJvYXJkLm8gZGFzaGJvYXJkMy5vIFwKKy0JICAg ICAgICAgIHNob3J0Lm8gZGlzdHJlc3MubyBzZW5kZGlzdC5vIGRlZndpbi5vIHRvb2xzLm8gc291 bmQub1wKKy0JCSAgZG9jd2luLm8gY2ZsYWdzLm8gYmVlcGxpdGUubyBmZWF0dXJlLm9cCistCQkg IHN0cmluZ191dGlsLm8gbG9jYWwubyBjZW5zb3IubyBjb3dtYWluLm8gY2FtZXJhLm8gbXlmLm8K Ky0KKy1SU1JDIAkJPSBjaGVjay5jIGNvbG9ycy5jIGRhdGEuYyBkZWF0aC5jIGRlZmF1bHRzLmMg ZG1lc3NhZ2UuY1wKKy0JICAgICAgICAgIGVudGVyLmMgZmluZHNsb3QuYyBnZXRuYW1lLmMgZ2V0 c2hpcC5jIGhlbHB3aW4uYyBpbmZvcm0uY1wKKy0JICAgICAgICAgIGlucHV0LmMgaW50ZXJmYWNl LmMgbmV3d2luLmMgb3B0aW9uLmMgcGxhbmV0bGlzdC5jXAorLSAgICAgICAgICAgICAgICAgIG1h Y3Jvd2luLmMgbWFwLmMgcGxheWVybGlzdC5jIHJhbmtsaXN0LmMgcmVkcmF3LmNcCistICAgICAg ICAgICAgICAgICAgc21lc3NhZ2UuYyBwYXJzZW1ldGEuYyBzb2NrZXQuYyBwbGF5YmFjay5jIHN0 YXRzLmMgdXRpbC5jIHdhci5jXAorLSAgICAgICAgICAgICAgICAgIHdhcm5pbmcuYyB1ZHBvcHQu YyBzaW50YWIuYyBwaW5nLmMgcGluZ3N0YXRzLmMgcm90YXRlLmNcCistICAgICAgICAgICAgICAg ICAgbGFnbWV0ZXIuYyBuZXRzdGF0LmMgbmV0c3RhdG9wdC5jIHNwb3B0LmMgZGFzaGJvYXJkLmMg ZGFzaGJvYXJkMy5jIFwKKy0JCSAgc2hvcnQuYyBkaXN0cmVzcy5jIHNlbmRkaXN0LmMgZGVmd2lu LmMgdG9vbHMuYyBzb3VuZC5jXAorLQkJICBkb2N3aW4uYyBjZmxhZ3MuYyBiZWVwbGl0ZS5jIGZl YXR1cmUuYyByZXNlcnZlZC5jXAorLQkJICBzdHJpbmdfdXRpbC5jIGxvY2FsLmMgY2Vuc29yLmMg Y293bWFpbi5jIGNhbWVyYS5jIG15Zi5jCistCistCistSU5DTFVERVMgCT0gc3RydWN0LmggcGFj a2V0cy5oIGRlZnMuaCBjb3B5cmlnaHQuaCBiaXRtYXBzLmggZGF0YS5oXAorLQkgICAgICAgICAg b2xkYml0bWFwcy5oIHRuZ2JpdG1hcHMuaCBodWxsYml0bWFwcy5oIHJhYmJpdGJpdG1hcHMuaFwK Ky0JCSAgc291bmQuaCBhdWRpby5oIGxpdGViaXRtYXBzLmggCistCistSU5QVVRPQkogCT0gaW5w dXQubyByZWRyYXcubyAKKytST0JKIAkJPSBjaGVjay5vIGNvbG9ycy5vIGRhdGEubyBkZWF0aC5v IGRlZmF1bHRzLm8gZG1lc3NhZ2UubyBcCisrICAgICAgICAgICAgICAgICAgZW50ZXIubyBmaW5k c2xvdC5vIGdldG5hbWUubyBnZXRzaGlwLm8gaGVscHdpbi5vIGluZm9ybS5vIFwKKysgICAgICAg ICAgICAgICAgICBpbnRlcmZhY2UubyBuZXd3aW4ubyBvcHRpb24ubyBwbGFuZXRsaXN0Lm8gbWFj cm93aW4ubyBcCisrCSAgICAgICAgICBtYXAubyBwbGF5ZXJsaXN0Lm8gcmFua2xpc3QubyByZXNl cnZlZC5vIHNpbnRhYi5vIFwKKysJICAgICAgICAgIHNtZXNzYWdlLm8gc29ja2V0Lm8gcGxheWJh Y2subyBzdGF0cy5vIHV0aWwubyB3YXIubyBcCisrCSAgICAgICAgICB3YXJuaW5nLm8gdWRwb3B0 Lm8gcGluZy5vIHBpbmdzdGF0cy5vIHJvdGF0ZS5vIGxhZ21ldGVyLm8gXAorKyAgICAgICAgICAg ICAgICAgIHBhcnNlbWV0YS5vIG5ldHN0YXQubyBuZXRzdGF0b3B0Lm8gc3BvcHQubyBkYXNoYm9h cmQubyBcCisrICAgICAgICAgICAgICAgICAgZGFzaGJvYXJkMy5vIHNob3J0Lm8gZGlzdHJlc3Mu byBzZW5kZGlzdC5vIGRlZndpbi5vIHRvb2xzLm8gXAorKyAgICAgICAgICAgICAgICAgIHNvdW5k Lm8gZG9jd2luLm8gY2ZsYWdzLm8gYmVlcGxpdGUubyBmZWF0dXJlLm8gc3RyaW5nX3V0aWwubyBc CisrICAgICAgICAgICAgICAgICAgbG9jYWwubyBjZW5zb3IubyBjb3dtYWluLm8gY2FtZXJhLm8g bXlmLm8KKysKKytSU1JDIAkJPSBjaGVjay5jIGNvbG9ycy5jIGRhdGEuYyBkZWF0aC5jIGRlZmF1 bHRzLmMgZG1lc3NhZ2UuYyBcCisrICAgICAgICAgICAgICAgICAgZW50ZXIuYyBmaW5kc2xvdC5j IGdldG5hbWUuYyBnZXRzaGlwLmMgaGVscHdpbi5jIGluZm9ybS5jIFwKKysJICAgICAgICAgIGlu cHV0LmMgaW50ZXJmYWNlLmMgbmV3d2luLmMgb3B0aW9uLmMgcGxhbmV0bGlzdC5jIFwKKysgICAg ICAgICAgICAgICAgICBtYWNyb3dpbi5jIG1hcC5jIHBsYXllcmxpc3QuYyByYW5rbGlzdC5jIHJl ZHJhdy5jIFwKKysgICAgICAgICAgICAgICAgICBzbWVzc2FnZS5jIHBhcnNlbWV0YS5jIHNvY2tl dC5jIHBsYXliYWNrLmMgc3RhdHMuYyB1dGlsLmMgXAorKyAgICAgICAgICAgICAgICAgIHdhci5j IHdhcm5pbmcuYyB1ZHBvcHQuYyBzaW50YWIuYyBwaW5nLmMgcGluZ3N0YXRzLmMgXAorKyAgICAg ICAgICAgICAgICAgIHJvdGF0ZS5jIGxhZ21ldGVyLmMgbmV0c3RhdC5jIG5ldHN0YXRvcHQuYyBz cG9wdC5jIFwKKysgICAgICAgICAgICAgICAgICBkYXNoYm9hcmQuYyBkYXNoYm9hcmQzLmMgc2hv cnQuYyBkaXN0cmVzcy5jIHNlbmRkaXN0LmMgXAorKyAgICAgICAgICAgICAgICAgIGRlZndpbi5j IHRvb2xzLmMgc291bmQuYyBkb2N3aW4uYyBjZmxhZ3MuYyBiZWVwbGl0ZS5jIFwKKysgICAgICAg ICAgICAgICAgICBmZWF0dXJlLmMgcmVzZXJ2ZWQuYyBzdHJpbmdfdXRpbC5jIGxvY2FsLmMgY2Vu c29yLmMgXAorKyAgICAgICAgICAgICAgICAgIGNvd21haW4uYyBjYW1lcmEuYyBteWYuYworKwor K0lOQ0xVREVTIAk9IHN0cnVjdC5oIHBhY2tldHMuaCBkZWZzLmggY29weXJpZ2h0LmggYml0bWFw cy5oIGRhdGEuaCBcCisrCSAgICAgICAgICBvbGRiaXRtYXBzLmggdG5nYml0bWFwcy5oIGh1bGxi aXRtYXBzLmggcmFiYml0Yml0bWFwcy5oIFwKKysJCSAgc291bmQuaCBhdWRpby5oIGxpdGViaXRt YXBzLmgKKysKKytJTlBVVE9CSiAJPSBpbnB1dC5vIHJlZHJhdy5vCisgTUFJTk9CSiAJPSBtYWlu Lm8KKyBNQUlOU1JDIAk9IG1haW4uYworIAorQEAgLTEwNiw1NSArOTIsMzQgQEAgWDExU1JDCQk9 IEBOT1gxMUAgeDExd2luZG93LmMgeDExc3ByaXRlLmMgYXVkaW8uYworIFdJTjMyT0JKCT0gQE5P V0lOMzJAIGdudV93aW4zMi5vIHdpbnNwcml0ZS5vIHdpbnNuZGxpYi5vCisgV0lOMzJTUkMJPSBA Tk9XSU4zMkAgZ251X3dpbjMyLmMgd2luc3ByaXRlLmMgd2luc25kbGliLmMKKyAKKy1TRExfQ0ZM QUdTIAk9IEBTRExfQ0ZMQUdTQAorIFNETF9DT05GSUcgCT0gQFNETF9DT05GSUdACisrU0RMX0NG TEFHUyAJPSBAU0RMX0NGTEFHU0AKKyBTRExfTElCUyAJPSBAU0RMX0xJQlNACisgU0RMX01JWEVS X0xJQlMJPSBAU0RMX01JWEVSX0xJQlNACisgCisgIyBmdWxsIHNjcmVlbiBzdXBwb3J0CisgWFhG ODZWTV9MSUJTICAgID0gLWxYeGY4NnZtCistIyBjYW1lcmEgc25hcHNob3Qgc3VwcG9ydAorLUlN TElCMl9MSUJTICAgICA9ICQoc2hlbGwgaW1saWIyLWNvbmZpZyAtLWxpYnMpCisgCisgU0hBUkVE IAk9ICQoU0xfQ0ZMQUdTKQorLUlOQ0RJUlMgPSAkKE1QSU5DKSAkKElOQ1MpCisrSU5DRElSUyA9 ICQoSU5DUykKKyBDRkxBR1MgPz0gJChPUFQpCistQ0ZMQUdTICs9ICQoRVhUUkFDRkxBR1MpICQo UlNBX0ZMQUdTKSAkKElOQ0RJUlMpCisrQ0ZMQUdTICs9ICQoSU5DRElSUykKKyBMREZMQUdTID89 IC1nCistTERGTEFHUyArPSAkKEVYVFJBTElOS0ZMQUdTKQorLUxJQlJBUklFUyA9ICQoTE1QKSAk KExJQlMpICQoRVhUUkFMSUJTKSAkKFNETF9MSUJTKSAkKFNETF9NSVhFUl9MSUJTKSAkKFhYRjg2 Vk1fTElCUykgJChJTUxJQjJfTElCUykKKytMSUJSQVJJRVMgPSAkKExJQlMpICQoRVhUUkFMSUJT KSAkKFNETF9MSUJTKSAkKFNETF9NSVhFUl9MSUJTKSAkKFhYRjg2Vk1fTElCUykKKyAKKy1uZXRy ZWstY2xpZW50LWNvdzogJChSU0FPQkopICQoUE1BS0UpIG51bGwgJChST0JKKSAkKE1BSU5PQkop ICQoSU5QVVRPQkopICQoWDExT0JKKSAkKFdJTjMyT0JKKSAgJChSQU5ET01PQkopIGNmbGFncy5j CistCSQoQ0MpICQoTERGTEFHUykgLW8gbmV0cmVrLWNsaWVudC1jb3cgJChST0JKKSAkKFJTQU9C SikgJChJTlBVVE9CSikgXAorLQkkKE1BSU5PQkopICQoWDExT0JKKSAkKFdJTjMyT0JKKSAkKFJB TkRPTU9CSikgJChMSUJSQVJJRVMpCisrbmV0cmVrLWNsaWVudC1jb3c6ICQoUE1BS0UpIG51bGwg JChST0JKKSAkKE1BSU5PQkopICQoSU5QVVRPQkopICQoWDExT0JKKSAkKFdJTjMyT0JKKSAkKFJB TkRPTU9CSikgY2ZsYWdzLmMKKysJJChDQykgJChMREZMQUdTKSAtbyBuZXRyZWstY2xpZW50LWNv dyAkKFJPQkopICQoSU5QVVRPQkopICQoTUFJTk9CSikgJChYMTFPQkopICQoV0lOMzJPQkopICQo UkFORE9NT0JKKSAkKExJQlJBUklFUykKKyAKKyBuZXRyZWsuc2hhcmVkOiBkb25lLmxpYmNvdyAk KE1BSU5PQkopICQoQ09XQVBJKQorIAkkKENDKSAkKExERkxBR1MpICQoTUFJTk9CSikgLUwuIC1s Y293ICQoTElCUykgLW8gbmV0cmVrLnNoYXJlZAorIAorLWRvbmUubGliY293OiAkKFBNQUtFKSAk KFJPQkopICQoUlNBT0JKKSAkKElOUFVUT0JKKSAkKFgxMU9CSikgJChXSU4zMk9CSikgJChSQU5E T01PQkopIAorLQkkKENDKSAkKFJPQkopICQoUlNBT0JKKSAkKElOUFVUT0JKKSBcCisrZG9uZS5s aWJjb3c6ICQoUE1BS0UpICQoUk9CSikgJChJTlBVVE9CSikgJChYMTFPQkopICQoV0lOMzJPQkop ICQoUkFORE9NT0JKKQorKwkkKENDKSAkKFJPQkopICQoSU5QVVRPQkopIFwKKyAJJChYMTFPQkop ICQoV0lOMzJPQkopICQoUkFORE9NT0JKKSAkKFNMX0xERkxBR1MpICQoU0xfTElCRkxBR1MpIC1v ICQoQ09XTElCKQorIAkkKFJNKSAkKFNMX0xJQikKKyAJJChMTikgJChDT1dMSUIpICQoU0xfTElC KQorIAkkKFRPVUNIKSBkb25lLmxpYmNvdworIAorLSNyc2FfYm94LmM6IG1ra2V5ICQoU0VDS0VZ RklMRSkKKy0kKFJTQVNSQyk6IG1ra2V5ICQoU0VDS0VZRklMRSkKKy0JLSQoUk0pICQoUlNBU1JD KQorLQkuL21ra2V5IC1jIC1rICQoU0VDS0VZRklMRSkKKy0JJChUT1VDSCkgJChSU0FTUkMpCist CUBlY2hvICJpbnQgc29jayA9IC0xOyIgPj5yc2FfYm94XzEuYworLQorLSQoU0VDS0VZRklMRSk6 CistCUBlY2hvIGdlbmVyYXRpbmcgYSBuZXcgY2xpZW50IGtleQorLQkkKE1BS0UpIG5ld2tleQor LQorLW1ra2V5OiBta2tleS5jICQoUkFORE9NT0JKKSBkZWZzLmgKKy0JJChDQykgJChDUFBGTEFH UykgJChDRkxBR1MpICQoTERGTEFHUykgJChNUElOQykgJChNUExJQikgLW8gbWtrZXkgbWtrZXku YyAkKFJBTkRPTU9CSikgJChMSUJSQVJJRVMpCistCistcmFuZG9taXplOiByYW5kb21pemUuYyAk KFJBTkRPTU9CSikgZGVmcy5oCistCSQoQ0MpICQoQ1BQRkxBR1MpICQoQ0ZMQUdTKSAkKExERkxB R1MpIC1vIHJhbmRvbWl6ZSByYW5kb21pemUuYyAkKFJBTkRPTU9CSikgJChMSUJSQVJJRVMpCist Cisgc291bmQubzogc291bmQuYworIAkkKENDKSAkKENQUEZMQUdTKSAkKENGTEFHUykgJChTRExf Q0ZMQUdTKSAtYyBzb3VuZC5jCisgCitAQCAtMTcxLDIwICsxMzYsMjAgQEAgY2ZsYWdzLmM6IG1r Y2ZsYWdzCisgbWtjZmxhZ3M6IG1rY2ZsYWdzLmMgc3lzdGVtLm1rIG51bGwgcGF0Y2hsZXZlbC5o IHZlcnNpb24uaAorIAkkKENDKSAkKENQUEZMQUdTKSAkKENGTEFHUykgJChMREZMQUdTKSAtbyBt a2NmbGFncyBta2NmbGFncy5jICQoTElCUkFSSUVTKQorIAorLXRhZ3M6ICQoUlNSQykgJChSU0FT UkMpCistCWN0YWdzICQoUlNSQykgJChSU0FTUkMpICQoSU5DTFVERVMpCisrdGFnczogJChSU1JD KQorKwljdGFncyAkKFJTUkMpICQoSU5DTFVERVMpCisgCistZGVwZW5kOiBjZmxhZ3MuYyBudWxs ICQoUlNBU1JDKQorLQktbWFrZWRlcGVuZCAtZiBzeXN0ZW0ubWsgJChSU0FfRkxBR1MpICQoUlNS QykgJChSU0FTUkMpICQoTUFJTlNSQykgXAorK2RlcGVuZDogY2ZsYWdzLmMgbnVsbAorKwktbWFr ZWRlcGVuZCAtZiBzeXN0ZW0ubWsgJChSU1JDKSAkKE1BSU5TUkMpIFwKKyAJJChYMTFTUkMpIG5h bWUuYyAkKElOQ0RJUlMpCisgCistcHJvdG86IGNmbGFncy5jIG51bGwgJChSU0FTUkMpCisrcHJv dG86IGNmbGFncy5jIG51bGwKKyAJJChQUk9UT0laRSkgJChSU1JDKSAkKE1BSU5TUkMpICQoWDEx U1JDKSAkKFdJTjMyU1JDKQorIAorLXVucHJvdG86IGNmbGFncy5jIG51bGwgJChSU0FTUkMpCisr dW5wcm90bzogY2ZsYWdzLmMgbnVsbAorIAkkKFVOUFJPVE9JWkUpICQoUlNSQykgJChNQUlOU1JD KSAkKFgxMVNSQykgJChXSU4zMlNSQykKKyAKKy1pbmRlbnQ6IGNmbGFncy5jIG51bGwgJChSU0FT UkMpCisraW5kZW50OiBjZmxhZ3MuYyBudWxsCisgCSQoSU5ERU5UKSAkKFJTUkMpICQoTUFJTlNS QykgJChJTkNMVURFUykgJChYMTFTUkMpICQoV0lOMzJTUkMpCisgCisgdG9fdW5peDogJChSU1JD KSAkKElOQ0xVREVTKSAkKE1BSU5TUkMpICQoWDExU1JDKQorQEAgLTIwMCwxMiArMTY1LDEwIEBA IHRvX2RvczogJChSU1JDKSAkKElOQ0xVREVTKSAkKE1BSU5TUkMpICQoWDExU1JDKSAkKFdJTjMy U1JDKQorIGluc3RhbGw6IG5ldHJlay1jbGllbnQtY293CisgCW1rZGlyIC1wICQoREVTVERJUikk KEJJTkRJUikKKyAJaW5zdGFsbCBuZXRyZWstY2xpZW50LWNvdyAkKERFU1RESVIpJChCSU5ESVIp CistCW1rZGlyIC1wICQoREVTVERJUikkKERPQ0RJUikKKy0JY3AgJChLRVlGSUxFKSAkKERFU1RE SVIpJChET0NESVIpCisgCW1rZGlyIC1wICQoREVTVERJUikkKFBJWE1BUERJUikKKyAJY3AgLXBy IHBpeG1hcHMvKiAkKERFU1RESVIpJChQSVhNQVBESVIpLworIAlta2RpciAtcCAkKERFU1RESVIp JChBUFBESVIpCistCWluc3RhbGwgbmV0cmVrLWNsaWVudC1jb3cuZGVza3RvcCAkKERFU1RESVIp JChBUFBESVIpLworKwljcCBuZXRyZWstY2xpZW50LWNvdy5kZXNrdG9wICQoREVTVERJUikkKEFQ UERJUikvCisgCisgbnVsbDoKKyAJQGVjaG8gIi8qIFRoaXMgZmlsZSBpcyBpbnRlbnRpb25hbGx5 IGVtcHR5ICovIiA+bnVsbAorZGlmZiAtLWdpdCBhL3gxMXNwcml0ZS5jIGIveDExc3ByaXRlLmMK K2luZGV4IDNiZDg3NDYuLjRhNGNlNDAgMTAwNjQ0CistLS0gYS94MTFzcHJpdGUuYworKysrIGIv eDExc3ByaXRlLmMKK0BAIC02NDUsNyArNjQ1LDcgQEAgdm9pZCAgICpTX1RvcnAoaW50IHRvcnBu bykKKyAgIGVsc2UKKyAgICAgeworICAgICAgIHNwcml0ZSA9ICZ0b3JwSW1nW3JlbWFwW3BsYXll cnNbdGhpcy0+dF9vd25lcl0ucF90ZWFtXV1bMF07CistICAgICAgc3ByaXRlLT52aWV3ID0gKytz cHJpdGUtPnZpZXcgJSBzcHJpdGUtPm52aWV3czsKKysgICAgICBzcHJpdGUtPnZpZXcgPSAoc3By aXRlLT52aWV3ICsgMSkgJSBzcHJpdGUtPm52aWV3czsKKyAgICAgICAvLyBGSVhNRTogdG9ycHMg cm90YXRlIGZhc3RlciB3aXRoIGhpZ2hlciBjbGllbnQgdXBkYXRlIHJhdGVzCisgICAgIH0KKyAK K0BAIC02ODQsNyArNjg0LDcgQEAgdm9pZCAgICpTX1BsYXNtYShpbnQgcGxhc21hdG9ycG5vKQor ICAgZWxzZQorICAgICB7CisgICAgICAgc3ByaXRlID0gJnBsYXNtYUltZ1tyZW1hcFtwbGF5ZXJz W3RoaXMtPnB0X293bmVyXS5wX3RlYW1dXVswXTsKKy0gICAgICBzcHJpdGUtPnZpZXcgPSArK3Nw cml0ZS0+dmlldyAlIHNwcml0ZS0+bnZpZXdzOworKyAgICAgIHNwcml0ZS0+dmlldyA9IChzcHJp dGUtPnZpZXcgKyAxKSAlIHNwcml0ZS0+bnZpZXdzOworICAgICB9CisgCisgICBpZiAoKHNwcml0 ZS0+aW1hZ2UgPT0gTm9QaXhtYXBFcnJvcikgfHwgKHBpeEZsYWdzICYgTk9fV0VQX1BJWCkpCitk aWZmIC0tZ2l0IGEveDExd2luZG93LmMgYi94MTF3aW5kb3cuYworaW5kZXggMDQ4MTRiNy4uYmZl N2E4MiAxMDA2NDQKKy0tLSBhL3gxMXdpbmRvdy5jCisrKysgYi94MTF3aW5kb3cuYworQEAgLTM2 NjcsMTEgKzM2NjcsNyBAQCBpbnQgdmlkZW9fbW9kZV9kb3RjbG9jaywgdmlkZW9fbW9kZV9saXN0 X3NpemU7Cisgc3RhdGljIHZvaWQgdmlkZW9fbW9kZV9vZmYoKQorIHsKKyAgIGlmICh2aWRlb19t b2RlX2N1cnJlbnQgIT0gdmlkZW9fbW9kZV9vcmlnaW5hbCkgeworLSAgICBpbnQgeDsKKy0gICAg eCA9IFhGODZWaWRNb2RlU3dpdGNoVG9Nb2RlKFdfRGlzcGxheSwgV19TY3JlZW4sIHZpZGVvX21v ZGVfb3JpZ2luYWwpOworLSNpZiBERUJVRyA+IDAKKy0gICAgZnByaW50ZihzdGRlcnIsICJ2aWRl b19tb2RlX29mZjogWEY4NlZpZE1vZGVTd2l0Y2hUb01vZGU6ICVkXG4iLCB4KTsKKy0jZW5kaWYK KysgICAgWEY4NlZpZE1vZGVTd2l0Y2hUb01vZGUoV19EaXNwbGF5LCBXX1NjcmVlbiwgdmlkZW9f bW9kZV9vcmlnaW5hbCk7CisgICAgIHZpZGVvX21vZGVfY3VycmVudCA9IHZpZGVvX21vZGVfb3Jp Z2luYWw7CisgICB9CisgfQorQEAgLTM3MjcsMTMgKzM3MjMsOSBAQCBzdGF0aWMgdm9pZCB2aWRl b19tb2RlX29uKCkKKyAgIC8qIGlmIHRoZXJlIGlzIGEgbW9kZSBsaW5lIGZvciAxMDI0eDc2OCB0 aGVuIHVzZSBpdCAqLworICAgZm9yIChsaW5lPTA7IGxpbmUgPCB2aWRlb19tb2RlX2xpc3Rfc2l6 ZTsgbGluZSsrKSB7CisgICAgIFhGODZWaWRNb2RlTW9kZUluZm8gKm1vZGUgPSB2aWRlb19tb2Rl X2xpc3RbbGluZV07CistICAgIGlmIChtb2RlLT5oZGlzcGxheSA9PSAoc21hbGxfc2NyZWVuID8g ODAwIDogMTAyNCkgJiYgCisrICAgIGlmIChtb2RlLT5oZGlzcGxheSA9PSAoc21hbGxfc2NyZWVu ID8gODAwIDogMTAyNCkgJiYKKyAJbW9kZS0+dmRpc3BsYXkgPT0gKHNtYWxsX3NjcmVlbiA/IDYw MCA6IDc2OCkpIHsKKy0gICAgICBpbnQgeDsKKy0gICAgICB4ID0gWEY4NlZpZE1vZGVTd2l0Y2hU b01vZGUoV19EaXNwbGF5LCBXX1NjcmVlbiwgbW9kZSk7CistI2lmIERFQlVHID4gMAorLSAgICAg IGZwcmludGYoc3RkZXJyLCAidmlkZW9fbW9kZV9vbjogWEY4NlZpZE1vZGVTd2l0Y2hUb01vZGU6 ICVkXG4iLCB4KTsKKy0jZW5kaWYKKysgICAgICBYRjg2VmlkTW9kZVN3aXRjaFRvTW9kZShXX0Rp c3BsYXksIFdfU2NyZWVuLCBtb2RlKTsKKyAgICAgICAvKiEgQGJ1ZzogaWYgdGhpcyBpcyBkb25l IG9uIGEgbm9uLWxvY2FsIGRpc3BsYXksIHRoZSBYIGVycm9yCisgICAgICAgWEY4NlZpZE1vZGVD bGllbnROb3RMb2NhbCBvY2N1cnMuICovCisgICAgICAgdmlkZW9fbW9kZV9jdXJyZW50ID0gbW9k ZTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbmV0cmVrLWNsaWVudC1jb3cvdGVtcGxhdGUgYi9zcmNw a2dzL25ldHJlay1jbGllbnQtY293L3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi40MmI0YTY3MmFmZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbmV0 cmVrLWNsaWVudC1jb3cvdGVtcGxhdGUKQEAgLTAsMCArMSwyNiBAQAorIyBUZW1wbGF0ZSBmaWxl IGZvciAnbmV0cmVrLWNsaWVudC1jb3cnCitwa2duYW1lPW5ldHJlay1jbGllbnQtY293Cit2ZXJz aW9uPTMuMy4xCityZXZpc2lvbj0xCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitob3N0bWFr ZWRlcGVuZHM9IiIKK21ha2VkZXBlbmRzPSJsaWJYMTEtZGV2ZWwgaW1saWIyLWRldmVsIGxpYlh4 Zjg2dm0tZGV2ZWwgZ21wLWRldmVsCisgU0RMX21peGVyLWRldmVsIFNETC1kZXZlbCBsaWJYcG0t ZGV2ZWwiCitkZXBlbmRzPSIiCitzaG9ydF9kZXNjPSJOZXRyZWsgQ2xpZW50IChDIGFuZCBYMTEp IgorbWFpbnRhaW5lcj0iVG95YW0gQ294IDxWYWVsYXRlcm5Adm9pZGxpbnV4Lm9yZz4iCitsaWNl bnNlPSJNSVQsIGN1c3RvbSIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5uZXRyZWsub3JnLyIKK2Rp c3RmaWxlcz0iaHR0cDovL3F1b3psLm5ldHJlay5vcmcvbmV0cmVrL25ldHJlay1jbGllbnQtY293 LSR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09YTllOTY5YmM1YWEyYTg4NDQ4MWY4MWU4OTk3 ZTcyNWNhMThlZWRiYTAxYzAxOGQ3ZTdkMzgzZTg1ZjE4M2FlMgorcGF0Y2hfYXJncz0iLU5wMSIK KworcG9zdF9pbnN0YWxsKCkgeworCXZsaWNlbnNlIENPUFlJTkcKKwl2bGljZW5zZSBjb3B5cmln aHQuaAorCXZsaWNlbnNlIGNvcHlyaWdodDIuaAorfQorCisjIFJFTUFSS1M6CisjIFNvdXJjZSB0 cmFja2VkIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9xdW96bC9uZXRyZWstY2xpZW50LWNvdworIyBD dXN0b20gaXMgYSBzb3J0IG9mIHB1YmxpYyBkb21haW4gZGVjbGFyYXRpb24K --===============1168546997069627909==--