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=ham autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 58414b83 for ; Wed, 10 Jul 2019 17:51:17 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============8452606963162779664==" 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: Wed, 10 Jul 2019 19:51:17 +0200 Message-ID: <20190710175117.ohHXgdduc5gsALjTFk54rkEHsG32aWa1QLcRo-KC4yk@z> GitHub notification mails are now in MIME to allow UTF8. --===============8452606963162779664== 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= --===============8452606963162779664== 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" RnJvbSA1NzA4MzI3Mjg5MmNjMjBmNTQxYjY5OTc1ZDZiYTJiMWUwMDNhYjEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdWFuIFJQIDx4dHJhZW1lQGdtYWlsLmNvbT4KRGF0ZTogV2Vk LCAxMCBKdWwgMjAxOSAxOTo0ODo1NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMS80XSB4YnBzLXNy YzogbXVsdGlwbGUgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzCgotIHVzZSB4YnBzLWNoZWNrdmVy cygxKSB0byByZXNvbHZlIGRlcGVuZGVuY2llcy4KLSBhbGwgZGVwZW5kZW5jaWVzIGFyZSBpbnN0 YWxsZWQgYXQgb25jZSBmb3IgdGhlIGhvc3QgYW5kIHRhcmdldC4KLSB0aGUgc2hvdy1idWlsZC1k ZXBzIHRhcmdldCBpcyBub3cgbXVjaCBmYXN0ZXIuCi0gdGhlIHVwZGF0ZS1idWxrL3Nob3ctcmVw by11cGRhdGVzIHRhcmdldHMgYXJlIG5vdyBtdWNoIGZhc3Rlci4KLSB0aGUgdXBkYXRlLXN5cy9z aG93LXN5cy11cGRhdGVzIHRhcmdldHMgYXJlIG5vdyBtdWNoIGZhc3Rlci4KLSB0aGUgYm9vdHN0 cmFwIHRhcmdldCBub3cgd29ya3Mgb24gbXVzbCBob3N0cy4KLSBzaW1wbGlmaWVkIHNvbWUgbG9v cHMuCi0gdXNlIGN1dCgxKSByYXRoZXIgdGhhbiBhd2soMSkgd2hlcmUgYXBwbGljYWJsZS4KLSBt dWx0aXBsZSByYW5kb20gY2hhbmdlcyB0byBpbXByb3ZlIHBlcmZvcm1hbmNlLgoKQmFzZWQgb24g d29yayBzdGFydGVkIGJ5IEBEdW5jYWVuIG9uICMxMjQzMwoKQ2xvc2UgIzEyNDMzCkNsb3NlICMx MTI4MgotLS0KIC5naXRpZ25vcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMSArCiBjb21tb24vaG9va3MvZG8tcGtnLzAwLWdlbi1wa2cuc2ggICAgICAgICAgICAgfCAg IDggKy0KIC4uLi9ob29rcy9wcmUtcGtnLzA0LWdlbmVyYXRlLXJ1bnRpbWUtZGVwcy5zaCB8ICA0 MSArLQogY29tbW9uL2hvb2tzL3ByZS1wa2cvOTktcGtnbGludC5zaCAgICAgICAgICAgIHwgICA0 ICstCiBjb21tb24veGJwcy1zcmMvbGliZXhlYy9idWlsZC5zaCAgICAgICAgICAgICAgfCAgIDQg LQogY29tbW9uL3hicHMtc3JjL2xpYmV4ZWMveGJwcy1zcmMtZG9pbnN0YWxsLnNoIHwgICAyICst CiBjb21tb24veGJwcy1zcmMvbGliZXhlYy94YnBzLXNyYy1wcmVwa2cuc2ggICAgfCAgIDIgKy0K IGNvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1aWxkX2RlcGVuZGVuY2llcy5zaCB8IDUwNSArKysr KysrLS0tLS0tLS0tLS0KIGNvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1bGsuc2ggICAgICAgICAg ICAgICB8ICA5NSArKy0tCiBjb21tb24veGJwcy1zcmMvc2h1dGlscy9jaHJvb3Quc2ggICAgICAg ICAgICAgfCAgMjEgKy0KIGNvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaCAgICAgICAg ICAgICB8ICAxNiArLQogY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY3Jvc3Muc2ggICAgICAgICAg ICAgIHwgIDEzICstCiBjb21tb24veGJwcy1zcmMvc2h1dGlscy9wa2d0YXJnZXQuc2ggICAgICAg ICAgfCAgIDQgKwogY29tbW9uL3hicHMtc3JjL3NodXRpbHMvc2hvdy5zaCAgICAgICAgICAgICAg IHwgIDQ0ICstCiB4YnBzLXNyYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAzMjYgKysrKystLS0tLS0KIDE1IGZpbGVzIGNoYW5nZWQsIDQ2OSBpbnNlcnRpb25zKCspLCA2 MTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5k ZXggYWNjNmJmMzM0NzkuLjU5MWIzNTA3NTkzIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBi Ly5naXRpZ25vcmUKQEAgLTcsMyArNyw0IEBAIG1hc3RlcmRpcioKIGhvc3RkaXIqCiBldGMvY29u ZgogZXRjL3ZpcnR1YWwKKy54YnBzLWNoZWNrdmVycy5wbGlzdApkaWZmIC0tZ2l0IGEvY29tbW9u L2hvb2tzL2RvLXBrZy8wMC1nZW4tcGtnLnNoIGIvY29tbW9uL2hvb2tzL2RvLXBrZy8wMC1nZW4t cGtnLnNoCmluZGV4IDc4ZWMyYTE0MjJhLi5jMGVkMDg4ZGE5ZCAxMDA2NDQKLS0tIGEvY29tbW9u L2hvb2tzL2RvLXBrZy8wMC1nZW4tcGtnLnNoCisrKyBiL2NvbW1vbi9ob29rcy9kby1wa2cvMDAt Z2VuLXBrZy5zaApAQCAtMzIsMTYgKzMyLDE2IEBAIGdlbnBrZygpIHsKIAogCV9wcmVzZXJ2ZT0k e3ByZXNlcnZlOistcH0KIAlpZiBbIC1zICR7UEtHREVTVERJUn0vcmRlcHMgXTsgdGhlbgotCQlf ZGVwcz0iJChjYXQgJHtQS0dERVNURElSfS9yZGVwcykiCisJCV9kZXBzPSIkKDwke1BLR0RFU1RE SVJ9L3JkZXBzKSIKIAlmaQogCWlmIFsgLXMgJHtQS0dERVNURElSfS9zaGxpYi1wcm92aWRlcyBd OyB0aGVuCi0JCV9zaHByb3ZpZGVzPSIkKGNhdCAke1BLR0RFU1RESVJ9L3NobGliLXByb3ZpZGVz KSIKKwkJX3NocHJvdmlkZXM9IiQoPCR7UEtHREVTVERJUn0vc2hsaWItcHJvdmlkZXMpIgogCWZp CiAJaWYgWyAtcyAke1BLR0RFU1RESVJ9L3NobGliLXJlcXVpcmVzIF07IHRoZW4KLQkJX3NocmVx dWlyZXM9IiQoY2F0ICR7UEtHREVTVERJUn0vc2hsaWItcmVxdWlyZXMpIgorCQlfc2hyZXF1aXJl cz0iJCg8JHtQS0dERVNURElSfS9zaGxpYi1yZXF1aXJlcykiCiAJZmkKIAlpZiBbIC1zICR7WEJQ U19TVEFURURJUn0vZ2l0cmV2IF07IHRoZW4KLQkJX2dpdHJldnM9IiQoY2F0ICR7WEJQU19TVEFU RURJUn0vZ2l0cmV2KSIKKwkJX2dpdHJldnM9IiQoPCR7WEJQU19TVEFURURJUn0vZ2l0cmV2KSIK IAlmaQogCiAJIyBTdHJpcHBpbmcgd2hpdGVzcGFjZXMKZGlmZiAtLWdpdCBhL2NvbW1vbi9ob29r cy9wcmUtcGtnLzA0LWdlbmVyYXRlLXJ1bnRpbWUtZGVwcy5zaCBiL2NvbW1vbi9ob29rcy9wcmUt cGtnLzA0LWdlbmVyYXRlLXJ1bnRpbWUtZGVwcy5zaAppbmRleCA2MjA3NzAyMjcxMS4uNmU0NWI3 ZGQzYzMgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9ob29rcy9wcmUtcGtnLzA0LWdlbmVyYXRlLXJ1bnRp bWUtZGVwcy5zaAorKysgYi9jb21tb24vaG9va3MvcHJlLXBrZy8wNC1nZW5lcmF0ZS1ydW50aW1l LWRlcHMuc2gKQEAgLTUsNyArNSw3IEBACiAjCS0gR2VuZXJhdGVzIHNobGliLXJlcXVpcmVzIGZp bGUgZm9yIHhicHMtY3JlYXRlKDEpCiAKIGFkZF9ydW5kZXAoKSB7Ci0gICAgbG9jYWwgZGVwPSIk MSIgaT0gcnBrZ2RlcD0gX2RlcG5hbWU9IF9yZGVwcz0gZm91bmQ9CisgICAgbG9jYWwgZGVwPSIk MSIgaT0gcnBrZ2RlcD0gX2RlcG5hbWU9IGZvdW5kPQogCiAgICAgX2RlcG5hbWU9IiQoJFhCUFNf VUhFTFBFUl9DTUQgZ2V0cGtnZGVwbmFtZSAke2RlcH0gMj4vZGV2L251bGwpIgogICAgIGlmIFsg LXogIiR7X2RlcG5hbWV9IiBdOyB0aGVuCkBAIC02OCwyNiArNjgsMTkgQEAgaG9vaygpIHsKICAg ICBleGVjIDwgJGRlcHNmdG1wCiAgICAgd2hpbGUgcmVhZCBmOyBkbwogICAgICAgICBsZj0ke2Yj JHtQS0dERVNURElSfX0KLQlpZiBbICIke3NraXByZGVwcy8ke2xmfS99IiAhPSAiJHtza2lwcmRl cHN9IiBdOyB0aGVuCi0JCW1zZ19ub3JtYWwgIlNraXBwaW5nIGRlcGVuZGVuY3kgc2NhbiBmb3Ig JHtsZn1cbiIKLQkJY29udGludWUKLQlmaQorCSAgICBpZiBbICIke3NraXByZGVwcy8ke2xmfS99 IiAhPSAiJHtza2lwcmRlcHN9IiBdOyB0aGVuCisJCSAgICBtc2dfbm9ybWFsICJTa2lwcGluZyBk ZXBlbmRlbmN5IHNjYW4gZm9yICR7bGZ9XG4iCisJCSAgICBjb250aW51ZQorCSAgICBmaQogICAg ICAgICBjYXNlICIkKGZpbGUgLWJpICIkZiIpIiBpbgogICAgICAgICAgICAgYXBwbGljYXRpb24v eC0qZXhlY3V0YWJsZSp8YXBwbGljYXRpb24veC1zaGFyZWRsaWIqKQogICAgICAgICAgICAgICAg IGZvciBubGliIGluICQoJE9CSkRVTVAgLXAgIiRmInxncmVwIE5FRURFRHxhd2sgJ3twcmludCAk Mn0nKTsgZG8KLSAgICAgICAgICAgICAgICAgICAgaWYgWyAteiAiJHZlcmlmeV9kZXBzIiBdOyB0 aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZnlfZGVwcz0iJG5saWIiCi0gICAgICAg ICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICBmaQorICAgICAg ICAgICAgICAgICAgICBbIC16ICIkdmVyaWZ5X2RlcHMiIF0gJiYgdmVyaWZ5X2RlcHM9IiRubGli IiAmJiBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICBmb3VuZD0wCiAgICAgICAgICAgICAg ICAgICAgIGZvciBqIGluICR7dmVyaWZ5X2RlcHN9OyBkbwotICAgICAgICAgICAgICAgICAgICAg ICAgWyAiJGoiICE9ICIkbmxpYiIgXSAmJiBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICAg ICAgZm91bmRfZHVwPTEKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAg ICAgICAgICAgICAgICBbWyAkaiA9PSAkbmxpYiBdXSAmJiBmb3VuZD0xICYmIGJyZWFrCiAgICAg ICAgICAgICAgICAgICAgIGRvbmUKLSAgICAgICAgICAgICAgICAgICAgaWYgWyAteiAiJGZvdW5k X2R1cCIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZ5X2RlcHM9IiR2ZXJp ZnlfZGVwcyAkbmxpYiIKLSAgICAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICAg ICAgdW5zZXQgZm91bmRfZHVwCisgICAgICAgICAgICAgICAgICAgIFtbICRmb3VuZCAtZXEgMCBd XSAmJiB2ZXJpZnlfZGVwcz0iJHZlcmlmeV9kZXBzICRubGliIgogICAgICAgICAgICAgICAgIGRv bmUKICAgICAgICAgICAgICAgICA7OwogICAgICAgICBlc2FjCkBAIC05NywxMyArOTAsMTMgQEAg aG9vaygpIHsKIAogICAgICMKICAgICAjIEFkZCByZXF1aXJlZCBydW4gdGltZSBwYWNrYWdlcyBi eSB1c2luZyByZXF1aXJlZCBzaGxpYnMgcmVzb2x2ZWQKLSAgICAjIGFib3ZlLCB0aGUgbWFwcGlu ZyBpcyBkb25lIHRocnUgdGhlIG1hcHBpbmdfc2hsaWJfYmlucGtnLnR4dCBmaWxlLgorICAgICMg YWJvdmUsIHRoZSBtYXBwaW5nIGlzIGRvbmUgdGhydSB0aGUgY29tbW9uL3NobGlicyBmaWxlLgog ICAgICMKICAgICBmb3IgZiBpbiAke3ZlcmlmeV9kZXBzfTsgZG8KICAgICAgICAgdW5zZXQgX2Yg aiByZGVwIF9yZGVwIHJkZXBjbnQgc29uYW1lIF9wa2duYW1lIF9yZGVwdmVyIGZvdW5kCiAgICAg ICAgIF9mPSQoZWNobyAiJGYifHNlZCAtRSAnc3xcK3xcXCt8ZycpCi0gICAgICAgIHJkZXA9IiQo Z3JlcCAtRSAiXiR7X2Z9W1s6Ymxhbms6XV0rLiokIiAkbWFwc2hsaWJzfGF3ayAne3ByaW50ICQy fScpIgotICAgICAgICByZGVwY250PSIkKGdyZXAgLUUgIl4ke19mfVtbOmJsYW5rOl1dKy4qJCIg JG1hcHNobGlic3xhd2sgJ3twcmludCAkMn0nfHdjIC1sKSIKKyAgICAgICAgcmRlcD0iJChncmVw IC1FICJeJHtfZn1bWzpibGFuazpdXSsuKiQiICRtYXBzaGxpYnN8Y3V0IC1kICcgJyAtZjIpIgor ICAgICAgICByZGVwY250PSIkKGdyZXAgLUUgIl4ke19mfVtbOmJsYW5rOl1dKy4qJCIgJG1hcHNo bGlic3xjdXQgLWQgJyAnIC1mMnx3YyAtbCkiCiAgICAgICAgIGlmIFsgLXogIiRyZGVwIiBdOyB0 aGVuCiAgICAgICAgICAgICAjIElnbm9yZSBsaWJzIGJ5IGN1cnJlbnQgcGtnCiAgICAgICAgICAg ICBzb25hbWU9JChmaW5kICR7UEtHREVTVERJUn0gLW5hbWUgIiRmIikKQEAgLTEyMSwxNSArMTE0 LDkgQEAgaG9vaygpIHsKICAgICAgICAgICAgICAgICBfcGtnbmFtZT0kKCRYQlBTX1VIRUxQRVJf Q01EIGdldHBrZ25hbWUgIiRqIikKICAgICAgICAgICAgICAgICAjIGlmIHRoZXJlJ3MgYSBTT05B TUUgbWF0Y2hpbmcgcGtnbmFtZSwgdXNlIGl0LgogICAgICAgICAgICAgICAgIGZvciB4IGluICR7 cGtnbmFtZX0gJHtzdWJwYWNrYWdlc307IGRvCi0gICAgICAgICAgICAgICAgICAgIGlmIFsgIiR7 X3BrZ25hbWV9IiA9ICIke3h9IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICBmb3Vu ZD0xCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICBm aQorICAgICAgICAgICAgICAgICAgICBbWyAkX3BrZ25hbWUgPT0gJHggXV0gJiYgZm91bmQ9MSAm JiBicmVhawogICAgICAgICAgICAgICAgIGRvbmUKLSAgICAgICAgICAgICAgICBpZiBbIC1uICIk Zm91bmQiIF07IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgX3JkZXA9JGoKLSAgICAgICAgICAg ICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgIFtbICRm b3VuZCBdXSAmJiBfcmRlcD0kaiAmJiBicmVhawogICAgICAgICAgICAgZG9uZQogICAgICAgICAg ICAgaWYgWyAteiAiJHtfcmRlcH0iIF07IHRoZW4KICAgICAgICAgICAgICAgICAjIG90aGVyd2lz ZSBwaWNrIHVwIHRoZSBmaXJzdCBvbmUuCmRpZmYgLS1naXQgYS9jb21tb24vaG9va3MvcHJlLXBr Zy85OS1wa2dsaW50LnNoIGIvY29tbW9uL2hvb2tzL3ByZS1wa2cvOTktcGtnbGludC5zaAppbmRl eCA3YWUxODNhZThlOC4uYWIyYjIxNTUwOGUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9ob29rcy9wcmUt cGtnLzk5LXBrZ2xpbnQuc2gKKysrIGIvY29tbW9uL2hvb2tzL3ByZS1wa2cvOTktcGtnbGludC5z aApAQCAtMTE5LDcgKzExOSw3IEBAIGhvb2soKSB7CiAJCQkJbXNnX3JlZCAiJHtwa2d2ZXJ9OiBT T05BTUUgYnVtcCBkZXRlY3RlZDogJHtsaWJuYW1lfS5zby4ke2NvbmZsaWN0UmV2fSAtPiAke2xp Ym5hbWV9LnNvLiR7cmV2fVxuIgogCQkJCW1zZ19yZWQgIiR7cGtndmVyfTogcGxlYXNlIHVwZGF0 ZSBjb21tb24vc2hsaWJzIHdpdGggdGhpcyBsaW5lOiBcIiR7bGlibmFtZX0uc28uJHtyZXZ9ICR7 cGtndmVyfVwiXG4iCiAJCQkJbXNnX3JlZCAiJHtwa2d2ZXJ9OiBhbGwgcmV2ZXJzZSBkZXBlbmRl bmNpZXMgc2hvdWxkIGFsc28gYmUgcmV2YnVtcGVkIHRvIGJlIHJlYnVpbHQgYWdhaW5zdCAke2xp Ym5hbWV9LnNvLiR7cmV2fTpcbiIKLQkJCQlfcmV2ZGVwcz0kKCRYQlBTX1FVRVJZX1hDTUQgLVJz ICR7bGlibmFtZX0uc28gLXAgc2hsaWItcmVxdWlyZXN8YXdrICd7cHJpbnQgJDF9JykKKwkJCQlf cmV2ZGVwcz0kKCRYQlBTX1FVRVJZX1hDTUQgLVJzICR7bGlibmFtZX0uc28gLXAgc2hsaWItcmVx dWlyZXN8Y3V0IC1kICcgJyAtZjEpCiAJCQkJZm9yIHggaW4gJHtfcmV2ZGVwc307IGRvCiAJCQkJ CW1zZ19yZWQgIiAgICR7eCU6fVxuIgogCQkJCWRvbmUKQEAgLTEyOCw3ICsxMjgsNyBAQCBob29r KCkgewogCQkJIyBUcnkgdG8gbWF0Y2ggcHJvdmlkZWQgc2hsaWJzIGluIHZpcnR1YWwgcGFja2Fn ZXMuCiAJCQlmb3IgZiBpbiAke3Byb3ZpZGVzfTsgZG8KIAkJCQlfdnBrZ25hbWU9IiQoJFhCUFNf VUhFTFBFUl9DTUQgZ2V0cGtnbmFtZSAke2Z9IDI+L2Rldi9udWxsKSIKLQkJCQlfc3BrZ25hbWU9 IiQoZ3JlcCAiXiR7ZmlsZW5hbWV9IiAkbWFwc2hsaWJzIHwgYXdrICd7cHJpbnQgJDJ9JykiCisJ CQkJX3Nwa2duYW1lPSIkKGdyZXAgIl4ke2ZpbGVuYW1lfSIgJG1hcHNobGlicyB8IGN1dCAtZCAn ICcgLWYyKSIKIAkJCQlfbGlicGtnbmFtZT0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2duYW1l ICR7X3Nwa2duYW1lfSAyPi9kZXYvbnVsbCkiCiAJCQkJaWYgWyAteiAiJHtfc3BrZ25hbWV9IiAt byAgLXogIiR7X2xpYnBrZ25hbWV9IiBdOyB0aGVuCiAJCQkJCWNvbnRpbnVlCmRpZmYgLS1naXQg YS9jb21tb24veGJwcy1zcmMvbGliZXhlYy9idWlsZC5zaCBiL2NvbW1vbi94YnBzLXNyYy9saWJl eGVjL2J1aWxkLnNoCmluZGV4IDk5MDhiMzM2OTU3Li4xZjc1MWNhMTNiOSAxMDA3NTUKLS0tIGEv Y29tbW9uL3hicHMtc3JjL2xpYmV4ZWMvYnVpbGQuc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL2xp YmV4ZWMvYnVpbGQuc2gKQEAgLTQzLDEwICs0Myw2IEBAIGlmIFsgIiRQS0dOQU1FIiAhPSAiJFhC UFNfVEFSR0VUX1BLRyIgLW8gLXogIiRYQlBTX1NLSVBfREVQUyIgXTsgdGhlbgogICAgIGluc3Rh bGxfcGtnX2RlcHMgJFBLR05BTUUgJFhCUFNfVEFSR0VUX1BLRyBwa2cgJFhCUFNfQ1JPU1NfQlVJ TEQgJFhCUFNfQ1JPU1NfUFJFUEFSRSB8fCBleGl0ICQ/CiBmaQogCi1pZiBbIC16ICIkWEJQU19D Uk9TU19QUkVQQVJFIiBdOyB0aGVuCi0gICAgaW5zdGFsbF9jcm9zc19wa2cgJFhCUFNfQ1JPU1Nf QlVJTEQgfHwgZXhpdCAkPwotZmkKLQogIyBGZXRjaCBkaXN0ZmlsZXMgYWZ0ZXIgaW5zdGFsbGlu ZyByZXF1aXJlZCBkZXBlbmRlbmNpZXMsCiAjIGJlY2F1c2Ugc29tZSBvZiB0aGVtIG1pZ2h0IGJl IHJlcXVpcmVkIGZvciBkb19mZXRjaCgpLgogJFhCUFNfTElCRVhFQ0RJUi94YnBzLXNyYy1kb2Zl dGNoLnNoICRTT1VSQ0VQS0cgJFhCUFNfQ1JPU1NfQlVJTEQgfHwgZXhpdCAxCmRpZmYgLS1naXQg YS9jb21tb24veGJwcy1zcmMvbGliZXhlYy94YnBzLXNyYy1kb2luc3RhbGwuc2ggYi9jb21tb24v eGJwcy1zcmMvbGliZXhlYy94YnBzLXNyYy1kb2luc3RhbGwuc2gKaW5kZXggYjNkNWQ3Mjc2Zjgu LjE0ZTExN2E5MjNiIDEwMDc1NQotLS0gYS9jb21tb24veGJwcy1zcmMvbGliZXhlYy94YnBzLXNy Yy1kb2luc3RhbGwuc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL2xpYmV4ZWMveGJwcy1zcmMtZG9p bnN0YWxsLnNoCkBAIC02Myw3ICs2Myw3IEBAIGlmIFsgISAtZiAkWEJQU19TVUJQS0dfSU5TVEFM TF9ET05FIF07IHRoZW4KICAgICAgICAgICAgIHJ1bl9mdW5jIHBrZ19pbnN0YWxsCiAgICAgICAg IGZpCiAgICAgZmkKLSAgICBzZXR1cF9wa2dfZGVwZW5kcyAke3BrZ25hbWU6PSRQS0dOQU1FfQor ICAgIHNldHVwX3BrZ19kZXBlbmRzICR7cGtnbmFtZTo9JFBLR05BTUV9IHx8IGV4aXQgMQogICAg IHJ1bl9wa2dfaG9va3MgcG9zdC1pbnN0YWxsCiAgICAgdG91Y2ggLWYgJFhCUFNfU1VCUEtHX0lO U1RBTExfRE9ORQogZmkKZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9saWJleGVjL3hicHMt c3JjLXByZXBrZy5zaCBiL2NvbW1vbi94YnBzLXNyYy9saWJleGVjL3hicHMtc3JjLXByZXBrZy5z aAppbmRleCA0YmU0NWZkMGExNC4uMzRmOTFiM2Y1ZjkgMTAwNzU1Ci0tLSBhL2NvbW1vbi94YnBz LXNyYy9saWJleGVjL3hicHMtc3JjLXByZXBrZy5zaAorKysgYi9jb21tb24veGJwcy1zcmMvbGli ZXhlYy94YnBzLXNyYy1wcmVwa2cuc2gKQEAgLTQzLDcgKzQzLDcgQEAgaWYgWyAiJHNvdXJjZXBr ZyIgIT0gIiRQS0dOQU1FIiBdOyB0aGVuCiBmaQogCiBzb3VyY2VfZmlsZSAkWEJQU19DT01NT05E SVIvZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUvJHtidWlsZF9zdHlsZX0uc2gKLXNldHVwX3BrZ19k ZXBlbmRzICRwa2duYW1lCitzZXR1cF9wa2dfZGVwZW5kcyAkcGtnbmFtZSB8fCBleGl0IDEKIHJ1 bl9wa2dfaG9va3MgcHJlLXBrZwogCiB0b3VjaCAtZiAkWEJQU19QUkVQS0dfRE9ORQpkaWZmIC0t Z2l0IGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVpbGRfZGVwZW5kZW5jaWVzLnNoIGIvY29t bW9uL3hicHMtc3JjL3NodXRpbHMvYnVpbGRfZGVwZW5kZW5jaWVzLnNoCmluZGV4IDliZjM3Y2Rm YzlkLi42ZDlkNzI3ZTBkMyAxMDA2NDQKLS0tIGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVp bGRfZGVwZW5kZW5jaWVzLnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1aWxkX2Rl cGVuZGVuY2llcy5zaApAQCAtMSw5ICsxLDkgQEAKICMgdmltOiBzZXQgdHM9NCBzdz00IGV0Ogog Iwogc2V0dXBfcGtnX2RlcGVuZHMoKSB7Ci0gICAgbG9jYWwgcGtnPSIkMSIgaiBfcGtnZGVwbmFt ZSBfcGtnZGVwIF9ycGtnbmFtZSBfZGVwbmFtZSBfZGVwdmVyIF9yZXBsYWNlbWVudAorICAgIGxv Y2FsIHBrZz0iJDEiIG91dD0iJDIiIGogX3Jwa2duYW1lIF9kZXBuYW1lIF9wa2duYW1lIGZvbyBf ZGVwcwogCi0gICAgaWYgWyAtbiAiJHBrZyIgXTsgdGhlbgorICAgIGlmIFtbICRwa2cgXV07IHRo ZW4KICAgICAgICAgIyBzdWJwa2cKICAgICAgICAgaWYgZGVjbGFyZSAtZiAke3BrZ31fcGFja2Fn ZSA+L2Rldi9udWxsOyB0aGVuCiAgICAgICAgICAgICAke3BrZ31fcGFja2FnZQpAQCAtMTMsODUg KzEzLDY3IEBAIHNldHVwX3BrZ19kZXBlbmRzKCkgewogICAgIGZvciBqIGluICR7ZGVwZW5kc307 IGRvCiAgICAgICAgIF9ycGtnbmFtZT0iJHtqJVw/Kn0iCiAgICAgICAgIF9kZXBuYW1lPSIke2oj Klw/fSIKLSAgICAgICAgX3BrZ2RlcG5hbWU9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnZGVw bmFtZSAke19kZXBuYW1lfSAyPi9kZXYvbnVsbCkiCi0gICAgICAgIGlmIFsgLXogIiR7X3BrZ2Rl cG5hbWV9IiBdOyB0aGVuCi0gICAgICAgICAgICBfcGtnZGVwbmFtZT0iJCgkWEJQU19VSEVMUEVS X0NNRCBnZXRwa2duYW1lICR7X2RlcG5hbWV9IDI+L2Rldi9udWxsKSIKLSAgICAgICAgZmkKLSAg ICAgICAgaWYgWyAtcyAke1hCUFNfRElTVERJUn0vZXRjL3ZpcnR1YWwgXTsgdGhlbgotICAgICAg ICAgICAgX3JlcGxhY2VtZW50PSQoZWdyZXAgIl4ke19wa2dkZXBuYW1lOi0ke19kZXBuYW1lfX1b WzpibGFuazpdXSIgJHtYQlBTX0RJU1RESVJ9L2V0Yy92aXJ0dWFsfGN1dCAtZCAnICcgLWYyKQot ICAgICAgICBlbGlmIFsgLXMgJHtYQlBTX0RJU1RESVJ9L2V0Yy9kZWZhdWx0cy52aXJ0dWFsIF07 IHRoZW4KLSAgICAgICAgICAgIF9yZXBsYWNlbWVudD0kKGVncmVwICJeJHtfcGtnZGVwbmFtZTot JHtfZGVwbmFtZX19W1s6Ymxhbms6XV0iICR7WEJQU19ESVNURElSfS9ldGMvZGVmYXVsdHMudmly dHVhbHxjdXQgLWQgJyAnIC1mMikKLSAgICAgICAgZmkKLSAgICAgICAgaWYgWyAiJHtfcnBrZ25h bWV9IiA9ICJ2aXJ0dWFsIiBdOyB0aGVuCi0gICAgICAgICAgICBpZiBbIC16ICIke19yZXBsYWNl bWVudH0iIF07IHRoZW4KLSAgICAgICAgICAgICAgICBtc2dfZXJyb3IgIiRwa2d2ZXI6IGZhaWxl ZCB0byByZXNvbHZlIHZpcnR1YWwgZGVwZW5kZW5jeSBmb3IgJyRqJyAobWlzc2luZyBmcm9tIGV0 Yy92aXJ0dWFsKVxuIgotICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIF9wa2dkZXBuYW1lPSIk KCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ2RlcG5hbWUgJHtfcmVwbGFjZW1lbnR9IDI+L2Rldi9u dWxsKSIKLSAgICAgICAgICAgIGlmIFsgLXogIiR7X3BrZ2RlcG5hbWV9IiBdOyB0aGVuCi0gICAg ICAgICAgICAgICAgX3BrZ2RlcG5hbWU9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnbmFtZSAk e19yZXBsYWNlbWVudH0gMj4vZGV2L251bGwpIgorICAgICAgICBpZiBbWyAke19ycGtnbmFtZX0g PT0gdmlydHVhbCBdXTsgdGhlbgorICAgICAgICAgICAgX3BrZ25hbWU9JCh4YnBzLXVoZWxwZXIg Z2V0cGtnbmFtZSAkX2RlcG5hbWUgMj4vZGV2L251bGwpCisgICAgICAgICAgICBbIC16ICIkX3Br Z25hbWUiIF0gJiYgX3BrZ25hbWU9IiRfZGVwbmFtZSIKKyAgICAgICAgICAgIGlmIFsgLXMgJHtY QlBTX0RJU1RESVJ9L2V0Yy92aXJ0dWFsIF07IHRoZW4KKyAgICAgICAgICAgICAgICBmb289JChl Z3JlcCAiXiR7X3BrZ25hbWV9W1s6Ymxhbms6XV0iICR7WEJQU19ESVNURElSfS9ldGMvdmlydHVh bHxjdXQgLWQgJyAnIC1mMikKKyAgICAgICAgICAgIGVsaWYgWyAtcyAke1hCUFNfRElTVERJUn0v ZXRjL2RlZmF1bHRzLnZpcnR1YWwgXTsgdGhlbgorICAgICAgICAgICAgICAgIGZvbz0kKGVncmVw ICJeJHtfcGtnbmFtZX1bWzpibGFuazpdXSIgJHtYQlBTX0RJU1RESVJ9L2V0Yy9kZWZhdWx0cy52 aXJ0dWFsfGN1dCAtZCAnICcgLWYyKQogICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIGlmIFsg LXogIiR7X3BrZ2RlcG5hbWV9IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgX3BrZ2RlcG5hbWU9 IiR7X3JlcGxhY2VtZW50fT49MCIKKyAgICAgICAgICAgIGlmIFsgLXogIiRmb28iIF07IHRoZW4K KyAgICAgICAgICAgICAgICBtc2dfZXJyb3IgIiRwa2d2ZXI6IGZhaWxlZCB0byByZXNvbHZlIHZp cnR1YWwgZGVwZW5kZW5jeSBmb3IgJyRqJyAobWlzc2luZyBmcm9tIGV0Yy92aXJ0dWFsKVxuIgog ICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIHJ1bl9kZXBlbmRzKz0iICR7X2RlcG5hbWV9PyR7 X3BrZ2RlcG5hbWV9IgotICAgICAgICAgICAgI2VjaG8gIkFkZGluZyBkZXBlbmRlbmN5IHZpcnR1 YWw6ICAke19kZXBuYW1lfT8ke19wa2dkZXBuYW1lfSIKKyAgICAgICAgICAgIF9kZXBzKz0iJGZv byAiCiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGlmIFsgLXogIiR7X3BrZ2RlcG5hbWV9IiBd OyB0aGVuCi0gICAgICAgICAgICAgICAgX3BrZ2RlcD0iJHtfZGVwbmFtZX0+PTAiCi0gICAgICAg ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgX3BrZ2RlcD0iJHtfZGVwbmFtZX0iCisgICAgICAg ICAgICBmb289IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnZGVwbmFtZSAke19kZXBuYW1lfSAy Pi9kZXYvbnVsbCkiCisgICAgICAgICAgICBpZiBbIC16ICIkZm9vIiBdOyB0aGVuCisgICAgICAg ICAgICAgICAgZm9vPSIkKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ25hbWUgJHtfZGVwbmFtZX0g Mj4vZGV2L251bGwpIgorICAgICAgICAgICAgICAgIFsgLXogIiRmb28iIF0gJiYgZm9vPSIke19k ZXBuYW1lfSIKICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICBydW5fZGVwZW5kcys9IiAke19w a2dkZXB9IgorICAgICAgICAgICAgX2RlcHMrPSIkZm9vICIKICAgICAgICAgZmkKKyAgICAgICAg cnVuX2RlcGVuZHMrPSIke19kZXBuYW1lfSAiCiAgICAgZG9uZQotICAgIGZvciBqIGluICR7aG9z dG1ha2VkZXBlbmRzfTsgZG8KLSAgICAgICAgX2RlcG5hbWU9IiR7aiVcPyp9IgotICAgICAgICBf ZGVwdmVyPSQoc3JjcGtnX2dldF92ZXJzaW9uICR7X2RlcG5hbWV9KSB8fCBleGl0ICQ/Ci0gICAg ICAgIGhvc3RfYnVpbGRfZGVwZW5kcys9IiAke19kZXBuYW1lfS0ke19kZXB2ZXJ9IgotICAgIGRv bmUKLSAgICBpZiBbIC1uICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVuCi0gICAgICAgIGZvciBq IGluICR7Y2hlY2tkZXBlbmRzfTsgZG8KLSAgICAgICAgICAgIF9kZXBuYW1lPSIke2olXD8qfSIK LSAgICAgICAgICAgIF9kZXB2ZXI9JChzcmNwa2dfZ2V0X3ZlcnNpb24gJHtfZGVwbmFtZX0pIHx8 IGV4aXQgJD8KLSAgICAgICAgICAgIGhvc3RfY2hlY2tfZGVwZW5kcys9IiAke19kZXBuYW1lfS0k e19kZXB2ZXJ9IgotICAgICAgICBkb25lCi0gICAgZmkKLSAgICBmb3IgaiBpbiAke21ha2VkZXBl bmRzfTsgZG8KLSAgICAgICAgX2RlcG5hbWU9IiR7aiVcPyp9IgotICAgICAgICBfZGVwdmVyPSQo c3JjcGtnX2dldF92ZXJzaW9uICR7X2RlcG5hbWV9KSB8fCBleGl0ICQ/Ci0gICAgICAgIGJ1aWxk X2RlcGVuZHMrPSIgJHtfZGVwbmFtZX0tJHtfZGVwdmVyfSIKLSAgICBkb25lCisKKyAgICBbWyAk b3V0ICYmICRfZGVwcyBdXSAmJiBlY2hvICIkX2RlcHMiCisgICAgcmV0dXJuIDAKIH0KIAotIyBJ bnN0YWxsIGEgcmVxdWlyZWQgcGFja2FnZSBkZXBlbmRlbmN5LCBsaWtlOgogIwotIwl4YnBzLWlu c3RhbGwgLUlBeSA8cGtnbmFtZT4KKyMgSW5zdGFsbCByZXF1aXJlZCBwYWNrYWdlIGRlcGVuZGVu Y2llcywgbGlrZToKKyMKKyMJeGJwcy1pbnN0YWxsIC1BSXkgPHBrZ3M+CisjCisjICAgICAgIC1B IGF1dG9tYXRpYyBtb2RlCisjICAgICAgIC1JIHRvIGlnbm9yZSBmaWxlIGNvbmZsaWN0cworIyAg ICAgICAteSB5ZXMKICMKICMgUmV0dXJucyAwIGlmIHBhY2thZ2UgYWxyZWFkeSBpbnN0YWxsZWQg b3IgaW5zdGFsbGVkIHN1Y2Nlc3NmdWxseS4KICMgQW55IG90aGVyIGVycm9yIG51bWJlciBvdGhl cndpc2UuCiAjCisjIFNVQ0NFU1MgICgwKTogcGFja2FnZSBpbnN0YWxsZWQgc3VjY2Vzc2Z1bGx5 LgorIyBFTk9FTlQgICAoMik6IHBhY2thZ2UgbWlzc2luZyBpbiByZXBvc2l0b3JpZXMuCisjIEVO WElPICAgICg2KTogcGFja2FnZSBkZXBlbmRzIG9uIGludmFsaWQgZGVwZW5kZW5jaWVzLgorIyBF QUdBSU4gICgxMSk6IHBhY2thZ2UgY29uZmxpY3RzLgorIyBFRVhJU1QgICgxNyk6IGZpbGUgY29u ZmxpY3RzIGluIHRyYW5zYWN0aW9uIChYQlBTX0ZMQUdfSUdOT1JFX0ZJTEVfQ09ORkxJQ1RTIHVu c2V0KQorIyBFTk9ERVYgICgxOSk6IHBhY2thZ2UgZGVwZW5kcyBvbiBtaXNzaW5nIGRlcGVuZGVu Y2llcy4KKyMgRU5PVFNVUCAoOTUpOiBubyByZXBvc2l0b3JpZXMgcmVnaXN0ZXJlZC4KKyMKIGlu c3RhbGxfcGtnX2Zyb21fcmVwb3MoKSB7Ci0gICAgbG9jYWwgcGtnPSIkMSIgY3Jvc3M9IiQyIiBy dmFsPSB0bXBsb2dmPQorICAgIGxvY2FsIGNyb3NzPSIkMSIgcnZhbCB0bXBsb2dmIGNtZAorICAg IHNoaWZ0CisKKyAgICBbICQjIC1lcSAwIF0gJiYgcmV0dXJuIDAKIAogICAgIG1rZGlyIC1wICRY QlBTX1NUQVRFRElSCiAgICAgdG1wbG9nZj0ke1hCUFNfU1RBVEVESVJ9L3hicHNfJHtYQlBTX1RB UkdFVF9NQUNISU5FfV9iZGVwXyR7cGtnfS5sb2cKIAotICAgIGlmIFsgLW4gIiRjcm9zcyIgXTsg dGhlbgotICAgICAgICAkWEJQU19JTlNUQUxMX1hDTUQgLUlBeSAiJHBrZyIgPiR0bXBsb2dmIDI+ JjEKLSAgICBlbHNlCi0gICAgICAgICRYQlBTX0lOU1RBTExfQ01EIC1JQXkgIiRwa2ciID4kdG1w bG9nZiAyPiYxCi0gICAgZmkKKyAgICBjbWQ9JFhCUFNfSU5TVEFMTF9DTUQKKyAgICBbWyAkY3Jv c3MgXV0gJiYgY21kPSRYQlBTX0lOU1RBTExfWENNRAorICAgICRjbWQgJHtYQlBTX1NLSVBfUkVN T1RFUkVQT1M6Ky1pfSAtQUl5ICIkQCIgPiR0bXBsb2dmIDI+JjEKICAgICBydmFsPSQ/Ci0gICAg IyB4YnBzLWluc3RhbGwgY2FuIHJldHVybjoKLSAgICAjCi0gICAgIyBTVUNDRVNTICAoMCk6IHBh Y2thZ2UgaW5zdGFsbGVkIHN1Y2Nlc3NmdWxseS4KLSAgICAjIEVOT0VOVCAgICgyKTogcGFja2Fn ZSBtaXNzaW5nIGluIHJlcG9zaXRvcmllcy4KLSAgICAjIEVOWElPICAgICg2KTogcGFja2FnZSBk ZXBlbmRzIG9uIGludmFsaWQgZGVwZW5kZW5jaWVzLgotICAgICMgRUFHQUlOICAoMTEpOiBwYWNr YWdlIGNvbmZsaWN0cy4KLSAgICAjIEVFWElTVCAgKDE3KTogZmlsZSBjb25mbGljdHMgaW4gdHJh bnNhY3Rpb24gKFhCUFNfRkxBR19JR05PUkVfRklMRV9DT05GTElDVFMgdW5zZXQpCi0gICAgIyBF Tk9ERVYgICgxOSk6IHBhY2thZ2UgZGVwZW5kcyBvbiBtaXNzaW5nIGRlcGVuZGVuY2llcy4KLSAg ICAjIEVOT1RTVVAgKDk1KTogbm8gcmVwb3NpdG9yaWVzIHJlZ2lzdGVyZWQuCi0gICAgIworCiAg ICAgY2FzZSAiJHJ2YWwiIGluCiAgICAgICAgIDApICMgc3VjY2VzcywgY2hlY2sgaWYgdGhlcmUg YXJlIGVycm9ycy4KICAgICAgICAgICAgZXJyb3J0bXBmPSQobWt0ZW1wKSB8fCBleGl0IDEKQEAg LTExMSwzOSArOTMsNiBAQCBpbnN0YWxsX3BrZ19mcm9tX3JlcG9zKCkgewogICAgIHJldHVybiAk cnZhbAogfQogCi0jCi0jIFJldHVybnMgMCBpZiBwa2dwYXR0ZXJuIGluICQxIGlzIG1hdGNoZWQg YWdhaW5zdCBjdXJyZW50IGluc3RhbGxlZAotIyBwYWNrYWdlLCAxIGlmIG5vIG1hdGNoIGFuZCAy IGlmIG5vdCBpbnN0YWxsZWQuCi0jCi1jaGVja19wa2dkZXBfbWF0Y2hlZCgpIHsKLSAgICBsb2Nh bCBwa2c9IiQxIiBjaGVja3Zlcj0iJDIiIGNyb3NzPSIkMyIgdWhlbHBlcj0gcGtnbj0gaXZlcj0K LQotICAgIFsgIiRidWlsZF9zdHlsZSIgPSAibWV0YSIgXSAmJiByZXR1cm4gMgotICAgIFsgLXog IiRwa2ciIF0gJiYgcmV0dXJuIDI1NQotCi0gICAgcGtnbj0iJCgkWEJQU19VSEVMUEVSX0NNRCBn ZXRwa2dkZXBuYW1lICR7cGtnfSAyPi9kZXYvbnVsbCkiCi0gICAgaWYgWyAteiAiJHBrZ24iIF07 IHRoZW4KLSAgICAgICAgcGtnbj0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2duYW1lICR7cGtn fSAyPi9kZXYvbnVsbCkiCi0gICAgZmkKLSAgICBbIC16ICIkcGtnbiIgXSAmJiByZXR1cm4gMjU1 Ci0KLSAgICBpZiBbIC1uICIkY3Jvc3MiIF07IHRoZW4KLSAgICAgICAgdWhlbHBlcj0iJFhCUFNf VUhFTFBFUl9YQ01EIgotICAgIGVsc2UKLSAgICAgICAgdWhlbHBlcj0iJFhCUFNfVUhFTFBFUl9D TUQiCi0gICAgZmkKLQotICAgIGl2ZXI9IiQoJHVoZWxwZXIgJGNoZWNrdmVyICRwa2duKSIKLSAg ICBpZiBbICQ/IC1lcSAwIC1hIC1uICIkaXZlciIgXTsgdGhlbgotICAgICAgICAkWEJQU19VSEVM UEVSX0NNRCBwa2dtYXRjaCAiJHtwa2dufS0ke2l2ZXJ9IiAiJHtwa2d9IgotICAgICAgICBbICQ/ IC1lcSAxIF0gJiYgcmV0dXJuIDAKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiAyCi0gICAgZmkK LQotICAgIHJldHVybiAxCi19Ci0KICMKICMgUmV0dXJucyAwIGlmIHBrZ3BhdHRlcm4gaW4gJDEg aXMgaW5zdGFsbGVkIGFuZCBncmVhdGVyIHRoYW4gY3VycmVudAogIyBpbnN0YWxsZWQgcGFja2Fn ZSwgb3RoZXJ3aXNlIDEuCkBAIC0xNTYsMTIgKzEwNSw4IEBAIGNoZWNrX2luc3RhbGxlZF9wa2co KSB7CiAgICAgcGtnbj0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2duYW1lICR7cGtnfSkiCiAg ICAgWyAteiAiJHBrZ24iIF0gJiYgcmV0dXJuIDIKIAotICAgIGlmIFsgLW4gIiRjcm9zcyIgXTsg dGhlbgotICAgICAgICB1aGVscGVyPSIkWEJQU19VSEVMUEVSX1hDTUQiCi0gICAgZWxzZQotICAg ICAgICB1aGVscGVyPSIkWEJQU19VSEVMUEVSX0NNRCIKLSAgICBmaQotCisgICAgdWhlbHBlcj0k WEJQU19VSEVMUEVSX0NNRAorICAgIFtbICRjcm9zcyBdXSAmJiB1aGVscGVyPSRYQlBTX1VIRUxQ RVJfWENNRAogICAgIGl2ZXI9IiQoJHVoZWxwZXIgdmVyc2lvbiAkcGtnbikiCiAgICAgaWYgWyAk PyAtZXEgMCAtYSAtbiAiJGl2ZXIiIF07IHRoZW4KICAgICAgICAgJFhCUFNfQ01QVkVSX0NNRCAi JHtwa2dufS0ke2l2ZXJ9IiAiJHtwa2d9IgpAQCAtMTcxLDQyICsxMTYsMjAgQEAgY2hlY2tfaW5z dGFsbGVkX3BrZygpIHsKICAgICByZXR1cm4gMQogfQogCi1zcmNwa2dfZ2V0X3ZlcnNpb24oKSB7 Ci0gICAgbG9jYWwgcGtnPSIkMSIKLSAgICAjIFJ1biB0aGlzIGluIGEgc3ViLXNoZWxsIHRvIGF2 b2lkIHBvbGx1dGluZyBvdXIgZW52LgotICAgICgKLSAgICB1bnNldCBYQlBTX0JJTlBLR19FWElT VFMKLSAgICBzZXR1cF9wa2cgJHBrZyB8fCBleGl0ICQ/Ci0gICAgZWNobyAiJHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKLSAgICApIHx8IG1zZ19lcnJvciAiJHBrZ3ZlcjogZmFpbGVkIHRvIHRyYW5z Zm9ybSBkZXBlbmRlbmN5ICRwa2dcbiIKLX0KLQotc3JjcGtnX2dldF9wa2d2ZXIoKSB7Ci0gICAg bG9jYWwgcGtnPSIkMSIKLSAgICAjIFJ1biB0aGlzIGluIGEgc3ViLXNoZWxsIHRvIGF2b2lkIHBv bGx1dGluZyBvdXIgZW52LgotICAgICgKLSAgICB1bnNldCBYQlBTX0JJTlBLR19FWElTVFMKLSAg ICBzZXR1cF9wa2cgJHBrZyB8fCBleGl0ICQ/Ci0gICAgZWNobyAiJHtzb3VyY2Vwa2d9LSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCi0gICAgKSB8fCBtc2dfZXJyb3IgIiRwa2d2ZXI6IGZhaWxlZCB0 byB0cmFuc2Zvcm0gZGVwZW5kZW5jeSAkcGtnXG4iCi19Ci0KICMKLSMgSW5zdGFsbHMgYWxsIGRl cGVuZGVuY2llcyByZXF1aXJlZCBieSBhIHBhY2thZ2UuCisjIEJ1aWxkIGFsbCBkZXBlbmRlbmNp ZXMgcmVxdWlyZWQgdG8gYnVpbGQgYW5kIHJ1bi4KICMKIGluc3RhbGxfcGtnX2RlcHMoKSB7CiAg ICAgbG9jYWwgcGtnPSIkMSIgdGFyZ2V0cGtnPSIkMiIgdGFyZ2V0PSIkMyIgY3Jvc3M9IiQ0IiBj cm9zc19wcmVwYXJlPSIkNSIKLSAgICBsb2NhbCBydmFsIF9yZWFscGtnIF92cGtnIF9jdXJwa2cg Y3VycGtnZGVwbmFtZSBwa2duIGl2ZXIKLSAgICBsb2NhbCBpIGogZm91bmQgcnVuZGVwIHJlcG8g c3R5bGUKKyAgICBsb2NhbCBfdnBrZyBjdXJwa2dkZXBuYW1lCisgICAgbG9jYWwgaSBqIGZvdW5k IHN0eWxlCiAKLSAgICBsb2NhbCAtYSBob3N0X2JpbnBrZ19kZXBzIGNoZWNrX2JpbnBrZ19kZXBz IGJpbnBrZ19kZXBzCi0gICAgbG9jYWwgLWEgaG9zdF9taXNzaW5nX2RlcHMgY2hlY2tfbWlzc2lu Z19kZXBzIG1pc3NpbmdfZGVwcyBtaXNzaW5nX3JkZXBzCisgICAgbG9jYWwgLWEgaG9zdF9iaW5w a2dfZGVwcyBiaW5wa2dfZGVwcworICAgIGxvY2FsIC1hIGhvc3RfbWlzc2luZ19kZXBzIG1pc3Np bmdfZGVwcyBtaXNzaW5nX3JkZXBzCiAKICAgICBbIC16ICIkcGtnbmFtZSIgXSAmJiByZXR1cm4g MgotCi0gICAgc2V0dXBfcGtnX2RlcGVuZHMKLQotICAgIFsgLW4gIiRidWlsZF9zdHlsZSIgXSAm JiBzdHlsZT0iIFskYnVpbGRfc3R5bGVdIgorICAgIFsgLXogIiRYQlBTX0NIRUNLX1BLR1MiIF0g JiYgdW5zZXQgY2hlY2tkZXBlbmRzCisgICAgW1sgJGJ1aWxkX3N0eWxlIF1dICYmIHN0eWxlPSIg WyRidWlsZF9zdHlsZV0iCiAKICAgICBmb3IgcyBpbiAkYnVpbGRfaGVscGVyOyBkbwogICAgICAg ICBzdHlsZSs9IiBbJHNdIgpAQCAtMjE4LDE5NyArMTQxLDE3NCBAQCBpbnN0YWxsX3BrZ19kZXBz KCkgewogICAgICAgICBtc2dfbm9ybWFsICIkcGtndmVyOiBidWlsZGluZyR7c3R5bGV9IC4uLlxu IgogICAgIGZpCiAKLSAgICBpZiBbIC16ICIkYnVpbGRfZGVwZW5kcyIgLWEgLXogIiRob3N0X2J1 aWxkX2RlcGVuZHMiIC1hIC16ICIkaG9zdF9jaGVja19kZXBlbmRzIiAtYSAteiAiJHJ1bl9kZXBl bmRzIiBdOyB0aGVuCi0gICAgICAgIHJldHVybiAwCi0gICAgZmkKLQogICAgICMKICAgICAjIEhv c3QgYnVpbGQgZGVwZW5kZW5jaWVzLgogICAgICMKLSAgICBmb3IgaSBpbiAke2hvc3RfYnVpbGRf ZGVwZW5kc307IGRvCi0gICAgICAgIF9yZWFscGtnPSQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtn bmFtZSAiJGkiIDI+L2Rldi9udWxsKQotICAgICAgICBjaGVja19wa2dkZXBfbWF0Y2hlZCAiJGki IHZlcnNpb24KLSAgICAgICAgbG9jYWwgcnZhbD0kPwotICAgICAgICBpZiBbICRydmFsIC1lcSAw IF07IHRoZW4KLSAgICAgICAgICAgIGVjaG8gIiAgIFtob3N0XSAke2l9OiBpbnN0YWxsZWQuIgot ICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZWxpZiBbICRydmFsIC1lcSAxIF07IHRoZW4K LSAgICAgICAgICAgIGl2ZXI9JCgkWEJQU19VSEVMUEVSX0NNRCB2ZXJzaW9uICR7X3JlYWxwa2d9 KQotICAgICAgICAgICAgaWYgWyAkPyAtZXEgMCAtYSAtbiAiJGl2ZXIiIF07IHRoZW4KLSAgICAg ICAgICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtpfTogaW5zdGFsbGVkICRpdmVyICh2aXJ0dWFs cGtnKS4iCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtpfTogdW5yZXNvbHZlZCBidWlsZCBkZXBlbmRl bmN5ISIKLSAgICAgICAgICAgICAgICByZXR1cm4gMQorICAgIGlmIFtbICR7aG9zdG1ha2VkZXBl bmRzfSBdXTsgdGhlbgorICAgICAgICAjIGNoZWNrIHZhbGlkaXR5CisgICAgICAgIGZvciBmIGlu ICR7aG9zdG1ha2VkZXBlbmRzfTsgZG8KKyAgICAgICAgICAgIGlmIFsgISAtZiAkWEJQU19TUkNQ S0dESVIvJGYvdGVtcGxhdGUgXTsgdGhlbgorICAgICAgICAgICAgICAgIG1zZ19lcnJvciAiJHBr Z3ZlcjogaG9zdCBkZXBlbmRlbmN5ICckZicgZG9lcyBub3QgZXhpc3QhXG4iCiAgICAgICAgICAg ICBmaQotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXBvPSQoJFhCUFNfUVVFUllfQ01EIC1S IC1wcmVwb3NpdG9yeSAke2l9IDI+L2Rldi9udWxsKQotICAgICAgICAgICAgaWYgWyAtbiAiJHty ZXBvfSIgXTsgdGhlbgotICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtob3N0XSAke2l9OiBmb3Vu ZCAoJHJlcG8pIgotICAgICAgICAgICAgICAgIGhvc3RfYmlucGtnX2RlcHMrPSgiJHtpfSIpCisg ICAgICAgIGRvbmUKKyAgICAgICAgd2hpbGUgcmVhZCAtciBfZGVwbmFtZSBfZGVwcmVwb3ZlciBf ZGVwdmVyIF9zdWJwa2cgX3JlcG91cmw7IGRvCisgICAgICAgICAgICBfdnBrZz0ke19zdWJwa2d9 LSR7X2RlcHZlcn0KKyAgICAgICAgICAgICMgYmluYXJ5IHBhY2thZ2UgZm91bmQgaW4gYSByZXBv CisgICAgICAgICAgICBpZiBbWyAke19kZXB2ZXJ9ID09ICR7X2RlcHJlcG92ZXJ9IF1dOyB0aGVu CisgICAgICAgICAgICAgICAgZWNobyAiICAgW2hvc3RdICR7X3Zwa2d9OiBmb3VuZCAoJHtfcmVw b3VybH0pIgorICAgICAgICAgICAgICAgIGhvc3RfYmlucGtnX2RlcHMrPSgiJHtfdnBrZ30iKQog ICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg ICAgZWNobyAiICAgW2hvc3RdICR7aX06IG5vdCBmb3VuZC4iCi0gICAgICAgICAgICAgICAgaWYg WyAteiAiJGNyb3NzIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIGlmIFsgIiR7X3JlYWxw a2d9IiA9ICIkdGFyZ2V0cGtnIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICBtc2df ZXJyb3IgIiR7cGtnfTogW2hvc3RdIGJ1aWxkIGxvb3AgZGV0ZWN0ZWQ6ICR7X3JlYWxwa2d9IDwt PiAke3RhcmdldHBrZ30gW2RlcGVuZHMgb24gaXRzZWxmXVxuIgotICAgICAgICAgICAgICAgICAg ICBlbGlmIFsgIiR7X3JlYWxwa2d9IiA9ICIkcGtnIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAg ICAgICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW2hvc3RdIGJ1aWxkIGxvb3AgZGV0ZWN0ZWQ6ICRw a2cgPC0+ICR7X3JlYWxwa2d9XG4iCisgICAgICAgICAgICBmaQorICAgICAgICAgICAgIyBiaW5h cnkgcGFja2FnZSBub3QgZm91bmQKKyAgICAgICAgICAgIGlmIFtbICRfZGVwbmFtZSAhPSAkX3N1 YnBrZyBdXTsgdGhlbgorICAgICAgICAgICAgICAgICMgc3VicGtnLCBjaGVjayBpZiBpdCdzIGEg c3VicGtnIG9mIGl0c2VsZgorICAgICAgICAgICAgICAgIGZvdW5kPTAKKyAgICAgICAgICAgICAg ICBmb3IgZiBpbiAke3N1YnBhY2thZ2VzfTsgZG8KKyAgICAgICAgICAgICAgICAgICAgaWYgW1sg JHtfc3VicGtnfSA9PSAke2Z9IF1dOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICBmb3Vu ZD0xCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgICAgICBm aQorICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICBpZiBbWyAkZm91bmQgLWVx IDEgXV07IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgZWNobyAiICAgW2hvc3RdICR7X3Zwa2d9 OiBub3QgZm91bmQgKHN1YnBrZywgaWdub3JlZCkiCisgICAgICAgICAgICAgICAgZWxzZQorICAg ICAgICAgICAgICAgICAgICBlY2hvICIgICBbaG9zdF0gJHtfdnBrZ306IG5vdCBmb3VuZCIKKyAg ICAgICAgICAgICAgICAgICAgaG9zdF9taXNzaW5nX2RlcHMrPSgiJF92cGtnIikKICAgICAgICAg ICAgICAgICBmaQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGVjaG8gIiAgIFto b3N0XSAke192cGtnfTogbm90IGZvdW5kIgorICAgICAgICAgICAgICAgIGhvc3RfbWlzc2luZ19k ZXBzKz0oIiRfdnBrZyIpCiAgICAgICAgICAgICBmaQotICAgICAgICBmaQotICAgICAgICBob3N0 X21pc3NpbmdfZGVwcys9KCIke2l9IikKLSAgICBkb25lCisgICAgICAgIGRvbmUgPCA8KCRYQlBT X0NIRUNLVkVSU19DTUQgJHtYQlBTX1NLSVBfUkVNT1RFUkVQT1M6Ky1pfSAtRCAkWEJQU19ESVNU RElSIC1zbSAke2hvc3RtYWtlZGVwZW5kc30pCisgICAgZmkKIAogICAgICMKICAgICAjIEhvc3Qg Y2hlY2sgZGVwZW5kZW5jaWVzLgogICAgICMKLSAgICBmb3IgaSBpbiAke2hvc3RfY2hlY2tfZGVw ZW5kc307IGRvCi0gICAgICAgIF9yZWFscGtnPSIkKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ25h bWUgJGkgMj4vZGV2L251bGwpIgotICAgICAgICBjaGVja19wa2dkZXBfbWF0Y2hlZCAiJGkiIHZl cnNpb24KLSAgICAgICAgbG9jYWwgcnZhbD0kPwotICAgICAgICBpZiBbICRydmFsIC1lcSAwIF07 IHRoZW4KLSAgICAgICAgICAgIGVjaG8gIiAgIFtjaGVja10gJHtpfTogaW5zdGFsbGVkLiIKLSAg ICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGVsaWYgWyAkcnZhbCAtZXEgMSBdOyB0aGVuCi0g ICAgICAgICAgICBpdmVyPSQoJFhCUFNfVUhFTFBFUl9DTUQgdmVyc2lvbiAke19yZWFscGtnfSkK LSAgICAgICAgICAgIGlmIFsgJD8gLWVxIDAgLWEgLW4gIiRpdmVyIiBdOyB0aGVuCi0gICAgICAg ICAgICAgICAgZWNobyAiICAgW2NoZWNrXSAke2l9OiBpbnN0YWxsZWQgJGl2ZXIgKHZpcnR1YWxw a2cpLiIKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxzZQotICAgICAg ICAgICAgICAgIGVjaG8gIiAgIFtjaGVja10gJHtpfTogdW5yZXNvbHZlZCBjaGVjayBkZXBlbmRl bmN5ISIKLSAgICAgICAgICAgICAgICByZXR1cm4gMQorICAgIGlmIFtbICR7Y2hlY2tkZXBlbmRz fSBdXSAmJiBbWyAkWEJQU19DSEVDS19QS0dTIF1dOyB0aGVuCisgICAgICAgICMgY2hlY2sgdmFs aWRpdHkKKyAgICAgICAgZm9yIGYgaW4gJHtjaGVja2RlcGVuZHN9OyBkbworICAgICAgICAgICAg aWYgWyAhIC1mICRYQlBTX1NSQ1BLR0RJUi8kZi90ZW1wbGF0ZSBdOyB0aGVuCisgICAgICAgICAg ICAgICAgbXNnX2Vycm9yICIkcGtndmVyOiBjaGVjayBkZXBlbmRlbmN5ICckZicgZG9lcyBub3Qg ZXhpc3QhXG4iCiAgICAgICAgICAgICBmaQotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXBv PSQoJFhCUFNfUVVFUllfQ01EIC1SIC1wcmVwb3NpdG9yeSAke2l9IDI+L2Rldi9udWxsKQotICAg ICAgICAgICAgaWYgWyAtbiAiJHtyZXBvfSIgXTsgdGhlbgotICAgICAgICAgICAgICAgIGVjaG8g IiAgIFtjaGVja10gJHtpfTogZm91bmQgKCRyZXBvKSIKLSAgICAgICAgICAgICAgICBjaGVja19i aW5wa2dfZGVwcys9KCIke2l9IikKKyAgICAgICAgZG9uZQorICAgICAgICB3aGlsZSByZWFkIC1y IF9kZXBuYW1lIF9kZXByZXBvdmVyIF9kZXB2ZXIgX3N1YnBrZyBfcmVwb3VybDsgZG8KKyAgICAg ICAgICAgIF92cGtnPSR7X3N1YnBrZ30tJHtfZGVwdmVyfQorICAgICAgICAgICAgIyBiaW5hcnkg cGFja2FnZSBmb3VuZCBpbiBhIHJlcG8KKyAgICAgICAgICAgIGlmIFtbICR7X2RlcHZlcn0gPT0g JHtfZGVwcmVwb3Zlcn0gXV07IHRoZW4KKyAgICAgICAgICAgICAgICBlY2hvICIgICBbY2hlY2td ICR7X3Zwa2d9OiBmb3VuZCAoJHtfcmVwb3VybH0pIgorICAgICAgICAgICAgICAgIGhvc3RfYmlu cGtnX2RlcHMrPSgiJHtfdnBrZ30iKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAg ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZWNobyAiICAgW2NoZWNrXSAke2l9OiBub3QgZm91 bmQuIgotICAgICAgICAgICAgICAgIGlmIFsgIiR7X3JlYWxwa2d9IiA9ICIkdGFyZ2V0cGtnIiBd OyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIG1zZ19lcnJvciAiJHtwa2d9OiBbY2hlY2tdIGJ1 aWxkIGxvb3AgZGV0ZWN0ZWQ6ICR7X3JlYWxwa2d9IDwtPiAke3RhcmdldHBrZ30gW2RlcGVuZHMg b24gaXRzZWxmXSFcbiIKLSAgICAgICAgICAgICAgICBlbGlmIFsgIiR7X3JlYWxwa2d9IiA9ICIk cGtnIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIG1zZ19lcnJvciAiJHtwa2d9OiBbY2hl Y2tdIGJ1aWxkIGxvb3AgZGV0ZWN0ZWQ6ICRwa2cgPC0+ICR7X3JlYWxwa2d9XG4iCisgICAgICAg ICAgICBmaQorICAgICAgICAgICAgIyBiaW5hcnkgcGFja2FnZSBub3QgZm91bmQKKyAgICAgICAg ICAgIGlmIFtbICRfZGVwbmFtZSAhPSAkX3N1YnBrZyBdXTsgdGhlbgorICAgICAgICAgICAgICAg ICMgc3VicGtnLCBjaGVjayBpZiBpdCdzIGEgc3VicGtnIG9mIGl0c2VsZgorICAgICAgICAgICAg ICAgIGZvdW5kPTAKKyAgICAgICAgICAgICAgICBmb3IgZiBpbiAke3N1YnBhY2thZ2VzfTsgZG8K KyAgICAgICAgICAgICAgICAgICAgaWYgW1sgJHtfc3VicGtnfSA9PSAke2Z9IF1dOyB0aGVuCisg ICAgICAgICAgICAgICAgICAgICAgICBmb3VuZD0xCisgICAgICAgICAgICAgICAgICAgICAgICBi cmVhaworICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgIGRvbmUKKyAgICAg ICAgICAgICAgICBpZiBbWyAkZm91bmQgLWVxIDEgXV07IHRoZW4KKyAgICAgICAgICAgICAgICAg ICAgZWNobyAiICAgW2NoZWNrXSAke192cGtnfTogbm90IGZvdW5kIChzdWJwa2csIGlnbm9yZWQp IgorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZWNobyAiICAgW2No ZWNrXSAke192cGtnfTogbm90IGZvdW5kIgorICAgICAgICAgICAgICAgICAgICBob3N0X21pc3Np bmdfZGVwcys9KCIkX3Zwa2ciKQogICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICBlbHNl CisgICAgICAgICAgICAgICAgZWNobyAiICAgW2NoZWNrXSAke192cGtnfTogbm90IGZvdW5kIgor ICAgICAgICAgICAgICAgIGhvc3RfbWlzc2luZ19kZXBzKz0oIiRfdnBrZyIpCiAgICAgICAgICAg ICBmaQotICAgICAgICBmaQotICAgICAgICBjaGVja19taXNzaW5nX2RlcHMrPSgiJHtpfSIpCi0g ICAgZG9uZQotCisgICAgICAgIGRvbmUgPCA8KCRYQlBTX0NIRUNLVkVSU19DTUQgJHtYQlBTX1NL SVBfUkVNT1RFUkVQT1M6Ky1pfSAtRCAkWEJQU19ESVNURElSIC1zbSAke2NoZWNrZGVwZW5kc30p CisgICAgZmkKIAogICAgICMKICAgICAjIFRhcmdldCBidWlsZCBkZXBlbmRlbmNpZXMuCiAgICAg IwotICAgIGZvciBpIGluICR7YnVpbGRfZGVwZW5kc307IGRvCi0gICAgICAgIF9yZWFscGtnPSIk KCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ25hbWUgJGkgMj4vZGV2L251bGwpIgotICAgICAgICAj IENoZWNrIGlmIGRlcGVuZGVuY3kgaXMgYSBzdWJwa2csIGlmIGl0IGlzLCBpZ25vcmUgaXQuCi0g ICAgICAgIHVuc2V0IGZvdW5kCi0gICAgICAgIGZvciBqIGluICR7c3VicGFja2FnZXN9OyBkbwot ICAgICAgICAgICAgWyAiJGoiID0gIiR7X3JlYWxwa2d9IiBdICYmIGZvdW5kPTEgJiYgYnJlYWsK KyAgICBpZiBbWyAke21ha2VkZXBlbmRzfSBdXTsgdGhlbgorICAgICAgICAjIGNoZWNrIHZhbGlk aXR5CisgICAgICAgIGZvciBmIGluICR7bWFrZWRlcGVuZHN9OyBkbworICAgICAgICAgICAgaWYg WyAhIC1mICRYQlBTX1NSQ1BLR0RJUi8kZi90ZW1wbGF0ZSBdOyB0aGVuCisgICAgICAgICAgICAg ICAgbXNnX2Vycm9yICIkcGtndmVyOiB0YXJnZXQgZGVwZW5kZW5jeSAnJGYnIGRvZXMgbm90IGV4 aXN0IVxuIgorICAgICAgICAgICAgZmkKICAgICAgICAgZG9uZQotICAgICAgICBbIC1uICIkZm91 bmQiIF0gJiYgY29udGludWUKLSAgICAgICAgY2hlY2tfcGtnZGVwX21hdGNoZWQgIiR7aX0iIHZl cnNpb24gJGNyb3NzCi0gICAgICAgIGxvY2FsIHJ2YWw9JD8KLSAgICAgICAgaWYgWyAkcnZhbCAt ZXEgMCBdOyB0aGVuCi0gICAgICAgICAgICBlY2hvICIgICBbdGFyZ2V0XSAke2l9OiBpbnN0YWxs ZWQuIgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZWxpZiBbICRydmFsIC1lcSAxIF07 IHRoZW4KLSAgICAgICAgICAgIGl2ZXI9JCgkWEJQU19VSEVMUEVSX1hDTUQgdmVyc2lvbiAke19y ZWFscGtnfSkKLSAgICAgICAgICAgIGlmIFsgJD8gLWVxIDAgLWEgLW4gIiRpdmVyIiBdOyB0aGVu Ci0gICAgICAgICAgICAgICAgZWNobyAiICAgW3RhcmdldF0gJHtpfTogaW5zdGFsbGVkICRpdmVy ICh2aXJ0dWFscGtnKS4iCisgICAgICAgIHdoaWxlIHJlYWQgLXIgX2RlcG5hbWUgX2RlcHJlcG92 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 fVxuIgorICAgIGlmIFtbICR7ZGVwZW5kc30gXV07IHRoZW4KKyAgICAgICAgX2RlcHM9JChzZXR1 cF9wa2dfZGVwZW5kcyAiIiAxKSB8fCBleGl0IDEKKyAgICAgICAgZm9yIGYgaW4gJHtfZGVwc307 IGRvCisgICAgICAgICAgICBpZiBbICEgLWYgJFhCUFNfU1JDUEtHRElSLyRmL3RlbXBsYXRlIF07 IHRoZW4KKyAgICAgICAgICAgICAgICBtc2dfZXJyb3IgIiRwa2d2ZXI6IHJ1bnRpbWUgZGVwZW5k ZW5jeSAnJGYnIGRvZXMgbm90IGV4aXN0IVxuIgogICAgICAgICAgICAgZmkKLSAgICAgICAgZmkK LSAgICAgICAgIyBDaGVjayBpZiBkZXBlbmRlbmN5IGlzIGEgc3VicGtnLCBpZiBpdCBpcywgaWdu b3JlIGl0LgotICAgICAgICB1bnNldCBmb3VuZAotICAgICAgICBmb3IgaiBpbiAke3N1YnBhY2th Z2VzfTsgZG8KLSAgICAgICAgICAgIFsgIiRqIiA9ICIke3BrZ259IiBdICYmIGZvdW5kPTEgJiYg YnJlYWsKICAgICAgICAgZG9uZQotICAgICAgICBbIC1uICIkZm91bmQiIF0gJiYgY29udGludWUK LSAgICAgICAgX3Byb3BzPSQoJFhCUFNfUVVFUllfWENNRCAtUiAtcHBrZ3ZlcixyZXBvc2l0b3J5 ICR7X3JlYWxwa2d9IDI+L2Rldi9udWxsKQotICAgICAgICBpZiBbIC1uICIke19wcm9wc30iIF07 IHRoZW4KLSAgICAgICAgICAgIHNldCAtLSAke19wcm9wc30KLSAgICAgICAgICAgICRYQlBTX1VI RUxQRVJfQ01EIHBrZ21hdGNoICR7MX0gIiR7X3JlYWxwa2d9IgotICAgICAgICAgICAgaWYgWyAk PyAtZXEgMSBdOyB0aGVuCi0gICAgICAgICAgICAgICAgaWYgWyAtbiAiJHtfY3VycGtnfSIgXTsg dGhlbgotICAgICAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfY3VycGtnfTok e19yZWFscGtnfSAodmlydHVhbCBkZXBlbmRlbmN5KTogZm91bmQgJDEgKCQyKSIKLSAgICAgICAg ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtydW50aW1lXSAke19y ZWFscGtnfTogZm91bmQgJDEgKCQyKSIKLSAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAg ICAgIHNoaWZ0IDIKKyAgICAgICAgd2hpbGUgcmVhZCAtciBfZGVwbmFtZSBfZGVwcmVwb3ZlciBf ZGVwdmVyIF9zdWJwa2cgX3JlcG91cmw7IGRvCisgICAgICAgICAgICBfdnBrZz0ke19zdWJwa2d9 LSR7X2RlcHZlcn0KKyAgICAgICAgICAgICMgYmluYXJ5IHBhY2thZ2UgZm91bmQgaW4gYSByZXBv CisgICAgICAgICAgICBpZiBbWyAke19kZXB2ZXJ9ID09ICR7X2RlcHJlcG92ZXJ9IF1dOyB0aGVu CisgICAgICAgICAgICAgICAgZWNobyAiICAgW3J1bnRpbWVdICR7X3Zwa2d9OiBmb3VuZCAoJHtf cmVwb3VybH0pIgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbHNlCi0g ICAgICAgICAgICAgICAgaWYgWyAtbiAiJHtfY3VycGtnfSIgXTsgdGhlbgotICAgICAgICAgICAg ICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfY3VycGtnfToke19yZWFscGtnfSAodmlydHVh bCBkZXBlbmRlbmN5KTogbm90IGZvdW5kLiIKKyAgICAgICAgICAgIGZpCisgICAgICAgICAgICAj IGJpbmFyeSBwYWNrYWdlIG5vdCBmb3VuZAorICAgICAgICAgICAgaWYgW1sgJF9kZXBuYW1lICE9 ICRfc3VicGtnIF1dOyB0aGVuCisgICAgICAgICAgICAgICAgIyBzdWJwa2csIGNoZWNrIGlmIGl0 J3MgYSBzdWJwa2cgb2YgaXRzZWxmCisgICAgICAgICAgICAgICAgZm91bmQ9MAorICAgICAgICAg ICAgICAgIGZvciBmIGluICR7c3VicGFja2FnZXN9OyBkbworICAgICAgICAgICAgICAgICAgICBp ZiBbWyAke19zdWJwa2d9ID09ICR7Zn0gXV07IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAg IGZvdW5kPTEKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAg ICAgIGZpCisgICAgICAgICAgICAgICAgZG9uZQorICAgICAgICAgICAgICAgIGlmIFtbICRmb3Vu ZCAtZXEgMSBdXTsgdGhlbgorICAgICAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0g JHtfdnBrZ306IG5vdCBmb3VuZCAoc3VicGtnLCBpZ25vcmVkKSIKICAgICAgICAgICAgICAgICBl bHNlCi0gICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtydW50aW1lXSAke19yZWFscGtnfTog bm90IGZvdW5kLiIKKyAgICAgICAgICAgICAgICAgICAgZWNobyAiICAgW3J1bnRpbWVdICR7X3Zw a2d9OiBub3QgZm91bmQiCisgICAgICAgICAgICAgICAgICAgIG1pc3NpbmdfcmRlcHMrPSgiJF92 cGtnIikKICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIHNo aWZ0IDIKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgaWYgWyAtbiAiJHtfY3VycGtnfSIgXTsg dGhlbgotICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtydW50aW1lXSAke19jdXJwa2d9OiR7X3Jl YWxwa2d9ICh2aXJ0dWFsIGRlcGVuZGVuY3kpOiBub3QgZm91bmQuIgogICAgICAgICAgICAgZWxz ZQotICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtydW50aW1lXSAke19yZWFscGtnfTogbm90IGZv dW5kLiIKKyAgICAgICAgICAgICAgICBlY2hvICIgICBbcnVudGltZV0gJHtfdnBrZ306IG5vdCBm b3VuZCIKKyAgICAgICAgICAgICAgICBtaXNzaW5nX3JkZXBzKz0oIiRfdnBrZyIpCiAgICAgICAg ICAgICBmaQotICAgICAgICBmaQotICAgICAgICBpZiBbICIke19yZWFscGtnfSIgPSAiJHRhcmdl dHBrZyIgXTsgdGhlbgotICAgICAgICAgICAgbXNnX2Vycm9yICIke3BrZ306IFtydW5dIGJ1aWxk IGxvb3AgZGV0ZWN0ZWQ6ICR7X3JlYWxwa2d9IDwtPiAke3RhcmdldHBrZ30gW2RlcGVuZHMgb24g aXRzZWxmXVxuIgotICAgICAgICBlbGlmIFsgIiR7X3JlYWxwa2d9IiA9ICIkcGtnIiBdOyB0aGVu Ci0gICAgICAgICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW3J1bl0gYnVpbGQgbG9vcCBkZXRlY3Rl ZDogJHBrZyA8LT4gJHtfcmVhbHBrZ31cbiIKLSAgICAgICAgZmkKLSAgICAgICAgbWlzc2luZ19y ZGVwcys9KCIke19yZWFscGtnfSIpCi0gICAgZG9uZQorICAgICAgICBkb25lIDwgPCgkWEJQU19D SEVDS1ZFUlNfWENNRCAke1hCUFNfU0tJUF9SRU1PVEVSRVBPUzorLWl9IC1EICRYQlBTX0RJU1RE SVIgLXNtICRfZGVwcykKKyAgICAgICAgdW5zZXQgX2RlcHMKKyAgICBmaQogCiAgICAgaWYgWyAt biAiJFhCUFNfQlVJTERfT05MWV9PTkVfUEtHIiBdOyB0aGVuCiAgICAgICAgICAgIGZvciBpIGlu ICR7aG9zdF9taXNzaW5nX2RlcHNbQF19OyBkbwogICAgICAgICAgICAgICAgICAgIG1zZ19lcnJv ciAiZGVwICR7aX0gbm90IGZvdW5kOiAtMSBwYXNzZWQ6IGluc3RydWN0ZWQgbm90IHRvIGJ1aWxk XG4iCiAgICAgICAgICAgIGRvbmUKLSAgICAgICAgICAgZm9yIGkgaW4gJHtjaGVja19taXNzaW5n X2RlcHNbQF19OyBkbwotICAgICAgICAgICAgICAgICAgIG1zZ19lcnJvciAiZGVwICR7aX0gbm90 IGZvdW5kOiAtMSBwYXNzZWQ6IGluc3RydWN0ZWQgbm90IHRvIGJ1aWxkXG4iCi0gICAgICAgICAg IGRvbmUKICAgICAgICAgICAgZm9yIGkgaW4gJHttaXNzaW5nX3JkZXBzW0BdfTsgZG8KICAgICAg ICAgICAgICAgICAgICBtc2dfZXJyb3IgImRlcCAke2l9IG5vdCBmb3VuZDogLTEgcGFzc2VkOiBp bnN0cnVjdGVkIG5vdCB0byBidWlsZFxuIgogICAgICAgICAgICBkb25lCkBAIC00MjksMTggKzMy OSw2IEBAIGluc3RhbGxfcGtnX2RlcHMoKSB7CiAgICAgICAgIGhvc3RfYmlucGtnX2RlcHMrPSgi JGkiKQogICAgIGRvbmUKIAotICAgICMgTWlzc2luZyBjaGVjayBkZXBlbmRlbmNpZXMsIGJ1aWxk IGZyb20gc3JjcGtncy4KLSAgICBmb3IgaSBpbiAke2NoZWNrX21pc3NpbmdfZGVwc1tAXX07IGRv Ci0gICAgICAgICMgcGFja2FnZXMgbm90IGZvdW5kIGluIHJlcG9zLCBpbnN0YWxsIGZyb20gc291 cmNlLgotICAgICAgICAoCi0gICAgICAgIGN1cnBrZ2RlcG5hbWU9JCgkWEJQU19VSEVMUEVSX0NN RCBnZXRwa2duYW1lICIkaSIgMj4vZGV2L251bGwpCi0gICAgICAgIHNldHVwX3BrZyAkY3VycGtn ZGVwbmFtZQotICAgICAgICBleGVjIGVudiBYQlBTX0RFUEVOREVOQ1k9MSBYQlBTX0JJTlBLR19F WElTVFM9MSBcCi0gICAgICAgICAgICAkWEJQU19MSUJFWEVDRElSL2J1aWxkLnNoICRzb3VyY2Vw a2cgJHBrZyAkdGFyZ2V0IHx8IGV4aXQgJD8KLSAgICAgICAgKSB8fCBleGl0ICQ/Ci0gICAgICAg IGNoZWNrX2JpbnBrZ19kZXBzKz0oIiRpIikKLSAgICBkb25lCi0KICAgICAjIE1pc3NpbmcgdGFy Z2V0IGRlcGVuZGVuY2llcywgYnVpbGQgZnJvbSBzcmNwa2dzLgogICAgIGZvciBpIGluICR7bWlz c2luZ19kZXBzW0BdfTsgZG8KICAgICAgICAgIyBwYWNrYWdlcyBub3QgZm91bmQgaW4gcmVwb3Ms IGluc3RhbGwgZnJvbSBzb3VyY2UuCkBAIC00NzEsMjIgKzM1OSwyNSBAQCBpbnN0YWxsX3BrZ19k ZXBzKCkgewogICAgICAgICApIHx8IGV4aXQgJD8KICAgICBkb25lCiAKLSAgICBpZiBbICIkcGtn IiAhPSAiJHRhcmdldHBrZyIgXTsgdGhlbgotICAgICAgICBtc2dfbm9ybWFsICIkcGtnOiBidWls ZGluZyR7c3R5bGV9IChkZXBlbmRlbmN5IG9mICR0YXJnZXRwa2cpIC4uLlxuIgorICAgIGlmIFtb ICR7aG9zdF9iaW5wa2dfZGVwc30gXV07IHRoZW4KKyAgICAgICAgaWYgWyAteiAiJFhCUFNfUVVJ RVQiIF07IHRoZW4KKyAgICAgICAgICAgICMgbm9ybWFsIG1lc3NhZ2VzIGluIGJvbGQKKyAgICAg ICAgICAgIFtbICROT0NPTE9SUyBdXSB8fCBwcmludGYgIlwwMzNbMW0iCisgICAgICAgICAgICBl Y2hvICI9PiAkcGtndmVyOiBpbnN0YWxsaW5nIGhvc3QgZGVwZW5kZW5jaWVzOiAke2hvc3RfYmlu cGtnX2RlcHNbQF19IC4uLiIKKyAgICAgICAgICAgIFtbICROT0NPTE9SUyBdXSB8fCBwcmludGYg IlwwMzNbbSIKKyAgICAgICAgZmkKKyAgICAgICAgaW5zdGFsbF9wa2dfZnJvbV9yZXBvcyAiIiAi JHtob3N0X2JpbnBrZ19kZXBzW0BdfSIKICAgICBmaQogCi0gICAgZm9yIGkgaW4gJHtob3N0X2Jp bnBrZ19kZXBzW0BdfTsgZG8KLSAgICAgICAgbXNnX25vcm1hbCAiJHBrZ3ZlcjogaW5zdGFsbGlu ZyBob3N0IGRlcGVuZGVuY3kgJyRpJyAuLi5cbiIKLSAgICAgICAgaW5zdGFsbF9wa2dfZnJvbV9y ZXBvcyAiJHtpfSIKLSAgICBkb25lCi0KLSAgICBmb3IgaSBpbiAke2NoZWNrX2JpbnBrZ19kZXBz W0BdfTsgZG8KLSAgICAgICAgbXNnX25vcm1hbCAiJHBrZ3ZlcjogaW5zdGFsbGluZyBjaGVjayBk ZXBlbmRlbmN5ICckaScgLi4uXG4iCi0gICAgICAgIGluc3RhbGxfcGtnX2Zyb21fcmVwb3MgIiR7 aX0iCi0gICAgZG9uZQorICAgIGlmIFtbICR7YmlucGtnX2RlcHN9IF1dOyB0aGVuCisgICAgICAg IGlmIFsgLXogIiRYQlBTX1FVSUVUIiBdOyB0aGVuCisgICAgICAgICAgICAjIG5vcm1hbCBtZXNz YWdlcyBpbiBib2xkCisgICAgICAgICAgICBbWyAkTk9DT0xPUlMgXV0gfHwgcHJpbnRmICJcMDMz WzFtIgorICAgICAgICAgICAgZWNobyAiPT4gJHBrZ3ZlcjogaW5zdGFsbGluZyB0YXJnZXQgZGVw ZW5kZW5jaWVzOiAke2JpbnBrZ19kZXBzW0BdfSAuLi4iCisgICAgICAgICAgICBbWyAkTk9DT0xP UlMgXV0gfHwgcHJpbnRmICJcMDMzW20iCisgICAgICAgIGZpCisgICAgICAgIGluc3RhbGxfcGtn X2Zyb21fcmVwb3MgIiRjcm9zcyIgIiR7YmlucGtnX2RlcHNbQF19IgorICAgIGZpCiAKLSAgICBm b3IgaSBpbiAke2JpbnBrZ19kZXBzW0BdfTsgZG8KLSAgICAgICAgbXNnX25vcm1hbCAiJHBrZ3Zl cjogaW5zdGFsbGluZyB0YXJnZXQgZGVwZW5kZW5jeSAnJGknIC4uLlxuIgotICAgICAgICBpbnN0 YWxsX3BrZ19mcm9tX3JlcG9zICIkaSIgJGNyb3NzCi0gICAgZG9uZQorICAgIHJldHVybiAwCiB9 CmRpZmYgLS1naXQgYS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9idWxrLnNoIGIvY29tbW9uL3hi cHMtc3JjL3NodXRpbHMvYnVsay5zaAppbmRleCA3Mzk0Nzk2NTI4Mi4uZWQ1YzRjZTE5MmQgMTAw NjQ0Ci0tLSBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2J1bGsuc2gKKysrIGIvY29tbW9uL3hi cHMtc3JjL3NodXRpbHMvYnVsay5zaApAQCAtMSw4MyArMSw3OCBAQAogIyB2aW06IHNldCB0cz00 IHN3PTQgZXQ6CiAKLWJ1bGtfZ2V0bGluaygpIHsKLSAgICBsb2NhbCBwPSIkezEjIyovfSIKLSAg ICBsb2NhbCB0YXJnZXQ9IiQocmVhZGxpbmsgJFhCUFNfU1JDUEtHRElSLyRwKSIKLQotICAgIGlm IFsgJD8gLWVxIDAgLWEgLW4gIiR0YXJnZXQiIF07IHRoZW4KLSAgICAgICAgcD0kdGFyZ2V0Ci0g ICAgZmkKLSAgICBlY2hvICRwCi19Ci0KIGJ1bGtfc29ydGRlcHMoKSB7Ci0gICAgbG9jYWwgX3Br Z3MgX3BrZyBwa2dzIHBrZyBmb3VuZCBmIHggdG1wZgotCi0gICAgX3BrZ3M9IiRAIgotICAgICMg SXRlcmF0ZSBvdmVyIHRoZSBsaXN0IGFuZCBtYWtlIHN1cmUgdGhhdCBvbmx5IHJlYWwgcGtncyBh cmUKLSAgICAjIGFkZGVkIHRvIG91ciBwa2dsaXN0LgotICAgIGZvciBwa2cgaW4gJHtfcGtnc307 IGRvCi0gICAgICAgIGZvdW5kPTAKLSAgICAgICAgZj0kKGJ1bGtfZ2V0bGluayAkcGtnKQotICAg ICAgICBmb3IgeCBpbiAke3BrZ3N9OyBkbwotICAgICAgICAgICAgaWYgWyAiJHgiID0gIiR7Zn0i IF07IHRoZW4KLSAgICAgICAgICAgICAgICBmb3VuZD0xCi0gICAgICAgICAgICAgICAgYnJlYWsK LSAgICAgICAgICAgIGZpCi0gICAgICAgIGRvbmUKLSAgICAgICAgaWYgWyAkZm91bmQgLWVxIDAg XTsgdGhlbgotICAgICAgICAgICAgcGtncys9IiR7Zn0gIgotICAgICAgICBmaQotICAgIGRvbmUK KyAgICBsb2NhbCBwa2dzPSIkQCIKKyAgICBsb2NhbCBwa2cgX3BrZworICAgIGxvY2FsIE5QUk9D Uz0kKCgkKG5wcm9jKSoyKSkKKyAgICBsb2NhbCBOUlVOTklORz0wCiAKICAgICB0bXBmPSQobWt0 ZW1wKSB8fCBleGl0IDEKLSAgICAjIE5vdyBtYWtlIHRoZSByZWFsIGRlcGVuZGVuY3kgZ3JhcGgg b2YgYWxsIHBrZ3MgdG8gYnVpbGQuCi0gICAgIyBQZXJmb3JtIGEgdG9wb2xvZ2ljYWwgc29ydCBv ZiBhbGwgcGtncyBidXQgb25seSB3aXRoIGJ1aWxkIGRlcGVuZGVuY2llcwotICAgICMgdGhhdCBh cmUgZm91bmQgaW4gcHJldmlvdXMgc3RlcC4KKworICAgICMgUGVyZm9ybSBhIHRvcG9sb2dpY2Fs IHNvcnQgb2YgYWxsICpkaXJlY3QqIGJ1aWxkIGRlcGVuZGVuY2llcy4KICAgICBmb3IgcGtnIGlu ICR7cGtnc307IGRvCi0gICAgICAgIF9wa2dzPSIkKC4veGJwcy1zcmMgc2hvdy1idWlsZC1kZXBz ICRwa2cgMj4vZGV2L251bGwpIgotICAgICAgICBmb3VuZD0wCi0gICAgICAgIGZvciB4IGluICR7 X3BrZ3N9OyBkbwotICAgICAgICAgICAgX3BrZz0kKGJ1bGtfZ2V0bGluayAkeCkKLSAgICAgICAg ICAgIGZvciBmIGluICR7cGtnc307IGRvCi0gICAgICAgICAgICAgICAgaWYgWyAiJHtmfSIgIT0g IiR7X3BrZ30iIF07IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAg ICAgICAgICBmaQotICAgICAgICAgICAgICAgIGZvdW5kPTEKLSAgICAgICAgICAgICAgICBlY2hv ICIke3BrZ30gJHtmfSIgPj4gJHRtcGYKKyAgICAgICAgaWYgWyAkTlJVTk5JTkcgLWVxICROUFJP Q1MgXTsgdGhlbgorICAgICAgICAgICAgTlJVTk5JTkc9MAorICAgICAgICAgICAgd2FpdAorICAg ICAgICBmaQorICAgICAgICBOUlVOTklORz0kKChOUlVOTklORysxKSkKKyAgICAgICAgKAorICAg ICAgICAgICAgZm9yIF9wa2cgaW4gJCguL3hicHMtc3JjIHNob3ctYnVpbGQtZGVwcyAkcGtnIDI+ L2Rldi9udWxsKTsgZG8KKyAgICAgICAgICAgICAgICBlY2hvICIkcGtnICRfcGtnIiA+PiAkdG1w ZgogICAgICAgICAgICAgZG9uZQotICAgICAgICBkb25lCi0gICAgICAgIFsgJGZvdW5kIC1lcSAw IF0gJiYgZWNobyAiJHtwa2d9ICR7cGtnfSIgPj4gJHRtcGYKKyAgICAgICAgICAgIGVjaG8gIiRw a2cgJHBrZyIgPj4gJHRtcGYKKyAgICAgICAgKSAmCiAgICAgZG9uZQorICAgIHdhaXQKICAgICB0 c29ydCAkdG1wZnx0YWMKICAgICBybSAtZiAkdG1wZgogfQogCiBidWxrX2J1aWxkKCkgeworICAg IGxvY2FsIHN5cz0iJDEiCisgICAgbG9jYWwgTlBST0NTPSQoKCQobnByb2MpKjIpKQorICAgIGxv Y2FsIE5SVU5OSU5HPTAKIAogICAgIGlmIFsgIiRYQlBTX0NST1NTX0JVSUxEIiBdOyB0aGVuCiAg ICAgICAgIHNvdXJjZSAke1hCUFNfQ09NTU9ORElSfS9jcm9zcy1wcm9maWxlcy8ke1hCUFNfQ1JP U1NfQlVJTER9LnNoCiAgICAgICAgIGV4cG9ydCBYQlBTX0FSQ0g9JHtYQlBTX1RBUkdFVF9NQUNI SU5FfQogICAgIGZpCiAgICAgaWYgISBjb21tYW5kIC12IHhicHMtY2hlY2t2ZXJzICY+L2Rldi9u dWxsOyB0aGVuCi0gICAgICAgIG1zZ19lcnJvciAieGJwcy1zcmM6IGNhbm5vdCBmaW5kIHhicHMt Y2hlY2t2ZXJzKDgpIGNvbW1hbmQhXG4iCisgICAgICAgIG1zZ19lcnJvciAieGJwcy1zcmM6IGNh bm5vdCBmaW5kIHhicHMtY2hlY2t2ZXJzKDEpIGNvbW1hbmQhXG4iCiAgICAgZmkKIAotICAgIGJ1 bGtfc29ydGRlcHMgIiQoeGJwcy1jaGVja3ZlcnMgJHsxfSAtLWRpc3RkaXI9JFhCUFNfRElTVERJ UiB8IGF3ayAne3ByaW50ICQyfScpIgorICAgICMgQ29tcGFyZSBpbnN0YWxsZWQgcGtnIHZlcnNp b25zIHZzIHNyY3BrZ3MKKyAgICBpZiBbWyAkc3lzIF1dOyB0aGVuCisgICAgICAgIHhicHMtY2hl Y2t2ZXJzIC1mICclbicgLUkgLUQgJFhCUFNfRElTVERJUgorICAgICAgICByZXR1cm4gJD8KKyAg ICBmaQorICAgICMgY29tcGFyZSByZXBvIHBrZyB2ZXJzaW9ucyB2cyBzcmNwa2dzCisgICAgZm9y IGYgaW4gJCh4YnBzLWNoZWNrdmVycyAtZiAnJW4nIC1EICRYQlBTX0RJU1RESVIpOyBkbworICAg ICAgICBpZiBbICROUlVOTklORyAtZXEgJE5QUk9DUyBdOyB0aGVuCisgICAgICAgICAgICBOUlVO TklORz0wCisgICAgICAgICAgICB3YWl0CisgICAgICAgIGZpCisgICAgICAgIE5SVU5OSU5HPSQo KE5SVU5OSU5HKzEpKQorICAgICAgICAoCisgICAgICAgICAgICBzZXR1cF9wa2cgJGYgJFhCUFNf VEFSR0VUX01BQ0hJTkUgJj4vZGV2L251bGwKKyAgICAgICAgICAgIGlmIHNob3dfYXZhaWwgJj4v ZGV2L251bGw7IHRoZW4KKyAgICAgICAgICAgICAgICBlY2hvICIkZiIKKyAgICAgICAgICAgIGZp CisgICAgICAgICkgJgorICAgIGRvbmUKKyAgICB3YWl0CisgICAgcmV0dXJuICQ/CiB9CiAKIGJ1 bGtfdXBkYXRlKCkgewogICAgIGxvY2FsIGFyZ3M9IiQxIiBwa2dzIGYgcnZhbAogCiAgICAgcGtn cz0iJChidWxrX2J1aWxkICR7YXJnc30pIgotICAgIGlmIFsgLXogIiRwa2dzIiBdOyB0aGVuCi0g ICAgICAgIHJldHVybiAwCi0gICAgZmkKKyAgICBbWyAteiAkcGtncyBdXSAmJiByZXR1cm4gMAor CiAgICAgbXNnX25vcm1hbCAieGJwcy1zcmM6IHRoZSBmb2xsb3dpbmcgcGFja2FnZXMgbXVzdCBi ZSByZWJ1aWx0IGFuZCB1cGRhdGVkOlxuIgogICAgIGZvciBmIGluICR7cGtnc307IGRvCi0gICAg ICAgIGVjaG8gIiAgICRmIgorICAgICAgICBlY2hvICIgJGYiCiAgICAgZG9uZQotICAgIGVjaG8K ICAgICBmb3IgZiBpbiAke3BrZ3N9OyBkbwogICAgICAgICBYQlBTX1RBUkdFVF9QS0c9JGYKICAg ICAgICAgcmVhZF9wa2cKZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2Nocm9v dC5zaCBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2Nocm9vdC5zaAppbmRleCBkZWM4ZmEzNjEx Ny4uNDlmYTA1Zjc5YjUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2Nocm9v dC5zaAorKysgYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jaHJvb3Quc2gKQEAgLTE2OSw3ICsx NjksNyBAQCBjaHJvb3RfaGFuZGxlcigpIHsKICAgICBbIC16ICIkYWN0aW9uIiAtYSAteiAiJHBr ZyIgXSAmJiByZXR1cm4gMQogCiAgICAgY2FzZSAiJGFjdGlvbiIgaW4KLSAgICAgICAgZmV0Y2h8 ZXh0cmFjdHxwYXRjaHxidWlsZHxjaGVja3xjb25maWd1cmV8aW5zdGFsbHxpbnN0YWxsLWRlc3Rk aXJ8cGtnfGJ1aWxkLXBrZ3xib290c3RyYXAtdXBkYXRlfGNocm9vdCkKKyAgICAgICAgZmV0Y2h8 ZXh0cmFjdHxwYXRjaHxjb25maWd1cmV8YnVpbGR8Y2hlY2t8aW5zdGFsbHxwa2d8Ym9vdHN0cmFw LXVwZGF0ZXxjaHJvb3QpCiAgICAgICAgICAgICBjaHJvb3RfcHJlcGFyZSB8fCByZXR1cm4gJD8K ICAgICAgICAgICAgIGNocm9vdF9pbml0IHx8IHJldHVybiAkPwogICAgICAgICAgICAgY2hyb290 X3N5bmNfcmVwb3MgfHwgcmV0dXJuICQ/CkBAIC0xODEsMzAgKzE4MSwxMyBAQCBjaHJvb3RfaGFu ZGxlcigpIHsKICAgICAgICAgICAgICRYQlBTX01BU1RFUkRJUiAkWEJQU19ESVNURElSICIkWEJQ U19IT1NURElSIiAiJFhCUFNfQ0hST09UX0NNRF9BUkdTIiAvYmluL3hicHMtc2hlbGwKICAgICAg ICAgcnY9JD8KICAgICBlbHNlCi0gICAgICAgIFsgLW4gIiRYQlBTX0NST1NTX0JVSUxEIiBdICYm IGFyZz0iJGFyZyAtYSAkWEJQU19DUk9TU19CVUlMRCIKLSAgICAgICAgWyAtbiAiJFhCUFNfS0VF UF9BTEwiIF0gJiYgYXJnPSIkYXJnIC1DIgotICAgICAgICBbIC1uICIkTk9DT0xPUlMiIF0gJiYg YXJnPSIkYXJnIC1MIgotICAgICAgICBbIC1uICIkWEJQU19CVUlMRF9GT1JDRU1PREUiIF0gJiYg YXJnPSIkYXJnIC1mIgotICAgICAgICBbIC1uICIkWEJQU19NQUtFSk9CUyIgXSAmJiBhcmc9IiRh cmcgLWokWEJQU19NQUtFSk9CUyIKLSAgICAgICAgWyAtbiAiJFhCUFNfREVCVUdfUEtHUyIgXSAm JiBhcmc9IiRhcmcgLWciCi0gICAgICAgIFsgLW4gIiRYQlBTX0NIRUNLX1BLR1MiIF0gJiYgYXJn PSIkYXJnIC1RIgotICAgICAgICBbIC1uICIkWEJQU19CVUlMRF9PTkxZX09ORV9QS0ciIF0gJiYg YXJnPSIkYXJnIC0xIgotICAgICAgICBbIC1uICIkWEJQU19RVUlFVCIgXSAmJiBhcmc9IiRhcmcg LXEiCi0gICAgICAgIFsgLW4gIiRYQlBTX1NLSVBfREVQUyIgXSAmJiBhcmc9IiRhcmcgLUkiCi0g ICAgICAgIFsgLW4gIiRYQlBTX0FMVF9SRVBPU0lUT1JZIiBdICYmIGFyZz0iJGFyZyAtciAkWEJQ U19BTFRfUkVQT1NJVE9SWSIKLSAgICAgICAgWyAtbiAiJFhCUFNfVVNFX0dJVF9SRVZTIiBdICYm IGFyZz0iJGFyZyAtRyIKLSAgICAgICAgWyAtbiAiJFhCUFNfUEtHX09QVElPTlMiIF0gJiYgYXJn PSIkYXJnIC1vICRYQlBTX1BLR19PUFRJT05TIgotICAgICAgICBbIC1uICIkWEJQU19URU1QX01B U1RFUkRJUiIgXSAmJiBhcmc9IiRhcmcgLXQgLUMiCi0gICAgICAgIFsgLW4gIiRYQlBTX0JJTlBL R19FWElTVFMiIF0gJiYgYXJnPSIkYXJnIC1FIgotCi0gICAgICAgIGFjdGlvbj0iJGFyZyAkYWN0 aW9uIgogICAgICAgICBlbnYgLWkgLS0gUEFUSD0iL3Vzci9iaW46JFBBVEgiIFNIRUxMPS9iaW4v c2ggXAogICAgICAgICAgICAgSE9NRT0vdG1wIElOX0NIUk9PVD0xIExDX0NPTExBVEU9QyBMQU5H PWVuX1VTLlVURi04IFwKICAgICAgICAgICAgIFNPVVJDRV9EQVRFX0VQT0NIPSIkU09VUkNFX0RB VEVfRVBPQ0giIFwKICAgICAgICAgICAgIFhCUFNfQUxMT1dfQ0hST09UX0JSRUFLT1VUPSIkWEJQ U19BTExPV19DSFJPT1RfQlJFQUtPVVQiIFwKICAgICAgICAgICAgICRYQlBTX0NPTU1PTkRJUi9j aHJvb3Qtc3R5bGUvJHtYQlBTX0NIUk9PVF9DTUQ6PXV1bnNoYXJlfS5zaCBcCiAgICAgICAgICAg ICAkWEJQU19NQVNURVJESVIgJFhCUFNfRElTVERJUiAiJFhCUFNfSE9TVERJUiIgIiRYQlBTX0NI Uk9PVF9DTURfQVJHUyIgXAotICAgICAgICAgICAgL3ZvaWQtcGFja2FnZXMveGJwcy1zcmMgJGFj dGlvbiAkcGtnCisgICAgICAgICAgICAvdm9pZC1wYWNrYWdlcy94YnBzLXNyYyAkWEJQU19PUFRJ T05TICRhY3Rpb24gJHBrZwogICAgICAgICBydj0kPwogICAgIGZpCiAKZGlmZiAtLWdpdCBhL2Nv bW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaCBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxz L2NvbW1vbi5zaAppbmRleCA1NTY3NjE5ZjhmMy4uYjhkNjAxZDNmYjIgMTAwNjQ0Ci0tLSBhL2Nv bW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaAorKysgYi9jb21tb24veGJwcy1zcmMvc2h1 dGlscy9jb21tb24uc2gKQEAgLTI5NCw3ICsyOTQsNyBAQCBzZXR1cF9wa2coKSB7CiAgICAgICAg IFhCUFNfUkVNT1ZFX1hDTUQ9ImVudiBYQlBTX1RBUkdFVF9BUkNIPSRYQlBTX1RBUkdFVF9NQUNI SU5FICRYQlBTX1JFTU9WRV9DTUQgLXIgJFhCUFNfQ1JPU1NfQkFTRSIKICAgICAgICAgWEJQU19S SU5ERVhfWENNRD0iZW52IFhCUFNfVEFSR0VUX0FSQ0g9JFhCUFNfVEFSR0VUX01BQ0hJTkUgJFhC UFNfUklOREVYX0NNRCIKICAgICAgICAgWEJQU19VSEVMUEVSX1hDTUQ9ImVudiBYQlBTX1RBUkdF VF9BUkNIPSRYQlBTX1RBUkdFVF9NQUNISU5FIHhicHMtdWhlbHBlciAtciAkWEJQU19DUk9TU19C QVNFIgotCisgICAgICAgIFhCUFNfQ0hFQ0tWRVJTX1hDTUQ9ImVudiBYQlBTX1RBUkdFVF9BUkNI PSRYQlBTX1RBUkdFVF9NQUNISU5FIHhicHMtY2hlY2t2ZXJzIC1yICRYQlBTX0NST1NTX0JBU0Ug LS1yZXBvc2l0b3J5PSRYQlBTX1JFUE9TSVRPUlkiCiAgICAgZWxzZQogICAgICAgICBleHBvcnQg WEJQU19UQVJHRVRfTUFDSElORT0ke1hCUFNfQVJDSDotJFhCUFNfTUFDSElORX0KICAgICAgICAg dW5zZXQgWEJQU19DUk9TU19CQVNFIFhCUFNfQ1JPU1NfTERGTEFHUyBYQlBTX0NST1NTX0ZGTEFH UwpAQCAtMzA3LDcgKzMwNyw3IEBAIHNldHVwX3BrZygpIHsKICAgICAgICAgWEJQU19SRU1PVkVf WENNRD0iJFhCUFNfUkVNT1ZFX0NNRCIKICAgICAgICAgWEJQU19SSU5ERVhfWENNRD0iJFhCUFNf UklOREVYX0NNRCIKICAgICAgICAgWEJQU19VSEVMUEVSX1hDTUQ9IiRYQlBTX1VIRUxQRVJfQ01E IgotCisgICAgICAgIFhCUFNfQ0hFQ0tWRVJTX1hDTUQ9IiRYQlBTX0NIRUNLVkVSU19DTUQiCiAg ICAgZmkKIAogICAgIGV4cG9ydCBYQlBTX0lOU1RBTExfWENNRCBYQlBTX1FVRVJZX1hDTUQgWEJQ U19SRUNPTkZJR1VSRV9YQ01EIFwKQEAgLTQwMiw3ICs0MDIsNyBAQCBzZXR1cF9wa2coKSB7CiAg ICAgICAgIGFyY2g9IiRYQlBTX1RBUkdFVF9NQUNISU5FIgogICAgIGZpCiAgICAgaWYgWyAtbiAi JFhCUFNfQklOUEtHX0VYSVNUUyIgXTsgdGhlbgotICAgICAgICBpZiBbICIkKCRYQlBTX1FVRVJZ X1hDTUQgLVIgLXBwa2d2ZXIgJHBrZ3ZlciAyPi9kZXYvbnVsbCkiID0gIiRwa2d2ZXIiIF07IHRo ZW4KKyAgICAgICAgaWYgWyAiJCgkWEJQU19RVUVSWV9YQ01EIC1pIC1SIC1wcGtndmVyICRwa2d2 ZXIgMj4vZGV2L251bGwpIiA9ICIkcGtndmVyIiBdOyB0aGVuCiAgICAgICAgICAgICBleGl0X2Fu ZF9jbGVhbnVwCiAgICAgICAgIGZpCiAgICAgZmkKQEAgLTU1NiwxNyArNTU2LDE3IEBAIHNldHVw X3BrZygpIHsKICAgICAgICAgd3Jrc3JjPSIkWEJQU19CVUlMRERJUi8kd3Jrc3JjIgogICAgIGZp CiAKLSAgICBpZiBbICIkY3Jvc3MiIC1hICIkbm9jcm9zcyIgLWEgInokc2hvd19wcm9ibGVtcyIg IT0gInppZ25vcmUtcHJvYmxlbXMiIF07IHRoZW4KKyAgICBpZiBbICIkY3Jvc3MiIC1hICIkbm9j cm9zcyIgLWEgIiRzaG93X3Byb2JsZW1zIiAhPSAiaWdub3JlLXByb2JsZW1zIiBdOyB0aGVuCiAg ICAgICAgIG1zZ19yZWQgIiRwa2d2ZXI6IGNhbm5vdCBiZSBjcm9zcyBjb21waWxlZCwgZXhpdGlu Zy4uLlxuIgogICAgICAgICBtc2dfcmVkICIkcGtndmVyOiAkbm9jcm9zc1xuIgogICAgICAgICBl eGl0IDIKLSAgICBlbGlmIFsgIiRicm9rZW4iIC1hICJ6JHNob3dfcHJvYmxlbXMiICE9ICJ6aWdu b3JlLXByb2JsZW1zIiBdOyB0aGVuCisgICAgZWxpZiBbICIkYnJva2VuIiAtYSAiJHNob3dfcHJv YmxlbXMiICE9ICJpZ25vcmUtcHJvYmxlbXMiIF07IHRoZW4KICAgICAgICAgbXNnX3JlZCAiJHBr Z3ZlcjogY2Fubm90IGJlIGJ1aWx0LCBpdCdzIGN1cnJlbnRseSBicm9rZW47IHNlZSB0aGUgYnVp bGQgbG9nOlxuIgogICAgICAgICBtc2dfcmVkICIkcGtndmVyOiAkYnJva2VuXG4iCiAgICAgICAg IGV4aXQgMgogICAgIGZpCiAKLSAgICBpZiBbIC1uICIkcmVzdHJpY3RlZCIgLWEgLXogIiRYQlBT X0FMTE9XX1JFU1RSSUNURUQiIC1hICJ6JHNob3dfcHJvYmxlbXMiICE9ICJ6aWdub3JlLXByb2Js ZW1zIiBdOyB0aGVuCisgICAgaWYgWyAtbiAiJHJlc3RyaWN0ZWQiIC1hIC16ICIkWEJQU19BTExP V19SRVNUUklDVEVEIiAtYSAiJHNob3dfcHJvYmxlbXMiICE9ICJpZ25vcmUtcHJvYmxlbXMiIF07 IHRoZW4KICAgICAgICAgbXNnX3JlZCAiJHBrZ3ZlcjogZG9lcyBub3QgYWxsb3cgcmVkaXN0cmli dXRpb24gb2Ygc291cmNlcy9iaW5hcmllcyAocmVzdHJpY3RlZCBsaWNlbnNlKS5cbiIKICAgICAg ICAgbXNnX3JlZCAiSWYgeW91IHJlYWxseSBuZWVkIHRoaXMgc29mdHdhcmUsIHJ1biAnZWNobyBY QlBTX0FMTE9XX1JFU1RSSUNURUQ9eWVzID4+IGV0Yy9jb25mJ1xuIgogICAgICAgICBleGl0IDIK QEAgLTU3NSw5ICs1NzUsNyBAQCBzZXR1cF9wa2coKSB7CiAgICAgZXhwb3J0IFhCUFNfU1RBVEVE SVI9IiR7WEJQU19CVUlMRERJUn0vLnhicHMtJHtzb3VyY2Vwa2d9IgogICAgIGV4cG9ydCBYQlBT X1dSQVBQRVJESVI9IiR7WEJQU19TVEFURURJUn0vd3JhcHBlcnMiCiAKLSAgICBpZiBbIC1uICIk Ym9vdHN0cmFwIiAtYSAteiAiJENIUk9PVF9SRUFEWSIgLW8gLW4gIiRJTl9DSFJPT1QiIF07IHRo ZW4KLSAgICAgICAgbWtkaXIgLXAgJFhCUFNfV1JBUFBFUkRJUgotICAgIGZpCisgICAgbWtkaXIg LXAgJFhCUFNfU1RBVEVESVIgJFhCUFNfV1JBUFBFUkRJUgogCiAgICAgc291cmNlX2ZpbGUgJFhC UFNfQ09NTU9ORElSL2Vudmlyb25tZW50L2J1aWxkLXN0eWxlLyR7YnVpbGRfc3R5bGV9LnNoCiAK ZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2Nyb3NzLnNoIGIvY29tbW9uL3hi cHMtc3JjL3NodXRpbHMvY3Jvc3Muc2gKaW5kZXggMTJjOWVmYTliNDkuLmU3MjEwMDk4NmRkIDEw MDY0NAotLS0gYS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jcm9zcy5zaAorKysgYi9jb21tb24v eGJwcy1zcmMvc2h1dGlscy9jcm9zcy5zaApAQCAtMjQsMTEgKzI0LDEyIEBAIHJlbW92ZV9wa2df Y3Jvc3NfZGVwcygpIHsKIAogcHJlcGFyZV9jcm9zc19zeXNyb290KCkgewogICAgIGxvY2FsIGNy b3NzPSIkMSIKKyAgICBsb2NhbCBzdGF0ZWZpbGU9IiRYQlBTX01BU1RFUkRJUi8ueGJwcy0ke2Ny b3NzfS1kb25lIgogCi0gICAgWyAteiAiJGNyb3NzIiAtbyAiJGNyb3NzIiA9ICIiIF0gJiYgcmV0 dXJuIDAKKyAgICBbIC16ICIkY3Jvc3MiIC1vICIkY3Jvc3MiID0gIiIgLW8gLWYgJHN0YXRlZmls ZSBdICYmIHJldHVybiAwCiAKICAgICAjIENoZWNrIGZvciBjcm9zcy12cGtnLWR1bW15IGF2YWls YWJsZSBmb3IgdGhlIHRhcmdldCBhcmNoLCBvdGhlcndpc2UgYnVpbGQgaXQuCi0gICAgcGtnX2F2 YWlsYWJsZSAnY3Jvc3MtdnBrZy1kdW1teT49MC4zMF8xJyAkY3Jvc3MKKyAgICBwa2dfYXZhaWxh YmxlICdjcm9zcy12cGtnLWR1bW15Pj0wLjMxXzEnICRjcm9zcwogICAgIGlmIFsgJD8gLWVxIDAg XTsgdGhlbgogICAgICAgICAkWEJQU19MSUJFWEVDRElSL2J1aWxkLnNoIGNyb3NzLXZwa2ctZHVt bXkgY3Jvc3MtdnBrZy1kdW1teSBwa2cgJGNyb3NzIGluaXQgfHwgcmV0dXJuICQ/CiAgICAgZmkK QEAgLTQwLDcgKzQxLDcgQEAgcHJlcGFyZV9jcm9zc19zeXNyb290KCkgewogICAgIGVycmxvZz0k KG1rdGVtcCkgfHwgZXhpdCAxCiAgICAgJFhCUFNfSU5TVEFMTF9YQ01EIC1TeWZkIGNyb3NzLXZw a2ctZHVtbXkgJj4kZXJybG9nCiAgICAgcnZhbD0kPwotICAgIGlmIFsgJHJ2YWwgLW5lIDAgLWEg JHJ2YWwgLW5lIDE3IF07IHRoZW4KKyAgICBpZiBbICRydmFsIC1uZSAwIF07IHRoZW4KICAgICAg ICAgbXNnX3JlZCAiZmFpbGVkIHRvIGluc3RhbGwgY3Jvc3MtdnBrZy1kdW1teSAoZXJyb3IgJHJ2 YWwpXG4iCiAgICAgICAgIGNhdCAkZXJybG9nCiAgICAgICAgIHJtIC1mICRlcnJsb2cKQEAgLTQ4 LDExICs0OSwxNSBAQCBwcmVwYXJlX2Nyb3NzX3N5c3Jvb3QoKSB7CiAgICAgZmkKICAgICBybSAt ZiAkZXJybG9nCiAgICAgIyBDcmVhdGUgdG9wIGxldmVsIHN5bWxpbmtzIGluIHN5c3Jvb3QuCi0g ICAgWEJQU19BUkNIPSRYQlBTX1RBUkdFVF9NQUNISU5FIHhicHMtcmVjb25maWd1cmUgLXIgJFhC UFNfQ1JPU1NfQkFTRSAtZiBiYXNlLWRpcmVjdG9yaWVzIGJhc2UtZmlsZXMgJj4vZGV2L251bGwK KyAgICBYQlBTX0FSQ0g9JFhCUFNfVEFSR0VUX01BQ0hJTkUgeGJwcy1yZWNvbmZpZ3VyZSAtciAk WEJQU19DUk9TU19CQVNFIC1mIGJhc2UtZmlsZXMgJj4vZGV2L251bGwKICAgICAjIENyZWF0ZSBh IHN5c3Jvb3QvaW5jbHVkZSBhbmQgc3lzcm9vdC9saWIgc3ltbGluayBqdXN0IGluIGNhc2UuCiAg ICAgbG4gLXMgdXNyL2luY2x1ZGUgJHtYQlBTX0NST1NTX0JBU0V9L2luY2x1ZGUKICAgICBsbiAt cyB1c3IvbGliICR7WEJQU19DUk9TU19CQVNFfS9saWIKIAorICAgIGluc3RhbGxfY3Jvc3NfcGtn ICRjcm9zcyB8fCByZXR1cm4gMQorCisgICAgdG91Y2ggLWYgJHN0YXRlZmlsZQorCiAgICAgcmV0 dXJuIDAKIH0KIApkaWZmIC0tZ2l0IGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvcGtndGFyZ2V0 LnNoIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvcGtndGFyZ2V0LnNoCmluZGV4IGE3YmU2MjQx NzNlLi43ZDNlZDFjNzhmNCAxMDA2NDQKLS0tIGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvcGtn dGFyZ2V0LnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL3BrZ3RhcmdldC5zaApAQCAt NTQsNiArNTQsMTAgQEAgcmVtb3ZlX3BrZ19hdXRvZGVwcygpIHsKICAgICAkWEJQU19SRUNPTkZJ R1VSRV9DTUQgLWEgPj4gJHRtcGxvZ2YgMj4mMQogICAgIGVjaG8geWVzIHwgJFhCUFNfUkVNT1ZF X0NNRCAtUnlvZCA+PiAkdG1wbG9nZiAyPiYxCiAgICAgcnZhbD0kPworICAgIGlmIFsgJHJ2YWwg LWVxIDAgXTsgdGhlbgorICAgICAgICBlY2hvIHllcyB8ICRYQlBTX1JFTU9WRV9DTUQgLVJ5b2Qg Pj4gJHRtcGxvZ2YgMj4mMQorICAgICAgICBydmFsPSQ/CisgICAgZmkKIAogICAgIGlmIFsgJHJ2 YWwgLW5lIDAgXTsgdGhlbgogICAgICAgICBtc2dfcmVkICIke3BrZ3ZlcjoteGJwcy1zcmN9OiBm YWlsZWQgdG8gcmVtb3ZlIGF1dG9kZXBzOiAocmV0dXJuZWQgJHJ2YWwpXG4iCmRpZmYgLS1naXQg YS9jb21tb24veGJwcy1zcmMvc2h1dGlscy9zaG93LnNoIGIvY29tbW9uL3hicHMtc3JjL3NodXRp bHMvc2hvdy5zaAppbmRleCBlMmZjOTU2NTE0ZS4uZDBjMjYwZWQwYWUgMTAwNjQ0Ci0tLSBhL2Nv bW1vbi94YnBzLXNyYy9zaHV0aWxzL3Nob3cuc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL3NodXRp bHMvc2hvdy5zaApAQCAtNjEsNDQgKzYxLDI1IEBAIHNob3dfYXZhaWwoKSB7CiB9CiAKIHNob3df cGtnX2J1aWxkX2RlcGVuZHMoKSB7Ci0gICAgbG9jYWwgZiB4IF9wa2duYW1lIF9zcmNwa2cgX2Rl cCBmb3VuZCByZXN1bHQKKyAgICBsb2NhbCBmIHggX3BrZ25hbWUgX3NyY3BrZyBmb3VuZCByZXN1 bHQKICAgICBsb2NhbCBfZGVwcz0iJDEiCiAKICAgICByZXN1bHQ9JChta3RlbXApIHx8IGV4aXQg MQogCiAgICAgIyBidWlsZCB0aW1lIGRlcHMKICAgICBmb3IgZiBpbiAke19kZXBzfTsgZG8KLSAg ICAgICAgIyBpZ25vcmUgdmlydHVhbCBkZXBzCi0gICAgICAgIGxvY2FsIF9ycGtnPSIke2YlXD8q fSIKLSAgICAgICAgbG9jYWwgX3Zwa2c9IiR7ZiMqXD99IgotCi0gICAgICAgICMgaWdub3JlIHZp cnR1YWwgZGVwZW5kZW5jaWVzCi0gICAgICAgIGlmIFsgIiR7X3Jwa2d9IiAhPSAiJHtfdnBrZ30i IF07IHRoZW4KLSAgICAgICAgICAgIGY9IiR7X3Zwa2d9IgorICAgICAgICBpZiBbICEgLWYgJFhC UFNfU1JDUEtHRElSLyRmL3RlbXBsYXRlIF07IHRoZW4KKyAgICAgICAgICAgIG1zZ19lcnJvciAi JHBrZ3ZlcjogZGVwZW5kZW5jeSAnJGYnIGRvZXMgbm90IGV4aXN0IVxuIgogICAgICAgICBmaQor ICAgICAgICAjIGlnbm9yZSB2aXJ0dWFsIGRlcGVuZGVuY2llcworICAgICAgICBbWyAke2YlXD8q fSAhPSAke2YjKlw/fSBdXSAmJiBmPSR7ZiMqXD99CiAgICAgICAgIHVuc2V0IGZvdW5kCiAgICAg ICAgICMgY2hlY2sgZm9yIHN1YnBrZ3MKICAgICAgICAgZm9yIHggaW4gJHtzdWJwYWNrYWdlc307 IGRvCi0gICAgICAgICAgICBfcGtnbmFtZT0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2dkZXBu YW1lICRmIDI+L2Rldi9udWxsKSIKLSAgICAgICAgICAgIGlmIFsgLXogIiR7X3BrZ25hbWV9IiBd OyB0aGVuCi0gICAgICAgICAgICAgICAgX3BrZ25hbWU9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0 cGtnbmFtZSAkZiAyPi9kZXYvbnVsbCkiCi0gICAgICAgICAgICBmaQotICAgICAgICAgICAgaWYg WyAiJHtfcGtnbmFtZX0iID0gIiR4IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgZm91bmQ9MQot ICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBmaQorICAgICAgICAgICAgW1sgJGYg PT0gJHggXV0gJiYgZm91bmQ9MSAmJiBicmVhawogICAgICAgICBkb25lCi0gICAgICAgIGlmIFsg LW4gIiRmb3VuZCIgXTsgdGhlbgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZmkKLSAg ICAgICAgX3BrZ25hbWU9IiQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtnZGVwbmFtZSAkZiAyPi9k ZXYvbnVsbCkiCi0gICAgICAgIGlmIFsgLXogIiR7X3BrZ25hbWV9IiBdOyB0aGVuCi0gICAgICAg ICAgICBfcGtnbmFtZT0iJCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2duYW1lICRmIDI+L2Rldi9u dWxsKSIKLSAgICAgICAgZmkKLSAgICAgICAgaWYgWyAteiAiJHtfcGtnbmFtZX0iIF07IHRoZW4K LSAgICAgICAgICAgIF9wa2duYW1lPSIkZiIKLSAgICAgICAgZmkKLSAgICAgICAgX3BrZ25hbWU9 JHtfcGtnbmFtZS8tMzJiaXR9CisgICAgICAgIFtbICRmb3VuZCBdXSAmJiBjb250aW51ZQorICAg ICAgICBfcGtnbmFtZT0ke2YvLTMyYml0fQogICAgICAgICBfc3JjcGtnPSQocmVhZGxpbmsgLWYg JHtYQlBTX1NSQ1BLR0RJUn0vJHtfcGtnbmFtZX0pCiAgICAgICAgIF9zcmNwa2c9JHtfc3JjcGtn IyMqL30KICAgICAgICAgZWNobyAiJHtfc3JjcGtnfSIgPj4gJHJlc3VsdApAQCAtMTA4LDE4ICs4 OSwxNSBAQCBzaG93X3BrZ19idWlsZF9kZXBlbmRzKCkgewogfQogCiBzaG93X3BrZ19idWlsZF9k ZXBzKCkgewotICAgIHNldHVwX3BrZ19kZXBlbmRzCi0gICAgc2hvd19wa2dfYnVpbGRfZGVwZW5k cyAiJHtob3N0X2J1aWxkX2RlcGVuZHN9ICR7YnVpbGRfZGVwZW5kc30gJHtydW5fZGVwZW5kc30i CisgICAgc2hvd19wa2dfYnVpbGRfZGVwZW5kcyAiJHtob3N0bWFrZWRlcGVuZHN9ICR7bWFrZWRl cGVuZHN9ICQoc2V0dXBfcGtnX2RlcGVuZHMgJycgMSkiCiB9CiAKIHNob3dfcGtnX2hvc3RtYWtl ZGVwZW5kcygpIHsKLSAgICBzZXR1cF9wa2dfZGVwZW5kcwotICAgIHNob3dfcGtnX2J1aWxkX2Rl cGVuZHMgIiR7aG9zdF9idWlsZF9kZXBlbmRzfSIKKyAgICBzaG93X3BrZ19idWlsZF9kZXBlbmRz ICIke2hvc3RtYWtlZGVwZW5kc30iCiB9CiAKIHNob3dfcGtnX21ha2VkZXBlbmRzKCkgewotICAg IHNldHVwX3BrZ19kZXBlbmRzCi0gICAgc2hvd19wa2dfYnVpbGRfZGVwZW5kcyAiJHtidWlsZF9k ZXBlbmRzfSIKKyAgICBzaG93X3BrZ19idWlsZF9kZXBlbmRzICIke21ha2VkZXBlbmRzfSIKIH0K IAogc2hvd19wa2dfYnVpbGRfb3B0aW9ucygpIHsKZGlmZiAtLWdpdCBhL3hicHMtc3JjIGIveGJw cy1zcmMKaW5kZXggMjNkNjE2NGIxOGEuLmM3YzQxZjQ3MTkzIDEwMDc1NQotLS0gYS94YnBzLXNy YworKysgYi94YnBzLXNyYwpAQCAtMSw4ICsxLDYgQEAKICMhL2Jpbi9iYXNoCiAjIHZpbTogc2V0 IHRzPTQgc3c9NCBldDoKIAotcmVhZG9ubHkgUFJPR05BTUU9IiR7MCMjKi99IgotCiBwcmludF9j cm9zc190YXJnZXRzKCkgewogICAgIGxvY2FsIGYKICAgICBmb3IgZiBpbiBjb21tb24vY3Jvc3Mt cHJvZmlsZXMvKi5zaDsgZG8KQEAgLTIxMCw3ICsyMDgsNyBAQCBfRU9GCiBjaGVja19yZXFob3N0 X3V0aWxzKCkgewogICAgIGxvY2FsIGJyb2tlbgogCi0gICAgWyAtbiAiJElOX0NIUk9PVCIgXSAm JiByZXR1cm4gMAorICAgIFsgIiRJTl9DSFJPT1QiIF0gJiYgcmV0dXJuIDAKIAogICAgIGZvciBm IGluICR7UkVRSE9TVF9VVElMU307IGRvCiAgICAgICAgIGlmICEgY29tbWFuZCAtdiAke2Z9ICY+ L2Rldi9udWxsOyB0aGVuCkBAIC0yMTgsNyArMjE2LDcgQEAgY2hlY2tfcmVxaG9zdF91dGlscygp IHsKICAgICAgICAgICAgIGJyb2tlbj0xCiAgICAgICAgIGZpCiAgICAgZG9uZQotICAgIFsgLW4g IiRicm9rZW4iIF0gJiYgZXhpdCAxCisgICAgWyAiJGJyb2tlbiIgXSAmJiBleGl0IDEKICAgICBb IC16ICIkMSIgXSAmJiByZXR1cm4gMAogCiAgICAgZm9yIGYgaW4gJHtSRVFIT1NUX1VUSUxTX0JP T1RTVFJBUH07IGRvCkBAIC0yMjcsMjQgKzIyNSw3IEBAIGNoZWNrX3JlcWhvc3RfdXRpbHMoKSB7 CiAgICAgICAgICAgICBicm9rZW49MQogICAgICAgICBmaQogICAgIGRvbmUKLSAgICBbIC1uICIk YnJva2VuIiBdICYmIGV4aXQgMQotfQotCi1jaGVja19jb25maWdfdmFycygpIHsKLSAgICBpZiBb IC1zICIkWEJQU19DT05GSUdfRklMRSIgXTsgdGhlbgotICAgICAgICAuICRYQlBTX0NPTkZJR19G SUxFICY+L2Rldi9udWxsCi0gICAgZmkKLSAgICBpZiBbIC16ICIkWEJQU19NQVNURVJESVIiIF07 IHRoZW4KLSAgICAgICAgZXhwb3J0IFhCUFNfTUFTVEVSRElSPSIke1hCUFNfRElTVERJUn0vbWFz dGVyZGlyIgotICAgIGZpCi0gICAgaWYgWyAteiAiJFhCUFNfSE9TVERJUiIgXTsgdGhlbgotICAg ICAgICBleHBvcnQgWEJQU19IT1NURElSPSIke1hCUFNfRElTVERJUn0vaG9zdGRpciIKLSAgICAg ICAgWyAhIC1kICRYQlBTX0hPU1RESVIgXSAmJiBta2RpciAtcCAkWEJQU19IT1NURElSCi0gICAg ZmkKLSAgICBpZiBbIC1kICIkWEJQU19NQVNURVJESVIiIC1hICEgLXcgIiRYQlBTX01BU1RFUkRJ UiIgXTsgdGhlbgotICAgICAgICBlY2hvICJFUlJPUjogbm90IGVub3VnaCBwZXJtcyBmb3IgbWFz dGVyZGlyICRYQlBTX01BU1RFUkRJUi4iCi0gICAgICAgIGV4aXQgMQotICAgIGZpCisgICAgWyAi JGJyb2tlbiIgXSAmJiBleGl0IDEKIH0KIAogY2hlY2tfYnVpbGRfcmVxdWlyZW1lbnRzKCkgewpA QCAtMjY0LDIwICsyNDUsNDIgQEAgY2hlY2tfYnVpbGRfcmVxdWlyZW1lbnRzKCkgewogICAgIGZp CiB9CiAKK2Nocm9vdF9jaGVjaygpIHsKKyAgICBpZiBbIC1mICRYQlBTX01BU1RFUkRJUi8ueGJw c19jaHJvb3RfaW5pdCAtbyAiJFhCUFNfQ0hST09UX0NNRCIgPSAiZXRoZXJlYWwiIF07IHRoZW4K KyAgICAgICAgZXhwb3J0IENIUk9PVF9SRUFEWT0xCisgICAgZmkKK30KKworY2hlY2tfbmF0aXZl X2FyY2goKSB7CisgICAgaWYgWyAiJENIUk9PVF9SRUFEWSIgXTsgdGhlbgorICAgICAgICBpZiBb IC1zICRYQlBTX01BU1RFUkRJUi8ueGJwc19jaHJvb3RfaW5pdCBdOyB0aGVuCisgICAgICAgICAg ICBleHBvcnQgWEJQU19BUkNIPSQoPCRYQlBTX01BU1RFUkRJUi8ueGJwc19jaHJvb3RfaW5pdCkK KyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXhwb3J0IFhCUFNfQVJDSD0kKHhicHMtdWhlbHBl ciBhcmNoKQorICAgICAgICBmaQorICAgIGVsc2UKKyAgICAgICAgTEREPSQobGRkIC0tdmVyc2lv biAyPiYxfGhlYWQgLTEpCisgICAgICAgIGlmIFtbICRMREQgPT0gKm11c2wqIF1dOyB0aGVuCisg ICAgICAgICAgICBleHBvcnQgWEJQU19BUkNIPSR7WEJQU19NQUNISU5FJS1tdXNsfS1tdXNsCisg ICAgICAgIGVsc2UKKyAgICAgICAgICAgICMgWEJQU19BUkNIID09ICQodW5hbWUgLW0pCisgICAg ICAgICAgICBleHBvcnQgWEJQU19BUkNIPSQodW5hbWUgLW0pCisgICAgICAgIGZpCisgICAgZmkK K30KKwogaW5zdGFsbF9iYm9vdHN0cmFwKCkgewotICAgIFsgLW4gIiRDSFJPT1RfUkVBRFkiIF0g JiYgcmV0dXJuCisgICAgWyAiJENIUk9PVF9SRUFEWSIgXSAmJiByZXR1cm4KICAgICBpZiBbICIk MSIgPSAiYm9vdHN0cmFwIiBdOyB0aGVuCiAgICAgICAgIHVuc2V0IFhCUFNfVEFSR0VUX1BLRyBY QlBTX0lOU1RBTExfQVJHUwogICAgIGVsc2UKICAgICAgICAgWEJQU19UQVJHRVRfUEtHPSIkMSIK ICAgICBmaQotICAgIGlmIFsgLW4gIiRYQlBTX1NLSVBfUkVNT1RFUkVQT1MiIF07IHRoZW4KLSAg ICAgICAgdW5zZXQgWEJQU19JTlNUQUxMX0FSR1MKLSAgICBmaQorICAgIFsgIiRYQlBTX1NLSVBf UkVNT1RFUkVQT1MiIF0gJiYgdW5zZXQgWEJQU19JTlNUQUxMX0FSR1MKICAgICAjIGJpbmFyeSBi b290c3RyYXAKICAgICBtc2dfbm9ybWFsICJJbnN0YWxsaW5nIGJvb3RzdHJhcCBmcm9tIGJpbmFy eSBwYWNrYWdlIHJlcG9zaXRvcmllcy4uLlxuIgogICAgICMgWEJQU19UQVJHRVRfUEtHID09IGFy Y2gKLSAgICBpZiBbIC1uICIkWEJQU19UQVJHRVRfUEtHIiBdOyB0aGVuCisgICAgaWYgWyAiJFhC UFNfVEFSR0VUX1BLRyIgXTsgdGhlbgogICAgICAgICBfYm9vdHN0cmFwX2FyY2g9ImVudiBYQlBT X1RBUkdFVF9BUkNIPSRYQlBTX1RBUkdFVF9QS0ciCiAgICAgICAgIGlmIFsgIiR7WEJQU19UQVJH RVRfUEtHfSIgIT0gIiR7WEJQU19UQVJHRVRfUEtHIyotfSIgXTsgdGhlbgogICAgICAgICAgICAg X3N1YmFyY2g9Ii0ke1hCUFNfVEFSR0VUX1BLRyMqLX0iCkBAIC0zMDgsMTcgKzMxMSwxNSBAQCBy ZWNvbmZpZ3VyZV9ib290c3RyYXBfcGtncygpIHsKICAgICAjIFJlY29uZmlndXJlIGNhLWNlcnRp ZmljYXRlcy4KICAgICBtc2dfbm9ybWFsICJSZWNvbmZpZ3VyaW5nIGJvb3RzdHJhcCBwYWNrYWdl cy4uLlxuIgogICAgIGZvciBmIGluICR7cGtnc307IGRvCi0gICAgICAgIGlmIHhicHMtcXVlcnkg JGYgJj4vZGV2L251bGw7IHRoZW4KLSAgICAgICAgICAgIHhicHMtcmVjb25maWd1cmUgLWYgJGYK KyAgICAgICAgaWYgeGJwcy1xdWVyeSAtciAkWEJQU19NQVNURVJESVIgJGYgJj4vZGV2L251bGw7 IHRoZW4KKyAgICAgICAgICAgIHhicHMtcmVjb25maWd1cmUgLXIgJFhCUFNfTUFTVEVSRElSIC1m ICRmCiAgICAgICAgIGZpCiAgICAgZG9uZQogICAgIHRvdWNoIC1mICRzdGF0ZWZpbGUKIH0KIAog Ym9vdHN0cmFwX3VwZGF0ZSgpIHsKLSAgICBpZiBbIC16ICIkQ0hST09UX1JFQURZIiBdOyB0aGVu Ci0gICAgICAgIHJldHVybgotICAgIGZpCisgICAgWyAteiAiJENIUk9PVF9SRUFEWSIgXSAmJiBy ZXR1cm4KICAgICByZW1vdmVfcGtnX2F1dG9kZXBzCiAgICAgbXNnX25vcm1hbCAieGJwcy1zcmM6 IGNsZWFuaW5nIHVwIG1hc3RlcmRpci4uLlxuIgogICAgIHJtIC1yZiAkWEJQU19NQVNURVJESVIv YnVpbGRkaXIgJFhCUFNfTUFTVEVSRElSL2Rlc3RkaXIKQEAgLTM0Nyw3ICszNDgsNyBAQCBtYXN0 ZXJkaXJfemFwKCkgewogCiBleGl0X2Z1bmMoKSB7CiAgICAgd2FpdAotICAgIGlmIFsgLW4gIiRz b3VyY2Vwa2ciIF07IHRoZW4KKyAgICBpZiBbICIkc291cmNlcGtnIiBdOyB0aGVuCiAgICAgICAg IHJlbW92ZV9wa2cgJFhCUFNfQ1JPU1NfQlVJTEQKICAgICBmaQogICAgIGlmIFsgLXogIiRJTl9D SFJPT1QiIF07IHRoZW4KQEAgLTM5MCwxNCArMzkxLDE3IEBAIHNldHVwX2Rpc3RmaWxlc19taXJy b3IoKSB7CiAgICAgZG9uZQogfQogCi1yZWFkb25seSBYQlBTX1ZFUlNJT05fUkVRPSIwLjU1Igot cmVhZG9ubHkgWEJQU19WRVJTSU9OPSQoeGJwcy11aGVscGVyIC1WfGF3ayAne3ByaW50ICQyfScp Ci1yZWFkb25seSBYQlBTX1NSQ19WRVJTSU9OPSIxMTMiCi1leHBvcnQgWEJQU19NQUNISU5FPSQo eGJwcy11aGVscGVyIGFyY2gpCi0KICMKICMgbWFpbigpCiAjCityZWFkb25seSBQUk9HTkFNRT0i JHswIyMqL30iCityZWFkb25seSBYQlBTX1ZFUlNJT05fUkVRPSIwLjU1IgorWEJQU19WRVJTSU9O PSQoeGJwcy11aGVscGVyIC1WKQorWEJQU19WRVJTSU9OPSR7WEJQU19WRVJTSU9OJSVBUEkqfQor WEJQU19WRVJTSU9OPSR7WEJQU19WRVJTSU9OIyMqOn0KK3JlYWRvbmx5IFhCUFNfU1JDX1ZFUlNJ T049IjExMyIKK2V4cG9ydCBYQlBTX01BQ0hJTkU9JCh4YnBzLXVoZWxwZXIgLUMgL2Rldi9udWxs IGFyY2gpCisKIFhCUFNfT1BUSU9OUz0KIFhCUFNfT1BUU1RSSU5HPSIxYTpDRWZnR2hIOmlJajpM bTpObzpxUXI6dFYiCiAKQEAgLTQwNywyNiArNDExLDI2IEBAIGV2YWwgc2V0IC0tICQoZ2V0b3B0 ICIkWEJQU19PUFRTVFJJTkciICIkQCIpOwogd2hpbGUgZ2V0b3B0cyAiJFhCUFNfT1BUU1RSSU5H IiBvcHQ7IGRvCiAgICAgY2FzZSAkb3B0IGluCiAgICAgICAgIDEpIGV4cG9ydCBYQlBTX0JVSUxE X09OTFlfT05FX1BLRz15ZXM7IFhCUFNfT1BUSU9OUys9IiAtMSI7OwotICAgICAgICBhKSByZWFk b25seSBYQlBTX0NST1NTX0JVSUxEPSIkT1BUQVJHIjsgWEJQU19PUFRJT05TKz0iIC1hICRPUFRB UkciOzsKLSAgICAgICAgQykgcmVhZG9ubHkgWEJQU19LRUVQX0FMTD0xOyBYQlBTX09QVElPTlMr PSIgLUMiOzsKKyAgICAgICAgYSkgZXhwb3J0IFhCUFNfQ1JPU1NfQlVJTEQ9IiRPUFRBUkciOyBY QlBTX09QVElPTlMrPSIgLWEgJE9QVEFSRyI7OworICAgICAgICBDKSBleHBvcnQgWEJQU19LRUVQ X0FMTD0xOyBYQlBTX09QVElPTlMrPSIgLUMiOzsKICAgICAgICAgRSkgZXhwb3J0IFhCUFNfQklO UEtHX0VYSVNUUz0xOyBYQlBTX09QVElPTlMrPSIgLUUiOzsKLSAgICAgICAgZikgcmVhZG9ubHkg WEJQU19CVUlMRF9GT1JDRU1PREU9MTsgWEJQU19PUFRJT05TKz0iIC1mIjs7Ci0gICAgICAgIEcp IHJlYWRvbmx5IFhCUFNfVVNFX0dJVF9SRVZTPTE7IFhCUFNfT1BUSU9OUys9IiAtRyI7OwotICAg ICAgICBnKSByZWFkb25seSBYQlBTX0RFQlVHX1BLR1M9MTsgWEJQU19PUFRJT05TKz0iIC1nIjs7 Ci0gICAgICAgIEgpIHJlYWRvbmx5IFhCUFNfSE9TVERJUj0iJChyZWFkbGluayAtZiAkT1BUQVJH IDI+L2Rldi9udWxsKSI7IFhCUFNfT1BUSU9OUys9IiAtSCAkWEJQU19IT1NURElSIjs7CisgICAg ICAgIGYpIGV4cG9ydCBYQlBTX0JVSUxEX0ZPUkNFTU9ERT0xOyBYQlBTX09QVElPTlMrPSIgLWYi OzsKKyAgICAgICAgRykgZXhwb3J0IFhCUFNfVVNFX0dJVF9SRVZTPTE7IFhCUFNfT1BUSU9OUys9 IiAtRyI7OworICAgICAgICBnKSBleHBvcnQgWEJQU19ERUJVR19QS0dTPTE7IFhCUFNfT1BUSU9O Uys9IiAtZyI7OworICAgICAgICBIKSBleHBvcnQgWEJQU19IT1NURElSPSIkKHJlYWRsaW5rIC1m ICRPUFRBUkcgMj4vZGV2L251bGwpIjsgWEJQU19PUFRJT05TKz0iIC1IICRYQlBTX0hPU1RESVIi OzsKICAgICAgICAgaCkgdXNhZ2UgJiYgZXhpdCAwOzsKICAgICAgICAgaSkgZXhwb3J0IFhCUFNf SU5GT1JNQVRJVkVfUlVOPTE7IFhCUFNfT1BUSU9OUys9IiAtaSI7OwotICAgICAgICBJKSByZWFk b25seSBYQlBTX1NLSVBfREVQUz0xOyBYQlBTX09QVElPTlMrPSIgLUkiOzsKKyAgICAgICAgSSkg ZXhwb3J0IFhCUFNfU0tJUF9ERVBTPTE7IFhCUFNfT1BUSU9OUys9IiAtSSI7OwogICAgICAgICBq KSBleHBvcnQgWEJQU19NQUtFSk9CUz0iJE9QVEFSRyI7IFhCUFNfT1BUSU9OUys9IiAtaiAkT1BU QVJHIjs7CiAgICAgICAgIEwpIGV4cG9ydCBOT0NPTE9SUz0xOyBYQlBTX09QVElPTlMrPSIgLUwi OzsKLSAgICAgICAgbSkgcmVhZG9ubHkgWEJQU19NQVNURVJESVI9JChyZWFkbGluayAtZiAkT1BU QVJHIDI+L2Rldi9udWxsKTsgWEJQU19PUFRJT05TKz0iIC1tICRYQlBTX01BU1RFUkRJUiI7Owot ICAgICAgICBOKSByZWFkb25seSBYQlBTX1NLSVBfUkVNT1RFUkVQT1M9MTsgWEJQU19PUFRJT05T Kz0iIC1OIjs7Ci0gICAgICAgIG8pIHJlYWRvbmx5IFhCUFNfUEtHX09QVElPTlM9IiRPUFRBUkci OyBYQlBTX09QVElPTlMrPSIgLW8gJE9QVEFSRyI7OworICAgICAgICBtKSBleHBvcnQgWEJQU19N QVNURVJESVI9JChyZWFkbGluayAtZiAkT1BUQVJHIDI+L2Rldi9udWxsKTsgWEJQU19PUFRJT05T Kz0iIC1tICRYQlBTX01BU1RFUkRJUiI7OworICAgICAgICBOKSBleHBvcnQgWEJQU19TS0lQX1JF TU9URVJFUE9TPTE7IFhCUFNfT1BUSU9OUys9IiAtTiI7OworICAgICAgICBvKSBleHBvcnQgWEJQ U19QS0dfT1BUSU9OUz0iJE9QVEFSRyI7IFhCUFNfT1BUSU9OUys9IiAtbyAkT1BUQVJHIjs7CiAg ICAgICAgIHEpIGV4cG9ydCBYQlBTX1FVSUVUPTE7IFhCUFNfT1BUSU9OUys9IiAtcSI7OwogICAg ICAgICBRKSBleHBvcnQgWEJQU19DSEVDS19QS0dTPTE7IFhCUFNfT1BUSU9OUys9IiAtUSI7Owot ICAgICAgICByKSByZWFkb25seSBYQlBTX0FMVF9SRVBPU0lUT1JZPSIkT1BUQVJHIjsgWEJQU19P UFRJT05TKz0iIC1yICRPUFRBUkciOzsKKyAgICAgICAgcikgZXhwb3J0IFhCUFNfQUxUX1JFUE9T SVRPUlk9IiRPUFRBUkciOyBYQlBTX09QVElPTlMrPSIgLXIgJE9QVEFSRyI7OwogICAgICAgICB0 KSBleHBvcnQgWEJQU19URU1QX01BU1RFUkRJUj0xOyBYQlBTX09QVElPTlMrPSIgLXQgLUMiOzsK LSAgICAgICAgVikgZWNobyAkWEJQU19TUkNfVkVSU0lPTiAmJiBleGl0IDA7OworICAgICAgICBW KSBlY2hvICJ4YnBzLXNyYy0kWEJQU19TUkNfVkVSU0lPTiAkKHhicHMtdWhlbHBlciAtVikiICYm IGV4aXQgMDs7CiAgICAgICAgIC0tKSBzaGlmdDsgYnJlYWs7OwogICAgIGVzYWMKIGRvbmUKQEAg LTQzNywxMCArNDQxLDExIEBAIHNoaWZ0ICQoKCRPUFRJTkQgLSAxKSkKICMgQ2hlY2sgaWYgc3Rk b3V0IGlzIGEgdHR5OyBpZiBmYWxzZSBkaXNhYmxlIGNvbG9ycy4KIHRlc3QgLXQgMSB8fCBleHBv cnQgTk9DT0xPUlM9MQogIyBodHRwOi8vbm8tY29sb3Iub3JnCi1pZiBbIC1uICIke05PX0NPTE9S K3h9IiBdOyB0aGVuCitpZiBbICIke05PX0NPTE9SK3h9IiBdOyB0aGVuCiAgICAgZXhwb3J0IE5P Q09MT1JTPTEKIGZpCiAKKyMgc2FuZSB1bWFzawogdW1hc2sgMDIyCiAKICMKQEAgLTQ1NiwyMiAr NDYxLDEzIEBAIHJlYWRvbmx5IFJFUUhPU1RfVVRJTFM9InhicHMtaW5zdGFsbCB4YnBzLXF1ZXJ5 IHhicHMtcmluZGV4IHhicHMtdWhlbHBlciBcCiAKIGNoZWNrX3JlcWhvc3RfdXRpbHMKIAotIyBU cnkgdXNpbmcgY2hyb290LWdpdCB0aGVuIGdpdCBmcm9tIHRoZSBob3N0IHN5c3RlbQotaWYgY29t bWFuZCAtdiBjaHJvb3QtZ2l0ICY+L2Rldi9udWxsOyB0aGVuCi0JWEJQU19HSVRfQ01EPSQoY29t bWFuZCAtdiBjaHJvb3QtZ2l0KQotZWxpZiBjb21tYW5kIC12IGdpdCAmPi9kZXYvbnVsbDsgdGhl bgotCVhCUFNfR0lUX0NNRD0kKGNvbW1hbmQgLXYgZ2l0KQotZWxzZQotICAgIGVjaG8gIm5laXRo ZXIgY2hyb290LWdpdCBvciBnaXQgYXJlIGF2YWlsYWJsZSBpbiB5b3VyIHN5c3RlbSEiCi0gICAg ZXhpdCAxCi1maQotCi1yZWFkb25seSBYQlBTX0dJVF9DTUQKLQotaWYgWyAtbiAiJElOX0NIUk9P VCIgXTsgdGhlbgorIworIyBTZXQgWEJQU19DT05GSUdfRklMRSwgWEJQU19ESVNURElSLCBYQlBT X01BU1RFUkRJUgorIyBhbmQgWEJQU19IT1NURElSLgorIworaWYgWyAiJElOX0NIUk9PVCIgXTsg dGhlbgogICAgIHJlYWRvbmx5IFhCUFNfQ09ORklHX0ZJTEU9L2V0Yy94YnBzL3hicHMtc3JjLmNv bmYKICAgICByZWFkb25seSBYQlBTX0RJU1RESVI9L3ZvaWQtcGFja2FnZXMKLSAgICAjIG5lZWRl ZCBiZWZvcmUgY2FsbCB0byBjaGVja19jb25maWdfdmFycwogICAgIHJlYWRvbmx5IFhCUFNfTUFT VEVSRElSPS8KICAgICByZWFkb25seSBYQlBTX0hPU1RESVI9L2hvc3QKIGVsc2UKQEAgLTQ5MSwx OCArNDg3LDM3IEBAIGVsc2UKICAgICBlbGlmIFsgLXMgJEhPTUUvLnhicHMtc3JjLmNvbmYgXTsg dGhlbgogICAgICAgICAjIC4uLiBmYWxsYmFjayB0byB+Ly54YnBzLXNyYy5jb25mIG90aGVyd2lz ZS4KICAgICAgICAgcmVhZG9ubHkgWEJQU19DT05GSUdfRklMRT0kSE9NRS8ueGJwcy1zcmMuY29u ZgotICAgICAgICAuICRYQlBTX0NPTkZJR19GSUxFCiAgICAgZmkKIGZpCisjIFJlYWQgc2V0dGlu Z3MgZnJvbSBjb25maWcgZmlsZQorWyAtcyAiJFhCUFNfQ09ORklHX0ZJTEUiIF0gJiYgLiAkWEJQ U19DT05GSUdfRklMRSAmPi9kZXYvbnVsbAogCi0jCi0jIENoZWNrIGNvbmZpZ3VyYXRpb24gdmFy cyBiZWZvcmUgYW55dGluZyBlbHNlLCBhbmQgc2V0IGRlZmF1bHRzIHZhcnMuCi0jCi1jaGVja19j b25maWdfdmFycworIyBpZiBYQlBTX01BU1RFUkRJUiB1bnNldCwgZGVmYXVsdHMgdG8gJFhCUFNf RElTVERJUi9tYXN0ZXJkaXIuCis6ICR7WEJQU19NQVNURVJESVI6PSRYQlBTX0RJU1RESVIvbWFz dGVyZGlyfQorWyAhIC1kICRYQlBTX01BU1RFUkRJUiBdICYmICBta2RpciAtcCAkWEJQU19NQVNU RVJESVIKIAotZm9yIGYgaW4gJFhCUFNfRElTVERJUi9jb21tb24veGJwcy1zcmMvc2h1dGlscy8q LnNoOyBkbwotICAgIFsgLXIgJGYgXSAmJiAuICRmCi1kb25lCisjIGlmIFhCUFNfSE9TVERJUiB1 bnNldCwgZGVmYXVsdHMgdG8gJFhCUFNfRElTVERJUi9ob3N0ZGlyLgorOiAke1hCUFNfSE9TVERJ Ujo9JFhCUFNfRElTVERJUi9ob3N0ZGlyfQorWyAhIC1kICRYQlBTX0hPU1RESVIgXSAmJiBta2Rp ciAtcCAkWEJQU19IT1NURElSCisKK2lmIFsgLWQgIiRYQlBTX01BU1RFUkRJUiIgLWEgISAtdyAi JFhCUFNfTUFTVEVSRElSIiBdOyB0aGVuCisgICAgZWNobyAiRVJST1I6IGNhbid0IHdyaXRlIHRv IG1hc3RlcmRpciAkWEJQU19NQVNURVJESVIuIgorICAgIGV4aXQgMQorZWxpZiBbIC1kICIkWEJQ U19IT1NURElSIiAtYSAhIC13ICIkWEJQU19IT1NURElSIiBdOyB0aGVuCisgICAgZWNobyAiRVJS T1I6IGNhbid0IHdyaXRlIHRvIGhvc3RkaXI6ICRYQlBTX0hPU1RESVIuIgorICAgIGV4aXQgMQor ZmkKKworIyBUcnkgdXNpbmcgY2hyb290LWdpdCB0aGVuIGdpdCBmcm9tIHRoZSBob3N0IHN5c3Rl bQoraWYgY29tbWFuZCAtdiBjaHJvb3QtZ2l0ICY+L2Rldi9udWxsOyB0aGVuCisgICAgWEJQU19H SVRfQ01EPSQoY29tbWFuZCAtdiBjaHJvb3QtZ2l0KQorZWxpZiBjb21tYW5kIC12IGdpdCAmPi9k ZXYvbnVsbDsgdGhlbgorICAgIFhCUFNfR0lUX0NNRD0kKGNvbW1hbmQgLXYgZ2l0KQorZWxzZQor ICAgIGVjaG8gIm5laXRoZXIgY2hyb290LWdpdCBvciBnaXQgYXJlIGF2YWlsYWJsZSBpbiB5b3Vy IHN5c3RlbSEiCisgICAgZXhpdCAxCitmaQorcmVhZG9ubHkgWEJQU19HSVRfQ01ECiAKIGlmIFsg LW4gIiRYQlBTX0hPU1RESVIiIF07IHRoZW4KICAgICBleHBvcnQgWEJQU19SRVBPU0lUT1JZPSRY QlBTX0hPU1RESVIvYmlucGtncwpAQCAtNTE2LDgwICs1MzEsNjIgQEAgZmkKIGlmIFsgLXogIiRY QlBTX0FMVF9SRVBPU0lUT1JZIiBdOyB0aGVuCiAgICAgcHVzaGQgIiRQV0QiICY+L2Rldi9udWxs CiAgICAgY2QgJFhCUFNfRElTVERJUgotICAgIGlmIFsgLW4gIiRJTl9DSFJPT1QiIF07IHRoZW4K LSAgICAgICAgX2dpdGJyYW5jaD0iJChjaHJvb3QtZ2l0IHN5bWJvbGljLXJlZiAtLXNob3J0IEhF QUQgMj4vZGV2L251bGwpIgotICAgIGVsc2UKLSAgICAgICAgX2dpdGJyYW5jaD0iJCgkWEJQU19H SVRfQ01EIHN5bWJvbGljLXJlZiAtLXNob3J0IEhFQUQgMj4vZGV2L251bGwpIgotICAgIGZpCi0g ICAgaWYgWyAtbiAiJHtfZ2l0YnJhbmNofSIgLWEgIiR7X2dpdGJyYW5jaH0iICE9ICJtYXN0ZXIi IF07IHRoZW4KKyAgICBfZ2l0YnJhbmNoPSIkKCRYQlBTX0dJVF9DTUQgc3ltYm9saWMtcmVmIC0t c2hvcnQgSEVBRCAyPi9kZXYvbnVsbCkiCisgICAgaWYgWyAiJHtfZ2l0YnJhbmNofSIgLWEgIiR7 X2dpdGJyYW5jaH0iICE9ICJtYXN0ZXIiIF07IHRoZW4KICAgICAgICAgZXhwb3J0IFhCUFNfQUxU X1JFUE9TSVRPUlk9IiR7X2dpdGJyYW5jaH0iCiAgICAgICAgIGV4cG9ydCBYQlBTX1JFUE9TSVRP Ulk9IiR7WEJQU19SRVBPU0lUT1JZfS8ke19naXRicmFuY2h9IgotICAgICAgICBpZiBbIC16ICIk SU5fQ0hST09UIiBdOyB0aGVuCi0gICAgICAgICAgICBtc2dfbm9ybWFsICJVc2luZyBcYCRYQlBT X1JFUE9TSVRPUllcJyBhcyBsb2NhbCByZXBvc2l0b3J5LlxuIgotICAgICAgICBmaQogICAgICBm aQogICAgICBwb3BkICY+L2Rldi9udWxsCiBlbHNlCiAgICAgZXhwb3J0IFhCUFNfUkVQT1NJVE9S WT0iJHtYQlBTX1JFUE9TSVRPUll9LyR7WEJQU19BTFRfUkVQT1NJVE9SWX0iCi0gICAgaWYgWyAt eiAiJElOX0NIUk9PVCIgXTsgdGhlbgotICAgICAgICBtc2dfbm9ybWFsICJVc2luZyBcYCRYQlBT X1JFUE9TSVRPUllcJyBhcyBsb2NhbCByZXBvc2l0b3J5LlxuIgotICAgIGZpCiBmaQogCi1pZiBb IC1uICIkSU5fQ0hST09UIiBdOyB0aGVuCityZWFkb25seSBYQlBTX1NSQ1BLR0RJUj0kWEJQU19E SVNURElSL3NyY3BrZ3MKK3JlYWRvbmx5IFhCUFNfQ09NTU9ORElSPSRYQlBTX0RJU1RESVIvY29t bW9uCityZWFkb25seSBYQlBTX1NIVVRJTFNESVI9JFhCUFNfQ09NTU9ORElSL3hicHMtc3JjL3No dXRpbHMKK3JlYWRvbmx5IFhCUFNfVFJJR0dFUlNESVI9JFhCUFNfU1JDUEtHRElSL3hicHMtdHJp Z2dlcnMvZmlsZXMKK3JlYWRvbmx5IFhCUFNfQ1JPU1NQRkRJUj0kWEJQU19DT01NT05ESVIvY3Jv c3MtcHJvZmlsZXMKK3JlYWRvbmx5IFhCUFNfQlVJTERTVFlMRURJUj0kWEJQU19DT01NT05ESVIv YnVpbGQtc3R5bGUKK3JlYWRvbmx5IFhCUFNfTElCRVhFQ0RJUj0kWEJQU19DT01NT05ESVIveGJw cy1zcmMvbGliZXhlYworcmVhZG9ubHkgWEJQU19CVUlMREhFTFBFUkRJUj0kWEJQU19DT01NT05E SVIvYnVpbGQtaGVscGVyCisKK2lmIFsgIiRJTl9DSFJPT1QiIF07IHRoZW4KICAgICByZWFkb25s eSBYQlBTX1VIRUxQRVJfQ01EPSJ4YnBzLXVoZWxwZXIiCi0gICAgcmVhZG9ubHkgWEJQU19JTlNU QUxMX0NNRD0ieGJwcy1pbnN0YWxsIgotICAgIHJlYWRvbmx5IFhCUFNfUVVFUllfQ01EPSJ4YnBz LXF1ZXJ5IgotICAgIHJlYWRvbmx5IFhCUFNfUklOREVYX0NNRD0ieGJwcy1yaW5kZXgiCisgICAg cmVhZG9ubHkgWEJQU19JTlNUQUxMX0NNRD0ieGJwcy1pbnN0YWxsIC0tcmVwb3NpdG9yeT0kWEJQ U19SRVBPU0lUT1JZIgorICAgIHJlYWRvbmx5IFhCUFNfUVVFUllfQ01EPSJ4YnBzLXF1ZXJ5IC0t cmVwb3NpdG9yeT0kWEJQU19SRVBPU0lUT1JZIgogICAgIHJlYWRvbmx5IFhCUFNfUkVDT05GSUdV UkVfQ01EPSJ4YnBzLXJlY29uZmlndXJlIgogICAgIHJlYWRvbmx5IFhCUFNfUkVNT1ZFX0NNRD0i eGJwcy1yZW1vdmUiCi0gICAgcmVhZG9ubHkgWEJQU19TUkNQS0dESVI9L3ZvaWQtcGFja2FnZXMv c3JjcGtncwotICAgIHJlYWRvbmx5IFhCUFNfQ09NTU9ORElSPS92b2lkLXBhY2thZ2VzL2NvbW1v bgorICAgIHJlYWRvbmx5IFhCUFNfQ0hFQ0tWRVJTX0NNRD0ieGJwcy1jaGVja3ZlcnMgLS1yZXBv c2l0b3J5PSRYQlBTX1JFUE9TSVRPUlkiCiAgICAgcmVhZG9ubHkgWEJQU19ERVNURElSPS9kZXN0 ZGlyCiAgICAgcmVhZG9ubHkgWEJQU19CVUlMRERJUj0vYnVpbGRkaXIKLSAgICByZWFkb25seSBY QlBTX1NIVVRJTFNESVI9JFhCUFNfQ09NTU9ORElSL3hicHMtc3JjL3NodXRpbHMKLSAgICByZWFk b25seSBYQlBTX1RSSUdHRVJTRElSPSRYQlBTX1NSQ1BLR0RJUi94YnBzLXRyaWdnZXJzL2ZpbGVz Ci0gICAgcmVhZG9ubHkgWEJQU19DUk9TU1BGRElSPSRYQlBTX0NPTU1PTkRJUi9jcm9zcy1wcm9m aWxlcwotICAgIHJlYWRvbmx5IFhCUFNfQlVJTERTVFlMRURJUj0kWEJQU19DT01NT05ESVIvYnVp bGQtc3R5bGUKLSAgICByZWFkb25seSBYQlBTX0xJQkVYRUNESVI9JFhCUFNfQ09NTU9ORElSL3hi cHMtc3JjL2xpYmV4ZWMKLSAgICByZWFkb25seSBYQlBTX0JVSUxESEVMUEVSRElSPSRYQlBTX0NP TU1PTkRJUi9idWlsZC1oZWxwZXIKIGVsc2UKICAgICByZWFkb25seSBYQlBTX1VIRUxQRVJfQ01E PSJ4YnBzLXVoZWxwZXIgLXIgJFhCUFNfTUFTVEVSRElSIgotICAgIHJlYWRvbmx5IFhCUFNfSU5T VEFMTF9DTUQ9InhicHMtaW5zdGFsbCAtQyAvZGV2L251bGwgLWMgJFhCUFNfSE9TVERJUi9yZXBv Y2FjaGUgLS1yZXBvc2l0b3J5PSRYQlBTX1JFUE9TSVRPUlkgLXIgJFhCUFNfTUFTVEVSRElSIgot ICAgIHJlYWRvbmx5IFhCUFNfUVVFUllfQ01EPSJ4YnBzLXF1ZXJ5IC1DIC9kZXYvbnVsbCAtYyAk WEJQU19IT1NURElSL3JlcG9jYWNoZSAtaSAtLXJlcG9zaXRvcnk9JFhCUFNfUkVQT1NJVE9SWSAt ciAkWEJQU19NQVNURVJESVIiCi0gICAgcmVhZG9ubHkgWEJQU19SSU5ERVhfQ01EPSJ4YnBzLXJp bmRleCIKKyAgICByZWFkb25seSBYQlBTX0lOU1RBTExfQ01EPSJ4YnBzLWluc3RhbGwgLWMgJFhC UFNfSE9TVERJUi9yZXBvY2FjaGUgLS1yZXBvc2l0b3J5PSRYQlBTX1JFUE9TSVRPUlkgLXIgJFhC UFNfTUFTVEVSRElSIgorICAgIHJlYWRvbmx5IFhCUFNfUVVFUllfQ01EPSJ4YnBzLXF1ZXJ5IC1j ICRYQlBTX0hPU1RESVIvcmVwb2NhY2hlIC0tcmVwb3NpdG9yeT0kWEJQU19SRVBPU0lUT1JZIC1y ICRYQlBTX01BU1RFUkRJUiIKICAgICByZWFkb25seSBYQlBTX1JFQ09ORklHVVJFX0NNRD0ieGJw cy1yZWNvbmZpZ3VyZSAtciAkWEJQU19NQVNURVJESVIiCiAgICAgcmVhZG9ubHkgWEJQU19SRU1P VkVfQ01EPSJ4YnBzLXJlbW92ZSAtciAkWEJQU19NQVNURVJESVIiCi0gICAgcmVhZG9ubHkgWEJQ U19TUkNQS0dESVI9JFhCUFNfRElTVERJUi9zcmNwa2dzCi0gICAgcmVhZG9ubHkgWEJQU19DT01N T05ESVI9JFhCUFNfRElTVERJUi9jb21tb24KLSAgICByZWFkb25seSBYQlBTX1NIVVRJTFNESVI9 JFhCUFNfQ09NTU9ORElSL3hicHMtc3JjL3NodXRpbHMKKyAgICByZWFkb25seSBYQlBTX0NIRUNL VkVSU19DTUQ9InhicHMtY2hlY2t2ZXJzIC0tcmVwb3NpdG9yeT0kWEJQU19SRVBPU0lUT1JZIgog ICAgIHJlYWRvbmx5IFhCUFNfREVTVERJUj0kWEJQU19NQVNURVJESVIvZGVzdGRpcgogICAgIHJl YWRvbmx5IFhCUFNfQlVJTERESVI9JFhCUFNfTUFTVEVSRElSL2J1aWxkZGlyCi0gICAgcmVhZG9u bHkgWEJQU19UUklHR0VSU0RJUj0kWEJQU19TUkNQS0dESVIveGJwcy10cmlnZ2Vycy9maWxlcwot ICAgIHJlYWRvbmx5IFhCUFNfQ1JPU1NQRkRJUj0kWEJQU19DT01NT05ESVIvY3Jvc3MtcHJvZmls ZXMKLSAgICByZWFkb25seSBYQlBTX0JVSUxEU1RZTEVESVI9JFhCUFNfQ09NTU9ORElSL2J1aWxk LXN0eWxlCi0gICAgcmVhZG9ubHkgWEJQU19MSUJFWEVDRElSPSRYQlBTX0NPTU1PTkRJUi94YnBz LXNyYy9saWJleGVjCi0gICAgcmVhZG9ubHkgWEJQU19CVUlMREhFTFBFUkRJUj0kWEJQU19DT01N T05ESVIvYnVpbGQtaGVscGVyCiBmaQorcmVhZG9ubHkgWEJQU19SSU5ERVhfQ01EPSJ4YnBzLXJp bmRleCIKIHJlYWRvbmx5IFhCUFNfRkVUQ0hfQ01EPSJ4YnBzLWZldGNoIgogcmVhZG9ubHkgWEJQ U19ESUdFU1RfQ01EPSJ4YnBzLWRpZ2VzdCIKIHJlYWRvbmx5IFhCUFNfQ01QVkVSX0NNRD0ieGJw cy11aGVscGVyIGNtcHZlciIKIAogcmVhZG9ubHkgWEJQU19UQVJHRVQ9IiQxIgotaWYgWyAtbiAi JDIiIF07IHRoZW4KK2lmIFsgIiQyIiBdOyB0aGVuCiAgICAgWEJQU19UQVJHRVRfUEtHPSIkezIj IyovfSIKIGZpCiAKLWNocm9vdF9jaGVjaygpIHsKLSAgICBpZiBbIC1mICRYQlBTX01BU1RFUkRJ Ui8ueGJwc19jaHJvb3RfaW5pdCAtbyAiJFhCUFNfQ0hST09UX0NNRCIgPSAiZXRoZXJlYWwiIF07 IHRoZW4KLSAgICAgICAgZXhwb3J0IENIUk9PVF9SRUFEWT0xCi0gICAgZmkKLX0KLQorIyBDaGVj ayBmb3IgQ0hST09UX1JFQURZIGFuZCBzZXQgdXAgWEJQU19BUkNIIGVudmlyb25tZW50IHZhciBm b3IgeGJwcy4KIGNocm9vdF9jaGVjaworY2hlY2tfbmF0aXZlX2FyY2gKIAorIyBSZWNvbmZpZ3Vy ZSBwa2dzIGZvciAzMmJpdCBvbiB4ODZfNjQgYW5kIHJlZXhlYyBpdHNlbGYuCisjIFhYWDogaG93 IGFib3V0IDMyYml0IHVzZXJsYW5kIG9uIDY0Yml0IENQVXM/IChwcGMsIGFybSwgZXRjKS4KIGlm IFsgLXogIiRYQlBTX1JFSU5JVCIgLWEgLXMgJFhCUFNfTUFTVEVSRElSLy54YnBzX2Nocm9vdF9p bml0IF07IHRoZW4KLSAgICBleHBvcnQgWEJQU19BUkNIPSR7WEJQU19BUkNIOi0kKGNhdCAkWEJQ U19NQVNURVJESVIvLnhicHNfY2hyb290X2luaXQpfQorICAgIGV4cG9ydCBYQlBTX0FSQ0g9JHtY QlBTX0FSQ0g6LSQoPCRYQlBTX01BU1RFUkRJUi8ueGJwc19jaHJvb3RfaW5pdCl9CiAgICAgaWYg W1sgJFhCUFNfTUFDSElORSA9PSB4ODZfNjQqIF1dICYmIFtbICRYQlBTX0FSQ0ggPT0gaTY4Niog XV07IHRoZW4KICAgICAgICAgIyByZWNvbmZpZ3VyZSBwa2dzIHZpYSBsaW51eDMyCiAgICAgICAg IGxpbnV4MzIgeGJwcy1yZWNvbmZpZ3VyZSAtciAke1hCUFNfTUFTVEVSRElSfSAtYSAmPi9kZXYv bnVsbApAQCAtNTk4LDIwICs1OTUsMjEgQEAgaWYgWyAteiAiJFhCUFNfUkVJTklUIiAtYSAtcyAk WEJQU19NQVNURVJESVIvLnhicHNfY2hyb290X2luaXQgXTsgdGhlbgogICAgICAgICBleGVjIGxp bnV4MzIgJDAgJHtYQlBTX09QVElPTlN9ICRACiAgICAgZmkKIGZpCi1pZiBbIC1uICIkWEJQU19B UkNIIiBdOyB0aGVuCitpZiBbICIkWEJQU19BUkNIIiBdOyB0aGVuCiAgICAgZXhwb3J0IFhCUFNf TUFDSElORT0kWEJQU19BUkNICiBmaQorIyBBdCB0aGlzIHBvaW50IGlmIFhCUFNfVEFSR0VUX01B Q0hJTkUgaXNuJ3QgZGVmaW5lZCB3ZSBhc3N1bWUKKyMgaXQncyBhIG5hdGl2ZSBidWlsZC4KIGlm IFsgLXogIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBdOyB0aGVuCi0gICAgZXhwb3J0IFhCUFNfVEFS R0VUX01BQ0hJTkU9JHtYQlBTX0FSQ0g6PSRYQlBTX01BQ0hJTkV9CisgICAgICAgIGV4cG9ydCBY QlBTX1RBUkdFVF9NQUNISU5FPSRYQlBTX01BQ0hJTkUKIGZpCiAKLQogZXhwb3J0IFhCUFNfU0hV VElMU0RJUiBYQlBTX0NST1NTUEZESVIgWEJQU19UUklHR0VSU0RJUiBcCi0gICAgWEJQU19TUkNQ S0dESVIgWEJQU19DT01NT05ESVIgWEJQU19CVUlMRERJUiBYQlBTX1JFUE9fREVMVEFTIFwKKyAg ICBYQlBTX1NSQ1BLR0RJUiBYQlBTX0NPTU1PTkRJUiBYQlBTX0JVSUxERElSIFwKICAgICBYQlBT X1JFUE9TSVRPUlkgWEJQU19BTFRfUkVQT1NJVE9SWSBYQlBTX1NSQ0RJU1RESVIgWEJQU19ESUdF U1RfQ01EIFwKICAgICBYQlBTX1VIRUxQRVJfQ01EIFhCUFNfSU5TVEFMTF9DTUQgWEJQU19RVUVS WV9DTUQgWEJQU19CVUlMRF9PTkxZX09ORV9QS0cgXAotICAgIFhCUFNfUklOREVYX0NNRCBYQlBT X1JFQ09ORklHVVJFX0NNRCBYQlBTX1JFTU9WRV9DTUQgXAotICAgIFhCUFNfQ01QVkVSX0NNRCBY QlBTX0ZFVENIX0NNRCBYQlBTX1ZFUlNJT04gWEJQU19BUElWRVIgWEJQU19CVUlMRFNUWUxFRElS IFwKKyAgICBYQlBTX1JJTkRFWF9DTUQgWEJQU19SRUNPTkZJR1VSRV9DTUQgWEJQU19SRU1PVkVf Q01EIFhCUFNfQ0hFQ0tWRVJTX0NNRCBcCisgICAgWEJQU19DTVBWRVJfQ01EIFhCUFNfRkVUQ0hf Q01EIFhCUFNfVkVSU0lPTiBYQlBTX0JVSUxEU1RZTEVESVIgXAogICAgIFhCUFNfQ1BQRkxBR1Mg WEJQU19DRkxBR1MgWEJQU19DWFhGTEFHUyBYQlBTX0ZGTEFHUyBYQlBTX0xERkxBR1MgXAogICAg IFhCUFNfTUFLRUpPQlMgWEJQU19CVUlMRF9GT1JDRU1PREUgWEJQU19VU0VfR0lUX1JFVlMgWEJQ U19ERUJVR19QS0dTIFwKICAgICBYQlBTX0NIRUNLX1BLR1MgWEJQU19DQ0FDSEUgWEJQU19ESVNU Q0MgWEJQU19ESVNUQ0NfSE9TVFMgWEJQU19TS0lQX0RFUFMgXApAQCAtNjI5LDcgKzYyNyw3IEBA IGZvciBpIGluIFJFUE9TSVRPUlkgREVTVERJUiBCVUlMRERJUiBTUkNESVNURElSOyBkbwogICAg IHVuc2V0IHZhbAogZG9uZQogCi0jIEEgdGVtcG9yYXJ5IG1hc3RlcmRpciByZXF1aXJlcyB4YnBz LXVjaHJvb3QoOCkgYW5kIC1PIHRvIHVzZSBvdmVybGF5ZnMKKyMgQSB0ZW1wb3JhcnkgbWFzdGVy ZGlyIHJlcXVpcmVzIHhicHMtdWNocm9vdCgxKSBhbmQgLU8gdG8gdXNlIG92ZXJsYXlmcwogIyBv biB0bXBmcyAoYXZhaWxhYmxlIHdpdGggeGJwcy0wLjQ1KS4KIGlmIFsgLXogIiRJTl9DSFJPT1Qi IC1hIC1uICIkWEJQU19URU1QX01BU1RFUkRJUiIgXTsgdGhlbgogICAgIGV4cG9ydCBYQlBTX0NI Uk9PVF9DTUQ9InVjaHJvb3QiCkBAIC02NDAsMzEgKzYzOCwzNSBAQCBmaQogIwogaWYgWyAteiAi JElOX0NIUk9PVCIgXTsgdGhlbgogICAgICMgSW4gbm9uIGNocm9vdCBjYXNlIGFsd2F5cyBwcmVm ZXIgaG9zdCB0b29scy4KLSAgICBNWVBBVEg9IiRYQlBTX01BU1RFUkRJUi91c3IvYmluOiRYQlBT X01BU1RFUkRJUi91c3Ivc2JpbiIKLSAgICBleHBvcnQgUEFUSD0iJFBBVEg6JE1ZUEFUSCIKLWVs c2UKLSAgICBNWVBBVEg9Ii91c3IvYmluOi91c3Ivc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL2xv Y2FsL3NiaW4iCi0gICAgZXhwb3J0IFBBVEg9IiRNWVBBVEgiCi0gICAgaWYgWyAtbiAiJFhCUFNf Q0NBQ0hFIiBdOyB0aGVuCi0gICAgICAgIENDQUNIRVBBVEg9Ii91c3IvbGliL2NjYWNoZS9iaW4i Ci0gICAgICAgIGV4cG9ydCBDQ0FDSEVfRElSPSIkWEJQU19IT1NURElSL2NjYWNoZSIKLSAgICAg ICAgIyBBdm9pZCBub3QgdXNpbmcgY2FjaGVkIGZpbGVzIGp1c3QgZHVlIHRvIGNvbXBpbGVyIG10 aW1lCi0gICAgICAgICMgY2hhbmdlcyB3aGVuIGUuZy4gYm9vdHN0cmFwcGluZwotICAgICAgICBl eHBvcnQgQ0NBQ0hFX0NPTVBJTEVSQ0hFQ0s9Y29udGVudCBDQ0FDSEVfQ09NUFJFU1M9MQotICAg ICAgICBleHBvcnQgUEFUSD0iJENDQUNIRVBBVEg6JFBBVEgiCi0gICAgICAgIG1rZGlyIC1wICRD Q0FDSEVfRElSCi0gICAgZmkKLSAgICBpZiBbIC1uICIkWEJQU19ESVNUQ0MiIF07IHRoZW4KLSAg ICAgICAgaWYgWyAtbiAiJFhCUFNfQ0NBQ0hFIiBdOyB0aGVuCi0gICAgICAgICAgICBleHBvcnQg Q0NBQ0hFX1BSRUZJWD0iL3Vzci9iaW4vZGlzdGNjIgotICAgICAgICBlbHNlCi0gICAgICAgICAg ICBESVNUQ0NQQVRIPSIvdXNyL2xpYi9kaXN0Y2MvYmluIgotICAgICAgICAgICAgZXhwb3J0IFBB VEg9IiRESVNUQ0NQQVRIOiRQQVRIIgotICAgICAgICBmaQotICAgICAgICBleHBvcnQgRElTVEND X0RJUj0iJFhCUFNfSE9TVERJUi9kaXN0Y2MtJHtYQlBTX0NST1NTX0JVSUxEOi0ke1hCUFNfTUFD SElORX19IgotICAgICAgICBleHBvcnQgRElTVENDX0hPU1RTPSIkWEJQU19ESVNUQ0NfSE9TVFMi Ci0gICAgICAgIG1rZGlyIC1wICRESVNUQ0NfRElSCisgICAgZXhwb3J0IFBBVEg9IiRQQVRIOiRY QlBTX01BU1RFUkRJUi91c3IvYmluIgorZmkKKworIworIyBTZXQgdXAgY2NhY2hlCisjCitpZiBb ICIkWEJQU19DQ0FDSEUiIF07IHRoZW4KKyAgICBleHBvcnQgQ0NBQ0hFUEFUSD0iL3Vzci9saWIv Y2NhY2hlL2JpbiIKKyAgICBleHBvcnQgQ0NBQ0hFX0RJUj0iJFhCUFNfSE9TVERJUi9jY2FjaGUi CisgICAgIyBBdm9pZCBub3QgdXNpbmcgY2FjaGVkIGZpbGVzIGp1c3QgZHVlIHRvIGNvbXBpbGVy IG10aW1lCisgICAgIyBjaGFuZ2VzIHdoZW4gZS5nLiBib290c3RyYXBwaW5nCisgICAgZXhwb3J0 IENDQUNIRV9DT01QSUxFUkNIRUNLPWNvbnRlbnQgQ0NBQ0hFX0NPTVBSRVNTPTEKKyAgICBleHBv cnQgUEFUSD0iJENDQUNIRVBBVEg6JFBBVEgiCisgICAgbWtkaXIgLXAgJENDQUNIRV9ESVIKK2Zp CisKKyMKKyMgU2V0IHVwIGRpc3RjYworIworaWYgWyAiJFhCUFNfRElTVENDIiBdOyB0aGVuCisg ICAgaWYgWyAiJFhCUFNfQ0NBQ0hFIiBdOyB0aGVuCisgICAgICAgIGV4cG9ydCBDQ0FDSEVfUFJF RklYPSIvdXNyL2Jpbi9kaXN0Y2MiCisgICAgZWxzZQorICAgICAgICBESVNUQ0NQQVRIPSIvdXNy L2xpYi9kaXN0Y2MvYmluIgorICAgICAgICBleHBvcnQgUEFUSD0iJERJU1RDQ1BBVEg6JFBBVEgi CiAgICAgZmkKKyAgICBleHBvcnQgRElTVENDX0RJUj0iJFhCUFNfSE9TVERJUi9kaXN0Y2MtJHtY QlBTX0NST1NTX0JVSUxEOi0ke1hCUFNfTUFDSElORX19IgorICAgIGV4cG9ydCBESVNUQ0NfSE9T VFM9IiRYQlBTX0RJU1RDQ19IT1NUUyIKKyAgICBta2RpciAtcCAkRElTVENDX0RJUgogZmkKIAog Y2hlY2tfYnVpbGRfcmVxdWlyZW1lbnRzCkBAIC02NzUsNiArNjc3LDEyIEBAIGlmIFsgLXogIiRJ Tl9DSFJPT1QiIF07IHRoZW4KICAgICAgICAgc2V0dXBfZGlzdGZpbGVzX21pcnJvcgogICAgIGZp CiBmaQorIworIyBSZWFkIGZ1bmNzIGZyb20gaGVscGVycworIworZm9yIGYgaW4gJHtYQlBTX1NI VVRJTFNESVJ9Lyouc2g7IGRvCisgICAgWyAtciAiJGYiIF0gJiYgLiAkZgorZG9uZQogCiByZWNv bmZpZ3VyZV9ib290c3RyYXBfcGtncwogCkBAIC02ODksMTggKzY5NywyNCBAQCBjYXNlICIkWEJQ U19UQVJHRVQiIGluCiAgICAgICAgICMgYm9vdHN0cmFwIGZyb20gc291cmNlcwogICAgICAgICAj IGNoZWNrIGZvciByZXF1aXJlZCBob3N0IHV0aWxzCiAgICAgICAgIGNoZWNrX3JlcWhvc3RfdXRp bHMgYm9vdHN0cmFwCi0gICAgICAgIFsgISAtZCAkWEJQU19TUkNQS0dESVIvYmFzZS1jaHJvb3Qg XSAmJiBcCi0gICAgICAgICAgICBtc2dfZXJyb3IgIkNhbm5vdCBmaW5kICRYQlBTX1NSQ1BLR0RJ Ui9iYXNlLWNocm9vdCBkaXJlY3RvcnkhXG4iCisgICAgICAgIFtbICRYQlBTX01BQ0hJTkUgPX4g bXVzbCBdXSAmJiBzdWJhcmNoPSItbXVzbCIKKyAgICAgICAgWyAhIC1kICRYQlBTX1NSQ1BLR0RJ Ui9iYXNlLWNocm9vdCR7c3ViYXJjaH0gXSAmJiBcCisgICAgICAgICAgICBtc2dfZXJyb3IgIkNh bm5vdCBmaW5kICRYQlBTX1NSQ1BLR0RJUi9iYXNlLWNocm9vdCR7c3ViYXJjaH0gZGlyZWN0b3J5 IVxuIgogICAgICAgICBib290c3RyYXBfdnBrZz0ke1hCUFNfTUFTVEVSRElSfS9ldGMveGJwcy5k L2Jvb3RzdHJhcC12cGtncy5jb25mCiAgICAgICAgIG1rZGlyIC1wICR7WEJQU19NQVNURVJESVJ9 L2V0Yy94YnBzLmQKICAgICAgICAgaWYgWyAhIC1zICR7Ym9vdHN0cmFwX3Zwa2d9IF07IHRoZW4K ICAgICAgICAgICAgICMgRm9vbCB4YnBzIHRvIHJlc29sdmUgZGVwZW5kZW5jaWVzLgotICAgICAg ICAgICAgZWNobyAndmlydHVhbHBrZz1saWJnY2MtNC40LjBfMTpiYXNlLWZpbGVzJyA+PiAke2Jv b3RzdHJhcF92cGtnfQotICAgICAgICAgICAgZWNobyAndmlydHVhbHBrZz1saWJzdGRjKystNC40 LjBfMTpiYXNlLWZpbGVzJyA+PiAke2Jvb3RzdHJhcF92cGtnfQorICAgICAgICAgICAgZWNobyAn dmlydHVhbHBrZz1saWJnY2M6YmFzZS1maWxlcycgPj4gJHtib290c3RyYXBfdnBrZ30KKyAgICAg ICAgICAgIGVjaG8gJ3ZpcnR1YWxwa2c9bGlic3RkYysrOmJhc2UtZmlsZXMnID4+ICR7Ym9vdHN0 cmFwX3Zwa2d9CiAgICAgICAgIGZpCi0gICAgICAgICRYQlBTX0xJQkVYRUNESVIvYnVpbGQuc2gg YmFzZS1jaHJvb3QgYmFzZS1jaHJvb3QgJFhCUFNfVEFSR0VUIHx8IGV4aXQgMQorICAgICAgICAo CisgICAgICAgICAgICBleHBvcnQgWEJQU19BUkNIPSRYQlBTX01BQ0hJTkUKKyAgICAgICAgICAg IGV4cG9ydCBYQlBTX1NLSVBfUkVNT1RFUkVQT1M9MQorICAgICAgICAgICAgJFhCUFNfTElCRVhF Q0RJUi9idWlsZC5zaCBcCisgICAgICAgICAgICAgICAgYmFzZS1jaHJvb3Qke3N1YmFyY2h9IGJh c2UtY2hyb290JHtzdWJhcmNofSAkWEJQU19UQVJHRVQgfHwgZXhpdCAxCisgICAgICAgICkgfHwg ZXhpdCAxCiAgICAgICAgIFsgLWQgJFhCUFNfTUFTVEVSRElSIF0gJiYgcm0gLXJmICRYQlBTX01B U1RFUkRJUgotICAgICAgICBpbnN0YWxsX2Jib290c3RyYXAgYm9vdHN0cmFwCisgICAgICAgIGlu c3RhbGxfYmJvb3RzdHJhcCAke1hCUFNfVEFSR0VUX1BLRzo9JFhCUFNfTUFDSElORX0KICAgICAg ICAgOzsKICAgICBib290c3RyYXAtdXBkYXRlKQogICAgICAgICBpZiBbIC1uICIkQ0hST09UX1JF QURZIiAtYSAteiAiJElOX0NIUk9PVCIgXTsgdGhlbgpAQCAtNzgwLDcgKzc5NCw3IEBAIGNhc2Ug IiRYQlBTX1RBUkdFVCIgaW4KICAgICAgICAgc2hvd19wa2cKICAgICAgICAgOzsKICAgICBzaG93 LWF2YWlsKQotICAgICAgICByZWFkX3BrZworICAgICAgICByZWFkX3BrZyAmPi9kZXYvbnVsbAog ICAgICAgICBzaG93X2F2YWlsCiAgICAgICAgIDs7CiAgICAgc2hvdy1maWxlcykKQEAgLTg1Nyw3 ICs4NzEsNyBAQCBjYXNlICIkWEJQU19UQVJHRVQiIGluCiAgICAgICAgIGJ1bGtfYnVpbGQKICAg ICAgICAgOzsKICAgICBzaG93LXN5cy11cGRhdGVzKQotICAgICAgICBidWxrX2J1aWxkIC1pCisg ICAgICAgIGJ1bGtfYnVpbGQgLUkKICAgICAgICAgOzsKICAgICBzb3J0LWRlcGVuZGVuY2llcykK ICAgICAgICAgYnVsa19zb3J0ZGVwcyAke0AvJFhCUFNfVEFSR0VUL30KQEAgLTg2Niw3ICs4ODAs NyBAQCBjYXNlICIkWEJQU19UQVJHRVQiIGluCiAgICAgICAgIGJ1bGtfdXBkYXRlCiAgICAgICAg IDs7CiAgICAgdXBkYXRlLXN5cykKLSAgICAgICAgYnVsa191cGRhdGUgLWkKKyAgICAgICAgYnVs a191cGRhdGUgLUkKICAgICAgICAgOzsKICAgICB1cGRhdGUtY2hlY2spCiAgICAgICAgIHJlYWRf cGtnIGlnbm9yZS1wcm9ibGVtcwoKRnJvbSA4Zjc0ODQ2ZmY4ZTRlZDA3OTIyNWNmNDEyZjExY2Rj NDMyNzMzYTdkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWFuIFJQIDx4dHJhZW1l QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxMCBKdWwgMjAxOSAxOTo0OTozOSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMi80XSBxdDU6IHVzZSBhIHdvcmtpbmcgZGlzdGZpbGUgbWlycm9yLgoKLS0tCiBz cmNwa2dzL3F0NS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlIGIvc3Jj cGtncy9xdDUvdGVtcGxhdGUKaW5kZXggOGQxNzA1MzVlODkuLjIyOTNmNTEyZDBhIDEwMDY0NAot LS0gYS9zcmNwa2dzL3F0NS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0NS90ZW1wbGF0ZQpAQCAt MjAsNyArMjAsNyBAQCBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQg VUkgZnJhbWV3b3JrIChRVDUpIgogbWFpbnRhaW5lcj0iSsO8cmdlbiBCdWNobcO8bGxlciA8cHVs bG1vbGxAdC1vbmxpbmUuZGU+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCi1kaXN0ZmlsZXM9Imh0dHA6Ly9k b3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lv bn0vc2luZ2xlL3F0LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgorZGlzdGZpbGVz PSJodHRwOi8vbWlycm9ycy51a2Zhc3QuY28udWsvc2l0ZXMvcXQuaW8vYXJjaGl2ZS9xdC8ke3Zl cnNpb24lLip9LyR7dmVyc2lvbn0vc2luZ2xlL3F0LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0u dGFyLnh6IgogY2hlY2tzdW09ODU5NDE3NjQyNzEzY2VlMjQ5M2VlMzY0NmE3ZmVlNzgyYzlmMWRi MzllNDFkN2JiMTMyMmJiYTBjNWYwZmY0ZAogcmVwbGFjZXM9InF0NS1kb2M8NS42LjAgcXQ1LXF1 aWNrMTw1LjYuMCBxdDUtcXVpY2sxLWRldmVsPDUuNi4wIHF0NS13ZWJraXQ8NS42LjAgcXQ1LXdl YmtpdC1kZXZlbDw1LjYuMAogIHF0NS1lbmdpbmlvPDUuNy4xIHF0NS1lbmdpbmlvLWRldmVsPDUu Ny4xIHF0NS1wbHVnaW4tZ3RrPDUuNy4xIgoKRnJvbSA3YmM5MjhiMGFhMDhlYjkzNDQ4MDJiMjg2 MDZhZTViZTgxYjhiYjQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWFuIFJQIDx4 dHJhZW1lQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxMCBKdWwgMjAxOSAxOTo1MDowOSArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMy80XSBiYXNoLWNvbXBsZXRpb246IGEgcnVudGltZSBkZXBlbmRlbmN5 IG9uIGJhc2ggaXMgZW5vdWdoLgoKLS0tCiBzcmNwa2dzL2Jhc2gtY29tcGxldGlvbi90ZW1wbGF0 ZSB8IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iYXNoLWNvbXBsZXRpb24vdGVtcGxhdGUgYi9zcmNwa2dz L2Jhc2gtY29tcGxldGlvbi90ZW1wbGF0ZQppbmRleCAwMWVjZGQwYTcyNi4uODBjMjczZjg3MTMg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYmFzaC1jb21wbGV0aW9uL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvYmFzaC1jb21wbGV0aW9uL3RlbXBsYXRlCkBAIC01LDggKzUsNyBAQCByZXZpc2lvbj0xCiBh cmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIG1ha2VfaW5zdGFsbF9hcmdz PSJwcm9maWxlZGlyPS9ldGMvYmFzaC9iYXNocmMuZCIKLW1ha2VkZXBlbmRzPSJiYXNoIgotZGVw ZW5kcz0iJHttYWtlZGVwZW5kc30iCitkZXBlbmRzPSJiYXNoIgogc2hvcnRfZGVzYz0iUHJvZ3Jh bW1hYmxlIGNvbXBsZXRpb24gZm9yIHRoZSBHTlUgQmFzaCBzaGVsbCIKIG1haW50YWluZXI9Ikp1 YW4gUlAgPHh0cmFlbWVAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy IgoKRnJvbSAzYTE2MGJmMGVjYmVmNmZlODc4MGY0ZjEyODE0MDM2NTVmODUyYWJjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWFuIFJQIDx4dHJhZW1lQGdtYWlsLmNvbT4KRGF0ZTog V2VkLCAxMCBKdWwgMjAxOSAxOTo1MDozMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNC80XSBkb2Ni b29rMng6IGEgcnVudGltZSBkZXBlbmRlbmN5IG9uIHRleGluZm8gaXMgZW5vdWdoLgoKLS0tCiBz cmNwa2dzL2RvY2Jvb2syeC90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2RvY2Jvb2sy eC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZG9jYm9vazJ4L3RlbXBsYXRlCmluZGV4IGNjOTMyODBjZDkz Li42MTRhMmM2NTQ3NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9kb2Nib29rMngvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9kb2Nib29rMngvdGVtcGxhdGUKQEAgLTYsOCArNiw4IEBAIHBhdGNoX2FyZ3M9 Ii1OcDEiCiB3cmtzcmM9ImRvY2Jvb2syWC0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Z251LWNv bmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0td2l0aG91dC1yZXNvbHZlci1qYXJzIC0td2l0aG91 dC1zYXhvbi1qYXJzIC0td2l0aG91dC14YWxhbi1qYXJzIgotaG9zdG1ha2VkZXBlbmRzPSJ0ZXhp bmZvIGxpYnhzbHQgZG9jYm9vayBkb2Nib29rLWRzc3NsIGRvY2Jvb2steHNsIHBlcmwtWE1MLVNB WCIKLWRlcGVuZHM9IiR7aG9zdG1ha2VkZXBlbmRzfSIKK2hvc3RtYWtlZGVwZW5kcz0ibGlieHNs dCBkb2Nib29rIGRvY2Jvb2stZHNzc2wgZG9jYm9vay14c2wgcGVybC1YTUwtU0FYIgorZGVwZW5k cz0idGV4aW5mbyAke2hvc3RtYWtlZGVwZW5kc30iCiB4bWxfZW50cmllcz0iCiAgbmV4dENhdGFs b2cgL3Vzci9zaGFyZS9kb2Nib29rMlgvZHRkL2NhdGFsb2cueG1sIC0tCiAgbmV4dENhdGFsb2cg L3Vzci9zaGFyZS9kb2Nib29rMlgveHNsdC9jYXRhbG9nLnhtbCAtLSIK --===============8452606963162779664==--