From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=ALL_TRUSTED,PDS_OTHER_BAD_TLD, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 10166 invoked from network); 15 Feb 2022 21:57:09 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 15 Feb 2022 21:57:09 -0000 Content-Type: multipart/mixed; boundary="===============7642216651730325797==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Update_libgdal_and_proj_and_rebuild_against_them?= To: ml@inbox.vuxu.org From: ar-jan Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 15 Feb 2022 22:57:08 +0100 List-Id: Message-ID: <20220215215708.SF-jdAsabAt6RofYfhQ76syhWyUdXdHJHs93zUYj1VQ@z> GitHub notification mails are now in MIME to allow UTF8. --===============7642216651730325797== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgYXItamFuIGFnYWluc3QgbWFzdGVy IG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9hci1q YW4vdm9pZC1wYWNrYWdlcyBnZGFsLXByb2oKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgv dm9pZC1wYWNrYWdlcy9wdWxsLzMxNjg3CgpVcGRhdGUgbGliZ2RhbCBhbmQgcHJvaiBhbmQgcmVi dWlsZCBhZ2FpbnN0IHRoZW0KPCEtLSBNYXJrIGl0ZW1zIHdpdGggW3hdIHdoZXJlIGFwcGxpY2Fi bGUgLS0+DQoNCiMjIyMgR2VuZXJhbA0KLSBbIF0gVGhpcyBpcyBhIG5ldyBwYWNrYWdlIGFuZCBp dCBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVxdWlyZW1lbnRzXShodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL01hbnVhbC5tZCNxdWFsaXR5 LXJlcXVpcmVtZW50cykNCg0KIyMjIyBIYXZlIHRoZSByZXN1bHRzIG9mIHRoZSBwcm9wb3NlZCBj aGFuZ2VzIGJlZW4gdGVzdGVkPw0KLSBbIF0gSSB1c2UgdGhlIHBhY2thZ2VzIGFmZmVjdGVkIGJ5 IHRoZSBwcm9wb3NlZCBjaGFuZ2VzIG9uIGEgcmVndWxhciBiYXNpcyBhbmQgY29uZmlybSB0aGlz IFBSIHdvcmtzIGZvciBtZQ0KLSBbIF0gSSBnZW5lcmFsbHkgZG9uJ3QgdXNlIHRoZSBhZmZlY3Rl ZCBwYWNrYWdlcyBidXQgYnJpZWZseSB0ZXN0ZWQgdGhpcyBQUg0KDQo8IS0tDQpJZiBHaXRIdWIg Q0kgY2Fubm90IGJlIHVzZWQgdG8gdmFsaWRhdGUgdGhlIGJ1aWxkIHJlc3VsdCAoZm9yIGV4YW1w bGUsIGlmIHRoZQ0KYnVpbGQgaXMgbGlrZWx5IHRvIHRha2Ugc2V2ZXJhbCBob3VycyksIG1ha2Ug c3VyZSB0bw0KW3NraXAgQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24p Lg0KV2hlbiBza2lwcGluZyBDSSwgdW5jb21tZW50IGFuZCBmaWxsIG91dCB0aGUgZm9sbG93aW5n IHNlY3Rpb24uDQpOb3RlOiBmb3IgYnVpbGRzIHRoYXQgYXJlIGxpa2VseSB0byBjb21wbGV0ZSBp biBsZXNzIHRoYW4gMiBob3VycywgaXQgaXMgbm90DQphY2NlcHRhYmxlIHRvIHNraXAgQ0kuDQot LT4NCjwhLS0gDQojIyMjIERvZXMgaXQgYnVpbGQgYW5kIHJ1biBzdWNjZXNzZnVsbHk/IA0KKFBs ZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwg YXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxkLiBNb3JlIGFyZSBiZXR0ZXIuKQ0KLSBbIF0gSSBidWls dCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMp DQotIFsgXSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAo aWYgc3VwcG9ydGVkLiBtYXJrIGNyb3NzYnVpbGRzKToNCiAgLSBbIF0gYWFyY2g2NC1tdXNsDQog IC0gWyBdIGFybXY3bA0KICAtIFsgXSBhcm12NmwtbXVzbA0KLS0+DQoKCkEgcGF0Y2ggZmlsZSBm cm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zMTY4 Ny5wYXRjaCBpcyBhdHRhY2hlZA== --===============7642216651730325797== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gdal-proj-31687.patch" RnJvbSBjYmJjYzVkZGIwNDY2YzNkODIzNDk0MjEwMzU4ZTZiMDM4M2E1MTU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4K RGF0ZTogU3VuLCAxMyBGZWIgMjAyMiAyMzoxODo0MyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDEv MTddIHByb2o6IHVwZGF0ZSB0byA3LjIuMS4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgIHwg IDIgKy0KIHNyY3BrZ3MvcHJvai90ZW1wbGF0ZSB8IDEzICsrKysrKystLS0tLS0KIDIgZmlsZXMg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Nv bW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDBjNjAyNjBiNDY0Mi4uYjBmY2ZkMDQ5 MjZlIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTMw NjksNyArMzA2OSw3IEBAIGxpYndpdGhzY3RwLnNvLjEgbGtzY3RwLXRvb2xzLTEuMC4xN18xCiBs aWJuc3NfbGRhcC5zby4yIG5zcy1wYW0tbGRhcGQtMC45LjdfNAogbGlidW5zaGllbGQuc28uMCBs aWJ1bnNoaWVsZC0wLjZfMQogbGliTXlHVUlFbmdpbmUuc28uMy40LjEgbGlibXlndWktMy40LjFf MQotbGlicHJvai5zby4xOCBwcm9qLTYuMy4wXzEKK2xpYnByb2ouc28uMTkgcHJvai03LjIuMV8x CiBsaWJubG9wdC5zby4wIG5sb3B0LTIuNC4yXzEKIGxpYmViLnNvLjE2IGxpYmViLTQuMy4zXzEK IGxpYmNoaXBjYXJkLnNvLjYgbGliY2hpcGNhcmQtNS4wLjRfMQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9wcm9qL3RlbXBsYXRlIGIvc3JjcGtncy9wcm9qL3RlbXBsYXRlCmluZGV4IDUxYzQ2MzgyMzRi ZC4uZTNmYmQ0MzkwM2M3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Byb2ovdGVtcGxhdGUKKysrIGIv c3JjcGtncy9wcm9qL3RlbXBsYXRlCkBAIC0xLDE3ICsxLDE5IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdwcm9qJwogcGtnbmFtZT1wcm9qCi12ZXJzaW9uPTYuMy4yCit2ZXJzaW9uPTcuMi4xCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EUFJPSl9URVNU Uz1PRkYiCitjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKIGhvc3RtYWtlZGVw ZW5kcz0icHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJzcWxpdGUtZGV2ZWwiCittYWtlZGVwZW5kcz0i bGliY3VybC1kZXZlbAorIHNxbGl0ZS1kZXZlbAorIHRpZmYtZGV2ZWwiCiBzaG9ydF9kZXNjPSJD YXJ0b2dyYXBoaWMgUHJvamVjdGlvbnMgTGlicmFyeSIKIG1haW50YWluZXI9IkpvaG4gPG1lQGpv aG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJNSVQiCi1ob21lcGFnZT0iaHR0cHM6Ly9wcm9qNC5v cmciCitob21lcGFnZT0iaHR0cHM6Ly9wcm9qLm9yZyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9kb3du bG9hZC5vc2dlby5vcmcvcHJvai9wcm9qLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09Y2I3 NzZhNzBmNDBjMzU1NzlhZTRiYTA0ZmI0YTM4OGMxZDFjZTAyNWExZGY2MTcxMzUwZGMxOWYyNWI4 MDMxMQorY2hlY2tzdW09YjM4NGY0MmU1ZmI5YzZkMDFmZTVmYTRkMzFkYTJlOTEzMjk2Njg4NjNh Njg0Zjk3YmU1ZDQ3NjBkYmJmMGExNAogCiBwb3N0X2luc3RhbGwoKSB7CiAJdmxpY2Vuc2UgQ09Q WUlORwpAQCAtMjIsNyArMjQsNiBAQCBwcm9qLWRldmVsX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVz Yys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3Iv aW5jbHVkZQotCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjMKIAkJdm1vdmUgdXNyL2xpYi9jbWFr ZQogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCX0KCkZyb20gZmFiY2Q5NjNhNzFlYzJhN2I2NWRj MTAxMzgwMWZhODM2NGI4NWFkOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4g TW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgRmViIDIwMjIgMTQ6 NDQ6NTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDAyLzE3XSBOZXcgcGFja2FnZTogbGlicnR0b3Bv LTEuMS4wCgpUaGUgUlQgVG9wb2xvZ3kgTGlicmFyeSBleHBvc2VzIGFuIEFQSSB0byBjcmVhdGUg YW5kIG1hbmFnZSBzdGFuZGFyZAooSVNPIDEzMjQ5IGFrYSBTUUwvTU0pIHRvcG9sb2dpZXMgdXNp bmcgdXNlci1wcm92aWRlZCBkYXRhIHN0b3Jlcy4KCkl0IGlzIG5lZWRlZCB0byBidWlsZCBsaWJz cGF0aWFsaXRlIChhcyBvZiB2NS4wLjEpIHdpdGggdGVzdHMgcGFzc2luZy4KLS0tCiBjb21tb24v c2hsaWJzICAgICAgICAgICAgICB8ICAxICsKIHNyY3BrZ3MvbGlicnR0b3BvLWRldmVsICAgIHwg IDEgKwogc3JjcGtncy9saWJydHRvcG8vdGVtcGxhdGUgfCAyOSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMjAwMDAgc3JjcGtncy9saWJydHRvcG8tZGV2ZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xpYnJ0dG9wby90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21t b24vc2hsaWJzCmluZGV4IGIwZmNmZDA0OTI2ZS4uNzM0YzE2MjgxZjBlIDEwMDY0NAotLS0gYS9j b21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTQxMTAsMyArNDExMCw0IEBAIGxp YmF3dF94YXd0LnNvIG9wZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEKIGxpYmphdmEuc28gb3Blbmpk azE3LWpyZS0xNy4wLjErMTJfMQogbGliamxpLnNvIG9wZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEK IGxpYmp2bS5zbyBvcGVuamRrMTctanJlLTE3LjAuMSsxMl8xCitsaWJydHRvcG8uc28uMSBsaWJy dHRvcG8tMS4xLjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJydHRvcG8tZGV2ZWwgYi9zcmNw a2dzL2xpYnJ0dG9wby1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAw MDAuLmFjZjM2MDdmNWZlYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlicnR0b3BvLWRl dmVsCkBAIC0wLDAgKzEgQEAKK2xpYnJ0dG9wbwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlicnR0b3BvL3RlbXBsYXRlIGIvc3JjcGtncy9saWJydHRv cG8vdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hYTUx YmI0NWYxODUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYnJ0dG9wby90ZW1wbGF0ZQpA QCAtMCwwICsxLDI5IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJydHRvcG8nCitwa2duYW1l PWxpYnJ0dG9wbwordmVyc2lvbj0xLjEuMAorcmV2aXNpb249MQord3Jrc3JjPSIke3BrZ25hbWV9 IgorYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQoraG9zdG1ha2VkZXBlbmRzPSJiYXNlLWRldmVs IGF1dG9jb25mLWFyY2hpdmUiCittYWtlZGVwZW5kcz0iYmFzZS1kZXZlbCBhdXRvY29uZi1hcmNo aXZlIGdlb3MtZGV2ZWwiCitzaG9ydF9kZXNjPSJSVCBUb3BvbG9neSBMaWJyYXJ5IGV4cG9zZXMg YW4gQVBJIGZvciBtYW5hZ2luZyBzdGFuZGFyZCB0b3BvbG9naWVzIgorbWFpbnRhaW5lcj0iQXJq YW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+IgorbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKK2hvbWVwYWdlPSJodHRwczovL2dpdC5vc2dlby5vcmcvZ2l0ZWEvcnR0b3BvL2xpYnJ0 dG9wbyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXQub3NnZW8ub3JnL2dpdGVhL3J0dG9wby9saWJy dHRvcG8vYXJjaGl2ZS9saWJydHRvcG8tJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT0iMmUy ZmNhYmI0ODE5M2E3MTJhNmM3NmFjOWE5YmUyYTUzZjgyZTMyZjkxYTJiYzgzNGQ5ZjFiNGZhOWNk ODc5ZiIKKworcHJlX2NvbmZpZ3VyZSgpIHsKKyAgICBhdXRvcmVjb25mIC1pZgorfQorCitsaWJy dHRvcG8tZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIkcGtnbmFtZT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2lu c3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJ CXZtb3ZlICJ1c3IvbGliLyouYSIKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwl9Cit9CgpG cm9tIDM2YTY4OTkwMTYxYzg2MWU2OTVhODdkYjE3ZTA2NTVhNTczMTA5NzggTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IE55eDcwIDxuLnkueEBibHVld2luLmNoPgpEYXRlOiBUaHUsIDI2 IE5vdiAyMDIwIDE4OjQ3OjI1ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8xN10gTmV3IHBhY2th Z2U6IGxpYmttbC0xLjMuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA2ICsrKysrKwogc3JjcGtncy9saWJrbWwtZGV2ZWwgICAgICAgICAgICAgICAgICAg fCAgMSArCiBzcmNwa2dzL2xpYmttbC9wYXRjaGVzL05PVU5DUllQVC5wYXRjaCB8IDE3ICsrKysr KysrKysrKysrKysKIHNyY3BrZ3MvbGlia21sL3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgMjcg KysrKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9u cygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGlia21sLWRldmVsCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9saWJrbWwvcGF0Y2hlcy9OT1VOQ1JZUFQucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xpYmttbC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9z aGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDczNGMxNjI4MWYwZS4uN2NmODc2NjAwMDg5IDEw MDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTQxMTEsMyAr NDExMSw5IEBAIGxpYmphdmEuc28gb3BlbmpkazE3LWpyZS0xNy4wLjErMTJfMQogbGliamxpLnNv IG9wZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEKIGxpYmp2bS5zbyBvcGVuamRrMTctanJlLTE3LjAu MSsxMl8xCiBsaWJydHRvcG8uc28uMSBsaWJydHRvcG8tMS4xLjBfMQorbGlia21sYmFzZS5zby4x IGxpYmttbC0xLjMuMF8xCitsaWJrbWxkb20uc28uMSBsaWJrbWwtMS4zLjBfMQorbGlia21sZW5n aW5lLnNvLjEgbGlia21sLTEuMy4wXzEKK2xpYmttbHJlZ2lvbmF0b3Iuc28uMSBsaWJrbWwtMS4z LjBfMQorbGlia21seHNkLnNvLjEgbGlia21sLTEuMy4wXzEKK2xpYmttbGNvbnZlbmllbmNlLnNv LjEgbGlia21sLTEuMy4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlia21sLWRldmVsIGIvc3Jj cGtncy9saWJrbWwtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAw Li5jZjEyYmUxMDJmNDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmttbC1kZXZlbApA QCAtMCwwICsxIEBACitsaWJrbWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2xpYmttbC9wYXRjaGVzL05PVU5DUllQVC5wYXRjaCBiL3NyY3BrZ3MvbGli a21sL3BhdGNoZXMvTk9VTkNSWVBULnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNWI3ZTAxNmMwZTAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJr bWwvcGF0Y2hlcy9OT1VOQ1JZUFQucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorbWluaXppcC9jcnlw dC5oIHdhcyByZW1vdmVkIGZyb20gdGhlIHBhY2tldCBtaW5pemlwLTEuMi4xMV8yLiAKKword2l0 aCAiI2RlZmluZSBOT1VOQ1JZUFQiIGxpYmttbCBjYW4gYmUgYnVpbHQgd2l0aG91dCAiY3J5cHQu aCIKK2h0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvY29tbWl0Lzk1 MmFjOTEzY2YKK2h0dHBzOi8vZ2l0aHViLmNvbS9tYWRsZXIvemxpYi9wdWxsLzIyOQorCistLS0g YS9zcmMva21sL2Jhc2UvY29udHJpYi9taW5pemlwL3VuemlwLmMJMjAxNS0xMi0yMSAxODoyMzow NS4wMDAwMDAwMDAgKzAxMDAKKysrKyBiL3NyYy9rbWwvYmFzZS9jb250cmliL21pbml6aXAvdW56 aXAuYwkyMDIwLTExLTI2IDE1OjQ1OjU1LjAzMzgzNTgxNiArMDEwMAorQEAgLTQyLDcgKzQyLDcg QEAKKyAjaW5jbHVkZSA8emxpYi5oPiAvL1JSCisgI2luY2x1ZGUgInVuemlwLmgiCisgI2luY2x1 ZGUgImlvbWVtX3NpbXBsZS5oIgorLSN1bmRlZiBOT1VOQ1JZUFQKKysjZGVmaW5lIE5PVU5DUllQ VAorIAorICNpZmRlZiBTVERDCisgIyAgaW5jbHVkZSA8c3RkZGVmLmg+CmRpZmYgLS1naXQgYS9z cmNwa2dzL2xpYmttbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlia21sL3RlbXBsYXRlCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjY3ZWVjZTRkOGJhCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9saWJrbWwvdGVtcGxhdGUKQEAgLTAsMCArMSwyNyBAQAorIyBUZW1w bGF0ZSBmaWxlIGZvciAnbGlia21sJworcGtnbmFtZT1saWJrbWwKK3ZlcnNpb249MS4zLjAKK3Jl dmlzaW9uPTEKK2J1aWxkX3N0eWxlPWNtYWtlCittYWtlZGVwZW5kcz0iYm9vc3QtZGV2ZWwKKyBl eHBhdC1kZXZlbAorIG1pbml6aXAtZGV2ZWwKKyB1cmlwYXJzZXItZGV2ZWwKKyB6bGliLWRldmVs Igorc2hvcnRfZGVzYz0iTGlicmFyeSB0byBtYW5pcHVsYXRlIEtNTCBPR0MgZmlsZXMiCittYWlu dGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgorbGljZW5zZT0iR1BMLTMu MC1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vbGlia21sL2xpYmttbCIK K2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2xpYmttbC9saWJrbWwvYXJjaGl2ZS8ke3Zl cnNpb259LnRhci5neiIKK2NoZWNrc3VtPTg4OTI0MzllNTU3MDA5MTk2NWFhZmZlMzBiMDg2MzFm ZGY3Y2E3ZjgxZjY0OTViNDY0OGYwOTUwZDdlYTc5NjMKKworbGlia21sLWRldmVsX3BhY2thZ2Uo KSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNo b3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1v dmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgdXNyL2xp Yi9jbWFrZQorCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCX0KK30KCkZyb20gZjNmNTM4ZWMwOWUy MjRhMzk0NWJhZTJhOTg0MTk5YjQ4OTZhMGEyOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTQgRmVi IDIwMjIgMTM6MDc6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0LzE3XSBsaWJnZGFsOiB1cGRh dGUgdG8gMy40LjEgYW5kIHJlYnVpbGQgYWdhaW5zdCBwcm9qLTcuMi4xCgotLS0KIGNvbW1vbi9z aGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogLi4uZTE2ZTI3 YzVmYzRjNDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0LnBhdGNoIHwgIDUzIC0tLS0tLS0tLQogLi4u YzQ4OTNlNmQxNGQ0ODhkZmVkMjU3NDVkNzlmMTFiZWU0NWI5LnBhdGNoIHwgIDMxIC0tLS0tLQog c3JjcGtncy9saWJnZGFsL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgMTA1ICsrKysr KysrKysrKysrKystLQogc3JjcGtncy9weXRob24zLWdkYWwgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgOTcgZGVsZXRp b25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJnZGFsL3BhdGNoZXMvOWVmOGUx NmUyN2M1ZmM0YzQ5MWRlYmU1MGJmMmI3ZjNlOTRlZDMzNC5wYXRjaAogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbGliZ2RhbC9wYXRjaGVzL2FiNzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0NWQ3 OWYxMWJlZTQ1YjkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3B5dGhvbjMtZ2Rh bAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDdjZjg3 NjYwMDA4OS4uNWE3NmRjOWVlOWUwIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2Nv bW1vbi9zaGxpYnMKQEAgLTI1MTAsNyArMjUxMCw3IEBAIGxpYnUyZi1ob3N0LnNvLjAgbGlidTJm LWhvc3QtMS4xLjEwXzUKIGxpYnUyZi1zZXJ2ZXIuc28uMCBsaWJ1MmYtc2VydmVyLTEuMS4wXzkK IGxpYnNxbGNpcGhlci5zby4wIHNxbGNpcGhlci00LjMuMF8zCiBsaWJndGEuc28uMSBsaWJndGEt MS4yLjBfMQotbGliZ2RhbC5zby4yNiBsaWJnZGFsLTMuMC40XzkKK2xpYmdkYWwuc28uMzAgbGli Z2RhbC0zLjQuMV8xCiBsaWJvc2dWaWV3ZXIuc28uMTMxIG9zZy0zLjQuMV8xCiBsaWJvc2dTaGFk b3cuc28uMTMxIG9zZy0zLjQuMV8xCiBsaWJvc2dQYXJ0aWNsZS5zby4xMzEgb3NnLTMuNC4xXzEK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliZ2RhbC9wYXRjaGVzLzllZjhlMTZlMjdjNWZjNGM0OTFk ZWJlNTBiZjJiN2YzZTk0ZWQzMzQucGF0Y2ggYi9zcmNwa2dzL2xpYmdkYWwvcGF0Y2hlcy85ZWY4 ZTE2ZTI3YzVmYzRjNDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0LnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA5NjhlZGViMzJjNzcuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L2xpYmdkYWwvcGF0Y2hlcy85ZWY4ZTE2ZTI3YzVmYzRjNDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0 LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotRnJvbSA5ZWY4ZTE2ZTI3YzVm YzRjNDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogRXZlbiBSb3VhdWx0IDxldmVuLnJvdWF1bHRAc3BhdGlhbHlzLmNvbT4KLURhdGU6IE1vbiwg NSBPY3QgMjAyMCAxMjoxMTo1MiArMDIwMAotU3ViamVjdDogW1BBVENIXSBKUEVHMjAwMDogbWFr ZSBpdCBidWlsZCB3aXRoIEphc3BlciAyLjAuMjEgKGZpeGVzICMzMDEyKQotCi0tLS0KLSBnZGFs L2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwX3ZzaWxfaW8uY3BwIHwgMTYgKysrKysrKysrLS0tLS0t LQotIGdkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNwcCAgfCAgMiArLQotIDIg ZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKLQotZGlmZiAt LWdpdCBhL2dkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBfdnNpbF9pby5jcHAgYi9nZGFsL2Zy bXRzL2pwZWcyMDAwL2pwZWcyMDAwX3ZzaWxfaW8uY3BwCi1pbmRleCAxMGE0Zjk2ZjBlZS4uZWJj YWM0MDEwY2UgMTAwNjQ0Ci0tLS0gYS9mcm10cy9qcGVnMjAwMC9qcGVnMjAwMF92c2lsX2lvLmNw cAotKysrIGIvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBfdnNpbF9pby5jcHAKLUBAIC05NCwxMyAr OTQsMjQgQEAKLSAqIEZpbGUgc3RyZWFtIG9iamVjdC4KLSBcKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LwotCi0rI2lmIGRlZmluZWQoUFJJamFzX3NlcWVudCkKLStzdGF0aWMgaW50IEpQRUcyMDAwX1ZT SUxfcmVhZChqYXNfc3RyZWFtX29ial90ICpvYmosIGNoYXIgKmJ1ZiwgdW5zaWduZWQgY250KQot KyNlbHNlCi0gc3RhdGljIGludCBKUEVHMjAwMF9WU0lMX3JlYWQoamFzX3N0cmVhbV9vYmpfdCAq b2JqLCBjaGFyICpidWYsIGludCBjbnQpCi0rI2VuZGlmCi0gewotICAgICBqYXNfc3RyZWFtX1ZT SUZMX3QgKmZpbGVvYmogPSBKQVNfQ0FTVChqYXNfc3RyZWFtX1ZTSUZMX3QgKiwgb2JqKTsKLSAg ICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oVlNJRlJlYWRMKGJ1ZiwgMSwgY250LCBmaWxlb2Jq LT5mcCkpOwotIH0KLQotKyNpZiBkZWZpbmVkKEpBU19JTkNMVURFX0pQMl9DT0RFQykKLSsvLyBK YXNwZXIgMi4wLjIxCi0rc3RhdGljIGludCBKUEVHMjAwMF9WU0lMX3dyaXRlKGphc19zdHJlYW1f b2JqX3QgKm9iaiwgY29uc3QgY2hhciAqYnVmLCB1bnNpZ25lZCBpbnQgY250KQotKyNlbGlmIGRl ZmluZWQoUFJJamFzX3NlcWVudCkKLStzdGF0aWMgaW50IEpQRUcyMDAwX1ZTSUxfd3JpdGUoamFz X3N0cmVhbV9vYmpfdCAqb2JqLCBjaGFyICpidWYsIHVuc2lnbmVkIGludCBjbnQpCi0rI2Vsc2UK LSBzdGF0aWMgaW50IEpQRUcyMDAwX1ZTSUxfd3JpdGUoamFzX3N0cmVhbV9vYmpfdCAqb2JqLCBj aGFyICpidWYsIGludCBjbnQpCi0rI2VuZGlmCi0gewotICAgICBqYXNfc3RyZWFtX1ZTSUZMX3Qg KmZpbGVvYmogPSBKQVNfQ0FTVChqYXNfc3RyZWFtX1ZTSUZMX3QgKiwgb2JqKTsKLSAgICAgcmV0 dXJuIHN0YXRpY19jYXN0PGludD4oVlNJRldyaXRlTChidWYsIDEsIGNudCwgZmlsZW9iai0+ZnAp KTsKLQotZGlmZiAtLWdpdCBhL2dkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNw cCBiL2dkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNwcAotaW5kZXggYTVhNmIy NThlZDkuLmJkMWU3NzYzMTg2IDEwMDY0NAotLS0tIGEvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBk YXRhc2V0LmNwcAotKysrIGIvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNwcAotQEAg LTUxMyw3ICs1MTMsNyBAQCBpbnQgSlBFRzIwMDBEYXRhc2V0OjpEZWNvZGVJbWFnZSgpCi0gICAg ICAgICBmb3IgKCBpQmFuZCA9IDA7IGlCYW5kIDwgbkJhbmRzOyBpQmFuZCsrICkKLSAgICAgICAg IHsKLSAgICAgICAgICAgICBKUEVHMjAwMFJhc3RlckJhbmQqIHBvQmFuZCA9IChKUEVHMjAwMFJh c3RlckJhbmQqKSBHZXRSYXN0ZXJCYW5kKGlCYW5kKzEpOwotLSAgICAgICAgICAgIGlmIChwb0Jh bmQtPmlEZXB0aCAhPSBqYXNfaW1hZ2VfY21wdHByZWMoIHBzSW1hZ2UsIGlCYW5kICkgfHwKLSsg ICAgICAgICAgICBpZiAocG9CYW5kLT5pRGVwdGggIT0gc3RhdGljX2Nhc3Q8aW50PihqYXNfaW1h Z2VfY21wdHByZWMoIHBzSW1hZ2UsIGlCYW5kICkpIHx8Ci0gICAgICAgICAgICAgICAgIHBvQmFu ZC0+YlNpZ25lZG5lc3MgIT0gamFzX2ltYWdlX2NtcHRzZ25kKCBwc0ltYWdlLCBpQmFuZCApKQot ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgQ1BMRXJyb3IoQ0VfRmFpbHVyZSwgQ1BM RV9BcHBEZWZpbmVkLApkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJnZGFsL3BhdGNoZXMvYWI3MmM0 ODkzZTZkMTRkNDg4ZGZlZDI1NzQ1ZDc5ZjExYmVlNDViOS5wYXRjaCBiL3NyY3BrZ3MvbGliZ2Rh bC9wYXRjaGVzL2FiNzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0NWQ3OWYxMWJlZTQ1YjkucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0M2VhYzg4MmY2Zi4uMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvbGliZ2RhbC9wYXRjaGVzL2FiNzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0 NWQ3OWYxMWJlZTQ1YjkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1Gcm9t IGFiNzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0NWQ3OWYxMWJlZTQ1YjkgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBFdmVuIFJvdWF1bHQgPGV2ZW4ucm91YXVsdEBzcGF0aWFseXMuY29t PgotRGF0ZTogTW9uLCAxMCBBdWcgMjAyMCAxNzoyNjo1MyArMDIwMAotU3ViamVjdDogW1BBVENI XSBKUEVHMjAwMDogZml4IGJ1aWxkIHdpdGggSmFzcGVyIDIuMC4xNyAoZml4ZXMgIzI4NDQpCi0K LS0tLQotIGdkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNwcCB8IDQgKystLQot IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS9nZGFsL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNldC5jcHAgYi9nZGFsL2Zy bXRzL2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNldC5jcHAKLWluZGV4IDNlNjY4ZmZlNTAzLi4yZDNm NGU0Njg3NiAxMDA2NDQKLS0tLSBhL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNldC5jcHAK LSsrKyBiL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNldC5jcHAKLUBAIC00ODQsNyArNDg0 LDcgQEAgaW50IEpQRUcyMDAwRGF0YXNldDo6RGVjb2RlSW1hZ2UoKQotICAgICAvKiB0aGUgSlAy IGJveGVzIG1hdGNoIHRoZSBvbmVzIG9mIHRoZSBjb2RlIHN0cmVhbSAqLwotICAgICBpZiAobkJh bmRzICE9IDApCi0gICAgIHsKLS0gICAgICAgIGlmIChuQmFuZHMgIT0gamFzX2ltYWdlX251bWNt cHRzKCBwc0ltYWdlICkpCi0rICAgICAgICBpZiAobkJhbmRzICE9IHN0YXRpY19jYXN0PGludD4o amFzX2ltYWdlX251bWNtcHRzKCBwc0ltYWdlICkpKQotICAgICAgICAgewotICAgICAgICAgICAg IENQTEVycm9yKENFX0ZhaWx1cmUsIENQTEVfQXBwRGVmaW5lZCwKLSAgICAgICAgICAgICAgICAg ICAgICAiVGhlIG51bWJlciBvZiBjb21wb25lbnRzIGluZGljYXRlZCBpbiB0aGUgSUhEUiBib3gg KCVkKSBtaXNtYXRjaCAiCi1AQCAtNTk1LDcgKzU5NSw3IEBAIEdEQUxEYXRhc2V0ICpKUEVHMjAw MERhdGFzZXQ6Ok9wZW4oIEdEQUxPcGVuSW5mbyAqIHBvT3BlbkluZm8gKQotIAotIHsKLSAgICAg aW50ICAgICAgICAgaUZvcm1hdDsKLS0gICAgY2hhciAgICAgICAgKnBzekZvcm1hdE5hbWUgPSBu dWxscHRyOwotKyAgICBjb25zdCBjaGFyICpwc3pGb3JtYXROYW1lID0gbnVsbHB0cjsKLSAKLSAg ICAgaWYgKCFJZGVudGlmeShwb09wZW5JbmZvKSkKLSAgICAgICAgIHJldHVybiBudWxscHRyOwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9saWJnZGFsL3RlbXBsYXRlIGIvc3JjcGtncy9saWJnZGFsL3Rl bXBsYXRlCmluZGV4IDg3MGFiMjJiNGNiYS4uNWZjYTU3OTk1NGZhIDEwMDY0NAotLS0gYS9zcmNw a2dzL2xpYmdkYWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJnZGFsL3RlbXBsYXRlCkBAIC0x LDMwICsxLDEwMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliZ2RhbCcKIHBrZ25hbWU9bGli Z2RhbAotdmVyc2lvbj0zLjAuNAotcmV2aXNpb249MTEKK3ZlcnNpb249My40LjEKK3JldmlzaW9u PTEKIHdya3NyYz0iZ2RhbC0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQot Y29uZmlndXJlX2FyZ3M9Ii0td2l0aC1saWJsem1hIC0td2l0aC13ZWJwIC0td2l0aC16c3RkIC0t d2l0aC1wb2RvZm8gLS13aXRoLW9wZW5jbD15ZXMiCi1ob3N0bWFrZWRlcGVuZHM9ImdldHRleHQt ZGV2ZWwgcGtnLWNvbmZpZyBweXRob24tbnVtcHkganNvbi1jLWRldmVsIgotbWFrZWRlcGVuZHM9 ImZyZWV4bC1kZXZlbCBnZW9zLWRldmVsIGphc3Blci1kZXZlbCBqc29uLWMtZGV2ZWwKLSBsaWJj dXJsLWRldmVsIGxpYm9wZW5leHItZGV2ZWwgbGlib3BlbmpwZWcyLWRldmVsIGxpYnBvZG9mby1k ZXZlbCBsaWJxaHVsbC1kZXZlbAotIGxpYndlYnAtZGV2ZWwgbGlieG1sMi1kZXZlbCBsaWJ6c3Rk LWRldmVsIG5ldGNkZi1kZXZlbCBvcGVuY2wyLWhlYWRlcnMgcGNyZTItZGV2ZWwKLSBwcm9qLWRl dmVsIHNxbGl0ZS1kZXZlbCBvY2wtaWNkLWRldmVsIgorY29uZmlndXJlX2FyZ3M9IgorIC0td2l0 aC1leHBhdD15ZXMKKyAtLXdpdGgtaGRmNT15ZXMKKyAtLXdpdGgta21sPXllcworIC0td2l0aC1s aWJsem1hPXllcworIC0td2l0aC1vcGVuY2w9eWVzCisgLS13aXRoLXBnPXllcworIC0td2l0aC1w b2RvZm89eWVzCisgLS13aXRoLXB5dGhvbj15ZXMKKyAtLXdpdGgtc3BhdGlhbGl0ZT15ZXMKKyAt LXdpdGgtc3FsaXRlMz15ZXMKKyAtLXdpdGgtd2VicD15ZXMKKyAtLXdpdGgtenN0ZD15ZXMiCito b3N0bWFrZWRlcGVuZHM9ImdldHRleHQtZGV2ZWwKKyBqc29uLWMtZGV2ZWwKKyBwa2ctY29uZmln CisgcHl0aG9uMy1udW1weQorIHN3aWciCittYWtlZGVwZW5kcz0iYm9vc3QtZGV2ZWwKKyBleHBh dC1kZXZlbAorIGZyZWV4bC1kZXZlbAorIGdlb3MtZGV2ZWwKKyBqYXNwZXItZGV2ZWwKKyBqc29u LWMtZGV2ZWwKKyBsaWJjdXJsLWRldmVsCisgbGlib3BlbmV4ci1kZXZlbAorIGxpYm9wZW5qcGVn Mi1kZXZlbAorIGxpYnBvZG9mby1kZXZlbAorIGxpYnFodWxsLWRldmVsCisgbGlic3BhdGlhbGl0 ZS1kZXZlbAorIGxpYndlYnAtZGV2ZWwKKyBsaWJ4bWwyLWRldmVsCisgbGlienN0ZC1kZXZlbAor IG5ldGNkZi1kZXZlbAorIG9jbC1pY2QtZGV2ZWwKKyBvcGVuY2wyLWhlYWRlcnMKKyBwY3JlMi1k ZXZlbAorIHByb2otZGV2ZWwKKyBweXRob24zLWRldmVsCisgc3FsaXRlLWRldmVsCisgbGlia21s LWRldmVsCisgcG9zdGdyZXNxbC1saWJzLWRldmVsIgogc2hvcnRfZGVzYz0iR2Vvc3BhdGlhbCBE YXRhIEFic3RyYWN0aW9uIExpYnJhcnkiCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iTUlUIgotaG9tZXBhZ2U9Imh0dHA6Ly93d3cuZ2RhbC5v cmcvIgotZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQub3NnZW8ub3JnL2dkYWwvJHt2ZXJzaW9u fS9nZGFsLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NTU2OWE0ZGFhMWFiY2JiYTQ3YTlk NTM1MTcyZmMzMzUxOTRkOTIxNGZkYjk2Y2QwZjEzOWJiNTczMjlhZTI3Nwotc3VicGFja2FnZXM9 ImxpYmdkYWwtZGV2ZWwgbGliZ2RhbC10b29scyIKK2hvbWVwYWdlPSJodHRwczovL2dkYWwub3Jn LyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL09TR2VvL2dkYWwvcmVsZWFzZXMvZG93 bmxvYWQvdiR7dmVyc2lvbn0vZ2RhbC0ke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPWUzNjAz ODdiYzI1ZWMyNDk0MGY0NmFmYmVhZGE0ODAwMmQ3MmM3NGFhZjllY2NmMmE0MGU4ZDc0ZTcxMWEy ZTQKK3N1YnBhY2thZ2VzPSJweXRob24zLWdkYWwgbGliZ2RhbC1kZXZlbCBsaWJnZGFsLXRvb2xz IgorCitidWlsZF9vcHRpb25zPSJrbWwgcG9zdGdyZXNxbCIKK2J1aWxkX29wdGlvbnNfZGVmYXVs dD0ia21sIgogCiBpZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAltYWtlZGVwZW5kcys9 IiBoZGY1LWRldmVsIgogZmkKK0NGTEFHUz0iLXB0aHJlYWQgLUkke1hCUFNfQ1JPU1NfQkFTRX0v JHtweTNfaW5jfSIKK0xERkxBR1M9Ii1MJHtYQlBTX0NST1NTX0JBU0V9LyR7cHkzX2xpYn0iCisK K3Bvc3RfYnVpbGQoKSB7CisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCWV4cG9ydCBQ WVBSRUZJWD0iJFhCUFNfQ1JPU1NfQkFTRSIKKwkJZXhwb3J0IFBZVEhPTlBBVEg9JHtYQlBTX0NS T1NTX0JBU0V9LyR7cHkzX2xpYn0KKwkJZm9yIGYgaW4gJHtYQlBTX0NST1NTX0JBU0V9LyR7cHkz X2xpYn0vX3N5c2NvbmZpZ2RhdGFfKjsgZG8KKwkJCWY9JHtmIyMqL30KKwkJCWV4cG9ydCBfUFlU SE9OX1NZU0NPTkZJR0RBVEFfTkFNRT0ke2YlLnB5fQorCQlkb25lCisJZmkKKwlleHBvcnQgTERT SEFSRUQ9IiR7Q0N9ICRDRkxBR1MgLXNoYXJlZCAkTERGTEFHUyIKKworCXJtIC1mIHN3aWcvcHl0 aG9uLypfd3JhcC5jcHAKKwltYWtlIC1DIHN3aWcvcHl0aG9uIGdlbmVyYXRlCisJY2Qgc3dpZy9w eXRob24KKwlweXRob24zIHNldHVwLnB5IGJ1aWxkCit9CiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2 aW5zdGFsbCBnZGFsLnBjIDY0NCB1c3IvbGliL3BrZ2NvbmZpZwogCXZsaWNlbnNlIExJQ0VOU0Uu VFhUCisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCWV4cG9ydCBQWVBSRUZJWD0iJFhC UFNfQ1JPU1NfQkFTRSIKKwkJZXhwb3J0IFBZVEhPTlBBVEg9JHtYQlBTX0NST1NTX0JBU0V9LyR7 cHkzX2xpYn0KKwkJZm9yIGYgaW4gJHtYQlBTX0NST1NTX0JBU0V9LyR7cHkzX2xpYn0vX3N5c2Nv bmZpZ2RhdGFfKjsgZG8KKwkJCWY9JHtmIyMqL30KKwkJCWV4cG9ydCBfUFlUSE9OX1NZU0NPTkZJ R0RBVEFfTkFNRT0ke2YlLnB5fQorCQlkb25lCisJZmkKKwlleHBvcnQgTERTSEFSRUQ9IiR7Q0N9 ICRDRkxBR1MgLXNoYXJlZCAkTERGTEFHUyIKKworCWNkIHN3aWcvcHl0aG9uCisJcHl0aG9uMyBz ZXR1cC5weSBpbnN0YWxsIC0tcHJlZml4PS91c3IgLS1yb290PSRERVNURElSCiB9CiAKIGxpYmdk YWwtdG9vbHNfcGFja2FnZSgpIHsKQEAgLTQ2LDMgKzExNiwxNCBAQCBsaWJnZGFsLWRldmVsX3Bh Y2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvKi5zbwogCX0KIH0KKworcHl0aG9uMy1nZGFsX3Bh Y2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259 IgorCXNob3J0X2Rlc2MrPSIgLSBQeXRob24zIGJpbmRpbmdzIgorCXBrZ19pbnN0YWxsKCkgewor CQl2bW92ZSAidXNyL2Jpbi8qLnB5IgorCQl2bW92ZSAidXNyL2xpYi9weXRob24qIgorCQl2ZG9j IHN3aWcvcHl0aG9uL1JFQURNRS5yc3QKKwkJdm1rZGlyIHVzci9zaGFyZS9weXRob24zLWdkYWwK Kwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbjMtZ2RhbCBiL3NyY3BrZ3MvcHl0aG9u My1nZGFsCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uMzc3ZDUwZGZj MmI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9weXRob24zLWdkYWwKQEAgLTAsMCArMSBA QAorbGliZ2RhbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKCkZyb20gODU5NDgzZDQ3NTli ZmUyNGZkMGRkZWE2MTc2ZDk3ZWYyMmNiODgxNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjcgSnVu IDIwMjEgMTk6MTY6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA1LzE3XSBwb3N0Z2lzOiB1cGRh dGUgdG8gMy4xLjU7IHJlYnVpbGQgYWdhaW5zdCBsaWJnZGFsLTMuNC4xCiBhbmQgcHJvai03LjIu MQoKLS0tCiBzcmNwa2dzL3Bvc3RnaXMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9w b3N0Z2lzL3RlbXBsYXRlIGIvc3JjcGtncy9wb3N0Z2lzL3RlbXBsYXRlCmluZGV4IGM4NzhkZTg5 Y2ZjYi4uZjUyY2Q2NjU3OTg4IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Bvc3RnaXMvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9wb3N0Z2lzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAncG9zdGdpcycKIHBrZ25hbWU9cG9zdGdpcwotdmVyc2lvbj0zLjEuNAordmVy c2lvbj0zLjEuNQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmln dXJlX2FyZ3M9Ii0td2l0aC1wcm9qZGlyPSR7WEJQU19DUk9TU19CQVNFfS91c3IKQEAgLTE5LDcg KzE5LDcgQEAgbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3Bv c3RnaXMubmV0LyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXQub3NnZW8ub3JnL2dpdGVhL3Bvc3Rn aXMvcG9zdGdpcy9yYXcvdGFnLyR7dmVyc2lvbn0vTkVXUyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9k b3dubG9hZC5vc2dlby5vcmcvcG9zdGdpcy9zb3VyY2UvcG9zdGdpcy0ke3ZlcnNpb259LnRhci5n eiIKLWNoZWNrc3VtPWRjOGUzZmU4YmM1MzJlNDIyZjVkNzI0YzVhN2M0MzdmNjU1NTUxMTcxNmY2 NDEwZDRkMmRiOTc2MmUxYTM3OTYKK2NoZWNrc3VtPWZjYjEwZDliNDk5ZmQ3OTM5OWJkOGRiOTBm MGIzMTM4MzdkMDAyMjNkMzAwODBkYWM0MDM0MTllMDY3ZTRjMDYKIG5vY3Jvc3M9IkZJWE1FOiBD YW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB0byBkZXRlcm1pbmUgUFJPSiB2ZXJzaW9uIgogCiBwcmVf Y29uZmlndXJlKCkgewoKRnJvbSA0YjRlMTJlZDM4MDA1NDRiYWNmN2NhZDdkZDhjNzBkYmE0NmJi Njg5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFubW9z c2VsQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxNCBGZWIgMjAyMiAxMzoyMjo1OSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMDYvMTddIHBvc3RnaXMtcG9zdGdyZXNxbDEzOiB1cGRhdGUgdG8gMy4xLjU7 IHJlYnVpbGQgYWdhaW5zdAogbGliZ2RhbCBhbmQgcHJvagoKbGliZ2RhbC0zLjQuMQpwcm9qLTcu Mi4xCi0tLQogc3JjcGtncy9wb3N0Z2lzLXBvc3RncmVzcWwxMy90ZW1wbGF0ZSB8IDYgKysrLS0t CiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcG9zdGdpcy1wb3N0Z3Jlc3FsMTMvdGVtcGxhdGUgYi9zcmNwa2dzL3Bv c3RnaXMtcG9zdGdyZXNxbDEzL3RlbXBsYXRlCmluZGV4IDcwNmM4ZmI5NjgxMC4uYTBmNWM4OWVm NGRhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDEzL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvcG9zdGdpcy1wb3N0Z3Jlc3FsMTMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwb3N0Z2lzLXBvc3RncmVzcWwxMycKIHBrZ25hbWU9cG9z dGdpcy1wb3N0Z3Jlc3FsMTMKLXZlcnNpb249My4xLjQKLXJldmlzaW9uPTIKK3ZlcnNpb249My4x LjUKK3JldmlzaW9uPTEKIHdya3NyYz0icG9zdGdpcy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9IgpAQCAtMjAsNyArMjAsNyBAQCBsaWNlbnNl PSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9zdGdpcy5uZXQvIgogY2hh bmdlbG9nPSJodHRwczovL2dpdC5vc2dlby5vcmcvZ2l0ZWEvcG9zdGdpcy9wb3N0Z2lzL3Jhdy90 YWcvJHt2ZXJzaW9ufS9ORVdTIgogZGlzdGZpbGVzPSJodHRwczovL2Rvd25sb2FkLm9zZ2VvLm9y Zy9wb3N0Z2lzL3NvdXJjZS9wb3N0Z2lzLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09ZGM4 ZTNmZThiYzUzMmU0MjJmNWQ3MjRjNWE3YzQzN2Y2NTU1NTExNzE2ZjY0MTBkNGQyZGI5NzYyZTFh Mzc5NgorY2hlY2tzdW09ZmNiMTBkOWI0OTlmZDc5Mzk5YmQ4ZGI5MGYwYjMxMzgzN2QwMDIyM2Qz MDA4MGRhYzQwMzQxOWUwNjdlNGMwNgogbm9jcm9zcz0iRklYTUU6IENhbm5vdCBydW4gdGVzdCBw cm9ncmFtIHRvIGRldGVybWluZSBQUk9KIHZlcnNpb24iCiAKIHByZV9jb25maWd1cmUoKSB7CgpG cm9tIDEzZWQ2ZDAxOTRhM2IxOGE3Yjk4YjRmYThmMTQ0N2E2NmU3NGM4OWMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21haWwuY29tPgpE YXRlOiBNb24sIDE0IEZlYiAyMDIyIDEzOjI2OjU5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNy8x N10gcG9zdGdpcy1wb3N0Z3Jlc3FsMTQ6IHVwZGF0ZSB0byAzLjEuNTsgcmVidWlsZCBhZ2FpbnN0 CiBsaWJnZGFsIGFuZCBwcm9qCgpsaWJnZGFsLTMuNC4xCnByb2otNy4yLjEKLS0tCiBzcmNwa2dz L3Bvc3RnaXMtcG9zdGdyZXNxbDE0L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9z dGdpcy1wb3N0Z3Jlc3FsMTQvdGVtcGxhdGUgYi9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDE0 L3RlbXBsYXRlCmluZGV4IDZjZTQyMzFiMTcyNi4uYWQ4ZDBjNWM0MjUzIDEwMDY0NAotLS0gYS9z cmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDE0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcG9zdGdp cy1wb3N0Z3Jlc3FsMTQvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdwb3N0Z2lzLXBvc3RncmVzcWwxNCcKIHBrZ25hbWU9cG9zdGdpcy1wb3N0Z3Jlc3FsMTQK LXZlcnNpb249My4xLjQKK3ZlcnNpb249My4xLjUKIHJldmlzaW9uPTEKIHdya3NyYz0icG9zdGdp cy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMjAsNyArMjAsNyBA QCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9zdGdpcy5u ZXQvIgogY2hhbmdlbG9nPSJodHRwczovL2dpdC5vc2dlby5vcmcvZ2l0ZWEvcG9zdGdpcy9wb3N0 Z2lzL3Jhdy90YWcvJHt2ZXJzaW9ufS9ORVdTIgogZGlzdGZpbGVzPSJodHRwczovL2Rvd25sb2Fk Lm9zZ2VvLm9yZy9wb3N0Z2lzL3NvdXJjZS9wb3N0Z2lzLSR7dmVyc2lvbn0udGFyLmd6IgotY2hl Y2tzdW09ZGM4ZTNmZThiYzUzMmU0MjJmNWQ3MjRjNWE3YzQzN2Y2NTU1NTExNzE2ZjY0MTBkNGQy ZGI5NzYyZTFhMzc5NgorY2hlY2tzdW09ZmNiMTBkOWI0OTlmZDc5Mzk5YmQ4ZGI5MGYwYjMxMzgz N2QwMDIyM2QzMDA4MGRhYzQwMzQxOWUwNjdlNGMwNgogbm9jcm9zcz0iRklYTUU6IENhbm5vdCBy dW4gdGVzdCBwcm9ncmFtIHRvIGRldGVybWluZSBQUk9KIHZlcnNpb24iCiAKIHByZV9jb25maWd1 cmUoKSB7CgpGcm9tIGIyOWM5N2M1YTliODNmNDJjMmNhMTQ1MjYzYWNhYzc4MmU4NDdkZGMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21h aWwuY29tPgpEYXRlOiBNb24sIDkgQXVnIDIwMjEgMTk6NTM6MTcgKzAyMDAKU3ViamVjdDogW1BB VENIIDA4LzE3XSB3eFB5dGhvbjQ6IGJhY2twb3J0IHBhdGNoZXMsIGFuZCBmaXggdGVzdHMKCkJh Y2twb3J0ZWQgcGF0Y2hlczoKLSB3eFBzZXVkb0RDIEdJTAotIFB5dGhvbiAzLjEwIEFHVyBGbGF0 Tm90ZWJvb2sgcGF0Y2gKLSBQeXRob24gMy4xMCBTY3JvbGxlZFdpbmRvdyBhcmd1bWVudCB0eXBl cwotIFB5dGhvbiAzLjEwIEludGVnZXIgZGl2aXNpb24KLSB3eC5XaW5kb3dJRCBhbmQgd3guUmVn aW9uIGFyZ3VtZW50cwotLS0KIC4uLi9wYXRjaGVzLzAwMDItUHl0aG9uLTMuMTAtaXNzdWVzLnBh dGNoICAgICB8IDMzMTcgKysrKysrKysrKysrKysrKysKIC4uLi8wMDAzLVB5dGhvbi0zLjEwLUFH Vy1GbGF0Tm90ZWJvb2sucGF0Y2ggICB8ICAgNTcgKwogLi4uL3BhdGNoZXMvcmVzdG9yZS1naWwt cHNldWRvZGMucGF0Y2ggICAgICAgIHwgICA1MiArCiBzcmNwa2dzL3d4UHl0aG9uNC90ZW1wbGF0 ZSAgICAgICAgICAgICAgICAgICAgfCAgICAzICstCiA0IGZpbGVzIGNoYW5nZWQsIDM0MjggaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvd3hQ eXRob240L3BhdGNoZXMvMDAwMi1QeXRob24tMy4xMC1pc3N1ZXMucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzLzAwMDMtUHl0aG9uLTMuMTAtQUdXLUZs YXROb3RlYm9vay5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvd3hQeXRob240L3Bh dGNoZXMvcmVzdG9yZS1naWwtcHNldWRvZGMucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3d4 UHl0aG9uNC9wYXRjaGVzLzAwMDItUHl0aG9uLTMuMTAtaXNzdWVzLnBhdGNoIGIvc3JjcGtncy93 eFB5dGhvbjQvcGF0Y2hlcy8wMDAyLVB5dGhvbi0zLjEwLWlzc3Vlcy5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjZjODdmZjk2N2QwMQotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3Mvd3hQeXRob240L3BhdGNoZXMvMDAwMi1QeXRob24tMy4xMC1pc3N1ZXMu cGF0Y2gKQEAgLTAsMCArMSwzMzE3IEBACitGcm9tIGY1NWExN2MyZDNiMzM2YzgyZmI0NGY3ODE2 ZWM2MzIxOTg0N2Y0Y2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTY290dCBUYWxi ZXJ0IDxzd3RAdGVjaGllLm5ldD4KK0RhdGU6IERlYyAyMiAyMDIxIDIwOjIzOjU0ICswMDAwCitT dWJqZWN0OiBGaXggYSBidW5jaCBvZiBQeXRob24gMy4xMCBpc3N1ZXMKKworCistLS0KKworZGlm ZiAtLWdpdCBhLzBkNDQ5NjI2ZDZkMjk4YWQ5NmViZDFkNTE0ZDBlNDI4MzNiY2U0NzAucGF0Y2gg Yi8wZDQ0OTYyNmQ2ZDI5OGFkOTZlYmQxZDUxNGQwZTQyODMzYmNlNDcwLnBhdGNoCituZXcgZmls ZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZDJjY2RkYworLS0tIC9kZXYvbnVsbAorKysr IGIvMGQ0NDk2MjZkNmQyOThhZDk2ZWJkMWQ1MTRkMGU0MjgzM2JjZTQ3MC5wYXRjaAorQEAgLTAs MCArMSwyMiBAQAorK0Zyb20gMGQ0NDk2MjZkNmQyOThhZDk2ZWJkMWQ1MTRkMGU0MjgzM2JjZTQ3 MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKKytGcm9tOiBDYXJvbGluYSBGZWhlciBkYSBTaWx2 YSA8Y2Fyb2xmc3VAZ21haWwuY29tPgorK0RhdGU6IFR1ZSwgMTYgTm92IDIwMjEgMDE6MjQ6MzEg KzAwMDAKKytTdWJqZWN0OiBbUEFUQ0hdIEZpeGVkIGludGVnZXIgZGl2aXNpb24gaW4gUHl0aG9u IDMKKysKKystLS0KKysgd3gvbGliL3N0YXR0ZXh0LnB5IHwgMiArLQorKyAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKysKKytkaWZmIC0tZ2l0IGEvd3gvbGli L3N0YXR0ZXh0LnB5IGIvd3gvbGliL3N0YXR0ZXh0LnB5CisraW5kZXggMmNmYjZlNjVhLi5lNjA2 ZTVhODkgMTAwNjQ0CisrLS0tIGEvd3gvbGliL3N0YXR0ZXh0LnB5CisrKysrIGIvd3gvbGliL3N0 YXR0ZXh0LnB5CisrQEAgLTMwMiw3ICszMDIsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6 CisrICAgICAgICAgICAgIGlmIHN0eWxlICYgd3guQUxJR05fUklHSFQ6CisrICAgICAgICAgICAg ICAgICB4ID0gd2lkdGggLSB3CisrICAgICAgICAgICAgIGlmIHN0eWxlICYgd3guQUxJR05fQ0VO VEVSOgorKy0gICAgICAgICAgICAgICAgeCA9ICh3aWR0aCAtIHcpLzIKKysrICAgICAgICAgICAg ICAgIHggPSAod2lkdGggLSB3KS8vMgorKyAgICAgICAgICAgICBkYy5EcmF3VGV4dChsaW5lLCB4 LCB5KQorKyAgICAgICAgICAgICB5ICs9IGgKKysgCitkaWZmIC0tZ2l0IGEvM2ViOWViMzJkYzMy ODU0MzUwMzlmNmM0MjBjMzk4NjY1MzcyYTFhZC5wYXRjaCBiLzNlYjllYjMyZGMzMjg1NDM1MDM5 ZjZjNDIwYzM5ODY2NTM3MmExYWQucGF0Y2gKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAw MDAwMDAwLi4wOGU1OGEwCistLS0gL2Rldi9udWxsCisrKysgYi8zZWI5ZWIzMmRjMzI4NTQzNTAz OWY2YzQyMGMzOTg2NjUzNzJhMWFkLnBhdGNoCitAQCAtMCwwICsxLDg0IEBACisrRnJvbSAzZWI5 ZWIzMmRjMzI4NTQzNTAzOWY2YzQyMGMzOTg2NjUzNzJhMWFkIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorK0Zyb206IEdsZW4gV2hpdG5leSA8Z2xlbkBzdHVkaW9pbmZpbml0eS5vcmc+CisrRGF0 ZTogVHVlLCAzMSBBdWcgMjAyMSAxMTowNjoyNyAtMDcwMAorK1N1YmplY3Q6IFtQQVRDSF0gZml4 OiBDb3JyZWN0IHR5cGVzIG9mIGFyZ3VtZW50cyB0bworKyBTY3JvbGxlZFdpbmRvdy5TZXRTY3Jv bGxiYXJzCisrCisrLS0tCisrIGRlbW8vTWFzay5weSAgICAgICAgICAgICAgICAgICB8ICAyICst CisrIGRlbW8vT0dMLnB5ICAgICAgICAgICAgICAgICAgICB8ICAyICstCisrIHd4L2xpYi9hZ3cv dWx0aW1hdGVsaXN0Y3RybC5weSB8IDE0ICsrKysrKystLS0tLS0tCisrIDMgZmlsZXMgY2hhbmdl ZCwgOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQorKworK2RpZmYgLS1naXQgYS9kZW1v L01hc2sucHkgYi9kZW1vL01hc2sucHkKKytpbmRleCA1ZjBjMmNkZGUuLjEwOWI4ZjMwYiAxMDA2 NDQKKystLS0gYS9kZW1vL01hc2sucHkKKysrKysgYi9kZW1vL01hc2sucHkKKytAQCAtNTYsNyAr NTYsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKKysgICAgICAgICBtYXNrID0gd3gu TWFzayhzZWxmLmJtcF93aXRoY29sb3VybWFzaywgd3guV0hJVEUpCisrICAgICAgICAgc2VsZi5i bXBfd2l0aGNvbG91cm1hc2suU2V0TWFzayhtYXNrKQorKyAKKystICAgICAgICBzZWxmLlNldFNj cm9sbGJhcnMoMjAsIDIwLCA3MDAvMjAsIDQ2MC8yMCkKKysrICAgICAgICBzZWxmLlNldFNjcm9s bGJhcnMoMjAsIDIwLCA3MDAvLzIwLCA0NjAvLzIwKQorKyAKKysgICAgICAgICBzZWxmLkJpbmQo d3guRVZUX1BBSU5ULCBzZWxmLk9uUGFpbnQpCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL09HTC5w eSBiL2RlbW8vT0dMLnB5CisraW5kZXggNzJjYTU0M2RkLi5kNDc1ZTUwMTEgMTAwNjQ0CisrLS0t IGEvZGVtby9PR0wucHkKKysrKysgYi9kZW1vL09HTC5weQorK0BAIC0yNzIsNyArMjcyLDcgQEAg ZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgbG9nLCBmcmFtZSk6CisrIAorKyAgICAgICAgIG1h eFdpZHRoICA9IDEwMDAKKysgICAgICAgICBtYXhIZWlnaHQgPSAxMDAwCisrLSAgICAgICAgc2Vs Zi5TZXRTY3JvbGxiYXJzKDIwLCAyMCwgbWF4V2lkdGgvMjAsIG1heEhlaWdodC8yMCkKKysrICAg ICAgICBzZWxmLlNldFNjcm9sbGJhcnMoMjAsIDIwLCBtYXhXaWR0aC8vMjAsIG1heEhlaWdodC8v MjApCisrIAorKyAgICAgICAgIHNlbGYubG9nID0gbG9nCisrICAgICAgICAgc2VsZi5mcmFtZSA9 IGZyYW1lCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weSBiL3d4 L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weQorK2luZGV4IGM2MDg2NzY4NC4uMTRmYzQxZjg2 IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weQorKysrKyBiL3d4 L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weQorK0BAIC05NjU0LDggKzk2NTQsOCBAQCBkZWYg UmVjYWxjdWxhdGVQb3NpdGlvbnMoc2VsZiwgbm9SZWZyZXNoPUZhbHNlKToKKysgICAgICAgICAg ICAgICAgIHNlbGYuX2xpbmVzUGVyUGFnZSA9IGNsaWVudEhlaWdodC8vbGluZUhlaWdodAorKyAK KysgICAgICAgICAgICAgICAgIHNlbGYuU2V0U2Nyb2xsYmFycyhTQ1JPTExfVU5JVF9YLCBsaW5l SGVpZ2h0LAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLkdldEhl YWRlcldpZHRoKCktZGVjcmVtZW50KS9TQ1JPTExfVU5JVF9YLAorKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChlbnRpcmVIZWlnaHQgKyBsaW5lSGVpZ2h0IC0gMSkvbGluZUhl aWdodCwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5HZXRIZWFk ZXJXaWR0aCgpLWRlY3JlbWVudCkvL1NDUk9MTF9VTklUX1gsCisrKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGVudGlyZUhlaWdodCArIGxpbmVIZWlnaHQgLSAxKS8vbGluZUhl aWdodCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkdldFNjcm9s bFBvcyh3eC5IT1JJWk9OVEFMKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLkdldFNjcm9sbFBvcyh3eC5WRVJUSUNBTCksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVHJ1ZSkKKytAQCAtOTY3Niw4ICs5Njc2LDggQEAgZGVmIFJlY2FsY3Vs YXRlUG9zaXRpb25zKHNlbGYsIG5vUmVmcmVzaD1GYWxzZSk6CisrICAgICAgICAgICAgICAgICAg ICAgZGVjcmVtZW50ID0gU0NST0xMX1VOSVRfWAorKyAKKysgICAgICAgICAgICAgICAgIHNlbGYu U2V0U2Nyb2xsYmFycyhTQ1JPTExfVU5JVF9YLCBTQ1JPTExfVU5JVF9ZLAorKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLkdldEhlYWRlcldpZHRoKCktZGVjcmVtZW50 KS9TQ1JPTExfVU5JVF9YLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChl bnRpcmVIZWlnaHQgKyBTQ1JPTExfVU5JVF9ZIC0gMSkvU0NST0xMX1VOSVRfWSwKKysrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5HZXRIZWFkZXJXaWR0aCgpLWRlY3Jl bWVudCkvL1NDUk9MTF9VTklUX1gsCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGVudGlyZUhlaWdodCArIFNDUk9MTF9VTklUX1kgLSAxKS8vU0NST0xMX1VOSVRfWSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkdldFNjcm9sbFBvcyh3eC5I T1JJWk9OVEFMKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkdl dFNjcm9sbFBvcyh3eC5WRVJUSUNBTCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVHJ1ZSkKKytAQCAtOTcyOCw4ICs5NzI4LDggQEAgZGVmIFJlY2FsY3VsYXRlUG9zaXRp b25zKHNlbGYsIG5vUmVmcmVzaD1GYWxzZSk6CisrICAgICAgICAgICAgICAgICAgICAgICAgIGxp bmUuX2dpLkV4dGVuZFdpZHRoKHdpZHRoTWF4KQorKyAKKysgICAgICAgICAgICAgICAgIHNlbGYu U2V0U2Nyb2xsYmFycyhTQ1JPTExfVU5JVF9YLCBsaW5lSGVpZ2h0LAorKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICh4ICsgU0NST0xMX1VOSVRfWCkvU0NST0xMX1VOSVRfWCwK KystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeSArIGxpbmVIZWlnaHQpL2xp bmVIZWlnaHQsCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHggKyBTQ1JP TExfVU5JVF9YKS8vU0NST0xMX1VOSVRfWCwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoeSArIGxpbmVIZWlnaHQpLy9saW5lSGVpZ2h0LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuR2V0U2Nyb2xsUG9zKHd4LkhPUklaT05UQUwpLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuR2V0U2Nyb2xsUG9zKHd4LlZF UlRJQ0FMKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcnVlKQorK0BA IC05Nzk3LDcgKzk3OTcsNyBAQCBkZWYgUmVjYWxjdWxhdGVQb3NpdGlvbnMoc2VsZiwgbm9SZWZy ZXNoPUZhbHNlKToKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrICAjIEV2ZXJ5 dGhpbmcgZml0cywgbm8gc2Vjb25kIHRyeSByZXF1aXJlZC4KKysgCisrICAgICAgICAgICAgICAg ICBzZWxmLlNldFNjcm9sbGJhcnMoU0NST0xMX1VOSVRfWCwgbGluZUhlaWdodCwKKystICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW50aXJlV2lkdGggKyBTQ1JPTExfVU5JVF9Y KS9TQ1JPTExfVU5JVF9YLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChl bnRpcmVXaWR0aCArIFNDUk9MTF9VTklUX1gpLy9TQ1JPTExfVU5JVF9YLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5HZXRTY3JvbGxQb3Mod3guSE9SSVpPTlRBTCksCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCwKK2RpZmYgLS1naXQgYS85MDk2NDI2NjAzMjcyNjcy ZDlhNjc2ZThiY2RjYWRmMGExY2ZhMWEyLnBhdGNoIGIvOTA5NjQyNjYwMzI3MjY3MmQ5YTY3NmU4 YmNkY2FkZjBhMWNmYTFhMi5wYXRjaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAuLmYwYjlmNWQKKy0tLSAvZGV2L251bGwKKysrKyBiLzkwOTY0MjY2MDMyNzI2NzJkOWE2NzZl OGJjZGNhZGYwYTFjZmExYTIucGF0Y2gKK0BAIC0wLDAgKzEsMTQzIEBACisrRnJvbSA5MDk2NDI2 NjAzMjcyNjcyZDlhNjc2ZThiY2RjYWRmMGExY2ZhMWEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorK0Zyb206IFJvYmluIER1bm4gPHJvYmluQGFsbGR1bm4uY29tPgorK0RhdGU6IFdlZCwgMjYg RmViIDIwMjAgMTE6MTA6MjcgLTA4MDAKKytTdWJqZWN0OiBbUEFUQ0hdIEFkZCBfX2luZGV4X18g dG8gd3guV2luZG93SUQsIGFuZCBfX2Jvb2xfXyB0byB3eC5SZWdpb24KKysKKystLS0KKysgZXRn L3JlZ2lvbi5weSAgICAgICAgICAgICAgfCAgNSArKystLQorKyBldGcvd2luZG93aWQucHkgICAg ICAgICAgICB8IDMyICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCisrIHVuaXR0ZXN0 cy90ZXN0X3dpbmRvd2lkLnB5IHwgMjMgKysrKysrKysrKysrKysrKysrKysrLS0KKysgMyBmaWxl cyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKKysKKytkaWZmIC0t Z2l0IGEvZXRnL3JlZ2lvbi5weSBiL2V0Zy9yZWdpb24ucHkKKytpbmRleCAwOTgyYzFmZTUuLmQ1 YmM0NTc1OSAxMDA2NDQKKystLS0gYS9ldGcvcmVnaW9uLnB5CisrKysrIGIvZXRnL3JlZ2lvbi5w eQorK0BAIC04OCwxMSArODgsMTIgQEAgZGVmIG5leHQoc2VsZik6CisrICAgICBjLm11c3RIYXZl QXBwKCkKKysgICAgIGMuZmluZCgnb3BlcmF0b3IrKycpLmlnbm9yZSgpCisrIAorKy0gICAgIyBT SVAgbWFwcyBvcGVyYXRvciBib29sKCkgdG8gX19pbnRfXywgYnV0IENsYXNzaWMgdXNlZCBfX25v bnplcm9fXy4gRG9lcworKy0gICAgIyBpdCBtYWtlIGFueSBkaWZmZXJlbmNlIGVpdGhlciB3YXk/ CisrICAgICBjLmZpbmQoJ29wZXJhdG9yIGJvb2wnKS5pZ25vcmUoKQorKyAgICAgYy5hZGRDcHBN ZXRob2QoJ2ludCcsICdfX25vbnplcm9fXycsICcoKScsICdyZXR1cm4gKGludClzZWxmLT5vcGVy YXRvciBib29sKCk7JywKKysgICAgICAgICAgICAgICAgICAgICdSZXR1cm5zIHRydWUgd2hpbGUg dGhlcmUgYXJlIHN0aWxsIHJlY3RhbmdsZXMgYXZhaWxhYmxlIGluIHRoZSBpdGVyYXRpb24uJykK KysrICAgIGMuYWRkQ3BwTWV0aG9kKCdpbnQnLCAnX19ib29sX18nLCAnKCknLCAncmV0dXJuIChp bnQpc2VsZi0+b3BlcmF0b3IgYm9vbCgpOycsCisrKyAgICAgICAgICAgICAgICAgICAnUmV0dXJu cyB0cnVlIHdoaWxlIHRoZXJlIGFyZSBzdGlsbCByZWN0YW5nbGVzIGF2YWlsYWJsZSBpbiB0aGUg aXRlcmF0aW9uLicpCisrKworKyAKKysgICAgIGMuYWRkQ3BwTWV0aG9kKCd2b2lkJywgJ05leHQn LCAnKCknLCAnc2VsZi0+b3BlcmF0b3IrKygpOycsCisrICAgICAgICAgICAgICAgICAgICAnTW92 ZSB0aGUgaXRlcmF0b3IgdG8gdGhlIG5leHQgcmVjdGFuZ2xlIGluIHRoZSByZWdpb24uJykKKytk aWZmIC0tZ2l0IGEvZXRnL3dpbmRvd2lkLnB5IGIvZXRnL3dpbmRvd2lkLnB5CisraW5kZXggMjdi MDQxYjNkLi5kYTJlZDM5NWUgMTAwNjQ0CisrLS0tIGEvZXRnL3dpbmRvd2lkLnB5CisrKysrIGIv ZXRnL3dpbmRvd2lkLnB5CisrQEAgLTUzLDEyICs1MywxMiBAQCBkZWYgcnVuKCk6CisrICAgICAg ICAgICAgICAgICBNZXRob2REZWYobmFtZT0nd3hXaW5kb3dJRFJlZicsIGNsYXNzTmFtZT0nd3hX aW5kb3dJRFJlZicsIGlzQ3Rvcj1UcnVlLAorKyAgICAgICAgICAgICAgICAgICAgIGJyaWVmRG9j PSdDcmVhdGUgcmVmZXJlbmNlIGZyb20gYW4gSUQnLAorKyAgICAgICAgICAgICAgICAgICAgIGl0 ZW1zPVsgUGFyYW1EZWYodHlwZT0naW50JywgbmFtZT0naWQnKSBdKSwKKystICAgICAgICAgICAg ICAgIAorKysKKysgICAgICAgICAgICAgICAgIE1ldGhvZERlZihuYW1lPSd3eFdpbmRvd0lEUmVm JywgY2xhc3NOYW1lPSd3eFdpbmRvd0lEUmVmJywgaXNDdG9yPVRydWUsCisrICAgICAgICAgICAg ICAgICAgICAgYnJpZWZEb2M9J0NvcHkgYW4gSUQgcmVmZXJlbmNlJywKKysgICAgICAgICAgICAg ICAgICAgICBpdGVtcz1bIFBhcmFtRGVmKHR5cGU9J2NvbnN0IHd4V2luZG93SURSZWYmJywgbmFt ZT0naWRyZWYnKSBdKSwKKysgICAgICAgICAgICAgICAgIF0pLAorKy0gICAgICAgICAgICAKKysr CisrICAgICAgICAgICAgIE1ldGhvZERlZihuYW1lPSd+d3hXaW5kb3dJRFJlZicsIGNsYXNzTmFt ZT0nd3hXaW5kb3dJRFJlZicsIGlzRHRvcj1UcnVlKSwKKysgCisrICAgICAgICAgICAgIE1ldGhv ZERlZih0eXBlPSdpbnQnLCBuYW1lPSdHZXRWYWx1ZScsCisrQEAgLTczLDExICs3MywxMyBAQCBk ZWYgcnVuKCk6CisrICAgICAgICAgICAgICIiIikKKysgCisrICAgICBrbGFzcy5hZGRDcHBNZXRo b2QoJ2ludCcsICdfX2ludF9fJywgJygpJywKKystICAgICAgICBkb2M9IkFsaWFzIGZvciBHZXRW YWx1ZSBhbGxvd2luZyB0aGUgSURSZWYgdG8gYmUgcGFzc2VkIGFzIHRoZSBXaW5kb3dJRCBwYXJh bWV0ZXIgd2hlbiBjcmVhdGluZyB3aWRnZXRzIG9yIGV0Yy4iLAorKy0gICAgICAgIGJvZHk9IiIi XAorKy0gICAgICAgICAgICByZXR1cm4gc2VsZi0+R2V0VmFsdWUoKTsKKystICAgICAgICAgICAg IiIiKQorKy0gICAgCisrKyAgICAgICAgZG9jPSJBbGlhcyBmb3IgR2V0VmFsdWUgYWxsb3dpbmcg dGhlIElEUmVmIHRvIGJlIHBhc3NlZCBhcyB0aGUgV2luZG93SUQgcGFyYW1ldGVyIHdoZW4gY3Jl YXRpbmcgd2lkZ2V0cyBvciBvdGhlciBwbGFjZXMgYW4gaW50ZWdlciB0eXBlIGlzIG5lZWRlZC4i LAorKysgICAgICAgIGJvZHk9InJldHVybiBzZWxmLT5HZXRWYWx1ZSgpOyIpCisrKyAgICBrbGFz cy5hZGRDcHBNZXRob2QoJ2ludCcsICdfX2luZGV4X18nLCAnKCknLAorKysgICAgICAgIGRvYz0i U2VlIDptZXRoOmBfX2ludF9fYCIsCisrKyAgICAgICAgYm9keT0icmV0dXJuIHNlbGYtPkdldFZh bHVlKCk7IikKKysrCisrKworKyAgICAga2xhc3MuYWRkQ3BwTWV0aG9kKCdib29sJywgJ19fZXFf XycsICcod3hXaW5kb3dJRCBpZCknLCAicmV0dXJuIHNlbGYtPkdldFZhbHVlKCkgPT0gaWQ7IikK KysgICAgIGtsYXNzLmFkZENwcE1ldGhvZCgnYm9vbCcsICdfX25lX18nLCAnKHd4V2luZG93SUQg aWQpJywgInJldHVybiBzZWxmLT5HZXRWYWx1ZSgpICE9IGlkOyIpCisrICAgICBrbGFzcy5hZGRD cHBNZXRob2QoJ2Jvb2wnLCAnX19sdF9fJywgJyh3eFdpbmRvd0lEIGlkKScsICJyZXR1cm4gc2Vs Zi0+R2V0VmFsdWUoKSA8IGlkOyIpCisrQEAgLTkyLDE3ICs5NCwxNyBAQCBkZWYgcnVuKCk6Cisr ICAgICAjIGFuZCBmaW5pc2ggaXQgdXAgYnkgYWRkaW5nIGl0IHRvIHRoZSBtb2R1bGUKKysgICAg IG1vZHVsZS5hZGRJdGVtKGtsYXNzKQorKyAKKystICAgICMgTm93LCBsZXQncyBhZGQgYSBuZXcg UHl0aG9uIGZ1bmN0aW9uIHRvIHRoZSBnbG9iYWwgc2NvcGUgdGhhdCByZXNlcnZlcyBhbiAKKyst ICAgICMgSUQgKG9yIHJhbmdlKSBhbmQgcmV0dXJucyBhIHJlZiBvYmplY3QgZm9yIGl0LiAKKyst ICAgIG1vZHVsZS5hZGRQeUZ1bmN0aW9uKCdOZXdJZFJlZicsICcoY291bnQ9MSknLCAKKysrICAg ICMgTm93LCBsZXQncyBhZGQgYSBuZXcgUHl0aG9uIGZ1bmN0aW9uIHRvIHRoZSBnbG9iYWwgc2Nv cGUgdGhhdCByZXNlcnZlcyBhbgorKysgICAgIyBJRCAob3IgcmFuZ2UpIGFuZCByZXR1cm5zIGEg cmVmIG9iamVjdCBmb3IgaXQuCisrKyAgICBtb2R1bGUuYWRkUHlGdW5jdGlvbignTmV3SWRSZWYn LCAnKGNvdW50PTEpJywKKysgICAgICAgICBkb2M9IiIiXAorKy0gICAgICAgICAgICBSZXNlcnZl cyBhIG5ldyBXaW5kb3cgSUQgKG9yIHJhbmdlIG9mIFdpbmRvd0lEcykgYW5kIHJldHVybnMgYSAK KystICAgICAgICAgICAgOmNsYXNzOmB3eC5XaW5kb3dJRFJlZmAgb2JqZWN0IChvciBsaXN0IG9m IHRoZW0pIHRoYXQgd2lsbCBoZWxwIAorKysgICAgICAgICAgICBSZXNlcnZlcyBhIG5ldyBXaW5k b3cgSUQgKG9yIHJhbmdlIG9mIFdpbmRvd0lEcykgYW5kIHJldHVybnMgYQorKysgICAgICAgICAg ICA6Y2xhc3M6YHd4LldpbmRvd0lEUmVmYCBvYmplY3QgKG9yIGxpc3Qgb2YgdGhlbSkgdGhhdCB3 aWxsIGhlbHAKKysgICAgICAgICAgICAgbWFuYWdlIHRoZSByZXNlcnZhdGlvbiBvZiB0aGF0IElE LgorKyAKKystICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSBhIGRy b3AtaW4gcmVwbGFjZW1lbnQgb2YgdGhlIG9sZCAKKystICAgICAgICAgICAgYW5kIGRlcHJlY2F0 ZWQgOmZ1bmM6YHd4Lk5ld0lkYCBmdW5jdGlvbiwgd2l0aCB0aGUgYWRkZWQgYmVuZWZpdCAKKyst ICAgICAgICAgICAgdGhhdCB0aGUgSUQgc2hvdWxkIG5ldmVyIGNvbmZsaWN0IHdpdGggYW4gaW4t dXNlIElEIG9yIG90aGVyIElEcyAKKysrICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBpbnRl bmRlZCB0byBiZSBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgb2YgdGhlIG9sZAorKysgICAgICAgICAg ICBhbmQgZGVwcmVjYXRlZCA6ZnVuYzpgd3guTmV3SWRgIGZ1bmN0aW9uLCB3aXRoIHRoZSBhZGRl ZCBiZW5lZml0CisrKyAgICAgICAgICAgIHRoYXQgdGhlIElEIHNob3VsZCBuZXZlciBjb25mbGlj dCB3aXRoIGFuIGluLXVzZSBJRCBvciBvdGhlciBJRHMKKysgICAgICAgICAgICAgZ2VuZXJhdGVk IGJ5IHRoaXMgZnVuY3Rpb24uCisrICAgICAgICAgICAgICIiIiwKKysgICAgICAgICBib2R5PSIi IlwKKytkaWZmIC0tZ2l0IGEvdW5pdHRlc3RzL3Rlc3Rfd2luZG93aWQucHkgYi91bml0dGVzdHMv dGVzdF93aW5kb3dpZC5weQorK2luZGV4IDQ1OTNlNWE2OS4uZmMzNmM5ZWI4IDEwMDY0NAorKy0t LSBhL3VuaXR0ZXN0cy90ZXN0X3dpbmRvd2lkLnB5CisrKysrIGIvdW5pdHRlc3RzL3Rlc3Rfd2lu ZG93aWQucHkKKytAQCAtMzEsOSArMzEsOSBAQCBkZWYgdGVzdF9uZXdJZFJlZjAyKHNlbGYpOgor KyAgICAgZGVmIHRlc3RfbmV3SWRSZWYwMyhzZWxmKToKKysgICAgICAgICAiIiJDaGVjayB0aGF0 IEF1dG8gSUQgTWFuYWdlbWVudCBpcyBlbmFibGVkICgtLWVuYWJsZS1hdXRvaWRtYW4pIiIiCisr ICAgICAgICAgIyBUaGlzIHRlc3QgaXMgZXhwZWN0ZWQgdG8gZmFpbCBpZiBhdXRvSUQgbWFuZ2Fn ZW1lbnQgaXMgdHVybmVkIG9uCisrLSAgICAgICAgIyBiZWNhdXNlIGEgcmVmZXJlbmNlIHRvIHRo ZSBJRCBpcyBub3QgYmVpbmcgc2F2ZWQsIHNvIGl0IHdpbGwgYmUgCisrKyAgICAgICAgIyBiZWNh dXNlIGEgcmVmZXJlbmNlIHRvIHRoZSBJRCBpcyBub3QgYmVpbmcgc2F2ZWQsIHNvIGl0IHdpbGwg YmUKKysgICAgICAgICAjIHVucmVzZXJ2ZWQgd2hlbiB0aGUgZmlyc3Qgd2lkZ2V0IGlzIGRlc3Ry b3llZC4KKystICAgICAgICAKKysrCisrICAgICAgICAgaWQgPSB3eC5XaW5kb3cuTmV3Q29udHJv bElkKCkKKysgICAgICAgICBiID0gd3guQnV0dG9uKHNlbGYuZnJhbWUsIGlkLCAnYnV0dG9uJykK KysgICAgICAgICBiLkRlc3Ryb3koKQorK0BAIC03NSw2ICs3NSw3IEBAIGRlZiB0ZXN0X1dpbmRv d0lEUmVmMDEoc2VsZik6CisrICAgICAgICAgdmFsID0gcmVmMSA8PSByZWYyCisrICAgICAgICAg YXNzZXJ0IHR5cGUodmFsKSA9PSBib29sCisrIAorKysKKysgICAgIGRlZiB0ZXN0X1dpbmRvd0lE UmVmMDIoc2VsZik6CisrICAgICAgICAgZCA9IHt3eC5OZXdJZFJlZigpOiAnb25lJywKKysgICAg ICAgICAgICAgIHd4Lk5ld0lkUmVmKCk6ICd0d28nfQorK0BAIC04Miw2ICs4MywyNCBAQCBkZWYg dGVzdF9XaW5kb3dJRFJlZjAyKHNlbGYpOgorKyAgICAgICAgIGZvciBrIGluIGtleXM6CisrICAg ICAgICAgICAgIHZhbCA9IGRba10KKysgCisrKworKysgICAgZGVmIHRlc3RfV2luZG93SURSZWYw MyhzZWxmKToKKysrICAgICAgICAjIEVuc3VyZSB3eC5XaW5kb3dJRFJlZiBjYW4gYmUgY29udmVy dGVkIHRvIGludCB3aXRob3V0IHdhcm5pbmcgd2hlbgorKysgICAgICAgICMgbWFraW5nIGEgY2Fs bCB0byB3YXJycGVkIG1ldGhvZC4gSW4gUHkzLjgrIHRoaXMgbWVhbnMgdGhlcmUgbmVlZHMgdG8K KysrICAgICAgICAjIGJlIGFuIF9faW5kZXhfXyBtZXRob2QuCisrKworKysgICAgICAgICMgVHVy biB3YXJuaW5ncyBpbnRvIGV4Y2VwdGlvbnMgc28gdGhpcyB0ZXN0IHdpbGwgZmFpbCBpZiB0aGVy ZSBpcworKysgICAgICAgICMgYSB3YXJuaW5nCisrKyAgICAgICAgaW1wb3J0IHdhcm5pbmdzCisr KyAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdlcnJvcicpCisrKworKysgICAgICAgIHdp ZCA9IHd4Lk5ld0lkUmVmKCkKKysrICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh3aWQsIHd4Lldp bmRvd0lEUmVmKQorKysKKysrICAgICAgICBiID0gd3guQnV0dG9uKHNlbGYuZnJhbWUsIHdpZCwg J2J1dHRvbicpCisrKyAgICAgICAgYXNzZXJ0IGIuR2V0SWQoKSA9PSB3aWQuR2V0SWQoKQorKysK KysrCisrICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysgCisrIAorIAorZGlmZiAtLWdpdCBhL3B5dGhv bjMuMTAtZml4ZXMucGF0Y2ggYi9weXRob24zLjEwLWZpeGVzLnBhdGNoCituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMC4uMjllOGM2MQorLS0tIC9kZXYvbnVsbAorKysrIGIvcHl0 aG9uMy4xMC1maXhlcy5wYXRjaAorQEAgLTAsMCArMSwzMDM0IEBACisrRnJvbSAxNzNkMDc5Njgx MGJiNjVkZTliZGZkYzY5NDFkMjRhMDQ2MjhmNmMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor K0Zyb206IFNjb3R0IFRhbGJlcnQgPHN3dEB0ZWNoaWUubmV0PgorK0RhdGU6IFdlZCwgMSBEZWMg MjAyMSAxNDoxOTowMCAtMDUwMAorK1N1YmplY3Q6IFtQQVRDSF0gRml4IGEgYnVuY2ggb2YgUHl0 aG9uIDMuMTAgaXNzdWVzIHdpdGggcHVyZS1QeXRob24gY2xhc3NlcworKyBhbmQgZGVtb3MKKysK KytJbiBQeXRob24gMy4xMCwgYSBjaGFuZ2VbMV0gd2FzIGltcGxlbWVudGVkIHdoZXJlIGV4dGVu c2lvbiBmdW5jdGlvbnMKKyt0aGF0IHRha2UgaW50ZWdlciBhcmd1bWVudHMgd2lsbCBubyBsb25n ZXIgc2lsZW50bHkgYWNjZXB0IG5vbi1pbnRlZ2VyCisrYXJndW1lbnRzIChlLmcuLCBmbG9hdHMp IHRoYXQgY2FuIG9ubHkgYmUgY29udmVydGVkIHRvIGludGVnZXJzIHdpdGggYQorK2xvc3Mgb2Yg cHJlY2lzaW9uLiAgVGhpcyBQUiBmaXhlcyBtb3N0IG9mIHRoZXNlIGlzc3VlcyBpbiB0aGUgcHVy ZS1QeXRob24KKytjbGFzc2VzIGFuZCBkZW1vcyBieSBleHBsaWNpdGx5IGNvbnZlcnRpbmcgdGhl IHBhcmFtZXRlcnMgdG8gaW50IGJlZm9yZQorK3Bhc3NpbmcgdGhlbSB0byB3eFdpZGdldHMuICBU aGVyZSBpcyBsb3NzIG9mIHByZWNpc2lvbiwgYnV0IHRoaXMgd2FzCisraGFwcGVuaW5nIGJlZm9y ZSAoYXV0b21hdGljYWxseSkgYW55d2F5IGFzIG1vc3Qgd3hXaWRnZXRzIERldmljZUNvbnRleHQK KytmdW5jdGlvbnMgb3BlcmF0ZSB1c2luZyBpbnRlZ2Vycy4KKysKKytBZGRpdGlvbmFsbHksIHRo ZSBQUiBmaXhlcyBhIGZldyBzaXppbmcgaXNzdWVzLCBtb3N0bHkgd2l0aCBTcGluQ3RybHMgYmVp bmcKKyt0b28gc21hbGwgb24gR1RLMy4KKysKKytUaGlzIGlzIGFuIGV4YW1wbGUgb2YgdGhlIHJl bGV2YW50IGV4Y2VwdGlvbjoKKytUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6Cisr ICBGaWxlICIvdXNyL2xpYjY0L3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdlcy93eC9saWIvYWd3L3B5 Z2F1Z2UucHkiLCBsaW5lIDM1NSwgaW4gT25QYWludAorKyAgICByLndpZHRoID0gdworK1R5cGVF cnJvcjogJ2Zsb2F0JyBvYmplY3QgY2Fubm90IGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIK KysKKytGaXhlcyAjMjAzOC4KKysKKytbMV0gaHR0cHM6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUz Nzk5OQorKy0tLQorKyBkZW1vL0dyaWRMYWJlbFJlbmRlcmVyLnB5ICAgICAgICAgICAgICAgfCAg IDQgKy0KKysgZGVtby9NYXNrLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICst CisrIGRlbW8vT3ZlcmxheS5weSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCisrIGRl bW8vUGVuQW5kQnJ1c2hTdHlsZXMucHkgICAgICAgICAgICAgICB8ICAgMiArLQorKyBkZW1vL1Bv cHVwV2luZG93LnB5ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgZGVtby9QcmludEZy YW1ld29yay5weSAgICAgICAgICAgICAgICAgIHwgICAyICstCisrIGRlbW8vUHJvcGVydHlHcmlk LnB5ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQorKyBkZW1vL1NpemVycy5weSAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgZGVtby9VSUFjdGlvblNpbXVsYXRvci5weSAg ICAgICAgICAgICAgIHwgICAyICstCisrIGRlbW8vYWd3L0FVSS5weSAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAzMiArKystLS0tCisrIGRlbW8vYWd3L01hY0xhcmdlRGVtby5weSAgICAgICAg ICAgICAgICB8ICAgNCArLQorKyBkZW1vL2Fndy9QZWFrTWV0ZXIucHkgICAgICAgICAgICAgICAg ICAgfCAgIDYgKy0KKysgZGVtby9hZ3cvUGVyc2lzdGVudENvbnRyb2xzLnB5ICAgICAgICAgIHwg ICAyICstCisrIGRlbW8vYWd3L1JpYmJvbkJhci5weSAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQorKyBkZW1vL2Fndy9TcGVlZE1ldGVyLnB5ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysg ZGVtby9hZ3cvU3VwZXJUb29sVGlwLnB5ICAgICAgICAgICAgICAgIHwgICAzICstCisrIGRlbW8v YWd3L1RodW1iRGVtb0NvbmZpZy5weSAgICAgICAgICAgICB8ICAgMSArCisrIGRlbW8vYWd3L1Vs dGltYXRlUmVwb3J0RGVtby5weSAgICAgICAgICB8ICAgOCArLQorKyBkZW1vL2Fndy9XaW5kb3dz N0V4cGxvcmVyX0NvbnRlbnRzLnB5ICAgfCAgMTYgKystLQorKyBkZW1vL2Fndy9ab29tQmFyLnB5 ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgd3gvbGliL2Fndy9hZHZhbmNlZHNwbGFz aC5weSAgICAgICAgICAgIHwgICAyICstCisrIHd4L2xpYi9hZ3cvYXVpL2F1aV91dGlsaXRpZXMu cHkgICAgICAgICB8ICAgNCArLQorKyB3eC9saWIvYWd3L2F1aS9hdWlib29rLnB5ICAgICAgICAg ICAgICAgfCAgIDQgKy0KKysgd3gvbGliL2Fndy9iYWxsb29udGlwLnB5ICAgICAgICAgICAgICAg IHwgICA0ICstCisrIHd4L2xpYi9hZ3cvZmxhdG1lbnUucHkgICAgICAgICAgICAgICAgICB8ICA2 MiArKysrKystLS0tLS0tCisrIHd4L2xpYi9hZ3cvZmxhdG5vdGVib29rLnB5ICAgICAgICAgICAg ICB8ICAxMCArLS0KKysgd3gvbGliL2Fndy9mbG9hdHNwaW4ucHkgICAgICAgICAgICAgICAgIHwg ICAyICstCisrIHd4L2xpYi9hZ3cvZ3JhZGllbnRidXR0b24ucHkgICAgICAgICAgICB8ICAgOCAr LQorKyB3eC9saWIvYWd3L2h5cGVydHJlZWxpc3QucHkgICAgICAgICAgICAgfCAgIDIgKy0KKysg d3gvbGliL2Fndy9rbm9iY3RybC5weSAgICAgICAgICAgICAgICAgIHwgIDEyICstLQorKyB3eC9s aWIvYWd3L2xhYmVsYm9vay5weSAgICAgICAgICAgICAgICAgfCAgMzIgKysrLS0tLQorKyB3eC9s aWIvYWd3L3BlYWttZXRlci5weSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgd3gvbGliL2Fn dy9weWdhdWdlLnB5ICAgICAgICAgICAgICAgICAgIHwgICA0ICstCisrIHd4L2xpYi9hZ3cvcmli Ym9uL2FydF9hdWkucHkgICAgICAgICAgICB8ICAyMiArKy0tLQorKyB3eC9saWIvYWd3L3JpYmJv bi9hcnRfaW50ZXJuYWwucHkgICAgICAgfCAgMTIgKy0tCisrIHd4L2xpYi9hZ3cvcmliYm9uL2Fy dF9tc3cucHkgICAgICAgICAgICB8ICA4OCArKysrKysrKystLS0tLS0tLS0tCisrIHd4L2xpYi9h Z3cvcmliYm9uL2Jhci5weSAgICAgICAgICAgICAgICB8ICAgNCArLQorKyB3eC9saWIvYWd3L3Jp YmJvbi9idXR0b25iYXIucHkgICAgICAgICAgfCAgIDYgKy0KKysgd3gvbGliL2Fndy9yaWJib24v Z2FsbGVyeS5weSAgICAgICAgICAgIHwgICA4ICstCisrIHd4L2xpYi9hZ3cvcmliYm9uL3BhbmVs LnB5ICAgICAgICAgICAgICB8ICAxNiArKy0tCisrIHd4L2xpYi9hZ3cvcmliYm9uL3Rvb2xiYXIu cHkgICAgICAgICAgICB8ICAgMiArLQorKyB3eC9saWIvYWd3L3Njcm9sbGVkdGh1bWJuYWlsLnB5 ICAgICAgICAgfCAgMjQgKysrLS0tCisrIHd4L2xpYi9hZ3cvc2hhcGVkYnV0dG9uLnB5ICAgICAg ICAgICAgICB8ICAxMCArLS0KKysgd3gvbGliL2Fndy9zcGVlZG1ldGVyLnB5ICAgICAgICAgICAg ICAgIHwgIDcyICsrKysrKysrKy0tLS0tLS0KKysgd3gvbGliL2Fndy9zdXBlcnRvb2x0aXAucHkg ICAgICAgICAgICAgIHwgIDIwICsrLS0tCisrIHd4L2xpYi9hZ3cvdG9hc3RlcmJveC5weSAgICAg ICAgICAgICAgICB8ICAgNCArLQorKyB3eC9saWIvYWd3L3VsdGltYXRlbGlzdGN0cmwucHkgICAg ICAgICAgfCAgMjAgKystLS0KKysgd3gvbGliL2Fndy94bHNncmlkLnB5ICAgICAgICAgICAgICAg ICAgIHwgICA0ICstCisrIHd4L2xpYi9hZ3cvem9vbWJhci5weSAgICAgICAgICAgICAgICAgICB8 ICAxMCArLS0KKysgd3gvbGliL2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5ICAgICAgIHwgICAy ICstCisrIHd4L2xpYi9hbmFsb2djbG9jay9oZWxwZXJzLnB5ICAgICAgICAgICB8ICAyMiArKy0t LQorKyB3eC9saWIvYW5hbG9nY2xvY2svc2V0dXAucHkgICAgICAgICAgICAgfCAgIDYgKy0KKysg d3gvbGliL2J1dHRvbnMucHkgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICstLQorKyB3eC9s aWIvY29sb3VyY2hvb3Nlci9weWNvbG91cmNob29zZXIucHkgfCAgIDQgKy0KKysgd3gvbGliL2Nv bG91cmNob29zZXIvcHlwYWxldHRlLnB5ICAgICAgIHwgICAyICstCisrIHd4L2xpYi9mbG9hdGNh bnZhcy9GQ09iamVjdHMucHkgICAgICAgICB8ICAgOCArLQorKyB3eC9saWIvZ2l6bW9zL2xlZGN0 cmwucHkgICAgICAgICAgICAgICAgfCAgIDggKy0KKysgd3gvbGliL2ltYWdlYnJvd3Nlci5weSAg ICAgICAgICAgICAgICAgIHwgICA0ICstCisrIHd4L2xpYi9vZ2wvYmFzaWMucHkgICAgICAgICAg ICAgICAgICAgICB8ICAxMCArLS0KKysgd3gvbGliL29nbC9ibXBzaGFwZS5weSAgICAgICAgICAg ICAgICAgIHwgICAyICstCisrIHd4L2xpYi9vZ2wvY29tcG9zaXQucHkgICAgICAgICAgICAgICAg ICB8ICAgNCArLQorKyB3eC9saWIvb2dsL2RpdmlkZWQucHkgICAgICAgICAgICAgICAgICAgfCAg IDIgKy0KKysgd3gvbGliL29nbC9saW5lcy5weSAgICAgICAgICAgICAgICAgICAgIHwgICAyICst CisrIHd4L2xpYi9vZ2wvb2dsbWlzYy5weSAgICAgICAgICAgICAgICAgICB8ICAgNCArLQorKyB3 eC9saWIvcGxvdC9leGFtcGxlcy9kZW1vLnB5ICAgICAgICAgICAgfCAgIDQgKy0KKysgd3gvbGli L3Bsb3QvcGxvdGNhbnZhcy5weSAgICAgICAgICAgICAgIHwgMTEwICsrKysrKysrKysrKy0tLS0t LS0tLS0tLQorKyB3eC9saWIvcGxvdC9wb2x5b2JqZWN0cy5weSAgICAgICAgICAgICAgfCAgMjIg KysrLS0KKysgd3gvbGliL3BvcHVwY3RsLnB5ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICst CisrIHd4L2xpYi9zY3JvbGxlZHBhbmVsLnB5ICAgICAgICAgICAgICAgICB8ICAgMiArLQorKyB3 eC9saWIvdGhyb2JiZXIucHkgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KKysgd3gvbGli L3RpY2tlci5weSAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCisrIDcxIGZpbGVzIGNo YW5nZWQsIDQxMSBpbnNlcnRpb25zKCspLCAzOTggZGVsZXRpb25zKC0pCisrCisrZGlmZiAtLWdp dCBhL2RlbW8vR3JpZExhYmVsUmVuZGVyZXIucHkgYi9kZW1vL0dyaWRMYWJlbFJlbmRlcmVyLnB5 CisraW5kZXggNzk0ZGQ2NGU4Li4xNDQwZWY0MWIgMTAwNjQ0CisrLS0tIGEvZGVtby9HcmlkTGFi ZWxSZW5kZXJlci5weQorKysrKyBiL2RlbW8vR3JpZExhYmVsUmVuZGVyZXIucHkKKytAQCAtNDYs OCArNDYsOCBAQCBkZWYgX19pbml0X18oc2VsZik6CisrICAgICAgICAgc2VsZi5fYm1wID0gaW1h Z2VzLlNtaWxlcy5HZXRCaXRtYXAoKQorKyAKKysgICAgIGRlZiBEcmF3KHNlbGYsIGdyaWQsIGRj LCByZWN0LCByYyk6CisrLSAgICAgICAgeCA9IHJlY3QubGVmdCArIChyZWN0LndpZHRoIC0gc2Vs Zi5fYm1wLkdldFdpZHRoKCkpIC8gMgorKy0gICAgICAgIHkgPSByZWN0LnRvcCArIChyZWN0Lmhl aWdodCAtIHNlbGYuX2JtcC5HZXRIZWlnaHQoKSkgLyAyCisrKyAgICAgICAgeCA9IHJlY3QubGVm dCArIChyZWN0LndpZHRoIC0gc2VsZi5fYm1wLkdldFdpZHRoKCkpIC8vIDIKKysrICAgICAgICB5 ID0gcmVjdC50b3AgKyAocmVjdC5oZWlnaHQgLSBzZWxmLl9ibXAuR2V0SGVpZ2h0KCkpIC8vIDIK KysgICAgICAgICBkYy5EcmF3Qml0bWFwKHNlbGYuX2JtcCwgeCwgeSwgVHJ1ZSkKKysgCisrIAor K2RpZmYgLS1naXQgYS9kZW1vL01hc2sucHkgYi9kZW1vL01hc2sucHkKKytpbmRleCAxMDliOGYz MGIuLmU5MjRmOTViOSAxMDA2NDQKKystLS0gYS9kZW1vL01hc2sucHkKKysrKysgYi9kZW1vL01h c2sucHkKKytAQCAtOTAsOSArOTAsOSBAQCBkZWYgT25QYWludCAoc2VsZiwgZSk6CisrIAorKyAg ICAgICAgIGZvciB0ZXh0LCBjb2RlIGluIGxvZ2ljTGlzdDoKKysgICAgICAgICAgICAgeCx5ID0g MTIwKzE1MCooaSU0KSwgMjArMTAwKihpLzQpCisrLSAgICAgICAgICAgIGRjLkRyYXdUZXh0KHRl eHQsIHgsIHktMjApCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KHRleHQsIHgsIGludCh5LTIw KSkKKysgICAgICAgICAgICAgbWRjLlNlbGVjdE9iamVjdChzZWxmLmJtcF93aXRoY29sb3VybWFz aykKKystICAgICAgICAgICAgZGMuQmxpdCh4LHksIGN4LGN5LCBtZGMsIDAsMCwgY29kZSwgVHJ1 ZSkKKysrICAgICAgICAgICAgZGMuQmxpdCh4LGludCh5KSwgY3gsY3ksIG1kYywgMCwwLCBjb2Rl LCBUcnVlKQorKyAgICAgICAgICAgICBpID0gaSArIDEKKysgCisrIAorK2RpZmYgLS1naXQgYS9k ZW1vL092ZXJsYXkucHkgYi9kZW1vL092ZXJsYXkucHkKKytpbmRleCA2NTE2NGNkODQuLmZhNjVi ZTAwMyAxMDA2NDQKKystLS0gYS9kZW1vL092ZXJsYXkucHkKKysrKysgYi9kZW1vL092ZXJsYXku cHkKKytAQCAtNTYsNyArNTYsNiBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBsb2cpOgor KyAgICAgICAgIHNlbGYucGVuc3R5bGVzQ29tYm8uU2V0VG9vbFRpcCgnUGVuIFN0eWxlJykKKysg CisrICAgICAgICAgc2VsZi5vdmVybGF5UGVuV2lkdGggPSB3eC5TcGluQ3RybChzZWxmLCAtMSwg dmFsdWU9JycsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplPSg3NSwgLTEpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3R5bGU9d3guU1BfQVJST1dfS0VZUywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1pbj0xLCBtYXg9MjQsIGluaXRpYWw9MSkKKysgICAgICAgICBzZWxm Lm92ZXJsYXlQZW5XaWR0aC5TZXRUb29sVGlwKCdQZW4gV2lkdGgnKQorK2RpZmYgLS1naXQgYS9k ZW1vL1BlbkFuZEJydXNoU3R5bGVzLnB5IGIvZGVtby9QZW5BbmRCcnVzaFN0eWxlcy5weQorK2lu ZGV4IDI0MDQwYjFmYy4uMTE4M2Y2ODRhIDEwMDY0NAorKy0tLSBhL2RlbW8vUGVuQW5kQnJ1c2hT dHlsZXMucHkKKysrKysgYi9kZW1vL1BlbkFuZEJydXNoU3R5bGVzLnB5CisrQEAgLTEwMCw3ICsx MDAsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrIAorKyAgICAgICAgIGRjLlNldFBl bihwZW4pCisrICAgICAgICAgeSA9IGxhYmVsSGVpZ2h0ICsgKGhlaWdodCAtIGxhYmVsSGVpZ2h0 KS8yCisrLSAgICAgICAgZGMuRHJhd0xpbmUoNSwgeSwgd2lkdGgtNSwgeSkKKysrICAgICAgICBk Yy5EcmF3TGluZSg1LCBpbnQoeSksIHdpZHRoLTUsIGludCh5KSkKKysgCisrIAorKyBjbGFzcyBC cnVzaFBhbmVsKEJhc2VQYW5lbCk6CisrZGlmZiAtLWdpdCBhL2RlbW8vUG9wdXBXaW5kb3cucHkg Yi9kZW1vL1BvcHVwV2luZG93LnB5CisraW5kZXggZDhlMTc1NTc2Li5iNTRiOTg3MGQgMTAwNjQ0 CisrLS0tIGEvZGVtby9Qb3B1cFdpbmRvdy5weQorKysrKyBiL2RlbW8vUG9wdXBXaW5kb3cucHkK KytAQCAtODksNyArODksNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBzdHlsZSwgbG9n KToKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAiKG9yIGl0cyBmaXJzdCBjaGlsZCkgbG9z ZXMgZm9jdXMgaW4gXG4iCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgImFueSBvdGhlciB3 YXkuIikKKysgICAgICAgICBidG4gPSB3eC5CdXR0b24ocGFuZWwsIC0xLCAiUHJlc3MgTWUiKQor Ky0gICAgICAgIHNwaW4gPSB3eC5TcGluQ3RybChwYW5lbCwgLTEsICJIZWxsbyIsIHNpemU9KDEw MCwtMSkpCisrKyAgICAgICAgc3BpbiA9IHd4LlNwaW5DdHJsKHBhbmVsLCAtMSwgIkhlbGxvIikK KysgICAgICAgICBidG4uQmluZCh3eC5FVlRfQlVUVE9OLCBzZWxmLk9uQnV0dG9uKQorKyAKKysg ICAgICAgICBzaXplciA9IHd4LkJveFNpemVyKHd4LlZFUlRJQ0FMKQorK2RpZmYgLS1naXQgYS9k ZW1vL1ByaW50RnJhbWV3b3JrLnB5IGIvZGVtby9QcmludEZyYW1ld29yay5weQorK2luZGV4IGU3 YTI5YTA3Ny4uZjA4NzNhZTk0IDEwMDY0NAorKy0tLSBhL2RlbW8vUHJpbnRGcmFtZXdvcmsucHkK KysrKysgYi9kZW1vL1ByaW50RnJhbWV3b3JrLnB5CisrQEAgLTgxLDcgKzgxLDcgQEAgZGVmIE9u UHJpbnRQYWdlKHNlbGYsIHBhZ2UpOgorKyAKKysgICAgICAgICAjLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyAgICAgICAgIHNlbGYuY2FudmFzLkRvRHJhd2lu ZyhkYywgVHJ1ZSkKKystICAgICAgICBkYy5EcmF3VGV4dCgiUGFnZTogJWQiICUgcGFnZSwgbWFy Z2luWC8yLCBtYXhZLW1hcmdpblkpCisrKyAgICAgICAgZGMuRHJhd1RleHQoIlBhZ2U6ICVkIiAl IHBhZ2UsIG1hcmdpblgvLzIsIG1heFktbWFyZ2luWSkKKysgCisrICAgICAgICAgcmV0dXJuIFRy dWUKKysgCisrZGlmZiAtLWdpdCBhL2RlbW8vUHJvcGVydHlHcmlkLnB5IGIvZGVtby9Qcm9wZXJ0 eUdyaWQucHkKKytpbmRleCBjNTZlMDhiNjAuLmZiZWYyOWUzMSAxMDA2NDQKKystLS0gYS9kZW1v L1Byb3BlcnR5R3JpZC5weQorKysrKyBiL2RlbW8vUHJvcGVydHlHcmlkLnB5CisrQEAgLTE1MCw3 ICsxNTAsNyBAQCBkZWYgX0NvbnZlcnRWYWx1ZShzZWxmLCB2YWx1ZSk6CisrICAgICAgICAgIiIi IFV0aWxpdHkgY29udmVydCBhcmJpdHJhcnkgdmFsdWUgdG8gYSByZWFsIHd4LlNpemUuCisrICAg ICAgICAgIiIiCisrICAgICAgICAgaW1wb3J0IGNvbGxlY3Rpb25zCisrLSAgICAgICAgaWYgaXNp bnN0YW5jZSh2YWx1ZSwgY29sbGVjdGlvbnMuU2VxdWVuY2UpIG9yIGhhc2F0dHIodmFsdWUsICdf X2dldGl0ZW1fXycpOgorKysgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGNvbGxlY3Rpb25z LmFiYy5TZXF1ZW5jZSkgb3IgaGFzYXR0cih2YWx1ZSwgJ19fZ2V0aXRlbV9fJyk6CisrICAgICAg ICAgICAgIHZhbHVlID0gd3guU2l6ZSgqdmFsdWUpCisrICAgICAgICAgcmV0dXJuIHZhbHVlCisr IAorK2RpZmYgLS1naXQgYS9kZW1vL1NpemVycy5weSBiL2RlbW8vU2l6ZXJzLnB5CisraW5kZXgg NmFiYWJlZGU5Li5hMDI1MDUwZjEgMTAwNjQ0CisrLS0tIGEvZGVtby9TaXplcnMucHkKKysrKysg Yi9kZW1vL1NpemVycy5weQorK0BAIC00NSw3ICs0NSw3IEBAIGRlZiBPblBhaW50KHNlbGYsIGV2 dCk6CisrICAgICAgICAgZGMgPSB3eC5QYWludERDKHNlbGYpCisrICAgICAgICAgdyxoID0gZGMu R2V0VGV4dEV4dGVudChzZWxmLnRleHQpCisrICAgICAgICAgZGMuQ2xlYXIoKQorKy0gICAgICAg IGRjLkRyYXdUZXh0KHNlbGYudGV4dCwgKHN6LndpZHRoLXcpLzIsIChzei5oZWlnaHQtaCkvMikK KysrICAgICAgICBkYy5EcmF3VGV4dChzZWxmLnRleHQsIChzei53aWR0aC13KS8vMiwgKHN6Lmhl aWdodC1oKS8vMikKKysgCisrICAgICBkZWYgT25TaXplKHNlbGYsIGV2dCk6CisrICAgICAgICAg c2VsZi5SZWZyZXNoKCkKKytkaWZmIC0tZ2l0IGEvZGVtby9VSUFjdGlvblNpbXVsYXRvci5weSBi L2RlbW8vVUlBY3Rpb25TaW11bGF0b3IucHkKKytpbmRleCBjYmJhMTRmNWMuLjBhNmZkMDIzNCAx MDA2NDQKKystLS0gYS9kZW1vL1VJQWN0aW9uU2ltdWxhdG9yLnB5CisrKysrIGIvZGVtby9VSUFj dGlvblNpbXVsYXRvci5weQorK0BAIC04OCw3ICs4OCw3IEBAIGRlZiBfcGxheWJhY2tLZXkoc2Vs ZiwgZXZ0VHlwZSwga2V5LCBtb2RpZmllcnMpOgorKyAKKysgICAgIGRlZiBfc2V0TmV4dEtleUV2 ZW50KHNlbGYpOgorKyAgICAgICAgIGV2dFR5cGUsIGtleSwgbW9kaWZpZXJzLCBtaWxsaSA9IHNl bGYuX3BsYXliYWNrRXZlbnRzLnBvcCgwKQorKy0gICAgICAgIG1pbGxpID0gbWF4KG1pbGxpLzIs IDEpICMgcGxheSBiYWNrIGZhc3RlciB0aGFuIGl0IHdhcyByZWNvcmRlZAorKysgICAgICAgIG1p bGxpID0gbWF4KG1pbGxpLy8yLCAxKSAjIHBsYXkgYmFjayBmYXN0ZXIgdGhhbiBpdCB3YXMgcmVj b3JkZWQKKysgICAgICAgICBwcmludChldnRUeXBlLCBrZXksIG1vZGlmaWVycywgbWlsbGkpCisr ICAgICAgICAgd3guQ2FsbExhdGVyKG1pbGxpLCBzZWxmLl9wbGF5YmFja0tleSwgZXZ0VHlwZSwg a2V5LCBtb2RpZmllcnMpCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL2Fndy9BVUkucHkgYi9kZW1v L2Fndy9BVUkucHkKKytpbmRleCA3YzIxOTY4NjUuLmIzODMxM2M4NiAxMDA2NDQKKystLS0gYS9k ZW1vL2Fndy9BVUkucHkKKysrKysgYi9kZW1vL2Fndy9BVUkucHkKKytAQCAtMzkzLDcgKzM5Myw3 IEBAIGRlZiBPblBhaW50KHNlbGYsIGV2ZW50KToKKysgICAgICAgICBkYy5TZXRQZW4od3guTElH SFRfR1JFWV9QRU4pCisrICAgICAgICAgZGMuRHJhd0xpbmUoMCwgMCwgc2l6ZS54LCBzaXplLnkp CisrICAgICAgICAgZGMuRHJhd0xpbmUoMCwgc2l6ZS55LCBzaXplLngsIDApCisrLSAgICAgICAg ZGMuRHJhd1RleHQocywgKHNpemUueC13KS8yLCAoc2l6ZS55LWhlaWdodCo1KS8yKQorKysgICAg ICAgIGRjLkRyYXdUZXh0KHMsIChzaXplLngtdykvLzIsIChzaXplLnktaGVpZ2h0KjUpLy8yKQor KyAKKysgICAgICAgICBpZiBzZWxmLl9tZ3I6CisrIAorK0BAIC00MDEsMTkgKzQwMSwxOSBAQCBk ZWYgT25QYWludChzZWxmLCBldmVudCk6CisrIAorKyAgICAgICAgICAgICBzID0gIkxheWVyOiAl ZCIlcGkuZG9ja19sYXllcgorKyAgICAgICAgICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudChz KQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dChzLCAoc2l6ZS54LXcpLzIsICgoc2l6ZS55LSho ZWlnaHQqNSkpLzIpKyhoZWlnaHQqMSkpCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KHMsIChz aXplLngtdykvLzIsICgoc2l6ZS55LShoZWlnaHQqNSkpLy8yKSsoaGVpZ2h0KjEpKQorKyAKKysg ICAgICAgICAgICAgcyA9ICJEb2NrOiAlZCBSb3c6ICVkIiUocGkuZG9ja19kaXJlY3Rpb24sIHBp LmRvY2tfcm93KQorKyAgICAgICAgICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudChzKQorKy0g ICAgICAgICAgICBkYy5EcmF3VGV4dChzLCAoc2l6ZS54LXcpLzIsICgoc2l6ZS55LShoZWlnaHQq NSkpLzIpKyhoZWlnaHQqMikpCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KHMsIChzaXplLngt dykvLzIsICgoc2l6ZS55LShoZWlnaHQqNSkpLy8yKSsoaGVpZ2h0KjIpKQorKyAKKysgICAgICAg ICAgICAgcyA9ICJQb3NpdGlvbjogJWQiJXBpLmRvY2tfcG9zCisrICAgICAgICAgICAgIHcsIGgg PSBkYy5HZXRUZXh0RXh0ZW50KHMpCisrLSAgICAgICAgICAgIGRjLkRyYXdUZXh0KHMsIChzaXpl LngtdykvMiwgKChzaXplLnktKGhlaWdodCo1KSkvMikrKGhlaWdodCozKSkKKysrICAgICAgICAg ICAgZGMuRHJhd1RleHQocywgKHNpemUueC13KS8vMiwgKChzaXplLnktKGhlaWdodCo1KSkvLzIp KyhoZWlnaHQqMykpCisrIAorKyAgICAgICAgICAgICBzID0gIlByb3BvcnRpb246ICVkIiVwaS5k b2NrX3Byb3BvcnRpb24KKysgICAgICAgICAgICAgdywgaCA9IGRjLkdldFRleHRFeHRlbnQocykK KystICAgICAgICAgICAgZGMuRHJhd1RleHQocywgKHNpemUueC13KS8yLCAoKHNpemUueS0oaGVp Z2h0KjUpKS8yKSsoaGVpZ2h0KjQpKQorKysgICAgICAgICAgICBkYy5EcmF3VGV4dChzLCAoc2l6 ZS54LXcpLy8yLCAoKHNpemUueS0oaGVpZ2h0KjUpKS8vMikrKGhlaWdodCo0KSkKKysgCisrIAor KyAgICAgZGVmIE9uRXJhc2VCYWNrZ3JvdW5kKHNlbGYsIGV2ZW50KToKKytAQCAtNDM1LDcgKzQz NSw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIGZyYW1lKToKKysgCisrICAgICAgICAg czEgPSB3eC5Cb3hTaXplcih3eC5IT1JJWk9OVEFMKQorKyAgICAgICAgIHNlbGYuX2JvcmRlcl9z aXplID0gd3guU3BpbkN0cmwoc2VsZiwgSURfUGFuZUJvcmRlclNpemUsICIlZCIlZnJhbWUuR2V0 RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfUEFORV9CT1JERVJfU0laRSksCisr LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3eC5EZWZhdWx0UG9zaXRp b24sIHd4LlNpemUoNTAsIDIwKSwgd3guU1BfQVJST1dfS0VZUywgMCwgMTAwLAorKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3guRGVmYXVsdFBvc2l0aW9uLCB3eC5E ZWZhdWx0U2l6ZSwgd3guU1BfQVJST1dfS0VZUywgMCwgMTAwLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWku QVVJX0RPQ0tBUlRfUEFORV9CT1JERVJfU0laRSkpCisrICAgICAgICAgczEuQWRkKCgxLCAxKSwg MSwgd3guRVhQQU5EKQorKyAgICAgICAgIHMxLkFkZCh3eC5TdGF0aWNUZXh0KHNlbGYsIC0xLCAi UGFuZSBCb3JkZXIgU2l6ZToiKSkKKytAQCAtNDQ1LDcgKzQ0NSw3IEBAIGRlZiBfX2luaXRfXyhz ZWxmLCBwYXJlbnQsIGZyYW1lKToKKysgCisrICAgICAgICAgczIgPSB3eC5Cb3hTaXplcih3eC5I T1JJWk9OVEFMKQorKyAgICAgICAgIHNlbGYuX3Nhc2hfc2l6ZSA9IHd4LlNwaW5DdHJsKHNlbGYs IElEX1Nhc2hTaXplLCAiJWQiJWZyYW1lLkdldERvY2tBcnQoKS5HZXRNZXRyaWMoYXVpLkFVSV9E T0NLQVJUX1NBU0hfU0laRSksIHd4LkRlZmF1bHRQb3NpdGlvbiwKKystICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB3eC5TaXplKDUwLCAyMCksIHd4LlNQX0FSUk9XX0tFWVMs IDAsIDEwMCwgZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfU0FT SF9TSVpFKSkKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3eC5EZWZh dWx0U2l6ZSwgd3guU1BfQVJST1dfS0VZUywgMCwgMTAwLCBmcmFtZS5HZXREb2NrQXJ0KCkuR2V0 TWV0cmljKGF1aS5BVUlfRE9DS0FSVF9TQVNIX1NJWkUpKQorKyAgICAgICAgIHMyLkFkZCgoMSwg MSksIDEsIHd4LkVYUEFORCkKKysgICAgICAgICBzMi5BZGQod3guU3RhdGljVGV4dChzZWxmLCAt MSwgIlNhc2ggU2l6ZToiKSkKKysgICAgICAgICBzMi5BZGQoc2VsZi5fc2FzaF9zaXplKQorK0BA IC00NTQsNyArNDU0LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgZnJhbWUpOgorKyAK KysgICAgICAgICBzMyA9IHd4LkJveFNpemVyKHd4LkhPUklaT05UQUwpCisrICAgICAgICAgc2Vs Zi5fY2FwdGlvbl9zaXplID0gd3guU3BpbkN0cmwoc2VsZiwgSURfQ2FwdGlvblNpemUsICIlZCIl ZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfQ0FQVElPTl9TSVpF KSwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3eC5EZWZhdWx0 UG9zaXRpb24sIHd4LlNpemUoNTAsIDIwKSwgd3guU1BfQVJST1dfS0VZUywgMCwgMTAwLCBmcmFt ZS5HZXREb2NrQXJ0KCkuR2V0TWV0cmljKGF1aS5BVUlfRE9DS0FSVF9DQVBUSU9OX1NJWkUpKQor KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHd4LkRlZmF1bHRQb3Np dGlvbiwgd3guRGVmYXVsdFNpemUsIHd4LlNQX0FSUk9XX0tFWVMsIDAsIDEwMCwgZnJhbWUuR2V0 RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfQ0FQVElPTl9TSVpFKSkKKysgICAg ICAgICBzMy5BZGQoKDEsIDEpLCAxLCB3eC5FWFBBTkQpCisrICAgICAgICAgczMuQWRkKHd4LlN0 YXRpY1RleHQoc2VsZiwgLTEsICJDYXB0aW9uIFNpemU6IikpCisrICAgICAgICAgczMuQWRkKHNl bGYuX2NhcHRpb25fc2l6ZSkKKytAQCAtODA3LDkgKzgwNyw5IEBAIGRlZiBMaWdodENvbG91cihz ZWxmLCBjb2xvdXIsIHBlcmNlbnQpOgorKyAKKysgICAgICAgICAjIFdlIHRha2UgdGhlIHBlcmNl bnQgd2F5IG9mIHRoZSBjb2xvdXIgZnJvbSBjb2xvdXIgLT4gd2hpdGUKKysgICAgICAgICBpID0g cGVyY2VudAorKy0gICAgICAgIHIgPSBjb2xvdXIuUmVkKCkgKyAoKGkqcmQqMTAwKS9oaWdoKS8x MDAKKystICAgICAgICBnID0gY29sb3VyLkdyZWVuKCkgKyAoKGkqZ2QqMTAwKS9oaWdoKS8xMDAK KystICAgICAgICBiID0gY29sb3VyLkJsdWUoKSArICgoaSpiZCoxMDApL2hpZ2gpLzEwMAorKysg ICAgICAgIHIgPSBjb2xvdXIuUmVkKCkgKyAoKGkqcmQqMTAwKS8vaGlnaCkvLzEwMAorKysgICAg ICAgIGcgPSBjb2xvdXIuR3JlZW4oKSArICgoaSpnZCoxMDApLy9oaWdoKS8vMTAwCisrKyAgICAg ICAgYiA9IGNvbG91ci5CbHVlKCkgKyAoKGkqYmQqMTAwKS8vaGlnaCkvLzEwMAorKyAKKysgICAg ICAgICByZXR1cm4gd3guQ29sb3VyKHIsIGcsIGIpCisrIAorK0BAIC04MjYsMTAgKzgyNiwxMCBA QCBkZWYgRHJhd1Byb2dyZXNzKHNlbGYsIGRjLCB4c2l6ZSwgeXNpemUsIGluY3JlbWVudCk6Cisr ICAgICAgICAgeCwgeSwgd2lkdGgsIGhlaWdodCA9IGNsaWVudFJlY3QKKysgICAgICAgICB4LCB3 aWR0aCA9IHNlbGYuX3BvcywgaW50ZXJ2YWwKKysgCisrLSAgICAgICAgZ3JhZGllbnRSZWN0LlNl dEhlaWdodChncmFkaWVudFJlY3QuR2V0SGVpZ2h0KCkvMikKKysrICAgICAgICBncmFkaWVudFJl Y3QuU2V0SGVpZ2h0KGdyYWRpZW50UmVjdC5HZXRIZWlnaHQoKS8vMikKKysgICAgICAgICB0b3BT dGFydCwgdG9wRW5kID0gc2VsZi5fdG9wU3RhcnRDb2xvdXIsIHNlbGYuX3RvcEVuZENvbG91cgor KyAKKystICAgICAgICByYzEgPSB3eC5SZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQvMikKKysrICAg ICAgICByYzEgPSB3eC5SZWN0KGludCh4KSwgeSwgaW50KHdpZHRoKSwgaGVpZ2h0Ly8yKQorKyAg ICAgICAgIHBhdGgxID0gc2VsZi5HZXRQYXRoKGdjLCByYzEsIDgpCisrICAgICAgICAgYnIxID0g Z2MuQ3JlYXRlTGluZWFyR3JhZGllbnRCcnVzaCh4LCB5LCB4LCB5K2hlaWdodC8yLCB0b3BTdGFy dCwgdG9wRW5kKQorKyAgICAgICAgIGdjLlNldEJydXNoKGJyMSkKKytAQCAtODQ1LDE0ICs4NDUs MTQgQEAgZGVmIERyYXdQcm9ncmVzcyhzZWxmLCBkYywgeHNpemUsIHlzaXplLCBpbmNyZW1lbnQp OgorKyAKKysgICAgICAgICBib3R0b21TdGFydCwgYm90dG9tRW5kID0gc2VsZi5fYm90dG9tU3Rh cnRDb2xvdXIsIHNlbGYuX2JvdHRvbUVuZENvbG91cgorKyAKKystICAgICAgICByYzMgPSB3eC5S ZWN0KHgsIHkraGVpZ2h0LzIsIHdpZHRoLCBoZWlnaHQvMikKKysrICAgICAgICByYzMgPSB3eC5S ZWN0KGludCh4KSwgeStoZWlnaHQvLzIsIGludCh3aWR0aCksIGhlaWdodC8vMikKKysgICAgICAg ICBwYXRoMyA9IHNlbGYuR2V0UGF0aChnYywgcmMzLCA4KQorKyAgICAgICAgIGJyMyA9IGdjLkNy ZWF0ZUxpbmVhckdyYWRpZW50QnJ1c2goeCwgeStoZWlnaHQvMiwgeCwgeStoZWlnaHQsIGJvdHRv bVN0YXJ0LCBib3R0b21FbmQpCisrICAgICAgICAgZ2MuU2V0QnJ1c2goYnIzKQorKyAgICAgICAg IGdjLkZpbGxQYXRoKHBhdGgzKSAjZHJhdyBtYWluCisrIAorKyAgICAgICAgIHBhdGg0ID0gZ2Mu Q3JlYXRlUGF0aCgpCisrLSAgICAgICAgcGF0aDQuQWRkUmVjdGFuZ2xlKHgsIHkraGVpZ2h0LzIs IHdpZHRoLCA4KQorKysgICAgICAgIHBhdGg0LkFkZFJlY3RhbmdsZSh4LCB5K2hlaWdodC8vMiwg d2lkdGgsIDgpCisrICAgICAgICAgcGF0aDQuQ2xvc2VTdWJwYXRoKCkKKysgICAgICAgICBnYy5T ZXRCcnVzaChicjMpCisrICAgICAgICAgZ2MuRmlsbFBhdGgocGF0aDQpCisrQEAgLTI2MTMsNyAr MjYxMyw3IEBAIGRlZiBDcmVhdGVOb3RlYm9vayhzZWxmKToKKysgICAgICAgICBmbGV4LkFkZCh3 eC5UZXh0Q3RybChwYW5lbCwgLTEsICIiLCB3eC5EZWZhdWx0UG9zaXRpb24sIHd4LlNpemUoMTAw LCAtMSkpLAorKyAgICAgICAgICAgICAgICAgIDEsIHd4LkFMTHx3eC5BTElHTl9DRU5UUkUsIDUp CisrICAgICAgICAgZmxleC5BZGQod3guU3RhdGljVGV4dChwYW5lbCwgLTEsICJ3eFNwaW5DdHJs OiIpLCAwLCB3eC5BTEx8d3guQUxJR05fQ0VOVFJFLCA1KQorKy0gICAgICAgIGZsZXguQWRkKHd4 LlNwaW5DdHJsKHBhbmVsLCAtMSwgIjUiLCB3eC5EZWZhdWx0UG9zaXRpb24sIHd4LlNpemUoMTAw LCAtMSksCisrKyAgICAgICAgZmxleC5BZGQod3guU3BpbkN0cmwocGFuZWwsIC0xLCAiNSIsIHd4 LkRlZmF1bHRQb3NpdGlvbiwgd3guRGVmYXVsdFNpemUsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgd3guU1BfQVJST1dfS0VZUywgNSwgNTAsIDUpLCAwLCB3eC5BTEx8d3guQUxJR05f Q0VOVFJFLCA1KQorKyAgICAgICAgIGZsZXguQWRkKCg1LCA1KSkKKysgICAgICAgICBmbGV4LkFk ZCgoNSwgNSkpCisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3L01hY0xhcmdlRGVtby5weSBiL2RlbW8v YWd3L01hY0xhcmdlRGVtby5weQorK2luZGV4IDRkOTY3YTU0Ni4uYTViOGEwZTI1IDEwMDY0NAor Ky0tLSBhL2RlbW8vYWd3L01hY0xhcmdlRGVtby5weQorKysrKyBiL2RlbW8vYWd3L01hY0xhcmdl RGVtby5weQorK0BAIC0yMjMsMTIgKzIyMywxMiBAQCBkZWYgRHJhd1Byb2dyZXNzQmFyKHNlbGYs IGRjLCB4LCB5LCB3LCBoLCBwZXJjZW50KToKKysgICAgICAgICAgICAgbWRjLlNlbGVjdE9iamVj dCh3eC5OdWxsQml0bWFwKQorKyAKKysgICAgICAgICAjIENlbnRlciB0aGUgcHJvZ3Jlc3MgYmFy IHZlcnRpY2FsbHkgaW4gdGhlIGJveCBzdXBwbGllZAorKy0gICAgICAgIHkgPSB5ICsgKGggLSBQ SVBFX0hFSUdIVCkvMgorKysgICAgICAgIHkgPSB5ICsgKGggLSBQSVBFX0hFSUdIVCkvLzIKKysg CisrICAgICAgICAgaWYgcGVyY2VudCA9PSAwOgorKyAgICAgICAgICAgICBtaWRkbGUgPSAwCisr ICAgICAgICAgZWxzZToKKystICAgICAgICAgICAgbWlkZGxlID0gKHcgKiBwZXJjZW50KS8xMDAK KysrICAgICAgICAgICAgbWlkZGxlID0gaW50KCh3ICogcGVyY2VudCkvMTAwKQorKyAKKysgICAg ICAgICBpZiB3IDwgMToKKysgICAgICAgICAgICAgcmV0dXJuCisrZGlmZiAtLWdpdCBhL2RlbW8v YWd3L1BlYWtNZXRlci5weSBiL2RlbW8vYWd3L1BlYWtNZXRlci5weQorK2luZGV4IGE3YzlhNmY1 MS4uZTlkYWI3MTE2IDEwMDY0NAorKy0tLSBhL2RlbW8vYWd3L1BlYWtNZXRlci5weQorKysrKyBi L2RlbW8vYWd3L1BlYWtNZXRlci5weQorK0BAIC0xNDksMTAgKzE0OSwxMCBAQCBkZWYgT25GYWxs b2ZmKHNlbGYsIGV2ZW50KToKKysgCisrICAgICBkZWYgT25TdGFydChzZWxmLCBldmVudCk6Cisr IAorKy0gICAgICAgIHNlbGYudGltZXIuU3RhcnQoMTAwMC8yKSAgICAgICAgIyAyIGZwcworKysg ICAgICAgIHNlbGYudGltZXIuU3RhcnQoMTAwMC8vMikgICAgICAgICMgMiBmcHMKKysgCisrLSAg ICAgICAgc2VsZi52ZXJ0UGVhay5TdGFydCgxMDAwLzE4KSAgICAgICAgIyAxOCBmcHMKKystICAg ICAgICBzZWxmLmhvcnpQZWFrLlN0YXJ0KDEwMDAvMjApICAgICAgICAjIDIwIGZwcworKysgICAg ICAgIHNlbGYudmVydFBlYWsuU3RhcnQoMTAwMC8vMTgpICAgICAgICAjIDE4IGZwcworKysgICAg ICAgIHNlbGYuaG9yelBlYWsuU3RhcnQoMTAwMC8vMjApICAgICAgICAjIDIwIGZwcworKyAKKysg CisrICAgICBkZWYgT25TdG9wKHNlbGYsIGV2ZW50KToKKytkaWZmIC0tZ2l0IGEvZGVtby9hZ3cv UGVyc2lzdGVudENvbnRyb2xzLnB5IGIvZGVtby9hZ3cvUGVyc2lzdGVudENvbnRyb2xzLnB5Cisr aW5kZXggZjE5Y2M0YTkxLi5jZjk3ZGQ5ZjAgMTAwNjQ0CisrLS0tIGEvZGVtby9hZ3cvUGVyc2lz dGVudENvbnRyb2xzLnB5CisrKysrIGIvZGVtby9hZ3cvUGVyc2lzdGVudENvbnRyb2xzLnB5Cisr QEAgLTIzNCw3ICsyMzQsNyBAQCBkZWYgQnVpbGRQYW5lcyhzZWxmKToKKysgICAgICAgICBzaXpl cl8xLkFkZChsYWJlbF8xLCAwLCB3eC5BTEwsIDUpCisrICAgICAgICAgc2l6ZXJfMS5BZGQoY29t Ym8sIDAsIHd4LkxFRlR8d3guUklHSFQsIDUpCisrICAgICAgICAgc2l6ZXJfMS5BZGQoKDIwLCAy MCksIDEpCisrLSAgICAgICAgYm94Mi5BZGQoc2l6ZXJfMSwgMSwgd3guRVhQQU5EfHd4LkFMSUdO X0NFTlRFUiwgMCkKKysrICAgICAgICBib3gyLkFkZChzaXplcl8xLCAxLCB3eC5FWFBBTkQsIDAp CisrICAgICAgICAgYm94Mi5BZGQoKDAsIDApLCAxLCAxKQorKyAKKysgICAgICAgICBvdGhlclBh bmVsLlNldFNpemVyKGJveDIpCisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3L1JpYmJvbkJhci5weSBi L2RlbW8vYWd3L1JpYmJvbkJhci5weQorK2luZGV4IDcxMDNlOWQ4MS4uZDI4YTJjNjZhIDEwMDY0 NAorKy0tLSBhL2RlbW8vYWd3L1JpYmJvbkJhci5weQorKysrKyBiL2RlbW8vYWd3L1JpYmJvbkJh ci5weQorK0BAIC03OTksNyArNzk5LDcgQEAgZGVmIEFkZENvbG91clRvR2FsbGVyeShzZWxmLCBn YWxsZXJ5LCBjb2xvdXIsIGRjLCB2YWx1ZT1Ob25lKToKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGMuQmx1ZSgpICsgMTkyKSAlIDI1NikKKysgCisrICAgICAgICAg ICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKGZvcmVncm91bmQpCisrLSAgICAgICAgICAgIGRjLkRy YXdUZXh0KGNvbG91ciwgKGlXaWR0aCAtIHNpemUuR2V0V2lkdGgoKSArIDEpIC8gMiwgKGlIZWln aHQgLSBzaXplLkdldEhlaWdodCgpKSAvIDIpCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KGNv bG91ciwgKGlXaWR0aCAtIHNpemUuR2V0V2lkdGgoKSArIDEpIC8vIDIsIChpSGVpZ2h0IC0gc2l6 ZS5HZXRIZWlnaHQoKSkgLy8gMikKKysgICAgICAgICAgICAgZGMuU2VsZWN0T2JqZWN0QXNTb3Vy Y2Uod3guTnVsbEJpdG1hcCkKKysgCisrICAgICAgICAgICAgIGl0ZW0gPSBnYWxsZXJ5LkFwcGVu ZChiaXRtYXAsIHd4LklEX0FOWSkKKytkaWZmIC0tZ2l0IGEvZGVtby9hZ3cvU3BlZWRNZXRlci5w eSBiL2RlbW8vYWd3L1NwZWVkTWV0ZXIucHkKKytpbmRleCA5ZjBmZGViYjIuLjU3NWU4NGE4MCAx MDA2NDQKKystLS0gYS9kZW1vL2Fndy9TcGVlZE1ldGVyLnB5CisrKysrIGIvZGVtby9hZ3cvU3Bl ZWRNZXRlci5weQorK0BAIC00MTgsNyArNDE4LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVu dCwgbG9nKToKKysgICAgICAgICBic2l6ZXIzID0gd3guQm94U2l6ZXIod3guVkVSVElDQUwpCisr IAorKyAgICAgICAgIGhzaXplcjMgPSB3eC5Cb3hTaXplcih3eC5IT1JJWk9OVEFMKQorKy0gICAg ICAgIHNjID0gd3guU3BpbkN0cmwocGFuZWwzLCAtMSwgc2l6ZT0oNjAsMjApKQorKysgICAgICAg IHNjID0gd3guU3BpbkN0cmwocGFuZWwzLCAtMSkKKysgICAgICAgICBzYy5TZXRSYW5nZSgxLCAy NTApCisrICAgICAgICAgc2MuU2V0VmFsdWUoNTApCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL2Fn dy9TdXBlclRvb2xUaXAucHkgYi9kZW1vL2Fndy9TdXBlclRvb2xUaXAucHkKKytpbmRleCA1ZTY1 ZjA2YjEuLjg4NzI4ZTU0ZSAxMDA2NDQKKystLS0gYS9kZW1vL2Fndy9TdXBlclRvb2xUaXAucHkK KysrKysgYi9kZW1vL2Fndy9TdXBlclRvb2xUaXAucHkKKytAQCAtNDMsNyArNDMsNyBAQCBkZWYg X19pbml0X18oc2VsZiwgcGFyZW50KToKKysgICAgICAgICBzZWxmLnRvcENvbG91clBpY2tlciA9 IHd4LkNvbG91clBpY2tlckN0cmwoc2VsZi5tYWluUGFuZWwsIGNvbG91cj13eC5XSElURSkKKysg ICAgICAgICBzeXN0ZW0gPSB3eC5TeXN0ZW1TZXR0aW5ncy5HZXRDb2xvdXIod3guU1lTX0NPTE9V Ul9BQ1RJVkVDQVBUSU9OKQorKyAgICAgICAgIHIsIGcsIGIsIGEgPSBzeXN0ZW0KKystICAgICAg ICBzZWxmLm1pZGRsZUNvbG91clBpY2tlciA9IHd4LkNvbG91clBpY2tlckN0cmwoc2VsZi5tYWlu UGFuZWwsIGNvbG91cj13eC5Db2xvdXIoKDI1NS1yKS8yLCAoMjU1LWcpLzIsICgyNTUtYikvMikp CisrKyAgICAgICAgc2VsZi5taWRkbGVDb2xvdXJQaWNrZXIgPSB3eC5Db2xvdXJQaWNrZXJDdHJs KHNlbGYubWFpblBhbmVsLCBjb2xvdXI9d3guQ29sb3VyKCgyNTUtcikvLzIsICgyNTUtZykvLzIs ICgyNTUtYikvLzIpKQorKyAgICAgICAgIHNlbGYuYm90dG9tQ29sb3VyUGlja2VyID0gd3guQ29s b3VyUGlja2VyQ3RybChzZWxmLm1haW5QYW5lbCwgY29sb3VyPXN5c3RlbSkKKysgICAgICAgICBz ZWxmLmhlYWRlckNoZWNrID0gd3guQ2hlY2tCb3goc2VsZi5tYWluUGFuZWwsIC0xLCAiU2hvdyBI ZWFkZXIiKQorKyAgICAgICAgIHNlbGYuaGVhZGVyVGV4dCA9IHd4LlRleHRDdHJsKHNlbGYubWFp blBhbmVsLCAtMSwgIk1lcmdlIEFuZCBDZW50ZXIiKQorK0BAIC0yMzMsNyArMjMzLDYgQEAgZGVm IERvTGF5b3V0KHNlbGYpOgorKyAgICAgICAgIGZyYW1lU2l6ZXIuQWRkKHNlbGYubWFpblBhbmVs LCAxLCB3eC5FWFBBTkQsIDApCisrICAgICAgICAgc2VsZi5TZXRTaXplcihmcmFtZVNpemVyKQor KyAgICAgICAgIGZyYW1lU2l6ZXIuTGF5b3V0KCkKKystICAgICAgICBmcmFtZVNpemVyLkZpdChz ZWxmKQorKyAgICAgICAgIHNlbGYuTGF5b3V0KCkKKysgCisrICAgICAgICAgd3guQ2FsbEFmdGVy KG1haW5TaXplci5MYXlvdXQpCisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3L1VsdGltYXRlUmVwb3J0 RGVtby5weSBiL2RlbW8vYWd3L1VsdGltYXRlUmVwb3J0RGVtby5weQorK2luZGV4IDQwZjQ5Y2I4 Zi4uYWQ0NTU4NDdiIDEwMDY0NAorKy0tLSBhL2RlbW8vYWd3L1VsdGltYXRlUmVwb3J0RGVtby5w eQorKysrKyBiL2RlbW8vYWd3L1VsdGltYXRlUmVwb3J0RGVtby5weQorK0BAIC0yMTYsNyArMjE2 LDcgQEAgZGVmIERyYXdTdWJJdGVtKHNlbGYsIGRjLCByZWN0LCBsaW5lLCBoaWdobGlnaHRlZCwg ZW5hYmxlZCk6CisrICAgICAgICAgbWRjLlNldEZvbnQod3guRm9udCg4LCB3eC5GT05URkFNSUxZ X1NXSVNTLCB3eC5GT05UU1RZTEVfTk9STUFMLCB3eC5GT05UV0VJR0hUX0JPTEQpKQorKyAgICAg ICAgIHRleHQgPSAiJWQgTWIiJXNlbGYucHJvZ3Jlc3NWYWx1ZQorKyAgICAgICAgIHRleHRXaWR0 aCwgZHVtbXkgPSBtZGMuR2V0VGV4dEV4dGVudCh0ZXh0KQorKy0gICAgICAgIG1kYy5EcmF3VGV4 dCh0ZXh0LCByZWN0LndpZHRoLzIgLSB0ZXh0V2lkdGgvMiwgcmVjdC5oZWlnaHQvMiAtIGR1bW15 LzIpCisrKyAgICAgICAgbWRjLkRyYXdUZXh0KHRleHQsIHJlY3Qud2lkdGgvLzIgLSB0ZXh0V2lk dGgvLzIsIHJlY3QuaGVpZ2h0Ly8yIC0gZHVtbXkvLzIpCisrICAgICAgICAgZGMuU2V0Q2xpcHBp bmdSZWdpb24ocmVjdC54LCByZWN0LnksIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KQorKyAgICAg ICAgIGRjLkJsaXQocmVjdC54KzMsIHJlY3QueSwgcmVjdC53aWR0aC02LCByZWN0LmhlaWdodCwg bWRjLCAwLCAwKQorKyAgICAgICAgIGRjLkRlc3Ryb3lDbGlwcGluZ1JlZ2lvbigpCisrQEAgLTI3 OSwxMiArMjc5LDEyIEBAIGRlZiBEcmF3UHJvZ3Jlc3NCYXIoc2VsZiwgZGMsIHgsIHksIHcsIGgs IHBlcmNlbnQpOgorKyAgICAgICAgICAgICBtZGMuU2VsZWN0T2JqZWN0KHd4Lk51bGxCaXRtYXAp CisrIAorKyAgICAgICAgICMgQ2VudGVyIHRoZSBwcm9ncmVzcyBiYXIgdmVydGljYWxseSBpbiB0 aGUgYm94IHN1cHBsaWVkCisrLSAgICAgICAgeSA9IHkgKyAoaCAtIFBJUEVfSEVJR0hUKS8yCisr KyAgICAgICAgeSA9IHkgKyAoaCAtIFBJUEVfSEVJR0hUKS8vMgorKyAKKysgICAgICAgICBpZiBw ZXJjZW50ID09IDA6CisrICAgICAgICAgICAgIG1pZGRsZSA9IDAKKysgICAgICAgICBlbHNlOgor Ky0gICAgICAgICAgICBtaWRkbGUgPSAodyAqIHBlcmNlbnQpLzEwMAorKysgICAgICAgICAgICBt aWRkbGUgPSAodyAqIHBlcmNlbnQpLy8xMDAKKysgCisrICAgICAgICAgaWYgbWlkZGxlID09IDA6 ICMgbm90IHN0YXJ0ZWQKKysgICAgICAgICAgICAgYml0bWFwID0gc2VsZi5SRU1BSU5JTkdfQklU TUFQLkdldFN1YkJpdG1hcCgoMSwgMCwgdywgUElQRV9IRUlHSFQpKQorK0BAIC0zMzUsNyArMzM1 LDcgQEAgZGVmIERyYXdTdWJJdGVtKHNlbGYsIGRjLCByZWN0LCBsaW5lLCBoaWdobGlnaHRlZCwg ZW5hYmxlZCk6CisrICAgICAgICAgY29sb3VycyA9IFt3eC5SRUQsIHd4LldISVRFLCB3eC5HUkVF Tiwgd3guQ29sb3VyKCJTS1kgQkxVRSIpXQorKyAgICAgICAgIHcsIGggPSBkYy5HZXRUZXh0RXh0 ZW50KCJIZyIpCisrICAgICAgICAgeCA9IHJlY3QueCArIDEKKystICAgICAgICB5ID0gcmVjdC55 ICsgcmVjdC5oZWlnaHQvMiAtIGgvMgorKysgICAgICAgIHkgPSByZWN0LnkgKyByZWN0LmhlaWdo dC8vMiAtIGgvLzIKKysgCisrICAgICAgICAgZm9yIGNoIGluIHNlbGYudGV4dDoKKysgICAgICAg ICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQocmFuZG9tLmNob2ljZShjb2xvdXJzKSkKKytkaWZm IC0tZ2l0IGEvZGVtby9hZ3cvV2luZG93czdFeHBsb3Jlcl9Db250ZW50cy5weSBiL2RlbW8vYWd3 L1dpbmRvd3M3RXhwbG9yZXJfQ29udGVudHMucHkKKytpbmRleCBmNzU0ZDc4NzkuLmIyM2RmMGUx YSAxMDA2NDQKKystLS0gYS9kZW1vL2Fndy9XaW5kb3dzN0V4cGxvcmVyX0NvbnRlbnRzLnB5Cisr KysrIGIvZGVtby9hZ3cvV2luZG93czdFeHBsb3Jlcl9Db250ZW50cy5weQorK0BAIC0xMjcsMTMg KzEyNywxMyBAQCBkZWYgRHJhd1N1Ykl0ZW0oc2VsZiwgZGMsIHJlY3QsIGxpbmUsIGhpZ2hsaWdo dGVkLCBlbmFibGVkKToKKysgICAgICAgICAiIiJEcmF3IGEgY3VzdG9tIHByb2dyZXNzIGJhciB1 c2luZyBkb3VibGUgYnVmZmVyaW5nIHRvIHByZXZlbnQgZmxpY2tlciIiIgorKyAKKysgICAgICAg ICBibXBXaWR0aCwgYm1wSGVpZ2h0ID0gc2VsZi5pY29uLkdldFdpZHRoKCksIHNlbGYuaWNvbi5H ZXRIZWlnaHQoKQorKy0gICAgICAgIGRjLkRyYXdJY29uKHNlbGYuaWNvbiwgcmVjdC54KzUsIHJl Y3QueSsocmVjdC5oZWlnaHQtYm1wSGVpZ2h0KS8yKQorKysgICAgICAgIGRjLkRyYXdJY29uKHNl bGYuaWNvbiwgcmVjdC54KzUsIHJlY3QueSsocmVjdC5oZWlnaHQtYm1wSGVpZ2h0KS8vMikKKysg CisrICAgICAgICAgZGMuU2V0Rm9udChzZWxmLm5vcm1hbEZvbnQpCisrIAorKyAgICAgICAgIHRl eHRXaWR0aCwgdGV4dEhlaWdodCA9IGRjLkdldFRleHRFeHRlbnQoc2VsZi50ZXh0KQorKyAgICAg ICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHd4LlN5c3RlbVNldHRpbmdzLkdldENvbG91cih3eC5T WVNfQ09MT1VSX0JUTlRFWFQpKQorKy0gICAgICAgIGRjLkRyYXdUZXh0KHNlbGYudGV4dCwgcmVj dC54K2JtcFdpZHRoKzEwLCByZWN0LnkrKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvNCkKKysr ICAgICAgICBkYy5EcmF3VGV4dChzZWxmLnRleHQsIHJlY3QueCtibXBXaWR0aCsxMCwgcmVjdC55 KyhyZWN0LmhlaWdodCAtIHRleHRIZWlnaHQpLy80KQorKyAKKysgICAgICAgICBpZiBub3Qgc2Vs Zi5kZXNjcmlwdGlvbjoKKysgICAgICAgICAgICAgcmV0dXJuCisrQEAgLTE0NCwxMCArMTQ0LDEw IEBAIGRlZiBEcmF3U3ViSXRlbShzZWxmLCBkYywgcmVjdCwgbGluZSwgaGlnaGxpZ2h0ZWQsIGVu YWJsZWQpOgorKyAgICAgICAgIHRleHRXaWR0aCwgdGV4dEhlaWdodCA9IGRjLkdldFRleHRFeHRl bnQoIlR5cGU6ICIgKyBzZWxmLmRlc2NyaXB0aW9uKQorKyAKKysgICAgICAgICBkYy5TZXRUZXh0 Rm9yZWdyb3VuZChzZWxmLmdyZXlDb2xvdXIpCisrLSAgICAgICAgZGMuRHJhd1RleHQoIlR5cGU6 ICIsIHJlY3QueCtibXBXaWR0aCsxMCwgcmVjdC55KzMqKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdo dCkvNCkKKysrICAgICAgICBkYy5EcmF3VGV4dCgiVHlwZTogIiwgcmVjdC54K2JtcFdpZHRoKzEw LCByZWN0LnkrMyoocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkKKysgCisrICAgICAgICAg ZGMuU2V0VGV4dEZvcmVncm91bmQod3guQkxBQ0spCisrLSAgICAgICAgZGMuRHJhd1RleHQoc2Vs Zi5kZXNjcmlwdGlvbiwgcmVjdC54K2JtcFdpZHRoK2R1bW15MSsxMCwgcmVjdC55KzMqKHJlY3Qu aGVpZ2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5EcmF3VGV4dChzZWxmLmRlc2Ny aXB0aW9uLCByZWN0LngrYm1wV2lkdGgrZHVtbXkxKzEwLCByZWN0LnkrMyoocmVjdC5oZWlnaHQg LSB0ZXh0SGVpZ2h0KS8vNCkKKysgCisrIAorKyAgICAgZGVmIEdldExpbmVIZWlnaHQoc2VsZik6 CisrQEAgLTIwNywxMCArMjA3LDEwIEBAIGRlZiBEcmF3U3ViSXRlbShzZWxmLCBkYywgcmVjdCwg bGluZSwgaGlnaGxpZ2h0ZWQsIGVuYWJsZWQpOgorKyAgICAgICAgIHRleHRXaWR0aCwgdGV4dEhl aWdodCA9IGRjLkdldFRleHRFeHRlbnQoIkRhdGUgbW9kaWZpZWQ6ICIgKyBkYXRlKQorKyAKKysg ICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChzZWxmLmdyZXlDb2xvdXIpCisrLSAgICAgICAg ZGMuRHJhd1RleHQoIkRhdGUgbW9kaWZpZWQ6ICIsIHJlY3QueCs1LCByZWN0LnkrKHJlY3QuaGVp Z2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5EcmF3VGV4dCgiRGF0ZSBtb2RpZmll ZDogIiwgcmVjdC54KzUsIHJlY3QueSsocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkKKysg CisrICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQod3guQkxBQ0spCisrLSAgICAgICAgZGMu RHJhd1RleHQoZGF0ZSwgcmVjdC54K2R1bW15MSs1LCByZWN0LnkrKHJlY3QuaGVpZ2h0IC0gdGV4 dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5EcmF3VGV4dChkYXRlLCByZWN0LngrZHVtbXkxKzUs IHJlY3QueSsocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkKKysgCisrICAgICAgICAgaWYg bm90IHNlbGYuc2l6ZToKKysgICAgICAgICAgICAgcmV0dXJuCisrQEAgLTIxOCwxMCArMjE4LDEw IEBAIGRlZiBEcmF3U3ViSXRlbShzZWxmLCBkYywgcmVjdCwgbGluZSwgaGlnaGxpZ2h0ZWQsIGVu YWJsZWQpOgorKyAgICAgICAgIGR1bW15MSwgZHVtbXkyPSBkYy5HZXRUZXh0RXh0ZW50KCJTaXpl OiAiKQorKyAKKysgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChzZWxmLmdyZXlDb2xvdXIp CisrLSAgICAgICAgZGMuRHJhd1RleHQoIlNpemU6ICIsIHJlY3QueCs1LCByZWN0LnkrMyoocmVj dC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS80KQorKysgICAgICAgIGRjLkRyYXdUZXh0KCJTaXplOiAi LCByZWN0LngrNSwgcmVjdC55KzMqKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvLzQpCisrIAor KyAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHd4LkJMQUNLKQorKy0gICAgICAgIGRjLkRy YXdUZXh0KHNlbGYuc2l6ZSwgcmVjdC54K2R1bW15MSs1LCByZWN0LnkrMyoocmVjdC5oZWlnaHQg LSB0ZXh0SGVpZ2h0KS80KQorKysgICAgICAgIGRjLkRyYXdUZXh0KHNlbGYuc2l6ZSwgcmVjdC54 K2R1bW15MSs1LCByZWN0LnkrMyoocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkKKysgCisr IAorKyAgICAgZGVmIEdldExpbmVIZWlnaHQoc2VsZik6CisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3 L1pvb21CYXIucHkgYi9kZW1vL2Fndy9ab29tQmFyLnB5CisraW5kZXggMzc2Y2UzNDliLi4xNGIw Mjc4ZTcgMTAwNjQ0CisrLS0tIGEvZGVtby9hZ3cvWm9vbUJhci5weQorKysrKyBiL2RlbW8vYWd3 L1pvb21CYXIucHkKKytAQCAtNTUsNyArNTUsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50 LCBsb2cpOgorKyAgICAgICAgIHJlZmxlY3Rpb25zID0gZ2xvYi5nbG9iKGJpdG1hcERpciArICIv Kjk2RmxpcDQwLnBuZyIpCisrIAorKyAgICAgICAgIHNlcGFyYXRvckltYWdlID0gYml0bWFwRGly ICsgIi9zZXBhcmF0b3IuZ2lmIgorKy0gICAgICAgIHNlcGFyYXRvclJlZmxlY3Rpb24gPSBiaXRt YXBEaXIgKyAiL3NlcGFyYXRvckZsaXAucG5nIgorKysgICAgICAgIHNlcGFyYXRvclJlZmxlY3Rp b24gPSBiaXRtYXBEaXIgKyAiL3NlcGFyYXRvcmZsaXAucG5nIgorKyAgICAgICAgIGNvdW50ID0g MAorKyAKKysgICAgICAgICBmb3Igc3RkLCByZWYgaW4gemlwKHN0YW5kYXJkLCByZWZsZWN0aW9u cyk6CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvYWR2YW5jZWRzcGxhc2gucHkgYi93eC9saWIv YWd3L2FkdmFuY2Vkc3BsYXNoLnB5CisraW5kZXggMWY4YzMyZGY1Li5kMzUxZWEwNmUgMTAwNjQ0 CisrLS0tIGEvd3gvbGliL2Fndy9hZHZhbmNlZHNwbGFzaC5weQorKysrKyBiL3d4L2xpYi9hZ3cv YWR2YW5jZWRzcGxhc2gucHkKKytAQCAtNDM4LDcgKzQzOCw3IEBAIGRlZiBTZXRUZXh0Rm9udChz ZWxmLCBmb250PU5vbmUpOgorKyAKKysgICAgICAgICBpZiBmb250IGlzIE5vbmU6CisrICAgICAg ICAgICAgIHNlbGYuX3RleHRmb250ID0gd3guRm9udCgxLCB3eC5GT05URkFNSUxZX1NXSVNTLCB3 eC5GT05UU1RZTEVfTk9STUFMLCB3eC5GT05UV0VJR0hUX0JPTEQsIEZhbHNlKQorKy0gICAgICAg ICAgICBzZWxmLl90ZXh0c2l6ZSA9IDEwLjAKKysrICAgICAgICAgICAgc2VsZi5fdGV4dHNpemUg PSAxMAorKyAgICAgICAgICAgICBzZWxmLl90ZXh0Zm9udC5TZXRQb2ludFNpemUoc2VsZi5fdGV4 dHNpemUpCisrICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgc2VsZi5fdGV4dGZvbnQgPSBm b250CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvYXVpL2F1aWJvb2sucHkgYi93eC9saWIvYWd3 L2F1aS9hdWlib29rLnB5CisraW5kZXggYmE3Y2Y0NzIxLi5mNWFkMmE1NjggMTAwNjQ0CisrLS0t IGEvd3gvbGliL2Fndy9hdWkvYXVpYm9vay5weQorKysrKyBiL3d4L2xpYi9hZ3cvYXVpL2F1aWJv b2sucHkKKytAQCAtMzQ1Miw4ICszNDUyLDggQEAgZGVmIENhbGN1bGF0ZU5ld1NwbGl0U2l6ZShz ZWxmKToKKysgICAgICAgICAjIHNob3VsZCBoYXBwZW4gYXJvdW5kIHRoZSBtaWRkbGUKKysgICAg ICAgICBpZiB0YWJfY3RybF9jb3VudCA8IDI6CisrICAgICAgICAgICAgIG5ld19zcGxpdF9zaXpl ID0gc2VsZi5HZXRDbGllbnRTaXplKCkKKystICAgICAgICAgICAgbmV3X3NwbGl0X3NpemUueCAv PSAyCisrLSAgICAgICAgICAgIG5ld19zcGxpdF9zaXplLnkgLz0gMgorKysgICAgICAgICAgICBu ZXdfc3BsaXRfc2l6ZS54IC8vPSAyCisrKyAgICAgICAgICAgIG5ld19zcGxpdF9zaXplLnkgLy89 IDIKKysgCisrICAgICAgICAgZWxzZToKKysgCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvYmFs bG9vbnRpcC5weSBiL3d4L2xpYi9hZ3cvYmFsbG9vbnRpcC5weQorK2luZGV4IGI0MTU1ZDc0YS4u NTdiYWNhNzI5IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvYmFsbG9vbnRpcC5weQorKysrKyBi L3d4L2xpYi9hZ3cvYmFsbG9vbnRpcC5weQorK0BAIC02MTUsNyArNjE1LDcgQEAgZGVmIFNldFN0 YXJ0RGVsYXkoc2VsZiwgZGVsYXk9MSk6CisrICAgICAgICAgaWYgZGVsYXkgPCAxOgorKyAgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIlxuRVJST1I6IERlbGF5IFRpbWUgRm9yIEJhbGxvb25U aXAgQ3JlYXRpb24gU2hvdWxkIEJlIEdyZWF0ZXIgVGhhbiAxIG1zIikKKysgCisrLSAgICAgICAg c2VsZi5fc3RhcnRkZWxheXRpbWUgPSBmbG9hdChkZWxheSkKKysrICAgICAgICBzZWxmLl9zdGFy dGRlbGF5dGltZSA9IGludChkZWxheSkKKysgCisrIAorKyAgICAgZGVmIEdldFN0YXJ0RGVsYXko c2VsZik6CisrQEAgLTY0MCw3ICs2NDAsNyBAQCBkZWYgU2V0RW5kRGVsYXkoc2VsZiwgZGVsYXk9 MWU2KToKKysgICAgICAgICBpZiBkZWxheSA8IDE6CisrICAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiXG5FUlJPUjogRGVsYXkgVGltZSBGb3IgQmFsbG9vblRpcCBEZXN0cnVjdGlvbiBTaG91 bGQgQmUgR3JlYXRlciBUaGFuIDEgbXMiKQorKyAKKystICAgICAgICBzZWxmLl9lbmRkZWxheXRp bWUgPSBmbG9hdChkZWxheSkKKysrICAgICAgICBzZWxmLl9lbmRkZWxheXRpbWUgPSBpbnQoZGVs YXkpCisrIAorKyAKKysgICAgIGRlZiBHZXRFbmREZWxheShzZWxmKToKKytkaWZmIC0tZ2l0IGEv d3gvbGliL2Fndy9mbGF0bWVudS5weSBiL3d4L2xpYi9hZ3cvZmxhdG1lbnUucHkKKytpbmRleCA1 YmEyOGU1ODQuLjg1ZjI5NWI4NiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L2ZsYXRtZW51LnB5 CisrKysrIGIvd3gvbGliL2Fndy9mbGF0bWVudS5weQorK0BAIC03MzYsOCArNzM2LDggQEAgZGVm IERyYXdTZXBhcmF0b3Ioc2VsZiwgZGMsIHhDb29yZCwgeUNvb3JkLCB0ZXh0WCwgc2VwV2lkdGgp OgorKyAgICAgICAgICIiIgorKyAKKysgICAgICAgICBkY3NhdmVyID0gRENTYXZlcihkYykKKyst ICAgICAgICBzZXBSZWN0MSA9IHd4LlJlY3QoeENvb3JkICsgdGV4dFgsIHlDb29yZCArIDEsIHNl cFdpZHRoLzIsIDEpCisrLSAgICAgICAgc2VwUmVjdDIgPSB3eC5SZWN0KHhDb29yZCArIHRleHRY ICsgc2VwV2lkdGgvMiwgeUNvb3JkICsgMSwgc2VwV2lkdGgvMi0xLCAxKQorKysgICAgICAgIHNl cFJlY3QxID0gd3guUmVjdCh4Q29vcmQgKyB0ZXh0WCwgeUNvb3JkICsgMSwgc2VwV2lkdGgvLzIs IDEpCisrKyAgICAgICAgc2VwUmVjdDIgPSB3eC5SZWN0KHhDb29yZCArIHRleHRYICsgc2VwV2lk dGgvLzIsIHlDb29yZCArIDEsIHNlcFdpZHRoLy8yLTEsIDEpCisrIAorKyAgICAgICAgIGFydE1n ciA9IEFydE1hbmFnZXIuR2V0KCkKKysgICAgICAgICBiYWNrQ29sb3VyID0gYXJ0TWdyLkdldE1l bnVGYWNlQ29sb3VyKCkKKytAQCAtODE3LDExICs4MTcsMTEgQEAgZGVmIERyYXdNZW51SXRlbShz ZWxmLCBpdGVtLCBkYywgeENvb3JkLCB5Q29vcmQsIGltYWdlTWFyZ2luWCwgbWFya2VyTWFyZ2lu WCwgdGUKKysgICAgICAgICAgICAgaW1nV2lkdGggID0gYm1wLkdldFdpZHRoKCkKKysgCisrICAg ICAgICAgICAgIGlmIGltYWdlTWFyZ2luWCA9PSAwOgorKy0gICAgICAgICAgICAgICAgeHggPSBy ZWN0LnggKyAobGVmdE1hcmdpbldpZHRoIC0gaW1nV2lkdGgpLzIKKysrICAgICAgICAgICAgICAg IHh4ID0gcmVjdC54ICsgKGxlZnRNYXJnaW5XaWR0aCAtIGltZ1dpZHRoKS8vMgorKyAgICAgICAg ICAgICBlbHNlOgorKy0gICAgICAgICAgICAgICAgeHggPSByZWN0LnggKyAoKGxlZnRNYXJnaW5X aWR0aCAtIHJlY3QuaGVpZ2h0KSAtIGltZ1dpZHRoKS8yICsgcmVjdC5oZWlnaHQKKysrICAgICAg ICAgICAgICAgIHh4ID0gcmVjdC54ICsgKChsZWZ0TWFyZ2luV2lkdGggLSByZWN0LmhlaWdodCkg LSBpbWdXaWR0aCkvLzIgKyByZWN0LmhlaWdodAorKyAKKystICAgICAgICAgICAgeXkgPSByZWN0 LnkgKyAocmVjdC5oZWlnaHQgLSBpbWdIZWlnaHQpLzIKKysrICAgICAgICAgICAgeXkgPSByZWN0 LnkgKyAocmVjdC5oZWlnaHQgLSBpbWdIZWlnaHQpLy8yCisrICAgICAgICAgICAgIGRjLkRyYXdC aXRtYXAoYm1wLCB4eCwgeXksIFRydWUpCisrIAorKyAgICAgICAgIGlmIGl0ZW0uR2V0S2luZCgp ID09IHd4LklURU1fQ0hFQ0s6CisrQEAgLTgzNyw3ICs4MzcsNyBAQCBkZWYgRHJhd01lbnVJdGVt KHNlbGYsIGl0ZW0sIGRjLCB4Q29vcmQsIHlDb29yZCwgaW1hZ2VNYXJnaW5YLCBtYXJrZXJNYXJn aW5YLCB0ZQorKyAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGVjdGVkIGFuZCBzZWxmLmhpZ2hs aWdodENoZWNrQW5kUmFkaW86CisrICAgICAgICAgICAgICAgICAgICAgc2VsZi5EcmF3QnV0dG9u KGRjLCByciwgQ29udHJvbEZvY3VzKQorKyAKKystICAgICAgICAgICAgICAgIGRjLkRyYXdCaXRt YXAoaXRlbS5fY2hlY2tNYXJrQm1wLCByci54ICsgKHJyLndpZHRoIC0gMTYpLzIsIHJyLnkgKyAo cnIuaGVpZ2h0IC0gMTYpLzIsIFRydWUpCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3Qml0bWFw KGl0ZW0uX2NoZWNrTWFya0JtcCwgcnIueCArIChyci53aWR0aCAtIDE2KS8vMiwgcnIueSArIChy ci5oZWlnaHQgLSAxNikvLzIsIFRydWUpCisrIAorKyAgICAgICAgIGlmIGl0ZW0uR2V0S2luZCgp ID09IHd4LklURU1fUkFESU86CisrIAorK0BAIC04NTIsNyArODUyLDcgQEAgZGVmIERyYXdNZW51 SXRlbShzZWxmLCBpdGVtLCBkYywgeENvb3JkLCB5Q29vcmQsIGltYWdlTWFyZ2luWCwgbWFya2Vy TWFyZ2luWCwgdGUKKysgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxlY3RlZCBhbmQgc2VsZi5o aWdobGlnaHRDaGVja0FuZFJhZGlvOgorKyAgICAgICAgICAgICAgICAgICAgIHNlbGYuRHJhd0J1 dHRvbihkYywgcnIsIENvbnRyb2xGb2N1cykKKysgCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3 Qml0bWFwKGl0ZW0uX3JhZGlvTWFya0JtcCwgcnIueCArIChyci53aWR0aCAtIDE2KS8yLCByci55 ICsgKHJyLmhlaWdodCAtIDE2KS8yLCBUcnVlKQorKysgICAgICAgICAgICAgICAgZGMuRHJhd0Jp dG1hcChpdGVtLl9yYWRpb01hcmtCbXAsIHJyLnggKyAocnIud2lkdGggLSAxNikvLzIsIHJyLnkg KyAocnIuaGVpZ2h0IC0gMTYpLy8yLCBUcnVlKQorKyAKKysgICAgICAgICAjIERyYXcgdGV4dCAt IHdpdGhvdXQgYWNjZWxlcmF0b3JzCisrICAgICAgICAgdGV4dCA9IGl0ZW0uR2V0TGFiZWwoKQor K0BAIC04OTAsNyArODkwLDcgQEAgZGVmIERyYXdNZW51SXRlbShzZWxmLCBpdGVtLCBkYywgeENv b3JkLCB5Q29vcmQsIGltYWdlTWFyZ2luWCwgbWFya2VyTWFyZ2luWCwgdGUKKysgICAgICAgICAg ICAgICAgIHczLCBkdW1teSA9IGRjLkdldFRleHRFeHRlbnQodGV4dDMpCisrIAorKyAgICAgICAg ICAgICAgICAgcG9zeCA9IHhDb29yZCArIHRleHRYICsgYm9yZGVyWFNpemUKKystICAgICAgICAg ICAgICAgIHBvc3kgPSAoaXRlbUhlaWdodCAtIGgpLzIgKyB5Q29vcmQKKysrICAgICAgICAgICAg ICAgIHBvc3kgPSAoaXRlbUhlaWdodCAtIGgpLy8yICsgeUNvb3JkCisrIAorKyAgICAgICAgICAg ICAgICAgIyBEcmF3IGZpcnN0IHBhcnQKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KHRl eHQxLCBwb3N4LCBwb3N5KQorK0BAIC05MTIsNyArOTEyLDcgQEAgZGVmIERyYXdNZW51SXRlbShz ZWxmLCBpdGVtLCBkYywgeENvb3JkLCB5Q29vcmQsIGltYWdlTWFyZ2luWCwgbWFya2VyTWFyZ2lu WCwgdGUKKysgICAgICAgICAgICAgZWxzZToKKysgCisrICAgICAgICAgICAgICAgICB3LCBoID0g ZGMuR2V0VGV4dEV4dGVudCh0ZXh0KQorKy0gICAgICAgICAgICAgICAgZGMuRHJhd1RleHQodGV4 dCwgeENvb3JkICsgdGV4dFggKyBib3JkZXJYU2l6ZSwgKGl0ZW1IZWlnaHQgLSBoKS8yICsgeUNv b3JkKQorKysgICAgICAgICAgICAgICAgZGMuRHJhd1RleHQodGV4dCwgeENvb3JkICsgdGV4dFgg KyBib3JkZXJYU2l6ZSwgKGl0ZW1IZWlnaHQgLSBoKS8vMiArIHlDb29yZCkKKysgCisrIAorKyAg ICAgICAgICMgTm93IGRyYXcgYWNjZWxlcmF0b3IKKytAQCAtOTIwLDcgKzkyMCw3IEBAIGRlZiBE cmF3TWVudUl0ZW0oc2VsZiwgaXRlbSwgZGMsIHhDb29yZCwgeUNvb3JkLCBpbWFnZU1hcmdpblgs IG1hcmtlck1hcmdpblgsIHRlCisrICAgICAgICAgaWYgaXRlbS5HZXRBY2NlbFN0cmluZygpOgor KyAKKysgICAgICAgICAgICAgYWNjZWxXaWR0aCwgYWNjZWxIZWlnaHQgPSBkYy5HZXRUZXh0RXh0 ZW50KGl0ZW0uR2V0QWNjZWxTdHJpbmcoKSkKKystICAgICAgICAgICAgZGMuRHJhd1RleHQoaXRl bS5HZXRBY2NlbFN0cmluZygpLCB4Q29vcmQgKyByaWdodE1hcmdpblggLSBhY2NlbFdpZHRoLCAo aXRlbUhlaWdodCAtIGFjY2VsSGVpZ2h0KS8yICsgeUNvb3JkKQorKysgICAgICAgICAgICBkYy5E cmF3VGV4dChpdGVtLkdldEFjY2VsU3RyaW5nKCksIHhDb29yZCArIHJpZ2h0TWFyZ2luWCAtIGFj Y2VsV2lkdGgsIChpdGVtSGVpZ2h0IC0gYWNjZWxIZWlnaHQpLy8yICsgeUNvb3JkKQorKyAKKysg ICAgICAgICAjIENoZWNrIGlmIHRoaXMgaXRlbSBoYXMgc3ViLW1lbnUgLSBpZiBpdCBkb2VzLCBk cmF3CisrICAgICAgICAgIyByaWdodCBhcnJvdyBvbiB0aGUgcmlnaHQgbWFyZ2luCisrQEAgLTkz Miw3ICs5MzIsNyBAQCBkZWYgRHJhd01lbnVJdGVtKHNlbGYsIGl0ZW0sIGRjLCB4Q29vcmQsIHlD b29yZCwgaW1hZ2VNYXJnaW5YLCBtYXJrZXJNYXJnaW5YLCB0ZQorKyAKKysgICAgICAgICAgICAg eHggPSB4Q29vcmQgKyByaWdodE1hcmdpblggKyBib3JkZXJYU2l6ZQorKyAgICAgICAgICAgICBy ciA9IHd4LlJlY3QoeHgsIHJlY3QueSArIDEsIHJlY3QuaGVpZ2h0LTIsIHJlY3QuaGVpZ2h0LTIp CisrLSAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAocmlnaHRBcnJvd0JtcCwgcnIueCArIDQsIHJy LnkgKyhyci5oZWlnaHQtMTYpLzIsIFRydWUpCisrKyAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAo cmlnaHRBcnJvd0JtcCwgcnIueCArIDQsIHJyLnkgKyhyci5oZWlnaHQtMTYpLy8yLCBUcnVlKQor KyAKKysgCisrICAgICBkZWYgRHJhd01lbnVCYXJCdXR0b24oc2VsZiwgZGMsIHJlY3QsIHN0YXRl KToKKytAQCAtMTE0Miw3ICsxMTQyLDcgQEAgZGVmIERyYXdNZW51QmFyKHNlbGYsIG1lbnViYXIs IGRjKToKKysgICAgICAgICAgICAgIyBHZXQgdGhlIG1lbnUgaXRlbSByZWN0CisrICAgICAgICAg ICAgIHRleHRXaWR0aCwgdGV4dEhlaWdodCA9IGRjLkdldFRleHRFeHRlbnQoZml4ZWRUZXh0KQor KyAgICAgICAgICAgICAjcmVjdCA9IHd4LlJlY3QocG9zeCttZW51YmFyLl9zcGFjZXIvMiwgcG9z eSwgdGV4dFdpZHRoLCB0ZXh0SGVpZ2h0KQorKy0gICAgICAgICAgICByZWN0ID0gd3guUmVjdChw b3N4K3BhZGRpbmcvMiwgcG9zeSwgdGV4dFdpZHRoLCB0ZXh0SGVpZ2h0KQorKysgICAgICAgICAg ICByZWN0ID0gd3guUmVjdChwb3N4K3BhZGRpbmcvLzIsIHBvc3ksIHRleHRXaWR0aCwgdGV4dEhl aWdodCkKKysgCisrICAgICAgICAgICAgICMgQ2FuIHdlIGRyYXcgbW9yZT8/CisrICAgICAgICAg ICAgICMgdGhlICtEUk9QX0RPV05fQVJST1dfV0lEVEggIGlzIHRoZSB3aWR0aCBvZiB0aGUgZHJv cCBkb3duIGFycm93CisrQEAgLTExNzIsNyArMTE3Miw3IEBAIGRlZiBEcmF3TWVudUJhcihzZWxm LCBtZW51YmFyLCBkYyk6CisrICAgICAgICAgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZCh0 ZXh0Q29sb3VyKQorKyAKKysgICAgICAgICAgICAgd3csIGhoID0gZGMuR2V0VGV4dEV4dGVudChs YWJlbE9ubHkpCisrLSAgICAgICAgICAgIHRleHRPZmZzZXQgPSAocmVjdC53aWR0aCAtIHd3KSAv IDIKKysrICAgICAgICAgICAgdGV4dE9mZnNldCA9IChyZWN0LndpZHRoIC0gd3cpIC8vIDIKKysg CisrICAgICAgICAgICAgIGlmIG5vdCBtZW51YmFyLl9pc0xDRCBhbmQgaXRlbS5HZXRUZXh0Qml0 bWFwKCkuSXNPaygpIGFuZCBub3Qgc2VsZWN0ZWQ6CisrICAgICAgICAgICAgICAgICBkYy5EcmF3 Qml0bWFwKGl0ZW0uR2V0VGV4dEJpdG1hcCgpLCByZWN0LngsIHJlY3QueSwgVHJ1ZSkKKytAQCAt MTUwNSw4ICsxNTA1LDggQEAgZGVmIERyYXdCdXR0b25Db2xvdXIoc2VsZiwgZGMsIHJlY3QsIHN0 YXRlLCBjb2xvdXIpOgorKyAgICAgICAgIGJhc2VDb2xvdXIgPSBjb2xvdXIKKysgCisrICAgICAg ICAgIyBEZWZpbmUgdGhlIG1pZGRsZSBwb2ludHMKKystICAgICAgICBsZWZ0UHQgPSB3eC5Qb2lu dChyZWN0LngsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDIpKQorKy0gICAgICAgIHJpZ2h0UHQg PSB3eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoLTEsIHJlY3QueSArIChyZWN0LmhlaWdodCAv IDIpKQorKysgICAgICAgIGxlZnRQdCA9IHd4LlBvaW50KHJlY3QueCwgcmVjdC55ICsgKHJlY3Qu aGVpZ2h0IC8vIDIpKQorKysgICAgICAgIHJpZ2h0UHQgPSB3eC5Qb2ludChyZWN0LnggKyByZWN0 LndpZHRoLTEsIHJlY3QueSArIChyZWN0LmhlaWdodCAvLyAyKSkKKysgCisrICAgICAgICAgIyBE ZWZpbmUgdGhlIHRvcCByZWdpb24KKysgICAgICAgICB0b3AgPSB3eC5SZWN0KChyZWN0LkdldExl ZnQoKSwgcmVjdC5HZXRUb3AoKSksIHJpZ2h0UHQpCisrQEAgLTE1NzIsMTEgKzE1NzIsMTEgQEAg ZGVmIERyYXdNZW51QmFyQmFja2dyb3VuZChzZWxmLCBkYywgcmVjdCk6CisrIAorKyAgICAgICAg IGZhY3RvciA9IGFydE1nci5HZXRNZW51QmdGYWN0b3IoKQorKyAKKystICAgICAgICBsZWZ0UHQx ID0gd3guUG9pbnQocmVjdC54LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLyBmYWN0b3IpKQorKy0g ICAgICAgIGxlZnRQdDIgPSB3eC5Qb2ludChyZWN0LngsIHJlY3QueSArIChyZWN0LmhlaWdodCAv IGZhY3RvcikqKGZhY3Rvci0xKSkKKysrICAgICAgICBsZWZ0UHQxID0gd3guUG9pbnQocmVjdC54 LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLy8gZmFjdG9yKSkKKysrICAgICAgICBsZWZ0UHQyID0g d3guUG9pbnQocmVjdC54LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLy8gZmFjdG9yKSooZmFjdG9y LTEpKQorKyAKKystICAgICAgICByaWdodFB0MSA9IHd4LlBvaW50KHJlY3QueCArIHJlY3Qud2lk dGgsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIGZhY3RvcikpCisrLSAgICAgICAgcmlnaHRQdDIg PSB3eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoLCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLyBm YWN0b3IpKihmYWN0b3ItMSkpCisrKyAgICAgICAgcmlnaHRQdDEgPSB3eC5Qb2ludChyZWN0Lngg KyByZWN0LndpZHRoLCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLy8gZmFjdG9yKSkKKysrICAgICAg ICByaWdodFB0MiA9IHd4LlBvaW50KHJlY3QueCArIHJlY3Qud2lkdGgsIHJlY3QueSArIChyZWN0 LmhlaWdodCAvLyBmYWN0b3IpKihmYWN0b3ItMSkpCisrIAorKyAgICAgICAgICMgRGVmaW5lIHRo ZSB0b3AgcmVnaW9uCisrICAgICAgICAgdG9wUmVnID0gW3d4LlBvaW50KCkgZm9yIGlpIGluIHJh bmdlKDcpXQorK0BAIC0yNzA3LDcgKzI3MDcsNyBAQCBkZWYgRHJhd1Rvb2xiYXIoc2VsZiwgZGMs IHJlY3QpOgorKyAgICAgICAgICAgICBlbGlmIHRiSXRlbS5Jc0N1c3RvbUNvbnRyb2woKToKKysg ICAgICAgICAgICAgICAgIGNvbnRyb2wgPSB0Ykl0ZW0uR2V0Q3VzdG9tQ29udHJvbCgpCisrICAg ICAgICAgICAgICAgICBjdHJsU2l6ZSA9IGNvbnRyb2wuR2V0U2l6ZSgpCisrLSAgICAgICAgICAg ICAgICBjdHJsUG9zID0gd3guUG9pbnQoeHgsIHJlY3QueSArIChyZWN0LmhlaWdodCAtIGN0cmxT aXplLnkpLzIpCisrKyAgICAgICAgICAgICAgICBjdHJsUG9zID0gd3guUG9pbnQoeHgsIHJlY3Qu eSArIChyZWN0LmhlaWdodCAtIGN0cmxTaXplLnkpLy8yKQorKyAgICAgICAgICAgICAgICAgaWYg Y29udHJvbC5HZXRQb3NpdGlvbigpICE9IGN0cmxQb3M6CisrICAgICAgICAgICAgICAgICAgICAg Y29udHJvbC5TZXRQb3NpdGlvbihjdHJsUG9zKQorKyAKKytAQCAtMjcyNyw5ICsyNzI3LDkgQEAg ZGVmIERyYXdUb29sYmFyKHNlbGYsIGRjLCByZWN0KToKKysgICAgICAgICAgICAgIyBEcmF3IHRo ZSB0b29sYmFyIGltYWdlCisrICAgICAgICAgICAgIGlmIGJtcC5Jc09rKCk6CisrIAorKy0gICAg ICAgICAgICAgICAgeCA9IHh4IC0gc2VsZi5fdG9vbGJhclNwYWNlci8yCisrKyAgICAgICAgICAg ICAgICB4ID0geHggLSBzZWxmLl90b29sYmFyU3BhY2VyLy8yCisrICAgICAgICAgICAgICAgICAj eSA9IHJlY3QueSArIChyZWN0LmhlaWdodCAtIGJtcC5HZXRIZWlnaHQoKSkvMiAtIDEKKystICAg ICAgICAgICAgICAgIHkgPSByZWN0LnkgKyBzZWxmLl90b29sYmFyTWFyZ2luLzIKKysrICAgICAg ICAgICAgICAgIHkgPSByZWN0LnkgKyBzZWxmLl90b29sYmFyTWFyZ2luLy8yCisrIAorKyAgICAg ICAgICAgICAgICAgYnV0dG9uUmVjdCA9IHd4LlJlY3QoeCwgeSwgaGlnaGxpZ2h0X3dpZHRoLCBo aWdobGlnaHRfaGVpZ2h0KQorKyAKKytAQCAtMjc0NSw4ICsyNzQ1LDggQEAgZGVmIERyYXdUb29s YmFyKHNlbGYsIGRjLCByZWN0KToKKysgICAgICAgICAgICAgICAgICAgICBlbHNlOgorKyAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLl90YkJ1dHRvbnNbaV0uX3N0YXRlID0gQ29udHJvbE5v cm1hbAorKyAKKystICAgICAgICAgICAgICAgIGltZ3ggPSBidXR0b25SZWN0LnggKyAoYnV0dG9u UmVjdC53aWR0aCAtIGJtcC5HZXRXaWR0aCgpKS8yCisrLSAgICAgICAgICAgICAgICBpbWd5ID0g YnV0dG9uUmVjdC55ICsgKGJ1dHRvblJlY3QuaGVpZ2h0IC0gYm1wLkdldEhlaWdodCgpKS8yCisr KyAgICAgICAgICAgICAgICBpbWd4ID0gYnV0dG9uUmVjdC54ICsgKGJ1dHRvblJlY3Qud2lkdGgg LSBibXAuR2V0V2lkdGgoKSkvLzIKKysrICAgICAgICAgICAgICAgIGltZ3kgPSBidXR0b25SZWN0 LnkgKyAoYnV0dG9uUmVjdC5oZWlnaHQgLSBibXAuR2V0SGVpZ2h0KCkpLy8yCisrIAorKyAgICAg ICAgICAgICAgICAgaWYgc2VsZi5fdGJCdXR0b25zW2ldLl9zdGF0ZSA9PSBDb250cm9sRm9jdXMg YW5kIG5vdCBzZWxmLl90YkJ1dHRvbnNbaV0uX3RiSXRlbS5Jc1NlbGVjdGVkKCk6CisrIAorK0BA IC0yODI3LDggKzI4MjcsOCBAQCBkZWYgRHJhd01vcmVCdXR0b24oc2VsZiwgZGMsIHN0YXRlKToK KysgICAgICAgICBkcm9wQXJyb3dCbXAgPSBzZWxmLkdldFJlbmRlcmVyKCkuX2JpdG1hcHNbImFy cm93X2Rvd24iXQorKyAKKysgICAgICAgICAjIENhbGMgdGhlIGltYWdlIGNvb3JkaW5hdGVzCisr LSAgICAgICAgeHggPSByZWN0LnggKyAoRFJPUF9ET1dOX0FSUk9XX1dJRFRIIC0gZHJvcEFycm93 Qm1wLkdldFdpZHRoKCkpLzIKKystICAgICAgICB5eSA9IHJlY3QueSArIChyZWN0LmhlaWdodCAt IGRyb3BBcnJvd0JtcC5HZXRIZWlnaHQoKSkvMgorKysgICAgICAgIHh4ID0gcmVjdC54ICsgKERS T1BfRE9XTl9BUlJPV19XSURUSCAtIGRyb3BBcnJvd0JtcC5HZXRXaWR0aCgpKS8vMgorKysgICAg ICAgIHl5ID0gcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gZHJvcEFycm93Qm1wLkdldEhlaWdodCgp KS8vMgorKyAKKysgICAgICAgICBkYy5EcmF3Qml0bWFwKGRyb3BBcnJvd0JtcCwgeHgsIHl5ICsg c2VsZi5fc3BhY2VyLCBUcnVlKQorKyAgICAgICAgIHNlbGYuX2Ryb3BEb3duQnV0dG9uU3RhdGUg PSBzdGF0ZQorK0BAIC0zMjY5LDggKzMyNjksOCBAQCBkZWYgRHJhd1Rvb2xiYXJJdGVtKHNlbGYs IGRjLCBpZHgsIHN0YXRlKToKKysgCisrICAgICAgICAgIyBkcmF3IHRoZSBiaXRtYXAgb3ZlciB0 aGUgaGlnaGxpZ2h0CisrICAgICAgICAgYnV0dG9uUmVjdCA9IHd4LlJlY3QoKnJlY3QpCisrLSAg ICAgICAgeCA9IHJlY3QueCArIChidXR0b25SZWN0LndpZHRoIC0gc2VsZi5fdGJCdXR0b25zW2lk eF0uX3RiSXRlbS5HZXRCaXRtYXAoKS5HZXRXaWR0aCgpKS8yCisrLSAgICAgICAgeSA9IHJlY3Qu eSArIChidXR0b25SZWN0LmhlaWdodCAtIHNlbGYuX3RiQnV0dG9uc1tpZHhdLl90Ykl0ZW0uR2V0 Qml0bWFwKCkuR2V0SGVpZ2h0KCkpLzIKKysrICAgICAgICB4ID0gcmVjdC54ICsgKGJ1dHRvblJl Y3Qud2lkdGggLSBzZWxmLl90YkJ1dHRvbnNbaWR4XS5fdGJJdGVtLkdldEJpdG1hcCgpLkdldFdp ZHRoKCkpLy8yCisrKyAgICAgICAgeSA9IHJlY3QueSArIChidXR0b25SZWN0LmhlaWdodCAtIHNl bGYuX3RiQnV0dG9uc1tpZHhdLl90Ykl0ZW0uR2V0Qml0bWFwKCkuR2V0SGVpZ2h0KCkpLy8yCisr IAorKyAgICAgICAgIGlmIHN0YXRlID09IENvbnRyb2xGb2N1czoKKysgCisrQEAgLTM3ODQsNyAr Mzc4NCw3IEBAIGRlZiBQb3NpdGlvbkFVSShzZWxmLCBtZ3IsIGZpeFRvb2xiYXI9VHJ1ZSk6Cisr ICAgICAgICAgcG4uTmFtZSgiZmxhdF9tZW51X2JhciIpCisrICAgICAgICAgcG4uQ2FwdGlvbigi TWVudSBCYXIiKQorKyAgICAgICAgIHBuLlRvcCgpCisrLSAgICAgICAgcG4uTWluU2l6ZSh3eC5T aXplKHh4LzIsIHNlbGYuX2JhckhlaWdodCkpCisrKyAgICAgICAgcG4uTWluU2l6ZSh3eC5TaXpl KHh4Ly8yLCBzZWxmLl9iYXJIZWlnaHQpKQorKyAgICAgICAgIHBuLkxlZnREb2NrYWJsZShGYWxz ZSkKKysgICAgICAgICBwbi5SaWdodERvY2thYmxlKEZhbHNlKQorKyAgICAgICAgIHBuLlRvb2xi YXJQYW5lKCkKKytAQCAtMzk5Nyw4ICszOTk3LDggQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAg ICAgICAgICIiIgorKyAKKysgICAgICAgICByZWN0ID0gd3guUmVjdChzZWxmLl9wb3MsIHNlbGYu X3NpemUpCisrLSAgICAgICAgeHggPSByZWN0LnggKyAocmVjdC53aWR0aCAtIHNlbGYuX25vcm1h bEJtcC5HZXRXaWR0aCgpKS8yCisrLSAgICAgICAgeXkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQg LSBzZWxmLl9ub3JtYWxCbXAuR2V0SGVpZ2h0KCkpLzIKKysrICAgICAgICB4eCA9IHJlY3QueCAr IChyZWN0LndpZHRoIC0gc2VsZi5fbm9ybWFsQm1wLkdldFdpZHRoKCkpLy8yCisrKyAgICAgICAg eXkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBzZWxmLl9ub3JtYWxCbXAuR2V0SGVpZ2h0KCkp Ly8yCisrIAorKyAgICAgICAgIHNlbGYuX3BhcmVudC5HZXRSZW5kZXJlcigpLkRyYXdTY3JvbGxC dXR0b24oZGMsIHJlY3QsIHNlbGYuX3N0YXRlKQorKyAgICAgICAgIGRjLkRyYXdCaXRtYXAoc2Vs Zi5fbm9ybWFsQm1wLCB4eCwgeXksIFRydWUpCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvZmxh dG5vdGVib29rLnB5IGIvd3gvbGliL2Fndy9mbGF0bm90ZWJvb2sucHkKKytpbmRleCBmNWU1MjAw YjIuLjU2MTc0OWI4OSAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L2ZsYXRub3RlYm9vay5weQor KysrKyBiL3d4L2xpYi9hZ3cvZmxhdG5vdGVib29rLnB5CisrQEAgLTg1OCw5ICs4NTgsOSBAQCBk ZWYgUGFpbnRTdHJhaWdodEdyYWRpZW50Qm94KGRjLCByZWN0LCBzdGFydENvbG91ciwgZW5kQ29s b3VyLCB2ZXJ0aWNhbD1UcnVlKToKKysgCisrICAgICBmb3IgaSBpbiByYW5nZShoaWdoKzEpOgor KyAKKystICAgICAgICByID0gc3RhcnRDb2xvdXIuUmVkKCkgKyAoKGkqcmQqMTAwKS9oaWdoKS8x MDAKKystICAgICAgICBnID0gc3RhcnRDb2xvdXIuR3JlZW4oKSArICgoaSpnZCoxMDApL2hpZ2gp LzEwMAorKy0gICAgICAgIGIgPSBzdGFydENvbG91ci5CbHVlKCkgKyAoKGkqYmQqMTAwKS9oaWdo KS8xMDAKKysrICAgICAgICByID0gc3RhcnRDb2xvdXIuUmVkKCkgKyAoKGkqcmQqMTAwKS8vaGln aCkvLzEwMAorKysgICAgICAgIGcgPSBzdGFydENvbG91ci5HcmVlbigpICsgKChpKmdkKjEwMCkv L2hpZ2gpLy8xMDAKKysrICAgICAgICBiID0gc3RhcnRDb2xvdXIuQmx1ZSgpICsgKChpKmJkKjEw MCkvL2hpZ2gpLy8xMDAKKysgCisrICAgICAgICAgcCA9IHd4LlBlbih3eC5Db2xvdXIociwgZywg YikpCisrICAgICAgICAgZGMuU2V0UGVuKHApCisrQEAgLTI2MzEsOSArMjYzMSw5IEBAIGRlZiBE cmF3VGFiKHNlbGYsIHBhZ2VDb250YWluZXIsIGRjLCBwb3N4LCB0YWJJZHgsIHRhYldpZHRoLCB0 YWJIZWlnaHQsIGJ0blN0YXR1CisrICAgICAgICAgaW1hZ2VZQ29vcmQgPSAocGMuSGFzQUdXRmxh ZyhGTkJfQk9UVE9NKSBhbmQgWzZdIG9yIFs4XSlbMF0KKysgCisrICAgICAgICAgaWYgaGFzSW1h Z2U6CisrLSAgICAgICAgICAgIHRleHRPZmZzZXQgPSAyKnBjLl9wUGFyZW50Ll9uUGFkZGluZyAr IDE2ICsgc2hhcGVQb2ludHMvMgorKysgICAgICAgICAgICB0ZXh0T2Zmc2V0ID0gMipwYy5fcFBh cmVudC5fblBhZGRpbmcgKyAxNiArIHNoYXBlUG9pbnRzLy8yCisrICAgICAgICAgZWxzZToKKyst ICAgICAgICAgICAgdGV4dE9mZnNldCA9IHBjLl9wUGFyZW50Ll9uUGFkZGluZyArIHNoYXBlUG9p bnRzLzIKKysrICAgICAgICAgICAgdGV4dE9mZnNldCA9IHBjLl9wUGFyZW50Ll9uUGFkZGluZyAr IHNoYXBlUG9pbnRzLy8yCisrIAorKyAgICAgICAgIHRleHRPZmZzZXQgKz0gMgorKyAKKytkaWZm IC0tZ2l0IGEvd3gvbGliL2Fndy9mbG9hdHNwaW4ucHkgYi93eC9saWIvYWd3L2Zsb2F0c3Bpbi5w eQorK2luZGV4IGJkYmFmODVlYy4uNDU1OWViNWRlIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cv ZmxvYXRzcGluLnB5CisrKysrIGIvd3gvbGliL2Fndy9mbG9hdHNwaW4ucHkKKytAQCAtMzM2LDcg KzMzNiw3IEBAIGNsYXNzIEZsb2F0U3Bpbih3eC5Db250cm9sKToKKysgICAgICIiIgorKyAKKysg ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIGlkPXd4LklEX0FOWSwgcG9zPXd4LkRlZmF1 bHRQb3NpdGlvbiwKKystICAgICAgICAgICAgICAgICBzaXplPSg5NSwtMSksIHN0eWxlPTAsIHZh bHVlPTAuMCwgbWluX3ZhbD1Ob25lLCBtYXhfdmFsPU5vbmUsCisrKyAgICAgICAgICAgICAgICAg c2l6ZT13eC5EZWZhdWx0U2l6ZSwgc3R5bGU9MCwgdmFsdWU9MC4wLCBtaW5fdmFsPU5vbmUsIG1h eF92YWw9Tm9uZSwKKysgICAgICAgICAgICAgICAgICBpbmNyZW1lbnQ9MS4wLCBkaWdpdHM9LTEs IGFnd1N0eWxlPUZTX0xFRlQsCisrICAgICAgICAgICAgICAgICAgbmFtZT0iRmxvYXRTcGluIik6 CisrICAgICAgICAgIiIiCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvZ3JhZGllbnRidXR0b24u cHkgYi93eC9saWIvYWd3L2dyYWRpZW50YnV0dG9uLnB5CisraW5kZXggYzQ2MzNiMjk2Li41ODYy NWM1MDggMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9ncmFkaWVudGJ1dHRvbi5weQorKysrKyBi L3d4L2xpYi9hZ3cvZ3JhZGllbnRidXR0b24ucHkKKytAQCAtNDEyLDE0ICs0MTIsMTQgQEAgZGVm IE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAKKysgICAgICAgICB4LCB5LCB3aWR0aCwgaGVpZ2h0 ID0gY2xpZW50UmVjdAorKyAKKystICAgICAgICBncmFkaWVudFJlY3QuU2V0SGVpZ2h0KGdyYWRp ZW50UmVjdC5HZXRIZWlnaHQoKS8yICsgKChjYXB0dXJlPT1zZWxmIGFuZCBbMV0gb3IgWzBdKVsw XSkpCisrKyAgICAgICAgZ3JhZGllbnRSZWN0LlNldEhlaWdodChncmFkaWVudFJlY3QuR2V0SGVp Z2h0KCkvLzIgKyAoKGNhcHR1cmU9PXNlbGYgYW5kIFsxXSBvciBbMF0pWzBdKSkKKysgICAgICAg ICBpZiBjYXB0dXJlICE9IHNlbGY6CisrICAgICAgICAgICAgIGlmIHNlbGYuX21vdXNlQWN0aW9u ID09IEhPVkVSOgorKyAgICAgICAgICAgICAgICAgdG9wU3RhcnQsIHRvcEVuZCA9IHNlbGYuTGln aHRDb2xvdXIoc2VsZi5fdG9wU3RhcnRDb2xvdXIsIDEwKSwgc2VsZi5MaWdodENvbG91cihzZWxm Ll90b3BFbmRDb2xvdXIsIDEwKQorKyAgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAg ICAgdG9wU3RhcnQsIHRvcEVuZCA9IHNlbGYuX3RvcFN0YXJ0Q29sb3VyLCBzZWxmLl90b3BFbmRD b2xvdXIKKysgCisrLSAgICAgICAgICAgIHJjMSA9IHd4LlJlY3QoeCwgeSwgd2lkdGgsIGhlaWdo dC8yKQorKysgICAgICAgICAgICByYzEgPSB3eC5SZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQvLzIp CisrICAgICAgICAgICAgIHBhdGgxID0gc2VsZi5HZXRQYXRoKGdjLCByYzEsIDgpCisrICAgICAg ICAgICAgIGJyMSA9IGdjLkNyZWF0ZUxpbmVhckdyYWRpZW50QnJ1c2goeCwgeSwgeCwgeStoZWln aHQvMiwgdG9wU3RhcnQsIHRvcEVuZCkKKysgICAgICAgICAgICAgZ2MuU2V0QnJ1c2goYnIxKQor K0BAIC00NDgsNyArNDQ4LDcgQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAgICAgICAg ICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICAgYm90dG9tU3RhcnQsIGJvdHRvbUVuZCA9IHNl bGYuX2JvdHRvbVN0YXJ0Q29sb3VyLCBzZWxmLl9ib3R0b21FbmRDb2xvdXIKKysgCisrLSAgICAg ICAgICAgIHJjMyA9IHd4LlJlY3QoeCwgeStoZWlnaHQvMiwgd2lkdGgsIGhlaWdodC8yKQorKysg ICAgICAgICAgICByYzMgPSB3eC5SZWN0KHgsIHkraGVpZ2h0Ly8yLCB3aWR0aCwgaGVpZ2h0Ly8y KQorKyAgICAgICAgICAgICBwYXRoMyA9IHNlbGYuR2V0UGF0aChnYywgcmMzLCA4KQorKyAgICAg ICAgICAgICBicjMgPSBnYy5DcmVhdGVMaW5lYXJHcmFkaWVudEJydXNoKHgsIHkraGVpZ2h0LzIs IHgsIHkraGVpZ2h0LCBib3R0b21TdGFydCwgYm90dG9tRW5kKQorKyAgICAgICAgICAgICBnYy5T ZXRCcnVzaChicjMpCisrQEAgLTQ2Myw3ICs0NjMsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVu dCk6CisrICAgICAgICAgICAgIHNoYWRvd09mZnNldCA9IDAKKysgICAgICAgICBlbHNlOgorKyAK KystICAgICAgICAgICAgcmMyID0gd3guUmVjdCh4KzEsIGdyYWRpZW50UmVjdC5oZWlnaHQvMiwg Z3JhZGllbnRSZWN0LndpZHRoLCBncmFkaWVudFJlY3QuaGVpZ2h0KQorKysgICAgICAgICAgICBy YzIgPSB3eC5SZWN0KHgrMSwgZ3JhZGllbnRSZWN0LmhlaWdodC8vMiwgZ3JhZGllbnRSZWN0Lndp ZHRoLCBncmFkaWVudFJlY3QuaGVpZ2h0KQorKyAgICAgICAgICAgICBwYXRoMiA9IHNlbGYuR2V0 UGF0aChnYywgcmMyLCA4KQorKyAgICAgICAgICAgICBnYy5TZXRQZW4od3guUGVuKHNlbGYuX3By ZXNzZWRCb3R0b21Db2xvdXIpKQorKyAgICAgICAgICAgICBnYy5TZXRCcnVzaCh3eC5CcnVzaChz ZWxmLl9wcmVzc2VkQm90dG9tQ29sb3VyKSkKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9oeXBl cnRyZWVsaXN0LnB5IGIvd3gvbGliL2Fndy9oeXBlcnRyZWVsaXN0LnB5CisraW5kZXggMTIzMDJm M2IwLi4zNzdhYzAxMjEgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9oeXBlcnRyZWVsaXN0LnB5 CisrKysrIGIvd3gvbGliL2Fndy9oeXBlcnRyZWVsaXN0LnB5CisrQEAgLTM0MzcsNyArMzQzNyw3 IEBAIGRlZiBQYWludExldmVsKHNlbGYsIGl0ZW0sIGRjLCBsZXZlbCwgeSwgeF9tYWluY29sKToK KysgCisrICAgICAgICAgICAgIGlmIG5vdCBzZWxmLkhhc0FHV0ZsYWcod3guVFJfTk9fTElORVMp IGFuZCBjaGlsZHJlbjoKKysgICAgICAgICAgICAgICAgIGxhc3RfY2hpbGQgPSBjaGlsZHJlblst MV0KKystICAgICAgICAgICAgICAgIFkxID0gbGFzdF9jaGlsZC5HZXRZKCkgKyBsYXN0X2NoaWxk LkdldEhlaWdodCgpIC8gMgorKysgICAgICAgICAgICAgICAgWTEgPSBsYXN0X2NoaWxkLkdldFko KSArIGxhc3RfY2hpbGQuR2V0SGVpZ2h0KCkgLy8gMgorKyAgICAgICAgICAgICAgICAgZGMuRHJh d0xpbmUoeCwgb2xkWSwgeCwgWTEpCisrIAorKyAgICAgICAgIHJldHVybiB5LCB4X21haW5jb2wK KytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9rbm9iY3RybC5weSBiL3d4L2xpYi9hZ3cva25vYmN0 cmwucHkKKytpbmRleCA3NDIwOTdiMDkuLjFlNTA0NWZmNiAxMDA2NDQKKystLS0gYS93eC9saWIv YWd3L2tub2JjdHJsLnB5CisrKysrIGIvd3gvbGliL2Fndy9rbm9iY3RybC5weQorK0BAIC0zMjUs NyArMzI1LDcgQEAgZGVmIE9uU2l6ZShzZWxmLGV2ZW50KToKKysgICAgICAgICBtZW1vcnkuQ2xl YXIoKQorKyAKKysgICAgICAgICBtaW5yYWRpdXMgPSBtaW4oMC45KnNlbGYuV2lkdGgvMi4wLCAw Ljkqc2VsZi5IZWlnaHQvMi4wKQorKy0gICAgICAgIG1lbW9yeS5EcmF3Q2lyY2xlKHNlbGYuV2lk dGgvLzIsIHNlbGYuSGVpZ2h0Ly8yLCBtaW5yYWRpdXMpCisrKyAgICAgICAgbWVtb3J5LkRyYXdD aXJjbGUoc2VsZi5XaWR0aC8vMiwgc2VsZi5IZWlnaHQvLzIsIGludChtaW5yYWRpdXMpKQorKyAg ICAgICAgIG1lbW9yeS5TZWxlY3RPYmplY3Qod3guTnVsbEJpdG1hcCkKKysgICAgICAgICBzZWxm Ll9yZWdpb24gPSB3eC5SZWdpb24oc2VsZi5fQnVmZmVyLCBzZWxmLkdldEJhY2tncm91bmRDb2xv dXIoKSkKKysgICAgICAgICBzZWxmLl9taW5yYWRpdXMgPSBtaW5yYWRpdXMKKytAQCAtNjQ1LDgg KzY0NSw4IEBAIGRlZiBEcmF3VGFncyhzZWxmLCBkYywgc2l6ZSk6CisrICAgICAgICAgICAgIGR4 aSA9IG1hdGguY29zKGFuZ2xlKSooKHdpZHRoIC0geHNoaWZ0ICsgdGFnTGVuIC0gNikvMi4wIC0g dGFnTGVuKQorKyAgICAgICAgICAgICBkeWkgPSBtYXRoLnNpbihhbmdsZSkqKChoZWlnaHQgLSB5 c2hpZnQgKyB0YWdMZW4gLSA2KS8yLjAgLSB0YWdMZW4pCisrIAorKy0gICAgICAgICAgICBkYy5E cmF3TGluZSh3aWR0aC8vMiAtIHN4aSwgaGVpZ2h0Ly8yIC0gc3lpLAorKy0gICAgICAgICAgICAg ICAgICAgICAgICB3aWR0aC8vMiAtIGR4aSwgaGVpZ2h0Ly8yIC0gZHlpKQorKysgICAgICAgICAg ICBkYy5EcmF3TGluZShpbnQod2lkdGgvLzIgLSBzeGkpLCBpbnQoaGVpZ2h0Ly8yIC0gc3lpKSwK KysrICAgICAgICAgICAgICAgICAgICAgICAgaW50KHdpZHRoLy8yIC0gZHhpKSwgaW50KGhlaWdo dC8vMiAtIGR5aSkpCisrIAorKyAKKysgICAgIGRlZiBEcmF3RGlhZ29uYWxHcmFkaWVudChzZWxm LCBkYywgc2l6ZSk6CisrQEAgLTc1OSw4ICs3NTksOCBAQCBkZWYgRHJhd0luc2V0Q2lyY2xlKHNl bGYsIGRjLCBwZW5jb2xvdXIpOgorKyAgICAgICAgIHAxID0gd3guUGVuKHNlbGYuT2Zmc2V0Q29s b3VyKHBlbmNvbG91ciwgLTcwKSwgMikKKysgICAgICAgICBwMiA9IHd4LlBlbihzZWxmLk9mZnNl dENvbG91cihwZW5jb2xvdXIsIDEwKSwgMSkKKysgCisrLSAgICAgICAgcHQxID0gd3guUG9pbnQo Y3gtciptYXRoLnNxcnQoMikvMi4wLCBjeStyKm1hdGguc3FydCgyKS8yLjApCisrLSAgICAgICAg cHQyID0gd3guUG9pbnQoY3grciptYXRoLnNxcnQoMikvMi4wLCBjeS1yKm1hdGguc3FydCgyKS8y LjApCisrKyAgICAgICAgcHQxID0gd3guUG9pbnQoaW50KGN4LXIqbWF0aC5zcXJ0KDIpLzIuMCks IGludChjeStyKm1hdGguc3FydCgyKS8yLjApKQorKysgICAgICAgIHB0MiA9IHd4LlBvaW50KGlu dChjeCtyKm1hdGguc3FydCgyKS8yLjApLCBpbnQoY3ktciptYXRoLnNxcnQoMikvMi4wKSkKKysg CisrICAgICAgICAgZGMuU2V0UGVuKHAyKQorKyAgICAgICAgIGRjLkRyYXdBcmMocHQxLCBwdDIs IChjeCwgY3kpKQorK0BAIC03NzksNyArNzc5LDcgQEAgZGVmIERyYXdCb3VuZGluZ0NpcmNsZShz ZWxmLCBkYywgc2l6ZSk6CisrICAgICAgICAgcmFkaXVzID0gMC45Km1pbihzaXplLngsIHNpemUu eSkvMi4wCisrICAgICAgICAgZGMuU2V0QnJ1c2god3guVFJBTlNQQVJFTlRfQlJVU0gpCisrICAg ICAgICAgZGMuU2V0UGVuKHd4LlBlbihzZWxmLl9ib3VuZGluZ2NvbG91cikpCisrLSAgICAgICAg ZGMuRHJhd0NpcmNsZShzZWxmLldpZHRoLy8yLCBzZWxmLkhlaWdodC8vMiwgcmFkaXVzKQorKysg ICAgICAgIGRjLkRyYXdDaXJjbGUoc2VsZi5XaWR0aC8vMiwgc2VsZi5IZWlnaHQvLzIsIGludChy YWRpdXMpKQorKyAKKysgCisrICAgICBkZWYgQ2lyY2xlQ29vcmRzKHNlbGYsIHJhZGl1cywgYW5n bGUsIGNlbnRlclgsIGNlbnRlclkpOgorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L2xhYmVsYm9v ay5weSBiL3d4L2xpYi9hZ3cvbGFiZWxib29rLnB5CisraW5kZXggYjcxNmRmM2EyLi5mOGM5Y2Q1 NGQgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9sYWJlbGJvb2sucHkKKysrKysgYi93eC9saWIv YWd3L2xhYmVsYm9vay5weQorK0BAIC0xMzc2LDEzICsxMzc2LDEzIEBAIGRlZiBPblBhaW50KHNl bGYsIGV2ZW50KToKKysgCisrICAgICAgICAgICAgICAgICBpZiBiVXNlWWNvb3JkOgorKyAKKyst ICAgICAgICAgICAgICAgICAgICBpbWdYY29vcmQgPSBzZWxmLl9uSW1nU2l6ZSAvIDIKKystICAg ICAgICAgICAgICAgICAgICBpbWdZY29vcmQgPSAoc3R5bGUgJiBJTkJfU0hPV19PTkxZX0lNQUdF UyBhbmQgW3BvcyArIHNlbGYuX25JbWdTaXplIC8gMl0gb3IgW3BvcyArIGltZ1RvcFBhZGRpbmdd KVswXQorKysgICAgICAgICAgICAgICAgICAgIGltZ1hjb29yZCA9IHNlbGYuX25JbWdTaXplIC8v IDIKKysrICAgICAgICAgICAgICAgICAgICBpbWdZY29vcmQgPSAoc3R5bGUgJiBJTkJfU0hPV19P TkxZX0lNQUdFUyBhbmQgW3BvcyArIHNlbGYuX25JbWdTaXplIC8vIDJdIG9yIFtwb3MgKyBpbWdU b3BQYWRkaW5nXSlbMF0KKysgCisrICAgICAgICAgICAgICAgICBlbHNlOgorKyAKKystICAgICAg ICAgICAgICAgICAgICBpbWdYY29vcmQgPSBwb3MgKyAocmVjdFdpZHRoIC8gMikgLSAoc2VsZi5f bkltZ1NpemUgLyAyKQorKy0gICAgICAgICAgICAgICAgICAgIGltZ1ljb29yZCA9IChzdHlsZSAm IElOQl9TSE9XX09OTFlfSU1BR0VTIGFuZCBbc2VsZi5fbkltZ1NpemUgLyAyXSBvciBbaW1nVG9w UGFkZGluZ10pWzBdCisrKyAgICAgICAgICAgICAgICAgICAgaW1nWGNvb3JkID0gcG9zICsgKHJl Y3RXaWR0aCAvLyAyKSAtIChzZWxmLl9uSW1nU2l6ZSAvLyAyKQorKysgICAgICAgICAgICAgICAg ICAgIGltZ1ljb29yZCA9IChzdHlsZSAmIElOQl9TSE9XX09OTFlfSU1BR0VTIGFuZCBbc2VsZi5f bkltZ1NpemUgLy8gMl0gb3IgW2ltZ1RvcFBhZGRpbmddKVswXQorKyAKKysgICAgICAgICAgICAg ICAgIHNlbGYuX0ltYWdlTGlzdC5EcmF3KHNlbGYuX3BhZ2VzSW5mb1ZlY1tpXS5HZXRJbWFnZUlu ZGV4KCksIGRjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nWGNv b3JkLCBpbWdZY29vcmQsCisrQEAgLTE0MDgsMTUgKzE0MDgsMTUgQEAgZGVmIE9uUGFpbnQoc2Vs ZiwgZXZlbnQpOgorKyAKKysgICAgICAgICAgICAgICAgIGlmIGJVc2VZY29vcmQ6CisrIAorKy0g ICAgICAgICAgICAgICAgICAgIHRleHRPZmZzZXRYID0gKChyZWN0V2lkdGggLSB0ZXh0V2lkdGgp IC8gMiApCisrKyAgICAgICAgICAgICAgICAgICAgdGV4dE9mZnNldFggPSAoKHJlY3RXaWR0aCAt IHRleHRXaWR0aCkgLy8gMiApCisrICAgICAgICAgICAgICAgICAgICAgdGV4dE9mZnNldFkgPSAo bm90IHN0eWxlICYgSU5CX1NIT1dfT05MWV9URVhUICBhbmQgW3BvcyArIHNlbGYuX25JbWdTaXpl ICArIGltZ1RvcFBhZGRpbmcgKyAzXSBvciBcCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFtwb3MgKyAoKHNlbGYuX25JbWdTaXplICogMiAtIHRleHRIZWlnaHQpIC8g MiApXSlbMF0KKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BvcyAr ICgoc2VsZi5fbkltZ1NpemUgKiAyIC0gdGV4dEhlaWdodCkgLy8gMiApXSlbMF0KKysgCisrICAg ICAgICAgICAgICAgICBlbHNlOgorKyAKKystICAgICAgICAgICAgICAgICAgICB0ZXh0T2Zmc2V0 WCA9IChyZWN0V2lkdGggLSB0ZXh0V2lkdGgpIC8gMiAgKyBwb3MgKyBuVGV4dFBhZGRpbmdMZWZ0 CisrKyAgICAgICAgICAgICAgICAgICAgdGV4dE9mZnNldFggPSAocmVjdFdpZHRoIC0gdGV4dFdp ZHRoKSAvLyAyICArIHBvcyArIG5UZXh0UGFkZGluZ0xlZnQKKysgICAgICAgICAgICAgICAgICAg ICB0ZXh0T2Zmc2V0WSA9IChub3Qgc3R5bGUgJiBJTkJfU0hPV19PTkxZX1RFWFQgYW5kIFtzZWxm Ll9uSW1nU2l6ZSArIGltZ1RvcFBhZGRpbmcgKyAzXSBvciBcCisrLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFsoKHNlbGYuX25JbWdTaXplICogMiAtIHRleHRIZWlnaHQp IC8gMiApXSlbMF0KKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWygo c2VsZi5fbkltZ1NpemUgKiAyIC0gdGV4dEhlaWdodCkgLy8gMiApXSlbMF0KKysgCisrICAgICAg ICAgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZCh3eC5TeXN0ZW1TZXR0aW5ncy5HZXRDb2xv dXIod3guU1lTX0NPTE9VUl9XSU5ET1dURVhUKSkKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdU ZXh0KGZpeGVkVGV4dCwgdGV4dE9mZnNldFgsIHRleHRPZmZzZXRZKQorK0BAIC0xNTkxLDggKzE1 OTEsOCBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgICMgRHJhdyBn cmFkaWVudCBpbiB0aGUgYmFja2dyb3VuZCBhcmVhCisrICAgICAgICAgICAgIHN0YXJ0Q29sb3Vy ID0gc2VsZi5fY29sb3Vyc01hcFtJTkJfVEFCX0FSRUFfQkFDS0dST1VORF9DT0xPVVJdCisrICAg ICAgICAgICAgIGVuZENvbG91ciAgID0gQXJ0TWFuYWdlci5HZXQoKS5MaWdodENvbG91cihzZWxm Ll9jb2xvdXJzTWFwW0lOQl9UQUJfQVJFQV9CQUNLR1JPVU5EX0NPTE9VUl0sIDUwKQorKy0gICAg ICAgICAgICBBcnRNYW5hZ2VyLkdldCgpLlBhaW50U3RyYWlnaHRHcmFkaWVudEJveChkYywgd3gu UmVjdCgwLCAwLCBzaXplLnggLyAyLCBzaXplLnkpLCBzdGFydENvbG91ciwgZW5kQ29sb3VyLCBG YWxzZSkKKystICAgICAgICAgICAgQXJ0TWFuYWdlci5HZXQoKS5QYWludFN0cmFpZ2h0R3JhZGll bnRCb3goZGMsIHd4LlJlY3Qoc2l6ZS54IC8gMiwgMCwgc2l6ZS54IC8gMiwgc2l6ZS55KSwgZW5k Q29sb3VyLCBzdGFydENvbG91ciwgRmFsc2UpCisrKyAgICAgICAgICAgIEFydE1hbmFnZXIuR2V0 KCkuUGFpbnRTdHJhaWdodEdyYWRpZW50Qm94KGRjLCB3eC5SZWN0KDAsIDAsIHNpemUueCAvLyAy LCBzaXplLnkpLCBzdGFydENvbG91ciwgZW5kQ29sb3VyLCBGYWxzZSkKKysrICAgICAgICAgICAg QXJ0TWFuYWdlci5HZXQoKS5QYWludFN0cmFpZ2h0R3JhZGllbnRCb3goZGMsIHd4LlJlY3Qoc2l6 ZS54IC8vIDIsIDAsIHNpemUueCAvLyAyLCBzaXplLnkpLCBlbmRDb2xvdXIsIHN0YXJ0Q29sb3Vy LCBGYWxzZSkKKysgCisrICAgICAgICAgZWxzZToKKysgCisrQEAgLTE2MzgsNyArMTYzOCw3IEBA IGRlZiBPblBhaW50KHNlbGYsIGV2ZW50KToKKysgCisrICAgICAgICAgICAgIGlmIHNlbGYuSGFz QUdXRmxhZyhJTkJfU0hPV19PTkxZX1RFWFQpOgorKyAgICAgICAgICAgICAgICAgZm9udCA9IHd4 LlN5c3RlbVNldHRpbmdzLkdldEZvbnQod3guU1lTX0RFRkFVTFRfR1VJX0ZPTlQpCisrLSAgICAg ICAgICAgICAgICBmb250LlNldFBvaW50U2l6ZShmb250LkdldFBvaW50U2l6ZSgpICogc2VsZi5H ZXRQYXJlbnQoKS5HZXRGb250U2l6ZU11bHRpcGxlKCkpCisrKyAgICAgICAgICAgICAgICBmb250 LlNldFBvaW50U2l6ZShpbnQoZm9udC5HZXRQb2ludFNpemUoKSAqIHNlbGYuR2V0UGFyZW50KCku R2V0Rm9udFNpemVNdWx0aXBsZSgpKSkKKysgCisrICAgICAgICAgICAgICAgICBpZiBzZWxmLkdl dFBhcmVudCgpLkdldEZvbnRCb2xkKCk6CisrICAgICAgICAgICAgICAgICAgICAgZm9udC5TZXRX ZWlnaHQod3guRk9OVFdFSUdIVF9CT0xEKQorK0BAIC0xOTU0LDcgKzE5NTQsNyBAQCBkZWYgRHJh d1dlYkhvdmVyKHNlbGYsIGRjLCBjYXB0aW9uLCB4Q29vcmQsIHlDb29yZCwgc2VsZWN0ZWQpOgor KyAKKysgICAgICAgICAjIFJlZHJhdyB0aGUgdGV4dCB3aXRoIHVuZGVybGluZWQgZm9udAorKyAg ICAgICAgIHVuZGVyTGluZWRGb250ID0gd3guU3lzdGVtU2V0dGluZ3MuR2V0Rm9udCh3eC5TWVNf REVGQVVMVF9HVUlfRk9OVCkKKystICAgICAgICB1bmRlckxpbmVkRm9udC5TZXRQb2ludFNpemUo dW5kZXJMaW5lZEZvbnQuR2V0UG9pbnRTaXplKCkgKiBzZWxmLkdldFBhcmVudCgpLkdldEZvbnRT aXplTXVsdGlwbGUoKSkKKysrICAgICAgICB1bmRlckxpbmVkRm9udC5TZXRQb2ludFNpemUoaW50 KHVuZGVyTGluZWRGb250LkdldFBvaW50U2l6ZSgpICogc2VsZi5HZXRQYXJlbnQoKS5HZXRGb250 U2l6ZU11bHRpcGxlKCkpKQorKyAgICAgICAgIGlmIHNlbGYuR2V0UGFyZW50KCkuR2V0Rm9udEJv bGQoKToKKysgICAgICAgICAgICAgdW5kZXJMaW5lZEZvbnQuU2V0V2VpZ2h0KHd4LkZPTlRXRUlH SFRfQk9MRCkKKysgICAgICAgICBlbGlmIHNlbGYuSGFzQUdXRmxhZyhJTkJfQk9MRF9UQUJfU0VM RUNUSU9OKSBhbmQgc2VsZWN0ZWQ6CisrQEAgLTIwNTAsNyArMjA1MCw3IEBAIGRlZiBEcmF3TGFi ZWwoc2VsZiwgZGMsIHJlY3QsIHRleHQsIGJtcCwgaW1nSW5mbywgb3JpZW50YXRpb25MZWZ0LCBp bWdJZHgsIHNlbGVjCisrICAgICAgICAgaW1nUmVjdCA9IHd4LlJlY3QoKnJlY3QpCisrIAorKyAg ICAgICAgIGZvbnQgPSB3eC5TeXN0ZW1TZXR0aW5ncy5HZXRGb250KHd4LlNZU19ERUZBVUxUX0dV SV9GT05UKQorKy0gICAgICAgIGZvbnQuU2V0UG9pbnRTaXplKGZvbnQuR2V0UG9pbnRTaXplKCkg KiBzZWxmLkdldFBhcmVudCgpLkdldEZvbnRTaXplTXVsdGlwbGUoKSkKKysrICAgICAgICBmb250 LlNldFBvaW50U2l6ZShpbnQoZm9udC5HZXRQb2ludFNpemUoKSAqIHNlbGYuR2V0UGFyZW50KCku R2V0Rm9udFNpemVNdWx0aXBsZSgpKSkKKysgCisrICAgICAgICAgaWYgc2VsZi5HZXRQYXJlbnQo KS5HZXRGb250Qm9sZCgpOgorKyAgICAgICAgICAgICBmb250LlNldFdlaWdodCh3eC5GT05UV0VJ R0hUX0JPTEQpCisrQEAgLTIwNjksNyArMjA2OSw3IEBAIGRlZiBEcmF3TGFiZWwoc2VsZiwgZGMs IHJlY3QsIHRleHQsIGJtcCwgaW1nSW5mbywgb3JpZW50YXRpb25MZWZ0LCBpbWdJZHgsIHNlbGVj CisrIAorKyAgICAgICAgICMgVGV4dCBib3VuZGluZyByZWN0YW5nbGUKKysgICAgICAgICB0ZXh0 UmVjdC54ICs9IG5QYWRkaW5nCisrLSAgICAgICAgdGV4dFJlY3QueSA9IHJlY3QueSArIChyZWN0 LmhlaWdodCAtIGgpLzIKKysrICAgICAgICB0ZXh0UmVjdC55ID0gcmVjdC55ICsgKHJlY3QuaGVp Z2h0IC0gaCkvLzIKKysgICAgICAgICB0ZXh0UmVjdC53aWR0aCA9IHJlY3Qud2lkdGggLSAyICog blBhZGRpbmcKKysgCisrICAgICAgICAgaWYgYm1wLklzT2soKSBhbmQgbm90IHNlbGYuSGFzQUdX RmxhZyhJTkJfU0hPV19PTkxZX1RFWFQpOgorK0BAIC0yMDg2LDcgKzIwODYsNyBAQCBkZWYgRHJh d0xhYmVsKHNlbGYsIGRjLCByZWN0LCB0ZXh0LCBibXAsIGltZ0luZm8sIG9yaWVudGF0aW9uTGVm dCwgaW1nSWR4LCBzZWxlYworKyAKKysgICAgICAgICAgICAgaW1nUmVjdC54ICs9IG5QYWRkaW5n CisrICAgICAgICAgICAgIGltZ1JlY3Qud2lkdGggPSBibXAuR2V0V2lkdGgoKQorKy0gICAgICAg ICAgICBpbWdSZWN0LnkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBibXAuR2V0SGVpZ2h0KCkp LzIKKysrICAgICAgICAgICAgaW1nUmVjdC55ID0gcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gYm1w LkdldEhlaWdodCgpKS8vMgorKyAgICAgICAgICAgICBpbWdSZWN0LmhlaWdodCA9IGJtcC5HZXRI ZWlnaHQoKQorKyAKKysgICAgICAgICAjIERyYXcgYm91bmRpbmcgcmVjdGFuZ2xlCisrQEAgLTI0 OTYsNyArMjQ5Niw3IEBAIGRlZiBSZXNpemVUYWJBcmVhKHNlbGYpOgorKyAgICAgICAgICAgICBk YyA9IHd4Lk1lbW9yeURDKCkKKysgICAgICAgICAgICAgZGMuU2VsZWN0T2JqZWN0KHd4LkJpdG1h cCgxLCAxKSkKKysgICAgICAgICAgICAgZm9udCA9IHd4LlN5c3RlbVNldHRpbmdzLkdldEZvbnQo d3guU1lTX0RFRkFVTFRfR1VJX0ZPTlQpCisrLSAgICAgICAgICAgIGZvbnQuU2V0UG9pbnRTaXpl KGZvbnQuR2V0UG9pbnRTaXplKCkqc2VsZi5fZm9udFNpemVNdWx0aXBsZSkKKysrICAgICAgICAg ICAgZm9udC5TZXRQb2ludFNpemUoaW50KGZvbnQuR2V0UG9pbnRTaXplKCkqc2VsZi5fZm9udFNp emVNdWx0aXBsZSkpCisrICAgICAgICAgICAgIGlmIHNlbGYuR2V0Rm9udEJvbGQoKSBvciBhZ3dT dHlsZSAmIElOQl9CT0xEX1RBQl9TRUxFQ1RJT046CisrICAgICAgICAgICAgICAgICBmb250LlNl dFdlaWdodCh3eC5GT05UV0VJR0hUX0JPTEQpCisrICAgICAgICAgICAgIGRjLlNldEZvbnQoZm9u dCkKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9wZWFrbWV0ZXIucHkgYi93eC9saWIvYWd3L3Bl YWttZXRlci5weQorK2luZGV4IDA1NWRiZWY4MS4uYTVmODhhOWQ1IDEwMDY0NAorKy0tLSBhL3d4 L2xpYi9hZ3cvcGVha21ldGVyLnB5CisrKysrIGIvd3gvbGliL2Fndy9wZWFrbWV0ZXIucHkKKytA QCAtNzg0LDcgKzc4NCw3IEBAIGRlZiBEcmF3SG9yekJhbmQoc2VsZiwgZGMsIHJlY3QpOgorKyAg ICAgICAgICAgICAgICAgbWF4V2lkdGggPSBzaXplLngqaG9yekJhbmRzCisrICAgICAgICAgICAg ICAgICBwb2ludHMgPSBbd3guUG9pbnQoKSBmb3IgaSBpbiByYW5nZSgyKV0KKysgICAgICAgICAg ICAgICAgIHBvaW50c1swXS55ID0gcmVjdFByZXYuR2V0VG9wUmlnaHQoKS55IC0geURlY2FsCisr LSAgICAgICAgICAgICAgICBwb2ludHNbMF0ueCA9IHJlY3RQcmV2LkdldEJvdHRvbUxlZnQoKS54 ICsgc2VsZi5fbWV0ZXJEYXRhW3ZlcnRdLl9mYWxsb2ZmKm1heFdpZHRoL3NlbGYuX21heFZhbHVl CisrKyAgICAgICAgICAgICAgICBwb2ludHNbMF0ueCA9IHJlY3RQcmV2LkdldEJvdHRvbUxlZnQo KS54ICsgc2VsZi5fbWV0ZXJEYXRhW3ZlcnRdLl9mYWxsb2ZmKm1heFdpZHRoLy9zZWxmLl9tYXhW YWx1ZQorKyAgICAgICAgICAgICAgICAgcG9pbnRzWzFdLnkgPSByZWN0UHJldi5HZXRCb3R0b21M ZWZ0KCkueSArIHlEZWNhbAorKyAgICAgICAgICAgICAgICAgcG9pbnRzWzFdLnggPSBwb2ludHNb MF0ueAorKyAgICAgICAgICAgICAgICAgZGMuU2V0UGVuKHBlbikKKytkaWZmIC0tZ2l0IGEvd3gv bGliL2Fndy9weWdhdWdlLnB5IGIvd3gvbGliL2Fndy9weWdhdWdlLnB5CisraW5kZXggYmFiNDU5 YTNhLi5iODY1NDQzNmEgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9weWdhdWdlLnB5CisrKysr IGIvd3gvbGliL2Fndy9weWdhdWdlLnB5CisrQEAgLTM0NCw3ICszNDQsNyBAQCBkZWYgT25QYWlu dChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgICAgICBjMSxjMiA9IGdyYWRpZW50CisrICAg ICAgICAgICAgICAgICB3ID0gcmVjdC53aWR0aCAqIChmbG9hdChzZWxmLl92YWx1ZVNvcnRlZFtp XSkgLyBzZWxmLl9yYW5nZSkKKysgICAgICAgICAgICAgICAgIHIgPSBjb3B5LmNvcHkocmVjdCkK KystICAgICAgICAgICAgICAgIHIud2lkdGggPSB3CisrKyAgICAgICAgICAgICAgICByLndpZHRo ID0gaW50KHcpCisrICAgICAgICAgICAgICAgICBkYy5HcmFkaWVudEZpbGxMaW5lYXIociwgYzEs IGMyLCB3eC5FQVNUKQorKyAgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgIGZvciBpLCBjb2xv dXIgaW4gZW51bWVyYXRlKHNlbGYuX2JhckNvbG91clNvcnRlZCk6CisrQEAgLTM1Miw3ICszNTIs NyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgICAgICBkYy5TZXRQ ZW4od3guUGVuKGNvbG91cikpCisrICAgICAgICAgICAgICAgICB3ID0gcmVjdC53aWR0aCAqIChm bG9hdChzZWxmLl92YWx1ZVNvcnRlZFtpXSkgLyBzZWxmLl9yYW5nZSkKKysgICAgICAgICAgICAg ICAgIHIgPSBjb3B5LmNvcHkocmVjdCkKKystICAgICAgICAgICAgICAgIHIud2lkdGggPSB3Cisr KyAgICAgICAgICAgICAgICByLndpZHRoID0gaW50KHcpCisrICAgICAgICAgICAgICAgICBkYy5E cmF3UmVjdGFuZ2xlKHIpCisrIAorKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9yaWJib24v YXJ0X2F1aS5weSBiL3d4L2xpYi9hZ3cvcmliYm9uL2FydF9hdWkucHkKKytpbmRleCBhMWQyNTU4 NDMuLjMxZmVkZjQ4NyAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3JpYmJvbi9hcnRfYXVpLnB5 CisrKysrIGIvd3gvbGliL2Fndy9yaWJib24vYXJ0X2F1aS5weQorK0BAIC0zOTAsNyArMzkwLDcg QEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgICAgICAgICAgICAgZ3JhZF9y ZWN0ID0gd3guUmVjdCgqdGFiLnJlY3QpCisrICAgICAgICAgICAgIGdyYWRfcmVjdC5oZWlnaHQg LT0gNAorKyAgICAgICAgICAgICBncmFkX3JlY3Qud2lkdGggLT0gMQorKy0gICAgICAgICAgICBn cmFkX3JlY3QuaGVpZ2h0IC89IDIKKysrICAgICAgICAgICAgZ3JhZF9yZWN0LmhlaWdodCAvLz0g MgorKyAgICAgICAgICAgICBncmFkX3JlY3QueSA9IGdyYWRfcmVjdC55ICsgdGFiLnJlY3QuaGVp Z2h0IC0gZ3JhZF9yZWN0LmhlaWdodCAtIDEKKysgICAgICAgICAgICAgZGMuU2V0QnJ1c2goc2Vs Zi5fdGFiX2FjdGl2ZV90b3BfYmFja2dyb3VuZF9icnVzaCkKKysgICAgICAgICAgICAgZGMuRHJh d1JlY3RhbmdsZSh0YWIucmVjdC54LCB0YWIucmVjdC55ICsgMywgdGFiLnJlY3Qud2lkdGggLSAx LCBncmFkX3JlY3QueSAtIHRhYi5yZWN0LnkgLSAzKQorK0BAIC00MDEsNyArNDAxLDcgQEAgZGVm IERyYXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgICAgICAgICAgICAgYnRtX3JlY3QgPSB3 eC5SZWN0KCp0YWIucmVjdCkKKysgICAgICAgICAgICAgYnRtX3JlY3QuaGVpZ2h0IC09IDQKKysg ICAgICAgICAgICAgYnRtX3JlY3Qud2lkdGggLT0gMQorKy0gICAgICAgICAgICBidG1fcmVjdC5o ZWlnaHQgLz0gMgorKysgICAgICAgICAgICBidG1fcmVjdC5oZWlnaHQgLy89IDIKKysgICAgICAg ICAgICAgYnRtX3JlY3QueSA9IGJ0bV9yZWN0LnkgKyB0YWIucmVjdC5oZWlnaHQgLSBidG1fcmVj dC5oZWlnaHQgLSAxCisrICAgICAgICAgICAgIGRjLlNldEJydXNoKHNlbGYuX3RhYl9ob3Zlcl9i YWNrZ3JvdW5kX2JydXNoKQorKyAgICAgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGJ0bV9yZWN0 LngsIGJ0bV9yZWN0LnksIGJ0bV9yZWN0LndpZHRoLCBidG1fcmVjdC5oZWlnaHQpCisrQEAgLTQz NCw4ICs0MzQsOCBAQCBkZWYgRHJhd1RhYihzZWxmLCBkYywgd25kLCB0YWIpOgorKyAgICAgICAg ICAgICBpY29uID0gdGFiLnBhZ2UuR2V0SWNvbigpCisrICAgICAgICAgICAgIGlmIHNlbGYuX2Zs YWdzICYgUklCQk9OX0JBUl9TSE9XX1BBR0VfTEFCRUxTID09IDA6CisrICAgICAgICAgICAgICAg ICBpZiBpY29uLklzT2soKToKKystICAgICAgICAgICAgICAgICAgICB4ID0gdGFiLnJlY3QueCAr ICh0YWIucmVjdC53aWR0aCAtIGljb24uR2V0V2lkdGgoKSkgLyAyCisrLSAgICAgICAgICAgICAg ICAgICAgZGMuRHJhd0JpdG1hcChpY29uLCB4LCB0YWIucmVjdC55ICsgMSArICh0YWIucmVjdC5o ZWlnaHQgLSAxIC0gaWNvbi5HZXRIZWlnaHQoKSkgLyAyLCBUcnVlKQorKysgICAgICAgICAgICAg ICAgICAgIHggPSB0YWIucmVjdC54ICsgKHRhYi5yZWN0LndpZHRoIC0gaWNvbi5HZXRXaWR0aCgp KSAvLyAyCisrKyAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChpY29uLCB4LCB0YWIu cmVjdC55ICsgMSArICh0YWIucmVjdC5oZWlnaHQgLSAxIC0gaWNvbi5HZXRIZWlnaHQoKSkgLy8g MiwgVHJ1ZSkKKysgCisrICAgICAgICAgaWYgc2VsZi5fZmxhZ3MgJiBSSUJCT05fQkFSX1NIT1df UEFHRV9MQUJFTFM6CisrICAgICAgICAgICAgIGxhYmVsID0gdGFiLnBhZ2UuR2V0TGFiZWwoKQor K0BAIC00NTAsNyArNDUwLDcgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysg ICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gaWNvbi5HZXRXaWR0aCgpICsgMgorKyAKKysg ICAgICAgICAgICAgICAgIHRleHRfd2lkdGgsIHRleHRfaGVpZ2h0ID0gZGMuR2V0VGV4dEV4dGVu dChsYWJlbCkKKystICAgICAgICAgICAgICAgIHggPSAodGFiLnJlY3Qud2lkdGggLSAyIC0gdGV4 dF93aWR0aCAtIG9mZnNldCkgLyAyCisrKyAgICAgICAgICAgICAgICB4ID0gKHRhYi5yZWN0Lndp ZHRoIC0gMiAtIHRleHRfd2lkdGggLSBvZmZzZXQpIC8vIDIKKysgICAgICAgICAgICAgICAgIGlm IHggPiA4OgorKyAgICAgICAgICAgICAgICAgICAgIHggPSA4CisrICAgICAgICAgICAgICAgICBl bGlmIHggPCAxOgorK0BAIC00NTgsNyArNDU4LDcgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHdu ZCwgdGFiKToKKysgCisrICAgICAgICAgICAgICAgICB3aWR0aCA9IHRhYi5yZWN0LndpZHRoIC0g eCAtIDIKKysgICAgICAgICAgICAgICAgIHggKz0gdGFiLnJlY3QueCArIG9mZnNldAorKy0gICAg ICAgICAgICAgICAgeSA9IHRhYi5yZWN0LnkgKyAodGFiLnJlY3QuaGVpZ2h0IC0gdGV4dF9oZWln aHQpIC8gMgorKysgICAgICAgICAgICAgICAgeSA9IHRhYi5yZWN0LnkgKyAodGFiLnJlY3QuaGVp Z2h0IC0gdGV4dF9oZWlnaHQpIC8vIDIKKysgCisrICAgICAgICAgICAgICAgICBpZiBpY29uLklz T2soKToKKysgICAgICAgICAgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGljb24sIHggLSBvZmZz ZXQsIHRhYi5yZWN0LnkgKyAodGFiLnJlY3QuaGVpZ2h0IC0gaWNvbi5HZXRIZWlnaHQoKSkgLyAy LCBUcnVlKQorK0BAIC04OTIsOCArODkyLDggQEAgZGVmIERyYXdNaW5pbWlzZWRQYW5lbChzZWxm LCBkYywgd25kLCByZWN0LCBiaXRtYXApOgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5fcGFnZV9ob3Zlcl9iYWNrZ3JvdW5kX2dyYWRpZW50X2NvbG91ciwgd3guU09V VEgpCisrIAorKyAgICAgICAgIGlmIGJpdG1hcC5Jc09rKCk6CisrLSAgICAgICAgICAgIGRjLkRy YXdCaXRtYXAoYml0bWFwLCBwcmV2aWV3LnggKyAocHJldmlldy53aWR0aCAtIGJpdG1hcC5HZXRX aWR0aCgpKSAvIDIsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlldy55ICsgKHBy ZXZpZXcuaGVpZ2h0IC0gYml0bWFwLkdldEhlaWdodCgpKSAvIDIsIFRydWUpCisrKyAgICAgICAg ICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwLCBwcmV2aWV3LnggKyAocHJldmlldy53aWR0aCAtIGJp dG1hcC5HZXRXaWR0aCgpKSAvLyAyLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZp ZXcueSArIChwcmV2aWV3LmhlaWdodCAtIGJpdG1hcC5HZXRIZWlnaHQoKSkgLy8gMiwgVHJ1ZSkK KysgCisrIAorKyAgICAgZGVmIERyYXdQYXJ0aWFsUGFuZWxCYWNrZ3JvdW5kKHNlbGYsIGRjLCB3 bmQsIHJlY3QpOgorK0BAIC0xMDI0LDcgKzEwMjQsNyBAQCBkZWYgRHJhd0dhbGxlcnlCdXR0b24o c2VsZiwgZGMsIHJlY3QsIHN0YXRlLCBiaXRtYXBzKToKKysgICAgICAgICAgICAgZGMuRHJhd1Jl Y3RhbmdsZShyZWR1Y2VkX3JlY3QueCwgcmVkdWNlZF9yZWN0LnksIHJlZHVjZWRfcmVjdC53aWR0 aCwgcmVkdWNlZF9yZWN0LmhlaWdodCkKKysgICAgICAgICAgICAgYnRuX2JpdG1hcCA9IGJpdG1h cHNbM10KKysgCisrLSAgICAgICAgZGMuRHJhd0JpdG1hcChidG5fYml0bWFwLCByZWR1Y2VkX3Jl Y3QueCArIHJlZHVjZWRfcmVjdC53aWR0aCAvIDIgLSAyLCAocmVjdC55ICsgcmVjdC5oZWlnaHQg LyAyKSAtIDIsIFRydWUpCisrKyAgICAgICAgZGMuRHJhd0JpdG1hcChidG5fYml0bWFwLCByZWR1 Y2VkX3JlY3QueCArIHJlZHVjZWRfcmVjdC53aWR0aCAvLyAyIC0gMiwgKHJlY3QueSArIHJlY3Qu aGVpZ2h0IC8vIDIpIC0gMiwgVHJ1ZSkKKysgCisrIAorKyAgICAgZGVmIERyYXdHYWxsZXJ5SXRl bUJhY2tncm91bmQoc2VsZiwgZGMsIHduZCwgcmVjdCwgaXRlbSk6CisrQEAgLTEyNzcsNyArMTI3 Nyw3IEBAIGRlZiBEcmF3VG9vbChzZWxmLCBkYywgd25kLCByZWN0LCBiaXRtYXAsIGtpbmQsIHN0 YXRlKToKKysgICAgICAgICAgICAgaWYgaXNfc3BsaXRfaHlicmlkOgorKyAgICAgICAgICAgICAg ICAgZGMuRHJhd0xpbmUocmVjdC54ICsgYXZhaWxfd2lkdGggKyAxLCByZWN0LnksIHJlY3QueCAr IGF2YWlsX3dpZHRoICsgMSwgcmVjdC55ICsgcmVjdC5oZWlnaHQpCisrIAorKy0gICAgICAgICAg ICBkYy5EcmF3Qml0bWFwKHNlbGYuX3Rvb2xiYXJfZHJvcF9iaXRtYXAsIGJnX3JlY3QueCArIGF2 YWlsX3dpZHRoICsgMiwgYmdfcmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0IC8gMikgLSAyLCBUcnVl KQorKysgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKHNlbGYuX3Rvb2xiYXJfZHJvcF9iaXRtYXAs IGJnX3JlY3QueCArIGF2YWlsX3dpZHRoICsgMiwgYmdfcmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0 IC8vIDIpIC0gMiwgVHJ1ZSkKKysgCisrLSAgICAgICAgZGMuRHJhd0JpdG1hcChiaXRtYXAsIGJn X3JlY3QueCArIChhdmFpbF93aWR0aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAvIDIsIGJnX3JlY3Qu eSArIChiZ19yZWN0LmhlaWdodCAtIGJpdG1hcC5HZXRIZWlnaHQoKSkgLyAyLCBUcnVlKQorKysg ICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwLCBiZ19yZWN0LnggKyAoYXZhaWxfd2lkdGggLSBi aXRtYXAuR2V0V2lkdGgoKSkgLy8gMiwgYmdfcmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0IC0gYml0 bWFwLkdldEhlaWdodCgpKSAvLyAyLCBUcnVlKQorKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fn dy9yaWJib24vYXJ0X2ludGVybmFsLnB5IGIvd3gvbGliL2Fndy9yaWJib24vYXJ0X2ludGVybmFs LnB5CisraW5kZXggNGE4ZGM3Y2UwLi43OGU4ZjNmZTQgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fn dy9yaWJib24vYXJ0X2ludGVybmFsLnB5CisrKysrIGIvd3gvbGliL2Fndy9yaWJib24vYXJ0X2lu dGVybmFsLnB5CisrQEAgLTMyLDkgKzMyLDkgQEAgZGVmIFJpYmJvbkludGVycG9sYXRlQ29sb3Vy KHN0YXJ0X2NvbG91ciwgZW5kX2NvbG91ciwgcG9zaXRpb24sIHN0YXJ0X3Bvc2l0aW9uLAorKyAg ICAgciA9IGVuZF9jb2xvdXIuUmVkKCkgLSBzdGFydF9jb2xvdXIuUmVkKCkKKysgICAgIGcgPSBl bmRfY29sb3VyLkdyZWVuKCkgLSBzdGFydF9jb2xvdXIuR3JlZW4oKQorKyAgICAgYiA9IGVuZF9j b2xvdXIuQmx1ZSgpIC0gc3RhcnRfY29sb3VyLkJsdWUoKQorKy0gICAgciA9IHN0YXJ0X2NvbG91 ci5SZWQoKSAgICsgKCgociAqIHBvc2l0aW9uICogMTAwKSAvIGVuZF9wb3NpdGlvbikgLyAxMDAp CisrLSAgICBnID0gc3RhcnRfY29sb3VyLkdyZWVuKCkgKyAoKChnICogcG9zaXRpb24gKiAxMDAp IC8gZW5kX3Bvc2l0aW9uKSAvIDEwMCkKKystICAgIGIgPSBzdGFydF9jb2xvdXIuQmx1ZSgpICAr ICgoKGIgKiBwb3NpdGlvbiAqIDEwMCkgLyBlbmRfcG9zaXRpb24pIC8gMTAwKQorKysgICAgciA9 IHN0YXJ0X2NvbG91ci5SZWQoKSAgICsgKCgociAqIHBvc2l0aW9uICogMTAwKSAvLyBlbmRfcG9z aXRpb24pIC8vIDEwMCkKKysrICAgIGcgPSBzdGFydF9jb2xvdXIuR3JlZW4oKSArICgoKGcgKiBw b3NpdGlvbiAqIDEwMCkgLy8gZW5kX3Bvc2l0aW9uKSAvLyAxMDApCisrKyAgICBiID0gc3RhcnRf Y29sb3VyLkJsdWUoKSAgKyAoKChiICogcG9zaXRpb24gKiAxMDApIC8vIGVuZF9wb3NpdGlvbikg Ly8gMTAwKQorKyAKKysgICAgIHJldHVybiB3eC5Db2xvdXIociwgZywgYikKKysgCisrQEAgLTYx LDkgKzYxLDkgQEAgZGVmIFJpYmJvbkRyYXdQYXJhbGxlbEdyYWRpZW50TGluZXMoZGMsIG5saW5l cywgbGluZV9vcmlnaW5zLCBzdGVweCwgc3RlcHksIG51bXMKKysgICAgIGJkID0gZW5kX2NvbG91 ci5CbHVlKCkgLSBzdGFydF9jb2xvdXIuQmx1ZSgpCisrIAorKyAgICAgZm9yIHN0ZXAgaW4gcmFu Z2UobnVtc3RlcHMpOgorKy0gICAgICAgIHIgPSBzdGFydF9jb2xvdXIuUmVkKCkgKyAoKChzdGVw KnJkKjEwMCkvbnVtc3RlcHMpLzEwMCkKKystICAgICAgICBnID0gc3RhcnRfY29sb3VyLkdyZWVu KCkgKyAoKChzdGVwKmdkKjEwMCkvbnVtc3RlcHMpLzEwMCkKKystICAgICAgICBiID0gc3RhcnRf Y29sb3VyLkJsdWUoKSArICgoKHN0ZXAqYmQqMTAwKS9udW1zdGVwcykvMTAwKQorKysgICAgICAg IHIgPSBzdGFydF9jb2xvdXIuUmVkKCkgKyAoKChzdGVwKnJkKjEwMCkvL251bXN0ZXBzKS8vMTAw KQorKysgICAgICAgIGcgPSBzdGFydF9jb2xvdXIuR3JlZW4oKSArICgoKHN0ZXAqZ2QqMTAwKS8v bnVtc3RlcHMpLy8xMDApCisrKyAgICAgICAgYiA9IHN0YXJ0X2NvbG91ci5CbHVlKCkgKyAoKChz dGVwKmJkKjEwMCkvL251bXN0ZXBzKS8vMTAwKQorKyAKKysgICAgICAgICBwID0gd3guUGVuKHd4 LkNvbG91cihyLCBnLCBiKSkKKysgICAgICAgICBkYy5TZXRQZW4ocCkKKytkaWZmIC0tZ2l0IGEv d3gvbGliL2Fndy9yaWJib24vYXJ0X21zdy5weSBiL3d4L2xpYi9hZ3cvcmliYm9uL2FydF9tc3cu cHkKKytpbmRleCBlNzMxN2Q1OWIuLjAwYzNkZmUyYiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3 L3JpYmJvbi9hcnRfbXN3LnB5CisrKysrIGIvd3gvbGliL2Fndy9yaWJib24vYXJ0X21zdy5weQor K0BAIC05ODIsNyArOTgyLDcgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysg ICAgICAgICAgICAgICAgIGJhY2tncm91bmQud2lkdGggLT0gNAorKyAgICAgICAgICAgICAgICAg YmFja2dyb3VuZC5oZWlnaHQgLT0gMworKyAgICAgICAgICAgICAgICAgaCA9IGJhY2tncm91bmQu aGVpZ2h0CisrLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLmhlaWdodCAvPSAyCisrKyAgICAg ICAgICAgICAgICBiYWNrZ3JvdW5kLmhlaWdodCAvLz0gMgorKyAgICAgICAgICAgICAgICAgZGMu R3JhZGllbnRGaWxsTGluZWFyKGJhY2tncm91bmQsIHNlbGYuX3RhYl9ob3Zlcl9iYWNrZ3JvdW5k X3RvcF9jb2xvdXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fdGFiX2hvdmVyX2JhY2tncm91bmRfdG9wX2dyYWRpZW50X2NvbG91ciwgd3guU09VVEgpCisr IAorK0BAIC0xMDI0LDkgKzEwMjQsOSBAQCBkZWYgRHJhd1RhYihzZWxmLCBkYywgd25kLCB0YWIp OgorKyAgICAgICAgICAgICBpZiBpY29uLklzT2soKToKKysgICAgICAgICAgICAgICAgIHggPSB0 YWIucmVjdC54ICsgNAorKyAgICAgICAgICAgICAgICAgaWYgc2VsZi5fZmxhZ3MgJiBSSUJCT05f QkFSX1NIT1dfUEFHRV9MQUJFTFMgPT0gMDoKKystICAgICAgICAgICAgICAgICAgICB4ID0gdGFi LnJlY3QueCArICh0YWIucmVjdC53aWR0aCAtIGljb24uR2V0V2lkdGgoKSkgLyAyCisrKyAgICAg ICAgICAgICAgICAgICAgeCA9IHRhYi5yZWN0LnggKyAodGFiLnJlY3Qud2lkdGggLSBpY29uLkdl dFdpZHRoKCkpIC8vIDIKKysgCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGljb24s IHgsIHRhYi5yZWN0LnkgKyAxICsgKHRhYi5yZWN0LmhlaWdodCAtIDEgLSBpY29uLkdldEhlaWdo dCgpKSAvIDIsIFRydWUpCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGljb24sIHgs IHRhYi5yZWN0LnkgKyAxICsgKHRhYi5yZWN0LmhlaWdodCAtIDEgLSBpY29uLkdldEhlaWdodCgp KSAvLyAyLCBUcnVlKQorKyAKKysgICAgICAgICBpZiBzZWxmLl9mbGFncyAmIFJJQkJPTl9CQVJf U0hPV19QQUdFX0xBQkVMUzoKKysgICAgICAgICAgICAgbGFiZWwgPSB0YWIucGFnZS5HZXRMYWJl bCgpCisrQEAgLTEwNDMsMTMgKzEwNDMsMTMgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwg dGFiKToKKysgICAgICAgICAgICAgICAgICAgICB4ICs9IDMgKyB0YWIucGFnZS5HZXRJY29uKCku R2V0V2lkdGgoKQorKyAgICAgICAgICAgICAgICAgICAgIHdpZHRoIC09IDMgKyB0YWIucGFnZS5H ZXRJY29uKCkuR2V0V2lkdGgoKQorKyAKKystICAgICAgICAgICAgICAgIHkgPSB0YWIucmVjdC55 ICsgKHRhYi5yZWN0LmhlaWdodCAtIHRleHRfaGVpZ2h0KSAvIDIKKysrICAgICAgICAgICAgICAg IHkgPSB0YWIucmVjdC55ICsgKHRhYi5yZWN0LmhlaWdodCAtIHRleHRfaGVpZ2h0KSAvLyAyCisr IAorKyAgICAgICAgICAgICAgICAgaWYgd2lkdGggPD0gdGV4dF93aWR0aDoKKysgICAgICAgICAg ICAgICAgICAgICBkYy5TZXRDbGlwcGluZ1JlZ2lvbih4LCB0YWIucmVjdC55LCB3aWR0aCwgdGFi LnJlY3QuaGVpZ2h0KQorKyAgICAgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCB4 LCB5KQorKyAgICAgICAgICAgICAgICAgZWxzZToKKystICAgICAgICAgICAgICAgICAgICBkYy5E cmF3VGV4dChsYWJlbCwgeCArICh3aWR0aCAtIHRleHRfd2lkdGgpIC8gMiArIDEsIHkpCisrKyAg ICAgICAgICAgICAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsIHggKyAod2lkdGggLSB0ZXh0X3dp ZHRoKSAvLyAyICsgMSwgeSkKKysgCisrIAorKyAgICAgZGVmIERyYXdUYWJTZXBhcmF0b3Ioc2Vs ZiwgZGMsIHduZCwgcmVjdCwgdmlzaWJpbGl0eSk6CisrQEAgLTEwOTMsNyArMTA5Myw3IEBAIGRl ZiBSZWFsbHlEcmF3VGFiU2VwYXJhdG9yKHNlbGYsIHduZCwgcmVjdCwgdmlzaWJpbGl0eSk6Cisr ICAgICAgICAgZGMgPSB3eC5NZW1vcnlEQyhzZWxmLl9jYWNoZWRfdGFiX3NlcGFyYXRvcikKKysg ICAgICAgICBzZWxmLkRyYXdUYWJDdHJsQmFja2dyb3VuZChkYywgd25kLCByZWN0KQorKyAKKyst ICAgICAgICB4ID0gcmVjdC54ICsgcmVjdC53aWR0aCAvIDIKKysrICAgICAgICB4ID0gcmVjdC54 ICsgcmVjdC53aWR0aCAvLyAyCisrICAgICAgICAgaCA9IGZsb2F0KHJlY3QuaGVpZ2h0IC0gMSkK KysgCisrICAgICAgICAgcjEgPSBzZWxmLl90YWJfY3RybF9iYWNrZ3JvdW5kX2JydXNoLkdldENv bG91cigpLlJlZCgpICogKDEuMCAtIHZpc2liaWxpdHkpICsgMC41CisrQEAgLTExNDYsNyArMTE0 Niw3IEBAIGRlZiBEcmF3UGFydGlhbFBhZ2VCYWNrZ3JvdW5kMShzZWxmLCBkYywgd25kLCByZWN0 LCBwYWdlLCBvZmZzZXQsIGhvdmVyZWQ9RmFsc2UpCisrIAorKyAgICAgICAgICMgdXBwZXJfcmVj dCwgbG93ZXJfcmVjdCwgcGFpbnRfcmVjdCBhcmUgYWxsIGluIHBhZ2UgY28tb3JkaW5hdGVzCisr ICAgICAgICAgdXBwZXJfcmVjdCA9IHd4LlJlY3QoKmJhY2tncm91bmQpCisrLSAgICAgICAgdXBw ZXJfcmVjdC5oZWlnaHQgLz0gNQorKysgICAgICAgIHVwcGVyX3JlY3QuaGVpZ2h0IC8vPSA1Cisr IAorKyAgICAgICAgIGxvd2VyX3JlY3QgPSB3eC5SZWN0KCpiYWNrZ3JvdW5kKQorKyAgICAgICAg IGxvd2VyX3JlY3QueSArPSB1cHBlcl9yZWN0LmhlaWdodAorK0BAIC0xMjI5LDcgKzEyMjksNyBA QCBkZWYgRHJhd1BhZ2VCYWNrZ3JvdW5kKHNlbGYsIGRjLCB3bmQsIHJlY3QpOgorKyAgICAgICAg IGJhY2tncm91bmQud2lkdGggLT0gNAorKyAgICAgICAgIGJhY2tncm91bmQuaGVpZ2h0IC09IDIK KysgCisrLSAgICAgICAgYmFja2dyb3VuZC5oZWlnaHQgLz0gNQorKysgICAgICAgIGJhY2tncm91 bmQuaGVpZ2h0IC8vPSA1CisrICAgICAgICAgZGMuR3JhZGllbnRGaWxsTGluZWFyKGJhY2tncm91 bmQsIHNlbGYuX3BhZ2VfYmFja2dyb3VuZF90b3BfY29sb3VyLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLl9wYWdlX2JhY2tncm91bmRfdG9wX2dyYWRpZW50X2NvbG91ciwg d3guU09VVEgpCisrIAorK0BAIC0xNDkzLDEwICsxNDkzLDEwIEBAIGRlZiBEcmF3UGFuZWxCYWNr Z3JvdW5kKHNlbGYsIGRjLCB3bmQsIHJlY3QpOgorKyAKKysgICAgICAgICBpZiBjbGlwX2xhYmVs OgorKyAgICAgICAgICAgICBjbGlwID0gd3guRENDbGlwcGVyKGRjLCBsYWJlbF9yZWN0KQorKy0g ICAgICAgICAgICBkYy5EcmF3VGV4dChsYWJlbCwgbGFiZWxfcmVjdC54LCBsYWJlbF9yZWN0Lnkg KyAobGFiZWxfcmVjdC5HZXRIZWlnaHQoKSAtIGxhYmVsX3NpemUuR2V0SGVpZ2h0KCkpIC8gMikK KysrICAgICAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsIGxhYmVsX3JlY3QueCwgbGFiZWxfcmVj dC55ICsgKGxhYmVsX3JlY3QuR2V0SGVpZ2h0KCkgLSBsYWJlbF9zaXplLkdldEhlaWdodCgpKSAv LyAyKQorKyAgICAgICAgIGVsc2U6CisrLSAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCBs YWJlbF9yZWN0LnggKyAobGFiZWxfcmVjdC5HZXRXaWR0aCgpIC0gbGFiZWxfc2l6ZS5HZXRXaWR0 aCgpKSAvIDIsCisrLSAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsX3JlY3QueSArIChsYWJl bF9yZWN0LkdldEhlaWdodCgpIC0gbGFiZWxfc2l6ZS5HZXRIZWlnaHQoKSkgLyAyKQorKysgICAg ICAgICAgICBkYy5EcmF3VGV4dChsYWJlbCwgbGFiZWxfcmVjdC54ICsgKGxhYmVsX3JlY3QuR2V0 V2lkdGgoKSAtIGxhYmVsX3NpemUuR2V0V2lkdGgoKSkgLy8gMiwKKysrICAgICAgICAgICAgICAg ICAgICAgICAgbGFiZWxfcmVjdC55ICsgKGxhYmVsX3JlY3QuR2V0SGVpZ2h0KCkgLSBsYWJlbF9z aXplLkdldEhlaWdodCgpKSAvLyAyKQorKyAKKysgICAgICAgICBpZiBoYXNfZXh0X2J1dHRvbjoK KysgICAgICAgICAgICAgaWYgd25kLklzRXh0QnV0dG9uSG92ZXJlZCgpOgorK0BAIC0xNTc3LDcg KzE1NzcsNyBAQCBkZWYgRHJhd0dhbGxlcnlCYWNrZ3JvdW5kQ29tbW9uKHNlbGYsIGRjLCB3bmQs IHJlY3QpOgorKyAgICAgICAgICAgICAjIERpdmlkZXIgYmV0d2VlbiBpdGVtcyBhbmQgYnV0dG9u cworKyAgICAgICAgICAgICBkYy5EcmF3TGluZShyZWN0LngsIHJlY3QueSArIHJlY3QuaGVpZ2h0 IC0gMTUsIHJlY3QueCArIHJlY3Qud2lkdGgsIHJlY3QueSArIHJlY3QuaGVpZ2h0IC0gMTUpCisr IAorKy0gICAgICAgICAgICB1cF9idG4gPSB3eC5SZWN0KHJlY3QueCwgcmVjdC55ICsgcmVjdC5o ZWlnaHQgLSAxNSwgcmVjdC53aWR0aCAvIDMsIDE1KQorKysgICAgICAgICAgICB1cF9idG4gPSB3 eC5SZWN0KHJlY3QueCwgcmVjdC55ICsgcmVjdC5oZWlnaHQgLSAxNSwgcmVjdC53aWR0aCAvLyAz LCAxNSkKKysgICAgICAgICAgICAgZG93bl9idG4gPSB3eC5SZWN0KHVwX2J0bi5HZXRSaWdodCgp ICsgMSwgdXBfYnRuLkdldFRvcCgpLCB1cF9idG4uR2V0V2lkdGgoKSwgdXBfYnRuLkdldEhlaWdo dCgpKQorKyAgICAgICAgICAgICBkYy5EcmF3TGluZShkb3duX2J0bi5HZXRMZWZ0KCksIGRvd25f YnRuLkdldFRvcCgpLCBkb3duX2J0bi5HZXRMZWZ0KCksIGRvd25fYnRuLkdldEJvdHRvbSgpKQor KyAgICAgICAgICAgICBleHRfYnRuID0gd3guUmVjdChkb3duX2J0bi5HZXRSaWdodCgpICsgMSwg dXBfYnRuLkdldFRvcCgpLCByZWN0LndpZHRoIC0gdXBfYnRuLkdldFdpZHRoKCkgLSBkb3duX2J0 bi5HZXRXaWR0aCgpIC0gMSwgdXBfYnRuLkdldEhlaWdodCgpKQorK0BAIC0xNTg3LDcgKzE1ODcs NyBAQCBkZWYgRHJhd0dhbGxlcnlCYWNrZ3JvdW5kQ29tbW9uKHNlbGYsIGRjLCB3bmQsIHJlY3Qp OgorKyAgICAgICAgICAgICAjIERpdmlkZXIgYmV0d2VlbiBpdGVtcyBhbmQgYnV0dG9ucworKyAg ICAgICAgICAgICBkYy5EcmF3TGluZShyZWN0LnggKyByZWN0LndpZHRoIC0gMTUsIHJlY3QueSwg cmVjdC54ICsgcmVjdC53aWR0aCAtIDE1LCByZWN0LnkgKyByZWN0LmhlaWdodCkKKysgCisrLSAg ICAgICAgICAgIHVwX2J0biA9IHd4LlJlY3QocmVjdC54ICsgcmVjdC53aWR0aCAtIDE1LCByZWN0 LnksIDE1LCByZWN0LmhlaWdodCAvIDMpCisrKyAgICAgICAgICAgIHVwX2J0biA9IHd4LlJlY3Qo cmVjdC54ICsgcmVjdC53aWR0aCAtIDE1LCByZWN0LnksIDE1LCByZWN0LmhlaWdodCAvLyAzKQor KyAgICAgICAgICAgICBkb3duX2J0biA9IHd4LlJlY3QodXBfYnRuLkdldExlZnQoKSwgdXBfYnRu LkdldEJvdHRvbSgpICsgMSwgdXBfYnRuLkdldFdpZHRoKCksIHVwX2J0bi5HZXRIZWlnaHQoKSkK KysgICAgICAgICAgICAgZGMuRHJhd0xpbmUoZG93bl9idG4uR2V0TGVmdCgpLCBkb3duX2J0bi5H ZXRUb3AoKSwgZG93bl9idG4uR2V0UmlnaHQoKSwgZG93bl9idG4uR2V0VG9wKCkpCisrICAgICAg ICAgICAgIGV4dF9idG4gPSB3eC5SZWN0KHVwX2J0bi5HZXRMZWZ0KCksIGRvd25fYnRuLkdldEJv dHRvbSgpICsgMSwgdXBfYnRuLkdldFdpZHRoKCksIHJlY3QuaGVpZ2h0IC0gdXBfYnRuLkdldEhl aWdodCgpIC0gZG93bl9idG4uR2V0SGVpZ2h0KCkgLSAxKQorK0BAIC0xNjMzLDE0ICsxNjMzLDE0 IEBAIGRlZiBEcmF3R2FsbGVyeUJ1dHRvbihzZWxmLCBkYywgcmVjdCwgc3RhdGUsIGJpdG1hcHMp OgorKyAKKysgICAgICAgICBkYy5TZXRQZW4od3guVFJBTlNQQVJFTlRfUEVOKQorKyAgICAgICAg IGRjLlNldEJydXNoKGJ0bl90b3BfYnJ1c2gpCisrLSAgICAgICAgZGMuRHJhd1JlY3RhbmdsZShy ZWN0LngsIHJlY3QueSwgcmVjdC53aWR0aCwgcmVjdC5oZWlnaHQgLyAyKQorKysgICAgICAgIGRj LkRyYXdSZWN0YW5nbGUocmVjdC54LCByZWN0LnksIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0IC8v IDIpCisrIAorKyAgICAgICAgIGxvd2VyID0gd3guUmVjdCgqcmVjdCkKKystICAgICAgICBsb3dl ci5oZWlnaHQgPSAobG93ZXIuaGVpZ2h0ICsgMSkgLyAyCisrKyAgICAgICAgbG93ZXIuaGVpZ2h0 ID0gKGxvd2VyLmhlaWdodCArIDEpIC8vIDIKKysgICAgICAgICBsb3dlci55ICs9IHJlY3QuaGVp Z2h0IC0gbG93ZXIuaGVpZ2h0CisrICAgICAgICAgZGMuR3JhZGllbnRGaWxsTGluZWFyKGxvd2Vy LCBidG5fY29sb3VyLCBidG5fZ3JhZF9jb2xvdXIsIHd4LlNPVVRIKQorKyAKKystICAgICAgICBk Yy5EcmF3Qml0bWFwKGJ0bl9iaXRtYXAsIHJlY3QueCArIHJlY3Qud2lkdGggLyAyIC0gMiwgbG93 ZXIueSAtIDIsIFRydWUpCisrKyAgICAgICAgZGMuRHJhd0JpdG1hcChidG5fYml0bWFwLCByZWN0 LnggKyByZWN0LndpZHRoIC8vIDIgLSAyLCBsb3dlci55IC0gMiwgVHJ1ZSkKKysgCisrIAorKyAg ICAgZGVmIERyYXdHYWxsZXJ5SXRlbUJhY2tncm91bmQoc2VsZiwgZGMsIHduZCwgcmVjdCwgaXRl bSk6CisrQEAgLTE2OTEsNyArMTY5MSw3IEBAIGRlZiBEcmF3R2FsbGVyeUl0ZW1CYWNrZ3JvdW5k KHNlbGYsIGRjLCB3bmQsIHJlY3QsIGl0ZW0pOgorKyAgICAgICAgIHVwcGVyLnggKz0gMQorKyAg ICAgICAgIHVwcGVyLndpZHRoIC09IDIKKysgICAgICAgICB1cHBlci55ICs9IDEKKystICAgICAg ICB1cHBlci5oZWlnaHQgLz0gMworKysgICAgICAgIHVwcGVyLmhlaWdodCAvLz0gMworKyAgICAg ICAgIGRjLlNldFBlbih3eC5UUkFOU1BBUkVOVF9QRU4pCisrICAgICAgICAgZGMuU2V0QnJ1c2go dG9wX2JydXNoKQorKyAgICAgICAgIGRjLkRyYXdSZWN0YW5nbGUodXBwZXIueCwgdXBwZXIueSwg dXBwZXIud2lkdGgsIHVwcGVyLmhlaWdodCkKKytAQCAtMTc2MCw3ICsxNzYwLDcgQEAgZGVmIERy YXdNaW5pbWlzZWRQYW5lbChzZWxmLCBkYywgd25kLCByZWN0LCBiaXRtYXApOgorKyAgICAgICAg ICAgICBjbGllbnRfcmVjdC54ICs9IDEKKysgICAgICAgICAgICAgY2xpZW50X3JlY3Qud2lkdGgg LT0gMgorKyAgICAgICAgICAgICBjbGllbnRfcmVjdC55ICs9IDEKKystICAgICAgICAgICAgY2xp ZW50X3JlY3QuaGVpZ2h0ID0gKHJlY3QueSArIHJlY3QuaGVpZ2h0IC8gNSkgLSBjbGllbnRfcmVj dC54CisrKyAgICAgICAgICAgIGNsaWVudF9yZWN0LmhlaWdodCA9IChyZWN0LnkgKyByZWN0Lmhl aWdodCAvLyA1KSAtIGNsaWVudF9yZWN0LngKKysgICAgICAgICAgICAgZGMuR3JhZGllbnRGaWxs TGluZWFyKGNsaWVudF9yZWN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5fcGFuZWxfYWN0aXZlX2JhY2tncm91bmRfdG9wX2NvbG91ciwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BhbmVsX2FjdGl2ZV9iYWNrZ3JvdW5kX3RvcF9n cmFkaWVudF9jb2xvdXIsIHd4LlNPVVRIKQorK0BAIC0xNzg1LDcgKzE3ODUsNyBAQCBkZWYgRHJh d01pbmltaXNlZFBhbmVsKHNlbGYsIGRjLCB3bmQsIHJlY3QsIGJpdG1hcCk6CisrICAgICAgICAg ZGMuU2V0UGVuKHd4LlRSQU5TUEFSRU5UX1BFTikKKysgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xl KHByZXZpZXcueCArIDEsIHByZXZpZXcueSArIHByZXZpZXcuaGVpZ2h0IC0gOCwgcHJldmlldy53 aWR0aCAtIDIsIDcpCisrIAorKy0gICAgICAgIG1pZF9wb3MgPSByZWN0LnkgKyByZWN0LmhlaWdo dCAvIDUgLSBwcmV2aWV3LnkKKysrICAgICAgICBtaWRfcG9zID0gcmVjdC55ICsgcmVjdC5oZWln aHQgLy8gNSAtIHByZXZpZXcueQorKyAKKysgICAgICAgICBpZiBtaWRfcG9zIDwgMCBvciBtaWRf cG9zID49IHByZXZpZXcuaGVpZ2h0OgorKyAgICAgICAgICAgICBmdWxsX3JlY3QgPSB3eC5SZWN0 KCpwcmV2aWV3KQorK0BAIC0xODE2LDggKzE4MTYsOCBAQCBkZWYgRHJhd01pbmltaXNlZFBhbmVs KHNlbGYsIGRjLCB3bmQsIHJlY3QsIGJpdG1hcCk6CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLl9wYWdlX2hvdmVyX2JhY2tncm91bmRfZ3JhZGllbnRfY29sb3VyLCB3 eC5TT1VUSCkKKysgCisrICAgICAgICAgaWYgYml0bWFwLklzT2soKToKKystICAgICAgICAgICAg ZGMuRHJhd0JpdG1hcChiaXRtYXAsIHByZXZpZXcueCArIChwcmV2aWV3LndpZHRoIC0gYml0bWFw LkdldFdpZHRoKCkpIC8gMiwKKystICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3Lnkg KyAocHJldmlldy5oZWlnaHQgLSA3IC0gYml0bWFwLkdldEhlaWdodCgpKSAvIDIsIFRydWUpCisr KyAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwLCBwcmV2aWV3LnggKyAocHJldmlldy53 aWR0aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAvLyAyLAorKysgICAgICAgICAgICAgICAgICAgICAg ICAgIHByZXZpZXcueSArIChwcmV2aWV3LmhlaWdodCAtIDcgLSBiaXRtYXAuR2V0SGVpZ2h0KCkp IC8vIDIsIFRydWUpCisrIAorKyAgICAgICAgIHNlbGYuRHJhd1BhbmVsQm9yZGVyKGRjLCBwcmV2 aWV3LCBzZWxmLl9wYW5lbF9ib3JkZXJfcGVuLCBzZWxmLl9wYW5lbF9ib3JkZXJfZ3JhZGllbnRf cGVuKQorKyAgICAgICAgIHNlbGYuRHJhd1BhbmVsQm9yZGVyKGRjLCB0cnVlX3JlY3QsIHNlbGYu X3BhbmVsX21pbmltaXNlZF9ib3JkZXJfcGVuLCBzZWxmLl9wYW5lbF9taW5pbWlzZWRfYm9yZGVy X2dyYWRpZW50X3BlbikKKytAQCAtMTgyOSwyMCArMTgyOSwyMCBAQCBkZWYgRHJhd01pbmltaXNl ZFBhbmVsQ29tbW9uKHNlbGYsIGRjLCB3bmQsIHRydWVfcmVjdCk6CisrIAorKyAgICAgICAgIGlm IHNlbGYuX2ZsYWdzICYgUklCQk9OX0JBUl9GTE9XX1ZFUlRJQ0FMOgorKyAgICAgICAgICAgICBw cmV2aWV3LnggPSB0cnVlX3JlY3QueCArIDQKKystICAgICAgICAgICAgcHJldmlldy55ID0gdHJ1 ZV9yZWN0LnkgKyAodHJ1ZV9yZWN0LmhlaWdodCAtIHByZXZpZXcuaGVpZ2h0KSAvIDIKKysrICAg ICAgICAgICAgcHJldmlldy55ID0gdHJ1ZV9yZWN0LnkgKyAodHJ1ZV9yZWN0LmhlaWdodCAtIHBy ZXZpZXcuaGVpZ2h0KSAvLyAyCisrICAgICAgICAgZWxzZToKKystICAgICAgICAgICAgcHJldmll dy54ID0gdHJ1ZV9yZWN0LnggKyAodHJ1ZV9yZWN0LndpZHRoIC0gcHJldmlldy53aWR0aCkgLyAy CisrKyAgICAgICAgICAgIHByZXZpZXcueCA9IHRydWVfcmVjdC54ICsgKHRydWVfcmVjdC53aWR0 aCAtIHByZXZpZXcud2lkdGgpIC8vIDIKKysgICAgICAgICAgICAgcHJldmlldy55ID0gdHJ1ZV9y ZWN0LnkgKyA0CisrIAorKyAgICAgICAgIGRjLlNldEZvbnQoc2VsZi5fcGFuZWxfbGFiZWxfZm9u dCkKKysgICAgICAgICBsYWJlbF93aWR0aCwgbGFiZWxfaGVpZ2h0ID0gZGMuR2V0VGV4dEV4dGVu dCh3bmQuR2V0TGFiZWwoKSkKKysgCisrLSAgICAgICAgeHBvcyA9IHRydWVfcmVjdC54ICsgKHRy dWVfcmVjdC53aWR0aCAtIGxhYmVsX3dpZHRoICsgMSkgLyAyCisrKyAgICAgICAgeHBvcyA9IHRy dWVfcmVjdC54ICsgKHRydWVfcmVjdC53aWR0aCAtIGxhYmVsX3dpZHRoICsgMSkgLy8gMgorKyAg ICAgICAgIHlwb3MgPSBwcmV2aWV3LnkgKyBwcmV2aWV3LmhlaWdodCArIDUKKysgCisrICAgICAg ICAgaWYgc2VsZi5fZmxhZ3MgJiBSSUJCT05fQkFSX0ZMT1dfVkVSVElDQUw6CisrICAgICAgICAg ICAgIHhwb3MgPSBwcmV2aWV3LnggKyBwcmV2aWV3LndpZHRoICsgNQorKy0gICAgICAgICAgICB5 cG9zID0gdHJ1ZV9yZWN0LnkgKyAodHJ1ZV9yZWN0LmhlaWdodCAtIGxhYmVsX2hlaWdodCkgLyAy CisrKyAgICAgICAgICAgIHlwb3MgPSB0cnVlX3JlY3QueSArICh0cnVlX3JlY3QuaGVpZ2h0IC0g bGFiZWxfaGVpZ2h0KSAvLyAyCisrIAorKyAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHNl bGYuX3BhbmVsX21pbmltaXNlZF9sYWJlbF9jb2xvdXIpCisrICAgICAgICAgZGMuRHJhd1RleHQo d25kLkdldExhYmVsKCksIHhwb3MsIHlwb3MpCisrQEAgLTE4NTEsMTIgKzE4NTEsMTIgQEAgZGVm IERyYXdNaW5pbWlzZWRQYW5lbENvbW1vbihzZWxmLCBkYywgd25kLCB0cnVlX3JlY3QpOgorKyAK KysgICAgICAgICBpZiBzZWxmLl9mbGFncyAmIFJJQkJPTl9CQVJfRkxPV19WRVJUSUNBTDoKKysg ICAgICAgICAgICAgeHBvcyArPSBsYWJlbF93aWR0aAorKy0gICAgICAgICAgICBhcnJvd19wb2lu dHNbMF0gPSB3eC5Qb2ludCh4cG9zICsgNSwgeXBvcyArIGxhYmVsX2hlaWdodCAvIDIpCisrKyAg ICAgICAgICAgIGFycm93X3BvaW50c1swXSA9IHd4LlBvaW50KHhwb3MgKyA1LCB5cG9zICsgbGFi ZWxfaGVpZ2h0IC8vIDIpCisrICAgICAgICAgICAgIGFycm93X3BvaW50c1sxXSA9IGFycm93X3Bv aW50c1swXSArIHd4LlBvaW50KC0zLCAgMykKKysgICAgICAgICAgICAgYXJyb3dfcG9pbnRzWzJd ID0gYXJyb3dfcG9pbnRzWzBdICsgd3guUG9pbnQoLTMsIC0zKQorKyAgICAgICAgIGVsc2U6Cisr ICAgICAgICAgICAgIHlwb3MgKz0gbGFiZWxfaGVpZ2h0CisrLSAgICAgICAgICAgIGFycm93X3Bv aW50c1swXSA9IHd4LlBvaW50KHRydWVfcmVjdC53aWR0aCAvIDIsIHlwb3MgKyA1KQorKysgICAg ICAgICAgICBhcnJvd19wb2ludHNbMF0gPSB3eC5Qb2ludCh0cnVlX3JlY3Qud2lkdGggLy8gMiwg eXBvcyArIDUpCisrICAgICAgICAgICAgIGFycm93X3BvaW50c1sxXSA9IGFycm93X3BvaW50c1sw XSArIHd4LlBvaW50KC0zLCAtMykKKysgICAgICAgICAgICAgYXJyb3dfcG9pbnRzWzJdID0gYXJy b3dfcG9pbnRzWzBdICsgd3guUG9pbnQoIDMsIC0zKQorKyAKKytAQCAtMTk2Nyw3ICsxOTY3LDcg QEAgZGVmIERyYXdCdXR0b25CYXJCdXR0b24oc2VsZiwgZGMsIHduZCwgcmVjdCwga2luZCwgc3Rh dGUsIGxhYmVsLCBiaXRtYXBfbGFyZ2UsIGIKKysgICAgICAgICAgICAgYmdfcmVjdC5oZWlnaHQg LT0gMgorKyAKKysgICAgICAgICAgICAgYmdfcmVjdF90b3AgPSB3eC5SZWN0KCpiZ19yZWN0KQor Ky0gICAgICAgICAgICBiZ19yZWN0X3RvcC5oZWlnaHQgLz0gMworKysgICAgICAgICAgICBiZ19y ZWN0X3RvcC5oZWlnaHQgLy89IDMKKysgICAgICAgICAgICAgYmdfcmVjdC55ICs9IGJnX3JlY3Rf dG9wLmhlaWdodAorKyAgICAgICAgICAgICBiZ19yZWN0LmhlaWdodCAtPSBiZ19yZWN0X3RvcC5o ZWlnaHQKKysgCisrQEAgLTIwNDMsNyArMjA0Myw3IEBAIGRlZiBEcmF3QnV0dG9uQmFyQnV0dG9u Rm9yZWdyb3VuZChzZWxmLCBkYywgcmVjdCwga2luZCwgc3RhdGUsIGxhYmVsLCBiaXRtYXBfbGFy CisrICAgICAgICAgaWYgcmVzdWx0ID09IFJJQkJPTl9CVVRUT05CQVJfQlVUVE9OX0xBUkdFOgor KyAKKysgICAgICAgICAgICAgcGFkZGluZyA9IDIKKystICAgICAgICAgICAgZGMuRHJhd0JpdG1h cChiaXRtYXBfbGFyZ2UsIHJlY3QueCArIChyZWN0LndpZHRoIC0gYml0bWFwX2xhcmdlLkdldFdp ZHRoKCkpIC8gMiwKKysrICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChiaXRtYXBfbGFyZ2UsIHJl Y3QueCArIChyZWN0LndpZHRoIC0gYml0bWFwX2xhcmdlLkdldFdpZHRoKCkpIC8vIDIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC55ICsgcGFkZGluZywgVHJ1ZSkKKysgICAgICAg ICAgICAgeXBvcyA9IHJlY3QueSArIHBhZGRpbmcgKyBiaXRtYXBfbGFyZ2UuR2V0SGVpZ2h0KCkg KyBwYWRkaW5nCisrICAgICAgICAgICAgIGFycm93X3dpZHRoID0gKGtpbmQgPT0gUklCQk9OX0JV VFRPTl9OT1JNQUwgYW5kIFswXSBvciBbOF0pWzBdCisrQEAgLTIwNTIsMTAgKzIwNTIsMTAgQEAg ZGVmIERyYXdCdXR0b25CYXJCdXR0b25Gb3JlZ3JvdW5kKHNlbGYsIGRjLCByZWN0LCBraW5kLCBz dGF0ZSwgbGFiZWwsIGJpdG1hcF9sYXIKKysgCisrICAgICAgICAgICAgIGlmIGxhYmVsX3cgKyAy ICogcGFkZGluZyA8PSByZWN0LndpZHRoOgorKyAKKystICAgICAgICAgICAgICAgIGRjLkRyYXdU ZXh0KGxhYmVsLCByZWN0LnggKyAocmVjdC53aWR0aCAtIGxhYmVsX3cpIC8gMiwgeXBvcykKKysr ICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCByZWN0LnggKyAocmVjdC53aWR0aCAt IGxhYmVsX3cpIC8vIDIsIHlwb3MpCisrICAgICAgICAgICAgICAgICBpZiBhcnJvd193aWR0aCAh PSAwOgorKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuRHJhd0Ryb3Bkb3duQXJyb3coZGMsIHJl Y3QueCArIHJlY3Qud2lkdGggLyAyLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgeXBvcyArIChsYWJlbF9oICogMykgLyAyLAorKysgICAgICAgICAgICAgICAg ICAgIHNlbGYuRHJhd0Ryb3Bkb3duQXJyb3coZGMsIHJlY3QueCArIHJlY3Qud2lkdGggLy8gMiwK KysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlwb3MgKyAobGFi ZWxfaCAqIDMpIC8vIDIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLl9idXR0b25fYmFyX2xhYmVsX2NvbG91cikKKysgICAgICAgICAgICAgZWxzZToK KysgICAgICAgICAgICAgICAgIGJyZWFraSA9IGxlbihsYWJlbCkKKytAQCAtMjA2NywxNyArMjA2 NywxNyBAQCBkZWYgRHJhd0J1dHRvbkJhckJ1dHRvbkZvcmVncm91bmQoc2VsZiwgZGMsIHJlY3Qs IGtpbmQsIHN0YXRlLCBsYWJlbCwgYml0bWFwX2xhcgorKyAgICAgICAgICAgICAgICAgICAgICAg ICBsYWJlbF93LCBsYWJlbF9oID0gZGMuR2V0VGV4dEV4dGVudChsYWJlbF90b3ApCisrIAorKyAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBsYWJlbF93ICsgMiAqIHBhZGRpbmcgPD0gcmVjdC53 aWR0aDoKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsX3Rv cCwgcmVjdC54ICsgKHJlY3Qud2lkdGggLSBsYWJlbF93KSAvIDIsIHlwb3MpCisrKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dChsYWJlbF90b3AsIHJlY3QueCArIChyZWN0 LndpZHRoIC0gbGFiZWxfdykgLy8gMiwgeXBvcykKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHlwb3MgKz0gbGFiZWxfaAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxf Ym90dG9tID0gbGFiZWxbYnJlYWtpOl0KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxh YmVsX3csIGxhYmVsX2ggPSBkYy5HZXRUZXh0RXh0ZW50KGxhYmVsX2JvdHRvbSkKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxhYmVsX3cgKz0gYXJyb3dfd2lkdGgKKystICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlYID0gcmVjdC54ICsgKHJlY3Qud2lkdGggLSBsYWJlbF93KSAv IDIKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlYID0gcmVjdC54ICsgKHJlY3Qud2lk dGggLSBsYWJlbF93KSAvLyAyCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYy5EcmF3 VGV4dChsYWJlbF9ib3R0b20sIGlYLCB5cG9zKQorKyAKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGFycm93X3dpZHRoICE9IDA6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5EcmF3RHJvcGRvd25BcnJvdyhkYywgaVggKyAyICtsYWJlbF93IC0gYXJyb3df d2lkdGgsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB5cG9zICsgbGFiZWxfaCAvIDIgKyAxLAorKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeXBvcyArIGxhYmVsX2ggLy8gMiArIDEs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLl9idXR0b25fYmFyX2xhYmVsX2NvbG91cikKKysgCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhaworK0BAIC0yMDg1LDE0ICsyMDg1LDE0IEBAIGRlZiBEcmF3QnV0dG9u QmFyQnV0dG9uRm9yZWdyb3VuZChzZWxmLCBkYywgcmVjdCwga2luZCwgc3RhdGUsIGxhYmVsLCBi aXRtYXBfbGFyCisrICAgICAgICAgZWxpZiByZXN1bHQgPT0gUklCQk9OX0JVVFRPTkJBUl9CVVRU T05fTUVESVVNOgorKyAKKysgICAgICAgICAgICAgeF9jdXJzb3IgPSByZWN0LnggKyAyCisrLSAg ICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwX3NtYWxsLCB4X2N1cnNvciwgcmVjdC55ICsg KHJlY3QuaGVpZ2h0IC0gYml0bWFwX3NtYWxsLkdldEhlaWdodCgpKS8yLCBUcnVlKQorKysgICAg ICAgICAgICBkYy5EcmF3Qml0bWFwKGJpdG1hcF9zbWFsbCwgeF9jdXJzb3IsIHJlY3QueSArIChy ZWN0LmhlaWdodCAtIGJpdG1hcF9zbWFsbC5HZXRIZWlnaHQoKSkvLzIsIFRydWUpCisrICAgICAg ICAgICAgIHhfY3Vyc29yICs9IGJpdG1hcF9zbWFsbC5HZXRXaWR0aCgpICsgMgorKyAgICAgICAg ICAgICBsYWJlbF93LCBsYWJlbF9oID0gZGMuR2V0VGV4dEV4dGVudChsYWJlbCkKKystICAgICAg ICAgICAgZGMuRHJhd1RleHQobGFiZWwsIHhfY3Vyc29yLCByZWN0LnkgKyAocmVjdC5oZWlnaHQg LSBsYWJlbF9oKSAvIDIpCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCB4X2N1cnNv ciwgcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gbGFiZWxfaCkgLy8gMikKKysgICAgICAgICAgICAg eF9jdXJzb3IgKz0gbGFiZWxfdyArIDMKKysgCisrICAgICAgICAgICAgIGlmIGtpbmQgIT0gUklC Qk9OX0JVVFRPTl9OT1JNQUw6CisrLSAgICAgICAgICAgICAgICBzZWxmLkRyYXdEcm9wZG93bkFy cm93KGRjLCB4X2N1cnNvciwgcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyLAorKysgICAgICAgICAg ICAgICAgc2VsZi5EcmF3RHJvcGRvd25BcnJvdyhkYywgeF9jdXJzb3IsIHJlY3QueSArIHJlY3Qu aGVpZ2h0IC8vIDIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuX2J1dHRvbl9iYXJfbGFiZWxfY29sb3VyKQorKyAKKysgICAgICAgICBlbHNlOgorK0BAIC0y MTg0LDcgKzIxODQsNyBAQCBkZWYgRHJhd1Rvb2woc2VsZiwgZGMsIHduZCwgcmVjdCwgYml0bWFw LCBraW5kLCBzdGF0ZSk6CisrIAorKyAgICAgICAgICMgQmFja2dyb3VuZAorKyAgICAgICAgIGJn X3JlY3RfdG9wID0gd3guUmVjdCgqYmdfcmVjdCkKKystICAgICAgICBiZ19yZWN0X3RvcC5oZWln aHQgPSAoYmdfcmVjdF90b3AuaGVpZ2h0ICogMikgLyA1CisrKyAgICAgICAgYmdfcmVjdF90b3Au aGVpZ2h0ID0gKGJnX3JlY3RfdG9wLmhlaWdodCAqIDIpIC8vIDUKKysgICAgICAgICBiZ19yZWN0 X2J0bSA9IHd4LlJlY3QoKmJnX3JlY3QpCisrICAgICAgICAgYmdfcmVjdF9idG0ueSArPSBiZ19y ZWN0X3RvcC5oZWlnaHQKKysgICAgICAgICBiZ19yZWN0X2J0bS5oZWlnaHQgLT0gYmdfcmVjdF90 b3AuaGVpZ2h0CisrQEAgLTIyNDQsMTAgKzIyNDQsMTAgQEAgZGVmIERyYXdUb29sKHNlbGYsIGRj LCB3bmQsIHJlY3QsIGJpdG1hcCwga2luZCwgc3RhdGUpOgorKyAgICAgICAgICAgICAgICAgZGMu RHJhd0xpbmUocmVjdC54ICsgYXZhaWxfd2lkdGggKyAxLCByZWN0LnksIHJlY3QueCArIGF2YWls X3dpZHRoICsgMSwgcmVjdC55ICsgcmVjdC5oZWlnaHQpCisrIAorKyAgICAgICAgICAgICBkYy5E cmF3Qml0bWFwKHNlbGYuX3Rvb2xiYXJfZHJvcF9iaXRtYXAsIGJnX3JlY3QueCArIGF2YWlsX3dp ZHRoICsgMiwKKystICAgICAgICAgICAgICAgICAgICAgICAgICBiZ19yZWN0LnkgKyAoYmdfcmVj dC5oZWlnaHQgLyAyKSAtIDIsIFRydWUpCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgYmdf cmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0IC8vIDIpIC0gMiwgVHJ1ZSkKKysgCisrLSAgICAgICAg ZGMuRHJhd0JpdG1hcChiaXRtYXAsIGJnX3JlY3QueCArIChhdmFpbF93aWR0aCAtIGJpdG1hcC5H ZXRXaWR0aCgpKSAvIDIsCisrLSAgICAgICAgICAgICAgICAgICAgICBiZ19yZWN0LnkgKyAoYmdf cmVjdC5oZWlnaHQgLSBiaXRtYXAuR2V0SGVpZ2h0KCkpIC8gMiwgVHJ1ZSkKKysrICAgICAgICBk Yy5EcmF3Qml0bWFwKGJpdG1hcCwgYmdfcmVjdC54ICsgKGF2YWlsX3dpZHRoIC0gYml0bWFwLkdl dFdpZHRoKCkpIC8vIDIsCisrKyAgICAgICAgICAgICAgICAgICAgICBiZ19yZWN0LnkgKyAoYmdf cmVjdC5oZWlnaHQgLSBiaXRtYXAuR2V0SGVpZ2h0KCkpIC8vIDIsIFRydWUpCisrIAorKyAKKysg ICAgIGRlZiBHZXRCYXJUYWJXaWR0aChzZWxmLCBkYywgd25kLCBsYWJlbCwgYml0bWFwLCBpZGVh bD1Ob25lLCBzbWFsbF9iZWdpbl9uZWVkX3NlcGFyYXRvcj1Ob25lLAorK0BAIC0yNDc0LDcgKzI0 NzQsNyBAQCBkZWYgR2V0R2FsbGVyeUNsaWVudFNpemUoc2VsZiwgZGMsIHduZCwgc2l6ZSwgY2xp ZW50X29mZnNldD1Ob25lLCBzY3JvbGxfdXBfYnV0dAorKyAgICAgICAgICAgICBzY3JvbGxfdXAu eSA9IHNpemUuR2V0SGVpZ2h0KCkgLSAxNQorKyAgICAgICAgICAgICBzY3JvbGxfdXAuaGVpZ2h0 ID0gMTUKKysgICAgICAgICAgICAgc2Nyb2xsX3VwLnggPSAwCisrLSAgICAgICAgICAgIHNjcm9s bF91cC53aWR0aCA9IChzaXplLkdldFdpZHRoKCkgKyAyKSAvIDMKKysrICAgICAgICAgICAgc2Ny b2xsX3VwLndpZHRoID0gKHNpemUuR2V0V2lkdGgoKSArIDIpIC8vIDMKKysgICAgICAgICAgICAg c2Nyb2xsX2Rvd24ueSA9IHNjcm9sbF91cC55CisrICAgICAgICAgICAgIHNjcm9sbF9kb3duLmhl aWdodCA9IHNjcm9sbF91cC5oZWlnaHQKKysgICAgICAgICAgICAgc2Nyb2xsX2Rvd24ueCA9IHNj cm9sbF91cC54ICsgc2Nyb2xsX3VwLndpZHRoCisrQEAgLTI0OTEsNyArMjQ5MSw3IEBAIGRlZiBH ZXRHYWxsZXJ5Q2xpZW50U2l6ZShzZWxmLCBkYywgd25kLCBzaXplLCBjbGllbnRfb2Zmc2V0PU5v bmUsIHNjcm9sbF91cF9idXR0CisrICAgICAgICAgICAgIHNjcm9sbF91cC54ID0gc2l6ZS5HZXRX aWR0aCgpIC0gMTUKKysgICAgICAgICAgICAgc2Nyb2xsX3VwLndpZHRoID0gMTUKKysgICAgICAg ICAgICAgc2Nyb2xsX3VwLnkgPSAwCisrLSAgICAgICAgICAgIHNjcm9sbF91cC5oZWlnaHQgPSAo c2l6ZS5HZXRIZWlnaHQoKSArIDIpIC8gMworKysgICAgICAgICAgICBzY3JvbGxfdXAuaGVpZ2h0 ID0gKHNpemUuR2V0SGVpZ2h0KCkgKyAyKSAvLyAzCisrICAgICAgICAgICAgIHNjcm9sbF9kb3du LnggPSBzY3JvbGxfdXAueAorKyAgICAgICAgICAgICBzY3JvbGxfZG93bi53aWR0aCA9IHNjcm9s bF91cC53aWR0aAorKyAgICAgICAgICAgICBzY3JvbGxfZG93bi55ID0gc2Nyb2xsX3VwLnkgKyBz Y3JvbGxfdXAuaGVpZ2h0CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvcmliYm9uL2Jhci5weSBi L3d4L2xpYi9hZ3cvcmliYm9uL2Jhci5weQorK2luZGV4IGFlOGI2YTE5Yy4uYjBkMjg3NzZkIDEw MDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvcmliYm9uL2Jhci5weQorKysrKyBiL3d4L2xpYi9hZ3cv cmliYm9uL2Jhci5weQorK0BAIC03NDMsNyArNzQzLDcgQEAgZGVmIFJlY2FsY3VsYXRlVGFiU2l6 ZXMoc2VsZik6CisrICAgICAgICAgICAgICAgICAgICAgZGVsdGEgPSBpbmZvLmlkZWFsX3dpZHRo IC0gaW5mby5zbWFsbF9tdXN0X2hhdmVfc2VwYXJhdG9yX3dpZHRoCisrICAgICAgICAgICAgICAg ICAgICAgaW5mby5yZWN0LnggPSB4CisrICAgICAgICAgICAgICAgICAgICAgaW5mby5yZWN0Lnkg PSB5CisrLSAgICAgICAgICAgICAgICAgICAgaW5mby5yZWN0LndpZHRoID0gaW5mby5zbWFsbF9t dXN0X2hhdmVfc2VwYXJhdG9yX3dpZHRoICsgZGVsdGEqKHdpZHRoIC0gdG90YWxfc21hbGxfd2lk dGgpL3RvdGFsX2RlbHRhCisrKyAgICAgICAgICAgICAgICAgICAgaW5mby5yZWN0LndpZHRoID0g aW5mby5zbWFsbF9tdXN0X2hhdmVfc2VwYXJhdG9yX3dpZHRoICsgZGVsdGEqKHdpZHRoIC0gdG90 YWxfc21hbGxfd2lkdGgpLy90b3RhbF9kZWx0YQorKyAgICAgICAgICAgICAgICAgICAgIGluZm8u cmVjdC5oZWlnaHQgPSBzZWxmLl90YWJfaGVpZ2h0CisrIAorKyAgICAgICAgICAgICAgICAgICAg IHggKz0gaW5mby5yZWN0LndpZHRoICsgdGFic2VwCisrQEAgLTc5Nyw3ICs3OTcsNyBAQCBkZWYg UmVjYWxjdWxhdGVUYWJTaXplcyhzZWxmKToKKysgICAgICAgICAgICAgICAgICAgICAgICAgZGVs dGEgPSBzbWFsbGVzdF90YWJfd2lkdGggLSBpbmZvLm1pbmltdW1fd2lkdGgKKysgICAgICAgICAg ICAgICAgICAgICAgICAgaW5mby5yZWN0LnggPSB4CisrICAgICAgICAgICAgICAgICAgICAgICAg IGluZm8ucmVjdC55ID0geQorKy0gICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnJlY3Qud2lk dGggPSBpbmZvLm1pbmltdW1fd2lkdGggKyBkZWx0YSood2lkdGggLSB0b3RhbF9zbWFsbF93aWR0 aCkvdG90YWxfZGVsdGEKKysrICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5yZWN0LndpZHRo ID0gaW5mby5taW5pbXVtX3dpZHRoICsgZGVsdGEqKHdpZHRoIC0gdG90YWxfc21hbGxfd2lkdGgp Ly90b3RhbF9kZWx0YQorKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnJlY3QuaGVpZ2h0 ID0gc2VsZi5fdGFiX2hlaWdodAorKyAKKysgICAgICAgICAgICAgICAgICAgICAgICAgeCArPSBp bmZvLnJlY3Qud2lkdGggKyB0YWJzZXAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9yaWJib24v YnV0dG9uYmFyLnB5IGIvd3gvbGliL2Fndy9yaWJib24vYnV0dG9uYmFyLnB5CisraW5kZXggMjVl ZTQ5YTgyLi40NjkwZjQ4M2QgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9yaWJib24vYnV0dG9u YmFyLnB5CisrKysrIGIvd3gvbGliL2Fndy9yaWJib24vYnV0dG9uYmFyLnB5CisrQEAgLTM1NCw3 ICszNTQsNyBAQCBkZWYgSW5zZXJ0QnV0dG9uKHNlbGYsIHBvcywgYnV0dG9uX2lkLCBsYWJlbCwg Yml0bWFwLCBiaXRtYXBfc21hbGw9d3guTnVsbEJpdG1hcAorKyAgICAgICAgICAgICAgICAgc2Vs Zi5fYml0bWFwX3NpemVfbGFyZ2UgPSBiaXRtYXAuR2V0U2l6ZSgpCisrICAgICAgICAgICAgICAg ICBpZiBub3QgYml0bWFwX3NtYWxsLklzT2soKToKKysgICAgICAgICAgICAgICAgICAgICB3LCBo ID0gc2VsZi5fYml0bWFwX3NpemVfbGFyZ2UKKystICAgICAgICAgICAgICAgICAgICBzZWxmLl9i aXRtYXBfc2l6ZV9zbWFsbCA9IHd4LlNpemUoMC41KncsIDAuNSpoKQorKysgICAgICAgICAgICAg ICAgICAgIHNlbGYuX2JpdG1hcF9zaXplX3NtYWxsID0gd3guU2l6ZSh3Ly8yLCBoLy8yKQorKyAK KysgICAgICAgICAgICAgaWYgYml0bWFwX3NtYWxsLklzT2soKToKKysgCisrQEAgLTg2Nyw4ICs4 NjcsOCBAQCBkZWYgT25TaXplKHNlbGYsIGV2ZW50KToKKysgCisrICAgICAgICAgICAgIGxheW91 dF9zaXplID0gc2VsZi5fbGF5b3V0c1tsYXlvdXRfaV0ub3ZlcmFsbF9zaXplCisrICAgICAgICAg ICAgIGlmIGxheW91dF9zaXplLnggPD0gbmV3X3NpemUueCBhbmQgbGF5b3V0X3NpemUueSA8PSBu ZXdfc2l6ZS55OgorKy0gICAgICAgICAgICAgICAgc2VsZi5fbGF5b3V0X29mZnNldC54ID0gKG5l d19zaXplLnggLSBsYXlvdXRfc2l6ZS54KS8yCisrLSAgICAgICAgICAgICAgICBzZWxmLl9sYXlv dXRfb2Zmc2V0LnkgPSAobmV3X3NpemUueSAtIGxheW91dF9zaXplLnkpLzIKKysrICAgICAgICAg ICAgICAgIHNlbGYuX2xheW91dF9vZmZzZXQueCA9IChuZXdfc2l6ZS54IC0gbGF5b3V0X3NpemUu eCkvLzIKKysrICAgICAgICAgICAgICAgIHNlbGYuX2xheW91dF9vZmZzZXQueSA9IChuZXdfc2l6 ZS55IC0gbGF5b3V0X3NpemUueSkvLzIKKysgICAgICAgICAgICAgICAgIHNlbGYuX2N1cnJlbnRf bGF5b3V0ID0gbGF5b3V0X2kKKysgICAgICAgICAgICAgICAgIGJyZWFrCisrIAorK2RpZmYgLS1n aXQgYS93eC9saWIvYWd3L3JpYmJvbi9nYWxsZXJ5LnB5IGIvd3gvbGliL2Fndy9yaWJib24vZ2Fs bGVyeS5weQorK2luZGV4IGI4MzBmYWI3ZC4uYjg2NTI4ODY1IDEwMDY0NAorKy0tLSBhL3d4L2xp Yi9hZ3cvcmliYm9uL2dhbGxlcnkucHkKKysrKysgYi93eC9saWIvYWd3L3JpYmJvbi9nYWxsZXJ5 LnB5CisrQEAgLTgwNSw4ICs4MDUsOCBAQCBkZWYgRG9HZXROZXh0U21hbGxlclNpemUoc2VsZiwg ZGlyZWN0aW9uLCByZWxhdGl2ZV90byk6CisrICAgICAgICAgaWYgY2xpZW50LkdldFdpZHRoKCkg PCAwIG9yIGNsaWVudC5HZXRIZWlnaHQoKSA8IDA6CisrICAgICAgICAgICAgIHJldHVybiByZWxh dGl2ZV90bworKyAKKystICAgICAgICBjbGllbnQueCA9IChjbGllbnQueCAvIHNlbGYuX2JpdG1h cF9wYWRkZWRfc2l6ZS54KSAqIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS54CisrLSAgICAgICAg Y2xpZW50LnkgPSAoY2xpZW50LnkgLyBzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUueSkgKiBzZWxm Ll9iaXRtYXBfcGFkZGVkX3NpemUueQorKysgICAgICAgIGNsaWVudC54ID0gKGNsaWVudC54IC8v IHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS54KSAqIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS54 CisrKyAgICAgICAgY2xpZW50LnkgPSAoY2xpZW50LnkgLy8gc2VsZi5fYml0bWFwX3BhZGRlZF9z aXplLnkpICogc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLnkKKysgCisrICAgICAgICAgc2l6ZSA9 IHNlbGYuX2FydC5HZXRHYWxsZXJ5U2l6ZShkYywgc2VsZiwgd3guU2l6ZSgqY2xpZW50KSkKKysg ICAgICAgICBtaW5pbXVtID0gc2VsZi5HZXRNaW5TaXplKCkKKytAQCAtODQ5LDggKzg0OSw4IEBA IGRlZiBEb0dldE5leHRMYXJnZXJTaXplKHNlbGYsIGRpcmVjdGlvbiwgcmVsYXRpdmVfdG8pOgor KyAgICAgICAgIGVsaWYgZGlyZWN0aW9uID09IHd4LkJPVEg6CisrICAgICAgICAgICAgIGNsaWVu dC5JbmNCeShzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUpCisrIAorKy0gICAgICAgIGNsaWVudC54 ID0gKGNsaWVudC54IC8gc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLngpICogc2VsZi5fYml0bWFw X3BhZGRlZF9zaXplLngKKystICAgICAgICBjbGllbnQueSA9IChjbGllbnQueSAvIHNlbGYuX2Jp dG1hcF9wYWRkZWRfc2l6ZS55KSAqIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS55CisrKyAgICAg ICAgY2xpZW50LnggPSAoY2xpZW50LnggLy8gc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLngpICog c2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLngKKysrICAgICAgICBjbGllbnQueSA9IChjbGllbnQu eSAvLyBzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUueSkgKiBzZWxmLl9iaXRtYXBfcGFkZGVkX3Np emUueQorKyAKKysgICAgICAgICBzaXplID0gc2VsZi5fYXJ0LkdldEdhbGxlcnlTaXplKGRjLCBz ZWxmLCB3eC5TaXplKCpjbGllbnQpKQorKyAgICAgICAgIG1pbmltdW0gPSBzZWxmLkdldE1pblNp emUoKQorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L3JpYmJvbi9wYW5lbC5weSBiL3d4L2xpYi9h Z3cvcmliYm9uL3BhbmVsLnB5CisraW5kZXggNzlmZDliYzU4Li45MDFjNzY1YjYgMTAwNjQ0Cisr LS0tIGEvd3gvbGliL2Fndy9yaWJib24vcGFuZWwucHkKKysrKysgYi93eC9saWIvYWd3L3JpYmJv bi9wYW5lbC5weQorK0BAIC01ODQsMTIgKzU4NCwxMiBAQCBkZWYgRG9HZXROZXh0U21hbGxlclNp emUoc2VsZiwgZGlyZWN0aW9uLCByZWxhdGl2ZV90byk6CisrICAgICAgICAgbWluaW11bSA9IHd4 LlNpemUoKnNlbGYuR2V0TWluU2l6ZSgpKQorKyAKKysgICAgICAgICBpZiBkaXJlY3Rpb24gJiB3 eC5IT1JJWk9OVEFMOgorKy0gICAgICAgICAgICBjdXJyZW50LnggPSAoY3VycmVudC54ICogNCkg LyA1CisrKyAgICAgICAgICAgIGN1cnJlbnQueCA9IChjdXJyZW50LnggKiA0KSAvLyA1CisrICAg ICAgICAgICAgIGlmIGN1cnJlbnQueCA8IG1pbmltdW0ueDoKKysgICAgICAgICAgICAgICAgIGN1 cnJlbnQueCA9IG1pbmltdW0ueAorKyAKKysgICAgICAgICBpZiBkaXJlY3Rpb24gJiB3eC5WRVJU SUNBTDoKKystICAgICAgICAgICAgY3VycmVudC55ID0gKGN1cnJlbnQueSAqIDQpIC8gNQorKysg ICAgICAgICAgICBjdXJyZW50LnkgPSAoY3VycmVudC55ICogNCkgLy8gNQorKyAgICAgICAgICAg ICBpZiBjdXJyZW50LnkgPCBtaW5pbXVtLnk6CisrICAgICAgICAgICAgICAgICBjdXJyZW50Lnkg PSBtaW5pbXVtLnkKKysgCisrQEAgLTY2OCwxMCArNjY4LDEwIEBAIGRlZiBEb0dldE5leHRMYXJn ZXJTaXplKHNlbGYsIGRpcmVjdGlvbiwgcmVsYXRpdmVfdG8pOgorKyAgICAgICAgIGN1cnJlbnQg PSB3eC5TaXplKCpyZWxhdGl2ZV90bykKKysgCisrICAgICAgICAgaWYgZGlyZWN0aW9uICYgd3gu SE9SSVpPTlRBTDoKKystICAgICAgICAgICAgY3VycmVudC54ID0gKGN1cnJlbnQueCAqIDUgKyAz KSAvIDQKKysrICAgICAgICAgICAgY3VycmVudC54ID0gKGN1cnJlbnQueCAqIDUgKyAzKSAvLyA0 CisrIAorKyAgICAgICAgIGlmIGRpcmVjdGlvbiAmIHd4LlZFUlRJQ0FMOgorKy0gICAgICAgICAg ICBjdXJyZW50LnkgPSAoY3VycmVudC55ICogNSArIDMpIC8gNAorKysgICAgICAgICAgICBjdXJy ZW50LnkgPSAoY3VycmVudC55ICogNSArIDMpIC8vIDQKKysgCisrICAgICAgICAgcmV0dXJuIGN1 cnJlbnQKKysgCisrQEAgLTEwNzYsMjUgKzEwNzYsMjUgQEAgZGVmIEdldEV4cGFuZGVkUG9zaXRp b24oc2VsZiwgcGFuZWwsIGV4cGFuZGVkX3NpemUsIGRpcmVjdGlvbik6CisrICAgICAgICAgcG9z ID0gd3guUG9pbnQoKQorKyAKKysgICAgICAgICBpZiBkaXJlY3Rpb24gPT0gd3guTk9SVEg6Cisr LSAgICAgICAgICAgIHBvcy54ID0gcGFuZWwuR2V0WCgpICsgKHBhbmVsLkdldFdpZHRoKCkgLSBl eHBhbmRlZF9zaXplLkdldFdpZHRoKCkpIC8gMgorKysgICAgICAgICAgICBwb3MueCA9IHBhbmVs LkdldFgoKSArIChwYW5lbC5HZXRXaWR0aCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRXaWR0aCgpKSAv LyAyCisrICAgICAgICAgICAgIHBvcy55ID0gcGFuZWwuR2V0WSgpIC0gZXhwYW5kZWRfc2l6ZS5H ZXRIZWlnaHQoKQorKyAgICAgICAgICAgICBwcmltYXJ5X3ggPSBUcnVlCisrICAgICAgICAgICAg IHNlY29uZGFyeV95ID0gMQorKyAKKysgICAgICAgICBlbGlmIGRpcmVjdGlvbiA9PSB3eC5FQVNU OgorKyAgICAgICAgICAgICBwb3MueCA9IHBhbmVsLkdldFJpZ2h0KCkKKystICAgICAgICAgICAg cG9zLnkgPSBwYW5lbC5HZXRZKCkgKyAocGFuZWwuR2V0SGVpZ2h0KCkgLSBleHBhbmRlZF9zaXpl LkdldEhlaWdodCgpKSAvIDIKKysrICAgICAgICAgICAgcG9zLnkgPSBwYW5lbC5HZXRZKCkgKyAo cGFuZWwuR2V0SGVpZ2h0KCkgLSBleHBhbmRlZF9zaXplLkdldEhlaWdodCgpKSAvLyAyCisrICAg ICAgICAgICAgIHNlY29uZGFyeV94ID0gLTEKKysgCisrICAgICAgICAgZWxpZiBkaXJlY3Rpb24g PT0gd3guU09VVEg6CisrLSAgICAgICAgICAgIHBvcy54ID0gcGFuZWwuR2V0WCgpICsgKHBhbmVs LkdldFdpZHRoKCkgLSBleHBhbmRlZF9zaXplLkdldFdpZHRoKCkpIC8gMgorKysgICAgICAgICAg ICBwb3MueCA9IHBhbmVsLkdldFgoKSArIChwYW5lbC5HZXRXaWR0aCgpIC0gZXhwYW5kZWRfc2l6 ZS5HZXRXaWR0aCgpKSAvLyAyCisrICAgICAgICAgICAgIHBvcy55ID0gcGFuZWwuR2V0Qm90dG9t KCkKKysgICAgICAgICAgICAgcHJpbWFyeV94ID0gVHJ1ZQorKyAgICAgICAgICAgICBzZWNvbmRh cnlfeSA9IC0xCisrIAorKyAgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgIHBvcy54ID0gcGFu ZWwuR2V0WCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRXaWR0aCgpCisrLSAgICAgICAgICAgIHBvcy55 ID0gcGFuZWwuR2V0WSgpICsgKHBhbmVsLkdldEhlaWdodCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRI ZWlnaHQoKSkgLyAyCisrKyAgICAgICAgICAgIHBvcy55ID0gcGFuZWwuR2V0WSgpICsgKHBhbmVs LkdldEhlaWdodCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRIZWlnaHQoKSkgLy8gMgorKyAgICAgICAg ICAgICBzZWNvbmRhcnlfeCA9IDEKKysgCisrICAgICAgICAgZXhwYW5kZWQgPSB3eC5SZWN0KHBv cywgZXhwYW5kZWRfc2l6ZSkKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9yaWJib24vdG9vbGJh ci5weSBiL3d4L2xpYi9hZ3cvcmliYm9uL3Rvb2xiYXIucHkKKytpbmRleCAxNzcxYzY1MDYuLjhj NmY4YjUyMiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3JpYmJvbi90b29sYmFyLnB5CisrKysr IGIvd3gvbGliL2Fndy9yaWJib24vdG9vbGJhci5weQorK0BAIC0xMTU5LDcgKzExNTksNyBAQCBk ZWYgT25TaXplKHNlbGYsIGV2ZW50KToKKysgCisrICAgICAgICAgIyBTZXQgZ3JvdXAgeSBwb3Np dGlvbnMKKysgICAgICAgICBmb3IgZ3JvdXAgaW4gc2VsZi5fZ3JvdXBzOgorKy0gICAgICAgICAg ICBncm91cC5wb3NpdGlvbi55ID0gcm93eXBvc1tncm91cC5wb3NpdGlvbi55XQorKysgICAgICAg ICAgICBncm91cC5wb3NpdGlvbi55ID0gaW50KHJvd3lwb3NbZ3JvdXAucG9zaXRpb24ueV0pCisr IAorKyAKKysgICAgIGRlZiBHZXRCZXN0U2l6ZUZvclBhcmVudFNpemUoc2VsZiwgcGFyZW50U2l6 ZSk6CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvc2hhcGVkYnV0dG9uLnB5IGIvd3gvbGliL2Fn dy9zaGFwZWRidXR0b24ucHkKKytpbmRleCBmMDE1ZDRlMzkuLjQ5NTIzMzY2YSAxMDA2NDQKKyst LS0gYS93eC9saWIvYWd3L3NoYXBlZGJ1dHRvbi5weQorKysrKyBiL3d4L2xpYi9hZ3cvc2hhcGVk YnV0dG9uLnB5CisrQEAgLTU2OSw5ICs1NjksOSBAQCBkZWYgRHJhd01haW5CdXR0b24oc2VsZiwg ZGMsIHdpZHRoLCBoZWlnaHQpOgorKyAgICAgICAgICAgICAgICAgcmVjdDIgPSB3Km1haW4vL3Nl Y29uZGFyeQorKyAKKysgICAgICAgICAgICAgaWYgc2VsZi5faXN1cDoKKystICAgICAgICAgICAg ICAgIGltZyA9IHNlbGYuX21haW5idXR0b251cC5TY2FsZShyZWN0MiwgcmVjdDMpCisrKyAgICAg ICAgICAgICAgICBpbWcgPSBzZWxmLl9tYWluYnV0dG9udXAuU2NhbGUoaW50KHJlY3QyKSwgaW50 KHJlY3QzKSkKKysgICAgICAgICAgICAgZWxzZToKKystICAgICAgICAgICAgICAgIGltZyA9IHNl bGYuX21haW5idXR0b25kb3duLlNjYWxlKHJlY3QyLCByZWN0MykKKysrICAgICAgICAgICAgICAg IGltZyA9IHNlbGYuX21haW5idXR0b25kb3duLlNjYWxlKGludChyZWN0MiksIGludChyZWN0Mykp CisrIAorKyAgICAgICAgIGJtcCA9IGltZy5Db252ZXJ0VG9CaXRtYXAoKQorKyAKKytAQCAtNTk5 LDcgKzU5OSw3IEBAIGRlZiBEcmF3TWFpbkJ1dHRvbihzZWxmLCBkYywgd2lkdGgsIGhlaWdodCk6 CisrICAgICAgICAgICAgICAgICAgICAgeXBvcyA9IDAKKysgCisrICAgICAgICAgIyBEcmF3IEZp bmFsbHkgVGhlIEJpdG1hcAorKy0gICAgICAgIGRjLkRyYXdCaXRtYXAoYm1wLCB4cG9zLCB5cG9z LCBUcnVlKQorKysgICAgICAgIGRjLkRyYXdCaXRtYXAoYm1wLCBpbnQoeHBvcyksIGludCh5cG9z KSwgVHJ1ZSkKKysgCisrICAgICAgICAgIyBTdG9yZSBCaXRtYXAgUG9zaXRpb24gQW5kIFNpemUg VG8gRHJhdyBBbiBFbGxpcHRpY2FsIEZvY3VzIEluZGljYXRvcgorKyAgICAgICAgIHNlbGYuX3hw b3MgPSB4cG9zCisrQEAgLTY0Niw3ICs2NDYsNyBAQCBkZWYgRHJhd0xhYmVsKHNlbGYsIGRjLCB3 aWR0aCwgaGVpZ2h0LCBkdz0wLCBkaD0wKToKKysgICAgICAgICAgICAgeHAgPSB4YyAtICh0dy8v MikqIGNvcyhhbmdsZSkgLSAodGgvLzIpKnNpbihhbmdsZSkKKysgICAgICAgICAgICAgeXAgPSB5 YyArICh0dy8vMikqc2luKGFuZ2xlKSAtICh0aC8vMikqY29zKGFuZ2xlKQorKyAKKystICAgICAg ICAgICAgZGMuRHJhd1JvdGF0ZWRUZXh0KGxhYmVsLCB4cCArIGR3LCB5cCArIGRoICwgYW5nbGUq MTgwL3BpKQorKysgICAgICAgICAgICBkYy5EcmF3Um90YXRlZFRleHQobGFiZWwsIGludCh4cCAr IGR3KSwgaW50KHlwICsgZGgpLCBhbmdsZSoxODAvcGkpCisrIAorKyAKKysgICAgIGRlZiBEcmF3 Rm9jdXNJbmRpY2F0b3Ioc2VsZiwgZGMsIHdpZHRoLCBoZWlnaHQpOgorK0BAIC02NzYsNyArNjc2 LDcgQEAgZGVmIERyYXdGb2N1c0luZGljYXRvcihzZWxmLCBkYywgd2lkdGgsIGhlaWdodCk6Cisr ICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgIyBUaGlzIElzIEFuIEVsbGlwc2UKKysgICAg ICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiX3hwb3MiKToKKystICAgICAgICAgICAgICAgIGRj LkRyYXdFbGxpcHNlKHNlbGYuX3hwb3MgKyAyLCBzZWxmLl95cG9zICsgMiwgc2VsZi5faW1neCAt IDQsIHNlbGYuX2ltZ3kgLSA0KQorKysgICAgICAgICAgICAgICAgZGMuRHJhd0VsbGlwc2UoaW50 KHNlbGYuX3hwb3MgKyAyKSwgaW50KHNlbGYuX3lwb3MgKyAyKSwgc2VsZi5faW1neCAtIDQsIHNl bGYuX2ltZ3kgLSA0KQorKyAKKysgICAgICAgICBkYy5TZXRMb2dpY2FsRnVuY3Rpb24od3guQ09Q WSkKKysgCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvc3BlZWRtZXRlci5weSBiL3d4L2xpYi9h Z3cvc3BlZWRtZXRlci5weQorK2luZGV4IGYxOTZiNTFmMi4uNjA2OTAxZDI3IDEwMDY0NAorKy0t LSBhL3d4L2xpYi9hZ3cvc3BlZWRtZXRlci5weQorKysrKyBiL3d4L2xpYi9hZ3cvc3BlZWRtZXRl ci5weQorK0BAIC01ODAsOCArNTgwLDggQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAg IGRjLlNldEJhY2tncm91bmQod3guQnJ1c2goc3BlZWRiYWNrZ3JvdW5kKSkKKysgICAgICAgICBk Yy5DbGVhcigpCisrIAorKy0gICAgICAgIGNlbnRlclggPSBzZWxmLmZhY2VCaXRtYXAuR2V0V2lk dGgoKS8yCisrLSAgICAgICAgY2VudGVyWSA9IHNlbGYuZmFjZUJpdG1hcC5HZXRIZWlnaHQoKS8y CisrKyAgICAgICAgY2VudGVyWCA9IHNlbGYuZmFjZUJpdG1hcC5HZXRXaWR0aCgpLy8yCisrKyAg ICAgICAgY2VudGVyWSA9IHNlbGYuZmFjZUJpdG1hcC5HZXRIZWlnaHQoKS8vMgorKyAKKysgICAg ICAgICBzZWxmLkNlbnRlclggPSBjZW50ZXJYCisrICAgICAgICAgc2VsZi5DZW50ZXJZID0gY2Vu dGVyWQorK0BAIC02ODEsNyArNjgxLDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAg ICAgICAjIERyYXcgVGhlIEZpbGxlciAoQm90aCBJbiAiQWR2YW5jZSIgQW5kICJSZXZlcnNlIiBE aXJlY3Rpb25zKQorKyAKKysgICAgICAgICAgICAgZGMuU2V0QnJ1c2god3guQnJ1c2goZmlsbGVy Y29sb3VyKSkKKystICAgICAgICAgICAgZGMuRHJhd0FyYyh4czIsIHlzMiwgeGUyLCB5ZTIsIGNl bnRlclgsIGNlbnRlclkpCisrKyAgICAgICAgICAgIGRjLkRyYXdBcmMoeHMyLCB5czIsIHhlMiwg eWUyLCBpbnQoY2VudGVyWCksIGludChjZW50ZXJZKSkKKysgCisrICAgICAgICAgICAgIGlmIHNl bGYuX2Fnd1N0eWxlICYgU01fRFJBV19TRUNUT1JTID09IDA6CisrICAgICAgICAgICAgICAgICBk Yy5TZXRCcnVzaCh3eC5CcnVzaChzcGVlZGJhY2tncm91bmQpKQorK0BAIC05NTIsNyArOTUyLDcg QEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICAgICAgICAgIHkgPSB5IC0gaGVp Z2h0LzIuMCAtIGhlaWdodCpzaW4oYW5naXMpLzIuMAorKyAgICAgICAgICAgICAgICAgICAgIGZh bmN5dGV4dC5SZW5kZXJUb0RDKGZhbmN5c3RyLCBkYywgeCwgeSkKKysgICAgICAgICAgICAgICAg IGVsc2U6CisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd1RleHQoc3RyaW5ncywgeCwgeSkK KysrICAgICAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dChzdHJpbmdzLCBpbnQoeCksIGludCh5 KSkKKysgCisrICAgICAgICAgICAgICMgVGhpcyBJcyBUaGUgU21hbGwgUmVjdGFuZ2xlIC0tPiBU aWNrIE1hcmsKKysgICAgICAgICAgICAgcmVjdGFuZ2xlID0gY29sb3VyYW5nbGVzW2lpXSArIHBp LzIuMAorK0BAIC05NjksNiArOTY5LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAg ICAgICB5NCA9IHkzICsgMypzZWxmLnNjYWxlKnNpbnJlY3QKKysgCisrICAgICAgICAgICAgIHBv aW50cyA9IFsoeDEsIHkxKSwgKHgyLCB5MiksICh4NCwgeTQpLCAoeDMsIHkzKV0KKysrICAgICAg ICAgICAgcG9pbnRzID0gWyhpbnQocFswXSksIGludChwWzFdKSkgZm9yIHAgaW4gcG9pbnRzXQor KyAKKysgICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24ocG9pbnRzKQorKyAKKytAQCAtMTAwMyw2 ICsxMDA0LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICAgICAgICAgICAg ICB5NCA9IHkzICsgc2VsZi5zY2FsZSpzaW5yZWN0CisrIAorKyAgICAgICAgICAgICAgICAgICAg ICAgICBwb2ludHMgPSBbKHgxLCB5MSksICh4MiwgeTIpLCAoeDQsIHk0KSwgKHgzLCB5MyldCisr KyAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50cyA9IFsoaW50KHBbMF0pLCBpbnQocFsxXSkp IGZvciBwIGluIHBvaW50c10KKysgCisrICAgICAgICAgICAgICAgICAgICAgICAgIGRjLkRyYXdQ b2x5Z29uKHBvaW50cykKKysgCisrQEAgLTEwMTcsNyArMTAxOSw3IEBAIGRlZiBEcmF3KHNlbGYs IGRjKToKKysgICAgICAgICBkYy5TZXRCcnVzaCh3eC5UUkFOU1BBUkVOVF9CUlVTSCkKKysgCisr ICAgICAgICAgaWYgc2VsZi5fZHJhd2FyYzoKKystICAgICAgICAgICAgZGMuU2V0UGVuKHd4LlBl bihzZWxmLkdldEFyY0NvbG91cigpLCAyLjApKQorKysgICAgICAgICAgICBkYy5TZXRQZW4od3gu UGVuKHNlbGYuR2V0QXJjQ29sb3VyKCksIDIpKQorKyAgICAgICAgICAgICAjIElmIEl0J3MgTm90 IEEgQ29tcGxldGUgQ2lyY2xlLCBEcmF3IFRoZSBDb25uZWN0aW5nIExpbmVzIEFuZCBUaGUgQXJj CisrICAgICAgICAgICAgIGlmIGFicyhhYnMoc3RhcnRhbmdsZSAtIGVuZGFuZ2xlKSAtIDIqcGkp ID4gMS4wLzE4MC4wOgorKyAgICAgICAgICAgICAgICAgZGMuRHJhd0FyYyh4c3RhcnQsIHlzdGFy dCwgeGVuZCwgeWVuZCwgY2VudGVyWCwgY2VudGVyWSkKKytAQCAtMTA0Niw3ICsxMDQ4LDcgQEAg ZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICBuZXd4ID0gY2VudGVyWCArIDEuNSpt dypjb3MobWlkZGxlYW5nbGUpIC0gbXcvMi4wCisrICAgICAgICAgICAgIG5ld3kgPSBjZW50ZXJZ IC0gMS41Km1oKnNpbihtaWRkbGVhbmdsZSkgLSBtaC8yLjAKKysgICAgICAgICAgICAgZGMuU2V0 VGV4dEZvcmVncm91bmQobWlkZGxlY29sb3VyKQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dCht aWRkbGV0ZXh0LCBuZXd4LCBuZXd5KQorKysgICAgICAgICAgICBkYy5EcmF3VGV4dChtaWRkbGV0 ZXh0LCBpbnQobmV3eCksIGludChuZXd5KSkKKysgCisrICAgICAgICAgIyBIZXJlIFdlIERyYXcg VGhlIEljb24gSW4gVGhlIE1pZGRsZSwgTmVhciBUaGUgU3RhcnQgT2YgVGhlIEFycm93IChJZiBQ cmVzZW50KQorKyAgICAgICAgICMgVGhpcyBJcyBMaWtlIFRoZSAiRnVlbCIgSWNvbiBJbiBUaGUg Q2FycworK0BAIC0xMDU0LDggKzEwNTYsOCBAQCBkZWYgRHJhdyhzZWxmLCBkYyk6CisrIAorKyAg ICAgICAgICAgICBtaWRkbGVpY29uID0gc2VsZi5HZXRNaWRkbGVJY29uKCkKKysgICAgICAgICAg ICAgbWlkZGxld2lkdGgsIG1pZGRsZWhlaWdodCA9IHNlbGYuR2V0TWlkZGxlSWNvbkRpbWVucygp CisrLSAgICAgICAgICAgIG1pZGRsZWljb24uU2V0V2lkdGgobWlkZGxld2lkdGgqc2VsZi5zY2Fs ZSkKKystICAgICAgICAgICAgbWlkZGxlaWNvbi5TZXRIZWlnaHQobWlkZGxlaGVpZ2h0KnNlbGYu c2NhbGUpCisrKyAgICAgICAgICAgIG1pZGRsZWljb24uU2V0V2lkdGgoaW50KG1pZGRsZXdpZHRo KnNlbGYuc2NhbGUpKQorKysgICAgICAgICAgICBtaWRkbGVpY29uLlNldEhlaWdodChpbnQobWlk ZGxlaGVpZ2h0KnNlbGYuc2NhbGUpKQorKyAgICAgICAgICAgICBtaWRkbGVhbmdsZSA9IChzdGFy dGFuZ2xlICsgZW5kYW5nbGUpLzIuMAorKyAKKysgICAgICAgICAgICAgbXcgPSBtaWRkbGVpY29u LkdldFdpZHRoKCkKKytAQCAtMTA2NCw3ICsxMDY2LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgor KyAgICAgICAgICAgICBuZXd4ID0gY2VudGVyWCArIDEuNSptdypjb3MobWlkZGxlYW5nbGUpIC0g bXcvMi4wCisrICAgICAgICAgICAgIG5ld3kgPSBjZW50ZXJZIC0gMS41Km1oKnNpbihtaWRkbGVh bmdsZSkgLSBtaC8yLjAKKysgCisrLSAgICAgICAgICAgIGRjLkRyYXdJY29uKG1pZGRsZWljb24s IG5ld3gsIG5ld3kpCisrKyAgICAgICAgICAgIGRjLkRyYXdJY29uKG1pZGRsZWljb24sIGludChu ZXd4KSwgaW50KG5ld3kpKQorKyAKKysgICAgICAgICAgICAgIyBSZXN0b3JlIEljb24gRGltZW5z aW9uLCBJZiBOb3QgU29tZXRoaW5nIFN0cmFuZ2UgSGFwcGVucworKyAgICAgICAgICAgICBtaWRk bGVpY29uLlNldFdpZHRoKG1pZGRsZXdpZHRoKQorK0BAIC0xMTA5LDUzICsxMTExLDYxIEBAIGRl ZiBEcmF3KHNlbGYsIGRjKToKKysgICAgICAgICAgICAgICAgIGlmIGhhbmRzdHlsZSA9PSAiQXJy b3ciOgorKyAgICAgICAgICAgICAgICAgICAgICMgRHJhdyBUaGUgU2hhZG93CisrICAgICAgICAg ICAgICAgICAgICAgc2hhZG93Y29sb3VyID0gc2VsZi5HZXRTaGFkb3dDb2xvdXIoKQorKy0gICAg ICAgICAgICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oc2hhZG93Y29sb3VyLCA1KmxvZyhzZWxm LnNjYWxlKzEpKSkKKysrICAgICAgICAgICAgICAgICAgICBkYy5TZXRQZW4od3guUGVuKHNoYWRv d2NvbG91ciwgaW50KDUqbG9nKHNlbGYuc2NhbGUrMSkpKSkKKysgICAgICAgICAgICAgICAgICAg ICBkYy5TZXRCcnVzaCh3eC5CcnVzaChzaGFkb3djb2xvdXIpKQorKyAgICAgICAgICAgICAgICAg ICAgIHNoYWRvd2Rpc3RhbmNlID0gMi4wKnNlbGYuc2NhbGUKKystICAgICAgICAgICAgICAgICAg ICBkYy5EcmF3TGluZShuZXd4ICsgc2hhZG93ZGlzdGFuY2UsIG5ld3kgKyBzaGFkb3dkaXN0YW5j ZSwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4YXJyICsgc2hhZG93ZGlzdGFu Y2UsIHlhcnIgKyBzaGFkb3dkaXN0YW5jZSkKKystCisrLSAgICAgICAgICAgICAgICAgICAgZGMu RHJhd1BvbHlnb24oWyh4MStzaGFkb3dkaXN0YW5jZSwgeTErc2hhZG93ZGlzdGFuY2UpLAorKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeDIrc2hhZG93ZGlzdGFuY2UsIHky K3NoYWRvd2Rpc3RhbmNlKSwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHgzK3NoYWRvd2Rpc3RhbmNlLCB5MytzaGFkb3dkaXN0YW5jZSldKQorKysgICAgICAgICAgICAg ICAgICAgIGRjLkRyYXdMaW5lKGludChuZXd4ICsgc2hhZG93ZGlzdGFuY2UpLCBpbnQobmV3eSAr IHNoYWRvd2Rpc3RhbmNlKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQo eGFyciArIHNoYWRvd2Rpc3RhbmNlKSwgaW50KHlhcnIgKyBzaGFkb3dkaXN0YW5jZSkpCisrKwor KysgICAgICAgICAgICAgICAgICAgIHBvaW50cyA9IFsoeDErc2hhZG93ZGlzdGFuY2UsIHkxK3No YWRvd2Rpc3RhbmNlKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHgyK3NoYWRv d2Rpc3RhbmNlLCB5MitzaGFkb3dkaXN0YW5jZSksCisrKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICh4MytzaGFkb3dkaXN0YW5jZSwgeTMrc2hhZG93ZGlzdGFuY2UpXQorKysgICAgICAg ICAgICAgICAgICAgIHBvaW50cyA9IFsoaW50KHBbMF0pLCBpbnQocFsxXSkpIGZvciBwIGluIHBv aW50c10KKysrICAgICAgICAgICAgICAgICAgICBkYy5EcmF3UG9seWdvbihwb2ludHMpCisrICAg ICAgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICAgICAgICMgRHJhdyBUaGUgU2hh ZG93CisrICAgICAgICAgICAgICAgICAgICAgc2hhZG93Y29sb3VyID0gc2VsZi5HZXRTaGFkb3dD b2xvdXIoKQorKyAgICAgICAgICAgICAgICAgICAgIGRjLlNldEJydXNoKHd4LkJydXNoKHNoYWRv d2NvbG91cikpCisrLSAgICAgICAgICAgICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihzaGFkb3dj b2xvdXIsIDEuMCkpCisrKyAgICAgICAgICAgICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihzaGFk b3djb2xvdXIsIDEpKQorKyAgICAgICAgICAgICAgICAgICAgIHNoYWRvd2Rpc3RhbmNlID0gMS41 KnNlbGYuc2NhbGUKKysgCisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24oWyh4 MStzaGFkb3dkaXN0YW5jZSwgeTErc2hhZG93ZGlzdGFuY2UpLAorKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoeDIrc2hhZG93ZGlzdGFuY2UsIHkyK3NoYWRvd2Rpc3RhbmNl KSwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHgzK3NoYWRvd2Rpc3Rh bmNlLCB5MytzaGFkb3dkaXN0YW5jZSksCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICh4NCtzaGFkb3dkaXN0YW5jZSwgeTQrc2hhZG93ZGlzdGFuY2UpXSkKKysrICAgICAg ICAgICAgICAgICAgICBwb2ludHMgPSBbKHgxK3NoYWRvd2Rpc3RhbmNlLCB5MStzaGFkb3dkaXN0 YW5jZSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4MitzaGFkb3dkaXN0YW5j ZSwgeTIrc2hhZG93ZGlzdGFuY2UpLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo eDMrc2hhZG93ZGlzdGFuY2UsIHkzK3NoYWRvd2Rpc3RhbmNlKSwKKysrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHg0K3NoYWRvd2Rpc3RhbmNlLCB5NCtzaGFkb3dkaXN0YW5jZSldCisr KyAgICAgICAgICAgICAgICAgICAgcG9pbnRzID0gWyhpbnQocFswXSksIGludChwWzFdKSkgZm9y IHAgaW4gcG9pbnRzXQorKysgICAgICAgICAgICAgICAgICAgIGRjLkRyYXdQb2x5Z29uKHBvaW50 cykKKysgCisrICAgICAgICAgICAgIGlmIGhhbmRzdHlsZSA9PSAiQXJyb3ciOgorKyAKKystICAg ICAgICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oaGFuZGNvbG91ciwgMS41KSkKKysrICAgICAg ICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oaGFuZGNvbG91ciwgMSkpCisrIAorKyAgICAgICAg ICAgICAgICAgIyBEcmF3IFRoZSBTbWFsbCBDaXJjbGUgSW4gVGhlIENlbnRlciAtLT4gVGhlIEhh bmQgIkhvbGRlciIKKysgICAgICAgICAgICAgICAgIGRjLlNldEJydXNoKHd4LkJydXNoKHNwZWVk YmFja2dyb3VuZCkpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3Q2lyY2xlKGNlbnRlclgsIGNl bnRlclksIDQqc2VsZi5zY2FsZSkKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdDaXJjbGUoY2Vu dGVyWCwgY2VudGVyWSwgaW50KDQqc2VsZi5zY2FsZSkpCisrIAorKy0gICAgICAgICAgICAgICAg ZGMuU2V0UGVuKHd4LlBlbihoYW5kY29sb3VyLCA1KmxvZyhzZWxmLnNjYWxlKzEpKSkKKysrICAg ICAgICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oaGFuZGNvbG91ciwgaW50KDUqbG9nKHNlbGYu c2NhbGUrMSkpKSkKKysgICAgICAgICAgICAgICAgICMgRHJhdyBUaGUgIkhhbmQiLCBBbiBBcnJv dworKy0gICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUobmV3eCwgbmV3eSwgeGFyciwgeWFycikK KysrICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChuZXd4KSwgaW50KG5ld3kpLCBpbnQo eGFyciksIGludCh5YXJyKSkKKysgCisrICAgICAgICAgICAgICAgICAjIERyYXcgVGhlIEFycm93 IFBvaW50ZXIKKysgICAgICAgICAgICAgICAgIGRjLlNldEJydXNoKHd4LkJydXNoKGhhbmRjb2xv dXIpKQorKy0gICAgICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24oWyh4MSwgeTEpLCAoeDIsIHky KSwgKHgzLCB5MyldKQorKysgICAgICAgICAgICAgICAgcG9pbnRzID0gWyh4MSwgeTEpLCAoeDIs IHkyKSwgKHgzLCB5MyldCisrKyAgICAgICAgICAgICAgICBwb2ludHMgPSBbKGludChwWzBdKSwg aW50KHBbMV0pKSBmb3IgcCBpbiBwb2ludHNdCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3UG9s eWdvbihwb2ludHMpCisrIAorKyAgICAgICAgICAgICBlbHNlOgorKyAKKysgICAgICAgICAgICAg ICAgICMgRHJhdyBUaGUgSGFuZCBQb2ludGVyCisrLSAgICAgICAgICAgICAgICBkYy5TZXRQZW4o d3guUGVuKGhhbmRjb2xvdXIsIDEuNSkpCisrKyAgICAgICAgICAgICAgICBkYy5TZXRQZW4od3gu UGVuKGhhbmRjb2xvdXIsIDEpKQorKyAgICAgICAgICAgICAgICAgZGMuU2V0QnJ1c2god3guQnJ1 c2goaGFuZGNvbG91cikpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3UG9seWdvbihbKHgxLCB5 MSksICh4MiwgeTIpLCAoeDMsIHkzKSwgKHg0LCB5NCldKQorKysgICAgICAgICAgICAgICAgcG9p bnRzID0gWyh4MSwgeTEpLCAoeDIsIHkyKSwgKHgzLCB5MyksICh4NCwgeTQpXQorKysgICAgICAg ICAgICAgICAgcG9pbnRzID0gWyhpbnQocFswXSksIGludChwWzFdKSkgZm9yIHAgaW4gcG9pbnRz XQorKysgICAgICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24ocG9pbnRzKQorKyAKKysgICAgICAg ICAgICAgICAgICMgRHJhdyBUaGUgU21hbGwgQ2lyY2xlIEluIFRoZSBDZW50ZXIgLS0+IFRoZSBI YW5kICJIb2xkZXIiCisrICAgICAgICAgICAgICAgICBkYy5TZXRCcnVzaCh3eC5CcnVzaChzcGVl ZGJhY2tncm91bmQpKQorKy0gICAgICAgICAgICAgICAgZGMuRHJhd0NpcmNsZShjZW50ZXJYLCBj ZW50ZXJZLCA0KnNlbGYuc2NhbGUpCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3Q2lyY2xlKGNl bnRlclgsIGNlbnRlclksIGludCg0KnNlbGYuc2NhbGUpKQorKyAKKysgCisrICAgICBkZWYgU2V0 SW50ZXJ2YWxzKHNlbGYsIGludGVydmFscz1Ob25lKToKKytAQCAtMTUyNyw3ICsxNTM3LDcgQEAg ZGVmIFNldE1pZGRsZVRleHRGb250KHNlbGYsIGZvbnQ9Tm9uZSk6CisrIAorKyAgICAgICAgIGlm IGZvbnQgaXMgTm9uZToKKysgICAgICAgICAgICAgc2VsZi5fbWlkZGxldGV4dGZvbnQgPSB3eC5G b250KDEsIHd4LkZPTlRGQU1JTFlfU1dJU1MsIHd4LkZPTlRTVFlMRV9OT1JNQUwsIHd4LkZPTlRX RUlHSFRfQk9MRCwgRmFsc2UpCisrLSAgICAgICAgICAgIHNlbGYuX21pZGRsZXRleHRzaXplID0g MTAuMAorKysgICAgICAgICAgICBzZWxmLl9taWRkbGV0ZXh0c2l6ZSA9IDEwCisrICAgICAgICAg ICAgIHNlbGYuX21pZGRsZXRleHRmb250LlNldFBvaW50U2l6ZShzZWxmLl9taWRkbGV0ZXh0c2l6 ZSkKKysgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICBzZWxmLl9taWRkbGV0ZXh0Zm9udCA9 IGZvbnQKKytAQCAtMTU5OSw3ICsxNjA5LDcgQEAgZGVmIENpcmNsZUNvb3JkcyhzZWxmLCByYWRp dXMsIGFuZ2xlLCBjZW50ZXJYLCBjZW50ZXJZKToKKysgICAgICAgICB4ID0gcmFkaXVzKmNvcyhh bmdsZSkgKyBjZW50ZXJYCisrICAgICAgICAgeSA9IHJhZGl1cypzaW4oYW5nbGUpICsgY2VudGVy WQorKyAKKystICAgICAgICByZXR1cm4geCwgeQorKysgICAgICAgIHJldHVybiBpbnQoeCksIGlu dCh5KQorKyAKKysgCisrICAgICBkZWYgR2V0SW50ZXJzZWN0aW9uKHNlbGYsIGN1cnJlbnQsIGlu dGVydmFscyk6CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvc3VwZXJ0b29sdGlwLnB5IGIvd3gv bGliL2Fndy9zdXBlcnRvb2x0aXAucHkKKytpbmRleCBhOTJjZTEwZDEuLmNkMGYwYzlmNyAxMDA2 NDQKKystLS0gYS93eC9saWIvYWd3L3N1cGVydG9vbHRpcC5weQorKysrKyBiL3d4L2xpYi9hZ3cv c3VwZXJ0b29sdGlwLnB5CisrQEAgLTI5NSw4ICsyOTUsOCBAQCBkZWYgT25QYWludChzZWxmLCBl dmVudCk6CisrIAorKyAgICAgICAgICMgR2V0IHRoZSB1c2VyIG9wdGlvbnMgZm9yIGhlYWRlciwg Yml0bWFwcyBldGMuLi4KKysgICAgICAgICBkcmF3SGVhZGVyLCBkcmF3Rm9vdGVyID0gY2xhc3NQ YXJlbnQuR2V0RHJhd0hlYWRlckxpbmUoKSwgY2xhc3NQYXJlbnQuR2V0RHJhd0Zvb3RlckxpbmUo KQorKy0gICAgICAgIHRvcFJlY3QgPSB3eC5SZWN0KGZyYW1lUmVjdC54LCBmcmFtZVJlY3QueSwg ZnJhbWVSZWN0LndpZHRoLCBmcmFtZVJlY3QuaGVpZ2h0LzIpCisrLSAgICAgICAgYm90dG9tUmVj dCA9IHd4LlJlY3QoZnJhbWVSZWN0LngsIGZyYW1lUmVjdC55K2ZyYW1lUmVjdC5oZWlnaHQvMiwg ZnJhbWVSZWN0LndpZHRoLCBmcmFtZVJlY3QuaGVpZ2h0LzIrMSkKKysrICAgICAgICB0b3BSZWN0 ID0gd3guUmVjdChmcmFtZVJlY3QueCwgZnJhbWVSZWN0LnksIGZyYW1lUmVjdC53aWR0aCwgZnJh bWVSZWN0LmhlaWdodC8vMikKKysrICAgICAgICBib3R0b21SZWN0ID0gd3guUmVjdChmcmFtZVJl Y3QueCwgZnJhbWVSZWN0LnkrZnJhbWVSZWN0LmhlaWdodC8vMiwgZnJhbWVSZWN0LndpZHRoLCBm cmFtZVJlY3QuaGVpZ2h0Ly8yKzEpCisrICAgICAgICAgIyBGaWxsIHRoZSB0cmlwbGUtZ3JhZGll bnQKKysgICAgICAgICBkYy5HcmFkaWVudEZpbGxMaW5lYXIodG9wUmVjdCwgdG9wQ29sb3VyLCBt aWRkbGVDb2xvdXIsIHd4LlNPVVRIKQorKyAgICAgICAgIGRjLkdyYWRpZW50RmlsbExpbmVhcihi b3R0b21SZWN0LCBtaWRkbGVDb2xvdXIsIGJvdHRvbUNvbG91ciwgd3guU09VVEgpCisrQEAgLTMy NCw5ICszMjQsOSBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgbm9ybWFs VGV4dCA9IGNsYXNzUGFyZW50LkdldFRleHRDb2xvdXIoKQorKyAgICAgICAgIGlmIGhlYWRlcjoK KysgICAgICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQobm9ybWFsVGV4dCkKKystICAgICAg ICAgICAgZGMuRHJhd1RleHQoaGVhZGVyLCBibXBYUG9zK2JtcFdpZHRoK3NlbGYuX3NwYWNpbmcs IChoZWlnaHQtdGV4dEhlaWdodCtzZWxmLl9zcGFjaW5nKS8yKQorKysgICAgICAgICAgICBkYy5E cmF3VGV4dChoZWFkZXIsIGJtcFhQb3MrYm1wV2lkdGgrc2VsZi5fc3BhY2luZywgKGhlaWdodC10 ZXh0SGVpZ2h0K3NlbGYuX3NwYWNpbmcpLy8yKQorKyAgICAgICAgIGlmIGhlYWRlckJtcCBhbmQg aGVhZGVyQm1wLklzT2soKToKKystICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChoZWFkZXJCbXAs IGJtcFhQb3MsIChoZWlnaHQtYm1wSGVpZ2h0K3NlbGYuX3NwYWNpbmcpLzIsIFRydWUpCisrKyAg ICAgICAgICAgIGRjLkRyYXdCaXRtYXAoaGVhZGVyQm1wLCBibXBYUG9zLCAoaGVpZ2h0LWJtcEhl aWdodCtzZWxmLl9zcGFjaW5nKS8vMiwgVHJ1ZSkKKysgCisrICAgICAgICAgaWYgaGVhZGVyIG9y IChoZWFkZXJCbXAgYW5kIGhlYWRlckJtcC5Jc09rKCkpOgorKyAgICAgICAgICAgICB5UG9zICs9 IGhlaWdodAorK0BAIC0zNzYsNyArMzc2LDcgQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgor KyAgICAgICAgICAgICAgICAgbWVzc2FnZUhlaWdodCArPSB0ZXh0SGVpZ2h0CisrIAorKyAgICAg ICAgICAgICAgICAgeFRleHQgPSAoYm1wV2lkdGggKyAyICogc2VsZi5fc3BhY2luZykgaWYgYm1w V2lkdGggPiAwIGVsc2Ugc2VsZi5fc3BhY2luZworKy0gICAgICAgICAgICAgICAgeVRleHQgKz0g dGV4dEhlaWdodC8yK3NlbGYuX3NwYWNpbmcKKysrICAgICAgICAgICAgICAgIHlUZXh0ICs9IHRl eHRIZWlnaHQvLzIrc2VsZi5fc3BhY2luZworKyAgICAgICAgICAgICAgICAgbWF4V2lkdGggPSBt YXgoeFRleHQgKyB0ZXh0V2lkdGggKyBzZWxmLl9zcGFjaW5nLCBtYXhXaWR0aCkKKysgICAgICAg ICAgICAgICAgIGRjLkRyYXdUZXh0KGxpbmUsIHhUZXh0LCB5VGV4dCkKKysgICAgICAgICAgICAg ICAgIGlmIGlzTGluazoKKytAQCAtNDEyLDggKzQxMiw4IEBAIGRlZiBPblBhaW50KHNlbGYsIGV2 ZW50KToKKysgICAgICAgICAgICAgaWYgZHJhd0Zvb3RlcjoKKysgICAgICAgICAgICAgICAgICMg RHJhdyB0aGUgc2VwYXJhdG9yIGxpbmUgYmVmb3JlIHRoZSBmb290ZXIKKysgICAgICAgICAgICAg ICAgIGRjLlNldFBlbih3eC5HUkVZX1BFTikKKystICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5l KHNlbGYuX3NwYWNpbmcsIHlQb3Mtc2VsZi5fc3BhY2luZy8yK3RvQWRkLAorKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgd2lkdGgtc2VsZi5fc3BhY2luZywgeVBvcy1zZWxmLl9zcGFjaW5n LzIrdG9BZGQpCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShzZWxmLl9zcGFjaW5nLCB5 UG9zLXNlbGYuX3NwYWNpbmcvLzIrdG9BZGQsCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB3aWR0aC1zZWxmLl9zcGFjaW5nLCB5UG9zLXNlbGYuX3NwYWNpbmcvLzIrdG9BZGQpCisrICAg ICAgICAgIyBEcmF3IHRoZSBmb290ZXIgYW5kIGZvb3RlciBiaXRtYXAgKGlmIGFueSkKKysgICAg ICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChub3JtYWxUZXh0KQorKyAgICAgICAgIGhlaWdodCA9 IG1heCh0ZXh0SGVpZ2h0LCBibXBIZWlnaHQpCisrQEAgLTQyNCw3ICs0MjQsNyBAQCBkZWYgT25Q YWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgIG1heFdpZHRoID0gbWF4KGJtcFhQb3Mg KyBibXBXaWR0aCArIChzZWxmLl9zcGFjaW5nKjIpICsgdGV4dFdpZHRoLCBtYXhXaWR0aCkKKysg ICAgICAgICBpZiBmb290ZXJCbXAgYW5kIGZvb3RlckJtcC5Jc09rKCk6CisrICAgICAgICAgICAg IHRvQWRkID0gKGhlaWdodCAtIGJtcEhlaWdodCArIHNlbGYuX3NwYWNpbmcpIC8gMgorKy0gICAg ICAgICAgICBkYy5EcmF3Qml0bWFwKGZvb3RlckJtcCwgYm1wWFBvcywgeVBvcyArIHRvQWRkLCBU cnVlKQorKysgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGZvb3RlckJtcCwgYm1wWFBvcywgaW50 KHlQb3MgKyB0b0FkZCksIFRydWUpCisrICAgICAgICAgICAgIG1heFdpZHRoID0gbWF4KGZvb3Rl ckJtcC5HZXRTaXplKCkuR2V0V2lkdGgoKSArIGJtcFhQb3MsIG1heFdpZHRoKQorKyAKKysgICAg ICAgICBtYXhIZWlnaHQgPSB5UG9zICsgaGVpZ2h0ICsgdG9BZGQKKytAQCAtODE1LDcgKzgxNSw3 IEBAIGRlZiBTZXRTdGFydERlbGF5KHNlbGYsIGRlbGF5PTEpOgorKyAgICAgICAgIDpwYXJhbSBg ZGVsYXlgOiB0aGUgZGVsYXkgaW4gc2Vjb25kcy4KKysgICAgICAgICAiIiIKKysgCisrLSAgICAg ICAgc2VsZi5fc3RhcnREZWxheVRpbWUgPSBmbG9hdChkZWxheSkKKysrICAgICAgICBzZWxmLl9z dGFydERlbGF5VGltZSA9IGludChkZWxheSkKKysgCisrIAorKyAgICAgZGVmIEdldFN0YXJ0RGVs YXkoc2VsZik6CisrQEAgLTgzMSw3ICs4MzEsNyBAQCBkZWYgU2V0RW5kRGVsYXkoc2VsZiwgZGVs YXk9MWU2KToKKysgICAgICAgICA6cGFyYW0gYGRlbGF5YDogdGhlIGRlbGF5IGluIHNlY29uZHMu CisrICAgICAgICAgIiIiCisrIAorKy0gICAgICAgIHNlbGYuX2VuZERlbGF5VGltZSA9IGZsb2F0 KGRlbGF5KQorKysgICAgICAgIHNlbGYuX2VuZERlbGF5VGltZSA9IGludChkZWxheSkKKysgCisr IAorKyAgICAgZGVmIEdldEVuZERlbGF5KHNlbGYpOgorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3 L3RvYXN0ZXJib3gucHkgYi93eC9saWIvYWd3L3RvYXN0ZXJib3gucHkKKytpbmRleCBiNzM0Mjlk ZDIuLjhlZmI1ODY5YiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3RvYXN0ZXJib3gucHkKKysr KysgYi93eC9saWIvYWd3L3RvYXN0ZXJib3gucHkKKytAQCAtMTMxNiwxMSArMTMxNiwxMSBAQCBk ZWYgX2dldFRleHRDb29yZHMoc2VsZiwgZGMpOgorKyAgICAgICAgIGZvciBsaW5lIGluIGxpbmVz OgorKyAgICAgICAgICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudChsaW5lKQorKyAgICAgICAg ICAgICBmaCArPSBoICsgdGV4dFBhZGRpbmcKKystICAgICAgICB5ID0gKHRoIC0gZmgpIC8gMjsg Y29vcmRzID0gW10KKysrICAgICAgICB5ID0gKHRoIC0gZmgpIC8vIDI7IGNvb3JkcyA9IFtdCisr IAorKyAgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgorKyAgICAgICAgICAgICB3LCBoID0gZGMu R2V0VGV4dEV4dGVudChsaW5lKQorKy0gICAgICAgICAgICB4ID0gKHR3IC0gdykgLyAyCisrKyAg ICAgICAgICAgIHggPSAodHcgLSB3KSAvLyAyCisrICAgICAgICAgICAgIGNvb3Jkcy5hcHBlbmQo KHgsIHkpKQorKyAgICAgICAgICAgICB5ICs9IGggKyB0ZXh0UGFkZGluZworKyAKKytkaWZmIC0t Z2l0IGEvd3gvbGliL2Fndy91bHRpbWF0ZWxpc3RjdHJsLnB5IGIvd3gvbGliL2Fndy91bHRpbWF0 ZWxpc3RjdHJsLnB5CisraW5kZXggMTRmYzQxZjg2Li5jYWE1ZTVjZjQgMTAwNjQ0CisrLS0tIGEv d3gvbGliL2Fndy91bHRpbWF0ZWxpc3RjdHJsLnB5CisrKysrIGIvd3gvbGliL2Fndy91bHRpbWF0 ZWxpc3RjdHJsLnB5CisrQEAgLTkxNCw3ICs5MTQsNyBAQCBkZWYgRHJhdyhzZWxmLCBpbmRleCwg ZGMsIHgsIHksIGZsYWdzLCBzb2xpZEJhY2tncm91bmQ9VHJ1ZSk6CisrICAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiV3JvbmcgaW5kZXggaW4gaW1hZ2UgbGlzdCIpCisrIAorKyAgICAgICAg IGJtcCA9IHNlbGYuX2ltYWdlc1tpbmRleF0KKystICAgICAgICBkYy5EcmF3Qml0bWFwKGJtcCwg eCwgeSwgKGZsYWdzICYgd3guSU1BR0VMSVNUX0RSQVdfVFJBTlNQQVJFTlQpID4gMCkKKysrICAg ICAgICBkYy5EcmF3Qml0bWFwKGJtcCwgeCwgaW50KHkpLCAoZmxhZ3MgJiB3eC5JTUFHRUxJU1Rf RFJBV19UUkFOU1BBUkVOVCkgPiAwKQorKyAKKysgICAgICAgICByZXR1cm4gVHJ1ZQorKyAKKytA QCAtNDAyMiw3ICs0MDIyLDcgQEAgZGVmIFNldFBvc2l0aW9uKHNlbGYsIHgsIHksIHNwYWNpbmcp OgorKyAKKysgICAgICAgICAgICAgaWYgaXRlbS5IYXNJbWFnZSgpOgorKyAKKystICAgICAgICAg ICAgICAgIHNlbGYuX2dpLl9yZWN0SWNvbi54ID0gc2VsZi5fZ2kuX3JlY3RBbGwueCArIDQgKyAo c2VsZi5fZ2kuX3JlY3RBbGwud2lkdGggLSBzZWxmLl9naS5fcmVjdEljb24ud2lkdGgpLzIKKysr ICAgICAgICAgICAgICAgIHNlbGYuX2dpLl9yZWN0SWNvbi54ID0gc2VsZi5fZ2kuX3JlY3RBbGwu eCArIDQgKyAoc2VsZi5fZ2kuX3JlY3RBbGwud2lkdGggLSBzZWxmLl9naS5fcmVjdEljb24ud2lk dGgpLy8yCisrICAgICAgICAgICAgICAgICBzZWxmLl9naS5fcmVjdEljb24ueSA9IHNlbGYuX2dp Ll9yZWN0QWxsLnkgKyA0CisrIAorKyAgICAgICAgICAgICBpZiBpdGVtLkhhc1RleHQoKToKKytA QCAtNDAzMCw3ICs0MDMwLDcgQEAgZGVmIFNldFBvc2l0aW9uKHNlbGYsIHgsIHksIHNwYWNpbmcp OgorKyAgICAgICAgICAgICAgICAgaWYgc2VsZi5fZ2kuX3JlY3RMYWJlbC53aWR0aCA+IHNwYWNp bmc6CisrICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZ2kuX3JlY3RMYWJlbC54ID0gc2VsZi5f Z2kuX3JlY3RBbGwueCArIDIKKysgICAgICAgICAgICAgICAgIGVsc2U6CisrLSAgICAgICAgICAg ICAgICAgICAgc2VsZi5fZ2kuX3JlY3RMYWJlbC54ID0gc2VsZi5fZ2kuX3JlY3RBbGwueCArIDIg KyAoc3BhY2luZy8yKSAtIChzZWxmLl9naS5fcmVjdExhYmVsLndpZHRoLzIpCisrKyAgICAgICAg ICAgICAgICAgICAgc2VsZi5fZ2kuX3JlY3RMYWJlbC54ID0gc2VsZi5fZ2kuX3JlY3RBbGwueCAr IDIgKyAoc3BhY2luZy8vMikgLSAoc2VsZi5fZ2kuX3JlY3RMYWJlbC53aWR0aC8vMikKKysgCisr ICAgICAgICAgICAgICAgICBzZWxmLl9naS5fcmVjdExhYmVsLnkgPSBzZWxmLl9naS5fcmVjdEFs bC55ICsgc2VsZi5fZ2kuX3JlY3RBbGwuaGVpZ2h0ICsgMiAtIHNlbGYuX2dpLl9yZWN0TGFiZWwu aGVpZ2h0CisrICAgICAgICAgICAgICAgICBzZWxmLl9naS5fcmVjdEhpZ2hsaWdodC54ID0gc2Vs Zi5fZ2kuX3JlY3RMYWJlbC54IC0gMgorK0BAIC00NTQ2LDcgKzQ1NDYsNyBAQCBkZWYgRHJhd0lu UmVwb3J0TW9kZShzZWxmLCBkYywgbGluZSwgcmVjdCwgcmVjdEhMLCBoaWdobGlnaHRlZCwgY3Vy cmVudCwgZW5hYmxlZAorKyAgICAgICAgICAgICAgICAgIyBXZSBnb3QgYSBjaGVja2JveC10eXBl IGl0ZW0KKysgICAgICAgICAgICAgICAgIGl4LCBpeSA9IHNlbGYuX293bmVyLkdldENoZWNrYm94 SW1hZ2VTaXplKCkKKysgICAgICAgICAgICAgICAgIGNoZWNrZWQgPSBpdGVtLklzQ2hlY2tlZCgp CisrLSAgICAgICAgICAgICAgICBzZWxmLl9vd25lci5EcmF3Q2hlY2tib3goZGMsIHhPbGQsIHkg KyAoaGVpZ2h0LWl5KzEpLzIsIGl0ZW0uR2V0S2luZCgpLCBjaGVja2VkLCBlbmFibGVkKQorKysg ICAgICAgICAgICAgICAgc2VsZi5fb3duZXIuRHJhd0NoZWNrYm94KGRjLCB4T2xkLCB5ICsgKGhl aWdodC1peSsxKS8vMiwgaXRlbS5HZXRLaW5kKCksIGNoZWNrZWQsIGVuYWJsZWQpCisrICAgICAg ICAgICAgICAgICB4T2xkICs9IGl4CisrICAgICAgICAgICAgICAgICB3aWR0aCAtPSBpeAorKyAK KytAQCAtNDU1Nyw3ICs0NTU3LDcgQEAgZGVmIERyYXdJblJlcG9ydE1vZGUoc2VsZiwgZGMsIGxp bmUsIHJlY3QsIHJlY3RITCwgaGlnaGxpZ2h0ZWQsIGN1cnJlbnQsIGVuYWJsZWQKKysgICAgICAg ICAgICAgICAgIGZvciBpbWcgaW4gaW1hZ2VzOgorKyAKKysgICAgICAgICAgICAgICAgICAgICBp eCwgaXkgPSBzZWxmLl9vd25lci5HZXRJbWFnZVNpemUoW2ltZ10pCisrLSAgICAgICAgICAgICAg ICAgICAgc2VsZi5fb3duZXIuRHJhd0ltYWdlKGltZywgZGMsIHhPbGQsIHkgKyAoaGVpZ2h0LWl5 KS8yLCBlbmFibGVkKQorKysgICAgICAgICAgICAgICAgICAgIHNlbGYuX293bmVyLkRyYXdJbWFn ZShpbWcsIGRjLCB4T2xkLCB5ICsgKGhlaWdodC1peSkvLzIsIGVuYWJsZWQpCisrIAorKyAgICAg ICAgICAgICAgICAgICAgIHhPbGQgKz0gaXgKKysgICAgICAgICAgICAgICAgICAgICB3aWR0aCAt PSBpeAorK0BAIC01MjMwLDcgKzUyMzAsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6Cisr ICAgICAgICAgICAgICAgICAjIFdlIGdvdCBhIGNoZWNrYm94LXR5cGUgaXRlbQorKyAgICAgICAg ICAgICAgICAgaXgsIGl5ID0gc2VsZi5fb3duZXIuR2V0Q2hlY2tib3hJbWFnZVNpemUoKQorKyAg ICAgICAgICAgICAgICAgIyBXZSBkcmF3IGl0IG9uIHRoZSBsZWZ0LCBhbHdheXMKKystICAgICAg ICAgICAgICAgIHNlbGYuX293bmVyLkRyYXdDaGVja2JveChkYywgeCArIEhFQURFUl9PRkZTRVRf WCwgSEVBREVSX09GRlNFVF9ZICsgKGggLSA0IC0gaXkpLzIsIGtpbmQsIGNoZWNrZWQsIGVuYWJs ZWQpCisrKyAgICAgICAgICAgICAgICBzZWxmLl9vd25lci5EcmF3Q2hlY2tib3goZGMsIHggKyBI RUFERVJfT0ZGU0VUX1gsIEhFQURFUl9PRkZTRVRfWSArIChoIC0gNCAtIGl5KS8vMiwga2luZCwg Y2hlY2tlZCwgZW5hYmxlZCkKKysgICAgICAgICAgICAgICAgIHdjaGVjayArPSBpeCArIEhFQURF Ul9JTUFHRV9NQVJHSU5fSU5fUkVQT1JUX01PREUKKysgICAgICAgICAgICAgICAgIGN3IC09IGl4 ICsgSEVBREVSX0lNQUdFX01BUkdJTl9JTl9SRVBPUlRfTU9ERQorKyAKKytAQCAtNjgxOSw3ICs2 ODE5LDcgQEAgZGVmIEhpdFRlc3RMaW5lKHNlbGYsIGxpbmUsIHgsIHkpOgorKyAgICAgICAgICAg ICAgICAgICAgICMgV2UgZ290IGEgY2hlY2tib3gtdHlwZSBpdGVtCisrICAgICAgICAgICAgICAg ICAgICAgaXgsIGl5ID0gc2VsZi5HZXRDaGVja2JveEltYWdlU2l6ZSgpCisrICAgICAgICAgICAg ICAgICAgICAgTEggPSBzZWxmLkdldExpbmVIZWlnaHQobGluZSkKKystICAgICAgICAgICAgICAg ICAgICByZWN0ID0gd3guUmVjdCh4T2xkLCBsaW5lWSArIExILzIgLSBpeS8yLCBpeCwgaXkpCisr KyAgICAgICAgICAgICAgICAgICAgcmVjdCA9IHd4LlJlY3QoeE9sZCwgbGluZVkgKyBMSC8vMiAt IGl5Ly8yLCBpeCwgaXkpCisrICAgICAgICAgICAgICAgICAgICAgaWYgcmVjdC5Db250YWlucygo eCwgeSkpOgorKyAgICAgICAgICAgICAgICAgICAgICAgICBuZXdJdGVtID0gc2VsZi5HZXRQYXJl bnQoKS5HZXRJdGVtKGxpbmUsIGNvbCkKKysgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IG5ld0l0ZW0sIFVMQ19ISVRURVNUX09OSVRFTUNIRUNLCisrQEAgLTc5MzcsMTMgKzc5MzcsMTMg QEAgZGVmIE1vdmVUb0l0ZW0oc2VsZiwgaXRlbSk6CisrICAgICAgICAgICAgICAgICAgICAgd2hp bGUgc3RhcnRfeSA+IHZpZXdfeToKKysgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfeSAt PSBTQ1JPTExfVU5JVF9ZCisrIAorKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuU2Nyb2xsKC0x LCBzdGFydF95L1NDUk9MTF9VTklUX1kpCisrKyAgICAgICAgICAgICAgICAgICAgc2VsZi5TY3Jv bGwoLTEsIHN0YXJ0X3kvL1NDUk9MTF9VTklUX1kpCisrIAorKyAgICAgICAgICAgICAgICAgaWYg c3RhcnRfeSArIGhlaWdodCA+IHZpZXdfeSArIGNsaWVudF9oOgorKyAgICAgICAgICAgICAgICAg ICAgIHdoaWxlIHN0YXJ0X3kgKyBoZWlnaHQgPCB2aWV3X3kgKyBjbGllbnRfaDoKKysgICAgICAg ICAgICAgICAgICAgICAgICAgc3RhcnRfeSArPSBTQ1JPTExfVU5JVF9ZCisrIAorKy0gICAgICAg ICAgICAgICAgICAgIHNlbGYuU2Nyb2xsKC0xLCAoc3RhcnRfeStoZWlnaHQtY2xpZW50X2grU0NS T0xMX1VOSVRfWSkvU0NST0xMX1VOSVRfWSkKKysrICAgICAgICAgICAgICAgICAgICBzZWxmLlNj cm9sbCgtMSwgKHN0YXJ0X3kraGVpZ2h0LWNsaWVudF9oK1NDUk9MTF9VTklUX1kpLy9TQ1JPTExf VU5JVF9ZKQorKyAKKysgICAgICAgICBlbHNlOiAjICFyZXBvcnQKKysgCisrQEAgLTc5NjAsNyAr Nzk2MCw3IEBAIGRlZiBNb3ZlVG9JdGVtKHNlbGYsIGl0ZW0pOgorKyAgICAgICAgICAgICBpZiBy ZWN0LnkgKyByZWN0LmhlaWdodCAtIDUgPiB2aWV3X3kgKyBjbGllbnRfaDoKKysgICAgICAgICAg ICAgICAgIHN5ID0gKHJlY3QueSArIHJlY3QuaGVpZ2h0IC0gY2xpZW50X2ggKyBoTGluZSkvaExp bmUKKysgCisrLSAgICAgICAgICAgIHNlbGYuU2Nyb2xsKHN4LCBzeSkKKysrICAgICAgICAgICAg c2VsZi5TY3JvbGwoaW50KHN4KSwgaW50KHN5KSkKKysgCisrIAorKyAjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy94bHNncmlkLnB5IGIvd3gvbGliL2Fndy94 bHNncmlkLnB5CisraW5kZXggYjUwNWFlYmI0Li4xNzI2N2ZhYmMgMTAwNjQ0CisrLS0tIGEvd3gv bGliL2Fndy94bHNncmlkLnB5CisrKysrIGIvd3gvbGliL2Fndy94bHNncmlkLnB5CisrQEAgLTk2 NSw3ICs5NjUsNyBAQCBkZWYgRHJhdyhzZWxmLCBkYywgcmVjdCk6CisrICAgICAgICAgICAgIHhw ID0geGMgLSAodGV4dF93aWR0aC8yKSp4c2hpZnQgLSAodGV4dF9oZWlnaHQvMikqeXNoaWZ0Cisr ICAgICAgICAgICAgIHlwID0geWMgKyAodGV4dF93aWR0aC8yKSp5c2hpZnQgLSAodGV4dF9oZWln aHQvMikqeHNoaWZ0CisrIAorKy0gICAgICAgICAgICBkYy5EcmF3Um90YXRlZFRleHQodmFsdWUs IHhwLCB5cCwgc2VsZi5yb3RhdGlvbikKKysrICAgICAgICAgICAgZGMuRHJhd1JvdGF0ZWRUZXh0 KHZhbHVlLCBpbnQoeHApLCBpbnQoeXApLCBzZWxmLnJvdGF0aW9uKQorKyAKKysgICAgICAgICBl bHNlOgorKyAKKytAQCAtMTEyNSw3ICsxMTI1LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMsIHJlY3Qp OgorKyAgICAgICAgICAgICBpZiBmb250LmVzY2FwZW1lbnQgPT0gMToKKysgICAgICAgICAgICAg ICAgIHlwb3MgPSB5cG9zIC0gbWF4SCArIGhlaWdodAorKyAKKystICAgICAgICAgICAgZGMuRHJh d1RleHQoY2h1bmssIHN0YXJ0LCB5cG9zKQorKysgICAgICAgICAgICBkYy5EcmF3VGV4dChjaHVu aywgc3RhcnQsIGludCh5cG9zKSkKKysgICAgICAgICAgICAgc3RhcnQgKz0gd2lkdGgKKysgCisr IAorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L3pvb21iYXIucHkgYi93eC9saWIvYWd3L3pvb21i YXIucHkKKytpbmRleCAxZTZlYzVkYTMuLjhjMmFmZDA1OCAxMDA2NDQKKystLS0gYS93eC9saWIv YWd3L3pvb21iYXIucHkKKysrKysgYi93eC9saWIvYWd3L3pvb21iYXIucHkKKytAQCAtNDYzLDcg KzQ2Myw3IEBAIGRlZiBTZXRTaXplKHNlbGYsIHdpZHRoLCBoZWlnaHQpOgorKyAgICAgZGVmIEdl dFBvc2l0aW9uKHNlbGYpOgorKyAgICAgICAgICIiIiBSZXR1cm5zIHRoZSBidXR0b24gcG9zaXRp b24uICIiIgorKyAKKystICAgICAgICByZXR1cm4gd3guUG9pbnQoc2VsZi5fbGVmdCwgc2VsZi5f dG9wKQorKysgICAgICAgIHJldHVybiB3eC5Qb2ludChpbnQoc2VsZi5fbGVmdCksIGludChzZWxm Ll90b3ApKQorKyAKKysgCisrICAgICBkZWYgR2V0U2l6ZShzZWxmKToKKytAQCAtNjAxLDcgKzYw MSw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBiaXRtYXA9Tm9uZSk6CisrICAgICBkZWYgR2V0UG9z aXRpb24oc2VsZik6CisrICAgICAgICAgIiIiIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIDpjbGFz czpgd3guSW1hZ2VCYXJgLCBhcyBhIDpjbGFzczpgd3guUG9pbnRgLiAiIiIKKysgCisrLSAgICAg ICAgcmV0dXJuIHd4LlBvaW50KHNlbGYuX2xlZnQsIHNlbGYuX3RvcCkKKysrICAgICAgICByZXR1 cm4gd3guUG9pbnQoaW50KHNlbGYuX2xlZnQpLCBpbnQoc2VsZi5fdG9wKSkKKysgCisrIAorKyAg ICAgZGVmIEdldFNpemUoc2VsZik6CisrQEAgLTY2MCw3ICs2NjAsNyBAQCBkZWYgU2V0QmFyQ29s b3VyKHNlbGYsIGNvbG91ciwgeFNpemU9Tm9uZSwgeVNpemU9Tm9uZSk6CisrICAgICAgICAgaWYg eFNpemUgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgIHNlbGYuX3NpemUgPSB3eC5TaXplKHhT aXplLCB5U2l6ZSkKKysgCisrLSAgICAgICAgYml0bWFwLlJlc2NhbGUoc2VsZi5fc2l6ZS53aWR0 aCwgc2VsZi5fc2l6ZS5oZWlnaHQvMikKKysrICAgICAgICBiaXRtYXAuUmVzY2FsZShzZWxmLl9z aXplLndpZHRoLCBzZWxmLl9zaXplLmhlaWdodC8vMikKKysgCisrICAgICAgICAgcjEsIGcxLCBi MSA9IHNlbGYuX3N0YXJ0Q29sb3VyLlJlZCgpLCBzZWxmLl9zdGFydENvbG91ci5HcmVlbigpLCBz ZWxmLl9zdGFydENvbG91ci5CbHVlKCkKKysgICAgICAgICByMiwgZzIsIGIyID0gY29sb3VyLlJl ZCgpLCBjb2xvdXIuR3JlZW4oKSwgY29sb3VyLkJsdWUoKQorK0BAIC0xMDY1LDcgKzEwNjUsNyBA QCBkZWYgUmVzZXRTaXplKHNlbGYpOgorKyAgICAgICAgICAgICB5U2l6ZSArPSB5ZXh0ZW50Cisr IAorKyAgICAgICAgIGlmIHNlbGYuX3Nob3dSZWZsZWN0aW9uczoKKystICAgICAgICAgICAgeVNp emUgKz0gc2VsZi5fYnV0dG9uU2l6ZS8yCisrKyAgICAgICAgICAgIHlTaXplICs9IHNlbGYuX2J1 dHRvblNpemUvLzIKKysgICAgICAgICBpZiBzZWxmLl9jZW50ZXJab29tOgorKyAgICAgICAgICAg ICB5U2l6ZSArPSBzZWxmLl9idXR0b25TaXplCisrIAorK0BAIC0xMjQwLDcgKzEyNDAsNyBAQCBk ZWYgRHJhd0xhYmVscyhzZWxmLCBkYyk6CisrICAgICAgICAgICAgIHRleHRXaWR0aCwgdGV4dEhl aWdodCA9IGRjLkdldFRleHRFeHRlbnQobGFiZWwpCisrICAgICAgICAgICAgIGJ1dHRvblBvcyA9 IGJ1dHRvbi5HZXRQb3NpdGlvbigpCisrICAgICAgICAgICAgIGJ1dHRvblNpemUgPSBidXR0b24u R2V0U2l6ZSgpCisrLSAgICAgICAgICAgIHhwb3MgPSBidXR0b25Qb3MueCArIChidXR0b25TaXpl LndpZHRoIC0gdGV4dFdpZHRoKS8yCisrKyAgICAgICAgICAgIHhwb3MgPSBidXR0b25Qb3MueCAr IChidXR0b25TaXplLndpZHRoIC0gdGV4dFdpZHRoKS8vMgorKyAgICAgICAgICAgICB5cG9zID0g YnV0dG9uUG9zLnkgLSB0ZXh0SGVpZ2h0IC0gMgorKyAKKysgICAgICAgICAgICAgZGMuRHJhd1Jl Y3RhbmdsZSh4cG9zLTIsIHlwb3MtMSwgdGV4dFdpZHRoKzQsIHRleHRIZWlnaHQrMikKKytkaWZm IC0tZ2l0IGEvd3gvbGliL2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5IGIvd3gvbGliL2FuYWxv Z2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5CisraW5kZXggN2M0YjE4OTc5Li4xZWUxZDY3NDIgMTAwNjQ0 CisrLS0tIGEvd3gvbGliL2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5CisrKysrIGIvd3gvbGli L2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5CisrQEAgLTE3Myw3ICsxNzMsNyBAQCBkZWYgX3Jl Y2FsY0Nvb3JkcyhzZWxmLCBzaXplKToKKysgICAgICAgICBzY2FsZSA9IG1pbihbZmxvYXQoc2l6 ZS53aWR0aCkgLyBzZWxmLmJhc2VzaXplLndpZHRoLAorKyAgICAgICAgICAgICAgICAgICAgICBm bG9hdChzaXplLmhlaWdodCkgLyBzZWxmLmJhc2VzaXplLmhlaWdodF0pCisrIAorKy0gICAgICAg IGNlbnRyZSA9IHd4LlBvaW50KHNpemUud2lkdGggLyAyLiwgc2l6ZS5oZWlnaHQgLyAyLikKKysr ICAgICAgICBjZW50cmUgPSB3eC5Qb2ludChzaXplLndpZHRoIC8vIDIsIHNpemUuaGVpZ2h0IC8v IDIpCisrIAorKyAgICAgICAgIHNlbGYuQm94LlJlY2FsY0Nvb3JkcyhzaXplLCBjZW50cmUsIHNj YWxlKQorKyAgICAgICAgIHNlbGYuSGFuZHMuUmVjYWxjQ29vcmRzKHNpemUsIGNlbnRyZSwgc2Nh bGUpCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hbmFsb2djbG9jay9oZWxwZXJzLnB5IGIvd3gvbGli L2FuYWxvZ2Nsb2NrL2hlbHBlcnMucHkKKytpbmRleCA4OGQxOThiZWUuLjk2NzRkZTkxMiAxMDA2 NDQKKystLS0gYS93eC9saWIvYW5hbG9nY2xvY2svaGVscGVycy5weQorKysrKyBiL3d4L2xpYi9h bmFsb2djbG9jay9oZWxwZXJzLnB5CisrQEAgLTM3LDcgKzM3LDcgQEAgZGVmIF9faW5pdF9fKHNl bGYsIGlkeD0wLCBwb3M9Tm9uZSwgc2l6ZT1Ob25lLCBvZmZzZXQ9MCwgY2xvY2tzaXplPU5vbmUs CisrIAorKyAKKysgICAgIGRlZiBfcG9sMnJlY3Qoc2VsZiwgbSwgdCk6CisrLSAgICAgICAgcmV0 dXJuIG0gKiBtYXRoLmNvcyhtYXRoLnJhZGlhbnModCkpLCBtICogbWF0aC5zaW4obWF0aC5yYWRp YW5zKHQpKQorKysgICAgICAgIHJldHVybiBpbnQobSAqIG1hdGguY29zKG1hdGgucmFkaWFucyh0 KSkpLCBpbnQobSAqIG1hdGguc2luKG1hdGgucmFkaWFucyh0KSkpCisrIAorKyAKKysgICAgIGRl ZiBfcmVjdDJwb2woc2VsZiwgeCwgeSk6CisrQEAgLTE3NCw3ICsxNzQsNyBAQCBkZWYgX19pbml0 X18oc2VsZiwgKiprd2FyZ3MpOgorKyAKKysgICAgIGRlZiBEcmF3KHNlbGYsIGRjKToKKysgICAg ICAgICBzZWxmLmR5ZXIuU2VsZWN0KGRjKQorKy0gICAgICAgIGRjLkRyYXdDaXJjbGUoc2VsZi5w b3MueCwgc2VsZi5wb3MueSwgc2VsZi5yYWRpdXMpCisrKyAgICAgICAgZGMuRHJhd0NpcmNsZShz ZWxmLnBvcy54LCBzZWxmLnBvcy55LCBpbnQoc2VsZi5yYWRpdXMpKQorKyAKKysgCisrICAgICBk ZWYgUmVjYWxjQ29vcmRzKHNlbGYsIGNsb2Nrc2l6ZSwgY2VudHJlLCBzY2FsZSk6CisrQEAgLTIw NSw3ICsyMDUsNyBAQCBkZWYgRHJhdyhzZWxmLCBkYywgZW5kLCBvZmZzZXQ9MCk6CisrICAgICAg ICAgICAgIG0sIHQgPSBzZWxmLl9yZWN0MnBvbCh4LCB5KQorKyAgICAgICAgICAgICBwb2x5Z29u W2ldID0gc2VsZi5fcG9sMnJlY3QobSwgdCAtIGFuZ2xlKQorKyAKKystICAgICAgICBkYy5EcmF3 UG9seWdvbihwb2x5Z29uLCBjZW50cmUueCArIG9mZnNldCwgY2VudHJlLnkgKyBvZmZzZXQpCisr KyAgICAgICAgZGMuRHJhd1BvbHlnb24ocG9seWdvbiwgaW50KGNlbnRyZS54ICsgb2Zmc2V0KSwg aW50KGNlbnRyZS55ICsgb2Zmc2V0KSkKKysgCisrIAorKyAgICAgZGVmIFJlY2FsY0Nvb3Jkcyhz ZWxmLCBjbG9ja3NpemUsIGNlbnRyZSwgc2NhbGUpOgorK0BAIC0yMjYsNyArMjI2LDcgQEAgZGVm IERyYXcoc2VsZiwgZGMsIG9mZnNldD0wKToKKysgICAgICAgICB4ID0gc2VsZi5wb3MueCAtIHdp ZHRoIC8gMi4KKysgICAgICAgICB5ID0gc2VsZi5wb3MueSAtIGhlaWdodCAvIDIuCisrIAorKy0g ICAgICAgIGRjLkRyYXdSZWN0YW5nbGUoeCArIG9mZnNldCwgeSArIG9mZnNldCwgd2lkdGgsIGhl aWdodCkKKysrICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGludCh4ICsgb2Zmc2V0KSwgaW50KHkg KyBvZmZzZXQpLCBpbnQod2lkdGgpLCBpbnQoaGVpZ2h0KSkKKysgCisrICMtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrIAorK0BAIC0yNDIsNyArMjQyLDcgQEAgZGVmIERyYXcoc2VsZiwgZGMsIG9mZnNldD0wKToK KysgICAgICAgICB4ID0gc2VsZi5wb3MueAorKyAgICAgICAgIHkgPSBzZWxmLnBvcy55CisrIAor Ky0gICAgICAgIGRjLkRyYXdDaXJjbGUoeCArIG9mZnNldCwgeSArIG9mZnNldCwgcmFkaXVzKQor KysgICAgICAgIGRjLkRyYXdDaXJjbGUoaW50KHggKyBvZmZzZXQpLCBpbnQoeSArIG9mZnNldCks IGludChyYWRpdXMpKQorKyAKKysgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysgCisrQEAgLTI3Myw3ICsyNzMs NyBAQCBkZWYgRHJhd1N0cmFpZ2h0KHNlbGYsIGRjLCBvZmZzZXQ9MCk6CisrICAgICAgICAgeCA9 IHNlbGYucG9zLnggLSB3aWR0aCAvIDIuCisrICAgICAgICAgeSA9IHNlbGYucG9zLnkgLSBoZWln aHQgLyAyLgorKyAKKystICAgICAgICBkYy5EcmF3UG9seWdvbihwb2x5Z29uLCB4ICsgb2Zmc2V0 LCB5ICsgb2Zmc2V0KQorKysgICAgICAgIGRjLkRyYXdQb2x5Z29uKHBvbHlnb24sIGludCh4ICsg b2Zmc2V0KSwgaW50KHkgKyBvZmZzZXQpKQorKyAKKysgCisrICAgICBkZWYgRHJhd1JvdGF0ZWQo c2VsZiwgZGMsIG9mZnNldD0wKToKKytAQCAtMjkwLDcgKzI5MCw3IEBAIGRlZiBEcmF3Um90YXRl ZChzZWxmLCBkYywgb2Zmc2V0PTApOgorKyAgICAgICAgIHggPSBzZWxmLnBvcy54IC0gbWF0aC5j b3MocikgKiB3aWR0aCAvIDIuIC0gbWF0aC5zaW4ocikgKiBoZWlnaHQgLyAyLgorKyAgICAgICAg IHkgPSBzZWxmLnBvcy55IC0gbWF0aC5jb3MocikgKiBoZWlnaHQgLyAyLiArIG1hdGguc2luKHIp ICogd2lkdGggLyAyLgorKyAKKystICAgICAgICBkYy5EcmF3UG9seWdvbihwb2x5Z29uLCB4ICsg b2Zmc2V0LCB5ICsgb2Zmc2V0KQorKysgICAgICAgIGRjLkRyYXdQb2x5Z29uKHBvbHlnb24sIGlu dCh4ICsgb2Zmc2V0KSwgaW50KHkgKyBvZmZzZXQpKQorKyAKKysgIy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysg CisrQEAgLTMwOSw3ICszMDksNyBAQCBkZWYgRHJhd1N0cmFpZ2h0KHNlbGYsIGRjLCBvZmZzZXQ9 MCk6CisrICAgICAgICAgeCA9IHNlbGYucG9zLnggLSB3aWR0aCAvIDIuCisrICAgICAgICAgeSA9 IHNlbGYucG9zLnkgLSBoZWlnaHQgLyAyLgorKyAKKystICAgICAgICBkYy5EcmF3VGV4dChzZWxm LnRleHQsIHggKyBvZmZzZXQsIHkgKyBvZmZzZXQpCisrKyAgICAgICAgZGMuRHJhd1RleHQoc2Vs Zi50ZXh0LCBpbnQoeCArIG9mZnNldCksIGludCh5ICsgb2Zmc2V0KSkKKysgCisrIAorKyAgICAg ZGVmIERyYXdSb3RhdGVkKHNlbGYsIGRjLCBvZmZzZXQ9MCk6CisrQEAgLTMyMSw3ICszMjEsNyBA QCBkZWYgRHJhd1JvdGF0ZWQoc2VsZiwgZGMsIG9mZnNldD0wKToKKysgICAgICAgICB4ID0gc2Vs Zi5wb3MueCAtIG1hdGguY29zKHIpICogd2lkdGggLyAyLiAtIG1hdGguc2luKHIpICogaGVpZ2h0 IC8gMi4KKysgICAgICAgICB5ID0gc2VsZi5wb3MueSAtIG1hdGguY29zKHIpICogaGVpZ2h0IC8g Mi4gKyBtYXRoLnNpbihyKSAqIHdpZHRoIC8gMi4KKysgCisrLSAgICAgICAgZGMuRHJhd1JvdGF0 ZWRUZXh0KHNlbGYudGV4dCwgeCArIG9mZnNldCwgeSArIG9mZnNldCwgYW5nbGUpCisrKyAgICAg ICAgZGMuRHJhd1JvdGF0ZWRUZXh0KHNlbGYudGV4dCwgaW50KHggKyBvZmZzZXQpLCBpbnQoeSAr IG9mZnNldCksIGludChhbmdsZSkpCisrIAorKyAKKysgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytAQCAtNjU2 LDcgKzY1Niw3IEBAIGRlZiBSZWNhbGNDb29yZHMoc2VsZiwgY2xvY2tzaXplLCBjZW50cmUsIHNj YWxlKToKKysgCisrICAgICAgICAgIyBUcnkgdG8gZmluZCBhICdnb29kJyBtYXggc2l6ZSBmb3Ig dGV4dC1iYXNlZCB0aWNrcy4KKysgICAgICAgICBpZiBhX3RpY2sudGV4dCBpcyBub3QgTm9uZToK KystICAgICAgICAgICAgc2VsZi5mb250LlNldFBvaW50U2l6ZShzaXplKQorKysgICAgICAgICAg ICBzZWxmLmZvbnQuU2V0UG9pbnRTaXplKGludChzaXplKSkKKysgICAgICAgICAgICAgZGMgPSB3 eC5NZW1vcnlEQygpCisrICAgICAgICAgICAgIGRjLlNlbGVjdE9iamVjdCh3eC5CaXRtYXAoKmNs b2Nrc2l6ZS5HZXQoKSkpCisrICAgICAgICAgICAgIGRjLlNldEZvbnQoc2VsZi5mb250KQorK0BA IC02ODYsNyArNjg2LDcgQEAgZGVmIFJlY2FsY0Nvb3JkcyhzZWxmLCBjbG9ja3NpemUsIGNlbnRy ZSwgc2NhbGUpOgorKyAgICAgICAgICAgICB4ID0gY2VudHJlLnggKyByYWRpdXMgKiBtYXRoLnNp bihhbmdsZSkKKysgICAgICAgICAgICAgeSA9IGNlbnRyZS55ICsgcmFkaXVzICogbWF0aC5jb3Mo YW5nbGUpCisrIAorKy0gICAgICAgICAgICB0aWNrLlNldFBvc2l0aW9uKHd4LlBvaW50KHgsIHkp KQorKysgICAgICAgICAgICB0aWNrLlNldFBvc2l0aW9uKHd4LlBvaW50KGludCh4KSwgaW50KHkp KSkKKysgCisrIAorKyAgICAgZGVmIEdldFNpemUoc2VsZik6CisrZGlmZiAtLWdpdCBhL3d4L2xp Yi9hbmFsb2djbG9jay9zZXR1cC5weSBiL3d4L2xpYi9hbmFsb2djbG9jay9zZXR1cC5weQorK2lu ZGV4IGE4M2M4NjM5ZC4uYTdkZmZiOTAxIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hbmFsb2djbG9j ay9zZXR1cC5weQorKysrKyBiL3d4L2xpYi9hbmFsb2djbG9jay9zZXR1cC5weQorK0BAIC0xNzks NyArMTc5LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgdGl0bGUsIGdyb3VwPSJIYW5k cyIpOgorKyAgICAgICAgIHAuU2V0Q3VzdG9tQ29sb3VycyhzZWxmLmN1c3RvbWNvbG91cnMpCisr ICAgICAgICAgc2l6ZXIuQWRkKHAsIHBvcz0oMCwgMSksIGZsYWc9d3guQUxJR05fQ0VOVFJFX1ZF UlRJQ0FMKQorKyAKKystICAgICAgICBwID0gc2VsZi5idyA9IHd4LlNwaW5DdHJsKHNlbGYsIHNp emU9KDc1LCAyMSksCisrKyAgICAgICAgcCA9IHNlbGYuYncgPSB3eC5TcGluQ3RybChzZWxmLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPTAsIG1heD0xMDAsIHZhbHVl PSI3NSIpCisrICAgICAgICAgc2l6ZXIuQWRkKHAsIHBvcz0oMCwgMiksIHNwYW49KDEsIDIpLCBm bGFnPXd4LkFMSUdOX0NFTlRSRV9WRVJUSUNBTCkKKysgCisrQEAgLTE5Myw3ICsxOTMsNyBAQCBk ZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCB0aXRsZSwgZ3JvdXA9IkhhbmRzIik6CisrICAgICAg ICAgcCA9IHNlbGYubHMgPSB3eC5TdGF0aWNUZXh0KHNlbGYsIGxhYmVsPSJTaXplOiIpCisrICAg ICAgICAgc2l6ZXIuQWRkKHAsIHBvcz0oMiwgMCksIGZsYWc9d3guQUxJR05fQ0VOVFJFX1ZFUlRJ Q0FMKQorKyAKKystICAgICAgICBwID0gc2VsZi5zeiA9IHd4LlNwaW5DdHJsKHNlbGYsIHNpemU9 KDc1LCAyMSksCisrKyAgICAgICAgcCA9IHNlbGYuc3ogPSB3eC5TcGluQ3RybChzZWxmLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPTAsIG1heD0xMDAsIHZhbHVlPSI3 NSIpCisrICAgICAgICAgc2l6ZXIuQWRkKHAsIHBvcz0oMiwgMSksIHNwYW49KDEsIDMpLCBmbGFn PXd4LkFMSUdOX0NFTlRSRV9WRVJUSUNBTCkKKysgCisrQEAgLTIxMiw3ICsyMTIsNyBAQCBkZWYg X19pbml0X18oc2VsZiwgcGFyZW50LCB0aXRsZSwgZ3JvdXA9IlRpY2tzIik6CisrICAgICAgICAg cCA9IHd4LlN0YXRpY1RleHQoc2VsZiwgbGFiZWw9Ik9mZnNldDoiKQorKyAgICAgICAgIHNpemVy LkFkZChwLCBwb3M9KDMsIDApLCBmbGFnPXd4LkFMSUdOX0NFTlRSRV9WRVJUSUNBTCkKKysgCisr LSAgICAgICAgcCA9IHNlbGYub2YgPSB3eC5TcGluQ3RybChzZWxmLCBzaXplPSg3NSwgMjEpLAor KysgICAgICAgIHAgPSBzZWxmLm9mID0gd3guU3BpbkN0cmwoc2VsZiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1pbj0wLCBtYXg9MTAwLCB2YWx1ZT0iNzUiKQorKyAgICAg ICAgIHNpemVyLkFkZChwLCBwb3M9KDMsIDEpLCBzcGFuPSgxLCAzKSwgZmxhZz13eC5BTElHTl9D RU5UUkVfVkVSVElDQUwpCisrIAorK2RpZmYgLS1naXQgYS93eC9saWIvYnV0dG9ucy5weSBiL3d4 L2xpYi9idXR0b25zLnB5CisraW5kZXggNDZkMWI4NzQ3Li5mMDFhNTRkNDEgMTAwNjQ0CisrLS0t IGEvd3gvbGliL2J1dHRvbnMucHkKKysrKysgYi93eC9saWIvYnV0dG9ucy5weQorK0BAIC00NTMs NyArNDUzLDcgQEAgZGVmIERyYXdMYWJlbChzZWxmLCBkYywgd2lkdGgsIGhlaWdodCwgZHg9MCwg ZHk9MCk6CisrICAgICAgICAgdHcsIHRoID0gZGMuR2V0VGV4dEV4dGVudChsYWJlbCkKKysgICAg ICAgICBpZiBub3Qgc2VsZi51cDoKKysgICAgICAgICAgICAgZHggPSBkeSA9IHNlbGYubGFiZWxE ZWx0YQorKy0gICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCAod2lkdGgtdHcpLzIrZHgsIChoZWln aHQtdGgpLzIrZHkpCisrKyAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsICh3aWR0aC10dykvLzIr ZHgsIChoZWlnaHQtdGgpLy8yK2R5KQorKyAKKysgCisrICAgICBkZWYgRHJhd0ZvY3VzSW5kaWNh dG9yKHNlbGYsIGRjLCB3LCBoKToKKytAQCAtODQ0LDcgKzg0NCw3IEBAIGRlZiBEcmF3TGFiZWwo c2VsZiwgZGMsIHdpZHRoLCBoZWlnaHQsIGR4PTAsIGR5PTApOgorKyAgICAgICAgIGlmIG5vdCBz ZWxmLnVwOgorKyAgICAgICAgICAgICBkeCA9IGR5ID0gc2VsZi5sYWJlbERlbHRhCisrICAgICAg ICAgaGFzTWFzayA9IGJtcC5HZXRNYXNrKCkgIT0gTm9uZQorKy0gICAgICAgIGRjLkRyYXdCaXRt YXAoYm1wLCAod2lkdGgtYncpLzIrZHgsIChoZWlnaHQtYmgpLzIrZHksIGhhc01hc2spCisrKyAg ICAgICAgZGMuRHJhd0JpdG1hcChibXAsICh3aWR0aC1idykvLzIrZHgsIChoZWlnaHQtYmgpLy8y K2R5LCBoYXNNYXNrKQorKyAKKysgCisrICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQEAgLTkyNiwxMiArOTI2 LDEyIEBAIGRlZiBEcmF3TGFiZWwoc2VsZiwgZGMsIHdpZHRoLCBoZWlnaHQsIGR4PTAsIGR5PTAp OgorKyAgICAgICAgIGlmIG5vdCBzZWxmLnVwOgorKyAgICAgICAgICAgICBkeCA9IGR5ID0gc2Vs Zi5sYWJlbERlbHRhCisrIAorKy0gICAgICAgIHBvc194ID0gKHdpZHRoLWJ3LXR3KS8yK2R4ICAg ICAgIyBhZGp1c3QgZm9yIGJpdG1hcCBhbmQgdGV4dCB0byBjZW50cmUKKysrICAgICAgICBwb3Nf eCA9ICh3aWR0aC1idy10dykvLzIrZHggICAgICAjIGFkanVzdCBmb3IgYml0bWFwIGFuZCB0ZXh0 IHRvIGNlbnRyZQorKyAgICAgICAgIGlmIGJtcCBpcyBub3QgTm9uZToKKystICAgICAgICAgICAg ZGMuRHJhd0JpdG1hcChibXAsIHBvc194LCAoaGVpZ2h0LWJoKS8yK2R5LCBoYXNNYXNrKSAjIGRy YXcgYml0bWFwIGlmIGF2YWlsYWJsZQorKysgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGJtcCwg cG9zX3gsIChoZWlnaHQtYmgpLy8yK2R5LCBoYXNNYXNrKSAjIGRyYXcgYml0bWFwIGlmIGF2YWls YWJsZQorKyAgICAgICAgICAgICBwb3NfeCA9IHBvc194ICsgMiAgICMgZXh0cmEgc3BhY2luZyBm cm9tIGJpdG1hcAorKyAKKystICAgICAgICBkYy5EcmF3VGV4dChsYWJlbCwgcG9zX3ggKyBkeCti dywgKGhlaWdodC10aCkvMitkeSkgICAgICAjIGRyYXcgdGhlIHRleHQKKysrICAgICAgICBkYy5E cmF3VGV4dChsYWJlbCwgcG9zX3ggKyBkeCtidywgKGhlaWdodC10aCkvLzIrZHkpICAgICAgIyBk cmF3IHRoZSB0ZXh0CisrIAorKyAKKysgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytkaWZmIC0tZ2l0IGEvd3gv bGliL2NvbG91cmNob29zZXIvcHljb2xvdXJjaG9vc2VyLnB5IGIvd3gvbGliL2NvbG91cmNob29z ZXIvcHljb2xvdXJjaG9vc2VyLnB5CisraW5kZXggNjFkYmMwMmQyLi4xMjQzNzY0ODMgMTAwNjQ0 CisrLS0tIGEvd3gvbGliL2NvbG91cmNob29zZXIvcHljb2xvdXJjaG9vc2VyLnB5CisrKysrIGIv d3gvbGliL2NvbG91cmNob29zZXIvcHljb2xvdXJjaG9vc2VyLnB5CisrQEAgLTE4OCw3ICsxODgs NyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBpZCk6CisrICAgICAgICAgc2VsZi5jb2xv dXJfc2xpZGVyLkJpbmQod3guRVZUX01PVElPTiwgc2VsZi5vblNsaWRlck1vdGlvbikKKysgICAg ICAgICBzZWxmLnNsaWRlciA9IHd4LlNsaWRlcigKKysgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZiwgc2VsZi5pZFNDUk9MTCwgODYsIDAsIHNlbGYuY29sb3VyX3NsaWRlci5IRUlHSFQgLSAx LAorKy0gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT13eC5TTF9WRVJUSUNBTCwgc2l6ZT0o MTUsIHNlbGYuY29sb3VyX3NsaWRlci5IRUlHSFQpCisrKyAgICAgICAgICAgICAgICAgICAgICAg IHN0eWxlPXd4LlNMX1ZFUlRJQ0FMLCBzaXplPSgtMSwgc2VsZi5jb2xvdXJfc2xpZGVyLkhFSUdI VCkKKysgICAgICAgICAgICAgICAgICAgICAgICAgKQorKyAKKysgICAgICAgICBzZWxmLkJpbmQo d3guRVZUX0NPTU1BTkRfU0NST0xMLCBzZWxmLm9uU2Nyb2xsLCBzZWxmLnNsaWRlcikKKytAQCAt MzM4LDcgKzMzOCw3IEBAIGRlZiBzZXRTbGlkZXJUb1Yoc2VsZiwgdik6CisrICAgICAgICAgbWlu ID0gc2VsZi5zbGlkZXIuR2V0TWluKCkKKysgICAgICAgICBtYXggPSBzZWxmLnNsaWRlci5HZXRN YXgoKQorKyAgICAgICAgIHZhbCA9ICgxIC0gdikgKiBtYXgKKystICAgICAgICBzZWxmLnNsaWRl ci5TZXRWYWx1ZSh2YWwpCisrKyAgICAgICAgc2VsZi5zbGlkZXIuU2V0VmFsdWUoaW50KHZhbCkp CisrIAorKyAgICAgZGVmIGdldFZGcm9tU2xpZGVyKHNlbGYpOgorKyAgICAgICAgICIiIkdldCB0 aGUgY3VycmVudCB2YWx1ZSBvZiAiViIgZnJvbSB0aGUgdiBzbGlkZXIuIiIiCisrZGlmZiAtLWdp dCBhL3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5cGFsZXR0ZS5weSBiL3d4L2xpYi9jb2xvdXJjaG9v c2VyL3B5cGFsZXR0ZS5weQorK2luZGV4IGZmMWZiODQwYy4uNzFiOWZjMmRmIDEwMDY0NAorKy0t LSBhL3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5cGFsZXR0ZS5weQorKysrKyBiL3d4L2xpYi9jb2xv dXJjaG9vc2VyL3B5cGFsZXR0ZS5weQorK0BAIC0xNjUsNyArMTY1LDcgQEAgZGVmIERyYXdCdWZm ZXIoc2VsZik6CisrICAgICAgICAgICAgIGNvbG91ciA9IHd4LkNvbG91cigwLCAwLCAwKQorKyAg ICAgICAgICAgICBzZWxmLmJ1ZmZlci5TZXRQZW4od3guUGVuKGNvbG91ciwgMSwgd3guUEVOU1RZ TEVfU09MSUQpKQorKyAgICAgICAgICAgICBzZWxmLmJ1ZmZlci5TZXRCcnVzaCh3eC5CcnVzaChj b2xvdXIsIHd4LkJSVVNIU1RZTEVfVFJBTlNQQVJFTlQpKQorKy0gICAgICAgICAgICBzZWxmLmJ1 ZmZlci5EcmF3Q2lyY2xlKHNlbGYucG9pbnRbMF0sIHNlbGYucG9pbnRbMV0sIDMpCisrKyAgICAg ICAgICAgIHNlbGYuYnVmZmVyLkRyYXdDaXJjbGUoaW50KHNlbGYucG9pbnRbMF0pLCBpbnQoc2Vs Zi5wb2ludFsxXSksIDMpCisrIAorKyAgICAgZGVmIEhpZ2hsaWdodFBvaW50KHNlbGYsIHgsIHkp OgorKyAgICAgICAgICIiIkhpZ2hsaWdodHMgYW4gYXJlYSBvZiB0aGUgcGFsZXR0ZSB3aXRoIGEg bGl0dGxlIGNpcmNsZSBhcm91bmQKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Zsb2F0Y2FudmFzL0ZD T2JqZWN0cy5weSBiL3d4L2xpYi9mbG9hdGNhbnZhcy9GQ09iamVjdHMucHkKKytpbmRleCA1OGJl Y2QzOGMuLmNkZjhjYzUzZSAxMDA2NDQKKystLS0gYS93eC9saWIvZmxvYXRjYW52YXMvRkNPYmpl Y3RzLnB5CisrKysrIGIvd3gvbGliL2Zsb2F0Y2FudmFzL0ZDT2JqZWN0cy5weQorK0BAIC0yOTYs NyArMjk2LDcgQEAgZGVmIFNldFBlbihzZWxmLCBMaW5lQ29sb3IsIExpbmVTdHlsZSwgTGluZVdp ZHRoKToKKysgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICBzZWxmLlBlbiA9IHNlbGYuUGVu TGlzdC5zZXRkZWZhdWx0KAorKyAgICAgICAgICAgICAgICAgKExpbmVDb2xvciwgTGluZVN0eWxl LCBMaW5lV2lkdGgpLAorKy0gICAgICAgICAgICAgICAgd3guUGVuKExpbmVDb2xvciwgTGluZVdp ZHRoLCBzZWxmLkxpbmVTdHlsZUxpc3RbTGluZVN0eWxlXSkpCisrKyAgICAgICAgICAgICAgICB3 eC5QZW4oTGluZUNvbG9yLCBpbnQoTGluZVdpZHRoKSwgc2VsZi5MaW5lU3R5bGVMaXN0W0xpbmVT dHlsZV0pKQorKyAKKysgICAgIGRlZiBTZXRIaXRCcnVzaChzZWxmLCBIaXRDb2xvcik6CisrICAg ICAgICAgIiIiCisrQEAgLTEyMDIsMTQgKzEyMDIsMTQgQEAgZGVmIF9EcmF3KHNlbGYsIGRjICwg V29ybGRUb1BpeGVsLCBTY2FsZVdvcmxkVG9QaXhlbCwgSFRkYz1Ob25lKToKKysgICAgICAgICAg ICAgeCA9IHhjIC0gU2l6ZS8yLjAKKysgICAgICAgICAgICAgeSA9IHljIC0gU2l6ZS8yLjAKKysg ICAgICAgICAgICAgZGMuU2V0QnJ1c2goc2VsZi5CcnVzaCkKKystICAgICAgICAgICAgZGMuRHJh d1JlY3RhbmdsZSh4LCB5LCBTaXplLCBTaXplKQorKysgICAgICAgICAgICBkYy5EcmF3UmVjdGFu Z2xlKGludCh4KSwgaW50KHkpLCBTaXplLCBTaXplKQorKyAgICAgICAgIGlmIEhUZGMgYW5kIHNl bGYuSGl0QWJsZToKKysgICAgICAgICAgICAgSFRkYy5TZXRQZW4oc2VsZi5IaXRQZW4pCisrICAg ICAgICAgICAgIGlmIHNlbGYuU2l6ZSA8PSAxOgorKyAgICAgICAgICAgICAgICAgSFRkYy5EcmF3 UG9pbnQoeGMsIHhjKQorKyAgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICAgSFRk Yy5TZXRCcnVzaChzZWxmLkhpdEJydXNoKQorKy0gICAgICAgICAgICAgICAgSFRkYy5EcmF3UmVj dGFuZ2xlKHgsIHksIFNpemUsIFNpemUpCisrKyAgICAgICAgICAgICAgICBIVGRjLkRyYXdSZWN0 YW5nbGUoaW50KHgpLCBpbnQoeSksIFNpemUsIFNpemUpCisrIAorKyBjbGFzcyBSZWN0RWxsaXBz ZShYWU9iamVjdE1peGluLCBMaW5lQW5kRmlsbE1peGluLCBEcmF3T2JqZWN0KToKKysgICAgICIi IkEgUmVjdEVsbGlwc2UgZHJhdyBvYmplY3QuIiIiCisrQEAgLTIxNjEsNyArMjE2MSw3IEBAIGRl ZiBfRHJhdyhzZWxmLCBkYyAsIFdvcmxkVG9QaXhlbCwgU2NhbGVXb3JsZFRvUGl4ZWwsIEhUZGM9 Tm9uZSk6CisrICAgICAgICAgVyA9IEggKiAoc2VsZi5ibXBXaWR0aCAvIHNlbGYuYm1wSGVpZ2h0 KQorKyAgICAgICAgIGlmIChzZWxmLlNjYWxlZEJpdG1hcCBpcyBOb25lKSBvciAoSCAhPSBzZWxm LlNjYWxlZEhlaWdodCkgOgorKyAgICAgICAgICAgICBzZWxmLlNjYWxlZEhlaWdodCA9IEgKKyst ICAgICAgICAgICAgSW1nID0gc2VsZi5JbWFnZS5TY2FsZShXLCBIKQorKysgICAgICAgICAgICBJ bWcgPSBzZWxmLkltYWdlLlNjYWxlKGludChXKSwgaW50KEgpKQorKyAgICAgICAgICAgICBzZWxm LlNjYWxlZEJpdG1hcCA9IHd4LkJpdG1hcChJbWcpCisrIAorKyAgICAgICAgIFhZID0gc2VsZi5T aGlmdEZ1bihYWVswXSwgWFlbMV0sIFcsIEgpCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9naXptb3Mv bGVkY3RybC5weSBiL3d4L2xpYi9naXptb3MvbGVkY3RybC5weQorK2luZGV4IGYxODVkNTEwNS4u N2Y0ZDNmY2Y5IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9naXptb3MvbGVkY3RybC5weQorKysrKyBi L3d4L2xpYi9naXptb3MvbGVkY3RybC5weQorK0BAIC0yOTMsNyArMjkzLDcgQEAgZGVmIF9kcmF3 RGlnaXQoc2VsZiwgZGMsIGRpZ2l0LCBjb2x1bW4pOgorKyAKKysgICAgICAgICBpZiBkaWdpdCAm IGMuQ09MT046CisrICAgICAgICAgICAgIGRjLlNldEJydXNoKHd4LkJydXNoKGxpbmVDb2xvcikp CisrLSAgICAgICAgICAgIGNlbnRlclggPSBYUG9zICsgKHNlbGYubV9saW5lTGVuZ3RoICsgc2Vs Zi5tX2RpZ2l0TWFyZ2luKSAvIDIKKystICAgICAgICAgICAgcmFkaXVzID0gc2VsZi5tX2xpbmVX aWR0aCAvIDIKKystICAgICAgICAgICAgZGMuRHJhd0NpcmNsZShjZW50ZXJYLCAoc2VsZi5tX2xp bmVMZW5ndGggKyAoc2VsZi5tX2xpbmVNYXJnaW4gKiAzKSkgLyAyLCByYWRpdXMpCisrLSAgICAg ICAgICAgIGRjLkRyYXdDaXJjbGUoY2VudGVyWCwgKHNlbGYubV9saW5lTGVuZ3RoICogMiArIChz ZWxmLm1fbGluZU1hcmdpbiAqIDUpKSAqIDMgLyA0LCByYWRpdXMpCisrKyAgICAgICAgICAgIGNl bnRlclggPSBYUG9zICsgKHNlbGYubV9saW5lTGVuZ3RoICsgc2VsZi5tX2RpZ2l0TWFyZ2luKSAv LyAyCisrKyAgICAgICAgICAgIHJhZGl1cyA9IHNlbGYubV9saW5lV2lkdGggLy8gMgorKysgICAg ICAgICAgICBkYy5EcmF3Q2lyY2xlKGNlbnRlclgsIChzZWxmLm1fbGluZUxlbmd0aCArIChzZWxm Lm1fbGluZU1hcmdpbiAqIDMpKSAvLyAyLCByYWRpdXMpCisrKyAgICAgICAgICAgIGRjLkRyYXdD aXJjbGUoY2VudGVyWCwgKHNlbGYubV9saW5lTGVuZ3RoICogMiArIChzZWxmLm1fbGluZU1hcmdp biAqIDUpKSAqIDMgLy8gNCwgcmFkaXVzKQorK2RpZmYgLS1naXQgYS93eC9saWIvaW1hZ2Vicm93 c2VyLnB5IGIvd3gvbGliL2ltYWdlYnJvd3Nlci5weQorK2luZGV4IDc5NWU5MGRjYS4uOGUxNDcy N2U3IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9pbWFnZWJyb3dzZXIucHkKKysrKysgYi93eC9saWIv aW1hZ2Vicm93c2VyLnB5CisrQEAgLTM0Nyw4ICszNDcsOCBAQCBkZWYgRHJhd0ltYWdlKHNlbGYs IGRjKToKKysgICAgICAgICBvd2lkdGggPSBpbnQoc2NhbGUqaXdpZHRoKQorKyAgICAgICAgIG9o ZWlnaHQgPSBpbnQoc2NhbGUqaWhlaWdodCkKKysgCisrLSAgICAgICAgZGlmZnggPSAod3dpZHRo IC0gb3dpZHRoKS8yICAgIyBjZW50ZXIgY2FsYworKy0gICAgICAgIGRpZmZ5ID0gKHdoZWlnaHQg LSBvaGVpZ2h0KS8yICAgIyBjZW50ZXIgY2FsYworKysgICAgICAgIGRpZmZ4ID0gKHd3aWR0aCAt IG93aWR0aCkvLzIgICAjIGNlbnRlciBjYWxjCisrKyAgICAgICAgZGlmZnkgPSAod2hlaWdodCAt IG9oZWlnaHQpLy8yICAgIyBjZW50ZXIgY2FsYworKyAKKysgICAgICAgICBpZiBub3QgYm1wOgor KyAgICAgICAgICAgICBpZiBvd2lkdGghPWl3aWR0aCBvciBvaGVpZ2h0IT1paGVpZ2h0OgorK2Rp ZmYgLS1naXQgYS93eC9saWIvb2dsL2Jhc2ljLnB5IGIvd3gvbGliL29nbC9iYXNpYy5weQorK2lu ZGV4IGIwODg1OWFiOS4uMDEwN2YyMWZjIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9vZ2wvYmFzaWMu cHkKKysrKysgYi93eC9saWIvb2dsL2Jhc2ljLnB5CisrQEAgLTEwNTEsNyArMTA1MSw3IEBAIGRl ZiBPbkVyYXNlQ29udGVudHMoc2VsZiwgZGMpOgorKyAgICAgICAgIGRjLlNldFBlbihzZWxmLkdl dEJhY2tncm91bmRQZW4oKSkKKysgICAgICAgICBkYy5TZXRCcnVzaChzZWxmLkdldEJhY2tncm91 bmRCcnVzaCgpKQorKyAKKystICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKHRvcExlZnRYIC0gcGVu V2lkdGgsIHRvcExlZnRZIC0gcGVuV2lkdGgsIG1heFggKyBwZW5XaWR0aCAqIDIgKyA0LCBtYXhZ ICsgcGVuV2lkdGggKiAyICsgNCkKKysrICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGludCh0b3BM ZWZ0WCAtIHBlbldpZHRoKSwgaW50KHRvcExlZnRZIC0gcGVuV2lkdGgpLCBpbnQobWF4WCArIHBl bldpZHRoICogMiArIDQpLCBpbnQobWF4WSArIHBlbldpZHRoICogMiArIDQpKQorKyAKKysgICAg IGRlZiBFcmFzZUxpbmtzKHNlbGYsIGRjLCBhdHRhY2htZW50ID0gLTEsIHJlY3Vyc2UgPSBGYWxz ZSk6CisrICAgICAgICAgIiIiCisrQEAgLTI3NjksOSArMjc2OSw5IEBAIGRlZiBPbkRyYXcoc2Vs ZiwgZGMpOgorKyAgICAgICAgICAgICBkYy5TZXRCcnVzaChzZWxmLl9icnVzaCkKKysgCisrICAg ICAgICAgaWYgc2VsZi5fY29ybmVyUmFkaXVzOgorKy0gICAgICAgICAgICBkYy5EcmF3Um91bmRl ZFJlY3RhbmdsZSh4MSwgeTEsIHNlbGYuX3dpZHRoLCBzZWxmLl9oZWlnaHQsIHNlbGYuX2Nvcm5l clJhZGl1cykKKysrICAgICAgICAgICAgZGMuRHJhd1JvdW5kZWRSZWN0YW5nbGUoaW50KHgxKSwg aW50KHkxKSwgc2VsZi5fd2lkdGgsIHNlbGYuX2hlaWdodCwgc2VsZi5fY29ybmVyUmFkaXVzKQor KyAgICAgICAgIGVsc2U6CisrLSAgICAgICAgICAgIGRjLkRyYXdSZWN0YW5nbGUoeDEsIHkxLCBz ZWxmLl93aWR0aCwgc2VsZi5faGVpZ2h0KQorKysgICAgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xl KGludCh4MSksIGludCh5MSksIHNlbGYuX3dpZHRoLCBzZWxmLl9oZWlnaHQpCisrIAorKyAgICAg ZGVmIEdldEJvdW5kaW5nQm94TWluKHNlbGYpOgorKyAgICAgICAgICIiIkdldCB0aGUgYm91bmRp bmcgYm94IG1pbmltdW0uIiIiCisrQEAgLTI4ODIsNyArMjg4Miw3IEBAIGRlZiBDcmVhdGUoc2Vs ZiwgdGhlX3BvaW50cyA9IE5vbmUpOgorKyAgICAgICAgICAgICAjIER1cGxpY2F0ZSB0aGUgbGlz dCBvZiBwb2ludHMKKysgICAgICAgICAgICAgc2VsZi5fcG9pbnRzID0gW10KKysgICAgICAgICAg ICAgZm9yIHBvaW50IGluIHRoZV9wb2ludHM6CisrLSAgICAgICAgICAgICAgICBuZXdfcG9pbnQg PSB3eC5Qb2ludChwb2ludFswXSwgcG9pbnRbMV0pCisrKyAgICAgICAgICAgICAgICBuZXdfcG9p bnQgPSB3eC5Qb2ludChpbnQocG9pbnRbMF0pLCBpbnQocG9pbnRbMV0pKQorKyAgICAgICAgICAg ICAgICAgc2VsZi5fcG9pbnRzLmFwcGVuZChuZXdfcG9pbnQpCisrICAgICAgICAgICAgIHNlbGYu Q2FsY3VsYXRlQm91bmRpbmdCb3goKQorKyAgICAgICAgICAgICBzZWxmLl9vcmlnaW5hbFdpZHRo ID0gc2VsZi5fYm91bmRXaWR0aAorK0BAIC0zNDQ0LDcgKzM0NDQsNyBAQCBkZWYgT25EcmF3KHNl bGYsIGRjKToKKysgICAgICAgICAgICAgICAgIGRjLlNldFBlbihzZWxmLl9wZW4pCisrICAgICAg ICAgaWYgc2VsZi5fYnJ1c2g6CisrICAgICAgICAgICAgIGRjLlNldEJydXNoKHNlbGYuX2JydXNo KQorKy0gICAgICAgIGRjLkRyYXdFbGxpcHNlKHNlbGYuX3hwb3MgLSBzZWxmLkdldFdpZHRoKCkg LyAyLjAsIHNlbGYuX3lwb3MgLSBzZWxmLkdldEhlaWdodCgpIC8gMi4wLCBzZWxmLkdldFdpZHRo KCksIHNlbGYuR2V0SGVpZ2h0KCkpCisrKyAgICAgICAgZGMuRHJhd0VsbGlwc2UoaW50KHNlbGYu X3hwb3MgLSBzZWxmLkdldFdpZHRoKCkgLyAyLjApLCBpbnQoc2VsZi5feXBvcyAtIHNlbGYuR2V0 SGVpZ2h0KCkgLyAyLjApLCBzZWxmLkdldFdpZHRoKCksIHNlbGYuR2V0SGVpZ2h0KCkpCisrIAor KyAgICAgZGVmIFNldFNpemUoc2VsZiwgeCwgeSwgcmVjdXJzaXZlID0gVHJ1ZSk6CisrICAgICAg ICAgIiIiCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9vZ2wvYm1wc2hhcGUucHkgYi93eC9saWIvb2ds L2JtcHNoYXBlLnB5CisraW5kZXggZWUyODU5NTI3Li5lNTNkZGIxMzYgMTAwNjQ0CisrLS0tIGEv d3gvbGliL29nbC9ibXBzaGFwZS5weQorKysrKyBiL3d4L2xpYi9vZ2wvYm1wc2hhcGUucHkKKytA QCAtMzIsNyArMzIsNyBAQCBkZWYgT25EcmF3KHNlbGYsIGRjKToKKysgCisrICAgICAgICAgeCA9 IHNlbGYuX3hwb3MgLSBzZWxmLl9iaXRtYXAuR2V0V2lkdGgoKSAvIDIuMAorKyAgICAgICAgIHkg PSBzZWxmLl95cG9zIC0gc2VsZi5fYml0bWFwLkdldEhlaWdodCgpIC8gMi4wCisrLSAgICAgICAg ZGMuRHJhd0JpdG1hcChzZWxmLl9iaXRtYXAsIHgsIHksIFRydWUpCisrKyAgICAgICAgZGMuRHJh d0JpdG1hcChzZWxmLl9iaXRtYXAsIGludCh4KSwgaW50KHkpLCBUcnVlKQorKyAKKysgICAgIGRl ZiBTZXRTaXplKHNlbGYsIHcsIGgsIHJlY3Vyc2l2ZSA9IFRydWUpOgorKyAgICAgICAgICIiIgor K2RpZmYgLS1naXQgYS93eC9saWIvb2dsL2NvbXBvc2l0LnB5IGIvd3gvbGliL29nbC9jb21wb3Np dC5weQorK2luZGV4IGMzYjYyMzk1Mi4uZWVjYWFmYjNmIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9v Z2wvY29tcG9zaXQucHkKKysrKysgYi93eC9saWIvb2dsL2NvbXBvc2l0LnB5CisrQEAgLTExMzEs MTEgKzExMzEsMTEgQEAgZGVmIE9uRHJhdyhzZWxmLCBkYyk6CisrIAorKyAgICAgICAgIGlmIHNl bGYuX2xlZnRTaWRlOgorKyAgICAgICAgICAgICBkYy5TZXRQZW4oc2VsZi5fbGVmdFNpZGVQZW4p CisrLSAgICAgICAgICAgIGRjLkRyYXdMaW5lKHgxLCB5MiwgeDEsIHkxKQorKysgICAgICAgICAg ICBkYy5EcmF3TGluZShpbnQoeDEpLCBpbnQoeTIpLCBpbnQoeDEpLCBpbnQoeTEpKQorKyAKKysg ICAgICAgICBpZiBzZWxmLl90b3BTaWRlOgorKyAgICAgICAgICAgICBkYy5TZXRQZW4oc2VsZi5f dG9wU2lkZVBlbikKKystICAgICAgICAgICAgZGMuRHJhd0xpbmUoeDEsIHkxLCB4MiwgeTEpCisr KyAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludCh4MSksIGludCh5MSksIGludCh4MiksIGludCh5 MSkpCisrIAorKyAgICAgICAgICMgRm9yIHRlc3RpbmcgcHVycG9zZXMsIGRyYXcgYSByZWN0YW5n bGUgc28gd2Uga25vdworKyAgICAgICAgICMgaG93IGJpZyB0aGUgZGl2aXNpb24gaXMuCisrZGlm ZiAtLWdpdCBhL3d4L2xpYi9vZ2wvZGl2aWRlZC5weSBiL3d4L2xpYi9vZ2wvZGl2aWRlZC5weQor K2luZGV4IDBiZmIxOTE5Zi4uMDgwOWJlNThjIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9vZ2wvZGl2 aWRlZC5weQorKysrKyBiL3d4L2xpYi9vZ2wvZGl2aWRlZC5weQorK0BAIC0yMzEsNyArMjMxLDcg QEAgZGVmIE9uRHJhd0NvbnRlbnRzKHNlbGYsIGRjKToKKysgICAgICAgICAgICAgICAgIHJlZ2lv blBlbiA9IHJlZ2lvbi5HZXRBY3R1YWxQZW4oKQorKyAgICAgICAgICAgICAgICAgaWYgcmVnaW9u UGVuOgorKyAgICAgICAgICAgICAgICAgICAgIGRjLlNldFBlbihyZWdpb25QZW4pCisrLSAgICAg ICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUobGVmdFgsIHksIHJpZ2h0WCwgeSkKKysrICAgICAg ICAgICAgICAgICAgICBkYy5EcmF3TGluZShpbnQobGVmdFgpLCBpbnQoeSksIGludChyaWdodFgp LCBpbnQoeSkpCisrIAorKyAgICAgICAgICAgICBjdXJyZW50WSA9IGFjdHVhbFkKKysgCisrZGlm ZiAtLWdpdCBhL3d4L2xpYi9vZ2wvbGluZXMucHkgYi93eC9saWIvb2dsL2xpbmVzLnB5CisraW5k ZXggOTQ4Yjg1ZDgyLi41MGMwN2UwNDYgMTAwNjQ0CisrLS0tIGEvd3gvbGliL29nbC9saW5lcy5w eQorKysrKyBiL3d4L2xpYi9vZ2wvbGluZXMucHkKKytAQCAtMTIwMCw3ICsxMjAwLDcgQEAgZGVm IE9uRHJhdyhzZWxmLCBkYyk6CisrIAorKyAgICAgICAgIHBvaW50cyA9IFtdCisrICAgICAgICAg Zm9yIHBvaW50IGluIHNlbGYuX2xpbmVDb250cm9sUG9pbnRzOgorKy0gICAgICAgICAgICBwb2lu dHMuYXBwZW5kKHd4LlBvaW50KHBvaW50WzBdLCBwb2ludFsxXSkpCisrKyAgICAgICAgICAgIHBv aW50cy5hcHBlbmQod3guUG9pbnQoaW50KHBvaW50WzBdKSwgaW50KHBvaW50WzFdKSkpCisrIAor KyAgICAgICAgIGlmIHNlbGYuX2lzU3BsaW5lOgorKyAgICAgICAgICAgICBkYy5EcmF3U3BsaW5l KHBvaW50cykKKytkaWZmIC0tZ2l0IGEvd3gvbGliL29nbC9vZ2xtaXNjLnB5IGIvd3gvbGliL29n bC9vZ2xtaXNjLnB5CisraW5kZXggODU4OGE3MmI3Li5hOGJlM2ZjNTMgMTAwNjQ0CisrLS0tIGEv d3gvbGliL29nbC9vZ2xtaXNjLnB5CisrKysrIGIvd3gvbGliL29nbC9vZ2xtaXNjLnB5CisrQEAg LTMwMCwxMCArMzAwLDEwIEBAIGRlZiBEcmF3Rm9ybWF0dGVkVGV4dChkYywgdGV4dF9saXN0LCB4 cG9zLCB5cG9zLCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXRNb2RlKToKKysgICAgICAgICB5b2Zmc2V0 ID0geXBvcyAtIGhlaWdodCAvIDIuMAorKyAKKysgICAgICMgKzEgdG8gYWxsb3cgZm9yIHJvdW5k aW5nIGVycm9ycworKy0gICAgZGMuU2V0Q2xpcHBpbmdSZWdpb24oeHBvcyAtIHdpZHRoIC8gMi4w LCB5cG9zIC0gaGVpZ2h0IC8gMi4wLCB3aWR0aCArIDEsIGhlaWdodCArIDEpCisrKyAgICBkYy5T ZXRDbGlwcGluZ1JlZ2lvbihpbnQoeHBvcyAtIHdpZHRoIC8gMi4wKSwgaW50KHlwb3MgLSBoZWln aHQgLyAyLjApLCBpbnQod2lkdGggKyAxKSwgaW50KGhlaWdodCArIDEpKQorKyAKKysgICAgIGZv ciBsaW5lIGluIHRleHRfbGlzdDoKKystICAgICAgICBkYy5EcmF3VGV4dChsaW5lLkdldFRleHQo KSwgeG9mZnNldCArIGxpbmUuR2V0WCgpLCB5b2Zmc2V0ICsgbGluZS5HZXRZKCkpCisrKyAgICAg ICAgZGMuRHJhd1RleHQobGluZS5HZXRUZXh0KCksIGludCh4b2Zmc2V0ICsgbGluZS5HZXRYKCkp LCBpbnQoeW9mZnNldCArIGxpbmUuR2V0WSgpKSkKKysgCisrICAgICBkYy5EZXN0cm95Q2xpcHBp bmdSZWdpb24oKQorKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL3Bsb3QvZXhhbXBsZXMvZGVtby5w eSBiL3d4L2xpYi9wbG90L2V4YW1wbGVzL2RlbW8ucHkKKytpbmRleCA5OGZiYWFkM2EuLjAyYmVj MWQ5ZiAxMDA2NDQKKystLS0gYS93eC9saWIvcGxvdC9leGFtcGxlcy9kZW1vLnB5CisrKysrIGIv d3gvbGliL3Bsb3QvZXhhbXBsZXMvZGVtby5weQorK0BAIC05ODQsNyArOTg0LDcgQEAgZGVmIERy YXdQb2ludExhYmVsKHNlbGYsIGRjLCBtRGF0YURpY3QpOgorKyAKKysgICAgICAgICBzeCwgc3kg PSBtRGF0YURpY3RbInNjYWxlZFhZIl0gICMgc2NhbGVkIHgseSBvZiBjbG9zZXN0IHBvaW50Cisr ICAgICAgICAgIyAxMGJ5MTAgc3F1YXJlIGNlbnRlcmVkIG9uIHBvaW50CisrLSAgICAgICAgZGMu RHJhd1JlY3RhbmdsZShzeCAtIDUsIHN5IC0gNSwgMTAsIDEwKQorKysgICAgICAgIGRjLkRyYXdS ZWN0YW5nbGUoaW50KHN4IC0gNSksIGludChzeSAtIDUpLCAxMCwgMTApCisrICAgICAgICAgcHgs IHB5ID0gbURhdGFEaWN0WyJwb2ludFhZIl0KKysgICAgICAgICBjTnVtID0gbURhdGFEaWN0WyJj dXJ2ZU51bSJdCisrICAgICAgICAgcG50SW4gPSBtRGF0YURpY3RbInBJbmRleCJdCisrQEAgLTk5 Miw3ICs5OTIsNyBAQCBkZWYgRHJhd1BvaW50TGFiZWwoc2VsZiwgZGMsIG1EYXRhRGljdCk6Cisr ICAgICAgICAgIyBtYWtlIGEgc3RyaW5nIHRvIGRpc3BsYXkKKysgICAgICAgICBzID0gIkNydiMg JWksICclcycsIFB0LiAoJS4yZiwlLjJmKSwgUHRJbmQgJWkiICUgKAorKyAgICAgICAgICAgICBj TnVtLCBsZWdlbmQsIHB4LCBweSwgcG50SW4pCisrLSAgICAgICAgZGMuRHJhd1RleHQocywgc3gs IHN5ICsgMSkKKysrICAgICAgICBkYy5EcmF3VGV4dChzLCBpbnQoc3gpLCBpbnQoc3kgKyAxKSkK KysgCisrIAorKyBkZWYgcnVuX2RlbW8oKToKKytkaWZmIC0tZ2l0IGEvd3gvbGliL3Bsb3QvcGxv dGNhbnZhcy5weSBiL3d4L2xpYi9wbG90L3Bsb3RjYW52YXMucHkKKytpbmRleCBkZDNmNzdkNTIu LmFiZWU0N2VmYiAxMDA2NDQKKystLS0gYS93eC9saWIvcGxvdC9wbG90Y2FudmFzLnB5CisrKysr IGIvd3gvbGliL3Bsb3QvcGxvdGNhbnZhcy5weQorK0BAIC0xNzQsMjQgKzE3NCwyNCBAQCBkZWYg X19pbml0X18oc2VsZiwgcGFyZW50LCBpZD13eC5JRF9BTlksIHBvcz13eC5EZWZhdWx0UG9zaXRp b24sCisrIAorKyAgICAgICAgICMgRGVmYXVsdCBQZW5zCisrICAgICAgICAgc2VsZi5fZ3JpZFBl biA9IHd4LlBlbih3eC5Db2xvdXIoMTgwLCAxODAsIDE4MCwgMjU1KSwKKystICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvaW50U2l6ZVswXSwKKysrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludChzZWxmLl9wb2ludFNpemVbMF0pLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgd3guUEVOU1RZTEVfRE9UKQorKyAKKysgICAgICAgICBzZWxmLl9j ZW50ZXJMaW5lUGVuID0gd3guUGVuKHd4LlJFRCwKKystICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuX3BvaW50U2l6ZVswXSwKKysrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludChzZWxmLl9wb2ludFNpemVbMF0pLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgd3guUEVOU1RZTEVfU0hPUlRfREFTSCkKKysgCisrICAg ICAgICAgc2VsZi5fYXhlc1BlbiA9IHd4LlBlbih3eC5CTEFDSywKKystICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuX3BvaW50U2l6ZVswXSwKKysrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludChzZWxmLl9wb2ludFNpemVbMF0pLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgd3guUEVOU1RZTEVfU09MSUQpCisrIAorKyAgICAgICAgIHNlbGYuX3Rp Y2tQZW4gPSB3eC5QZW4od3guQkxBQ0ssCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLl9wb2ludFNpemVbMF0sCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQoc2VsZi5fcG9pbnRTaXplWzBdKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHd4LlBFTlNUWUxFX1NPTElEKQorKyAgICAgICAgIHNlbGYuX3RpY2tMZW5ndGggPSB0dXBsZSgt eCAqIDIgZm9yIHggaW4gc2VsZi5fcG9pbnRTaXplKQorKyAKKysgICAgICAgICBzZWxmLl9kaWFn b25hbFBlbiA9IHd4LlBlbih3eC5CTFVFLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuX3BvaW50U2l6ZVswXSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQoc2VsZi5fcG9pbnRTaXplWzBdKSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB3eC5QRU5TVFlMRV9ET1RfREFTSCkKKysgCisrICAgICBkZWYgU2V0Q3Vy c29yKHNlbGYsIGN1cnNvcik6CisrQEAgLTE5MjUsMTAgKzE5MjUsMTAgQEAgZGVmIF9EcmF3KHNl bGYsIGdyYXBoaWNzLCB4QXhpcz1Ob25lLCB5QXhpcz1Ob25lLCBkYz1Ob25lKToKKysgICAgICAg ICAjIHNldCBjbGlwcGluZyBhcmVhIHNvIGRyYXdpbmcgZG9lcyBub3Qgb2NjdXIgb3V0c2lkZSBh eGlzIGJveAorKyAgICAgICAgIHB0eCwgcHR5LCByZWN0V2lkdGgsIHJlY3RIZWlnaHQgPSBzZWxm Ll9wb2ludDJDbGllbnRDb29yZChwMSwgcDIpCisrICAgICAgICAgIyBhbGxvdyBncmFwaCB0byBv dmVybGFwIGF4aXMgbGluZXMgYnkgYWRkaW5nIHVuaXRzIHRvIHcgYW5kIGgKKystICAgICAgICBk Yy5TZXRDbGlwcGluZ1JlZ2lvbihwdHggKiBzZWxmLl9wb2ludFNpemVbMF0sCisrLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHR5ICogc2VsZi5fcG9pbnRTaXplWzFdLAorKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlY3RXaWR0aCAqIHNlbGYuX3BvaW50U2l6ZVswXSArIDIs CisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdEhlaWdodCAqIHNlbGYuX3BvaW50 U2l6ZVsxXSArIDEpCisrKyAgICAgICAgZGMuU2V0Q2xpcHBpbmdSZWdpb24oaW50KHB0eCAqIHNl bGYuX3BvaW50U2l6ZVswXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHB0 eSAqIHNlbGYuX3BvaW50U2l6ZVsxXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50KHJlY3RXaWR0aCAqIHNlbGYuX3BvaW50U2l6ZVswXSArIDIpLAorKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludChyZWN0SGVpZ2h0ICogc2VsZi5fcG9pbnRTaXplWzFdICsgMSkp CisrICAgICAgICAgIyBEcmF3IHRoZSBsaW5lcyBhbmQgbWFya2VycworKyAjICAgICAgICBzdGFy dCA9IF90aW1lLnBlcmZfY291bnRlcigpCisrICAgICAgICAgZ3JhcGhpY3MuZHJhdyhkYykKKytA QCAtMjI4MCw3ICsyMjgwLDcgQEAgZGVmIF9kcmF3TGVnZW5kKHNlbGYsIGRjLCBncmFwaGljcywg cmhzVywgdG9wSCwgbGVnZW5kQm94V0gsCisrICAgICAgICAgICAgIHBudCA9ICgodHJoY1swXSAr IGxlZ2VuZExIUyArIGxlZ2VuZFN5bUV4dFswXQorKyAgICAgICAgICAgICAgICAgICAgICsgNSAq IHNlbGYuX3BvaW50U2l6ZVswXSksCisrICAgICAgICAgICAgICAgICAgICB0cmhjWzFdICsgcyAr IGxpbmVIZWlnaHQgLyAyLiAtIGxlZ2VuZFRleHRFeHRbMV0gLyAyKQorKy0gICAgICAgICAgICBk Yy5EcmF3VGV4dChvLmdldExlZ2VuZCgpLCBwbnRbMF0sIHBudFsxXSkKKysrICAgICAgICAgICAg ZGMuRHJhd1RleHQoby5nZXRMZWdlbmQoKSwgaW50KHBudFswXSksIGludChwbnRbMV0pKQorKyAg ICAgICAgIGRjLlNldEZvbnQoc2VsZi5fZ2V0Rm9udChzZWxmLl9mb250U2l6ZUF4aXMpKSAgIyBy ZXNldAorKyAKKysgICAgIGRlZiBfdGl0bGVMYWJsZXNXSChzZWxmLCBkYywgZ3JhcGhpY3MpOgor K0BAIC0yMzI5LDcgKzIzMjksNyBAQCBkZWYgX2RyYXdSdWJiZXJCYW5kKHNlbGYsIGNvcm5lcjEs IGNvcm5lcjIpOgorKyAgICAgICAgIGRjLlNldFBlbih3eC5QZW4od3guQkxBQ0spKQorKyAgICAg ICAgIGRjLlNldEJydXNoKHd4LkJydXNoKHd4LldISVRFLCB3eC5CUlVTSFNUWUxFX1RSQU5TUEFS RU5UKSkKKysgICAgICAgICBkYy5TZXRMb2dpY2FsRnVuY3Rpb24od3guSU5WRVJUKQorKy0gICAg ICAgIGRjLkRyYXdSZWN0YW5nbGUocHR4LCBwdHksIHJlY3RXaWR0aCwgcmVjdEhlaWdodCkKKysr ICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGludChwdHgpLCBpbnQocHR5KSwgaW50KHJlY3RXaWR0 aCksIGludChyZWN0SGVpZ2h0KSkKKysgICAgICAgICBkYy5TZXRMb2dpY2FsRnVuY3Rpb24od3gu Q09QWSkKKysgCisrICAgICBkZWYgX2dldEZvbnQoc2VsZiwgc2l6ZSk6CisrQEAgLTI0MjMsNyAr MjQyMyw3IEBAIGRlZiBfZHJhd0dyaWQoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4 dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgIyBpbmNyZWFzZXMgdGhpY2tuZXNzIGZvciBwcmlu dGluZyBvbmx5CisrICAgICAgICAgcGVuID0gc2VsZi5ncmlkUGVuCisrICAgICAgICAgcGVuV2lk dGggPSBzZWxmLnByaW50ZXJTY2FsZSAqIHBlbi5HZXRXaWR0aCgpCisrLSAgICAgICAgcGVuLlNl dFdpZHRoKHBlbldpZHRoKQorKysgICAgICAgIHBlbi5TZXRXaWR0aChpbnQocGVuV2lkdGgpKQor KyAgICAgICAgIGRjLlNldFBlbihwZW4pCisrIAorKyAgICAgICAgIHgsIHksIHdpZHRoLCBoZWln aHQgPSBzZWxmLl9wb2ludDJDbGllbnRDb29yZChwMSwgcDIpCisrQEAgLTI0MzIsMTMgKzI0MzIs MTMgQEAgZGVmIF9kcmF3R3JpZChzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0aWNr cywgeXRpY2tzKToKKysgICAgICAgICAgICAgaWYgc2VsZi5lbmFibGVHcmlkWzBdOgorKyAgICAg ICAgICAgICAgICAgZm9yIHgsIF8gaW4geHRpY2tzOgorKyAgICAgICAgICAgICAgICAgICAgIHB0 ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHgsIHAxWzFdLCBzY2FsZSwgc2hpZnQpCisrLSAgICAg ICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUocHRbMF0sIHB0WzFdLCBwdFswXSwgcHRbMV0gLSBo ZWlnaHQpCisrKyAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUoaW50KHB0WzBdKSwgaW50 KHB0WzFdKSwgaW50KHB0WzBdKSwgaW50KHB0WzFdIC0gaGVpZ2h0KSkKKysgCisrICAgICAgICAg aWYgc2VsZi5feVNwZWMgIT0gJ25vbmUnOgorKyAgICAgICAgICAgICBpZiBzZWxmLmVuYWJsZUdy aWRbMV06CisrICAgICAgICAgICAgICAgICBmb3IgeSwgbGFiZWwgaW4geXRpY2tzOgorKyAgICAg ICAgICAgICAgICAgICAgIHB0ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHAxWzBdLCB5LCBzY2Fs ZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUocHRbMF0sIHB0WzFd LCBwdFswXSArIHdpZHRoLCBwdFsxXSkKKysrICAgICAgICAgICAgICAgICAgICBkYy5EcmF3TGlu ZShpbnQocHRbMF0pLCBpbnQocHRbMV0pLCBpbnQocHRbMF0gKyB3aWR0aCksIGludChwdFsxXSkp CisrIAorKyAgICAgQFRlbXBTdHlsZSgncGVuJykKKysgICAgIGRlZiBfZHJhd1RpY2tzKHNlbGYs IGRjLCBwMSwgcDIsIHNjYWxlLCBzaGlmdCwgeHRpY2tzLCB5dGlja3MpOgorK0BAIC0yNDcxLDcg KzI0NzEsNyBAQCBkZWYgX2RyYXdUaWNrcyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQs IHh0aWNrcywgeXRpY2tzKToKKysgICAgICAgICAjIGluY3JlYXNlcyB0aGlja25lc3MgZm9yIHBy aW50aW5nIG9ubHkKKysgICAgICAgICBwZW4gPSBzZWxmLnRpY2tQZW4KKysgICAgICAgICBwZW5X aWR0aCA9IHNlbGYucHJpbnRlclNjYWxlICogcGVuLkdldFdpZHRoKCkKKystICAgICAgICBwZW4u U2V0V2lkdGgocGVuV2lkdGgpCisrKyAgICAgICAgcGVuLlNldFdpZHRoKGludChwZW5XaWR0aCkp CisrICAgICAgICAgZGMuU2V0UGVuKHBlbikKKysgCisrICAgICAgICAgIyBsZW5ndGhlbiBsaW5l cyBmb3IgcHJpbnRpbmcKKytAQCAtMjQ4NCwxMyArMjQ4NCwxMyBAQCBkZWYgX2RyYXdUaWNrcyhz ZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0aWNrcywgeXRpY2tzKToKKysgICAgICAg ICAgICAgICAgIGxpbmVzID0gW10KKysgICAgICAgICAgICAgICAgIGZvciB4LCBsYWJlbCBpbiB4 dGlja3M6CisrICAgICAgICAgICAgICAgICAgICAgcHQgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQo eCwgcDFbMV0sIHNjYWxlLCBzaGlmdCkKKystICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBl bmQoKHB0WzBdLCBwdFsxXSwgcHRbMF0sIHB0WzFdIC0geFRpY2tMZW5ndGgpKQorKysgICAgICAg ICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgoaW50KHB0WzBdKSwgaW50KHB0WzFdKSwgaW50KHB0 WzBdKSwgaW50KHB0WzFdIC0geFRpY2tMZW5ndGgpKSkKKysgICAgICAgICAgICAgICAgIGRjLkRy YXdMaW5lTGlzdChsaW5lcykKKysgICAgICAgICAgICAgaWYgdGlja3MudG9wOgorKyAgICAgICAg ICAgICAgICAgbGluZXMgPSBbXQorKyAgICAgICAgICAgICAgICAgZm9yIHgsIGxhYmVsIGluIHh0 aWNrczoKKysgICAgICAgICAgICAgICAgICAgICBwdCA9IHNjYWxlX2FuZF9zaGlmdF9wb2ludCh4 LCBwMlsxXSwgc2NhbGUsIHNoaWZ0KQorKy0gICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVu ZCgocHRbMF0sIHB0WzFdLCBwdFswXSwgcHRbMV0gKyB4VGlja0xlbmd0aCkpCisrKyAgICAgICAg ICAgICAgICAgICAgbGluZXMuYXBwZW5kKChpbnQocHRbMF0pLCBpbnQocHRbMV0pLCBpbnQocHRb MF0pLCBpbnQocHRbMV0gKyB4VGlja0xlbmd0aCkpKQorKyAgICAgICAgICAgICAgICAgZGMuRHJh d0xpbmVMaXN0KGxpbmVzKQorKyAKKysgICAgICAgICBpZiBzZWxmLnlTcGVjICE9ICdub25lJzoK KytAQCAtMjQ5OCwxMyArMjQ5OCwxMyBAQCBkZWYgX2RyYXdUaWNrcyhzZWxmLCBkYywgcDEsIHAy LCBzY2FsZSwgc2hpZnQsIHh0aWNrcywgeXRpY2tzKToKKysgICAgICAgICAgICAgICAgIGxpbmVz ID0gW10KKysgICAgICAgICAgICAgICAgIGZvciB5LCBsYWJlbCBpbiB5dGlja3M6CisrICAgICAg ICAgICAgICAgICAgICAgcHQgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQocDFbMF0sIHksIHNjYWxl LCBzaGlmdCkKKystICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoKHB0WzBdLCBwdFsx XSwgcHRbMF0gKyB5VGlja0xlbmd0aCwgcHRbMV0pKQorKysgICAgICAgICAgICAgICAgICAgIGxp bmVzLmFwcGVuZCgoaW50KHB0WzBdKSwgaW50KHB0WzFdKSwgaW50KHB0WzBdICsgeVRpY2tMZW5n dGgpLCBpbnQocHRbMV0pKSkKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lTGlzdChsaW5l cykKKysgICAgICAgICAgICAgaWYgdGlja3MucmlnaHQ6CisrICAgICAgICAgICAgICAgICBsaW5l cyA9IFtdCisrICAgICAgICAgICAgICAgICBmb3IgeSwgbGFiZWwgaW4geXRpY2tzOgorKyAgICAg ICAgICAgICAgICAgICAgIHB0ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHAyWzBdLCB5LCBzY2Fs ZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKChwdFswXSwgcHRb MV0sIHB0WzBdIC0geVRpY2tMZW5ndGgsIHB0WzFdKSkKKysrICAgICAgICAgICAgICAgICAgICBs aW5lcy5hcHBlbmQoKGludChwdFswXSksIGludChwdFsxXSksIGludChwdFswXSAtIHlUaWNrTGVu Z3RoKSwgaW50KHB0WzFdKSkpCisrICAgICAgICAgICAgICAgICBkYy5EcmF3TGluZUxpc3QobGlu ZXMpCisrIAorKyAgICAgQFRlbXBTdHlsZSgncGVuJykKKytAQCAtMjUzMSwyNSArMjUzMSwyNSBA QCBkZWYgX2RyYXdDZW50ZXJMaW5lcyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQpOgor KyAgICAgICAgICMgaW5jcmVhc2VzIHRoaWNrbmVzcyBmb3IgcHJpbnRpbmcgb25seQorKyAgICAg ICAgIHBlbiA9IHNlbGYuY2VudGVyTGluZVBlbgorKyAgICAgICAgIHBlbldpZHRoID0gc2VsZi5w cmludGVyU2NhbGUgKiBwZW4uR2V0V2lkdGgoKQorKy0gICAgICAgIHBlbi5TZXRXaWR0aChwZW5X aWR0aCkKKysrICAgICAgICBwZW4uU2V0V2lkdGgoaW50KHBlbldpZHRoKSkKKysgICAgICAgICBk Yy5TZXRQZW4ocGVuKQorKyAKKysgICAgICAgICBpZiBzZWxmLl9jZW50ZXJMaW5lc0VuYWJsZWQg aW4gKCdIb3Jpem9udGFsJywgVHJ1ZSk6CisrICAgICAgICAgICAgIHkxID0gc2NhbGVbMV0gKiBw MVsxXSArIHNoaWZ0WzFdCisrICAgICAgICAgICAgIHkyID0gc2NhbGVbMV0gKiBwMlsxXSArIHNo aWZ0WzFdCisrICAgICAgICAgICAgIHkgPSAoeTEgLSB5MikgLyAyLjAgKyB5MgorKy0gICAgICAg ICAgICBkYy5EcmF3TGluZShzY2FsZVswXSAqIHAxWzBdICsgc2hpZnRbMF0sCisrLSAgICAgICAg ICAgICAgICAgICAgICAgIHksCisrLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlWzBdICog cDJbMF0gKyBzaGlmdFswXSwKKystICAgICAgICAgICAgICAgICAgICAgICAgeSkKKysrICAgICAg ICAgICAgZGMuRHJhd0xpbmUoaW50KHNjYWxlWzBdICogcDFbMF0gKyBzaGlmdFswXSksCisrKyAg ICAgICAgICAgICAgICAgICAgICAgIGludCh5KSwKKysrICAgICAgICAgICAgICAgICAgICAgICAg aW50KHNjYWxlWzBdICogcDJbMF0gKyBzaGlmdFswXSksCisrKyAgICAgICAgICAgICAgICAgICAg ICAgIGludCh5KSkKKysgICAgICAgICBpZiBzZWxmLl9jZW50ZXJMaW5lc0VuYWJsZWQgaW4gKCdW ZXJ0aWNhbCcsIFRydWUpOgorKyAgICAgICAgICAgICB4MSA9IHNjYWxlWzBdICogcDFbMF0gKyBz aGlmdFswXQorKyAgICAgICAgICAgICB4MiA9IHNjYWxlWzBdICogcDJbMF0gKyBzaGlmdFswXQor KyAgICAgICAgICAgICB4ID0gKHgxIC0geDIpIC8gMi4wICsgeDIKKystICAgICAgICAgICAgZGMu RHJhd0xpbmUoeCwKKystICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVbMV0gKiBwMVsxXSAr IHNoaWZ0WzFdLAorKy0gICAgICAgICAgICAgICAgICAgICAgICB4LAorKy0gICAgICAgICAgICAg ICAgICAgICAgICBzY2FsZVsxXSAqIHAyWzFdICsgc2hpZnRbMV0pCisrKyAgICAgICAgICAgIGRj LkRyYXdMaW5lKGludCh4KSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNjYWxlWzFd ICogcDFbMV0gKyBzaGlmdFsxXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgIGludCh4KSwK KysrICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNjYWxlWzFdICogcDJbMV0gKyBzaGlmdFsx XSkpCisrIAorKyAgICAgQFRlbXBTdHlsZSgncGVuJykKKysgICAgIGRlZiBfZHJhd0RpYWdvbmFs cyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQpOgorK0BAIC0yNTc1LDE5ICsyNTc1LDE5 IEBAIGRlZiBfZHJhd0RpYWdvbmFscyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQpOgor KyAgICAgICAgICIiIgorKyAgICAgICAgIHBlbiA9IHNlbGYuZGlhZ29uYWxQZW4KKysgICAgICAg ICBwZW5XaWR0aCA9IHNlbGYucHJpbnRlclNjYWxlICogcGVuLkdldFdpZHRoKCkKKystICAgICAg ICBwZW4uU2V0V2lkdGgocGVuV2lkdGgpCisrKyAgICAgICAgcGVuLlNldFdpZHRoKGludChwZW5X aWR0aCkpCisrICAgICAgICAgZGMuU2V0UGVuKHBlbikKKysgCisrICAgICAgICAgaWYgc2VsZi5f ZGlhZ29uYWxzRW5hYmxlZCBpbiAoJ0JvdHRvbWxlZnQtVG9wcmlnaHQnLCBUcnVlKToKKystICAg ICAgICAgICAgZGMuRHJhd0xpbmUoc2NhbGVbMF0gKiBwMVswXSArIHNoaWZ0WzBdLAorKy0gICAg ICAgICAgICAgICAgICAgICAgICBzY2FsZVsxXSAqIHAxWzFdICsgc2hpZnRbMV0sCisrLSAgICAg ICAgICAgICAgICAgICAgICAgIHNjYWxlWzBdICogcDJbMF0gKyBzaGlmdFswXSwKKystICAgICAg ICAgICAgICAgICAgICAgICAgc2NhbGVbMV0gKiBwMlsxXSArIHNoaWZ0WzFdKQorKysgICAgICAg ICAgICBkYy5EcmF3TGluZShpbnQoc2NhbGVbMF0gKiBwMVswXSArIHNoaWZ0WzBdKSwKKysrICAg ICAgICAgICAgICAgICAgICAgICAgaW50KHNjYWxlWzFdICogcDFbMV0gKyBzaGlmdFsxXSksCisr KyAgICAgICAgICAgICAgICAgICAgICAgIGludChzY2FsZVswXSAqIHAyWzBdICsgc2hpZnRbMF0p LAorKysgICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2NhbGVbMV0gKiBwMlsxXSArIHNoaWZ0 WzFdKSkKKysgICAgICAgICBpZiBzZWxmLl9kaWFnb25hbHNFbmFibGVkIGluICgnQm90dG9tcmln aHQtVG9wbGVmdCcsIFRydWUpOgorKy0gICAgICAgICAgICBkYy5EcmF3TGluZShzY2FsZVswXSAq IHAxWzBdICsgc2hpZnRbMF0sCisrLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlWzFdICog cDJbMV0gKyBzaGlmdFsxXSwKKystICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVbMF0gKiBw MlswXSArIHNoaWZ0WzBdLAorKy0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZVsxXSAqIHAx WzFdICsgc2hpZnRbMV0pCisrKyAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChzY2FsZVswXSAq IHAxWzBdICsgc2hpZnRbMF0pLAorKysgICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2NhbGVb MV0gKiBwMlsxXSArIHNoaWZ0WzFdKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNj YWxlWzBdICogcDJbMF0gKyBzaGlmdFswXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgIGlu dChzY2FsZVsxXSAqIHAxWzFdICsgc2hpZnRbMV0pKQorKyAKKysgICAgIEBUZW1wU3R5bGUoJ3Bl bicpCisrICAgICBkZWYgX2RyYXdBeGVzKHNlbGYsIGRjLCBwMSwgcDIsIHNjYWxlLCBzaGlmdCk6 CisrQEAgLTI2MTQsNyArMjYxNCw3IEBAIGRlZiBfZHJhd0F4ZXMoc2VsZiwgZGMsIHAxLCBwMiwg c2NhbGUsIHNoaWZ0KToKKysgICAgICAgICAjIGluY3JlYXNlcyB0aGlja25lc3MgZm9yIHByaW50 aW5nIG9ubHkKKysgICAgICAgICBwZW4gPSBzZWxmLmF4ZXNQZW4KKysgICAgICAgICBwZW5XaWR0 aCA9IHNlbGYucHJpbnRlclNjYWxlICogcGVuLkdldFdpZHRoKCkKKystICAgICAgICBwZW4uU2V0 V2lkdGgocGVuV2lkdGgpCisrKyAgICAgICAgcGVuLlNldFdpZHRoKGludChwZW5XaWR0aCkpCisr ICAgICAgICAgZGMuU2V0UGVuKHBlbikKKysgCisrICAgICAgICAgYXhlcyA9IHNlbGYuZW5hYmxl QXhlcworK0BAIC0yNjIzLDI0ICsyNjIzLDI0IEBAIGRlZiBfZHJhd0F4ZXMoc2VsZiwgZGMsIHAx LCBwMiwgc2NhbGUsIHNoaWZ0KToKKysgICAgICAgICAgICAgICAgIGxvd2VyLCB1cHBlciA9IHAx WzBdLCBwMlswXQorKyAgICAgICAgICAgICAgICAgYTEgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQo bG93ZXIsIHAxWzFdLCBzY2FsZSwgc2hpZnQpCisrICAgICAgICAgICAgICAgICBhMiA9IHNjYWxl X2FuZF9zaGlmdF9wb2ludCh1cHBlciwgcDFbMV0sIHNjYWxlLCBzaGlmdCkKKystICAgICAgICAg ICAgICAgIGRjLkRyYXdMaW5lKGExWzBdLCBhMVsxXSwgYTJbMF0sIGEyWzFdKQorKysgICAgICAg ICAgICAgICAgZGMuRHJhd0xpbmUoaW50KGExWzBdKSwgaW50KGExWzFdKSwgaW50KGEyWzBdKSwg aW50KGEyWzFdKSkKKysgICAgICAgICAgICAgaWYgYXhlcy50b3A6CisrICAgICAgICAgICAgICAg ICBsb3dlciwgdXBwZXIgPSBwMVswXSwgcDJbMF0KKysgICAgICAgICAgICAgICAgIGExID0gc2Nh bGVfYW5kX3NoaWZ0X3BvaW50KGxvd2VyLCBwMlsxXSwgc2NhbGUsIHNoaWZ0KQorKyAgICAgICAg ICAgICAgICAgYTIgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQodXBwZXIsIHAyWzFdLCBzY2FsZSwg c2hpZnQpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShhMVswXSwgYTFbMV0sIGEyWzBd LCBhMlsxXSkKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChhMVswXSksIGludChh MVsxXSksIGludChhMlswXSksIGludChhMlsxXSkpCisrIAorKyAgICAgICAgIGlmIHNlbGYueVNw ZWMgIT0gJ25vbmUnOgorKyAgICAgICAgICAgICBpZiBheGVzLmxlZnQ6CisrICAgICAgICAgICAg ICAgICBsb3dlciwgdXBwZXIgPSBwMVsxXSwgcDJbMV0KKysgICAgICAgICAgICAgICAgIGExID0g c2NhbGVfYW5kX3NoaWZ0X3BvaW50KHAxWzBdLCBsb3dlciwgc2NhbGUsIHNoaWZ0KQorKyAgICAg ICAgICAgICAgICAgYTIgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQocDFbMF0sIHVwcGVyLCBzY2Fs ZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShhMVswXSwgYTFbMV0sIGEy WzBdLCBhMlsxXSkKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChhMVswXSksIGlu dChhMVsxXSksIGludChhMlswXSksIGludChhMlsxXSkpCisrICAgICAgICAgICAgIGlmIGF4ZXMu cmlnaHQ6CisrICAgICAgICAgICAgICAgICBsb3dlciwgdXBwZXIgPSBwMVsxXSwgcDJbMV0KKysg ICAgICAgICAgICAgICAgIGExID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHAyWzBdLCBsb3dlciwg c2NhbGUsIHNoaWZ0KQorKyAgICAgICAgICAgICAgICAgYTIgPSBzY2FsZV9hbmRfc2hpZnRfcG9p bnQocDJbMF0sIHVwcGVyLCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3 TGluZShhMVswXSwgYTFbMV0sIGEyWzBdLCBhMlsxXSkKKysrICAgICAgICAgICAgICAgIGRjLkRy YXdMaW5lKGludChhMVswXSksIGludChhMVsxXSksIGludChhMlswXSksIGludChhMlsxXSkpCisr IAorKyAgICAgQFRlbXBTdHlsZSgncGVuJykKKysgICAgIGRlZiBfZHJhd0F4ZXNWYWx1ZXMoc2Vs ZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrQEAgLTI2ODYs OCArMjY4Niw4IEBAIGRlZiBfZHJhd0F4ZXNWYWx1ZXMoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUs IHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgICAgICAgICAgICAgdyA9IGRjLkdl dFRleHRFeHRlbnQobGFiZWwpWzBdCisrICAgICAgICAgICAgICAgICAgICAgcHQgPSBzY2FsZV9h bmRfc2hpZnRfcG9pbnQoeCwgcDFbMV0sIHNjYWxlLCBzaGlmdCkKKysgICAgICAgICAgICAgICAg ICAgICBjb29yZHMuYXBwZW5kKAorKy0gICAgICAgICAgICAgICAgICAgICAgICAocHRbMF0gLSB3 LzIsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICBwdFsxXSArIDIgKiBzZWxmLl9wb2ludFNp emVbMV0gLSB4VGlja0xlbmd0aCkKKysrICAgICAgICAgICAgICAgICAgICAgICAgKGludChwdFsw XSAtIHcvMiksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQocHRbMV0gKyAyICogc2Vs Zi5fcG9pbnRTaXplWzFdIC0geFRpY2tMZW5ndGgpKQorKyAgICAgICAgICAgICAgICAgICAgICkK KysgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0TGlzdChsYWJlbHMsIGNvb3JkcykKKysgCisr QEAgLTI2OTgsOCArMjY5OCw4IEBAIGRlZiBfZHJhd0F4ZXNWYWx1ZXMoc2VsZiwgZGMsIHAxLCBw Miwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgICAgICAgICAgICAg dywgaCA9IGRjLkdldFRleHRFeHRlbnQobGFiZWwpCisrICAgICAgICAgICAgICAgICAgICAgcHQg PSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQoeCwgcDJbMV0sIHNjYWxlLCBzaGlmdCkKKysgICAgICAg ICAgICAgICAgICAgICBjb29yZHMuYXBwZW5kKAorKy0gICAgICAgICAgICAgICAgICAgICAgICAo cHRbMF0gLSB3LzIsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICBwdFsxXSAtIDIgKiBzZWxm Ll9wb2ludFNpemVbMV0gLSBoIC0geFRpY2tMZW5ndGgpCisrKyAgICAgICAgICAgICAgICAgICAg ICAgIChpbnQocHRbMF0gLSB3LzIpLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHB0 WzFdIC0gMiAqIHNlbGYuX3BvaW50U2l6ZVsxXSAtIGggLSB4VGlja0xlbmd0aCkpCisrICAgICAg ICAgICAgICAgICAgICAgKQorKyAgICAgICAgICAgICAgICAgZGMuRHJhd1RleHRMaXN0KGxhYmVs cywgY29vcmRzKQorKyAKKytAQCAtMjcxMiw4ICsyNzEyLDggQEAgZGVmIF9kcmF3QXhlc1ZhbHVl cyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0aWNrcywgeXRpY2tzKToKKysgICAg ICAgICAgICAgICAgICAgICB3ID0gZGMuR2V0VGV4dEV4dGVudChsYWJlbClbMF0KKysgICAgICAg ICAgICAgICAgICAgICBwdCA9IHNjYWxlX2FuZF9zaGlmdF9wb2ludChwMVswXSwgeSwgc2NhbGUs IHNoaWZ0KQorKyAgICAgICAgICAgICAgICAgICAgIGNvb3Jkcy5hcHBlbmQoCisrLSAgICAgICAg ICAgICAgICAgICAgICAgIChwdFswXSAtIHcgLSAzICogc2VsZi5fcG9pbnRTaXplWzBdICsgeVRp Y2tMZW5ndGgsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICBwdFsxXSAtIDAuNSAqIGgpCisr KyAgICAgICAgICAgICAgICAgICAgICAgIChpbnQocHRbMF0gLSB3IC0gMyAqIHNlbGYuX3BvaW50 U2l6ZVswXSArIHlUaWNrTGVuZ3RoKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgIGludChw dFsxXSAtIDAuNSAqIGgpKQorKyAgICAgICAgICAgICAgICAgICAgICkKKysgICAgICAgICAgICAg ICAgIGRjLkRyYXdUZXh0TGlzdChsYWJlbHMsIGNvb3JkcykKKysgCisrQEAgLTI3MjUsOCArMjcy NSw4IEBAIGRlZiBfZHJhd0F4ZXNWYWx1ZXMoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0 LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgICAgICAgICAgICAgdyA9IGRjLkdldFRleHRF eHRlbnQobGFiZWwpWzBdCisrICAgICAgICAgICAgICAgICAgICAgcHQgPSBzY2FsZV9hbmRfc2hp ZnRfcG9pbnQocDJbMF0sIHksIHNjYWxlLCBzaGlmdCkKKysgICAgICAgICAgICAgICAgICAgICBj b29yZHMuYXBwZW5kKAorKy0gICAgICAgICAgICAgICAgICAgICAgICAocHRbMF0gKyAzICogc2Vs Zi5fcG9pbnRTaXplWzBdICsgeVRpY2tMZW5ndGgsCisrLSAgICAgICAgICAgICAgICAgICAgICAg ICBwdFsxXSAtIDAuNSAqIGgpCisrKyAgICAgICAgICAgICAgICAgICAgICAgIChpbnQocHRbMF0g KyAzICogc2VsZi5fcG9pbnRTaXplWzBdICsgeVRpY2tMZW5ndGgpLAorKysgICAgICAgICAgICAg ICAgICAgICAgICAgaW50KHB0WzFdIC0gMC41ICogaCkpCisrICAgICAgICAgICAgICAgICAgICAg KQorKyAgICAgICAgICAgICAgICAgZGMuRHJhd1RleHRMaXN0KGxhYmVscywgY29vcmRzKQorKyAK KytAQCAtMjc4NSw3ICsyNzg1LDcgQEAgZGVmIF9kcmF3UGxvdFRpdGxlKHNlbGYsIGRjLCBncmFw aGljcywgbGhzVywgcmhzVywgdGl0bGVXSCk6CisrICAgICAgICAgICAgICsgKHNlbGYucGxvdGJv eF9zaXplWzBdIC0gbGhzVyAtIHJoc1cpIC8gMi4gLSB0aXRsZVdIWzBdIC8gMi4sCisrICAgICAg ICAgICAgIHNlbGYucGxvdGJveF9vcmlnaW5bMV0gLSBzZWxmLnBsb3Rib3hfc2l6ZVsxXQorKyAg ICAgICAgICkKKystICAgICAgICBkYy5EcmF3VGV4dChncmFwaGljcy50aXRsZSwgdGl0bGVQb3Nb MF0sIHRpdGxlUG9zWzFdKQorKysgICAgICAgIGRjLkRyYXdUZXh0KGdyYXBoaWNzLnRpdGxlLCBp bnQodGl0bGVQb3NbMF0pLCBpbnQodGl0bGVQb3NbMV0pKQorKyAKKysgICAgIGRlZiBfZHJhd0F4 ZXNMYWJlbHMoc2VsZiwgZGMsIGdyYXBoaWNzLCBsaHNXLCByaHNXLCBib3R0b21ILCB0b3BILAor KyAgICAgICAgICAgICAgICAgICAgICAgICB4TGFiZWxXSCwgeUxhYmVsV0gpOgorK0BAIC0yODA2 LDcgKzI4MDYsNyBAQCBkZWYgX2RyYXdBeGVzTGFiZWxzKHNlbGYsIGRjLCBncmFwaGljcywgbGhz VywgcmhzVywgYm90dG9tSCwgdG9wSCwKKysgICAgICAgICAgICAgKyAoc2VsZi5wbG90Ym94X3Np emVbMF0gLSBsaHNXIC0gcmhzVykgLyAyLiAtIHhMYWJlbFdIWzBdIC8gMi4sCisrICAgICAgICAg ICAgIHNlbGYucGxvdGJveF9vcmlnaW5bMV0gLSB4TGFiZWxXSFsxXSAtIHlUaWNrTGVuZ3RoCisr ICAgICAgICAgKQorKy0gICAgICAgIGRjLkRyYXdUZXh0KGdyYXBoaWNzLnhMYWJlbCwgeExhYmVs UG9zWzBdLCB4TGFiZWxQb3NbMV0pCisrKyAgICAgICAgZGMuRHJhd1RleHQoZ3JhcGhpY3MueExh YmVsLCBpbnQoeExhYmVsUG9zWzBdKSwgaW50KHhMYWJlbFBvc1sxXSkpCisrICAgICAgICAgeUxh YmVsUG9zID0gKAorKyAgICAgICAgICAgICBzZWxmLnBsb3Rib3hfb3JpZ2luWzBdIC0gMyAqIHNl bGYuX3BvaW50U2l6ZVswXSArIHhUaWNrTGVuZ3RoLAorKyAgICAgICAgICAgICBzZWxmLnBsb3Ri b3hfb3JpZ2luWzFdIC0gYm90dG9tSAorK0BAIC0yODE0LDcgKzI4MTQsNyBAQCBkZWYgX2RyYXdB eGVzTGFiZWxzKHNlbGYsIGRjLCBncmFwaGljcywgbGhzVywgcmhzVywgYm90dG9tSCwgdG9wSCwK KysgICAgICAgICApCisrICAgICAgICAgaWYgZ3JhcGhpY3MueUxhYmVsOiAgIyBidWcgZml4IGZv ciBMaW51eAorKyAgICAgICAgICAgICBkYy5EcmF3Um90YXRlZFRleHQoCisrLSAgICAgICAgICAg ICAgICBncmFwaGljcy55TGFiZWwsIHlMYWJlbFBvc1swXSwgeUxhYmVsUG9zWzFdLCA5MCkKKysr ICAgICAgICAgICAgICAgIGdyYXBoaWNzLnlMYWJlbCwgaW50KHlMYWJlbFBvc1swXSksIGludCh5 TGFiZWxQb3NbMV0pLCA5MCkKKysgCisrICAgICBAVGVtcFN0eWxlKCdwZW4nKQorKyAgICAgZGVm IF9kcmF3UGxvdEFyZWFMYWJlbHMoc2VsZiwgZGMsIGdyYXBoaWNzLCBsaHNXLCByaHNXLCB0aXRs ZVdILAorK0BAIC0yOTQyLDcgKzI5NDIsNyBAQCBkZWYgX2FkanVzdFNjcm9sbGJhcnMoc2VsZik6 CisrICAgICAgICAgaWYgcG9zID49IDA6CisrICAgICAgICAgICAgIHBhZ2VzaXplID0gaW50KChy X2N1cnJlbnRbMV0gLSByX2N1cnJlbnRbMF0pIC8gdW5pdCkKKysgCisrLSAgICAgICAgICAgIHNl bGYuc2JfaG9yLlNldFNjcm9sbGJhcihwb3MsIHBhZ2VzaXplLCBzYmZ1bGxyYW5nZSwgcGFnZXNp emUpCisrKyAgICAgICAgICAgIHNlbGYuc2JfaG9yLlNldFNjcm9sbGJhcihwb3MsIHBhZ2VzaXpl LCBpbnQoc2JmdWxscmFuZ2UpLCBwYWdlc2l6ZSkKKysgICAgICAgICAgICAgc2VsZi5fc2JfeHVu aXQgPSB1bml0CisrICAgICAgICAgICAgIG5lZWRTY3JvbGxiYXJzID0gbmVlZFNjcm9sbGJhcnMg b3IgKHBhZ2VzaXplICE9IHNiZnVsbHJhbmdlKQorKyAgICAgICAgIGVsc2U6CisrQEAgLTI5NjQs NyArMjk2NCw3IEBAIGRlZiBfYWRqdXN0U2Nyb2xsYmFycyhzZWxmKToKKysgICAgICAgICBpZiBw b3MgPj0gMDoKKysgICAgICAgICAgICAgcGFnZXNpemUgPSBpbnQoKHJfY3VycmVudFsxXSAtIHJf Y3VycmVudFswXSkgLyB1bml0KQorKyAgICAgICAgICAgICBwb3MgPSAoc2JmdWxscmFuZ2UgLSAx IC0gcG9zIC0gcGFnZXNpemUpCisrLSAgICAgICAgICAgIHNlbGYuc2JfdmVydC5TZXRTY3JvbGxi YXIocG9zLCBwYWdlc2l6ZSwgc2JmdWxscmFuZ2UsIHBhZ2VzaXplKQorKysgICAgICAgICAgICBz ZWxmLnNiX3ZlcnQuU2V0U2Nyb2xsYmFyKGludChwb3MpLCBwYWdlc2l6ZSwgaW50KHNiZnVsbHJh bmdlKSwgcGFnZXNpemUpCisrICAgICAgICAgICAgIHNlbGYuX3NiX3l1bml0ID0gdW5pdAorKyAg ICAgICAgICAgICBuZWVkU2Nyb2xsYmFycyA9IG5lZWRTY3JvbGxiYXJzIG9yIChwYWdlc2l6ZSAh PSBzYmZ1bGxyYW5nZSkKKysgICAgICAgICBlbHNlOgorK2RpZmYgLS1naXQgYS93eC9saWIvcGxv dC9wb2x5b2JqZWN0cy5weSBiL3d4L2xpYi9wbG90L3BvbHlvYmplY3RzLnB5CisraW5kZXggMjZh NTRmOGY3Li43MjViMDE2NGUgMTAwNjQ0CisrLS0tIGEvd3gvbGliL3Bsb3QvcG9seW9iamVjdHMu cHkKKysrKysgYi93eC9saWIvcGxvdC9wb2x5b2JqZWN0cy5weQorK0BAIC00MTcsNyArNDE3LDcg QEAgZGVmIGRyYXcoc2VsZiwgZGMsIHByaW50ZXJTY2FsZSwgY29vcmQ9Tm9uZSk6CisrIAorKyAg ICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNvbG91ciwgd3guQ29sb3VyKToKKysgICAgICAgICAg ICAgY29sb3VyID0gd3guQ29sb3VyKGNvbG91cikKKystICAgICAgICBwZW4gPSB3eC5QZW4oY29s b3VyLCB3aWR0aCwgc3R5bGUpCisrKyAgICAgICAgcGVuID0gd3guUGVuKGNvbG91ciwgaW50KHdp ZHRoKSwgc3R5bGUpCisrICAgICAgICAgcGVuLlNldENhcCh3eC5DQVBfQlVUVCkKKysgICAgICAg ICBkYy5TZXRQZW4ocGVuKQorKyAgICAgICAgIGlmIGNvb3JkIGlzIE5vbmU6CisrQEAgLTUxOCw3 ICs1MTgsNyBAQCBkZWYgZHJhdyhzZWxmLCBkYywgcHJpbnRlclNjYWxlLCBjb29yZD1Ob25lKToK KysgICAgICAgICBzdHlsZSA9IHNlbGYuYXR0cmlidXRlc1snc3R5bGUnXQorKyAgICAgICAgIGlm IG5vdCBpc2luc3RhbmNlKGNvbG91ciwgd3guQ29sb3VyKToKKysgICAgICAgICAgICAgY29sb3Vy ID0gd3guQ29sb3VyKGNvbG91cikKKystICAgICAgICBwZW4gPSB3eC5QZW4oY29sb3VyLCB3aWR0 aCwgc3R5bGUpCisrKyAgICAgICAgcGVuID0gd3guUGVuKGNvbG91ciwgaW50KHdpZHRoKSwgc3R5 bGUpCisrICAgICAgICAgcGVuLlNldENhcCh3eC5DQVBfUk9VTkQpCisrICAgICAgICAgZGMuU2V0 UGVuKHBlbikKKysgICAgICAgICBpZiBjb29yZCBpcyBOb25lOgorK0BAIC01OTAsNyArNTkwLDcg QEAgZGVmIGRyYXcoc2VsZiwgZGMsIHByaW50ZXJTY2FsZSwgY29vcmQ9Tm9uZSk6CisrICAgICAg ICAgaWYgZmlsbGNvbG91ciBhbmQgbm90IGlzaW5zdGFuY2UoZmlsbGNvbG91ciwgd3guQ29sb3Vy KToKKysgICAgICAgICAgICAgZmlsbGNvbG91ciA9IHd4LkNvbG91cihmaWxsY29sb3VyKQorKyAK KystICAgICAgICBkYy5TZXRQZW4od3guUGVuKGNvbG91ciwgd2lkdGgpKQorKysgICAgICAgIGRj LlNldFBlbih3eC5QZW4oY29sb3VyLCBpbnQod2lkdGgpKSkKKysgICAgICAgICBpZiBmaWxsY29s b3VyOgorKyAgICAgICAgICAgICBkYy5TZXRCcnVzaCh3eC5CcnVzaChmaWxsY29sb3VyLCBmaWxs c3R5bGUpKQorKyAgICAgICAgIGVsc2U6CisrQEAgLTYxOCw2ICs2MTgsNyBAQCBkZWYgX2NpcmNs ZShzZWxmLCBkYywgY29vcmRzLCBzaXplPTEpOgorKyAgICAgICAgIGRjLkRyYXdFbGxpcHNlTGlz dChyZWN0LmFzdHlwZShucC5pbnQzMikpCisrIAorKyAgICAgZGVmIF9kb3Qoc2VsZiwgZGMsIGNv b3Jkcywgc2l6ZT0xKToKKysrICAgICAgICBjb29yZHMgPSBbKGludChjWzBdKSwgaW50KGNbMV0p KSBmb3IgYyBpbiBjb29yZHNdCisrICAgICAgICAgZGMuRHJhd1BvaW50TGlzdChjb29yZHMpCisr IAorKyAgICAgZGVmIF9zcXVhcmUoc2VsZiwgZGMsIGNvb3Jkcywgc2l6ZT0xKToKKytAQCAtNjk5 LDcgKzcwMCw3IEBAIGRlZiBzZXRfcGVuX2FuZF9icnVzaChzZWxmLCBkYywgcHJpbnRlclNjYWxl KToKKysgCisrICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocGVuY29sb3VyLCB3eC5Db2xvdXIp OgorKyAgICAgICAgICAgICBwZW5jb2xvdXIgPSB3eC5Db2xvdXIocGVuY29sb3VyKQorKy0gICAg ICAgIHBlbiA9IHd4LlBlbihwZW5jb2xvdXIsIHBlbndpZHRoLCBwZW5zdHlsZSkKKysrICAgICAg ICBwZW4gPSB3eC5QZW4ocGVuY29sb3VyLCBpbnQocGVud2lkdGgpLCBwZW5zdHlsZSkKKysgICAg ICAgICBwZW4uU2V0Q2FwKHd4LkNBUF9CVVRUKQorKyAKKysgICAgICAgICBpZiBub3QgaXNpbnN0 YW5jZShmaWxsY29sb3VyLCB3eC5Db2xvdXIpOgorK0BAIC03OTAsNiArNzkxLDcgQEAgZGVmIGRy YXcoc2VsZiwgZGMsIHByaW50ZXJTY2FsZSwgY29vcmQ9Tm9uZSk6CisrICAgICAgICAgICAgICAg ICByYWlzZSBUeXBlRXJyb3IoZXJyX3N0ci5mb3JtYXQodHlwZShiYXJ3aWR0aCkpKQorKyAKKysg ICAgICAgICAgICAgcmVjdHMgPSBbc2VsZi5jYWxjX3JlY3QoeCwgeSwgdykgZm9yIHgsIHksIHcg aW4gcHRzXQorKysgICAgICAgICAgICByZWN0cyA9IFsoaW50KHJbMF0pLCBpbnQoclsxXSksIGlu dChyWzJdKSwgaW50KHJbM10pKSBmb3IgciBpbiByZWN0c10KKysgICAgICAgICAgICAgZGMuRHJh d1JlY3RhbmdsZUxpc3QocmVjdHMpCisrICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgZGMu RHJhd0xpbmVzKGNvb3JkKSAgIyBkcmF3IGxlZ2VuZCBsaW5lCisrQEAgLTg1OCw2ICs4NjAsOCBA QCBkZWYgZHJhdyhzZWxmLCBkYywgcHJpbnRlclNjYWxlLCBjb29yZD1Ob25lKToKKysgICAgICAg ICAgICAgcmVjdHMgPSBbc2VsZi5jYWxjX3JlY3QoeSwgbG93LCBoaWdoKQorKyAgICAgICAgICAg ICAgICAgICAgICBmb3IgeSwgKGxvdywgaGlnaCkKKysgICAgICAgICAgICAgICAgICAgICAgaW4g emlwKHNlbGYuaGlzdCwgc2VsZi5iaW5zKV0KKysrICAgICAgICAgICAgcmVjdHMgPSBbKGludChy WzBdKSwgaW50KHJbMV0pLCBpbnQoclsyXSksIGludChyWzNdKSkKKysrICAgICAgICAgICAgICAg ICAgICAgZm9yIHIgaW4gcmVjdHNdCisrIAorKyAgICAgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xl TGlzdChyZWN0cykKKysgICAgICAgICBlbHNlOgorK0BAIC0xMTE0LDEwICsxMTE4LDEwIEBAIGRl ZiBfZHJhd19pcXJfYm94KHNlbGYsIGRjLCBwcmludGVyU2NhbGUpOgorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY3VycmVudFNoaWZ0KQorKyAKKysgICAgICAg ICAjIHJlY3RhbmdsZXMgYXJlIGRyYXduIChsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQpIHNvIGFk anVzdAorKy0gICAgICAgIGlxcl9ib3ggPSBbaXFyX2JveFswXVswXSwgICAgICAgICAgICAgICAg ICAgIyBYIChsZWZ0KQorKy0gICAgICAgICAgICAgICAgICAgaXFyX2JveFswXVsxXSwgICAgICAg ICAgICAgICAgICAgIyBZICh0b3ApCisrLSAgICAgICAgICAgICAgICAgICBpcXJfYm94WzFdWzBd IC0gaXFyX2JveFswXVswXSwgICAjIFdpZHRoCisrLSAgICAgICAgICAgICAgICAgICBpcXJfYm94 WzFdWzFdIC0gaXFyX2JveFswXVsxXV0gICAjIEhlaWdodAorKysgICAgICAgIGlxcl9ib3ggPSBb aW50KGlxcl9ib3hbMF1bMF0pLCAgICAgICAgICAgICAgICAgICAjIFggKGxlZnQpCisrKyAgICAg ICAgICAgICAgICAgICBpbnQoaXFyX2JveFswXVsxXSksICAgICAgICAgICAgICAgICAgICMgWSAo dG9wKQorKysgICAgICAgICAgICAgICAgICAgaW50KGlxcl9ib3hbMV1bMF0gLSBpcXJfYm94WzBd WzBdKSwgICAjIFdpZHRoCisrKyAgICAgICAgICAgICAgICAgICBpbnQoaXFyX2JveFsxXVsxXSAt IGlxcl9ib3hbMF1bMV0pXSAgICMgSGVpZ2h0CisrIAorKyAgICAgICAgIGJveF9wZW4gPSB3eC5Q ZW4od3guQkxBQ0ssIDMsIHd4LlBFTlNUWUxFX1NPTElEKQorKyAgICAgICAgIGJveF9icnVzaCA9 IHd4LkJydXNoKHd4LkdSRUVOLCB3eC5CUlVTSFNUWUxFX1NPTElEKQorK0BAIC0xNTAzLDcgKzE1 MDcsNyBAQCBkZWYgT25QcmludFBhZ2Uoc2VsZiwgcGFnZSk6CisrICAgICAgICAgc2VsZi5ncmFw aC5fc2V0U2l6ZShwbG90QXJlYVcsIHBsb3RBcmVhSCkKKysgCisrICAgICAgICAgIyBTZXQgb2Zm c2V0IGFuZCBzY2FsZQorKy0gICAgICAgIGRjLlNldERldmljZU9yaWdpbihwaXhMZWZ0LCBwaXhU b3ApCisrKyAgICAgICAgZGMuU2V0RGV2aWNlT3JpZ2luKGludChwaXhMZWZ0KSwgaW50KHBpeFRv cCkpCisrIAorKyAgICAgICAgICMgVGhpY2tlbiB1cCBwZW5zIGFuZCBpbmNyZWFzZSBtYXJrZXIg c2l6ZSBmb3IgcHJpbnRpbmcKKysgICAgICAgICByYXRpb1cgPSBmbG9hdChwbG90QXJlYVcpIC8g Y2xpZW50RGNTaXplWzBdCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9wb3B1cGN0bC5weSBiL3d4L2xp Yi9wb3B1cGN0bC5weQorK2luZGV4IDg4M2JlNWFlNS4uMjM2NTAxZjZkIDEwMDY0NAorKy0tLSBh L3d4L2xpYi9wb3B1cGN0bC5weQorKysrKyBiL3d4L2xpYi9wb3B1cGN0bC5weQorK0BAIC0xMjQs NyArMTI0LDcgQEAgZGVmIERpc3BsYXkoc2VsZik6CisrICAgICAgICAgc2VsZlNpemUgPSBzZWxm LkdldFNpemUoKQorKyAgICAgICAgIHRjU2l6ZSA9IHNlbGYuY3RybC5HZXRTaXplKCkKKysgCisr LSAgICAgICAgcG9zLnggLT0gKHNlbGZTaXplLndpZHRoIC0gdGNTaXplLndpZHRoKSAvIDIKKysr ICAgICAgICBwb3MueCAtPSAoc2VsZlNpemUud2lkdGggLSB0Y1NpemUud2lkdGgpIC8vIDIKKysg ICAgICAgICBpZiBwb3MueCArIHNlbGZTaXplLndpZHRoID4gZFNpemUud2lkdGg6CisrICAgICAg ICAgICAgIHBvcy54ID0gZFNpemUud2lkdGggLSBzZWxmU2l6ZS53aWR0aAorKyAgICAgICAgIGlm IHBvcy54IDwgMDoKKytkaWZmIC0tZ2l0IGEvd3gvbGliL3Njcm9sbGVkcGFuZWwucHkgYi93eC9s aWIvc2Nyb2xsZWRwYW5lbC5weQorK2luZGV4IGU0YzQ4MmFmOS4uMWY3ODNlYTk3IDEwMDY0NAor Ky0tLSBhL3d4L2xpYi9zY3JvbGxlZHBhbmVsLnB5CisrKysrIGIvd3gvbGliL3Njcm9sbGVkcGFu ZWwucHkKKytAQCAtMjIyLDQgKzIyMiw0IEBAIGRlZiBTY3JvbGxDaGlsZEludG9WaWV3KHNlbGYs IGNoaWxkKToKKysgICAgICAgICAjIGlmIHdlIG5lZWQgdG8gYWRqdXN0CisrICAgICAgICAgaWYg bmV3X3ZzX3ggIT0gLTEgb3IgbmV3X3ZzX3kgIT0gLTE6CisrICAgICAgICAgICAgICNwcmludCgi JXM6ICglcywgJXMpIiAlIChzZWxmLkdldE5hbWUoKSwgbmV3X3ZzX3gsIG5ld192c195KSkKKyst ICAgICAgICAgICAgc2VsZi5TY3JvbGwobmV3X3ZzX3gsIG5ld192c195KQorKysgICAgICAgICAg ICBzZWxmLlNjcm9sbChpbnQobmV3X3ZzX3gpLCBpbnQobmV3X3ZzX3kpKQorK2RpZmYgLS1naXQg YS93eC9saWIvdGhyb2JiZXIucHkgYi93eC9saWIvdGhyb2JiZXIucHkKKytpbmRleCA5OTU0ZDZi MjcuLmVlOGM1MTIwOSAxMDA2NDQKKystLS0gYS93eC9saWIvdGhyb2JiZXIucHkKKysrKysgYi93 eC9saWIvdGhyb2JiZXIucHkKKytAQCAtMjAwLDExICsyMDAsMTEgQEAgZGVmIERyYXcoc2VsZiwg ZGMpOgorKyAgICAgICAgICIiIgorKyAgICAgICAgIGRjLkRyYXdCaXRtYXAoc2VsZi5zdWJtYXBz W3NlbGYuc2VxdWVuY2Vbc2VsZi5jdXJyZW50XV0sIDAsIDAsIFRydWUpCisrICAgICAgICAgaWYg c2VsZi5vdmVybGF5IGFuZCBzZWxmLnNob3dPdmVybGF5OgorKy0gICAgICAgICAgICBkYy5EcmF3 Qml0bWFwKHNlbGYub3ZlcmxheSwgc2VsZi5vdmVybGF5WCwgc2VsZi5vdmVybGF5WSwgVHJ1ZSkK KysrICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChzZWxmLm92ZXJsYXksIGludChzZWxmLm92ZXJs YXlYKSwgaW50KHNlbGYub3ZlcmxheVkpLCBUcnVlKQorKyAgICAgICAgIGlmIHNlbGYubGFiZWwg YW5kIHNlbGYuc2hvd0xhYmVsOgorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dChzZWxmLmxhYmVs LCBzZWxmLmxhYmVsWCwgc2VsZi5sYWJlbFkpCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KHNl bGYubGFiZWwsIGludChzZWxmLmxhYmVsWCksIGludChzZWxmLmxhYmVsWSkpCisrICAgICAgICAg ICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHd4LldISVRFKQorKy0gICAgICAgICAgICBkYy5EcmF3 VGV4dChzZWxmLmxhYmVsLCBzZWxmLmxhYmVsWC0xLCBzZWxmLmxhYmVsWS0xKQorKysgICAgICAg ICAgICBkYy5EcmF3VGV4dChzZWxmLmxhYmVsLCBpbnQoc2VsZi5sYWJlbFgtMSksIGludChzZWxm LmxhYmVsWS0xKSkKKysgCisrIAorKyAgICAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorK2Rp ZmYgLS1naXQgYS93eC9saWIvdGlja2VyLnB5IGIvd3gvbGliL3RpY2tlci5weQorK2luZGV4IDA0 YWJmMGQ0NC4uNGU2ODRiNGNkIDEwMDY0NAorKy0tLSBhL3d4L2xpYi90aWNrZXIucHkKKysrKysg Yi93eC9saWIvdGlja2VyLnB5CisrQEAgLTg2LDcgKzg2LDcgQEAgZGVmIFN0b3Aoc2VsZik6Cisr ICAgICBkZWYgU3RhcnQoc2VsZik6CisrICAgICAgICAgIiIiU3RhcnRzIHRoZSB0ZXh0IG1vdmlu ZyIiIgorKyAgICAgICAgIGlmIG5vdCBzZWxmLnRpbWVyLklzUnVubmluZygpOgorKy0gICAgICAg ICAgICBzZWxmLnRpbWVyLlN0YXJ0KDEwMDAgLyBzZWxmLl9mcHMpCisrKyAgICAgICAgICAgIHNl bGYudGltZXIuU3RhcnQoMTAwMCAvLyBzZWxmLl9mcHMpCisrIAorKyAKKysgICAgIGRlZiBJc1Rp Y2tpbmcoc2VsZik6CisrQEAgLTIwOCw3ICsyMDgsNyBAQCBkZWYgRHJhd1RleHQoc2VsZiwgZGMp OgorKyAgICAgICAgICAgICBvZmZ4ID0gc2VsZi5fb2Zmc2V0IC0gc2VsZi5fZXh0ZW50WzBdCisr ICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgb2ZmeCA9IHNlbGYuR2V0U2l6ZSgpWzBdIC0g c2VsZi5fb2Zmc2V0CisrLSAgICAgICAgb2ZmeSA9IChzZWxmLkdldFNpemUoKVsxXSAtIHNlbGYu X2V4dGVudFsxXSkgLyAyICNjZW50ZXJlZCB2ZXJ0aWNhbGx5CisrKyAgICAgICAgb2ZmeSA9IChz ZWxmLkdldFNpemUoKVsxXSAtIHNlbGYuX2V4dGVudFsxXSkgLy8gMiAjY2VudGVyZWQgdmVydGlj YWxseQorKyAgICAgICAgIGRjLkRyYXdUZXh0KHNlbGYuX3RleHQsIG9mZngsIG9mZnkpCisrIAor KyAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy93eFB5dGhvbjQvcGF0Y2hlcy8wMDAzLVB5dGhvbi0z LjEwLUFHVy1GbGF0Tm90ZWJvb2sucGF0Y2ggYi9zcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzLzAw MDMtUHl0aG9uLTMuMTAtQUdXLUZsYXROb3RlYm9vay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjg4YzNjYTE4OTY0NwotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3Mvd3hQeXRob240L3BhdGNoZXMvMDAwMy1QeXRob24tMy4xMC1BR1ctRmxhdE5vdGVib29r LnBhdGNoCkBAIC0wLDAgKzEsNTcgQEAKK0Zyb20gMWQ1ZmQ3MmRmZjYzZDYyZGQxOWI3N2U0ODlk NDExNTI0NWQ0ZDQ1MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNjb3R0IFRhbGJl cnQgPHN3dEB0ZWNoaWUubmV0PgorRGF0ZTogRGVjIDI4IDIwMjEgMDI6NTg6MTIgKzAwMDAKK1N1 YmplY3Q6IEZpeCBtb3JlIFB5dGhvbiAzLjEwIGlzc3VlcyB3aXRoIEFHVyBGbGF0Tm90ZWJvb2sg KCMyMDM1NzkwKQorCisKKy0tLQorCitkaWZmIC0tZ2l0IGEvYWEzZGNhMGU0MGJkMDcwMWU4MmNl NDAyOTdhOTgyYjViODQ4NDRkYy5wYXRjaCBiL2FhM2RjYTBlNDBiZDA3MDFlODJjZTQwMjk3YTk4 MmI1Yjg0ODQ0ZGMucGF0Y2gKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5l OGI3NGFjCistLS0gL2Rldi9udWxsCisrKysgYi9hYTNkY2EwZTQwYmQwNzAxZTgyY2U0MDI5N2E5 ODJiNWI4NDg0NGRjLnBhdGNoCitAQCAtMCwwICsxLDQzIEBACisrRnJvbSBhYTNkY2EwZTQwYmQw NzAxZTgyY2U0MDI5N2E5ODJiNWI4NDg0NGRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorK0Zy b206IFNjb3R0IFRhbGJlcnQgPHN3dEB0ZWNoaWUubmV0PgorK0RhdGU6IE1vbiwgMjcgRGVjIDIw MjEgMTk6NDg6NTUgLTA1MDAKKytTdWJqZWN0OiBbUEFUQ0hdIEZpeCBhZGRpdGlvbmFsIFB5dGhv biAzLjEwIGlzc3VlcyB3aXRoIEFHVyBGbGF0Tm90ZWJvb2sKKysKKystLS0KKysgd3gvbGliL2Fn dy9mbGF0bm90ZWJvb2sucHkgfCAxNCArKysrKysrLS0tLS0tLQorKyAxIGZpbGUgY2hhbmdlZCwg NyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQorKworK2RpZmYgLS1naXQgYS93eC9saWIv YWd3L2ZsYXRub3RlYm9vay5weSBiL3d4L2xpYi9hZ3cvZmxhdG5vdGVib29rLnB5CisraW5kZXgg ZDMzZjcxZDUxLi42MWJjNGVmYjMgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9mbGF0bm90ZWJv b2sucHkKKysrKysgYi93eC9saWIvYWd3L2ZsYXRub3RlYm9vay5weQorK0BAIC05MjUsMTQgKzky NSwxNCBAQCBkZWYgRHJhd0J1dHRvbihkYywgcmVjdCwgZm9jdXMsIHVwcGVyVGFicyk6CisrIAor KyAgICAgaWYgZm9jdXM6CisrICAgICAgICAgaWYgdXBwZXJUYWJzOgorKy0gICAgICAgICAgICBs ZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo4KQor Ky0gICAgICAgICAgICByaWdodFB0ID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0aCAtIDIs IHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo4KQorKysgICAgICAgICAgICBsZWZ0UHQgPSB3 eC5Qb2ludChyZWN0LngsIGludChyZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAxMCkqOCkpCisrKyAg ICAgICAgICAgIHJpZ2h0UHQgPSB3eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoIC0gMiwgaW50 KHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo4KSkKKysgICAgICAgICBlbHNlOgorKy0gICAg ICAgICAgICBsZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIHJlY3QueSArIChyZWN0LmhlaWdodCAv IDEwKSo1KQorKy0gICAgICAgICAgICByaWdodFB0ID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53 aWR0aCAtIDIsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo1KQorKysgICAgICAgICAgICBs ZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIGludChyZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAxMCkq NSkpCisrKyAgICAgICAgICAgIHJpZ2h0UHQgPSB3eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRo IC0gMiwgaW50KHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo1KSkKKysgICAgIGVsc2U6Cisr LSAgICAgICAgbGVmdFB0ID0gd3guUG9pbnQocmVjdC54LCByZWN0LnkgKyAocmVjdC5oZWlnaHQg LyAyKSkKKystICAgICAgICByaWdodFB0ID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0aCAt IDIsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDIpKQorKysgICAgICAgIGxlZnRQdCA9IHd4LlBv aW50KHJlY3QueCwgaW50KHJlY3QueSArIChyZWN0LmhlaWdodCAvIDIpKSkKKysrICAgICAgICBy aWdodFB0ID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0aCAtIDIsIGludChyZWN0LnkgKyAo cmVjdC5oZWlnaHQgLyAyKSkpCisrIAorKyAgICAgIyBEZWZpbmUgdGhlIHRvcCByZWdpb24KKysg ICAgIHRvcCA9IHd4LlJlY3QocmVjdC5HZXRUb3BMZWZ0KCksIHJpZ2h0UHQpCisrQEAgLTI3NjYs NyArMjc2Niw3IEBAIGRlZiBEcmF3VGFiKHNlbGYsIHBhZ2VDb250YWluZXIsIGRjLCBwb3N4LCB0 YWJJZHgsIHRhYldpZHRoLCB0YWJIZWlnaHQsIGJ0blN0YXR1CisrICAgICAgICAgaWYgcGFnZVRl eHRDb2xvdXIgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5k KHBhZ2VUZXh0Q29sb3VyKQorKyAKKystICAgICAgICBkYy5EcmF3VGV4dChwYy5HZXRQYWdlVGV4 dCh0YWJJZHgpLCBwb3N4ICsgdGV4dE9mZnNldCwgaW1hZ2VZQ29vcmQpCisrKyAgICAgICAgZGMu RHJhd1RleHQocGMuR2V0UGFnZVRleHQodGFiSWR4KSwgaW50KHBvc3ggKyB0ZXh0T2Zmc2V0KSwg aW1hZ2VZQ29vcmQpCisrIAorKyAgICAgICAgICMgZHJhdyAneCcgb24gdGFiIChpZiBlbmFibGVk KQorKyAgICAgICAgIGlmIHBjLkhhc0FHV0ZsYWcoRk5CX1hfT05fVEFCKSBhbmQgdGFiSWR4ID09 IHBjLkdldFNlbGVjdGlvbigpOgpkaWZmIC0tZ2l0IGEvc3JjcGtncy93eFB5dGhvbjQvcGF0Y2hl cy9yZXN0b3JlLWdpbC1wc2V1ZG9kYy5wYXRjaCBiL3NyY3BrZ3Mvd3hQeXRob240L3BhdGNoZXMv cmVzdG9yZS1naWwtcHNldWRvZGMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi42ZjIxZWNiN2E3MTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3d4UHl0 aG9uNC9wYXRjaGVzL3Jlc3RvcmUtZ2lsLXBzZXVkb2RjLnBhdGNoCkBAIC0wLDAgKzEsNTIgQEAK K0JhY2twb3J0IGh0dHBzOi8vZ2l0aHViLmNvbS93eFdpZGdldHMvUGhvZW5peC9wdWxsLzE4NDkK K1JlZ2FyZGluZyBzZWdmYXVsdCBhcyBpbiBodHRwczovL2dpdGh1Yi5jb20vT1NHZW8vZ3Jhc3Mv aXNzdWVzLzExMjMKKworRnJvbSA1Y2FjZTQ3YWFlY2UzY2M0ZjJlNmVhOTdkN2ZkNWJiOGVkMzE2 YWM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUm9iaW4gRHVubiA8cm9iaW5AYWxs ZHVubi5jb20+CitEYXRlOiBXZWQsIDE4IE5vdiAyMDIwIDEwOjUyOjUzIC0wODAwCitTdWJqZWN0 OiBbUEFUQ0hdIFJlc3RvcmUgR0lMIGFjcXVpc2l0aW9uIGluIHd4UHNldWRvREM6OkZpbmRPYmpl Y3RzKgorCistLS0KKyBzcmMvcHNldWRvZGMuY3BwIHwgOCArKystLS0tLQorIDEgZmlsZSBjaGFu Z2VkLCAzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMv cHNldWRvZGMuY3BwIGIvc3JjL3BzZXVkb2RjLmNwcAoraW5kZXggNTg5MGVkN2UyLi5lZDRiY2Qw NmEgMTAwNjQ0CistLS0gYS9zcmMvcHNldWRvZGMuY3BwCisrKysgYi9zcmMvcHNldWRvZGMuY3Bw CitAQCAtNDgzLDcgKzQ4Myw3IEBAIGJvb2wgd3hQc2V1ZG9EQzo6R2V0SWRHcmV5ZWRPdXQoaW50 IGlkKQorIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBQeU9iamVjdCAqd3hQc2V1ZG9EQzo6Rmlu ZE9iamVjdHNCeUJCb3god3hDb29yZCB4LCB3eENvb3JkIHkpCisgeworLSAgICAvL3d4UHlCbG9j a190IGJsb2NrZWQgPSB3eFB5QmVnaW5CbG9ja1RocmVhZHMoKTsKKysgICAgd3hQeVRocmVhZEJs b2NrZXIgYmxvY2tlcjsKKyAgICAgcGRjT2JqZWN0TGlzdDo6Y29tcGF0aWJpbGl0eV9pdGVyYXRv ciBwdCA9IG1fb2JqZWN0bGlzdC5HZXRGaXJzdCgpOworICAgICBwZGNPYmplY3QgKm9iajsKKyAg ICAgUHlPYmplY3QqIHB5TGlzdCA9IE5VTEw7CitAQCAtNTAxLDcgKzUwMSw2IEBAIFB5T2JqZWN0 ICp3eFBzZXVkb0RDOjpGaW5kT2JqZWN0c0J5QkJveCh3eENvb3JkIHgsIHd4Q29vcmQgeSkKKyAg ICAgICAgIH0KKyAgICAgICAgIHB0ID0gcHQtPkdldE5leHQoKTsKKyAgICAgfQorLSAgICAvL3d4 UHlFbmRCbG9ja1RocmVhZHMoYmxvY2tlZCk7CisgICAgIHJldHVybiBweUxpc3Q7CisgfQorIAor QEAgLTUxMSw3ICs1MTAsNyBAQCBQeU9iamVjdCAqd3hQc2V1ZG9EQzo6RmluZE9iamVjdHNCeUJC b3god3hDb29yZCB4LCB3eENvb3JkIHkpCisgUHlPYmplY3QgKnd4UHNldWRvREM6OkZpbmRPYmpl Y3RzKHd4Q29vcmQgeCwgd3hDb29yZCB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB3eENvb3JkIHJhZGl1cywgY29uc3Qgd3hDb2xvciYgYmcpCisgeworLSAgICAvL3d4UHlC bG9ja190IGJsb2NrZWQgPSB3eFB5QmVnaW5CbG9ja1RocmVhZHMoKTsKKysgICAgd3hQeVRocmVh ZEJsb2NrZXIgYmxvY2tlcjsKKyAgICAgcGRjT2JqZWN0TGlzdDo6Y29tcGF0aWJpbGl0eV9pdGVy YXRvciBwdCA9IG1fb2JqZWN0bGlzdC5HZXRGaXJzdCgpOworICAgICBwZGNPYmplY3QgKm9iajsK KyAgICAgUHlPYmplY3QqIHB5TGlzdCA9IE5VTEw7CitAQCAtNjExLDggKzYxMCw3IEBAIFB5T2Jq ZWN0ICp3eFBzZXVkb0RDOjpGaW5kT2JqZWN0cyh3eENvb3JkIHgsIHd4Q29vcmQgeSwKKyAgICAg ICAgIG1hc2tkYy5TZWxlY3RPYmplY3Qod3hOdWxsQml0bWFwKTsKKyAgICAgICAgIG1lbWRjLlNl bGVjdE9iamVjdCh3eE51bGxCaXRtYXApOworICAgICB9CistICAgIC8vd3hQeUVuZEJsb2NrVGhy ZWFkcyhibG9ja2VkKTsKKy0gICAgcmV0dXJuIHB5TGlzdDsKKysgICAgIHJldHVybiBweUxpc3Q7 CisgfQorIAorIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvd3hQ eXRob240L3RlbXBsYXRlIGIvc3JjcGtncy93eFB5dGhvbjQvdGVtcGxhdGUKaW5kZXggNTU0MTc0 MTA1YTM2Li5hZmVhMWI1NWJmOTAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvd3hQeXRob240L3RlbXBs YXRlCisrKyBiL3NyY3BrZ3Mvd3hQeXRob240L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnd3hQeXRob240JwogcGtnbmFtZT13eFB5dGhvbjQKIHZlcnNpb249 NC4wLjcKLXJldmlzaW9uPTQKK3JldmlzaW9uPTUKIHdya3NyYz0id3hQeXRob24tJHt2ZXJzaW9u fSIKIGJ1aWxkX3N0eWxlPXB5dGhvbjMtbW9kdWxlCiBtYWtlX2J1aWxkX2FyZ3M9Ii0tc2tpcC1i dWlsZCIKQEAgLTEwLDYgKzEwLDcgQEAgaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHB5dGhv bjMtc2V0dXB0b29scyBweXRob24zLXBhdGhsaWIyIgogbWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2 ZWwgd3hXaWRnZXRzLWd0azMtZGV2ZWwgU0RMMi1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsCiAgZ3N0 LXBsdWdpbnMtYmFzZTEtZGV2ZWwiCiBkZXBlbmRzPSJweXRob24zIHB5dGhvbjMtc2l4IHB5dGhv bjMtbnVtcHkgcHl0aG9uMy1QaWxsb3ciCitjaGVja2RlcGVuZHM9InB5dGhvbjMtc2l4IHB5dGhv bjMtbnVtcHkgcHl0aG9uMy1QaWxsb3ciCiBzaG9ydF9kZXNjPSJXeFdpZGdldHMgR1VJIHRvb2xr aXQgbGlicmFyeSAoUHl0aG9uMyBCaW5kaW5ncykiCiBtYWludGFpbmVyPSJKYXNwZXIgQ2hhbiA8 amFzcGVyY2hhbjUxNUBnbWFpbC5jb20+IgogbGljZW5zZT0iY3VzdG9tOnd4V2luZG93cyIKCkZy b20gNWY3OGRjMjExOWU1OGQwZGU2ZGYxNDYxYjk1NzdmMzBkYTMwNGMyMyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRh dGU6IE1vbiwgMTQgRmViIDIwMjIgMjE6NTY6MDMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA5LzE3 XSBncmFzczogdXBkYXRlIHRvIDcuOC43UkMxOyByZWJ1aWxkIGFnYWluc3QgbGliZ2RhbCBhbmQK IHByb2oKClZlcnNpb24gNy44LjdSQzEgaW5jbHVkZXMgYSB3b3JrYXJvdW5kIGZvciBhIHd4UHl0 aG9uIGlzc3VlCmh0dHBzOi8vZ2l0aHViLmNvbS9PU0dlby9ncmFzcy9pc3N1ZXMvMTk3MSNpc3N1 ZWNvbW1lbnQtOTkzNjIyNjEzCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICA3ICsrCiBzcmNwa2dzL2dyYXNzL3BhdGNoZXMvbXVzbC1idWlsZC1maXgu cGF0Y2ggfCAgMTMgKysrCiBzcmNwa2dzL2dyYXNzL3RlbXBsYXRlICAgICAgICAgICAgICAgICAg ICAgfCAxMjggKysrKysrKysrKysrKysrKystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDEyNyBpbnNl cnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dy YXNzL3BhdGNoZXMvbXVzbC1idWlsZC1maXgucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hs aWJzIGIvY29tbW9uL3NobGlicwppbmRleCA1YTc2ZGM5ZWU5ZTAuLmRkNTY5NzhmNDI2OSAxMDA2 NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC00MTE3LDMgKzQx MTcsMTAgQEAgbGlia21sZW5naW5lLnNvLjEgbGlia21sLTEuMy4wXzEKIGxpYmttbHJlZ2lvbmF0 b3Iuc28uMSBsaWJrbWwtMS4zLjBfMQogbGlia21seHNkLnNvLjEgbGlia21sLTEuMy4wXzEKIGxp YmttbGNvbnZlbmllbmNlLnNvLjEgbGlia21sLTEuMy4wXzEKK2xpYmdyYXNzX2RibWliYXNlLjcu OC5zbyBncmFzcy03LjguN1JDMV8xCitsaWJncmFzc19kYm1pY2xpZW50LjcuOC5zbyBncmFzcy03 LjguN1JDMV8xCitsaWJncmFzc19naXMuNy44LnNvIGdyYXNzLTcuOC43UkMxXzEKK2xpYmdyYXNz X2dwcm9qLjcuOC5zbyBncmFzcy03LjguN1JDMV8xCitsaWJncmFzc19pbWFnZXJ5LjcuOC5zbyBn cmFzcy03LjguN1JDMV8xCitsaWJncmFzc19yYXN0ZXIuNy44LnNvIGdyYXNzLTcuOC43UkMxXzEK K2xpYmdyYXNzX3ZlY3Rvci43Ljguc28gZ3Jhc3MtNy44LjdSQzFfMQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9ncmFzcy9wYXRjaGVzL211c2wtYnVpbGQtZml4LnBhdGNoIGIvc3JjcGtncy9ncmFzcy9w YXRjaGVzL211c2wtYnVpbGQtZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uMzY0ZWUzMGJlNGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9ncmFz cy9wYXRjaGVzL211c2wtYnVpbGQtZml4LnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKK2Vycm9yOiB1 bmtub3duIHR5cGUgbmFtZSAnaW50NjRfdCcgcGF0Y2ggZm9yIG11c2wKKworZGlmZiAtLWdpdCBh L2luY2x1ZGUvZ2lzLmggYi9pbmNsdWRlL2dpcy5oCistLS0gYS9pbmNsdWRlL2dpcy5oCisrKysg Yi9pbmNsdWRlL2dpcy5oCitAQCAtMjQsNiArMjQsNyBAQAorICNpbmNsdWRlIDxzdGRpby5oPgor ICNpbmNsdWRlIDxzdGRhcmcuaD4KKyAjaW5jbHVkZSA8c3RkYm9vbC5oPgorKyNpbmNsdWRlIDxz dGRpbnQuaD4KKyAKKyAKKyAvKiBHcmFzcyBhbmQgbG9jYWwgaW5jbHVkZSBmaWxlcyAqLwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9ncmFzcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3Jhc3MvdGVtcGxhdGUK aW5kZXggYmNjZDY5MWE4MTE2Li4xNjdmYWE0MDEzODUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Jh c3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ncmFzcy90ZW1wbGF0ZQpAQCAtMSwzMCArMSwxMTYg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dyYXNzJwogcGtnbmFtZT1ncmFzcwotdmVyc2lvbj03 LjYuMQotcmV2aXNpb249NAotX2JpbnZlcj0ke3ZlcnNpb24vLy4vfQotX2JpbnZlcj0ke19iaW52 ZXI6MDoyfQordmVyc2lvbj03LjguN1JDMQorcmV2aXNpb249MQorX2JpbnZlcnNpb249JHt2ZXJz aW9uLy8uL30KK19iaW52ZXJzaW9uPSR7X2JpbnZlcnNpb246MDoyfQogYnVpbGRfc3R5bGU9Z251 LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9Ii0tcHJlZml4PVwke0RFU1RESVJ9L3Vzci9zaGFy ZSAtLWJpbmRpcj1cJHtERVNURElSfS91c3IvYmluCi0gLS13aXRoLWZyZWV0eXBlLWluY2x1ZGVz PSR7WEJQU19DUk9TU19CQVNFfS91c3IvaW5jbHVkZS9mcmVldHlwZTIiCi1ob3N0bWFrZWRlcGVu ZHM9ImZsZXggbGliZ2RhbC10b29scyBwa2ctY29uZmlnIHB5dGhvbi1udW1weSB0YXIiCi1tYWtl ZGVwZW5kcz0icHJvai1kZXZlbCB0aWZmLWRldmVsIGxpYmdkYWwtZGV2ZWwgc3FsaXRlLWRldmVs Ci0gZmZ0dy1kZXZlbCBjYWlyby1kZXZlbCBnbHUtZGV2ZWwgd3hQeXRob24tZGV2ZWwiCi1kZXBl bmRzPSJweXRob24tbnVtcHkgd3hQeXRob24iCi1zaG9ydF9kZXNjPSJHZW9ncmFwaGljIFJlc291 cmNlcyBBbmFseXNpcyBTdXBwb3J0IFN5c3RlbSAtIEdJUyIKLW1haW50YWluZXI9IkFsZXggSmFy b3NjaCA8cmVzZWFyY2hAYWxleGouYXQ+IgorY29uZmlndXJlX2FyZ3M9Ii0tcHJlZml4PS91c3Iv bGliCisgLS1iaW5kaXI9L3Vzci9iaW4KKyAtLWxpYmRpcj0vdXNyL2xpYgorIC0tbGliZXhlYz0v dXNyL2xpYmV4ZWMKKyAtLWVuYWJsZS1sYXJnZWZpbGUKKyAtLXdpdGgtYmxhcworIC0td2l0aC1i bGFzLWluY2x1ZGVzPS91c3IvaW5jbHVkZQorIC0td2l0aC1iemlwMgorIC0td2l0aC1iemxpYgor IC0td2l0aC1jYWlybworIC0td2l0aC1jeHgKKyAtLXdpdGgtZnJlZXR5cGUKKyAtLXdpdGgtZnJl ZXR5cGUtaW5jbHVkZXM9L3Vzci9pbmNsdWRlL2ZyZWV0eXBlMgorIC0td2l0aC1nZGFsCisgLS13 aXRoLWdlb3MKKyAtLXdpdGgtZ2x3CisgLS13aXRoLWxhcGFjaworIC0td2l0aC1sYXBhY2staW5j bHVkZXM9L3Vzci9pbmNsdWRlCisgLS13aXRoLW15c3FsCisgLS13aXRoLW15c3FsLWluY2x1ZGVz PS91c3IvaW5jbHVkZS9teXNxbAorIC0td2l0aC1uZXRjZGY9L3Vzci9iaW4vbmMtY29uZmlnCisg LS13aXRoLW5scworIC0td2l0aC1vcGVubXAKKyAtLXdpdGgtcG9zdGdyZXMKKyAtLXdpdGgtcG9z dGdyZXMtaW5jbHVkZXM9L3Vzci9pbmNsdWRlL3Bvc3RncmVzcWwKKyAtLXdpdGgtcG9zdGdyZXMt bGlicz0vdXNyL2xpYi9wc3FsMTQvbGliL3Bvc3RncmVzcWwKKyAtLXdpdGgtcHJvagorIC0td2l0 aC1wcm9qLXNoYXJlPS91c3Ivc2hhcmUKKyAtLXdpdGgtcHRocmVhZAorIC0td2l0aC1weXRob249 L3Vzci9iaW4vcHl0aG9uMy1jb25maWcKKyAtLXdpdGgtcmVhZGxpbmUKKyAtLXdpdGgtcmVnZXgK KyAtLXdpdGgtc3FsaXRlCisgLS13aXRoLXd4d2lkZ2V0cyIKK2hvc3RtYWtlZGVwZW5kcz0iZmxl eAorIGdldHRleHQKKyBsaWJnZGFsLXRvb2xzCisgcGtnLWNvbmZpZworIHB5dGhvbjMtbnVtcHkK KyBweXRob24zLXNpeAorIHRhciIKK21ha2VkZXBlbmRzPSJiaXNvbgorIGJsYXMtZGV2ZWwKKyBi emlwMi1kZXZlbAorIGNhaXJvLWRldmVsCisgZmZ0dy1kZXZlbAorIGZyZWV0eXBlLWRldmVsCisg Z2Vvcy1kZXZlbAorIGdldHRleHQtZGV2ZWwKKyBnbHUtZGV2ZWwKKyBsYXBhY2stZGV2ZWwKKyBs aWJnZGFsLWRldmVsCisgbGliZ29tcC1kZXZlbAorIGxpYm15c3FsY2xpZW50LWRldmVsCisgbGli cG5nLWRldmVsCisgbGlienN0ZC1kZXZlbAorIG5ldGNkZi1kZXZlbAorIHBvc3RncmVzcWwtbGli cy1kZXZlbAorIHByb2otZGV2ZWwKKyBweXRob24zLWRldmVsCisgcHl0aG9uMy1QaWxsb3cKKyBw eXRob24zLXNpeAorIHJlYWRsaW5lLWRldmVsCisgc3FsaXRlLWRldmVsCisgdGlmZi1kZXZlbAor IHpsaWItZGV2ZWwiCitkZXBlbmRzPSJsaWJnZGFsIHB5dGhvbjMtbnVtcHkgd3hQeXRob240Igor c2hvcnRfZGVzYz0iR2VvZ3JhcGhpYyBSZXNvdXJjZXMgQW5hbHlzaXMgU3VwcG9ydCBTeXN0ZW0i CittYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dyYXNzLm9zZ2VvLm9yZy8iCi1k aXN0ZmlsZXM9Imh0dHBzOi8vZ3Jhc3Mub3NnZW8ub3JnL2dyYXNzJHtfYmludmVyfS9zb3VyY2Uv JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTllMjVjOTljYWZkMTZlZDhm NWUyZGNhNzViNWExMGRjMmFmMDU2OGRiZWRmM2ZjMzlmMWM1YTBhOWM4NDBiMGIKLXB5dGhvbl92 ZXJzaW9uPTIgI3VudmVyaWZpZWQKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL09TR2Vv L2dyYXNzL2FyY2hpdmUvJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1mYTFkNmNjYzFmZGU0 Y2JlYTBiZTA5NTI1NjcyOTQyMWM0MWMxYTEyYmY2MjFmZTEyNGQwZDJjOGU4MjZkZTZhCiBub2Ny b3NzPSJ0cmllcyB0byBleGVjdXRlIHRhcmdldCBiaW5hcmllcyIKIAorc2hsaWJfcHJvdmlkZXM9 IgorIGxpYmdyYXNzX2RibWliYXNlLiR7dmVyc2lvbiUuKn0uc28KKyBsaWJncmFzc19kYm1pY2xp ZW50LiR7dmVyc2lvbiUuKn0uc28KKyBsaWJncmFzc19naXMuJHt2ZXJzaW9uJS4qfS5zbworIGxp YmdyYXNzX2dwcm9qLiR7dmVyc2lvbiUuKn0uc28KKyBsaWJncmFzc19pbWFnZXJ5LiR7dmVyc2lv biUuKn0uc28KKyBsaWJncmFzc19yYXN0ZXIuJHt2ZXJzaW9uJS4qfS5zbworIGxpYmdyYXNzX3Zl Y3Rvci4ke3ZlcnNpb24lLip9LnNvIgorCiBwb3N0X2luc3RhbGwoKSB7Ci0JIyBtb3ZlIGdyYXNz NzYgbGlicmFyaWVzIGZyb20gL3Vzci9zaGFyZSB0byAvdXNyL2xpYgotCXZta2RpciB1c3IvbGli Ci0JbXYgJHtERVNURElSfS91c3Ivc2hhcmUvZ3Jhc3MqICR7REVTVERJUn0vdXNyL2xpYgotCSMg Zml4ZXMgYSB0b2RvIGluIEdJU0JBU0UKLQlzZWQgLWkgJHtERVNURElSfS91c3IvYmluL2dyYXNz JHtfYmludmVyfSBcCi0JCS1lICIxMDVzO1woZ2lzYmFzZSA9XCkuKjtcMSBcIi91c3IvbGliL2dy YXNzLSR7dmVyc2lvbn1cIjsiCisJIyByZW1vdmUgJERFU1RESVIgaW4gcGF0aHMKKwl2c2VkIC1p IC1lICJzfCR7REVTVERJUn18fCIgXAorCQkke0RFU1RESVJ9L3Vzci9iaW4vZ3Jhc3M3OCBcCisJ CSR7REVTVERJUn0vdXNyL2xpYi9ncmFzczc4L2V0Yy9mb250Y2FwIFwKKwkJJHtERVNURElSfS91 c3IvbGliL2dyYXNzNzgvZGVtb2xvY2F0aW9uLy5ncmFzc3JjNzggXAorCQkke0RFU1RESVJ9L3Vz ci9saWIvZ3Jhc3M3OC9pbmNsdWRlL01ha2UvUGxhdGZvcm0ubWFrZSBcCisJCSR7REVTVERJUn0v dXNyL2xpYi9ncmFzczc4L2luY2x1ZGUvTWFrZS9HcmFzcy5tYWtlCisKKwkjIGxkLnNvLmNvbmYK Kwlta2RpciAtcCAke0RFU1RESVJ9L2V0Yy9sZC5zby5jb25mLmQKKwllY2hvICIvdXNyL2xpYi9n cmFzcyR7X2JpbnZlcnNpb259L2xpYiIgPiR7REVTVERJUn0vZXRjL2xkLnNvLmNvbmYuZC9ncmFz cyR7X2JpbnZlcnNpb259LmNvbmYKKwkjIHByb2ZpbGVzCisJbWtkaXIgLXAgJHtERVNURElSfS9l dGMvcHJvZmlsZS5kCisJZWNobyAnZXhwb3J0IFBBVEg9Ii91c3IvbGliL2dyYXNzJyR7X2JpbnZl cnNpb259Jy9iaW46JFBBVEgiJyA+JHtERVNURElSfS9ldGMvcHJvZmlsZS5kL2dyYXNzJHtfYmlu dmVyc2lvbn0uc2gKKworCXZpbnN0YWxsIGdyYXNzLnBjIDY0NCB1c3Ivc2hhcmUvcGtnY29uZmln CisJdmluc3RhbGwgZ3VpL2ljb25zL2dyYXNzLmRlc2t0b3AgNjQ0IHVzci9zaGFyZS9hcHBsaWNh dGlvbnMKKworCWxvY2FsIGljb24gcmVzCisJZm9yIGljb24gaW4gZ3VpL2ljb25zL2dyYXNzLVsw LTldKnhbMC05XSoucG5nOyBkbworCQlyZXM9JChlY2hvICRpY29uIHxzZWQgLUUgLWUgJ3N8Liot KFswLTldK3hbMC05XSspLnBuZ3xcMXwnKQorCQl2aW5zdGFsbCAkaWNvbiAwNjQ0IC91c3Ivc2hh cmUvaWNvbnMvaGljb2xvci8kcmVzL2FwcHMgZ3Jhc3MucG5nCisJZG9uZQogfQoKRnJvbSAxZmRj MzkxZTcxNTNhNzdhN2Q4M2I5OWVhNmI0YWQ3OGViMGRiMGExIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogU3Vu LCAyNyBKdW4gMjAyMSAyMjoxODo0NiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMTddIG1lcmth YXJ0b3I6IHJlYnVpbGQgYWdhaW5zdCBsaWJnZGFsLTMuNC4xIGFuZAogcHJvai03LjIuMQoKLS0t CiBzcmNwa2dzL21lcmthYXJ0b3IvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL21lcmthYXJ0 b3IvdGVtcGxhdGUgYi9zcmNwa2dzL21lcmthYXJ0b3IvdGVtcGxhdGUKaW5kZXggY2ZmY2ZiYTFj ZjAxLi42NjAzMzc2MTExZjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWVya2FhcnRvci90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL21lcmthYXJ0b3IvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdtZXJrYWFydG9yJwogcGtnbmFtZT1tZXJrYWFydG9yCiB2ZXJzaW9u PTAuMTkuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9cW1ha2UKIGNvbmZp Z3VyZV9hcmdzPSJTWVNURU1fUVVBWklQPTEgU1lTVEVNX1FVQVpJUF9MREZMQUdTPS1scXVhemlw NSIKIGhvc3RtYWtlZGVwZW5kcz0icXQ1LXFtYWtlIGxpYmdkYWwtdG9vbHMgcXQ1LWhvc3QtdG9v bHMiCgpGcm9tIGNlYWVkNjY5NTgwZTQ5ZTZmYWI4NTBkM2E1MGQyNjdmZDRiZWJmMmUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21haWwu Y29tPgpEYXRlOiBUdWUsIDI5IEp1biAyMDIxIDAwOjIxOjI3ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxMS8xN10gT3Blbk9yaWVudGVlcmluZy1NYXBwZXI6IHJlYnVpbGQgYWdhaW5zdCBsaWJnZGFs LTMuNC4xCiBhbmQgcHJvai03LjIuMQoKLS0tCiBzcmNwa2dzL09wZW5PcmllbnRlZXJpbmctTWFw cGVyL3RlbXBsYXRlIHwgMTEgKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9PcGVuT3JpZW50ZWVy aW5nLU1hcHBlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvT3Blbk9yaWVudGVlcmluZy1NYXBwZXIvdGVt cGxhdGUKaW5kZXggZmQyOWEwOGU3NWI2Li42YTY1MmE2YTdiOTcgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvT3Blbk9yaWVudGVlcmluZy1NYXBwZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9PcGVuT3Jp ZW50ZWVyaW5nLU1hcHBlci90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNSBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnT3Blbk9yaWVudGVlcmluZy1NYXBwZXInCiBwa2duYW1lPU9wZW5PcmllbnRlZXJp bmctTWFwcGVyCiB2ZXJzaW9uPTAuOS41Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9 Im1hcHBlci0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0i ZG94eWdlbiBxdDUtaG9zdC10b29scyBxdDUtcGx1Z2luLXNxbGl0ZSBxdDUtcW1ha2UgcXQ1LXRv b2xzIgogbWFrZWRlcGVuZHM9InF0NS1kZXZlbCBjbGlwcGVyLWRldmVsIHByb2otZGV2ZWwgemxp Yi1kZXZlbCBsaWJnZGFsLWRldmVsCiAgcXQ1LXRvb2xzLWRldmVsIHNxbGl0ZS1kZXZlbCBjdXBz LWRldmVsICQodm9wdF9pZiBsb2NhdGlvbiBxdDUtbG9jYXRpb24tZGV2ZWwpCiAgJCh2b3B0X2lm IHNlbnNvcnMgcXQ1LXNlbnNvcnMtZGV2ZWwpCi0gcXQ1LXBsdWdpbi1teXNxbCBxdDUtcGx1Z2lu LW9kYmMgcXQ1LXBsdWdpbi1wZ3NxbCBxdDUtcGx1Z2luLXNxbGl0ZSBxdDUtcGx1Z2luLXRkcyIK KyBxdDUtcGx1Z2luLW15c3FsIHF0NS1wbHVnaW4tb2RiYyBxdDUtcGx1Z2luLXBnc3FsIHF0NS1w bHVnaW4tc3FsaXRlIHF0NS1wbHVnaW4tdGRzCisgdGlmZi1kZXZlbCBsaWJjdXJsLWRldmVsIgog c2hvcnRfZGVzYz0iT3JpZW50ZWVyaW5nIG1hcG1ha2luZyBwcm9ncmFtIgogbWFpbnRhaW5lcj0i Sm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCkBA IC0xOCwzICsxOSw5IEBAIGNoZWNrc3VtPTYxOTE1MmNhMDFhMzcwODc1YzE1ZTE5MzA5MThjZTk2 MTI4NGNjYmY1ZDIzNzFjMTQ3ZDUwY2FmNWU1YzJmMDAKIAogYnVpbGRfb3B0aW9ucz0ibG9jYXRp b24gc2Vuc29ycyIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0ibG9jYXRpb24gc2Vuc29ycyIKKwor ZG9fY2hlY2soKSB7CisgICAgIyBzZW5zb3JzX3QgdGVzdCBmYWlscyBvbiB0ZXN0IHJ1bm5lcgor CWNkIGJ1aWxkCisJY3Rlc3QgLUUgJ3NlbnNvcnNfdCcKK30KCkZyb20gNmIxNzJhZTIyMWVlNmE5 ZTg4N2Y1YTQ3MmUxOTg0YThiM2M4YzEyMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjkgSnVuIDIw MjEgMDA6Mzg6MzUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzE3XSBvc2c6IHJlYnVpbGQgYWdh aW5zdCBsaWJnZGFsLTMuNC4xLCBmaXggbGljZW5zZQoKLS0tCiBzcmNwa2dzL29zZy90ZW1wbGF0 ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29zZy90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3NnL3RlbXBs YXRlCmluZGV4IDA4YmY2ZDRiNjU5MS4uZjUxNTM1YzU3MTlkIDEwMDY0NAotLS0gYS9zcmNwa2dz L29zZy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29zZy90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAK IHBrZ25hbWU9b3NnCiByZXZlcnRzPTMuNi4wXzEKIHZlcnNpb249My40LjEKLXJldmlzaW9uPTEy CityZXZpc2lvbj0xMwogd3Jrc3JjPU9wZW5TY2VuZUdyYXBoLU9wZW5TY2VuZUdyYXBoLSR7dmVy c2lvbn0KIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9InFlbXUiCkBAIC0xOSw3ICsx OSw3IEBAIG1ha2VkZXBlbmRzPSJNZXNhTGliLWRldmVsIGd0a2dsZXh0LWRldmVsIGxpYmN1cmwt ZGV2ZWwgZ2lmbGliLWRldmVsIGxpYnJzdmctZGV2CiBkZXBlbmRzPSJ4cmFuZHIiCiBzaG9ydF9k ZXNjPSJPcGVuU2NlbmVHcmFwaDogaGlnaCBwZXJmb3JtYW5jZSByZWFsLXRpbWUgZ3JhcGhpY3Mg dG9vbGtpdCIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1s aWNlbnNlPSJPU0dQTC0yLjAtb3ItbGF0ZXIiCitsaWNlbnNlPSJjdXN0b206T3BlblNjZW5lR3Jh cGgtUHVibGljLUxpY2Vuc2UtMC4wIgogaG9tZXBhZ2U9Imh0dHA6Ly93d3cub3BlbnNjZW5lZ3Jh cGgub3JnIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbnNjZW5lZ3JhcGgvT3Bl blNjZW5lR3JhcGgvYXJjaGl2ZS9PcGVuU2NlbmVHcmFwaC0ke3ZlcnNpb259LnRhci5neiIKIGNo ZWNrc3VtPTkzMGViNDZmMDU3ODFhNzY4ODNlYzE2YzVmNDljZmIyOWEwNTk0MjFkYjEzMTAwNWQ3 NWJlYzRkNzg0MDFmZDUKCkZyb20gMWRhNGEyMDU0Y2Y2YWUzNjllMDJmNDYxM2MyN2JlODNiNmM2 ZGViNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1v c3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjkgSnVuIDIwMjEgMTc6MzU6NDcgKzAyMDAKU3Vi amVjdDogW1BBVENIIDEzLzE3XSBzdW1vOiB1cGRhdGUgdG8gMS45LjI7IHJlYnVpbGQgYWdhaW5z dCBsaWJnZGFsLTMuNC4xCiBhbmQgcHJvai03LjIuMQoKLSBCdWlsZCBUcmFhUy5qYXIgdXNpbmcg TWF2ZW4gKGZpeGVzIHRlc3RzKQotIEFkZCBFaWdlbjMgZGVwZW5kZW5jeQotLS0KIGNvbW1vbi9z aGxpYnMgICAgICAgICB8ICAyICsrCiBzcmNwa2dzL3N1bW8vdGVtcGxhdGUgfCAyMiArKysrKysr KysrKysrKysrLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5k ZXggZGQ1Njk3OGY0MjY5Li5mMDQzNjkwOWQwNjYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMK KysrIGIvY29tbW9uL3NobGlicwpAQCAtNDEyNCwzICs0MTI0LDUgQEAgbGliZ3Jhc3NfZ3Byb2ou Ny44LnNvIGdyYXNzLTcuOC43UkMxXzEKIGxpYmdyYXNzX2ltYWdlcnkuNy44LnNvIGdyYXNzLTcu OC43UkMxXzEKIGxpYmdyYXNzX3Jhc3Rlci43Ljguc28gZ3Jhc3MtNy44LjdSQzFfMQogbGliZ3Jh c3NfdmVjdG9yLjcuOC5zbyBncmFzcy03LjguN1JDMV8xCitsaWJzdW1vY3BwLnNvIHN1bW8tMS45 LjJfMQorbGlidHJhY2ljcHAuc28gc3Vtby0xLjkuMl8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3N1 bW8vdGVtcGxhdGUgYi9zcmNwa2dzL3N1bW8vdGVtcGxhdGUKaW5kZXggZTc2MGZkZDQ1YWVlLi4z YzBlZWE5OTE2YWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc3Vtby90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3N1bW8vdGVtcGxhdGUKQEAgLTEsMTggKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J3N1bW8nCiBwa2duYW1lPXN1bW8KLXZlcnNpb249MS41LjAKLXJldmlzaW9uPTQKK3ZlcnNpb249 MS45LjIKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCi1weXRob25fdmVyc2lvbj0zCi1o b3N0bWFrZWRlcGVuZHM9ImxpYmdkYWwtdG9vbHMgcGtnLWNvbmZpZyBzd2lnIHB5dGhvbjMtc2V0 dXB0b29scyIKLW1ha2VkZXBlbmRzPSJweXRob24zLWRldmVsIGZmbXBlZy1kZXZlbCBmb3gtZGV2 ZWwgZ2wycHMtZGV2ZWwgbGliZ2RhbC1kZXZlbCBsaWJ4ZXJjZXMtYy1kZXZlbCBvc2ctZGV2ZWwg cHJvai1kZXZlbCIKK2hvc3RtYWtlZGVwZW5kcz0ibGliZ2RhbC10b29scyBwa2ctY29uZmlnIHN3 aWcgcHl0aG9uMy1zZXR1cHRvb2xzCisgYXBhY2hlLW1hdmVuIG9wZW5qZGsxMSBnaXQiCittYWtl ZGVwZW5kcz0icHl0aG9uMy1kZXZlbCBmZm1wZWctZGV2ZWwgZm94LWRldmVsIGdsMnBzLWRldmVs IGxpYmdkYWwtZGV2ZWwKKyBsaWJ4ZXJjZXMtYy1kZXZlbCBvc2ctZGV2ZWwgcHJvai1kZXZlbCBl aWdlbiIKK2NoZWNrZGVwZW5kcz0iZ3Rlc3QiCiBzaG9ydF9kZXNjPSJTVU1PIChTaW11bGF0aW9u IG9mIFVyYmFuIE1PYmlsaXR5KSBhbmQgaW5jbHVkZWQgYXBwbGljYXRpb25zIgogbWFpbnRhaW5l cj0iV2FycmlvciBHcmFwaCA8bWFycXVlc0BsYXJjZXMudWVjZS5icj4iCiBsaWNlbnNlPSJFUEwt Mi4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vc3Vtby5kbHIuZGUiCiBkaXN0ZmlsZXM9Imh0dHBzOi8v c3Vtby5kbHIuZGUvcmVsZWFzZXMvJHt2ZXJzaW9ufS9zdW1vLXNyYy0ke3ZlcnNpb259LnRhci5n eiIKLWNoZWNrc3VtPWRjZjUzMzlmZGRhMDY1OWZhNDRmY2ZkNjlmZTNmNGUwMzAwOWFhOWE1OTg0 OTYyNGYyYTNjZmU3MmVkYTlmOGUKK2NoZWNrc3VtPTE5M2E4YWIxNGJiMzA1ZDM5Njc2MjVkNzZj ZDI5MWY1YzU1YmI5MDY4MTc0NjVmMmExMmMyZTY5ZjRiODA4MTMKK3B5dGhvbl92ZXJzaW9uPTMK KworcHJlX2J1aWxkKCkgeworCWNkIHRvb2xzL2NvbnRyaWJ1dGVkL3RyYWFzCisJbXZuIHBhY2th Z2UKKwltdiB0YXJnZXQvdHJhYXMqLmphciAke3dya3NyY30vYmluL1RyYWFTLmphcgorfQogCiBw b3N0X2luc3RhbGwoKSB7CiAJcm0gLWYgJHtERVNURElSfS91c3Ivc2hhcmUvc3Vtby90b29scy9s aWJzdW1vLyouc28KKwlybSAtZiAke0RFU1RESVJ9L3Vzci9zaGFyZS9zdW1vL3Rvb2xzL2xpYnRy YWNpL19saWJ0cmFjaS5zbwogfQoKRnJvbSBhNjRkODQ3MmIwYmZjMmMwYTNmZDRlMDZlOWU4ZWZl MzIwNjRiOTEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwgPGFy amFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOSBKdW4gMjAyMSAxODo0MzowNSArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMTQvMTddIHZ0azogcmVidWlsZCBhZ2FpbnN0IHByb2otNy4yLjEK Ci0tLQogc3JjcGtncy92dGsvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Z0ay90ZW1wbGF0 ZSBiL3NyY3BrZ3MvdnRrL3RlbXBsYXRlCmluZGV4IDg1OGFhMzFiOWMwMy4uNTUzY2Y5MTk4NDY1 IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Z0ay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3Z0ay90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3Z0aycKIHBrZ25hbWU9 dnRrCiB2ZXJzaW9uPTkuMC4xCi1yZXZpc2lvbj03CityZXZpc2lvbj04CiB3cmtzcmM9VlRLLSR7 dmVyc2lvbn0KIGJ1aWxkX3N0eWxlPWNtYWtlCiAjIHZ0ayBjYW4gYmUgaHVnZSwgZXNwZWNpYWxs eSB3aXRoIC1EVlRLX0JVSUxEX0FMTF9NT0RVTEVTPU9OIgoKRnJvbSBhNmZkNzNjYjhiMmI2MDAw NzZlNDk1ODA4ZWQ4YzM5YmI4NWQ1NmYzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBB cmphbiBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOSBKdW4gMjAy MSAxOToyNDo0MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMTddIG9zbTJwZ3NxbDogcmVidWls ZCBhZ2FpbnN0IHByb2otNy4yLjEKCi0tLQogc3JjcGtncy9vc20ycGdzcWwvdGVtcGxhdGUgfCAy ICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL29zbTJwZ3NxbC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3NtMnBnc3FsL3Rl bXBsYXRlCmluZGV4IDFjNTNjNDUwNTA0Ny4uMWQ1ZjcxYjcwMTQwIDEwMDY0NAotLS0gYS9zcmNw a2dzL29zbTJwZ3NxbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29zbTJwZ3NxbC90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29zbTJwZ3NxbCcKIHBrZ25hbWU9 b3NtMnBnc3FsCiB2ZXJzaW9uPTEuNi4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9z dHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJib29zdCIKIG1ha2VkZXBlbmRzPSJleHBhdC1k ZXZlbCBwcm9qLWRldmVsIGJ6aXAyLWRldmVsIHpsaWItZGV2ZWwgYm9vc3QtZGV2ZWwKCkZyb20g MWUzZTI5NWJjYjVjZGE1YmU3ZDE3NWU3YjUyNjk4NTRmMDM0MTFkYiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6 IFR1ZSwgMjkgSnVuIDIwMjEgMTk6MjY6NTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDE2LzE3XSBY eUdyaWI6IHJlYnVpbGQgYWdhaW5zdCBwcm9qLTcuMi4xCgpEbyBub3QgdXNlIG5pbmphICgidW5r bm93biB0YXJnZXQiIGVycm9yKQotLS0KIHNyY3BrZ3MvWHlHcmliL3RlbXBsYXRlIHwgNSArKysr LQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvWHlHcmliL3RlbXBsYXRlIGIvc3JjcGtncy9YeUdyaWIvdGVtcGxhdGUK aW5kZXggZTRhYTNhMmUwMjY1Li45OTVlYzNlZWVhYmIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvWHlH cmliL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvWHlHcmliL3RlbXBsYXRlCkBAIC0xLDggKzEsOSBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnWHlHcmliJwogcGtnbmFtZT1YeUdyaWIKIHZlcnNpb249 MS4yLjYuMQotcmV2aXNpb249MworcmV2aXNpb249NAogYnVpbGRfc3R5bGU9Y21ha2UKK21ha2Vf Y21kPW1ha2UKIGhvc3RtYWtlZGVwZW5kcz0icXQ1LWRldmVsIHBrZy1jb25maWciCiBtYWtlZGVw ZW5kcz0iamFzcGVyLWRldmVsIGxpYm5vdmEtZGV2ZWwgbmV0dGxlLWRldmVsIHByb2otZGV2ZWwg cXQ1LWRldmVsCiAgcXd0LWRldmVsIGxpYm9wZW5qcGVnMi1kZXZlbCIKQEAgLTEzLDYgKzE0LDgg QEAgaG9tZXBhZ2U9Imh0dHBzOi8vb3BlbmdyaWJzLm9yZy8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8v Z2l0aHViLmNvbS9vcGVuZ3JpYnMvWHlHcmliL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6Igog Y2hlY2tzdW09MmRjNjA5OTI5M2FlNmY3YTRiZmJmYzBjYWI1OTBjZjdhZDQ4MjQxZDYwOGU2ZDdh NzZlMzU5NjFiOWZjMjE1NwogCitleHBvcnQgQ01BS0VfR0VORVJBVE9SPSJVbml4IE1ha2VmaWxl cyIKKwogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJbWFrZV9idWlsZF9hcmdzPSJMSU5L PSR7WEJQU19DUk9TU19UUklQTEVUfS1jKysiCiBmaQoKRnJvbSBmODI2NGIwNzIwMjg0MmU2NWUy MTZmMjg5YWM4NTdlNzgzNTkyYzQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmph biBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAxNSBGZWIgMjAyMiAy Mjo0Njo0NSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMTddIE5ldyBwYWNrYWdlOiBsaWJzcGF0 aWFsaXRlLTUuMC4xCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICsKIC4uLi9wYXRjaGVzL2Rpc2FibGVfY2hlY2tfZHJvcF9yZW5hbWUucGF0 Y2ggICB8IDI4ICsrKysrKysrKysrKysKIC4uLi9wYXRjaGVzL2Rpc2FibGVfY2hlY2tfc3FsX3N0 bXQucGF0Y2ggICAgICB8IDI5ICsrKysrKysrKysrKysKIHNyY3BrZ3MvbGlic3BhdGlhbGl0ZS90 ZW1wbGF0ZSAgICAgICAgICAgICAgICB8IDQyICsrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xp YnNwYXRpYWxpdGUvcGF0Y2hlcy9kaXNhYmxlX2NoZWNrX2Ryb3BfcmVuYW1lLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJzcGF0aWFsaXRlL3BhdGNoZXMvZGlzYWJsZV9jaGVj a19zcWxfc3RtdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGlic3BhdGlhbGl0 ZS90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmlu ZGV4IGYwNDM2OTA5ZDA2Ni4uNWY3ZTdiYWM4OGQzIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJz CisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTQxMTcsNiArNDExNyw4IEBAIGxpYmttbGVuZ2luZS5z by4xIGxpYmttbC0xLjMuMF8xCiBsaWJrbWxyZWdpb25hdG9yLnNvLjEgbGlia21sLTEuMy4wXzEK IGxpYmttbHhzZC5zby4xIGxpYmttbC0xLjMuMF8xCiBsaWJrbWxjb252ZW5pZW5jZS5zby4xIGxp YmttbC0xLjMuMF8xCitsaWJzcGF0aWFsaXRlLnNvLjcgbGlic3BhdGlhbGl0ZS01LjAuMV8xCitt b2Rfc3BhdGlhbGl0ZS5zby43IGxpYnNwYXRpYWxpdGUtNS4wLjFfMQogbGliZ3Jhc3NfZGJtaWJh c2UuNy44LnNvIGdyYXNzLTcuOC43UkMxXzEKIGxpYmdyYXNzX2RibWljbGllbnQuNy44LnNvIGdy YXNzLTcuOC43UkMxXzEKIGxpYmdyYXNzX2dpcy43Ljguc28gZ3Jhc3MtNy44LjdSQzFfMQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saWJzcGF0aWFsaXRlL3BhdGNoZXMvZGlzYWJsZV9jaGVja19kcm9w X3JlbmFtZS5wYXRjaCBiL3NyY3BrZ3MvbGlic3BhdGlhbGl0ZS9wYXRjaGVzL2Rpc2FibGVfY2hl Y2tfZHJvcF9yZW5hbWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi4zMGI2N2Y1YjhmNjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYnNwYXRpYWxp dGUvcGF0Y2hlcy9kaXNhYmxlX2NoZWNrX2Ryb3BfcmVuYW1lLnBhdGNoCkBAIC0wLDAgKzEsMjgg QEAKK0Rpc2FibGUgY2hlY2tfZHJvcF9yZW5hbWUgdGVzdC4gSXQgZmFpbHMgd2l0aDoKK1JlbmFt ZVRhYmxlICJ0YWJsZV8xIiBlcnJvcjogUmVuYW1lVGFibGUgZXhjZXB0aW9uIC0gZXJyb3IgaW4g dHJpZ2dlciBJU09fbWV0YWRhdGFfcmVmZXJlbmNlX3Jvd19pZF92YWx1ZV9pbnNlcnQ6IG5vIHN1 Y2ggY29sdW1uOiByb3dpZC4KKworZGlmZiAtLWdpdCBhL3Rlc3QvTWFrZWZpbGUuYW0gYi90ZXN0 L01ha2VmaWxlLmFtCitpbmRleCBmZWMyNWRkLi41MGIxNmFlIDEwMDY0NAorLS0tIGEvdGVzdC9N YWtlZmlsZS5hbQorKysrIGIvdGVzdC9NYWtlZmlsZS5hbQorQEAgLTc0LDcgKzc0LDYgQEAgY2hl Y2tfUFJPR1JBTVMgPSBjaGVja19lbmRpYW4gXAorIAkJY2hlY2tfc2VxdWVuY2UgXAorIAkJY2hl Y2tfc3RvcmVkX3Byb2MgXAorIAkJY2hlY2tfd21zIFwKKy0JCWNoZWNrX2Ryb3BfcmVuYW1lIFwK KyAJCXJvdXRpbmdfdGVzdCBcCisgCQlnZW9qc29uX3Rlc3QgXAorIAkJY2hlY2tfemlwc2hwCitk aWZmIC0tZ2l0IGEvdGVzdC9NYWtlZmlsZS5pbiBiL3Rlc3QvTWFrZWZpbGUuaW4KK2luZGV4IDhh MGIxNTQuLjUyYTEwNjYgMTAwNjQ0CistLS0gYS90ZXN0L01ha2VmaWxlLmluCisrKysgYi90ZXN0 L01ha2VmaWxlLmluCitAQCAtMTI0LDcgKzEyNCw3IEBAIGNoZWNrX1BST0dSQU1TID0gY2hlY2tf ZW5kaWFuJChFWEVFWFQpIGNoZWNrX3ZlcnNpb24kKEVYRUVYVCkgXAorIAljaGVja19uZXR3b3Jr MmQkKEVYRUVYVCkgY2hlY2tfbmV0d29yazNkJChFWEVFWFQpIFwKKyAJY2hlY2tfbmV0d29ya19s b2ckKEVYRUVYVCkgY2hlY2tfdmlydHVhbGtubiQoRVhFRVhUKSBcCisgCWNoZWNrX3NlcXVlbmNl JChFWEVFWFQpIGNoZWNrX3N0b3JlZF9wcm9jJChFWEVFWFQpIFwKKy0JY2hlY2tfd21zJChFWEVF WFQpIGNoZWNrX2Ryb3BfcmVuYW1lJChFWEVFWFQpIFwKKysJY2hlY2tfd21zJChFWEVFWFQpIFwK KyAJcm91dGluZ190ZXN0JChFWEVFWFQpIGdlb2pzb25fdGVzdCQoRVhFRVhUKSBcCisgCWNoZWNr X3ppcHNocCQoRVhFRVhUKSAkKGFtX19FWEVFWFRfMSkKKyBARU5BQkxFX0dFT1BBQ0tBR0VfVFJV RUBhbV9fYXBwZW5kXzEgPSBcCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnNwYXRpYWxpdGUvcGF0 Y2hlcy9kaXNhYmxlX2NoZWNrX3NxbF9zdG10LnBhdGNoIGIvc3JjcGtncy9saWJzcGF0aWFsaXRl L3BhdGNoZXMvZGlzYWJsZV9jaGVja19zcWxfc3RtdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjFkYzNiNTcwNTk1NQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbGlic3BhdGlhbGl0ZS9wYXRjaGVzL2Rpc2FibGVfY2hlY2tfc3FsX3N0bXQucGF0Y2gK QEAgLTAsMCArMSwyOSBAQAorRGlzYWJsZSBjaGVja19zcWxfc3RtdCB0ZXN0cworCitodHRwczov L3d3dy5nYWlhLWdpcy5pdC9mb3NzaWwvbGlic3BhdGlhbGl0ZS90a3R2aWV3LzNlNDYzNDliZjJi ZmM1OGIzZTMwNTFkMWZmN2NhYjczZWVkMTlhODg/cGxhaW50ZXh0CisKKy0tLSBhL3Rlc3QvTWFr ZWZpbGUuYW0JMjAyMC0wOC0yMyAxODo0NjoyMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL3Rlc3Qv TWFrZWZpbGUuYW0JMjAyMC0xMi0yMiAxNDo0NToxMC4yMDYwODU1MTUgKzAxMDAKK0BAIC0zMSwx MCArMzEsNiBAQAorIAkJY2hlY2tfZ2FpYV91dGY4IFwKKyAJCWNoZWNrX2V4dGVuc2lvbiBcCisg CQljaGVja19yZWNvdmVyX2dlb20gXAorLQkJY2hlY2tfc3FsX3N0bXQgXAorLQkJY2hlY2tfc3Fs X3N0bXRfdGlueSBcCistCQljaGVja19zcWxfc3RtdF9sZWdhY3kgXAorLQkJY2hlY2tfc3FsX3N0 bXRfZXh0ZW5zaW9uIFwKKyAJCWNoZWNrX211bHRpdGhyZWFkIFwKKyAJCWNoZWNrX3ZpcnR1YWx0 YWJsZTEgXAorIAkJY2hlY2tfdmlydHVhbHRhYmxlMiBcCistLS0gYS90ZXN0L01ha2VmaWxlLmlu CTIwMjAtMDgtMjMgMTg6NDY6MjMuMDAwMDAwMDAwICswMjAwCisrKysgYi90ZXN0L01ha2VmaWxl LmluCTIwMjAtMTItMjIgMTQ6NDE6MDYuNDE2MzM1NzM3ICswMTAwCitAQCAtMTAyLDkgKzEwMiw2 IEBACisgCWNoZWNrX3hsc19sb2FkJChFWEVFWFQpIGNoZWNrX21hdGhfZnVuY3MkKEVYRUVYVCkg XAorIAljaGVja19nYWlhX3V0aWwkKEVYRUVYVCkgY2hlY2tfZ2FpYV91dGY4JChFWEVFWFQpIFwK KyAJY2hlY2tfZXh0ZW5zaW9uJChFWEVFWFQpIGNoZWNrX3JlY292ZXJfZ2VvbSQoRVhFRVhUKSBc CistCWNoZWNrX3NxbF9zdG10JChFWEVFWFQpIGNoZWNrX3NxbF9zdG10X3RpbnkkKEVYRUVYVCkg XAorLQljaGVja19zcWxfc3RtdF9sZWdhY3kkKEVYRUVYVCkgXAorLQljaGVja19zcWxfc3RtdF9l eHRlbnNpb24kKEVYRUVYVCkgY2hlY2tfbXVsdGl0aHJlYWQkKEVYRUVYVCkgXAorIAljaGVja192 aXJ0dWFsdGFibGUxJChFWEVFWFQpIGNoZWNrX3ZpcnR1YWx0YWJsZTIkKEVYRUVYVCkgXAorIAlj aGVja192aXJ0dWFsdGFibGUzJChFWEVFWFQpIGNoZWNrX3ZpcnR1YWx0YWJsZTQkKEVYRUVYVCkg XAorIAljaGVja192aXJ0dWFsdGFibGU1JChFWEVFWFQpIGNoZWNrX3ZpcnR1YWx0YWJsZTYkKEVY RUVYVCkgXApkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJzcGF0aWFsaXRlL3RlbXBsYXRlIGIvc3Jj cGtncy9saWJzcGF0aWFsaXRlL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uMzFjMTBhNTU3N2U3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJz cGF0aWFsaXRlL3RlbXBsYXRlCkBAIC0wLDAgKzEsNDIgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3Ig J2xpYnNwYXRpYWxpdGUnCitwa2duYW1lPWxpYnNwYXRpYWxpdGUKK3ZlcnNpb249NS4wLjEKK3Jl dmlzaW9uPTEKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2hvc3RtYWtlZGVwZW5kcz0icGtn LWNvbmZpZyBsaWJydHRvcG8gZ2Vvcy1kZXZlbCBsaWJ4bWwyIgorbWFrZWRlcGVuZHM9ImZyZWV4 bC1kZXZlbAorIGdlb3MtZGV2ZWwKKyBsaWJydHRvcG8tZGV2ZWwKKyBsaWJ4bWwyLWRldmVsCisg bWluaXppcC1kZXZlbAorIHByb2otZGV2ZWwKKyBzcWxpdGUtZGV2ZWwKKyB6bGliLWRldmVsIgor ZGVwZW5kcz0ic3FsaXRlIgorc2hvcnRfZGVzYz0iR2Vvc3BhdGlhbCBleHRlbnNpb24gZm9yIFNR TGl0ZSIKK21haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCitsaWNl bnNlPSJNUEwtMS4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LmdhaWEtZ2lzLml0L2Zvc3NpbC9s aWJzcGF0aWFsaXRlL2luZGV4IgorZGlzdGZpbGVzPSJodHRwOi8vd3d3LmdhaWEtZ2lzLml0L2dh aWEtc2lucy8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09ZWVjYmM5NDMx MWM3ODAxMmQwNTllYmMwZmFlODZlYTVlZjZlZWNiMTMzMDNlNmU4MmIzNzUzYzFiMzQwOWU5OAor CitDRkxBR1M9Ii1EQUNDRVBUX1VTRV9PRl9ERVBSRUNBVEVEX1BST0pfQVBJX0giCisKK2lmIFsg IiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCWhvc3RtYWtlZGVwZW5kcys9IiBsaWJ0b29sIGdlb3Mt ZGV2ZWwiCitmaQorCitwb3N0X2luc3RhbGwoKSB7CisJdmxpY2Vuc2UgQ09QWUlORworfQorCits aWJzcGF0aWFsaXRlLWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iJHBrZ25hbWU+PSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCisJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgor CXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZQorCQl2bW92ZSB1c3IvbGliL3Br Z2NvbmZpZworCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xpYi8qLmEiCisJ fQorfQo= --===============7642216651730325797==--