From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Filipe Rosset To: git-commits@fedoraproject.org Subject: [rpms/python-xnat4tests] f43: Update to 0.4.1 Date: Fri, 21 Aug 2026 09:40:15 GMT Message-ID: <178730521529.1.8986020653652567381.rpms-python-xnat4tests-7bcdedb046e9@fedoraproject.org> List-ID: X-Git-Repo: rpms/python-xnat4tests X-Git-Branch: f43 X-Git-Rev: 7bcdedb046e99c8793cd7b0b97754b68f99c71d1 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcHl0aG9uLXhuYXQ0 dGVzdHMKQnJhbmNoIDogZjQzCkNvbW1pdCA6IDdiY2RlZGIwNDZlOTljODc5M2NkN2IwYjk3NzU0 YjY4Zjk5YzcxZDEKQXV0aG9yIDogRmlsaXBlIFJvc3NldCA8cm9zc2V0LmZpbGlwZUBnbWFpbC5j b20+CkRhdGUgICA6IDIwMjYtMDgtMTZUMDE6MjI6NTEtMDM6MDAKU3RhdHMgIDogKzgvLTE4MzUg aW4gNCBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMv cHl0aG9uLXhuYXQ0dGVzdHMvYy83YmNkZWRiMDQ2ZTk5Yzg3OTNjZDdiMGI5Nzc1NGI2OGY5OWM3 MWQxP2JyYW5jaD1mNDMKCkxvZzoKVXBkYXRlIHRvIDAuNC4xCgotLS0KZGlmZiAtLWdpdCBhLy5n aXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDdkOGYwNjcuLjExNDYwMjMgMTAwNjQ0Ci0tLSBh Ly5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSArMSwyIEBACiAveG5hdDR0ZXN0cy0w LjMuMTQudGFyLmd6CisveG5hdDR0ZXN0cy0wLjQuMS50YXIuZ3oKCmRpZmYgLS1naXQgYS8wMDAx LVVwZGF0ZS1WZXJzaW9uZWVyLWFuZC1maXgtY29uZmlnLnBhdGNoIGIvMDAwMS1VcGRhdGUtVmVy c2lvbmVlci1hbmQtZml4LWNvbmZpZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggNjQ5NmIwYS4uMDAwMDAwMAotLS0gYS8wMDAxLVVwZGF0ZS1WZXJzaW9uZWVyLWFuZC1maXgt Y29uZmlnLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTgyMCArMCwwIEBACi1Gcm9tIGRlMWY4 MDk0MWM3ZmFiNTg3ZDA5Y2NkNjY0YjE5ZTg0OGZmODY2MzUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBTYW5kcm8gPGRldmVsQHBlbmd1aW5wZWUubmw+Ci1EYXRlOiBTdW4sIDIwIEFw ciAyMDI1IDE3OjM3OjM4ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVwZGF0ZSBWZXJzaW9uZWVy IGFuZCBmaXggY29uZmlnCi0KLVNldCBgdGFnX3ByZWZpeGAgaW4gYHNldHVwLmNmZ2AuCi1VcGRh dGluZyB0byB2ZXJzaW9uIDAuMjkgY2hhbmdlcyB0aGUgbGljZW5zZSBvZiBgdmVyc2lvbmVlci5w eWAgYXMKLXdlbGwgYXMgdGhlIHByb2R1Y2VkIGBfdmVyc2lvbi5weWAgZnJvbSBDQzAtMS4wIHRv IFVubGljZW5zZS4KLS0tLQotIHNldHVwLmNmZyAgICAgICAgICAgICAgfCAgIDQgKy0KLSB2ZXJz aW9uZWVyLnB5ICAgICAgICAgIHwgNTU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tCi0geG5hdDR0ZXN0cy9fdmVyc2lvbi5weSB8IDI1OCArKysrKysrKystLS0tLS0t LS0tCi0gMyBmaWxlcyBjaGFuZ2VkLCA0OTcgaW5zZXJ0aW9ucygrKSwgMzIzIGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvc2V0dXAuY2ZnIGIvc2V0dXAuY2ZnCi1pbmRleCA2NzBlNTkxLi41 NjgzNDk0IDEwMDY0NAotLS0tIGEvc2V0dXAuY2ZnCi0rKysgYi9zZXR1cC5jZmcKLUBAIC0xLDYg KzEsNiBAQAotIFttZXRhZGF0YV0KLSAjIFRoaXMgaW5jbHVkZXMgdGhlIGxpY2Vuc2UgZmlsZSBp biB0aGUgd2hlZWwuCi0tbGljZW5zZV9maWxlID0gTElDRU5TRQotK2xpY2Vuc2VfZmlsZXMgPSBM SUNFTlNFCi0gCi0gW2JkaXN0X3doZWVsXQotICMgVGhpcyBmbGFnIHNheXMgdG8gZ2VuZXJhdGUg d2hlZWxzIHRoYXQgc3VwcG9ydCBib3RoIFB5dGhvbiAyIGFuZCBQeXRob24KLUBAIC0xNiw3ICsx Niw3IEBAIFZDUyA9IGdpdAotIHN0eWxlID0gcGVwNDQwCi0gdmVyc2lvbmZpbGVfc291cmNlID0g eG5hdDR0ZXN0cy9fdmVyc2lvbi5weQotIHZlcnNpb25maWxlX2J1aWxkID0geG5hdDR0ZXN0cy9f dmVyc2lvbi5weQotLXRhZ19wcmVmaXggPQotK3RhZ19wcmVmaXggPSB2Ci0gCi0gW2ZsYWtlOF0K LSBkb2N0ZXN0cyA9IFRydWUKLWRpZmYgLS1naXQgYS92ZXJzaW9uZWVyLnB5IGIvdmVyc2lvbmVl ci5weQotaW5kZXggYjRjZDFkNi4uMWUzNzUzZSAxMDA2NDQKLS0tLSBhL3ZlcnNpb25lZXIucHkK LSsrKyBiL3ZlcnNpb25lZXIucHkKLUBAIC0xLDUgKzEsNSBAQAotIAotLSMgVmVyc2lvbjogMC4y MQotKyMgVmVyc2lvbjogMC4yOQotIAotICIiIlRoZSBWZXJzaW9uZWVyIC0gbGlrZSBhIHJvY2tl dGVlciwgYnV0IGZvciB2ZXJzaW9ucy4KLSAKLUBAIC05LDEyICs5LDEyIEBAIFRoZSBWZXJzaW9u ZWVyCi0gKiBsaWtlIGEgcm9ja2V0ZWVyLCBidXQgZm9yIHZlcnNpb25zIQotICogaHR0cHM6Ly9n aXRodWIuY29tL3B5dGhvbi12ZXJzaW9uZWVyL3B5dGhvbi12ZXJzaW9uZWVyCi0gKiBCcmlhbiBX YXJuZXIKLS0qIExpY2Vuc2U6IFB1YmxpYyBEb21haW4KLS0qIENvbXBhdGlibGUgd2l0aDogUHl0 aG9uIDMuNiwgMy43LCAzLjgsIDMuOSBhbmQgcHlweTMKLSsqIExpY2Vuc2U6IFB1YmxpYyBEb21h aW4gKFVubGljZW5zZSkKLSsqIENvbXBhdGlibGUgd2l0aDogUHl0aG9uIDMuNywgMy44LCAzLjks IDMuMTAsIDMuMTEgYW5kIHB5cHkzCi0gKiBbIVtMYXRlc3QgVmVyc2lvbl1bcHlwaS1pbWFnZV1d W3B5cGktdXJsXQotICogWyFbQnVpbGQgU3RhdHVzXVt0cmF2aXMtaW1hZ2VdXVt0cmF2aXMtdXJs XQotIAotLVRoaXMgaXMgYSB0b29sIGZvciBtYW5hZ2luZyBhIHJlY29yZGVkIHZlcnNpb24gbnVt YmVyIGluIGRpc3R1dGlscy1iYXNlZAotK1RoaXMgaXMgYSB0b29sIGZvciBtYW5hZ2luZyBhIHJl Y29yZGVkIHZlcnNpb24gbnVtYmVyIGluIHNldHVwdG9vbHMtYmFzZWQKLSBweXRob24gcHJvamVj dHMuIFRoZSBnb2FsIGlzIHRvIHJlbW92ZSB0aGUgdGVkaW91cyBhbmQgZXJyb3ItcHJvbmUgInVw ZGF0ZQotIHRoZSBlbWJlZGRlZCB2ZXJzaW9uIHN0cmluZyIgc3RlcCBmcm9tIHlvdXIgcmVsZWFz ZSBwcm9jZXNzLiBNYWtpbmcgYSBuZXcKLSByZWxlYXNlIHNob3VsZCBiZSBhcyBlYXN5IGFzIHJl Y29yZGluZyBhIG5ldyB0YWcgaW4geW91ciB2ZXJzaW9uLWNvbnRyb2wKLUBAIC0yMywxMCArMjMs MzggQEAgc3lzdGVtLCBhbmQgbWF5YmUgbWFraW5nIG5ldyB0YXJiYWxscy4KLSAKLSAjIyBRdWlj ayBJbnN0YWxsCi0gCi0rVmVyc2lvbmVlciBwcm92aWRlcyB0d28gaW5zdGFsbGF0aW9uIG1vZGVz LiBUaGUgImNsYXNzaWMiIHZlbmRvcmVkIG1vZGUgaW5zdGFsbHMKLSthIGNvcHkgb2YgdmVyc2lv bmVlciBpbnRvIHlvdXIgcmVwb3NpdG9yeS4gVGhlIGV4cGVyaW1lbnRhbCBidWlsZC10aW1lIGRl cGVuZGVuY3kgbW9kZQotK2lzIGludGVuZGVkIHRvIGFsbG93IHlvdSB0byBza2lwIHRoaXMgc3Rl cCBhbmQgc2ltcGxpZnkgdGhlIHByb2Nlc3Mgb2YgdXBncmFkaW5nLgotKwotKyMjIyBWZW5kb3Jl ZCBtb2RlCi0rCi0gKiBgcGlwIGluc3RhbGwgdmVyc2lvbmVlcmAgdG8gc29tZXdoZXJlIGluIHlv dXIgJFBBVEgKLS0qIGFkZCBhIGBbdmVyc2lvbmVlcl1gIHNlY3Rpb24gdG8geW91ciBzZXR1cC5j ZmcgKHNlZSBbSW5zdGFsbF0oSU5TVEFMTC5tZCkpCi0tKiBydW4gYHZlcnNpb25lZXIgaW5zdGFs bGAgaW4geW91ciBzb3VyY2UgdHJlZSwgY29tbWl0IHRoZSByZXN1bHRzCi0tKiBWZXJpZnkgdmVy c2lvbiBpbmZvcm1hdGlvbiB3aXRoIGBweXRob24gc2V0dXAucHkgdmVyc2lvbmAKLSsgICAqIEEg W2NvbmRhLWZvcmdlIHJlY2lwZV0oaHR0cHM6Ly9naXRodWIuY29tL2NvbmRhLWZvcmdlL3ZlcnNp b25lZXItZmVlZHN0b2NrKSBpcwotKyAgICAgYXZhaWxhYmxlLCBzbyB5b3UgY2FuIGFsc28gdXNl IGBjb25kYSBpbnN0YWxsIC1jIGNvbmRhLWZvcmdlIHZlcnNpb25lZXJgCi0rKiBhZGQgYSBgW3Rv b2wudmVyc2lvbmVlcl1gIHNlY3Rpb24gdG8geW91ciBgcHlwcm9qZWN0LnRvbWxgIG9yIGEKLSsg IGBbdmVyc2lvbmVlcl1gIHNlY3Rpb24gdG8geW91ciBgc2V0dXAuY2ZnYCAoc2VlIFtJbnN0YWxs XShJTlNUQUxMLm1kKSkKLSsgICAqIE5vdGUgdGhhdCB5b3Ugd2lsbCBuZWVkIHRvIGFkZCBgdG9t bGk7IHB5dGhvbl92ZXJzaW9uIDwgIjMuMTEiYCB0byB5b3VyCi0rICAgICBidWlsZC10aW1lIGRl cGVuZGVuY2llcyBpZiB5b3UgdXNlIGBweXByb2plY3QudG9tbGAKLSsqIHJ1biBgdmVyc2lvbmVl ciBpbnN0YWxsIC0tdmVuZG9yYCBpbiB5b3VyIHNvdXJjZSB0cmVlLCBjb21taXQgdGhlIHJlc3Vs dHMKLSsqIHZlcmlmeSB2ZXJzaW9uIGluZm9ybWF0aW9uIHdpdGggYHB5dGhvbiBzZXR1cC5weSB2 ZXJzaW9uYAotKwotKyMjIyBCdWlsZC10aW1lIGRlcGVuZGVuY3kgbW9kZQotKwotKyogYHBpcCBp bnN0YWxsIHZlcnNpb25lZXJgIHRvIHNvbWV3aGVyZSBpbiB5b3VyICRQQVRICi0rICAgKiBBIFtj b25kYS1mb3JnZSByZWNpcGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9jb25kYS1mb3JnZS92ZXJzaW9u ZWVyLWZlZWRzdG9jaykgaXMKLSsgICAgIGF2YWlsYWJsZSwgc28geW91IGNhbiBhbHNvIHVzZSBg Y29uZGEgaW5zdGFsbCAtYyBjb25kYS1mb3JnZSB2ZXJzaW9uZWVyYAotKyogYWRkIGEgYFt0b29s LnZlcnNpb25lZXJdYCBzZWN0aW9uIHRvIHlvdXIgYHB5cHJvamVjdC50b21sYCBvciBhCi0rICBg W3ZlcnNpb25lZXJdYCBzZWN0aW9uIHRvIHlvdXIgYHNldHVwLmNmZ2AgKHNlZSBbSW5zdGFsbF0o SU5TVEFMTC5tZCkpCi0rKiBhZGQgYHZlcnNpb25lZXJgICh3aXRoIGBbdG9tbF1gIGV4dHJhLCBp ZiBjb25maWd1cmluZyBpbiBgcHlwcm9qZWN0LnRvbWxgKQotKyAgdG8gdGhlIGByZXF1aXJlc2Ag a2V5IG9mIHRoZSBgYnVpbGQtc3lzdGVtYCB0YWJsZSBpbiBgcHlwcm9qZWN0LnRvbWxgOgotKyAg YGBgdG9tbAotKyAgW2J1aWxkLXN5c3RlbV0KLSsgIHJlcXVpcmVzID0gWyJzZXR1cHRvb2xzIiwg InZlcnNpb25lZXJbdG9tbF0iXQotKyAgYnVpbGQtYmFja2VuZCA9ICJzZXR1cHRvb2xzLmJ1aWxk X21ldGEiCi0rICBgYGAKLSsqIHJ1biBgdmVyc2lvbmVlciBpbnN0YWxsIC0tbm8tdmVuZG9yYCBp biB5b3VyIHNvdXJjZSB0cmVlLCBjb21taXQgdGhlIHJlc3VsdHMKLSsqIHZlcmlmeSB2ZXJzaW9u IGluZm9ybWF0aW9uIHdpdGggYHB5dGhvbiBzZXR1cC5weSB2ZXJzaW9uYAotIAotICMjIFZlcnNp b24gSWRlbnRpZmllcnMKLSAKLUBAIC0yMzEsOSArMjU5LDEwIEBAIHJlc29sdmUgaXQuCi0gVG8g dXBncmFkZSB5b3VyIHByb2plY3QgdG8gYSBuZXcgcmVsZWFzZSBvZiBWZXJzaW9uZWVyLCBkbyB0 aGUgZm9sbG93aW5nOgotIAotICogaW5zdGFsbCB0aGUgbmV3IFZlcnNpb25lZXIgKGBwaXAgaW5z dGFsbCAtVSB2ZXJzaW9uZWVyYCBvciBlcXVpdmFsZW50KQotLSogZWRpdCBgc2V0dXAuY2ZnYCwg aWYgbmVjZXNzYXJ5LCB0byBpbmNsdWRlIGFueSBuZXcgY29uZmlndXJhdGlvbiBzZXR0aW5ncwot LSAgaW5kaWNhdGVkIGJ5IHRoZSByZWxlYXNlIG5vdGVzLiBTZWUgW1VQR1JBRElOR10oLi9VUEdS QURJTkcubWQpIGZvciBkZXRhaWxzLgotLSogcmUtcnVuIGB2ZXJzaW9uZWVyIGluc3RhbGxgIGlu IHlvdXIgc291cmNlIHRyZWUsIHRvIHJlcGxhY2UKLSsqIGVkaXQgYHNldHVwLmNmZ2AgYW5kIGBw eXByb2plY3QudG9tbGAsIGlmIG5lY2Vzc2FyeSwKLSsgIHRvIGluY2x1ZGUgYW55IG5ldyBjb25m aWd1cmF0aW9uIHNldHRpbmdzIGluZGljYXRlZCBieSB0aGUgcmVsZWFzZSBub3Rlcy4KLSsgIFNl ZSBbVVBHUkFESU5HXSguL1VQR1JBRElORy5tZCkgZm9yIGRldGFpbHMuCi0rKiByZS1ydW4gYHZl cnNpb25lZXIgaW5zdGFsbCAtLVtuby1ddmVuZG9yYCBpbiB5b3VyIHNvdXJjZSB0cmVlLCB0byBy ZXBsYWNlCi0gICBgU1JDL192ZXJzaW9uLnB5YAotICogY29tbWl0IGFueSBjaGFuZ2VkIGZpbGVz Ci0gCi1AQCAtMjYzLDkgKzI5Miw4IEBAIG51bWJlciBvZiBpbnRlcm1lZGlhdGUgc2NyaXB0cy4K LSAKLSBUbyBtYWtlIFZlcnNpb25lZXIgZWFzaWVyIHRvIGVtYmVkLCBhbGwgaXRzIGNvZGUgaXMg ZGVkaWNhdGVkIHRvIHRoZSBwdWJsaWMKLSBkb21haW4uIFRoZSBgX3ZlcnNpb24ucHlgIHRoYXQg aXQgY3JlYXRlcyBpcyBhbHNvIGluIHRoZSBwdWJsaWMgZG9tYWluLgotLVNwZWNpZmljYWxseSwg Ym90aCBhcmUgcmVsZWFzZWQgdW5kZXIgdGhlIENyZWF0aXZlIENvbW1vbnMgIlB1YmxpYyBEb21h aW4KLS1EZWRpY2F0aW9uIiBsaWNlbnNlIChDQzAtMS4wKSwgYXMgZGVzY3JpYmVkIGluCi0taHR0 cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8gLgotK1NwZWNp ZmljYWxseSwgYm90aCBhcmUgcmVsZWFzZWQgdW5kZXIgdGhlICJVbmxpY2Vuc2UiLCBhcyBkZXNj cmliZWQgaW4KLStodHRwczovL3VubGljZW5zZS5vcmcvLgotIAotIFtweXBpLWltYWdlXTogaHR0 cHM6Ly9pbWcuc2hpZWxkcy5pby9weXBpL3YvdmVyc2lvbmVlci5zdmcKLSBbcHlwaS11cmxdOiBo dHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3ZlcnNpb25lZXIvCi1AQCAtMjg3LDE0ICszMTUs MzQgQEAgaW1wb3J0IG9zCi0gaW1wb3J0IHJlCi0gaW1wb3J0IHN1YnByb2Nlc3MKLSBpbXBvcnQg c3lzCi0tZnJvbSB0eXBpbmcgaW1wb3J0IENhbGxhYmxlLCBEaWN0Ci0rZnJvbSBwYXRobGliIGlt cG9ydCBQYXRoCi0rZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2FsbGFibGUsIGNhc3QsIERpY3Qs IExpc3QsIE9wdGlvbmFsLCBUdXBsZSwgVW5pb24KLStmcm9tIHR5cGluZyBpbXBvcnQgTm9SZXR1 cm4KLStpbXBvcnQgZnVuY3Rvb2xzCi0rCi0raGF2ZV90b21sbGliID0gVHJ1ZQotK2lmIHN5cy52 ZXJzaW9uX2luZm8gPj0gKDMsIDExKToKLSsgICAgaW1wb3J0IHRvbWxsaWIKLStlbHNlOgotKyAg ICB0cnk6Ci0rICAgICAgICBpbXBvcnQgdG9tbGkgYXMgdG9tbGxpYgotKyAgICBleGNlcHQgSW1w b3J0RXJyb3I6Ci0rICAgICAgICBoYXZlX3RvbWxsaWIgPSBGYWxzZQotIAotIAotIGNsYXNzIFZl cnNpb25lZXJDb25maWc6Ci0gICAgICIiIkNvbnRhaW5lciBmb3IgVmVyc2lvbmVlciBjb25maWd1 cmF0aW9uIHBhcmFtZXRlcnMuIiIiCi0gCi0rICAgIFZDUzogc3RyCi0rICAgIHN0eWxlOiBzdHIK LSsgICAgdGFnX3ByZWZpeDogc3RyCi0rICAgIHZlcnNpb25maWxlX3NvdXJjZTogc3RyCi0rICAg IHZlcnNpb25maWxlX2J1aWxkOiBPcHRpb25hbFtzdHJdCi0rICAgIHBhcmVudGRpcl9wcmVmaXg6 IE9wdGlvbmFsW3N0cl0KLSsgICAgdmVyYm9zZTogT3B0aW9uYWxbYm9vbF0KLSsKLSAKLS1kZWYg Z2V0X3Jvb3QoKToKLStkZWYgZ2V0X3Jvb3QoKSAtPiBzdHI6Ci0gICAgICIiIkdldCB0aGUgcHJv amVjdCByb290IGRpcmVjdG9yeS4KLSAKLSAgICAgV2UgcmVxdWlyZSB0aGF0IGFsbCBjb21tYW5k cyBhcmUgcnVuIGZyb20gdGhlIHByb2plY3Qgcm9vdCwgaS5lLiB0aGUKLUBAIC0zMDIsMTMgKzM1 MCwyMyBAQCBkZWYgZ2V0X3Jvb3QoKToKLSAgICAgIiIiCi0gICAgIHJvb3QgPSBvcy5wYXRoLnJl YWxwYXRoKG9zLnBhdGguYWJzcGF0aChvcy5nZXRjd2QoKSkpCi0gICAgIHNldHVwX3B5ID0gb3Mu cGF0aC5qb2luKHJvb3QsICJzZXR1cC5weSIpCi0rICAgIHB5cHJvamVjdF90b21sID0gb3MucGF0 aC5qb2luKHJvb3QsICJweXByb2plY3QudG9tbCIpCi0gICAgIHZlcnNpb25lZXJfcHkgPSBvcy5w YXRoLmpvaW4ocm9vdCwgInZlcnNpb25lZXIucHkiKQotLSAgICBpZiBub3QgKG9zLnBhdGguZXhp c3RzKHNldHVwX3B5KSBvciBvcy5wYXRoLmV4aXN0cyh2ZXJzaW9uZWVyX3B5KSk6Ci0rICAgIGlm IG5vdCAoCi0rICAgICAgICBvcy5wYXRoLmV4aXN0cyhzZXR1cF9weSkKLSsgICAgICAgIG9yIG9z LnBhdGguZXhpc3RzKHB5cHJvamVjdF90b21sKQotKyAgICAgICAgb3Igb3MucGF0aC5leGlzdHMo dmVyc2lvbmVlcl9weSkKLSsgICAgKToKLSAgICAgICAgICMgYWxsb3cgJ3B5dGhvbiBwYXRoL3Rv L3NldHVwLnB5IENPTU1BTkQnCi0gICAgICAgICByb290ID0gb3MucGF0aC5kaXJuYW1lKG9zLnBh dGgucmVhbHBhdGgob3MucGF0aC5hYnNwYXRoKHN5cy5hcmd2WzBdKSkpCi0gICAgICAgICBzZXR1 cF9weSA9IG9zLnBhdGguam9pbihyb290LCAic2V0dXAucHkiKQotKyAgICAgICAgcHlwcm9qZWN0 X3RvbWwgPSBvcy5wYXRoLmpvaW4ocm9vdCwgInB5cHJvamVjdC50b21sIikKLSAgICAgICAgIHZl cnNpb25lZXJfcHkgPSBvcy5wYXRoLmpvaW4ocm9vdCwgInZlcnNpb25lZXIucHkiKQotLSAgICBp ZiBub3QgKG9zLnBhdGguZXhpc3RzKHNldHVwX3B5KSBvciBvcy5wYXRoLmV4aXN0cyh2ZXJzaW9u ZWVyX3B5KSk6Ci0rICAgIGlmIG5vdCAoCi0rICAgICAgICBvcy5wYXRoLmV4aXN0cyhzZXR1cF9w eSkKLSsgICAgICAgIG9yIG9zLnBhdGguZXhpc3RzKHB5cHJvamVjdF90b21sKQotKyAgICAgICAg b3Igb3MucGF0aC5leGlzdHModmVyc2lvbmVlcl9weSkKLSsgICAgKToKLSAgICAgICAgIGVyciA9 ICgiVmVyc2lvbmVlciB3YXMgdW5hYmxlIHRvIHJ1biB0aGUgcHJvamVjdCByb290IGRpcmVjdG9y eS4gIgotICAgICAgICAgICAgICAgICJWZXJzaW9uZWVyIHJlcXVpcmVzIHNldHVwLnB5IHRvIGJl IGV4ZWN1dGVkIGZyb20gIgotICAgICAgICAgICAgICAgICJpdHMgaW1tZWRpYXRlIGRpcmVjdG9y eSAobGlrZSAncHl0aG9uIHNldHVwLnB5IENPTU1BTkQnKSwgIgotQEAgLTMyNSw3ICszODMsNyBA QCBkZWYgZ2V0X3Jvb3QoKToKLSAgICAgICAgIG15X3BhdGggPSBvcy5wYXRoLnJlYWxwYXRoKG9z LnBhdGguYWJzcGF0aChfX2ZpbGVfXykpCi0gICAgICAgICBtZV9kaXIgPSBvcy5wYXRoLm5vcm1j YXNlKG9zLnBhdGguc3BsaXRleHQobXlfcGF0aClbMF0pCi0gICAgICAgICB2c3JfZGlyID0gb3Mu cGF0aC5ub3JtY2FzZShvcy5wYXRoLnNwbGl0ZXh0KHZlcnNpb25lZXJfcHkpWzBdKQotLSAgICAg ICAgaWYgbWVfZGlyICE9IHZzcl9kaXI6Ci0rICAgICAgICBpZiBtZV9kaXIgIT0gdnNyX2RpciBh bmQgIlZFUlNJT05FRVJfUEVQNTE4IiBub3QgaW4gZ2xvYmFscygpOgotICAgICAgICAgICAgIHBy aW50KCJXYXJuaW5nOiBidWlsZCBpbiAlcyBpcyB1c2luZyB2ZXJzaW9uZWVyLnB5IGZyb20gJXMi Ci0gICAgICAgICAgICAgICAgICAgJSAob3MucGF0aC5kaXJuYW1lKG15X3BhdGgpLCB2ZXJzaW9u ZWVyX3B5KSkKLSAgICAgZXhjZXB0IE5hbWVFcnJvcjoKLUBAIC0zMzMsMzEgKzM5MSw1MSBAQCBk ZWYgZ2V0X3Jvb3QoKToKLSAgICAgcmV0dXJuIHJvb3QKLSAKLSAKLS1kZWYgZ2V0X2NvbmZpZ19m cm9tX3Jvb3Qocm9vdCk6Ci0rZGVmIGdldF9jb25maWdfZnJvbV9yb290KHJvb3Q6IHN0cikgLT4g VmVyc2lvbmVlckNvbmZpZzoKLSAgICAgIiIiUmVhZCB0aGUgcHJvamVjdCBzZXR1cC5jZmcgZmls ZSB0byBkZXRlcm1pbmUgVmVyc2lvbmVlciBjb25maWcuIiIiCi0gICAgICMgVGhpcyBtaWdodCBy YWlzZSBPU0Vycm9yIChpZiBzZXR1cC5jZmcgaXMgbWlzc2luZyksIG9yCi0gICAgICMgY29uZmln cGFyc2VyLk5vU2VjdGlvbkVycm9yIChpZiBpdCBsYWNrcyBhIFt2ZXJzaW9uZWVyXSBzZWN0aW9u KSwgb3IKLSAgICAgIyBjb25maWdwYXJzZXIuTm9PcHRpb25FcnJvciAoaWYgaXQgbGFja3MgIlZD Uz0iKS4gU2VlIHRoZSBkb2NzdHJpbmcgYXQKLSAgICAgIyB0aGUgdG9wIG9mIHZlcnNpb25lZXIu cHkgZm9yIGluc3RydWN0aW9ucyBvbiB3cml0aW5nIHlvdXIgc2V0dXAuY2ZnIC4KLS0gICAgc2V0 dXBfY2ZnID0gb3MucGF0aC5qb2luKHJvb3QsICJzZXR1cC5jZmciKQotLSAgICBwYXJzZXIgPSBj b25maWdwYXJzZXIuQ29uZmlnUGFyc2VyKCkKLS0gICAgd2l0aCBvcGVuKHNldHVwX2NmZywgInIi KSBhcyBjZmdfZmlsZToKLS0gICAgICAgIHBhcnNlci5yZWFkX2ZpbGUoY2ZnX2ZpbGUpCi0tICAg IFZDUyA9IHBhcnNlci5nZXQoInZlcnNpb25lZXIiLCAiVkNTIikgICMgbWFuZGF0b3J5Ci0tCi0t ICAgICMgRGljdC1saWtlIGludGVyZmFjZSBmb3Igbm9uLW1hbmRhdG9yeSBlbnRyaWVzCi0tICAg IHNlY3Rpb24gPSBwYXJzZXJbInZlcnNpb25lZXIiXQotKyAgICByb290X3B0aCA9IFBhdGgocm9v dCkKLSsgICAgcHlwcm9qZWN0X3RvbWwgPSByb290X3B0aCAvICJweXByb2plY3QudG9tbCIKLSsg ICAgc2V0dXBfY2ZnID0gcm9vdF9wdGggLyAic2V0dXAuY2ZnIgotKyAgICBzZWN0aW9uOiBVbmlv bltEaWN0W3N0ciwgQW55XSwgY29uZmlncGFyc2VyLlNlY3Rpb25Qcm94eSwgTm9uZV0gPSBOb25l Ci0rICAgIGlmIHB5cHJvamVjdF90b21sLmV4aXN0cygpIGFuZCBoYXZlX3RvbWxsaWI6Ci0rICAg ICAgICB0cnk6Ci0rICAgICAgICAgICAgd2l0aCBvcGVuKHB5cHJvamVjdF90b21sLCAncmInKSBh cyBmb2JqOgotKyAgICAgICAgICAgICAgICBwcCA9IHRvbWxsaWIubG9hZChmb2JqKQotKyAgICAg ICAgICAgIHNlY3Rpb24gPSBwcFsndG9vbCddWyd2ZXJzaW9uZWVyJ10KLSsgICAgICAgIGV4Y2Vw dCAodG9tbGxpYi5UT01MRGVjb2RlRXJyb3IsIEtleUVycm9yKSBhcyBlOgotKyAgICAgICAgICAg IHByaW50KGYiRmFpbGVkIHRvIGxvYWQgY29uZmlnIGZyb20ge3B5cHJvamVjdF90b21sfToge2V9 IikKLSsgICAgICAgICAgICBwcmludCgiVHJ5IHRvIGxvYWQgaXQgZnJvbSBzZXR1cC5jZmciKQot KyAgICBpZiBub3Qgc2VjdGlvbjoKLSsgICAgICAgIHBhcnNlciA9IGNvbmZpZ3BhcnNlci5Db25m aWdQYXJzZXIoKQotKyAgICAgICAgd2l0aCBvcGVuKHNldHVwX2NmZykgYXMgY2ZnX2ZpbGU6Ci0r ICAgICAgICAgICAgcGFyc2VyLnJlYWRfZmlsZShjZmdfZmlsZSkKLSsgICAgICAgIHBhcnNlci5n ZXQoInZlcnNpb25lZXIiLCAiVkNTIikgICMgcmFpc2UgZXJyb3IgaWYgbWlzc2luZwotKwotKyAg ICAgICAgc2VjdGlvbiA9IHBhcnNlclsidmVyc2lvbmVlciJdCi0rCi0rICAgICMgYGNhc3RgYCBy ZWFsbHkgc2hvdWxkbid0IGJlIHVzZWQsIGJ1dCBpdHMgc2ltcGxlc3QgZm9yIHRoZQotKyAgICAj IGNvbW1vbiBWZXJzaW9uZWVyQ29uZmlnIHVzZXJzIGF0IHRoZSBtb21lbnQuIFdlIHZlcmlmeSBh Z2FpbnN0Ci0rICAgICMgYE5vbmVgIHZhbHVlcyBlbHNld2hlcmUgd2hlcmUgaXQgbWF0dGVycwot IAotICAgICBjZmcgPSBWZXJzaW9uZWVyQ29uZmlnKCkKLS0gICAgY2ZnLlZDUyA9IFZDUwotKyAg ICBjZmcuVkNTID0gc2VjdGlvblsnVkNTJ10KLSAgICAgY2ZnLnN0eWxlID0gc2VjdGlvbi5nZXQo InN0eWxlIiwgIiIpCi0tICAgIGNmZy52ZXJzaW9uZmlsZV9zb3VyY2UgPSBzZWN0aW9uLmdldCgi dmVyc2lvbmZpbGVfc291cmNlIikKLSsgICAgY2ZnLnZlcnNpb25maWxlX3NvdXJjZSA9IGNhc3Qo c3RyLCBzZWN0aW9uLmdldCgidmVyc2lvbmZpbGVfc291cmNlIikpCi0gICAgIGNmZy52ZXJzaW9u ZmlsZV9idWlsZCA9IHNlY3Rpb24uZ2V0KCJ2ZXJzaW9uZmlsZV9idWlsZCIpCi0tICAgIGNmZy50 YWdfcHJlZml4ID0gc2VjdGlvbi5nZXQoInRhZ19wcmVmaXgiKQotLSAgICBpZiBjZmcudGFnX3By ZWZpeCBpbiAoIicnIiwgJyIiJyk6Ci0rICAgIGNmZy50YWdfcHJlZml4ID0gY2FzdChzdHIsIHNl Y3Rpb24uZ2V0KCJ0YWdfcHJlZml4IikpCi0rICAgIGlmIGNmZy50YWdfcHJlZml4IGluICgiJyci LCAnIiInLCBOb25lKToKLSAgICAgICAgIGNmZy50YWdfcHJlZml4ID0gIiIKLSAgICAgY2ZnLnBh cmVudGRpcl9wcmVmaXggPSBzZWN0aW9uLmdldCgicGFyZW50ZGlyX3ByZWZpeCIpCi0tICAgIGNm Zy52ZXJib3NlID0gc2VjdGlvbi5nZXQoInZlcmJvc2UiKQotKyAgICBpZiBpc2luc3RhbmNlKHNl Y3Rpb24sIGNvbmZpZ3BhcnNlci5TZWN0aW9uUHJveHkpOgotKyAgICAgICAgIyBNYWtlIHN1cmUg Y29uZmlncGFyc2VyIHRyYW5zbGF0ZXMgdG8gYm9vbAotKyAgICAgICAgY2ZnLnZlcmJvc2UgPSBz ZWN0aW9uLmdldGJvb2xlYW4oInZlcmJvc2UiKQotKyAgICBlbHNlOgotKyAgICAgICAgY2ZnLnZl cmJvc2UgPSBzZWN0aW9uLmdldCgidmVyYm9zZSIpCi0rCi0gICAgIHJldHVybiBjZmcKLSAKLSAK LUBAIC0zNzAsMjAgKzQ0OCwzNCBAQCBMT05HX1ZFUlNJT05fUFk6IERpY3Rbc3RyLCBzdHJdID0g e30KLSBIQU5ETEVSUzogRGljdFtzdHIsIERpY3Rbc3RyLCBDYWxsYWJsZV1dID0ge30KLSAKLSAK LS1kZWYgcmVnaXN0ZXJfdmNzX2hhbmRsZXIodmNzLCBtZXRob2QpOiAgIyBkZWNvcmF0b3IKLStk ZWYgcmVnaXN0ZXJfdmNzX2hhbmRsZXIodmNzOiBzdHIsIG1ldGhvZDogc3RyKSAtPiBDYWxsYWJs ZTogICMgZGVjb3JhdG9yCi0gICAgICIiIkNyZWF0ZSBkZWNvcmF0b3IgdG8gbWFyayBhIG1ldGhv ZCBhcyB0aGUgaGFuZGxlciBvZiBhIFZDUy4iIiIKLS0gICAgZGVmIGRlY29yYXRlKGYpOgotKyAg ICBkZWYgZGVjb3JhdGUoZjogQ2FsbGFibGUpIC0+IENhbGxhYmxlOgotICAgICAgICAgIiIiU3Rv cmUgZiBpbiBIQU5ETEVSU1t2Y3NdW21ldGhvZF0uIiIiCi0gICAgICAgICBIQU5ETEVSUy5zZXRk ZWZhdWx0KHZjcywge30pW21ldGhvZF0gPSBmCi0gICAgICAgICByZXR1cm4gZgotICAgICByZXR1 cm4gZGVjb3JhdGUKLSAKLSAKLS1kZWYgcnVuX2NvbW1hbmQoY29tbWFuZHMsIGFyZ3MsIGN3ZD1O b25lLCB2ZXJib3NlPUZhbHNlLCBoaWRlX3N0ZGVycj1GYWxzZSwKLS0gICAgICAgICAgICAgICAg ZW52PU5vbmUpOgotK2RlZiBydW5fY29tbWFuZCgKLSsgICAgY29tbWFuZHM6IExpc3Rbc3RyXSwK LSsgICAgYXJnczogTGlzdFtzdHJdLAotKyAgICBjd2Q6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAot KyAgICB2ZXJib3NlOiBib29sID0gRmFsc2UsCi0rICAgIGhpZGVfc3RkZXJyOiBib29sID0gRmFs c2UsCi0rICAgIGVudjogT3B0aW9uYWxbRGljdFtzdHIsIHN0cl1dID0gTm9uZSwKLSspIC0+IFR1 cGxlW09wdGlvbmFsW3N0cl0sIE9wdGlvbmFsW2ludF1dOgotICAgICAiIiJDYWxsIHRoZSBnaXZl biBjb21tYW5kKHMpLiIiIgotICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb21tYW5kcywgbGlzdCkK LSAgICAgcHJvY2VzcyA9IE5vbmUKLSsKLSsgICAgcG9wZW5fa3dhcmdzOiBEaWN0W3N0ciwgQW55 XSA9IHt9Ci0rICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiOgotKyAgICAgICAgIyBUaGlz IGhpZGVzIHRoZSBjb25zb2xlIHdpbmRvdyBpZiBweXRob253LmV4ZSBpcyB1c2VkCi0rICAgICAg ICBzdGFydHVwaW5mbyA9IHN1YnByb2Nlc3MuU1RBUlRVUElORk8oKQotKyAgICAgICAgc3RhcnR1 cGluZm8uZHdGbGFncyB8PSBzdWJwcm9jZXNzLlNUQVJURl9VU0VTSE9XV0lORE9XCi0rICAgICAg ICBwb3Blbl9rd2FyZ3NbInN0YXJ0dXBpbmZvIl0gPSBzdGFydHVwaW5mbwotKwotICAgICBmb3Ig Y29tbWFuZCBpbiBjb21tYW5kczoKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBkaXNwY21k ID0gc3RyKFtjb21tYW5kXSArIGFyZ3MpCi1AQCAtMzkxLDEwICs0ODMsOSBAQCBkZWYgcnVuX2Nv bW1hbmQoY29tbWFuZHMsIGFyZ3MsIGN3ZD1Ob25lLCB2ZXJib3NlPUZhbHNlLCBoaWRlX3N0ZGVy cj1GYWxzZSwKLSAgICAgICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbY29tbWFu ZF0gKyBhcmdzLCBjd2Q9Y3dkLCBlbnY9ZW52LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPShzdWJwcm9jZXNzLlBJUEUgaWYgaGlkZV9zdGRl cnIKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ug Tm9uZSkpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl bHNlIE5vbmUpLCAqKnBvcGVuX2t3YXJncykKLSAgICAgICAgICAgICBicmVhawotLSAgICAgICAg ZXhjZXB0IE9TRXJyb3I6Ci0tICAgICAgICAgICAgZSA9IHN5cy5leGNfaW5mbygpWzFdCi0rICAg ICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgotICAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gZXJy bm8uRU5PRU5UOgotICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgIGlmIHZl cmJvc2U6Ci1AQCAtNDIxLDggKzUxMiw5IEBAIExPTkdfVkVSU0lPTl9QWVsnZ2l0J10gPSByJycn Ci0gIyBkaXJlY3RvcmllcyAocHJvZHVjZWQgYnkgc2V0dXAucHkgYnVpbGQpIHdpbGwgY29udGFp biBhIG11Y2ggc2hvcnRlciBmaWxlCi0gIyB0aGF0IGp1c3QgY29udGFpbnMgdGhlIGNvbXB1dGVk IHZlcnNpb24gbnVtYmVyLgotIAotLSMgVGhpcyBmaWxlIGlzIHJlbGVhc2VkIGludG8gdGhlIHB1 YmxpYyBkb21haW4uIEdlbmVyYXRlZCBieQotLSMgdmVyc2lvbmVlci0wLjIxIChodHRwczovL2dp dGh1Yi5jb20vcHl0aG9uLXZlcnNpb25lZXIvcHl0aG9uLXZlcnNpb25lZXIpCi0rIyBUaGlzIGZp bGUgaXMgcmVsZWFzZWQgaW50byB0aGUgcHVibGljIGRvbWFpbi4KLSsjIEdlbmVyYXRlZCBieSB2 ZXJzaW9uZWVyLTAuMjkKLSsjIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tdmVyc2lvbmVlci9w eXRob24tdmVyc2lvbmVlcgotIAotICIiIkdpdCBpbXBsZW1lbnRhdGlvbiBvZiBfdmVyc2lvbi5w eS4iIiIKLSAKLUBAIC00MzEsMTAgKzUyMywxMSBAQCBpbXBvcnQgb3MKLSBpbXBvcnQgcmUKLSBp bXBvcnQgc3VicHJvY2VzcwotIGltcG9ydCBzeXMKLS1mcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFi bGUsIERpY3QKLStmcm9tIHR5cGluZyBpbXBvcnQgQW55LCBDYWxsYWJsZSwgRGljdCwgTGlzdCwg T3B0aW9uYWwsIFR1cGxlCi0raW1wb3J0IGZ1bmN0b29scwotIAotIAotLWRlZiBnZXRfa2V5d29y ZHMoKToKLStkZWYgZ2V0X2tleXdvcmRzKCkgLT4gRGljdFtzdHIsIHN0cl06Ci0gICAgICIiIkdl dCB0aGUga2V5d29yZHMgbmVlZGVkIHRvIGxvb2sgdXAgdGhlIHZlcnNpb24gaW5mb3JtYXRpb24u IiIiCi0gICAgICMgdGhlc2Ugc3RyaW5ncyB3aWxsIGJlIHJlcGxhY2VkIGJ5IGdpdCBkdXJpbmcg Z2l0LWFyY2hpdmUuCi0gICAgICMgc2V0dXAucHkvdmVyc2lvbmVlci5weSB3aWxsIGdyZXAgZm9y IHRoZSB2YXJpYWJsZSBuYW1lcywgc28gdGhleSBtdXN0Ci1AQCAtNDUwLDggKzU0MywxNSBAQCBk ZWYgZ2V0X2tleXdvcmRzKCk6Ci0gY2xhc3MgVmVyc2lvbmVlckNvbmZpZzoKLSAgICAgIiIiQ29u dGFpbmVyIGZvciBWZXJzaW9uZWVyIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4iIiIKLSAKLSsg ICAgVkNTOiBzdHIKLSsgICAgc3R5bGU6IHN0cgotKyAgICB0YWdfcHJlZml4OiBzdHIKLSsgICAg cGFyZW50ZGlyX3ByZWZpeDogc3RyCi0rICAgIHZlcnNpb25maWxlX3NvdXJjZTogc3RyCi0rICAg IHZlcmJvc2U6IGJvb2wKLSsKLSAKLS1kZWYgZ2V0X2NvbmZpZygpOgotK2RlZiBnZXRfY29uZmln KCkgLT4gVmVyc2lvbmVlckNvbmZpZzoKLSAgICAgIiIiQ3JlYXRlLCBwb3B1bGF0ZSBhbmQgcmV0 dXJuIHRoZSBWZXJzaW9uZWVyQ29uZmlnKCkgb2JqZWN0LiIiIgotICAgICAjIHRoZXNlIHN0cmlu Z3MgYXJlIGZpbGxlZCBpbiB3aGVuICdzZXR1cC5weSB2ZXJzaW9uZWVyJyBjcmVhdGVzCi0gICAg ICMgX3ZlcnNpb24ucHkKLUBAIC00NzMsOSArNTczLDkgQEAgTE9OR19WRVJTSU9OX1BZOiBEaWN0 W3N0ciwgc3RyXSA9IHt9Ci0gSEFORExFUlM6IERpY3Rbc3RyLCBEaWN0W3N0ciwgQ2FsbGFibGVd XSA9IHt9Ci0gCi0gCi0tZGVmIHJlZ2lzdGVyX3Zjc19oYW5kbGVyKHZjcywgbWV0aG9kKTogICMg ZGVjb3JhdG9yCi0rZGVmIHJlZ2lzdGVyX3Zjc19oYW5kbGVyKHZjczogc3RyLCBtZXRob2Q6IHN0 cikgLT4gQ2FsbGFibGU6ICAjIGRlY29yYXRvcgotICAgICAiIiJDcmVhdGUgZGVjb3JhdG9yIHRv IG1hcmsgYSBtZXRob2QgYXMgdGhlIGhhbmRsZXIgb2YgYSBWQ1MuIiIiCi0tICAgIGRlZiBkZWNv cmF0ZShmKToKLSsgICAgZGVmIGRlY29yYXRlKGY6IENhbGxhYmxlKSAtPiBDYWxsYWJsZToKLSAg ICAgICAgICIiIlN0b3JlIGYgaW4gSEFORExFUlNbdmNzXVttZXRob2RdLiIiIgotICAgICAgICAg aWYgdmNzIG5vdCBpbiBIQU5ETEVSUzoKLSAgICAgICAgICAgICBIQU5ETEVSU1t2Y3NdID0ge30K LUBAIC00ODQsMTEgKzU4NCwyNSBAQCBkZWYgcmVnaXN0ZXJfdmNzX2hhbmRsZXIodmNzLCBtZXRo b2QpOiAgIyBkZWNvcmF0b3IKLSAgICAgcmV0dXJuIGRlY29yYXRlCi0gCi0gCi0tZGVmIHJ1bl9j b21tYW5kKGNvbW1hbmRzLCBhcmdzLCBjd2Q9Tm9uZSwgdmVyYm9zZT1GYWxzZSwgaGlkZV9zdGRl cnI9RmFsc2UsCi0tICAgICAgICAgICAgICAgIGVudj1Ob25lKToKLStkZWYgcnVuX2NvbW1hbmQo Ci0rICAgIGNvbW1hbmRzOiBMaXN0W3N0cl0sCi0rICAgIGFyZ3M6IExpc3Rbc3RyXSwKLSsgICAg Y3dkOiBPcHRpb25hbFtzdHJdID0gTm9uZSwKLSsgICAgdmVyYm9zZTogYm9vbCA9IEZhbHNlLAot KyAgICBoaWRlX3N0ZGVycjogYm9vbCA9IEZhbHNlLAotKyAgICBlbnY6IE9wdGlvbmFsW0RpY3Rb c3RyLCBzdHJdXSA9IE5vbmUsCi0rKSAtPiBUdXBsZVtPcHRpb25hbFtzdHJdLCBPcHRpb25hbFtp bnRdXToKLSAgICAgIiIiQ2FsbCB0aGUgZ2l2ZW4gY29tbWFuZChzKS4iIiIKLSAgICAgYXNzZXJ0 IGlzaW5zdGFuY2UoY29tbWFuZHMsIGxpc3QpCi0gICAgIHByb2Nlc3MgPSBOb25lCi0rCi0rICAg IHBvcGVuX2t3YXJnczogRGljdFtzdHIsIEFueV0gPSB7fQotKyAgICBpZiBzeXMucGxhdGZvcm0g PT0gIndpbjMyIjoKLSsgICAgICAgICMgVGhpcyBoaWRlcyB0aGUgY29uc29sZSB3aW5kb3cgaWYg cHl0aG9udy5leGUgaXMgdXNlZAotKyAgICAgICAgc3RhcnR1cGluZm8gPSBzdWJwcm9jZXNzLlNU QVJUVVBJTkZPKCkKLSsgICAgICAgIHN0YXJ0dXBpbmZvLmR3RmxhZ3MgfD0gc3VicHJvY2Vzcy5T VEFSVEZfVVNFU0hPV1dJTkRPVwotKyAgICAgICAgcG9wZW5fa3dhcmdzWyJzdGFydHVwaW5mbyJd ID0gc3RhcnR1cGluZm8KLSsKLSAgICAgZm9yIGNvbW1hbmQgaW4gY29tbWFuZHM6Ci0gICAgICAg ICB0cnk6Ci0gICAgICAgICAgICAgZGlzcGNtZCA9IHN0cihbY29tbWFuZF0gKyBhcmdzKQotQEAg LTQ5NiwxMCArNjEwLDkgQEAgZGVmIHJ1bl9jb21tYW5kKGNvbW1hbmRzLCBhcmdzLCBjd2Q9Tm9u ZSwgdmVyYm9zZT1GYWxzZSwgaGlkZV9zdGRlcnI9RmFsc2UsCi0gICAgICAgICAgICAgcHJvY2Vz cyA9IHN1YnByb2Nlc3MuUG9wZW4oW2NvbW1hbmRdICsgYXJncywgY3dkPWN3ZCwgZW52PWVudiwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vz cy5QSVBFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj0o c3VicHJvY2Vzcy5QSVBFIGlmIGhpZGVfc3RkZXJyCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlbHNlIE5vbmUpKQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBOb25lKSwgKipwb3Blbl9rd2FyZ3MpCi0g ICAgICAgICAgICAgYnJlYWsKLS0gICAgICAgIGV4Y2VwdCBPU0Vycm9yOgotLSAgICAgICAgICAg IGUgPSBzeXMuZXhjX2luZm8oKVsxXQotKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKLSAg ICAgICAgICAgICBpZiBlLmVycm5vID09IGVycm5vLkVOT0VOVDoKLSAgICAgICAgICAgICAgICAg Y29udGludWUKLSAgICAgICAgICAgICBpZiB2ZXJib3NlOgotQEAgLTUxOSw3ICs2MzIsMTEgQEAg ZGVmIHJ1bl9jb21tYW5kKGNvbW1hbmRzLCBhcmdzLCBjd2Q9Tm9uZSwgdmVyYm9zZT1GYWxzZSwg aGlkZV9zdGRlcnI9RmFsc2UsCi0gICAgIHJldHVybiBzdGRvdXQsIHByb2Nlc3MucmV0dXJuY29k ZQotIAotIAotLWRlZiB2ZXJzaW9uc19mcm9tX3BhcmVudGRpcihwYXJlbnRkaXJfcHJlZml4LCBy b290LCB2ZXJib3NlKToKLStkZWYgdmVyc2lvbnNfZnJvbV9wYXJlbnRkaXIoCi0rICAgIHBhcmVu dGRpcl9wcmVmaXg6IHN0ciwKLSsgICAgcm9vdDogc3RyLAotKyAgICB2ZXJib3NlOiBib29sLAot KykgLT4gRGljdFtzdHIsIEFueV06Ci0gICAgICIiIlRyeSB0byBkZXRlcm1pbmUgdGhlIHZlcnNp b24gZnJvbSB0aGUgcGFyZW50IGRpcmVjdG9yeSBuYW1lLgotIAotICAgICBTb3VyY2UgdGFyYmFs bHMgY29udmVudGlvbmFsbHkgdW5wYWNrIGludG8gYSBkaXJlY3RvcnkgdGhhdCBpbmNsdWRlcyBi b3RoCi1AQCAtNTQ0LDEzICs2NjEsMTMgQEAgZGVmIHZlcnNpb25zX2Zyb21fcGFyZW50ZGlyKHBh cmVudGRpcl9wcmVmaXgsIHJvb3QsIHZlcmJvc2UpOgotIAotIAotIEByZWdpc3Rlcl92Y3NfaGFu ZGxlcigiZ2l0IiwgImdldF9rZXl3b3JkcyIpCi0tZGVmIGdpdF9nZXRfa2V5d29yZHModmVyc2lv bmZpbGVfYWJzKToKLStkZWYgZ2l0X2dldF9rZXl3b3Jkcyh2ZXJzaW9uZmlsZV9hYnM6IHN0cikg LT4gRGljdFtzdHIsIHN0cl06Ci0gICAgICIiIkV4dHJhY3QgdmVyc2lvbiBpbmZvcm1hdGlvbiBm cm9tIHRoZSBnaXZlbiBmaWxlLiIiIgotICAgICAjIHRoZSBjb2RlIGVtYmVkZGVkIGluIF92ZXJz aW9uLnB5IGNhbiBqdXN0IGZldGNoIHRoZSB2YWx1ZSBvZiB0aGVzZQotICAgICAjIGtleXdvcmRz LiBXaGVuIHVzZWQgZnJvbSBzZXR1cC5weSwgd2UgZG9uJ3Qgd2FudCB0byBpbXBvcnQgX3ZlcnNp b24ucHksCi0gICAgICMgc28gd2UgZG8gaXQgd2l0aCBhIHJlZ2V4cCBpbnN0ZWFkLiBUaGlzIGZ1 bmN0aW9uIGlzIG5vdCB1c2VkIGZyb20KLSAgICAgIyBfdmVyc2lvbi5weS4KLS0gICAga2V5d29y ZHMgPSB7fQotKyAgICBrZXl3b3JkczogRGljdFtzdHIsIHN0cl0gPSB7fQotICAgICB0cnk6Ci0g ICAgICAgICB3aXRoIG9wZW4odmVyc2lvbmZpbGVfYWJzLCAiciIpIGFzIGZvYmo6Ci0gICAgICAg ICAgICAgZm9yIGxpbmUgaW4gZm9iajoKLUBAIC01NzIsNyArNjg5LDExIEBAIGRlZiBnaXRfZ2V0 X2tleXdvcmRzKHZlcnNpb25maWxlX2Ficyk6Ci0gCi0gCi0gQHJlZ2lzdGVyX3Zjc19oYW5kbGVy KCJnaXQiLCAia2V5d29yZHMiKQotLWRlZiBnaXRfdmVyc2lvbnNfZnJvbV9rZXl3b3JkcyhrZXl3 b3JkcywgdGFnX3ByZWZpeCwgdmVyYm9zZSk6Ci0rZGVmIGdpdF92ZXJzaW9uc19mcm9tX2tleXdv cmRzKAotKyAgICBrZXl3b3JkczogRGljdFtzdHIsIHN0cl0sCi0rICAgIHRhZ19wcmVmaXg6IHN0 ciwKLSsgICAgdmVyYm9zZTogYm9vbCwKLSspIC0+IERpY3Rbc3RyLCBBbnldOgotICAgICAiIiJH ZXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBmcm9tIGdpdCBrZXl3b3Jkcy4iIiIKLSAgICAgaWYgInJl Zm5hbWVzIiBub3QgaW4ga2V5d29yZHM6Ci0gICAgICAgICByYWlzZSBOb3RUaGlzTWV0aG9kKCJT aG9ydCB2ZXJzaW9uIGZpbGUgZm91bmQiKQotQEAgLTYzNiw3ICs3NTcsMTIgQEAgZGVmIGdpdF92 ZXJzaW9uc19mcm9tX2tleXdvcmRzKGtleXdvcmRzLCB0YWdfcHJlZml4LCB2ZXJib3NlKToKLSAK LSAKLSBAcmVnaXN0ZXJfdmNzX2hhbmRsZXIoImdpdCIsICJwaWVjZXNfZnJvbV92Y3MiKQotLWRl ZiBnaXRfcGllY2VzX2Zyb21fdmNzKHRhZ19wcmVmaXgsIHJvb3QsIHZlcmJvc2UsIHJ1bm5lcj1y dW5fY29tbWFuZCk6Ci0rZGVmIGdpdF9waWVjZXNfZnJvbV92Y3MoCi0rICAgIHRhZ19wcmVmaXg6 IHN0ciwKLSsgICAgcm9vdDogc3RyLAotKyAgICB2ZXJib3NlOiBib29sLAotKyAgICBydW5uZXI6 IENhbGxhYmxlID0gcnVuX2NvbW1hbmQKLSspIC0+IERpY3Rbc3RyLCBBbnldOgotICAgICAiIiJH ZXQgdmVyc2lvbiBmcm9tICdnaXQgZGVzY3JpYmUnIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2Ug dHJlZS4KLSAKLSAgICAgVGhpcyBvbmx5IGdldHMgY2FsbGVkIGlmIHRoZSBnaXQtYXJjaGl2ZSAn c3Vic3QnIGtleXdvcmRzIHdlcmUgKm5vdCoKLUBAIC02NDQsMTMgKzc3MCwxOCBAQCBkZWYgZ2l0 X3BpZWNlc19mcm9tX3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJib3NlLCBydW5uZXI9cnVuX2Nv bW1hbmQpOgotICAgICB2ZXJzaW9uIHN0cmluZywgbWVhbmluZyB3ZSdyZSBpbnNpZGUgYSBjaGVj a2VkIG91dCBzb3VyY2UgdHJlZS4KLSAgICAgIiIiCi0gICAgIEdJVFMgPSBbImdpdCJdCi0tICAg IFRBR19QUkVGSVhfUkVHRVggPSAiKiIKLSAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6 Ci0gICAgICAgICBHSVRTID0gWyJnaXQuY21kIiwgImdpdC5leGUiXQotLSAgICAgICAgVEFHX1BS RUZJWF9SRUdFWCA9IHIiXCoiCi0rCi0rICAgICMgR0lUX0RJUiBjYW4gaW50ZXJmZXJlIHdpdGgg Y29ycmVjdCBvcGVyYXRpb24gb2YgVmVyc2lvbmVlci4KLSsgICAgIyBJdCBtYXkgYmUgaW50ZW5k ZWQgdG8gYmUgcGFzc2VkIHRvIHRoZSBWZXJzaW9uZWVyLXZlcnNpb25lZCBwcm9qZWN0LAotKyAg ICAjIGJ1dCB0aGF0IHNob3VsZCBub3QgY2hhbmdlIHdoZXJlIHdlIGdldCBvdXIgdmVyc2lvbiBm cm9tLgotKyAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQotKyAgICBlbnYucG9wKCJHSVRfRElS IiwgTm9uZSkKLSsgICAgcnVubmVyID0gZnVuY3Rvb2xzLnBhcnRpYWwocnVubmVyLCBlbnY9ZW52 KQotIAotICAgICBfLCByYyA9IHJ1bm5lcihHSVRTLCBbInJldi1wYXJzZSIsICItLWdpdC1kaXIi XSwgY3dkPXJvb3QsCi0tICAgICAgICAgICAgICAgICAgIGhpZGVfc3RkZXJyPVRydWUpCi0rICAg ICAgICAgICAgICAgICAgIGhpZGVfc3RkZXJyPW5vdCB2ZXJib3NlKQotICAgICBpZiByYyAhPSAw OgotICAgICAgICAgaWYgdmVyYm9zZToKLSAgICAgICAgICAgICBwcmludCgiRGlyZWN0b3J5ICUl cyBub3QgdW5kZXIgZ2l0IGNvbnRyb2wiICUlIHJvb3QpCi1AQCAtNjU4LDExICs3ODksMTAgQEAg ZGVmIGdpdF9waWVjZXNfZnJvbV92Y3ModGFnX3ByZWZpeCwgcm9vdCwgdmVyYm9zZSwgcnVubmVy PXJ1bl9jb21tYW5kKToKLSAKLSAgICAgIyBpZiB0aGVyZSBpcyBhIHRhZyBtYXRjaGluZyB0YWdf cHJlZml4LCB0aGlzIHlpZWxkcyBUQUctTlVNLWdIRVhbLWRpcnR5XQotICAgICAjIGlmIHRoZXJl IGlzbid0IG9uZSwgdGhpcyB5aWVsZHMgSEVYWy1kaXJ0eV0gKG5vIE5VTSkKLS0gICAgZGVzY3Jp YmVfb3V0LCByYyA9IHJ1bm5lcihHSVRTLCBbImRlc2NyaWJlIiwgIi0tdGFncyIsICItLWRpcnR5 IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tYWx3YXlzIiwgIi0t bG9uZyIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLW1hdGNoIiwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiUlcyUlcyIgJSUgKHRhZ19w cmVmaXgsIFRBR19QUkVGSVhfUkVHRVgpXSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjd2Q9cm9vdCkKLSsgICAgZGVzY3JpYmVfb3V0LCByYyA9IHJ1bm5lcihHSVRTLCBbCi0rICAg ICAgICAiZGVzY3JpYmUiLCAiLS10YWdzIiwgIi0tZGlydHkiLCAiLS1hbHdheXMiLCAiLS1sb25n IiwKLSsgICAgICAgICItLW1hdGNoIiwgZiJ7dGFnX3ByZWZpeH1bWzpkaWdpdDpdXSoiCi0rICAg IF0sIGN3ZD1yb290KQotICAgICAjIC0tbG9uZyB3YXMgYWRkZWQgaW4gZ2l0LTEuNS41Ci0gICAg IGlmIGRlc2NyaWJlX291dCBpcyBOb25lOgotICAgICAgICAgcmFpc2UgTm90VGhpc01ldGhvZCgi J2dpdCBkZXNjcmliZScgZmFpbGVkIikKLUBAIC02NzIsNyArODAyLDcgQEAgZGVmIGdpdF9waWVj ZXNfZnJvbV92Y3ModGFnX3ByZWZpeCwgcm9vdCwgdmVyYm9zZSwgcnVubmVyPXJ1bl9jb21tYW5k KToKLSAgICAgICAgIHJhaXNlIE5vdFRoaXNNZXRob2QoIidnaXQgcmV2LXBhcnNlJyBmYWlsZWQi KQotICAgICBmdWxsX291dCA9IGZ1bGxfb3V0LnN0cmlwKCkKLSAKLS0gICAgcGllY2VzID0ge30K LSsgICAgcGllY2VzOiBEaWN0W3N0ciwgQW55XSA9IHt9Ci0gICAgIHBpZWNlc1sibG9uZyJdID0g ZnVsbF9vdXQKLSAgICAgcGllY2VzWyJzaG9ydCJdID0gZnVsbF9vdXRbOjddICAjIG1heWJlIGlt cHJvdmVkIGxhdGVyCi0gICAgIHBpZWNlc1siZXJyb3IiXSA9IE5vbmUKLUBAIC03NTEsOCArODgx LDggQEAgZGVmIGdpdF9waWVjZXNfZnJvbV92Y3ModGFnX3ByZWZpeCwgcm9vdCwgdmVyYm9zZSwg cnVubmVyPXJ1bl9jb21tYW5kKToKLSAgICAgZWxzZToKLSAgICAgICAgICMgSEVYOiBubyB0YWdz Ci0gICAgICAgICBwaWVjZXNbImNsb3Nlc3QtdGFnIl0gPSBOb25lCi0tICAgICAgICBjb3VudF9v dXQsIHJjID0gcnVubmVyKEdJVFMsIFsicmV2LWxpc3QiLCAiSEVBRCIsICItLWNvdW50Il0sIGN3 ZD1yb290KQotLSAgICAgICAgcGllY2VzWyJkaXN0YW5jZSJdID0gaW50KGNvdW50X291dCkgICMg dG90YWwgbnVtYmVyIG9mIGNvbW1pdHMKLSsgICAgICAgIG91dCwgcmMgPSBydW5uZXIoR0lUUywg WyJyZXYtbGlzdCIsICJIRUFEIiwgIi0tbGVmdC1yaWdodCJdLCBjd2Q9cm9vdCkKLSsgICAgICAg IHBpZWNlc1siZGlzdGFuY2UiXSA9IGxlbihvdXQuc3BsaXQoKSkgICMgdG90YWwgbnVtYmVyIG9m IGNvbW1pdHMKLSAKLSAgICAgIyBjb21taXQgZGF0ZTogc2VlIElTTy04NjAxIGNvbW1lbnQgaW4g Z2l0X3ZlcnNpb25zX2Zyb21fa2V5d29yZHMoKQotICAgICBkYXRlID0gcnVubmVyKEdJVFMsIFsi c2hvdyIsICItcyIsICItLWZvcm1hdD0lJWNpIiwgIkhFQUQiXSwgY3dkPXJvb3QpWzBdLnN0cmlw KCkKLUBAIC03NjQsMTQgKzg5NCwxNCBAQCBkZWYgZ2l0X3BpZWNlc19mcm9tX3Zjcyh0YWdfcHJl Zml4LCByb290LCB2ZXJib3NlLCBydW5uZXI9cnVuX2NvbW1hbmQpOgotICAgICByZXR1cm4gcGll Y2VzCi0gCi0gCi0tZGVmIHBsdXNfb3JfZG90KHBpZWNlcyk6Ci0rZGVmIHBsdXNfb3JfZG90KHBp ZWNlczogRGljdFtzdHIsIEFueV0pIC0+IHN0cjoKLSAgICAgIiIiUmV0dXJuIGEgKyBpZiB3ZSBk b24ndCBhbHJlYWR5IGhhdmUgb25lLCBlbHNlIHJldHVybiBhIC4iIiIKLSAgICAgaWYgIisiIGlu IHBpZWNlcy5nZXQoImNsb3Nlc3QtdGFnIiwgIiIpOgotICAgICAgICAgcmV0dXJuICIuIgotICAg ICByZXR1cm4gIisiCi0gCi0gCi0tZGVmIHJlbmRlcl9wZXA0NDAocGllY2VzKToKLStkZWYgcmVu ZGVyX3BlcDQ0MChwaWVjZXM6IERpY3Rbc3RyLCBBbnldKSAtPiBzdHI6Ci0gICAgICIiIkJ1aWxk IHVwIHZlcnNpb24gc3RyaW5nLCB3aXRoIHBvc3QtcmVsZWFzZSAibG9jYWwgdmVyc2lvbiBpZGVu dGlmaWVyIi4KLSAKLSAgICAgT3VyIGdvYWw6IFRBR1srRElTVEFOQ0UuZ0hFWFsuZGlydHldXSAu IE5vdGUgdGhhdCBpZiB5b3UKLUBAIC03OTYsNyArOTI2LDcgQEAgZGVmIHJlbmRlcl9wZXA0NDAo cGllY2VzKToKLSAgICAgcmV0dXJuIHJlbmRlcmVkCi0gCi0gCi0tZGVmIHJlbmRlcl9wZXA0NDBf YnJhbmNoKHBpZWNlcyk6Ci0rZGVmIHJlbmRlcl9wZXA0NDBfYnJhbmNoKHBpZWNlczogRGljdFtz dHIsIEFueV0pIC0+IHN0cjoKLSAgICAgIiIiVEFHW1suZGV2MF0rRElTVEFOQ0UuZ0hFWFsuZGly dHldXSAuCi0gCi0gICAgIFRoZSAiLmRldjAiIG1lYW5zIG5vdCBtYXN0ZXIgYnJhbmNoLiBOb3Rl IHRoYXQgLmRldjAgc29ydHMgYmFja3dhcmRzCi1AQCAtODI2LDcgKzk1Niw3IEBAIGRlZiByZW5k ZXJfcGVwNDQwX2JyYW5jaChwaWVjZXMpOgotICAgICByZXR1cm4gcmVuZGVyZWQKLSAKLSAKLS1k ZWYgcGVwNDQwX3NwbGl0X3Bvc3QodmVyKToKLStkZWYgcGVwNDQwX3NwbGl0X3Bvc3QodmVyOiBz dHIpIC0+IFR1cGxlW3N0ciwgT3B0aW9uYWxbaW50XV06Ci0gICAgICIiIlNwbGl0IHBlcDQ0MCB2 ZXJzaW9uIHN0cmluZyBhdCB0aGUgcG9zdC1yZWxlYXNlIHNlZ21lbnQuCi0gCi0gICAgIFJldHVy bnMgdGhlIHJlbGVhc2Ugc2VnbWVudHMgYmVmb3JlIHRoZSBwb3N0LXJlbGVhc2UgYW5kIHRoZQot QEAgLTgzNiw3ICs5NjYsNyBAQCBkZWYgcGVwNDQwX3NwbGl0X3Bvc3QodmVyKToKLSAgICAgcmV0 dXJuIHZjWzBdLCBpbnQodmNbMV0gb3IgMCkgaWYgbGVuKHZjKSA9PSAyIGVsc2UgTm9uZQotIAot IAotLWRlZiByZW5kZXJfcGVwNDQwX3ByZShwaWVjZXMpOgotK2RlZiByZW5kZXJfcGVwNDQwX3By ZShwaWVjZXM6IERpY3Rbc3RyLCBBbnldKSAtPiBzdHI6Ci0gICAgICIiIlRBR1sucG9zdE4uZGV2 RElTVEFOQ0VdIC0tIE5vIC1kaXJ0eS4KLSAKLSAgICAgRXhjZXB0aW9uczoKLUBAIC04NDgsNyAr OTc4LDcgQEAgZGVmIHJlbmRlcl9wZXA0NDBfcHJlKHBpZWNlcyk6Ci0gICAgICAgICAgICAgdGFn X3ZlcnNpb24sIHBvc3RfdmVyc2lvbiA9IHBlcDQ0MF9zcGxpdF9wb3N0KHBpZWNlc1siY2xvc2Vz dC10YWciXSkKLSAgICAgICAgICAgICByZW5kZXJlZCA9IHRhZ192ZXJzaW9uCi0gICAgICAgICAg ICAgaWYgcG9zdF92ZXJzaW9uIGlzIG5vdCBOb25lOgotLSAgICAgICAgICAgICAgICByZW5kZXJl ZCArPSAiLnBvc3QlJWQuZGV2JSVkIiAlJSAocG9zdF92ZXJzaW9uKzEsIHBpZWNlc1siZGlzdGFu Y2UiXSkKLSsgICAgICAgICAgICAgICAgcmVuZGVyZWQgKz0gIi5wb3N0JSVkLmRldiUlZCIgJSUg KHBvc3RfdmVyc2lvbiArIDEsIHBpZWNlc1siZGlzdGFuY2UiXSkKLSAgICAgICAgICAgICBlbHNl OgotICAgICAgICAgICAgICAgICByZW5kZXJlZCArPSAiLnBvc3QwLmRldiUlZCIgJSUgKHBpZWNl c1siZGlzdGFuY2UiXSkKLSAgICAgICAgIGVsc2U6Ci1AQCAtODYwLDcgKzk5MCw3IEBAIGRlZiBy ZW5kZXJfcGVwNDQwX3ByZShwaWVjZXMpOgotICAgICByZXR1cm4gcmVuZGVyZWQKLSAKLSAKLS1k ZWYgcmVuZGVyX3BlcDQ0MF9wb3N0KHBpZWNlcyk6Ci0rZGVmIHJlbmRlcl9wZXA0NDBfcG9zdChw aWVjZXM6IERpY3Rbc3RyLCBBbnldKSAtPiBzdHI6Ci0gICAgICIiIlRBR1sucG9zdERJU1RBTkNF Wy5kZXYwXStnSEVYXSAuCi0gCi0gICAgIFRoZSAiLmRldjAiIG1lYW5zIGRpcnR5LiBOb3RlIHRo YXQgLmRldjAgc29ydHMgYmFja3dhcmRzCi1AQCAtODg3LDcgKzEwMTcsNyBAQCBkZWYgcmVuZGVy X3BlcDQ0MF9wb3N0KHBpZWNlcyk6Ci0gICAgIHJldHVybiByZW5kZXJlZAotIAotIAotLWRlZiBy ZW5kZXJfcGVwNDQwX3Bvc3RfYnJhbmNoKHBpZWNlcyk6Ci0rZGVmIHJlbmRlcl9wZXA0NDBfcG9z dF9icmFuY2gocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3RyOgotICAgICAiIiJUQUdbLnBv c3RESVNUQU5DRVsuZGV2MF0rZ0hFWFsuZGlydHldXSAuCi0gCi0gICAgIFRoZSAiLmRldjAiIG1l YW5zIG5vdCBtYXN0ZXIgYnJhbmNoLgotQEAgLTkxNiw3ICsxMDQ2LDcgQEAgZGVmIHJlbmRlcl9w ZXA0NDBfcG9zdF9icmFuY2gocGllY2VzKToKLSAgICAgcmV0dXJuIHJlbmRlcmVkCi0gCi0gCi0t ZGVmIHJlbmRlcl9wZXA0NDBfb2xkKHBpZWNlcyk6Ci0rZGVmIHJlbmRlcl9wZXA0NDBfb2xkKHBp ZWNlczogRGljdFtzdHIsIEFueV0pIC0+IHN0cjoKLSAgICAgIiIiVEFHWy5wb3N0RElTVEFOQ0Vb LmRldjBdXSAuCi0gCi0gICAgIFRoZSAiLmRldjAiIG1lYW5zIGRpcnR5LgotQEAgLTkzOCw3ICsx MDY4LDcgQEAgZGVmIHJlbmRlcl9wZXA0NDBfb2xkKHBpZWNlcyk6Ci0gICAgIHJldHVybiByZW5k ZXJlZAotIAotIAotLWRlZiByZW5kZXJfZ2l0X2Rlc2NyaWJlKHBpZWNlcyk6Ci0rZGVmIHJlbmRl cl9naXRfZGVzY3JpYmUocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3RyOgotICAgICAiIiJU QUdbLURJU1RBTkNFLWdIRVhdWy1kaXJ0eV0uCi0gCi0gICAgIExpa2UgJ2dpdCBkZXNjcmliZSAt LXRhZ3MgLS1kaXJ0eSAtLWFsd2F5cycuCi1AQCAtOTU4LDcgKzEwODgsNyBAQCBkZWYgcmVuZGVy X2dpdF9kZXNjcmliZShwaWVjZXMpOgotICAgICByZXR1cm4gcmVuZGVyZWQKLSAKLSAKLS1kZWYg cmVuZGVyX2dpdF9kZXNjcmliZV9sb25nKHBpZWNlcyk6Ci0rZGVmIHJlbmRlcl9naXRfZGVzY3Jp YmVfbG9uZyhwaWVjZXM6IERpY3Rbc3RyLCBBbnldKSAtPiBzdHI6Ci0gICAgICIiIlRBRy1ESVNU QU5DRS1nSEVYWy1kaXJ0eV0uCi0gCi0gICAgIExpa2UgJ2dpdCBkZXNjcmliZSAtLXRhZ3MgLS1k aXJ0eSAtLWFsd2F5cyAtbG9uZycuCi1AQCAtOTc4LDcgKzExMDgsNyBAQCBkZWYgcmVuZGVyX2dp dF9kZXNjcmliZV9sb25nKHBpZWNlcyk6Ci0gICAgIHJldHVybiByZW5kZXJlZAotIAotIAotLWRl ZiByZW5kZXIocGllY2VzLCBzdHlsZSk6Ci0rZGVmIHJlbmRlcihwaWVjZXM6IERpY3Rbc3RyLCBB bnldLCBzdHlsZTogc3RyKSAtPiBEaWN0W3N0ciwgQW55XToKLSAgICAgIiIiUmVuZGVyIHRoZSBn aXZlbiB2ZXJzaW9uIHBpZWNlcyBpbnRvIHRoZSByZXF1ZXN0ZWQgc3R5bGUuIiIiCi0gICAgIGlm IHBpZWNlc1siZXJyb3IiXToKLSAgICAgICAgIHJldHVybiB7InZlcnNpb24iOiAidW5rbm93biIs Ci1AQCAtMTAxNCw3ICsxMTQ0LDcgQEAgZGVmIHJlbmRlcihwaWVjZXMsIHN0eWxlKToKLSAgICAg ICAgICAgICAiZGF0ZSI6IHBpZWNlcy5nZXQoImRhdGUiKX0KLSAKLSAKLS1kZWYgZ2V0X3ZlcnNp b25zKCk6Ci0rZGVmIGdldF92ZXJzaW9ucygpIC0+IERpY3Rbc3RyLCBBbnldOgotICAgICAiIiJH ZXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBvciByZXR1cm4gZGVmYXVsdCBpZiB1bmFibGUgdG8gZG8g c28uIiIiCi0gICAgICMgSSBhbSBpbiBfdmVyc2lvbi5weSwgd2hpY2ggbGl2ZXMgYXQgUk9PVC9W RVJTSU9ORklMRV9TT1VSQ0UuIElmIHdlIGhhdmUKLSAgICAgIyBfX2ZpbGVfXywgd2UgY2FuIHdv cmsgYmFja3dhcmRzIGZyb20gdGhlcmUgdG8gdGhlIHJvb3QuIFNvbWUKLUBAIC0xMDYyLDEzICsx MTkyLDEzIEBAIGRlZiBnZXRfdmVyc2lvbnMoKToKLSAKLSAKLSBAcmVnaXN0ZXJfdmNzX2hhbmRs ZXIoImdpdCIsICJnZXRfa2V5d29yZHMiKQotLWRlZiBnaXRfZ2V0X2tleXdvcmRzKHZlcnNpb25m aWxlX2Ficyk6Ci0rZGVmIGdpdF9nZXRfa2V5d29yZHModmVyc2lvbmZpbGVfYWJzOiBzdHIpIC0+ IERpY3Rbc3RyLCBzdHJdOgotICAgICAiIiJFeHRyYWN0IHZlcnNpb24gaW5mb3JtYXRpb24gZnJv bSB0aGUgZ2l2ZW4gZmlsZS4iIiIKLSAgICAgIyB0aGUgY29kZSBlbWJlZGRlZCBpbiBfdmVyc2lv bi5weSBjYW4ganVzdCBmZXRjaCB0aGUgdmFsdWUgb2YgdGhlc2UKLSAgICAgIyBrZXl3b3Jkcy4g V2hlbiB1c2VkIGZyb20gc2V0dXAucHksIHdlIGRvbid0IHdhbnQgdG8gaW1wb3J0IF92ZXJzaW9u LnB5LAotICAgICAjIHNvIHdlIGRvIGl0IHdpdGggYSByZWdleHAgaW5zdGVhZC4gVGhpcyBmdW5j dGlvbiBpcyBub3QgdXNlZCBmcm9tCi0gICAgICMgX3ZlcnNpb24ucHkuCi0tICAgIGtleXdvcmRz ID0ge30KLSsgICAga2V5d29yZHM6IERpY3Rbc3RyLCBzdHJdID0ge30KLSAgICAgdHJ5OgotICAg ICAgICAgd2l0aCBvcGVuKHZlcnNpb25maWxlX2FicywgInIiKSBhcyBmb2JqOgotICAgICAgICAg ICAgIGZvciBsaW5lIGluIGZvYmo6Ci1AQCAtMTA5MCw3ICsxMjIwLDExIEBAIGRlZiBnaXRfZ2V0 X2tleXdvcmRzKHZlcnNpb25maWxlX2Ficyk6Ci0gCi0gCi0gQHJlZ2lzdGVyX3Zjc19oYW5kbGVy KCJnaXQiLCAia2V5d29yZHMiKQotLWRlZiBnaXRfdmVyc2lvbnNfZnJvbV9rZXl3b3JkcyhrZXl3 b3JkcywgdGFnX3ByZWZpeCwgdmVyYm9zZSk6Ci0rZGVmIGdpdF92ZXJzaW9uc19mcm9tX2tleXdv cmRzKAotKyAgICBrZXl3b3JkczogRGljdFtzdHIsIHN0cl0sCi0rICAgIHRhZ19wcmVmaXg6IHN0 ciwKLSsgICAgdmVyYm9zZTogYm9vbCwKLSspIC0+IERpY3Rbc3RyLCBBbnldOgotICAgICAiIiJH ZXQgdmVyc2lvbiBpbmZvcm1hdGlvbiBmcm9tIGdpdCBrZXl3b3Jkcy4iIiIKLSAgICAgaWYgInJl Zm5hbWVzIiBub3QgaW4ga2V5d29yZHM6Ci0gICAgICAgICByYWlzZSBOb3RUaGlzTWV0aG9kKCJT aG9ydCB2ZXJzaW9uIGZpbGUgZm91bmQiKQotQEAgLTExNTQsNyArMTI4OCwxMiBAQCBkZWYgZ2l0 X3ZlcnNpb25zX2Zyb21fa2V5d29yZHMoa2V5d29yZHMsIHRhZ19wcmVmaXgsIHZlcmJvc2UpOgot IAotIAotIEByZWdpc3Rlcl92Y3NfaGFuZGxlcigiZ2l0IiwgInBpZWNlc19mcm9tX3ZjcyIpCi0t ZGVmIGdpdF9waWVjZXNfZnJvbV92Y3ModGFnX3ByZWZpeCwgcm9vdCwgdmVyYm9zZSwgcnVubmVy PXJ1bl9jb21tYW5kKToKLStkZWYgZ2l0X3BpZWNlc19mcm9tX3ZjcygKLSsgICAgdGFnX3ByZWZp eDogc3RyLAotKyAgICByb290OiBzdHIsCi0rICAgIHZlcmJvc2U6IGJvb2wsCi0rICAgIHJ1bm5l cjogQ2FsbGFibGUgPSBydW5fY29tbWFuZAotKykgLT4gRGljdFtzdHIsIEFueV06Ci0gICAgICIi IkdldCB2ZXJzaW9uIGZyb20gJ2dpdCBkZXNjcmliZScgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJj ZSB0cmVlLgotIAotICAgICBUaGlzIG9ubHkgZ2V0cyBjYWxsZWQgaWYgdGhlIGdpdC1hcmNoaXZl ICdzdWJzdCcga2V5d29yZHMgd2VyZSAqbm90KgotQEAgLTExNjIsMTMgKzEzMDEsMTggQEAgZGVm IGdpdF9waWVjZXNfZnJvbV92Y3ModGFnX3ByZWZpeCwgcm9vdCwgdmVyYm9zZSwgcnVubmVyPXJ1 bl9jb21tYW5kKToKLSAgICAgdmVyc2lvbiBzdHJpbmcsIG1lYW5pbmcgd2UncmUgaW5zaWRlIGEg Y2hlY2tlZCBvdXQgc291cmNlIHRyZWUuCi0gICAgICIiIgotICAgICBHSVRTID0gWyJnaXQiXQot LSAgICBUQUdfUFJFRklYX1JFR0VYID0gIioiCi0gICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2lu MzIiOgotICAgICAgICAgR0lUUyA9IFsiZ2l0LmNtZCIsICJnaXQuZXhlIl0KLS0gICAgICAgIFRB R19QUkVGSVhfUkVHRVggPSByIlwqIgotKwotKyAgICAjIEdJVF9ESVIgY2FuIGludGVyZmVyZSB3 aXRoIGNvcnJlY3Qgb3BlcmF0aW9uIG9mIFZlcnNpb25lZXIuCi0rICAgICMgSXQgbWF5IGJlIGlu dGVuZGVkIHRvIGJlIHBhc3NlZCB0byB0aGUgVmVyc2lvbmVlci12ZXJzaW9uZWQgcHJvamVjdCwK LSsgICAgIyBidXQgdGhhdCBzaG91bGQgbm90IGNoYW5nZSB3aGVyZSB3ZSBnZXQgb3VyIHZlcnNp b24gZnJvbS4KLSsgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKLSsgICAgZW52LnBvcCgiR0lU X0RJUiIsIE5vbmUpCi0rICAgIHJ1bm5lciA9IGZ1bmN0b29scy5wYXJ0aWFsKHJ1bm5lciwgZW52 PWVudikKLSAKLSAgICAgXywgcmMgPSBydW5uZXIoR0lUUywgWyJyZXYtcGFyc2UiLCAiLS1naXQt ZGlyIl0sIGN3ZD1yb290LAotLSAgICAgICAgICAgICAgICAgICBoaWRlX3N0ZGVycj1UcnVlKQot KyAgICAgICAgICAgICAgICAgICBoaWRlX3N0ZGVycj1ub3QgdmVyYm9zZSkKLSAgICAgaWYgcmMg IT0gMDoKLSAgICAgICAgIGlmIHZlcmJvc2U6Ci0gICAgICAgICAgICAgcHJpbnQoIkRpcmVjdG9y eSAlcyBub3QgdW5kZXIgZ2l0IGNvbnRyb2wiICUgcm9vdCkKLUBAIC0xMTc2LDExICsxMzIwLDEw IEBAIGRlZiBnaXRfcGllY2VzX2Zyb21fdmNzKHRhZ19wcmVmaXgsIHJvb3QsIHZlcmJvc2UsIHJ1 bm5lcj1ydW5fY29tbWFuZCk6Ci0gCi0gICAgICMgaWYgdGhlcmUgaXMgYSB0YWcgbWF0Y2hpbmcg dGFnX3ByZWZpeCwgdGhpcyB5aWVsZHMgVEFHLU5VTS1nSEVYWy1kaXJ0eV0KLSAgICAgIyBpZiB0 aGVyZSBpc24ndCBvbmUsIHRoaXMgeWllbGRzIEhFWFstZGlydHldIChubyBOVU0pCi0tICAgIGRl c2NyaWJlX291dCwgcmMgPSBydW5uZXIoR0lUUywgWyJkZXNjcmliZSIsICItLXRhZ3MiLCAiLS1k aXJ0eSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWFsd2F5cyIs ICItLWxvbmciLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1tYXRj aCIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyVzIiAlICh0YWdf cHJlZml4LCBUQUdfUFJFRklYX1JFR0VYKV0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY3dkPXJvb3QpCi0rICAgIGRlc2NyaWJlX291dCwgcmMgPSBydW5uZXIoR0lUUywgWwotKyAg ICAgICAgImRlc2NyaWJlIiwgIi0tdGFncyIsICItLWRpcnR5IiwgIi0tYWx3YXlzIiwgIi0tbG9u ZyIsCi0rICAgICAgICAiLS1tYXRjaCIsIGYie3RhZ19wcmVmaXh9W1s6ZGlnaXQ6XV0qIgotKyAg ICBdLCBjd2Q9cm9vdCkKLSAgICAgIyAtLWxvbmcgd2FzIGFkZGVkIGluIGdpdC0xLjUuNQotICAg ICBpZiBkZXNjcmliZV9vdXQgaXMgTm9uZToKLSAgICAgICAgIHJhaXNlIE5vdFRoaXNNZXRob2Qo IidnaXQgZGVzY3JpYmUnIGZhaWxlZCIpCi1AQCAtMTE5MCw3ICsxMzMzLDcgQEAgZGVmIGdpdF9w aWVjZXNfZnJvbV92Y3ModGFnX3ByZWZpeCwgcm9vdCwgdmVyYm9zZSwgcnVubmVyPXJ1bl9jb21t YW5kKToKLSAgICAgICAgIHJhaXNlIE5vdFRoaXNNZXRob2QoIidnaXQgcmV2LXBhcnNlJyBmYWls ZWQiKQotICAgICBmdWxsX291dCA9IGZ1bGxfb3V0LnN0cmlwKCkKLSAKLS0gICAgcGllY2VzID0g e30KLSsgICAgcGllY2VzOiBEaWN0W3N0ciwgQW55XSA9IHt9Ci0gICAgIHBpZWNlc1sibG9uZyJd ID0gZnVsbF9vdXQKLSAgICAgcGllY2VzWyJzaG9ydCJdID0gZnVsbF9vdXRbOjddICAjIG1heWJl IGltcHJvdmVkIGxhdGVyCi0gICAgIHBpZWNlc1siZXJyb3IiXSA9IE5vbmUKLUBAIC0xMjY5LDgg KzE0MTIsOCBAQCBkZWYgZ2l0X3BpZWNlc19mcm9tX3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJi b3NlLCBydW5uZXI9cnVuX2NvbW1hbmQpOgotICAgICBlbHNlOgotICAgICAgICAgIyBIRVg6IG5v IHRhZ3MKLSAgICAgICAgIHBpZWNlc1siY2xvc2VzdC10YWciXSA9IE5vbmUKLS0gICAgICAgIGNv dW50X291dCwgcmMgPSBydW5uZXIoR0lUUywgWyJyZXYtbGlzdCIsICJIRUFEIiwgIi0tY291bnQi XSwgY3dkPXJvb3QpCi0tICAgICAgICBwaWVjZXNbImRpc3RhbmNlIl0gPSBpbnQoY291bnRfb3V0 KSAgIyB0b3RhbCBudW1iZXIgb2YgY29tbWl0cwotKyAgICAgICAgb3V0LCByYyA9IHJ1bm5lcihH SVRTLCBbInJldi1saXN0IiwgIkhFQUQiLCAiLS1sZWZ0LXJpZ2h0Il0sIGN3ZD1yb290KQotKyAg ICAgICAgcGllY2VzWyJkaXN0YW5jZSJdID0gbGVuKG91dC5zcGxpdCgpKSAgIyB0b3RhbCBudW1i ZXIgb2YgY29tbWl0cwotIAotICAgICAjIGNvbW1pdCBkYXRlOiBzZWUgSVNPLTg2MDEgY29tbWVu dCBpbiBnaXRfdmVyc2lvbnNfZnJvbV9rZXl3b3JkcygpCi0gICAgIGRhdGUgPSBydW5uZXIoR0lU UywgWyJzaG93IiwgIi1zIiwgIi0tZm9ybWF0PSVjaSIsICJIRUFEIl0sIGN3ZD1yb290KVswXS5z dHJpcCgpCi1AQCAtMTI4Miw3ICsxNDI1LDcgQEAgZGVmIGdpdF9waWVjZXNfZnJvbV92Y3ModGFn X3ByZWZpeCwgcm9vdCwgdmVyYm9zZSwgcnVubmVyPXJ1bl9jb21tYW5kKToKLSAgICAgcmV0dXJu IHBpZWNlcwotIAotIAotLWRlZiBkb192Y3NfaW5zdGFsbChtYW5pZmVzdF9pbiwgdmVyc2lvbmZp bGVfc291cmNlLCBpcHkpOgotK2RlZiBkb192Y3NfaW5zdGFsbCh2ZXJzaW9uZmlsZV9zb3VyY2U6 IHN0ciwgaXB5OiBPcHRpb25hbFtzdHJdKSAtPiBOb25lOgotICAgICAiIiJHaXQtc3BlY2lmaWMg aW5zdGFsbGF0aW9uIGxvZ2ljIGZvciBWZXJzaW9uZWVyLgotIAotICAgICBGb3IgR2l0LCB0aGlz IG1lYW5zIGNyZWF0aW5nL2NoYW5naW5nIC5naXRhdHRyaWJ1dGVzIHRvIG1hcmsgX3ZlcnNpb24u cHkKLUBAIC0xMjkxLDE3ICsxNDM0LDE4IEBAIGRlZiBkb192Y3NfaW5zdGFsbChtYW5pZmVzdF9p biwgdmVyc2lvbmZpbGVfc291cmNlLCBpcHkpOgotICAgICBHSVRTID0gWyJnaXQiXQotICAgICBp ZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKLSAgICAgICAgIEdJVFMgPSBbImdpdC5jbWQiLCAi Z2l0LmV4ZSJdCi0tICAgIGZpbGVzID0gW21hbmlmZXN0X2luLCB2ZXJzaW9uZmlsZV9zb3VyY2Vd Ci0rICAgIGZpbGVzID0gW3ZlcnNpb25maWxlX3NvdXJjZV0KLSAgICAgaWYgaXB5OgotICAgICAg ICAgZmlsZXMuYXBwZW5kKGlweSkKLS0gICAgdHJ5OgotLSAgICAgICAgbXlfcGF0aCA9IF9fZmls ZV9fCi0tICAgICAgICBpZiBteV9wYXRoLmVuZHN3aXRoKCIucHljIikgb3IgbXlfcGF0aC5lbmRz d2l0aCgiLnB5byIpOgotLSAgICAgICAgICAgIG15X3BhdGggPSBvcy5wYXRoLnNwbGl0ZXh0KG15 X3BhdGgpWzBdICsgIi5weSIKLS0gICAgICAgIHZlcnNpb25lZXJfZmlsZSA9IG9zLnBhdGgucmVs cGF0aChteV9wYXRoKQotLSAgICBleGNlcHQgTmFtZUVycm9yOgotLSAgICAgICAgdmVyc2lvbmVl cl9maWxlID0gInZlcnNpb25lZXIucHkiCi0tICAgIGZpbGVzLmFwcGVuZCh2ZXJzaW9uZWVyX2Zp bGUpCi0rICAgIGlmICJWRVJTSU9ORUVSX1BFUDUxOCIgbm90IGluIGdsb2JhbHMoKToKLSsgICAg ICAgIHRyeToKLSsgICAgICAgICAgICBteV9wYXRoID0gX19maWxlX18KLSsgICAgICAgICAgICBp ZiBteV9wYXRoLmVuZHN3aXRoKCgiLnB5YyIsICIucHlvIikpOgotKyAgICAgICAgICAgICAgICBt eV9wYXRoID0gb3MucGF0aC5zcGxpdGV4dChteV9wYXRoKVswXSArICIucHkiCi0rICAgICAgICAg ICAgdmVyc2lvbmVlcl9maWxlID0gb3MucGF0aC5yZWxwYXRoKG15X3BhdGgpCi0rICAgICAgICBl eGNlcHQgTmFtZUVycm9yOgotKyAgICAgICAgICAgIHZlcnNpb25lZXJfZmlsZSA9ICJ2ZXJzaW9u ZWVyLnB5IgotKyAgICAgICAgZmlsZXMuYXBwZW5kKHZlcnNpb25lZXJfZmlsZSkKLSAgICAgcHJl c2VudCA9IEZhbHNlCi0gICAgIHRyeToKLSAgICAgICAgIHdpdGggb3BlbigiLmdpdGF0dHJpYnV0 ZXMiLCAiciIpIGFzIGZvYmo6Ci1AQCAtMTMxOSw3ICsxNDYzLDExIEBAIGRlZiBkb192Y3NfaW5z dGFsbChtYW5pZmVzdF9pbiwgdmVyc2lvbmZpbGVfc291cmNlLCBpcHkpOgotICAgICBydW5fY29t bWFuZChHSVRTLCBbImFkZCIsICItLSJdICsgZmlsZXMpCi0gCi0gCi0tZGVmIHZlcnNpb25zX2Zy b21fcGFyZW50ZGlyKHBhcmVudGRpcl9wcmVmaXgsIHJvb3QsIHZlcmJvc2UpOgotK2RlZiB2ZXJz aW9uc19mcm9tX3BhcmVudGRpcigKLSsgICAgcGFyZW50ZGlyX3ByZWZpeDogc3RyLAotKyAgICBy b290OiBzdHIsCi0rICAgIHZlcmJvc2U6IGJvb2wsCi0rKSAtPiBEaWN0W3N0ciwgQW55XToKLSAg ICAgIiIiVHJ5IHRvIGRldGVybWluZSB0aGUgdmVyc2lvbiBmcm9tIHRoZSBwYXJlbnQgZGlyZWN0 b3J5IG5hbWUuCi0gCi0gICAgIFNvdXJjZSB0YXJiYWxscyBjb252ZW50aW9uYWxseSB1bnBhY2sg aW50byBhIGRpcmVjdG9yeSB0aGF0IGluY2x1ZGVzIGJvdGgKLUBAIC0xMzQ0LDcgKzE0OTIsNyBA QCBkZWYgdmVyc2lvbnNfZnJvbV9wYXJlbnRkaXIocGFyZW50ZGlyX3ByZWZpeCwgcm9vdCwgdmVy Ym9zZSk6Ci0gCi0gCi0gU0hPUlRfVkVSU0lPTl9QWSA9ICIiIgotLSMgVGhpcyBmaWxlIHdhcyBn ZW5lcmF0ZWQgYnkgJ3ZlcnNpb25lZXIucHknICgwLjIxKSBmcm9tCi0rIyBUaGlzIGZpbGUgd2Fz IGdlbmVyYXRlZCBieSAndmVyc2lvbmVlci5weScgKDAuMjkpIGZyb20KLSAjIHJldmlzaW9uLWNv bnRyb2wgc3lzdGVtIGRhdGEsIG9yIGZyb20gdGhlIHBhcmVudCBkaXJlY3RvcnkgbmFtZSBvZiBh bgotICMgdW5wYWNrZWQgc291cmNlIGFyY2hpdmUuIERpc3RyaWJ1dGlvbiB0YXJiYWxscyBjb250 YWluIGEgcHJlLWdlbmVyYXRlZCBjb3B5Ci0gIyBvZiB0aGlzIGZpbGUuCi1AQCAtMTM2MSw3ICsx NTA5LDcgQEAgZGVmIGdldF92ZXJzaW9ucygpOgotICIiIgotIAotIAotLWRlZiB2ZXJzaW9uc19m cm9tX2ZpbGUoZmlsZW5hbWUpOgotK2RlZiB2ZXJzaW9uc19mcm9tX2ZpbGUoZmlsZW5hbWU6IHN0 cikgLT4gRGljdFtzdHIsIEFueV06Ci0gICAgICIiIlRyeSB0byBkZXRlcm1pbmUgdGhlIHZlcnNp b24gZnJvbSBfdmVyc2lvbi5weSBpZiBwcmVzZW50LiIiIgotICAgICB0cnk6Ci0gICAgICAgICB3 aXRoIG9wZW4oZmlsZW5hbWUpIGFzIGY6Ci1AQCAtMTM3OCw5ICsxNTI2LDggQEAgZGVmIHZlcnNp b25zX2Zyb21fZmlsZShmaWxlbmFtZSk6Ci0gICAgIHJldHVybiBqc29uLmxvYWRzKG1vLmdyb3Vw KDEpKQotIAotIAotLWRlZiB3cml0ZV90b192ZXJzaW9uX2ZpbGUoZmlsZW5hbWUsIHZlcnNpb25z KToKLStkZWYgd3JpdGVfdG9fdmVyc2lvbl9maWxlKGZpbGVuYW1lOiBzdHIsIHZlcnNpb25zOiBE aWN0W3N0ciwgQW55XSkgLT4gTm9uZToKLSAgICAgIiIiV3JpdGUgdGhlIGdpdmVuIHZlcnNpb24g bnVtYmVyIHRvIHRoZSBnaXZlbiBfdmVyc2lvbi5weSBmaWxlLiIiIgotLSAgICBvcy51bmxpbmso ZmlsZW5hbWUpCi0gICAgIGNvbnRlbnRzID0ganNvbi5kdW1wcyh2ZXJzaW9ucywgc29ydF9rZXlz PVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRlbnQ9MSwgc2VwYXJhdG9ycz0o IiwiLCAiOiAiKSkKLSAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCAidyIpIGFzIGY6Ci1AQCAtMTM4 OSwxNCArMTUzNiwxNCBAQCBkZWYgd3JpdGVfdG9fdmVyc2lvbl9maWxlKGZpbGVuYW1lLCB2ZXJz aW9ucyk6Ci0gICAgIHByaW50KCJzZXQgJXMgdG8gJyVzJyIgJSAoZmlsZW5hbWUsIHZlcnNpb25z WyJ2ZXJzaW9uIl0pKQotIAotIAotLWRlZiBwbHVzX29yX2RvdChwaWVjZXMpOgotK2RlZiBwbHVz X29yX2RvdChwaWVjZXM6IERpY3Rbc3RyLCBBbnldKSAtPiBzdHI6Ci0gICAgICIiIlJldHVybiBh ICsgaWYgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZSwgZWxzZSByZXR1cm4gYSAuIiIiCi0gICAg IGlmICIrIiBpbiBwaWVjZXMuZ2V0KCJjbG9zZXN0LXRhZyIsICIiKToKLSAgICAgICAgIHJldHVy biAiLiIKLSAgICAgcmV0dXJuICIrIgotIAotIAotLWRlZiByZW5kZXJfcGVwNDQwKHBpZWNlcyk6 Ci0rZGVmIHJlbmRlcl9wZXA0NDAocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3RyOgotICAg ICAiIiJCdWlsZCB1cCB2ZXJzaW9uIHN0cmluZywgd2l0aCBwb3N0LXJlbGVhc2UgImxvY2FsIHZl cnNpb24gaWRlbnRpZmllciIuCi0gCi0gICAgIE91ciBnb2FsOiBUQUdbK0RJU1RBTkNFLmdIRVhb LmRpcnR5XV0gLiBOb3RlIHRoYXQgaWYgeW91Ci1AQCAtMTQyMSw3ICsxNTY4LDcgQEAgZGVmIHJl bmRlcl9wZXA0NDAocGllY2VzKToKLSAgICAgcmV0dXJuIHJlbmRlcmVkCi0gCi0gCi0tZGVmIHJl bmRlcl9wZXA0NDBfYnJhbmNoKHBpZWNlcyk6Ci0rZGVmIHJlbmRlcl9wZXA0NDBfYnJhbmNoKHBp ZWNlczogRGljdFtzdHIsIEFueV0pIC0+IHN0cjoKLSAgICAgIiIiVEFHW1suZGV2MF0rRElTVEFO Q0UuZ0hFWFsuZGlydHldXSAuCi0gCi0gICAgIFRoZSAiLmRldjAiIG1lYW5zIG5vdCBtYXN0ZXIg YnJhbmNoLiBOb3RlIHRoYXQgLmRldjAgc29ydHMgYmFja3dhcmRzCi1AQCAtMTQ1MSw3ICsxNTk4 LDcgQEAgZGVmIHJlbmRlcl9wZXA0NDBfYnJhbmNoKHBpZWNlcyk6Ci0gICAgIHJldHVybiByZW5k ZXJlZAotIAotIAotLWRlZiBwZXA0NDBfc3BsaXRfcG9zdCh2ZXIpOgotK2RlZiBwZXA0NDBfc3Bs aXRfcG9zdCh2ZXI6IHN0cikgLT4gVHVwbGVbc3RyLCBPcHRpb25hbFtpbnRdXToKLSAgICAgIiIi U3BsaXQgcGVwNDQwIHZlcnNpb24gc3RyaW5nIGF0IHRoZSBwb3N0LXJlbGVhc2Ugc2VnbWVudC4K LSAKLSAgICAgUmV0dXJucyB0aGUgcmVsZWFzZSBzZWdtZW50cyBiZWZvcmUgdGhlIHBvc3QtcmVs ZWFzZSBhbmQgdGhlCi1AQCAtMTQ2MSw3ICsxNjA4LDcgQEAgZGVmIHBlcDQ0MF9zcGxpdF9wb3N0 KHZlcik6Ci0gICAgIHJldHVybiB2Y1swXSwgaW50KHZjWzFdIG9yIDApIGlmIGxlbih2YykgPT0g MiBlbHNlIE5vbmUKLSAKLSAKLS1kZWYgcmVuZGVyX3BlcDQ0MF9wcmUocGllY2VzKToKLStkZWYg cmVuZGVyX3BlcDQ0MF9wcmUocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3RyOgotICAgICAi IiJUQUdbLnBvc3ROLmRldkRJU1RBTkNFXSAtLSBObyAtZGlydHkuCi0gCi0gICAgIEV4Y2VwdGlv bnM6Ci1AQCAtMTQ3Myw3ICsxNjIwLDcgQEAgZGVmIHJlbmRlcl9wZXA0NDBfcHJlKHBpZWNlcyk6 Ci0gICAgICAgICAgICAgdGFnX3ZlcnNpb24sIHBvc3RfdmVyc2lvbiA9IHBlcDQ0MF9zcGxpdF9w b3N0KHBpZWNlc1siY2xvc2VzdC10YWciXSkKLSAgICAgICAgICAgICByZW5kZXJlZCA9IHRhZ192 ZXJzaW9uCi0gICAgICAgICAgICAgaWYgcG9zdF92ZXJzaW9uIGlzIG5vdCBOb25lOgotLSAgICAg ICAgICAgICAgICByZW5kZXJlZCArPSAiLnBvc3QlZC5kZXYlZCIgJSAocG9zdF92ZXJzaW9uKzEs IHBpZWNlc1siZGlzdGFuY2UiXSkKLSsgICAgICAgICAgICAgICAgcmVuZGVyZWQgKz0gIi5wb3N0 JWQuZGV2JWQiICUgKHBvc3RfdmVyc2lvbiArIDEsIHBpZWNlc1siZGlzdGFuY2UiXSkKLSAgICAg ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICByZW5kZXJlZCArPSAiLnBvc3QwLmRldiVk IiAlIChwaWVjZXNbImRpc3RhbmNlIl0pCi0gICAgICAgICBlbHNlOgotQEAgLTE0ODUsNyArMTYz Miw3IEBAIGRlZiByZW5kZXJfcGVwNDQwX3ByZShwaWVjZXMpOgotICAgICByZXR1cm4gcmVuZGVy ZWQKLSAKLSAKLS1kZWYgcmVuZGVyX3BlcDQ0MF9wb3N0KHBpZWNlcyk6Ci0rZGVmIHJlbmRlcl9w ZXA0NDBfcG9zdChwaWVjZXM6IERpY3Rbc3RyLCBBbnldKSAtPiBzdHI6Ci0gICAgICIiIlRBR1su cG9zdERJU1RBTkNFWy5kZXYwXStnSEVYXSAuCi0gCi0gICAgIFRoZSAiLmRldjAiIG1lYW5zIGRp cnR5LiBOb3RlIHRoYXQgLmRldjAgc29ydHMgYmFja3dhcmRzCi1AQCAtMTUxMiw3ICsxNjU5LDcg QEAgZGVmIHJlbmRlcl9wZXA0NDBfcG9zdChwaWVjZXMpOgotICAgICByZXR1cm4gcmVuZGVyZWQK LSAKLSAKLS1kZWYgcmVuZGVyX3BlcDQ0MF9wb3N0X2JyYW5jaChwaWVjZXMpOgotK2RlZiByZW5k ZXJfcGVwNDQwX3Bvc3RfYnJhbmNoKHBpZWNlczogRGljdFtzdHIsIEFueV0pIC0+IHN0cjoKLSAg ICAgIiIiVEFHWy5wb3N0RElTVEFOQ0VbLmRldjBdK2dIRVhbLmRpcnR5XV0gLgotIAotICAgICBU aGUgIi5kZXYwIiBtZWFucyBub3QgbWFzdGVyIGJyYW5jaC4KLUBAIC0xNTQxLDcgKzE2ODgsNyBA QCBkZWYgcmVuZGVyX3BlcDQ0MF9wb3N0X2JyYW5jaChwaWVjZXMpOgotICAgICByZXR1cm4gcmVu ZGVyZWQKLSAKLSAKLS1kZWYgcmVuZGVyX3BlcDQ0MF9vbGQocGllY2VzKToKLStkZWYgcmVuZGVy X3BlcDQ0MF9vbGQocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3RyOgotICAgICAiIiJUQUdb LnBvc3RESVNUQU5DRVsuZGV2MF1dIC4KLSAKLSAgICAgVGhlICIuZGV2MCIgbWVhbnMgZGlydHku Ci1AQCAtMTU2Myw3ICsxNzEwLDcgQEAgZGVmIHJlbmRlcl9wZXA0NDBfb2xkKHBpZWNlcyk6Ci0g ICAgIHJldHVybiByZW5kZXJlZAotIAotIAotLWRlZiByZW5kZXJfZ2l0X2Rlc2NyaWJlKHBpZWNl cyk6Ci0rZGVmIHJlbmRlcl9naXRfZGVzY3JpYmUocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4g c3RyOgotICAgICAiIiJUQUdbLURJU1RBTkNFLWdIRVhdWy1kaXJ0eV0uCi0gCi0gICAgIExpa2Ug J2dpdCBkZXNjcmliZSAtLXRhZ3MgLS1kaXJ0eSAtLWFsd2F5cycuCi1AQCAtMTU4Myw3ICsxNzMw LDcgQEAgZGVmIHJlbmRlcl9naXRfZGVzY3JpYmUocGllY2VzKToKLSAgICAgcmV0dXJuIHJlbmRl cmVkCi0gCi0gCi0tZGVmIHJlbmRlcl9naXRfZGVzY3JpYmVfbG9uZyhwaWVjZXMpOgotK2RlZiBy ZW5kZXJfZ2l0X2Rlc2NyaWJlX2xvbmcocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3RyOgot ICAgICAiIiJUQUctRElTVEFOQ0UtZ0hFWFstZGlydHldLgotIAotICAgICBMaWtlICdnaXQgZGVz Y3JpYmUgLS10YWdzIC0tZGlydHkgLS1hbHdheXMgLWxvbmcnLgotQEAgLTE2MDMsNyArMTc1MCw3 IEBAIGRlZiByZW5kZXJfZ2l0X2Rlc2NyaWJlX2xvbmcocGllY2VzKToKLSAgICAgcmV0dXJuIHJl bmRlcmVkCi0gCi0gCi0tZGVmIHJlbmRlcihwaWVjZXMsIHN0eWxlKToKLStkZWYgcmVuZGVyKHBp ZWNlczogRGljdFtzdHIsIEFueV0sIHN0eWxlOiBzdHIpIC0+IERpY3Rbc3RyLCBBbnldOgotICAg ICAiIiJSZW5kZXIgdGhlIGdpdmVuIHZlcnNpb24gcGllY2VzIGludG8gdGhlIHJlcXVlc3RlZCBz dHlsZS4iIiIKLSAgICAgaWYgcGllY2VzWyJlcnJvciJdOgotICAgICAgICAgcmV0dXJuIHsidmVy c2lvbiI6ICJ1bmtub3duIiwKLUBAIC0xNjQzLDcgKzE3OTAsNyBAQCBjbGFzcyBWZXJzaW9uZWVy QmFkUm9vdEVycm9yKEV4Y2VwdGlvbik6Ci0gICAgICIiIlRoZSBwcm9qZWN0IHJvb3QgZGlyZWN0 b3J5IGlzIHVua25vd24gb3IgbWlzc2luZyBrZXkgZmlsZXMuIiIiCi0gCi0gCi0tZGVmIGdldF92 ZXJzaW9ucyh2ZXJib3NlPUZhbHNlKToKLStkZWYgZ2V0X3ZlcnNpb25zKHZlcmJvc2U6IGJvb2wg PSBGYWxzZSkgLT4gRGljdFtzdHIsIEFueV06Ci0gICAgICIiIkdldCB0aGUgcHJvamVjdCB2ZXJz aW9uIGZyb20gd2hhdGV2ZXIgc291cmNlIGlzIGF2YWlsYWJsZS4KLSAKLSAgICAgUmV0dXJucyBk aWN0IHdpdGggdHdvIGtleXM6ICd2ZXJzaW9uJyBhbmQgJ2Z1bGwnLgotQEAgLTE2NTgsNyArMTgw NSw3IEBAIGRlZiBnZXRfdmVyc2lvbnModmVyYm9zZT1GYWxzZSk6Ci0gICAgIGFzc2VydCBjZmcu VkNTIGlzIG5vdCBOb25lLCAicGxlYXNlIHNldCBbdmVyc2lvbmVlcl1WQ1M9IGluIHNldHVwLmNm ZyIKLSAgICAgaGFuZGxlcnMgPSBIQU5ETEVSUy5nZXQoY2ZnLlZDUykKLSAgICAgYXNzZXJ0IGhh bmRsZXJzLCAidW5yZWNvZ25pemVkIFZDUyAnJXMnIiAlIGNmZy5WQ1MKLS0gICAgdmVyYm9zZSA9 IHZlcmJvc2Ugb3IgY2ZnLnZlcmJvc2UKLSsgICAgdmVyYm9zZSA9IHZlcmJvc2Ugb3IgYm9vbChj ZmcudmVyYm9zZSkgICMgYGJvb2woKWAgdXNlZCB0byBhdm9pZCBgTm9uZWAKLSAgICAgYXNzZXJ0 IGNmZy52ZXJzaW9uZmlsZV9zb3VyY2UgaXMgbm90IE5vbmUsIFwKLSAgICAgICAgICJwbGVhc2Ug c2V0IHZlcnNpb25lZXIudmVyc2lvbmZpbGVfc291cmNlIgotICAgICBhc3NlcnQgY2ZnLnRhZ19w cmVmaXggaXMgbm90IE5vbmUsICJwbGVhc2Ugc2V0IHZlcnNpb25lZXIudGFnX3ByZWZpeCIKLUBA IC0xNzE5LDEzICsxODY2LDEzIEBAIGRlZiBnZXRfdmVyc2lvbnModmVyYm9zZT1GYWxzZSk6Ci0g ICAgICAgICAgICAgImRhdGUiOiBOb25lfQotIAotIAotLWRlZiBnZXRfdmVyc2lvbigpOgotK2Rl ZiBnZXRfdmVyc2lvbigpIC0+IHN0cjoKLSAgICAgIiIiR2V0IHRoZSBzaG9ydCB2ZXJzaW9uIHN0 cmluZyBmb3IgdGhpcyBwcm9qZWN0LiIiIgotICAgICByZXR1cm4gZ2V0X3ZlcnNpb25zKClbInZl cnNpb24iXQotIAotIAotLWRlZiBnZXRfY21kY2xhc3MoY21kY2xhc3M9Tm9uZSk6Ci0tICAgICIi IkdldCB0aGUgY3VzdG9tIHNldHVwdG9vbHMvZGlzdHV0aWxzIHN1YmNsYXNzZXMgdXNlZCBieSBW ZXJzaW9uZWVyLgotK2RlZiBnZXRfY21kY2xhc3MoY21kY2xhc3M6IE9wdGlvbmFsW0RpY3Rbc3Ry LCBBbnldXSA9IE5vbmUpOgotKyAgICAiIiJHZXQgdGhlIGN1c3RvbSBzZXR1cHRvb2xzIHN1YmNs YXNzZXMgdXNlZCBieSBWZXJzaW9uZWVyLgotIAotICAgICBJZiB0aGUgcGFja2FnZSB1c2VzIGEg ZGlmZmVyZW50IGNtZGNsYXNzIChlLmcuIG9uZSBmcm9tIG51bXB5KSwgaXQKLSAgICAgc2hvdWxk IGJlIHByb3ZpZGUgYXMgYW4gYXJndW1lbnQuCi1AQCAtMTc0NywyMSArMTg5NCwyMSBAQCBkZWYg Z2V0X2NtZGNsYXNzKGNtZGNsYXNzPU5vbmUpOgotIAotICAgICBjbWRzID0ge30gaWYgY21kY2xh c3MgaXMgTm9uZSBlbHNlIGNtZGNsYXNzLmNvcHkoKQotIAotLSAgICAjIHdlIGFkZCAidmVyc2lv biIgdG8gYm90aCBkaXN0dXRpbHMgYW5kIHNldHVwdG9vbHMKLS0gICAgZnJvbSBkaXN0dXRpbHMu Y29yZSBpbXBvcnQgQ29tbWFuZAotKyAgICAjIHdlIGFkZCAidmVyc2lvbiIgdG8gc2V0dXB0b29s cwotKyAgICBmcm9tIHNldHVwdG9vbHMgaW1wb3J0IENvbW1hbmQKLSAKLSAgICAgY2xhc3MgY21k X3ZlcnNpb24oQ29tbWFuZCk6Ci0gICAgICAgICBkZXNjcmlwdGlvbiA9ICJyZXBvcnQgZ2VuZXJh dGVkIHZlcnNpb24gc3RyaW5nIgotLSAgICAgICAgdXNlcl9vcHRpb25zID0gW10KLS0gICAgICAg IGJvb2xlYW5fb3B0aW9ucyA9IFtdCi0rICAgICAgICB1c2VyX29wdGlvbnM6IExpc3RbVHVwbGVb c3RyLCBzdHIsIHN0cl1dID0gW10KLSsgICAgICAgIGJvb2xlYW5fb3B0aW9uczogTGlzdFtzdHJd ID0gW10KLSAKLS0gICAgICAgIGRlZiBpbml0aWFsaXplX29wdGlvbnMoc2VsZik6Ci0rICAgICAg ICBkZWYgaW5pdGlhbGl6ZV9vcHRpb25zKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgICAgICAgcGFz cwotIAotLSAgICAgICAgZGVmIGZpbmFsaXplX29wdGlvbnMoc2VsZik6Ci0rICAgICAgICBkZWYg ZmluYWxpemVfb3B0aW9ucyhzZWxmKSAtPiBOb25lOgotICAgICAgICAgICAgIHBhc3MKLSAKLS0g ICAgICAgIGRlZiBydW4oc2VsZik6Ci0rICAgICAgICBkZWYgcnVuKHNlbGYpIC0+IE5vbmU6Ci0g ICAgICAgICAgICAgdmVycyA9IGdldF92ZXJzaW9ucyh2ZXJib3NlPVRydWUpCi0gICAgICAgICAg ICAgcHJpbnQoIlZlcnNpb246ICVzIiAlIHZlcnNbInZlcnNpb24iXSkKLSAgICAgICAgICAgICBw cmludCgiIGZ1bGwtcmV2aXNpb25pZDogJXMiICUgdmVycy5nZXQoImZ1bGwtcmV2aXNpb25pZCIp KQotQEAgLTE3NzEsNyArMTkxOCw3IEBAIGRlZiBnZXRfY21kY2xhc3MoY21kY2xhc3M9Tm9uZSk6 Ci0gICAgICAgICAgICAgICAgIHByaW50KCIgZXJyb3I6ICVzIiAlIHZlcnNbImVycm9yIl0pCi0g ICAgIGNtZHNbInZlcnNpb24iXSA9IGNtZF92ZXJzaW9uCi0gCi0tICAgICMgd2Ugb3ZlcnJpZGUg ImJ1aWxkX3B5IiBpbiBib3RoIGRpc3R1dGlscyBhbmQgc2V0dXB0b29scwotKyAgICAjIHdlIG92 ZXJyaWRlICJidWlsZF9weSIgaW4gc2V0dXB0b29scwotICAgICAjCi0gICAgICMgbW9zdCBpbnZv Y2F0aW9uIHBhdGh3YXlzIGVuZCB1cCBydW5uaW5nIGJ1aWxkX3B5OgotICAgICAjICBkaXN0dXRp bHMvYnVpbGQgLT4gYnVpbGRfcHkKLUBAIC0xNzg2LDIwICsxOTMzLDI1IEBAIGRlZiBnZXRfY21k Y2xhc3MoY21kY2xhc3M9Tm9uZSk6Ci0gICAgICMgICB0aGVuIGRvZXMgc2V0dXAucHkgYmRpc3Rf d2hlZWwsIG9yIHNvbWV0aW1lcyBzZXR1cC5weSBpbnN0YWxsCi0gICAgICMgIHNldHVwLnB5IGVn Z19pbmZvIC0+ID8KLSAKLSsgICAgIyBwaXAgaW5zdGFsbCAtZSAuIGFuZCBzZXR1cHRvb2wvZWRp dGFibGVfd2hlZWwgd2lsbCBpbnZva2UgYnVpbGRfcHkKLSsgICAgIyBidXQgdGhlIGJ1aWxkX3B5 IGNvbW1hbmQgaXMgbm90IGV4cGVjdGVkIHRvIGNvcHkgYW55IGZpbGVzLgotKwotICAgICAjIHdl IG92ZXJyaWRlIGRpZmZlcmVudCAiYnVpbGRfcHkiIGNvbW1hbmRzIGZvciBib3RoIGVudmlyb25t ZW50cwotICAgICBpZiAnYnVpbGRfcHknIGluIGNtZHM6Ci0tICAgICAgICBfYnVpbGRfcHkgPSBj bWRzWydidWlsZF9weSddCi0tICAgIGVsaWYgInNldHVwdG9vbHMiIGluIHN5cy5tb2R1bGVzOgot LSAgICAgICAgZnJvbSBzZXR1cHRvb2xzLmNvbW1hbmQuYnVpbGRfcHkgaW1wb3J0IGJ1aWxkX3B5 IGFzIF9idWlsZF9weQotKyAgICAgICAgX2J1aWxkX3B5OiBBbnkgPSBjbWRzWydidWlsZF9weSdd Ci0gICAgIGVsc2U6Ci0tICAgICAgICBmcm9tIGRpc3R1dGlscy5jb21tYW5kLmJ1aWxkX3B5IGlt cG9ydCBidWlsZF9weSBhcyBfYnVpbGRfcHkKLSsgICAgICAgIGZyb20gc2V0dXB0b29scy5jb21t YW5kLmJ1aWxkX3B5IGltcG9ydCBidWlsZF9weSBhcyBfYnVpbGRfcHkKLSAKLSAgICAgY2xhc3Mg Y21kX2J1aWxkX3B5KF9idWlsZF9weSk6Ci0tICAgICAgICBkZWYgcnVuKHNlbGYpOgotKyAgICAg ICAgZGVmIHJ1bihzZWxmKSAtPiBOb25lOgotICAgICAgICAgICAgIHJvb3QgPSBnZXRfcm9vdCgp Ci0gICAgICAgICAgICAgY2ZnID0gZ2V0X2NvbmZpZ19mcm9tX3Jvb3Qocm9vdCkKLSAgICAgICAg ICAgICB2ZXJzaW9ucyA9IGdldF92ZXJzaW9ucygpCi0gICAgICAgICAgICAgX2J1aWxkX3B5LnJ1 bihzZWxmKQotKyAgICAgICAgICAgIGlmIGdldGF0dHIoc2VsZiwgImVkaXRhYmxlX21vZGUiLCBG YWxzZSk6Ci0rICAgICAgICAgICAgICAgICMgRHVyaW5nIGVkaXRhYmxlIGluc3RhbGxzIGAucHlg IGFuZCBkYXRhIGZpbGVzIGFyZQotKyAgICAgICAgICAgICAgICAjIG5vdCBjb3BpZWQgdG8gYnVp bGRfbGliCi0rICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgICMgbm93IGxvY2F0 ZSBfdmVyc2lvbi5weSBpbiB0aGUgbmV3IGJ1aWxkLyBkaXJlY3RvcnkgYW5kIHJlcGxhY2UKLSAg ICAgICAgICAgICAjIGl0IHdpdGggYW4gdXBkYXRlZCB2YWx1ZQotICAgICAgICAgICAgIGlmIGNm Zy52ZXJzaW9uZmlsZV9idWlsZDoKLUBAIC0xODEwLDE0ICsxOTYyLDEyIEBAIGRlZiBnZXRfY21k Y2xhc3MoY21kY2xhc3M9Tm9uZSk6Ci0gICAgIGNtZHNbImJ1aWxkX3B5Il0gPSBjbWRfYnVpbGRf cHkKLSAKLSAgICAgaWYgJ2J1aWxkX2V4dCcgaW4gY21kczoKLS0gICAgICAgIF9idWlsZF9leHQg PSBjbWRzWydidWlsZF9leHQnXQotLSAgICBlbGlmICJzZXR1cHRvb2xzIiBpbiBzeXMubW9kdWxl czoKLS0gICAgICAgIGZyb20gc2V0dXB0b29scy5jb21tYW5kLmJ1aWxkX2V4dCBpbXBvcnQgYnVp bGRfZXh0IGFzIF9idWlsZF9leHQKLSsgICAgICAgIF9idWlsZF9leHQ6IEFueSA9IGNtZHNbJ2J1 aWxkX2V4dCddCi0gICAgIGVsc2U6Ci0tICAgICAgICBmcm9tIGRpc3R1dGlscy5jb21tYW5kLmJ1 aWxkX2V4dCBpbXBvcnQgYnVpbGRfZXh0IGFzIF9idWlsZF9leHQKLSsgICAgICAgIGZyb20gc2V0 dXB0b29scy5jb21tYW5kLmJ1aWxkX2V4dCBpbXBvcnQgYnVpbGRfZXh0IGFzIF9idWlsZF9leHQK LSAKLSAgICAgY2xhc3MgY21kX2J1aWxkX2V4dChfYnVpbGRfZXh0KToKLS0gICAgICAgIGRlZiBy dW4oc2VsZik6Ci0rICAgICAgICBkZWYgcnVuKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgICAgICAg cm9vdCA9IGdldF9yb290KCkKLSAgICAgICAgICAgICBjZmcgPSBnZXRfY29uZmlnX2Zyb21fcm9v dChyb290KQotICAgICAgICAgICAgIHZlcnNpb25zID0gZ2V0X3ZlcnNpb25zKCkKLUBAIC0xODMw LDE0ICsxOTgwLDIxIEBAIGRlZiBnZXRfY21kY2xhc3MoY21kY2xhc3M9Tm9uZSk6Ci0gICAgICAg ICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgICMgbm93IGxvY2F0ZSBfdmVyc2lvbi5weSBp biB0aGUgbmV3IGJ1aWxkLyBkaXJlY3RvcnkgYW5kIHJlcGxhY2UKLSAgICAgICAgICAgICAjIGl0 IHdpdGggYW4gdXBkYXRlZCB2YWx1ZQotKyAgICAgICAgICAgIGlmIG5vdCBjZmcudmVyc2lvbmZp bGVfYnVpbGQ6Ci0rICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgIHRhcmdldF92 ZXJzaW9uZmlsZSA9IG9zLnBhdGguam9pbihzZWxmLmJ1aWxkX2xpYiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ZnLnZlcnNpb25maWxlX2J1aWxkKQot KyAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyh0YXJnZXRfdmVyc2lvbmZpbGUpOgot KyAgICAgICAgICAgICAgICBwcmludChmIldhcm5pbmc6IHt0YXJnZXRfdmVyc2lvbmZpbGV9IGRv ZXMgbm90IGV4aXN0LCBza2lwcGluZyAiCi0rICAgICAgICAgICAgICAgICAgICAgICJ2ZXJzaW9u IHVwZGF0ZS4gVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSBhcmUgcnVubmluZyBidWlsZF9leHQgIgot KyAgICAgICAgICAgICAgICAgICAgICAid2l0aG91dCBmaXJzdCBydW5uaW5nIGJ1aWxkX3B5LiIp Ci0rICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgIHByaW50KCJVUERBVElORyAl cyIgJSB0YXJnZXRfdmVyc2lvbmZpbGUpCi0gICAgICAgICAgICAgd3JpdGVfdG9fdmVyc2lvbl9m aWxlKHRhcmdldF92ZXJzaW9uZmlsZSwgdmVyc2lvbnMpCi0gICAgIGNtZHNbImJ1aWxkX2V4dCJd ID0gY21kX2J1aWxkX2V4dAotIAotICAgICBpZiAiY3hfRnJlZXplIiBpbiBzeXMubW9kdWxlczog ICMgY3hfZnJlZXplIGVuYWJsZWQ/Ci0tICAgICAgICBmcm9tIGN4X0ZyZWV6ZS5kaXN0IGltcG9y dCBidWlsZF9leGUgYXMgX2J1aWxkX2V4ZQotKyAgICAgICAgZnJvbSBjeF9GcmVlemUuZGlzdCBp bXBvcnQgYnVpbGRfZXhlIGFzIF9idWlsZF9leGUgICMgdHlwZTogaWdub3JlCi0gICAgICAgICAj IG5jemVjenVsaW4gcmVwb3J0cyB0aGF0IHB5MmV4ZSB3b24ndCBsaWtlIHRoZSBwZXA0NDAtc3R5 bGUgc3RyaW5nCi0gICAgICAgICAjIGFzIEZJTEVWRVJTSU9OLCBidXQgaXQgY2FuIGJlIHVzZWQg Zm9yIFBST0RVQ1RWRVJTSU9OLCBlLmcuCi0gICAgICAgICAjIHNldHVwKGNvbnNvbGU9W3sKLUBA IC0xODQ2LDcgKzIwMDMsNyBAQCBkZWYgZ2V0X2NtZGNsYXNzKGNtZGNsYXNzPU5vbmUpOgotICAg ICAgICAgIyAgIC4uLgotIAotICAgICAgICAgY2xhc3MgY21kX2J1aWxkX2V4ZShfYnVpbGRfZXhl KToKLS0gICAgICAgICAgICBkZWYgcnVuKHNlbGYpOgotKyAgICAgICAgICAgIGRlZiBydW4oc2Vs ZikgLT4gTm9uZToKLSAgICAgICAgICAgICAgICAgcm9vdCA9IGdldF9yb290KCkKLSAgICAgICAg ICAgICAgICAgY2ZnID0gZ2V0X2NvbmZpZ19mcm9tX3Jvb3Qocm9vdCkKLSAgICAgICAgICAgICAg ICAgdmVyc2lvbnMgPSBnZXRfdmVyc2lvbnMoKQotQEAgLTE4NjksMTAgKzIwMjYsMTMgQEAgZGVm IGdldF9jbWRjbGFzcyhjbWRjbGFzcz1Ob25lKToKLSAgICAgICAgIGRlbCBjbWRzWyJidWlsZF9w eSJdCi0gCi0gICAgIGlmICdweTJleGUnIGluIHN5cy5tb2R1bGVzOiAgIyBweTJleGUgZW5hYmxl ZD8KLS0gICAgICAgIGZyb20gcHkyZXhlLmRpc3R1dGlsc19idWlsZGV4ZSBpbXBvcnQgcHkyZXhl IGFzIF9weTJleGUKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICBmcm9tIHB5MmV4ZS5zZXR1 cHRvb2xzX2J1aWxkZXhlIGltcG9ydCBweTJleGUgYXMgX3B5MmV4ZSAgIyB0eXBlOiBpZ25vcmUK LSsgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSsgICAgICAgICAgICBmcm9tIHB5MmV4ZS5k aXN0dXRpbHNfYnVpbGRleGUgaW1wb3J0IHB5MmV4ZSBhcyBfcHkyZXhlICAjIHR5cGU6IGlnbm9y ZQotIAotICAgICAgICAgY2xhc3MgY21kX3B5MmV4ZShfcHkyZXhlKToKLS0gICAgICAgICAgICBk ZWYgcnVuKHNlbGYpOgotKyAgICAgICAgICAgIGRlZiBydW4oc2VsZikgLT4gTm9uZToKLSAgICAg ICAgICAgICAgICAgcm9vdCA9IGdldF9yb290KCkKLSAgICAgICAgICAgICAgICAgY2ZnID0gZ2V0 X2NvbmZpZ19mcm9tX3Jvb3Qocm9vdCkKLSAgICAgICAgICAgICAgICAgdmVyc2lvbnMgPSBnZXRf dmVyc2lvbnMoKQotQEAgLTE4OTMsMTYgKzIwNTMsNTEgQEAgZGVmIGdldF9jbWRjbGFzcyhjbWRj bGFzcz1Ob25lKToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICBj bWRzWyJweTJleGUiXSA9IGNtZF9weTJleGUKLSAKLSsgICAgIyBzZGlzdCBmYXJtcyBpdHMgZmls ZSBsaXN0IGJ1aWxkaW5nIG91dCB0byBlZ2dfaW5mbwotKyAgICBpZiAnZWdnX2luZm8nIGluIGNt ZHM6Ci0rICAgICAgICBfZWdnX2luZm86IEFueSA9IGNtZHNbJ2VnZ19pbmZvJ10KLSsgICAgZWxz ZToKLSsgICAgICAgIGZyb20gc2V0dXB0b29scy5jb21tYW5kLmVnZ19pbmZvIGltcG9ydCBlZ2df aW5mbyBhcyBfZWdnX2luZm8KLSsKLSsgICAgY2xhc3MgY21kX2VnZ19pbmZvKF9lZ2dfaW5mbyk6 Ci0rICAgICAgICBkZWYgZmluZF9zb3VyY2VzKHNlbGYpIC0+IE5vbmU6Ci0rICAgICAgICAgICAg IyBlZ2dfaW5mby5maW5kX3NvdXJjZXMgYnVpbGRzIHRoZSBtYW5pZmVzdCBsaXN0IGFuZCB3cml0 ZXMgaXQKLSsgICAgICAgICAgICAjIGluIG9uZSBzaG90Ci0rICAgICAgICAgICAgc3VwZXIoKS5m aW5kX3NvdXJjZXMoKQotKwotKyAgICAgICAgICAgICMgTW9kaWZ5IHRoZSBmaWxlbGlzdCBhbmQg bm9ybWFsaXplIGl0Ci0rICAgICAgICAgICAgcm9vdCA9IGdldF9yb290KCkKLSsgICAgICAgICAg ICBjZmcgPSBnZXRfY29uZmlnX2Zyb21fcm9vdChyb290KQotKyAgICAgICAgICAgIHNlbGYuZmls ZWxpc3QuYXBwZW5kKCd2ZXJzaW9uZWVyLnB5JykKLSsgICAgICAgICAgICBpZiBjZmcudmVyc2lv bmZpbGVfc291cmNlOgotKyAgICAgICAgICAgICAgICAjIFRoZXJlIGFyZSByYXJlIGNhc2VzIHdo ZXJlIHZlcnNpb25maWxlX3NvdXJjZSBtaWdodCBub3QgYmUKLSsgICAgICAgICAgICAgICAgIyBp bmNsdWRlZCBieSBkZWZhdWx0LCBzbyB3ZSBtdXN0IGJlIGV4cGxpY2l0Ci0rICAgICAgICAgICAg ICAgIHNlbGYuZmlsZWxpc3QuYXBwZW5kKGNmZy52ZXJzaW9uZmlsZV9zb3VyY2UpCi0rICAgICAg ICAgICAgc2VsZi5maWxlbGlzdC5zb3J0KCkKLSsgICAgICAgICAgICBzZWxmLmZpbGVsaXN0LnJl bW92ZV9kdXBsaWNhdGVzKCkKLSsKLSsgICAgICAgICAgICAjIFRoZSB3cml0ZSBtZXRob2QgaXMg aGlkZGVuIGluIHRoZSBtYW5pZmVzdF9tYWtlciBpbnN0YW5jZSB0aGF0Ci0rICAgICAgICAgICAg IyBnZW5lcmF0ZWQgdGhlIGZpbGVsaXN0IGFuZCB3YXMgdGhyb3duIGF3YXkKLSsgICAgICAgICAg ICAjIFdlIHdpbGwgaW5zdGVhZCByZXBsaWNhdGUgdGhlaXIgZmluYWwgbm9ybWFsaXphdGlvbiAo dG8gdW5pY29kZSwKLSsgICAgICAgICAgICAjIGFuZCBQT1NJWC1zdHlsZSBwYXRocykKLSsgICAg ICAgICAgICBmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHVuaWNvZGVfdXRpbHMKLSsgICAgICAgICAg ICBub3JtYWxpemVkID0gW3VuaWNvZGVfdXRpbHMuZmlsZXN5c19kZWNvZGUoZikucmVwbGFjZShv cy5zZXAsICcvJykKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBmIGluIHNlbGYuZmls ZWxpc3QuZmlsZXNdCi0rCi0rICAgICAgICAgICAgbWFuaWZlc3RfZmlsZW5hbWUgPSBvcy5wYXRo LmpvaW4oc2VsZi5lZ2dfaW5mbywgJ1NPVVJDRVMudHh0JykKLSsgICAgICAgICAgICB3aXRoIG9w ZW4obWFuaWZlc3RfZmlsZW5hbWUsICd3JykgYXMgZm9iajoKLSsgICAgICAgICAgICAgICAgZm9i ai53cml0ZSgnXG4nLmpvaW4obm9ybWFsaXplZCkpCi0rCi0rICAgIGNtZHNbJ2VnZ19pbmZvJ10g PSBjbWRfZWdnX2luZm8KLSsKLSAgICAgIyB3ZSBvdmVycmlkZSBkaWZmZXJlbnQgInNkaXN0IiBj b21tYW5kcyBmb3IgYm90aCBlbnZpcm9ubWVudHMKLSAgICAgaWYgJ3NkaXN0JyBpbiBjbWRzOgot LSAgICAgICAgX3NkaXN0ID0gY21kc1snc2Rpc3QnXQotLSAgICBlbGlmICJzZXR1cHRvb2xzIiBp biBzeXMubW9kdWxlczoKLS0gICAgICAgIGZyb20gc2V0dXB0b29scy5jb21tYW5kLnNkaXN0IGlt cG9ydCBzZGlzdCBhcyBfc2Rpc3QKLSsgICAgICAgIF9zZGlzdDogQW55ID0gY21kc1snc2Rpc3Qn XQotICAgICBlbHNlOgotLSAgICAgICAgZnJvbSBkaXN0dXRpbHMuY29tbWFuZC5zZGlzdCBpbXBv cnQgc2Rpc3QgYXMgX3NkaXN0Ci0rICAgICAgICBmcm9tIHNldHVwdG9vbHMuY29tbWFuZC5zZGlz dCBpbXBvcnQgc2Rpc3QgYXMgX3NkaXN0Ci0gCi0gICAgIGNsYXNzIGNtZF9zZGlzdChfc2Rpc3Qp OgotLSAgICAgICAgZGVmIHJ1bihzZWxmKToKLSsgICAgICAgIGRlZiBydW4oc2VsZikgLT4gTm9u ZToKLSAgICAgICAgICAgICB2ZXJzaW9ucyA9IGdldF92ZXJzaW9ucygpCi0gICAgICAgICAgICAg c2VsZi5fdmVyc2lvbmVlcl9nZW5lcmF0ZWRfdmVyc2lvbnMgPSB2ZXJzaW9ucwotICAgICAgICAg ICAgICMgdW5sZXNzIHdlIHVwZGF0ZSB0aGlzLCB0aGUgY29tbWFuZCB3aWxsIGtlZXAgdXNpbmcg dGhlIG9sZAotQEAgLTE5MTAsNyArMjEwNSw3IEBAIGRlZiBnZXRfY21kY2xhc3MoY21kY2xhc3M9 Tm9uZSk6Ci0gICAgICAgICAgICAgc2VsZi5kaXN0cmlidXRpb24ubWV0YWRhdGEudmVyc2lvbiA9 IHZlcnNpb25zWyJ2ZXJzaW9uIl0KLSAgICAgICAgICAgICByZXR1cm4gX3NkaXN0LnJ1bihzZWxm KQotIAotLSAgICAgICAgZGVmIG1ha2VfcmVsZWFzZV90cmVlKHNlbGYsIGJhc2VfZGlyLCBmaWxl cyk6Ci0rICAgICAgICBkZWYgbWFrZV9yZWxlYXNlX3RyZWUoc2VsZiwgYmFzZV9kaXI6IHN0ciwg ZmlsZXM6IExpc3Rbc3RyXSkgLT4gTm9uZToKLSAgICAgICAgICAgICByb290ID0gZ2V0X3Jvb3Qo KQotICAgICAgICAgICAgIGNmZyA9IGdldF9jb25maWdfZnJvbV9yb290KHJvb3QpCi0gICAgICAg ICAgICAgX3NkaXN0Lm1ha2VfcmVsZWFzZV90cmVlKHNlbGYsIGJhc2VfZGlyLCBmaWxlcykKLUBA IC0xOTc1LDcgKzIxNzAsNyBAQCBfX3ZlcnNpb25fXyA9IHswfS5nZXRfdmVyc2lvbnMoKVsndmVy c2lvbiddCi0gIiIiCi0gCi0gCi0tZGVmIGRvX3NldHVwKCk6Ci0rZGVmIGRvX3NldHVwKCkgLT4g aW50OgotICAgICAiIiJEbyBtYWluIFZDUy1pbmRlcGVuZGVudCBzZXR1cCBmdW5jdGlvbiBmb3Ig aW5zdGFsbGluZyBWZXJzaW9uZWVyLiIiIgotICAgICByb290ID0gZ2V0X3Jvb3QoKQotICAgICB0 cnk6Ci1AQCAtMjAwMiw2ICsyMTk3LDcgQEAgZGVmIGRvX3NldHVwKCk6Ci0gCi0gICAgIGlweSA9 IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoY2ZnLnZlcnNpb25maWxlX3NvdXJjZSksCi0g ICAgICAgICAgICAgICAgICAgICAgICAiX19pbml0X18ucHkiKQotKyAgICBtYXliZV9pcHk6IE9w dGlvbmFsW3N0cl0gPSBpcHkKLSAgICAgaWYgb3MucGF0aC5leGlzdHMoaXB5KToKLSAgICAgICAg IHRyeToKLSAgICAgICAgICAgICB3aXRoIG9wZW4oaXB5LCAiciIpIGFzIGY6Ci1AQCAtMjAyMiw0 OCArMjIxOCwxNiBAQCBkZWYgZG9fc2V0dXAoKToKLSAgICAgICAgICAgICBwcmludCgiICVzIHVu bW9kaWZpZWQiICUgaXB5KQotICAgICBlbHNlOgotICAgICAgICAgcHJpbnQoIiAlcyBkb2Vzbid0 IGV4aXN0LCBvayIgJSBpcHkpCi0tICAgICAgICBpcHkgPSBOb25lCi0tCi0tICAgICMgTWFrZSBz dXJlIGJvdGggdGhlIHRvcC1sZXZlbCAidmVyc2lvbmVlci5weSIgYW5kIHZlcnNpb25maWxlX3Nv dXJjZQotLSAgICAjIChQS0cvX3ZlcnNpb24ucHksIHVzZWQgYnkgcnVudGltZSBjb2RlKSBhcmUg aW4gTUFOSUZFU1QuaW4sIHNvCi0tICAgICMgdGhleSdsbCBiZSBjb3BpZWQgaW50byBzb3VyY2Ug ZGlzdHJpYnV0aW9ucy4gUGlwIHdvbid0IGJlIGFibGUgdG8KLS0gICAgIyBpbnN0YWxsIHRoZSBw YWNrYWdlIHdpdGhvdXQgdGhpcy4KLS0gICAgbWFuaWZlc3RfaW4gPSBvcy5wYXRoLmpvaW4ocm9v dCwgIk1BTklGRVNULmluIikKLS0gICAgc2ltcGxlX2luY2x1ZGVzID0gc2V0KCkKLS0gICAgdHJ5 OgotLSAgICAgICAgd2l0aCBvcGVuKG1hbmlmZXN0X2luLCAiciIpIGFzIGY6Ci0tICAgICAgICAg ICAgZm9yIGxpbmUgaW4gZjoKLS0gICAgICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCJp bmNsdWRlICIpOgotLSAgICAgICAgICAgICAgICAgICAgZm9yIGluY2x1ZGUgaW4gbGluZS5zcGxp dCgpWzE6XToKLS0gICAgICAgICAgICAgICAgICAgICAgICBzaW1wbGVfaW5jbHVkZXMuYWRkKGlu Y2x1ZGUpCi0tICAgIGV4Y2VwdCBPU0Vycm9yOgotLSAgICAgICAgcGFzcwotLSAgICAjIFRoYXQg ZG9lc24ndCBjb3ZlciBldmVyeXRoaW5nIE1BTklGRVNULmluIGNhbiBkbwotLSAgICAjIChodHRw Oi8vZG9jcy5weXRob24ub3JnLzIvZGlzdHV0aWxzL3NvdXJjZWRpc3QuaHRtbCNjb21tYW5kcyks IHNvCi0tICAgICMgaXQgbWlnaHQgZ2l2ZSBzb21lIGZhbHNlIG5lZ2F0aXZlcy4gQXBwZW5kaW5n IHJlZHVuZGFudCAnaW5jbHVkZScKLS0gICAgIyBsaW5lcyBpcyBzYWZlLCB0aG91Z2guCi0tICAg IGlmICJ2ZXJzaW9uZWVyLnB5IiBub3QgaW4gc2ltcGxlX2luY2x1ZGVzOgotLSAgICAgICAgcHJp bnQoIiBhcHBlbmRpbmcgJ3ZlcnNpb25lZXIucHknIHRvIE1BTklGRVNULmluIikKLS0gICAgICAg IHdpdGggb3BlbihtYW5pZmVzdF9pbiwgImEiKSBhcyBmOgotLSAgICAgICAgICAgIGYud3JpdGUo ImluY2x1ZGUgdmVyc2lvbmVlci5weVxuIikKLS0gICAgZWxzZToKLS0gICAgICAgIHByaW50KCIg J3ZlcnNpb25lZXIucHknIGFscmVhZHkgaW4gTUFOSUZFU1QuaW4iKQotLSAgICBpZiBjZmcudmVy c2lvbmZpbGVfc291cmNlIG5vdCBpbiBzaW1wbGVfaW5jbHVkZXM6Ci0tICAgICAgICBwcmludCgi IGFwcGVuZGluZyB2ZXJzaW9uZmlsZV9zb3VyY2UgKCclcycpIHRvIE1BTklGRVNULmluIiAlCi0t ICAgICAgICAgICAgICBjZmcudmVyc2lvbmZpbGVfc291cmNlKQotLSAgICAgICAgd2l0aCBvcGVu KG1hbmlmZXN0X2luLCAiYSIpIGFzIGY6Ci0tICAgICAgICAgICAgZi53cml0ZSgiaW5jbHVkZSAl c1xuIiAlIGNmZy52ZXJzaW9uZmlsZV9zb3VyY2UpCi0tICAgIGVsc2U6Ci0tICAgICAgICBwcmlu dCgiIHZlcnNpb25maWxlX3NvdXJjZSBhbHJlYWR5IGluIE1BTklGRVNULmluIikKLSsgICAgICAg IG1heWJlX2lweSA9IE5vbmUKLSAKLSAgICAgIyBNYWtlIFZDUy1zcGVjaWZpYyBjaGFuZ2VzLiBG b3IgZ2l0LCB0aGlzIG1lYW5zIGNyZWF0aW5nL2NoYW5naW5nCi0gICAgICMgLmdpdGF0dHJpYnV0 ZXMgdG8gbWFyayBfdmVyc2lvbi5weSBmb3IgZXhwb3J0LXN1YnN0IGtleXdvcmQKLSAgICAgIyBz dWJzdGl0dXRpb24uCi0tICAgIGRvX3Zjc19pbnN0YWxsKG1hbmlmZXN0X2luLCBjZmcudmVyc2lv bmZpbGVfc291cmNlLCBpcHkpCi0rICAgIGRvX3Zjc19pbnN0YWxsKGNmZy52ZXJzaW9uZmlsZV9z b3VyY2UsIG1heWJlX2lweSkKLSAgICAgcmV0dXJuIDAKLSAKLSAKLS1kZWYgc2Nhbl9zZXR1cF9w eSgpOgotK2RlZiBzY2FuX3NldHVwX3B5KCkgLT4gaW50OgotICAgICAiIiJWYWxpZGF0ZSB0aGUg Y29udGVudHMgb2Ygc2V0dXAucHkgYWdhaW5zdCBWZXJzaW9uZWVyJ3MgZXhwZWN0YXRpb25zLiIi IgotICAgICBmb3VuZCA9IHNldCgpCi0gICAgIHNldHRlcnMgPSBGYWxzZQotQEAgLTIxMDAsMTAg KzIyNjQsMTQgQEAgZGVmIHNjYW5fc2V0dXBfcHkoKToKLSAgICAgcmV0dXJuIGVycm9ycwotIAot IAotK2RlZiBzZXR1cF9jb21tYW5kKCkgLT4gTm9SZXR1cm46Ci0rICAgICIiIlNldCB1cCBWZXJz aW9uZWVyIGFuZCBleGl0IHdpdGggYXBwcm9wcmlhdGUgZXJyb3IgY29kZS4iIiIKLSsgICAgZXJy b3JzID0gZG9fc2V0dXAoKQotKyAgICBlcnJvcnMgKz0gc2Nhbl9zZXR1cF9weSgpCi0rICAgIHN5 cy5leGl0KDEgaWYgZXJyb3JzIGVsc2UgMCkKLSsKLSsKLSBpZiBfX25hbWVfXyA9PSAiX19tYWlu X18iOgotICAgICBjbWQgPSBzeXMuYXJndlsxXQotICAgICBpZiBjbWQgPT0gInNldHVwIjoKLS0g ICAgICAgIGVycm9ycyA9IGRvX3NldHVwKCkKLS0gICAgICAgIGVycm9ycyArPSBzY2FuX3NldHVw X3B5KCkKLS0gICAgICAgIGlmIGVycm9yczoKLS0gICAgICAgICAgICBzeXMuZXhpdCgxKQotKyAg ICAgICAgc2V0dXBfY29tbWFuZCgpCi1kaWZmIC0tZ2l0IGEveG5hdDR0ZXN0cy9fdmVyc2lvbi5w eSBiL3huYXQ0dGVzdHMvX3ZlcnNpb24ucHkKLWluZGV4IDhlNDFiODAuLjNmMGFiN2IgMTAwNjQ0 Ci0tLS0gYS94bmF0NHRlc3RzL192ZXJzaW9uLnB5Ci0rKysgYi94bmF0NHRlc3RzL192ZXJzaW9u LnB5Ci1AQCAtMSwxMSArMSwxMyBAQAotKwotICMgVGhpcyBmaWxlIGhlbHBzIHRvIGNvbXB1dGUg YSB2ZXJzaW9uIG51bWJlciBpbiBzb3VyY2UgdHJlZXMgb2J0YWluZWQgZnJvbQotICMgZ2l0LWFy Y2hpdmUgdGFyYmFsbCAoc3VjaCBhcyB0aG9zZSBwcm92aWRlZCBieSBnaXRodWJzIGRvd25sb2Fk LWZyb20tdGFnCi0gIyBmZWF0dXJlKS4gRGlzdHJpYnV0aW9uIHRhcmJhbGxzIChidWlsdCBieSBz ZXR1cC5weSBzZGlzdCkgYW5kIGJ1aWxkCi0gIyBkaXJlY3RvcmllcyAocHJvZHVjZWQgYnkgc2V0 dXAucHkgYnVpbGQpIHdpbGwgY29udGFpbiBhIG11Y2ggc2hvcnRlciBmaWxlCi0gIyB0aGF0IGp1 c3QgY29udGFpbnMgdGhlIGNvbXB1dGVkIHZlcnNpb24gbnVtYmVyLgotIAotLSMgVGhpcyBmaWxl IGlzIHJlbGVhc2VkIGludG8gdGhlIHB1YmxpYyBkb21haW4uIEdlbmVyYXRlZCBieQotLSMgdmVy c2lvbmVlci0wLjIxIChodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLXZlcnNpb25lZXIvcHl0aG9u LXZlcnNpb25lZXIpCi0rIyBUaGlzIGZpbGUgaXMgcmVsZWFzZWQgaW50byB0aGUgcHVibGljIGRv bWFpbi4KLSsjIEdlbmVyYXRlZCBieSB2ZXJzaW9uZWVyLTAuMjkKLSsjIGh0dHBzOi8vZ2l0aHVi LmNvbS9weXRob24tdmVyc2lvbmVlci9weXRob24tdmVyc2lvbmVlcgotIAotICIiIkdpdCBpbXBs ZW1lbnRhdGlvbiBvZiBfdmVyc2lvbi5weS4iIiIKLSAKLUBAIC0xNCwxMCArMTYsMTEgQEAgaW1w b3J0IG9zCi0gaW1wb3J0IHJlCi0gaW1wb3J0IHN1YnByb2Nlc3MKLSBpbXBvcnQgc3lzCi0tZnJv bSB0eXBpbmcgaW1wb3J0IENhbGxhYmxlLCBEaWN0Ci0rZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwg Q2FsbGFibGUsIERpY3QsIExpc3QsIE9wdGlvbmFsLCBUdXBsZQotK2ltcG9ydCBmdW5jdG9vbHMK LSAKLSAKLS1kZWYgZ2V0X2tleXdvcmRzKCk6Ci0rZGVmIGdldF9rZXl3b3JkcygpIC0+IERpY3Rb c3RyLCBzdHJdOgotICAgICAiIiJHZXQgdGhlIGtleXdvcmRzIG5lZWRlZCB0byBsb29rIHVwIHRo ZSB2ZXJzaW9uIGluZm9ybWF0aW9uLiIiIgotICAgICAjIHRoZXNlIHN0cmluZ3Mgd2lsbCBiZSBy ZXBsYWNlZCBieSBnaXQgZHVyaW5nIGdpdC1hcmNoaXZlLgotICAgICAjIHNldHVwLnB5L3ZlcnNp b25lZXIucHkgd2lsbCBncmVwIGZvciB0aGUgdmFyaWFibGUgbmFtZXMsIHNvIHRoZXkgbXVzdAot QEAgLTMzLDE1ICszNiwyMiBAQCBkZWYgZ2V0X2tleXdvcmRzKCk6Ci0gY2xhc3MgVmVyc2lvbmVl ckNvbmZpZzoKLSAgICAgIiIiQ29udGFpbmVyIGZvciBWZXJzaW9uZWVyIGNvbmZpZ3VyYXRpb24g cGFyYW1ldGVycy4iIiIKLSAKLSsgICAgVkNTOiBzdHIKLSsgICAgc3R5bGU6IHN0cgotKyAgICB0 YWdfcHJlZml4OiBzdHIKLSsgICAgcGFyZW50ZGlyX3ByZWZpeDogc3RyCi0rICAgIHZlcnNpb25m aWxlX3NvdXJjZTogc3RyCi0rICAgIHZlcmJvc2U6IGJvb2wKLSsKLSAKLS1kZWYgZ2V0X2NvbmZp ZygpOgotK2RlZiBnZXRfY29uZmlnKCkgLT4gVmVyc2lvbmVlckNvbmZpZzoKLSAgICAgIiIiQ3Jl YXRlLCBwb3B1bGF0ZSBhbmQgcmV0dXJuIHRoZSBWZXJzaW9uZWVyQ29uZmlnKCkgb2JqZWN0LiIi IgotICAgICAjIHRoZXNlIHN0cmluZ3MgYXJlIGZpbGxlZCBpbiB3aGVuICdzZXR1cC5weSB2ZXJz aW9uZWVyJyBjcmVhdGVzCi0gICAgICMgX3ZlcnNpb24ucHkKLSAgICAgY2ZnID0gVmVyc2lvbmVl ckNvbmZpZygpCi0gICAgIGNmZy5WQ1MgPSAiZ2l0IgotICAgICBjZmcuc3R5bGUgPSAicGVwNDQw IgotLSAgICBjZmcudGFnX3ByZWZpeCA9ICIiCi0rICAgIGNmZy50YWdfcHJlZml4ID0gInYiCi0g ICAgIGNmZy5wYXJlbnRkaXJfcHJlZml4ID0gIk5vbmUiCi0gICAgIGNmZy52ZXJzaW9uZmlsZV9z b3VyY2UgPSAieG5hdDR0ZXN0cy9fdmVyc2lvbi5weSIKLSAgICAgY2ZnLnZlcmJvc2UgPSBGYWxz ZQotQEAgLTU2LDM3ICs2Niw0NiBAQCBMT05HX1ZFUlNJT05fUFk6IERpY3Rbc3RyLCBzdHJdID0g e30KLSBIQU5ETEVSUzogRGljdFtzdHIsIERpY3Rbc3RyLCBDYWxsYWJsZV1dID0ge30KLSAKLSAK LS1kZWYgcmVnaXN0ZXJfdmNzX2hhbmRsZXIodmNzLCBtZXRob2QpOiAgIyBkZWNvcmF0b3IKLStk ZWYgcmVnaXN0ZXJfdmNzX2hhbmRsZXIodmNzOiBzdHIsIG1ldGhvZDogc3RyKSAtPiBDYWxsYWJs ZTogICMgZGVjb3JhdG9yCi0gICAgICIiIkNyZWF0ZSBkZWNvcmF0b3IgdG8gbWFyayBhIG1ldGhv ZCBhcyB0aGUgaGFuZGxlciBvZiBhIFZDUy4iIiIKLS0KLS0gICAgZGVmIGRlY29yYXRlKGYpOgot KyAgICBkZWYgZGVjb3JhdGUoZjogQ2FsbGFibGUpIC0+IENhbGxhYmxlOgotICAgICAgICAgIiIi U3RvcmUgZiBpbiBIQU5ETEVSU1t2Y3NdW21ldGhvZF0uIiIiCi0gICAgICAgICBpZiB2Y3Mgbm90 IGluIEhBTkRMRVJTOgotICAgICAgICAgICAgIEhBTkRMRVJTW3Zjc10gPSB7fQotICAgICAgICAg SEFORExFUlNbdmNzXVttZXRob2RdID0gZgotICAgICAgICAgcmV0dXJuIGYKLS0KLSAgICAgcmV0 dXJuIGRlY29yYXRlCi0gCi0gCi0tZGVmIHJ1bl9jb21tYW5kKGNvbW1hbmRzLCBhcmdzLCBjd2Q9 Tm9uZSwgdmVyYm9zZT1GYWxzZSwgaGlkZV9zdGRlcnI9RmFsc2UsIGVudj1Ob25lKToKLStkZWYg cnVuX2NvbW1hbmQoCi0rICAgIGNvbW1hbmRzOiBMaXN0W3N0cl0sCi0rICAgIGFyZ3M6IExpc3Rb c3RyXSwKLSsgICAgY3dkOiBPcHRpb25hbFtzdHJdID0gTm9uZSwKLSsgICAgdmVyYm9zZTogYm9v bCA9IEZhbHNlLAotKyAgICBoaWRlX3N0ZGVycjogYm9vbCA9IEZhbHNlLAotKyAgICBlbnY6IE9w dGlvbmFsW0RpY3Rbc3RyLCBzdHJdXSA9IE5vbmUsCi0rKSAtPiBUdXBsZVtPcHRpb25hbFtzdHJd LCBPcHRpb25hbFtpbnRdXToKLSAgICAgIiIiQ2FsbCB0aGUgZ2l2ZW4gY29tbWFuZChzKS4iIiIK LSAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29tbWFuZHMsIGxpc3QpCi0gICAgIHByb2Nlc3MgPSBO b25lCi0rCi0rICAgIHBvcGVuX2t3YXJnczogRGljdFtzdHIsIEFueV0gPSB7fQotKyAgICBpZiBz eXMucGxhdGZvcm0gPT0gIndpbjMyIjoKLSsgICAgICAgICMgVGhpcyBoaWRlcyB0aGUgY29uc29s ZSB3aW5kb3cgaWYgcHl0aG9udy5leGUgaXMgdXNlZAotKyAgICAgICAgc3RhcnR1cGluZm8gPSBz dWJwcm9jZXNzLlNUQVJUVVBJTkZPKCkKLSsgICAgICAgIHN0YXJ0dXBpbmZvLmR3RmxhZ3MgfD0g c3VicHJvY2Vzcy5TVEFSVEZfVVNFU0hPV1dJTkRPVwotKyAgICAgICAgcG9wZW5fa3dhcmdzWyJz dGFydHVwaW5mbyJdID0gc3RhcnR1cGluZm8KLSsKLSAgICAgZm9yIGNvbW1hbmQgaW4gY29tbWFu ZHM6Ci0gICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgZGlzcGNtZCA9IHN0cihbY29tbWFuZF0g KyBhcmdzKQotICAgICAgICAgICAgICMgcmVtZW1iZXIgc2hlbGw9RmFsc2UsIHNvIHVzZSBnaXQu Y21kIG9uIHdpbmRvd3MsIG5vdCBqdXN0IGdpdAotLSAgICAgICAgICAgIHByb2Nlc3MgPSBzdWJw cm9jZXNzLlBvcGVuKAotLSAgICAgICAgICAgICAgICBbY29tbWFuZF0gKyBhcmdzLAotLSAgICAg ICAgICAgICAgICBjd2Q9Y3dkLAotLSAgICAgICAgICAgICAgICBlbnY9ZW52LAotLSAgICAgICAg ICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAotLSAgICAgICAgICAgICAgICBzdGRlcnI9 KHN1YnByb2Nlc3MuUElQRSBpZiBoaWRlX3N0ZGVyciBlbHNlIE5vbmUpLAotLSAgICAgICAgICAg ICkKLSsgICAgICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihbY29tbWFuZF0gKyBh cmdzLCBjd2Q9Y3dkLCBlbnY9ZW52LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RkZXJyPShzdWJwcm9jZXNzLlBJUEUgaWYgaGlkZV9zdGRlcnIKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgTm9uZSks ICoqcG9wZW5fa3dhcmdzKQotICAgICAgICAgICAgIGJyZWFrCi0tICAgICAgICBleGNlcHQgT1NF cnJvcjoKLS0gICAgICAgICAgICBlID0gc3lzLmV4Y19pbmZvKClbMV0KLSsgICAgICAgIGV4Y2Vw dCBPU0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FTk9FTlQ6 Ci0gICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgaWYgdmVyYm9zZToKLUBA IC0xMDYsNyArMTI1LDExIEBAIGRlZiBydW5fY29tbWFuZChjb21tYW5kcywgYXJncywgY3dkPU5v bmUsIHZlcmJvc2U9RmFsc2UsIGhpZGVfc3RkZXJyPUZhbHNlLCBlbnY9Ci0gICAgIHJldHVybiBz dGRvdXQsIHByb2Nlc3MucmV0dXJuY29kZQotIAotIAotLWRlZiB2ZXJzaW9uc19mcm9tX3BhcmVu dGRpcihwYXJlbnRkaXJfcHJlZml4LCByb290LCB2ZXJib3NlKToKLStkZWYgdmVyc2lvbnNfZnJv bV9wYXJlbnRkaXIoCi0rICAgIHBhcmVudGRpcl9wcmVmaXg6IHN0ciwKLSsgICAgcm9vdDogc3Ry LAotKyAgICB2ZXJib3NlOiBib29sLAotKykgLT4gRGljdFtzdHIsIEFueV06Ci0gICAgICIiIlRy eSB0byBkZXRlcm1pbmUgdGhlIHZlcnNpb24gZnJvbSB0aGUgcGFyZW50IGRpcmVjdG9yeSBuYW1l LgotIAotICAgICBTb3VyY2UgdGFyYmFsbHMgY29udmVudGlvbmFsbHkgdW5wYWNrIGludG8gYSBk aXJlY3RvcnkgdGhhdCBpbmNsdWRlcyBib3RoCi1AQCAtMTE4LDMyICsxNDEsMjYgQEAgZGVmIHZl cnNpb25zX2Zyb21fcGFyZW50ZGlyKHBhcmVudGRpcl9wcmVmaXgsIHJvb3QsIHZlcmJvc2UpOgot ICAgICBmb3IgXyBpbiByYW5nZSgzKToKLSAgICAgICAgIGRpcm5hbWUgPSBvcy5wYXRoLmJhc2Vu YW1lKHJvb3QpCi0gICAgICAgICBpZiBkaXJuYW1lLnN0YXJ0c3dpdGgocGFyZW50ZGlyX3ByZWZp eCk6Ci0tICAgICAgICAgICAgcmV0dXJuIHsKLS0gICAgICAgICAgICAgICAgInZlcnNpb24iOiBk aXJuYW1lW2xlbihwYXJlbnRkaXJfcHJlZml4KSA6XSwKLS0gICAgICAgICAgICAgICAgImZ1bGwt cmV2aXNpb25pZCI6IE5vbmUsCi0tICAgICAgICAgICAgICAgICJkaXJ0eSI6IEZhbHNlLAotLSAg ICAgICAgICAgICAgICAiZXJyb3IiOiBOb25lLAotLSAgICAgICAgICAgICAgICAiZGF0ZSI6IE5v bmUsCi0tICAgICAgICAgICAgfQotKyAgICAgICAgICAgIHJldHVybiB7InZlcnNpb24iOiBkaXJu YW1lW2xlbihwYXJlbnRkaXJfcHJlZml4KTpdLAotKyAgICAgICAgICAgICAgICAgICAgImZ1bGwt cmV2aXNpb25pZCI6IE5vbmUsCi0rICAgICAgICAgICAgICAgICAgICAiZGlydHkiOiBGYWxzZSwg ImVycm9yIjogTm9uZSwgImRhdGUiOiBOb25lfQotICAgICAgICAgcm9vdGRpcnMuYXBwZW5kKHJv b3QpCi0gICAgICAgICByb290ID0gb3MucGF0aC5kaXJuYW1lKHJvb3QpICAjIHVwIGEgbGV2ZWwK LSAKLSAgICAgaWYgdmVyYm9zZToKLS0gICAgICAgIHByaW50KAotLSAgICAgICAgICAgICJUcmll ZCBkaXJlY3RvcmllcyAlcyBidXQgbm9uZSBzdGFydGVkIHdpdGggcHJlZml4ICVzIgotLSAgICAg ICAgICAgICUgKHN0cihyb290ZGlycyksIHBhcmVudGRpcl9wcmVmaXgpCi0tICAgICAgICApCi0r ICAgICAgICBwcmludCgiVHJpZWQgZGlyZWN0b3JpZXMgJXMgYnV0IG5vbmUgc3RhcnRlZCB3aXRo IHByZWZpeCAlcyIgJQotKyAgICAgICAgICAgICAgKHN0cihyb290ZGlycyksIHBhcmVudGRpcl9w cmVmaXgpKQotICAgICByYWlzZSBOb3RUaGlzTWV0aG9kKCJyb290ZGlyIGRvZXNuJ3Qgc3RhcnQg d2l0aCBwYXJlbnRkaXJfcHJlZml4IikKLSAKLSAKLSBAcmVnaXN0ZXJfdmNzX2hhbmRsZXIoImdp dCIsICJnZXRfa2V5d29yZHMiKQotLWRlZiBnaXRfZ2V0X2tleXdvcmRzKHZlcnNpb25maWxlX2Fi cyk6Ci0rZGVmIGdpdF9nZXRfa2V5d29yZHModmVyc2lvbmZpbGVfYWJzOiBzdHIpIC0+IERpY3Rb c3RyLCBzdHJdOgotICAgICAiIiJFeHRyYWN0IHZlcnNpb24gaW5mb3JtYXRpb24gZnJvbSB0aGUg Z2l2ZW4gZmlsZS4iIiIKLSAgICAgIyB0aGUgY29kZSBlbWJlZGRlZCBpbiBfdmVyc2lvbi5weSBj YW4ganVzdCBmZXRjaCB0aGUgdmFsdWUgb2YgdGhlc2UKLSAgICAgIyBrZXl3b3Jkcy4gV2hlbiB1 c2VkIGZyb20gc2V0dXAucHksIHdlIGRvbid0IHdhbnQgdG8gaW1wb3J0IF92ZXJzaW9uLnB5LAot ICAgICAjIHNvIHdlIGRvIGl0IHdpdGggYSByZWdleHAgaW5zdGVhZC4gVGhpcyBmdW5jdGlvbiBp cyBub3QgdXNlZCBmcm9tCi0gICAgICMgX3ZlcnNpb24ucHkuCi0tICAgIGtleXdvcmRzID0ge30K LSsgICAga2V5d29yZHM6IERpY3Rbc3RyLCBzdHJdID0ge30KLSAgICAgdHJ5OgotICAgICAgICAg d2l0aCBvcGVuKHZlcnNpb25maWxlX2FicywgInIiKSBhcyBmb2JqOgotICAgICAgICAgICAgIGZv ciBsaW5lIGluIGZvYmo6Ci1AQCAtMTY1LDcgKzE4MiwxMSBAQCBkZWYgZ2l0X2dldF9rZXl3b3Jk cyh2ZXJzaW9uZmlsZV9hYnMpOgotIAotIAotIEByZWdpc3Rlcl92Y3NfaGFuZGxlcigiZ2l0Iiwg ImtleXdvcmRzIikKLS1kZWYgZ2l0X3ZlcnNpb25zX2Zyb21fa2V5d29yZHMoa2V5d29yZHMsIHRh Z19wcmVmaXgsIHZlcmJvc2UpOgotK2RlZiBnaXRfdmVyc2lvbnNfZnJvbV9rZXl3b3JkcygKLSsg ICAga2V5d29yZHM6IERpY3Rbc3RyLCBzdHJdLAotKyAgICB0YWdfcHJlZml4OiBzdHIsCi0rICAg IHZlcmJvc2U6IGJvb2wsCi0rKSAtPiBEaWN0W3N0ciwgQW55XToKLSAgICAgIiIiR2V0IHZlcnNp b24gaW5mb3JtYXRpb24gZnJvbSBnaXQga2V5d29yZHMuIiIiCi0gICAgIGlmICJyZWZuYW1lcyIg bm90IGluIGtleXdvcmRzOgotICAgICAgICAgcmFpc2UgTm90VGhpc01ldGhvZCgiU2hvcnQgdmVy c2lvbiBmaWxlIGZvdW5kIikKLUBAIC0xOTEsNyArMjEyLDcgQEAgZGVmIGdpdF92ZXJzaW9uc19m cm9tX2tleXdvcmRzKGtleXdvcmRzLCB0YWdfcHJlZml4LCB2ZXJib3NlKToKLSAgICAgIyBzdGFy dGluZyBpbiBnaXQtMS44LjMsIHRhZ3MgYXJlIGxpc3RlZCBhcyAidGFnOiBmb28tMS4wIiBpbnN0 ZWFkIG9mCi0gICAgICMganVzdCAiZm9vLTEuMCIuIElmIHdlIHNlZSBhICJ0YWc6ICIgcHJlZml4 LCBwcmVmZXIgdGhvc2UuCi0gICAgIFRBRyA9ICJ0YWc6ICIKLS0gICAgdGFncyA9IHtyW2xlbihU QUcpIDpdIGZvciByIGluIHJlZnMgaWYgci5zdGFydHN3aXRoKFRBRyl9Ci0rICAgIHRhZ3MgPSB7 cltsZW4oVEFHKTpdIGZvciByIGluIHJlZnMgaWYgci5zdGFydHN3aXRoKFRBRyl9Ci0gICAgIGlm IG5vdCB0YWdzOgotICAgICAgICAgIyBFaXRoZXIgd2UncmUgdXNpbmcgZ2l0IDwgMS44LjMsIG9y IHRoZXJlIHJlYWxseSBhcmUgbm8gdGFncy4gV2UgdXNlCi0gICAgICAgICAjIGEgaGV1cmlzdGlj OiBhc3N1bWUgYWxsIHZlcnNpb24gdGFncyBoYXZlIGEgZGlnaXQuIFRoZSBvbGQgZ2l0ICVkCi1A QCAtMjAwLDcgKzIyMSw3IEBAIGRlZiBnaXRfdmVyc2lvbnNfZnJvbV9rZXl3b3JkcyhrZXl3b3Jk cywgdGFnX3ByZWZpeCwgdmVyYm9zZSk6Ci0gICAgICAgICAjIGJldHdlZW4gYnJhbmNoZXMgYW5k IHRhZ3MuIEJ5IGlnbm9yaW5nIHJlZm5hbWVzIHdpdGhvdXQgZGlnaXRzLCB3ZQotICAgICAgICAg IyBmaWx0ZXIgb3V0IG1hbnkgY29tbW9uIGJyYW5jaCBuYW1lcyBsaWtlICJyZWxlYXNlIiBhbmQK LSAgICAgICAgICMgInN0YWJpbGl6YXRpb24iLCBhcyB3ZWxsIGFzICJIRUFEIiBhbmQgIm1hc3Rl ciIuCi0tICAgICAgICB0YWdzID0ge3IgZm9yIHIgaW4gcmVmcyBpZiByZS5zZWFyY2gociJcZCIs IHIpfQotKyAgICAgICAgdGFncyA9IHtyIGZvciByIGluIHJlZnMgaWYgcmUuc2VhcmNoKHInXGQn LCByKX0KLSAgICAgICAgIGlmIHZlcmJvc2U6Ci0gICAgICAgICAgICAgcHJpbnQoImRpc2NhcmRp bmcgJyVzJywgbm8gZGlnaXRzIiAlICIsIi5qb2luKHJlZnMgLSB0YWdzKSkKLSAgICAgaWYgdmVy Ym9zZToKLUBAIC0yMDgsMzUgKzIyOSwzMyBAQCBkZWYgZ2l0X3ZlcnNpb25zX2Zyb21fa2V5d29y ZHMoa2V5d29yZHMsIHRhZ19wcmVmaXgsIHZlcmJvc2UpOgotICAgICBmb3IgcmVmIGluIHNvcnRl ZCh0YWdzKToKLSAgICAgICAgICMgc29ydGluZyB3aWxsIHByZWZlciBlLmcuICIyLjAiIG92ZXIg IjIuMHJjMSIKLSAgICAgICAgIGlmIHJlZi5zdGFydHN3aXRoKHRhZ19wcmVmaXgpOgotLSAgICAg ICAgICAgIHIgPSByZWZbbGVuKHRhZ19wcmVmaXgpIDpdCi0rICAgICAgICAgICAgciA9IHJlZlts ZW4odGFnX3ByZWZpeCk6XQotICAgICAgICAgICAgICMgRmlsdGVyIG91dCByZWZzIHRoYXQgZXhh Y3RseSBtYXRjaCBwcmVmaXggb3IgdGhhdCBkb24ndCBzdGFydAotICAgICAgICAgICAgICMgd2l0 aCBhIG51bWJlciBvbmNlIHRoZSBwcmVmaXggaXMgc3RyaXBwZWQgKG1vc3RseSBhIGNvbmNlcm4K LSAgICAgICAgICAgICAjIHdoZW4gcHJlZml4IGlzICcnKQotLSAgICAgICAgICAgIGlmIG5vdCBy ZS5tYXRjaChyIlxkIiwgcik6Ci0rICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoKHInXGQnLCBy KToKLSAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICBpZiB2ZXJib3NlOgot ICAgICAgICAgICAgICAgICBwcmludCgicGlja2luZyAlcyIgJSByKQotLSAgICAgICAgICAgIHJl dHVybiB7Ci0tICAgICAgICAgICAgICAgICJ2ZXJzaW9uIjogciwKLS0gICAgICAgICAgICAgICAg ImZ1bGwtcmV2aXNpb25pZCI6IGtleXdvcmRzWyJmdWxsIl0uc3RyaXAoKSwKLS0gICAgICAgICAg ICAgICAgImRpcnR5IjogRmFsc2UsCi0tICAgICAgICAgICAgICAgICJlcnJvciI6IE5vbmUsCi0t ICAgICAgICAgICAgICAgICJkYXRlIjogZGF0ZSwKLS0gICAgICAgICAgICB9Ci0rICAgICAgICAg ICAgcmV0dXJuIHsidmVyc2lvbiI6IHIsCi0rICAgICAgICAgICAgICAgICAgICAiZnVsbC1yZXZp c2lvbmlkIjoga2V5d29yZHNbImZ1bGwiXS5zdHJpcCgpLAotKyAgICAgICAgICAgICAgICAgICAg ImRpcnR5IjogRmFsc2UsICJlcnJvciI6IE5vbmUsCi0rICAgICAgICAgICAgICAgICAgICAiZGF0 ZSI6IGRhdGV9Ci0gICAgICMgbm8gc3VpdGFibGUgdGFncywgc28gdmVyc2lvbiBpcyAiMCt1bmtu b3duIiwgYnV0IGZ1bGwgaGV4IGlzIHN0aWxsIHRoZXJlCi0gICAgIGlmIHZlcmJvc2U6Ci0gICAg ICAgICBwcmludCgibm8gc3VpdGFibGUgdGFncywgdXNpbmcgdW5rbm93biArIGZ1bGwgcmV2aXNp b24gaWQiKQotLSAgICByZXR1cm4gewotLSAgICAgICAgInZlcnNpb24iOiAiMCt1bmtub3duIiwK LS0gICAgICAgICJmdWxsLXJldmlzaW9uaWQiOiBrZXl3b3Jkc1siZnVsbCJdLnN0cmlwKCksCi0t ICAgICAgICAiZGlydHkiOiBGYWxzZSwKLS0gICAgICAgICJlcnJvciI6ICJubyBzdWl0YWJsZSB0 YWdzIiwKLS0gICAgICAgICJkYXRlIjogTm9uZSwKLS0gICAgfQotKyAgICByZXR1cm4geyJ2ZXJz aW9uIjogIjArdW5rbm93biIsCi0rICAgICAgICAgICAgImZ1bGwtcmV2aXNpb25pZCI6IGtleXdv cmRzWyJmdWxsIl0uc3RyaXAoKSwKLSsgICAgICAgICAgICAiZGlydHkiOiBGYWxzZSwgImVycm9y IjogIm5vIHN1aXRhYmxlIHRhZ3MiLCAiZGF0ZSI6IE5vbmV9Ci0gCi0gCi0gQHJlZ2lzdGVyX3Zj c19oYW5kbGVyKCJnaXQiLCAicGllY2VzX2Zyb21fdmNzIikKLS1kZWYgZ2l0X3BpZWNlc19mcm9t X3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJib3NlLCBydW5uZXI9cnVuX2NvbW1hbmQpOgotK2Rl ZiBnaXRfcGllY2VzX2Zyb21fdmNzKAotKyAgICB0YWdfcHJlZml4OiBzdHIsCi0rICAgIHJvb3Q6 IHN0ciwKLSsgICAgdmVyYm9zZTogYm9vbCwKLSsgICAgcnVubmVyOiBDYWxsYWJsZSA9IHJ1bl9j b21tYW5kCi0rKSAtPiBEaWN0W3N0ciwgQW55XToKLSAgICAgIiIiR2V0IHZlcnNpb24gZnJvbSAn Z2l0IGRlc2NyaWJlJyBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCi0gCi0gICAgIFRo aXMgb25seSBnZXRzIGNhbGxlZCBpZiB0aGUgZ2l0LWFyY2hpdmUgJ3N1YnN0JyBrZXl3b3JkcyB3 ZXJlICpub3QqCi1AQCAtMjQ0LDEyICsyNjMsMTggQEAgZGVmIGdpdF9waWVjZXNfZnJvbV92Y3Mo dGFnX3ByZWZpeCwgcm9vdCwgdmVyYm9zZSwgcnVubmVyPXJ1bl9jb21tYW5kKToKLSAgICAgdmVy c2lvbiBzdHJpbmcsIG1lYW5pbmcgd2UncmUgaW5zaWRlIGEgY2hlY2tlZCBvdXQgc291cmNlIHRy ZWUuCi0gICAgICIiIgotICAgICBHSVRTID0gWyJnaXQiXQotLSAgICBUQUdfUFJFRklYX1JFR0VY ID0gIioiCi0gICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiOgotICAgICAgICAgR0lUUyA9 IFsiZ2l0LmNtZCIsICJnaXQuZXhlIl0KLS0gICAgICAgIFRBR19QUkVGSVhfUkVHRVggPSByIlwq IgotIAotLSAgICBfLCByYyA9IHJ1bm5lcihHSVRTLCBbInJldi1wYXJzZSIsICItLWdpdC1kaXIi XSwgY3dkPXJvb3QsIGhpZGVfc3RkZXJyPVRydWUpCi0rICAgICMgR0lUX0RJUiBjYW4gaW50ZXJm ZXJlIHdpdGggY29ycmVjdCBvcGVyYXRpb24gb2YgVmVyc2lvbmVlci4KLSsgICAgIyBJdCBtYXkg YmUgaW50ZW5kZWQgdG8gYmUgcGFzc2VkIHRvIHRoZSBWZXJzaW9uZWVyLXZlcnNpb25lZCBwcm9q ZWN0LAotKyAgICAjIGJ1dCB0aGF0IHNob3VsZCBub3QgY2hhbmdlIHdoZXJlIHdlIGdldCBvdXIg dmVyc2lvbiBmcm9tLgotKyAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQotKyAgICBlbnYucG9w KCJHSVRfRElSIiwgTm9uZSkKLSsgICAgcnVubmVyID0gZnVuY3Rvb2xzLnBhcnRpYWwocnVubmVy LCBlbnY9ZW52KQotKwotKyAgICBfLCByYyA9IHJ1bm5lcihHSVRTLCBbInJldi1wYXJzZSIsICIt LWdpdC1kaXIiXSwgY3dkPXJvb3QsCi0rICAgICAgICAgICAgICAgICAgIGhpZGVfc3RkZXJyPW5v dCB2ZXJib3NlKQotICAgICBpZiByYyAhPSAwOgotICAgICAgICAgaWYgdmVyYm9zZToKLSAgICAg ICAgICAgICBwcmludCgiRGlyZWN0b3J5ICVzIG5vdCB1bmRlciBnaXQgY29udHJvbCIgJSByb290 KQotQEAgLTI1NywxOSArMjgyLDEwIEBAIGRlZiBnaXRfcGllY2VzX2Zyb21fdmNzKHRhZ19wcmVm aXgsIHJvb3QsIHZlcmJvc2UsIHJ1bm5lcj1ydW5fY29tbWFuZCk6Ci0gCi0gICAgICMgaWYgdGhl cmUgaXMgYSB0YWcgbWF0Y2hpbmcgdGFnX3ByZWZpeCwgdGhpcyB5aWVsZHMgVEFHLU5VTS1nSEVY Wy1kaXJ0eV0KLSAgICAgIyBpZiB0aGVyZSBpc24ndCBvbmUsIHRoaXMgeWllbGRzIEhFWFstZGly dHldIChubyBOVU0pCi0tICAgIGRlc2NyaWJlX291dCwgcmMgPSBydW5uZXIoCi0tICAgICAgICBH SVRTLAotLSAgICAgICAgWwotLSAgICAgICAgICAgICJkZXNjcmliZSIsCi0tICAgICAgICAgICAg Ii0tdGFncyIsCi0tICAgICAgICAgICAgIi0tZGlydHkiLAotLSAgICAgICAgICAgICItLWFsd2F5 cyIsCi0tICAgICAgICAgICAgIi0tbG9uZyIsCi0tICAgICAgICAgICAgIi0tbWF0Y2giLAotLSAg ICAgICAgICAgICIlcyVzIiAlICh0YWdfcHJlZml4LCBUQUdfUFJFRklYX1JFR0VYKSwKLS0gICAg ICAgIF0sCi0tICAgICAgICBjd2Q9cm9vdCwKLS0gICAgKQotKyAgICBkZXNjcmliZV9vdXQsIHJj ID0gcnVubmVyKEdJVFMsIFsKLSsgICAgICAgICJkZXNjcmliZSIsICItLXRhZ3MiLCAiLS1kaXJ0 eSIsICItLWFsd2F5cyIsICItLWxvbmciLAotKyAgICAgICAgIi0tbWF0Y2giLCBmInt0YWdfcHJl Zml4fVtbOmRpZ2l0Ol1dKiIKLSsgICAgXSwgY3dkPXJvb3QpCi0gICAgICMgLS1sb25nIHdhcyBh ZGRlZCBpbiBnaXQtMS41LjUKLSAgICAgaWYgZGVzY3JpYmVfb3V0IGlzIE5vbmU6Ci0gICAgICAg ICByYWlzZSBOb3RUaGlzTWV0aG9kKCInZ2l0IGRlc2NyaWJlJyBmYWlsZWQiKQotQEAgLTI3OSwx MiArMjk1LDEzIEBAIGRlZiBnaXRfcGllY2VzX2Zyb21fdmNzKHRhZ19wcmVmaXgsIHJvb3QsIHZl cmJvc2UsIHJ1bm5lcj1ydW5fY29tbWFuZCk6Ci0gICAgICAgICByYWlzZSBOb3RUaGlzTWV0aG9k KCInZ2l0IHJldi1wYXJzZScgZmFpbGVkIikKLSAgICAgZnVsbF9vdXQgPSBmdWxsX291dC5zdHJp cCgpCi0gCi0tICAgIHBpZWNlcyA9IHt9Ci0rICAgIHBpZWNlczogRGljdFtzdHIsIEFueV0gPSB7 fQotICAgICBwaWVjZXNbImxvbmciXSA9IGZ1bGxfb3V0Ci0gICAgIHBpZWNlc1sic2hvcnQiXSA9 IGZ1bGxfb3V0Wzo3XSAgIyBtYXliZSBpbXByb3ZlZCBsYXRlcgotICAgICBwaWVjZXNbImVycm9y Il0gPSBOb25lCi0gCi0tICAgIGJyYW5jaF9uYW1lLCByYyA9IHJ1bm5lcihHSVRTLCBbInJldi1w YXJzZSIsICItLWFiYnJldi1yZWYiLCAiSEVBRCJdLCBjd2Q9cm9vdCkKLSsgICAgYnJhbmNoX25h bWUsIHJjID0gcnVubmVyKEdJVFMsIFsicmV2LXBhcnNlIiwgIi0tYWJicmV2LXJlZiIsICJIRUFE Il0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjd2Q9cm9vdCkKLSAgICAgIyAtLWFi YnJldi1yZWYgd2FzIGFkZGVkIGluIGdpdC0xLjYuMwotICAgICBpZiByYyAhPSAwIG9yIGJyYW5j aF9uYW1lIGlzIE5vbmU6Ci0gICAgICAgICByYWlzZSBOb3RUaGlzTWV0aG9kKCInZ2l0IHJldi1w YXJzZSAtLWFiYnJldi1yZWYnIHJldHVybmVkIGVycm9yIikKLUBAIC0zMjQsMTYgKzM0MSwxNyBA QCBkZWYgZ2l0X3BpZWNlc19mcm9tX3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJib3NlLCBydW5u ZXI9cnVuX2NvbW1hbmQpOgotICAgICBkaXJ0eSA9IGdpdF9kZXNjcmliZS5lbmRzd2l0aCgiLWRp cnR5IikKLSAgICAgcGllY2VzWyJkaXJ0eSJdID0gZGlydHkKLSAgICAgaWYgZGlydHk6Ci0tICAg ICAgICBnaXRfZGVzY3JpYmUgPSBnaXRfZGVzY3JpYmVbOiBnaXRfZGVzY3JpYmUucmluZGV4KCIt ZGlydHkiKV0KLSsgICAgICAgIGdpdF9kZXNjcmliZSA9IGdpdF9kZXNjcmliZVs6Z2l0X2Rlc2Ny aWJlLnJpbmRleCgiLWRpcnR5IildCi0gCi0gICAgICMgbm93IHdlIGhhdmUgVEFHLU5VTS1nSEVY IG9yIEhFWAotIAotICAgICBpZiAiLSIgaW4gZ2l0X2Rlc2NyaWJlOgotICAgICAgICAgIyBUQUct TlVNLWdIRVgKLS0gICAgICAgIG1vID0gcmUuc2VhcmNoKHIiXiguKyktKFxkKyktZyhbMC05YS1m XSspJCIsIGdpdF9kZXNjcmliZSkKLSsgICAgICAgIG1vID0gcmUuc2VhcmNoKHInXiguKyktKFxk KyktZyhbMC05YS1mXSspJCcsIGdpdF9kZXNjcmliZSkKLSAgICAgICAgIGlmIG5vdCBtbzoKLSAg ICAgICAgICAgICAjIHVucGFyc2FibGUuIE1heWJlIGdpdC1kZXNjcmliZSBpcyBtaXNiZWhhdmlu Zz8KLS0gICAgICAgICAgICBwaWVjZXNbImVycm9yIl0gPSAidW5hYmxlIHRvIHBhcnNlIGdpdC1k ZXNjcmliZSBvdXRwdXQ6ICclcyciICUgZGVzY3JpYmVfb3V0Ci0rICAgICAgICAgICAgcGllY2Vz WyJlcnJvciJdID0gKCJ1bmFibGUgdG8gcGFyc2UgZ2l0LWRlc2NyaWJlIG91dHB1dDogJyVzJyIK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBkZXNjcmliZV9vdXQpCi0gICAgICAg ICAgICAgcmV0dXJuIHBpZWNlcwotIAotICAgICAgICAgIyB0YWcKLUBAIC0zNDIsMTIgKzM2MCwx MCBAQCBkZWYgZ2l0X3BpZWNlc19mcm9tX3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJib3NlLCBy dW5uZXI9cnVuX2NvbW1hbmQpOgotICAgICAgICAgICAgIGlmIHZlcmJvc2U6Ci0gICAgICAgICAg ICAgICAgIGZtdCA9ICJ0YWcgJyVzJyBkb2Vzbid0IHN0YXJ0IHdpdGggcHJlZml4ICclcyciCi0g ICAgICAgICAgICAgICAgIHByaW50KGZtdCAlIChmdWxsX3RhZywgdGFnX3ByZWZpeCkpCi0tICAg ICAgICAgICAgcGllY2VzWyJlcnJvciJdID0gInRhZyAnJXMnIGRvZXNuJ3Qgc3RhcnQgd2l0aCBw cmVmaXggJyVzJyIgJSAoCi0tICAgICAgICAgICAgICAgIGZ1bGxfdGFnLAotLSAgICAgICAgICAg ICAgICB0YWdfcHJlZml4LAotLSAgICAgICAgICAgICkKLSsgICAgICAgICAgICBwaWVjZXNbImVy cm9yIl0gPSAoInRhZyAnJXMnIGRvZXNuJ3Qgc3RhcnQgd2l0aCBwcmVmaXggJyVzJyIKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAoZnVsbF90YWcsIHRhZ19wcmVmaXgpKQotICAg ICAgICAgICAgIHJldHVybiBwaWVjZXMKLS0gICAgICAgIHBpZWNlc1siY2xvc2VzdC10YWciXSA9 IGZ1bGxfdGFnW2xlbih0YWdfcHJlZml4KSA6XQotKyAgICAgICAgcGllY2VzWyJjbG9zZXN0LXRh ZyJdID0gZnVsbF90YWdbbGVuKHRhZ19wcmVmaXgpOl0KLSAKLSAgICAgICAgICMgZGlzdGFuY2U6 IG51bWJlciBvZiBjb21taXRzIHNpbmNlIHRhZwotICAgICAgICAgcGllY2VzWyJkaXN0YW5jZSJd ID0gaW50KG1vLmdyb3VwKDIpKQotQEAgLTM1OCw4ICszNzQsOCBAQCBkZWYgZ2l0X3BpZWNlc19m cm9tX3Zjcyh0YWdfcHJlZml4LCByb290LCB2ZXJib3NlLCBydW5uZXI9cnVuX2NvbW1hbmQpOgot ICAgICBlbHNlOgotICAgICAgICAgIyBIRVg6IG5vIHRhZ3MKLSAgICAgICAgIHBpZWNlc1siY2xv c2VzdC10YWciXSA9IE5vbmUKLS0gICAgICAgIGNvdW50X291dCwgcmMgPSBydW5uZXIoR0lUUywg WyJyZXYtbGlzdCIsICJIRUFEIiwgIi0tY291bnQiXSwgY3dkPXJvb3QpCi0tICAgICAgICBwaWVj ZXNbImRpc3RhbmNlIl0gPSBpbnQoY291bnRfb3V0KSAgIyB0b3RhbCBudW1iZXIgb2YgY29tbWl0 cwotKyAgICAgICAgb3V0LCByYyA9IHJ1bm5lcihHSVRTLCBbInJldi1saXN0IiwgIkhFQUQiLCAi LS1sZWZ0LXJpZ2h0Il0sIGN3ZD1yb290KQotKyAgICAgICAgcGllY2VzWyJkaXN0YW5jZSJdID0g bGVuKG91dC5zcGxpdCgpKSAgIyB0b3RhbCBudW1iZXIgb2YgY29tbWl0cwotIAotICAgICAjIGNv bW1pdCBkYXRlOiBzZWUgSVNPLTg2MDEgY29tbWVudCBpbiBnaXRfdmVyc2lvbnNfZnJvbV9rZXl3 b3JkcygpCi0gICAgIGRhdGUgPSBydW5uZXIoR0lUUywgWyJzaG93IiwgIi1zIiwgIi0tZm9ybWF0 PSVjaSIsICJIRUFEIl0sIGN3ZD1yb290KVswXS5zdHJpcCgpCi1AQCAtMzcxLDE0ICszODcsMTQg QEAgZGVmIGdpdF9waWVjZXNfZnJvbV92Y3ModGFnX3ByZWZpeCwgcm9vdCwgdmVyYm9zZSwgcnVu bmVyPXJ1bl9jb21tYW5kKToKLSAgICAgcmV0dXJuIHBpZWNlcwotIAotIAotLWRlZiBwbHVzX29y X2RvdChwaWVjZXMpOgotK2RlZiBwbHVzX29yX2RvdChwaWVjZXM6IERpY3Rbc3RyLCBBbnldKSAt PiBzdHI6Ci0gICAgICIiIlJldHVybiBhICsgaWYgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZSwg ZWxzZSByZXR1cm4gYSAuIiIiCi0gICAgIGlmICIrIiBpbiBwaWVjZXMuZ2V0KCJjbG9zZXN0LXRh ZyIsICIiKToKLSAgICAgICAgIHJldHVybiAiLiIKLSAgICAgcmV0dXJuICIrIgotIAotIAotLWRl ZiByZW5kZXJfcGVwNDQwKHBpZWNlcyk6Ci0rZGVmIHJlbmRlcl9wZXA0NDAocGllY2VzOiBEaWN0 W3N0ciwgQW55XSkgLT4gc3RyOgotICAgICAiIiJCdWlsZCB1cCB2ZXJzaW9uIHN0cmluZywgd2l0 aCBwb3N0LXJlbGVhc2UgImxvY2FsIHZlcnNpb24gaWRlbnRpZmllciIuCi0gCi0gICAgIE91ciBn b2FsOiBUQUdbK0RJU1RBTkNFLmdIRVhbLmRpcnR5XV0gLiBOb3RlIHRoYXQgaWYgeW91Ci1AQCAt Mzk2LDEzICs0MTIsMTQgQEAgZGVmIHJlbmRlcl9wZXA0NDAocGllY2VzKToKLSAgICAgICAgICAg ICAgICAgcmVuZGVyZWQgKz0gIi5kaXJ0eSIKLSAgICAgZWxzZToKLSAgICAgICAgICMgZXhjZXB0 aW9uICMxCi0tICAgICAgICByZW5kZXJlZCA9ICIwK3VudGFnZ2VkLiVkLmclcyIgJSAocGllY2Vz WyJkaXN0YW5jZSJdLCBwaWVjZXNbInNob3J0Il0pCi0rICAgICAgICByZW5kZXJlZCA9ICIwK3Vu dGFnZ2VkLiVkLmclcyIgJSAocGllY2VzWyJkaXN0YW5jZSJdLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBpZWNlc1sic2hvcnQiXSkKLSAgICAgICAgIGlmIHBp ZWNlc1siZGlydHkiXToKLSAgICAgICAgICAgICByZW5kZXJlZCArPSAiLmRpcnR5IgotICAgICBy ZXR1cm4gcmVuZGVyZWQKLSAKLSAKLS1kZWYgcmVuZGVyX3BlcDQ0MF9icmFuY2gocGllY2VzKToK LStkZWYgcmVuZGVyX3BlcDQ0MF9icmFuY2gocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3Ry OgotICAgICAiIiJUQUdbWy5kZXYwXStESVNUQU5DRS5nSEVYWy5kaXJ0eV1dIC4KLSAKLSAgICAg VGhlICIuZGV2MCIgbWVhbnMgbm90IG1hc3RlciBicmFuY2guIE5vdGUgdGhhdCAuZGV2MCBzb3J0 cyBiYWNrd2FyZHMKLUBAIC00MjUsMTMgKzQ0MiwxNCBAQCBkZWYgcmVuZGVyX3BlcDQ0MF9icmFu Y2gocGllY2VzKToKLSAgICAgICAgIHJlbmRlcmVkID0gIjAiCi0gICAgICAgICBpZiBwaWVjZXNb ImJyYW5jaCJdICE9ICJtYXN0ZXIiOgotICAgICAgICAgICAgIHJlbmRlcmVkICs9ICIuZGV2MCIK LS0gICAgICAgIHJlbmRlcmVkICs9ICIrdW50YWdnZWQuJWQuZyVzIiAlIChwaWVjZXNbImRpc3Rh bmNlIl0sIHBpZWNlc1sic2hvcnQiXSkKLSsgICAgICAgIHJlbmRlcmVkICs9ICIrdW50YWdnZWQu JWQuZyVzIiAlIChwaWVjZXNbImRpc3RhbmNlIl0sCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGllY2VzWyJzaG9ydCJdKQotICAgICAgICAgaWYgcGllY2VzWyJk aXJ0eSJdOgotICAgICAgICAgICAgIHJlbmRlcmVkICs9ICIuZGlydHkiCi0gICAgIHJldHVybiBy ZW5kZXJlZAotIAotIAotLWRlZiBwZXA0NDBfc3BsaXRfcG9zdCh2ZXIpOgotK2RlZiBwZXA0NDBf c3BsaXRfcG9zdCh2ZXI6IHN0cikgLT4gVHVwbGVbc3RyLCBPcHRpb25hbFtpbnRdXToKLSAgICAg IiIiU3BsaXQgcGVwNDQwIHZlcnNpb24gc3RyaW5nIGF0IHRoZSBwb3N0LXJlbGVhc2Ugc2VnbWVu dC4KLSAKLSAgICAgUmV0dXJucyB0aGUgcmVsZWFzZSBzZWdtZW50cyBiZWZvcmUgdGhlIHBvc3Qt cmVsZWFzZSBhbmQgdGhlCi1AQCAtNDQxLDcgKzQ1OSw3IEBAIGRlZiBwZXA0NDBfc3BsaXRfcG9z dCh2ZXIpOgotICAgICByZXR1cm4gdmNbMF0sIGludCh2Y1sxXSBvciAwKSBpZiBsZW4odmMpID09 IDIgZWxzZSBOb25lCi0gCi0gCi0tZGVmIHJlbmRlcl9wZXA0NDBfcHJlKHBpZWNlcyk6Ci0rZGVm IHJlbmRlcl9wZXA0NDBfcHJlKHBpZWNlczogRGljdFtzdHIsIEFueV0pIC0+IHN0cjoKLSAgICAg IiIiVEFHWy5wb3N0Ti5kZXZESVNUQU5DRV0gLS0gTm8gLWRpcnR5LgotIAotICAgICBFeGNlcHRp b25zOgotQEAgLTQ2NSw3ICs0ODMsNyBAQCBkZWYgcmVuZGVyX3BlcDQ0MF9wcmUocGllY2VzKToK LSAgICAgcmV0dXJuIHJlbmRlcmVkCi0gCi0gCi0tZGVmIHJlbmRlcl9wZXA0NDBfcG9zdChwaWVj ZXMpOgotK2RlZiByZW5kZXJfcGVwNDQwX3Bvc3QocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4g c3RyOgotICAgICAiIiJUQUdbLnBvc3RESVNUQU5DRVsuZGV2MF0rZ0hFWF0gLgotIAotICAgICBU aGUgIi5kZXYwIiBtZWFucyBkaXJ0eS4gTm90ZSB0aGF0IC5kZXYwIHNvcnRzIGJhY2t3YXJkcwot QEAgLTQ5Miw3ICs1MTAsNyBAQCBkZWYgcmVuZGVyX3BlcDQ0MF9wb3N0KHBpZWNlcyk6Ci0gICAg IHJldHVybiByZW5kZXJlZAotIAotIAotLWRlZiByZW5kZXJfcGVwNDQwX3Bvc3RfYnJhbmNoKHBp ZWNlcyk6Ci0rZGVmIHJlbmRlcl9wZXA0NDBfcG9zdF9icmFuY2gocGllY2VzOiBEaWN0W3N0ciwg QW55XSkgLT4gc3RyOgotICAgICAiIiJUQUdbLnBvc3RESVNUQU5DRVsuZGV2MF0rZ0hFWFsuZGly dHldXSAuCi0gCi0gICAgIFRoZSAiLmRldjAiIG1lYW5zIG5vdCBtYXN0ZXIgYnJhbmNoLgotQEAg LTUyMSw3ICs1MzksNyBAQCBkZWYgcmVuZGVyX3BlcDQ0MF9wb3N0X2JyYW5jaChwaWVjZXMpOgot ICAgICByZXR1cm4gcmVuZGVyZWQKLSAKLSAKLS1kZWYgcmVuZGVyX3BlcDQ0MF9vbGQocGllY2Vz KToKLStkZWYgcmVuZGVyX3BlcDQ0MF9vbGQocGllY2VzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3Ry OgotICAgICAiIiJUQUdbLnBvc3RESVNUQU5DRVsuZGV2MF1dIC4KLSAKLSAgICAgVGhlICIuZGV2 MCIgbWVhbnMgZGlydHkuCi1AQCAtNTQzLDcgKzU2MSw3IEBAIGRlZiByZW5kZXJfcGVwNDQwX29s ZChwaWVjZXMpOgotICAgICByZXR1cm4gcmVuZGVyZWQKLSAKLSAKLS1kZWYgcmVuZGVyX2dpdF9k ZXNjcmliZShwaWVjZXMpOgotK2RlZiByZW5kZXJfZ2l0X2Rlc2NyaWJlKHBpZWNlczogRGljdFtz dHIsIEFueV0pIC0+IHN0cjoKLSAgICAgIiIiVEFHWy1ESVNUQU5DRS1nSEVYXVstZGlydHldLgot IAotICAgICBMaWtlICdnaXQgZGVzY3JpYmUgLS10YWdzIC0tZGlydHkgLS1hbHdheXMnLgotQEAg LTU2Myw3ICs1ODEsNyBAQCBkZWYgcmVuZGVyX2dpdF9kZXNjcmliZShwaWVjZXMpOgotICAgICBy ZXR1cm4gcmVuZGVyZWQKLSAKLSAKLS1kZWYgcmVuZGVyX2dpdF9kZXNjcmliZV9sb25nKHBpZWNl cyk6Ci0rZGVmIHJlbmRlcl9naXRfZGVzY3JpYmVfbG9uZyhwaWVjZXM6IERpY3Rbc3RyLCBBbnld KSAtPiBzdHI6Ci0gICAgICIiIlRBRy1ESVNUQU5DRS1nSEVYWy1kaXJ0eV0uCi0gCi0gICAgIExp a2UgJ2dpdCBkZXNjcmliZSAtLXRhZ3MgLS1kaXJ0eSAtLWFsd2F5cyAtbG9uZycuCi1AQCAtNTgz LDE2ICs2MDEsMTQgQEAgZGVmIHJlbmRlcl9naXRfZGVzY3JpYmVfbG9uZyhwaWVjZXMpOgotICAg ICByZXR1cm4gcmVuZGVyZWQKLSAKLSAKLS1kZWYgcmVuZGVyKHBpZWNlcywgc3R5bGUpOgotK2Rl ZiByZW5kZXIocGllY2VzOiBEaWN0W3N0ciwgQW55XSwgc3R5bGU6IHN0cikgLT4gRGljdFtzdHIs IEFueV06Ci0gICAgICIiIlJlbmRlciB0aGUgZ2l2ZW4gdmVyc2lvbiBwaWVjZXMgaW50byB0aGUg cmVxdWVzdGVkIHN0eWxlLiIiIgotICAgICBpZiBwaWVjZXNbImVycm9yIl06Ci0tICAgICAgICBy ZXR1cm4gewotLSAgICAgICAgICAgICJ2ZXJzaW9uIjogInVua25vd24iLAotLSAgICAgICAgICAg ICJmdWxsLXJldmlzaW9uaWQiOiBwaWVjZXMuZ2V0KCJsb25nIiksCi0tICAgICAgICAgICAgImRp cnR5IjogTm9uZSwKLS0gICAgICAgICAgICAiZXJyb3IiOiBwaWVjZXNbImVycm9yIl0sCi0tICAg ICAgICAgICAgImRhdGUiOiBOb25lLAotLSAgICAgICAgfQotKyAgICAgICAgcmV0dXJuIHsidmVy c2lvbiI6ICJ1bmtub3duIiwKLSsgICAgICAgICAgICAgICAgImZ1bGwtcmV2aXNpb25pZCI6IHBp ZWNlcy5nZXQoImxvbmciKSwKLSsgICAgICAgICAgICAgICAgImRpcnR5IjogTm9uZSwKLSsgICAg ICAgICAgICAgICAgImVycm9yIjogcGllY2VzWyJlcnJvciJdLAotKyAgICAgICAgICAgICAgICAi ZGF0ZSI6IE5vbmV9Ci0gCi0gICAgIGlmIG5vdCBzdHlsZSBvciBzdHlsZSA9PSAiZGVmYXVsdCI6 Ci0gICAgICAgICBzdHlsZSA9ICJwZXA0NDAiICAjIHRoZSBkZWZhdWx0Ci1AQCAtNjE2LDE2ICs2 MzIsMTIgQEAgZGVmIHJlbmRlcihwaWVjZXMsIHN0eWxlKToKLSAgICAgZWxzZToKLSAgICAgICAg IHJhaXNlIFZhbHVlRXJyb3IoInVua25vd24gc3R5bGUgJyVzJyIgJSBzdHlsZSkKLSAKLS0gICAg cmV0dXJuIHsKLS0gICAgICAgICJ2ZXJzaW9uIjogcmVuZGVyZWQsCi0tICAgICAgICAiZnVsbC1y ZXZpc2lvbmlkIjogcGllY2VzWyJsb25nIl0sCi0tICAgICAgICAiZGlydHkiOiBwaWVjZXNbImRp cnR5Il0sCi0tICAgICAgICAiZXJyb3IiOiBOb25lLAotLSAgICAgICAgImRhdGUiOiBwaWVjZXMu Z2V0KCJkYXRlIiksCi0tICAgIH0KLSsgICAgcmV0dXJuIHsidmVyc2lvbiI6IHJlbmRlcmVkLCAi ZnVsbC1yZXZpc2lvbmlkIjogcGllY2VzWyJsb25nIl0sCi0rICAgICAgICAgICAgImRpcnR5Ijog cGllY2VzWyJkaXJ0eSJdLCAiZXJyb3IiOiBOb25lLAotKyAgICAgICAgICAgICJkYXRlIjogcGll Y2VzLmdldCgiZGF0ZSIpfQotIAotIAotLWRlZiBnZXRfdmVyc2lvbnMoKToKLStkZWYgZ2V0X3Zl cnNpb25zKCkgLT4gRGljdFtzdHIsIEFueV06Ci0gICAgICIiIkdldCB2ZXJzaW9uIGluZm9ybWF0 aW9uIG9yIHJldHVybiBkZWZhdWx0IGlmIHVuYWJsZSB0byBkbyBzby4iIiIKLSAgICAgIyBJIGFt IGluIF92ZXJzaW9uLnB5LCB3aGljaCBsaXZlcyBhdCBST09UL1ZFUlNJT05GSUxFX1NPVVJDRS4g SWYgd2UgaGF2ZQotICAgICAjIF9fZmlsZV9fLCB3ZSBjYW4gd29yayBiYWNrd2FyZHMgZnJvbSB0 aGVyZSB0byB0aGUgcm9vdC4gU29tZQotQEAgLTYzNiw3ICs2NDgsOCBAQCBkZWYgZ2V0X3ZlcnNp b25zKCk6Ci0gICAgIHZlcmJvc2UgPSBjZmcudmVyYm9zZQotIAotICAgICB0cnk6Ci0tICAgICAg ICByZXR1cm4gZ2l0X3ZlcnNpb25zX2Zyb21fa2V5d29yZHMoZ2V0X2tleXdvcmRzKCksIGNmZy50 YWdfcHJlZml4LCB2ZXJib3NlKQotKyAgICAgICAgcmV0dXJuIGdpdF92ZXJzaW9uc19mcm9tX2tl eXdvcmRzKGdldF9rZXl3b3JkcygpLCBjZmcudGFnX3ByZWZpeCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NlKQotICAgICBleGNlcHQgTm90VGhpc01l dGhvZDoKLSAgICAgICAgIHBhc3MKLSAKLUBAIC02NDUsMTYgKzY1OCwxMyBAQCBkZWYgZ2V0X3Zl cnNpb25zKCk6Ci0gICAgICAgICAjIHZlcnNpb25maWxlX3NvdXJjZSBpcyB0aGUgcmVsYXRpdmUg cGF0aCBmcm9tIHRoZSB0b3Agb2YgdGhlIHNvdXJjZQotICAgICAgICAgIyB0cmVlICh3aGVyZSB0 aGUgLmdpdCBkaXJlY3RvcnkgbWlnaHQgbGl2ZSkgdG8gdGhpcyBmaWxlLiBJbnZlcnQKLSAgICAg ICAgICMgdGhpcyB0byBmaW5kIHRoZSByb290IGZyb20gX19maWxlX18uCi0tICAgICAgICBmb3Ig XyBpbiBjZmcudmVyc2lvbmZpbGVfc291cmNlLnNwbGl0KCIvIik6Ci0rICAgICAgICBmb3IgXyBp biBjZmcudmVyc2lvbmZpbGVfc291cmNlLnNwbGl0KCcvJyk6Ci0gICAgICAgICAgICAgcm9vdCA9 IG9zLnBhdGguZGlybmFtZShyb290KQotICAgICBleGNlcHQgTmFtZUVycm9yOgotLSAgICAgICAg cmV0dXJuIHsKLS0gICAgICAgICAgICAidmVyc2lvbiI6ICIwK3Vua25vd24iLAotLSAgICAgICAg ICAgICJmdWxsLXJldmlzaW9uaWQiOiBOb25lLAotLSAgICAgICAgICAgICJkaXJ0eSI6IE5vbmUs Ci0tICAgICAgICAgICAgImVycm9yIjogInVuYWJsZSB0byBmaW5kIHJvb3Qgb2Ygc291cmNlIHRy ZWUiLAotLSAgICAgICAgICAgICJkYXRlIjogTm9uZSwKLS0gICAgICAgIH0KLSsgICAgICAgIHJl dHVybiB7InZlcnNpb24iOiAiMCt1bmtub3duIiwgImZ1bGwtcmV2aXNpb25pZCI6IE5vbmUsCi0r ICAgICAgICAgICAgICAgICJkaXJ0eSI6IE5vbmUsCi0rICAgICAgICAgICAgICAgICJlcnJvciI6 ICJ1bmFibGUgdG8gZmluZCByb290IG9mIHNvdXJjZSB0cmVlIiwKLSsgICAgICAgICAgICAgICAg ImRhdGUiOiBOb25lfQotIAotICAgICB0cnk6Ci0gICAgICAgICBwaWVjZXMgPSBnaXRfcGllY2Vz X2Zyb21fdmNzKGNmZy50YWdfcHJlZml4LCByb290LCB2ZXJib3NlKQotQEAgLTY2OCwxMCArNjc4 LDYgQEAgZGVmIGdldF92ZXJzaW9ucygpOgotICAgICBleGNlcHQgTm90VGhpc01ldGhvZDoKLSAg ICAgICAgIHBhc3MKLSAKLS0gICAgcmV0dXJuIHsKLS0gICAgICAgICJ2ZXJzaW9uIjogIjArdW5r bm93biIsCi0tICAgICAgICAiZnVsbC1yZXZpc2lvbmlkIjogTm9uZSwKLS0gICAgICAgICJkaXJ0 eSI6IE5vbmUsCi0tICAgICAgICAiZXJyb3IiOiAidW5hYmxlIHRvIGNvbXB1dGUgdmVyc2lvbiIs Ci0tICAgICAgICAiZGF0ZSI6IE5vbmUsCi0tICAgIH0KLSsgICAgcmV0dXJuIHsidmVyc2lvbiI6 ICIwK3Vua25vd24iLCAiZnVsbC1yZXZpc2lvbmlkIjogTm9uZSwKLSsgICAgICAgICAgICAiZGly dHkiOiBOb25lLAotKyAgICAgICAgICAgICJlcnJvciI6ICJ1bmFibGUgdG8gY29tcHV0ZSB2ZXJz aW9uIiwgImRhdGUiOiBOb25lfQotLS0gCi0yLjQ5LjAKLQoKZGlmZiAtLWdpdCBhL3B5dGhvbi14 bmF0NHRlc3RzLnNwZWMgYi9weXRob24teG5hdDR0ZXN0cy5zcGVjCmluZGV4IDZlZGIxZWQuLjFl MGM2MTkgMTAwNjQ0Ci0tLSBhL3B5dGhvbi14bmF0NHRlc3RzLnNwZWMKKysrIGIvcHl0aG9uLXhu YXQ0dGVzdHMuc3BlYwpAQCAtMSwxNCArMSwxMyBAQAogJWdsb2JhbCBweXBpX25hbWUgeG5hdDR0 ZXN0cworJWdsb2JhbCBmb3JnZXVybCBodHRwczovL2dpdGh1Yi5jb20vYXVzdHJhbGlhbi1pbWFn aW5nLXNlcnZpY2UveG5hdDR0ZXN0cworVmVyc2lvbjogICAgICAgIDAuNC4xCislZ2xvYmFsIHRh ZyAgICAgdiV7dmVyc2lvbn0KKyVmb3JnZW1ldGEKIAogTmFtZTogICAgICAgICAgIHB5dGhvbi0l e3B5cGlfbmFtZX0KLVZlcnNpb246ICAgICAgICAwLjMuMTQKIFJlbGVhc2U6ICAgICAgICAlYXV0 b3JlbGVhc2UKIFN1bW1hcnk6ICAgICAgICBDcmVhdGUgYmFzaWMgWE5BVCBpbnN0YW5jZSBmb3Ig QVBJIHRlc3RzCiAKLSVnbG9iYWwgZm9yZ2V1cmwgaHR0cHM6Ly9naXRodWIuY29tL2F1c3RyYWxp YW4taW1hZ2luZy1zZXJ2aWNlL3huYXQ0dGVzdHMKLSVnbG9iYWwgdGFnIHYle3ZlcnNpb259Ci0l Zm9yZ2VtZXRhCi0KICMgVGhlIGVudGlyZSBzb3VyY2UgaXMgQXBhY2hlLTIuMCwgZXhjZXB0IHRo YXQgdmVyc2lvbmVlci5weSBhbmQgdGhlCiAjIF92ZXJzaW9uLnB5IGl0IGdlbmVyYXRlcyBhcmUg Q0MwLTEuMCwgbm90IGdlbmVyYWxseSBhbGxvd2VkIGZvciBjb2RlIGluCiAjIEZlZG9yYSwgYnV0 IE9LIHVuZGVyIHRoZSBleGNlcHRpb24gZm9yIGV4aXN0aW5nIHVzZXMgaW4gRmVkb3JhIHByaW9y IHRvCkBAIC0xNiwxNSArMTUsOCBAQCBTdW1tYXJ5OiAgICAgICAgQ3JlYXRlIGJhc2ljIFhOQVQg aW5zdGFuY2UgZm9yIEFQSSB0ZXN0cwogIyBfdmVyc2lvbi5weSB1c2luZyB0aGUgc3lzdGVtIHB5 dGhvbi12ZXJzaW9uZWVyLCB3aGljaCBpcyBhIGxhdGVyIHZlcnNpb24KICMgdW5kZXIgVW5saWNl bnNlIHNvIHRoZSByZXN1bHRpbmcgX3ZlcnNpb24ucHkgaXMgYWxzbyBVbmxpY2Vuc2UuCiBMaWNl bnNlOiAgICAgICAgQXBhY2hlLTIuMCBBTkQgVW5saWNlbnNlCi1VUkw6ICAgICAgICAgICAgJWZv cmdldXJsCitVUkw6ICAgICAgICAgICAgICVmb3JnZXVybAogU291cmNlOiAgICAgICAgICVmb3Jn ZXNvdXJjZQotIyBVcGRhdGUgVmVyc2lvbmVlciBhbmQgZml4IGNvbmZpZy4KLSMgUGFydCBvZiB0 aGUgY2hhbmdlcyBhcmUgcmVxdWlyZWQgZXZlbiBpZiB1cHN0cmVhbSBkZWNpZGVzIG5vdCB0bwot IyBtZXJnZSB0aGUgUFIgZnVsbHkgKGUuZy4gc3RpY2tpbmcgd2l0aCB0aGUgY3VycmVudCBWZXJz aW9uZWVyIHZlcnNpb24pLgotIyBJbiB0aGF0IGNhc2Ugd2UgY291bGQgdXNlIHRoZSBzeXN0ZW0g aW5zdGFsbGVkIFZlcnNpb25lZXIgdG8gcmVjcmVhdGUKLSMgdmVyc2lvbmVlci5weSBhcyB3ZWxs IGFzIF92ZXJzaW9uLnB5IHdoaWNoIGFyZSB0aGFuIFVubGljZW5zZS4KLSMgaHR0cHM6Ly9naXRo dWIuY29tL0F1c3RyYWxpYW4tSW1hZ2luZy1TZXJ2aWNlL3huYXQ0dGVzdHMvcHVsbC8yMAotUGF0 Y2g6ICAgICAgICAgIDAwMDEtVXBkYXRlLVZlcnNpb25lZXItYW5kLWZpeC1jb25maWcucGF0Y2gK IAogQnVpbGRBcmNoOiAgICAgIG5vYXJjaAogQnVpbGRSZXF1aXJlczogIGdpdC1jb3JlCkBAIC00 Nyw3ICszOSw3IEBAIFByb3ZpZGVzOiAgICAgICB4bmF0NHRlc3RzID0gJXs/ZXBvY2g6JXtlcG9j aH06fSV7dmVyc2lvbn0tJXtyZWxlYXNlfQogCiAKICVwcmVwCi0lZm9yZ2VhdXRvc2V0dXAgLXAx IC1TIGdpdAorJWZvcmdlYXV0b3NldHVwIC1TIGdpdAogCiAjIFJlbW92ZSBkdXBsaWNhdGVkIGVu dHJ5IHBvaW50CiAjIFdlJ2xsIGNyZWF0ZSBhIHN5bWxpbmsgYnkgdGhlIHNhbWUgbmFtZSBpbnN0 ZWFkCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggZWM1MzE1Mi4uZGE1NGVi OSAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi1TSEE1MTIg KHhuYXQ0dGVzdHMtMC4zLjE0LnRhci5neikgPSA4NWFkNzEwMmViNDMwNDA2YzNhYTgyNjI2OWE1 NjRlMTU1NmM4Y2Q5YTZiYTNmYjVkNTAwZDZlOTM1NzlhMDBkZjNlMjY5ZjU1NmY0OWNlMzhjMGNi OGI1NmZjNDgwODk3NmRlMjM2MmQ5MWVhMGUxYWNkMTdiODIyYjVjZjU0MQorU0hBNTEyICh4bmF0 NHRlc3RzLTAuNC4xLnRhci5neikgPSA1MzdjNTNkMzA4NjEwYzFhYzM0MDViMWFiODg5ZjlhNjky YTU3OTFlZGI3YTEzZTU2Y2VjZjFjNDBjODIwZTM5YTk5ODNmMThjNDRmODFiNzYxMDFlMzBkYjZh NjVkYmRlOTEwMDFiM2Q2YzZlNmI5ODM1Mzc0NDQ1ZGM3ZTkzYwo=