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.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 10572 invoked from network); 24 Feb 2022 14:47:35 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 24 Feb 2022 14:47:35 -0000 Content-Type: multipart/mixed; boundary="===============8488975641265843206==" MIME-Version: 1.0 Subject: =?utf8?b?UmU6IFtQUiBQQVRDSF0gW1VwZGF0ZWRdIG9wZW5zaG90OiB1cGRhdGUgdG8gMi42LjEu?= To: ml@inbox.vuxu.org From: tibequadorian Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 24 Feb 2022 15:47:34 +0100 List-Id: Message-ID: <20220224144734.PRl8JKcShy0LQjcHDEHr8Eo-hHTZnGCtqouAlU3ODL8@z> GitHub notification mails are now in MIME to allow UTF8. --===============8488975641265843206== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgdGliZXF1YWRvcmlhbiBhZ2FpbnN0 IG1hc3RlciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5j b20vdGliZXF1YWRvcmlhbi92b2lkLXBhY2thZ2VzIG9wZW5zaG90Cmh0dHBzOi8vZ2l0aHViLmNv bS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zNTc5OAoKb3BlbnNob3Q6IHVwZGF0ZSB0 byAyLjYuMS4KQ2xvc2VzICMzMzg5Nw0KDQpQYXRjaGVzIGZvciBvcGVuc2hvdCBhcmUgYWxyZWFk eSB1cHN0cmVhbSBzbyBtYXliZSB3ZSBzaG91bGQgd2FpdCBmb3IgMi42LjIuDQoNCjwhLS0gVW5j b21tZW50IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0aW9ucyB3aGljaCBhcmUgbm90 IGFwcGxpY2FibGUgLS0+DQoNCiMjIyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJIHRlc3RlZCB0 aGUgY2hhbmdlcyBpbiB0aGlzIFBSOiAqKmJyaWVmbHkqKg0KDQpSZW1vdmVkIHRoZSByZXN0cmlj dGlvbiBvbiBhcmNoIG9yIGxpYmMgc28gaGVscCBmb3IgdGVzdGluZyBvbiBtdXNsIGFuZCBBUk0g aXMgYXBwcmVjaWF0ZWQuDQotIFt4XSBhYXJjaDY0IGdsaWJjIHdpdGggd2F5bGFuZCBpcyBjb25m aXJtZWQgdG8gd29yay4NCg0KPCEtLQ0KIyMjIyBOZXcgcGFja2FnZQ0KLSBUaGlzIG5ldyBwYWNr YWdlIGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHVi LmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvTWFudWFsLm1kI3F1YWxp dHktcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioNCi0tPg0KDQo8IS0tIE5vdGU6IElmIHRo ZSBidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIFtza2lw IENJXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFz dGVyL0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uKQ0KYW5kIHRlc3QgYXQg bGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNy b3NzIGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBpZiB0aGlzIFBSIGlzIG5vdCBza2lwcGlu ZyBDSS4NCi0tPg0KPCEtLSANCiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZw0KLSBJIGJ1aWx0IHRo aXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKEFSQ0gtTElCQykNCi0g SSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMgKGlmIHN1cHBv cnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFyY2g2NC1tdXNsDQogIC0gYXJtdjdsDQog IC0gYXJtdjZsLW11c2wNCi0tPg0KCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzU3OTgucGF0Y2ggaXMgYXR0YWNoZWQ= --===============8488975641265843206== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openshot-35798.patch" RnJvbSA3ZTkxYzQ2YzMzMmU4M2YwYjg5ZTJjOTc3MDE4OTA3NjVmMmZhZmI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB0aWJlcXVhZG9yaWFuIDx0aWJlcXVhZG9yaWFuQHBvc3Rlby5k ZT4KRGF0ZTogV2VkLCAyMyBGZWIgMjAyMiAwMDo0MTozOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MS8zXSBsaWJvcGVuc2hvdC1hdWRpbzogdXBkYXRlIHRvIDAuMi4yLgoKLS0tCiBjb21tb24vc2hs aWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogLi4uL2xpYm9wZW5z aG90LWF1ZGlvL3BhdGNoZXMvZml4LW11c2wucGF0Y2ggIHwgODYgKysrKysrKysrKy0tLS0tLS0t LQogc3JjcGtncy9saWJvcGVuc2hvdC1hdWRpby90ZW1wbGF0ZSAgICAgICAgICAgIHwgIDcgKy0K IDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMDE5NjE4MjA1OTcz Li44ZTJmZWNjYmVlMDYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3No bGlicwpAQCAtMjU5Nyw3ICsyNTk3LDcgQEAgbGliYXgyNWlvLnNvLjAgbGliYXgyNS0wLjAuMTJy YzRfMQogbGlibWlsbC5zby4xOCBsaWJtaWxsLTEuMTRfMQogbGliZ2VzLTEuMC5zby4wIGdzdDEt ZWRpdGluZy1zZXJ2aWNlcy0xLjYuMl8xCiBsaWJ5a25lb21nci5zby4wIGxpYnlrbmVvbWdyLTAu MS44XzEKLWxpYm9wZW5zaG90LWF1ZGlvLnNvLjcgbGlib3BlbnNob3QtYXVkaW8tMC4yLjBfMQor bGlib3BlbnNob3QtYXVkaW8uc28uOCBsaWJvcGVuc2hvdC1hdWRpby0wLjIuMl8xCiBsaWJvcGVu c2hvdC5zby4xOSBsaWJvcGVuc2hvdC0wLjIuNV8zCiBsaWJwcXh4LTYuMy5zbyBsaWJwcXh4LTYu My4zXzEKIGxpYm5kcGkuc28uMyBuZHBpLTMuNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9w ZW5zaG90LWF1ZGlvL3BhdGNoZXMvZml4LW11c2wucGF0Y2ggYi9zcmNwa2dzL2xpYm9wZW5zaG90 LWF1ZGlvL3BhdGNoZXMvZml4LW11c2wucGF0Y2gKaW5kZXggYjVmMTc4ZDkyZDhhLi41MzIyNDhj ODYyMTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGlib3BlbnNob3QtYXVkaW8vcGF0Y2hlcy9maXgt bXVzbC5wYXRjaAorKysgYi9zcmNwa2dzL2xpYm9wZW5zaG90LWF1ZGlvL3BhdGNoZXMvZml4LW11 c2wucGF0Y2gKQEAgLTEsNDAgKzEsNDYgQEAKLS0tLSBhL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVz L2p1Y2VfY29yZS9qdWNlX2NvcmUuY3BwCTIwMTYtMDgtMzAgMDY6MjQ6MjcuMDAwMDAwMDAwICsw MjAwCi0rKysgYi9KdWNlTGlicmFyeUNvZGUvbW9kdWxlcy9qdWNlX2NvcmUvanVjZV9jb3JlLmNw cAkyMDE2LTEyLTEyIDE0OjUzOjIzLjUzMjYxMzM3OCArMDEwMAotQEAgLTk3LDcgKzk3LDcgQEAK LSAgI2luY2x1ZGUgPG5ldC9pZi5oPg0KLSAgI2luY2x1ZGUgPHN5cy9pb2N0bC5oPg0KLSANCi0t ICNpZiAhIEpVQ0VfQU5EUk9JRA0KLSsgI2lmICEgSlVDRV9BTkRST0lEICYmIGRlZmluZWQoX19H TElCQ19fKQ0KLSAgICNpbmNsdWRlIDxleGVjaW5mby5oPg0KLSAgI2VuZGlmDQotICNlbmRpZg0K LS0tLSBhL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9zeXN0ZW0vanVjZV9TeXN0 ZW1TdGF0cy5jcHAJMjAxNi0wOC0zMCAwNjoyNDoyNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL0p1 Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9zeXN0ZW0vanVjZV9TeXN0ZW1TdGF0cy5j cHAJMjAxNi0xMi0xMiAxNDo1ODozNS45ODg5ODYwMzAgKzAxMDAKLUBAIC0xMzQsNiArMTM0LDgg QEAKLSAgICAgICAgIH0NCi0gICAgIH0NCi0gDQotKyAgICNlbGlmICFkZWZpbmVkKF9fR0xJQkNf XykNCi0rICAgIGphc3NlcnRmYWxzZTsgLy8gc29ycnksIG5vdCBpbXBsZW1lbnRlZCB5ZXQhDQot ICAgICNlbHNlDQotICAgICB2b2lkKiBzdGFja1sxMjhdOw0KLSAgICAgaW50IGZyYW1lcyA9IGJh Y2t0cmFjZSAoc3RhY2ssIG51bUVsZW1lbnRzSW5BcnJheSAoc3RhY2spKTsNCi0tLS0gYS9KdWNl TGlicmFyeUNvZGUvbW9kdWxlcy9qdWNlX2NvcmUvbmF0aXZlL2p1Y2VfbGludXhfU3lzdGVtU3Rh dHMuY3BwCTIwMTYtMDgtMzAgMDY6MjQ6MjcuMDAwMDAwMDAwICswMjAwCi0rKysgYi9KdWNlTGli cmFyeUNvZGUvbW9kdWxlcy9qdWNlX2NvcmUvbmF0aXZlL2p1Y2VfbGludXhfU3lzdGVtU3RhdHMu Y3BwCTIwMTYtMTItMTIgMTU6MDc6MzUuMDQ2NjA3Nzg4ICswMTAwCi1AQCAtMTQyLDggKzE0Miwx NSBAQAotICAgICByZXR1cm4gcmVzdWx0Ow0KLSB9DQotIA0KLSsjaWYgZGVmaW5lZChfX0dMSUJD X18pDQotIFN0cmluZyBTeXN0ZW1TdGF0czo6Z2V0VXNlckxhbmd1YWdlKCkgICAgeyByZXR1cm4g Z2V0TG9jYWxlVmFsdWUgKF9OTF9JREVOVElGSUNBVElPTl9MQU5HVUFHRSk7IH0NCi0gU3RyaW5n IFN5c3RlbVN0YXRzOjpnZXRVc2VyUmVnaW9uKCkgICAgICB7IHJldHVybiBnZXRMb2NhbGVWYWx1 ZSAoX05MX0lERU5USUZJQ0FUSU9OX1RFUlJJVE9SWSk7IH0NCi0rI2Vsc2UNCi0rLy8gVGhlIGlk ZW50aWZpZXJzIF9OTF9JTkRFTlRJRklDQVRJT05fTEFOR1VBR0UgYW5kIF9URVJSSVJUT1JZIGFy ZSBub3QgZGVmaW5lZCBpbiBtdXNsIGxpYmMuDQotKy8vIFRPRE86IEZpbmQgYSBiZXR0ZXIgZml4 IHRoYW4ganVzdCByZXR1cm5pbmcgbm9uc2Vuc2UuIEluc3BlY3QgZW52KCJMQU5HIikgcGVyaGFw cz8NCi0rU3RyaW5nIFN5c3RlbVN0YXRzOjpnZXRVc2VyTGFuZ3VhZ2UoKSAgICB7IHJldHVybiBT dHJpbmcoImVuIik7IH0NCi0rU3RyaW5nIFN5c3RlbVN0YXRzOjpnZXRVc2VyUmVnaW9uKCkgICAg ICB7IHJldHVybiBTdHJpbmcoIlVTIik7IH0NCi0rI2VuZGlmDQotIFN0cmluZyBTeXN0ZW1TdGF0 czo6Z2V0RGlzcGxheUxhbmd1YWdlKCkgeyByZXR1cm4gZ2V0VXNlckxhbmd1YWdlKCkgKyAiLSIg KyBnZXRVc2VyUmVnaW9uKCk7IH0NCi0gDQotIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorZGlm ZiAtLWdpdCBhL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9qdWNlX2NvcmUuY3Bw IGIvSnVjZUxpYnJhcnlDb2RlL21vZHVsZXMvanVjZV9jb3JlL2p1Y2VfY29yZS5jcHAKK2luZGV4 IDhiYWM4MTIuLmUyM2I0MjIgMTAwNjQ0CistLS0gYS9KdWNlTGlicmFyeUNvZGUvbW9kdWxlcy9q dWNlX2NvcmUvanVjZV9jb3JlLmNwcAorKysrIGIvSnVjZUxpYnJhcnlDb2RlL21vZHVsZXMvanVj ZV9jb3JlL2p1Y2VfY29yZS5jcHAKK0BAIC05Miw3ICs5Miw3IEBACisgICNpbmNsdWRlIDxuZXQv aWYuaD4KKyAgI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorIAorLSAjaWYgISBKVUNFX0FORFJPSUQK KysgI2lmICEgSlVDRV9BTkRST0lEICYmIGRlZmluZWQoX19HTElCQ19fKQorICAgI2luY2x1ZGUg PGV4ZWNpbmZvLmg+CisgICNlbmRpZgorICNlbmRpZgorZGlmZiAtLWdpdCBhL0p1Y2VMaWJyYXJ5 Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9uYXRpdmUvanVjZV9saW51eF9TeXN0ZW1TdGF0cy5jcHAg Yi9KdWNlTGlicmFyeUNvZGUvbW9kdWxlcy9qdWNlX2NvcmUvbmF0aXZlL2p1Y2VfbGludXhfU3lz dGVtU3RhdHMuY3BwCitpbmRleCAyZDdmYWEzLi5mMTMyNDA1IDEwMDY0NAorLS0tIGEvSnVjZUxp YnJhcnlDb2RlL21vZHVsZXMvanVjZV9jb3JlL25hdGl2ZS9qdWNlX2xpbnV4X1N5c3RlbVN0YXRz LmNwcAorKysrIGIvSnVjZUxpYnJhcnlDb2RlL21vZHVsZXMvanVjZV9jb3JlL25hdGl2ZS9qdWNl X2xpbnV4X1N5c3RlbVN0YXRzLmNwcAorQEAgLTEzOSw4ICsxMzksMTUgQEAgc3RhdGljIFN0cmlu ZyBnZXRMb2NhbGVWYWx1ZSAobmxfaXRlbSBrZXkpCisgICAgIHJldHVybiByZXN1bHQ7CisgfQor IAorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyBTdHJpbmcgU3lzdGVtU3RhdHM6OmdldFVzZXJM YW5ndWFnZSgpICAgICB7IHJldHVybiBnZXRMb2NhbGVWYWx1ZSAoX05MX0lERU5USUZJQ0FUSU9O X0xBTkdVQUdFKTsgfQorIFN0cmluZyBTeXN0ZW1TdGF0czo6Z2V0VXNlclJlZ2lvbigpICAgICAg IHsgcmV0dXJuIGdldExvY2FsZVZhbHVlIChfTkxfSURFTlRJRklDQVRJT05fVEVSUklUT1JZKTsg fQorKyNlbHNlCisrLy8gVGhlIGlkZW50aWZpZXJzIF9OTF9JTkRFTlRJRklDQVRJT05fTEFOR1VB R0UgYW5kIF9URVJSSVJUT1JZIGFyZSBub3QgZGVmaW5lZCBpbiBtdXNsIGxpYmMuCisrLy8gVE9E TzogRmluZCBhIGJldHRlciBmaXggdGhhbiBqdXN0IHJldHVybmluZyBub25zZW5zZS4gSW5zcGVj dCBlbnYoIkxBTkciKSBwZXJoYXBzPworK1N0cmluZyBTeXN0ZW1TdGF0czo6Z2V0VXNlckxhbmd1 YWdlKCkgICAgIHsgcmV0dXJuIFN0cmluZygiZW4iKTsgfQorK1N0cmluZyBTeXN0ZW1TdGF0czo6 Z2V0VXNlclJlZ2lvbigpICAgICAgIHsgcmV0dXJuIFN0cmluZygiVVMiKTsgfQorKyNlbmRpZgor IFN0cmluZyBTeXN0ZW1TdGF0czo6Z2V0RGlzcGxheUxhbmd1YWdlKCkgIHsgcmV0dXJuIGdldFVz ZXJMYW5ndWFnZSgpICsgIi0iICsgZ2V0VXNlclJlZ2lvbigpOyB9CisgCisgLy89PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KK2RpZmYgLS1naXQgYS9KdWNlTGlicmFyeUNvZGUvbW9kdWxlcy9qdWNlX2Nv cmUvc3lzdGVtL2p1Y2VfU3lzdGVtU3RhdHMuY3BwIGIvSnVjZUxpYnJhcnlDb2RlL21vZHVsZXMv anVjZV9jb3JlL3N5c3RlbS9qdWNlX1N5c3RlbVN0YXRzLmNwcAoraW5kZXggNzU3ZWEyNC4uNmI2 MWUxNiAxMDA2NDQKKy0tLSBhL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1Y2VfY29yZS9zeXN0 ZW0vanVjZV9TeXN0ZW1TdGF0cy5jcHAKKysrKyBiL0p1Y2VMaWJyYXJ5Q29kZS9tb2R1bGVzL2p1 Y2VfY29yZS9zeXN0ZW0vanVjZV9TeXN0ZW1TdGF0cy5jcHAKK0BAIC0xMzgsNyArMTM4LDcgQEAg U3RyaW5nIFN5c3RlbVN0YXRzOjpnZXRTdGFja0JhY2t0cmFjZSgpCisgeworICAgICBTdHJpbmcg cmVzdWx0OworIAorLSAgICNpZiBKVUNFX0FORFJPSUQgfHwgSlVDRV9NSU5HVworKyAgICNpZiBK VUNFX0FORFJPSUQgfHwgSlVDRV9NSU5HVyB8fCAhZGVmaW5lZChfX0dMSUJDX18pCisgICAgIGph c3NlcnRmYWxzZTsgLy8gc29ycnksIG5vdCBpbXBsZW1lbnRlZCB5ZXQhCisgCisgICAgI2VsaWYg SlVDRV9XSU5ET1dTCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9wZW5zaG90LWF1ZGlvL3RlbXBs YXRlIGIvc3JjcGtncy9saWJvcGVuc2hvdC1hdWRpby90ZW1wbGF0ZQppbmRleCA1NmMzMzBlYWZj ZjEuLjI1NGY4YjYyODNiZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJvcGVuc2hvdC1hdWRpby90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYm9wZW5zaG90LWF1ZGlvL3RlbXBsYXRlCkBAIC0xLDYg KzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGlib3BlbnNob3QtYXVkaW8nCiBwa2duYW1l PWxpYm9wZW5zaG90LWF1ZGlvCi12ZXJzaW9uPTAuMi4wCit2ZXJzaW9uPTAuMi4yCiByZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJkb3h5Z2VuIgpAQCAtMTEs NyArMTEsNyBAQCBtYWludGFpbmVyPSJTcGVuY2VyIEhpbGwgPHNwZW5jZXJuaDc3QGdtYWlsLmNv bT4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHVi LmNvbS9PcGVuU2hvdC9saWJvcGVuc2hvdC1hdWRpbyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRo dWIuY29tL09wZW5TaG90L2xpYm9wZW5zaG90LWF1ZGlvL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFy Lmd6IgotY2hlY2tzdW09OTM3ZmY0ZjFjMmRmYjhhYjVkNTZhZDg1YmVhY2FhMjlkZmQ1YTc5YWYw ZDljZjY0NzM4NjAzNGZlOTg4MjMwOQorY2hlY2tzdW09NjZiZWRmZGEwZDhkNDMwNTk4YjIxYmMy ZGRlNmMwMDE2YTc1OGE2YzgzNDY3ZDAyNzNhOWQ2OTJkZTEwYmFhZgogCiBpZiBbICIkWEJQU19U QVJHRVRfTk9fQVRPTUlDOCIgXTsgdGhlbgogCW1ha2VkZXBlbmRzKz0iIGxpYmF0b21pYy1kZXZl bCIKQEAgLTIwLDkgKzIwLDEwIEBAIGZpCiAKIGxpYm9wZW5zaG90LWF1ZGlvLWRldmVsX3BhY2th Z2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgotCWRlcGVuZHMrPSIg JHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCWRlcGVuZHMrPSIgJHtzb3Vy Y2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IGFsc2EtbGliLWRldmVsIHpsaWItZGV2ZWwi CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlIHVzci9saWIv Y21ha2UKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAl9CiB9CgpGcm9tIDJkZDIyMzZiYzhmNmMy ZDM2YTZlMTgwMzU5YmU1NjU1ZTg2NDE4ZDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IHRpYmVxdWFkb3JpYW4gPHRpYmVxdWFkb3JpYW5AcG9zdGVvLmRlPgpEYXRlOiBXZWQsIDIzIEZl YiAyMDIyIDAwOjQyOjM3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyLzNdIGxpYm9wZW5zaG90OiB1 cGRhdGUgdG8gMC4yLjcuCgplbmFibGUgZm9yIGFsbCBhcmNocyBhbmQgbGliYwotLS0KIGNvbW1v bi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiAuLi4vcGF0 Y2hlcy9BVl9HRVRfQ09ERUNfQ09OVEVYVC1tYWNyby5wYXRjaCAgfCAzNCAtLS0tLS0tLS0tLS0t LS0tLS0tCiBzcmNwa2dzL2xpYm9wZW5zaG90L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgfCAx OSArKysrKystLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA0MyBkZWxl dGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpYm9wZW5zaG90L3BhdGNoZXMv QVZfR0VUX0NPREVDX0NPTlRFWFQtbWFjcm8ucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hs aWJzIGIvY29tbW9uL3NobGlicwppbmRleCA4ZTJmZWNjYmVlMDYuLmRiMTFjMzk1NTBkNCAxMDA2 NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yNTk4LDcgKzI1 OTgsNyBAQCBsaWJtaWxsLnNvLjE4IGxpYm1pbGwtMS4xNF8xCiBsaWJnZXMtMS4wLnNvLjAgZ3N0 MS1lZGl0aW5nLXNlcnZpY2VzLTEuNi4yXzEKIGxpYnlrbmVvbWdyLnNvLjAgbGlieWtuZW9tZ3It MC4xLjhfMQogbGlib3BlbnNob3QtYXVkaW8uc28uOCBsaWJvcGVuc2hvdC1hdWRpby0wLjIuMl8x Ci1saWJvcGVuc2hvdC5zby4xOSBsaWJvcGVuc2hvdC0wLjIuNV8zCitsaWJvcGVuc2hvdC5zby4y MSBsaWJvcGVuc2hvdC0wLjIuN18xCiBsaWJwcXh4LTYuMy5zbyBsaWJwcXh4LTYuMy4zXzEKIGxp Ym5kcGkuc28uMyBuZHBpLTMuNF8xCiBsaWJsb2cuc28gYW5kcm9pZC1zdHVkaW8tMy4wLjFfMQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9saWJvcGVuc2hvdC9wYXRjaGVzL0FWX0dFVF9DT0RFQ19DT05U RVhULW1hY3JvLnBhdGNoIGIvc3JjcGtncy9saWJvcGVuc2hvdC9wYXRjaGVzL0FWX0dFVF9DT0RF Q19DT05URVhULW1hY3JvLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNmM2 NDBhOGUxMWUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xpYm9wZW5zaG90L3BhdGNoZXMv QVZfR0VUX0NPREVDX0NPTlRFWFQtbWFjcm8ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNCAr MCwwIEBACi0tLS0gYS9pbmNsdWRlL0ZGbXBlZ1V0aWxpdGllcy5oCTIwMjAtMDMtMDMgMDk6MDA6 MDYuMDAwMDAwMDAwICswMTAwCi0rKysgYi9pbmNsdWRlL0ZGbXBlZ1V0aWxpdGllcy5oCTIwMjAt MDgtMTkgMTc6MDQ6NTguNTM1ODA2NzQ0ICswMjAwCi1AQCAtMTYzLDExICsxNjMsMTAgQEAKLSAJ CSNkZWZpbmUgQVZfRlJFRV9DT05URVhUKGF2X2NvbnRleHQpIGF2Y29kZWNfZnJlZV9jb250ZXh0 KCZhdl9jb250ZXh0KQotIAkJI2RlZmluZSBBVl9HRVRfQ09ERUNfVFlQRShhdl9zdHJlYW0pIGF2 X3N0cmVhbS0+Y29kZWNwYXItPmNvZGVjX3R5cGUKLSAJCSNkZWZpbmUgQVZfRklORF9ERUNPREVS X0NPREVDX0lEKGF2X3N0cmVhbSkgYXZfc3RyZWFtLT5jb2RlY3Bhci0+Y29kZWNfaWQKLS0JCWF1 dG8gQVZfR0VUX0NPREVDX0NPTlRFWFQgPSBbXShBVlN0cmVhbSogYXZfc3RyZWFtLCBBVkNvZGVj KiBhdl9jb2RlYykgeyBcCi0tCQkJQVZDb2RlY0NvbnRleHQgKmNvbnRleHQgPSBhdmNvZGVjX2Fs bG9jX2NvbnRleHQzKGF2X2NvZGVjKTsgXAotLQkJCWF2Y29kZWNfcGFyYW1ldGVyc190b19jb250 ZXh0KGNvbnRleHQsIGF2X3N0cmVhbS0+Y29kZWNwYXIpOyBcCi0tCQkJcmV0dXJuIGNvbnRleHQ7 IFwKLS0JCX07Ci0rCQkjZGVmaW5lIEFWX0dFVF9DT0RFQ19DT05URVhUKGF2X3N0cmVhbSwgYXZf Y29kZWMpIFwKLSsJCQkoeyBBVkNvZGVjQ29udGV4dCAqY29udGV4dCA9IGF2Y29kZWNfYWxsb2Nf Y29udGV4dDMoYXZfY29kZWMpOyBcCi0rCQkJICAgYXZjb2RlY19wYXJhbWV0ZXJzX3RvX2NvbnRl eHQoY29udGV4dCwgYXZfc3RyZWFtLT5jb2RlY3Bhcik7IFwKLSsJCQkgICBjb250ZXh0OyB9KQot IAkJI2RlZmluZSBBVl9HRVRfQ09ERUNfUEFSX0NPTlRFWFQoYXZfc3RyZWFtLCBhdl9jb2RlYykg YXZfY29kZWM7Ci0gCQkjZGVmaW5lIEFWX0dFVF9DT0RFQ19GUk9NX1NUUkVBTShhdl9zdHJlYW0s Y29kZWNfaW4pCi0gCQkjZGVmaW5lIEFWX0dFVF9DT0RFQ19BVFRSSUJVVEVTKGF2X3N0cmVhbSwg YXZfY29udGV4dCkgYXZfc3RyZWFtLT5jb2RlY3BhcgotQEAgLTE5OSwxMSArMTk4LDEwIEBACi0g CQkjZGVmaW5lIEFWX0ZSRUVfQ09OVEVYVChhdl9jb250ZXh0KSBhdmNvZGVjX2ZyZWVfY29udGV4 dCgmYXZfY29udGV4dCkKLSAJCSNkZWZpbmUgQVZfR0VUX0NPREVDX1RZUEUoYXZfc3RyZWFtKSBh dl9zdHJlYW0tPmNvZGVjcGFyLT5jb2RlY190eXBlCi0gCQkjZGVmaW5lIEFWX0ZJTkRfREVDT0RF Ul9DT0RFQ19JRChhdl9zdHJlYW0pIGF2X3N0cmVhbS0+Y29kZWNwYXItPmNvZGVjX2lkCi0tCQlh dXRvIEFWX0dFVF9DT0RFQ19DT05URVhUID0gW10oQVZTdHJlYW0qIGF2X3N0cmVhbSwgQVZDb2Rl YyogYXZfY29kZWMpIHsgXAotLQkJCUFWQ29kZWNDb250ZXh0ICpjb250ZXh0ID0gYXZjb2RlY19h bGxvY19jb250ZXh0Myhhdl9jb2RlYyk7IFwKLS0JCQlhdmNvZGVjX3BhcmFtZXRlcnNfdG9fY29u dGV4dChjb250ZXh0LCBhdl9zdHJlYW0tPmNvZGVjcGFyKTsgXAotLQkJCXJldHVybiBjb250ZXh0 OyBcCi0tCQl9OwotKwkJI2RlZmluZSBBVl9HRVRfQ09ERUNfQ09OVEVYVChhdl9zdHJlYW0sIGF2 X2NvZGVjKSBcCi0rCQkJKHsgQVZDb2RlY0NvbnRleHQgKmNvbnRleHQgPSBhdmNvZGVjX2FsbG9j X2NvbnRleHQzKGF2X2NvZGVjKTsgXAotKwkJCSAgIGF2Y29kZWNfcGFyYW1ldGVyc190b19jb250 ZXh0KGNvbnRleHQsIGF2X3N0cmVhbS0+Y29kZWNwYXIpOyBcCi0rCQkJICAgY29udGV4dDsgfSkK LSAJCSNkZWZpbmUgQVZfR0VUX0NPREVDX1BBUl9DT05URVhUKGF2X3N0cmVhbSwgYXZfY29kZWMp IGF2X2NvZGVjOwotIAkJI2RlZmluZSBBVl9HRVRfQ09ERUNfRlJPTV9TVFJFQU0oYXZfc3RyZWFt LGNvZGVjX2luKQotIAkJI2RlZmluZSBBVl9HRVRfQ09ERUNfQVRUUklCVVRFUyhhdl9zdHJlYW0s IGF2X2NvbnRleHQpIGF2X3N0cmVhbS0+Y29kZWNwYXIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGli b3BlbnNob3QvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYm9wZW5zaG90L3RlbXBsYXRlCmluZGV4IGI1 OTQ3MjEwNWIzNS4uNzFkZmYxMmI1ZDYxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYm9wZW5zaG90 L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGlib3BlbnNob3QvdGVtcGxhdGUKQEAgLTEsMTEgKzEs MTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYm9wZW5zaG90JwogcGtnbmFtZT1saWJvcGVu c2hvdAotdmVyc2lvbj0wLjIuNQotcmV2aXNpb249NgotYXJjaHM9Imk2ODYgeDg2XzY0IHBwYzY0 bGUiCit2ZXJzaW9uPTAuMi43CityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmln dXJlX2FyZ3M9Ii1ERU5BQkxFX1JVQlk9T0ZGIC1EVVNFX1NZU1RFTV9KU09OQ1BQPU9OIiAjIEJ1 aWxkcyBmYWlsIHdpdGggUnVieS0yLjQuMQotaG9zdG1ha2VkZXBlbmRzPSJzd2lnIGRveHlnZW4g cnVieSBweXRob24zIHBrZy1jb25maWciCisjIEJ1aWxkcyBmYWlsIHdpdGggUnVieS0yLjQuMQor Y29uZmlndXJlX2FyZ3M9Ii1ERU5BQkxFX1JVQlk9T0ZGIC1EVVNFX1NZU1RFTV9KU09OQ1BQPU9O IgoraG9zdG1ha2VkZXBlbmRzPSJzd2lnIGRveHlnZW4gcnVieSBweXRob24zIHBrZy1jb25maWcg cXQ1LXFtYWtlIHF0NS1ob3N0LXRvb2xzIgogbWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2ZWwgZmZt cGVnLWRldmVsIGxpYm1hZ2ljay1kZXZlbCBxdDUtZGV2ZWwgbGliZ29tcC1kZXZlbAogIGxpYm9w ZW5zaG90LWF1ZGlvLWRldmVsIHF0NS1tdWx0aW1lZGlhLWRldmVsIHVuaXR0ZXN0LWNwcCB6ZXJv bXEtZGV2ZWwgY3Bwem1xCiAganNvbmNwcC1kZXZlbCIKQEAgLTE1LDkgKzE1LDEyIEBAIG1haW50 YWluZXI9IlNwZW5jZXIgSGlsbCA8c3BlbmNlcm5oNzdAZ21haWwuY29tPiIKIGxpY2Vuc2U9IkxH UEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuU2hvdC9s aWJvcGVuc2hvdCIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL09wZW5TaG90L2xpYm9w ZW5zaG90L2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09OGFlN2QyMjZmYmQy ZWZiYzg0ZGE0ZjdkOWQ4YzdmM2NjOTYxNmU0ZGU0NmUxMjMzZTNiMGE4NGFjMGE0MjliYwotIyBG SVhNRTogdGVzdHMgc2VnZmF1bHQKLW1ha2VfY2hlY2s9ZXh0ZW5kZWQKK2NoZWNrc3VtPTU2OGVh YjZkNjlkNDY5YzVmNzQ1ZjBlMjUzODdjYTVlMDAwZjdjMjhiZTQ4NDE3YjBkNzc3MDU3N2FjNzRh MjgKKworaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gbXVzbCBdOyB0aGVuCisJbWFrZWRlcGVu ZHMrPSIgbGliZXhlY2luZm8tZGV2ZWwiCisJTElCUz0iLWxleGVjaW5mbyIKK2ZpCiAKIGxpYm9w ZW5zaG90LWRldmVsX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZp bGVzIgoKRnJvbSAyNTY2MDA2YWJmMmM1ODI1Nzk3N2NkMTI4ZGZiYWQ3NWFlMGMwYTc4IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB0aWJlcXVhZG9yaWFuIDx0aWJlcXVhZG9yaWFuQHBv c3Rlby5kZT4KRGF0ZTogV2VkLCAyMyBGZWIgMjAyMiAwMDo0Mjo1MSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMy8zXSBvcGVuc2hvdDogdXBkYXRlIHRvIDIuNi4xLgoKZW5hYmxlIGZvciBhbGwgYXJj aHMgYW5kIGxpYmMKcGF0Y2hlcyBhcmUgdXBzdHJlYW0KLS0tCiAuLi4vb3BlbnNob3QvcGF0Y2hl cy8wMDAxLXZpZGVvX3dpZGdldC5wYXRjaCAgfCAgIDc0ICsKIC4uLi9wYXRjaGVzLzAwMDItcHl0 aG9uMy4xMF9pbnQucGF0Y2ggICAgICAgICB8IDE5OTMgKysrKysrKysrKysrKysrKysKIHNyY3Br Z3Mvb3BlbnNob3QvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKy0KIDMgZmls ZXMgY2hhbmdlZCwgMjA3MyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbnNob3QvcGF0Y2hlcy8wMDAxLXZpZGVvX3dpZGdldC5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbnNob3QvcGF0Y2hlcy8wMDAyLXB5dGhv bjMuMTBfaW50LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuc2hvdC9wYXRjaGVzLzAw MDEtdmlkZW9fd2lkZ2V0LnBhdGNoIGIvc3JjcGtncy9vcGVuc2hvdC9wYXRjaGVzLzAwMDEtdmlk ZW9fd2lkZ2V0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u NWU5M2Q3NjRjNGJmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuc2hvdC9wYXRjaGVz LzAwMDEtdmlkZW9fd2lkZ2V0LnBhdGNoCkBAIC0wLDAgKzEsNzQgQEAKK0Zyb20gOTc0OGExMzI2 OGQ2NmE1OTQ5YWViYzk3MDYzN2I1OTAzNzU2ZDAxOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IEpvbmF0aGFuIFRob21hcyA8am9uYXRoYW5Ab3BlbnNob3Qub3JnPgorRGF0ZTogVGh1 LCA3IE9jdCAyMDIxIDEzOjUzOjA5IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIFN1cHBvcnQgZm9y IHByZXZpZXdpbmcgYW5hbW9ycGhpYyB2aWRlbyBwcm9maWxlcywgaW5jbHVkaW5nIGEKKyBmZXcg Y29kZSBjbGVhbi11cHMuCisKKy0tLQorIHNyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weSB8IDIy ICsrKysrKystLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCsp LCAxNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdl dC5weSBiL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weQoraW5kZXggNzMyNjU5OGQzLi44NDJk ZWIzYmEgMTAwNjQ0CistLS0gYS9zcmMvd2luZG93cy92aWRlb193aWRnZXQucHkKKysrKyBiL3Ny Yy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weQorQEAgLTc3LDI4ICs3NywyMCBAQCBkZWYgY2hhbmdl ZChzZWxmLCBhY3Rpb24pOgorICAgICAgICAgICAgIGlmIGFjdGlvbi50eXBlID09ICJsb2FkIiBh bmQgYWN0aW9uLnZhbHVlcy5nZXQoInBpeGVsX3JhdGlvIik6CisgICAgICAgICAgICAgICAgIHBp eGVsX3JhdGlvX2NoYW5nZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgIHNlbGYucGl4ZWxfcmF0 aW8gPSBvcGVuc2hvdC5GcmFjdGlvbigKKy0gICAgICAgICAgICAgICAgICAgIGFjdGlvbi52YWx1 ZXMuZ2V0KCJwaXhlbF9yYXRpbyIpLmdldCgibnVtIiwgMTYpLAorLSAgICAgICAgICAgICAgICAg ICAgYWN0aW9uLnZhbHVlcy5nZXQoInBpeGVsX3JhdGlvIikuZ2V0KCJkZW4iLCA5KSkKKysgICAg ICAgICAgICAgICAgICAgIGFjdGlvbi52YWx1ZXMuZ2V0KCJwaXhlbF9yYXRpbyIpLmdldCgibnVt IiwgMSksCisrICAgICAgICAgICAgICAgICAgICBhY3Rpb24udmFsdWVzLmdldCgicGl4ZWxfcmF0 aW8iKS5nZXQoImRlbiIsIDEpKQorICAgICAgICAgICAgICAgICBsb2cuaW5mbygKKyAgICAgICAg ICAgICAgICAgICAgICJTZXQgdmlkZW8gd2lkZ2V0IHBpeGVsIGFzcGVjdCByYXRpbyB0bzogJXMi LAorICAgICAgICAgICAgICAgICAgICAgc2VsZi5waXhlbF9yYXRpby5Ub0Zsb2F0KCkpCisgICAg ICAgICAgICAgZWxpZiBhY3Rpb24ua2V5IGFuZCBhY3Rpb24ua2V5WzBdID09ICJwaXhlbF9yYXRp byI6CisgICAgICAgICAgICAgICAgIHBpeGVsX3JhdGlvX2NoYW5nZWQgPSBUcnVlCisgICAgICAg ICAgICAgICAgIHNlbGYucGl4ZWxfcmF0aW8gPSBvcGVuc2hvdC5GcmFjdGlvbigKKy0gICAgICAg ICAgICAgICAgICAgIGFjdGlvbi52YWx1ZXMuZ2V0KCJudW0iLCAxNiksCistICAgICAgICAgICAg ICAgICAgICBhY3Rpb24udmFsdWVzLmdldCgiZGVuIiwgOSkpCisrICAgICAgICAgICAgICAgICAg ICBhY3Rpb24udmFsdWVzLmdldCgibnVtIiwgMSksCisrICAgICAgICAgICAgICAgICAgICBhY3Rp b24udmFsdWVzLmdldCgiZGVuIiwgMSkpCisgICAgICAgICAgICAgICAgIGxvZy5pbmZvKAorICAg ICAgICAgICAgICAgICAgICAgIlVwZGF0ZTogU2V0IHZpZGVvIHdpZGdldCBwaXhlbCBhc3BlY3Qg cmF0aW8gdG86ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYucGl4ZWxfcmF0aW8uVG9G bG9hdCgpKQorIAorLSAgICAgICAgICAgICMgVXBkYXRlIG1heCBzaXplICh0byBzaXplIG9mIHZp ZGVvIHByZXZpZXcgdmlld3BvcnQpCistICAgICAgICAgICAgaWYgZGlzcGxheV9yYXRpb19jaGFu Z2VkIG9yIHBpeGVsX3JhdGlvX2NoYW5nZWQ6CistICAgICAgICAgICAgICAgIHRpbWVsaW5lID0g Z2V0X2FwcCgpLndpbmRvdy50aW1lbGluZV9zeW5jLnRpbWVsaW5lCistICAgICAgICAgICAgICAg IHRpbWVsaW5lLlNldE1heFNpemUoCistICAgICAgICAgICAgICAgICAgICByb3VuZChzZWxmLndp ZHRoKCkgKiBzZWxmLnBpeGVsX3JhdGlvLlRvRmxvYXQoKSksCistICAgICAgICAgICAgICAgICAg ICByb3VuZChzZWxmLmhlaWdodCgpICogc2VsZi5waXhlbF9yYXRpby5Ub0Zsb2F0KCkpCistICAg ICAgICAgICAgICAgICAgICApCistCisgCisgICAgIGRlZiBkcmF3VHJhbnNmb3JtSGFuZGxlcihz ZWxmLCBwYWludGVyLCBzeCwgc3ksIHNvdXJjZV93aWR0aCwgc291cmNlX2hlaWdodCwgb3JpZ2lu X3gsIG9yaWdpbl95LAorICAgICAgeDE9Tm9uZSwgeTE9Tm9uZSwgeDI9Tm9uZSwgeTI9Tm9uZSwg cm90YXRpb24gPSBOb25lKToKK0BAIC0yMzYsNyArMjI4LDcgQEAgZGVmIHBhaW50RXZlbnQoc2Vs ZiwgZXZlbnQsICphcmdzKToKKyAgICAgICAgICAgICAjIERldGVybWluZSBvcmlnaW5hbCBzaXpl IG9mIGNsaXAncyByZWFkZXIKKyAgICAgICAgICAgICBzb3VyY2Vfd2lkdGggPSBzZWxmLnRyYW5z Zm9ybWluZ19jbGlwLmRhdGFbJ3JlYWRlciddWyd3aWR0aCddCisgICAgICAgICAgICAgc291cmNl X2hlaWdodCA9IHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuZGF0YVsncmVhZGVyJ11bJ2hlaWdodCdd CistICAgICAgICAgICAgc291cmNlX3NpemUgPSBRU2l6ZShzb3VyY2Vfd2lkdGgsIHNvdXJjZV9o ZWlnaHQpCisrICAgICAgICAgICAgc291cmNlX3NpemUgPSBRU2l6ZShzb3VyY2Vfd2lkdGgsIHNv dXJjZV9oZWlnaHQgKiBzZWxmLnBpeGVsX3JhdGlvLlJlY2lwcm9jYWwoKS5Ub0RvdWJsZSgpKQor IAorICAgICAgICAgICAgICMgRGV0ZXJtaW5lIHNjYWxlIG9mIGNsaXAKKyAgICAgICAgICAgICBz Y2FsZSA9IHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuZGF0YVsnc2NhbGUnXQorQEAgLTQwNSw3ICsz OTcsNyBAQCBkZWYgcGFpbnRFdmVudChzZWxmLCBldmVudCwgKmFyZ3MpOgorICAgICAgICAgc2Vs Zi5tdXRleC51bmxvY2soKQorIAorICAgICBkZWYgY2VudGVyZWRWaWV3cG9ydChzZWxmLCB3aWR0 aCwgaGVpZ2h0KToKKy0gICAgICAgICIiIiBDYWxjdWxhdGUgc2l6ZSBvZiB2aWV3cG9ydCB0byBt YWludGFpbiBhcHNlY3QgcmF0aW8gIiIiCisrICAgICAgICAiIiIgQ2FsY3VsYXRlIHNpemUgb2Yg dmlld3BvcnQgdG8gbWFpbnRhaW4gYXNwZWN0IHJhdGlvICIiIgorIAorICAgICAgICAgIyBDYWxj dWxhdGUgcGFkZGluZworICAgICAgICAgdG9wX3BhZGRpbmcgPSAoaGVpZ2h0IC0gKGhlaWdodCAq IHNlbGYuem9vbSkpIC8gMi4wCitAQCAtNDE2LDcgKzQwOCw3IEBAIGRlZiBjZW50ZXJlZFZpZXdw b3J0KHNlbGYsIHdpZHRoLCBoZWlnaHQpOgorICAgICAgICAgaGVpZ2h0ID0gaGVpZ2h0ICogc2Vs Zi56b29tCisgCisgICAgICAgICAjIENhbGN1bGF0ZSB3aGljaCBkaXJlY3Rpb24gdG8gc2NhbGUg KGZvciBwZXJmZWN0IGNlbnRlcmluZykKKy0gICAgICAgIGFzcGVjdFJhdGlvID0gc2VsZi5hc3Bl Y3RfcmF0aW8uVG9GbG9hdCgpICogc2VsZi5waXhlbF9yYXRpby5Ub0Zsb2F0KCkKKysgICAgICAg IGFzcGVjdFJhdGlvID0gc2VsZi5hc3BlY3RfcmF0aW8uVG9GbG9hdCgpCisgICAgICAgICBoZWln aHRGcm9tV2lkdGggPSB3aWR0aCAvIGFzcGVjdFJhdGlvCisgICAgICAgICB3aWR0aEZyb21IZWln aHQgPSBoZWlnaHQgKiBhc3BlY3RSYXRpbworIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuc2hv dC9wYXRjaGVzLzAwMDItcHl0aG9uMy4xMF9pbnQucGF0Y2ggYi9zcmNwa2dzL29wZW5zaG90L3Bh dGNoZXMvMDAwMi1weXRob24zLjEwX2ludC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjhmNmRjNTNkYmY0MAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv b3BlbnNob3QvcGF0Y2hlcy8wMDAyLXB5dGhvbjMuMTBfaW50LnBhdGNoCkBAIC0wLDAgKzEsMTk5 MyBAQAorRnJvbSBhMzA4ODUwMzUwMGU3OTg3N2NlOTg1ZTQ3ODRmNzU0NzhkOWI3OTJlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIkZlUkQgKEZyYW5rIERhbmEpIiA8ZmVyZG55Y0Bn bWFpbC5jb20+CitEYXRlOiBNb24sIDIwIFNlcCAyMDIxIDA1OjM2OjE5IC0wNDAwCitTdWJqZWN0 OiBbUEFUQ0ggMS82XSBQcmVmZXJlbmNlczogRml4IGxvZ2dpbmcgY2FsbHMKKworLS0tCisgc3Jj L2xhdW5jaC5weSAgICAgICAgICAgICAgfCAgMiArLQorIHNyYy93aW5kb3dzL3ByZWZlcmVuY2Vz LnB5IHwgMTggKysrKysrKysrKystLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRp b25zKCspLCA4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2xhdW5jaC5weSBiL3Ny Yy9sYXVuY2gucHkKK2luZGV4IDlmYzYwMGIyMy4uYjYxNGU5YmM3IDEwMDc1NQorLS0tIGEvc3Jj L2xhdW5jaC5weQorKysrIGIvc3JjL2xhdW5jaC5weQorQEAgLTQxLDcgKzQxLDcgQEAKKyAgIiIi CisgCisgaW1wb3J0IHN5cworLWltcG9ydCBvcy5wYXRoCisraW1wb3J0IG9zCisgaW1wb3J0IGFy Z3BhcnNlCisgCisgZnJvbSBQeVF0NS5RdENvcmUgaW1wb3J0IFF0CitkaWZmIC0tZ2l0IGEvc3Jj L3dpbmRvd3MvcHJlZmVyZW5jZXMucHkgYi9zcmMvd2luZG93cy9wcmVmZXJlbmNlcy5weQoraW5k ZXggYmY3ZDY3YjBjLi4zMjVmNDk2YjMgMTAwNjQ0CistLS0gYS9zcmMvd2luZG93cy9wcmVmZXJl bmNlcy5weQorKysrIGIvc3JjL3dpbmRvd3MvcHJlZmVyZW5jZXMucHkKK0BAIC0xMDIsNyArMTAy LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYpOgorIAorICAgICBkZWYgdHh0U2VhcmNoX2NoYW5nZWQo c2VsZik6CisgICAgICAgICAiIiJ0ZXh0Q2hhbmdlZCBldmVudCBoYW5kbGVyIGZvciBzZWFyY2gg Ym94IiIiCistICAgICAgICBsb2cuaW5mbygiU2VhcmNoIGZvciAlcyIgJSBzZWxmLnR4dFNlYXJj aC50ZXh0KCkpCisrICAgICAgICBsb2cuaW5mbygiU2VhcmNoIGZvciAlcyIsIHNlbGYudHh0U2Vh cmNoLnRleHQoKSkKKyAKKyAgICAgICAgICMgUG9wdWxhdGUgcHJlZmVyZW5jZXMKKyAgICAgICAg IHNlbGYuUG9wdWxhdGUoZmlsdGVyPXNlbGYudHh0U2VhcmNoLnRleHQoKSkKK0BAIC0zMTcsNyAr MzE3LDcgQEAgZGVmIFBvcHVsYXRlKHNlbGYsIGZpbHRlcj0iIik6CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2YWx1ZV9saXN0LnJlbW92ZSh2YWx1ZV9pdGVtKQorIAorICAgICAg ICAgICAgICAgICAgICAgICAgICMgUmVtb3ZlIGhhcmR3YXJlIG1vZGUgaXRlbXMgd2hpY2ggY2Fu bm90IGRlY29kZSB0aGUgZXhhbXBsZSB2aWRlbworLSAgICAgICAgICAgICAgICAgICAgICAgIGxv Zy5kZWJ1ZygiUHJlcGFyaW5nIHRvIHRlc3QgaGFyZHdhcmUgZGVjb2Rpbmc6ICVzIiAlICh2YWx1 ZV9saXN0KSkKKysgICAgICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoIlByZXBhcmluZyB0 byB0ZXN0IGhhcmR3YXJlIGRlY29kaW5nOiAlcyIsIHZhbHVlX2xpc3QpCisgICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIHZhbHVlX2l0ZW0gaW4gbGlzdCh2YWx1ZV9saXN0KToKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdiA9IHZhbHVlX2l0ZW1bInZhbHVlIl0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKG5vdCBzZWxmLnRlc3RIYXJkd2FyZURlY29kZSh2YWx1ZV9s aXN0LCB2LCAwKQorQEAgLTQ3MCw3ICs0NzAsNyBAQCBkZWYgYm9vbF92YWx1ZV9jaGFuZ2VkKHNl bGYsIHdpZGdldCwgcGFyYW0sIHN0YXRlKToKKyAgICAgICAgICMgVHJpZ2dlciBzcGVjaWZpYyBh Y3Rpb25zCisgICAgICAgICBpZiBwYXJhbVsic2V0dGluZyJdID09ICJkZWJ1Zy1tb2RlIjoKKyAg ICAgICAgICAgICAjIFVwZGF0ZSBkZWJ1ZyBzZXR0aW5nIG9mIHRpbWVsaW5lCistICAgICAgICAg ICAgbG9nLmluZm8oIlNldHRpbmcgZGVidWctbW9kZSB0byAlcyIgJSAoc3RhdGUgPT0gUXQuQ2hl Y2tlZCkpCisrICAgICAgICAgICAgbG9nLmluZm8oIlNldHRpbmcgZGVidWctbW9kZSB0byAlcyIs IHN0YXRlID09IFF0LkNoZWNrZWQpCisgICAgICAgICAgICAgZGVidWdfZW5hYmxlZCA9IChzdGF0 ZSA9PSBRdC5DaGVja2VkKQorIAorICAgICAgICAgICAgICMgRW5hYmxlIC8gRGlzYWJsZSBsb2dn ZXIKK0BAIC01MjgsNyArNTI4LDkgQEAgZGVmIHRleHRfdmFsdWVfY2hhbmdlZChzZWxmLCB3aWRn ZXQsIHBhcmFtLCB2YWx1ZT1Ob25lKToKKyAgICAgICAgIGlmIHBhcmFtLmdldCgiY2F0ZWdvcnki KSA9PSAiS2V5Ym9hcmQiOgorICAgICAgICAgICAgIHByZXZpb3VzX3ZhbHVlID0gdmFsdWUKKyAg ICAgICAgICAgICB2YWx1ZSA9IFFLZXlTZXF1ZW5jZSh2YWx1ZSkudG9TdHJpbmcoKQorLSAgICAg ICAgICAgIGxvZy5pbmZvKCJQYXJzaW5nIGtleWJvYXJkIG1hcHBpbmcgdmlhIFFLZXlTZXF1ZW5j ZSBmcm9tICVzIHRvICVzIiAlIChwcmV2aW91c192YWx1ZSwgdmFsdWUpKQorKyAgICAgICAgICAg IGxvZy5pbmZvKAorKyAgICAgICAgICAgICAgICAiUGFyc2luZyBrZXlib2FyZCBtYXBwaW5nIHZp YSBRS2V5U2VxdWVuY2UgZnJvbSAlcyB0byAlcyIsCisrICAgICAgICAgICAgICAgIHByZXZpb3Vz X3ZhbHVlLCB2YWx1ZSkKKyAKKyAgICAgICAgICMgU2F2ZSBzZXR0aW5nCisgICAgICAgICBzZWxm LnMuc2V0KHBhcmFtWyJzZXR0aW5nIl0sIHZhbHVlKQorQEAgLTYwNCwxMSArNjA2LDEzIEBAIGRl ZiB0ZXN0SGFyZHdhcmVEZWNvZGUoc2VsZiwgYWxsX2RlY29kZXJzLCBkZWNvZGVyLCBkZWNvZGVy X2NhcmQ9IjAiKToKKyAgICAgICAgICAgICBpZiByZWFkZXIuR2V0RnJhbWUoMCkuQ2hlY2tQaXhl bCgwLCAwLCAyLCAxMzMsIDI1NSwgMjU1LCA1KToKKyAgICAgICAgICAgICAgICAgaXNfc3VwcG9y dGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgICBzZWxmLmhhcmR3YXJlX3Rlc3RzX2NhcmRzW2Rl Y29kZXJfY2FyZF0uYXBwZW5kKGludChkZWNvZGVyKSkKKy0gICAgICAgICAgICAgICAgbG9nLmRl YnVnKCJTdWNjZXNzZnVsIGhhcmR3YXJlIGRlY29kZXIhICVzICglcy0lcykiICUgKGRlY29kZXJf bmFtZSwgZGVjb2RlciwgZGVjb2Rlcl9jYXJkKSkKKysgICAgICAgICAgICAgICAgbG9nLmRlYnVn KAorKyAgICAgICAgICAgICAgICAgICAgIlN1Y2Nlc3NmdWwgaGFyZHdhcmUgZGVjb2RlciEgJXMg KCVzLSVzKSIsCisrICAgICAgICAgICAgICAgICAgICBkZWNvZGVyX25hbWUsIGRlY29kZXIsIGRl Y29kZXJfY2FyZCkKKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICBsb2cuZGVi dWcoCisgICAgICAgICAgICAgICAgICAgICAiQ2hlY2tQaXhlbCBmYWlsZWQgdGVzdGluZyBoYXJk d2FyZSBkZWNvZGluZyAoaS5lLiB3cm9uZyBjb2xvciBmb3VuZCk6ICVzICglcy0lcykiLAorLSAg ICAgICAgICAgICAgICAgICAgKGRlY29kZXJfbmFtZSwgZGVjb2RlciwgZGVjb2Rlcl9jYXJkKSkK KysgICAgICAgICAgICAgICAgICAgIGRlY29kZXJfbmFtZSwgZGVjb2RlciwgZGVjb2Rlcl9jYXJk KQorIAorICAgICAgICAgICAgIHJlYWRlci5DbG9zZSgpCisgICAgICAgICAgICAgY2xpcC5DbG9z ZSgpCitAQCAtNjE2LDcgKzYyMCw3IEBAIGRlZiB0ZXN0SGFyZHdhcmVEZWNvZGUoc2VsZiwgYWxs X2RlY29kZXJzLCBkZWNvZGVyLCBkZWNvZGVyX2NhcmQ9IjAiKToKKyAgICAgICAgIGV4Y2VwdCBF eGNlcHRpb246CisgICAgICAgICAgICAgbG9nLmRlYnVnKAorICAgICAgICAgICAgICAgICAiRXhj ZXB0aW9uIHRyeWluZyB0byB0ZXN0IGhhcmR3YXJlIGRlY29kaW5nICh0aGlzIGlzIGV4cGVjdGVk KTogJXMgKCVzLSVzKSIsCistICAgICAgICAgICAgICAgIChkZWNvZGVyX25hbWUsIGRlY29kZXIs IGRlY29kZXJfY2FyZCkpCisrICAgICAgICAgICAgICAgIGRlY29kZXJfbmFtZSwgZGVjb2Rlciwg ZGVjb2Rlcl9jYXJkKQorIAorICAgICAgICAgIyBSZXN1bWUgY3VycmVudCBzZXR0aW5ncworICAg ICAgICAgb3BlbnNob3QuU2V0dGluZ3MuSW5zdGFuY2UoKS5IQVJEV0FSRV9ERUNPREVSID0gY3Vy cmVudF9kZWNvZGVyCisKK0Zyb20gMWIxNDg5NmQyMDU3ZGY4MGIwYjIwYmEyMmUxMzgwYmE5ZTli ZDZlNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ICJGZVJEIChGcmFuayBEYW5hKSIg PGZlcmRueWNAZ21haWwuY29tPgorRGF0ZTogVGh1LCA0IE5vdiAyMDIxIDIxOjAxOjM5IC0wNDAw CitTdWJqZWN0OiBbUEFUQ0ggMi82XSBFbmZvcmNlIGludGVnZXIgZnVuY3Rpb24gYXJndW1lbnRz CisKKy0tLQorIHNyYy93aW5kb3dzL2V4cG9ydC5weSAgICAgICAgICAgICAgICAgICAgIHwgICA4 ICstCisgc3JjL3dpbmRvd3MvbW9kZWxzL3Byb3BlcnRpZXNfbW9kZWwucHkgICAgfCAgMzQgKy0K KyBzcmMvd2luZG93cy9wcm9jZXNzX2VmZmVjdC5weSAgICAgICAgICAgICB8ICAgMiArLQorIHNy Yy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weSAgICAgICAgICAgICAgIHwgNTk2ICsrKysrKysrKysr KysrLS0tLS0tLS0KKyBzcmMvd2luZG93cy92aWV3cy9lZmZlY3RzX2xpc3R2aWV3LnB5ICAgICB8 ICAgNyArLQorIHNyYy93aW5kb3dzL3ZpZXdzL2VmZmVjdHNfdHJlZXZpZXcucHkgICAgIHwgICA3 ICstCisgc3JjL3dpbmRvd3Mvdmlld3MvZW1vamlzX2xpc3R2aWV3LnB5ICAgICAgfCAgIDcgKy0K KyBzcmMvd2luZG93cy92aWV3cy9maWxlc19saXN0dmlldy5weSAgICAgICB8ICAgNyArLQorIHNy Yy93aW5kb3dzL3ZpZXdzL2ZpbGVzX3RyZWV2aWV3LnB5ICAgICAgIHwgICA3ICstCisgc3JjL3dp bmRvd3Mvdmlld3MvcHJvcGVydGllc190YWJsZXZpZXcucHkgfCAgMzggKy0KKyBzcmMvd2luZG93 cy92aWV3cy90cmFuc2l0aW9uc19saXN0dmlldy5weSB8ICAgNyArLQorIHNyYy93aW5kb3dzL3Zp ZXdzL3RyYW5zaXRpb25zX3RyZWV2aWV3LnB5IHwgICA3ICstCisgc3JjL3dpbmRvd3Mvdmlld3Mv dHV0b3JpYWwucHkgICAgICAgICAgICAgfCAgMTQgKy0KKyAxMyBmaWxlcyBjaGFuZ2VkLCA0NzYg aW5zZXJ0aW9ucygrKSwgMjY1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3dpbmRv d3MvZXhwb3J0LnB5IGIvc3JjL3dpbmRvd3MvZXhwb3J0LnB5CitpbmRleCBhNjI0ZWIyZTIuLjY0 NjFhZmIyNSAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dzL2V4cG9ydC5weQorKysrIGIvc3JjL3dp bmRvd3MvZXhwb3J0LnB5CitAQCAtMjkwLDcgKzI5MCw3IEBAIGRlZiB1cGRhdGVQcm9ncmVzc0Jh cihzZWxmLCB0aXRsZV9tZXNzYWdlLCBzdGFydF9mcmFtZSwgZW5kX2ZyYW1lLCBjdXJyZW50X2Zy YW1lCisgICAgICAgICAgICAgcGVyY2VudGFnZV9zdHJpbmcgPSBmb3JtYXRfb2ZfcHJvZ3Jlc3Nf c3RyaW5nICUgKCggY3VycmVudF9mcmFtZSAtIHN0YXJ0X2ZyYW1lICkgLyAoIGVuZF9mcmFtZSAt IHN0YXJ0X2ZyYW1lICkgKiAxMDApCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHBlcmNl bnRhZ2Vfc3RyaW5nID0gIjEwMCUiCistICAgICAgICBzZWxmLnByb2dyZXNzRXhwb3J0VmlkZW8u c2V0VmFsdWUoY3VycmVudF9mcmFtZSkKKysgICAgICAgIHNlbGYucHJvZ3Jlc3NFeHBvcnRWaWRl by5zZXRWYWx1ZShpbnQoY3VycmVudF9mcmFtZSkpCisgICAgICAgICBzZWxmLnByb2dyZXNzRXhw b3J0VmlkZW8uc2V0Rm9ybWF0KHBlcmNlbnRhZ2Vfc3RyaW5nKQorICAgICAgICAgc2VsZi5zZXRX aW5kb3dUaXRsZSgiJXMgJXMiICUgKHBlcmNlbnRhZ2Vfc3RyaW5nLCB0aXRsZV9tZXNzYWdlKSkK KyAKK0BAIC02OTAsOSArNjkwLDkgQEAgZGVmIHRpdGxlc3RyaW5nKHNlYywgZnBzLCBtZXNzKToK KyAgICAgICAgIGZwc19lbmNvZGUgPSAwCisgCisgICAgICAgICAjIEluaXQgcHJvZ3Jlc3MgYmFy CistICAgICAgICBzZWxmLnByb2dyZXNzRXhwb3J0VmlkZW8uc2V0TWluaW11bShzZWxmLnR4dFN0 YXJ0RnJhbWUudmFsdWUoKSkKKy0gICAgICAgIHNlbGYucHJvZ3Jlc3NFeHBvcnRWaWRlby5zZXRN YXhpbXVtKHNlbGYudHh0RW5kRnJhbWUudmFsdWUoKSkKKy0gICAgICAgIHNlbGYucHJvZ3Jlc3NF eHBvcnRWaWRlby5zZXRWYWx1ZShzZWxmLnR4dFN0YXJ0RnJhbWUudmFsdWUoKSkKKysgICAgICAg IHNlbGYucHJvZ3Jlc3NFeHBvcnRWaWRlby5zZXRNaW5pbXVtKGludChzZWxmLnR4dFN0YXJ0RnJh bWUudmFsdWUoKSkpCisrICAgICAgICBzZWxmLnByb2dyZXNzRXhwb3J0VmlkZW8uc2V0TWF4aW11 bShpbnQoc2VsZi50eHRFbmRGcmFtZS52YWx1ZSgpKSkKKysgICAgICAgIHNlbGYucHJvZ3Jlc3NF eHBvcnRWaWRlby5zZXRWYWx1ZShpbnQoc2VsZi50eHRTdGFydEZyYW1lLnZhbHVlKCkpKQorIAor ICAgICAgICAgIyBQcm9tcHQgZXJyb3IgbWVzc2FnZQorICAgICAgICAgaWYgc2VsZi50eHRTdGFy dEZyYW1lLnZhbHVlKCkgPT0gc2VsZi50eHRFbmRGcmFtZS52YWx1ZSgpOgorZGlmZiAtLWdpdCBh L3NyYy93aW5kb3dzL21vZGVscy9wcm9wZXJ0aWVzX21vZGVsLnB5IGIvc3JjL3dpbmRvd3MvbW9k ZWxzL3Byb3BlcnRpZXNfbW9kZWwucHkKK2luZGV4IGMzMjM2ZWQ4NC4uNDA4OTdmNjQyIDEwMDY0 NAorLS0tIGEvc3JjL3dpbmRvd3MvbW9kZWxzL3Byb3BlcnRpZXNfbW9kZWwucHkKKysrKyBiL3Ny Yy93aW5kb3dzL21vZGVscy9wcm9wZXJ0aWVzX21vZGVsLnB5CitAQCAtNDE0LDggKzQxNCw4IEBA IGRlZiB2YWx1ZV91cGRhdGVkKHNlbGYsIGl0ZW0sIGludGVycG9sYXRpb249LTEsIHZhbHVlPU5v bmUsIGludGVycG9sYXRpb25fZGV0YWlsCisgICAgICAgICAgICAgbmV3X3ZhbHVlID0gTm9uZQor IAorICAgICAgICAgbG9nLmluZm8oCistICAgICAgICAgICAgIiVzIGZvciAlcyBjaGFuZ2VkIHRv ICVzIGF0IGZyYW1lICVzIHdpdGggaW50ZXJwb2xhdGlvbjogJXMgYXQgY2xvc2VzdCB4OiAlcyIK Ky0gICAgICAgICAgICAlIChwcm9wZXJ0eV9rZXksIGNsaXBfaWQsIG5ld192YWx1ZSwgc2VsZi5m cmFtZV9udW1iZXIsIGludGVycG9sYXRpb24sIGNsb3Nlc3RfcG9pbnRfeCkpCisrICAgICAgICAg ICAgIiVzIGZvciAlcyBjaGFuZ2VkIHRvICVzIGF0IGZyYW1lICVzIHdpdGggaW50ZXJwb2xhdGlv bjogJXMgYXQgY2xvc2VzdCB4OiAlcyIsCisrICAgICAgICAgICAgcHJvcGVydHlfa2V5LCBjbGlw X2lkLCBuZXdfdmFsdWUsIHNlbGYuZnJhbWVfbnVtYmVyLCBpbnRlcnBvbGF0aW9uLCBjbG9zZXN0 X3BvaW50X3gpCisgCisgICAgICAgICAjIEZpbmQgdGhpcyBjbGlwCisgICAgICAgICBjID0gTm9u ZQorQEAgLTUxOCwzNSArNTE4LDM1IEBAIGRlZiB2YWx1ZV91cGRhdGVkKHNlbGYsIGl0ZW0sIGlu dGVycG9sYXRpb249LTEsIHZhbHVlPU5vbmUsIGludGVycG9sYXRpb25fZGV0YWlsCisgICAgICAg ICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcF9kYXRhW3By b3BlcnR5X2tleV0gPSBpbnQobmV3X3ZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgZXhjZXB0 IEV4Y2VwdGlvbiBhcyBleDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52 YWxpZCBJbnRlZ2VyIHZhbHVlIHBhc3NlZCB0byBwcm9wZXJ0eTogJXMnICUgZXgpCisrICAgICAg ICAgICAgICAgICAgICAgICAgbG9nLndhcm4oJ0ludmFsaWQgSW50ZWdlciB2YWx1ZSBwYXNzZWQg dG8gcHJvcGVydHknLCBleGNfaW5mbz0xKQorIAorICAgICAgICAgICAgICAgICBlbGlmIHByb3Bl cnR5X3R5cGUgPT0gImZsb2F0IjoKKyAgICAgICAgICAgICAgICAgICAgIGNsaXBfdXBkYXRlZCA9 IFRydWUKKyAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAg ICBjbGlwX2RhdGFbcHJvcGVydHlfa2V5XSA9IGZsb2F0KG5ld192YWx1ZSkKKyAgICAgICAgICAg ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXg6CistICAgICAgICAgICAgICAgICAgICAg ICAgbG9nLndhcm4oJ0ludmFsaWQgRmxvYXQgdmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5OiAlcycg JSBleCkKKysgICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52YWxpZCBGbG9hdCB2 YWx1ZSBwYXNzZWQgdG8gcHJvcGVydHknLCBleGNfaW5mbz0xKQorIAorICAgICAgICAgICAgICAg ICBlbGlmIHByb3BlcnR5X3R5cGUgPT0gImJvb2wiOgorICAgICAgICAgICAgICAgICAgICAgY2xp cF91cGRhdGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg ICAgICAgICAgICAgIGNsaXBfZGF0YVtwcm9wZXJ0eV9rZXldID0gYm9vbChuZXdfdmFsdWUpCisg ICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4OgorLSAgICAgICAgICAg ICAgICAgICAgICAgIGxvZy53YXJuKCdJbnZhbGlkIEJvb2xlYW4gdmFsdWUgcGFzc2VkIHRvIHBy b3BlcnR5OiAlcycgJSBleCkKKysgICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52 YWxpZCBCb29sZWFuIHZhbHVlIHBhc3NlZCB0byBwcm9wZXJ0eScsIGV4Y19pbmZvPTEpCisgCisg ICAgICAgICAgICAgICAgIGVsaWYgcHJvcGVydHlfdHlwZSA9PSAic3RyaW5nIjoKKyAgICAgICAg ICAgICAgICAgICAgIGNsaXBfdXBkYXRlZCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgIHRy eToKKyAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwX2RhdGFbcHJvcGVydHlfa2V5XSA9IHN0 cihuZXdfdmFsdWUpCistICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4 OgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxvZy53YXJuKCdJbnZhbGlkIFN0cmluZyB2YWx1 ZSBwYXNzZWQgdG8gcHJvcGVydHk6ICVzJyAlIGV4KQorKyAgICAgICAgICAgICAgICAgICAgZXhj ZXB0IEV4Y2VwdGlvbjoKKysgICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52YWxp ZCBTdHJpbmcgdmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5JywgZXhjX2luZm89MSkKKyAKKyAgICAg ICAgICAgICAgICAgZWxpZiBwcm9wZXJ0eV90eXBlIGluIFsiZm9udCIsICJjYXB0aW9uIl06Cisg ICAgICAgICAgICAgICAgICAgICBjbGlwX3VwZGF0ZWQgPSBUcnVlCisgICAgICAgICAgICAgICAg ICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcF9kYXRhW3Byb3BlcnR5X2tl eV0gPSBzdHIobmV3X3ZhbHVlKQorLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv biBhcyBleDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52YWxpZCBGb250 L0NhcHRpb24gdmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5OiAlcycgJSBleCkKKysgICAgICAgICAg ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisrICAgICAgICAgICAgICAgICAgICAgICAgbG9n Lndhcm4oJ0ludmFsaWQgRm9udC9DYXB0aW9uIHZhbHVlIHBhc3NlZCB0byBwcm9wZXJ0eScsIGV4 Y19pbmZvPTEpCisgCisgICAgICAgICAgICAgICAgIGVsaWYgcHJvcGVydHlfdHlwZSA9PSAicmVh ZGVyIjoKKyAgICAgICAgICAgICAgICAgICAgICMgVHJhbnNpdGlvbgorQEAgLTU1Nyw4ICs1NTcs OCBAQCBkZWYgdmFsdWVfdXBkYXRlZChzZWxmLCBpdGVtLCBpbnRlcnBvbGF0aW9uPS0xLCB2YWx1 ZT1Ob25lLCBpbnRlcnBvbGF0aW9uX2RldGFpbAorICAgICAgICAgICAgICAgICAgICAgICAgIGNs aXBfZGF0YVtwcm9wZXJ0eV9rZXldID0ganNvbi5sb2FkcyhjbGlwX29iamVjdC5SZWFkZXIoKS5K c29uKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcF9vYmplY3QuQ2xvc2UoKQorICAg ICAgICAgICAgICAgICAgICAgICAgIGNsaXBfb2JqZWN0ID0gTm9uZQorLSAgICAgICAgICAgICAg ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBs b2cud2FybignSW52YWxpZCBSZWFkZXIgdmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5OiAlcyAoJXMp JyAlICh2YWx1ZSwgZXgpKQorKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoK KysgICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52YWxpZCBSZWFkZXIgdmFsdWUg cGFzc2VkIHRvIHByb3BlcnR5OiAlcyAoJXMpJywgdmFsdWUsIGV4Y19pbmZvPTEpCisgCisgICAg ICAgICAgICAgIyBSZWR1Y2UgIyBvZiBjbGlwIHByb3BlcnRpZXMgd2UgYXJlIHNhdmluZyAocGVy Zm9ybWFuY2UgYm9vc3QpCisgICAgICAgICAgICAgY2xpcF9kYXRhID0ge3Byb3BlcnR5X2tleTog Y2xpcF9kYXRhLmdldChwcm9wZXJ0eV9rZXkpfQorQEAgLTY4OCw5ICs2ODgsOSBAQCBkZWYgc2V0 X3Byb3BlcnR5KHNlbGYsIHByb3BlcnR5LCBmaWx0ZXIsIGMsIGl0ZW1fdHlwZSwgb2JqZWN0X2lk PU5vbmUpOgorIAorICAgICAgICAgICAgIGlmIHR5cGUgPT0gImNvbG9yIjoKKyAgICAgICAgICAg ICAgICAgIyBDb2xvciBuZWVkcyB0byBiZSBoYW5kbGVkIHNwZWNpYWwKKy0gICAgICAgICAgICAg ICAgcmVkID0gcHJvcGVydHlbMV1bInJlZCJdWyJ2YWx1ZSJdCistICAgICAgICAgICAgICAgIGdy ZWVuID0gcHJvcGVydHlbMV1bImdyZWVuIl1bInZhbHVlIl0KKy0gICAgICAgICAgICAgICAgYmx1 ZSA9IHByb3BlcnR5WzFdWyJibHVlIl1bInZhbHVlIl0KKysgICAgICAgICAgICAgICAgcmVkID0g aW50KHByb3BlcnR5WzFdWyJyZWQiXVsidmFsdWUiXSkKKysgICAgICAgICAgICAgICAgZ3JlZW4g PSBpbnQocHJvcGVydHlbMV1bImdyZWVuIl1bInZhbHVlIl0pCisrICAgICAgICAgICAgICAgIGJs dWUgPSBpbnQocHJvcGVydHlbMV1bImJsdWUiXVsidmFsdWUiXSkKKyAgICAgICAgICAgICAgICAg Y29sLnNldEJhY2tncm91bmQoUUNvbG9yKHJlZCwgZ3JlZW4sIGJsdWUpKQorIAorICAgICAgICAg ICAgIGlmIHJlYWRvbmx5IG9yIHR5cGUgaW4gWyJjb2xvciIsICJmb250IiwgImNhcHRpb24iXSBv ciBjaG9pY2VzIG9yIGxhYmVsID09ICJUcmFjayI6CitAQCAtNzg5LDkgKzc4OSw5IEBAIGRlZiBz ZXRfcHJvcGVydHkoc2VsZiwgcHJvcGVydHksIGZpbHRlciwgYywgaXRlbV90eXBlLCBvYmplY3Rf aWQ9Tm9uZSk6CisgCisgICAgICAgICAgICAgaWYgdHlwZSA9PSAiY29sb3IiOgorICAgICAgICAg ICAgICAgICAjIFVwZGF0ZSB0aGUgY29sb3IgYmFzZWQgb24gdGhlIGNvbG9yIGN1cnZlcworLSAg ICAgICAgICAgICAgICByZWQgPSBwcm9wZXJ0eVsxXVsicmVkIl1bInZhbHVlIl0KKy0gICAgICAg ICAgICAgICAgZ3JlZW4gPSBwcm9wZXJ0eVsxXVsiZ3JlZW4iXVsidmFsdWUiXQorLSAgICAgICAg ICAgICAgICBibHVlID0gcHJvcGVydHlbMV1bImJsdWUiXVsidmFsdWUiXQorKyAgICAgICAgICAg ICAgICByZWQgPSBpbnQocHJvcGVydHlbMV1bInJlZCJdWyJ2YWx1ZSJdKQorKyAgICAgICAgICAg ICAgICBncmVlbiA9IGludChwcm9wZXJ0eVsxXVsiZ3JlZW4iXVsidmFsdWUiXSkKKysgICAgICAg ICAgICAgICAgYmx1ZSA9IGludChwcm9wZXJ0eVsxXVsiYmx1ZSJdWyJ2YWx1ZSJdKQorICAgICAg ICAgICAgICAgICBjb2wuc2V0QmFja2dyb3VuZChRQ29sb3IocmVkLCBncmVlbiwgYmx1ZSkpCisg CisgICAgICAgICAgICAgIyBVcGRhdGUgaGVscGVyIGRpY3Rpb25hcnkKK2RpZmYgLS1naXQgYS9z cmMvd2luZG93cy9wcm9jZXNzX2VmZmVjdC5weSBiL3NyYy93aW5kb3dzL3Byb2Nlc3NfZWZmZWN0 LnB5CitpbmRleCBlNGYzMTIwYzAuLmVhMGMyOTQ2ZSAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dz L3Byb2Nlc3NfZWZmZWN0LnB5CisrKysgYi9zcmMvd2luZG93cy9wcm9jZXNzX2VmZmVjdC5weQor QEAgLTM1Miw3ICszNTIsNyBAQCBkZWYgYWNjZXB0KHNlbGYpOgorICAgICAgICAgd2hpbGUobm90 IHByb2Nlc3NpbmcuSXNEb25lKCkgKToKKyAgICAgICAgICAgICAjIHVwZGF0ZSBwcm9ncmVzc2Jh cgorICAgICAgICAgICAgIHByb2dyZXNzaW9uU3RhdHVzID0gcHJvY2Vzc2luZy5HZXRQcm9ncmVz cygpCistICAgICAgICAgICAgc2VsZi5wcm9ncmVzc0Jhci5zZXRWYWx1ZShwcm9ncmVzc2lvblN0 YXR1cykKKysgICAgICAgICAgICBzZWxmLnByb2dyZXNzQmFyLnNldFZhbHVlKGludChwcm9ncmVz c2lvblN0YXR1cykpCisgICAgICAgICAgICAgdGltZS5zbGVlcCgwLjAxKQorIAorICAgICAgICAg ICAgICMgUHJvY2VzcyBhbnkgcXVldWVkIGV2ZW50cworZGlmZiAtLWdpdCBhL3NyYy93aW5kb3dz L3ZpZGVvX3dpZGdldC5weSBiL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weQoraW5kZXggZDVj ODlhMjA0Li5mMzM2OTZjNWMgMTAwNjQ0CistLS0gYS9zcmMvd2luZG93cy92aWRlb193aWRnZXQu cHkKKysrKyBiL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weQorQEAgLTI1LDggKzI1LDExIEBA CisgIGFsb25nIHdpdGggT3BlblNob3QgTGlicmFyeS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKyAgIiIiCisgCisraW1wb3J0IGpzb24KKysKKyBmcm9tIFB5 UXQ1LlF0Q29yZSBpbXBvcnQgKAorLSAgICBRdCwgUUNvcmVBcHBsaWNhdGlvbiwgUVBvaW50Riwg UVBvaW50LCBRUmVjdCwgUVJlY3RGLCBRU2l6ZSwgUU11dGV4LCBRVGltZXIKKysgICAgUXQsIFFD b3JlQXBwbGljYXRpb24sIFFNdXRleCwgUVRpbWVyLAorKyAgICBRUG9pbnQsIFFQb2ludEYsIFFT aXplLCBRU2l6ZUYsIFFSZWN0LCBRUmVjdEYsCisgKQorIGZyb20gUHlRdDUuUXRHdWkgaW1wb3J0 ICgKKyAgICAgUVRyYW5zZm9ybSwgUVBhaW50ZXIsIFFJY29uLCBRQ29sb3IsIFFQZW4sIFFCcnVz aCwgUUN1cnNvciwgUUltYWdlLCBRUmVnaW9uCitAQCAtNDEsOCArNDQsNiBAQAorIGZyb20gY2xh c3Nlcy5hcHAgaW1wb3J0IGdldF9hcHAKKyBmcm9tIGNsYXNzZXMucXVlcnkgaW1wb3J0IENsaXAs IEVmZmVjdAorIAorLWltcG9ydCBqc29uCistCisgCisgY2xhc3MgVmlkZW9XaWRnZXQoUVdpZGdl dCwgdXBkYXRlcy5VcGRhdGVJbnRlcmZhY2UpOgorICAgICAiIiIgQSBRV2lkZ2V0IHVzZWQgb24g dGhlIHZpZGVvIGRpc3BsYXkgd2lkZ2V0ICIiIgorQEAgLTg2LDM3ICs4Nyw2OCBAQCBkZWYgY2hh bmdlZChzZWxmLCBhY3Rpb24pOgorICAgICAgICAgICAgICAgICAgICAgc2VsZi5waXhlbF9yYXRp by5Ub0Zsb2F0KCkpCisgCisgCistICAgIGRlZiBkcmF3VHJhbnNmb3JtSGFuZGxlcihzZWxmLCBw YWludGVyLCBzeCwgc3ksIHNvdXJjZV93aWR0aCwgc291cmNlX2hlaWdodCwgb3JpZ2luX3gsIG9y aWdpbl95LAorLSAgICAgeDE9Tm9uZSwgeTE9Tm9uZSwgeDI9Tm9uZSwgeTI9Tm9uZSwgcm90YXRp b24gPSBOb25lKToKKysgICAgZGVmIGRyYXdUcmFuc2Zvcm1IYW5kbGVyKAorKyAgICAgICAgc2Vs ZiwgcGFpbnRlciwgc3gsIHN5LCBzb3VyY2Vfd2lkdGgsIHNvdXJjZV9oZWlnaHQsCisrICAgICAg ICBvcmlnaW5feCwgb3JpZ2luX3ksCisrICAgICAgICB4MT1Ob25lLCB5MT1Ob25lLCB4Mj1Ob25l LCB5Mj1Ob25lLCByb3RhdGlvbiA9IE5vbmUKKysgICAgKToKKyAgICAgICAgICMgRHJhdyB0cmFu c2Zvcm0gY29ybmVycyBhbmQgY2VudGVyIG9yaWdpbiBjaXJjbGUKKyAgICAgICAgICMgQ29ybmVy IHNpemUKKyAgICAgICAgIGNzID0gc2VsZi5jcworICAgICAgICAgb3MgPSAxMi4wCisgCisrICAg ICAgICBjc3ggPSBjcyAvIHN4CisrICAgICAgICBjc3kgPSBjcyAvIHN5CisrCisgICAgICAgICAj IFJvdGF0ZSB0aGUgdHJhbnNmb3JtIGhhbmRsZXIKKyAgICAgICAgIGlmIHJvdGF0aW9uOgorLSAg ICAgICAgICAgIGJib3hfY2VudGVyX3ggPSAoKCh4MSpzb3VyY2Vfd2lkdGggKyB4Mipzb3VyY2Vf d2lkdGgpIC8gMi4wKSApIC0gKCAob3MvMikgL3N4KQorLSAgICAgICAgICAgIGJib3hfY2VudGVy X3kgPSAoKCh5MSpzb3VyY2VfaGVpZ2h0ICsgeTIqc291cmNlX2hlaWdodCkgLyAyLjApICkgLSAo IChvcy8yKSAvc3kpCisrICAgICAgICAgICAgYmJveF9jZW50ZXJfeCA9ICgoeDEqc291cmNlX3dp ZHRoICsgeDIqc291cmNlX3dpZHRoKSAvIDIuMCkgLSAoKG9zIC8gMikgLyBzeCkKKysgICAgICAg ICAgICBiYm94X2NlbnRlcl95ID0gKCh5MSpzb3VyY2VfaGVpZ2h0ICsgeTIqc291cmNlX2hlaWdo dCkgLyAyLjApIC0gKChvcyAvIDIpIC8gc3kpCisgICAgICAgICAgICAgcGFpbnRlci50cmFuc2xh dGUoYmJveF9jZW50ZXJfeCwgYmJveF9jZW50ZXJfeSkKKyAgICAgICAgICAgICBwYWludGVyLnJv dGF0ZShyb3RhdGlvbikKKyAgICAgICAgICAgICBwYWludGVyLnRyYW5zbGF0ZSgtYmJveF9jZW50 ZXJfeCwgLWJib3hfY2VudGVyX3kpCisgCistICAgICAgICBpZih4MSBhbmQgeTEgYW5kIHgyIGFu ZCB5Mik6CisrICAgICAgICBpZiBhbGwoW3gxLCB5MSwgeDIsIHkyXSk6CisgICAgICAgICAgICAg IyBDYWxjdWxhdGUgYm91bmRzIG9mIGNsaXAKKy0gICAgICAgICAgICBzZWxmLmNsaXBCb3VuZHMg PSBRUmVjdEYoUVBvaW50Rih4MSpzb3VyY2Vfd2lkdGgsIHkxKnNvdXJjZV9oZWlnaHQpLCBRUG9p bnRGKHgyKnNvdXJjZV93aWR0aCwgeTIqc291cmNlX2hlaWdodCkpCisrICAgICAgICAgICAgc2Vs Zi5jbGlwQm91bmRzID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICBRUG9pbnRGKHgxICogc291 cmNlX3dpZHRoLCB5MSAqIHNvdXJjZV9oZWlnaHQpLAorKyAgICAgICAgICAgICAgICBRUG9pbnRG KHgyICogc291cmNlX3dpZHRoLCB5MiAqIHNvdXJjZV9oZWlnaHQpCisrICAgICAgICAgICAgKQor ICAgICAgICAgICAgICMgQ2FsY3VsYXRlIDQgY29ybmVycyBjb29yZGluYXRlcworLSAgICAgICAg ICAgIHNlbGYudG9wTGVmdEhhbmRsZSA9IFFSZWN0Rih4MSpzb3VyY2Vfd2lkdGggLShjcy9zeC8y LjApLCB5MSpzb3VyY2VfaGVpZ2h0LShjcy9zeS8yLjApLCBjcy9zeCwgY3Mvc3kpCistICAgICAg ICAgICAgc2VsZi50b3BSaWdodEhhbmRsZSA9IFFSZWN0Rih4Mipzb3VyY2Vfd2lkdGgtKGNzL3N4 LzIuMCksIHkxKnNvdXJjZV9oZWlnaHQtKGNzL3N5LzIuMCksIGNzL3N4LCBjcy9zeSkKKy0gICAg ICAgICAgICBzZWxmLmJvdHRvbUxlZnRIYW5kbGUgPSBRUmVjdEYoeDEqc291cmNlX3dpZHRoIC0o Y3Mvc3gvMi4wKSwgeTIqc291cmNlX2hlaWdodC0oY3Mvc3kvMi4wKSwgY3Mvc3gsIGNzL3N5KQor LSAgICAgICAgICAgIHNlbGYuYm90dG9tUmlnaHRIYW5kbGUgPSBRUmVjdEYoeDIqc291cmNlX3dp ZHRoLShjcy9zeC8yLjApLCB5Mipzb3VyY2VfaGVpZ2h0LShjcy9zeS8yLjApLCBjcy9zeCwgY3Mv c3kpCisrICAgICAgICAgICAgc2VsZi50b3BMZWZ0SGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAg ICAgICAgICB4MSAqIHNvdXJjZV93aWR0aCAtIChjc3ggLyAyLjApLAorKyAgICAgICAgICAgICAg ICB5MSAqIHNvdXJjZV9oZWlnaHQgLSAoY3N5IC8gMi4wKSwKKysgICAgICAgICAgICAgICAgY3N4 LAorKyAgICAgICAgICAgICAgICBjc3kpCisrICAgICAgICAgICAgc2VsZi50b3BSaWdodEhhbmRs ZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgeDIgKiBzb3VyY2Vfd2lkdGggLSAoY3N4IC8g Mi4wKSwKKysgICAgICAgICAgICAgICAgeTEgKiBzb3VyY2VfaGVpZ2h0IC0gKGNzeSAvIDIuMCks CisrICAgICAgICAgICAgICAgIGNzeCwKKysgICAgICAgICAgICAgICAgY3N5KQorKyAgICAgICAg ICAgIHNlbGYuYm90dG9tTGVmdEhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgeDEg KiBzb3VyY2Vfd2lkdGggLSAoY3N4IC8gMi4wKSwKKysgICAgICAgICAgICAgICAgeTIgKiBzb3Vy Y2VfaGVpZ2h0IC0gKGNzeSAvIDIuMCksCisrICAgICAgICAgICAgICAgIGNzeCwKKysgICAgICAg ICAgICAgICAgY3N5KQorKyAgICAgICAgICAgIHNlbGYuYm90dG9tUmlnaHRIYW5kbGUgPSBRUmVj dEYoCisrICAgICAgICAgICAgICAgIHgyICogc291cmNlX3dpZHRoIC0gKGNzeCAvIDIuMCksCisr ICAgICAgICAgICAgICAgIHkyICogc291cmNlX2hlaWdodCAtIChjc3kgLyAyLjApLAorKyAgICAg ICAgICAgICAgICBjc3gsCisrICAgICAgICAgICAgICAgIGNzeSkKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgIyBDYWxjdWxhdGUgYm91bmRzIG9mIGNsaXAKKy0gICAgICAgICAgICBzZWxm LmNsaXBCb3VuZHMgPSBRUmVjdEYoUVBvaW50RigwLjAsIDAuMCksIFFQb2ludEYoc291cmNlX3dp ZHRoLCBzb3VyY2VfaGVpZ2h0KSkKKysgICAgICAgICAgICBzZWxmLmNsaXBCb3VuZHMgPSBRUmVj dEYoCisrICAgICAgICAgICAgICAgIFFQb2ludEYoMC4wLCAwLjApLAorKyAgICAgICAgICAgICAg ICBRUG9pbnRGKHNvdXJjZV93aWR0aCwgc291cmNlX2hlaWdodCkpCisgICAgICAgICAgICAgIyBD YWxjdWxhdGUgNCBjb3JuZXJzIGNvb3JkaW5hdGVzCistICAgICAgICAgICAgc2VsZi50b3BMZWZ0 SGFuZGxlID0gUVJlY3RGKC1jcy9zeC8yLjAsIC1jcy9zeS8yLjAsIGNzL3N4LCBjcy9zeSkKKy0g ICAgICAgICAgICBzZWxmLnRvcFJpZ2h0SGFuZGxlID0gUVJlY3RGKHNvdXJjZV93aWR0aCAtIChj cy9zeCkgKyBjcy9zeC8yLjAsIC1jcy9zeS8yLjAsIGNzL3N4LCBjcy9zeSkKKy0gICAgICAgICAg ICBzZWxmLmJvdHRvbUxlZnRIYW5kbGUgPSBRUmVjdEYoLWNzL3N4LzIuMCwgc291cmNlX2hlaWdo dCAtIChjcy9zeSkgKyBjcy9zeS8yLjAsIGNzL3N4LCBjcy9zeSkKKy0gICAgICAgICAgICBzZWxm LmJvdHRvbVJpZ2h0SGFuZGxlID0gUVJlY3RGKHNvdXJjZV93aWR0aCAtIChjcy9zeCkgKyBjcy9z eC8yLjAsIHNvdXJjZV9oZWlnaHQgLSAoY3Mvc3kpICsgY3Mvc3kvMi4wLCBjcy9zeCwgY3Mvc3kp CisrICAgICAgICAgICAgc2VsZi50b3BMZWZ0SGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAg ICAgICAtY3N4IC8gMi4wLCAtY3N5IC8gMi4wLCBjc3gsIGNzeSkKKysgICAgICAgICAgICBzZWxm LnRvcFJpZ2h0SGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICBzb3VyY2Vfd2lkdGgg LSBjc3ggLyAyLjAsIC1jc3kgLyAyLjAsIGNzeCwgY3N5KQorKyAgICAgICAgICAgIHNlbGYuYm90 dG9tTGVmdEhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgLWNzeCAvIDIuMCwgc291 cmNlX2hlaWdodCAtIGNzeSAvIDIuMCwgY3N4LCBjc3kpCisrICAgICAgICAgICAgc2VsZi5ib3R0 b21SaWdodEhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgc291cmNlX3dpZHRoIC0g Y3N4IC8gMi4wLCBzb3VyY2VfaGVpZ2h0IC0gY3N5IC8gMi4wLCBjc3gsIGNzeSkKKyAKKyAgICAg ICAgICMgRHJhdyA0IGNvcm5lcnMKKyAgICAgICAgIHBlbiA9IFFQZW4oUUJydXNoKFFDb2xvcigi IzUzYTBlZCIpKSwgMS41KQorQEAgLTEyNyw0NyArMTU5LDExMCBAQCBkZWYgZHJhd1RyYW5zZm9y bUhhbmRsZXIoc2VsZiwgcGFpbnRlciwgc3gsIHN5LCBzb3VyY2Vfd2lkdGgsIHNvdXJjZV9oZWln aHQsIG9yaQorICAgICAgICAgcGFpbnRlci5kcmF3UmVjdChzZWxmLmJvdHRvbUxlZnRIYW5kbGUp CisgICAgICAgICBwYWludGVyLmRyYXdSZWN0KHNlbGYuYm90dG9tUmlnaHRIYW5kbGUpCisgCist ICAgICAgICBpZih4MSBhbmQgeTEgYW5kIHgyIGFuZCB5Mik6CisrICAgICAgICBpZiBhbGwoW3gx LCB5MSwgeDIsIHkyXSk6CisgICAgICAgICAgICAgIyBDYWxjdWxhdGUgNCBzaWRlIGNvb3JkaW5h dGVzCistICAgICAgICAgICAgc2VsZi50b3BIYW5kbGUgPSBRUmVjdEYoKCh4MSpzb3VyY2Vfd2lk dGgreDIqc291cmNlX3dpZHRoKSAvIDIuMCkgLSAoY3Mvc3gvMi4wKSwgKHkxKnNvdXJjZV9oZWln aHQpLWNzL3N5LzIuMCwgY3Mvc3gsIGNzL3N5KQorLSAgICAgICAgICAgIHNlbGYuYm90dG9tSGFu ZGxlID0gUVJlY3RGKCgoeDEqc291cmNlX3dpZHRoK3gyKnNvdXJjZV93aWR0aCkgLyAyLjApIC0g KGNzL3N4LzIuMCksICh5Mipzb3VyY2VfaGVpZ2h0KS0oIGNzL3N5LzIuMCksIGNzL3N4LCBjcy9z eSkKKy0gICAgICAgICAgICBzZWxmLmxlZnRIYW5kbGUgPSBRUmVjdEYoKHgxKnNvdXJjZV93aWR0 aCktKGNzL3N4LzIuMCksICgoeTEqc291cmNlX2hlaWdodCt5Mipzb3VyY2VfaGVpZ2h0KSAvIDIu MCkgLSAoY3Mvc3kvMi4wKSwgY3Mvc3gsIGNzL3N5KQorLSAgICAgICAgICAgIHNlbGYucmlnaHRI YW5kbGUgPSBRUmVjdEYoKHgyKnNvdXJjZV93aWR0aCkgLSAoY3Mvc3gpICsgY3Mvc3gvMi4wLCAo KHkxKnNvdXJjZV9oZWlnaHQreTIqc291cmNlX2hlaWdodCkgLyAyLjApIC0gKGNzL3N5LzIuMCks IGNzL3N4LCBjcy9zeSkKKysgICAgICAgICAgICBzZWxmLnRvcEhhbmRsZSA9IFFSZWN0RigKKysg ICAgICAgICAgICAgICAgKCh4MSArIHgyKSAqIHNvdXJjZV93aWR0aCAtIGNzeCkgLyAyLjAsCisr ICAgICAgICAgICAgICAgICh5MSAqIHNvdXJjZV9oZWlnaHQpIC0gY3N5IC8gMi4wLAorKyAgICAg ICAgICAgICAgICBjc3gsCisrICAgICAgICAgICAgICAgIGNzeSkKKysgICAgICAgICAgICBzZWxm LmJvdHRvbUhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgKCh4MSArIHgyKSAqIHNv dXJjZV93aWR0aCAtIGNzeCkgLyAyLjAsCisrICAgICAgICAgICAgICAgICh5MiAqIHNvdXJjZV9o ZWlnaHQpIC0gY3N5IC8gMi4wLAorKyAgICAgICAgICAgICAgICBjc3gsCisrICAgICAgICAgICAg ICAgIGNzeSkKKysgICAgICAgICAgICBzZWxmLmxlZnRIYW5kbGUgPSBRUmVjdEYoCisrICAgICAg ICAgICAgICAgICh4MSAqIHNvdXJjZV93aWR0aCkgLSBjc3ggLyAyLjAsCisrICAgICAgICAgICAg ICAgICgoeTEgKyB5MikgKiBzb3VyY2VfaGVpZ2h0IC0gY3N5KSAvIDIuMCwKKysgICAgICAgICAg ICAgICAgY3N4LAorKyAgICAgICAgICAgICAgICBjc3kpCisrICAgICAgICAgICAgc2VsZi5yaWdo dEhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgKHgyICogc291cmNlX3dpZHRoKSAt IGNzeCAvIDIuMCwKKysgICAgICAgICAgICAgICAgKCh5MSArIHkyKSAqIHNvdXJjZV9oZWlnaHQg LSBjc3kpIC8gMi4wLAorKyAgICAgICAgICAgICAgICBjc3gsIGNzeSkKKyAKKyAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgIyBDYWxjdWxhdGUgNCBzaWRlIGNvb3JkaW5hdGVzCistICAgICAg ICAgICAgc2VsZi50b3BIYW5kbGUgPSBRUmVjdEYoKHNvdXJjZV93aWR0aCAvIDIuMCkgLSAoY3Mv c3gvMi4wKSwgLWNzL3N5LzIuMCwgY3Mvc3gsIGNzL3N5KQorLSAgICAgICAgICAgIHNlbGYuYm90 dG9tSGFuZGxlID0gUVJlY3RGKChzb3VyY2Vfd2lkdGggLyAyLjApIC0gKGNzL3N4LzIuMCksIHNv dXJjZV9oZWlnaHQgLSAoY3Mvc3kpICsgY3Mvc3kvMi4wLCBjcy9zeCwgY3Mvc3kpCistICAgICAg ICAgICAgc2VsZi5sZWZ0SGFuZGxlID0gUVJlY3RGKC1jcy9zeC8yLjAsIChzb3VyY2VfaGVpZ2h0 IC8gMi4wKSAtIChjcy9zeS8yLjApLCBjcy9zeCwgY3Mvc3kpCistICAgICAgICAgICAgc2VsZi5y aWdodEhhbmRsZSA9IFFSZWN0Rihzb3VyY2Vfd2lkdGggLSAoY3Mvc3gpICsgY3Mvc3gvMi4wLCAo c291cmNlX2hlaWdodCAvIDIuMCkgLSAoY3Mvc3kvMi4wKSwgY3Mvc3gsIGNzL3N5KQorKyAgICAg ICAgICAgIHNlbGYudG9wSGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICAoc291cmNl X3dpZHRoIC0gY3N4KSAvIDIuMCwKKysgICAgICAgICAgICAgICAgLWNzeSAvIDIuMCwKKysgICAg ICAgICAgICAgICAgY3N4LAorKyAgICAgICAgICAgICAgICBjc3kpCisrICAgICAgICAgICAgc2Vs Zi5ib3R0b21IYW5kbGUgPSBRUmVjdEYoCisrICAgICAgICAgICAgICAgIChzb3VyY2Vfd2lkdGgg LSBjc3gpIC8gMi4wLAorKyAgICAgICAgICAgICAgICBzb3VyY2VfaGVpZ2h0IC0gKGNzeSAvIDIu MCksCisrICAgICAgICAgICAgICAgIGNzeCwKKysgICAgICAgICAgICAgICAgY3N5KQorKyAgICAg ICAgICAgIHNlbGYubGVmdEhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAgICAgICAgLWNzeCAv IDIuMCwKKysgICAgICAgICAgICAgICAgKHNvdXJjZV9oZWlnaHQgLSBjc3kpIC8gMi4wLAorKyAg ICAgICAgICAgICAgICBjc3gsCisrICAgICAgICAgICAgICAgIGNzeSkKKysgICAgICAgICAgICBz ZWxmLnJpZ2h0SGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAgICAgICBzb3VyY2Vfd2lkdGgg LSAoY3N4IC8gMi4wKSwKKysgICAgICAgICAgICAgICAgKHNvdXJjZV9oZWlnaHQgLSBjc3kpIC8g Mi4wLAorKyAgICAgICAgICAgICAgICBjc3gsCisrICAgICAgICAgICAgICAgIGNzeSkKKyAKKyAg ICAgICAgICMgQ2FsY3VsYXRlIHNoZWFyIGhhbmRsZXMKKy0gICAgICAgIHNlbGYudG9wU2hlYXJI YW5kbGUgPSBRUmVjdEYoc2VsZi50b3BMZWZ0SGFuZGxlLngoKSwgc2VsZi50b3BMZWZ0SGFuZGxl LnkoKSwgc2VsZi5jbGlwQm91bmRzLndpZHRoKCksIHNlbGYudG9wTGVmdEhhbmRsZS5oZWlnaHQo KSkKKy0gICAgICAgIHNlbGYubGVmdFNoZWFySGFuZGxlID0gUVJlY3RGKHNlbGYudG9wTGVmdEhh bmRsZS54KCksIHNlbGYudG9wTGVmdEhhbmRsZS55KCksIHNlbGYudG9wTGVmdEhhbmRsZS53aWR0 aCgpLCBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkpCistICAgICAgICBzZWxmLnJpZ2h0U2hlYXJI YW5kbGUgPSBRUmVjdEYoc2VsZi50b3BSaWdodEhhbmRsZS54KCksIHNlbGYudG9wUmlnaHRIYW5k bGUueSgpLCBzZWxmLnRvcFJpZ2h0SGFuZGxlLndpZHRoKCksIHNlbGYuY2xpcEJvdW5kcy5oZWln aHQoKSkKKy0gICAgICAgIHNlbGYuYm90dG9tU2hlYXJIYW5kbGUgPSBRUmVjdEYoc2VsZi5ib3R0 b21MZWZ0SGFuZGxlLngoKSwgc2VsZi5ib3R0b21MZWZ0SGFuZGxlLnkoKSwgc2VsZi5jbGlwQm91 bmRzLndpZHRoKCksIHNlbGYudG9wTGVmdEhhbmRsZS5oZWlnaHQoKSkKKysgICAgICAgIHNlbGYu dG9wU2hlYXJIYW5kbGUgPSBRUmVjdEYoCisrICAgICAgICAgICAgc2VsZi50b3BMZWZ0SGFuZGxl LngoKSwKKysgICAgICAgICAgICBzZWxmLnRvcExlZnRIYW5kbGUueSgpLAorKyAgICAgICAgICAg IHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpLAorKyAgICAgICAgICAgIHNlbGYudG9wTGVmdEhhbmRs ZS5oZWlnaHQoKSkKKysgICAgICAgIHNlbGYubGVmdFNoZWFySGFuZGxlID0gUVJlY3RGKAorKyAg ICAgICAgICAgIHNlbGYudG9wTGVmdEhhbmRsZS54KCksCisrICAgICAgICAgICAgc2VsZi50b3BM ZWZ0SGFuZGxlLnkoKSwKKysgICAgICAgICAgICBzZWxmLnRvcExlZnRIYW5kbGUud2lkdGgoKSwK KysgICAgICAgICAgICBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkpCisrICAgICAgICBzZWxmLnJp Z2h0U2hlYXJIYW5kbGUgPSBRUmVjdEYoCisrICAgICAgICAgICAgc2VsZi50b3BSaWdodEhhbmRs ZS54KCksCisrICAgICAgICAgICAgc2VsZi50b3BSaWdodEhhbmRsZS55KCksCisrICAgICAgICAg ICAgc2VsZi50b3BSaWdodEhhbmRsZS53aWR0aCgpLAorKyAgICAgICAgICAgIHNlbGYuY2xpcEJv dW5kcy5oZWlnaHQoKSkKKysgICAgICAgIHNlbGYuYm90dG9tU2hlYXJIYW5kbGUgPSBRUmVjdEYo CisrICAgICAgICAgICAgc2VsZi5ib3R0b21MZWZ0SGFuZGxlLngoKSwKKysgICAgICAgICAgICBz ZWxmLmJvdHRvbUxlZnRIYW5kbGUueSgpLAorKyAgICAgICAgICAgIHNlbGYuY2xpcEJvdW5kcy53 aWR0aCgpLAorKyAgICAgICAgICAgIHNlbGYudG9wTGVmdEhhbmRsZS5oZWlnaHQoKSkKKyAKKyAg ICAgICAgICMgRHJhdyA0IHNpZGVzIChjZW50ZXJlZCkKKy0gICAgICAgIHBhaW50ZXIuZHJhd1Jl Y3Qoc2VsZi50b3BIYW5kbGUpCistICAgICAgICBwYWludGVyLmRyYXdSZWN0KHNlbGYuYm90dG9t SGFuZGxlKQorLSAgICAgICAgcGFpbnRlci5kcmF3UmVjdChzZWxmLmxlZnRIYW5kbGUpCistICAg ICAgICBwYWludGVyLmRyYXdSZWN0KHNlbGYucmlnaHRIYW5kbGUpCistICAgICAgICBwYWludGVy LmRyYXdSZWN0KHNlbGYuY2xpcEJvdW5kcykKKysgICAgICAgIHBhaW50ZXIuZHJhd1JlY3RzKFsK KysgICAgICAgICAgICBzZWxmLnRvcEhhbmRsZSwKKysgICAgICAgICAgICBzZWxmLmJvdHRvbUhh bmRsZSwKKysgICAgICAgICAgICBzZWxmLmxlZnRIYW5kbGUsCisrICAgICAgICAgICAgc2VsZi5y aWdodEhhbmRsZSwKKysgICAgICAgICAgICBzZWxmLmNsaXBCb3VuZHMsCisrICAgICAgICAgICAg XSkKKyAKKyAgICAgICAgICMgQ2FsY3VsYXRlIGNlbnRlciBjb29yZGluYXRlCistICAgICAgICBp Zih4MSBhbmQgeTEgYW5kIHgyIGFuZCB5Mik6CisrICAgICAgICBpZiBhbGwoW3gxLCB5MSwgeDIs IHkyXSk6CisgICAgICAgICAgICAgY3MgPSA1LjAKKyAgICAgICAgICAgICBvcyA9IDcuMAorLSAg ICAgICAgICAgIHNlbGYuY2VudGVySGFuZGxlID0gUVJlY3RGKCAoKCh4MSpzb3VyY2Vfd2lkdGgr eDIqc291cmNlX3dpZHRoKSAvIDIuMCkgKSAtIChvcy9zeCksICgoKHkxKnNvdXJjZV9oZWlnaHQr eTIqc291cmNlX2hlaWdodCkgLyAyLjApICkgLSAob3Mvc3kpLCBvcy9zeCoyLjAsIG9zL3N5KjIu MCkKKysgICAgICAgICAgICBzZWxmLmNlbnRlckhhbmRsZSA9IFFSZWN0RigKKysgICAgICAgICAg ICAgICAgKCh4MSArIHgyKSAqIHNvdXJjZV93aWR0aCAvIDIuMCkgLSAob3MgLyBzeCksCisrICAg ICAgICAgICAgICAgICgoeTEgKyB5MikgKiBzb3VyY2VfaGVpZ2h0IC8gMi4wKSAtIChvcyAvIHN5 KSwKKysgICAgICAgICAgICAgICAgb3MgLyBzeCAqIDIuMCwKKysgICAgICAgICAgICAgICAgb3Mg LyBzeSAqIDIuMAorKyAgICAgICAgICAgICkKKyAgICAgICAgIGVsc2U6CistICAgICAgICAgICAg c2VsZi5jZW50ZXJIYW5kbGUgPSBRUmVjdEYoKHNvdXJjZV93aWR0aCAqIG9yaWdpbl94KSAtIChv cy9zeCksIChzb3VyY2VfaGVpZ2h0ICogb3JpZ2luX3kpIC0gKG9zL3N5KSwgb3Mvc3gqMi4wLCBv cy9zeSoyLjApCisrICAgICAgICAgICAgc2VsZi5jZW50ZXJIYW5kbGUgPSBRUmVjdEYoCisrICAg ICAgICAgICAgICAgIHNvdXJjZV93aWR0aCAqIG9yaWdpbl94IC0gKG9zIC8gc3gpLAorKyAgICAg ICAgICAgICAgICBzb3VyY2VfaGVpZ2h0ICogb3JpZ2luX3kgLSAob3MgLyBzeSksCisrICAgICAg ICAgICAgICAgIG9zIC8gc3ggKiAyLjAsCisrICAgICAgICAgICAgICAgIG9zIC8gc3kgKiAyLjAp CisgCisgICAgICAgICAjIERyYXcgb3JpZ2luCisgICAgICAgICBwYWludGVyLmRyYXdFbGxpcHNl KHNlbGYuY2VudGVySGFuZGxlKQorLSAgICAgICAgcGFpbnRlci5kcmF3TGluZShzZWxmLmNlbnRl ckhhbmRsZS54KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUud2lkdGgoKS8yLjApLCBzZWxmLmNlbnRl ckhhbmRsZS55KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUuaGVpZ2h0KCkvMi4wKSAtIHNlbGYuY2Vu dGVySGFuZGxlLmhlaWdodCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNl bnRlckhhbmRsZS54KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUud2lkdGgoKS8yLjApLCBzZWxmLmNl bnRlckhhbmRsZS55KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUuaGVpZ2h0KCkvMi4wKSArIHNlbGYu Y2VudGVySGFuZGxlLmhlaWdodCgpKQorLSAgICAgICAgcGFpbnRlci5kcmF3TGluZShzZWxmLmNl bnRlckhhbmRsZS54KCkgKyAoc2VsZi5jZW50ZXJIYW5kbGUud2lkdGgoKS8yLjApIC0gc2VsZi5j ZW50ZXJIYW5kbGUud2lkdGgoKSwgc2VsZi5jZW50ZXJIYW5kbGUueSgpICsgKHNlbGYuY2VudGVy SGFuZGxlLmhlaWdodCgpLzIuMCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu Y2VudGVySGFuZGxlLngoKSArIChzZWxmLmNlbnRlckhhbmRsZS53aWR0aCgpLzIuMCkgKyBzZWxm LmNlbnRlckhhbmRsZS53aWR0aCgpLCBzZWxmLmNlbnRlckhhbmRsZS55KCkgKyAoc2VsZi5jZW50 ZXJIYW5kbGUuaGVpZ2h0KCkvMi4wKSkKKysKKysgICAgICAgICMgRHJhdyBjcm9zcyBhdCBvcmln aW4gY2VudGVyLCBleHRlbmRpbmcgYmV5b25kIGVsbGlwc2UgYnkgMjUlCisrICAgICAgICBjZW50 ZXIgPSBzZWxmLmNlbnRlckhhbmRsZS5jZW50ZXIoKQorKyAgICAgICAgaGFsZlcgPSBRUG9pbnRG KHNlbGYuY2VudGVySGFuZGxlLndpZHRoKCkgKiAwLjc1LCAwKQorKyAgICAgICAgaGFsZkggPSBR UG9pbnRGKDAsIHNlbGYuY2VudGVySGFuZGxlLmhlaWdodCgpICogMC43NSkKKysgICAgICAgIHBh aW50ZXIuZHJhd0xpbmVzKAorKyAgICAgICAgICAgIGNlbnRlciAtIGhhbGZXLCBjZW50ZXIgKyBo YWxmVywKKysgICAgICAgICAgICBjZW50ZXIgLSBoYWxmSCwgY2VudGVyICsgaGFsZkgsCisrICAg ICAgICApCisgCisgICAgICAgICAjIFJlbW92ZSB0cmFuc2Zvcm0KKyAgICAgICAgIHBhaW50ZXIu cmVzZXRUcmFuc2Zvcm0oKQorQEAgLTE3OSw3ICsyNzQsMTEgQEAgZGVmIHBhaW50RXZlbnQoc2Vs ZiwgZXZlbnQsICphcmdzKToKKyAKKyAgICAgICAgICMgUGFpbnQgY3VzdG9tIGZyYW1lIGltYWdl IG9uIFFXaWRnZXQKKyAgICAgICAgIHBhaW50ZXIgPSBRUGFpbnRlcihzZWxmKQorLSAgICAgICAg cGFpbnRlci5zZXRSZW5kZXJIaW50cyhRUGFpbnRlci5BbnRpYWxpYXNpbmcgfCBRUGFpbnRlci5T bW9vdGhQaXhtYXBUcmFuc2Zvcm0gfCBRUGFpbnRlci5UZXh0QW50aWFsaWFzaW5nLCBUcnVlKQor KyAgICAgICAgcGFpbnRlci5zZXRSZW5kZXJIaW50cygKKysgICAgICAgICAgICBRUGFpbnRlci5B bnRpYWxpYXNpbmcKKysgICAgICAgICAgICB8IFFQYWludGVyLlNtb290aFBpeG1hcFRyYW5zZm9y bQorKyAgICAgICAgICAgIHwgUVBhaW50ZXIuVGV4dEFudGlhbGlhc2luZywKKysgICAgICAgICAg ICBUcnVlKQorIAorICAgICAgICAgIyBGaWxsIHRoZSB3aG9sZSB3aWRnZXQgd2l0aCB0aGUgc29s aWQgY29sb3IKKyAgICAgICAgIHBhaW50ZXIuZmlsbFJlY3QoZXZlbnQucmVjdCgpLCBRQ29sb3Io IiMxOTE5MTkiKSkKK0BAIC0xOTEsNyArMjkwLDcgQEAgZGVmIHBhaW50RXZlbnQoc2VsZiwgZXZl bnQsICphcmdzKToKKyAgICAgICAgICAgICAjIERSQVcgRlJBTUUKKyAgICAgICAgICAgICAjIENh bGN1bGF0ZSBuZXcgZnJhbWUgaW1hZ2Ugc2l6ZSwgbWFpbnRhaW5pbmcgYXNwZWN0IHJhdGlvCisg ICAgICAgICAgICAgcGl4U2l6ZSA9IHNlbGYuY3VycmVudF9pbWFnZS5zaXplKCkKKy0gICAgICAg ICAgICBwaXhTaXplLnNjYWxlKGV2ZW50LnJlY3QoKS53aWR0aCgpLCBldmVudC5yZWN0KCkuaGVp Z2h0KCksIFF0LktlZXBBc3BlY3RSYXRpbykKKysgICAgICAgICAgICBwaXhTaXplLnNjYWxlKGV2 ZW50LnJlY3QoKS5zaXplKCksIFF0LktlZXBBc3BlY3RSYXRpbykKKyAgICAgICAgICAgICBzZWxm LmN1cnJfZnJhbWVfc2l6ZSA9IHBpeFNpemUKKyAKKyAgICAgICAgICAgICAjIFNjYWxlIGltYWdl ICh0YWtlIGludG8gYWNjb3VudCBkaXNwbGF5IHNjYWxpbmcgZm9yIEhpZ2ggRFBJIG1vbml0b3Jz KQorQEAgLTIyMywxMyArMzIyLDE5IEBAIGRlZiBwYWludEV2ZW50KHNlbGYsIGV2ZW50LCAqYXJn cyk6CisgICAgICAgICAgICAgIyBEZXRlcm1pbmUgb3JpZ2luYWwgc2l6ZSBvZiBjbGlwJ3MgcmVh ZGVyCisgICAgICAgICAgICAgc291cmNlX3dpZHRoID0gc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5k YXRhWydyZWFkZXInXVsnd2lkdGgnXQorICAgICAgICAgICAgIHNvdXJjZV9oZWlnaHQgPSBzZWxm LnRyYW5zZm9ybWluZ19jbGlwLmRhdGFbJ3JlYWRlciddWydoZWlnaHQnXQorLSAgICAgICAgICAg IHNvdXJjZV9zaXplID0gUVNpemUoc291cmNlX3dpZHRoLCBzb3VyY2VfaGVpZ2h0ICogc2VsZi5w aXhlbF9yYXRpby5SZWNpcHJvY2FsKCkuVG9Eb3VibGUoKSkKKysgICAgICAgICAgICBwaXhlbF9h ZGp1c3QgPSBzZWxmLnBpeGVsX3JhdGlvLlJlY2lwcm9jYWwoKS5Ub0RvdWJsZSgpCisrICAgICAg ICAgICAgc291cmNlX3NpemUgPSBRU2l6ZSgKKysgICAgICAgICAgICAgICAgaW50KHNvdXJjZV93 aWR0aCksCisrICAgICAgICAgICAgICAgIGludChzb3VyY2VfaGVpZ2h0ICogcGl4ZWxfYWRqdXN0 KSkKKyAKKyAgICAgICAgICAgICAjIERldGVybWluZSBzY2FsZSBvZiBjbGlwCisgICAgICAgICAg ICAgc2NhbGUgPSBzZWxmLnRyYW5zZm9ybWluZ19jbGlwLmRhdGFbJ3NjYWxlJ10KKyAKKyAgICAg ICAgICAgICAjIFNldCBzY2FsZSBhcyBTVFJFVENIIGlmIHRoZSBjbGlwIGlzIGF0dGFjaGVkIHRv IGFuIG9iamVjdAorLSAgICAgICAgICAgIGlmIChyYXdfcHJvcGVydGllcy5nZXQoJ3BhcmVudE9i amVjdElkJykuZ2V0KCdtZW1vJykgIT0gJ05vbmUnIGFuZCBsZW4ocmF3X3Byb3BlcnRpZXMuZ2V0 KCdwYXJlbnRPYmplY3RJZCcpLmdldCgnbWVtbycpKSA+IDAgKToKKysgICAgICAgICAgICBpZiAo CisrICAgICAgICAgICAgICAgICAgICByYXdfcHJvcGVydGllcy5nZXQoJ3BhcmVudE9iamVjdElk JykuZ2V0KCdtZW1vJykgIT0gJ05vbmUnCisrICAgICAgICAgICAgICAgICAgICBhbmQgbGVuKHJh d19wcm9wZXJ0aWVzLmdldCgncGFyZW50T2JqZWN0SWQnKS5nZXQoJ21lbW8nKSkgPiAwCisrICAg ICAgICAgICAgKToKKyAgICAgICAgICAgICAgICAgc2NhbGUgPSBvcGVuc2hvdC5TQ0FMRV9TVFJF VENICisgCisgICAgICAgICAgICAgaWYgc2NhbGUgPT0gb3BlbnNob3QuU0NBTEVfRklUOgorQEAg LTIzOSwxMiArMzQ0LDcgQEAgZGVmIHBhaW50RXZlbnQoc2VsZiwgZXZlbnQsICphcmdzKToKKyAg ICAgICAgICAgICAgICAgc291cmNlX3NpemUuc2NhbGUocGxheWVyX3dpZHRoLCBwbGF5ZXJfaGVp Z2h0LCBRdC5JZ25vcmVBc3BlY3RSYXRpbykKKyAKKyAgICAgICAgICAgICBlbGlmIHNjYWxlID09 IG9wZW5zaG90LlNDQUxFX0NST1A6CistICAgICAgICAgICAgICAgIHdpZHRoX3NpemUgPSBRU2l6 ZShwbGF5ZXJfd2lkdGgsIHJvdW5kKHBsYXllcl93aWR0aCAvIChmbG9hdChzb3VyY2Vfd2lkdGgp IC8gZmxvYXQoc291cmNlX2hlaWdodCkpKSkKKy0gICAgICAgICAgICAgICAgaGVpZ2h0X3NpemUg PSBRU2l6ZShyb3VuZChwbGF5ZXJfaGVpZ2h0IC8gKGZsb2F0KHNvdXJjZV9oZWlnaHQpIC8gZmxv YXQoc291cmNlX3dpZHRoKSkpLCBwbGF5ZXJfaGVpZ2h0KQorLSAgICAgICAgICAgICAgICBpZiB3 aWR0aF9zaXplLndpZHRoKCkgPj0gcGxheWVyX3dpZHRoIGFuZCB3aWR0aF9zaXplLmhlaWdodCgp ID49IHBsYXllcl9oZWlnaHQ6CistICAgICAgICAgICAgICAgICAgICBzb3VyY2Vfc2l6ZS5zY2Fs ZSh3aWR0aF9zaXplLndpZHRoKCksIHdpZHRoX3NpemUuaGVpZ2h0KCksIFF0LktlZXBBc3BlY3RS YXRpbykKKy0gICAgICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAgICAgICAgIHNvdXJj ZV9zaXplLnNjYWxlKGhlaWdodF9zaXplLndpZHRoKCksIGhlaWdodF9zaXplLmhlaWdodCgpLCBR dC5LZWVwQXNwZWN0UmF0aW8pCisrICAgICAgICAgICAgICAgIHNvdXJjZV9zaXplLnNjYWxlKHBs YXllcl93aWR0aCwgcGxheWVyX2hlaWdodCwgUXQuS2VlcEFzcGVjdFJhdGlvQnlFeHBhbmRpbmcp CisgCisgICAgICAgICAgICAgIyBHZXQgbmV3IHNvdXJjZSB3aWR0aCAvIGhlaWdodCAoYWZ0ZXIg c2NhbGluZyBtb2RlIGFwcGxpZWQpCisgICAgICAgICAgICAgc291cmNlX3dpZHRoID0gc291cmNl X3NpemUud2lkdGgoKQorQEAgLTI4NSw5ICszODUsNiBAQCBkZWYgcGFpbnRFdmVudChzZWxmLCBl dmVudCwgKmFyZ3MpOgorICAgICAgICAgICAgICAgICB4ICs9IHBsYXllcl93aWR0aCAtIHNjYWxl ZF9zb3VyY2Vfd2lkdGggICMgcmlnaHQKKyAgICAgICAgICAgICAgICAgeSArPSAocGxheWVyX2hl aWdodCAtIHNjYWxlZF9zb3VyY2VfaGVpZ2h0KSAgIyBib3R0b20KKyAKKy0gICAgICAgICAgICAj IFRyYWNrIGdyYXZpdHkgc3RhcnRpbmcgY29vcmRpbmF0ZQorLSAgICAgICAgICAgIHNlbGYuZ3Jh dml0eV9wb2ludCA9IFFQb2ludEYoeCwgeSkKKy0KKyAgICAgICAgICAgICAjIEFkanVzdCB4LHkg Zm9yIGxvY2F0aW9uCisgICAgICAgICAgICAgeF9vZmZzZXQgPSByYXdfcHJvcGVydGllcy5nZXQo J2xvY2F0aW9uX3gnKS5nZXQoJ3ZhbHVlJykKKyAgICAgICAgICAgICB5X29mZnNldCA9IHJhd19w cm9wZXJ0aWVzLmdldCgnbG9jYXRpb25feScpLmdldCgndmFsdWUnKQorQEAgLTMyOSw3ICs0MjYs NiBAQCBkZWYgcGFpbnRFdmVudChzZWxmLCBldmVudCwgKmFyZ3MpOgorICAgICAgICAgICAgICAg ICAgICAgcmF3X3Byb3BlcnRpZXNfZWZmZWN0ID0ganNvbi5sb2FkcyhzZWxmLnRyYW5zZm9ybWlu Z19lZmZlY3Rfb2JqZWN0LlByb3BlcnRpZXNKU09OKGNsaXBfZnJhbWVfbnVtYmVyKSkKKyAgICAg ICAgICAgICAgICAgICAgICMgR2V0IHByb3BlcnRpZXMgZm9yIHRoZSBmaXJzdCBvYmplY3QgaW4g ZGljdC4gUHJvcGVydGllc0pTT04gc2hvdWxkIHJldHVybiBvbmUgb2JqZWN0IGF0IHRoZSB0aW1l CisgICAgICAgICAgICAgICAgICAgICB0bXAgPSByYXdfcHJvcGVydGllc19lZmZlY3QuZ2V0KCdv YmplY3RzJykKKy0gICAgICAgICAgICAgICAgICAgIHRtcDIgPSB0bXAua2V5cygpCisgICAgICAg ICAgICAgICAgICAgICBvYmpfaWQgPSBsaXN0KHRtcC5rZXlzKCkpWzBdCisgICAgICAgICAgICAg ICAgICAgICByYXdfcHJvcGVydGllc19lZmZlY3QgPSByYXdfcHJvcGVydGllc19lZmZlY3QuZ2V0 KCdvYmplY3RzJykuZ2V0KG9ial9pZCkKKyAKK0BAIC0zNDIsMTAgKzQzOCwxOSBAQCBkZWYgcGFp bnRFdmVudChzZWxmLCBldmVudCwgKmFyZ3MpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB5MSA9IHJhd19wcm9wZXJ0aWVzX2VmZmVjdFsneTEnXVsndmFsdWUnXQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB4MiA9IHJhd19wcm9wZXJ0aWVzX2VmZmVjdFsneDInXVsndmFsdWUn XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5MiA9IHJhd19wcm9wZXJ0aWVzX2VmZmVj dFsneTInXVsndmFsdWUnXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRyYXdU cmFuc2Zvcm1IYW5kbGVyKHBhaW50ZXIsIHN4LCBzeSwgc291cmNlX3dpZHRoLCBzb3VyY2VfaGVp Z2h0LCBvcmlnaW5feCwgb3JpZ2luX3ksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB4MSwgeTEsIHgyLCB5Miwgcm90YXRpb24pCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZHJhd1RyYW5zZm9ybUhhbmRsZXIoCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwYWludGVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3gsIHN5LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3dpZHRoLCBzb3VyY2VfaGVp Z2h0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luX3gsIG9yaWdpbl95 LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDEsIHkxLCB4MiwgeTIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbikKKyAgICAgICAgICAgICBlbHNl OgorLSAgICAgICAgICAgICAgICBzZWxmLmRyYXdUcmFuc2Zvcm1IYW5kbGVyKHBhaW50ZXIsIHN4 LCBzeSwgc291cmNlX3dpZHRoLCBzb3VyY2VfaGVpZ2h0LCBvcmlnaW5feCwgb3JpZ2luX3kpCisr ICAgICAgICAgICAgICAgIHNlbGYuZHJhd1RyYW5zZm9ybUhhbmRsZXIoCisrICAgICAgICAgICAg ICAgICAgICBwYWludGVyLAorKyAgICAgICAgICAgICAgICAgICAgc3gsIHN5LAorKyAgICAgICAg ICAgICAgICAgICAgc291cmNlX3dpZHRoLCBzb3VyY2VfaGVpZ2h0LAorKyAgICAgICAgICAgICAg ICAgICAgb3JpZ2luX3gsIG9yaWdpbl95KQorIAorICAgICAgICAgaWYgc2VsZi5yZWdpb25fZW5h YmxlZDoKKyAgICAgICAgICAgICAjIFBhaW50IHJlZ2lvbiBzZWxlY3RvciBvbnRvIHZpZGVvIHBy ZXZpZXcKK0BAIC0zNzYsMTEgKzQ4MSwyMSBAQCBkZWYgcGFpbnRFdmVudChzZWxmLCBldmVudCwg KmFyZ3MpOgorICAgICAgICAgICAgICAgICBwZW4gPSBRUGVuKFFCcnVzaChRQ29sb3IoIiM1M2Ew ZWQiKSksIDEuNSkKKyAgICAgICAgICAgICAgICAgcGVuLnNldENvc21ldGljKFRydWUpCisgICAg ICAgICAgICAgICAgIHBhaW50ZXIuc2V0UGVuKHBlbikKKy0gICAgICAgICAgICAgICAgcGFpbnRl ci5kcmF3UmVjdChzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUueCgpIC0gKGNzLzIuMC9zZWxmLnpv b20pLCBzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUueSgpIC0gKGNzLzIuMC9zZWxmLnpvb20pLCBz ZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUud2lkdGgoKSAvIHNlbGYuem9vbSwgc2VsZi5yZWdpb25U b3BMZWZ0SGFuZGxlLmhlaWdodCgpIC8gc2VsZi56b29tKQorLSAgICAgICAgICAgICAgICBwYWlu dGVyLmRyYXdSZWN0KHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUueCgpIC0gKGNzLzIuMC9z ZWxmLnpvb20pLCBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLnkoKSAtIChjcy8yLjAvc2Vs Zi56b29tKSwgc2VsZi5yZWdpb25Cb3R0b21SaWdodEhhbmRsZS53aWR0aCgpIC8gc2VsZi56b29t LCBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLmhlaWdodCgpIC8gc2VsZi56b29tKQorLSAg ICAgICAgICAgICAgICByZWdpb25fcmVjdCA9IFFSZWN0RihzZWxmLnJlZ2lvblRvcExlZnRIYW5k bGUueCgpLCBzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUueSgpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLngoKSAt IHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS54KCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUueSgpIC0gc2VsZi5y ZWdpb25Ub3BMZWZ0SGFuZGxlLnkoKSkKKysgICAgICAgICAgICAgICAgcGFpbnRlci5kcmF3UmVj dCgKKysgICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS54KCkgLSAo Y3MgLyAyLjAgLyBzZWxmLnpvb20pLAorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25U b3BMZWZ0SGFuZGxlLnkoKSAtIChjcyAvIDIuMCAvIHNlbGYuem9vbSksCisrICAgICAgICAgICAg ICAgICAgICBzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUud2lkdGgoKSAvIHNlbGYuem9vbSwKKysg ICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS5oZWlnaHQoKSAvIHNl bGYuem9vbSkKKysgICAgICAgICAgICAgICAgcGFpbnRlci5kcmF3UmVjdCgKKysgICAgICAgICAg ICAgICAgICAgIHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUueCgpIC0gKGNzIC8gMi4wIC8g c2VsZi56b29tKSwKKysgICAgICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uQm90dG9tUmlnaHRI YW5kbGUueSgpIC0gKGNzIC8gMi4wIC8gc2VsZi56b29tKSwKKysgICAgICAgICAgICAgICAgICAg IHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUud2lkdGgoKSAvIHNlbGYuem9vbSwKKysgICAg ICAgICAgICAgICAgICAgIHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUuaGVpZ2h0KCkgLyBz ZWxmLnpvb20pCisrICAgICAgICAgICAgICAgIHJlZ2lvbl9yZWN0ID0gUVJlY3RGKAorKyAgICAg ICAgICAgICAgICAgICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLngoKSwKKysgICAgICAgICAg ICAgICAgICAgIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS55KCksCisrICAgICAgICAgICAgICAg ICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLngoKSAtIHNlbGYucmVnaW9uVG9wTGVm dEhhbmRsZS54KCksCisrICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0 SGFuZGxlLnkoKSAtIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZS55KCkpCisgICAgICAgICAgICAg ICAgIHBhaW50ZXIuZHJhd1JlY3QocmVnaW9uX3JlY3QpCisgCisgICAgICAgICAgICAgIyBSZW1v dmUgdHJhbnNmb3JtCitAQCAtMzk0LDIzICs1MDksMTUgQEAgZGVmIHBhaW50RXZlbnQoc2VsZiwg ZXZlbnQsICphcmdzKToKKyAgICAgZGVmIGNlbnRlcmVkVmlld3BvcnQoc2VsZiwgd2lkdGgsIGhl aWdodCk6CisgICAgICAgICAiIiIgQ2FsY3VsYXRlIHNpemUgb2Ygdmlld3BvcnQgdG8gbWFpbnRh aW4gYXNwZWN0IHJhdGlvICIiIgorIAorLSAgICAgICAgIyBDYWxjdWxhdGUgcGFkZGluZworLSAg ICAgICAgdG9wX3BhZGRpbmcgPSAoaGVpZ2h0IC0gKGhlaWdodCAqIHNlbGYuem9vbSkpIC8gMi4w CistICAgICAgICBsZWZ0X3BhZGRpbmcgPSAod2lkdGggLSAod2lkdGggKiBzZWxmLnpvb20pKSAv IDIuMAorKyAgICAgICAgd2luZG93X3NpemUgPSBRU2l6ZUYod2lkdGgsIGhlaWdodCkKKysgICAg ICAgIHdpbmRvd19yZWN0ID0gUVJlY3RGKFFQb2ludEYoMCwgMCksIHdpbmRvd19zaXplKQorIAor LSAgICAgICAgIyBBZGp1c3QgcGFyYW1ldGVycyB0byB6b29tCistICAgICAgICB3aWR0aCA9IHdp ZHRoICogc2VsZi56b29tCistICAgICAgICBoZWlnaHQgPSBoZWlnaHQgKiBzZWxmLnpvb20KKysg ICAgICAgIGFzcGVjdFJhdGlvID0gc2VsZi5hc3BlY3RfcmF0aW8uVG9GbG9hdCgpICogc2VsZi5w aXhlbF9yYXRpby5Ub0Zsb2F0KCkKKysgICAgICAgIHZpZXdwb3J0X3NpemUgPSBRU2l6ZUYoYXNw ZWN0UmF0aW8sIDEpLnNjYWxlZCh3aW5kb3dfc2l6ZSwgUXQuS2VlcEFzcGVjdFJhdGlvKQorKyAg ICAgICAgdmlld3BvcnRfcmVjdCA9IFFSZWN0RihRUG9pbnRGKDAsIDApLCB2aWV3cG9ydF9zaXpl KQorKyAgICAgICAgdmlld3BvcnRfcmVjdC5tb3ZlQ2VudGVyKHdpbmRvd19yZWN0LmNlbnRlcigp KQorIAorLSAgICAgICAgIyBDYWxjdWxhdGUgd2hpY2ggZGlyZWN0aW9uIHRvIHNjYWxlIChmb3Ig cGVyZmVjdCBjZW50ZXJpbmcpCistICAgICAgICBhc3BlY3RSYXRpbyA9IHNlbGYuYXNwZWN0X3Jh dGlvLlRvRmxvYXQoKQorLSAgICAgICAgaGVpZ2h0RnJvbVdpZHRoID0gd2lkdGggLyBhc3BlY3RS YXRpbworLSAgICAgICAgd2lkdGhGcm9tSGVpZ2h0ID0gaGVpZ2h0ICogYXNwZWN0UmF0aW8KKy0K Ky0gICAgICAgIGlmIGhlaWdodEZyb21XaWR0aCA8PSBoZWlnaHQ6CistICAgICAgICAgICAgcmV0 dXJuIFFSZWN0KGxlZnRfcGFkZGluZywgKChoZWlnaHQgLSBoZWlnaHRGcm9tV2lkdGgpIC8gMikg KyB0b3BfcGFkZGluZywgd2lkdGgsIGhlaWdodEZyb21XaWR0aCkKKy0gICAgICAgIGVsc2U6Cist ICAgICAgICAgICAgcmV0dXJuIFFSZWN0KCgod2lkdGggLSB3aWR0aEZyb21IZWlnaHQpIC8gMi4w KSArIGxlZnRfcGFkZGluZywgdG9wX3BhZGRpbmcsIHdpZHRoRnJvbUhlaWdodCwgaGVpZ2h0KQor KyAgICAgICAgcmV0dXJuIHZpZXdwb3J0X3JlY3QudG9SZWN0KCkKKyAKKyAgICAgZGVmIHByZXNl bnQoc2VsZiwgaW1hZ2UsICphcmdzKToKKyAgICAgICAgICIiIiBQcmVzZW50IHRoZSBjdXJyZW50 IGZyYW1lICIiIgorQEAgLTQ0OCwxMiArNTU1LDE2IEBAIGRlZiBtb3VzZVJlbGVhc2VFdmVudChz ZWxmLCBldmVudCk6CisgICAgICAgICAjIFRoaXMgY2FuIGJlIHVzZWQgb3RoZXIgd2lkZ2V0cyB0 byBkaXNwbGF5IHRoZSBzZWxlY3RlZCByZWdpb24KKyAgICAgICAgIGlmIHNlbGYucmVnaW9uX2Vu YWJsZWQ6CisgICAgICAgICAgICAgIyBHZXQgcmVnaW9uIGNvb3JkaW5hdGVzCistICAgICAgICAg ICAgcmVnaW9uX3JlY3QgPSBRUmVjdEYoc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLngoKSwgc2Vs Zi5yZWdpb25Ub3BMZWZ0SGFuZGxlLnkoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLngoKSAtIHNlbGYucmVnaW9uVG9wTGVm dEhhbmRsZS54KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdp b25Cb3R0b21SaWdodEhhbmRsZS55KCkgLSBzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUueSgpKS5u b3JtYWxpemVkKCkKKysgICAgICAgICAgICByZWdpb25fcmVjdCA9IFFSZWN0RigKKysgICAgICAg ICAgICAgICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLngoKSwKKysgICAgICAgICAgICAgICAg c2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlLnkoKSwKKysgICAgICAgICAgICAgICAgc2VsZi5yZWdp b25Cb3R0b21SaWdodEhhbmRsZS54KCkgLSBzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUueCgpLAor KyAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlLnkoKSAtIHNlbGYu cmVnaW9uVG9wTGVmdEhhbmRsZS55KCkKKysgICAgICAgICAgICApLm5vcm1hbGl6ZWQoKQorIAor ICAgICAgICAgICAgICMgTWFwIHJlZ2lvbiAoZHVlIHRvIHpvb21pbmcpCistICAgICAgICAgICAg bWFwcGVkX3JlZ2lvbl9yZWN0ID0gc2VsZi5yZWdpb25fdHJhbnNmb3JtLm1hcFRvUG9seWdvbihy ZWdpb25fcmVjdC50b1JlY3QoKSkuYm91bmRpbmdSZWN0KCkKKysgICAgICAgICAgICBtYXBwZWRf cmVnaW9uX3JlY3QgPSBzZWxmLnJlZ2lvbl90cmFuc2Zvcm0ubWFwVG9Qb2x5Z29uKAorKyAgICAg ICAgICAgICAgICByZWdpb25fcmVjdC50b1JlY3QoKSkuYm91bmRpbmdSZWN0KCkKKyAKKyAgICAg ICAgICAgICAjIFJlbmRlciBhIHNjYWxlZCB2ZXJzaW9uIG9mIHRoZSByZWdpb24gKGFzIGEgUUlt YWdlKQorICAgICAgICAgICAgICMgVE9ETzogR3JhYiBoaWdoZXIgcXVhbGl0eSBwaXhtYXAgZnJv bSB0aGUgUVdpZGdldCwgYXMgdGhpcyBtZXRob2Qgc2VlbXMgdG8gYmUgMS8yIHJlc29sdXRpb24K K0BAIC00NjEsMTQgKzU3MiwyNSBAQCBkZWYgbW91c2VSZWxlYXNlRXZlbnQoc2VsZiwgZXZlbnQp OgorICAgICAgICAgICAgIHNjYWxlID0gMy4wCisgCisgICAgICAgICAgICAgIyBNYXAgcmVjdCB0 byB0cmFuc2Zvcm0gKGZvciBzY2FsaW5nIHZpZGVvIGVsZW1lbnRzKQorLSAgICAgICAgICAgIG1h cHBlZF9yZWdpb25fcmVjdCA9IFFSZWN0KG1hcHBlZF9yZWdpb25fcmVjdC54KCksIG1hcHBlZF9y ZWdpb25fcmVjdC55KCksIG1hcHBlZF9yZWdpb25fcmVjdC53aWR0aCgpICogc2NhbGUsIG1hcHBl ZF9yZWdpb25fcmVjdC5oZWlnaHQoKSAqIHNjYWxlKQorKyAgICAgICAgICAgIG1hcHBlZF9yZWdp b25fcmVjdCA9IFFSZWN0KAorKyAgICAgICAgICAgICAgICBtYXBwZWRfcmVnaW9uX3JlY3QueCgp LAorKyAgICAgICAgICAgICAgICBtYXBwZWRfcmVnaW9uX3JlY3QueSgpLAorKyAgICAgICAgICAg ICAgICBpbnQobWFwcGVkX3JlZ2lvbl9yZWN0LndpZHRoKCkgKiBzY2FsZSksCisrICAgICAgICAg ICAgICAgIGludChtYXBwZWRfcmVnaW9uX3JlY3QuaGVpZ2h0KCkgKiBzY2FsZSkpCisgCisgICAg ICAgICAgICAgIyBSZW5kZXIgUVdpZGdldCBvbnRvIHNjYWxlZCBRSW1hZ2UKKy0gICAgICAgICAg ICBzZWxmLnJlZ2lvbl9xaW1hZ2UgPSBRSW1hZ2UobWFwcGVkX3JlZ2lvbl9yZWN0LndpZHRoKCks IG1hcHBlZF9yZWdpb25fcmVjdC5oZWlnaHQoKSwgUUltYWdlLkZvcm1hdF9SR0JBODg4OCkKKysg ICAgICAgICAgICBzZWxmLnJlZ2lvbl9xaW1hZ2UgPSBRSW1hZ2UoCisrICAgICAgICAgICAgICAg IG1hcHBlZF9yZWdpb25fcmVjdC5zaXplKCksIFFJbWFnZS5Gb3JtYXRfUkdCQTg4ODgpCisgICAg ICAgICAgICAgcmVnaW9uX3BhaW50ZXIgPSBRUGFpbnRlcihzZWxmLnJlZ2lvbl9xaW1hZ2UpCist ICAgICAgICAgICAgcmVnaW9uX3BhaW50ZXIuc2V0UmVuZGVySGludHMoUVBhaW50ZXIuQW50aWFs aWFzaW5nIHwgUVBhaW50ZXIuU21vb3RoUGl4bWFwVHJhbnNmb3JtIHwgUVBhaW50ZXIuVGV4dEFu dGlhbGlhc2luZywgVHJ1ZSkKKysgICAgICAgICAgICByZWdpb25fcGFpbnRlci5zZXRSZW5kZXJI aW50cygKKysgICAgICAgICAgICAgICAgUVBhaW50ZXIuQW50aWFsaWFzaW5nCisrICAgICAgICAg ICAgICAgIHwgUVBhaW50ZXIuU21vb3RoUGl4bWFwVHJhbnNmb3JtCisrICAgICAgICAgICAgICAg IHwgUVBhaW50ZXIuVGV4dEFudGlhbGlhc2luZywKKysgICAgICAgICAgICAgICAgVHJ1ZSkKKyAg ICAgICAgICAgICByZWdpb25fcGFpbnRlci5zY2FsZShzY2FsZSwgc2NhbGUpCistICAgICAgICAg ICAgc2VsZi5yZW5kZXIocmVnaW9uX3BhaW50ZXIsIFFQb2ludCgwLDApLCBRUmVnaW9uKG1hcHBl ZF9yZWdpb25fcmVjdCwgUVJlZ2lvbi5SZWN0YW5nbGUpKQorKyAgICAgICAgICAgIHNlbGYucmVu ZGVyKAorKyAgICAgICAgICAgICAgICByZWdpb25fcGFpbnRlciwgUVBvaW50KDAsIDApLAorKyAg ICAgICAgICAgICAgICBRUmVnaW9uKG1hcHBlZF9yZWdpb25fcmVjdCwgUVJlZ2lvbi5SZWN0YW5n bGUpKQorICAgICAgICAgICAgIHJlZ2lvbl9wYWludGVyLmVuZCgpCisgCisgICAgICAgICAjIElu Zm9ybSBVcGRhdGVNYW5hZ2VyIHRvIGFjY2VwdCB1cGRhdGVzLCBhbmQgb25seSBzdG9yZSBvdXIg ZmluYWwgdXBkYXRlCitAQCAtNDg0LDcgKzYwNiw4IEBAIGRlZiBtb3VzZVJlbGVhc2VFdmVudChz ZWxmLCBldmVudCk6CisgICAgIGRlZiByb3RhdGVDdXJzb3Ioc2VsZiwgcGl4bWFwLCByb3RhdGlv biwgc2hlYXJfeCwgc2hlYXJfeSk6CisgICAgICAgICAiIiJSb3RhdGUgY3Vyc29yIGJhc2VkIG9u IHRoZSBjdXJyZW50IHRyYW5zZm9ybSIiIgorICAgICAgICAgcm90YXRlZF9waXhtYXAgPSBwaXht YXAudHJhbnNmb3JtZWQoCistICAgICAgICAgICAgUVRyYW5zZm9ybSgpLnJvdGF0ZShyb3RhdGlv bikuc2hlYXIoc2hlYXJfeCwgc2hlYXJfeSkuc2NhbGUoMC44LCAwLjgpLCBRdC5TbW9vdGhUcmFu c2Zvcm1hdGlvbikKKysgICAgICAgICAgICBRVHJhbnNmb3JtKCkucm90YXRlKHJvdGF0aW9uKS5z aGVhcihzaGVhcl94LCBzaGVhcl95KS5zY2FsZSgwLjgsIDAuOCksCisrICAgICAgICAgICAgUXQu U21vb3RoVHJhbnNmb3JtYXRpb24pCisgICAgICAgICByZXR1cm4gUUN1cnNvcihyb3RhdGVkX3Bp eG1hcCkKKyAKKyAgICAgZGVmIGdldFRyYW5zZm9ybU1vZGUoc2VsZiwgcm90YXRpb24sIHNoZWFy X3gsIHNoZWFyX3ksIGV2ZW50KToKK0BAIC02MjcsNiArNzUwLDEwIEBAIGRlZiBtb3VzZU1vdmVF dmVudChzZWxmLCBldmVudCk6CisgCisgICAgICAgICAgICAgIyBUcmFuc2Zvcm0gY2xpcCBvYmpl Y3QKKyAgICAgICAgICAgICBpZiBzZWxmLnRyYW5zZm9ybV9tb2RlOgorKworKyAgICAgICAgICAg ICAgICB4X21vdGlvbiA9IGV2ZW50LnBvcygpLngoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueCgp CisrICAgICAgICAgICAgICAgIHlfbW90aW9uID0gZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3Vz ZV9wb3NpdGlvbi55KCkKKysKKyAgICAgICAgICAgICAgICAgaWYgc2VsZi50cmFuc2Zvcm1fbW9k ZSA9PSAnb3JpZ2luJzoKKyAgICAgICAgICAgICAgICAgICAgICMgR2V0IGN1cnJlbnQga2V5ZnJh bWUgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgIG9yaWdpbl94ID0gcmF3X3Byb3BlcnRpZXMu Z2V0KCdvcmlnaW5feCcpLmdldCgndmFsdWUnKQorQEAgLTYzNSw4ICs3NjIsOCBAQCBkZWYgbW91 c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSA9 IHJhd19wcm9wZXJ0aWVzLmdldCgnc2NhbGVfeScpLmdldCgndmFsdWUnKQorIAorICAgICAgICAg ICAgICAgICAgICAgIyBDYWxjdWxhdGUgbmV3IGxvY2F0aW9uIGNvb3JkaW5hdGVzCistICAgICAg ICAgICAgICAgICAgICBvcmlnaW5feCArPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9w b3NpdGlvbi54KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpICogc2NhbGVfeCkKKy0gICAg ICAgICAgICAgICAgICAgIG9yaWdpbl95ICs9IChldmVudC5wb3MoKS55KCkgLSBzZWxmLm1vdXNl X3Bvc2l0aW9uLnkoKSkgLyAoc2VsZi5jbGlwQm91bmRzLmhlaWdodCgpICogc2NhbGVfeSkKKysg ICAgICAgICAgICAgICAgICAgIG9yaWdpbl94ICs9IHhfbW90aW9uIC8gKHNlbGYuY2xpcEJvdW5k cy53aWR0aCgpICogc2NhbGVfeCkKKysgICAgICAgICAgICAgICAgICAgIG9yaWdpbl95ICs9IHlf bW90aW9uIC8gKHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAqIHNjYWxlX3kpCisgCisgICAgICAg ICAgICAgICAgICAgICAjIENvbnN0cmFpbiB0byBjbGlwCisgICAgICAgICAgICAgICAgICAgICBp ZiBvcmlnaW5feCA8IDAuMDoKK0BAIC02NDgsOCArNzc1LDEzIEBAIGRlZiBtb3VzZU1vdmVFdmVu dChzZWxmLCBldmVudCk6CisgICAgICAgICAgICAgICAgICAgICBpZiBvcmlnaW5feSA+IDEuMDoK KyAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5feSA9IDEuMAorICAgICAgICAgICAgICAg ICAgICAgIyBVcGRhdGUga2V5ZnJhbWUgdmFsdWUgKG9yIGNyZWF0ZSBuZXcgb25lKQorLSAgICAg ICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdf Y2xpcC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsICdvcmlnaW5feCcsIG9yaWdpbl94LCByZWZyZXNo PUZhbHNlKQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoc2Vs Zi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsICdvcmlnaW5feScsIG9y aWdpbl95KQorKyAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoCisr ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9m cmFtZV9udW1iZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgJ29yaWdpbl94Jywgb3JpZ2lu X3gsCisrICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaD1GYWxzZSkKKysgICAgICAgICAg ICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5KAorKyAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICdvcmlnaW5feScsIG9yaWdpbl95KQorIAorICAgICAgICAgICAg ICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ2xvY2F0aW9uJzoKKyAgICAgICAgICAg ICAgICAgICAgICMgR2V0IGN1cnJlbnQga2V5ZnJhbWUgdmFsdWUKK0BAIC02NTcsMTIgKzc4OSwx NyBAQCBkZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgICAgICAg ICAgbG9jYXRpb25feSA9IHJhd19wcm9wZXJ0aWVzLmdldCgnbG9jYXRpb25feScpLmdldCgndmFs dWUnKQorIAorICAgICAgICAgICAgICAgICAgICAgIyBDYWxjdWxhdGUgbmV3IGxvY2F0aW9uIGNv b3JkaW5hdGVzCistICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbl94ICs9IChldmVudC5wb3Mo KS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkgLyB2aWV3cG9ydF9yZWN0LndpZHRoKCkK Ky0gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uX3kgKz0gKGV2ZW50LnBvcygpLnkoKSAtIHNl bGYubW91c2VfcG9zaXRpb24ueSgpKSAvIHZpZXdwb3J0X3JlY3QuaGVpZ2h0KCkKKysgICAgICAg ICAgICAgICAgICAgIGxvY2F0aW9uX3ggKz0geF9tb3Rpb24gLyB2aWV3cG9ydF9yZWN0LndpZHRo KCkKKysgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uX3kgKz0geV9tb3Rpb24gLyB2aWV3cG9y dF9yZWN0LmhlaWdodCgpCisgCisgICAgICAgICAgICAgICAgICAgICAjIFVwZGF0ZSBrZXlmcmFt ZSB2YWx1ZSAob3IgY3JlYXRlIG5ldyBvbmUpCistICAgICAgICAgICAgICAgICAgICBzZWxmLnVw ZGF0ZUNsaXBQcm9wZXJ0eShzZWxmLnRyYW5zZm9ybWluZ19jbGlwLmlkLCBjbGlwX2ZyYW1lX251 bWJlciwgJ2xvY2F0aW9uX3gnLCBsb2NhdGlvbl94LCByZWZyZXNoPUZhbHNlKQorLSAgICAgICAg ICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdfY2xp cC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsICdsb2NhdGlvbl95JywgbG9jYXRpb25feSkKKysgICAg ICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5KAorKyAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAor KyAgICAgICAgICAgICAgICAgICAgICAgICdsb2NhdGlvbl94JywgbG9jYXRpb25feCwKKysgICAg ICAgICAgICAgICAgICAgICAgICByZWZyZXNoPUZhbHNlKQorKyAgICAgICAgICAgICAgICAgICAg c2VsZi51cGRhdGVDbGlwUHJvcGVydHkoCisrICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50 cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsCisrICAgICAgICAgICAgICAg ICAgICAgICAgJ2xvY2F0aW9uX3knLCBsb2NhdGlvbl95KQorIAorICAgICAgICAgICAgICAgICBl bGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NoZWFyX3RvcCc6CisgICAgICAgICAgICAgICAg ICAgICAjIEdldCBjdXJyZW50IGtleWZyYW1lIHNoZWFyIHZhbHVlCitAQCAtNjcyLDExICs4MDks MTMgQEAgZGVmIG1vdXNlTW92ZUV2ZW50KHNlbGYsIGV2ZW50KToKKyAgICAgICAgICAgICAgICAg ICAgICMgQ2FsY3VsYXRlIG5ldyBsb2NhdGlvbiBjb29yZGluYXRlcworICAgICAgICAgICAgICAg ICAgICAgYXNwZWN0X3JhdGlvID0gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8gc2VsZi5jbGlw Qm91bmRzLmhlaWdodCgpKSAqIDIuMAorICAgICAgICAgICAgICAgICAgICAgc2hlYXJfeCAtPSAo CistICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9w b3NpdGlvbi54KCkpIC8gKAorKyAgICAgICAgICAgICAgICAgICAgICAgIHhfbW90aW9uKSAvICgK KyAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgKiBzY2Fs ZV94KSAvIGFzcGVjdF9yYXRpbykKKyAKKyAgICAgICAgICAgICAgICAgICAgICMgVXBkYXRlIGtl eWZyYW1lIHZhbHVlIChvciBjcmVhdGUgbmV3IG9uZSkKKy0gICAgICAgICAgICAgICAgICAgIHNl bGYudXBkYXRlQ2xpcFByb3BlcnR5KHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJh bWVfbnVtYmVyLCAnc2hlYXJfeCcsIHNoZWFyX3gpCisrICAgICAgICAgICAgICAgICAgICBzZWxm LnVwZGF0ZUNsaXBQcm9wZXJ0eSgKKysgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRyYW5z Zm9ybWluZ19jbGlwLmlkLCBjbGlwX2ZyYW1lX251bWJlciwKKysgICAgICAgICAgICAgICAgICAg ICAgICAnc2hlYXJfeCcsIHNoZWFyX3gpCisgCisgICAgICAgICAgICAgICAgIGVsaWYgc2VsZi50 cmFuc2Zvcm1fbW9kZSA9PSAnc2hlYXJfYm90dG9tJzoKKyAgICAgICAgICAgICAgICAgICAgICMg R2V0IGN1cnJlbnQga2V5ZnJhbWUgc2hlYXIgdmFsdWUKK0BAIC02ODYsMTEgKzgyNSwxMyBAQCBk ZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgICAgICAgICAgIyBD YWxjdWxhdGUgbmV3IGxvY2F0aW9uIGNvb3JkaW5hdGVzCisgICAgICAgICAgICAgICAgICAgICBh c3BlY3RfcmF0aW8gPSAoc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgLyBzZWxmLmNsaXBCb3VuZHMu aGVpZ2h0KCkpICogMi4wCisgICAgICAgICAgICAgICAgICAgICBzaGVhcl94ICs9ICgKKy0gICAg ICAgICAgICAgICAgICAgICAgICBldmVudC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9u LngoKSkgLyAoCisrICAgICAgICAgICAgICAgICAgICAgICAgeF9tb3Rpb24pIC8gKAorICAgICAg ICAgICAgICAgICAgICAgICAgIChzZWxmLmNsaXBCb3VuZHMud2lkdGgoKSAqIHNjYWxlX3gpIC8g YXNwZWN0X3JhdGlvKQorIAorICAgICAgICAgICAgICAgICAgICAgIyBVcGRhdGUga2V5ZnJhbWUg dmFsdWUgKG9yIGNyZWF0ZSBuZXcgb25lKQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRh dGVDbGlwUHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9udW1i ZXIsICdzaGVhcl94Jywgc2hlYXJfeCkKKysgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRl Q2xpcFByb3BlcnR5KAorKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5n X2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICdz aGVhcl94Jywgc2hlYXJfeCkKKyAKKyAgICAgICAgICAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9y bV9tb2RlID09ICdzaGVhcl9sZWZ0JzoKKyAgICAgICAgICAgICAgICAgICAgICMgR2V0IGN1cnJl bnQga2V5ZnJhbWUgc2hlYXIgdmFsdWUKK0BAIC03MDEsMTEgKzg0MiwxMyBAQCBkZWYgbW91c2VN b3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgICAgICAgICAgYXNwZWN0X3JhdGlv ID0gKAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAv IHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpKSAqIDIuMAorICAgICAgICAgICAgICAgICAgICAgc2hl YXJfeSAtPSAoCistICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucG9zKCkueSgpIC0gc2Vs Zi5tb3VzZV9wb3NpdGlvbi55KCkpIC8gKAorKyAgICAgICAgICAgICAgICAgICAgICAgIHlfbW90 aW9uKSAvICgKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0 KCkgKiBzY2FsZV95IC8gYXNwZWN0X3JhdGlvKQorIAorICAgICAgICAgICAgICAgICAgICAgIyBV cGRhdGUga2V5ZnJhbWUgdmFsdWUgKG9yIGNyZWF0ZSBuZXcgb25lKQorLSAgICAgICAgICAgICAg ICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdfY2xpcC5pZCwg Y2xpcF9mcmFtZV9udW1iZXIsICdzaGVhcl95Jywgc2hlYXJfeSkKKysgICAgICAgICAgICAgICAg ICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5KAorKyAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICdzaGVhcl95Jywgc2hlYXJfeSkKKyAKKyAgICAgICAgICAgICAgICAgZWxp ZiBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdzaGVhcl9yaWdodCc6CisgICAgICAgICAgICAgICAg ICAgICAjIEdldCBjdXJyZW50IGtleWZyYW1lIHNoZWFyIHZhbHVlCitAQCAtNzEzLDEzICs4NTYs MTYgQEAgZGVmIG1vdXNlTW92ZUV2ZW50KHNlbGYsIGV2ZW50KToKKyAgICAgICAgICAgICAgICAg ICAgIHNoZWFyX3kgPSByYXdfcHJvcGVydGllcy5nZXQoJ3NoZWFyX3knKS5nZXQoJ3ZhbHVlJykK KyAKKyAgICAgICAgICAgICAgICAgICAgICMgQ2FsY3VsYXRlIG5ldyBsb2NhdGlvbiBjb29yZGlu YXRlcworLSAgICAgICAgICAgICAgICAgICAgYXNwZWN0X3JhdGlvID0gKHNlbGYuY2xpcEJvdW5k cy5oZWlnaHQoKSAvIHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpKSAqIDIuMAorKyAgICAgICAgICAg ICAgICAgICAgYXNwZWN0X3JhdGlvID0gKAorKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu Y2xpcEJvdW5kcy5oZWlnaHQoKSAvIHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpKSAqIDIuMAorICAg ICAgICAgICAgICAgICAgICAgc2hlYXJfeSArPSAoCistICAgICAgICAgICAgICAgICAgICAgICAg ZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi55KCkpIC8gKAorKyAgICAgICAg ICAgICAgICAgICAgICAgIHlfbW90aW9uKSAvICgKKyAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgKiBzY2FsZV95IC8gYXNwZWN0X3JhdGlvKQorIAorICAg ICAgICAgICAgICAgICAgICAgIyBVcGRhdGUga2V5ZnJhbWUgdmFsdWUgKG9yIGNyZWF0ZSBuZXcg b25lKQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoc2VsZi50 cmFuc2Zvcm1pbmdfY2xpcC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsICdzaGVhcl95Jywgc2hlYXJf eSkKKysgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5KAorKyAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVf bnVtYmVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICdzaGVhcl95Jywgc2hlYXJfeSkKKyAK KyAgICAgICAgICAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdyb3RhdGlvbic6 CisgICAgICAgICAgICAgICAgICAgICAjIEdldCBjdXJyZW50IHJvdGF0aW9uIGtleWZyYW1lIHZh bHVlCitAQCAtNzI4LDcxICs4NzQsNjggQEAgZGVmIG1vdXNlTW92ZUV2ZW50KHNlbGYsIGV2ZW50 KToKKyAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgPSBtYXgoZmxvYXQocmF3X3Byb3BlcnRp ZXMuZ2V0KCdzY2FsZV95JykuZ2V0KCd2YWx1ZScpKSwgMC4wMDEpCisgCisgICAgICAgICAgICAg ICAgICAgICAjIENhbGN1bGF0ZSBuZXcgbG9jYXRpb24gY29vcmRpbmF0ZXMKKy0gICAgICAgICAg ICAgICAgICAgIGlzX29uX2xlZnQgPSBldmVudC5wb3MoKS54KCkgPCBzZWxmLm9yaWdpbkhhbmRs ZS54KCkKKysgICAgICAgICAgICAgICAgICAgIGlzX29uX3JpZ2h0ID0gZXZlbnQucG9zKCkueCgp ID4gc2VsZi5vcmlnaW5IYW5kbGUueCgpCisgICAgICAgICAgICAgICAgICAgICBpc19vbl90b3Ag PSBldmVudC5wb3MoKS55KCkgPCBzZWxmLm9yaWdpbkhhbmRsZS55KCkKKyAKKy0gICAgICAgICAg ICAgICAgICAgIGlmIGlzX29uX3RvcDoKKy0gICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlv biArPSAoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnBvcygpLngoKSAtIHNl bGYubW91c2VfcG9zaXRpb24ueCgpKSAvICgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg KHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpICogc2NhbGVfeCkgLyA5MCkKKy0gICAgICAgICAgICAg ICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb24gLT0gKAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bv c2l0aW9uLngoKSkgLyAoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLmNsaXBC b3VuZHMud2lkdGgoKSAqIHNjYWxlX3gpIC8gOTApCistCistICAgICAgICAgICAgICAgICAgICBp ZiBpc19vbl9sZWZ0OgorLSAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uIC09ICgKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9w b3NpdGlvbi55KCkpIC8gKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5jbGlw Qm91bmRzLmhlaWdodCgpICogc2NhbGVfeSkgLyA5MCkKKy0gICAgICAgICAgICAgICAgICAgIGVs c2U6CistICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb24gKz0gKAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBldmVudC5wb3MoKS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLnko KSkgLyAoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLmNsaXBCb3VuZHMuaGVp Z2h0KCkgKiBzY2FsZV95KSAvIDkwKQorKyAgICAgICAgICAgICAgICAgICAgeF9hZGp1c3QgPSB4 X21vdGlvbiAvICgoc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgKiBzY2FsZV94KSAvIDkwKQorKyAg ICAgICAgICAgICAgICAgICAgcm90YXRpb24gKz0gKHhfYWRqdXN0IGlmIGlzX29uX3RvcCBlbHNl IC14X2FkanVzdCkKKysKKysgICAgICAgICAgICAgICAgICAgIHlfYWRqdXN0ID0geV9tb3Rpb24g LyAoKHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAqIHNjYWxlX3kpIC8gOTApCisrICAgICAgICAg ICAgICAgICAgICByb3RhdGlvbiArPSAoeV9hZGp1c3QgaWYgaXNfb25fcmlnaHQgZWxzZSAteV9h ZGp1c3QpCisgCisgICAgICAgICAgICAgICAgICAgICAjIFVwZGF0ZSBrZXlmcmFtZSB2YWx1ZSAo b3IgY3JlYXRlIG5ldyBvbmUpCistICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUNsaXBQ cm9wZXJ0eShzZWxmLnRyYW5zZm9ybWluZ19jbGlwLmlkLCBjbGlwX2ZyYW1lX251bWJlciwgJ3Jv dGF0aW9uJywgcm90YXRpb24pCisrICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUNsaXBQ cm9wZXJ0eSgKKysgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybWluZ19jbGlw LmlkLAorKyAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICdyb3RhdGlvbicsIHJvdGF0aW9uKQorIAorICAgICAgICAgICAg ICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUuc3RhcnRzd2l0aCgnc2NhbGVfJyk6CisgICAg ICAgICAgICAgICAgICAgICAjIEdldCBjdXJyZW50IHNjYWxlIGtleWZyYW1lIHZhbHVlCisgICAg ICAgICAgICAgICAgICAgICBzY2FsZV94ID0gbWF4KGZsb2F0KHJhd19wcm9wZXJ0aWVzLmdldCgn c2NhbGVfeCcpLmdldCgndmFsdWUnKSksIDAuMDAxKQorICAgICAgICAgICAgICAgICAgICAgc2Nh bGVfeSA9IG1heChmbG9hdChyYXdfcHJvcGVydGllcy5nZXQoJ3NjYWxlX3knKS5nZXQoJ3ZhbHVl JykpLCAwLjAwMSkKKyAKKysgICAgICAgICAgICAgICAgICAgIGhhbGZfdyA9IHNlbGYuY2xpcEJv dW5kcy53aWR0aCgpIC8gMi4wCisrICAgICAgICAgICAgICAgICAgICBoYWxmX2ggPSBzZWxmLmNs aXBCb3VuZHMuaGVpZ2h0KCkgLyAyLjAKKysKKyAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYu dHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX3RvcF9yaWdodCc6CistICAgICAgICAgICAgICAgICAg ICAgICAgc2NhbGVfeCArPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54 KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8gMi4wKQorLSAgICAgICAgICAgICAgICAg ICAgICAgIHNjYWxlX3kgLT0gKGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9zaXRpb24u eSgpKSAvIChzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAyLjApCisrICAgICAgICAgICAgICAg ICAgICAgICAgc2NhbGVfeCArPSB4X21vdGlvbiAvIGhhbGZfdworKyAgICAgICAgICAgICAgICAg ICAgICAgIHNjYWxlX3kgLT0geV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAgICAgICAgICAgICAg IGVsaWYgc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnc2NhbGVfYm90dG9tX3JpZ2h0JzoKKy0gICAg ICAgICAgICAgICAgICAgICAgICBzY2FsZV94ICs9IChldmVudC5wb3MoKS54KCkgLSBzZWxmLm1v dXNlX3Bvc2l0aW9uLngoKSkgLyAoc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgLyAyLjApCistICAg ICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSArPSAoZXZlbnQucG9zKCkueSgpIC0gc2VsZi5t b3VzZV9wb3NpdGlvbi55KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAvIDIuMCkKKysg ICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ICs9IHhfbW90aW9uIC8gaGFsZl93CisrICAg ICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSArPSB5X21vdGlvbiAvIGhhbGZfaAorICAgICAg ICAgICAgICAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdzY2FsZV90b3BfbGVm dCc6CistICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeCAtPSAoZXZlbnQucG9zKCkueCgp IC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8g Mi4wKQorLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgLT0gKGV2ZW50LnBvcygpLnko KSAtIHNlbGYubW91c2VfcG9zaXRpb24ueSgpKSAvIChzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkg LyAyLjApCisrICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeCAtPSB4X21vdGlvbiAvIGhh bGZfdworKyAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgLT0geV9tb3Rpb24gLyBoYWxm X2gKKyAgICAgICAgICAgICAgICAgICAgIGVsaWYgc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnc2Nh bGVfYm90dG9tX2xlZnQnOgorLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3ggLT0gKGV2 ZW50LnBvcygpLngoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueCgpKSAvIChzZWxmLmNsaXBCb3Vu ZHMud2lkdGgoKSAvIDIuMCkKKy0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95ICs9IChl dmVudC5wb3MoKS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLnkoKSkgLyAoc2VsZi5jbGlwQm91 bmRzLmhlaWdodCgpIC8gMi4wKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3ggLT0g eF9tb3Rpb24gLyBoYWxmX3cKKysgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95ICs9IHlf bW90aW9uIC8gaGFsZl9oCisgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3Jt X21vZGUgPT0gJ3NjYWxlX3RvcCc6CistICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSAt PSAoZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi55KCkpIC8gKHNlbGYuY2xp cEJvdW5kcy5oZWlnaHQoKSAvIDIuMCkKKysgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95 IC09IHlfbW90aW9uIC8gaGFsZl9oCisgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJh bnNmb3JtX21vZGUgPT0gJ3NjYWxlX2JvdHRvbSc6CistICAgICAgICAgICAgICAgICAgICAgICAg c2NhbGVfeSArPSAoZXZlbnQucG9zKCkueSgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi55KCkpIC8g KHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAvIDIuMCkKKysgICAgICAgICAgICAgICAgICAgICAg ICBzY2FsZV95ICs9IHlfbW90aW9uIC8gaGFsZl9oCisgICAgICAgICAgICAgICAgICAgICBlbGlm IHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX2xlZnQnOgorLSAgICAgICAgICAgICAgICAg ICAgICAgIHNjYWxlX3ggLT0gKGV2ZW50LnBvcygpLngoKSAtIHNlbGYubW91c2VfcG9zaXRpb24u eCgpKSAvIChzZWxmLmNsaXBCb3VuZHMud2lkdGgoKSAvIDIuMCkKKysgICAgICAgICAgICAgICAg ICAgICAgICBzY2FsZV94IC09IHhfbW90aW9uIC8gaGFsZl93CisgICAgICAgICAgICAgICAgICAg ICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX3JpZ2h0JzoKKy0gICAgICAgICAg ICAgICAgICAgICAgICBzY2FsZV94ICs9IChldmVudC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bv c2l0aW9uLngoKSkgLyAoc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgLyAyLjApCisrICAgICAgICAg ICAgICAgICAgICAgICAgc2NhbGVfeCArPSB4X21vdGlvbiAvIGhhbGZfdworIAorICAgICAgICAg ICAgICAgICAgICAgaWYgaW50KFFDb3JlQXBwbGljYXRpb24uaW5zdGFuY2UoKS5rZXlib2FyZE1v ZGlmaWVycygpICYgUXQuQ29udHJvbE1vZGlmaWVyKSA+IDA6CisgICAgICAgICAgICAgICAgICAg ICAgICAgIyBJZiBDVFJMIGtleSBpcyBwcmVzc2VkLCBmaXggdGhlIHNjYWxlX3kgdG8gdGhlIGNv cnJlY3QgYXNwZWN0IHJhdGlvbgorLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNjYWxlX3gg YW5kIHNjYWxlX3k6CisrICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2NhbGVfeDoKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSA9IHNjYWxlX3gKKyAgICAgICAgICAgICAg ICAgICAgICAgICBlbGlmIHNjYWxlX3k6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNj YWxlX3ggPSBzY2FsZV95CistICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiBzY2FsZV94Ogor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95ID0gc2NhbGVfeAorIAorICAgICAg ICAgICAgICAgICAgICAgIyBVcGRhdGUga2V5ZnJhbWUgdmFsdWUgKG9yIGNyZWF0ZSBuZXcgb25l KQorICAgICAgICAgICAgICAgICAgICAgYm90aF9zY2FsZWQgPSBzY2FsZV94ICE9IDAuMDAxIGFu ZCBzY2FsZV95ICE9IDAuMDAxCisgICAgICAgICAgICAgICAgICAgICBpZiBzY2FsZV94ICE9IDAu MDAxOgorLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ2xpcFByb3BlcnR5KHNl bGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLCAnc2NhbGVfeCcsIHNj YWxlX3gsIHJlZnJlc2g9KG5vdCBib3RoX3NjYWxlZCkpCisrICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi51cGRhdGVDbGlwUHJvcGVydHkoCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnc2NhbGVfeCcsIHNjYWxlX3gsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlZnJlc2g9KG5vdCBib3RoX3NjYWxlZCkpCisgICAgICAgICAgICAgICAg ICAgICBpZiBzY2FsZV95ICE9IDAuMDAxOgorLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu dXBkYXRlQ2xpcFByb3BlcnR5KHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVf bnVtYmVyLCAnc2NhbGVfeScsIHNjYWxlX3kpCisrICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi51cGRhdGVDbGlwUHJvcGVydHkoCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu dHJhbnNmb3JtaW5nX2NsaXAuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnc2NhbGVfeScsIHNjYWxlX3kpCisgCisgICAgICAgICAgICAgIyBGb3Jj ZSByZS1wYWludAorICAgICAgICAgICAgIHNlbGYudXBkYXRlKCkKK0BAIC04MDMsMTYgKzk0Niwy OSBAQCBkZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgIGNzID0g c2VsZi5jcworIAorICAgICAgICAgICAgICMgQWRqdXN0IGV4aXN0aW5nIHJlZ2lvbiBjb29yZGlu YXRlcyAoaWYgYW55KQorLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLm1vdXNlX2RyYWdnaW5nIGFu ZCBzZWxmLnJlc2l6ZV9idXR0b24uaXNWaXNpYmxlKCkgYW5kIHNlbGYucmVzaXplX2J1dHRvbi5y ZWN0KCkuY29udGFpbnMoZXZlbnQucG9zKCkpOgorKyAgICAgICAgICAgIGlmIChub3Qgc2VsZi5t b3VzZV9kcmFnZ2luZworKyAgICAgICAgICAgICAgICBhbmQgc2VsZi5yZXNpemVfYnV0dG9uLmlz VmlzaWJsZSgpCisrICAgICAgICAgICAgICAgIGFuZCBzZWxmLnJlc2l6ZV9idXR0b24ucmVjdCgp LmNvbnRhaW5zKGV2ZW50LnBvcygpKQorKyAgICAgICAgICAgICk6CisgICAgICAgICAgICAgICAg ICMgTW91c2Ugb3ZlciByZXNpemUgYnV0dG9uIChhbmQgbm90IGN1cnJlbnRseSBkcmFnZ2luZykK KyAgICAgICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3IoUXQuQXJyb3dDdXJzb3IpCistICAgICAg ICAgICAgZWxpZiBzZWxmLnJlZ2lvbl90cmFuc2Zvcm0gYW5kIHNlbGYucmVnaW9uVG9wTGVmdEhh bmRsZSBhbmQgc2VsZi5yZWdpb25fdHJhbnNmb3JtLm1hcFRvUG9seWdvbihzZWxmLnJlZ2lvblRv cExlZnRIYW5kbGUudG9SZWN0KCkpLmNvbnRhaW5zUG9pbnQoZXZlbnQucG9zKCksIFF0Lk9kZEV2 ZW5GaWxsKToKKysgICAgICAgICAgICBlbGlmICgKKysgICAgICAgICAgICAgICAgICAgIHNlbGYu cmVnaW9uX3RyYW5zZm9ybQorKyAgICAgICAgICAgICAgICAgICAgYW5kIHNlbGYucmVnaW9uVG9w TGVmdEhhbmRsZQorKyAgICAgICAgICAgICAgICAgICAgYW5kIHNlbGYucmVnaW9uX3RyYW5zZm9y bS5tYXBUb1BvbHlnb24oCisrICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25Ub3BM ZWZ0SGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVu RmlsbCkKKysgICAgICAgICAgICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgIGlmIG5vdCBz ZWxmLnJlZ2lvbl9tb2RlIG9yIHNlbGYucmVnaW9uX21vZGUgPT0gJ3NjYWxlX3RvcF9sZWZ0JzoK KyAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vyc29yKHNl bGYuY3Vyc29ycy5nZXQoJ3Jlc2l6ZV9mZGlhZycpLCAwLCAwLCAwKSkKKyAgICAgICAgICAgICAg ICAgIyBTZXQgdGhlIHJlZ2lvbiBtb2RlCisgICAgICAgICAgICAgICAgIGlmIHNlbGYubW91c2Vf ZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnJlZ2lvbl9tb2RlOgorICAgICAgICAgICAgICAgICAgICAg c2VsZi5yZWdpb25fbW9kZSA9ICdzY2FsZV90b3BfbGVmdCcKKy0gICAgICAgICAgICBlbGlmIHNl bGYucmVnaW9uX3RyYW5zZm9ybSBhbmQgc2VsZi5yZWdpb25Cb3R0b21SaWdodEhhbmRsZSBhbmQg c2VsZi5yZWdpb25fdHJhbnNmb3JtLm1hcFRvUG9seWdvbihzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0 SGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmls bCk6CisrICAgICAgICAgICAgZWxpZiAoCisrICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lv bl90cmFuc2Zvcm0KKysgICAgICAgICAgICAgICAgICAgIGFuZCBzZWxmLnJlZ2lvbkJvdHRvbVJp Z2h0SGFuZGxlCisrICAgICAgICAgICAgICAgICAgICBhbmQgc2VsZi5yZWdpb25fdHJhbnNmb3Jt Lm1hcFRvUG9seWdvbigKKysgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbkJvdHRv bVJpZ2h0SGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRF dmVuRmlsbCkKKysgICAgICAgICAgICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgIGlmIG5v dCBzZWxmLnJlZ2lvbl9tb2RlIG9yIHNlbGYucmVnaW9uX21vZGUgPT0gJ3NjYWxlX2JvdHRvbV9y aWdodCc6CisgICAgICAgICAgICAgICAgICAgICBzZWxmLnNldEN1cnNvcihzZWxmLnJvdGF0ZUN1 cnNvcihzZWxmLmN1cnNvcnMuZ2V0KCdyZXNpemVfZmRpYWcnKSwgMCwgMCwgMCkpCisgICAgICAg ICAgICAgICAgICMgU2V0IHRoZSByZWdpb24gbW9kZQorQEAgLTgyNCwxMyArOTgwLDI1IEBAIGRl ZiBtb3VzZU1vdmVFdmVudChzZWxmLCBldmVudCk6CisgICAgICAgICAgICAgIyBJbml0aWFsaXpl IG5ldyByZWdpb24gY29vcmRpbmF0ZXMgYXQgY3VycmVudCBldmVudC5wb3MoKQorICAgICAgICAg ICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnJlZ2lvbl9tb2RlOgorICAg ICAgICAgICAgICAgICBzZWxmLnJlZ2lvbl9tb2RlID0gJ3NjYWxlX2JvdHRvbV9yaWdodCcKKy0g ICAgICAgICAgICAgICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlID0gUVJlY3RGKHNlbGYucmVn aW9uX3RyYW5zZm9ybV9pbnZlcnRlZC5tYXAoZXZlbnQucG9zKCkpLngoKSwgc2VsZi5yZWdpb25f dHJhbnNmb3JtX2ludmVydGVkLm1hcChldmVudC5wb3MoKSkueSgpLCBjcywgY3MpCistICAgICAg ICAgICAgICAgIHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUgPSBRUmVjdEYoc2VsZi5yZWdp b25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChldmVudC5wb3MoKSkueCgpLCBzZWxmLnJlZ2lvbl90 cmFuc2Zvcm1faW52ZXJ0ZWQubWFwKGV2ZW50LnBvcygpKS55KCksIGNzLCBjcykKKysgICAgICAg ICAgICAgICAgc2VsZi5yZWdpb25Ub3BMZWZ0SGFuZGxlID0gUVJlY3RGKAorKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5yZWdpb25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChldmVudC5wb3MoKSku eCgpLAorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25fdHJhbnNmb3JtX2ludmVydGVk Lm1hcChldmVudC5wb3MoKSkueSgpLAorKyAgICAgICAgICAgICAgICAgICAgY3MsIGNzKQorKyAg ICAgICAgICAgICAgICBzZWxmLnJlZ2lvbkJvdHRvbVJpZ2h0SGFuZGxlID0gUVJlY3RGKAorKyAg ICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChldmVu dC5wb3MoKSkueCgpLAorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWdpb25fdHJhbnNmb3Jt X2ludmVydGVkLm1hcChldmVudC5wb3MoKSkueSgpLAorKyAgICAgICAgICAgICAgICAgICAgY3Ms IGNzKQorIAorICAgICAgICAgICAgICMgTW92ZSBleGlzdGluZyByZWdpb24gY29vcmRpbmF0ZXMK KyAgICAgICAgICAgICBpZiBzZWxmLm1vdXNlX2RyYWdnaW5nOgorLSAgICAgICAgICAgICAgICBk aWZmX3ggPSBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQubWFwKGV2ZW50LnBvcygpKS54 KCkgLSBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQubWFwKHNlbGYubW91c2VfcG9zaXRp b24pLngoKQorLSAgICAgICAgICAgICAgICBkaWZmX3kgPSBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1f aW52ZXJ0ZWQubWFwKGV2ZW50LnBvcygpKS55KCkgLSBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52 ZXJ0ZWQubWFwKHNlbGYubW91c2VfcG9zaXRpb24pLnkoKQorKyAgICAgICAgICAgICAgICBkaWZm X3ggPSBpbnQoCisrICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52 ZXJ0ZWQubWFwKGV2ZW50LnBvcygpKS54KCkKKysgICAgICAgICAgICAgICAgICAgIC0gc2VsZi5y ZWdpb25fdHJhbnNmb3JtX2ludmVydGVkLm1hcChzZWxmLm1vdXNlX3Bvc2l0aW9uKS54KCkKKysg ICAgICAgICAgICAgICAgKQorKyAgICAgICAgICAgICAgICBkaWZmX3kgPSBpbnQoCisrICAgICAg ICAgICAgICAgICAgICBzZWxmLnJlZ2lvbl90cmFuc2Zvcm1faW52ZXJ0ZWQubWFwKGV2ZW50LnBv cygpKS55KCkKKysgICAgICAgICAgICAgICAgICAgIC0gc2VsZi5yZWdpb25fdHJhbnNmb3JtX2lu dmVydGVkLm1hcChzZWxmLm1vdXNlX3Bvc2l0aW9uKS55KCkKKysgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgICAgICBpZiBzZWxmLnJlZ2lvbl9tb2RlID09ICdzY2FsZV90b3BfbGVmdCc6 CisgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZ2lvblRvcExlZnRIYW5kbGUuYWRqdXN0KGRp ZmZfeCwgZGlmZl95LCBkaWZmX3gsIGRpZmZfeSkKKyAgICAgICAgICAgICAgICAgZWxpZiBzZWxm LnJlZ2lvbl9tb2RlID09ICdzY2FsZV9ib3R0b21fcmlnaHQnOgorQEAgLTg1OSwxMiArMTAyNywx MSBAQCBkZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgIGlmIHNl bGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorICAgICAgICAg ICAgICAgICBzZWxmLm9yaWdpbmFsX2NsaXBfZGF0YSA9IHNlbGYudHJhbnNmb3JtaW5nX2NsaXAu ZGF0YQorIAorLQorLQorICAgICAgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtaW5nX2VmZmVjdF9v YmplY3QuaW5mby5oYXNfdHJhY2tlZF9vYmplY3Q6CisgICAgICAgICAgICAgICAgICMgR2V0IHBy b3BlcnRpZXMgb2YgZWZmZWN0IGF0IGN1cnJlbnQgZnJhbWUKKyAgICAgICAgICAgICAgICAgcmF3 X3Byb3BlcnRpZXMgPSBqc29uLmxvYWRzKHNlbGYudHJhbnNmb3JtaW5nX2VmZmVjdF9vYmplY3Qu UHJvcGVydGllc0pTT04oY2xpcF9mcmFtZV9udW1iZXIpKQorLSAgICAgICAgICAgICAgICAgIyBH ZXQgcHJvcGVydGllcyBmb3IgdGhlIGZpcnN0IG9iamVjdCBpbiBkaWN0LiBQcm9wZXJ0aWVzSlNP TiBzaG91bGQgcmV0dXJuIG9uZSBvYmplY3QgYXQgdGhlIHRpbWUKKysgICAgICAgICAgICAgICAg IyBHZXQgcHJvcGVydGllcyBmb3IgdGhlIGZpcnN0IG9iamVjdCBpbiBkaWN0LgorKyAgICAgICAg ICAgICAgICAjIFByb3BlcnRpZXNKU09OIHNob3VsZCByZXR1cm4gb25lIG9iamVjdCBhdCB0aGUg dGltZQorICAgICAgICAgICAgICAgICBvYmpfaWQgPSBsaXN0KHJhd19wcm9wZXJ0aWVzLmdldCgn b2JqZWN0cycpLmtleXMoKSlbMF0KKyAgICAgICAgICAgICAgICAgcmF3X3Byb3BlcnRpZXMgPSBy YXdfcHJvcGVydGllcy5nZXQoJ29iamVjdHMnKS5nZXQob2JqX2lkKQorIAorQEAgLTg3OCwxOCAr MTA0NSwyOCBAQCBkZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAg ICAgICAjIFRyYW5zZm9ybSBlZmZlY3Qgb2JqZWN0CisgICAgICAgICAgICAgICAgIGlmIHNlbGYu dHJhbnNmb3JtX21vZGU6CisgCisrICAgICAgICAgICAgICAgICAgICB4X21vdGlvbiA9IGV2ZW50 LnBvcygpLngoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueCgpCisrICAgICAgICAgICAgICAgICAg ICB5X21vdGlvbiA9IGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueSgpCisr CisgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdsb2NhdGlv bic6CisgICAgICAgICAgICAgICAgICAgICAgICAgIyBHZXQgY3VycmVudCBrZXlmcmFtZSB2YWx1 ZQorICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uX3ggPSByYXdfcHJvcGVydGllcy5n ZXQoJ2RlbHRhX3gnKS5nZXQoJ3ZhbHVlJykKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb2Nh dGlvbl95ID0gcmF3X3Byb3BlcnRpZXMuZ2V0KCdkZWx0YV95JykuZ2V0KCd2YWx1ZScpCisgCisg ICAgICAgICAgICAgICAgICAgICAgICAgIyBDYWxjdWxhdGUgbmV3IGxvY2F0aW9uIGNvb3JkaW5h dGVzCistICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25feCArPSAoZXZlbnQucG9zKCku eCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gdmlld3BvcnRfcmVjdC53aWR0aCgpCist ICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25feSArPSAoZXZlbnQucG9zKCkueSgpIC0g c2VsZi5tb3VzZV9wb3NpdGlvbi55KCkpIC8gdmlld3BvcnRfcmVjdC5oZWlnaHQoKQorKyAgICAg ICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uX3ggKz0geF9tb3Rpb24gLyB2aWV3cG9ydF9yZWN0 LndpZHRoKCkKKysgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbl95ICs9IHlfbW90aW9u IC8gdmlld3BvcnRfcmVjdC5oZWlnaHQoKQorIAorICAgICAgICAgICAgICAgICAgICAgICAgICMg VXBkYXRlIGtleWZyYW1lIHZhbHVlIChvciBjcmVhdGUgbmV3IG9uZSkKKy0gICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnVwZGF0ZUVmZmVjdFByb3BlcnR5KHNlbGYudHJhbnNmb3JtaW5nX2Vm ZmVjdC5pZCwgY2xpcF9mcmFtZV9udW1iZXIsIG9ial9pZCwgJ2RlbHRhX3gnLCBsb2NhdGlvbl94 LCByZWZyZXNoPUZhbHNlKQorLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlRWZm ZWN0UHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0LmlkLCBjbGlwX2ZyYW1lX251bWJl ciwgb2JqX2lkLCAnZGVsdGFfeScsIGxvY2F0aW9uX3kpCisrICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi51cGRhdGVFZmZlY3RQcm9wZXJ0eSgKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0LmlkLCBjbGlwX2ZyYW1lX251bWJlciwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2JqX2lkLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnZGVsdGFfeCcsIGxvY2F0aW9uX3gsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlZnJlc2g9RmFsc2UpCisrICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVFZmZl Y3RQcm9wZXJ0eSgKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1p bmdfZWZmZWN0LmlkLCBjbGlwX2ZyYW1lX251bWJlciwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb2JqX2lkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsdGFfeScsIGxv Y2F0aW9uX3kpCisgCisgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21v ZGUgPT0gJ3JvdGF0aW9uJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAjIEdldCBjdXJyZW50 IHJvdGF0aW9uIGtleWZyYW1lIHZhbHVlCitAQCAtODk4LDYzICsxMDc1LDcwIEBAIGRlZiBtb3Vz ZU1vdmVFdmVudChzZWxmLCBldmVudCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVf eSA9IG1heChmbG9hdChyYXdfcHJvcGVydGllcy5nZXQoJ3NjYWxlX3knKS5nZXQoJ3ZhbHVlJykp LCAwLjAwMSkKKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAjIENhbGN1bGF0ZSBuZXcgbG9j YXRpb24gY29vcmRpbmF0ZXMKKy0gICAgICAgICAgICAgICAgICAgICAgICBpc19vbl9sZWZ0ID0g ZXZlbnQucG9zKCkueCgpIDwgc2VsZi5vcmlnaW5IYW5kbGUueCgpCisrICAgICAgICAgICAgICAg ICAgICAgICAgaXNfb25fcmlnaHQgPSBldmVudC5wb3MoKS54KCkgPiBzZWxmLm9yaWdpbkhhbmRs ZS54KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpc19vbl90b3AgPSBldmVudC5wb3MoKS55 KCkgPCBzZWxmLm9yaWdpbkhhbmRsZS55KCkKKyAKKy0gICAgICAgICAgICAgICAgICAgICAgICBp ZiBpc19vbl90b3A6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uICs9IChl dmVudC5wb3MoKS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkgLyAoKHNlbGYuY2xpcEJv dW5kcy53aWR0aCgpICogc2NhbGVfeCkgLyA5MCkKKy0gICAgICAgICAgICAgICAgICAgICAgICBl bHNlOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbiAtPSAoZXZlbnQucG9z KCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKChzZWxmLmNsaXBCb3VuZHMud2lk dGgoKSAqIHNjYWxlX3gpIC8gOTApCisrICAgICAgICAgICAgICAgICAgICAgICAgeF9hZGp1c3Qg PSB4X21vdGlvbiAvIChzZWxmLmNsaXBCb3VuZHMud2lkdGgoKSAqIHNjYWxlX3ggLyA5MCkKKysg ICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbiArPSAoeF9hZGp1c3QgaWYgaXNfb25fdG9w IGVsc2UgLXhfYWRqdXN0KQorIAorLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlzX29uX2xl ZnQ6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uIC09IChldmVudC5wb3Mo KS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLnkoKSkgLyAoKHNlbGYuY2xpcEJvdW5kcy5oZWln aHQoKSAqIHNjYWxlX3kpIC8gOTApCistICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb24gKz0gKGV2ZW50LnBvcygpLnkoKSAt IHNlbGYubW91c2VfcG9zaXRpb24ueSgpKSAvICgoc2VsZi5jbGlwQm91bmRzLmhlaWdodCgpICog c2NhbGVfeSkgLyA5MCkKKysgICAgICAgICAgICAgICAgICAgICAgICB5X2FkanVzdCA9IHlfbW90 aW9uIC8gKHNlbGYuY2xpcEJvdW5kcy5oZWlnaHQoKSAqIHNjYWxlX3kgLyA5MCkKKysgICAgICAg ICAgICAgICAgICAgICAgICByb3RhdGlvbiArPSAoeV9hZGp1c3QgaWYgaXNfb25fcmlnaHQgZWxz ZSAteV9hZGp1c3QpCisgCisgICAgICAgICAgICAgICAgICAgICAgICAgIyBVcGRhdGUga2V5ZnJh bWUgdmFsdWUgKG9yIGNyZWF0ZSBuZXcgb25lKQorLSAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYudXBkYXRlRWZmZWN0UHJvcGVydHkoc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0LmlkLCBjbGlw X2ZyYW1lX251bWJlciwgb2JqX2lkLCAncm90YXRpb24nLCByb3RhdGlvbikKKysgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUVmZmVjdFByb3BlcnR5KAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybWluZ19lZmZlY3QuaWQsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNsaXBfZnJhbWVfbnVtYmVyLCBvYmpfaWQsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdyb3RhdGlvbicsIHJvdGF0aW9uKQorIAorICAgICAgICAgICAgICAg ICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybV9tb2RlLnN0YXJ0c3dpdGgoJ3NjYWxlXycpOgorICAg ICAgICAgICAgICAgICAgICAgICAgICMgR2V0IGN1cnJlbnQgc2NhbGUga2V5ZnJhbWUgdmFsdWUK KyAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ID0gbWF4KGZsb2F0KHJhd19wcm9wZXJ0 aWVzLmdldCgnc2NhbGVfeCcpLmdldCgndmFsdWUnKSksIDAuMDAxKQorICAgICAgICAgICAgICAg ICAgICAgICAgIHNjYWxlX3kgPSBtYXgoZmxvYXQocmF3X3Byb3BlcnRpZXMuZ2V0KCdzY2FsZV95 JykuZ2V0KCd2YWx1ZScpKSwgMC4wMDEpCisgCisrICAgICAgICAgICAgICAgICAgICAgICAgaGFs Zl93ID0gc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgLyAyLjAKKysgICAgICAgICAgICAgICAgICAg ICAgICBoYWxmX2ggPSBzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAyLjAKKysKKyAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdzY2FsZV90b3Bfcmln aHQnOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ICs9IChldmVudC5wb3Mo KS54KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkgLyAoc2VsZi5jbGlwQm91bmRzLndpZHRo KCkgLyAyLjApCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgLT0gKGV2ZW50 LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueSgpKSAvIChzZWxmLmNsaXBCb3VuZHMu aGVpZ2h0KCkgLyAyLjApCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3ggKz0g eF9tb3Rpb24gLyBoYWxmX3cKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeSAt PSB5X21vdGlvbiAvIGhhbGZfaAorICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgc2VsZi50 cmFuc2Zvcm1fbW9kZSA9PSAnc2NhbGVfYm90dG9tX3JpZ2h0JzoKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2NhbGVfeCArPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3Np dGlvbi54KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8gMi4wKQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzY2FsZV95ICs9IChldmVudC5wb3MoKS55KCkgLSBzZWxmLm1vdXNl X3Bvc2l0aW9uLnkoKSkgLyAoc2VsZi5jbGlwQm91bmRzLmhlaWdodCgpIC8gMi4wKQorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ICs9IHhfbW90aW9uIC8gaGFsZl93CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgKz0geV9tb3Rpb24gLyBoYWxmX2gKKyAg ICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxl X3RvcF9sZWZ0JzoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeCAtPSAoZXZl bnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKHNlbGYuY2xpcEJvdW5k cy53aWR0aCgpIC8gMi4wKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95IC09 IChldmVudC5wb3MoKS55KCkgLSBzZWxmLm1vdXNlX3Bvc2l0aW9uLnkoKSkgLyAoc2VsZi5jbGlw Qm91bmRzLmhlaWdodCgpIC8gMi4wKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2Fs ZV94IC09IHhfbW90aW9uIC8gaGFsZl93CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNj YWxlX3kgLT0geV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGlm IHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX2JvdHRvbV9sZWZ0JzoKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2NhbGVfeCAtPSAoZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3Vz ZV9wb3NpdGlvbi54KCkpIC8gKHNlbGYuY2xpcEJvdW5kcy53aWR0aCgpIC8gMi4wKQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95ICs9IChldmVudC5wb3MoKS55KCkgLSBzZWxm Lm1vdXNlX3Bvc2l0aW9uLnkoKSkgLyAoc2VsZi5jbGlwQm91bmRzLmhlaWdodCgpIC8gMi4wKQor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94IC09IHhfbW90aW9uIC8gaGFsZl93 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgKz0geV9tb3Rpb24gLyBoYWxm X2gKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0g J3NjYWxlX3RvcCc6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kgLT0gKGV2 ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9zaXRpb24ueSgpKSAvIChzZWxmLmNsaXBCb3Vu ZHMuaGVpZ2h0KCkgLyAyLjApCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3kg LT0geV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYu dHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX2JvdHRvbSc6CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNjYWxlX3kgKz0gKGV2ZW50LnBvcygpLnkoKSAtIHNlbGYubW91c2VfcG9zaXRpb24u eSgpKSAvIChzZWxmLmNsaXBCb3VuZHMuaGVpZ2h0KCkgLyAyLjApCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjYWxlX3kgKz0geV9tb3Rpb24gLyBoYWxmX2gKKyAgICAgICAgICAgICAg ICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NjYWxlX2xlZnQnOgorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94IC09IChldmVudC5wb3MoKS54KCkgLSBz ZWxmLm1vdXNlX3Bvc2l0aW9uLngoKSkgLyAoc2VsZi5jbGlwQm91bmRzLndpZHRoKCkgLyAyLjAp CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlX3ggLT0geF9tb3Rpb24gLyBoYWxm X3cKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNlbGYudHJhbnNmb3JtX21vZGUgPT0g J3NjYWxlX3JpZ2h0JzoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeCArPSAo ZXZlbnQucG9zKCkueCgpIC0gc2VsZi5tb3VzZV9wb3NpdGlvbi54KCkpIC8gKHNlbGYuY2xpcEJv dW5kcy53aWR0aCgpIC8gMi4wKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94 ICs9IHhfbW90aW9uIC8gaGFsZl93CisgCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW50 KFFDb3JlQXBwbGljYXRpb24uaW5zdGFuY2UoKS5rZXlib2FyZE1vZGlmaWVycygpICYgUXQuQ29u dHJvbE1vZGlmaWVyKSA+IDA6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgSWYgQ1RS TCBrZXkgaXMgcHJlc3NlZCwgZml4IHRoZSBzY2FsZV95IHRvIHRoZSBjb3JyZWN0IGFzcGVjdCBy YXRpb24KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2NhbGVfeCBhbmQgc2NhbGVf eToKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBJZiBDVFJMIGtleSBpcyBwcmVzc2Vk LCBmaXggdGhlIHNjYWxlX3kgdG8gdGhlIGNvcnJlY3QgYXNwZWN0IHJhdGlvCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIHNjYWxlX3g6CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzY2FsZV95ID0gc2NhbGVfeAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl bGlmIHNjYWxlX3k6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV94ID0g c2NhbGVfeQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHNjYWxlX3g6CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95ID0gc2NhbGVfeAorIAorICAgICAg ICAgICAgICAgICAgICAgICAgICMgVXBkYXRlIGtleWZyYW1lIHZhbHVlIChvciBjcmVhdGUgbmV3 IG9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBib3RoX3NjYWxlZCA9IHNjYWxlX3ggIT0g MC4wMDEgYW5kIHNjYWxlX3kgIT0gMC4wMDEKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBz Y2FsZV94ICE9IDAuMDAxOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0 ZUVmZmVjdFByb3BlcnR5KHNlbGYudHJhbnNmb3JtaW5nX2VmZmVjdC5pZCwgY2xpcF9mcmFtZV9u dW1iZXIsIG9ial9pZCwgJ3NjYWxlX3gnLCBzY2FsZV94LCByZWZyZXNoPShub3QgYm90aF9zY2Fs ZWQpKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUVmZmVjdFByb3Bl cnR5KAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdf ZWZmZWN0LmlkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcF9mcmFtZV9u dW1iZXIsIG9ial9pZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY2FsZV94 Jywgc2NhbGVfeCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2g9KG5v dCBib3RoX3NjYWxlZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2NhbGVfeSAhPSAw LjAwMToKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVFZmZlY3RQcm9w ZXJ0eShzZWxmLnRyYW5zZm9ybWluZ19lZmZlY3QuaWQsIGNsaXBfZnJhbWVfbnVtYmVyLCBvYmpf aWQsICdzY2FsZV95Jywgc2NhbGVfeSkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi51cGRhdGVFZmZlY3RQcm9wZXJ0eSgKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYudHJhbnNmb3JtaW5nX2VmZmVjdC5pZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNsaXBfZnJhbWVfbnVtYmVyLCBvYmpfaWQsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnc2NhbGVfeScsIHNjYWxlX3kpCisgCisgICAgICAgICAgICAgIyBGb3JjZSBy ZS1wYWludAorICAgICAgICAgICAgIHNlbGYudXBkYXRlKCkKK0BAIC0xMDEyLDggKzExOTYsMTUg QEAgZGVmIHVwZGF0ZUVmZmVjdFByb3BlcnR5KHNlbGYsIGVmZmVjdF9pZCwgZnJhbWVfbnVtYmVy LCBvYmpfaWQsIHByb3BlcnR5X2tleSwgbmUKKyAgICAgICAgICAgICAjIE5vIGNsaXAgZm91bmQK KyAgICAgICAgICAgICByZXR1cm4KKyAKKy0gICAgICAgIGZvciBwb2ludCBpbiBjLmRhdGFbJ29i amVjdHMnXVtvYmpfaWRdW3Byb3BlcnR5X2tleV1bIlBvaW50cyJdOgorLSAgICAgICAgICAgIGxv Zy5pbmZvKCJsb29waW5nIHBvaW50czogY28uWCA9ICVzIiAlIHBvaW50WyJjbyJdWyJYIl0pCisr ICAgICAgICB0cnk6CisrICAgICAgICAgICAgcHJvcHMgPSBjLmRhdGFbJ29iamVjdHMnXVtvYmpf aWRdCisrICAgICAgICAgICAgcG9pbnRzX2xpc3QgPSBwcm9wc1twcm9wZXJ0eV9rZXldWyJQb2lu dHMiXQorKyAgICAgICAgZXhjZXB0IChUeXBlRXJyb3IsIEtleUVycm9yKToKKysgICAgICAgICAg ICBsb2cuZXJyb3IoIkNvcnJ1cHRlZCBwcm9qZWN0IGRhdGEhIiwgZXhjX2luZm89MSkKKysgICAg ICAgICAgICByZXR1cm4KKysKKysgICAgICAgIGZvciBwb2ludCBpbiBwb2ludHNfbGlzdDoKKysg ICAgICAgICAgICBsb2cuaW5mbygibG9vcGluZyBwb2ludHM6IGNvLlggPSAlcyIsIHBvaW50WyJj byJdWyJYIl0pCisgCisgICAgICAgICAgICAgaWYgcG9pbnRbImNvIl1bIlgiXSA9PSBmcmFtZV9u dW1iZXI6CisgICAgICAgICAgICAgICAgIGZvdW5kX3BvaW50ID0gVHJ1ZQorQEAgLTEwMjMsMTIg KzEyMTQsMTUgQEAgZGVmIHVwZGF0ZUVmZmVjdFByb3BlcnR5KHNlbGYsIGVmZmVjdF9pZCwgZnJh bWVfbnVtYmVyLCBvYmpfaWQsIHByb3BlcnR5X2tleSwgbmUKKyAKKyAgICAgICAgIGlmIG5vdCBm b3VuZF9wb2ludCBhbmQgbmV3X3ZhbHVlICE9IE5vbmU6CisgICAgICAgICAgICAgZWZmZWN0X3Vw ZGF0ZWQgPSBUcnVlCistICAgICAgICAgICAgbG9nLmluZm8oIkNyZWF0ZWQgbmV3IHBvaW50IGF0 IFg9JXMiICUgZnJhbWVfbnVtYmVyKQorLSAgICAgICAgICAgIGMuZGF0YVsnb2JqZWN0cyddW29i al9pZF1bcHJvcGVydHlfa2V5XVsiUG9pbnRzIl0uYXBwZW5kKHsnY28nOiB7J1gnOiBmcmFtZV9u dW1iZXIsICdZJzogbmV3X3ZhbHVlfSwgJ2ludGVycG9sYXRpb24nOiBvcGVuc2hvdC5CRVpJRVJ9 KQorKyAgICAgICAgICAgIGxvZy5pbmZvKCJDcmVhdGVkIG5ldyBwb2ludCBhdCBYPSVzIiwgZnJh bWVfbnVtYmVyKQorKyAgICAgICAgICAgIHBvaW50c19saXN0LmFwcGVuZCh7CisrICAgICAgICAg ICAgICAgICdjbyc6IHsgJ1gnOiBmcmFtZV9udW1iZXIsICdZJzogbmV3X3ZhbHVlIH0sCisrICAg ICAgICAgICAgICAgICdpbnRlcnBvbGF0aW9uJzogb3BlbnNob3QuQkVaSUVSLAorKyAgICAgICAg ICAgICAgICB9KQorIAorICAgICAgICAgIyBSZWR1Y2UgIyBvZiBjbGlwIHByb3BlcnRpZXMgd2Ug YXJlIHNhdmluZyAocGVyZm9ybWFuY2UgYm9vc3QpCisgICAgICAgICAjVE9ETzogVGhpcyBpcyB0 b28gc2xvdyB3aGVuIGRyYWdpbmcgdHJhbnNmb3JtIGhhbmRsZXJzCistICAgICAgICBjLmRhdGEg PSB7J29iamVjdHMnOiB7b2JqX2lkOiBjLmRhdGEuZ2V0KCdvYmplY3RzJykuZ2V0KG9ial9pZCl9 fQorKyAgICAgICAgYy5kYXRhID0geydvYmplY3RzJzoge29ial9pZDogYy5kYXRhLmdldCgnb2Jq ZWN0cycsIHt9KS5nZXQob2JqX2lkKX19CisgCisgICAgICAgICBpZiBlZmZlY3RfdXBkYXRlZDoK KyAgICAgICAgICAgICBjLnNhdmUoKQorQEAgLTEwNDAsMTAgKzEyMzQsMTAgQEAgZGVmIHJlZnJl c2hUcmlnZ2VyZWQoc2VsZik6CisgICAgICAgICAiIiJTaWduYWwgdG8gcmVmcmVzaCB2aWV3cG9y dCAoaS5lLiBhIHByb3BlcnR5IG1pZ2h0IGhhdmUgY2hhbmdlZCB0aGF0IGVmZmVjdHMgdGhlIHBy ZXZpZXcpIiIiCisgCisgICAgICAgICAjIFVwZGF0ZSByZWZlcmVuY2UgdG8gY2xpcAorLSAgICAg ICAgaWYgc2VsZiBhbmQgc2VsZi50cmFuc2Zvcm1pbmdfY2xpcDoKKysgICAgICAgIGlmIHNlbGYu dHJhbnNmb3JtaW5nX2NsaXA6CisgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfY2xpcCA9 IENsaXAuZ2V0KGlkPXNlbGYudHJhbnNmb3JtaW5nX2NsaXAuaWQpCisgCistICAgICAgICBpZiBz ZWxmIGFuZCBzZWxmLnRyYW5zZm9ybWluZ19lZmZlY3Q6CisrICAgICAgICBpZiBzZWxmLnRyYW5z Zm9ybWluZ19lZmZlY3Q6CisgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0ID0g RWZmZWN0LmdldChpZD1zZWxmLnRyYW5zZm9ybWluZ19lZmZlY3QuaWQpCisgCisgICAgIGRlZiB0 cmFuc2Zvcm1UcmlnZ2VyZWQoc2VsZiwgY2xpcF9pZCk6CitAQCAtMTA1Myw3ICsxMjQ3LDcgQEAg ZGVmIHRyYW5zZm9ybVRyaWdnZXJlZChzZWxmLCBjbGlwX2lkKToKKyAKKyAgICAgICAgICMgRGlz YWJsZSBUcmFuc2Zvcm0gVUkKKyAgICAgICAgICMgSXMgdGhpcyB0aGUgc2FtZSBjbGlwX2lkIGFs cmVhZHkgYmVpbmcgdHJhbnNmb3JtZWQ/CistICAgICAgICBpZiBzZWxmIGFuZCBzZWxmLnRyYW5z Zm9ybWluZ19jbGlwIGFuZCBub3QgY2xpcF9pZDoKKysgICAgICAgIGlmIHNlbGYudHJhbnNmb3Jt aW5nX2NsaXAgYW5kIG5vdCBjbGlwX2lkOgorICAgICAgICAgICAgICMgQ2xlYXIgdHJhbnNmb3Jt CisgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfY2xpcCA9IE5vbmUKKyAgICAgICAgICAg ICBuZWVkX3JlZnJlc2ggPSBUcnVlCitAQCAtMTA3OCw3ICsxMjcyLDcgQEAgZGVmIGtleUZyYW1l VHJhbnNmb3JtVHJpZ2dlcmVkKHNlbGYsIGVmZmVjdF9pZCwgY2xpcF9pZCk6CisgCisgICAgICAg ICAjIERpc2FibGUgVHJhbnNmb3JtIFVJCisgICAgICAgICAjIElzIHRoaXMgdGhlIHNhbWUgY2xp cF9pZCBhbHJlYWR5IGJlaW5nIHRyYW5zZm9ybWVkPworLSAgICAgICAgaWYgc2VsZiBhbmQgc2Vs Zi50cmFuc2Zvcm1pbmdfZWZmZWN0IGFuZCBub3QgZWZmZWN0X2lkOgorKyAgICAgICAgaWYgc2Vs Zi50cmFuc2Zvcm1pbmdfZWZmZWN0IGFuZCBub3QgZWZmZWN0X2lkOgorICAgICAgICAgICAgICMg Q2xlYXIgdHJhbnNmb3JtCisgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1pbmdfZWZmZWN0ID0g Tm9uZQorICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtaW5nX2NsaXAgPSBOb25lCitAQCAtMTEw MiwxMiArMTI5Niw4IEBAIGRlZiBrZXlGcmFtZVRyYW5zZm9ybVRyaWdnZXJlZChzZWxmLCBlZmZl Y3RfaWQsIGNsaXBfaWQpOgorIAorICAgICBkZWYgcmVnaW9uVHJpZ2dlcmVkKHNlbGYsIGNsaXBf aWQpOgorICAgICAgICAgIiIiSGFuZGxlIHRoZSAnc2VsZWN0IHJlZ2lvbicgc2lnbmFsIHdoZW4g aXQncyBlbWl0dGVkIiIiCistICAgICAgICBpZiBzZWxmIGFuZCBub3QgY2xpcF9pZDoKKy0gICAg ICAgICAgICAjIENsZWFyIHRyYW5zZm9ybQorLSAgICAgICAgICAgIHNlbGYucmVnaW9uX2VuYWJs ZWQgPSBGYWxzZQorLSAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBzZWxmLnJlZ2lvbl9lbmFi bGVkID0gVHJ1ZQorLQorKyAgICAgICAgIyBDbGVhciB0cmFuc2Zvcm0KKysgICAgICAgIHNlbGYu cmVnaW9uX2VuYWJsZWQgPSBib29sKG5vdCBjbGlwX2lkKQorICAgICAgICAgZ2V0X2FwcCgpLndp bmRvdy5yZWZyZXNoRnJhbWVTaWduYWwuZW1pdCgpCisgCisgICAgIGRlZiByZXNpemVFdmVudChz ZWxmLCBldmVudCk6CitAQCAtMTEzNSw3ICsxMzI1LDcgQEAgZGVmIGRlbGF5ZWRfcmVzaXplX2Nh bGxiYWNrKHNlbGYpOgorICAgICAgICAgICAgIHJhdGlvID0gZmxvYXQocHJvamVjdF9zaXplLndp ZHRoKCkpIC8gZmxvYXQocHJvamVjdF9zaXplLmhlaWdodCgpKQorICAgICAgICAgICAgIGV2ZW5f d2lkdGggPSByb3VuZChwcm9qZWN0X3NpemUud2lkdGgoKSAvIDIuMCkgKiAyCisgICAgICAgICAg ICAgZXZlbl9oZWlnaHQgPSByb3VuZChyb3VuZChldmVuX3dpZHRoIC8gcmF0aW8pIC8gMi4wKSAq IDIKKy0gICAgICAgICAgICBwcm9qZWN0X3NpemUgPSBRU2l6ZShldmVuX3dpZHRoLCBldmVuX2hl aWdodCkKKysgICAgICAgICAgICBwcm9qZWN0X3NpemUgPSBRU2l6ZShpbnQoZXZlbl93aWR0aCks IGludChldmVuX2hlaWdodCkpCisgCisgICAgICAgICAjIEVtaXQgc2lnbmFsIHRoYXQgdmlkZW8g d2lkZ2V0IGNoYW5nZWQgc2l6ZQorICAgICAgICAgc2VsZi53aW4uTWF4U2l6ZUNoYW5nZWQuZW1p dChwcm9qZWN0X3NpemUpCitAQCAtMTE5OSw3ICsxMzg5LDYgQEAgZGVmIF9faW5pdF9fKHNlbGYs IHdhdGNoX3Byb2plY3Q9VHJ1ZSwgKmFyZ3MpOgorICAgICAgICAgc2VsZi5tb3VzZV9kcmFnZ2lu ZyA9IEZhbHNlCisgICAgICAgICBzZWxmLm1vdXNlX3Bvc2l0aW9uID0gTm9uZQorICAgICAgICAg c2VsZi50cmFuc2Zvcm1fbW9kZSA9IE5vbmUKKy0gICAgICAgIHNlbGYuZ3Jhdml0eV9wb2ludCA9 IE5vbmUKKyAgICAgICAgIHNlbGYub3JpZ2luYWxfY2xpcF9kYXRhID0gTm9uZQorICAgICAgICAg c2VsZi5yZWdpb25fcWltYWdlID0gTm9uZQorICAgICAgICAgc2VsZi5yZWdpb25fdHJhbnNmb3Jt ID0gTm9uZQorQEAgLTEyMDgsOCArMTM5Nyw4IEBAIGRlZiBfX2luaXRfXyhzZWxmLCB3YXRjaF9w cm9qZWN0PVRydWUsICphcmdzKToKKyAgICAgICAgIHNlbGYucmVnaW9uVG9wTGVmdEhhbmRsZSA9 IE5vbmUKKyAgICAgICAgIHNlbGYucmVnaW9uQm90dG9tUmlnaHRIYW5kbGUgPSBOb25lCisgICAg ICAgICBzZWxmLmN1cnJfZnJhbWVfc2l6ZSA9IE5vbmUgIyBGcmFtZSBzaXplCistICAgICAgICBz ZWxmLnpvb20gPSAxLjAgIyBab29tIG9mIHdpZGdldCAoZG9lcyBub3QgYWZmZWN0IHZpZGVvLCBv bmx5IHdvcmtzcGFjZSkKKy0gICAgICAgIHNlbGYuY3MgPSAxNC4wICMgQ29ybmVyIHNpemUgb2Yg VHJhbnNmb3JtIEhhbmRsZXIgcmVjdGFuZ2xlcworKyAgICAgICAgc2VsZi56b29tID0gMS4wICAj IFpvb20gb2Ygd2lkZ2V0IChkb2VzIG5vdCBhZmZlY3QgdmlkZW8sIG9ubHkgd29ya3NwYWNlKQor KyAgICAgICAgc2VsZi5jcyA9IDE0LjAgICMgQ29ybmVyIHNpemUgb2YgVHJhbnNmb3JtIEhhbmRs ZXIgcmVjdGFuZ2xlcworICAgICAgICAgc2VsZi5yZXNpemVfYnV0dG9uID0gUVB1c2hCdXR0b24o XygnUmVzZXQgWm9vbScpLCBzZWxmKQorICAgICAgICAgc2VsZi5yZXNpemVfYnV0dG9uLmhpZGUo KQorICAgICAgICAgc2VsZi5yZXNpemVfYnV0dG9uLnNldFN0eWxlU2hlZXQoJ1FQdXNoQnV0dG9u IHsgbWFyZ2luOiAxMHB4OyBwYWRkaW5nOiAycHg7IH0nKQorQEAgLTEyNTEsNyArMTQ0MCw2IEBA IGRlZiBfX2luaXRfXyhzZWxmLCB3YXRjaF9wcm9qZWN0PVRydWUsICphcmdzKToKKyAKKyAgICAg ICAgICMgU2hvdyBQcm9wZXJ0eSB0aW1lcgorICAgICAgICAgIyBUaW1lciB0byB1c2UgYSBkZWxh eSBiZWZvcmUgc2VuZGluZyBNYXhTaXplQ2hhbmdlZCBzaWduYWxzIChzbyB3ZSBkb24ndCBzcGFt IGxpYm9wZW5zaG90KQorLSAgICAgICAgc2VsZi5kZWxheWVkX3NpemUgPSBOb25lCisgICAgICAg ICBzZWxmLmRlbGF5ZWRfcmVzaXplX3RpbWVyID0gUVRpbWVyKHNlbGYpCisgICAgICAgICBzZWxm LmRlbGF5ZWRfcmVzaXplX3RpbWVyLnNldEludGVydmFsKDIwMCkKKyAgICAgICAgIHNlbGYuZGVs YXllZF9yZXNpemVfdGltZXIuc2V0U2luZ2xlU2hvdChUcnVlKQorZGlmZiAtLWdpdCBhL3NyYy93 aW5kb3dzL3ZpZXdzL2VmZmVjdHNfbGlzdHZpZXcucHkgYi9zcmMvd2luZG93cy92aWV3cy9lZmZl Y3RzX2xpc3R2aWV3LnB5CitpbmRleCBiN2RhMjhkYzQuLjNjZTNiNDE2NCAxMDA2NDQKKy0tLSBh L3NyYy93aW5kb3dzL3ZpZXdzL2VmZmVjdHNfbGlzdHZpZXcucHkKKysrKyBiL3NyYy93aW5kb3dz L3ZpZXdzL2VmZmVjdHNfbGlzdHZpZXcucHkKK0BAIC0zNiw3ICszNiw4IEBACisgCisgY2xhc3Mg RWZmZWN0c0xpc3RWaWV3KFFMaXN0Vmlldyk6CisgICAgICIiIiBBIFRyZWVWaWV3IFFXaWRnZXQg dXNlZCBvbiB0aGUgbWFpbiB3aW5kb3cgIiIiCistICAgIGRyYWdfaXRlbV9zaXplID0gNDgKKysg ICAgZHJhZ19pdGVtX3NpemUgPSBRU2l6ZSg0OCwgNDgpCisrICAgIGRyYWdfaXRlbV9jZW50ZXIg PSBRUG9pbnQoMjQsIDI0KQorIAorICAgICBkZWYgY29udGV4dE1lbnVFdmVudChzZWxmLCBldmVu dCk6CisgICAgICAgICAjIFNldCBjb250ZXh0IG1lbnUgbW9kZQorQEAgLTY5LDggKzcwLDggQEAg ZGVmIHN0YXJ0RHJhZyhzZWxmLCBldmVudCk6CisgICAgICAgICAjIFN0YXJ0IGRyYWcgb3BlcmF0 aW9uCisgICAgICAgICBkcmFnID0gUURyYWcoc2VsZikKKyAgICAgICAgIGRyYWcuc2V0TWltZURh dGEoc2VsZi5tb2RlbCgpLm1pbWVEYXRhKHNlbGVjdGVkKSkKKy0gICAgICAgIGRyYWcuc2V0UGl4 bWFwKGljb24ucGl4bWFwKFFTaXplKHNlbGYuZHJhZ19pdGVtX3NpemUsIHNlbGYuZHJhZ19pdGVt X3NpemUpKSkKKy0gICAgICAgIGRyYWcuc2V0SG90U3BvdChRUG9pbnQoc2VsZi5kcmFnX2l0ZW1f c2l6ZSAvIDIsIHNlbGYuZHJhZ19pdGVtX3NpemUgLyAyKSkKKysgICAgICAgIGRyYWcuc2V0UGl4 bWFwKGljb24ucGl4bWFwKHNlbGYuZHJhZ19pdGVtX3NpemUpKQorKyAgICAgICAgZHJhZy5zZXRI b3RTcG90KHNlbGYuZHJhZ19pdGVtX2NlbnRlcikKKyAgICAgICAgIGRyYWcuZXhlY18oKQorIAor ICAgICBkZWYgZmlsdGVyX2NoYW5nZWQoc2VsZik6CitkaWZmIC0tZ2l0IGEvc3JjL3dpbmRvd3Mv dmlld3MvZWZmZWN0c190cmVldmlldy5weSBiL3NyYy93aW5kb3dzL3ZpZXdzL2VmZmVjdHNfdHJl ZXZpZXcucHkKK2luZGV4IDZhNWFiNzlmNC4uOTEwNTkzNTI0IDEwMDY0NAorLS0tIGEvc3JjL3dp bmRvd3Mvdmlld3MvZWZmZWN0c190cmVldmlldy5weQorKysrIGIvc3JjL3dpbmRvd3Mvdmlld3Mv ZWZmZWN0c190cmVldmlldy5weQorQEAgLTM2LDcgKzM2LDggQEAKKyAKKyBjbGFzcyBFZmZlY3Rz VHJlZVZpZXcoUVRyZWVWaWV3KToKKyAgICAgIiIiIEEgVHJlZVZpZXcgUVdpZGdldCB1c2VkIG9u IHRoZSBtYWluIHdpbmRvdyAiIiIKKy0gICAgZHJhZ19pdGVtX3NpemUgPSA0OAorKyAgICBkcmFn X2l0ZW1fc2l6ZSA9IFFTaXplKDQ4LCA0OCkKKysgICAgZHJhZ19pdGVtX2NlbnRlciA9IFFQb2lu dCgyNCwgMjQpCisgCisgICAgIGRlZiBjb250ZXh0TWVudUV2ZW50KHNlbGYsIGV2ZW50KToKKyAg ICAgICAgICMgU2V0IGNvbnRleHQgbWVudSBtb2RlCitAQCAtNzAsOCArNzEsOCBAQCBkZWYgc3Rh cnREcmFnKHNlbGYsIHN1cHBvcnRlZEFjdGlvbnMpOgorICAgICAgICAgIyBTdGFydCBkcmFnIG9w ZXJhdGlvbgorICAgICAgICAgZHJhZyA9IFFEcmFnKHNlbGYpCisgICAgICAgICBkcmFnLnNldE1p bWVEYXRhKHNlbGYubW9kZWwoKS5taW1lRGF0YShzZWxlY3RlZCkpCistICAgICAgICBkcmFnLnNl dFBpeG1hcChpY29uLnBpeG1hcChRU2l6ZShzZWxmLmRyYWdfaXRlbV9zaXplLCBzZWxmLmRyYWdf aXRlbV9zaXplKSkpCistICAgICAgICBkcmFnLnNldEhvdFNwb3QoUVBvaW50KHNlbGYuZHJhZ19p dGVtX3NpemUgLyAyLCBzZWxmLmRyYWdfaXRlbV9zaXplIC8gMikpCisrICAgICAgICBkcmFnLnNl dFBpeG1hcChpY29uLnBpeG1hcChzZWxmLmRyYWdfaXRlbV9zaXplKSkKKysgICAgICAgIGRyYWcu c2V0SG90U3BvdChzZWxmLmRyYWdfaXRlbV9jZW50ZXIpCisgICAgICAgICBkcmFnLmV4ZWNfKCkK KyAKKyAgICAgZGVmIHJlZnJlc2hfY29sdW1ucyhzZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvd2lu ZG93cy92aWV3cy9lbW9qaXNfbGlzdHZpZXcucHkgYi9zcmMvd2luZG93cy92aWV3cy9lbW9qaXNf bGlzdHZpZXcucHkKK2luZGV4IDZmMDliYzU2Mi4uY2IxM2MzNWE3IDEwMDY0NAorLS0tIGEvc3Jj L3dpbmRvd3Mvdmlld3MvZW1vamlzX2xpc3R2aWV3LnB5CisrKysgYi9zcmMvd2luZG93cy92aWV3 cy9lbW9qaXNfbGlzdHZpZXcucHkKK0BAIC0zOSw3ICszOSw4IEBACisgCisgY2xhc3MgRW1vamlz TGlzdFZpZXcoUUxpc3RWaWV3KToKKyAgICAgIiIiIEEgUUxpc3RWaWV3IFFXaWRnZXQgdXNlZCBv biB0aGUgbWFpbiB3aW5kb3cgIiIiCistICAgIGRyYWdfaXRlbV9zaXplID0gNDgKKysgICAgZHJh Z19pdGVtX3NpemUgPSBRU2l6ZSg0OCwgNDgpCisrICAgIGRyYWdfaXRlbV9jZW50ZXIgPSBRUG9p bnQoMjQsIDI0KQorIAorICAgICBkZWYgZHJhZ0VudGVyRXZlbnQoc2VsZiwgZXZlbnQpOgorICAg ICAgICAgIyBJZiBkcmFnZ2luZyB1cmxzIG9udG8gd2lkZ2V0LCBhY2NlcHQKK0BAIC01Nyw4ICs1 OCw4IEBAIGRlZiBzdGFydERyYWcoc2VsZiwgZXZlbnQpOgorICAgICAgICAgZHJhZyA9IFFEcmFn KHNlbGYpCisgICAgICAgICBkcmFnLnNldE1pbWVEYXRhKHNlbGYubW9kZWwubWltZURhdGEoc2Vs ZWN0ZWQpKQorICAgICAgICAgaWNvbiA9IHNlbGYubW9kZWwuZGF0YShzZWxlY3RlZFswXSwgUXQu RGVjb3JhdGlvblJvbGUpCistICAgICAgICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChRU2l6 ZShzZWxmLmRyYWdfaXRlbV9zaXplLCBzZWxmLmRyYWdfaXRlbV9zaXplKSkpCistICAgICAgICBk cmFnLnNldEhvdFNwb3QoUVBvaW50KHNlbGYuZHJhZ19pdGVtX3NpemUgLyAyLCBzZWxmLmRyYWdf aXRlbV9zaXplIC8gMikpCisrICAgICAgICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChzZWxm LmRyYWdfaXRlbV9zaXplKSkKKysgICAgICAgIGRyYWcuc2V0SG90U3BvdChzZWxmLmRyYWdfaXRl bV9jZW50ZXIpCisgCisgICAgICAgICAjIENyZWF0ZSBlbW9qaSBmaWxlIGJlZm9yZSBkcmFnIHN0 YXJ0cworICAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMoZHJhZy5taW1lRGF0YSgpLnRleHQoKSkK K2RpZmYgLS1naXQgYS9zcmMvd2luZG93cy92aWV3cy9maWxlc19saXN0dmlldy5weSBiL3NyYy93 aW5kb3dzL3ZpZXdzL2ZpbGVzX2xpc3R2aWV3LnB5CitpbmRleCA4M2NkZDAyNzIuLjBlNjczMDZh ZSAxMDA2NDQKKy0tLSBhL3NyYy93aW5kb3dzL3ZpZXdzL2ZpbGVzX2xpc3R2aWV3LnB5CisrKysg Yi9zcmMvd2luZG93cy92aWV3cy9maWxlc19saXN0dmlldy5weQorQEAgLTM4LDcgKzM4LDggQEAK KyAKKyBjbGFzcyBGaWxlc0xpc3RWaWV3KFFMaXN0Vmlldyk6CisgICAgICIiIiBBIExpc3RWaWV3 IFFXaWRnZXQgdXNlZCBvbiB0aGUgbWFpbiB3aW5kb3cgIiIiCistICAgIGRyYWdfaXRlbV9zaXpl ID0gNDgKKysgICAgZHJhZ19pdGVtX3NpemUgPSBRU2l6ZSg0OCwgNDgpCisrICAgIGRyYWdfaXRl bV9jZW50ZXIgPSBRUG9pbnQoMjQsIDI0KQorIAorICAgICBkZWYgY29udGV4dE1lbnVFdmVudChz ZWxmLCBldmVudCk6CisgICAgICAgICBldmVudC5hY2NlcHQoKQorQEAgLTExMyw4ICsxMTQsOCBA QCBkZWYgc3RhcnREcmFnKHNlbGYsIHN1cHBvcnRlZEFjdGlvbnMpOgorICAgICAgICAgIyBTdGFy dCBkcmFnIG9wZXJhdGlvbgorICAgICAgICAgZHJhZyA9IFFEcmFnKHNlbGYpCisgICAgICAgICBk cmFnLnNldE1pbWVEYXRhKHNlbGYubW9kZWwoKS5taW1lRGF0YShzZWxlY3RlZCkpCistICAgICAg ICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChRU2l6ZShzZWxmLmRyYWdfaXRlbV9zaXplLCBz ZWxmLmRyYWdfaXRlbV9zaXplKSkpCistICAgICAgICBkcmFnLnNldEhvdFNwb3QoUVBvaW50KHNl bGYuZHJhZ19pdGVtX3NpemUgLyAyLCBzZWxmLmRyYWdfaXRlbV9zaXplIC8gMikpCisrICAgICAg ICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChzZWxmLmRyYWdfaXRlbV9zaXplKSkKKysgICAg ICAgIGRyYWcuc2V0SG90U3BvdChzZWxmLmRyYWdfaXRlbV9jZW50ZXIpCisgICAgICAgICBkcmFn LmV4ZWNfKCkKKyAKKyAgICAgIyBXaXRob3V0IGRlZmluaW5nIHRoaXMgbWV0aG9kLCB0aGUgJ2Nv cHknIGFjdGlvbiBkb2Vzbid0IHNob3cgd2l0aCBjdXJzb3IKK2RpZmYgLS1naXQgYS9zcmMvd2lu ZG93cy92aWV3cy9maWxlc190cmVldmlldy5weSBiL3NyYy93aW5kb3dzL3ZpZXdzL2ZpbGVzX3Ry ZWV2aWV3LnB5CitpbmRleCBkM2ZlNzRkODguLjc3NmI3MWNjMiAxMDA2NDQKKy0tLSBhL3NyYy93 aW5kb3dzL3ZpZXdzL2ZpbGVzX3RyZWV2aWV3LnB5CisrKysgYi9zcmMvd2luZG93cy92aWV3cy9m aWxlc190cmVldmlldy5weQorQEAgLTQxLDcgKzQxLDggQEAKKyAKKyBjbGFzcyBGaWxlc1RyZWVW aWV3KFFUcmVlVmlldyk6CisgICAgICIiIiBBIFRyZWVWaWV3IFFXaWRnZXQgdXNlZCBvbiB0aGUg bWFpbiB3aW5kb3cgIiIiCistICAgIGRyYWdfaXRlbV9zaXplID0gNDgKKysgICAgZHJhZ19pdGVt X3NpemUgPSBRU2l6ZSg0OCwgNDgpCisrICAgIGRyYWdfaXRlbV9jZW50ZXIgPSBRUG9pbnQoMjQs IDI0KQorIAorICAgICBkZWYgY29udGV4dE1lbnVFdmVudChzZWxmLCBldmVudCk6CisgCitAQCAt MTE0LDggKzExNSw4IEBAIGRlZiBzdGFydERyYWcoc2VsZiwgc3VwcG9ydGVkQWN0aW9ucyk6Cisg ICAgICAgICAjIFN0YXJ0IGRyYWcgb3BlcmF0aW9uCisgICAgICAgICBkcmFnID0gUURyYWcoc2Vs ZikKKyAgICAgICAgIGRyYWcuc2V0TWltZURhdGEoc2VsZi5tb2RlbCgpLm1pbWVEYXRhKHNlbGVj dGVkKSkKKy0gICAgICAgIGRyYWcuc2V0UGl4bWFwKGljb24ucGl4bWFwKFFTaXplKHNlbGYuZHJh Z19pdGVtX3NpemUsIHNlbGYuZHJhZ19pdGVtX3NpemUpKSkKKy0gICAgICAgIGRyYWcuc2V0SG90 U3BvdChRUG9pbnQoc2VsZi5kcmFnX2l0ZW1fc2l6ZSAvIDIsIHNlbGYuZHJhZ19pdGVtX3NpemUg LyAyKSkKKysgICAgICAgIGRyYWcuc2V0UGl4bWFwKGljb24ucGl4bWFwKHNlbGYuZHJhZ19pdGVt X3NpemUpKQorKyAgICAgICAgZHJhZy5zZXRIb3RTcG90KHNlbGYuZHJhZ19pdGVtX2NlbnRlcikK KyAgICAgICAgIGRyYWcuZXhlY18oKQorIAorICAgICAjIFdpdGhvdXQgZGVmaW5pbmcgdGhpcyBt ZXRob2QsIHRoZSAnY29weScgYWN0aW9uIGRvZXNuJ3Qgc2hvdyB3aXRoIGN1cnNvcgorZGlmZiAt LWdpdCBhL3NyYy93aW5kb3dzL3ZpZXdzL3Byb3BlcnRpZXNfdGFibGV2aWV3LnB5IGIvc3JjL3dp bmRvd3Mvdmlld3MvcHJvcGVydGllc190YWJsZXZpZXcucHkKK2luZGV4IGU3OWIxMzY0NC4uZmRh YTdlZTI0IDEwMDY0NAorLS0tIGEvc3JjL3dpbmRvd3Mvdmlld3MvcHJvcGVydGllc190YWJsZXZp ZXcucHkKKysrKyBiL3NyYy93aW5kb3dzL3ZpZXdzL3Byb3BlcnRpZXNfdGFibGV2aWV3LnB5CitA QCAtNTMsOCArNTMsMTMgQEAKKyAKKyAKKyBjbGFzcyBQcm9wZXJ0eURlbGVnYXRlKFFJdGVtRGVs ZWdhdGUpOgorLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50PU5vbmUsICphcmdzKToKKy0g ICAgICAgIFFJdGVtRGVsZWdhdGUuX19pbml0X18oc2VsZiwgcGFyZW50LCAqYXJncykKKysgICAg ZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudD1Ob25lLCAqYXJncywgKiprd2FyZ3MpOgorKworKyAg ICAgICAgc2VsZi5tb2RlbCA9IGt3YXJncy5wb3AoIm1vZGVsIiwgTm9uZSkKKysgICAgICAgIGlm IG5vdCBzZWxmLm1vZGVsOgorKyAgICAgICAgICAgIGxvZy5lcnJvcigiQ2Fubm90IGNyZWF0ZSBk ZWxlZ2F0ZSB3aXRob3V0IGRhdGEgbW9kZWwhIikKKysKKysgICAgICAgIHN1cGVyKCkuX19pbml0 X18ocGFyZW50LCAqYXJncywgKiprd2FyZ3MpCisgCisgICAgICAgICAjIHBpeG1hcHMgZm9yIGN1 cnZlIGljb25zCisgICAgICAgICBzZWxmLmN1cnZlX3BpeG1hcHMgPSB7CitAQCAtNjgsNyArNzMs NyBAQCBkZWYgcGFpbnQoc2VsZiwgcGFpbnRlciwgb3B0aW9uLCBpbmRleCk6CisgICAgICAgICBw YWludGVyLnNldFJlbmRlckhpbnQoUVBhaW50ZXIuQW50aWFsaWFzaW5nKQorIAorICAgICAgICAg IyBHZXQgZGF0YSBtb2RlbCBhbmQgc2VsZWN0aW9uCistICAgICAgICBtb2RlbCA9IGdldF9hcHAo KS53aW5kb3cucHJvcGVydHlUYWJsZVZpZXcuY2xpcF9wcm9wZXJ0aWVzX21vZGVsLm1vZGVsCisr ICAgICAgICBtb2RlbCA9IHNlbGYubW9kZWwKKyAgICAgICAgIHJvdyA9IG1vZGVsLml0ZW1Gcm9t SW5kZXgoaW5kZXgpLnJvdygpCisgICAgICAgICBzZWxlY3RlZF9sYWJlbCA9IG1vZGVsLml0ZW0o cm93LCAwKQorICAgICAgICAgc2VsZWN0ZWRfdmFsdWUgPSBtb2RlbC5pdGVtKHJvdywgMSkKK0BA IC0xMDQsMTYgKzEwOSwxNiBAQCBkZWYgcGFpbnQoc2VsZiwgcGFpbnRlciwgb3B0aW9uLCBpbmRl eCk6CisgICAgICAgICBwYWludGVyLnNldFBlbihRUGVuKFF0Lk5vUGVuKSkKKyAgICAgICAgIGlm IHByb3BlcnR5X3R5cGUgPT0gImNvbG9yIjoKKyAgICAgICAgICAgICAjIENvbG9yIGtleWZyYW1l CistICAgICAgICAgICAgcmVkID0gY3VyX3Byb3BlcnR5WzFdWyJyZWQiXVsidmFsdWUiXQorLSAg ICAgICAgICAgIGdyZWVuID0gY3VyX3Byb3BlcnR5WzFdWyJncmVlbiJdWyJ2YWx1ZSJdCistICAg ICAgICAgICAgYmx1ZSA9IGN1cl9wcm9wZXJ0eVsxXVsiYmx1ZSJdWyJ2YWx1ZSJdCistICAgICAg ICAgICAgcGFpbnRlci5zZXRCcnVzaChRQnJ1c2goUUNvbG9yKFFDb2xvcihyZWQsIGdyZWVuLCBi bHVlKSkpKQorKyAgICAgICAgICAgIHJlZCA9IGludChjdXJfcHJvcGVydHlbMV1bInJlZCJdWyJ2 YWx1ZSJdKQorKyAgICAgICAgICAgIGdyZWVuID0gaW50KGN1cl9wcm9wZXJ0eVsxXVsiZ3JlZW4i XVsidmFsdWUiXSkKKysgICAgICAgICAgICBibHVlID0gaW50KGN1cl9wcm9wZXJ0eVsxXVsiYmx1 ZSJdWyJ2YWx1ZSJdKQorKyAgICAgICAgICAgIHBhaW50ZXIuc2V0QnJ1c2goUUNvbG9yKHJlZCwg Z3JlZW4sIGJsdWUpKQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAjIE5vcm1hbCBLZXlm cmFtZQorICAgICAgICAgICAgIGlmIG9wdGlvbi5zdGF0ZSAmIFFTdHlsZS5TdGF0ZV9TZWxlY3Rl ZDoKKy0gICAgICAgICAgICAgICAgcGFpbnRlci5zZXRCcnVzaChRQnJ1c2goUUNvbG9yKCIjNTc1 NzU3IikpKQorKyAgICAgICAgICAgICAgICBwYWludGVyLnNldEJydXNoKFFDb2xvcigiIzU3NTc1 NyIpKQorICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgIHBhaW50ZXIuc2V0QnJ1 c2goUUJydXNoKFFDb2xvcigiIzNlM2UzZSIpKSkKKysgICAgICAgICAgICAgICAgcGFpbnRlci5z ZXRCcnVzaChRQ29sb3IoIiMzZTNlM2UiKSkKKyAKKyAgICAgICAgIGlmIHJlYWRvbmx5OgorICAg ICAgICAgICAgICMgU2V0IHRleHQgY29sb3IgZm9yIHJlYWQgb25seSBmaWVsZHMKK0BAIC0xNDYs NyArMTUxLDEwIEBAIGRlZiBwYWludChzZWxmLCBwYWludGVyLCBvcHRpb24sIGluZGV4KToKKyAK KyAgICAgICAgICAgICBpZiBwb2ludHMgPiAxOgorICAgICAgICAgICAgICAgICAjIERyYXcgaW50 ZXJwb2xhdGlvbiBpY29uIG9uIHRvcAorLSAgICAgICAgICAgICAgICBwYWludGVyLmRyYXdQaXht YXAob3B0aW9uLnJlY3QueCgpICsgb3B0aW9uLnJlY3Qud2lkdGgoKSAtIDMwLjAsIG9wdGlvbi5y ZWN0LnkoKSArIDQsIHNlbGYuY3VydmVfcGl4bWFwc1tpbnRlcnBvbGF0aW9uXSkKKysgICAgICAg ICAgICAgICAgcGFpbnRlci5kcmF3UGl4bWFwKAorKyAgICAgICAgICAgICAgICAgICAgaW50KG9w dGlvbi5yZWN0LngoKSArIG9wdGlvbi5yZWN0LndpZHRoKCkgLSAzMC4wKSwKKysgICAgICAgICAg ICAgICAgICAgIGludChvcHRpb24ucmVjdC55KCkgKyA0KSwKKysgICAgICAgICAgICAgICAgICAg IHNlbGYuY3VydmVfcGl4bWFwc1tpbnRlcnBvbGF0aW9uXSkKKyAKKyAgICAgICAgICAgICAjIFNl dCB0ZXh0IGNvbG9yCisgICAgICAgICAgICAgcGFpbnRlci5zZXRQZW4oUVBlbihRdC53aGl0ZSkp CitAQCAtODE4LDkgKzgyNiw5IEBAIGRlZiBDb2xvcl9QaWNrZXJfVHJpZ2dlcmVkKHNlbGYsIGN1 cl9wcm9wZXJ0eSk6CisgICAgICAgICBfID0gZ2V0X2FwcCgpLl90cgorIAorICAgICAgICAgIyBH ZXQgY3VycmVudCB2YWx1ZSBvZiBjb2xvcgorLSAgICAgICAgcmVkID0gY3VyX3Byb3BlcnR5WzFd WyJyZWQiXVsidmFsdWUiXQorLSAgICAgICAgZ3JlZW4gPSBjdXJfcHJvcGVydHlbMV1bImdyZWVu Il1bInZhbHVlIl0KKy0gICAgICAgIGJsdWUgPSBjdXJfcHJvcGVydHlbMV1bImJsdWUiXVsidmFs dWUiXQorKyAgICAgICAgcmVkID0gaW50KGN1cl9wcm9wZXJ0eVsxXVsicmVkIl1bInZhbHVlIl0p CisrICAgICAgICBncmVlbiA9IGludChjdXJfcHJvcGVydHlbMV1bImdyZWVuIl1bInZhbHVlIl0p CisrICAgICAgICBibHVlID0gaW50KGN1cl9wcm9wZXJ0eVsxXVsiYmx1ZSJdWyJ2YWx1ZSJdKQor IAorICAgICAgICAgIyBTaG93IGNvbG9yIGRpYWxvZworICAgICAgICAgY3VycmVudENvbG9yID0g UUNvbG9yKHJlZCwgZ3JlZW4sIGJsdWUpCitAQCAtODY1LDcgKzg3Myw3IEBAIGRlZiBfX2luaXRf XyhzZWxmLCAqYXJncyk6CisgICAgICAgICBzZWxmLmZpbGVzX21vZGVsID0gc2VsZi53aW4uZmls ZXNfbW9kZWwubW9kZWwKKyAKKyAgICAgICAgICMgQ29ubmVjdCB0byB1cGRhdGUgc2lnbmFscywg c28gb3VyIG1lbnVzIHN0YXkgY3VycmVudAorLSAgICAgICAgc2VsZi53aW4uZmlsZXNfbW9kZWwu TW9kZWxSZWZyZXNoZWQuY29ubmVjdChzZWxmLnJlZnJlc2hfbWVudSkKKysgICAgICAgIHNlbGYu ZmlsZXNfbW9kZWwuZGF0YUNoYW5nZWQuY29ubmVjdChzZWxmLnJlZnJlc2hfbWVudSkKKyAgICAg ICAgIHNlbGYud2luLnRyYW5zaXRpb25fbW9kZWwuTW9kZWxSZWZyZXNoZWQuY29ubmVjdChzZWxm LnJlZnJlc2hfbWVudSkKKyAgICAgICAgIHNlbGYubWVudV9yZXNldCA9IEZhbHNlCisgCitAQCAt ODkwLDcgKzg5OCw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncyk6CisgICAgICAgICBzZWxm LnNldFdvcmRXcmFwKFRydWUpCisgCisgICAgICAgICAjIFNldCBkZWxlZ2F0ZQorLSAgICAgICAg ZGVsZWdhdGUgPSBQcm9wZXJ0eURlbGVnYXRlKCkKKysgICAgICAgIGRlbGVnYXRlID0gUHJvcGVy dHlEZWxlZ2F0ZShtb2RlbD1zZWxmLmNsaXBfcHJvcGVydGllc19tb2RlbC5tb2RlbCkKKyAgICAg ICAgIHNlbGYuc2V0SXRlbURlbGVnYXRlRm9yQ29sdW1uKDEsIGRlbGVnYXRlKQorICAgICAgICAg c2VsZi5wcmV2aW91c194ID0gLTEKKyAKK2RpZmYgLS1naXQgYS9zcmMvd2luZG93cy92aWV3cy90 cmFuc2l0aW9uc19saXN0dmlldy5weSBiL3NyYy93aW5kb3dzL3ZpZXdzL3RyYW5zaXRpb25zX2xp c3R2aWV3LnB5CitpbmRleCAwOWFmODZiMmIuLjNiYTMzNDZmNSAxMDA2NDQKKy0tLSBhL3NyYy93 aW5kb3dzL3ZpZXdzL3RyYW5zaXRpb25zX2xpc3R2aWV3LnB5CisrKysgYi9zcmMvd2luZG93cy92 aWV3cy90cmFuc2l0aW9uc19saXN0dmlldy5weQorQEAgLTM2LDcgKzM2LDggQEAKKyAKKyBjbGFz cyBUcmFuc2l0aW9uc0xpc3RWaWV3KFFMaXN0Vmlldyk6CisgICAgICIiIiBBIFFMaXN0VmlldyBR V2lkZ2V0IHVzZWQgb24gdGhlIG1haW4gd2luZG93ICIiIgorLSAgICBkcmFnX2l0ZW1fc2l6ZSA9 IDQ4CisrICAgIGRyYWdfaXRlbV9zaXplID0gUVNpemUoNDgsIDQ4KQorKyAgICBkcmFnX2l0ZW1f Y2VudGVyID0gUVBvaW50KDI0LCAyNCkKKyAKKyAgICAgZGVmIGNvbnRleHRNZW51RXZlbnQoc2Vs ZiwgZXZlbnQpOgorICAgICAgICAgZXZlbnQuYWNjZXB0KCkKK0BAIC03MCw4ICs3MSw4IEBAIGRl ZiBzdGFydERyYWcoc2VsZiwgc3VwcG9ydGVkQWN0aW9ucyk6CisgICAgICAgICAjIFN0YXJ0IGRy YWcgb3BlcmF0aW9uCisgICAgICAgICBkcmFnID0gUURyYWcoc2VsZikKKyAgICAgICAgIGRyYWcu c2V0TWltZURhdGEoc2VsZi5tb2RlbCgpLm1pbWVEYXRhKHNlbGVjdGVkKSkKKy0gICAgICAgIGRy YWcuc2V0UGl4bWFwKGljb24ucGl4bWFwKFFTaXplKHNlbGYuZHJhZ19pdGVtX3NpemUsIHNlbGYu ZHJhZ19pdGVtX3NpemUpKSkKKy0gICAgICAgIGRyYWcuc2V0SG90U3BvdChRUG9pbnQoc2VsZi5k cmFnX2l0ZW1fc2l6ZSAvIDIsIHNlbGYuZHJhZ19pdGVtX3NpemUgLyAyKSkKKysgICAgICAgIGRy YWcuc2V0UGl4bWFwKGljb24ucGl4bWFwKHNlbGYuZHJhZ19pdGVtX3NpemUpKQorKyAgICAgICAg ZHJhZy5zZXRIb3RTcG90KHNlbGYuZHJhZ19pdGVtX2NlbnRlcikKKyAgICAgICAgIGRyYWcuZXhl Y18oKQorIAorICAgICBkZWYgZmlsdGVyX2NoYW5nZWQoc2VsZik6CitkaWZmIC0tZ2l0IGEvc3Jj L3dpbmRvd3Mvdmlld3MvdHJhbnNpdGlvbnNfdHJlZXZpZXcucHkgYi9zcmMvd2luZG93cy92aWV3 cy90cmFuc2l0aW9uc190cmVldmlldy5weQoraW5kZXggNmY5MDNlOTEzLi43YWEwY2Q0ODEgMTAw NjQ0CistLS0gYS9zcmMvd2luZG93cy92aWV3cy90cmFuc2l0aW9uc190cmVldmlldy5weQorKysr IGIvc3JjL3dpbmRvd3Mvdmlld3MvdHJhbnNpdGlvbnNfdHJlZXZpZXcucHkKK0BAIC0zNiw3ICsz Niw4IEBACisgCisgY2xhc3MgVHJhbnNpdGlvbnNUcmVlVmlldyhRVHJlZVZpZXcpOgorICAgICAi IiIgQSBUcmVlVmlldyBRV2lkZ2V0IHVzZWQgb24gdGhlIG1haW4gd2luZG93ICIiIgorLSAgICBk cmFnX2l0ZW1fc2l6ZSA9IDQ4CisrICAgIGRyYWdfaXRlbV9zaXplID0gUVNpemUoNDgsIDQ4KQor KyAgICBkcmFnX2l0ZW1fY2VudGVyID0gUVBvaW50KDI0LCAyNCkKKyAKKyAgICAgZGVmIGNvbnRl eHRNZW51RXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgIyBTZXQgY29udGV4dCBtZW51IG1v ZGUKK0BAIC02OCw4ICs2OSw4IEBAIGRlZiBzdGFydERyYWcoc2VsZiwgZXZlbnQpOgorICAgICAg ICAgIyBTdGFydCBkcmFnIG9wZXJhdGlvbgorICAgICAgICAgZHJhZyA9IFFEcmFnKHNlbGYpCisg ICAgICAgICBkcmFnLnNldE1pbWVEYXRhKHNlbGYubW9kZWwoKS5taW1lRGF0YShzZWxlY3RlZCkp CistICAgICAgICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChRU2l6ZShzZWxmLmRyYWdfaXRl bV9zaXplLCBzZWxmLmRyYWdfaXRlbV9zaXplKSkpCistICAgICAgICBkcmFnLnNldEhvdFNwb3Qo UVBvaW50KHNlbGYuZHJhZ19pdGVtX3NpemUgLyAyLCBzZWxmLmRyYWdfaXRlbV9zaXplIC8gMikp CisrICAgICAgICBkcmFnLnNldFBpeG1hcChpY29uLnBpeG1hcChzZWxmLmRyYWdfaXRlbV9zaXpl KSkKKysgICAgICAgIGRyYWcuc2V0SG90U3BvdChzZWxmLmRyYWdfaXRlbV9jZW50ZXIpCisgICAg ICAgICBkcmFnLmV4ZWNfKCkKKyAKKyAgICAgZGVmIHJlZnJlc2hfY29sdW1ucyhzZWxmKToKK2Rp ZmYgLS1naXQgYS9zcmMvd2luZG93cy92aWV3cy90dXRvcmlhbC5weSBiL3NyYy93aW5kb3dzL3Zp ZXdzL3R1dG9yaWFsLnB5CitpbmRleCBlMmQ3ZmI4NjEuLjI0MTI0Nzk5ZiAxMDA2NDQKKy0tLSBh L3NyYy93aW5kb3dzL3ZpZXdzL3R1dG9yaWFsLnB5CisrKysgYi9zcmMvd2luZG93cy92aWV3cy90 dXRvcmlhbC5weQorQEAgLTUzLDcgKzUzLDEyIEBAIGRlZiBwYWludEV2ZW50KHNlbGYsIGV2ZW50 LCAqYXJncyk6CisgCisgICAgICAgICBwYWludGVyLnNldFBlbihRUGVuKGZyYW1lQ29sb3IsIDIp KQorICAgICAgICAgcGFpbnRlci5zZXRCcnVzaChzZWxmLnBhbGV0dGUoKS5jb2xvcihRUGFsZXR0 ZS5XaW5kb3cpKQorLSAgICAgICAgcGFpbnRlci5kcmF3Um91bmRlZFJlY3QoUVJlY3RGKDMxLCAw LCBzZWxmLndpZHRoKCkgLSAzMSwgc2VsZi5oZWlnaHQoKSksIDEwLCAxMCkKKysgICAgICAgIHBh aW50ZXIuZHJhd1JvdW5kZWRSZWN0KAorKyAgICAgICAgICAgIFFSZWN0RigzMSwgMCwKKysgICAg ICAgICAgICAgICAgICAgc2VsZi53aWR0aCgpIC0gMzEsCisrICAgICAgICAgICAgICAgICAgIHNl bGYuaGVpZ2h0KCkKKysgICAgICAgICAgICAgICAgICAgKSwKKysgICAgICAgICAgICAxMCwgMTAp CisgCisgICAgICAgICAjIFBhaW50IGJsdWUgdHJpYW5nbGUgKGlmIG5lZWRlZCkKKyAgICAgICAg IGlmIHNlbGYuYXJyb3c6CitAQCAtNjEsNyArNjYsOCBAQCBkZWYgcGFpbnRFdmVudChzZWxmLCBl dmVudCwgKmFyZ3MpOgorICAgICAgICAgICAgIHBhdGggPSBRUGFpbnRlclBhdGgoKQorICAgICAg ICAgICAgIHBhdGgubW92ZVRvKDAsIDM1KQorICAgICAgICAgICAgIHBhdGgubGluZVRvKDMxLCAz NSAtIGFycm93X2hlaWdodCkKKy0gICAgICAgICAgICBwYXRoLmxpbmVUbygzMSwgKDM1IC0gYXJy b3dfaGVpZ2h0KSArIChhcnJvd19oZWlnaHQgKiAyKSkKKysgICAgICAgICAgICBwYXRoLmxpbmVU bygKKysgICAgICAgICAgICAgICAgMzEsIGludCgoMzUgLSBhcnJvd19oZWlnaHQpICsgKGFycm93 X2hlaWdodCAqIDIpKSkKKyAgICAgICAgICAgICBwYXRoLmxpbmVUbygwLCAzNSkKKyAgICAgICAg ICAgICBwYWludGVyLmZpbGxQYXRoKHBhdGgsIGZyYW1lQ29sb3IpCisgCitAQCAtMTk5LDcgKzIw NSw5IEBAIGRlZiBwcm9jZXNzKHNlbGYsIHBhcmVudF9uYW1lPU5vbmUpOgorIAorICAgICAgICAg ICAgICMgQ3JlYXRlIHR1dG9yaWFsCisgICAgICAgICAgICAgc2VsZi5wb3NpdGlvbl93aWRnZXQg PSB0dXRvcmlhbF9vYmplY3QKKy0gICAgICAgICAgICBzZWxmLm9mZnNldCA9IFFQb2ludCh0dXRv cmlhbF9kZXRhaWxzWyJ4Il0sIHR1dG9yaWFsX2RldGFpbHNbInkiXSkKKysgICAgICAgICAgICBz ZWxmLm9mZnNldCA9IFFQb2ludCgKKysgICAgICAgICAgICAgICAgaW50KHR1dG9yaWFsX2RldGFp bHNbIngiXSksCisrICAgICAgICAgICAgICAgIGludCh0dXRvcmlhbF9kZXRhaWxzWyJ5Il0pKQor ICAgICAgICAgICAgIHR1dG9yaWFsX2RpYWxvZyA9IFR1dG9yaWFsRGlhbG9nKHR1dG9yaWFsX2lk LCB0dXRvcmlhbF9kZXRhaWxzWyJ0ZXh0Il0sIHR1dG9yaWFsX2RldGFpbHNbImFycm93Il0sIHNl bGYpCisgCisgICAgICAgICAgICAgIyBDb25uZWN0IHNpZ25hbHMKKworRnJvbSA5ZmM1NTEyMGYz NmMzNmIyYjZiNjdlNDk5MTI4OTkzYzI1ZTUzNWNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogIkZlUkQgKEZyYW5rIERhbmEpIiA8ZmVyZG55Y0BnbWFpbC5jb20+CitEYXRlOiBUaHUs IDQgTm92IDIwMjEgMjE6MDI6NTYgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCAzLzZdIFZpZGVvV2lk Z2V0OiBOZXcgY2hlY2tUcmFuc2Zvcm1Nb2RlCisKK1JlcGxhY2VtZW50IGZvciBnZXRUcmFuc2Zv cm1Nb2RlIHdpdGggbGVzcyByZXBldGl0aW91cyBjb2RlCistLS0KKyBzcmMvd2luZG93cy92aWRl b193aWRnZXQucHkgfCAxNjAgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg MSBmaWxlIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDk5IGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvc3JjL3dpbmRvd3MvdmlkZW9fd2lkZ2V0LnB5IGIvc3JjL3dpbmRvd3MvdmlkZW9f d2lkZ2V0LnB5CitpbmRleCBmMzM2OTZjNWMuLjFiOWMzNWI1NCAxMDA2NDQKKy0tLSBhL3NyYy93 aW5kb3dzL3ZpZGVvX3dpZGdldC5weQorKysrIGIvc3JjL3dpbmRvd3MvdmlkZW9fd2lkZ2V0LnB5 CitAQCAtNjEwLDEwNiArNjEwLDY4IEBAIGRlZiByb3RhdGVDdXJzb3Ioc2VsZiwgcGl4bWFwLCBy b3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSk6CisgICAgICAgICAgICAgUXQuU21vb3RoVHJhbnNm b3JtYXRpb24pCisgICAgICAgICByZXR1cm4gUUN1cnNvcihyb3RhdGVkX3BpeG1hcCkKKyAKKy0g ICAgZGVmIGdldFRyYW5zZm9ybU1vZGUoc2VsZiwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3ks IGV2ZW50KToKKysgICAgZGVmIGNoZWNrVHJhbnNmb3JtTW9kZShzZWxmLCByb3RhdGlvbiwgc2hl YXJfeCwgc2hlYXJfeSwgZXZlbnQpOgorKyAgICAgICAgaGFuZGxlX3VpcyA9IFsKKysgICAgICAg ICAgICB7ImhhbmRsZSI6IHNlbGYuY2VudGVySGFuZGxlLCAibW9kZSI6ICdvcmlnaW4nLCAiY3Vy c29yIjogJ2hhbmQnfSwKKysgICAgICAgICAgICB7ImhhbmRsZSI6IHNlbGYudG9wUmlnaHRIYW5k bGUsICJtb2RlIjogJ3NjYWxlX3RvcF9yaWdodCcsICJjdXJzb3IiOiAncmVzaXplX2JkaWFnJ30s CisrICAgICAgICAgICAgeyJoYW5kbGUiOiBzZWxmLnRvcEhhbmRsZSwgIm1vZGUiOiAnc2NhbGVf dG9wJywgImN1cnNvciI6ICdyZXNpemVfeSd9LAorKyAgICAgICAgICAgIHsiaGFuZGxlIjogc2Vs Zi50b3BMZWZ0SGFuZGxlLCAibW9kZSI6ICdzY2FsZV90b3BfbGVmdCcsICJjdXJzb3IiOiAncmVz aXplX2ZkaWFnJ30sCisrICAgICAgICAgICAgeyJoYW5kbGUiOiBzZWxmLmxlZnRIYW5kbGUsICJt b2RlIjogJ3NjYWxlX2xlZnQnLCAiY3Vyc29yIjogJ3Jlc2l6ZV94J30sCisrICAgICAgICAgICAg eyJoYW5kbGUiOiBzZWxmLnJpZ2h0SGFuZGxlLCAibW9kZSI6ICdzY2FsZV9yaWdodCcsICJjdXJz b3IiOiAncmVzaXplX3gnfSwKKysgICAgICAgICAgICB7ImhhbmRsZSI6IHNlbGYuYm90dG9tTGVm dEhhbmRsZSwgIm1vZGUiOiAnc2NhbGVfYm90dG9tX2xlZnQnLCAiY3Vyc29yIjogJ3Jlc2l6ZV9i ZGlhZyd9LAorKyAgICAgICAgICAgIHsiaGFuZGxlIjogc2VsZi5ib3R0b21IYW5kbGUsICJtb2Rl IjogJ3NjYWxlX2JvdHRvbScsICJjdXJzb3IiOiAncmVzaXplX3knfSwKKysgICAgICAgICAgICB7 ImhhbmRsZSI6IHNlbGYuYm90dG9tUmlnaHRIYW5kbGUsICJtb2RlIjogJ3NjYWxlX2JvdHRvbV9y aWdodCcsICJjdXJzb3IiOiAncmVzaXplX2ZkaWFnJ30sCisrICAgICAgICAgICAgeyJoYW5kbGUi OiBzZWxmLnRvcFNoZWFySGFuZGxlLCAibW9kZSI6ICdzaGVhcl90b3AnLCAiY3Vyc29yIjogJ3No ZWFyX3gnfSwKKysgICAgICAgICAgICB7ImhhbmRsZSI6IHNlbGYubGVmdFNoZWFySGFuZGxlLCAi bW9kZSI6ICdzaGVhcl9sZWZ0JywgImN1cnNvciI6ICdzaGVhcl95J30sCisrICAgICAgICAgICAg eyJoYW5kbGUiOiBzZWxmLnJpZ2h0U2hlYXJIYW5kbGUsICJtb2RlIjogJ3NoZWFyX3JpZ2h0Jywg ImN1cnNvciI6ICdzaGVhcl95J30sCisrICAgICAgICAgICAgeyJoYW5kbGUiOiBzZWxmLmJvdHRv bVNoZWFySGFuZGxlLCAibW9kZSI6ICdzaGVhcl9ib3R0b20nLCAiY3Vyc29yIjogJ3NoZWFyX3gn fSwKKysgICAgICAgIF0KKysgICAgICAgIG5vbl9oYW5kbGVfdWlzID0geworKyAgICAgICAgICAg ICJyZWdpb24iOiBzZWxmLmNsaXBCb3VuZHMsCisrICAgICAgICAgICAgImluc2lkZSI6IHsibW9k ZSI6ICdsb2NhdGlvbicsICJjdXJzb3IiOiAnbW92ZSd9LAorKyAgICAgICAgICAgICJvdXRzaWRl IjogeyJtb2RlIjogJ3JvdGF0aW9uJywgImN1cnNvciI6ICJyb3RhdGUifQorKyAgICAgICAgICAg IH0KKysKKyAgICAgICAgICMgTW91c2Ugb3ZlciByZXNpemUgYnV0dG9uIChhbmQgbm90IGN1cnJl bnRseSBkcmFnZ2luZykKKy0gICAgICAgIGlmIG5vdCBzZWxmLm1vdXNlX2RyYWdnaW5nIGFuZCBz ZWxmLnJlc2l6ZV9idXR0b24uaXNWaXNpYmxlKCkgYW5kIHNlbGYucmVzaXplX2J1dHRvbi5yZWN0 KCkuY29udGFpbnMoZXZlbnQucG9zKCkpOgorKyAgICAgICAgaWYgKG5vdCBzZWxmLm1vdXNlX2Ry YWdnaW5nCisrICAgICAgICAgICAgYW5kIHNlbGYucmVzaXplX2J1dHRvbi5pc1Zpc2libGUoKQor KyAgICAgICAgICAgIGFuZCBzZWxmLnJlc2l6ZV9idXR0b24ucmVjdCgpLmNvbnRhaW5zKGV2ZW50 LnBvcygpCisrICAgICAgICApOgorICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKFF0LkFycm93 Q3Vyc29yKQorLSAgICAgICAgIyBEZXRlcm1pbmUgaWYgY3Vyc29yIGlzIG92ZXIgYSBoYW5kbGUK Ky0gICAgICAgIGVsaWYgc2VsZi50cmFuc2Zvcm0ubWFwVG9Qb2x5Z29uKHNlbGYuY2VudGVySGFu ZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6 CistICAgICAgICAgICAgaWYgbm90IHNlbGYudHJhbnNmb3JtX21vZGUgb3Igc2VsZi50cmFuc2Zv cm1fbW9kZSA9PSAnb3JpZ2luJzoKKy0gICAgICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3Ioc2Vs Zi5yb3RhdGVDdXJzb3Ioc2VsZi5jdXJzb3JzLmdldCgnaGFuZCcpLCByb3RhdGlvbiwgc2hlYXJf eCwgc2hlYXJfeSkpCistICAgICAgICAgICAgIyBTZXQgdGhlIHRyYW5zZm9ybSBtb2RlCistICAg ICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFnZ2luZyBhbmQgbm90IHNlbGYudHJhbnNmb3JtX21v ZGU6CistICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUgPSAnb3JpZ2luJworLSAg ICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi50b3BSaWdodEhhbmRs ZS50b1JlY3QoKSkuY29udGFpbnNQb2ludChldmVudC5wb3MoKSwgUXQuT2RkRXZlbkZpbGwpOgor LSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9yIHNlbGYudHJhbnNmb3Jt X21vZGUgPT0gJ3NjYWxlX3RvcF9yaWdodCc6CistICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vy c29yKHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQoJ3Jlc2l6ZV9iZGlhZycpLCBy b3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSkpCistICAgICAgICAgICAgIyBTZXQgdGhlIHRyYW5z Zm9ybSBtb2RlCistICAgICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFnZ2luZyBhbmQgbm90IHNl bGYudHJhbnNmb3JtX21vZGU6CistICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUg PSAnc2NhbGVfdG9wX3JpZ2h0JworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1Bv bHlnb24oc2VsZi50b3BIYW5kbGUudG9SZWN0KCkpLmNvbnRhaW5zUG9pbnQoZXZlbnQucG9zKCks IFF0Lk9kZEV2ZW5GaWxsKToKKy0gICAgICAgICAgICBpZiBub3Qgc2VsZi50cmFuc2Zvcm1fbW9k ZSBvciBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdzY2FsZV90b3AnOgorLSAgICAgICAgICAgICAg ICBzZWxmLnNldEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcihzZWxmLmN1cnNvcnMuZ2V0KCdyZXNp emVfeScpLCByb3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSkpCistICAgICAgICAgICAgIyBTZXQg dGhlIHRyYW5zZm9ybSBtb2RlCistICAgICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFnZ2luZyBh bmQgbm90IHNlbGYudHJhbnNmb3JtX21vZGU6CistICAgICAgICAgICAgICAgIHNlbGYudHJhbnNm b3JtX21vZGUgPSAnc2NhbGVfdG9wJworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBU b1BvbHlnb24oc2VsZi50b3BMZWZ0SGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50 LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6CistICAgICAgICAgICAgaWYgbm90IHNlbGYudHJhbnNm b3JtX21vZGUgb3Igc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnc2NhbGVfdG9wX2xlZnQnOgorLSAg ICAgICAgICAgICAgICBzZWxmLnNldEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcihzZWxmLmN1cnNv cnMuZ2V0KCdyZXNpemVfZmRpYWcnKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAg ICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYu bW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAg ICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3NjYWxlX3RvcF9sZWZ0JworLSAgICAgICAgZWxp ZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi5sZWZ0SGFuZGxlLnRvUmVjdCgpKS5j b250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6CistICAgICAgICAgICAg aWYgbm90IHNlbGYudHJhbnNmb3JtX21vZGUgb3Igc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnc2Nh bGVfbGVmdCc6CistICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vy c29yKHNlbGYuY3Vyc29ycy5nZXQoJ3Jlc2l6ZV94JyksIHJvdGF0aW9uLCBzaGVhcl94LCBzaGVh cl95KSkKKy0gICAgICAgICAgICAjIFNldCB0aGUgdHJhbnNmb3JtIG1vZGUKKy0gICAgICAgICAg ICBpZiBzZWxmLm1vdXNlX2RyYWdnaW5nIGFuZCBub3Qgc2VsZi50cmFuc2Zvcm1fbW9kZToKKy0g ICAgICAgICAgICAgICAgc2VsZi50cmFuc2Zvcm1fbW9kZSA9ICdzY2FsZV9sZWZ0JworLSAgICAg ICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi5yaWdodEhhbmRsZS50b1Jl Y3QoKSkuY29udGFpbnNQb2ludChldmVudC5wb3MoKSwgUXQuT2RkRXZlbkZpbGwpOgorLSAgICAg ICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9yIHNlbGYudHJhbnNmb3JtX21vZGUg PT0gJ3NjYWxlX3JpZ2h0JzoKKy0gICAgICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3Ioc2VsZi5y b3RhdGVDdXJzb3Ioc2VsZi5jdXJzb3JzLmdldCgncmVzaXplX3gnKSwgcm90YXRpb24sIHNoZWFy X3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAg ICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9t b2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3NjYWxlX3JpZ2h0 JworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi5ib3R0b21M ZWZ0SGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVu RmlsbCk6CistICAgICAgICAgICAgaWYgbm90IHNlbGYudHJhbnNmb3JtX21vZGUgb3Igc2VsZi50 cmFuc2Zvcm1fbW9kZSA9PSAnc2NhbGVfYm90dG9tX2xlZnQnOgorLSAgICAgICAgICAgICAgICBz ZWxmLnNldEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcihzZWxmLmN1cnNvcnMuZ2V0KCdyZXNpemVf YmRpYWcnKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMgU2V0 IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcg YW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRyYW5z Zm9ybV9tb2RlID0gJ3NjYWxlX2JvdHRvbV9sZWZ0JworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5z Zm9ybS5tYXBUb1BvbHlnb24oc2VsZi5ib3R0b21IYW5kbGUudG9SZWN0KCkpLmNvbnRhaW5zUG9p bnQoZXZlbnQucG9zKCksIFF0Lk9kZEV2ZW5GaWxsKToKKy0gICAgICAgICAgICBpZiBub3Qgc2Vs Zi50cmFuc2Zvcm1fbW9kZSBvciBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdzY2FsZV9ib3R0b20n OgorLSAgICAgICAgICAgICAgICBzZWxmLnNldEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcihzZWxm LmN1cnNvcnMuZ2V0KCdyZXNpemVfeScpLCByb3RhdGlvbiwgc2hlYXJfeCwgc2hlYXJfeSkpCist ICAgICAgICAgICAgIyBTZXQgdGhlIHRyYW5zZm9ybSBtb2RlCistICAgICAgICAgICAgaWYgc2Vs Zi5tb3VzZV9kcmFnZ2luZyBhbmQgbm90IHNlbGYudHJhbnNmb3JtX21vZGU6CistICAgICAgICAg ICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUgPSAnc2NhbGVfYm90dG9tJworLSAgICAgICAgZWxp ZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi5ib3R0b21SaWdodEhhbmRsZS50b1Jl Y3QoKSkuY29udGFpbnNQb2ludChldmVudC5wb3MoKSwgUXQuT2RkRXZlbkZpbGwpOgorLSAgICAg ICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9yIHNlbGYudHJhbnNmb3JtX21vZGUg PT0gJ3NjYWxlX2JvdHRvbV9yaWdodCc6CistICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29y KHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQoJ3Jlc2l6ZV9mZGlhZycpLCByb3Rh dGlvbiwgc2hlYXJfeCwgc2hlYXJfeSkpCistICAgICAgICAgICAgIyBTZXQgdGhlIHRyYW5zZm9y bSBtb2RlCistICAgICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFnZ2luZyBhbmQgbm90IHNlbGYu dHJhbnNmb3JtX21vZGU6CistICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUgPSAn c2NhbGVfYm90dG9tX3JpZ2h0JworLSAgICAgICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1Bv bHlnb24oc2VsZi50b3BTaGVhckhhbmRsZS50b1JlY3QoKSkuY29udGFpbnNQb2ludChldmVudC5w b3MoKSwgUXQuT2RkRXZlbkZpbGwpOgorLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9y bV9tb2RlIG9yIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gJ3NoZWFyX3RvcCc6CistICAgICAgICAg ICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQo J3NoZWFyX3gnKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMg U2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dp bmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRy YW5zZm9ybV9tb2RlID0gJ3NoZWFyX3RvcCcKKy0gICAgICAgIGVsaWYgc2VsZi50cmFuc2Zvcm0u bWFwVG9Qb2x5Z29uKHNlbGYubGVmdFNoZWFySGFuZGxlLnRvUmVjdCgpKS5jb250YWluc1BvaW50 KGV2ZW50LnBvcygpLCBRdC5PZGRFdmVuRmlsbCk6CistICAgICAgICAgICAgaWYgbm90IHNlbGYu dHJhbnNmb3JtX21vZGUgb3Igc2VsZi50cmFuc2Zvcm1fbW9kZSA9PSAnc2hlYXJfbGVmdCc6Cist ICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vy c29ycy5nZXQoJ3NoZWFyX3knKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAg ICAgICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91 c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAgICAg ICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3NoZWFyX2xlZnQnCistICAgICAgICBlbGlmIHNlbGYu dHJhbnNmb3JtLm1hcFRvUG9seWdvbihzZWxmLnJpZ2h0U2hlYXJIYW5kbGUudG9SZWN0KCkpLmNv bnRhaW5zUG9pbnQoZXZlbnQucG9zKCksIFF0Lk9kZEV2ZW5GaWxsKToKKy0gICAgICAgICAgICBp ZiBub3Qgc2VsZi50cmFuc2Zvcm1fbW9kZSBvciBzZWxmLnRyYW5zZm9ybV9tb2RlID09ICdzaGVh cl9yaWdodCc6CistICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29yKHNlbGYucm90YXRlQ3Vy c29yKHNlbGYuY3Vyc29ycy5nZXQoJ3NoZWFyX3knKSwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFy X3kpKQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9kZQorLSAgICAgICAgICAg IGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorLSAg ICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3NoZWFyX3JpZ2h0JworLSAgICAg ICAgZWxpZiBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2VsZi5ib3R0b21TaGVhckhhbmRs ZS50b1JlY3QoKSkuY29udGFpbnNQb2ludChldmVudC5wb3MoKSwgUXQuT2RkRXZlbkZpbGwpOgor LSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9yIHNlbGYudHJhbnNmb3Jt X21vZGUgPT0gJ3NoZWFyX2JvdHRvbSc6CistICAgICAgICAgICAgICAgIHNlbGYuc2V0Q3Vyc29y KHNlbGYucm90YXRlQ3Vyc29yKHNlbGYuY3Vyc29ycy5nZXQoJ3NoZWFyX3gnKSwgcm90YXRpb24s IHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zvcm0gbW9k ZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5z Zm9ybV9tb2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0gJ3NoZWFy X2JvdHRvbScKKy0gICAgICAgIGVsaWYgc2VsZi50cmFuc2Zvcm0ubWFwVG9Qb2x5Z29uKHNlbGYu Y2xpcEJvdW5kcy50b1JlY3QoKSkuY29udGFpbnNQb2ludChldmVudC5wb3MoKSwgUXQuT2RkRXZl bkZpbGwpOgorLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlIG9yIHNlbGYu dHJhbnNmb3JtX21vZGUgPT0gJ2xvY2F0aW9uJzoKKy0gICAgICAgICAgICAgICAgc2VsZi5zZXRD dXJzb3Ioc2VsZi5yb3RhdGVDdXJzb3Ioc2VsZi5jdXJzb3JzLmdldCgnbW92ZScpLCByb3RhdGlv biwgc2hlYXJfeCwgc2hlYXJfeSkpCistICAgICAgICAgICAgIyBTZXQgdGhlIHRyYW5zZm9ybSBt b2RlCistICAgICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFnZ2luZyBhbmQgbm90IHNlbGYudHJh bnNmb3JtX21vZGU6CistICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUgPSAnbG9j YXRpb24nCistICAgICAgICBlbGlmIG5vdCBzZWxmLnRyYW5zZm9ybS5tYXBUb1BvbHlnb24oc2Vs Zi5jbGlwQm91bmRzLnRvUmVjdCgpKS5jb250YWluc1BvaW50KGV2ZW50LnBvcygpLCBRdC5PZGRF dmVuRmlsbCk6CistICAgICAgICAgICAgaWYgbm90IHNlbGYudHJhbnNmb3JtX21vZGUgb3Igc2Vs Zi50cmFuc2Zvcm1fbW9kZSA9PSAncm90YXRpb24nOgorLSAgICAgICAgICAgICAgICBzZWxmLnNl dEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcihzZWxmLmN1cnNvcnMuZ2V0KCdyb3RhdGUnKSwgcm90 YXRpb24sIHNoZWFyX3gsIHNoZWFyX3kpKQorLSAgICAgICAgICAgICMgU2V0IHRoZSB0cmFuc2Zv cm0gbW9kZQorLSAgICAgICAgICAgIGlmIHNlbGYubW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxm LnRyYW5zZm9ybV9tb2RlOgorLSAgICAgICAgICAgICAgICBzZWxmLnRyYW5zZm9ybV9tb2RlID0g J3JvdGF0aW9uJworLSAgICAgICAgZWxpZiBub3Qgc2VsZi50cmFuc2Zvcm1fbW9kZToKKy0gICAg ICAgICAgICAjIFJlc2V0IGN1cnNvciB3aGVuIG5vdCBvdmVyIGEgaGFuZGxlCistICAgICAgICAg ICAgc2VsZi5zZXRDdXJzb3IoUUN1cnNvcihRdC5BcnJvd0N1cnNvcikpCisrICAgICAgICAgICAg c2VsZi50cmFuc2Zvcm1fbW9kZSA9IE5vbmUKKysgICAgICAgICAgICByZXR1cm4KKysKKysgICAg ICAgICMgSWYgbW91c2UgaXMgb3ZlciBhIGhhbmRsZSwgc2V0IGNvcnJlc3BvbmRpbmcgcG9pbnRl ci9tb2RlCisrICAgICAgICBmb3IgaCBpbiBoYW5kbGVfdWlzOgorKyAgICAgICAgICAgIGlmIHNl bGYudHJhbnNmb3JtLm1hcFRvUG9seWdvbigKKysgICAgICAgICAgICAgICAgICAgIGhbImhhbmRs ZSJdLnRvUmVjdCgpCisrICAgICAgICAgICAgICAgICAgICApLmNvbnRhaW5zUG9pbnQoZXZlbnQu cG9zKCksIFF0Lk9kZEV2ZW5GaWxsKToKKysgICAgICAgICAgICAgICAgIyBIYW5kbGUgY29udGFp bnMgY3Vyc29yCisrICAgICAgICAgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtX21vZGUgYW5kIHNl bGYudHJhbnNmb3JtX21vZGUgIT0gaFsibW9kZSJdOgorKyAgICAgICAgICAgICAgICAgICAgIyBX ZSdyZSBpbiBkaWZmZXJlbnQgeGZvcm0gbW9kZSwgc2tpcAorKyAgICAgICAgICAgICAgICAgICAg Y29udGludWUKKysgICAgICAgICAgICAgICAgaWYgc2VsZi5tb3VzZV9kcmFnZ2luZzoKKysgICAg ICAgICAgICAgICAgICAgIHNlbGYudHJhbnNmb3JtX21vZGUgPSBoWyJtb2RlIl0KKysgICAgICAg ICAgICAgICAgc2VsZi5zZXRDdXJzb3Ioc2VsZi5yb3RhdGVDdXJzb3IoCisrICAgICAgICAgICAg ICAgICAgICBzZWxmLmN1cnNvcnMuZ2V0KGhbImN1cnNvciJdKSwgcm90YXRpb24sIHNoZWFyX3gs IHNoZWFyX3kpKQorKyAgICAgICAgICAgICAgICByZXR1cm4KKysKKysgICAgICAgICMgSWYgbm90 IG92ZXIgYW55IGhhbmRsZXMsIGRldGVybW5lIGluc2lkZS9vdXRzaWRlIGNsaXAgcmVjdGFuZ2xl CisrICAgICAgICByID0gbm9uX2hhbmRsZV91aXMuZ2V0KCJyZWdpb24iKQorKyAgICAgICAgaWYg c2VsZi50cmFuc2Zvcm0ubWFwVG9Qb2x5Z29uKHIudG9SZWN0KCkpLmNvbnRhaW5zUG9pbnQoZXZl bnQucG9zKCksIFF0Lk9kZEV2ZW5GaWxsKToKKysgICAgICAgICAgICBuaCA9IG5vbl9oYW5kbGVf dWlzLmdldCgiaW5zaWRlIiwge30pCisrICAgICAgICBlbHNlOgorKyAgICAgICAgICAgIG5oID0g bm9uX2hhbmRsZV91aXMuZ2V0KCJvdXRzaWRlIiwge30pCisrICAgICAgICBpZiBzZWxmLm1vdXNl X2RyYWdnaW5nIGFuZCBub3Qgc2VsZi50cmFuc2Zvcm1fbW9kZToKKysgICAgICAgICAgICBzZWxm LnRyYW5zZm9ybV9tb2RlID0gbmguZ2V0KCJtb2RlIikKKysgICAgICAgIGlmIG5vdCBzZWxmLnRy YW5zZm9ybV9tb2RlIG9yIHNlbGYudHJhbnNmb3JtX21vZGUgPT0gbmguZ2V0KCJtb2RlIik6Cisr ICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3Ioc2VsZi5yb3RhdGVDdXJzb3IoCisrICAgICAgICAg ICAgICAgIHNlbGYuY3Vyc29ycy5nZXQobmguZ2V0KCJjdXJzb3IiKSksIHJvdGF0aW9uLCBzaGVh cl94LCBzaGVhcl95KSkKKyAKKy0gICAgICAgIHJldHVybiBUcnVlCisrCisrICAgICAgICAjIElm IHdlIGdvdCB0aGlzIGZhciBhbmQgd2UgZG9uJ3QgaGF2ZSBhIHRyYW5zZm9ybSBtb2RlLCByZXNl dCB0aGUgY3Vyc29yCisrICAgICAgICBpZiBub3Qgc2VsZi50cmFuc2Zvcm1fbW9kZToKKysgICAg ICAgICAgICBzZWxmLnNldEN1cnNvcihRQ3Vyc29yKFF0LkFycm93Q3Vyc29yKSkKKyAKKyAgICAg ZGVmIG1vdXNlTW92ZUV2ZW50KHNlbGYsIGV2ZW50KToKKyAgICAgICAgICIiIkNhcHR1cmUgbW91 c2UgZXZlbnRzIG9uIHZpZGVvIHByZXZpZXcgd2luZG93ICIiIgorQEAgLTc0Niw3ICs3MDgsNyBA QCBkZWYgbW91c2VNb3ZlRXZlbnQoc2VsZiwgZXZlbnQpOgorICAgICAgICAgICAgIGlmIHNlbGYu bW91c2VfZHJhZ2dpbmcgYW5kIG5vdCBzZWxmLnRyYW5zZm9ybV9tb2RlOgorICAgICAgICAgICAg ICAgICBzZWxmLm9yaWdpbmFsX2NsaXBfZGF0YSA9IHNlbGYudHJhbnNmb3JtaW5nX2NsaXAuZGF0 YQorIAorLSAgICAgICAgICAgIF8gPSBzZWxmLmdldFRyYW5zZm9ybU1vZGUocm90YXRpb24sIHNo ZWFyX3gsIHNoZWFyX3ksIGV2ZW50KQorKyAgICAgICAgICAgIHNlbGYuY2hlY2tUcmFuc2Zvcm1N b2RlKHJvdGF0aW9uLCBzaGVhcl94LCBzaGVhcl95LCBldmVudCkKKyAKKyAgICAgICAgICAgICAj IFRyYW5zZm9ybSBjbGlwIG9iamVjdAorICAgICAgICAgICAgIGlmIHNlbGYudHJhbnNmb3JtX21v ZGU6CitAQCAtMTA0MCw3ICsxMDAyLDcgQEAgZGVmIG1vdXNlTW92ZUV2ZW50KHNlbGYsIGV2ZW50 KToKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYubXV0ZXgudW5sb2NrKCkKKyAgICAgICAgICAg ICAgICAgICAgIHJldHVybgorIAorLSAgICAgICAgICAgICAgICBfID0gc2VsZi5nZXRUcmFuc2Zv cm1Nb2RlKDAsIDAsIDAsIGV2ZW50KQorKyAgICAgICAgICAgICAgICBzZWxmLmNoZWNrVHJhbnNm b3JtTW9kZSgwLCAwLCAwLCBldmVudCkKKyAKKyAgICAgICAgICAgICAgICAgIyBUcmFuc2Zvcm0g ZWZmZWN0IG9iamVjdAorICAgICAgICAgICAgICAgICBpZiBzZWxmLnRyYW5zZm9ybV9tb2RlOgor CitGcm9tIDFmMDU4ZjczMGJiMzYwNjhiY2U1YzY0NWVjZWE0NWI5ODI3OWI2MTQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiAiRmVSRCAoRnJhbmsgRGFuYSkiIDxmZXJkbnljQGdtYWls LmNvbT4KK0RhdGU6IFRodSwgNCBOb3YgMjAyMSAyMTo0Mjo0OCAtMDQwMAorU3ViamVjdDogW1BB VENIIDQvNl0gVmlkZW9XaWRnZXQ6IFByb3RlY3QgcHJvcGVydHkgYWNjZXNzZXMKKworLS0tCisg c3JjL3dpbmRvd3MvdmlkZW9fd2lkZ2V0LnB5IHwgNjEgKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAyNyBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weSBiL3Ny Yy93aW5kb3dzL3ZpZGVvX3dpZGdldC5weQoraW5kZXggMWI5YzM1YjU0Li5hNGQ0Mjk2OWYgMTAw NjQ0CistLS0gYS9zcmMvd2luZG93cy92aWRlb193aWRnZXQucHkKKysrKyBiL3NyYy93aW5kb3dz L3ZpZGVvX3dpZGdldC5weQorQEAgLTYzNSw3ICs2MzUsNyBAQCBkZWYgY2hlY2tUcmFuc2Zvcm1N b2RlKHNlbGYsIHJvdGF0aW9uLCBzaGVhcl94LCBzaGVhcl95LCBldmVudCk6CisgICAgICAgICAj IE1vdXNlIG92ZXIgcmVzaXplIGJ1dHRvbiAoYW5kIG5vdCBjdXJyZW50bHkgZHJhZ2dpbmcpCisg ICAgICAgICBpZiAobm90IHNlbGYubW91c2VfZHJhZ2dpbmcKKyAgICAgICAgICAgICBhbmQgc2Vs Zi5yZXNpemVfYnV0dG9uLmlzVmlzaWJsZSgpCistICAgICAgICAgICAgYW5kIHNlbGYucmVzaXpl X2J1dHRvbi5yZWN0KCkuY29udGFpbnMoZXZlbnQucG9zKCkKKysgICAgICAgICAgICBhbmQgc2Vs Zi5yZXNpemVfYnV0dG9uLnJlY3QoKS5jb250YWlucyhldmVudC5wb3MoKSkKKyAgICAgICAgICk6 CisgICAgICAgICAgICAgc2VsZi5zZXRDdXJzb3IoUXQuQXJyb3dDdXJzb3IpCisgICAgICAgICAg ICAgc2VsZi50cmFuc2Zvcm1fbW9kZSA9IE5vbmUKK0BAIC02NjgsMTEgKzY2OCw2IEBAIGRlZiBj aGVja1RyYW5zZm9ybU1vZGUoc2VsZiwgcm90YXRpb24sIHNoZWFyX3gsIHNoZWFyX3ksIGV2ZW50 KToKKyAgICAgICAgICAgICBzZWxmLnNldEN1cnNvcihzZWxmLnJvdGF0ZUN1cnNvcigKKyAgICAg ICAgICAgICAgICAgc2VsZi5jdXJzb3JzLmdldChuaC5nZXQoImN1cnNvciIpKSwgcm90YXRpb24s IHNoZWFyX3gsIHNoZWFyX3kpKQorIAorLQorLSAgICAgICAgIyBJZiB3ZSBnb3QgdGhpcyBmYXIg YW5kIHdlIGRvbid0IGhhdmUgYSB0cmFuc2Zvcm0gbW9kZSwgcmVzZXQgdGhlIGN1cnNvcgorLSAg ICAgICAgaWYgbm90IHNlbGYudHJhbnNmb3JtX21vZGU6CistICAgICAgICAgICAgc2VsZi5zZXRD dXJzb3IoUUN1cnNvcihRdC5BcnJvd0N1cnNvcikpCistCisgICAgIGRlZiBtb3VzZU1vdmVFdmVu dChzZWxmLCBldmVudCk6CisgICAgICAgICAiIiJDYXB0dXJlIG1vdXNlIGV2ZW50cyBvbiB2aWRl byBwcmV2aWV3IHdpbmRvdyAiIiIKKyAgICAgICAgIHNlbGYubXV0ZXgubG9jaygpCitAQCAtMTEy MSwyNyArMTExNiwzNyBAQCBkZWYgdXBkYXRlQ2xpcFByb3BlcnR5KHNlbGYsIGNsaXBfaWQsIGZy YW1lX251bWJlciwgcHJvcGVydHlfa2V5LCBuZXdfdmFsdWUsIHJlZgorICAgICAgICAgICAgICMg Tm8gY2xpcCBmb3VuZAorICAgICAgICAgICAgIHJldHVybgorIAorLSAgICAgICAgZm9yIHBvaW50 IGluIGMuZGF0YVtwcm9wZXJ0eV9rZXldWyJQb2ludHMiXToKKy0gICAgICAgICAgICBsb2cuaW5m bygibG9vcGluZyBwb2ludHM6IGNvLlggPSAlcyIgJSBwb2ludFsiY28iXVsiWCJdKQorKyAgICAg ICAgIyBQcm9wZXJ0eSBtaXNzaW5nPyBDcmVhdGUgaXQhCisrICAgICAgICBpZiBwcm9wZXJ0eV9r ZXkgbm90IGluIGMuZGF0YToKKysgICAgICAgICAgICBjLmRhdGFbcHJvcGVydHlfa2V5XSA9IHsi UG9pbnRzIjogW119CisrICAgICAgICAgICAgbG9nLndhcm5pbmcoCisrICAgICAgICAgICAgICAg ICIlczogQWRkZWQgbWlzc2luZyAnJXMnIHRvIHByb3BlcnR5IGRhdGEiLAorKyAgICAgICAgICAg ICAgICBjbGlwX2lkLCBwcm9wZXJ0eV9rZXkpCisgCistICAgICAgICAgICAgaWYgcG9pbnRbImNv Il1bIlgiXSA9PSBmcmFtZV9udW1iZXI6CisrICAgICAgICBwb2ludHMgPSBjLmRhdGEuZ2V0KHBy b3BlcnR5X2tleSkuZ2V0KCJQb2ludHMiKQorKyAgICAgICAgZm9yIHBvaW50IGluIHBvaW50czoK KysgICAgICAgICAgICBjbyA9IHBvaW50LmdldCgiY28iLCB7fSkKKysgICAgICAgICAgICBsb2cu aW5mbygibG9vcGluZyBwb2ludHM6IGNvLlggPSAlcyIgJSBjby5nZXQoIlgiKSkKKysKKysgICAg ICAgICAgICBpZiBjby5nZXQoIlgiKSA9PSBmcmFtZV9udW1iZXI6CisgICAgICAgICAgICAgICAg IGZvdW5kX3BvaW50ID0gVHJ1ZQorICAgICAgICAgICAgICAgICBjbGlwX3VwZGF0ZWQgPSBUcnVl CistICAgICAgICAgICAgICAgIHBvaW50WyJpbnRlcnBvbGF0aW9uIl0gPSBvcGVuc2hvdC5CRVpJ RVIKKy0gICAgICAgICAgICAgICAgcG9pbnRbImNvIl1bIlkiXSA9IGZsb2F0KG5ld192YWx1ZSkK KysgICAgICAgICAgICAgICAgcG9pbnQudXBkYXRlKHsKKysgICAgICAgICAgICAgICAgICAgICJj byI6IHsiWCI6IGZyYW1lX251bWJlciwgIlkiOiBmbG9hdChuZXdfdmFsdWUpfSwKKysgICAgICAg ICAgICAgICAgICAgICJpbnRlcnBvbGF0aW9uIjogb3BlbnNob3QuQkVaSUVSLAorKyAgICAgICAg ICAgICAgICB9KQorIAorICAgICAgICAgaWYgbm90IGZvdW5kX3BvaW50IGFuZCBuZXdfdmFsdWUg aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgY2xpcF91cGRhdGVkID0gVHJ1ZQorLSAgICAgICAg ICAgIGxvZy5pbmZvKCJDcmVhdGVkIG5ldyBwb2ludCBhdCBYPSVzIiwgZnJhbWVfbnVtYmVyKQor KyAgICAgICAgICAgIGxvZy5pbmZvKCJDcmVhdGluZyBuZXcgcG9pbnQgYXQgWD0lcyIsIGZyYW1l X251bWJlcikKKyAgICAgICAgICAgICBjLmRhdGFbcHJvcGVydHlfa2V5XVsiUG9pbnRzIl0uYXBw ZW5kKHsKKy0gICAgICAgICAgICAgICAgJ2NvJzogeydYJzogZnJhbWVfbnVtYmVyLCAnWSc6IG5l d192YWx1ZX0sCisrICAgICAgICAgICAgICAgICdjbyc6IHsnWCc6IGZyYW1lX251bWJlciwgJ1kn OiBmbG9hdChuZXdfdmFsdWUpfSwKKyAgICAgICAgICAgICAgICAgJ2ludGVycG9sYXRpb24nOiBv cGVuc2hvdC5CRVpJRVIKKyAgICAgICAgICAgICAgICAgfSkKKyAKKy0gICAgICAgICMgUmVkdWNl ICMgb2YgY2xpcCBwcm9wZXJ0aWVzIHdlIGFyZSBzYXZpbmcgKHBlcmZvcm1hbmNlIGJvb3N0KQor LSAgICAgICAgYy5kYXRhID0ge3Byb3BlcnR5X2tleTogYy5kYXRhLmdldChwcm9wZXJ0eV9rZXkp fQorLQorICAgICAgICAgaWYgY2xpcF91cGRhdGVkOgorKyAgICAgICAgICAgICMgUmVkdWNlICMg b2YgY2xpcCBwcm9wZXJ0aWVzIHdlIGFyZSBzYXZpbmcgKHBlcmZvcm1hbmNlIGJvb3N0KQorKyAg ICAgICAgICAgIGMuZGF0YSA9IHtwcm9wZXJ0eV9rZXk6IGMuZGF0YS5nZXQocHJvcGVydHlfa2V5 KX0KKyAgICAgICAgICAgICBjLnNhdmUoKQorICAgICAgICAgICAgICMgVXBkYXRlIHRoZSBwcmV2 aWV3CisgICAgICAgICAgICAgaWYgcmVmcmVzaDoKK0BAIC0xMTY2LDI3ICsxMTcxLDI5IEBAIGRl ZiB1cGRhdGVFZmZlY3RQcm9wZXJ0eShzZWxmLCBlZmZlY3RfaWQsIGZyYW1lX251bWJlciwgb2Jq X2lkLCBwcm9wZXJ0eV9rZXksIG5lCisgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBm b3IgcG9pbnQgaW4gcG9pbnRzX2xpc3Q6CistICAgICAgICAgICAgbG9nLmluZm8oImxvb3Bpbmcg cG9pbnRzOiBjby5YID0gJXMiLCBwb2ludFsiY28iXVsiWCJdKQorKyAgICAgICAgICAgIGNvID0g cG9pbnQuZ2V0KCJjbyIsIHt9KQorKyAgICAgICAgICAgIGxvZy5pbmZvKCJsb29waW5nIHBvaW50 czogY28uWCA9ICVzIiwgY28uZ2V0KCJYIikpCisgCistICAgICAgICAgICAgaWYgcG9pbnRbImNv Il1bIlgiXSA9PSBmcmFtZV9udW1iZXI6CisrICAgICAgICAgICAgaWYgY28uZ2V0KCJYIikgPT0g ZnJhbWVfbnVtYmVyOgorICAgICAgICAgICAgICAgICBmb3VuZF9wb2ludCA9IFRydWUKKyAgICAg ICAgICAgICAgICAgZWZmZWN0X3VwZGF0ZWQgPSBUcnVlCistICAgICAgICAgICAgICAgIHBvaW50 WyJpbnRlcnBvbGF0aW9uIl0gPSBvcGVuc2hvdC5CRVpJRVIKKy0gICAgICAgICAgICAgICAgcG9p bnRbImNvIl1bIlkiXSA9IGZsb2F0KG5ld192YWx1ZSkKKysgICAgICAgICAgICAgICAgcG9pbnQu dXBkYXRlKHsKKysgICAgICAgICAgICAgICAgICAgICJjbyI6IHsiWCI6IGZyYW1lX251bWJlciwg IlkiOiBmbG9hdChuZXdfdmFsdWUpfSwKKysgICAgICAgICAgICAgICAgICAgICJpbnRlcnBvbGF0 aW9uIjogb3BlbnNob3QuQkVaSUVSLAorKyAgICAgICAgICAgICAgICB9KQorIAorLSAgICAgICAg aWYgbm90IGZvdW5kX3BvaW50IGFuZCBuZXdfdmFsdWUgIT0gTm9uZToKKysgICAgICAgIGlmIG5v dCBmb3VuZF9wb2ludCBhbmQgbmV3X3ZhbHVlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIGVm ZmVjdF91cGRhdGVkID0gVHJ1ZQorLSAgICAgICAgICAgIGxvZy5pbmZvKCJDcmVhdGVkIG5ldyBw b2ludCBhdCBYPSVzIiwgZnJhbWVfbnVtYmVyKQorKyAgICAgICAgICAgIGxvZy5pbmZvKCJDcmVh dGluZyBuZXcgcG9pbnQgYXQgWD0lcyIsIGZyYW1lX251bWJlcikKKyAgICAgICAgICAgICBwb2lu dHNfbGlzdC5hcHBlbmQoeworLSAgICAgICAgICAgICAgICAnY28nOiB7ICdYJzogZnJhbWVfbnVt YmVyLCAnWSc6IG5ld192YWx1ZSB9LAorKyAgICAgICAgICAgICAgICAnY28nOiB7J1gnOiBmcmFt ZV9udW1iZXIsICdZJzogZmxvYXQobmV3X3ZhbHVlKX0sCisgICAgICAgICAgICAgICAgICdpbnRl cnBvbGF0aW9uJzogb3BlbnNob3QuQkVaSUVSLAorICAgICAgICAgICAgICAgICB9KQorIAorLSAg ICAgICAgIyBSZWR1Y2UgIyBvZiBjbGlwIHByb3BlcnRpZXMgd2UgYXJlIHNhdmluZyAocGVyZm9y bWFuY2UgYm9vc3QpCistICAgICAgICAjVE9ETzogVGhpcyBpcyB0b28gc2xvdyB3aGVuIGRyYWdp bmcgdHJhbnNmb3JtIGhhbmRsZXJzCistICAgICAgICBjLmRhdGEgPSB7J29iamVjdHMnOiB7b2Jq X2lkOiBjLmRhdGEuZ2V0KCdvYmplY3RzJywge30pLmdldChvYmpfaWQpfX0KKy0KKyAgICAgICAg IGlmIGVmZmVjdF91cGRhdGVkOgorKyAgICAgICAgICAgICMgUmVkdWNlICMgb2YgY2xpcCBwcm9w ZXJ0aWVzIHdlIGFyZSBzYXZpbmcgKHBlcmZvcm1hbmNlIGJvb3N0KQorKyAgICAgICAgICAgICNU T0RPOiBUaGlzIGlzIHRvbyBzbG93IHdoZW4gZHJhZ2luZyB0cmFuc2Zvcm0gaGFuZGxlcnMKKysg ICAgICAgICAgICBjLmRhdGEgPSB7J29iamVjdHMnOiB7b2JqX2lkOiBjLmRhdGEuZ2V0KCdvYmpl Y3RzJywge30pLmdldChvYmpfaWQpfX0KKyAgICAgICAgICAgICBjLnNhdmUoKQorICAgICAgICAg ICAgICMgVXBkYXRlIHRoZSBwcmV2aWV3CisgICAgICAgICAgICAgaWYgcmVmcmVzaDoKKworRnJv bSA3ZGY4N2RkYzE4OWM1ZTUwMzFmYmIxOWRmMTMzNzg0MjhmYWI5NTFlIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogIkZlUkQgKEZyYW5rIERhbmEpIiA8ZmVyZG55Y0BnbWFpbC5jb20+ CitEYXRlOiBUaHUsIDQgTm92IDIwMjEgMjE6NTI6MTkgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCA1 LzZdIGNsYXNzZXMvdGh1bWJuYWlsOiBGaXggZGFuZ2xpbmcgZmlsZWhhbmRsZXMKKworLS0tCisg c3JjL2NsYXNzZXMvdGh1bWJuYWlsLnB5IHwgOCArKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY2xhc3Nl cy90aHVtYm5haWwucHkgYi9zcmMvY2xhc3Nlcy90aHVtYm5haWwucHkKK2luZGV4IGNjYTQ3ZDY4 Zi4uZGFjNzQyMmExIDEwMDY0NAorLS0tIGEvc3JjL2NsYXNzZXMvdGh1bWJuYWlsLnB5CisrKysg Yi9zcmMvY2xhc3Nlcy90aHVtYm5haWwucHkKK0BAIC0yMDksMTMgKzIwOSwxMyBAQCBkZWYgZG9f R0VUKHNlbGYpOgorIAorICAgICAgICAgIyBTZW5kIG1lc3NhZ2UgYmFjayB0byBjbGllbnQKKyAg ICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHRodW1iX3BhdGgpOgorLSAgICAgICAgICAgIGlmIG5v dCBvbmx5X3BhdGg6CistICAgICAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUob3Blbih0aHVt Yl9wYXRoLCAncmInKS5yZWFkKCkpCistICAgICAgICAgICAgZWxzZToKKysgICAgICAgICAgICBp ZiBvbmx5X3BhdGg6CisgICAgICAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoYnl0ZXModGh1 bWJfcGF0aCwgInV0Zi04IikpCisrICAgICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAg d2l0aCBvcGVuKHRodW1iX3BhdGgsICdyYicpIGFzIGY6CisrICAgICAgICAgICAgICAgICAgICBz ZWxmLndmaWxlLndyaXRlKGYucmVhZCgpKQorIAorICAgICAgICAgIyBQYXVzZSBwcm9jZXNzaW5n IG9mIHJlcXVlc3QgKHNpbmNlIHdlIGRvbid0IGN1cnJlbnRseSB1c2UgdGhyZWFkIHBvb2xpbmcs IHRoaXMgYWxsb3dzCisgICAgICAgICAjIHRoZSB0aHJlYWRzIHRvIGJlIHByb2Nlc3NlZCB3aXRo b3V0IGNob2tpbmcgdGhlIENQVSBhcyBtdWNoCisgICAgICAgICAjIFRPRE86IE1ha2UgSFRUUFNl cnZlciB3b3JrIHdpdGggYSBsaW1pdGVkIHRocmVhZCBwb29sIGFuZCByZW1vdmUgdGhpcyBzbGVl cCgpIGhhY2suCisgICAgICAgICB0aW1lLnNsZWVwKDAuMDEpCistCisKK0Zyb20gMzNjZjY4Y2Ew YjFlYTU3ZWRkNWRlYzNkYmI4YmEwNmQ2YTNmOGZhNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206ICJGZVJEIChGcmFuayBEYW5hKSIgPGZlcmRueWNAZ21haWwuY29tPgorRGF0ZTogVGh1 LCAyNSBOb3YgMjAyMSAwMjoxODozMiAtMDUwMAorU3ViamVjdDogW1BBVENIIDYvNl0gcHJvcGVy dGllc19tb2RlbDogRml4IGJhZCBsb2dnaW5nIGNhbGwsIENvZGFjeSBmbGFncworCistLS0KKyBz cmMvd2luZG93cy9tb2RlbHMvcHJvcGVydGllc19tb2RlbC5weSB8IDEwICsrKysrLS0tLS0KKyAx IGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitkaWZmIC0t Z2l0IGEvc3JjL3dpbmRvd3MvbW9kZWxzL3Byb3BlcnRpZXNfbW9kZWwucHkgYi9zcmMvd2luZG93 cy9tb2RlbHMvcHJvcGVydGllc19tb2RlbC5weQoraW5kZXggNDA4OTdmNjQyLi42OTVlOWYzOWMg MTAwNjQ0CistLS0gYS9zcmMvd2luZG93cy9tb2RlbHMvcHJvcGVydGllc19tb2RlbC5weQorKysr IGIvc3JjL3dpbmRvd3MvbW9kZWxzL3Byb3BlcnRpZXNfbW9kZWwucHkKK0BAIC00NDQsNyArNDQ0 LDcgQEAgZGVmIHZhbHVlX3VwZGF0ZWQoc2VsZiwgaXRlbSwgaW50ZXJwb2xhdGlvbj0tMSwgdmFs dWU9Tm9uZSwgaW50ZXJwb2xhdGlvbl9kZXRhaWwKKyAgICAgICAgICAgICAgICAgbG9nLmRlYnVn KCIlczogdXBkYXRlIHByb3BlcnR5ICVzLiAlcyIsIGxvZ19pZCwgcHJvcGVydHlfa2V5LCBjbGlw X2RhdGEuZ2V0KHByb3BlcnR5X2tleSkpCisgCisgICAgICAgICAgICAgICAgICMgQ2hlY2sgdGhl IHR5cGUgb2YgcHJvcGVydHkgKHNvbWUgYXJlIGtleWZyYW1lLCBhbmQgc29tZSBhcmUgbm90KQor LSAgICAgICAgICAgICAgICBpZiBwcm9wZXJ0eV90eXBlICE9ICJyZWFkZXIiIGFuZCB0eXBlKGNs aXBfZGF0YVtwcm9wZXJ0eV9rZXldKSA9PSBkaWN0OgorKyAgICAgICAgICAgICAgICBpZiBwcm9w ZXJ0eV90eXBlICE9ICJyZWFkZXIiIGFuZCBpc2luc3RhbmNlKGNsaXBfZGF0YVtwcm9wZXJ0eV9r ZXldLCBkaWN0KToKKyAgICAgICAgICAgICAgICAgICAgICMgS2V5ZnJhbWUKKyAgICAgICAgICAg ICAgICAgICAgICMgTG9vcCB0aHJvdWdoIHBvaW50cywgZmluZCBhIG1hdGNoaW5nIHBvaW50cyBv biB0aGlzIGZyYW1lCisgICAgICAgICAgICAgICAgICAgICBmb3VuZF9wb2ludCA9IEZhbHNlCitA QCAtNTE3LDIxICs1MTcsMjEgQEAgZGVmIHZhbHVlX3VwZGF0ZWQoc2VsZiwgaXRlbSwgaW50ZXJw b2xhdGlvbj0tMSwgdmFsdWU9Tm9uZSwgaW50ZXJwb2xhdGlvbl9kZXRhaWwKKyAgICAgICAgICAg ICAgICAgICAgIGNsaXBfdXBkYXRlZCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgIHRyeToK KyAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwX2RhdGFbcHJvcGVydHlfa2V5XSA9IGludChu ZXdfdmFsdWUpCistICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4Ogor KyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICAg ICAgICAgICBsb2cud2FybignSW52YWxpZCBJbnRlZ2VyIHZhbHVlIHBhc3NlZCB0byBwcm9wZXJ0 eScsIGV4Y19pbmZvPTEpCisgCisgICAgICAgICAgICAgICAgIGVsaWYgcHJvcGVydHlfdHlwZSA9 PSAiZmxvYXQiOgorICAgICAgICAgICAgICAgICAgICAgY2xpcF91cGRhdGVkID0gVHJ1ZQorICAg ICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfZGF0 YVtwcm9wZXJ0eV9rZXldID0gZmxvYXQobmV3X3ZhbHVlKQorLSAgICAgICAgICAgICAgICAgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBleDoKKysgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNl cHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICAgbG9nLndhcm4oJ0ludmFsaWQgRmxvYXQg dmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5JywgZXhjX2luZm89MSkKKyAKKyAgICAgICAgICAgICAg ICAgZWxpZiBwcm9wZXJ0eV90eXBlID09ICJib29sIjoKKyAgICAgICAgICAgICAgICAgICAgIGNs aXBfdXBkYXRlZCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg ICAgICAgICAgICAgICBjbGlwX2RhdGFbcHJvcGVydHlfa2V5XSA9IGJvb2wobmV3X3ZhbHVlKQor LSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleDoKKysgICAgICAgICAg ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICAgbG9n Lndhcm4oJ0ludmFsaWQgQm9vbGVhbiB2YWx1ZSBwYXNzZWQgdG8gcHJvcGVydHknLCBleGNfaW5m bz0xKQorIAorICAgICAgICAgICAgICAgICBlbGlmIHByb3BlcnR5X3R5cGUgPT0gInN0cmluZyI6 CitAQCAtNTU4LDcgKzU1OCw3IEBAIGRlZiB2YWx1ZV91cGRhdGVkKHNlbGYsIGl0ZW0sIGludGVy cG9sYXRpb249LTEsIHZhbHVlPU5vbmUsIGludGVycG9sYXRpb25fZGV0YWlsCisgICAgICAgICAg ICAgICAgICAgICAgICAgY2xpcF9vYmplY3QuQ2xvc2UoKQorICAgICAgICAgICAgICAgICAgICAg ICAgIGNsaXBfb2JqZWN0ID0gTm9uZQorICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2Vw dGlvbjoKKy0gICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybignSW52YWxpZCBSZWFkZXIg dmFsdWUgcGFzc2VkIHRvIHByb3BlcnR5OiAlcyAoJXMpJywgdmFsdWUsIGV4Y19pbmZvPTEpCisr ICAgICAgICAgICAgICAgICAgICAgICAgbG9nLndhcm4oJ0ludmFsaWQgUmVhZGVyIHZhbHVlIHBh c3NlZCB0byBwcm9wZXJ0eTogJXMnLCB2YWx1ZSwgZXhjX2luZm89MSkKKyAKKyAgICAgICAgICAg ICAjIFJlZHVjZSAjIG9mIGNsaXAgcHJvcGVydGllcyB3ZSBhcmUgc2F2aW5nIChwZXJmb3JtYW5j ZSBib29zdCkKKyAgICAgICAgICAgICBjbGlwX2RhdGEgPSB7cHJvcGVydHlfa2V5OiBjbGlwX2Rh dGEuZ2V0KHByb3BlcnR5X2tleSl9CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5zaG90L3RlbXBs YXRlIGIvc3JjcGtncy9vcGVuc2hvdC90ZW1wbGF0ZQppbmRleCBkMTZlYTkyNWQyMjMuLjQyNDhi YWE4MWUzOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuc2hvdC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL29wZW5zaG90L3RlbXBsYXRlCkBAIC0xLDEyICsxLDExIEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdvcGVuc2hvdCcKIHBrZ25hbWU9b3BlbnNob3QKLXZlcnNpb249Mi41LjEKLXJldmlzaW9u PTMKLWFyY2hzPSJpNjg2IHg4Nl82NCBwcGM2NGxlIgordmVyc2lvbj0yLjYuMQorcmV2aXNpb249 MQogd3Jrc3JjPSIke3BrZ25hbWV9LXF0LSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1weXRob24z LW1vZHVsZQotaG9zdG1ha2VkZXBlbmRzPSJweXRob24zIgotbWFrZWRlcGVuZHM9ImZmbXBlZy1k ZXZlbCBweXRob24zLVB5UXQ1IHB5dGhvbjMtc2V0dXB0b29scyIKK2hvc3RtYWtlZGVwZW5kcz0i cHl0aG9uMyBweXRob24zLXNldHVwdG9vbHMiCittYWtlZGVwZW5kcz0iZmZtcGVnLWRldmVsIHB5 dGhvbjMtUHlRdDUiCiBkZXBlbmRzPSJJbWFnZU1hZ2ljayBsaWJvcGVuc2hvdCBtbHQgcHl0aG9u My1QeVF0NS1zdmcKICBweXRob24zLVB5UXQ1LXdlYmtpdCBweXRob24zLWh0dHBsaWIyIHB5dGhv bjMtcHl6bXEgcHl0aG9uMy1yZXF1ZXN0cyIKIHNob3J0X2Rlc2M9Ik9wZW4tc291cmNlLCBub24t bGluZWFyIHZpZGVvIGVkaXRvciBmb3IgTGludXgiCkBAIC0xNCw0ICsxMyw1IEBAIG1haW50YWlu ZXI9IlNwZW5jZXIgSGlsbCA8c3BlbmNlcm5oNzdAZ21haWwuY29tPiIKIGxpY2Vuc2U9IkdQTC0z LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cub3BlbnNob3Qub3JnIgogZGlzdGZp bGVzPSJodHRwczovL2dpdGh1Yi5jb20vT3BlblNob3Qvb3BlbnNob3QtcXQvYXJjaGl2ZS92JHt2 ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT00YzI1ZWI5YTVkZTQyZTc0OWRlNGM2Y2EyZjdhMzEz YzYwZTEyODNmZTUyZDcwYzEyMTYyOWRiYjhiYjJkZjdiCitjaGVja3N1bT0xMTY1MWQ1ZTcyODdk YTNjNzY2Y2U2YjQ0N2FlZjhkYTVjZGFkYWY1NjI2YTI4MTZlOTAyNWM4MzFkMGUxYTY2CittYWtl X2NoZWNrPW5vICMgdGVzdHMgYXJlIGJyb2tlbgo= --===============8488975641265843206==--