ZGlmZiAtLWdpdCBhL01hYy9zY3JpcHRzL0NvbmZpZ3VyZVB5dGhvbi5weSBiL01hYy9zY3JpcHRzL0NvbmZpZ3VyZVB5dGhvbi5weQppbmRleCAwZjYxZjU0Li5kNmJjNDllIDEwMDY0NAotLS0gYS9NYWMvc2NyaXB0cy9Db25maWd1cmVQeXRob24ucHkKKysrIGIvTWFjL3NjcmlwdHMvQ29uZmlndXJlUHl0aG9uLnB5CkBAIC0yLDExICsyLDggQEAKICMgZHluYW1pY2FsbHktbG9hZGVkIG1vZHVsZXMgdGhhdCAibGl2ZSBpbiIgaW4gYSBzaW5nbGUKICMgc2hhcmVkIGxpYnJhcnkuCiAjIEl0IG5lZWRzIGEgZnVsbHkgZnVuY3Rpb25hbCBub24tZHluYW1pYyBweXRob24gdG8gd29yawotIyAoc2luY2UgaXQgY3JlYXRlcyBhbGlhc2VzIHRvIHN0dWZmIGl0IG5lZWRzIGl0c2VsZiksCi0jIHlvdSBzaG91bGQgcHJvYmFibHkgZHJhZyBpdCBvbnRvIHlvdXIgbm9uLWR5bmFtaWMgcHl0aG9uLgotIyAKLSMgSWYgeW91IGNvbXBhcmUgaXQgdG8gTWtQbHVnaW5BbGlhc2VzLmFzIGl0IGFsc28gc2VydmVzCi0jIGFzIGEgY29tcGFyaXNvbiBiZXR3ZWVuIHB5dGhvbiBhbmQgQXBwbGVTY3JpcHQ6LSkKKyMgYnV0IHlvdSBjYW4gcnVuIGl0IGluIGEgc2hhcmVkIHB5dGhvbiBhcyBsb25nIGFzIHlvdSBjYW4gcG9pbnQKKyMgaXQgdG8gdG9vbGJveG1vZHVsZXMuc2xiCiAjCiAjIEphY2sgSmFuc2VuLCBDV0ksIEF1Z3VzdCAxOTk1CiAKQEAgLTE2LDEwICsxMywxMCBAQAogCXByaW50IiIiCiBUcnkgdGhlIGZvbGxvd2luZzoKIDEuIFJlbW92ZSBhbnkgb2xkICJQeXRob24gUHJlZmVyZW5jZXMiIGZpbGVzIGZyb20gdGhlIHN5c3RlbSBmb2xkZXIuCi0yLiBSZW1vdmUgYW55IG9sZCAiUHl0aG9uQ29yZSIgZmlsZXMgZnJvbSB0aGUgc3lzdGVtIGZvbGRlci4KLTMuIE1ha2Ugc3VyZSB0aGlzIHNjcmlwdCwgUHl0aG9uUFBDIGFuZCBQeXRob25Db3JlIGFyZSBhbGwgbG9jYXRlZCBpbiB0aGUKLSAgIHB5dGhvbiBob21lIGZvbGRlciAod2hlcmUgdGhlIExpYiBhbmQgUGx1Z0lucyBmb2xkZXJzIGFyZSkKLTQuIFJ1biB0aGlzIHNjcmlwdCBhZ2FpbiwgYnkgZHJvcHBpbmcgaXQgb24gUHl0aG9uUFBDLgorMi4gUmVtb3ZlIGFueSBvbGQgIlB5dGhvbkNvcmUiIG9yICJQeXRob25Db3JlQ0ZNNjhLIiBmaWxlcyBmcm9tIHRoZSBzeXN0ZW0gZm9sZGVyLgorMy4gTWFrZSBzdXJlIHRoaXMgc2NyaXB0LCB5b3VyIGludGVycHJldGVyIGFuZCB5b3VyIFB5dGhvbkNvcmUgYXJlIGFsbCBsb2NhdGVkIGluIHRoZQorICAgc2FtZSBmb2xkZXIuCis0LiBSdW4gdGhpcyBzY3JpcHQgYWdhaW4sIGJ5IGRyb3BwaW5nIGl0IG9uIHlvdXIgaW50ZXJwcmV0ZXIuCiAKIElmIHRoaXMgZmFpbHMgdHJ5IHJlbW92aW5nIHN0YXJ0aW5nIGFmcmVzaCBmcm9tIHRoZSBkaXN0cmlidXRpb24gYXJjaGl2ZS4KICIiIgpAQCAtMzYsMjYgKzMzLDEyIEBACiB0cnk6CiAJaW1wb3J0IFJlcwogZXhjZXB0IEltcG9ydEVycm9yOgorCWltcG9ydCBtYWNmcwogCSMKIAkjIENoZWNrIHRoYXQgd2UgYXJlIGFjdHVhbGx5IGluIHRoZSBtYWluIHB5dGhvbiBkaXJlY3RvcnkKIAkjCi0JdHJ5OgotCQlvcy5jaGRpcignOlBsdWdJbnMnKQotCWV4Y2VwdCBJT0Vycm9yOgotCQlwcmludCAiIiIKLUkgY2Fubm90IGZpbmQgdGhlICdQbHVnSW5zJyBmb2xkZXIsIHNvIEkgYW0gb2J2aW91c2x5IG5vdCBydW4gZnJvbSB0aGUgUHl0aG9uCi1ob21lIGZvbGRlci4KLSIiIgotCQloZWxwKCkKLQlpbXBvcnQgaW1wCi0JY3dkID0gb3MuZ2V0Y3dkKCkKLQl0YmxpYm5hbWUgPSBvcy5wYXRoLmpvaW4oY3dkLCAidG9vbGJveG1vZHVsZXMuc2xiIikKLQlpZiBub3Qgb3MucGF0aC5leGlzdHModGJsaWJuYW1lKToKLQkJcHJpbnQgIiIiCi1JIGNhbm5vdCBmaW5kIHRoZSAndG9vbGJveG1vZHVsZXMuc2xiJyBmaWxlIGluIHRoZSBQbHVnSW5zIGRpcmVjdG9yeS4KLVN0YXJ0IGFmcmVzaCBmcm9tIGEgY2xlYW4gZGlzdHJpYnV0aW9uLiAKLSIiIgotCQlzeXMuZXhpdCgxKQorCWZzcywgb2sgPSBtYWNmcy5TdGFuZGFyZEdldEZpbGUoJ1doZXJlIGFyZSB0aGUgdG9vbGJveCBtb2R1bGVzPycsICdzaGxiJykKKwl0YmxpYm5hbWUgPSBmc3MuYXNfcGF0aG5hbWUoKQogCXRyeToKIAkJZm9yIHd0ZCBpbiBbIkN0bCIsICJEbGciLCAiRXZ0IiwgIlFkIiwgIlJlcyIsICJXaW4iXToKIAkJCWltcC5sb2FkX2R5bmFtaWMod3RkLCB0YmxpYm5hbWUpCkBAIC03MSwzMiArNTQsNTMgQEAKIGltcG9ydCBFYXN5RGlhbG9ncwogaW1wb3J0IG1hY29zdG9vbHMKIAotZ29hbHMgPSBbCi0JKCJBRS5zbGIiLCAidG9vbGJveG1vZHVsZXMuc2xiIiksCi0JKCJDbS5zbGIiLCAidG9vbGJveG1vZHVsZXMuc2xiIiksCi0JKCJDdGwuc2xiIiwgInRvb2xib3htb2R1bGVzLnNsYiIpLAotCSgiRGxnLnNsYiIsICJ0b29sYm94bW9kdWxlcy5zbGIiKSwKLQkoIkV2dC5zbGIiLCAidG9vbGJveG1vZHVsZXMuc2xiIiksCi0JKCJGbS5zbGIiLCAidG9vbGJveG1vZHVsZXMuc2xiIiksCi0JKCJNZW51LnNsYiIsICJ0b29sYm94bW9kdWxlcy5zbGIiKSwKLQkoIkxpc3Quc2xiIiwgInRvb2xib3htb2R1bGVzLnNsYiIpLAotCSgiUWQuc2xiIiwgInRvb2xib3htb2R1bGVzLnNsYiIpLAotCSgiUXQuc2xiIiwgInRvb2xib3htb2R1bGVzLnNsYiIpLAotCSgiUmVzLnNsYiIsICJ0b29sYm94bW9kdWxlcy5zbGIiKSwKLQkoIlNjcmFwLnNsYiIsICJ0b29sYm94bW9kdWxlcy5zbGIiKSwKLQkoIlNuZC5zbGIiLCAidG9vbGJveG1vZHVsZXMuc2xiIiksCi0JKCJURS5zbGIiLCAidG9vbGJveG1vZHVsZXMuc2xiIiksCi0JKCJXaW4uc2xiIiwgInRvb2xib3htb2R1bGVzLnNsYiIpLAotCSgiaW1nY29sb3JtYXAuc2xiIiwgImltZ21vZHVsZXMuc2xiIiksCi0JKCJpbWdmb3JtYXQuc2xiIiwgImltZ21vZHVsZXMuc2xiIiksCi0JKCJpbWdnaWYuc2xiIiwgImltZ21vZHVsZXMuc2xiIiksCi0JKCJpbWdqcGVnLnNsYiIsICJpbWdtb2R1bGVzLnNsYiIpLAotCSgiaW1nb3Auc2xiIiwgImltZ21vZHVsZXMuc2xiIiksCi0JKCJpbWdwYm0uc2xiIiwgImltZ21vZHVsZXMuc2xiIiksCi0JKCJpbWdwZ20uc2xiIiwgImltZ21vZHVsZXMuc2xiIiksCi0JKCJpbWdwcG0uc2xiIiwgImltZ21vZHVsZXMuc2xiIiksCi0JKCJpbWd0aWZmLnNsYiIsICJpbWdtb2R1bGVzLnNsYiIpLAotCSgiaW1nc2dpLnNsYiIsICJpbWdtb2R1bGVzLnNsYiIpCitwcGNfZ29hbHMgPSBbCisJKCJBRS5wcGMuc2xiIiwgInRvb2xib3htb2R1bGVzLnBwYy5zbGIiKSwKKwkoIkN0bC5wcGMuc2xiIiwgInRvb2xib3htb2R1bGVzLnBwYy5zbGIiKSwKKwkoIkRsZy5wcGMuc2xiIiwgInRvb2xib3htb2R1bGVzLnBwYy5zbGIiKSwKKwkoIkV2dC5wcGMuc2xiIiwgInRvb2xib3htb2R1bGVzLnBwYy5zbGIiKSwKKwkoIkZtLnBwYy5zbGIiLCAidG9vbGJveG1vZHVsZXMucHBjLnNsYiIpLAorCSgiTWVudS5wcGMuc2xiIiwgInRvb2xib3htb2R1bGVzLnBwYy5zbGIiKSwKKwkoIkxpc3QucHBjLnNsYiIsICJ0b29sYm94bW9kdWxlcy5wcGMuc2xiIiksCisJKCJRZC5wcGMuc2xiIiwgInRvb2xib3htb2R1bGVzLnBwYy5zbGIiKSwKKwkoIlJlcy5wcGMuc2xiIiwgInRvb2xib3htb2R1bGVzLnBwYy5zbGIiKSwKKwkoIlNjcmFwLnBwYy5zbGIiLCAidG9vbGJveG1vZHVsZXMucHBjLnNsYiIpLAorCSgiU25kLnBwYy5zbGIiLCAidG9vbGJveG1vZHVsZXMucHBjLnNsYiIpLAorCSgiVEUucHBjLnNsYiIsICJ0b29sYm94bW9kdWxlcy5wcGMuc2xiIiksCisJKCJXaW4ucHBjLnNsYiIsICJ0b29sYm94bW9kdWxlcy5wcGMuc2xiIiksCisKKwkoIkNtLnBwYy5zbGIiLCAicXRtb2R1bGVzLnBwYy5zbGIiKSwKKwkoIlF0LnBwYy5zbGIiLCAicXRtb2R1bGVzLnBwYy5zbGIiKSwKKworCSgiaW1nY29sb3JtYXAucHBjLnNsYiIsICJpbWdtb2R1bGVzLnBwYy5zbGIiKSwKKwkoImltZ2Zvcm1hdC5wcGMuc2xiIiwgImltZ21vZHVsZXMucHBjLnNsYiIpLAorCSgiaW1nZ2lmLnBwYy5zbGIiLCAiaW1nbW9kdWxlcy5wcGMuc2xiIiksCisJKCJpbWdqcGVnLnBwYy5zbGIiLCAiaW1nbW9kdWxlcy5wcGMuc2xiIiksCisJKCJpbWdvcC5wcGMuc2xiIiwgImltZ21vZHVsZXMucHBjLnNsYiIpLAorCSgiaW1ncGJtLnBwYy5zbGIiLCAiaW1nbW9kdWxlcy5wcGMuc2xiIiksCisJKCJpbWdwZ20ucHBjLnNsYiIsICJpbWdtb2R1bGVzLnBwYy5zbGIiKSwKKwkoImltZ3BwbS5wcGMuc2xiIiwgImltZ21vZHVsZXMucHBjLnNsYiIpLAorCSgiaW1ndGlmZi5wcGMuc2xiIiwgImltZ21vZHVsZXMucHBjLnNsYiIpLAorCSgiaW1nc2dpLnBwYy5zbGIiLCAiaW1nbW9kdWxlcy5wcGMuc2xiIikKK10KKworY2ZtNjhrX2dvYWxzID0gWworCSgiQUUuQ0ZNNjhLLnNsYiIsICJ0b29sYm94bW9kdWxlcy5DRk02OEsuc2xiIiksCisJKCJDdGwuQ0ZNNjhLLnNsYiIsICJ0b29sYm94bW9kdWxlcy5DRk02OEsuc2xiIiksCisJKCJEbGcuQ0ZNNjhLLnNsYiIsICJ0b29sYm94bW9kdWxlcy5DRk02OEsuc2xiIiksCisJKCJFdnQuQ0ZNNjhLLnNsYiIsICJ0b29sYm94bW9kdWxlcy5DRk02OEsuc2xiIiksCisJKCJGbS5DRk02OEsuc2xiIiwgInRvb2xib3htb2R1bGVzLkNGTTY4Sy5zbGIiKSwKKwkoIk1lbnUuQ0ZNNjhLLnNsYiIsICJ0b29sYm94bW9kdWxlcy5DRk02OEsuc2xiIiksCisJKCJMaXN0LkNGTTY4Sy5zbGIiLCAidG9vbGJveG1vZHVsZXMuQ0ZNNjhLLnNsYiIpLAorCSgiUWQuQ0ZNNjhLLnNsYiIsICJ0b29sYm94bW9kdWxlcy5DRk02OEsuc2xiIiksCisJKCJSZXMuQ0ZNNjhLLnNsYiIsICJ0b29sYm94bW9kdWxlcy5DRk02OEsuc2xiIiksCisJKCJTY3JhcC5DRk02OEsuc2xiIiwgInRvb2xib3htb2R1bGVzLkNGTTY4Sy5zbGIiKSwKKwkoIlNuZC5DRk02OEsuc2xiIiwgInRvb2xib3htb2R1bGVzLkNGTTY4Sy5zbGIiKSwKKwkoIlRFLkNGTTY4Sy5zbGIiLCAidG9vbGJveG1vZHVsZXMuQ0ZNNjhLLnNsYiIpLAorCSgiV2luLkNGTTY4Sy5zbGIiLCAidG9vbGJveG1vZHVsZXMuQ0ZNNjhLLnNsYiIpLAorCisJKCJDbS5DRk02OEsuc2xiIiwgInF0bW9kdWxlcy5DRk02OEsuc2xiIiksCisJKCJRdC5DRk02OEsuc2xiIiwgInF0bW9kdWxlcy5DRk02OEsuc2xiIiksCiBdCiAKIApAQCAtMTIxLDEzICsxMjUsMTggQEAKIAkKIAlwcmludCBMaWJGaWxlcwogCSMgQ3JlYXRlIHRoZSBuZXcgYWxpYXNlcy4KLQlpZiBFYXN5RGlhbG9ncy5Bc2tZZXNOb0NhbmNlbCgnUHJvY2VlZCB3aXRoIGNyZWF0aW5nIG5ldyBvbmVzPycpIDw9IDA6Ci0JCXN5cy5leGl0KDApCi0JZm9yIGRzdCwgc3JjIGluIGdvYWxzOgotCQlpZiBzcmMgaW4gTGliRmlsZXM6Ci0JCQltYWNvc3Rvb2xzLm1rYWxpYXMoc3JjLCBkc3QpCi0JCWVsc2U6Ci0JCQlFYXN5RGlhbG9ncy5NZXNzYWdlKGRzdCsnIG5vdCBjcmVhdGVkOiAnK3NyYysnIG5vdCBmb3VuZCcpCisJaWYgRWFzeURpYWxvZ3MuQXNrWWVzTm9DYW5jZWwoJ1Byb2NlZWQgd2l0aCBjcmVhdGluZyBQUEMgYWxpYXNlcz8nKSA+IDA6CisJCWZvciBkc3QsIHNyYyBpbiBwcGNfZ29hbHM6CisJCQlpZiBzcmMgaW4gTGliRmlsZXM6CisJCQkJbWFjb3N0b29scy5ta2FsaWFzKHNyYywgZHN0KQorCQkJZWxzZToKKwkJCQlFYXN5RGlhbG9ncy5NZXNzYWdlKGRzdCsnIG5vdCBjcmVhdGVkOiAnK3NyYysnIG5vdCBmb3VuZCcpCisJaWYgRWFzeURpYWxvZ3MuQXNrWWVzTm9DYW5jZWwoJ1Byb2NlZWQgd2l0aCBjcmVhdGluZyBDRk02OEsgYWxpYXNlcz8nKSA+IDA6CisJCWZvciBkc3QsIHNyYyBpbiBjZm02OGtfZ29hbHM6CisJCQlpZiBzcmMgaW4gTGliRmlsZXM6CisJCQkJbWFjb3N0b29scy5ta2FsaWFzKHNyYywgZHN0KQorCQkJZWxzZToKKwkJCQlFYXN5RGlhbG9ncy5NZXNzYWdlKGRzdCsnIG5vdCBjcmVhdGVkOiAnK3NyYysnIG5vdCBmb3VuZCcpCiAJCQkKIAlFYXN5RGlhbG9ncy5NZXNzYWdlKCdBbGwgZG9uZSEnKQogCQkJCmRpZmYgLS1naXQgYS9NYWMvc2NyaXB0cy9mdWxsYnVpbGQucHkgYi9NYWMvc2NyaXB0cy9mdWxsYnVpbGQucHkKaW5kZXggNGFiZDA3OS4uZjA5MmExZCAxMDA2NDQKLS0tIGEvTWFjL3NjcmlwdHMvZnVsbGJ1aWxkLnB5CisrKyBiL01hYy9zY3JpcHRzL2Z1bGxidWlsZC5weQpAQCAtODEsMTQgKzgxLDI5IEBACiAJCSI6YnVpbGQubWFjcHBjLnNoYXJlZDpQeXRob25BcHBsZXQutSIsCiAJXSkKIF0KK0NGTTY4S19JTlNUUlVDVElPTlM9WworCShidWlsZG13cHJvamVjdCwgIkNXSUUiLCBbCisJCSI6YnVpbGQubWFjNjhrLnNoYXJlZDpQeXRob25Db3JlQ0ZNNjhLLrUiLAorCQkiOmJ1aWxkLm1hYzY4ay5zaGFyZWQ6UHl0aG9uQ0ZNNjhLLrUiLAorCQkiOmJ1aWxkLm1hYzY4ay5zaGFyZWQ6UHl0aG9uQXBwbGV0Q0ZNNjhLLrUiLAorCV0pCitdCiBQTFVHSU5fSU5TVFJVQ1RJT05TPVsKIAkoYnVpbGRtd3Byb2plY3QsICJDV0lFIiwgWwotCQkiOlBsdWdJbnM6Y3RibW9kdWxlLrUiLAotCQkiOlBsdWdJbnM6aW1nbW9kdWxlcy61IiwKLQkJIjpQbHVnSW5zOm1hY3NwZWVjaG1vZHVsZS61IiwKLQkJIjpQbHVnSW5zOnRvb2xib3htb2R1bGVzLrUiLAotCQkiOlBsdWdJbnM6d2FzdGVtb2R1bGUutSIsCi0JCSI6UGx1Z0luczpfdGtpbnRlcm1vZHVsZS61IiwKKwkJIjpQbHVnSW5zOmN0Ym1vZHVsZS5wcGMutSIsCisJCSI6UGx1Z0luczppbWdtb2R1bGVzLnBwYy61IiwKKwkJIjpQbHVnSW5zOm1hY3NwZWVjaG1vZHVsZS5wcGMutSIsCisJCSI6UGx1Z0luczp0b29sYm94bW9kdWxlcy5wcGMutSIsCisJCSI6UGx1Z0luczp3YXN0ZW1vZHVsZS5wcGMutSIsCisJCSI6UGx1Z0luczpfdGtpbnRlcm1vZHVsZS5wcGMutSIsCisJXSkKK10KK0NGTTY4S1BMVUdJTl9JTlNUUlVDVElPTlM9WworCShidWlsZG13cHJvamVjdCwgIkNXSUUiLCBbCisJCSI6UGx1Z0luczpjdGJtb2R1bGUuQ0ZNNjhLLrUiLAorCQkiOlBsdWdJbnM6dG9vbGJveG1vZHVsZXMuQ0ZNNjhLLrUiLAorCQkiOlBsdWdJbnM6d2FzdGVtb2R1bGUuQ0ZNNjhLLrUiLAorCQkiOlBsdWdJbnM6X3RraW50ZXJtb2R1bGUuQ0ZNNjhLLrUiLAogCV0pCiBdCiBNNjhLX0lOU1RSVUNUSU9OUz1bCkBAIC0xMDgsOCArMTIzLDkgQEAKIEFMTElOU1Q9WwogCSgiUFBDIHNoYXJlZCBleGVjdXRhYmxlIiwgUFBDX0lOU1RSVUNUSU9OUyksCiAJKCJQUEMgcGx1Z2luIG1vZHVsZXMiLCBQTFVHSU5fSU5TVFJVQ1RJT05TKSwKLQkoIjY4SyBleGVjdXRhYmxlIiwgTTY4S19JTlNUUlVDVElPTlMpLAotCSgiUFBDIGFwcGxldHMiLCBBUFBMRVRfSU5TVFJVQ1RJT05TKQorCSgiQ0ZNNjhLIHNoYXJlZCBleGVjdXRhYmxlIiwgQ0ZNNjhLX0lOU1RSVUNUSU9OUyksCisJKCI2OEsgc3RhbmRhbG9uZSBleGVjdXRhYmxlIiwgTTY4S19JTlNUUlVDVElPTlMpLAorCSgiQXBwbGV0cyIsIEFQUExFVF9JTlNUUlVDVElPTlMpCiBdCiAJCQkJCiBkZWYgbWFpbigpOgo=