From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id dfc2a03b for ; Sun, 7 Jul 2019 06:24:50 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============7518759233856504657==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] xbps-src: multiple performance improvements To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 07 Jul 2019 08:24:50 +0200 Message-ID: <20190707062450.NL0Mr6jJPKpl6ngK6u6P7466kyrWAGb2h0dxSe9aaco@z> GitHub notification mails are now in MIME to allow UTF8. --===============7518759233856504657== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgeHRyYWVtZSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20veHRy YWVtZS92b2lkLXBhY2thZ2VzIHhicHMtc3JjLXVsdHJhLWZhc3QKaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzEyNzk3Cgp4YnBzLXNyYzogbXVsdGlwbGUg cGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzCnhicHMtc3JjOiBtdWx0aXBsZSBwZXJmb3JtYW5jZSBp bXByb3ZlbWVudHMNCg0KLSB1c2UgeGJwcy1jaGVja3ZlcnMoMSkgdG8gcmVzb2x2ZSBkZXBlbmRl bmNpZXMuDQotIGFsbCBkZXBlbmRlbmNpZXMgYXJlIGluc3RhbGxlZCBhdCBvbmNlIGZvciB0aGUg aG9zdCBhbmQgdGFyZ2V0Lg0KLSB0aGUgYHNob3ctYnVpbGQtZGVwc2AgdGFyZ2V0IGlzIG5vdyBt dWNoIGZhc3Rlci4NCi0gdGhlIGB1cGRhdGUtYnVsay9zaG93LXJlcG8tdXBkYXRlc2AgdGFyZ2V0 cyBhcmUgbm93IG11Y2ggZmFzdGVyLg0KLSB0aGUgYHVwZGF0ZS1zeXMvc2hvdy1zeXMtdXBkYXRl c2AgdGFyZ2V0cyBhcmUgbm93IG11Y2ggZmFzdGVyLg0KLSB0aGUgYGJvb3RzdHJhcGAgdGFyZ2V0 IG5vdyB3b3JrcyBvbiBtdXNsIGhvc3RzLg0KLSBzaW1wbGlmaWVkIHNvbWUgbG9vcHMuDQotIHVz ZSBjdXQoMSkgcmF0aGVyIHRoYW4gYXdrKDEpIHdoZXJlIGFwcGxpY2FibGUuDQotIG11bHRpcGxl IHJhbmRvbSBjaGFuZ2VzIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuDQoNCiBCYXNlZCBvbiB3b3Jr IHN0YXJ0ZWQgYnkgQER1bmNhZW4gb24gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzEyNDMzDQoNCkNsb3NlIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxp bnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8xMjQzMw0KQ2xvc2UgaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzExMjgyCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRw czovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTI3OTcucGF0Y2gg aXMgYXR0YWNoZWQ= --===============7518759233856504657== Content-Type: application/text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-xbps-src-ultra-fast-12797.patch" RnJvbSA3ODgzM2RjMzgwOTc2MjZmN2RiZWUwMjljYjE3ZDhlOTM0N2YwYmFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdWFuIFJQIDx4dHJhZW1lQGdtYWlsLmNvbT4KRGF0ZTogU3Vu LCA3IEp1bCAyMDE5IDA4OjIzOjI4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0geGJwcy1zcmM6IG11 bHRpcGxlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cy4KCi0gdXNlIHhicHMtY2hlY2t2ZXJzKDEp IHRvIHJlc29sdmUgZGVwZW5kZW5jaWVzLgotIGFsbCBkZXBlbmRlbmNpZXMgYXJlIGluc3RhbGxl ZCBhdCBvbmNlIGZvciB0aGUgaG9zdCBhbmQgdGFyZ2V0LgotIHRoZSBzaG93LWJ1aWxkLWRlcHMg dGFyZ2V0IGlzIG5vdyBtdWNoIGZhc3Rlci4KLSB0aGUgdXBkYXRlLWJ1bGsvc2hvdy1yZXBvLXVw ZGF0ZXMgdGFyZ2V0cyBhcmUgbm93IG11Y2ggZmFzdGVyLgotIHRoZSB1cGRhdGUtc3lzL3Nob3ct c3lzLXVwZGF0ZXMgdGFyZ2V0cyBhcmUgbm93IG11Y2ggZmFzdGVyLgotIHRoZSBib290c3RyYXAg dGFyZ2V0IG5vdyB3b3JrcyBvbiBtdXNsIGhvc3RzLgotIHNpbXBsaWZpZWQgc29tZSBsb29wcy4K LSB1c2UgY3V0KDEpIHJhdGhlciB0aGFuIGF3aygxKSB3aGVyZSBhcHBsaWNhYmxlLgotIG11bHRp cGxlIHJhbmRvbSBjaGFuZ2VzIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuCgpCYXNlZCBvbiB3b3Jr IHN0YXJ0ZWQgYnkgQER1bmNhZW4gb24gIzEyNDMzCgpDbG9zZSAjMTI0MzMKQ2xvc2UgIzExMjgy Ci0tLQogLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx ICsKIGNvbW1vbi9ob29rcy9kby1wa2cvMDAtZ2VuLXBrZy5zaCAgICAgICAgICAgICB8ICAgOCAr LQogLi4uL2hvb2tzL3ByZS1wa2cvMDQtZ2VuZXJhdGUtcnVudGltZS1kZXBzLnNoIHwgIDQxICst CiBjb21tb24vaG9va3MvcHJlLXBrZy85OS1wa2dsaW50LnNoICAgICAgICAgICAgfCAgIDQgKy0K IGNvbW1vbi94YnBzLXNyYy9saWJleGVjL2J1aWxkLnNoICAgICAgICAgICAgICB8ICAgNCAtCiBj b21tb24veGJwcy1zcmMvbGliZXhlYy94YnBzLXNyYy1kb2luc3RhbGwuc2ggfCAgIDIgKy0KIGNv bW1vbi94YnBzLXNyYy9saWJleGVjL3hicHMtc3JjLXByZXBrZy5zaCAgICB8ICAgMiArLQogY29t bW9uL3hicHMtc3JjL3NodXRpbHMvYnVpbGRfZGVwZW5kZW5jaWVzLnNoIHwgNDg4ICsrKysrKyst LS0tLS0tLS0tLQogY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVsay5zaCAgICAgICAgICAgICAg IHwgIDk1ICsrLS0KIGNvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2Nocm9vdC5zaCAgICAgICAgICAg ICB8ICAyMSArLQogY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY29tbW9uLnNoICAgICAgICAgICAg IHwgIDE2ICstCiBjb21tb24veGJwcy1zcmMvc2h1dGlscy9jcm9zcy5zaCAgICAgICAgICAgICAg fCAgMTMgKy0KIGNvbW1vbi94YnBzLXNyYy9zaHV0aWxzL3BrZ3RhcmdldC5zaCAgICAgICAgICB8 ICAgNCArCiBjb21tb24veGJwcy1zcmMvc2h1dGlscy9zaG93LnNoICAgICAgICAgICAgICAgfCAg NDEgKy0KIHhicHMtc3JjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMy NiArKysrKystLS0tLS0KIDE1IGZpbGVzIGNoYW5nZWQsIDQ0NiBpbnNlcnRpb25zKCspLCA2MjAg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXgg YWNjNmJmMzM0NzkuLjU5MWIzNTA3NTkzIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5n aXRpZ25vcmUKQEAgLTcsMyArNyw0IEBAIG1hc3RlcmRpcioKIGhvc3RkaXIqCiBldGMvY29uZgog ZXRjL3ZpcnR1YWwKKy54YnBzLWNoZWNrdmVycy5wbGlzdApkaWZmIC0tZ2l0IGEvY29tbW9uL2hv b2tzL2RvLXBrZy8wMC1nZW4tcGtnLnNoIGIvY29tbW9uL2hvb2tzL2RvLXBrZy8wMC1nZW4tcGtn LnNoCmluZGV4IDc4ZWMyYTE0MjJhLi5jMGVkMDg4ZGE5ZCAxMDA2NDQKLS0tIGEvY29tbW9uL2hv b2tzL2RvLXBrZy8wMC1nZW4tcGtnLnNoCisrKyBiL2NvbW1vbi9ob29rcy9kby1wa2cvMDAtZ2Vu LXBrZy5zaApAQCAtMzIsMTYgKzMyLDE2IEBAIGdlbnBrZygpIHsKIAogCV9wcmVzZXJ2ZT0ke3By ZXNlcnZlOistcH0KIAlpZiBbIC1zICR7UEtHREVTVERJUn0vcmRlcHMgXTsgdGhlbgotCQlfZGVw cz0iJChjYXQgJHtQS0dERVNURElSfS9yZGVwcykiCisJCV9kZXBzPSIkKDwke1BLR0RFU1RESVJ9 L3JkZXBzKSIKIAlmaQogCWlmIFsgLXMgJHtQS0dERVNURElSfS9zaGxpYi1wcm92aWRlcyBdOyB0 aGVuCi0JCV9zaHByb3ZpZGVzPSIkKGNhdCAke1BLR0RFU1RESVJ9L3NobGliLXByb3ZpZGVzKSIK KwkJX3NocHJvdmlkZXM9IiQoPCR7UEtHREVTVERJUn0vc2hsaWItcHJvdmlkZXMpIgogCWZpCiAJ aWYgWyAtcyAke1BLR0RFU1RESVJ9L3NobGliLXJlcXVpcmVzIF07IHRoZW4KLQkJX3NocmVxdWly ZXM9IiQoY2F0ICR7UEtHREVTVERJUn0vc2hsaWItcmVxdWlyZXMpIgorCQlfc2hyZXF1aXJlcz0i JCg8JHtQS0dERVNURElSfS9zaGxpYi1yZXF1aXJlcykiCiAJZmkKIAlpZiBbIC1zICR7WEJQU19T VEFURURJUn0vZ2l0cmV2IF07IHRoZW4KLQkJX2dpdHJldnM9IiQoY2F0ICR7WEJQU19TVEFURURJ Un0vZ2l0cmV2KSIKKwkJX2dpdHJldnM9IiQoPCR7WEJQU19TVEFURURJUn0vZ2l0cmV2KSIKIAlm aQogCiAJIyBTdHJpcHBpbmcgd2hpdGVzcGFjZXMKZGlmZiAtLWdpdCBhL2NvbW1vbi9ob29rcy9w cmUtcGtnLzA0LWdlbmVyYXRlLXJ1bnRpbWUtZGVwcy5zaCBiL2NvbW1vbi9ob29rcy9wcmUtcGtn LzA0LWdlbmVyYXRlLXJ1bnRpbWUtZGVwcy5zaAppbmRleCA2MjA3NzAyMjcxMS4uNmU0NWI3ZGQz YzMgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9ob29rcy9wcmUtcGtnLzA0LWdlbmVyYXRlLXJ1bnRpbWUt ZGVwcy5zaAorKysgYi9jb21tb24vaG9va3MvcHJlLXBrZy8wNC1nZW5lcmF0ZS1ydW50aW1lLWRl cHMuc2gKQEAgLTUsNyArNSw3IEBACiAjCS0gR2VuZXJhdGVzIHNobGliLXJlcXVpcmVzIGZpbGUg Zm9yIHhicHMtY3JlYXRlKDEpCiAKIGFkZF9ydW5kZXAoKSB7Ci0gICAgbG9jYWwgZGVwPSIkMSIg aT0gcnBrZ2RlcD0gX2RlcG5hbWU9IF9yZGVwcz0gZm91bmQ9CisgICAgbG9jYWwgZGVwPSIkMSIg aT0gcnBrZ2RlcD0gX2RlcG5hbWU9IGZvdW5kPQogCiAgICAgX2RlcG5hbWU9IiQoJFhCUFNfVUhF TFBFUl9DTUQgZ2V0cGtnZGVwbmFtZSAke2RlcH0gMj4vZGV2L251bGwpIgogICAgIGlmIFsgLXog IiR7X2RlcG5hbWV9IiBdOyB0aGVuCkBAIC02OCwyNiArNjgsMTkgQEAgaG9vaygpIHsKICAgICBl eGVjIDwgJGRlcHNmdG1wCiAgICAgd2hpbGUgcmVhZCBmOyBkbwogICAgICAgICBsZj0ke2YjJHtQ S0dERVNURElSfX0KLQlpZiBbICIke3NraXByZGVwcy8ke2xmfS99IiAhPSAiJHtza2lwcmRlcHN9 IiBdOyB0aGVuCi0JCW1zZ19ub3JtYWwgIlNraXBwaW5nIGRlcGVuZGVuY3kgc2NhbiBmb3IgJHts Zn1cbiIKLQkJY29udGludWUKLQlmaQorCSAgICBpZiBbICIke3NraXByZGVwcy8ke2xmfS99IiAh PSAiJHtza2lwcmRlcHN9IiBdOyB0aGVuCisJCSAgICBtc2dfbm9ybWFsICJTa2lwcGluZyBkZXBl bmRlbmN5IHNjYW4gZm9yICR7bGZ9XG4iCisJCSAgICBjb250aW51ZQorCSAgICBmaQogICAgICAg ICBjYXNlICIkKGZpbGUgLWJpICIkZiIpIiBpbgogICAgICAgICAgICAgYXBwbGljYXRpb24veC0q ZXhlY3V0YWJsZSp8YXBwbGljYXRpb24veC1zaGFyZWRsaWIqKQogICAgICAgICAgICAgICAgIGZv ciBubGliIGluICQoJE9CSkRVTVAgLXAgIiRmInxncmVwIE5FRURFRHxhd2sgJ3twcmludCAkMn0n KTsgZG8KLSAgICAgICAgICAgICAgICAgICAgaWYgWyAteiAiJHZlcmlmeV9kZXBzIiBdOyB0aGVu Ci0gICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZnlfZGVwcz0iJG5saWIiCi0gICAgICAgICAg ICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAg ICAgICAgICAgICBbIC16ICIkdmVyaWZ5X2RlcHMiIF0gJiYgdmVyaWZ5X2RlcHM9IiRubGliIiAm JiBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICBmb3VuZD0wCiAgICAgICAgICAgICAgICAg ICAgIGZvciBqIGluICR7dmVyaWZ5X2RlcHN9OyBkbwotICAgICAgICAgICAgICAgICAgICAgICAg WyAiJGoiICE9ICIkbmxpYiIgXSAmJiBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICAgICAg Zm91bmRfZHVwPTEKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAg ICAgICAgICAgICBbWyAkaiA9PSAkbmxpYiBdXSAmJiBmb3VuZD0xICYmIGJyZWFrCiAgICAgICAg ICAgICAgICAgICAgIGRvbmUKLSAgICAgICAgICAgICAgICAgICAgaWYgWyAteiAiJGZvdW5kX2R1 cCIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZ5X2RlcHM9IiR2ZXJpZnlf ZGVwcyAkbmxpYiIKLSAgICAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAgICAg dW5zZXQgZm91bmRfZHVwCisgICAgICAgICAgICAgICAgICAgIFtbICRmb3VuZCAtZXEgMCBdXSAm JiB2ZXJpZnlfZGVwcz0iJHZlcmlmeV9kZXBzICRubGliIgogICAgICAgICAgICAgICAgIGRvbmUK ICAgICAgICAgICAgICAgICA7OwogICAgICAgICBlc2FjCkBAIC05NywxMyArOTAsMTMgQEAgaG9v aygpIHsKIAogICAgICMKICAgICAjIEFkZCByZXF1aXJlZCBydW4gdGltZSBwYWNrYWdlcyBieSB1 c2luZyByZXF1aXJlZCBzaGxpYnMgcmVzb2x2ZWQKLSAgICAjIGFib3ZlLCB0aGUgbWFwcGluZyBp cyBkb25lIHRocnUgdGhlIG1hcHBpbmdfc2hsaWJfYmlucGtnLnR4dCBmaWxlLgorICAgICMgYWJv dmUsIHRoZSBtYXBwaW5nIGlzIGRvbmUgdGhydSB0aGUgY29tbW9uL3NobGlicyBmaWxlLgogICAg ICMKICAgICBmb3IgZiBpbiAke3ZlcmlmeV9kZXBzfTsgZG8KICAgICAgICAgdW5zZXQgX2YgaiBy ZGVwIF9yZGVwIHJkZXBjbnQgc29uYW1lIF9wa2duYW1lIF9yZGVwdmVyIGZvdW5kCiAgICAgICAg IF9mPSQoZWNobyAiJGYifHNlZCAtRSAnc3xcK3xcXCt8ZycpCi0gICAgICAgIHJkZXA9IiQoZ3Jl cCAtRSAiXiR7X2Z9W1s6Ymxhbms6XV0rLiokIiAkbWFwc2hsaWJzfGF3ayAne3ByaW50ICQyfScp IgotICAgICAgICByZGVwY250PSIkKGdyZXAgLUUgIl4ke19mfVtbOmJsYW5rOl1dKy4qJCIgJG1h cHNobGlic3xhd2sgJ3twcmludCAkMn0nfHdjIC1sKSIKKyAgICAgICAgcmRlcD0iJChncmVwIC1F ICJeJHtfZn1bWzpibGFuazpdXSsuKiQiICRtYXBzaGxpYnN8Y3V0IC1kICcgJyAtZjIpIgorICAg ICAgICByZGVwY250PSIkKGdyZXAgLUUgIl4ke19mfVtbOmJsYW5rOl1dKy4qJCIgJG1hcHNobGli c3xjdXQgLWQgJyAnIC1mMnx3YyAtbCkiCiAgICAgICAgIGlmIFsgLXogIiRyZGVwIiBdOyB0aGVu CiAgICAgICAgICAgICAjIElnbm9yZSBsaWJzIGJ5IGN1cnJlbnQgcGtnCiAgICAgICAgICAgICBz b25hbWU9JChmaW5kICR7UEtHREVTVERJUn0gLW5hbWUgIiRmIikKQEAgLTEyMSwxNSArMTE0LDkg QEAgaG9vaygpIHsKICAgICAgICAgICAgICAgICBfcGtnbmFtZT0kKCRYQlBTX1VIRUxQRVJfQ01E IGdldHBrZ25hbWUgIiRqIikKICAgICAgICAgICAgICAgICAjIGlmIHRoZXJlJ3MgYSBTT05BTUUg bWF0Y2hpbmcgcGtnbmFtZSwgdXNlIGl0LgogICAgICAgICAgICAgICAgIGZvciB4IGluICR7cGtn bmFtZX0gJHtzdWJwYWNrYWdlc307IGRvCi0gICAgICAgICAgICAgICAgICAgIGlmIFsgIiR7X3Br Z25hbWV9IiA9ICIke3h9IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICBmb3VuZD0x Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICBmaQor ICAgICAgICAgICAgICAgICAgICBbWyAkX3BrZ25hbWUgPT0gJHggXV0gJiYgZm91bmQ9MSAmJiBi cmVhawogICAgICAgICAgICAgICAgIGRvbmUKLSAgICAgICAgICAgICAgICBpZiBbIC1uICIkZm91 bmQiIF07IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgX3JkZXA9JGoKLSAgICAgICAgICAgICAg ICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgIFtbICRmb3Vu ZCBdXSAmJiBfcmRlcD0kaiAmJiBicmVhawogICAgICAgICAgICAgZG9uZQogICAgICAgICAgICAg aWYgWyAteiAiJHtfcmRlcH0iIF07IHRoZW4KICAgICAgICAgICAgICAgICAjIG90aGVyd2lzZSBw aWNrIHVwIHRoZSBmaXJzdCBvbmUuCmRpZmYgLS1naXQgYS9jb21tb24vaG9va3MvcHJlLXBrZy85 OS1wa2dsaW50LnNoIGIvY29tbW9uL2hvb2tzL3ByZS1wa2cvOTktcGtnbGludC5zaAppbmRleCA3 YWUxODNhZThlOC4uYWIyYjIxNTUwOGUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9ob29rcy9wcmUtcGtn Lzk5LXBrZ2xpbnQuc2gKKysrIGIvY29tbW9uL2hvb2tzL3ByZS1wa2cvOTktcGtnbGludC5zaApA QCAtMTE5LDcgKzExOSw3IEBAIGhvb2soKSB7CiAJCQkJbXNnX3JlZCAiJHtwa2d2ZXJ9OiBTT05B TUUgYnVtcCBkZXRlY3RlZDogJHtsaWJuYW1lfS5zby4ke2NvbmZsaWN0UmV2fSAtPiAke2xpYm5h bWV9LnNvLiR7cmV2fVxuIgogCQkJCW1zZ19yZWQgIiR7cGtndmVyfTogcGxlYXNlIHVwZGF0ZSBj b21tb24vc2hsaWJzIHdpdGggdGhpcyBsaW5lOiBcIiR7bGlibmFtZX0uc28uJHtyZXZ9ICR7cGtn dmVyfVwiXG4iCiAJCQkJbXNnX3JlZCAiJHtwa2d2ZXJ9OiBhbGwgcmV2ZXJzZSBkZXBlbmRlbmNp ZXMgc2hvdWxkIGFsc28gYmUgcmV2YnVtcGVkIHRvIGJlIHJlYnVpbHQgYWdhaW5zdCAke2xpYm5h bWV9LnNvLiR7cmV2fTpcbiIKLQkJCQlfcmV2ZGVwcz0kKCRYQlBTX1FVRVJZX1hDTUQgLVJzICR7 bGlibmFtZX0uc28gLXAgc2hsaWItcmVxdWlyZXN8YXdrICd7cHJpbnQgJDF9JykKKwkJCQlfcmV2 ZGVwcz0kKCRYQlBTX1FVRVJZX1hDTUQgLVJzICR7bGlibmFtZX0uc28gLXAgc2hsaWItcmVxdWly ZXN8Y3V0IC1kICcgJyAtZjEpCiAJCQkJZm9yIHggaW4gJHtfcmV2ZGVwc307IGRvCiAJCQkJCW1z Z19yZWQgIiAgICR7eCU6fVxuIgogCQkJCWRvbmUKQEAgLTEyOCw3ICsxMjgsNyBAQCBob29rKCkg ewogCQkJIyBUcnkgdG8gbWF0Y2ggcHJvdmlkZWQgc2hsaWJzIGluIHZpcnR1YWwgcGFja2FnZXMu CiAJCQlmb3IgZiBpbiAke3Byb3ZpZGVzfTsgZG8KIAkJCQlfdnBrZ25hbWU9IiQoJFhCUFNfVUhF TFBFUl9DTUQgZ2V0cGtnbmFtZSAke2Z9IDI+L2Rldi9udWxsKSIKLQkJCQlfc3BrZ25hbWU9IiQo Z3JlcCAiXiR7ZmlsZW5hbWV9IiAkbWFwc2hsaWJzIHwgYXdrICd7cHJpbnQgJDJ9JykiCisJCQkJ X3Nwa2duYW1lPSIkKGdyZXAgIl4ke2ZpbGVuYW1lfSIgJG1hcHNobGlicyB8IGN1dCAtZCAnICcg LWYyKSIKIAkJCQlfbGlicGtnbmFtZT0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2duYW1lICR7 X3Nwa2duYW1lfSAyPi9kZXYvbnVsbCkiCiAJCQkJaWYgWyAteiAiJHtfc3BrZ25hbWV9IiAtbyAg LXogIiR7X2xpYnBrZ25hbWV9IiBdOyB0aGVuCiAJCQkJCWNvbnRpbnVlCmRpZmYgLS1naXQgYS9j b21tb24veGJwcy1zcmMvbGliZXhlYy9idWlsZC5zaCBiL2NvbW1vbi94YnBzLXNyYy9saWJleGVj L2J1aWxkLnNoCmluZGV4IDk5MDhiMzM2OTU3Li4xZjc1MWNhMTNiOSAxMDA3NTUKLS0tIGEvY29t bW9uL3hicHMtc3JjL2xpYmV4ZWMvYnVpbGQuc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL2xpYmV4 ZWMvYnVpbGQuc2gKQEAgLTQzLDEwICs0Myw2IEBAIGlmIFsgIiRQS0dOQU1FIiAhPSAiJFhCUFNf VEFSR0VUX1BLRyIgLW8gLXogIiRYQlBTX1NLSVBfREVQUyIgXTsgdGhlbgogICAgIGluc3RhbGxf cGtnX2RlcHMgJFBLR05BTUUgJFhCUFNfVEFSR0VUX1BLRyBwa2cgJFhCUFNfQ1JPU1NfQlVJTEQg JFhCUFNfQ1JPU1NfUFJFUEFSRSB8fCBleGl0ICQ/CiBmaQogCi1pZiBbIC16ICIkWEJQU19DUk9T U19QUkVQQVJFIiBdOyB0aGVuCi0gICAgaW5zdGFsbF9jcm9zc19wa2cgJFhCUFNfQ1JPU1NfQlVJ TEQgfHwgZXhpdCAkPwotZmkKLQogIyBGZXRjaCBkaXN0ZmlsZXMgYWZ0ZXIgaW5zdGFsbGluZyBy ZXF1aXJlZCBkZXBlbmRlbmNpZXMsCiAjIGJlY2F1c2Ugc29tZSBvZiB0aGVtIG1pZ2h0IGJlIHJl cXVpcmVkIGZvciBkb19mZXRjaCgpLgogJFhCUFNfTElCRVhFQ0RJUi94YnBzLXNyYy1kb2ZldGNo LnNoICRTT1VSQ0VQS0cgJFhCUFNfQ1JPU1NfQlVJTEQgfHwgZXhpdCAxCmRpZmYgLS1naXQgYS9j b21tb24veGJwcy1zcmMvbGliZXhlYy94YnBzLXNyYy1kb2luc3RhbGwuc2ggYi9jb21tb24veGJw cy1zcmMvbGliZXhlYy94YnBzLXNyYy1kb2luc3RhbGwuc2gKaW5kZXggYjNkNWQ3Mjc2ZjguLjE0 ZTExN2E5MjNiIDEwMDc1NQotLS0gYS9jb21tb24veGJwcy1zcmMvbGliZXhlYy94YnBzLXNyYy1k b2luc3RhbGwuc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL2xpYmV4ZWMveGJwcy1zcmMtZG9pbnN0 YWxsLnNoCkBAIC02Myw3ICs2Myw3IEBAIGlmIFsgISAtZiAkWEJQU19TVUJQS0dfSU5TVEFMTF9E T05FIF07IHRoZW4KICAgICAgICAgICAgIHJ1bl9mdW5jIHBrZ19pbnN0YWxsCiAgICAgICAgIGZp CiAgICAgZmkKLSAgICBzZXR1cF9wa2dfZGVwZW5kcyAke3BrZ25hbWU6PSRQS0dOQU1FfQorICAg IHNldHVwX3BrZ19kZXBlbmRzICR7cGtnbmFtZTo9JFBLR05BTUV9IHx8IGV4aXQgMQogICAgIHJ1 bl9wa2dfaG9va3MgcG9zdC1pbnN0YWxsCiAgICAgdG91Y2ggLWYgJFhCUFNfU1VCUEtHX0lOU1RB TExfRE9ORQogZmkKZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9saWJleGVjL3hicHMtc3Jj LXByZXBrZy5zaCBiL2NvbW1vbi94YnBzLXNyYy9saWJleGVjL3hicHMtc3JjLXByZXBrZy5zaApp bmRleCA0YmU0NWZkMGExNC4uMzRmOTFiM2Y1ZjkgMTAwNzU1Ci0tLSBhL2NvbW1vbi94YnBzLXNy Yy9saWJleGVjL3hicHMtc3JjLXByZXBrZy5zaAorKysgYi9jb21tb24veGJwcy1zcmMvbGliZXhl Yy94YnBzLXNyYy1wcmVwa2cuc2gKQEAgLTQzLDcgKzQzLDcgQEAgaWYgWyAiJHNvdXJjZXBrZyIg IT0gIiRQS0dOQU1FIiBdOyB0aGVuCiBmaQogCiBzb3VyY2VfZmlsZSAkWEJQU19DT01NT05ESVIv ZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUvJHtidWlsZF9zdHlsZX0uc2gKLXNldHVwX3BrZ19kZXBl bmRzICRwa2duYW1lCitzZXR1cF9wa2dfZGVwZW5kcyAkcGtnbmFtZSB8fCBleGl0IDEKIHJ1bl9w a2dfaG9va3MgcHJlLXBrZwogCiB0b3VjaCAtZiAkWEJQU19QUkVQS0dfRE9ORQpkaWZmIC0tZ2l0 IGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVpbGRfZGVwZW5kZW5jaWVzLnNoIGIvY29tbW9u L3hicHMtc3JjL3NodXRpbHMvYnVpbGRfZGVwZW5kZW5jaWVzLnNoCmluZGV4IDliZjM3Y2RmYzlk Li5mZDMyNzA2NmUxNyAxMDA2NDQKLS0tIGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVpbGRf ZGVwZW5kZW5jaWVzLnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1aWxkX2RlcGVu ZGVuY2llcy5zaApAQCAtMSw5ICsxLDkgQEAKICMgdmltOiBzZXQgdHM9NCBzdz00IGV0OgogIwog c2V0dXBfcGtnX2RlcGVuZHMoKSB7Ci0gICAgbG9jYWwgcGtnPSIkMSIgaiBfcGtnZGVwbmFtZSBf cGtnZGVwIF9ycGtnbmFtZSBfZGVwbmFtZSBfZGVwdmVyIF9yZXBsYWNlbWVudAorICAgIGxvY2Fs IHBrZz0iJDEiIG91dD0iJDIiIGogX3Jwa2duYW1lIF9kZXBuYW1lIF9wa2duYW1lIGZvbyBfZGVw cwogCi0gICAgaWYgWyAtbiAiJHBrZyIgXTsgdGhlbgorICAgIGlmIFtbICRwa2cgXV07IHRoZW4K ICAgICAgICAgIyBzdWJwa2cKICAgICAgICAgaWYgZGVjbGFyZSAtZiAke3BrZ31fcGFja2FnZSA+ L2Rldi9udWxsOyB0aGVuCiAgICAgICAgICAgICAke3BrZ31fcGFja2FnZQpAQCAtMTMsODUgKzEz LDY3IEBAIHNldHVwX3BrZ19kZXBlbmRzKCkgewogICAgIGZvciBqIGluICR7ZGVwZW5kc307IGRv CiAgICAgICAgIF9ycGtnbmFtZT0iJHtqJVw/Kn0iCiAgICAgICAgIF9kZXBuYW1lPSIke2ojKlw/ fSIKLSAgICAgICAgX3BrZ2RlcG5hbWU9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnZGVwbmFt ZSAke19kZXBuYW1lfSAyPi9kZXYvbnVsbCkiCi0gICAgICAgIGlmIFsgLXogIiR7X3BrZ2RlcG5h bWV9IiBdOyB0aGVuCi0gICAgICAgICAgICBfcGtnZGVwbmFtZT0iJCgkWEJQU19VSEVMUEVSX0NN RCBnZXRwa2duYW1lICR7X2RlcG5hbWV9IDI+L2Rldi9udWxsKSIKLSAgICAgICAgZmkKLSAgICAg ICAgaWYgWyAtcyAke1hCUFNfRElTVERJUn0vZXRjL3ZpcnR1YWwgXTsgdGhlbgotICAgICAgICAg ICAgX3JlcGxhY2VtZW50PSQoZWdyZXAgIl4ke19wa2dkZXBuYW1lOi0ke19kZXBuYW1lfX1bWzpi bGFuazpdXSIgJHtYQlBTX0RJU1RESVJ9L2V0Yy92aXJ0dWFsfGN1dCAtZCAnICcgLWYyKQotICAg ICAgICBlbGlmIFsgLXMgJHtYQlBTX0RJU1RESVJ9L2V0Yy9kZWZhdWx0cy52aXJ0dWFsIF07IHRo ZW4KLSAgICAgICAgICAgIF9yZXBsYWNlbWVudD0kKGVncmVwICJeJHtfcGtnZGVwbmFtZTotJHtf ZGVwbmFtZX19W1s6Ymxhbms6XV0iICR7WEJQU19ESVNURElSfS9ldGMvZGVmYXVsdHMudmlydHVh bHxjdXQgLWQgJyAnIC1mMikKLSAgICAgICAgZmkKLSAgICAgICAgaWYgWyAiJHtfcnBrZ25hbWV9 IiA9ICJ2aXJ0dWFsIiBdOyB0aGVuCi0gICAgICAgICAgICBpZiBbIC16ICIke19yZXBsYWNlbWVu dH0iIF07IHRoZW4KLSAgICAgICAgICAgICAgICBtc2dfZXJyb3IgIiRwa2d2ZXI6IGZhaWxlZCB0 byByZXNvbHZlIHZpcnR1YWwgZGVwZW5kZW5jeSBmb3IgJyRqJyAobWlzc2luZyBmcm9tIGV0Yy92 aXJ0dWFsKVxuIgotICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIF9wa2dkZXBuYW1lPSIkKCRY QlBTX1VIRUxQRVJfQ01EIGdldHBrZ2RlcG5hbWUgJHtfcmVwbGFjZW1lbnR9IDI+L2Rldi9udWxs KSIKLSAgICAgICAgICAgIGlmIFsgLXogIiR7X3BrZ2RlcG5hbWV9IiBdOyB0aGVuCi0gICAgICAg ICAgICAgICAgX3BrZ2RlcG5hbWU9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnbmFtZSAke19y ZXBsYWNlbWVudH0gMj4vZGV2L251bGwpIgorICAgICAgICBpZiBbWyAke19ycGtnbmFtZX0gPT0g dmlydHVhbCBdXTsgdGhlbgorICAgICAgICAgICAgX3BrZ25hbWU9JCh4YnBzLXVoZWxwZXIgZ2V0 cGtnbmFtZSAkX2RlcG5hbWUgMj4vZGV2L251bGwpCisgICAgICAgICAgICBbIC16ICIkX3BrZ25h bWUiIF0gJiYgX3BrZ25hbWU9IiRfZGVwbmFtZSIKKyAgICAgICAgICAgIGlmIFsgLXMgJHtYQlBT X0RJU1RESVJ9L2V0Yy92aXJ0dWFsIF07IHRoZW4KKyAgICAgICAgICAgICAgICBmb289JChlZ3Jl cCAiXiR7X3BrZ25hbWV9W1s6Ymxhbms6XV0iICR7WEJQU19ESVNURElSfS9ldGMvdmlydHVhbHxj dXQgLWQgJyAnIC1mMikKKyAgICAgICAgICAgIGVsaWYgWyAtcyAke1hCUFNfRElTVERJUn0vZXRj L2RlZmF1bHRzLnZpcnR1YWwgXTsgdGhlbgorICAgICAgICAgICAgICAgIGZvbz0kKGVncmVwICJe JHtfcGtnbmFtZX1bWzpibGFuazpdXSIgJHtYQlBTX0RJU1RESVJ9L2V0Yy9kZWZhdWx0cy52aXJ0 dWFsfGN1dCAtZCAnICcgLWYyKQogICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIGlmIFsgLXog IiR7X3BrZ2RlcG5hbWV9IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgX3BrZ2RlcG5hbWU9IiR7 X3JlcGxhY2VtZW50fT49MCIKKyAgICAgICAgICAgIGlmIFsgLXogIiRmb28iIF07IHRoZW4KKyAg ICAgICAgICAgICAgICBtc2dfZXJyb3IgIiRwa2d2ZXI6IGZhaWxlZCB0byByZXNvbHZlIHZpcnR1 YWwgZGVwZW5kZW5jeSBmb3IgJyRqJyAobWlzc2luZyBmcm9tIGV0Yy92aXJ0dWFsKVxuIgogICAg ICAgICAgICAgZmkKLSAgICAgICAgICAgIHJ1bl9kZXBlbmRzKz0iICR7X2RlcG5hbWV9PyR7X3Br Z2RlcG5hbWV9IgotICAgICAgICAgICAgI2VjaG8gIkFkZGluZyBkZXBlbmRlbmN5IHZpcnR1YWw6 ICAke19kZXBuYW1lfT8ke19wa2dkZXBuYW1lfSIKKyAgICAgICAgICAgIF9kZXBzKz0iJGZvbyAi CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGlmIFsgLXogIiR7X3BrZ2RlcG5hbWV9IiBdOyB0 aGVuCi0gICAgICAgICAgICAgICAgX3BrZ2RlcD0iJHtfZGVwbmFtZX0+PTAiCi0gICAgICAgICAg ICBlbHNlCi0gICAgICAgICAgICAgICAgX3BrZ2RlcD0iJHtfZGVwbmFtZX0iCisgICAgICAgICAg ICBmb289IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnZGVwbmFtZSAke19kZXBuYW1lfSAyPi9k ZXYvbnVsbCkiCisgICAgICAgICAgICBpZiBbIC16ICIkZm9vIiBdOyB0aGVuCisgICAgICAgICAg ICAgICAgZm9vPSIkKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ25hbWUgJHtfZGVwbmFtZX0gMj4v ZGV2L251bGwpIgorICAgICAgICAgICAgICAgIFsgLXogIiRmb28iIF0gJiYgZm9vPSIke19kZXBu YW1lfSIKICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICBydW5fZGVwZW5kcys9IiAke19wa2dk ZXB9IgorICAgICAgICAgICAgX2RlcHMrPSIkZm9vICIKICAgICAgICAgZmkKKyAgICAgICAgcnVu X2RlcGVuZHMrPSIke19kZXBuYW1lfSAiCiAgICAgZG9uZQotICAgIGZvciBqIGluICR7aG9zdG1h a2VkZXBlbmRzfTsgZG8KLSAgICAgICAgX2RlcG5hbWU9IiR7aiVcPyp9IgotICAgICAgICBfZGVw dmVyPSQoc3JjcGtnX2dldF92ZXJzaW9uICR7X2RlcG5hbWV9KSB8fCBleGl0ICQ/Ci0gICAgICAg IGhvc3RfYnVpbGRfZGVwZW5kcys9IiAke19kZXBuYW1lfS0ke19kZXB2ZXJ9IgotICAgIGRvbmUK LSAgICBpZiBbIC1uICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVuCi0gICAgICAgIGZvciBqIGlu ICR7Y2hlY2tkZXBlbmRzfTsgZG8KLSAgICAgICAgICAgIF9kZXBuYW1lPSIke2olXD8qfSIKLSAg ICAgICAgICAgIF9kZXB2ZXI9JChzcmNwa2dfZ2V0X3ZlcnNpb24gJHtfZGVwbmFtZX0pIHx8IGV4 aXQgJD8KLSAgICAgICAgICAgIGhvc3RfY2hlY2tfZGVwZW5kcys9IiAke19kZXBuYW1lfS0ke19k ZXB2ZXJ9IgotICAgICAgICBkb25lCi0gICAgZmkKLSAgICBmb3IgaiBpbiAke21ha2VkZXBlbmRz fTsgZG8KLSAgICAgICAgX2RlcG5hbWU9IiR7aiVcPyp9IgotICAgICAgICBfZGVwdmVyPSQoc3Jj cGtnX2dldF92ZXJzaW9uICR7X2RlcG5hbWV9KSB8fCBleGl0ICQ/Ci0gICAgICAgIGJ1aWxkX2Rl cGVuZHMrPSIgJHtfZGVwbmFtZX0tJHtfZGVwdmVyfSIKLSAgICBkb25lCisKKyAgICBbWyAkb3V0 ICYmICRfZGVwcyBdXSAmJiBlY2hvICIkX2RlcHMiCisgICAgcmV0dXJuIDAKIH0KIAotIyBJbnN0 YWxsIGEgcmVxdWlyZWQgcGFja2FnZSBkZXBlbmRlbmN5LCBsaWtlOgogIwotIwl4YnBzLWluc3Rh bGwgLUlBeSA8cGtnbmFtZT4KKyMgSW5zdGFsbCByZXF1aXJlZCBwYWNrYWdlIGRlcGVuZGVuY2ll cywgbGlrZToKKyMKKyMJeGJwcy1pbnN0YWxsIC1BSXkgPHBrZ3M+CisjCisjICAgICAgIC1BIGF1 dG9tYXRpYyBtb2RlCisjICAgICAgIC1JIHRvIGlnbm9yZSBmaWxlIGNvbmZsaWN0cworIyAgICAg ICAteSB5ZXMKICMKICMgUmV0dXJucyAwIGlmIHBhY2thZ2UgYWxyZWFkeSBpbnN0YWxsZWQgb3Ig aW5zdGFsbGVkIHN1Y2Nlc3NmdWxseS4KICMgQW55IG90aGVyIGVycm9yIG51bWJlciBvdGhlcndp c2UuCiAjCisjIFNVQ0NFU1MgICgwKTogcGFja2FnZSBpbnN0YWxsZWQgc3VjY2Vzc2Z1bGx5Lgor IyBFTk9FTlQgICAoMik6IHBhY2thZ2UgbWlzc2luZyBpbiByZXBvc2l0b3JpZXMuCisjIEVOWElP ICAgICg2KTogcGFja2FnZSBkZXBlbmRzIG9uIGludmFsaWQgZGVwZW5kZW5jaWVzLgorIyBFQUdB SU4gICgxMSk6IHBhY2thZ2UgY29uZmxpY3RzLgorIyBFRVhJU1QgICgxNyk6IGZpbGUgY29uZmxp Y3RzIGluIHRyYW5zYWN0aW9uIChYQlBTX0ZMQUdfSUdOT1JFX0ZJTEVfQ09ORkxJQ1RTIHVuc2V0 KQorIyBFTk9ERVYgICgxOSk6IHBhY2thZ2UgZGVwZW5kcyBvbiBtaXNzaW5nIGRlcGVuZGVuY2ll cy4KKyMgRU5PVFNVUCAoOTUpOiBubyByZXBvc2l0b3JpZXMgcmVnaXN0ZXJlZC4KKyMKIGluc3Rh bGxfcGtnX2Zyb21fcmVwb3MoKSB7Ci0gICAgbG9jYWwgcGtnPSIkMSIgY3Jvc3M9IiQyIiBydmFs PSB0bXBsb2dmPQorICAgIGxvY2FsIGNyb3NzPSIkMSIgcnZhbCB0bXBsb2dmIGNtZAorICAgIHNo aWZ0CisKKyAgICBbICQjIC1lcSAwIF0gJiYgcmV0dXJuIDAKIAogICAgIG1rZGlyIC1wICRYQlBT X1NUQVRFRElSCiAgICAgdG1wbG9nZj0ke1hCUFNfU1RBVEVESVJ9L3hicHNfJHtYQlBTX1RBUkdF VF9NQUNISU5FfV9iZGVwXyR7cGtnfS5sb2cKIAotICAgIGlmIFsgLW4gIiRjcm9zcyIgXTsgdGhl bgotICAgICAgICAkWEJQU19JTlNUQUxMX1hDTUQgLUlBeSAiJHBrZyIgPiR0bXBsb2dmIDI+JjEK LSAgICBlbHNlCi0gICAgICAgICRYQlBTX0lOU1RBTExfQ01EIC1JQXkgIiRwa2ciID4kdG1wbG9n ZiAyPiYxCi0gICAgZmkKKyAgICBjbWQ9JFhCUFNfSU5TVEFMTF9DTUQKKyAgICBbWyAkY3Jvc3Mg XV0gJiYgY21kPSRYQlBTX0lOU1RBTExfWENNRAorICAgICRjbWQgJHtYQlBTX1NLSVBfUkVNT1RF UkVQT1M6Ky1pfSAtQUl5ICIkQCIgPiR0bXBsb2dmIDI+JjEKICAgICBydmFsPSQ/Ci0gICAgIyB4 YnBzLWluc3RhbGwgY2FuIHJldHVybjoKLSAgICAjCi0gICAgIyBTVUNDRVNTICAoMCk6IHBhY2th Z2UgaW5zdGFsbGVkIHN1Y2Nlc3NmdWxseS4KLSAgICAjIEVOT0VOVCAgICgyKTogcGFja2FnZSBt aXNzaW5nIGluIHJlcG9zaXRvcmllcy4KLSAgICAjIEVOWElPICAgICg2KTogcGFja2FnZSBkZXBl bmRzIG9uIGludmFsaWQgZGVwZW5kZW5jaWVzLgotICAgICMgRUFHQUlOICAoMTEpOiBwYWNrYWdl IGNvbmZsaWN0cy4KLSAgICAjIEVFWElTVCAgKDE3KTogZmlsZSBjb25mbGljdHMgaW4gdHJhbnNh Y3Rpb24gKFhCUFNfRkxBR19JR05PUkVfRklMRV9DT05GTElDVFMgdW5zZXQpCi0gICAgIyBFTk9E RVYgICgxOSk6IHBhY2thZ2UgZGVwZW5kcyBvbiBtaXNzaW5nIGRlcGVuZGVuY2llcy4KLSAgICAj IEVOT1RTVVAgKDk1KTogbm8gcmVwb3NpdG9yaWVzIHJlZ2lzdGVyZWQuCi0gICAgIworCiAgICAg Y2FzZSAiJHJ2YWwiIGluCiAgICAgICAgIDApICMgc3VjY2VzcywgY2hlY2sgaWYgdGhlcmUgYXJl IGVycm9ycy4KICAgICAgICAgICAgZXJyb3J0bXBmPSQobWt0ZW1wKSB8fCBleGl0IDEKQEAgLTEx MSwzOSArOTMsNiBAQCBpbnN0YWxsX3BrZ19mcm9tX3JlcG9zKCkgewogICAgIHJldHVybiAkcnZh bAogfQogCi0jCi0jIFJldHVybnMgMCBpZiBwa2dwYXR0ZXJuIGluICQxIGlzIG1hdGNoZWQgYWdh aW5zdCBjdXJyZW50IGluc3RhbGxlZAotIyBwYWNrYWdlLCAxIGlmIG5vIG1hdGNoIGFuZCAyIGlm IG5vdCBpbnN0YWxsZWQuCi0jCi1jaGVja19wa2dkZXBfbWF0Y2hlZCgpIHsKLSAgICBsb2NhbCBw a2c9IiQxIiBjaGVja3Zlcj0iJDIiIGNyb3NzPSIkMyIgdWhlbHBlcj0gcGtnbj0gaXZlcj0KLQot ICAgIFsgIiRidWlsZF9zdHlsZSIgPSAibWV0YSIgXSAmJiByZXR1cm4gMgotICAgIFsgLXogIiRw a2ciIF0gJiYgcmV0dXJuIDI1NQotCi0gICAgcGtnbj0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRw a2dkZXBuYW1lICR7cGtnfSAyPi9kZXYvbnVsbCkiCi0gICAgaWYgWyAteiAiJHBrZ24iIF07IHRo ZW4KLSAgICAgICAgcGtnbj0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2duYW1lICR7cGtnfSAy Pi9kZXYvbnVsbCkiCi0gICAgZmkKLSAgICBbIC16ICIkcGtnbiIgXSAmJiByZXR1cm4gMjU1Ci0K LSAgICBpZiBbIC1uICIkY3Jvc3MiIF07IHRoZW4KLSAgICAgICAgdWhlbHBlcj0iJFhCUFNfVUhF TFBFUl9YQ01EIgotICAgIGVsc2UKLSAgICAgICAgdWhlbHBlcj0iJFhCUFNfVUhFTFBFUl9DTUQi Ci0gICAgZmkKLQotICAgIGl2ZXI9IiQoJHVoZWxwZXIgJGNoZWNrdmVyICRwa2duKSIKLSAgICBp ZiBbICQ/IC1lcSAwIC1hIC1uICIkaXZlciIgXTsgdGhlbgotICAgICAgICAkWEJQU19VSEVMUEVS X0NNRCBwa2dtYXRjaCAiJHtwa2dufS0ke2l2ZXJ9IiAiJHtwa2d9IgotICAgICAgICBbICQ/IC1l cSAxIF0gJiYgcmV0dXJuIDAKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiAyCi0gICAgZmkKLQot ICAgIHJldHVybiAxCi19Ci0KICMKICMgUmV0dXJucyAwIGlmIHBrZ3BhdHRlcm4gaW4gJDEgaXMg aW5zdGFsbGVkIGFuZCBncmVhdGVyIHRoYW4gY3VycmVudAogIyBpbnN0YWxsZWQgcGFja2FnZSwg b3RoZXJ3aXNlIDEuCkBAIC0xNTYsMTIgKzEwNSw4IEBAIGNoZWNrX2luc3RhbGxlZF9wa2coKSB7 CiAgICAgcGtnbj0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2duYW1lICR7cGtnfSkiCiAgICAg WyAteiAiJHBrZ24iIF0gJiYgcmV0dXJuIDIKIAotICAgIGlmIFsgLW4gIiRjcm9zcyIgXTsgdGhl bgotICAgICAgICB1aGVscGVyPSIkWEJQU19VSEVMUEVSX1hDTUQiCi0gICAgZWxzZQotICAgICAg ICB1aGVscGVyPSIkWEJQU19VSEVMUEVSX0NNRCIKLSAgICBmaQotCisgICAgdWhlbHBlcj0kWEJQ U19VSEVMUEVSX0NNRAorICAgIFtbICRjcm9zcyBdXSAmJiB1aGVscGVyPSRYQlBTX1VIRUxQRVJf WENNRAogICAgIGl2ZXI9IiQoJHVoZWxwZXIgdmVyc2lvbiAkcGtnbikiCiAgICAgaWYgWyAkPyAt ZXEgMCAtYSAtbiAiJGl2ZXIiIF07IHRoZW4KICAgICAgICAgJFhCUFNfQ01QVkVSX0NNRCAiJHtw a2dufS0ke2l2ZXJ9IiAiJHtwa2d9IgpAQCAtMTcxLDQyICsxMTYsMjAgQEAgY2hlY2tfaW5zdGFs bGVkX3BrZygpIHsKICAgICByZXR1cm4gMQogfQogCi1zcmNwa2dfZ2V0X3ZlcnNpb24oKSB7Ci0g ICAgbG9jYWwgcGtnPSIkMSIKLSAgICAjIFJ1biB0aGlzIGluIGEgc3ViLXNoZWxsIHRvIGF2b2lk IHBvbGx1dGluZyBvdXIgZW52LgotICAgICgKLSAgICB1bnNldCBYQlBTX0JJTlBLR19FWElTVFMK LSAgICBzZXR1cF9wa2cgJHBrZyB8fCBleGl0ICQ/Ci0gICAgZWNobyAiJHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKLSAgICApIHx8IG1zZ19lcnJvciAiJHBrZ3ZlcjogZmFpbGVkIHRvIHRyYW5zZm9y bSBkZXBlbmRlbmN5ICRwa2dcbiIKLX0KLQotc3JjcGtnX2dldF9wa2d2ZXIoKSB7Ci0gICAgbG9j YWwgcGtnPSIkMSIKLSAgICAjIFJ1biB0aGlzIGluIGEgc3ViLXNoZWxsIHRvIGF2b2lkIHBvbGx1 dGluZyBvdXIgZW52LgotICAgICgKLSAgICB1bnNldCBYQlBTX0JJTlBLR19FWElTVFMKLSAgICBz ZXR1cF9wa2cgJHBrZyB8fCBleGl0ICQ/Ci0gICAgZWNobyAiJHtzb3VyY2Vwa2d9LSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCi0gICAgKSB8fCBtc2dfZXJyb3IgIiRwa2d2ZXI6IGZhaWxlZCB0byB0 cmFuc2Zvcm0gZGVwZW5kZW5jeSAkcGtnXG4iCi19Ci0KICMKLSMgSW5zdGFsbHMgYWxsIGRlcGVu ZGVuY2llcyByZXF1aXJlZCBieSBhIHBhY2thZ2UuCisjIEJ1aWxkIGFsbCBkZXBlbmRlbmNpZXMg cmVxdWlyZWQgdG8gYnVpbGQgYW5kIHJ1bi4KICMKIGluc3RhbGxfcGtnX2RlcHMoKSB7CiAgICAg bG9jYWwgcGtnPSIkMSIgdGFyZ2V0cGtnPSIkMiIgdGFyZ2V0PSIkMyIgY3Jvc3M9IiQ0IiBjcm9z c19wcmVwYXJlPSIkNSIKLSAgICBsb2NhbCBydmFsIF9yZWFscGtnIF92cGtnIF9jdXJwa2cgY3Vy cGtnZGVwbmFtZSBwa2duIGl2ZXIKLSAgICBsb2NhbCBpIGogZm91bmQgcnVuZGVwIHJlcG8gc3R5 bGUKKyAgICBsb2NhbCBfdnBrZyBjdXJwa2dkZXBuYW1lCisgICAgbG9jYWwgaSBqIGZvdW5kIHN0 eWxlCiAKLSAgICBsb2NhbCAtYSBob3N0X2JpbnBrZ19kZXBzIGNoZWNrX2JpbnBrZ19kZXBzIGJp bnBrZ19kZXBzCi0gICAgbG9jYWwgLWEgaG9zdF9taXNzaW5nX2RlcHMgY2hlY2tfbWlzc2luZ19k ZXBzIG1pc3NpbmdfZGVwcyBtaXNzaW5nX3JkZXBzCisgICAgbG9jYWwgLWEgaG9zdF9iaW5wa2df ZGVwcyBiaW5wa2dfZGVwcworICAgIGxvY2FsIC1hIGhvc3RfbWlzc2luZ19kZXBzIG1pc3Npbmdf ZGVwcyBtaXNzaW5nX3JkZXBzCiAKICAgICBbIC16ICIkcGtnbmFtZSIgXSAmJiByZXR1cm4gMgot Ci0gICAgc2V0dXBfcGtnX2RlcGVuZHMKLQotICAgIFsgLW4gIiRidWlsZF9zdHlsZSIgXSAmJiBz dHlsZT0iIFskYnVpbGRfc3R5bGVdIgorICAgIFsgLXogIiRYQlBTX0NIRUNLX1BLR1MiIF0gJiYg dW5zZXQgY2hlY2tkZXBlbmRzCisgICAgW1sgJGJ1aWxkX3N0eWxlIF1dICYmIHN0eWxlPSIgWyRi dWlsZF9zdHlsZV0iCiAKICAgICBmb3IgcyBpbiAkYnVpbGRfaGVscGVyOyBkbwogICAgICAgICBz dHlsZSs9IiBbJHNdIgpAQCAtMjE4LDE5NyArMTQxLDE1MSBAQCBpbnN0YWxsX3BrZ19kZXBzKCkg ewogICAgICAgICBtc2dfbm9ybWFsICIkcGtndmVyOiBidWlsZGluZyR7c3R5bGV9IC4uLlxuIgog ICAgIGZpCiAKLSAgICBpZiBbIC16ICIkYnVpbGRfZGVwZW5kcyIgLWEgLXogIiRob3N0X2J1aWxk X2RlcGVuZHMiIC1hIC16ICIkaG9zdF9jaGVja19kZXBlbmRzIiAtYSAteiAiJHJ1bl9kZXBlbmRz IiBdOyB0aGVuCi0gICAgICAgIHJldHVybiAwCi0gICAgZmkKLQogICAgICMKICAgICAjIEhvc3Qg YnVpbGQgZGVwZW5kZW5jaWVzLgogICAgICMKLSAgICBmb3IgaSBpbiAke2hvc3RfYnVpbGRfZGVw ZW5kc307IGRvCi0gICAgICAgIF9yZWFscGtnPSQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnbmFt ZSAiJGkiIDI+L2Rldi9udWxsKQotICAgICAgICBjaGVja19wa2dkZXBfbWF0Y2hlZCAiJGkiIHZl cnNpb24KLSAgICAgICAgbG9jYWwgcnZhbD0kPwotICAgICAgICBpZiBbICRydmFsIC1lcSAwIF07 IHRoZW4KLSAgICAgICAgICAgIGVjaG8gIiAgIFtob3N0XSAke2l9OiBpbnN0YWxsZWQuIgotICAg ICAgICAgICAgY29udGludWUKLSAgICAgICAgZWxpZiBbICRydmFsIC1lcSAxIF07IHRoZW4KLSAg ICAgICAgICAgIGl2ZXI9JCgkWEJQU19VSEVMUEVSX0NNRCB2ZXJzaW9uICR7X3JlYWxwa2d9KQot ICAgICAgICAgICAgaWYgWyAkPyAtZXEgMCAtYSAtbiAiJGl2ZXIiIF07IHRoZW4KLSAgICAgICAg ICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtpfTogaW5zdGFsbGVkICRpdmVyICh2aXJ0dWFscGtn KS4iCisgICAgaWYgW1sgJHtob3N0bWFrZWRlcGVuZHN9IF1dOyB0aGVuCisgICAgICAgIHdoaWxl IHJlYWQgLXIgX2RlcG5hbWUgX2RlcHJlcG92ZXIgX2RlcHZlciBfc3VicGtnIF9yZXBvdXJsOyBk bworICAgICAgICAgICAgX3Zwa2c9JHtfc3VicGtnfS0ke19kZXB2ZXJ9CisgICAgICAgICAgICAj IGJpbmFyeSBwYWNrYWdlIGZvdW5kIGluIGEgcmVwbworICAgICAgICAgICAgaWYgW1sgJHtfZGVw dmVyfSA9PSAke19kZXByZXBvdmVyfSBdXTsgdGhlbgorICAgICAgICAgICAgICAgIGVjaG8gIiAg IFtob3N0XSAke192cGtnfTogZm91bmQgKCR7X3JlcG91cmx9KSIKKyAgICAgICAgICAgICAgICBo b3N0X2JpbnBrZ19kZXBzKz0oIiR7X3Zwa2d9IikKICAgICAgICAgICAgICAgICBjb250aW51ZQot ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtob3N0XSAke2l9OiB1 bnJlc29sdmVkIGJ1aWxkIGRlcGVuZGVuY3khIgotICAgICAgICAgICAgICAgIHJldHVybiAxCiAg ICAgICAgICAgICBmaQotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXBvPSQoJFhCUFNfUVVF UllfQ01EIC1SIC1wcmVwb3NpdG9yeSAke2l9IDI+L2Rldi9udWxsKQotICAgICAgICAgICAgaWYg WyAtbiAiJHtyZXBvfSIgXTsgdGhlbgotICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtob3N0XSAk e2l9OiBmb3VuZCAoJHJlcG8pIgotICAgICAgICAgICAgICAgIGhvc3RfYmlucGtnX2RlcHMrPSgi JHtpfSIpCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtpfTogbm90IGZvdW5kLiIKLSAgICAgICAgICAg ICAgICBpZiBbIC16ICIkY3Jvc3MiIF07IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgaWYgWyAi JHtfcmVhbHBrZ30iID0gIiR0YXJnZXRwa2ciIF07IHRoZW4KLSAgICAgICAgICAgICAgICAgICAg ICAgIG1zZ19lcnJvciAiJHtwa2d9OiBbaG9zdF0gYnVpbGQgbG9vcCBkZXRlY3RlZDogJHtfcmVh bHBrZ30gPC0+ICR7dGFyZ2V0cGtnfSBbZGVwZW5kcyBvbiBpdHNlbGZdXG4iCi0gICAgICAgICAg ICAgICAgICAgIGVsaWYgWyAiJHtfcmVhbHBrZ30iID0gIiRwa2ciIF07IHRoZW4KLSAgICAgICAg ICAgICAgICAgICAgICAgIG1zZ19lcnJvciAiJHtwa2d9OiBbaG9zdF0gYnVpbGQgbG9vcCBkZXRl Y3RlZDogJHBrZyA8LT4gJHtfcmVhbHBrZ31cbiIKKyAgICAgICAgICAgICMgYmluYXJ5IHBhY2th Z2Ugbm90IGZvdW5kCisgICAgICAgICAgICBpZiBbWyAkX2RlcG5hbWUgIT0gJF9zdWJwa2cgXV07 IHRoZW4KKyAgICAgICAgICAgICAgICAjIHN1YnBrZywgY2hlY2sgaWYgaXQncyBhIHN1YnBrZyBv ZiBpdHNlbGYKKyAgICAgICAgICAgICAgICBmb3VuZD0wCisgICAgICAgICAgICAgICAgZm9yIGYg aW4gJHtzdWJwYWNrYWdlc307IGRvCisgICAgICAgICAgICAgICAgICAgIGlmIFtbICR7X3N1YnBr Z30gPT0gJHtmfSBdXTsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQ9MQorICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAg ICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgaWYgW1sgJGZvdW5kIC1lcSAxIF1dOyB0 aGVuCisgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtob3N0XSAke192cGtnfTogbm90IGZv dW5kIChzdWJwa2csIGlnbm9yZWQpIgorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg ICAgICAgICAgZWNobyAiICAgW2hvc3RdICR7X3Zwa2d9OiBub3QgZm91bmQiCisgICAgICAgICAg ICAgICAgICAgIGhvc3RfbWlzc2luZ19kZXBzKz0oIiRfdnBrZyIpCiAgICAgICAgICAgICAgICAg ZmkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtf dnBrZ306IG5vdCBmb3VuZCIKKyAgICAgICAgICAgICAgICBob3N0X21pc3NpbmdfZGVwcys9KCIk X3Zwa2ciKQogICAgICAgICAgICAgZmkKLSAgICAgICAgZmkKLSAgICAgICAgaG9zdF9taXNzaW5n X2RlcHMrPSgiJHtpfSIpCi0gICAgZG9uZQorICAgICAgICBkb25lIDwgPCgkWEJQU19DSEVDS1ZF UlNfQ01EICR7WEJQU19TS0lQX1JFTU9URVJFUE9TOistaX0gLUQgJFhCUFNfRElTVERJUiAtc20g JHtob3N0bWFrZWRlcGVuZHN9KQorICAgIGZpCiAKICAgICAjCiAgICAgIyBIb3N0IGNoZWNrIGRl cGVuZGVuY2llcy4KICAgICAjCi0gICAgZm9yIGkgaW4gJHtob3N0X2NoZWNrX2RlcGVuZHN9OyBk bwotICAgICAgICBfcmVhbHBrZz0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2duYW1lICRpIDI+ L2Rldi9udWxsKSIKLSAgICAgICAgY2hlY2tfcGtnZGVwX21hdGNoZWQgIiRpIiB2ZXJzaW9uCi0g ICAgICAgIGxvY2FsIHJ2YWw9JD8KLSAgICAgICAgaWYgWyAkcnZhbCAtZXEgMCBdOyB0aGVuCi0g ICAgICAgICAgICBlY2hvICIgICBbY2hlY2tdICR7aX06IGluc3RhbGxlZC4iCi0gICAgICAgICAg ICBjb250aW51ZQotICAgICAgICBlbGlmIFsgJHJ2YWwgLWVxIDEgXTsgdGhlbgotICAgICAgICAg ICAgaXZlcj0kKCRYQlBTX1VIRUxQRVJfQ01EIHZlcnNpb24gJHtfcmVhbHBrZ30pCi0gICAgICAg ICAgICBpZiBbICQ/IC1lcSAwIC1hIC1uICIkaXZlciIgXTsgdGhlbgotICAgICAgICAgICAgICAg IGVjaG8gIiAgIFtjaGVja10gJHtpfTogaW5zdGFsbGVkICRpdmVyICh2aXJ0dWFscGtnKS4iCisg ICAgaWYgW1sgJHtjaGVja2RlcGVuZHN9IF1dICYmIFtbICRYQlBTX0NIRUNLX1BLR1MgXV07IHRo ZW4KKyAgICAgICAgd2hpbGUgcmVhZCAtciBfZGVwbmFtZSBfZGVwcmVwb3ZlciBfZGVwdmVyIF9z dWJwa2cgX3JlcG91cmw7IGRvCisgICAgICAgICAgICBfdnBrZz0ke19zdWJwa2d9LSR7X2RlcHZl cn0KKyAgICAgICAgICAgICMgYmluYXJ5IHBhY2thZ2UgZm91bmQgaW4gYSByZXBvCisgICAgICAg ICAgICBpZiBbWyAke19kZXB2ZXJ9ID09ICR7X2RlcHJlcG92ZXJ9IF1dOyB0aGVuCisgICAgICAg ICAgICAgICAgZWNobyAiICAgW2NoZWNrXSAke192cGtnfTogZm91bmQgKCR7X3JlcG91cmx9KSIK KyAgICAgICAgICAgICAgICBob3N0X2JpbnBrZ19kZXBzKz0oIiR7X3Zwa2d9IikKICAgICAgICAg ICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGVjaG8g IiAgIFtjaGVja10gJHtpfTogdW5yZXNvbHZlZCBjaGVjayBkZXBlbmRlbmN5ISIKLSAgICAgICAg ICAgICAgICByZXR1cm4gMQogICAgICAgICAgICAgZmkKLSAgICAgICAgZWxzZQotICAgICAgICAg ICAgcmVwbz0kKCRYQlBTX1FVRVJZX0NNRCAtUiAtcHJlcG9zaXRvcnkgJHtpfSAyPi9kZXYvbnVs bCkKLSAgICAgICAgICAgIGlmIFsgLW4gIiR7cmVwb30iIF07IHRoZW4KLSAgICAgICAgICAgICAg ICBlY2hvICIgICBbY2hlY2tdICR7aX06IGZvdW5kICgkcmVwbykiCi0gICAgICAgICAgICAgICAg Y2hlY2tfYmlucGtnX2RlcHMrPSgiJHtpfSIpCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAg ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBlY2hvICIgICBbY2hlY2tdICR7aX06IG5v dCBmb3VuZC4iCi0gICAgICAgICAgICAgICAgaWYgWyAiJHtfcmVhbHBrZ30iID0gIiR0YXJnZXRw a2ciIF07IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgbXNnX2Vycm9yICIke3BrZ306IFtjaGVj a10gYnVpbGQgbG9vcCBkZXRlY3RlZDogJHtfcmVhbHBrZ30gPC0+ICR7dGFyZ2V0cGtnfSBbZGVw ZW5kcyBvbiBpdHNlbGZdIVxuIgotICAgICAgICAgICAgICAgIGVsaWYgWyAiJHtfcmVhbHBrZ30i ID0gIiRwa2ciIF07IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgbXNnX2Vycm9yICIke3BrZ306 IFtjaGVja10gYnVpbGQgbG9vcCBkZXRlY3RlZDogJHBrZyA8LT4gJHtfcmVhbHBrZ31cbiIKKyAg ICAgICAgICAgICMgYmluYXJ5IHBhY2thZ2Ugbm90IGZvdW5kCisgICAgICAgICAgICBpZiBbWyAk X2RlcG5hbWUgIT0gJF9zdWJwa2cgXV07IHRoZW4KKyAgICAgICAgICAgICAgICAjIHN1YnBrZywg Y2hlY2sgaWYgaXQncyBhIHN1YnBrZyBvZiBpdHNlbGYKKyAgICAgICAgICAgICAgICBmb3VuZD0w CisgICAgICAgICAgICAgICAgZm9yIGYgaW4gJHtzdWJwYWNrYWdlc307IGRvCisgICAgICAgICAg ICAgICAgICAgIGlmIFtbICR7X3N1YnBrZ30gPT0gJHtmfSBdXTsgdGhlbgorICAgICAgICAgICAg ICAgICAgICAgICAgZm91bmQ9MQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAg ICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAg aWYgW1sgJGZvdW5kIC1lcSAxIF1dOyB0aGVuCisgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAg IFtjaGVja10gJHtfdnBrZ306IG5vdCBmb3VuZCAoc3VicGtnLCBpZ25vcmVkKSIKKyAgICAgICAg ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtjaGVja10gJHtfdnBr Z306IG5vdCBmb3VuZCIKKyAgICAgICAgICAgICAgICAgICAgaG9zdF9taXNzaW5nX2RlcHMrPSgi JF92cGtnIikKICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZWxzZQorICAgICAgICAg ICAgICAgIGVjaG8gIiAgIFtjaGVja10gJHtfdnBrZ306IG5vdCBmb3VuZCIKKyAgICAgICAgICAg ICAgICBob3N0X21pc3NpbmdfZGVwcys9KCIkX3Zwa2ciKQogICAgICAgICAgICAgZmkKLSAgICAg ICAgZmkKLSAgICAgICAgY2hlY2tfbWlzc2luZ19kZXBzKz0oIiR7aX0iKQotICAgIGRvbmUKLQor ICAgICAgICBkb25lIDwgPCgkWEJQU19DSEVDS1ZFUlNfQ01EICR7WEJQU19TS0lQX1JFTU9URVJF UE9TOistaX0gLUQgJFhCUFNfRElTVERJUiAtc20gJHtjaGVja2RlcGVuZHN9KQorICAgIGZpCiAK ICAgICAjCiAgICAgIyBUYXJnZXQgYnVpbGQgZGVwZW5kZW5jaWVzLgogICAgICMKLSAgICBmb3Ig aSBpbiAke2J1aWxkX2RlcGVuZHN9OyBkbwotICAgICAgICBfcmVhbHBrZz0iJCgkWEJQU19VSEVM UEVSX0NNRCBnZXRwa2duYW1lICRpIDI+L2Rldi9udWxsKSIKLSAgICAgICAgIyBDaGVjayBpZiBk ZXBlbmRlbmN5IGlzIGEgc3VicGtnLCBpZiBpdCBpcywgaWdub3JlIGl0LgotICAgICAgICB1bnNl dCBmb3VuZAotICAgICAgICBmb3IgaiBpbiAke3N1YnBhY2thZ2VzfTsgZG8KLSAgICAgICAgICAg IFsgIiRqIiA9ICIke19yZWFscGtnfSIgXSAmJiBmb3VuZD0xICYmIGJyZWFrCi0gICAgICAgIGRv bmUKLSAgICAgICAgWyAtbiAiJGZvdW5kIiBdICYmIGNvbnRpbnVlCi0gICAgICAgIGNoZWNrX3Br Z2RlcF9tYXRjaGVkICIke2l9IiB2ZXJzaW9uICRjcm9zcwotICAgICAgICBsb2NhbCBydmFsPSQ/ Ci0gICAgICAgIGlmIFsgJHJ2YWwgLWVxIDAgXTsgdGhlbgotICAgICAgICAgICAgZWNobyAiICAg W3RhcmdldF0gJHtpfTogaW5zdGFsbGVkLiIKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAg IGVsaWYgWyAkcnZhbCAtZXEgMSBdOyB0aGVuCi0gICAgICAgICAgICBpdmVyPSQoJFhCUFNfVUhF TFBFUl9YQ01EIHZlcnNpb24gJHtfcmVhbHBrZ30pCi0gICAgICAgICAgICBpZiBbICQ/IC1lcSAw IC1hIC1uICIkaXZlciIgXTsgdGhlbgotICAgICAgICAgICAgICAgIGVjaG8gIiAgIFt0YXJnZXRd ICR7aX06IGluc3RhbGxlZCAkaXZlciAodmlydHVhbHBrZykuIgorICAgIGlmIFtbICR7bWFrZWRl cGVuZHN9IF1dOyB0aGVuCisgICAgICAgIHdoaWxlIHJlYWQgLXIgX2RlcG5hbWUgX2RlcHJlcG92 ZXIgX2RlcHZlciBfc3VicGtnIF9yZXBvdXJsOyBkbworICAgICAgICAgICAgX3Zwa2c9JHtfc3Vi cGtnfS0ke19kZXB2ZXJ9CisgICAgICAgICAgICAjIGJpbmFyeSBwYWNrYWdlIGZvdW5kIGluIGEg cmVwbworICAgICAgICAgICAgaWYgW1sgJHtfZGVwdmVyfSA9PSAke19kZXByZXBvdmVyfSBdXTsg dGhlbgorICAgICAgICAgICAgICAgIGVjaG8gIiAgIFt0YXJnZXRdICR7X3Zwa2d9OiBmb3VuZCAo JHtfcmVwb3VybH0pIgorICAgICAgICAgICAgICAgIGJpbnBrZ19kZXBzKz0oIiR7X3Zwa2d9IikK ICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg ICAgIGVjaG8gIiAgIFt0YXJnZXRdICR7aX06IHVucmVzb2x2ZWQgYnVpbGQgZGVwZW5kZW5jeSEi Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDEKICAgICAgICAgICAgIGZpCi0gICAgICAgIGVsc2UK LSAgICAgICAgICAgIHJlcG89JCgkWEJQU19RVUVSWV9YQ01EIC1SIC1wcmVwb3NpdG9yeSAke2l9 IDI+L2Rldi9udWxsKQotICAgICAgICAgICAgaWYgWyAtbiAiJHtyZXBvfSIgXTsgdGhlbgotICAg ICAgICAgICAgICAgIGVjaG8gIiAgIFt0YXJnZXRdICR7aX06IGZvdW5kICgkcmVwbykiCi0gICAg ICAgICAgICAgICAgYmlucGtnX2RlcHMrPSgiJHtpfSIpCi0gICAgICAgICAgICAgICAgY29udGlu dWUKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBlY2hvICIgICBbdGFyZ2V0XSAk e2l9OiBub3QgZm91bmQuIgotICAgICAgICAgICAgICAgIGlmIFsgIiR7X3JlYWxwa2d9IiA9ICIk dGFyZ2V0cGtnIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIG1zZ19lcnJvciAiJHtwa2d9 OiBbdGFyZ2V0XSBidWlsZCBsb29wIGRldGVjdGVkOiAke19yZWFscGtnfSA8LT4gJHt0YXJnZXRw a2d9IFtkZXBlbmRzIG9uIGl0c2VsZl1cbiIKLSAgICAgICAgICAgICAgICBlbGlmIFsgIiR7X3Jl YWxwa2d9IiA9ICIkcGtnIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIG1zZ19lcnJvciAi JHtwa2d9OiBbdGFyZ2V0XSBidWlsZCBsb29wIGRldGVjdGVkOiAkcGtnIDwtPiAke19yZWFscGtn fVxuIgorICAgICAgICAgICAgIyBiaW5hcnkgcGFja2FnZSBub3QgZm91bmQKKyAgICAgICAgICAg IGlmIFtbICRfZGVwbmFtZSAhPSAkX3N1YnBrZyBdXTsgdGhlbgorICAgICAgICAgICAgICAgICMg c3VicGtnLCBjaGVjayBpZiBpdCdzIGEgc3VicGtnIG9mIGl0c2VsZgorICAgICAgICAgICAgICAg IGZvdW5kPTAKKyAgICAgICAgICAgICAgICBmb3IgZiBpbiAke3N1YnBhY2thZ2VzfTsgZG8KKyAg ICAgICAgICAgICAgICAgICAgaWYgW1sgJHtfc3VicGtnfSA9PSAke2Z9IF1dOyB0aGVuCisgICAg ICAgICAgICAgICAgICAgICAgICBmb3VuZD0xCisgICAgICAgICAgICAgICAgICAgICAgICBicmVh aworICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAg ICAgICAgICBpZiBbWyAkZm91bmQgLWVxIDEgXV07IHRoZW4KKyAgICAgICAgICAgICAgICAgICAg ZWNobyAiICAgW3RhcmdldF0gJHtfdnBrZ306IG5vdCBmb3VuZCAoc3VicGtnLCBpZ25vcmVkKSIK KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgIFt0YXJn ZXRdICR7X3Zwa2d9OiBub3QgZm91bmQiCisgICAgICAgICAgICAgICAgICAgIG1pc3NpbmdfZGVw cys9KCIkX3Zwa2ciKQogICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICBlbHNlCisgICAg ICAgICAgICAgICAgZWNobyAiICAgW3RhcmdldF0gJHtfdnBrZ306IG5vdCBmb3VuZCIKKyAgICAg ICAgICAgICAgICBtaXNzaW5nX2RlcHMrPSgiJF92cGtnIikKICAgICAgICAgICAgIGZpCi0gICAg ICAgIGZpCi0gICAgICAgIG1pc3NpbmdfZGVwcys9KCIke2l9IikKLSAgICBkb25lCisgICAgICAg IGRvbmUgPCA8KCRYQlBTX0NIRUNLVkVSU19YQ01EICR7WEJQU19TS0lQX1JFTU9URVJFUE9TOist aX0gLUQgJFhCUFNfRElTVERJUiAtc20gJHttYWtlZGVwZW5kc30pCisgICAgZmkKIAogICAgICMK ICAgICAjIFRhcmdldCBydW4gdGltZSBkZXBlbmRlbmNpZXMKICAgICAjCi0gICAgZm9yIGkgaW4g JHtydW5fZGVwZW5kc307IGRvCi0gICAgICAgIF9yZWFscGtnPSIke2klXD8qfSIKLSAgICAgICAg X2N1cnBrZz0iJHtfcmVhbHBrZ30iCi0gICAgICAgIF92cGtnPSIke2kjKlw/fSIKLSAgICAgICAg aWYgWyAiJHtfcmVhbHBrZ30iICE9ICIke192cGtnfSIgXTsgdGhlbgotICAgICAgICAgICAgX3Jl YWxwa2c9IiR7X3Zwa2d9IgotICAgICAgICBlbHNlCi0gICAgICAgICAgICB1bnNldCBfY3VycGtn Ci0gICAgICAgIGZpCi0gICAgICAgIHBrZ249JCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2dkZXBu YW1lICIke19yZWFscGtnfSIpCi0gICAgICAgIGlmIFsgLXogIiRwa2duIiBdOyB0aGVuCi0gICAg ICAgICAgICBwa2duPSQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnbmFtZSAiJHtfcmVhbHBrZ30i KQotICAgICAgICAgICAgaWYgWyAteiAiJHBrZ24iIF07IHRoZW4KLSAgICAgICAgICAgICAgICBt c2dfZXJyb3IgIiRwa2d2ZXI6IGludmFsaWQgcnVudGltZSBkZXBlbmRlbmN5OiAke19yZWFscGtn fVxuIgotICAgICAgICAgICAgZmkKLSAgICAgICAgZmkKLSAgICAgICAgIyBDaGVjayBpZiBkZXBl bmRlbmN5IGlzIGEgc3VicGtnLCBpZiBpdCBpcywgaWdub3JlIGl0LgotICAgICAgICB1bnNldCBm b3VuZAotICAgICAgICBmb3IgaiBpbiAke3N1YnBhY2thZ2VzfTsgZG8KLSAgICAgICAgICAgIFsg IiRqIiA9ICIke3BrZ259IiBdICYmIGZvdW5kPTEgJiYgYnJlYWsKLSAgICAgICAgZG9uZQotICAg ICAgICBbIC1uICIkZm91bmQiIF0gJiYgY29udGludWUKLSAgICAgICAgX3Byb3BzPSQoJFhCUFNf UVVFUllfWENNRCAtUiAtcHBrZ3ZlcixyZXBvc2l0b3J5ICR7X3JlYWxwa2d9IDI+L2Rldi9udWxs KQotICAgICAgICBpZiBbIC1uICIke19wcm9wc30iIF07IHRoZW4KLSAgICAgICAgICAgIHNldCAt LSAke19wcm9wc30KLSAgICAgICAgICAgICRYQlBTX1VIRUxQRVJfQ01EIHBrZ21hdGNoICR7MX0g IiR7X3JlYWxwa2d9IgotICAgICAgICAgICAgaWYgWyAkPyAtZXEgMSBdOyB0aGVuCi0gICAgICAg ICAgICAgICAgaWYgWyAtbiAiJHtfY3VycGtnfSIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAg ICBlY2hvICIgICBbcnVudGltZV0gJHtfY3VycGtnfToke19yZWFscGtnfSAodmlydHVhbCBkZXBl bmRlbmN5KTogZm91bmQgJDEgKCQyKSIKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg ICAgICAgICAgIGVjaG8gIiAgIFtydW50aW1lXSAke19yZWFscGtnfTogZm91bmQgJDEgKCQyKSIK LSAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgIHNoaWZ0IDIKKyAgICBpZiBbWyAk e2RlcGVuZHN9IF1dOyB0aGVuCisgICAgICAgIF9kZXBzPSQoc2V0dXBfcGtnX2RlcGVuZHMgIiIg MSkgfHwgZXhpdCAxCisgICAgICAgIHdoaWxlIHJlYWQgLXIgX2RlcG5hbWUgX2RlcHJlcG92ZXIg X2RlcHZlciBfc3VicGtnIF9yZXBvdXJsOyBkbworICAgICAgICAgICAgX3Zwa2c9JHtfc3VicGtn fS0ke19kZXB2ZXJ9CisgICAgICAgICAgICAjIGJpbmFyeSBwYWNrYWdlIGZvdW5kIGluIGEgcmVw bworICAgICAgICAgICAgaWYgW1sgJHtfZGVwdmVyfSA9PSAke19kZXByZXBvdmVyfSBdXTsgdGhl bgorICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtydW50aW1lXSAke192cGtnfTogZm91bmQgKCR7 X3JlcG91cmx9KSIKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxzZQot ICAgICAgICAgICAgICAgIGlmIFsgLW4gIiR7X2N1cnBrZ30iIF07IHRoZW4KLSAgICAgICAgICAg ICAgICAgICAgZWNobyAiICAgW3J1bnRpbWVdICR7X2N1cnBrZ306JHtfcmVhbHBrZ30gKHZpcnR1 YWwgZGVwZW5kZW5jeSk6IG5vdCBmb3VuZC4iCisgICAgICAgICAgICBmaQorICAgICAgICAgICAg IyBiaW5hcnkgcGFja2FnZSBub3QgZm91bmQKKyAgICAgICAgICAgIGlmIFtbICRfZGVwbmFtZSAh PSAkX3N1YnBrZyBdXTsgdGhlbgorICAgICAgICAgICAgICAgICMgc3VicGtnLCBjaGVjayBpZiBp dCdzIGEgc3VicGtnIG9mIGl0c2VsZgorICAgICAgICAgICAgICAgIGZvdW5kPTAKKyAgICAgICAg ICAgICAgICBmb3IgZiBpbiAke3N1YnBhY2thZ2VzfTsgZG8KKyAgICAgICAgICAgICAgICAgICAg aWYgW1sgJHtfc3VicGtnfSA9PSAke2Z9IF1dOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAg ICBmb3VuZD0xCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAg ICAgICBmaQorICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICBpZiBbWyAkZm91 bmQgLWVxIDEgXV07IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgZWNobyAiICAgW3J1bnRpbWVd ICR7X3Zwa2d9OiBub3QgZm91bmQgKHN1YnBrZywgaWdub3JlZCkiCiAgICAgICAgICAgICAgICAg ZWxzZQotICAgICAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfcmVhbHBrZ306 IG5vdCBmb3VuZC4iCisgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtydW50aW1lXSAke192 cGtnfTogbm90IGZvdW5kIgorICAgICAgICAgICAgICAgICAgICBtaXNzaW5nX3JkZXBzKz0oIiRf dnBrZyIpCiAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIGZpCi0gICAgICAgICAgICBz aGlmdCAyCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGlmIFsgLW4gIiR7X2N1cnBrZ30iIF07 IHRoZW4KLSAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfY3VycGtnfToke19y ZWFscGtnfSAodmlydHVhbCBkZXBlbmRlbmN5KTogbm90IGZvdW5kLiIKICAgICAgICAgICAgIGVs c2UKLSAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfcmVhbHBrZ306IG5vdCBm b3VuZC4iCisgICAgICAgICAgICAgICAgZWNobyAiICAgW3J1bnRpbWVdICR7X3Zwa2d9OiBub3Qg Zm91bmQiCisgICAgICAgICAgICAgICAgbWlzc2luZ19yZGVwcys9KCIkX3Zwa2ciKQogICAgICAg ICAgICAgZmkKLSAgICAgICAgZmkKLSAgICAgICAgaWYgWyAiJHtfcmVhbHBrZ30iID0gIiR0YXJn ZXRwa2ciIF07IHRoZW4KLSAgICAgICAgICAgIG1zZ19lcnJvciAiJHtwa2d9OiBbcnVuXSBidWls ZCBsb29wIGRldGVjdGVkOiAke19yZWFscGtnfSA8LT4gJHt0YXJnZXRwa2d9IFtkZXBlbmRzIG9u IGl0c2VsZl1cbiIKLSAgICAgICAgZWxpZiBbICIke19yZWFscGtnfSIgPSAiJHBrZyIgXTsgdGhl bgotICAgICAgICAgICAgbXNnX2Vycm9yICIke3BrZ306IFtydW5dIGJ1aWxkIGxvb3AgZGV0ZWN0 ZWQ6ICRwa2cgPC0+ICR7X3JlYWxwa2d9XG4iCi0gICAgICAgIGZpCi0gICAgICAgIG1pc3Npbmdf cmRlcHMrPSgiJHtfcmVhbHBrZ30iKQotICAgIGRvbmUKKyAgICAgICAgZG9uZSA8IDwoJFhCUFNf Q0hFQ0tWRVJTX1hDTUQgJHtYQlBTX1NLSVBfUkVNT1RFUkVQT1M6Ky1pfSAtRCAkWEJQU19ESVNU RElSIC1zbSAkX2RlcHMpCisgICAgICAgIHVuc2V0IF9kZXBzCisgICAgZmkKIAogICAgIGlmIFsg LW4gIiRYQlBTX0JVSUxEX09OTFlfT05FX1BLRyIgXTsgdGhlbgogICAgICAgICAgICBmb3IgaSBp biAke2hvc3RfbWlzc2luZ19kZXBzW0BdfTsgZG8KICAgICAgICAgICAgICAgICAgICBtc2dfZXJy b3IgImRlcCAke2l9IG5vdCBmb3VuZDogLTEgcGFzc2VkOiBpbnN0cnVjdGVkIG5vdCB0byBidWls ZFxuIgogICAgICAgICAgICBkb25lCi0gICAgICAgICAgIGZvciBpIGluICR7Y2hlY2tfbWlzc2lu Z19kZXBzW0BdfTsgZG8KLSAgICAgICAgICAgICAgICAgICBtc2dfZXJyb3IgImRlcCAke2l9IG5v dCBmb3VuZDogLTEgcGFzc2VkOiBpbnN0cnVjdGVkIG5vdCB0byBidWlsZFxuIgotICAgICAgICAg ICBkb25lCiAgICAgICAgICAgIGZvciBpIGluICR7bWlzc2luZ19yZGVwc1tAXX07IGRvCiAgICAg ICAgICAgICAgICAgICAgbXNnX2Vycm9yICJkZXAgJHtpfSBub3QgZm91bmQ6IC0xIHBhc3NlZDog aW5zdHJ1Y3RlZCBub3QgdG8gYnVpbGRcbiIKICAgICAgICAgICAgZG9uZQpAQCAtNDI5LDE4ICsz MDYsNiBAQCBpbnN0YWxsX3BrZ19kZXBzKCkgewogICAgICAgICBob3N0X2JpbnBrZ19kZXBzKz0o IiRpIikKICAgICBkb25lCiAKLSAgICAjIE1pc3NpbmcgY2hlY2sgZGVwZW5kZW5jaWVzLCBidWls ZCBmcm9tIHNyY3BrZ3MuCi0gICAgZm9yIGkgaW4gJHtjaGVja19taXNzaW5nX2RlcHNbQF19OyBk bwotICAgICAgICAjIHBhY2thZ2VzIG5vdCBmb3VuZCBpbiByZXBvcywgaW5zdGFsbCBmcm9tIHNv dXJjZS4KLSAgICAgICAgKAotICAgICAgICBjdXJwa2dkZXBuYW1lPSQoJFhCUFNfVUhFTFBFUl9D TUQgZ2V0cGtnbmFtZSAiJGkiIDI+L2Rldi9udWxsKQotICAgICAgICBzZXR1cF9wa2cgJGN1cnBr Z2RlcG5hbWUKLSAgICAgICAgZXhlYyBlbnYgWEJQU19ERVBFTkRFTkNZPTEgWEJQU19CSU5QS0df RVhJU1RTPTEgXAotICAgICAgICAgICAgJFhCUFNfTElCRVhFQ0RJUi9idWlsZC5zaCAkc291cmNl cGtnICRwa2cgJHRhcmdldCB8fCBleGl0ICQ/Ci0gICAgICAgICkgfHwgZXhpdCAkPwotICAgICAg ICBjaGVja19iaW5wa2dfZGVwcys9KCIkaSIpCi0gICAgZG9uZQotCiAgICAgIyBNaXNzaW5nIHRh cmdldCBkZXBlbmRlbmNpZXMsIGJ1aWxkIGZyb20gc3JjcGtncy4KICAgICBmb3IgaSBpbiAke21p c3NpbmdfZGVwc1tAXX07IGRvCiAgICAgICAgICMgcGFja2FnZXMgbm90IGZvdW5kIGluIHJlcG9z LCBpbnN0YWxsIGZyb20gc291cmNlLgpAQCAtNDcxLDIyICszMzYsMjUgQEAgaW5zdGFsbF9wa2df ZGVwcygpIHsKICAgICAgICAgKSB8fCBleGl0ICQ/CiAgICAgZG9uZQogCi0gICAgaWYgWyAiJHBr ZyIgIT0gIiR0YXJnZXRwa2ciIF07IHRoZW4KLSAgICAgICAgbXNnX25vcm1hbCAiJHBrZzogYnVp bGRpbmcke3N0eWxlfSAoZGVwZW5kZW5jeSBvZiAkdGFyZ2V0cGtnKSAuLi5cbiIKKyAgICBpZiBb WyAke2hvc3RfYmlucGtnX2RlcHN9IF1dOyB0aGVuCisgICAgICAgIGlmIFsgLXogIiRYQlBTX1FV SUVUIiBdOyB0aGVuCisgICAgICAgICAgICAjIG5vcm1hbCBtZXNzYWdlcyBpbiBib2xkCisgICAg ICAgICAgICBbWyAkTk9DT0xPUlMgXV0gfHwgcHJpbnRmICJcMDMzWzFtIgorICAgICAgICAgICAg ZWNobyAiPT4gJHBrZ3ZlcjogaW5zdGFsbGluZyBob3N0IGRlcGVuZGVuY2llczogJHtob3N0X2Jp bnBrZ19kZXBzW0BdfSAuLi4iCisgICAgICAgICAgICBbWyAkTk9DT0xPUlMgXV0gfHwgcHJpbnRm ICJcMDMzW20iCisgICAgICAgIGZpCisgICAgICAgIGluc3RhbGxfcGtnX2Zyb21fcmVwb3MgIiIg IiR7aG9zdF9iaW5wa2dfZGVwc1tAXX0iCiAgICAgZmkKIAotICAgIGZvciBpIGluICR7aG9zdF9i aW5wa2dfZGVwc1tAXX07IGRvCi0gICAgICAgIG1zZ19ub3JtYWwgIiRwa2d2ZXI6IGluc3RhbGxp bmcgaG9zdCBkZXBlbmRlbmN5ICckaScgLi4uXG4iCi0gICAgICAgIGluc3RhbGxfcGtnX2Zyb21f cmVwb3MgIiR7aX0iCi0gICAgZG9uZQotCi0gICAgZm9yIGkgaW4gJHtjaGVja19iaW5wa2dfZGVw c1tAXX07IGRvCi0gICAgICAgIG1zZ19ub3JtYWwgIiRwa2d2ZXI6IGluc3RhbGxpbmcgY2hlY2sg ZGVwZW5kZW5jeSAnJGknIC4uLlxuIgotICAgICAgICBpbnN0YWxsX3BrZ19mcm9tX3JlcG9zICIk e2l9IgotICAgIGRvbmUKKyAgICBpZiBbWyAke2JpbnBrZ19kZXBzfSBdXTsgdGhlbgorICAgICAg ICBpZiBbIC16ICIkWEJQU19RVUlFVCIgXTsgdGhlbgorICAgICAgICAgICAgIyBub3JtYWwgbWVz c2FnZXMgaW4gYm9sZAorICAgICAgICAgICAgW1sgJE5PQ09MT1JTIF1dIHx8IHByaW50ZiAiXDAz M1sxbSIKKyAgICAgICAgICAgIGVjaG8gIj0+ICRwa2d2ZXI6IGluc3RhbGxpbmcgdGFyZ2V0IGRl cGVuZGVuY2llczogJHtiaW5wa2dfZGVwc1tAXX0gLi4uIgorICAgICAgICAgICAgW1sgJE5PQ09M T1JTIF1dIHx8IHByaW50ZiAiXDAzM1ttIgorICAgICAgICBmaQorICAgICAgICBpbnN0YWxsX3Br Z19mcm9tX3JlcG9zICIkY3Jvc3MiICIke2JpbnBrZ19kZXBzW0BdfSIKKyAgICBmaQogCi0gICAg Zm9yIGkgaW4gJHtiaW5wa2dfZGVwc1tAXX07IGRvCi0gICAgICAgIG1zZ19ub3JtYWwgIiRwa2d2 ZXI6IGluc3RhbGxpbmcgdGFyZ2V0IGRlcGVuZGVuY3kgJyRpJyAuLi5cbiIKLSAgICAgICAgaW5z dGFsbF9wa2dfZnJvbV9yZXBvcyAiJGkiICRjcm9zcwotICAgIGRvbmUKKyAgICByZXR1cm4gMAog fQpkaWZmIC0tZ2l0IGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVsay5zaCBiL2NvbW1vbi94 YnBzLXNyYy9zaHV0aWxzL2J1bGsuc2gKaW5kZXggNzM5NDc5NjUyODIuLmVkNWM0Y2UxOTJkIDEw MDY0NAotLS0gYS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9idWxrLnNoCisrKyBiL2NvbW1vbi94 YnBzLXNyYy9zaHV0aWxzL2J1bGsuc2gKQEAgLTEsODMgKzEsNzggQEAKICMgdmltOiBzZXQgdHM9 NCBzdz00IGV0OgogCi1idWxrX2dldGxpbmsoKSB7Ci0gICAgbG9jYWwgcD0iJHsxIyMqL30iCi0g ICAgbG9jYWwgdGFyZ2V0PSIkKHJlYWRsaW5rICRYQlBTX1NSQ1BLR0RJUi8kcCkiCi0KLSAgICBp ZiBbICQ/IC1lcSAwIC1hIC1uICIkdGFyZ2V0IiBdOyB0aGVuCi0gICAgICAgIHA9JHRhcmdldAot ICAgIGZpCi0gICAgZWNobyAkcAotfQotCiBidWxrX3NvcnRkZXBzKCkgewotICAgIGxvY2FsIF9w a2dzIF9wa2cgcGtncyBwa2cgZm91bmQgZiB4IHRtcGYKLQotICAgIF9wa2dzPSIkQCIKLSAgICAj IEl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBhbmQgbWFrZSBzdXJlIHRoYXQgb25seSByZWFsIHBrZ3Mg YXJlCi0gICAgIyBhZGRlZCB0byBvdXIgcGtnbGlzdC4KLSAgICBmb3IgcGtnIGluICR7X3BrZ3N9 OyBkbwotICAgICAgICBmb3VuZD0wCi0gICAgICAgIGY9JChidWxrX2dldGxpbmsgJHBrZykKLSAg ICAgICAgZm9yIHggaW4gJHtwa2dzfTsgZG8KLSAgICAgICAgICAgIGlmIFsgIiR4IiA9ICIke2Z9 IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgZm91bmQ9MQotICAgICAgICAgICAgICAgIGJyZWFr Ci0gICAgICAgICAgICBmaQotICAgICAgICBkb25lCi0gICAgICAgIGlmIFsgJGZvdW5kIC1lcSAw IF07IHRoZW4KLSAgICAgICAgICAgIHBrZ3MrPSIke2Z9ICIKLSAgICAgICAgZmkKLSAgICBkb25l CisgICAgbG9jYWwgcGtncz0iJEAiCisgICAgbG9jYWwgcGtnIF9wa2cKKyAgICBsb2NhbCBOUFJP Q1M9JCgoJChucHJvYykqMikpCisgICAgbG9jYWwgTlJVTk5JTkc9MAogCiAgICAgdG1wZj0kKG1r dGVtcCkgfHwgZXhpdCAxCi0gICAgIyBOb3cgbWFrZSB0aGUgcmVhbCBkZXBlbmRlbmN5IGdyYXBo IG9mIGFsbCBwa2dzIHRvIGJ1aWxkLgotICAgICMgUGVyZm9ybSBhIHRvcG9sb2dpY2FsIHNvcnQg b2YgYWxsIHBrZ3MgYnV0IG9ubHkgd2l0aCBidWlsZCBkZXBlbmRlbmNpZXMKLSAgICAjIHRoYXQg YXJlIGZvdW5kIGluIHByZXZpb3VzIHN0ZXAuCisKKyAgICAjIFBlcmZvcm0gYSB0b3BvbG9naWNh bCBzb3J0IG9mIGFsbCAqZGlyZWN0KiBidWlsZCBkZXBlbmRlbmNpZXMuCiAgICAgZm9yIHBrZyBp biAke3BrZ3N9OyBkbwotICAgICAgICBfcGtncz0iJCguL3hicHMtc3JjIHNob3ctYnVpbGQtZGVw cyAkcGtnIDI+L2Rldi9udWxsKSIKLSAgICAgICAgZm91bmQ9MAotICAgICAgICBmb3IgeCBpbiAk e19wa2dzfTsgZG8KLSAgICAgICAgICAgIF9wa2c9JChidWxrX2dldGxpbmsgJHgpCi0gICAgICAg ICAgICBmb3IgZiBpbiAke3BrZ3N9OyBkbwotICAgICAgICAgICAgICAgIGlmIFsgIiR7Zn0iICE9 ICIke19wa2d9IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAg ICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICBmb3VuZD0xCi0gICAgICAgICAgICAgICAgZWNo byAiJHtwa2d9ICR7Zn0iID4+ICR0bXBmCisgICAgICAgIGlmIFsgJE5SVU5OSU5HIC1lcSAkTlBS T0NTIF07IHRoZW4KKyAgICAgICAgICAgIE5SVU5OSU5HPTAKKyAgICAgICAgICAgIHdhaXQKKyAg ICAgICAgZmkKKyAgICAgICAgTlJVTk5JTkc9JCgoTlJVTk5JTkcrMSkpCisgICAgICAgICgKKyAg ICAgICAgICAgIGZvciBfcGtnIGluICQoLi94YnBzLXNyYyBzaG93LWJ1aWxkLWRlcHMgJHBrZyAy Pi9kZXYvbnVsbCk7IGRvCisgICAgICAgICAgICAgICAgZWNobyAiJHBrZyAkX3BrZyIgPj4gJHRt cGYKICAgICAgICAgICAgIGRvbmUKLSAgICAgICAgZG9uZQotICAgICAgICBbICRmb3VuZCAtZXEg MCBdICYmIGVjaG8gIiR7cGtnfSAke3BrZ30iID4+ICR0bXBmCisgICAgICAgICAgICBlY2hvICIk cGtnICRwa2ciID4+ICR0bXBmCisgICAgICAgICkgJgogICAgIGRvbmUKKyAgICB3YWl0CiAgICAg dHNvcnQgJHRtcGZ8dGFjCiAgICAgcm0gLWYgJHRtcGYKIH0KIAogYnVsa19idWlsZCgpIHsKKyAg ICBsb2NhbCBzeXM9IiQxIgorICAgIGxvY2FsIE5QUk9DUz0kKCgkKG5wcm9jKSoyKSkKKyAgICBs b2NhbCBOUlVOTklORz0wCiAKICAgICBpZiBbICIkWEJQU19DUk9TU19CVUlMRCIgXTsgdGhlbgog ICAgICAgICBzb3VyY2UgJHtYQlBTX0NPTU1PTkRJUn0vY3Jvc3MtcHJvZmlsZXMvJHtYQlBTX0NS T1NTX0JVSUxEfS5zaAogICAgICAgICBleHBvcnQgWEJQU19BUkNIPSR7WEJQU19UQVJHRVRfTUFD SElORX0KICAgICBmaQogICAgIGlmICEgY29tbWFuZCAtdiB4YnBzLWNoZWNrdmVycyAmPi9kZXYv bnVsbDsgdGhlbgotICAgICAgICBtc2dfZXJyb3IgInhicHMtc3JjOiBjYW5ub3QgZmluZCB4YnBz LWNoZWNrdmVycyg4KSBjb21tYW5kIVxuIgorICAgICAgICBtc2dfZXJyb3IgInhicHMtc3JjOiBj YW5ub3QgZmluZCB4YnBzLWNoZWNrdmVycygxKSBjb21tYW5kIVxuIgogICAgIGZpCiAKLSAgICBi dWxrX3NvcnRkZXBzICIkKHhicHMtY2hlY2t2ZXJzICR7MX0gLS1kaXN0ZGlyPSRYQlBTX0RJU1RE SVIgfCBhd2sgJ3twcmludCAkMn0nKSIKKyAgICAjIENvbXBhcmUgaW5zdGFsbGVkIHBrZyB2ZXJz aW9ucyB2cyBzcmNwa2dzCisgICAgaWYgW1sgJHN5cyBdXTsgdGhlbgorICAgICAgICB4YnBzLWNo ZWNrdmVycyAtZiAnJW4nIC1JIC1EICRYQlBTX0RJU1RESVIKKyAgICAgICAgcmV0dXJuICQ/Cisg ICAgZmkKKyAgICAjIGNvbXBhcmUgcmVwbyBwa2cgdmVyc2lvbnMgdnMgc3JjcGtncworICAgIGZv ciBmIGluICQoeGJwcy1jaGVja3ZlcnMgLWYgJyVuJyAtRCAkWEJQU19ESVNURElSKTsgZG8KKyAg ICAgICAgaWYgWyAkTlJVTk5JTkcgLWVxICROUFJPQ1MgXTsgdGhlbgorICAgICAgICAgICAgTlJV Tk5JTkc9MAorICAgICAgICAgICAgd2FpdAorICAgICAgICBmaQorICAgICAgICBOUlVOTklORz0k KChOUlVOTklORysxKSkKKyAgICAgICAgKAorICAgICAgICAgICAgc2V0dXBfcGtnICRmICRYQlBT X1RBUkdFVF9NQUNISU5FICY+L2Rldi9udWxsCisgICAgICAgICAgICBpZiBzaG93X2F2YWlsICY+ L2Rldi9udWxsOyB0aGVuCisgICAgICAgICAgICAgICAgZWNobyAiJGYiCisgICAgICAgICAgICBm aQorICAgICAgICApICYKKyAgICBkb25lCisgICAgd2FpdAorICAgIHJldHVybiAkPwogfQogCiBi dWxrX3VwZGF0ZSgpIHsKICAgICBsb2NhbCBhcmdzPSIkMSIgcGtncyBmIHJ2YWwKIAogICAgIHBr Z3M9IiQoYnVsa19idWlsZCAke2FyZ3N9KSIKLSAgICBpZiBbIC16ICIkcGtncyIgXTsgdGhlbgot ICAgICAgICByZXR1cm4gMAotICAgIGZpCisgICAgW1sgLXogJHBrZ3MgXV0gJiYgcmV0dXJuIDAK KwogICAgIG1zZ19ub3JtYWwgInhicHMtc3JjOiB0aGUgZm9sbG93aW5nIHBhY2thZ2VzIG11c3Qg YmUgcmVidWlsdCBhbmQgdXBkYXRlZDpcbiIKICAgICBmb3IgZiBpbiAke3BrZ3N9OyBkbwotICAg ICAgICBlY2hvICIgICAkZiIKKyAgICAgICAgZWNobyAiICRmIgogICAgIGRvbmUKLSAgICBlY2hv CiAgICAgZm9yIGYgaW4gJHtwa2dzfTsgZG8KICAgICAgICAgWEJQU19UQVJHRVRfUEtHPSRmCiAg ICAgICAgIHJlYWRfcGtnCmRpZmYgLS1naXQgYS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jaHJv b3Quc2ggYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jaHJvb3Quc2gKaW5kZXggMTdiYTlkZGU2 Y2EuLjdlMjhmMTEyMGRkIDEwMDY0NAotLS0gYS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jaHJv b3Quc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY2hyb290LnNoCkBAIC0xNjksNyAr MTY5LDcgQEAgY2hyb290X2hhbmRsZXIoKSB7CiAgICAgWyAteiAiJGFjdGlvbiIgLWEgLXogIiRw a2ciIF0gJiYgcmV0dXJuIDEKIAogICAgIGNhc2UgIiRhY3Rpb24iIGluCi0gICAgICAgIGZldGNo fGV4dHJhY3R8cGF0Y2h8YnVpbGR8Y2hlY2t8Y29uZmlndXJlfGluc3RhbGx8aW5zdGFsbC1kZXN0 ZGlyfHBrZ3xidWlsZC1wa2d8Ym9vdHN0cmFwLXVwZGF0ZXxjaHJvb3QpCisgICAgICAgIGZldGNo fGV4dHJhY3R8cGF0Y2h8Y29uZmlndXJlfGJ1aWxkfGNoZWNrfGluc3RhbGx8cGtnfGJvb3RzdHJh cC11cGRhdGV8Y2hyb290KQogICAgICAgICAgICAgY2hyb290X3ByZXBhcmUgfHwgcmV0dXJuICQ/ CiAgICAgICAgICAgICBjaHJvb3RfaW5pdCB8fCByZXR1cm4gJD8KICAgICAgICAgICAgIGNocm9v dF9zeW5jX3JlcG9zIHx8IHJldHVybiAkPwpAQCAtMTgxLDMwICsxODEsMTMgQEAgY2hyb290X2hh bmRsZXIoKSB7CiAgICAgICAgICAgICAkWEJQU19NQVNURVJESVIgJFhCUFNfRElTVERJUiAiJFhC UFNfSE9TVERJUiIgIiRYQlBTX0NIUk9PVF9DTURfQVJHUyIgL2Jpbi94YnBzLXNoZWxsCiAgICAg ICAgIHJ2PSQ/CiAgICAgZWxzZQotICAgICAgICBbIC1uICIkWEJQU19DUk9TU19CVUlMRCIgXSAm JiBhcmc9IiRhcmcgLWEgJFhCUFNfQ1JPU1NfQlVJTEQiCi0gICAgICAgIFsgLW4gIiRYQlBTX0tF RVBfQUxMIiBdICYmIGFyZz0iJGFyZyAtQyIKLSAgICAgICAgWyAtbiAiJE5PQ09MT1JTIiBdICYm IGFyZz0iJGFyZyAtTCIKLSAgICAgICAgWyAtbiAiJFhCUFNfQlVJTERfRk9SQ0VNT0RFIiBdICYm IGFyZz0iJGFyZyAtZiIKLSAgICAgICAgWyAtbiAiJFhCUFNfTUFLRUpPQlMiIF0gJiYgYXJnPSIk YXJnIC1qJFhCUFNfTUFLRUpPQlMiCi0gICAgICAgIFsgLW4gIiRYQlBTX0RFQlVHX1BLR1MiIF0g JiYgYXJnPSIkYXJnIC1nIgotICAgICAgICBbIC1uICIkWEJQU19DSEVDS19QS0dTIiBdICYmIGFy Zz0iJGFyZyAtUSIKLSAgICAgICAgWyAtbiAiJFhCUFNfQlVJTERfT05MWV9PTkVfUEtHIiBdICYm IGFyZz0iJGFyZyAtMSIKLSAgICAgICAgWyAtbiAiJFhCUFNfUVVJRVQiIF0gJiYgYXJnPSIkYXJn IC1xIgotICAgICAgICBbIC1uICIkWEJQU19TS0lQX0RFUFMiIF0gJiYgYXJnPSIkYXJnIC1JIgot ICAgICAgICBbIC1uICIkWEJQU19BTFRfUkVQT1NJVE9SWSIgXSAmJiBhcmc9IiRhcmcgLXIgJFhC UFNfQUxUX1JFUE9TSVRPUlkiCi0gICAgICAgIFsgLW4gIiRYQlBTX1VTRV9HSVRfUkVWUyIgXSAm JiBhcmc9IiRhcmcgLUciCi0gICAgICAgIFsgLW4gIiRYQlBTX1BLR19PUFRJT05TIiBdICYmIGFy Zz0iJGFyZyAtbyAkWEJQU19QS0dfT1BUSU9OUyIKLSAgICAgICAgWyAtbiAiJFhCUFNfVEVNUF9N QVNURVJESVIiIF0gJiYgYXJnPSIkYXJnIC10IC1DIgotICAgICAgICBbIC1uICIkWEJQU19CSU5Q S0dfRVhJU1RTIiBdICYmIGFyZz0iJGFyZyAtRSIKLQotICAgICAgICBhY3Rpb249IiRhcmcgJGFj dGlvbiIKICAgICAgICAgZW52IC1pIC0tIFBBVEg9Ii91c3IvYmluIiBTSEVMTD0vYmluL3NoIFwK ICAgICAgICAgICAgIEhPTUU9L3RtcCBJTl9DSFJPT1Q9MSBMQ19DT0xMQVRFPUMgTEFORz1lbl9V Uy5VVEYtOCBcCiAgICAgICAgICAgICBTT1VSQ0VfREFURV9FUE9DSD0iJFNPVVJDRV9EQVRFX0VQ T0NIIiBcCiAgICAgICAgICAgICBYQlBTX0FMTE9XX0NIUk9PVF9CUkVBS09VVD0iJFhCUFNfQUxM T1dfQ0hST09UX0JSRUFLT1VUIiBcCiAgICAgICAgICAgICAkWEJQU19DT01NT05ESVIvY2hyb290 LXN0eWxlLyR7WEJQU19DSFJPT1RfQ01EOj11dW5zaGFyZX0uc2ggXAogICAgICAgICAgICAgJFhC UFNfTUFTVEVSRElSICRYQlBTX0RJU1RESVIgIiRYQlBTX0hPU1RESVIiICIkWEJQU19DSFJPT1Rf Q01EX0FSR1MiIFwKLSAgICAgICAgICAgIC92b2lkLXBhY2thZ2VzL3hicHMtc3JjICRhY3Rpb24g JHBrZworICAgICAgICAgICAgL3ZvaWQtcGFja2FnZXMveGJwcy1zcmMgJFhCUFNfT1BUSU9OUyAk YWN0aW9uICRwa2cKICAgICAgICAgcnY9JD8KICAgICBmaQogCmRpZmYgLS1naXQgYS9jb21tb24v eGJwcy1zcmMvc2h1dGlscy9jb21tb24uc2ggYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jb21t b24uc2gKaW5kZXggNTU2NzYxOWY4ZjMuLmI4ZDYwMWQzZmIyIDEwMDY0NAotLS0gYS9jb21tb24v eGJwcy1zcmMvc2h1dGlscy9jb21tb24uc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMv Y29tbW9uLnNoCkBAIC0yOTQsNyArMjk0LDcgQEAgc2V0dXBfcGtnKCkgewogICAgICAgICBYQlBT X1JFTU9WRV9YQ01EPSJlbnYgWEJQU19UQVJHRVRfQVJDSD0kWEJQU19UQVJHRVRfTUFDSElORSAk WEJQU19SRU1PVkVfQ01EIC1yICRYQlBTX0NST1NTX0JBU0UiCiAgICAgICAgIFhCUFNfUklOREVY X1hDTUQ9ImVudiBYQlBTX1RBUkdFVF9BUkNIPSRYQlBTX1RBUkdFVF9NQUNISU5FICRYQlBTX1JJ TkRFWF9DTUQiCiAgICAgICAgIFhCUFNfVUhFTFBFUl9YQ01EPSJlbnYgWEJQU19UQVJHRVRfQVJD SD0kWEJQU19UQVJHRVRfTUFDSElORSB4YnBzLXVoZWxwZXIgLXIgJFhCUFNfQ1JPU1NfQkFTRSIK LQorICAgICAgICBYQlBTX0NIRUNLVkVSU19YQ01EPSJlbnYgWEJQU19UQVJHRVRfQVJDSD0kWEJQ U19UQVJHRVRfTUFDSElORSB4YnBzLWNoZWNrdmVycyAtciAkWEJQU19DUk9TU19CQVNFIC0tcmVw b3NpdG9yeT0kWEJQU19SRVBPU0lUT1JZIgogICAgIGVsc2UKICAgICAgICAgZXhwb3J0IFhCUFNf VEFSR0VUX01BQ0hJTkU9JHtYQlBTX0FSQ0g6LSRYQlBTX01BQ0hJTkV9CiAgICAgICAgIHVuc2V0 IFhCUFNfQ1JPU1NfQkFTRSBYQlBTX0NST1NTX0xERkxBR1MgWEJQU19DUk9TU19GRkxBR1MKQEAg LTMwNyw3ICszMDcsNyBAQCBzZXR1cF9wa2coKSB7CiAgICAgICAgIFhCUFNfUkVNT1ZFX1hDTUQ9 IiRYQlBTX1JFTU9WRV9DTUQiCiAgICAgICAgIFhCUFNfUklOREVYX1hDTUQ9IiRYQlBTX1JJTkRF WF9DTUQiCiAgICAgICAgIFhCUFNfVUhFTFBFUl9YQ01EPSIkWEJQU19VSEVMUEVSX0NNRCIKLQor ICAgICAgICBYQlBTX0NIRUNLVkVSU19YQ01EPSIkWEJQU19DSEVDS1ZFUlNfQ01EIgogICAgIGZp CiAKICAgICBleHBvcnQgWEJQU19JTlNUQUxMX1hDTUQgWEJQU19RVUVSWV9YQ01EIFhCUFNfUkVD T05GSUdVUkVfWENNRCBcCkBAIC00MDIsNyArNDAyLDcgQEAgc2V0dXBfcGtnKCkgewogICAgICAg ICBhcmNoPSIkWEJQU19UQVJHRVRfTUFDSElORSIKICAgICBmaQogICAgIGlmIFsgLW4gIiRYQlBT X0JJTlBLR19FWElTVFMiIF07IHRoZW4KLSAgICAgICAgaWYgWyAiJCgkWEJQU19RVUVSWV9YQ01E IC1SIC1wcGtndmVyICRwa2d2ZXIgMj4vZGV2L251bGwpIiA9ICIkcGtndmVyIiBdOyB0aGVuCisg ICAgICAgIGlmIFsgIiQoJFhCUFNfUVVFUllfWENNRCAtaSAtUiAtcHBrZ3ZlciAkcGtndmVyIDI+ L2Rldi9udWxsKSIgPSAiJHBrZ3ZlciIgXTsgdGhlbgogICAgICAgICAgICAgZXhpdF9hbmRfY2xl YW51cAogICAgICAgICBmaQogICAgIGZpCkBAIC01NTYsMTcgKzU1NiwxNyBAQCBzZXR1cF9wa2co KSB7CiAgICAgICAgIHdya3NyYz0iJFhCUFNfQlVJTERESVIvJHdya3NyYyIKICAgICBmaQogCi0g ICAgaWYgWyAiJGNyb3NzIiAtYSAiJG5vY3Jvc3MiIC1hICJ6JHNob3dfcHJvYmxlbXMiICE9ICJ6 aWdub3JlLXByb2JsZW1zIiBdOyB0aGVuCisgICAgaWYgWyAiJGNyb3NzIiAtYSAiJG5vY3Jvc3Mi IC1hICIkc2hvd19wcm9ibGVtcyIgIT0gImlnbm9yZS1wcm9ibGVtcyIgXTsgdGhlbgogICAgICAg ICBtc2dfcmVkICIkcGtndmVyOiBjYW5ub3QgYmUgY3Jvc3MgY29tcGlsZWQsIGV4aXRpbmcuLi5c biIKICAgICAgICAgbXNnX3JlZCAiJHBrZ3ZlcjogJG5vY3Jvc3NcbiIKICAgICAgICAgZXhpdCAy Ci0gICAgZWxpZiBbICIkYnJva2VuIiAtYSAieiRzaG93X3Byb2JsZW1zIiAhPSAiemlnbm9yZS1w cm9ibGVtcyIgXTsgdGhlbgorICAgIGVsaWYgWyAiJGJyb2tlbiIgLWEgIiRzaG93X3Byb2JsZW1z IiAhPSAiaWdub3JlLXByb2JsZW1zIiBdOyB0aGVuCiAgICAgICAgIG1zZ19yZWQgIiRwa2d2ZXI6 IGNhbm5vdCBiZSBidWlsdCwgaXQncyBjdXJyZW50bHkgYnJva2VuOyBzZWUgdGhlIGJ1aWxkIGxv ZzpcbiIKICAgICAgICAgbXNnX3JlZCAiJHBrZ3ZlcjogJGJyb2tlblxuIgogICAgICAgICBleGl0 IDIKICAgICBmaQogCi0gICAgaWYgWyAtbiAiJHJlc3RyaWN0ZWQiIC1hIC16ICIkWEJQU19BTExP V19SRVNUUklDVEVEIiAtYSAieiRzaG93X3Byb2JsZW1zIiAhPSAiemlnbm9yZS1wcm9ibGVtcyIg XTsgdGhlbgorICAgIGlmIFsgLW4gIiRyZXN0cmljdGVkIiAtYSAteiAiJFhCUFNfQUxMT1dfUkVT VFJJQ1RFRCIgLWEgIiRzaG93X3Byb2JsZW1zIiAhPSAiaWdub3JlLXByb2JsZW1zIiBdOyB0aGVu CiAgICAgICAgIG1zZ19yZWQgIiRwa2d2ZXI6IGRvZXMgbm90IGFsbG93IHJlZGlzdHJpYnV0aW9u IG9mIHNvdXJjZXMvYmluYXJpZXMgKHJlc3RyaWN0ZWQgbGljZW5zZSkuXG4iCiAgICAgICAgIG1z Z19yZWQgIklmIHlvdSByZWFsbHkgbmVlZCB0aGlzIHNvZnR3YXJlLCBydW4gJ2VjaG8gWEJQU19B TExPV19SRVNUUklDVEVEPXllcyA+PiBldGMvY29uZidcbiIKICAgICAgICAgZXhpdCAyCkBAIC01 NzUsOSArNTc1LDcgQEAgc2V0dXBfcGtnKCkgewogICAgIGV4cG9ydCBYQlBTX1NUQVRFRElSPSIk e1hCUFNfQlVJTERESVJ9Ly54YnBzLSR7c291cmNlcGtnfSIKICAgICBleHBvcnQgWEJQU19XUkFQ UEVSRElSPSIke1hCUFNfU1RBVEVESVJ9L3dyYXBwZXJzIgogCi0gICAgaWYgWyAtbiAiJGJvb3Rz dHJhcCIgLWEgLXogIiRDSFJPT1RfUkVBRFkiIC1vIC1uICIkSU5fQ0hST09UIiBdOyB0aGVuCi0g ICAgICAgIG1rZGlyIC1wICRYQlBTX1dSQVBQRVJESVIKLSAgICBmaQorICAgIG1rZGlyIC1wICRY QlBTX1NUQVRFRElSICRYQlBTX1dSQVBQRVJESVIKIAogICAgIHNvdXJjZV9maWxlICRYQlBTX0NP TU1PTkRJUi9lbnZpcm9ubWVudC9idWlsZC1zdHlsZS8ke2J1aWxkX3N0eWxlfS5zaAogCmRpZmYg LS1naXQgYS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jcm9zcy5zaCBiL2NvbW1vbi94YnBzLXNy Yy9zaHV0aWxzL2Nyb3NzLnNoCmluZGV4IDEyYzllZmE5YjQ5Li5lNzIxMDA5ODZkZCAxMDA2NDQK LS0tIGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY3Jvc3Muc2gKKysrIGIvY29tbW9uL3hicHMt c3JjL3NodXRpbHMvY3Jvc3Muc2gKQEAgLTI0LDExICsyNCwxMiBAQCByZW1vdmVfcGtnX2Nyb3Nz X2RlcHMoKSB7CiAKIHByZXBhcmVfY3Jvc3Nfc3lzcm9vdCgpIHsKICAgICBsb2NhbCBjcm9zcz0i JDEiCisgICAgbG9jYWwgc3RhdGVmaWxlPSIkWEJQU19NQVNURVJESVIvLnhicHMtJHtjcm9zc30t ZG9uZSIKIAotICAgIFsgLXogIiRjcm9zcyIgLW8gIiRjcm9zcyIgPSAiIiBdICYmIHJldHVybiAw CisgICAgWyAteiAiJGNyb3NzIiAtbyAiJGNyb3NzIiA9ICIiIC1vIC1mICRzdGF0ZWZpbGUgXSAm JiByZXR1cm4gMAogCiAgICAgIyBDaGVjayBmb3IgY3Jvc3MtdnBrZy1kdW1teSBhdmFpbGFibGUg Zm9yIHRoZSB0YXJnZXQgYXJjaCwgb3RoZXJ3aXNlIGJ1aWxkIGl0LgotICAgIHBrZ19hdmFpbGFi bGUgJ2Nyb3NzLXZwa2ctZHVtbXk+PTAuMzBfMScgJGNyb3NzCisgICAgcGtnX2F2YWlsYWJsZSAn Y3Jvc3MtdnBrZy1kdW1teT49MC4zMV8xJyAkY3Jvc3MKICAgICBpZiBbICQ/IC1lcSAwIF07IHRo ZW4KICAgICAgICAgJFhCUFNfTElCRVhFQ0RJUi9idWlsZC5zaCBjcm9zcy12cGtnLWR1bW15IGNy b3NzLXZwa2ctZHVtbXkgcGtnICRjcm9zcyBpbml0IHx8IHJldHVybiAkPwogICAgIGZpCkBAIC00 MCw3ICs0MSw3IEBAIHByZXBhcmVfY3Jvc3Nfc3lzcm9vdCgpIHsKICAgICBlcnJsb2c9JChta3Rl bXApIHx8IGV4aXQgMQogICAgICRYQlBTX0lOU1RBTExfWENNRCAtU3lmZCBjcm9zcy12cGtnLWR1 bW15ICY+JGVycmxvZwogICAgIHJ2YWw9JD8KLSAgICBpZiBbICRydmFsIC1uZSAwIC1hICRydmFs IC1uZSAxNyBdOyB0aGVuCisgICAgaWYgWyAkcnZhbCAtbmUgMCBdOyB0aGVuCiAgICAgICAgIG1z Z19yZWQgImZhaWxlZCB0byBpbnN0YWxsIGNyb3NzLXZwa2ctZHVtbXkgKGVycm9yICRydmFsKVxu IgogICAgICAgICBjYXQgJGVycmxvZwogICAgICAgICBybSAtZiAkZXJybG9nCkBAIC00OCwxMSAr NDksMTUgQEAgcHJlcGFyZV9jcm9zc19zeXNyb290KCkgewogICAgIGZpCiAgICAgcm0gLWYgJGVy cmxvZwogICAgICMgQ3JlYXRlIHRvcCBsZXZlbCBzeW1saW5rcyBpbiBzeXNyb290LgotICAgIFhC UFNfQVJDSD0kWEJQU19UQVJHRVRfTUFDSElORSB4YnBzLXJlY29uZmlndXJlIC1yICRYQlBTX0NS T1NTX0JBU0UgLWYgYmFzZS1kaXJlY3RvcmllcyBiYXNlLWZpbGVzICY+L2Rldi9udWxsCisgICAg WEJQU19BUkNIPSRYQlBTX1RBUkdFVF9NQUNISU5FIHhicHMtcmVjb25maWd1cmUgLXIgJFhCUFNf Q1JPU1NfQkFTRSAtZiBiYXNlLWZpbGVzICY+L2Rldi9udWxsCiAgICAgIyBDcmVhdGUgYSBzeXNy b290L2luY2x1ZGUgYW5kIHN5c3Jvb3QvbGliIHN5bWxpbmsganVzdCBpbiBjYXNlLgogICAgIGxu IC1zIHVzci9pbmNsdWRlICR7WEJQU19DUk9TU19CQVNFfS9pbmNsdWRlCiAgICAgbG4gLXMgdXNy L2xpYiAke1hCUFNfQ1JPU1NfQkFTRX0vbGliCiAKKyAgICBpbnN0YWxsX2Nyb3NzX3BrZyAkY3Jv c3MgfHwgcmV0dXJuIDEKKworICAgIHRvdWNoIC1mICRzdGF0ZWZpbGUKKwogICAgIHJldHVybiAw CiB9CiAKZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL3BrZ3RhcmdldC5zaCBi L2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL3BrZ3RhcmdldC5zaAppbmRleCBhN2JlNjI0MTczZS4u N2QzZWQxYzc4ZjQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL3BrZ3Rhcmdl dC5zaAorKysgYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9wa2d0YXJnZXQuc2gKQEAgLTU0LDYg KzU0LDEwIEBAIHJlbW92ZV9wa2dfYXV0b2RlcHMoKSB7CiAgICAgJFhCUFNfUkVDT05GSUdVUkVf Q01EIC1hID4+ICR0bXBsb2dmIDI+JjEKICAgICBlY2hvIHllcyB8ICRYQlBTX1JFTU9WRV9DTUQg LVJ5b2QgPj4gJHRtcGxvZ2YgMj4mMQogICAgIHJ2YWw9JD8KKyAgICBpZiBbICRydmFsIC1lcSAw IF07IHRoZW4KKyAgICAgICAgZWNobyB5ZXMgfCAkWEJQU19SRU1PVkVfQ01EIC1SeW9kID4+ICR0 bXBsb2dmIDI+JjEKKyAgICAgICAgcnZhbD0kPworICAgIGZpCiAKICAgICBpZiBbICRydmFsIC1u ZSAwIF07IHRoZW4KICAgICAgICAgbXNnX3JlZCAiJHtwa2d2ZXI6LXhicHMtc3JjfTogZmFpbGVk IHRvIHJlbW92ZSBhdXRvZGVwczogKHJldHVybmVkICRydmFsKVxuIgpkaWZmIC0tZ2l0IGEvY29t bW9uL3hicHMtc3JjL3NodXRpbHMvc2hvdy5zaCBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL3No b3cuc2gKaW5kZXggZTJmYzk1NjUxNGUuLjY3YjJlYzE0ODEwIDEwMDY0NAotLS0gYS9jb21tb24v eGJwcy1zcmMvc2h1dGlscy9zaG93LnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL3No b3cuc2gKQEAgLTYxLDQ0ICs2MSwyMiBAQCBzaG93X2F2YWlsKCkgewogfQogCiBzaG93X3BrZ19i dWlsZF9kZXBlbmRzKCkgewotICAgIGxvY2FsIGYgeCBfcGtnbmFtZSBfc3JjcGtnIF9kZXAgZm91 bmQgcmVzdWx0CisgICAgbG9jYWwgZiB4IF9wa2duYW1lIF9zcmNwa2cgZm91bmQgcmVzdWx0CiAg ICAgbG9jYWwgX2RlcHM9IiQxIgogCiAgICAgcmVzdWx0PSQobWt0ZW1wKSB8fCBleGl0IDEKIAog ICAgICMgYnVpbGQgdGltZSBkZXBzCiAgICAgZm9yIGYgaW4gJHtfZGVwc307IGRvCi0gICAgICAg ICMgaWdub3JlIHZpcnR1YWwgZGVwcwotICAgICAgICBsb2NhbCBfcnBrZz0iJHtmJVw/Kn0iCi0g ICAgICAgIGxvY2FsIF92cGtnPSIke2YjKlw/fSIKLQogICAgICAgICAjIGlnbm9yZSB2aXJ0dWFs IGRlcGVuZGVuY2llcwotICAgICAgICBpZiBbICIke19ycGtnfSIgIT0gIiR7X3Zwa2d9IiBdOyB0 aGVuCi0gICAgICAgICAgICBmPSIke192cGtnfSIKLSAgICAgICAgZmkKKyAgICAgICAgW1sgJHtm JVw/Kn0gIT0gJHtmIypcP30gXV0gJiYgZj0ke2YjKlw/fQogICAgICAgICB1bnNldCBmb3VuZAog ICAgICAgICAjIGNoZWNrIGZvciBzdWJwa2dzCiAgICAgICAgIGZvciB4IGluICR7c3VicGFja2Fn ZXN9OyBkbwotICAgICAgICAgICAgX3BrZ25hbWU9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtn ZGVwbmFtZSAkZiAyPi9kZXYvbnVsbCkiCi0gICAgICAgICAgICBpZiBbIC16ICIke19wa2duYW1l fSIgXTsgdGhlbgotICAgICAgICAgICAgICAgIF9wa2duYW1lPSIkKCRYQlBTX1VIRUxQRVJfQ01E IGdldHBrZ25hbWUgJGYgMj4vZGV2L251bGwpIgotICAgICAgICAgICAgZmkKLSAgICAgICAgICAg IGlmIFsgIiR7X3BrZ25hbWV9IiA9ICIkeCIgXTsgdGhlbgotICAgICAgICAgICAgICAgIGZvdW5k PTEKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgZmkKKyAgICAgICAgICAgIFtb ICRmID09ICR4IF1dICYmIGZvdW5kPTEgJiYgYnJlYWsKICAgICAgICAgZG9uZQotICAgICAgICBp ZiBbIC1uICIkZm91bmQiIF07IHRoZW4KLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGZp Ci0gICAgICAgIF9wa2duYW1lPSIkKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ2RlcG5hbWUgJGYg Mj4vZGV2L251bGwpIgotICAgICAgICBpZiBbIC16ICIke19wa2duYW1lfSIgXTsgdGhlbgotICAg ICAgICAgICAgX3BrZ25hbWU9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnbmFtZSAkZiAyPi9k ZXYvbnVsbCkiCi0gICAgICAgIGZpCi0gICAgICAgIGlmIFsgLXogIiR7X3BrZ25hbWV9IiBdOyB0 aGVuCi0gICAgICAgICAgICBfcGtnbmFtZT0iJGYiCi0gICAgICAgIGZpCi0gICAgICAgIF9wa2du YW1lPSR7X3BrZ25hbWUvLTMyYml0fQorICAgICAgICBbWyAkZm91bmQgXV0gJiYgY29udGludWUK KyAgICAgICAgX3BrZ25hbWU9JHtmLy0zMmJpdH0KICAgICAgICAgX3NyY3BrZz0kKHJlYWRsaW5r IC1mICR7WEJQU19TUkNQS0dESVJ9LyR7X3BrZ25hbWV9KQogICAgICAgICBfc3JjcGtnPSR7X3Ny Y3BrZyMjKi99CiAgICAgICAgIGVjaG8gIiR7X3NyY3BrZ30iID4+ICRyZXN1bHQKQEAgLTEwOCwx OCArODYsMTUgQEAgc2hvd19wa2dfYnVpbGRfZGVwZW5kcygpIHsKIH0KIAogc2hvd19wa2dfYnVp bGRfZGVwcygpIHsKLSAgICBzZXR1cF9wa2dfZGVwZW5kcwotICAgIHNob3dfcGtnX2J1aWxkX2Rl cGVuZHMgIiR7aG9zdF9idWlsZF9kZXBlbmRzfSAke2J1aWxkX2RlcGVuZHN9ICR7cnVuX2RlcGVu ZHN9IgorICAgIHNob3dfcGtnX2J1aWxkX2RlcGVuZHMgIiR7aG9zdG1ha2VkZXBlbmRzfSAke21h a2VkZXBlbmRzfSAkKHNldHVwX3BrZ19kZXBlbmRzICcnIDEpIgogfQogCiBzaG93X3BrZ19ob3N0 bWFrZWRlcGVuZHMoKSB7Ci0gICAgc2V0dXBfcGtnX2RlcGVuZHMKLSAgICBzaG93X3BrZ19idWls ZF9kZXBlbmRzICIke2hvc3RfYnVpbGRfZGVwZW5kc30iCisgICAgc2hvd19wa2dfYnVpbGRfZGVw ZW5kcyAiJHtob3N0bWFrZWRlcGVuZHN9IgogfQogCiBzaG93X3BrZ19tYWtlZGVwZW5kcygpIHsK LSAgICBzZXR1cF9wa2dfZGVwZW5kcwotICAgIHNob3dfcGtnX2J1aWxkX2RlcGVuZHMgIiR7YnVp bGRfZGVwZW5kc30iCisgICAgc2hvd19wa2dfYnVpbGRfZGVwZW5kcyAiJHttYWtlZGVwZW5kc30i CiB9CiAKIHNob3dfcGtnX2J1aWxkX29wdGlvbnMoKSB7CmRpZmYgLS1naXQgYS94YnBzLXNyYyBi L3hicHMtc3JjCmluZGV4IDIzZDYxNjRiMThhLi5jN2M0MWY0NzE5MyAxMDA3NTUKLS0tIGEveGJw cy1zcmMKKysrIGIveGJwcy1zcmMKQEAgLTEsOCArMSw2IEBACiAjIS9iaW4vYmFzaAogIyB2aW06 IHNldCB0cz00IHN3PTQgZXQ6CiAKLXJlYWRvbmx5IFBST0dOQU1FPSIkezAjIyovfSIKLQogcHJp bnRfY3Jvc3NfdGFyZ2V0cygpIHsKICAgICBsb2NhbCBmCiAgICAgZm9yIGYgaW4gY29tbW9uL2Ny b3NzLXByb2ZpbGVzLyouc2g7IGRvCkBAIC0yMTAsNyArMjA4LDcgQEAgX0VPRgogY2hlY2tfcmVx aG9zdF91dGlscygpIHsKICAgICBsb2NhbCBicm9rZW4KIAotICAgIFsgLW4gIiRJTl9DSFJPT1Qi IF0gJiYgcmV0dXJuIDAKKyAgICBbICIkSU5fQ0hST09UIiBdICYmIHJldHVybiAwCiAKICAgICBm b3IgZiBpbiAke1JFUUhPU1RfVVRJTFN9OyBkbwogICAgICAgICBpZiAhIGNvbW1hbmQgLXYgJHtm fSAmPi9kZXYvbnVsbDsgdGhlbgpAQCAtMjE4LDcgKzIxNiw3IEBAIGNoZWNrX3JlcWhvc3RfdXRp bHMoKSB7CiAgICAgICAgICAgICBicm9rZW49MQogICAgICAgICBmaQogICAgIGRvbmUKLSAgICBb IC1uICIkYnJva2VuIiBdICYmIGV4aXQgMQorICAgIFsgIiRicm9rZW4iIF0gJiYgZXhpdCAxCiAg ICAgWyAteiAiJDEiIF0gJiYgcmV0dXJuIDAKIAogICAgIGZvciBmIGluICR7UkVRSE9TVF9VVElM U19CT09UU1RSQVB9OyBkbwpAQCAtMjI3LDI0ICsyMjUsNyBAQCBjaGVja19yZXFob3N0X3V0aWxz KCkgewogICAgICAgICAgICAgYnJva2VuPTEKICAgICAgICAgZmkKICAgICBkb25lCi0gICAgWyAt biAiJGJyb2tlbiIgXSAmJiBleGl0IDEKLX0KLQotY2hlY2tfY29uZmlnX3ZhcnMoKSB7Ci0gICAg aWYgWyAtcyAiJFhCUFNfQ09ORklHX0ZJTEUiIF07IHRoZW4KLSAgICAgICAgLiAkWEJQU19DT05G SUdfRklMRSAmPi9kZXYvbnVsbAotICAgIGZpCi0gICAgaWYgWyAteiAiJFhCUFNfTUFTVEVSRElS IiBdOyB0aGVuCi0gICAgICAgIGV4cG9ydCBYQlBTX01BU1RFUkRJUj0iJHtYQlBTX0RJU1RESVJ9 L21hc3RlcmRpciIKLSAgICBmaQotICAgIGlmIFsgLXogIiRYQlBTX0hPU1RESVIiIF07IHRoZW4K LSAgICAgICAgZXhwb3J0IFhCUFNfSE9TVERJUj0iJHtYQlBTX0RJU1RESVJ9L2hvc3RkaXIiCi0g ICAgICAgIFsgISAtZCAkWEJQU19IT1NURElSIF0gJiYgbWtkaXIgLXAgJFhCUFNfSE9TVERJUgot ICAgIGZpCi0gICAgaWYgWyAtZCAiJFhCUFNfTUFTVEVSRElSIiAtYSAhIC13ICIkWEJQU19NQVNU RVJESVIiIF07IHRoZW4KLSAgICAgICAgZWNobyAiRVJST1I6IG5vdCBlbm91Z2ggcGVybXMgZm9y IG1hc3RlcmRpciAkWEJQU19NQVNURVJESVIuIgotICAgICAgICBleGl0IDEKLSAgICBmaQorICAg IFsgIiRicm9rZW4iIF0gJiYgZXhpdCAxCiB9CiAKIGNoZWNrX2J1aWxkX3JlcXVpcmVtZW50cygp IHsKQEAgLTI2NCwyMCArMjQ1LDQyIEBAIGNoZWNrX2J1aWxkX3JlcXVpcmVtZW50cygpIHsKICAg ICBmaQogfQogCitjaHJvb3RfY2hlY2soKSB7CisgICAgaWYgWyAtZiAkWEJQU19NQVNURVJESVIv LnhicHNfY2hyb290X2luaXQgLW8gIiRYQlBTX0NIUk9PVF9DTUQiID0gImV0aGVyZWFsIiBdOyB0 aGVuCisgICAgICAgIGV4cG9ydCBDSFJPT1RfUkVBRFk9MQorICAgIGZpCit9CisKK2NoZWNrX25h dGl2ZV9hcmNoKCkgeworICAgIGlmIFsgIiRDSFJPT1RfUkVBRFkiIF07IHRoZW4KKyAgICAgICAg aWYgWyAtcyAkWEJQU19NQVNURVJESVIvLnhicHNfY2hyb290X2luaXQgXTsgdGhlbgorICAgICAg ICAgICAgZXhwb3J0IFhCUFNfQVJDSD0kKDwkWEJQU19NQVNURVJESVIvLnhicHNfY2hyb290X2lu aXQpCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGV4cG9ydCBYQlBTX0FSQ0g9JCh4YnBzLXVo ZWxwZXIgYXJjaCkKKyAgICAgICAgZmkKKyAgICBlbHNlCisgICAgICAgIExERD0kKGxkZCAtLXZl cnNpb24gMj4mMXxoZWFkIC0xKQorICAgICAgICBpZiBbWyAkTEREID09ICptdXNsKiBdXTsgdGhl bgorICAgICAgICAgICAgZXhwb3J0IFhCUFNfQVJDSD0ke1hCUFNfTUFDSElORSUtbXVzbH0tbXVz bAorICAgICAgICBlbHNlCisgICAgICAgICAgICAjIFhCUFNfQVJDSCA9PSAkKHVuYW1lIC1tKQor ICAgICAgICAgICAgZXhwb3J0IFhCUFNfQVJDSD0kKHVuYW1lIC1tKQorICAgICAgICBmaQorICAg IGZpCit9CisKIGluc3RhbGxfYmJvb3RzdHJhcCgpIHsKLSAgICBbIC1uICIkQ0hST09UX1JFQURZ IiBdICYmIHJldHVybgorICAgIFsgIiRDSFJPT1RfUkVBRFkiIF0gJiYgcmV0dXJuCiAgICAgaWYg WyAiJDEiID0gImJvb3RzdHJhcCIgXTsgdGhlbgogICAgICAgICB1bnNldCBYQlBTX1RBUkdFVF9Q S0cgWEJQU19JTlNUQUxMX0FSR1MKICAgICBlbHNlCiAgICAgICAgIFhCUFNfVEFSR0VUX1BLRz0i JDEiCiAgICAgZmkKLSAgICBpZiBbIC1uICIkWEJQU19TS0lQX1JFTU9URVJFUE9TIiBdOyB0aGVu Ci0gICAgICAgIHVuc2V0IFhCUFNfSU5TVEFMTF9BUkdTCi0gICAgZmkKKyAgICBbICIkWEJQU19T S0lQX1JFTU9URVJFUE9TIiBdICYmIHVuc2V0IFhCUFNfSU5TVEFMTF9BUkdTCiAgICAgIyBiaW5h cnkgYm9vdHN0cmFwCiAgICAgbXNnX25vcm1hbCAiSW5zdGFsbGluZyBib290c3RyYXAgZnJvbSBi aW5hcnkgcGFja2FnZSByZXBvc2l0b3JpZXMuLi5cbiIKICAgICAjIFhCUFNfVEFSR0VUX1BLRyA9 PSBhcmNoCi0gICAgaWYgWyAtbiAiJFhCUFNfVEFSR0VUX1BLRyIgXTsgdGhlbgorICAgIGlmIFsg IiRYQlBTX1RBUkdFVF9QS0ciIF07IHRoZW4KICAgICAgICAgX2Jvb3RzdHJhcF9hcmNoPSJlbnYg WEJQU19UQVJHRVRfQVJDSD0kWEJQU19UQVJHRVRfUEtHIgogICAgICAgICBpZiBbICIke1hCUFNf VEFSR0VUX1BLR30iICE9ICIke1hCUFNfVEFSR0VUX1BLRyMqLX0iIF07IHRoZW4KICAgICAgICAg ICAgIF9zdWJhcmNoPSItJHtYQlBTX1RBUkdFVF9QS0cjKi19IgpAQCAtMzA4LDE3ICszMTEsMTUg QEAgcmVjb25maWd1cmVfYm9vdHN0cmFwX3BrZ3MoKSB7CiAgICAgIyBSZWNvbmZpZ3VyZSBjYS1j ZXJ0aWZpY2F0ZXMuCiAgICAgbXNnX25vcm1hbCAiUmVjb25maWd1cmluZyBib290c3RyYXAgcGFj a2FnZXMuLi5cbiIKICAgICBmb3IgZiBpbiAke3BrZ3N9OyBkbwotICAgICAgICBpZiB4YnBzLXF1 ZXJ5ICRmICY+L2Rldi9udWxsOyB0aGVuCi0gICAgICAgICAgICB4YnBzLXJlY29uZmlndXJlIC1m ICRmCisgICAgICAgIGlmIHhicHMtcXVlcnkgLXIgJFhCUFNfTUFTVEVSRElSICRmICY+L2Rldi9u dWxsOyB0aGVuCisgICAgICAgICAgICB4YnBzLXJlY29uZmlndXJlIC1yICRYQlBTX01BU1RFUkRJ UiAtZiAkZgogICAgICAgICBmaQogICAgIGRvbmUKICAgICB0b3VjaCAtZiAkc3RhdGVmaWxlCiB9 CiAKIGJvb3RzdHJhcF91cGRhdGUoKSB7Ci0gICAgaWYgWyAteiAiJENIUk9PVF9SRUFEWSIgXTsg dGhlbgotICAgICAgICByZXR1cm4KLSAgICBmaQorICAgIFsgLXogIiRDSFJPT1RfUkVBRFkiIF0g JiYgcmV0dXJuCiAgICAgcmVtb3ZlX3BrZ19hdXRvZGVwcwogICAgIG1zZ19ub3JtYWwgInhicHMt c3JjOiBjbGVhbmluZyB1cCBtYXN0ZXJkaXIuLi5cbiIKICAgICBybSAtcmYgJFhCUFNfTUFTVEVS RElSL2J1aWxkZGlyICRYQlBTX01BU1RFUkRJUi9kZXN0ZGlyCkBAIC0zNDcsNyArMzQ4LDcgQEAg bWFzdGVyZGlyX3phcCgpIHsKIAogZXhpdF9mdW5jKCkgewogICAgIHdhaXQKLSAgICBpZiBbIC1u ICIkc291cmNlcGtnIiBdOyB0aGVuCisgICAgaWYgWyAiJHNvdXJjZXBrZyIgXTsgdGhlbgogICAg ICAgICByZW1vdmVfcGtnICRYQlBTX0NST1NTX0JVSUxECiAgICAgZmkKICAgICBpZiBbIC16ICIk SU5fQ0hST09UIiBdOyB0aGVuCkBAIC0zOTAsMTQgKzM5MSwxNyBAQCBzZXR1cF9kaXN0ZmlsZXNf bWlycm9yKCkgewogICAgIGRvbmUKIH0KIAotcmVhZG9ubHkgWEJQU19WRVJTSU9OX1JFUT0iMC41 NSIKLXJlYWRvbmx5IFhCUFNfVkVSU0lPTj0kKHhicHMtdWhlbHBlciAtVnxhd2sgJ3twcmludCAk Mn0nKQotcmVhZG9ubHkgWEJQU19TUkNfVkVSU0lPTj0iMTEzIgotZXhwb3J0IFhCUFNfTUFDSElO RT0kKHhicHMtdWhlbHBlciBhcmNoKQotCiAjCiAjIG1haW4oKQogIworcmVhZG9ubHkgUFJPR05B TUU9IiR7MCMjKi99IgorcmVhZG9ubHkgWEJQU19WRVJTSU9OX1JFUT0iMC41NSIKK1hCUFNfVkVS U0lPTj0kKHhicHMtdWhlbHBlciAtVikKK1hCUFNfVkVSU0lPTj0ke1hCUFNfVkVSU0lPTiUlQVBJ Kn0KK1hCUFNfVkVSU0lPTj0ke1hCUFNfVkVSU0lPTiMjKjp9CityZWFkb25seSBYQlBTX1NSQ19W RVJTSU9OPSIxMTMiCitleHBvcnQgWEJQU19NQUNISU5FPSQoeGJwcy11aGVscGVyIC1DIC9kZXYv bnVsbCBhcmNoKQorCiBYQlBTX09QVElPTlM9CiBYQlBTX09QVFNUUklORz0iMWE6Q0VmZ0doSDpp SWo6TG06Tm86cVFyOnRWIgogCkBAIC00MDcsMjYgKzQxMSwyNiBAQCBldmFsIHNldCAtLSAkKGdl dG9wdCAiJFhCUFNfT1BUU1RSSU5HIiAiJEAiKTsKIHdoaWxlIGdldG9wdHMgIiRYQlBTX09QVFNU UklORyIgb3B0OyBkbwogICAgIGNhc2UgJG9wdCBpbgogICAgICAgICAxKSBleHBvcnQgWEJQU19C VUlMRF9PTkxZX09ORV9QS0c9eWVzOyBYQlBTX09QVElPTlMrPSIgLTEiOzsKLSAgICAgICAgYSkg cmVhZG9ubHkgWEJQU19DUk9TU19CVUlMRD0iJE9QVEFSRyI7IFhCUFNfT1BUSU9OUys9IiAtYSAk T1BUQVJHIjs7Ci0gICAgICAgIEMpIHJlYWRvbmx5IFhCUFNfS0VFUF9BTEw9MTsgWEJQU19PUFRJ T05TKz0iIC1DIjs7CisgICAgICAgIGEpIGV4cG9ydCBYQlBTX0NST1NTX0JVSUxEPSIkT1BUQVJH IjsgWEJQU19PUFRJT05TKz0iIC1hICRPUFRBUkciOzsKKyAgICAgICAgQykgZXhwb3J0IFhCUFNf S0VFUF9BTEw9MTsgWEJQU19PUFRJT05TKz0iIC1DIjs7CiAgICAgICAgIEUpIGV4cG9ydCBYQlBT X0JJTlBLR19FWElTVFM9MTsgWEJQU19PUFRJT05TKz0iIC1FIjs7Ci0gICAgICAgIGYpIHJlYWRv bmx5IFhCUFNfQlVJTERfRk9SQ0VNT0RFPTE7IFhCUFNfT1BUSU9OUys9IiAtZiI7OwotICAgICAg ICBHKSByZWFkb25seSBYQlBTX1VTRV9HSVRfUkVWUz0xOyBYQlBTX09QVElPTlMrPSIgLUciOzsK LSAgICAgICAgZykgcmVhZG9ubHkgWEJQU19ERUJVR19QS0dTPTE7IFhCUFNfT1BUSU9OUys9IiAt ZyI7OwotICAgICAgICBIKSByZWFkb25seSBYQlBTX0hPU1RESVI9IiQocmVhZGxpbmsgLWYgJE9Q VEFSRyAyPi9kZXYvbnVsbCkiOyBYQlBTX09QVElPTlMrPSIgLUggJFhCUFNfSE9TVERJUiI7Owor ICAgICAgICBmKSBleHBvcnQgWEJQU19CVUlMRF9GT1JDRU1PREU9MTsgWEJQU19PUFRJT05TKz0i IC1mIjs7CisgICAgICAgIEcpIGV4cG9ydCBYQlBTX1VTRV9HSVRfUkVWUz0xOyBYQlBTX09QVElP TlMrPSIgLUciOzsKKyAgICAgICAgZykgZXhwb3J0IFhCUFNfREVCVUdfUEtHUz0xOyBYQlBTX09Q VElPTlMrPSIgLWciOzsKKyAgICAgICAgSCkgZXhwb3J0IFhCUFNfSE9TVERJUj0iJChyZWFkbGlu ayAtZiAkT1BUQVJHIDI+L2Rldi9udWxsKSI7IFhCUFNfT1BUSU9OUys9IiAtSCAkWEJQU19IT1NU RElSIjs7CiAgICAgICAgIGgpIHVzYWdlICYmIGV4aXQgMDs7CiAgICAgICAgIGkpIGV4cG9ydCBY QlBTX0lORk9STUFUSVZFX1JVTj0xOyBYQlBTX09QVElPTlMrPSIgLWkiOzsKLSAgICAgICAgSSkg cmVhZG9ubHkgWEJQU19TS0lQX0RFUFM9MTsgWEJQU19PUFRJT05TKz0iIC1JIjs7CisgICAgICAg IEkpIGV4cG9ydCBYQlBTX1NLSVBfREVQUz0xOyBYQlBTX09QVElPTlMrPSIgLUkiOzsKICAgICAg ICAgaikgZXhwb3J0IFhCUFNfTUFLRUpPQlM9IiRPUFRBUkciOyBYQlBTX09QVElPTlMrPSIgLWog JE9QVEFSRyI7OwogICAgICAgICBMKSBleHBvcnQgTk9DT0xPUlM9MTsgWEJQU19PUFRJT05TKz0i IC1MIjs7Ci0gICAgICAgIG0pIHJlYWRvbmx5IFhCUFNfTUFTVEVSRElSPSQocmVhZGxpbmsgLWYg JE9QVEFSRyAyPi9kZXYvbnVsbCk7IFhCUFNfT1BUSU9OUys9IiAtbSAkWEJQU19NQVNURVJESVIi OzsKLSAgICAgICAgTikgcmVhZG9ubHkgWEJQU19TS0lQX1JFTU9URVJFUE9TPTE7IFhCUFNfT1BU SU9OUys9IiAtTiI7OwotICAgICAgICBvKSByZWFkb25seSBYQlBTX1BLR19PUFRJT05TPSIkT1BU QVJHIjsgWEJQU19PUFRJT05TKz0iIC1vICRPUFRBUkciOzsKKyAgICAgICAgbSkgZXhwb3J0IFhC UFNfTUFTVEVSRElSPSQocmVhZGxpbmsgLWYgJE9QVEFSRyAyPi9kZXYvbnVsbCk7IFhCUFNfT1BU SU9OUys9IiAtbSAkWEJQU19NQVNURVJESVIiOzsKKyAgICAgICAgTikgZXhwb3J0IFhCUFNfU0tJ UF9SRU1PVEVSRVBPUz0xOyBYQlBTX09QVElPTlMrPSIgLU4iOzsKKyAgICAgICAgbykgZXhwb3J0 IFhCUFNfUEtHX09QVElPTlM9IiRPUFRBUkciOyBYQlBTX09QVElPTlMrPSIgLW8gJE9QVEFSRyI7 OwogICAgICAgICBxKSBleHBvcnQgWEJQU19RVUlFVD0xOyBYQlBTX09QVElPTlMrPSIgLXEiOzsK ICAgICAgICAgUSkgZXhwb3J0IFhCUFNfQ0hFQ0tfUEtHUz0xOyBYQlBTX09QVElPTlMrPSIgLVEi OzsKLSAgICAgICAgcikgcmVhZG9ubHkgWEJQU19BTFRfUkVQT1NJVE9SWT0iJE9QVEFSRyI7IFhC UFNfT1BUSU9OUys9IiAtciAkT1BUQVJHIjs7CisgICAgICAgIHIpIGV4cG9ydCBYQlBTX0FMVF9S RVBPU0lUT1JZPSIkT1BUQVJHIjsgWEJQU19PUFRJT05TKz0iIC1yICRPUFRBUkciOzsKICAgICAg ICAgdCkgZXhwb3J0IFhCUFNfVEVNUF9NQVNURVJESVI9MTsgWEJQU19PUFRJT05TKz0iIC10IC1D Ijs7Ci0gICAgICAgIFYpIGVjaG8gJFhCUFNfU1JDX1ZFUlNJT04gJiYgZXhpdCAwOzsKKyAgICAg ICAgVikgZWNobyAieGJwcy1zcmMtJFhCUFNfU1JDX1ZFUlNJT04gJCh4YnBzLXVoZWxwZXIgLVYp IiAmJiBleGl0IDA7OwogICAgICAgICAtLSkgc2hpZnQ7IGJyZWFrOzsKICAgICBlc2FjCiBkb25l CkBAIC00MzcsMTAgKzQ0MSwxMSBAQCBzaGlmdCAkKCgkT1BUSU5EIC0gMSkpCiAjIENoZWNrIGlm IHN0ZG91dCBpcyBhIHR0eTsgaWYgZmFsc2UgZGlzYWJsZSBjb2xvcnMuCiB0ZXN0IC10IDEgfHwg ZXhwb3J0IE5PQ09MT1JTPTEKICMgaHR0cDovL25vLWNvbG9yLm9yZwotaWYgWyAtbiAiJHtOT19D T0xPUit4fSIgXTsgdGhlbgoraWYgWyAiJHtOT19DT0xPUit4fSIgXTsgdGhlbgogICAgIGV4cG9y dCBOT0NPTE9SUz0xCiBmaQogCisjIHNhbmUgdW1hc2sKIHVtYXNrIDAyMgogCiAjCkBAIC00NTYs MjIgKzQ2MSwxMyBAQCByZWFkb25seSBSRVFIT1NUX1VUSUxTPSJ4YnBzLWluc3RhbGwgeGJwcy1x dWVyeSB4YnBzLXJpbmRleCB4YnBzLXVoZWxwZXIgXAogCiBjaGVja19yZXFob3N0X3V0aWxzCiAK LSMgVHJ5IHVzaW5nIGNocm9vdC1naXQgdGhlbiBnaXQgZnJvbSB0aGUgaG9zdCBzeXN0ZW0KLWlm IGNvbW1hbmQgLXYgY2hyb290LWdpdCAmPi9kZXYvbnVsbDsgdGhlbgotCVhCUFNfR0lUX0NNRD0k KGNvbW1hbmQgLXYgY2hyb290LWdpdCkKLWVsaWYgY29tbWFuZCAtdiBnaXQgJj4vZGV2L251bGw7 IHRoZW4KLQlYQlBTX0dJVF9DTUQ9JChjb21tYW5kIC12IGdpdCkKLWVsc2UKLSAgICBlY2hvICJu ZWl0aGVyIGNocm9vdC1naXQgb3IgZ2l0IGFyZSBhdmFpbGFibGUgaW4geW91ciBzeXN0ZW0hIgot ICAgIGV4aXQgMQotZmkKLQotcmVhZG9ubHkgWEJQU19HSVRfQ01ECi0KLWlmIFsgLW4gIiRJTl9D SFJPT1QiIF07IHRoZW4KKyMKKyMgU2V0IFhCUFNfQ09ORklHX0ZJTEUsIFhCUFNfRElTVERJUiwg WEJQU19NQVNURVJESVIKKyMgYW5kIFhCUFNfSE9TVERJUi4KKyMKK2lmIFsgIiRJTl9DSFJPT1Qi IF07IHRoZW4KICAgICByZWFkb25seSBYQlBTX0NPTkZJR19GSUxFPS9ldGMveGJwcy94YnBzLXNy Yy5jb25mCiAgICAgcmVhZG9ubHkgWEJQU19ESVNURElSPS92b2lkLXBhY2thZ2VzCi0gICAgIyBu ZWVkZWQgYmVmb3JlIGNhbGwgdG8gY2hlY2tfY29uZmlnX3ZhcnMKICAgICByZWFkb25seSBYQlBT X01BU1RFUkRJUj0vCiAgICAgcmVhZG9ubHkgWEJQU19IT1NURElSPS9ob3N0CiBlbHNlCkBAIC00 OTEsMTggKzQ4NywzNyBAQCBlbHNlCiAgICAgZWxpZiBbIC1zICRIT01FLy54YnBzLXNyYy5jb25m IF07IHRoZW4KICAgICAgICAgIyAuLi4gZmFsbGJhY2sgdG8gfi8ueGJwcy1zcmMuY29uZiBvdGhl cndpc2UuCiAgICAgICAgIHJlYWRvbmx5IFhCUFNfQ09ORklHX0ZJTEU9JEhPTUUvLnhicHMtc3Jj LmNvbmYKLSAgICAgICAgLiAkWEJQU19DT05GSUdfRklMRQogICAgIGZpCiBmaQorIyBSZWFkIHNl dHRpbmdzIGZyb20gY29uZmlnIGZpbGUKK1sgLXMgIiRYQlBTX0NPTkZJR19GSUxFIiBdICYmIC4g JFhCUFNfQ09ORklHX0ZJTEUgJj4vZGV2L251bGwKIAotIwotIyBDaGVjayBjb25maWd1cmF0aW9u IHZhcnMgYmVmb3JlIGFueXRpbmcgZWxzZSwgYW5kIHNldCBkZWZhdWx0cyB2YXJzLgotIwotY2hl Y2tfY29uZmlnX3ZhcnMKKyMgaWYgWEJQU19NQVNURVJESVIgdW5zZXQsIGRlZmF1bHRzIHRvICRY QlBTX0RJU1RESVIvbWFzdGVyZGlyLgorOiAke1hCUFNfTUFTVEVSRElSOj0kWEJQU19ESVNURElS L21hc3RlcmRpcn0KK1sgISAtZCAkWEJQU19NQVNURVJESVIgXSAmJiAgbWtkaXIgLXAgJFhCUFNf TUFTVEVSRElSCiAKLWZvciBmIGluICRYQlBTX0RJU1RESVIvY29tbW9uL3hicHMtc3JjL3NodXRp bHMvKi5zaDsgZG8KLSAgICBbIC1yICRmIF0gJiYgLiAkZgotZG9uZQorIyBpZiBYQlBTX0hPU1RE SVIgdW5zZXQsIGRlZmF1bHRzIHRvICRYQlBTX0RJU1RESVIvaG9zdGRpci4KKzogJHtYQlBTX0hP U1RESVI6PSRYQlBTX0RJU1RESVIvaG9zdGRpcn0KK1sgISAtZCAkWEJQU19IT1NURElSIF0gJiYg bWtkaXIgLXAgJFhCUFNfSE9TVERJUgorCitpZiBbIC1kICIkWEJQU19NQVNURVJESVIiIC1hICEg LXcgIiRYQlBTX01BU1RFUkRJUiIgXTsgdGhlbgorICAgIGVjaG8gIkVSUk9SOiBjYW4ndCB3cml0 ZSB0byBtYXN0ZXJkaXIgJFhCUFNfTUFTVEVSRElSLiIKKyAgICBleGl0IDEKK2VsaWYgWyAtZCAi JFhCUFNfSE9TVERJUiIgLWEgISAtdyAiJFhCUFNfSE9TVERJUiIgXTsgdGhlbgorICAgIGVjaG8g IkVSUk9SOiBjYW4ndCB3cml0ZSB0byBob3N0ZGlyOiAkWEJQU19IT1NURElSLiIKKyAgICBleGl0 IDEKK2ZpCisKKyMgVHJ5IHVzaW5nIGNocm9vdC1naXQgdGhlbiBnaXQgZnJvbSB0aGUgaG9zdCBz eXN0ZW0KK2lmIGNvbW1hbmQgLXYgY2hyb290LWdpdCAmPi9kZXYvbnVsbDsgdGhlbgorICAgIFhC UFNfR0lUX0NNRD0kKGNvbW1hbmQgLXYgY2hyb290LWdpdCkKK2VsaWYgY29tbWFuZCAtdiBnaXQg Jj4vZGV2L251bGw7IHRoZW4KKyAgICBYQlBTX0dJVF9DTUQ9JChjb21tYW5kIC12IGdpdCkKK2Vs c2UKKyAgICBlY2hvICJuZWl0aGVyIGNocm9vdC1naXQgb3IgZ2l0IGFyZSBhdmFpbGFibGUgaW4g eW91ciBzeXN0ZW0hIgorICAgIGV4aXQgMQorZmkKK3JlYWRvbmx5IFhCUFNfR0lUX0NNRAogCiBp ZiBbIC1uICIkWEJQU19IT1NURElSIiBdOyB0aGVuCiAgICAgZXhwb3J0IFhCUFNfUkVQT1NJVE9S WT0kWEJQU19IT1NURElSL2JpbnBrZ3MKQEAgLTUxNiw4MCArNTMxLDYyIEBAIGZpCiBpZiBbIC16 ICIkWEJQU19BTFRfUkVQT1NJVE9SWSIgXTsgdGhlbgogICAgIHB1c2hkICIkUFdEIiAmPi9kZXYv bnVsbAogICAgIGNkICRYQlBTX0RJU1RESVIKLSAgICBpZiBbIC1uICIkSU5fQ0hST09UIiBdOyB0 aGVuCi0gICAgICAgIF9naXRicmFuY2g9IiQoY2hyb290LWdpdCBzeW1ib2xpYy1yZWYgLS1zaG9y dCBIRUFEIDI+L2Rldi9udWxsKSIKLSAgICBlbHNlCi0gICAgICAgIF9naXRicmFuY2g9IiQoJFhC UFNfR0lUX0NNRCBzeW1ib2xpYy1yZWYgLS1zaG9ydCBIRUFEIDI+L2Rldi9udWxsKSIKLSAgICBm aQotICAgIGlmIFsgLW4gIiR7X2dpdGJyYW5jaH0iIC1hICIke19naXRicmFuY2h9IiAhPSAibWFz dGVyIiBdOyB0aGVuCisgICAgX2dpdGJyYW5jaD0iJCgkWEJQU19HSVRfQ01EIHN5bWJvbGljLXJl ZiAtLXNob3J0IEhFQUQgMj4vZGV2L251bGwpIgorICAgIGlmIFsgIiR7X2dpdGJyYW5jaH0iIC1h ICIke19naXRicmFuY2h9IiAhPSAibWFzdGVyIiBdOyB0aGVuCiAgICAgICAgIGV4cG9ydCBYQlBT X0FMVF9SRVBPU0lUT1JZPSIke19naXRicmFuY2h9IgogICAgICAgICBleHBvcnQgWEJQU19SRVBP U0lUT1JZPSIke1hCUFNfUkVQT1NJVE9SWX0vJHtfZ2l0YnJhbmNofSIKLSAgICAgICAgaWYgWyAt eiAiJElOX0NIUk9PVCIgXTsgdGhlbgotICAgICAgICAgICAgbXNnX25vcm1hbCAiVXNpbmcgXGAk WEJQU19SRVBPU0lUT1JZXCcgYXMgbG9jYWwgcmVwb3NpdG9yeS5cbiIKLSAgICAgICAgZmkKICAg ICAgZmkKICAgICAgcG9wZCAmPi9kZXYvbnVsbAogZWxzZQogICAgIGV4cG9ydCBYQlBTX1JFUE9T SVRPUlk9IiR7WEJQU19SRVBPU0lUT1JZfS8ke1hCUFNfQUxUX1JFUE9TSVRPUll9IgotICAgIGlm IFsgLXogIiRJTl9DSFJPT1QiIF07IHRoZW4KLSAgICAgICAgbXNnX25vcm1hbCAiVXNpbmcgXGAk WEJQU19SRVBPU0lUT1JZXCcgYXMgbG9jYWwgcmVwb3NpdG9yeS5cbiIKLSAgICBmaQogZmkKIAot aWYgWyAtbiAiJElOX0NIUk9PVCIgXTsgdGhlbgorcmVhZG9ubHkgWEJQU19TUkNQS0dESVI9JFhC UFNfRElTVERJUi9zcmNwa2dzCityZWFkb25seSBYQlBTX0NPTU1PTkRJUj0kWEJQU19ESVNURElS L2NvbW1vbgorcmVhZG9ubHkgWEJQU19TSFVUSUxTRElSPSRYQlBTX0NPTU1PTkRJUi94YnBzLXNy Yy9zaHV0aWxzCityZWFkb25seSBYQlBTX1RSSUdHRVJTRElSPSRYQlBTX1NSQ1BLR0RJUi94YnBz LXRyaWdnZXJzL2ZpbGVzCityZWFkb25seSBYQlBTX0NST1NTUEZESVI9JFhCUFNfQ09NTU9ORElS L2Nyb3NzLXByb2ZpbGVzCityZWFkb25seSBYQlBTX0JVSUxEU1RZTEVESVI9JFhCUFNfQ09NTU9O RElSL2J1aWxkLXN0eWxlCityZWFkb25seSBYQlBTX0xJQkVYRUNESVI9JFhCUFNfQ09NTU9ORElS L3hicHMtc3JjL2xpYmV4ZWMKK3JlYWRvbmx5IFhCUFNfQlVJTERIRUxQRVJESVI9JFhCUFNfQ09N TU9ORElSL2J1aWxkLWhlbHBlcgorCitpZiBbICIkSU5fQ0hST09UIiBdOyB0aGVuCiAgICAgcmVh ZG9ubHkgWEJQU19VSEVMUEVSX0NNRD0ieGJwcy11aGVscGVyIgotICAgIHJlYWRvbmx5IFhCUFNf SU5TVEFMTF9DTUQ9InhicHMtaW5zdGFsbCIKLSAgICByZWFkb25seSBYQlBTX1FVRVJZX0NNRD0i eGJwcy1xdWVyeSIKLSAgICByZWFkb25seSBYQlBTX1JJTkRFWF9DTUQ9InhicHMtcmluZGV4Igor ICAgIHJlYWRvbmx5IFhCUFNfSU5TVEFMTF9DTUQ9InhicHMtaW5zdGFsbCAtLXJlcG9zaXRvcnk9 JFhCUFNfUkVQT1NJVE9SWSIKKyAgICByZWFkb25seSBYQlBTX1FVRVJZX0NNRD0ieGJwcy1xdWVy eSAtLXJlcG9zaXRvcnk9JFhCUFNfUkVQT1NJVE9SWSIKICAgICByZWFkb25seSBYQlBTX1JFQ09O RklHVVJFX0NNRD0ieGJwcy1yZWNvbmZpZ3VyZSIKICAgICByZWFkb25seSBYQlBTX1JFTU9WRV9D TUQ9InhicHMtcmVtb3ZlIgotICAgIHJlYWRvbmx5IFhCUFNfU1JDUEtHRElSPS92b2lkLXBhY2th Z2VzL3NyY3BrZ3MKLSAgICByZWFkb25seSBYQlBTX0NPTU1PTkRJUj0vdm9pZC1wYWNrYWdlcy9j b21tb24KKyAgICByZWFkb25seSBYQlBTX0NIRUNLVkVSU19DTUQ9InhicHMtY2hlY2t2ZXJzIC0t cmVwb3NpdG9yeT0kWEJQU19SRVBPU0lUT1JZIgogICAgIHJlYWRvbmx5IFhCUFNfREVTVERJUj0v ZGVzdGRpcgogICAgIHJlYWRvbmx5IFhCUFNfQlVJTERESVI9L2J1aWxkZGlyCi0gICAgcmVhZG9u bHkgWEJQU19TSFVUSUxTRElSPSRYQlBTX0NPTU1PTkRJUi94YnBzLXNyYy9zaHV0aWxzCi0gICAg cmVhZG9ubHkgWEJQU19UUklHR0VSU0RJUj0kWEJQU19TUkNQS0dESVIveGJwcy10cmlnZ2Vycy9m aWxlcwotICAgIHJlYWRvbmx5IFhCUFNfQ1JPU1NQRkRJUj0kWEJQU19DT01NT05ESVIvY3Jvc3Mt cHJvZmlsZXMKLSAgICByZWFkb25seSBYQlBTX0JVSUxEU1RZTEVESVI9JFhCUFNfQ09NTU9ORElS L2J1aWxkLXN0eWxlCi0gICAgcmVhZG9ubHkgWEJQU19MSUJFWEVDRElSPSRYQlBTX0NPTU1PTkRJ Ui94YnBzLXNyYy9saWJleGVjCi0gICAgcmVhZG9ubHkgWEJQU19CVUlMREhFTFBFUkRJUj0kWEJQ U19DT01NT05ESVIvYnVpbGQtaGVscGVyCiBlbHNlCiAgICAgcmVhZG9ubHkgWEJQU19VSEVMUEVS X0NNRD0ieGJwcy11aGVscGVyIC1yICRYQlBTX01BU1RFUkRJUiIKLSAgICByZWFkb25seSBYQlBT X0lOU1RBTExfQ01EPSJ4YnBzLWluc3RhbGwgLUMgL2Rldi9udWxsIC1jICRYQlBTX0hPU1RESVIv cmVwb2NhY2hlIC0tcmVwb3NpdG9yeT0kWEJQU19SRVBPU0lUT1JZIC1yICRYQlBTX01BU1RFUkRJ UiIKLSAgICByZWFkb25seSBYQlBTX1FVRVJZX0NNRD0ieGJwcy1xdWVyeSAtQyAvZGV2L251bGwg LWMgJFhCUFNfSE9TVERJUi9yZXBvY2FjaGUgLWkgLS1yZXBvc2l0b3J5PSRYQlBTX1JFUE9TSVRP UlkgLXIgJFhCUFNfTUFTVEVSRElSIgotICAgIHJlYWRvbmx5IFhCUFNfUklOREVYX0NNRD0ieGJw cy1yaW5kZXgiCisgICAgcmVhZG9ubHkgWEJQU19JTlNUQUxMX0NNRD0ieGJwcy1pbnN0YWxsIC1j ICRYQlBTX0hPU1RESVIvcmVwb2NhY2hlIC0tcmVwb3NpdG9yeT0kWEJQU19SRVBPU0lUT1JZIC1y ICRYQlBTX01BU1RFUkRJUiIKKyAgICByZWFkb25seSBYQlBTX1FVRVJZX0NNRD0ieGJwcy1xdWVy eSAtYyAkWEJQU19IT1NURElSL3JlcG9jYWNoZSAtLXJlcG9zaXRvcnk9JFhCUFNfUkVQT1NJVE9S WSAtciAkWEJQU19NQVNURVJESVIiCiAgICAgcmVhZG9ubHkgWEJQU19SRUNPTkZJR1VSRV9DTUQ9 InhicHMtcmVjb25maWd1cmUgLXIgJFhCUFNfTUFTVEVSRElSIgogICAgIHJlYWRvbmx5IFhCUFNf UkVNT1ZFX0NNRD0ieGJwcy1yZW1vdmUgLXIgJFhCUFNfTUFTVEVSRElSIgotICAgIHJlYWRvbmx5 IFhCUFNfU1JDUEtHRElSPSRYQlBTX0RJU1RESVIvc3JjcGtncwotICAgIHJlYWRvbmx5IFhCUFNf Q09NTU9ORElSPSRYQlBTX0RJU1RESVIvY29tbW9uCi0gICAgcmVhZG9ubHkgWEJQU19TSFVUSUxT RElSPSRYQlBTX0NPTU1PTkRJUi94YnBzLXNyYy9zaHV0aWxzCisgICAgcmVhZG9ubHkgWEJQU19D SEVDS1ZFUlNfQ01EPSJ4YnBzLWNoZWNrdmVycyAtLXJlcG9zaXRvcnk9JFhCUFNfUkVQT1NJVE9S WSIKICAgICByZWFkb25seSBYQlBTX0RFU1RESVI9JFhCUFNfTUFTVEVSRElSL2Rlc3RkaXIKICAg ICByZWFkb25seSBYQlBTX0JVSUxERElSPSRYQlBTX01BU1RFUkRJUi9idWlsZGRpcgotICAgIHJl YWRvbmx5IFhCUFNfVFJJR0dFUlNESVI9JFhCUFNfU1JDUEtHRElSL3hicHMtdHJpZ2dlcnMvZmls ZXMKLSAgICByZWFkb25seSBYQlBTX0NST1NTUEZESVI9JFhCUFNfQ09NTU9ORElSL2Nyb3NzLXBy b2ZpbGVzCi0gICAgcmVhZG9ubHkgWEJQU19CVUlMRFNUWUxFRElSPSRYQlBTX0NPTU1PTkRJUi9i dWlsZC1zdHlsZQotICAgIHJlYWRvbmx5IFhCUFNfTElCRVhFQ0RJUj0kWEJQU19DT01NT05ESVIv eGJwcy1zcmMvbGliZXhlYwotICAgIHJlYWRvbmx5IFhCUFNfQlVJTERIRUxQRVJESVI9JFhCUFNf Q09NTU9ORElSL2J1aWxkLWhlbHBlcgogZmkKK3JlYWRvbmx5IFhCUFNfUklOREVYX0NNRD0ieGJw cy1yaW5kZXgiCiByZWFkb25seSBYQlBTX0ZFVENIX0NNRD0ieGJwcy1mZXRjaCIKIHJlYWRvbmx5 IFhCUFNfRElHRVNUX0NNRD0ieGJwcy1kaWdlc3QiCiByZWFkb25seSBYQlBTX0NNUFZFUl9DTUQ9 InhicHMtdWhlbHBlciBjbXB2ZXIiCiAKIHJlYWRvbmx5IFhCUFNfVEFSR0VUPSIkMSIKLWlmIFsg LW4gIiQyIiBdOyB0aGVuCitpZiBbICIkMiIgXTsgdGhlbgogICAgIFhCUFNfVEFSR0VUX1BLRz0i JHsyIyMqL30iCiBmaQogCi1jaHJvb3RfY2hlY2soKSB7Ci0gICAgaWYgWyAtZiAkWEJQU19NQVNU RVJESVIvLnhicHNfY2hyb290X2luaXQgLW8gIiRYQlBTX0NIUk9PVF9DTUQiID0gImV0aGVyZWFs IiBdOyB0aGVuCi0gICAgICAgIGV4cG9ydCBDSFJPT1RfUkVBRFk9MQotICAgIGZpCi19Ci0KKyMg Q2hlY2sgZm9yIENIUk9PVF9SRUFEWSBhbmQgc2V0IHVwIFhCUFNfQVJDSCBlbnZpcm9ubWVudCB2 YXIgZm9yIHhicHMuCiBjaHJvb3RfY2hlY2sKK2NoZWNrX25hdGl2ZV9hcmNoCiAKKyMgUmVjb25m aWd1cmUgcGtncyBmb3IgMzJiaXQgb24geDg2XzY0IGFuZCByZWV4ZWMgaXRzZWxmLgorIyBYWFg6 IGhvdyBhYm91dCAzMmJpdCB1c2VybGFuZCBvbiA2NGJpdCBDUFVzPyAocHBjLCBhcm0sIGV0Yyku CiBpZiBbIC16ICIkWEJQU19SRUlOSVQiIC1hIC1zICRYQlBTX01BU1RFUkRJUi8ueGJwc19jaHJv b3RfaW5pdCBdOyB0aGVuCi0gICAgZXhwb3J0IFhCUFNfQVJDSD0ke1hCUFNfQVJDSDotJChjYXQg JFhCUFNfTUFTVEVSRElSLy54YnBzX2Nocm9vdF9pbml0KX0KKyAgICBleHBvcnQgWEJQU19BUkNI PSR7WEJQU19BUkNIOi0kKDwkWEJQU19NQVNURVJESVIvLnhicHNfY2hyb290X2luaXQpfQogICAg IGlmIFtbICRYQlBTX01BQ0hJTkUgPT0geDg2XzY0KiBdXSAmJiBbWyAkWEJQU19BUkNIID09IGk2 ODYqIF1dOyB0aGVuCiAgICAgICAgICMgcmVjb25maWd1cmUgcGtncyB2aWEgbGludXgzMgogICAg ICAgICBsaW51eDMyIHhicHMtcmVjb25maWd1cmUgLXIgJHtYQlBTX01BU1RFUkRJUn0gLWEgJj4v ZGV2L251bGwKQEAgLTU5OCwyMCArNTk1LDIxIEBAIGlmIFsgLXogIiRYQlBTX1JFSU5JVCIgLWEg LXMgJFhCUFNfTUFTVEVSRElSLy54YnBzX2Nocm9vdF9pbml0IF07IHRoZW4KICAgICAgICAgZXhl YyBsaW51eDMyICQwICR7WEJQU19PUFRJT05TfSAkQAogICAgIGZpCiBmaQotaWYgWyAtbiAiJFhC UFNfQVJDSCIgXTsgdGhlbgoraWYgWyAiJFhCUFNfQVJDSCIgXTsgdGhlbgogICAgIGV4cG9ydCBY QlBTX01BQ0hJTkU9JFhCUFNfQVJDSAogZmkKKyMgQXQgdGhpcyBwb2ludCBpZiBYQlBTX1RBUkdF VF9NQUNISU5FIGlzbid0IGRlZmluZWQgd2UgYXNzdW1lCisjIGl0J3MgYSBuYXRpdmUgYnVpbGQu CiBpZiBbIC16ICIkWEJQU19UQVJHRVRfTUFDSElORSIgXTsgdGhlbgotICAgIGV4cG9ydCBYQlBT X1RBUkdFVF9NQUNISU5FPSR7WEJQU19BUkNIOj0kWEJQU19NQUNISU5FfQorICAgICAgICBleHBv cnQgWEJQU19UQVJHRVRfTUFDSElORT0kWEJQU19NQUNISU5FCiBmaQogCi0KIGV4cG9ydCBYQlBT X1NIVVRJTFNESVIgWEJQU19DUk9TU1BGRElSIFhCUFNfVFJJR0dFUlNESVIgXAotICAgIFhCUFNf U1JDUEtHRElSIFhCUFNfQ09NTU9ORElSIFhCUFNfQlVJTERESVIgWEJQU19SRVBPX0RFTFRBUyBc CisgICAgWEJQU19TUkNQS0dESVIgWEJQU19DT01NT05ESVIgWEJQU19CVUlMRERJUiBcCiAgICAg WEJQU19SRVBPU0lUT1JZIFhCUFNfQUxUX1JFUE9TSVRPUlkgWEJQU19TUkNESVNURElSIFhCUFNf RElHRVNUX0NNRCBcCiAgICAgWEJQU19VSEVMUEVSX0NNRCBYQlBTX0lOU1RBTExfQ01EIFhCUFNf UVVFUllfQ01EIFhCUFNfQlVJTERfT05MWV9PTkVfUEtHIFwKLSAgICBYQlBTX1JJTkRFWF9DTUQg WEJQU19SRUNPTkZJR1VSRV9DTUQgWEJQU19SRU1PVkVfQ01EIFwKLSAgICBYQlBTX0NNUFZFUl9D TUQgWEJQU19GRVRDSF9DTUQgWEJQU19WRVJTSU9OIFhCUFNfQVBJVkVSIFhCUFNfQlVJTERTVFlM RURJUiBcCisgICAgWEJQU19SSU5ERVhfQ01EIFhCUFNfUkVDT05GSUdVUkVfQ01EIFhCUFNfUkVN T1ZFX0NNRCBYQlBTX0NIRUNLVkVSU19DTUQgXAorICAgIFhCUFNfQ01QVkVSX0NNRCBYQlBTX0ZF VENIX0NNRCBYQlBTX1ZFUlNJT04gWEJQU19CVUlMRFNUWUxFRElSIFwKICAgICBYQlBTX0NQUEZM QUdTIFhCUFNfQ0ZMQUdTIFhCUFNfQ1hYRkxBR1MgWEJQU19GRkxBR1MgWEJQU19MREZMQUdTIFwK ICAgICBYQlBTX01BS0VKT0JTIFhCUFNfQlVJTERfRk9SQ0VNT0RFIFhCUFNfVVNFX0dJVF9SRVZT IFhCUFNfREVCVUdfUEtHUyBcCiAgICAgWEJQU19DSEVDS19QS0dTIFhCUFNfQ0NBQ0hFIFhCUFNf RElTVENDIFhCUFNfRElTVENDX0hPU1RTIFhCUFNfU0tJUF9ERVBTIFwKQEAgLTYyOSw3ICs2Mjcs NyBAQCBmb3IgaSBpbiBSRVBPU0lUT1JZIERFU1RESVIgQlVJTERESVIgU1JDRElTVERJUjsgZG8K ICAgICB1bnNldCB2YWwKIGRvbmUKIAotIyBBIHRlbXBvcmFyeSBtYXN0ZXJkaXIgcmVxdWlyZXMg eGJwcy11Y2hyb290KDgpIGFuZCAtTyB0byB1c2Ugb3ZlcmxheWZzCisjIEEgdGVtcG9yYXJ5IG1h c3RlcmRpciByZXF1aXJlcyB4YnBzLXVjaHJvb3QoMSkgYW5kIC1PIHRvIHVzZSBvdmVybGF5ZnMK ICMgb24gdG1wZnMgKGF2YWlsYWJsZSB3aXRoIHhicHMtMC40NSkuCiBpZiBbIC16ICIkSU5fQ0hS T09UIiAtYSAtbiAiJFhCUFNfVEVNUF9NQVNURVJESVIiIF07IHRoZW4KICAgICBleHBvcnQgWEJQ U19DSFJPT1RfQ01EPSJ1Y2hyb290IgpAQCAtNjQwLDMxICs2MzgsMzUgQEAgZmkKICMKIGlmIFsg LXogIiRJTl9DSFJPT1QiIF07IHRoZW4KICAgICAjIEluIG5vbiBjaHJvb3QgY2FzZSBhbHdheXMg cHJlZmVyIGhvc3QgdG9vbHMuCi0gICAgTVlQQVRIPSIkWEJQU19NQVNURVJESVIvdXNyL2Jpbjok WEJQU19NQVNURVJESVIvdXNyL3NiaW4iCi0gICAgZXhwb3J0IFBBVEg9IiRQQVRIOiRNWVBBVEgi Ci1lbHNlCi0gICAgTVlQQVRIPSIvdXNyL2JpbjovdXNyL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vz ci9sb2NhbC9zYmluIgotICAgIGV4cG9ydCBQQVRIPSIkTVlQQVRIIgotICAgIGlmIFsgLW4gIiRY QlBTX0NDQUNIRSIgXTsgdGhlbgotICAgICAgICBDQ0FDSEVQQVRIPSIvdXNyL2xpYi9jY2FjaGUv YmluIgotICAgICAgICBleHBvcnQgQ0NBQ0hFX0RJUj0iJFhCUFNfSE9TVERJUi9jY2FjaGUiCi0g ICAgICAgICMgQXZvaWQgbm90IHVzaW5nIGNhY2hlZCBmaWxlcyBqdXN0IGR1ZSB0byBjb21waWxl ciBtdGltZQotICAgICAgICAjIGNoYW5nZXMgd2hlbiBlLmcuIGJvb3RzdHJhcHBpbmcKLSAgICAg ICAgZXhwb3J0IENDQUNIRV9DT01QSUxFUkNIRUNLPWNvbnRlbnQgQ0NBQ0hFX0NPTVBSRVNTPTEK LSAgICAgICAgZXhwb3J0IFBBVEg9IiRDQ0FDSEVQQVRIOiRQQVRIIgotICAgICAgICBta2RpciAt cCAkQ0NBQ0hFX0RJUgotICAgIGZpCi0gICAgaWYgWyAtbiAiJFhCUFNfRElTVENDIiBdOyB0aGVu Ci0gICAgICAgIGlmIFsgLW4gIiRYQlBTX0NDQUNIRSIgXTsgdGhlbgotICAgICAgICAgICAgZXhw b3J0IENDQUNIRV9QUkVGSVg9Ii91c3IvYmluL2Rpc3RjYyIKLSAgICAgICAgZWxzZQotICAgICAg ICAgICAgRElTVENDUEFUSD0iL3Vzci9saWIvZGlzdGNjL2JpbiIKLSAgICAgICAgICAgIGV4cG9y dCBQQVRIPSIkRElTVENDUEFUSDokUEFUSCIKLSAgICAgICAgZmkKLSAgICAgICAgZXhwb3J0IERJ U1RDQ19ESVI9IiRYQlBTX0hPU1RESVIvZGlzdGNjLSR7WEJQU19DUk9TU19CVUlMRDotJHtYQlBT X01BQ0hJTkV9fSIKLSAgICAgICAgZXhwb3J0IERJU1RDQ19IT1NUUz0iJFhCUFNfRElTVENDX0hP U1RTIgotICAgICAgICBta2RpciAtcCAkRElTVENDX0RJUgorICAgIGV4cG9ydCBQQVRIPSIkUEFU SDokWEJQU19NQVNURVJESVIvdXNyL2JpbiIKK2ZpCisKKyMKKyMgU2V0IHVwIGNjYWNoZQorIwor aWYgWyAiJFhCUFNfQ0NBQ0hFIiBdOyB0aGVuCisgICAgZXhwb3J0IENDQUNIRVBBVEg9Ii91c3Iv bGliL2NjYWNoZS9iaW4iCisgICAgZXhwb3J0IENDQUNIRV9ESVI9IiRYQlBTX0hPU1RESVIvY2Nh Y2hlIgorICAgICMgQXZvaWQgbm90IHVzaW5nIGNhY2hlZCBmaWxlcyBqdXN0IGR1ZSB0byBjb21w aWxlciBtdGltZQorICAgICMgY2hhbmdlcyB3aGVuIGUuZy4gYm9vdHN0cmFwcGluZworICAgIGV4 cG9ydCBDQ0FDSEVfQ09NUElMRVJDSEVDSz1jb250ZW50IENDQUNIRV9DT01QUkVTUz0xCisgICAg ZXhwb3J0IFBBVEg9IiRDQ0FDSEVQQVRIOiRQQVRIIgorICAgIG1rZGlyIC1wICRDQ0FDSEVfRElS CitmaQorCisjCisjIFNldCB1cCBkaXN0Y2MKKyMKK2lmIFsgIiRYQlBTX0RJU1RDQyIgXTsgdGhl bgorICAgIGlmIFsgIiRYQlBTX0NDQUNIRSIgXTsgdGhlbgorICAgICAgICBleHBvcnQgQ0NBQ0hF X1BSRUZJWD0iL3Vzci9iaW4vZGlzdGNjIgorICAgIGVsc2UKKyAgICAgICAgRElTVENDUEFUSD0i L3Vzci9saWIvZGlzdGNjL2JpbiIKKyAgICAgICAgZXhwb3J0IFBBVEg9IiRESVNUQ0NQQVRIOiRQ QVRIIgogICAgIGZpCisgICAgZXhwb3J0IERJU1RDQ19ESVI9IiRYQlBTX0hPU1RESVIvZGlzdGNj LSR7WEJQU19DUk9TU19CVUlMRDotJHtYQlBTX01BQ0hJTkV9fSIKKyAgICBleHBvcnQgRElTVEND X0hPU1RTPSIkWEJQU19ESVNUQ0NfSE9TVFMiCisgICAgbWtkaXIgLXAgJERJU1RDQ19ESVIKIGZp CiAKIGNoZWNrX2J1aWxkX3JlcXVpcmVtZW50cwpAQCAtNjc1LDYgKzY3NywxMiBAQCBpZiBbIC16 ICIkSU5fQ0hST09UIiBdOyB0aGVuCiAgICAgICAgIHNldHVwX2Rpc3RmaWxlc19taXJyb3IKICAg ICBmaQogZmkKKyMKKyMgUmVhZCBmdW5jcyBmcm9tIGhlbHBlcnMKKyMKK2ZvciBmIGluICR7WEJQ U19TSFVUSUxTRElSfS8qLnNoOyBkbworICAgIFsgLXIgIiRmIiBdICYmIC4gJGYKK2RvbmUKIAog cmVjb25maWd1cmVfYm9vdHN0cmFwX3BrZ3MKIApAQCAtNjg5LDE4ICs2OTcsMjQgQEAgY2FzZSAi JFhCUFNfVEFSR0VUIiBpbgogICAgICAgICAjIGJvb3RzdHJhcCBmcm9tIHNvdXJjZXMKICAgICAg ICAgIyBjaGVjayBmb3IgcmVxdWlyZWQgaG9zdCB1dGlscwogICAgICAgICBjaGVja19yZXFob3N0 X3V0aWxzIGJvb3RzdHJhcAotICAgICAgICBbICEgLWQgJFhCUFNfU1JDUEtHRElSL2Jhc2UtY2hy b290IF0gJiYgXAotICAgICAgICAgICAgbXNnX2Vycm9yICJDYW5ub3QgZmluZCAkWEJQU19TUkNQ S0dESVIvYmFzZS1jaHJvb3QgZGlyZWN0b3J5IVxuIgorICAgICAgICBbWyAkWEJQU19NQUNISU5F ID1+IG11c2wgXV0gJiYgc3ViYXJjaD0iLW11c2wiCisgICAgICAgIFsgISAtZCAkWEJQU19TUkNQ S0dESVIvYmFzZS1jaHJvb3Qke3N1YmFyY2h9IF0gJiYgXAorICAgICAgICAgICAgbXNnX2Vycm9y ICJDYW5ub3QgZmluZCAkWEJQU19TUkNQS0dESVIvYmFzZS1jaHJvb3Qke3N1YmFyY2h9IGRpcmVj dG9yeSFcbiIKICAgICAgICAgYm9vdHN0cmFwX3Zwa2c9JHtYQlBTX01BU1RFUkRJUn0vZXRjL3hi cHMuZC9ib290c3RyYXAtdnBrZ3MuY29uZgogICAgICAgICBta2RpciAtcCAke1hCUFNfTUFTVEVS RElSfS9ldGMveGJwcy5kCiAgICAgICAgIGlmIFsgISAtcyAke2Jvb3RzdHJhcF92cGtnfSBdOyB0 aGVuCiAgICAgICAgICAgICAjIEZvb2wgeGJwcyB0byByZXNvbHZlIGRlcGVuZGVuY2llcy4KLSAg ICAgICAgICAgIGVjaG8gJ3ZpcnR1YWxwa2c9bGliZ2NjLTQuNC4wXzE6YmFzZS1maWxlcycgPj4g JHtib290c3RyYXBfdnBrZ30KLSAgICAgICAgICAgIGVjaG8gJ3ZpcnR1YWxwa2c9bGlic3RkYysr LTQuNC4wXzE6YmFzZS1maWxlcycgPj4gJHtib290c3RyYXBfdnBrZ30KKyAgICAgICAgICAgIGVj aG8gJ3ZpcnR1YWxwa2c9bGliZ2NjOmJhc2UtZmlsZXMnID4+ICR7Ym9vdHN0cmFwX3Zwa2d9Cisg ICAgICAgICAgICBlY2hvICd2aXJ0dWFscGtnPWxpYnN0ZGMrKzpiYXNlLWZpbGVzJyA+PiAke2Jv b3RzdHJhcF92cGtnfQogICAgICAgICBmaQotICAgICAgICAkWEJQU19MSUJFWEVDRElSL2J1aWxk LnNoIGJhc2UtY2hyb290IGJhc2UtY2hyb290ICRYQlBTX1RBUkdFVCB8fCBleGl0IDEKKyAgICAg ICAgKAorICAgICAgICAgICAgZXhwb3J0IFhCUFNfQVJDSD0kWEJQU19NQUNISU5FCisgICAgICAg ICAgICBleHBvcnQgWEJQU19TS0lQX1JFTU9URVJFUE9TPTEKKyAgICAgICAgICAgICRYQlBTX0xJ QkVYRUNESVIvYnVpbGQuc2ggXAorICAgICAgICAgICAgICAgIGJhc2UtY2hyb290JHtzdWJhcmNo fSBiYXNlLWNocm9vdCR7c3ViYXJjaH0gJFhCUFNfVEFSR0VUIHx8IGV4aXQgMQorICAgICAgICAp IHx8IGV4aXQgMQogICAgICAgICBbIC1kICRYQlBTX01BU1RFUkRJUiBdICYmIHJtIC1yZiAkWEJQ U19NQVNURVJESVIKLSAgICAgICAgaW5zdGFsbF9iYm9vdHN0cmFwIGJvb3RzdHJhcAorICAgICAg ICBpbnN0YWxsX2Jib290c3RyYXAgJHtYQlBTX1RBUkdFVF9QS0c6PSRYQlBTX01BQ0hJTkV9CiAg ICAgICAgIDs7CiAgICAgYm9vdHN0cmFwLXVwZGF0ZSkKICAgICAgICAgaWYgWyAtbiAiJENIUk9P VF9SRUFEWSIgLWEgLXogIiRJTl9DSFJPT1QiIF07IHRoZW4KQEAgLTc4MCw3ICs3OTQsNyBAQCBj YXNlICIkWEJQU19UQVJHRVQiIGluCiAgICAgICAgIHNob3dfcGtnCiAgICAgICAgIDs7CiAgICAg c2hvdy1hdmFpbCkKLSAgICAgICAgcmVhZF9wa2cKKyAgICAgICAgcmVhZF9wa2cgJj4vZGV2L251 bGwKICAgICAgICAgc2hvd19hdmFpbAogICAgICAgICA7OwogICAgIHNob3ctZmlsZXMpCkBAIC04 NTcsNyArODcxLDcgQEAgY2FzZSAiJFhCUFNfVEFSR0VUIiBpbgogICAgICAgICBidWxrX2J1aWxk CiAgICAgICAgIDs7CiAgICAgc2hvdy1zeXMtdXBkYXRlcykKLSAgICAgICAgYnVsa19idWlsZCAt aQorICAgICAgICBidWxrX2J1aWxkIC1JCiAgICAgICAgIDs7CiAgICAgc29ydC1kZXBlbmRlbmNp ZXMpCiAgICAgICAgIGJ1bGtfc29ydGRlcHMgJHtALyRYQlBTX1RBUkdFVC99CkBAIC04NjYsNyAr ODgwLDcgQEAgY2FzZSAiJFhCUFNfVEFSR0VUIiBpbgogICAgICAgICBidWxrX3VwZGF0ZQogICAg ICAgICA7OwogICAgIHVwZGF0ZS1zeXMpCi0gICAgICAgIGJ1bGtfdXBkYXRlIC1pCisgICAgICAg IGJ1bGtfdXBkYXRlIC1JCiAgICAgICAgIDs7CiAgICAgdXBkYXRlLWNoZWNrKQogICAgICAgICBy ZWFkX3BrZyBpZ25vcmUtcHJvYmxlbXMK --===============7518759233856504657==--