From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 4755 invoked from network); 2 Sep 2023 22:32:24 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 2 Sep 2023 22:32:24 -0000 Content-Type: multipart/mixed; boundary="===============6135481253218872781==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_sagemath=3A_use_cython_3?= To: ml@inbox.vuxu.org From: tornaria Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sun, 03 Sep 2023 00:32:23 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============6135481253218872781== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHRvcm5hcmlhIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS90b3JuYXJp YS92b2lkLXBhY2thZ2VzIHNhZ2VtYXRoLWN5dGhvbjMKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQt bGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQ1ODg3CgpzYWdlbWF0aDogdXNlIGN5dGhvbiAzCiMj IyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJIHRlc3RlZCB0aGUgY2hhbmdlcyBpbiB0aGlzIFBS OiAqKmJyaWVmbHkqKg0KDQpTaW5jZSBodHRwczovL2dpdGh1Yi5jb20vc2FnZW1hdGgvc2FnZS9w dWxsLzM2MTA5IHdhcyBtZXJnZWQgdXBzdHJlYW0sIGl0J3Mgbm93IGFsbW9zdCB0cml2aWFsIHRv IGJ1aWxkIHNhZ2VtYXRoIHdpdGggY3l0aG9uIDMuIFRoaXMgUFIgaXMgcHJldHR5IHN0cmFpZ2h0 Zm9yd2FyZCB0byB1bmRlcnN0YW5kOg0KDQogLSBjb21taXQgN2Y4ZTY1MTRmZmE1NDQ0OWE4MGUw MWZiYWU3ZjkzNTVhNzczOWE0NiByZWJ1aWxkcyBgcHl0aG9uMy1wcGxweWAgdXNpbmcgY3l0aG9u IDMuIE5vdGhpbmcgZmFuY3kgaGVyZSBhbmQgdGhpcyBjb21taXQgd2FzIGFscmVhZHkgdGVzdGVk IGFuZCBvbmx5IGRyb3BwZWQgc2luY2UgaXQgdHVybmVkIG91dCBpdCBoYWQgdG8gYmUgYnVpbHQg d2l0aCB0aGUgc2FtZSB2ZXJzaW9uIG9mIGN5dGhvbiBhcyBzYWdlbWF0aCBpdHNlbGYuDQogLSBj b21taXQgZGYwZDIxODcxY2U4NTBlZmVhM2ZjMDFmMTlhM2Q5ZThjMGQ1ZjBkNCBpcyBqdXN0IGFk ZGluZyBhIGZldyBwYXRjaGVzIHRvIHNhZ2VtYXRoLCBzd2l0Y2hpbmcgdG8gY3l0aG9uIDMsIGFu ZCBidW1waW5nLg0KDQpEZXNjcmlwdGlvbiBvZiBhZGRlZCBwYXRjaGVzOg0KMS4gcGF0Y2ggYDM2 MTA5LTAwcHJlLnBhdGNoYDogdGhpcyBpcyBoYW5kIHBpY2tlZCB0cml2aWFsIHBhdGNoIHRoYXQg YWxsb3dzIHVzIHRvIGFwcGx5IGh0dHBzOi8vZ2l0aHViLmNvbS9zYWdlbWF0aC9zYWdlL3B1bGwv MzYxMDkgY2xlYW5seSBvbiAxMC4xIChzaW5jZSB0aGF0IFBSIGlzIGJhc2VkIG9uIDEwLjEuYmV0 YTApLiBBbGwgY2hhbmdlcyBhcmUgY29tbWVudHMhDQoyLiBwYXRjaCBgMzYxMDktcHJlcGFyZV9m b3JfY3l0aG9uXzMuMC5wYXRjaGA6IHRoaXMgaXMgbG9uZywgdGFrZW4gdmVyYmF0aW0gZnJvbSBo dHRwczovL2dpdGh1Yi5jb20vc2FnZW1hdGgvc2FnZS9wdWxsLzM2MTA5LmRpZmYsIGFuZCBpcyBh bHJlYWR5IG1lcmdlZC4NCjMuIHBhdGNoIGBidWlsZC1jeXRob24zLnBhdGNoYDogdGhpcyBpcyAy IGxpbmVzIGNoYW5nZWQgcGx1cyA0IGxlZ2FjeSBidWlsZCBvcHRpb25zIGFkZGVkIHRvIGN5dGhv biBzZXR1cC4NCjQuIHBhdGNoIGBmaXgtZG9jdGVzdC1jeXRob24zLnBhdGNoYDogdGhpcyBpcyBh IGZldyBmaXhlcyBpbiBkb2N0ZXN0cyB0byBhY2NvbW9kYXRlIG1pbm9yIGNoYW5nZXMgaW4gY3l0 aG9uIG91dHB1dCAoYF9fcmVwcl9fYCBmb3IgY3l0aG9uIGNsYXNzZXMsIGZ1bmN0aW9ucywgYW5k IGdlbmVyYXRvcnMpLg0KDQpDQzogQGFoZXNmb3JkIA0KDQo8IS0tDQojIyMjIE5ldyBwYWNrYWdl DQotIFRoaXMgbmV3IHBhY2thZ2UgY29uZm9ybXMgdG8gdGhlIFtwYWNrYWdlIHJlcXVpcmVtZW50 c10oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rl ci9DT05UUklCVVRJTkcubWQjcGFja2FnZS1yZXF1aXJlbWVudHMpOiAqKllFUyoqfCoqTk8qKg0K LS0+DQoNCjwhLS0gTm90ZTogSWYgdGhlIGJ1aWxkIGlzIGxpa2VseSB0byB0YWtlIG1vcmUgdGhh biAyIGhvdXJzLCBwbGVhc2UgYWRkIGNpIHNraXAgdGFnIGFzIGRlc2NyaWJlZCBpbg0KaHR0cHM6 Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklC VVRJTkcubWQjY29udGludW91cy1pbnRlZ3JhdGlvbg0KYW5kIHRlc3QgYXQgbGVhc3Qgb25lIG5h dGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwgYXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxkLg0K SWdub3JlIHRoaXMgc2VjdGlvbiBpZiB0aGlzIFBSIGlzIG5vdCBza2lwcGluZyBDSS4NCi0tPg0K PCEtLQ0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0aW5nDQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5 IGZvciBteSBuYXRpdmUgYXJjaGl0ZWN0dXJlLCAoQVJDSC1MSUJDKQ0KLSBJIGJ1aWx0IHRoaXMg UFIgbG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAoaWYgc3VwcG9ydGVkLiBtYXJrIGNy b3NzYnVpbGRzKToNCiAgLSBhYXJjaDY0LW11c2wNCiAgLSBhcm12N2wNCiAgLSBhcm12NmwtbXVz bA0KLS0+DQoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC80NTg4Ny5wYXRjaCBpcyBhdHRhY2hlZA== --===============6135481253218872781== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-sagemath-cython3-45887.patch" RnJvbSA3ZjhlNjUxNGZmYTU0NDQ5YTgwZTAxZmJhZTdmOTM1NWE3NzM5YTQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R29uemFsbz0yMFRvcm5hcj1DMz1BRGE/PSA8 dG9ybmFyaWFAY21hdC5lZHUudXk+CkRhdGU6IFdlZCwgMTkgSnVsIDIwMjMgMjE6MDQ6MzMgLTAz MDAKU3ViamVjdDogW1BBVENIIDEvMl0gcHl0aG9uMy1wcGxweTogcGF0Y2ggYW5kIHJlYnVpbGQg Zm9yIEN5dGhvbiAzCgotLS0KIC4uLjg1MzdmYTdlYTA2MWViYjhkNTEzMWIxZTIzNjczZWFmNzQx ZC5wYXRjaCB8IDIyICsrKysrKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMvY3l0aG9uMy1sZWdh Y3kucGF0Y2ggICAgICAgICAgICAgIHwgMjMgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9w eXRob24zLXBwbHB5L3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgIDIgKy0KIDMgZmlsZXMgY2hh bmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvcHl0aG9uMy1wcGxweS9wYXRjaGVzL2FhYTI4NTM3ZmE3ZWEwNjFlYmI4ZDUxMzFi MWUyMzY3M2VhZjc0MWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhvbjMt cHBscHkvcGF0Y2hlcy9jeXRob24zLWxlZ2FjeS5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cHl0aG9uMy1wcGxweS9wYXRjaGVzL2FhYTI4NTM3ZmE3ZWEwNjFlYmI4ZDUxMzFiMWUyMzY3M2Vh Zjc0MWQucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbjMtcHBscHkvcGF0Y2hlcy9hYWEyODUzN2ZhN2Vh MDYxZWJiOGQ1MTMxYjFlMjM2NzNlYWY3NDFkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMDAuLjIxYmMyYTUyMTRkZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3B5dGhvbjMtcHBscHkvcGF0Y2hlcy9hYWEyODUzN2ZhN2VhMDYxZWJiOGQ1MTMxYjFlMjM2 NzNlYWY3NDFkLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKK0Zyb20gYWFhMjg1MzdmYTdlYTA2MWVi YjhkNTEzMWIxZTIzNjczZWFmNzQxZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1h dHRoaWFzIEtvZXBwZSA8bWtvZXBwZUBtYXRoLnVjZGF2aXMuZWR1PgorRGF0ZTogU3VuLCAzMSBK dWwgMjAyMiAxMjozOTozNCAtMDcwMAorU3ViamVjdDogW1BBVENIXSBwcGwvYml0X2FycmF5cy5w eGQ6IFVzZSByZWxhdGl2ZSBjaW1wb3J0CisKKy0tLQorIHBwbC9iaXRfYXJyYXlzLnB4ZCB8IDIg Ky0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlm ZiAtLWdpdCBhL3BwbC9iaXRfYXJyYXlzLnB4ZCBiL3BwbC9iaXRfYXJyYXlzLnB4ZAoraW5kZXgg ZWI1NzQzNC4uMTQ1YTk3OCAxMDA2NDQKKy0tLSBhL3BwbC9iaXRfYXJyYXlzLnB4ZAorKysrIGIv cHBsL2JpdF9hcnJheXMucHhkCitAQCAtMSw0ICsxLDQgQEAKKy1mcm9tIHBwbF9kZWNsIGNpbXBv cnQgKgorK2Zyb20gLnBwbF9kZWNsIGNpbXBvcnQgKgorIAorIGNkZWYgY2xhc3MgQml0X1Jvdyhv YmplY3QpOgorICAgICBjZGVmIFBQTF9CaXRfUm93ICp0aGlzcHRyCistLSAKK0dpdExhYgorCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbjMtcHBscHkvcGF0Y2hlcy9jeXRob24zLWxlZ2FjeS5w YXRjaCBiL3NyY3BrZ3MvcHl0aG9uMy1wcGxweS9wYXRjaGVzL2N5dGhvbjMtbGVnYWN5LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLmUwMGI5OWY4YzVmMmUK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3B5dGhvbjMtcHBscHkvcGF0Y2hlcy9jeXRob24z LWxlZ2FjeS5wYXRjaApAQCAtMCwwICsxLDIzIEBACitjb21taXQgZTZmM2U2NjE1NDEzOGNlM2Uz MWU4MDNlNzRiOGM3MTc4N2M3MGFjYworQXV0aG9yOiBHb256YWxvIFRvcm5hcsOtYSA8dG9ybmFy aWFAY21hdC5lZHUudXk+CitEYXRlOiAgIFdlZCBKdWwgMTkgMjA6NDc6NTIgMjAyMyAtMDMwMAor CisgICAgY3l0aG9uMyBzdXBwb3J0IHVzaW5nIGxlZ2FjeSBkaXJlY3RpdmVzCisKK2RpZmYgLS1n aXQgYS9zZXR1cC5weSBiL3NldHVwLnB5CitpbmRleCAxM2Q1NDNiLi41NWRjZDM0IDEwMDc1NQor LS0tIGEvc2V0dXAucHkKKysrKyBiL3NldHVwLnB5CitAQCAtMzgsNyArMzgsMTEgQEAgY2xhc3Mg YnVpbGRfZXh0KF9idWlsZF9leHQpOgorICAgICAgICAgc2VsZi5leHRlbnNpb25zWzpdID0gY3l0 aG9uaXplKAorICAgICAgICAgICAgIHNlbGYuZXh0ZW5zaW9ucywKKyAgICAgICAgICAgICBpbmNs dWRlX3BhdGg9c3lzLnBhdGgsCistICAgICAgICAgICAgY29tcGlsZXJfZGlyZWN0aXZlcz17J2Vt YmVkc2lnbmF0dXJlJzogVHJ1ZX0pCisrICAgICAgICAgICAgY29tcGlsZXJfZGlyZWN0aXZlcz17 CisrICAgICAgICAgICAgICAgICdlbWJlZHNpZ25hdHVyZSc6IFRydWUsCisrICAgICAgICAgICAg ICAgICdsZWdhY3lfaW1wbGljaXRfbm9leGNlcHQnOiBUcnVlLAorKyAgICAgICAgICAgICAgICAn Y19hcGlfYmlub3BfbWV0aG9kcyc6IFRydWUsCisrICAgICAgICAgICAgICAgIH0pCisgCisgICAg ICAgICBfYnVpbGRfZXh0LnJ1bihzZWxmKQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24z LXBwbHB5L3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24zLXBwbHB5L3RlbXBsYXRlCmluZGV4IDZj MWU4M2FhMDkxYzcuLmZlNmIwOGRiYTQwZjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uMy1w cGxweS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3B5dGhvbjMtcHBscHkvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdweXRob24zLXBwbHB5JwogcGtnbmFtZT1w eXRob24zLXBwbHB5CiB2ZXJzaW9uPTAuOC43Ci1yZXZpc2lvbj0zCityZXZpc2lvbj00CiBidWls ZF9zdHlsZT1weXRob24zLW1vZHVsZQogaG9zdG1ha2VkZXBlbmRzPSJweXRob24zLXNldHVwdG9v bHMgcHl0aG9uMy1DeXRob24wLjI5IgogbWFrZWRlcGVuZHM9InB5dGhvbjMtY3lzaWduYWxzIHB5 dGhvbjMtZ21weTIgcHl0aG9uMy1kZXZlbCBnbXAtZGV2ZWwKCkZyb20gZGYwZDIxODcxY2U4NTBl ZmVhM2ZjMDFmMTlhM2Q5ZThjMGQ1ZjBkNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog PT9VVEYtOD9xP0dvbnphbG89MjBUb3JuYXI9QzM9QURhPz0gPHRvcm5hcmlhQGNtYXQuZWR1LnV5 PgpEYXRlOiBUdWUsIDI5IEF1ZyAyMDIzIDIyOjE0OjQ5IC0wMzAwClN1YmplY3Q6IFtQQVRDSCAy LzJdIHNhZ2VtYXRoOiB1c2UgY3l0aG9uIDMuMAoKLS0tCiBzcmNwa2dzL3NhZ2VtYXRoL3BhdGNo ZXMvMzYxMDktMDBwcmUucGF0Y2ggICAgfCAgIDUwICsKIC4uLi8zNjEwOS1wcmVwYXJlX2Zvcl9j eXRob25fMy4wLnBhdGNoICAgICAgICB8IDk5OTUgKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mv c2FnZW1hdGgvcGF0Y2hlcy9idWlsZC1jeXRob24zLnBhdGNoICB8ICAgNDQgKwogLi4uL3BhdGNo ZXMvZml4LWRvY3Rlc3QtY3l0aG9uMy5wYXRjaCAgICAgICAgIHwgIDIwNyArCiBzcmNwa2dzL3Nh Z2VtYXRoL3BhdGNoZXMvZ2V0X3BhdGNoZXMgICAgICAgICAgfCAgICA3ICstCiBzcmNwa2dzL3Nh Z2VtYXRoL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICstCiA2IGZpbGVzIGNo YW5nZWQsIDEwMzA0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzM2MTA5LTAwcHJlLnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzM2MTA5LXByZXBhcmVfZm9yX2N5 dGhvbl8zLjAucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3NhZ2VtYXRoL3BhdGNo ZXMvYnVpbGQtY3l0aG9uMy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc2FnZW1h dGgvcGF0Y2hlcy9maXgtZG9jdGVzdC1jeXRob24zLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9zYWdlbWF0aC9wYXRjaGVzLzM2MTA5LTAwcHJlLnBhdGNoIGIvc3JjcGtncy9zYWdlbWF0aC9w YXRjaGVzLzM2MTA5LTAwcHJlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMDAuLjBhMzBkNjIyZjBmNjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3NhZ2Vt YXRoL3BhdGNoZXMvMzYxMDktMDBwcmUucGF0Y2gKQEAgLTAsMCArMSw1MCBAQAorUHJlLXBhdGNo IHNvIHRoYXQgUFIgIzM2MTA5IGFwcGxpZXMgY2xlYW5seSBvbiB0b3Agb2YgMTAuMQorCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9ob3BmX2FsZ2VicmFzX3dpdGhfYmFzaXMucHkg Yi9zcmMvc2FnZS9jYXRlZ29yaWVzL2hvcGZfYWxnZWJyYXNfd2l0aF9iYXNpcy5weQoraW5kZXgg ZWE0MDE4OTZjYTAuLjI5YjZmNDhhODZmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY2F0ZWdvcmll cy9ob3BmX2FsZ2VicmFzX3dpdGhfYmFzaXMucHkKKysrKyBiL3NyYy9zYWdlL2NhdGVnb3JpZXMv aG9wZl9hbGdlYnJhc193aXRoX2Jhc2lzLnB5CitAQCAtMzMsMTEgKzMzLDExIEBAIGNsYXNzIEhv cGZBbGdlYnJhc1dpdGhCYXNpcyhDYXRlZ29yeVdpdGhBeGlvbV9vdmVyX2Jhc2VfcmluZyk6Cisg ICAgIFdlIG5vdyBzaG93IGhvdyB0byB1c2UgYSBzaW1wbGUgSG9wZiBhbGdlYnJhLCBuYW1lbHkg dGhlIGdyb3VwIGFsZ2VicmEgb2YgdGhlIGRpaGVkcmFsIGdyb3VwCisgICAgIChzZWUgYWxzbyBB bGdlYnJhc1dpdGhCYXNpcyk6OgorIAorLSAgICAgICAgc2FnZTogQSA9IEMuZXhhbXBsZSgpOyBB ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj IG9wdGlvbmFsIC0gc2FnZS5ncm91cHMKKysgICAgICAgIHNhZ2U6IEEgPSBDLmV4YW1wbGUoKTsg QSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBuZWVkcyBzYWdlLmdyb3VwcworICAgICAgICAgQW4gZXhhbXBsZSBvZiBIb3BmIGFsZ2VicmEg d2l0aCBiYXNpczogdGhlIGdyb3VwIGFsZ2VicmEgb2YgdGhlCisgICAgICAgICAgRGloZWRyYWwg Z3JvdXAgb2Ygb3JkZXIgNiBhcyBhIHBlcm11dGF0aW9uIGdyb3VwIG92ZXIgUmF0aW9uYWwgRmll bGQKKy0gICAgICAgIHNhZ2U6IEEuX19jdXN0b21fbmFtZSA9ICJBIiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UuZ3Jv dXBzCistICAgICAgICBzYWdlOiBBLmNhdGVnb3J5KCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLmdy b3VwcworKyAgICAgICAgc2FnZTogQS5fX2N1c3RvbV9uYW1lID0gIkEiICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UuZ3JvdXBz CisrICAgICAgICBzYWdlOiBBLmNhdGVnb3J5KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbmVlZHMgc2FnZS5ncm91cHMKKyAg ICAgICAgIENhdGVnb3J5IG9mIGZpbml0ZSBkaW1lbnNpb25hbCBob3BmIGFsZ2VicmFzIHdpdGgg YmFzaXMgb3ZlciBSYXRpb25hbCBGaWVsZAorIAorICAgICAgICAgc2FnZTogQS5vbmVfYmFzaXMo KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIG9wdGlvbmFsIC0gc2FnZS5ncm91cHMKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jYXRl Z29yaWVzL21vZHVsZXNfd2l0aF9iYXNpcy5weSBiL3NyYy9zYWdlL2NhdGVnb3JpZXMvbW9kdWxl c193aXRoX2Jhc2lzLnB5CitpbmRleCA4NWEwZDUwMjM5YS4uYzBlMjk4ODZiNWYgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9jYXRlZ29yaWVzL21vZHVsZXNfd2l0aF9iYXNpcy5weQorKysrIGIvc3Jj L3NhZ2UvY2F0ZWdvcmllcy9tb2R1bGVzX3dpdGhfYmFzaXMucHkKK0BAIC02Niw5ICs2Niw5IEBA IGNsYXNzIE1vZHVsZXNXaXRoQmFzaXMoQ2F0ZWdvcnlXaXRoQXhpb21fb3Zlcl9iYXNlX3Jpbmcp OgorIAorICAgICBMZXQgYFhgIGFuZCBgWWAgYmUgdHdvIG1vZHVsZXMgd2l0aCBiYXNpcy4gV2Ug Y2FuIGJ1aWxkIGBIb20oWCxZKWA6OgorIAorLSAgICAgICAgc2FnZTogWCA9IENvbWJpbmF0b3Jp YWxGcmVlTW9kdWxlKFFRLCBbMSwyXSk7IFguX19jdXN0b21fbmFtZSA9ICJYIiAgICAgICAgICAg ICAjIG9wdGlvbmFsIC0gc2FnZS5tb2R1bGVzCistICAgICAgICBzYWdlOiBZID0gQ29tYmluYXRv cmlhbEZyZWVNb2R1bGUoUVEsIFszLDRdKTsgWS5fX2N1c3RvbV9uYW1lID0gIlkiICAgICAgICAg ICAgICMgb3B0aW9uYWwgLSBzYWdlLm1vZHVsZXMKKy0gICAgICAgIHNhZ2U6IEggPSBIb20oWCwg WSk7IEggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIyBvcHRpb25hbCAtIHNhZ2UubW9kdWxlcworKyAgICAgICAgc2FnZTogWCA9IENvbWJp bmF0b3JpYWxGcmVlTW9kdWxlKFFRLCBbMSwyXSk7IFguX19jdXN0b21fbmFtZSA9ICJYIiAgICAg ICAgICAgICAjIG5lZWRzIHNhZ2UubW9kdWxlcworKyAgICAgICAgc2FnZTogWSA9IENvbWJpbmF0 b3JpYWxGcmVlTW9kdWxlKFFRLCBbMyw0XSk7IFkuX19jdXN0b21fbmFtZSA9ICJZIiAgICAgICAg ICAgICAjIG5lZWRzIHNhZ2UubW9kdWxlcworKyAgICAgICAgc2FnZTogSCA9IEhvbShYLCBZKTsg SCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIG5lZWRzIHNhZ2UubW9kdWxlcworICAgICAgICAgU2V0IG9mIE1vcnBoaXNtcyBmcm9tIFgg dG8gWQorICAgICAgICAgIGluIENhdGVnb3J5IG9mIGZpbml0ZSBkaW1lbnNpb25hbCB2ZWN0b3Ig c3BhY2VzIHdpdGggYmFzaXMgb3ZlciBSYXRpb25hbCBGaWVsZAorIAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL21pc2MvY2FjaGVmdW5jLnB5eCBiL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB5eAor aW5kZXggZGFjNGM2ODRmNDcuLjliMjkxNmU1NDdkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlz Yy9jYWNoZWZ1bmMucHl4CisrKysgYi9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5weXgKK0BAIC0y OTcsNiArMjk3LDcgQEAgbWV0aG9kcyBvZiBleHRlbnNpb24gY2xhc3NlcywgYXMgbG9uZyBhcyB0 aGV5IGVpdGhlciBzdXBwb3J0IGF0dHJpYnV0ZSBhc3NpZ25tZW4KKyBvciBoYXZlIGEgcHVibGlj IGF0dHJpYnV0ZSBvZiB0eXBlIGBgPGRpY3Q+YGAgY2FsbGVkIGBgX19jYWNoZWRfbWV0aG9kc2Bg LiBUaGUKKyBsYXR0ZXIgaXMgZWFzeTo6CisgCisrICAgIHNhZ2U6ICMgbmVlZHMgc2FnZS5taXNj LmN5dGhvbgorICAgICBzYWdlOiBjeXRob25fY29kZSA9IFsKKyAgICAgLi4uLjogImZyb20gc2Fn ZS5taXNjLmNhY2hlZnVuYyBpbXBvcnQgY2FjaGVkX21ldGhvZCIsCisgICAgIC4uLi46ICJjZGVm IGNsYXNzIE15Q2xhc3M6IiwKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy8z NjEwOS1wcmVwYXJlX2Zvcl9jeXRob25fMy4wLnBhdGNoIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRj aGVzLzM2MTA5LXByZXBhcmVfZm9yX2N5dGhvbl8zLjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uOTMzOTBmN2VlZjk5MgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy8zNjEwOS1wcmVwYXJlX2Zvcl9jeXRob25fMy4wLnBh dGNoCkBAIC0wLDAgKzEsOTk5NSBAQAorZGlmZiAtLWdpdCBhL3NyYy9kb2MvZW4vdGhlbWF0aWNf dHV0b3JpYWxzL2NvZXJjaW9uX2FuZF9jYXRlZ29yaWVzLnJzdCBiL3NyYy9kb2MvZW4vdGhlbWF0 aWNfdHV0b3JpYWxzL2NvZXJjaW9uX2FuZF9jYXRlZ29yaWVzLnJzdAoraW5kZXggNGVmZTY4YTI2 MTcuLmRlMjM0OWE5YTNmIDEwMDY0NAorLS0tIGEvc3JjL2RvYy9lbi90aGVtYXRpY190dXRvcmlh bHMvY29lcmNpb25fYW5kX2NhdGVnb3JpZXMucnN0CisrKysgYi9zcmMvZG9jL2VuL3RoZW1hdGlj X3R1dG9yaWFscy9jb2VyY2lvbl9hbmRfY2F0ZWdvcmllcy5yc3QKK0BAIC0xMDYsNyArMTA2LDYg QEAgVGhpcyBiYXNlIGNsYXNzIHByb3ZpZGVzIGEgbG90IG1vcmUgbWV0aG9kcyB0aGFuIGEgZ2Vu ZXJhbCBwYXJlbnQ6OgorIAorICAgICBzYWdlOiBbcCBmb3IgcCBpbiBkaXIoRmllbGQpIGlmIHAg bm90IGluIGRpcihQYXJlbnQpXQorICAgICBbJ19fZnJhY3Rpb25fZmllbGQnLAorLSAgICAgJ19f aWRlYWxfbW9ub2lkJywKKyAgICAgICdfX2l0ZXJfXycsCisgICAgICAnX19sZW5fXycsCisgICAg ICAnX19yeG9yX18nLAorQEAgLTExOSw2ICsxMTgsNyBAQCBUaGlzIGJhc2UgY2xhc3MgcHJvdmlk ZXMgYSBsb3QgbW9yZSBtZXRob2RzIHRoYW4gYSBnZW5lcmFsIHBhcmVudDo6CisgICAgICAnX2Rl ZmF1bHRfY2F0ZWdvcnknLAorICAgICAgJ19nZW5zJywKKyAgICAgICdfaWRlYWxfY2xhc3NfJywK KysgICAgICdfaWRlYWxfbW9ub2lkJywKKyAgICAgICdfbGF0ZXhfbmFtZXMnLAorICAgICAgJ19s aXN0JywKKyAgICAgICdfb25lX2VsZW1lbnQnLAorZGlmZiAtLWdpdCBhL3NyYy9kb2MvZW4vdGhl bWF0aWNfdHV0b3JpYWxzL3R1dG9yaWFsLW9iamVjdHMtYW5kLWNsYXNzZXMucnN0IGIvc3JjL2Rv Yy9lbi90aGVtYXRpY190dXRvcmlhbHMvdHV0b3JpYWwtb2JqZWN0cy1hbmQtY2xhc3Nlcy5yc3QK K2luZGV4IDUxYWVjOTg5ODEwLi41NTNhOTQ2YzRkOCAxMDA2NDQKKy0tLSBhL3NyYy9kb2MvZW4v dGhlbWF0aWNfdHV0b3JpYWxzL3R1dG9yaWFsLW9iamVjdHMtYW5kLWNsYXNzZXMucnN0CisrKysg Yi9zcmMvZG9jL2VuL3RoZW1hdGljX3R1dG9yaWFscy90dXRvcmlhbC1vYmplY3RzLWFuZC1jbGFz c2VzLnJzdAorQEAgLTI5OCw3ICsyOTgsNyBAQCBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJh cnkvIGZvciBhIGNvbXBsZXRlIGxpc3QuIDo6CisgICAgICAgICBzYWdlOiBlbAorICAgICAgICAg YmxhCisgICAgICAgICBzYWdlOiBlbC5fX2RpY3RfXworLSAgICAgICAgeydfX2N1c3RvbV9uYW1l JzogJ2JsYScsICd2YWx1ZSc6IDQyfQorKyAgICAgICAgeydfU2FnZU9iamVjdF9fY3VzdG9tX25h bWUnOiAnYmxhJywgJ3ZhbHVlJzogNDJ9CisgCisgICAgIExvdHMgb2YgU2FnZSBvYmplY3RzIGFy ZSBub3QgUHl0aG9uIG9iamVjdHMgYnV0IGNvbXBpbGVkIEN5dGhvbgorICAgICBvYmplY3RzLiBQ eXRob24gc2VlcyB0aGVtIGFzIGJ1aWx0aW4gb2JqZWN0cyBhbmQgeW91IGRvIG5vdCBoYXZlCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9hbGdlYnJhX2xl dHRlcnBsYWNlLnB4ZCBiL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJy YV9sZXR0ZXJwbGFjZS5weGQKK2luZGV4IGQxZDE2MmMzYjQwLi40N2E3Mjc1YWJhMCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJw bGFjZS5weGQKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJy YV9sZXR0ZXJwbGFjZS5weGQKK0BAIC0yMCwxNiArMjAsMTUgQEAgY2RlZiBjbGFzcyBGcmVlQWxn ZWJyYV9sZXR0ZXJwbGFjZV9saWJzaW5ndWxhcigpOgorICAgICBjZGVmIHJpbmcqIF9scF9yaW5n CisgICAgIGNkZWYgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIF9jb21tdXRhdGl2ZV9yaW5n CisgICAgIGNkZWYgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIF9scF9yaW5nX2ludGVybmFs CistICAgIGNkZWYgb2JqZWN0IF9fbmdlbnMKKysgICAgY2RlZiBvYmplY3QgX25nZW5zCisgCisg Y2RlZiBjbGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgY2RlZiBN UG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgX2NvbW11dGF0aXZlX3JpbmcKKyAgICAgY2RlZiBN UG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgX2N1cnJlbnRfcmluZworICAgICBjZGVmIGludCBf ZGVnYm91bmQKKy0gICAgY2RlZiBpbnQgX19uZ2VucworKyAgICBjZGVmIGludCBfbmdlbnMKKyAg ICAgY2RlZiBpbnQgX25iX3NsYWNrdmFycworICAgICBjZGVmIG9iamVjdCBfX21vbm9pZAorLSAg ICBjZGVmIHB1YmxpYyBvYmplY3QgX19jdXN0b21fbmFtZQorICAgICBjZGVmIHN0ciBleHBvbmVu dHNfdG9fc3RyaW5nKHNlbGYsIEUpCisgICAgIGNkZWYgc3RyIGV4cG9uZW50c190b19sYXRleChz ZWxmLCBFKQorICAgICBjZGVmIHR1cGxlIF9kZWdyZWVzCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv YWxnZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9hbGdlYnJhX2xldHRlcnBsYWNlLnB5eCBiL3NyYy9z YWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJwbGFjZS5weXgKK2lu ZGV4IGU5YzcwYzlkZTI5Li41M2YwZGZkZWE2ZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FsZ2Vi cmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJwbGFjZS5weXgKKysrKyBiL3NyYy9z YWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJwbGFjZS5weXgKK0BA IC0yNTUsNyArMjU1LDcgQEAgY2RlZiBjbGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFjZShBbGdl YnJhKToKKyAgICAgICAgICIiIgorICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoUiwgTVBvbHlu b21pYWxSaW5nX2xpYnNpbmd1bGFyKToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImEg bGV0dGVycGxhY2UgYWxnZWJyYSBtdXN0IGJlIHByb3ZpZGVkIGJ5IGEgcG9seW5vbWlhbCByaW5n IG9mIHR5cGUgJXMiICUgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyKQorLSAgICAgICAgc2Vs Zi5fX25nZW5zID0gUi5uZ2VucygpCisrICAgICAgICBzZWxmLl9uZ2VucyA9IFIubmdlbnMoKQor ICAgICAgICAgaWYgZGVncmVlcyBpcyBOb25lOgorICAgICAgICAgICAgIHZhcm5hbWVzID0gUi52 YXJpYWJsZV9uYW1lcygpCisgICAgICAgICAgICAgc2VsZi5fbmJfc2xhY2t2YXJzID0gMAorQEAg LTI2OSwxMiArMjY5LDEyIEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxn ZWJyYSk6CisgICAgICAgICBzZWxmLl9jdXJyZW50X3JpbmcgPSBtYWtlX2xldHRlcnBsYWNlX3Jp bmcoUiwgMSkKKyAgICAgICAgIHNlbGYuX2RlZ2JvdW5kID0gMQorICAgICAgICAgaWYgZGVncmVl cyBpcyBOb25lOgorLSAgICAgICAgICAgIHNlbGYuX2RlZ3JlZXMgPSB0dXBsZShbaW50KDEpXSAq IHNlbGYuX19uZ2VucykKKysgICAgICAgICAgICBzZWxmLl9kZWdyZWVzID0gdHVwbGUoW2ludCgx KV0gKiBzZWxmLl9uZ2VucykKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgaWYgKG5vdCBp c2luc3RhbmNlKGRlZ3JlZXMsICh0dXBsZSwgbGlzdCkpKSBcCistICAgICAgICAgICAgICAgICAg ICBvciBsZW4oZGVncmVlcykgIT0gc2VsZi5fX25nZW5zIC0gc2VsZi5fbmJfc2xhY2t2YXJzIFwK KysgICAgICAgICAgICAgICAgICAgIG9yIGxlbihkZWdyZWVzKSAhPSBzZWxmLl9uZ2VucyAtIHNl bGYuX25iX3NsYWNrdmFycyBcCisgICAgICAgICAgICAgICAgICAgICBvciBhbnkoaSA8PSAwIGZv ciBpIGluIGRlZ3JlZXMpOgorLSAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoInRoZSBn ZW5lcmF0b3IgZGVncmVlcyBtdXN0IGJlIGdpdmVuIGJ5IGEgbGlzdCBvciB0dXBsZSBvZiAlZCBw b3NpdGl2ZSBpbnRlZ2VycyIgJSAoc2VsZi5fX25nZW5zIC0gMSkpCisrICAgICAgICAgICAgICAg IHJhaXNlIFR5cGVFcnJvcigidGhlIGdlbmVyYXRvciBkZWdyZWVzIG11c3QgYmUgZ2l2ZW4gYnkg YSBsaXN0IG9yIHR1cGxlIG9mICVkIHBvc2l0aXZlIGludGVnZXJzIiAlIChzZWxmLl9uZ2VucyAt IDEpKQorICAgICAgICAgICAgIHNlbGYuX2RlZ3JlZXMgPSB0dXBsZShbaW50KGkpIGZvciBpIGlu IGRlZ3JlZXNdKQorICAgICAgICAgICAgIHNlbGYuc2V0X2RlZ2JvdW5kKG1heChzZWxmLl9kZWdy ZWVzKSkKKyAgICAgICAgIHNlbGYuX3BvcHVsYXRlX2NvZXJjaW9uX2xpc3RzXyhjb2VyY2VfbGlz dD1bYmFzZV9yaW5nXSkKK0BAIC0zMDUsNyArMzA1LDcgQEAgY2RlZiBjbGFzcyBGcmVlQWxnZWJy YV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgICAgICAgICBzYWdlOiBGLm5nZW5zKCkKKyAg ICAgICAgICAgICAzCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9fbmdlbnMg LSBzZWxmLl9uYl9zbGFja3ZhcnMKKysgICAgICAgIHJldHVybiBzZWxmLl9uZ2VucyAtIHNlbGYu X25iX3NsYWNrdmFycworIAorICAgICBkZWYgZ2VuKHNlbGYsIGkpOgorICAgICAgICAgIiIiCitA QCAtMzI3LDE3ICszMjcsMTcgQEAgY2RlZiBjbGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFjZShB bGdlYnJhKToKKyAgICAgICAgICAgICBzYWdlOiBGLmdlbigyKQorICAgICAgICAgICAgIGMKKyAg ICAgICAgICIiIgorLSAgICAgICAgaWYgaSA+PSBzZWxmLl9fbmdlbnMgLSBzZWxmLl9uYl9zbGFj a3ZhcnM6CistICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGhpcyBmcmVlIGFsZ2VicmEg b25seSBoYXMgJWQgZ2VuZXJhdG9ycyIgJSAoc2VsZi5fX25nZW5zIC0gc2VsZi5fbmJfc2xhY2t2 YXJzKSkKKysgICAgICAgIGlmIGkgPj0gc2VsZi5fbmdlbnMgLSBzZWxmLl9uYl9zbGFja3ZhcnM6 CisrICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGhpcyBmcmVlIGFsZ2VicmEgb25seSBo YXMgJWQgZ2VuZXJhdG9ycyIgJSAoc2VsZi5fbmdlbnMgLSBzZWxmLl9uYl9zbGFja3ZhcnMpKQor ICAgICAgICAgaWYgc2VsZi5fZ2VucyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICByZXR1cm4g c2VsZi5fZ2Vuc1tpXQorICAgICAgICAgZGVnID0gc2VsZi5fZGVncmVlc1tpXQorICAgICAgICAg IyBzZWxmLnNldF9kZWdib3VuZChkZWcpCisgICAgICAgICBwID0gc2VsZi5fY3VycmVudF9yaW5n LmdlbihpKQorICAgICAgICAgY2RlZiBpbnQgbgorLSAgICAgICAgY2RlZiBpbnQgaiA9IHNlbGYu X19uZ2VucyAtIDEKKysgICAgICAgIGNkZWYgaW50IGogPSBzZWxmLl9uZ2VucyAtIDEKKyAgICAg ICAgIGZvciBuIGluIHJhbmdlKDEsIGRlZyk6CistICAgICAgICAgICAgaiArPSBzZWxmLl9fbmdl bnMKKysgICAgICAgICAgICBqICs9IHNlbGYuX25nZW5zCisgICAgICAgICAgICAgcCAqPSBzZWxm Ll9jdXJyZW50X3JpbmcuZ2VuKGopCisgICAgICAgICByZXR1cm4gRnJlZUFsZ2VicmFFbGVtZW50 X2xldHRlcnBsYWNlKHNlbGYsIHApCisgCitAQCAtNDEzLDcgKzQxMyw3IEBAIGNkZWYgY2xhc3Mg RnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAgICAgICAgc2FnZTogRnJl ZUFsZ2VicmEoUVEsIGltcGxlbWVudGF0aW9uPSdsZXR0ZXJwbGFjZScsIG5hbWVzPVsneCddKS5p c19jb21tdXRhdGl2ZSgpCisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAgICAg ICByZXR1cm4gc2VsZi5fX25nZW5zIC0gc2VsZi5fbmJfc2xhY2t2YXJzIDw9IDEKKysgICAgICAg IHJldHVybiBzZWxmLl9uZ2VucyAtIHNlbGYuX25iX3NsYWNrdmFycyA8PSAxCisgCisgICAgIGRl ZiBpc19maWVsZChzZWxmLCBwcm9vZj1UcnVlKToKKyAgICAgICAgICIiIgorQEAgLTQzMCw3ICs0 MzAsNyBAQCBjZGVmIGNsYXNzIEZyZWVBbGdlYnJhX2xldHRlcnBsYWNlKEFsZ2VicmEpOgorICAg ICAgICAgICAgIHNhZ2U6IEYuaXNfZmllbGQoKQorICAgICAgICAgICAgIEZhbHNlCisgICAgICAg ICAiIiIKKy0gICAgICAgIHJldHVybiAobm90IChzZWxmLl9fbmdlbnMgLSBzZWxmLl9uYl9zbGFj a3ZhcnMpKSBhbmQgc2VsZi5fYmFzZS5pc19maWVsZChwcm9vZj1wcm9vZikKKysgICAgICAgIHJl dHVybiAobm90IChzZWxmLl9uZ2VucyAtIHNlbGYuX25iX3NsYWNrdmFycykpIGFuZCBzZWxmLl9i YXNlLmlzX2ZpZWxkKHByb29mPXByb29mKQorIAorICAgICBkZWYgX3JlcHJfKHNlbGYpOgorICAg ICAgICAgIiIiCitAQCAtNDQ2LDcgKzQ0Niw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFfbGV0 dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAgICAgICAgc2FnZTogRgorICAgICAgICAgICAgIEZy ZWUgQXNzb2NpYXRpdmUgVW5pdGFsIEFsZ2VicmEgb24gMyBnZW5lcmF0b3JzICh4LCB5LCB6KSBv dmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiAiRnJlZSBB c3NvY2lhdGl2ZSBVbml0YWwgQWxnZWJyYSBvbiAlZCBnZW5lcmF0b3JzICVzIG92ZXIgJXMiICUg KHNlbGYuX19uZ2VucyAtIHNlbGYuX25iX3NsYWNrdmFycywgc2VsZi5nZW5zKCksIHNlbGYuX2Jh c2UpCisrICAgICAgICByZXR1cm4gIkZyZWUgQXNzb2NpYXRpdmUgVW5pdGFsIEFsZ2VicmEgb24g JWQgZ2VuZXJhdG9ycyAlcyBvdmVyICVzIiAlIChzZWxmLl9uZ2VucyAtIHNlbGYuX25iX3NsYWNr dmFycywgc2VsZi5nZW5zKCksIHNlbGYuX2Jhc2UpCisgCisgICAgIGRlZiBfbGF0ZXhfKHNlbGYp OgorICAgICAgICAgciIiIgorQEAgLTU4Niw3ICs1ODYsNyBAQCBjZGVmIGNsYXNzIEZyZWVBbGdl YnJhX2xldHRlcnBsYWNlKEFsZ2VicmEpOgorICAgICAgICAgICAgICAgZ2VuZXJhdGVkIGZyZWUg YWJlbGlhbiBtb25vaWQuCisgICAgICAgICAgICAgICBJbiBwcmluY2lwbGUsIHRoaXMgaXMgY29y cmVjdCwgYnV0IGl0IGlzIG5vdCBpbXBsZW1lbnRlZCwgeWV0Lj4KKyAgICAgICAgICIiIgorLSAg ICAgICAgY2RlZiBpbnQgbmdlbnMgPSBzZWxmLl9fbmdlbnMKKysgICAgICAgIGNkZWYgaW50IG5n ZW5zID0gc2VsZi5fbmdlbnMKKyAgICAgICAgIGNkZWYgaW50IG5ibG9ja3MgPSBsZW4oRSkgLy8g bmdlbnMKKyAgICAgICAgIGNkZWYgaW50IGksIGosIGJhc2UsIGV4cCwgdmFyX2luZAorICAgICAg ICAgY2RlZiBsaXN0IG91dCA9IFtdCitAQCAtNjE4LDcgKzYxOCw3IEBAIGNkZWYgY2xhc3MgRnJl ZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAgICAgICAgc2FnZTogbGF0ZXgo LShhKmIqKHorMSktYyleMikgICAgICMgaW5kaXJlY3QgZG9jdGVzdAorICAgICAgICAgICAgIFxs ZWZ0KDIgeiArIDFccmlnaHQpIGEgYiBhIGIgKyBcbGVmdCh6ICsgMVxyaWdodCkgYSBiIGMgKyBc bGVmdCh6ICsgMVxyaWdodCkgYyBhIGIgLSBjIGMKKyAgICAgICAgICIiIgorLSAgICAgICAgY2Rl ZiBpbnQgbmdlbnMgPSBzZWxmLl9fbmdlbnMKKysgICAgICAgIGNkZWYgaW50IG5nZW5zID0gc2Vs Zi5fbmdlbnMKKyAgICAgICAgIGNkZWYgaW50IG5ibG9ja3MgPSBsZW4oRSkgLy8gbmdlbnMKKyAg ICAgICAgIGNkZWYgaW50IGksIGosIGJhc2UsIGV4cCwgdmFyX2luZAorICAgICAgICAgY2RlZiBs aXN0IG91dCA9IFtdCitAQCAtNjc4LDcgKzY3OCw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFf bGV0dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAgICBjZGVmIGxpc3Qgb3V0ID0gW10KKyAgICAg ICAgIEMgPSBzZWxmLmN1cnJlbnRfcmluZygpCisgICAgICAgICBjZGVmIEZyZWVBbGdlYnJhRWxl bWVudF9sZXR0ZXJwbGFjZSB4CistICAgICAgICBuZ2VucyA9IHNlbGYuX19uZ2VucworKyAgICAg ICAgbmdlbnMgPSBzZWxmLl9uZ2VucworICAgICAgICAgY2RlZiBsaXN0IEcgPSBbQyh4Ll9wb2x5 KSBmb3IgeCBpbiBnXQorICAgICAgICAgZnJvbSBzYWdlLmdyb3Vwcy5wZXJtX2dwcy5wZXJtZ3Jv dXBfbmFtZWQgaW1wb3J0IEN5Y2xpY1Blcm11dGF0aW9uR3JvdXAKKyAgICAgICAgIENHID0gQ3lj bGljUGVybXV0YXRpb25Hcm91cChDLm5nZW5zKCkpCitAQCAtODExLDcgKzgxMSw3IEBAIGNkZWYg Y2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAgICAgICAgbCA9 IGxlbihlKQorICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICBjZGVmIGRpY3Qgb3V0ID0ge30K Ky0gICAgICAgIHNlbGYuc2V0X2RlZ2JvdW5kKGwgLy8gc2VsZi5fX25nZW5zKQorKyAgICAgICAg c2VsZi5zZXRfZGVnYm91bmQobCAvLyBzZWxmLl9uZ2VucykKKyAgICAgICAgIGNkZWYgUHlfc3Np emVfdCBuID0gc2VsZi5fY3VycmVudF9yaW5nLm5nZW5zKCkKKyAgICAgICAgIGZvciBlLCBjIGlu IEQuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICAgb3V0W3R1cGxlKGUpICsgKDAsKSAqIChuIC0g bCldID0gYworQEAgLTg5Niw3ICs4OTYsNyBAQCBjZGVmIGNsYXNzIEZyZWVBbGdlYnJhX2xldHRl cnBsYWNlX2xpYnNpbmd1bGFyKCk6CisgICAgICAgICBzZWxmLl9jb21tdXRhdGl2ZV9yaW5nID0g Y29tbXV0YXRpdmVfcmluZworIAorICAgICBkZWYgX19pbml0X18oc2VsZiwgY29tbXV0YXRpdmVf cmluZywgZGVnYm91bmQpOgorLSAgICAgICAgc2VsZi5fX25nZW5zID0gY29tbXV0YXRpdmVfcmlu Zy5uZ2VucygpICogZGVnYm91bmQKKysgICAgICAgIHNlbGYuX25nZW5zID0gY29tbXV0YXRpdmVf cmluZy5uZ2VucygpICogZGVnYm91bmQKKyAKKyAgICAgZGVmIF9fZGVhbGxvY19fKHNlbGYpOgor ICAgICAgICAgciIiIgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL3F1YXRhbGcvcXVh dGVybmlvbl9hbGdlYnJhX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvYWxnZWJyYXMvcXVhdGFsZy9x dWF0ZXJuaW9uX2FsZ2VicmFfZWxlbWVudC5weXgKK2luZGV4IGY2ZTg3NDQwZmU5Li44Y2I3ZTg0 OGZkMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL3F1YXRhbGcvcXVhdGVybmlvbl9h bGdlYnJhX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9xdWF0YWxnL3F1YXRl cm5pb25fYWxnZWJyYV9lbGVtZW50LnB5eAorQEAgLTE3MDAsMTUgKzE3MDAsMTUgQEAgY2RlZiBj bGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfbnVtYmVyX2ZpZWxkKFF1YXRlcm5pb25BbGdl YnJhRWxlbWVudF9hYnN0cmEKKyAgICAgICAgICAgICB4LCB5LCB6LCB3ID0gdgorICAgICAgICAg Y2RlZiBOdW1iZXJGaWVsZEVsZW1lbnQgYSA9IDxOdW1iZXJGaWVsZEVsZW1lbnQ+KHBhcmVudC5f YmFzZShwYXJlbnQuX2EpKQorICAgICAgICAgY2RlZiBOdW1iZXJGaWVsZEVsZW1lbnQgYiA9IDxO dW1iZXJGaWVsZEVsZW1lbnQ+KHBhcmVudC5fYmFzZShwYXJlbnQuX2IpKQorLSAgICAgICAgZm1w el9wb2x5X3NldF9aWlgoc2VsZi54LCAoPE51bWJlckZpZWxkRWxlbWVudD54KS5fX251bWVyYXRv cikKKy0gICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYueSwgKDxOdW1iZXJGaWVsZEVsZW1l bnQ+eSkuX19udW1lcmF0b3IpCistICAgICAgICBmbXB6X3BvbHlfc2V0X1paWChzZWxmLnosICg8 TnVtYmVyRmllbGRFbGVtZW50PnopLl9fbnVtZXJhdG9yKQorLSAgICAgICAgZm1wel9wb2x5X3Nl dF9aWlgoc2VsZi53LCAoPE51bWJlckZpZWxkRWxlbWVudD53KS5fX251bWVyYXRvcikKKysgICAg ICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYueCwgKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eCkuX251 bWVyYXRvcikKKysgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYueSwgKDxOdW1iZXJGaWVs ZEVsZW1lbnQ+eSkuX251bWVyYXRvcikKKysgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYu eiwgKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eikuX251bWVyYXRvcikKKysgICAgICAgIGZtcHpfcG9s eV9zZXRfWlpYKHNlbGYudywgKDxOdW1iZXJGaWVsZEVsZW1lbnQ+dykuX251bWVyYXRvcikKKyAK Ky0gICAgICAgIFpaX3RvX21weihUMSwgJig8TnVtYmVyRmllbGRFbGVtZW50PngpLl9fZGVub21p bmF0b3IpCistICAgICAgICBaWl90b19tcHooVDIsICYoPE51bWJlckZpZWxkRWxlbWVudD55KS5f X2Rlbm9taW5hdG9yKQorLSAgICAgICAgWlpfdG9fbXB6KHQzLCAmKDxOdW1iZXJGaWVsZEVsZW1l bnQ+eikuX19kZW5vbWluYXRvcikKKy0gICAgICAgIFpaX3RvX21weih0NCwgJig8TnVtYmVyRmll bGRFbGVtZW50PncpLl9fZGVub21pbmF0b3IpCisrICAgICAgICBaWl90b19tcHooVDEsICYoPE51 bWJlckZpZWxkRWxlbWVudD54KS5fZGVub21pbmF0b3IpCisrICAgICAgICBaWl90b19tcHooVDIs ICYoPE51bWJlckZpZWxkRWxlbWVudD55KS5fZGVub21pbmF0b3IpCisrICAgICAgICBaWl90b19t cHoodDMsICYoPE51bWJlckZpZWxkRWxlbWVudD56KS5fZGVub21pbmF0b3IpCisrICAgICAgICBa Wl90b19tcHoodDQsICYoPE51bWJlckZpZWxkRWxlbWVudD53KS5fZGVub21pbmF0b3IpCisgCisg ICAgICAgICBtcHpfbGNtKHNlbGYuZCwgVDEsIFQyKQorICAgICAgICAgbXB6X2xjbShzZWxmLmQs IHNlbGYuZCwgdDMpCitAQCAtMTcyNCwxMCArMTcyNCwxMCBAQCBjZGVmIGNsYXNzIFF1YXRlcm5p b25BbGdlYnJhRWxlbWVudF9udW1iZXJfZmllbGQoUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fi c3RyYQorICAgICAgICAgZm1wel9wb2x5X3NjYWxhcl9tdWxfbXB6KHNlbGYueiwgc2VsZi56LCB0 MykKKyAgICAgICAgIGZtcHpfcG9seV9zY2FsYXJfbXVsX21weihzZWxmLncsIHNlbGYudywgdDQp CisgCistICAgICAgICBmbXB6X3BvbHlfc2V0X1paWChzZWxmLmEsIGEuX19udW1lcmF0b3IpICAg ICAjIHdlIHdpbGwgYXNzdW1lIHRoYXQgdGhlIGRlbm9taW5hdG9yIG9mIGEgYW5kIGIgYXJlIDEK Ky0gICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYuYiwgYi5fX251bWVyYXRvcikKKysgICAg ICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYuYSwgYS5fbnVtZXJhdG9yKSAgICAgIyB3ZSB3aWxs IGFzc3VtZSB0aGF0IHRoZSBkZW5vbWluYXRvciBvZiBhIGFuZCBiIGFyZSAxCisrICAgICAgICBm bXB6X3BvbHlfc2V0X1paWChzZWxmLmIsIGIuX251bWVyYXRvcikKKyAKKy0gICAgICAgIGZtcHpf cG9seV9zZXRfWlpYKHNlbGYubW9kdWx1cywgKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eCkuX19mbGRf bnVtZXJhdG9yLngpICAjIGFuZCBzYW1lIGZvciB0aGUgbW9kdWx1cworKyAgICAgICAgZm1wel9w b2x5X3NldF9aWlgoc2VsZi5tb2R1bHVzLCAoPE51bWJlckZpZWxkRWxlbWVudD54KS5fZmxkX251 bWVyYXRvci54KSAgIyBhbmQgc2FtZSBmb3IgdGhlIG1vZHVsdXMKKyAKKyAgICAgZGVmIF9fZ2V0 aXRlbV9fKHNlbGYsIGludCBpKToKKyAgICAgICAgICIiIgorQEAgLTE3NTYsMTcgKzE3NTYsMTcg QEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfbnVtYmVyX2ZpZWxkKFF1YXRl cm5pb25BbGdlYnJhRWxlbWVudF9hYnN0cmEKKyAgICAgICAgIGNkZWYgTnVtYmVyRmllbGRFbGVt ZW50IGl0ZW0gPSBlbC5fbmV3KCkKKyAKKyAgICAgICAgIGlmIGkgPT0gMDoKKy0gICAgICAgICAg ICBmbXB6X3BvbHlfZ2V0X1paWChpdGVtLl9fbnVtZXJhdG9yLCBzZWxmLngpCisrICAgICAgICAg ICAgZm1wel9wb2x5X2dldF9aWlgoaXRlbS5fbnVtZXJhdG9yLCBzZWxmLngpCisgICAgICAgICBl bGlmIGkgPT0gMToKKy0gICAgICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChpdGVtLl9fbnVtZXJh dG9yLCBzZWxmLnkpCisrICAgICAgICAgICAgZm1wel9wb2x5X2dldF9aWlgoaXRlbS5fbnVtZXJh dG9yLCBzZWxmLnkpCisgICAgICAgICBlbGlmIGkgPT0gMjoKKy0gICAgICAgICAgICBmbXB6X3Bv bHlfZ2V0X1paWChpdGVtLl9fbnVtZXJhdG9yLCBzZWxmLnopCisrICAgICAgICAgICAgZm1wel9w b2x5X2dldF9aWlgoaXRlbS5fbnVtZXJhdG9yLCBzZWxmLnopCisgICAgICAgICBlbGlmIGkgPT0g MzoKKy0gICAgICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChpdGVtLl9fbnVtZXJhdG9yLCBzZWxm LncpCisrICAgICAgICAgICAgZm1wel9wb2x5X2dldF9aWlgoaXRlbS5fbnVtZXJhdG9yLCBzZWxm LncpCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoInF1YXRl cm5pb24gZWxlbWVudCBpbmRleCBvdXQgb2YgcmFuZ2UiKQorIAorLSAgICAgICAgbXB6X3RvX1pa KCZpdGVtLl9fZGVub21pbmF0b3IsIHNlbGYuZCkKKysgICAgICAgIG1wel90b19aWigmaXRlbS5f ZGVub21pbmF0b3IsIHNlbGYuZCkKKyAKKyAgICAgICAgIHJldHVybiBpdGVtCisgCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9ob3BmX2FsZ2VicmFzX3dpdGhfYmFzaXMucHkgYi9z cmMvc2FnZS9jYXRlZ29yaWVzL2hvcGZfYWxnZWJyYXNfd2l0aF9iYXNpcy5weQoraW5kZXggMWJl OTY0Y2I2YzkuLjYxNWZjNGVhZTA2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9o b3BmX2FsZ2VicmFzX3dpdGhfYmFzaXMucHkKKysrKyBiL3NyYy9zYWdlL2NhdGVnb3JpZXMvaG9w Zl9hbGdlYnJhc193aXRoX2Jhc2lzLnB5CitAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBIb3BmQWxn ZWJyYXNXaXRoQmFzaXMoQ2F0ZWdvcnlXaXRoQXhpb21fb3Zlcl9iYXNlX3JpbmcpOgorICAgICAg ICAgc2FnZTogQSA9IEMuZXhhbXBsZSgpOyBBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UuZ3JvdXBzCisgICAgICAgICBB biBleGFtcGxlIG9mIEhvcGYgYWxnZWJyYSB3aXRoIGJhc2lzOiB0aGUgZ3JvdXAgYWxnZWJyYSBv ZiB0aGUKKyAgICAgICAgICBEaWhlZHJhbCBncm91cCBvZiBvcmRlciA2IGFzIGEgcGVybXV0YXRp b24gZ3JvdXAgb3ZlciBSYXRpb25hbCBGaWVsZAorLSAgICAgICAgc2FnZTogQS5fX2N1c3RvbV9u YW1lID0gIkEiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIG5lZWRzIHNhZ2UuZ3JvdXBzCisrICAgICAgICBzYWdlOiBBLnJlbmFtZSgiQSIpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgbmVlZHMgc2FnZS5ncm91cHMKKyAgICAgICAgIHNhZ2U6IEEuY2F0ZWdvcnkoKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBu ZWVkcyBzYWdlLmdyb3VwcworICAgICAgICAgQ2F0ZWdvcnkgb2YgZmluaXRlIGRpbWVuc2lvbmFs IGhvcGYgYWxnZWJyYXMgd2l0aCBiYXNpcyBvdmVyIFJhdGlvbmFsIEZpZWxkCisgCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9tb2R1bGVzX3dpdGhfYmFzaXMucHkgYi9zcmMvc2Fn ZS9jYXRlZ29yaWVzL21vZHVsZXNfd2l0aF9iYXNpcy5weQoraW5kZXggNjVmZDQ3Y2I4OTAuLmZj MTg1N2YwYzhlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9tb2R1bGVzX3dpdGhf YmFzaXMucHkKKysrKyBiL3NyYy9zYWdlL2NhdGVnb3JpZXMvbW9kdWxlc193aXRoX2Jhc2lzLnB5 CitAQCAtNjYsOCArNjYsOCBAQCBjbGFzcyBNb2R1bGVzV2l0aEJhc2lzKENhdGVnb3J5V2l0aEF4 aW9tX292ZXJfYmFzZV9yaW5nKToKKyAKKyAgICAgTGV0IGBYYCBhbmQgYFlgIGJlIHR3byBtb2R1 bGVzIHdpdGggYmFzaXMuIFdlIGNhbiBidWlsZCBgSG9tKFgsWSlgOjoKKyAKKy0gICAgICAgIHNh Z2U6IFggPSBDb21iaW5hdG9yaWFsRnJlZU1vZHVsZShRUSwgWzEsMl0pOyBYLl9fY3VzdG9tX25h bWUgPSAiWCIgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLm1vZHVsZXMKKy0gICAgICAgIHNhZ2U6 IFkgPSBDb21iaW5hdG9yaWFsRnJlZU1vZHVsZShRUSwgWzMsNF0pOyBZLl9fY3VzdG9tX25hbWUg PSAiWSIgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLm1vZHVsZXMKKysgICAgICAgIHNhZ2U6IFgg PSBDb21iaW5hdG9yaWFsRnJlZU1vZHVsZShRUSwgWzEsMl0pOyBYLnJlbmFtZSgiWCIpICAgICAg ICAgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLm1vZHVsZXMKKysgICAgICAgIHNhZ2U6IFkgPSBD b21iaW5hdG9yaWFsRnJlZU1vZHVsZShRUSwgWzMsNF0pOyBZLnJlbmFtZSgiWSIpICAgICAgICAg ICAgICAgICAgICAgIyBuZWVkcyBzYWdlLm1vZHVsZXMKKyAgICAgICAgIHNhZ2U6IEggPSBIb20o WCwgWSk7IEggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyBuZWVkcyBzYWdlLm1vZHVsZXMKKyAgICAgICAgIFNldCBvZiBNb3JwaGlzbXMg ZnJvbSBYIHRvIFkKKyAgICAgICAgICBpbiBDYXRlZ29yeSBvZiBmaW5pdGUgZGltZW5zaW9uYWwg dmVjdG9yIHNwYWNlcyB3aXRoIGJhc2lzIG92ZXIgUmF0aW9uYWwgRmllbGQKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9jb21iaW5hdC9jbHVzdGVyX2NvbXBsZXgucHkgYi9zcmMvc2FnZS9jb21iaW5h dC9jbHVzdGVyX2NvbXBsZXgucHkKK2luZGV4IGVkYzRmMjM1YWViLi5lMjYzZDk4Mzg4NyAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L2NsdXN0ZXJfY29tcGxleC5weQorKysrIGIvc3Jj L3NhZ2UvY29tYmluYXQvY2x1c3Rlcl9jb21wbGV4LnB5CitAQCAtMjIyLDEwICsyMjIsNiBAQCBk ZWYgX19pbml0X18oc2VsZiwgVywgaywgY294ZXRlcl9lbGVtZW50LCBhbGdvcml0aG0pOgorICAg ICAgICAgc2VsZi5fVyA9IFcKKyAgICAgICAgIHNlbGYuX3cwID0gdworICAgICAgICAgc2VsZi5f ayA9IGsKKy0gICAgICAgIGlmIGsgPT0gMToKKy0gICAgICAgICAgICBzZWxmLl9fY3VzdG9tX25h bWUgPSAnQ2x1c3RlciBjb21wbGV4JworLSAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBzZWxm Ll9fY3VzdG9tX25hbWUgPSAnTXVsdGktY2x1c3RlciBjb21wbGV4JworIAorICAgICAgICAgc2Vs Zi5zZXRfaW1tdXRhYmxlKCkKKyAKK0BAIC0yNzEsNyArMjY3LDEwIEBAIGRlZiBfcmVwcl8oc2Vs Zik6CisgICAgICAgICAgICAgc2FnZTogQ2x1c3RlckNvbXBsZXgoWydBJywgMl0pLl9yZXByXygp CisgICAgICAgICAgICAgIkNsdXN0ZXIgY29tcGxleCBvZiB0eXBlIFsnQScsIDJdIHdpdGggNSB2 ZXJ0aWNlcyBhbmQgNSBmYWNldHMiCisgICAgICAgICAiIiIKKy0gICAgICAgIG5hbWUgPSBzZWxm Ll9fY3VzdG9tX25hbWUKKysgICAgICAgIGlmIHNlbGYuX2sgPT0gMToKKysgICAgICAgICAgICBu YW1lID0gJ0NsdXN0ZXIgY29tcGxleCcKKysgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgbmFt ZSA9ICdNdWx0aS1jbHVzdGVyIGNvbXBsZXgnCisgICAgICAgICBuYW1lICs9ICgnIG9mIHR5cGUg JXMgd2l0aCAlcyB2ZXJ0aWNlcyBhbmQgJXMgZmFjZXRzJworICAgICAgICAgICAgICAgICAgJSAo c2VsZi5jYXJ0YW5fdHlwZSgpLCBsZW4oc2VsZi52ZXJ0aWNlcygpKSwKKyAgICAgICAgICAgICAg ICAgICAgIGxlbihzZWxmLl9mYWNldHMpKSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5h dC9pbnRlZ2VyX2xpc3RzL2Jhc2UucHhkIGIvc3JjL3NhZ2UvY29tYmluYXQvaW50ZWdlcl9saXN0 cy9iYXNlLnB4ZAoraW5kZXggZWNiNTU1MGE5Y2YuLjNkMzczYTY0ZmUwIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvY29tYmluYXQvaW50ZWdlcl9saXN0cy9iYXNlLnB4ZAorKysrIGIvc3JjL3NhZ2Uv Y29tYmluYXQvaW50ZWdlcl9saXN0cy9iYXNlLnB4ZAorQEAgLTEyLDQgKzEyLDQgQEAgY2RlZiBj bGFzcyBJbnRlZ2VyTGlzdHNCYWNrZW5kKCk6CisgICAgIGNkZWYgcmVhZG9ubHkgbWluX3BhcnQs IG1heF9wYXJ0CisgICAgIGNkZWYgcmVhZG9ubHkgbWluX3Nsb3BlLCBtYXhfc2xvcGUKKyAgICAg Y2RlZiByZWFkb25seSBFbnZlbG9wZSBmbG9vciwgY2VpbGluZworLSAgICBjZGVmIHB1YmxpYyBk aWN0IF9fY2FjaGVkX21ldGhvZHMgICMgU3VwcG9ydCBjYWNoZWRfbWV0aG9kCisrICAgIGNkZWYg cHVibGljIGRpY3QgX2NhY2hlZF9tZXRob2RzICAjIFN1cHBvcnQgY2FjaGVkX21ldGhvZAorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L3N1YndvcmRfY29tcGxleC5weSBiL3NyYy9zYWdl L2NvbWJpbmF0L3N1YndvcmRfY29tcGxleC5weQoraW5kZXggYjc0ODliZGY3NTQuLmRlN2VlZmU5 NDZlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvc3Vid29yZF9jb21wbGV4LnB5Cisr KysgYi9zcmMvc2FnZS9jb21iaW5hdC9zdWJ3b3JkX2NvbXBsZXgucHkKK0BAIC0xMTMxLDcgKzEx MzEsNiBAQCBkZWYgX19pbml0X18oc2VsZiwgUSwgdywgYWxnb3JpdGhtPSJpbmR1Y3RpdmUiKToK KyAgICAgICAgIFNpbXBsaWNpYWxDb21wbGV4Ll9faW5pdF9fKHNlbGYsIG1heGltYWxfZmFjZXM9 RnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbWFsaXR5X2NoZWNr PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9Y2F0 KQorLSAgICAgICAgc2VsZi5fX2N1c3RvbV9uYW1lID0gJ1N1YndvcmQgY29tcGxleCcKKyAgICAg ICAgIHNlbGYuX1cgPSBXCisgICAgICAgICB0cnk6CisgICAgICAgICAgICAgVCA9IFcuY294ZXRl cl9tYXRyaXgoKS5jb3hldGVyX3R5cGUoKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NweXRob24v Y3l0aG9uX21ldGFjbGFzcy5oIGIvc3JjL3NhZ2UvY3B5dGhvbi9jeXRob25fbWV0YWNsYXNzLmgK K2luZGV4IGRhMDZhYjc1YTZiLi5lY2Y3Zjk3M2MzZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2Nw eXRob24vY3l0aG9uX21ldGFjbGFzcy5oCisrKysgYi9zcmMvc2FnZS9jcHl0aG9uL2N5dGhvbl9t ZXRhY2xhc3MuaAorQEAgLTUyLDYgKzUyLDE2IEBAIHN0YXRpYyBDWVRIT05fSU5MSU5FIGludCBT YWdlX1B5VHlwZV9SZWFkeShQeVR5cGVPYmplY3QqIHQpCisgICAgIGlmIChyIDwgMCkKKyAgICAg ICAgIHJldHVybiByOworIAorKyNpZiBQWV9WRVJTSU9OX0hFWCA+PSAweDAzMDUwMDAwCisrICAg IC8vIEN5dGhvbiAzIHNldHMgUHlfVFBGTEFHU19IRUFQVFlQRSBiZWZvcmUgY2FsbGluZyBQeVR5 cGVfUmVhZHksCisrICAgIC8vIGFuZCByZXNldHMganVzdCBhZnRlciB0aGUgY2FsbC4gV2UgbmVl ZCB0byByZXNldCBpdCBlYXJsaWVyLAorKyAgICAvLyBzaW5jZSBvdGhlcndpc2UgdGhlIGNhbGwg dG8gbWV0YWNsYXNzLl9faW5pdF9fIGJlbG93IG1heSBoYXZlCisrICAgIC8vIGlsbGVnYWwgbWVt b3J5IGFjY2Vzc2VzLgorKyAgICAvLyBTZWUgYWxzbzoKKysgICAgLy8gaHR0cHM6Ly9naXRodWIu Y29tL2N5dGhvbi9jeXRob24vaXNzdWVzLzM2MDMKKysgICAgdC0+dHBfZmxhZ3MgJj0gflB5X1RQ RkxBR1NfSEVBUFRZUEU7CisrI2VuZGlmCisrCisgICAgIC8qIFNldCBvciBnZXQgbWV0YWNsYXNz ICh0aGUgdHlwZSBvZiB0KSAqLworICAgICBQeVR5cGVPYmplY3QqIG1ldGFjbGFzczsKKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9jcHl0aG9uL2N5dGhvbl9tZXRhY2xhc3MucHl4IGIvc3JjL3Nh Z2UvY3B5dGhvbi9jeXRob25fbWV0YWNsYXNzLnB5eAoraW5kZXggYThmZTg1MzY2MWQuLmE4ZmE5 MmZjMWE4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY3B5dGhvbi9jeXRob25fbWV0YWNsYXNzLnB5 eAorKysrIGIvc3JjL3NhZ2UvY3B5dGhvbi9jeXRob25fbWV0YWNsYXNzLnB5eAorQEAgLTE5LDEz ICsxOSwxNiBAQCBmaWxlIGlmIHlvdSBhcmUgdXNpbmcgb25lKS4KKyAKKyBJbiB0aGUgZXh0ZW5z aW9uIHR5cGUgKGEuay5hLiBgYGNkZWYgY2xhc3NgYCkgZm9yIHdoaWNoIHlvdSB3YW50IHRvCisg ZGVmaW5lIGEgbWV0YWNsYXNzLCBkZWZpbmUgYSBtZXRob2QgYGBfX2dldG1ldGFjbGFzc19fYGAg d2l0aCBhIHNpbmdsZQorLXVudXNlZCBhcmd1bWVudC4gVGhpcyBtZXRob2Qgc2hvdWxkIHJldHVy biBhIHR5cGUgdG8gYmUgdXNlZCBhcworK3VudXNlZCBhcmd1bWVudCwgYW5kIHR1cm4gb2ZmIHRo ZSBDeXRob24gZGlyZWN0aXZlCisrYGBhbHdheXNfYWxsb3dfa2V5d29yZHNgYC4gVGhpcyBtZXRo b2Qgc2hvdWxkIHJldHVybiBhIHR5cGUgdG8gYmUgdXNlZCBhcworIG1ldGFjbGFzczoKKyAKKyAu LiBjb2RlLWJsb2NrOjogY3l0aG9uCisgCisrICAgIGNpbXBvcnQgY3l0aG9uCisgICAgIGNpbXBv cnQgc2FnZS5jcHl0aG9uLmN5dGhvbl9tZXRhY2xhc3MKKyAgICAgY2RlZiBjbGFzcyBNeUN1c3Rv bVR5cGUoKToKKysgICAgICAgIEBjeXRob24uYWx3YXlzX2FsbG93X2tleXdvcmRzKEZhbHNlKQor ICAgICAgICAgZGVmIF9fZ2V0bWV0YWNsYXNzX18oXyk6CisgICAgICAgICAgICAgZnJvbSBmb28g aW1wb3J0IE15TWV0YWNsYXNzCisgICAgICAgICAgICAgcmV0dXJuIE15TWV0YWNsYXNzCitAQCAt NjMsOCArNjYsMTAgQEAgRVhBTVBMRVM6OgorIAorICAgICBzYWdlOiBjeXRob24oICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIG5lZWRzIHNhZ2UubWlzYy5jeXRob24KKyAgICAgLi4uLjogJycnCisrICAgIC4uLi46 IGNpbXBvcnQgY3l0aG9uCisgICAgIC4uLi46IGNpbXBvcnQgc2FnZS5jcHl0aG9uLmN5dGhvbl9t ZXRhY2xhc3MKKyAgICAgLi4uLjogY2RlZiBjbGFzcyBNeUN1c3RvbVR5cGUoKToKKysgICAgLi4u LjogICAgIEBjeXRob24uYWx3YXlzX2FsbG93X2tleXdvcmRzKEZhbHNlKQorICAgICAuLi4uOiAg ICAgZGVmIF9fZ2V0bWV0YWNsYXNzX18oXyk6CisgICAgIC4uLi46ICAgICAgICAgY2xhc3MgTXlN ZXRhY2xhc3ModHlwZSk6CisgICAgIC4uLi46ICAgICAgICAgICAgIGRlZiBfX2luaXRfXygqYXJn cyk6CitAQCAtMTAxLDggKzEwNiwxMCBAQCByZXR1cm5zIGEgbm9uLXR5cGU6OgorIAorICAgICBz YWdlOiBjeXRob24oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UubWlzYy5jeXRob24KKyAgICAg Li4uLjogJycnCisrICAgIC4uLi46IGNpbXBvcnQgY3l0aG9uCisgICAgIC4uLi46IGNpbXBvcnQg c2FnZS5jcHl0aG9uLmN5dGhvbl9tZXRhY2xhc3MKKyAgICAgLi4uLjogY2RlZiBjbGFzcyBNeUN1 c3RvbVR5cGUoKToKKysgICAgLi4uLjogICAgIEBjeXRob24uYWx3YXlzX2FsbG93X2tleXdvcmRz KEZhbHNlKQorICAgICAuLi4uOiAgICAgZGVmIF9fZ2V0bWV0YWNsYXNzX18oXyk6CisgICAgIC4u Li46ICAgICAgICAgcmV0dXJuIDIKKyAgICAgLi4uLjogJycnKQorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL2NweXRob24vZ2V0YXR0ci5weXggYi9zcmMvc2FnZS9jcHl0aG9uL2dldGF0dHIucHl4Citp bmRleCAzZjYwM2I5ODA0MC4uMTZmNjQ5YzA4M2QgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jcHl0 aG9uL2dldGF0dHIucHl4CisrKysgYi9zcmMvc2FnZS9jcHl0aG9uL2dldGF0dHIucHl4CitAQCAt MjcxLDcgKzI3MSw3IEBAIGNwZGVmIGdldGF0dHJfZnJvbV9vdGhlcl9jbGFzcyhzZWxmLCBjbHMs IG5hbWUpOgorIAorICAgICBDYXZlYXQ6IGxhenkgYXR0cmlidXRlcyB3b3JrIHdpdGggZXh0ZW5z aW9uIHR5cGVzIG9ubHkKKyAgICAgaWYgdGhleSBhbGxvdyBhdHRyaWJ1dGUgYXNzaWdubWVudCBv ciBoYXZlIGEgcHVibGljIGF0dHJpYnV0ZQorLSAgICBgYF9fY2FjaGVkX21ldGhvZHNgYCBvZiB0 eXBlIGBgPGRpY3Q+YGAuIFRoaXMgY29uZGl0aW9uCisrICAgIGBgX2NhY2hlZF9tZXRob2RzYGAg b2YgdHlwZSBgYDxkaWN0PmBgLiBUaGlzIGNvbmRpdGlvbgorICAgICBpcyBzYXRpc2ZpZWQsIGUu Zy4sIGJ5IGFueSBjbGFzcyB0aGF0IGlzIGRlcml2ZWQgZnJvbQorICAgICA6Y2xhc3M6YFBhcmVu dGA6OgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmlu YXRvcmlhbF9wb2x5aGVkcm9uL2Jhc2UucHhkIGIvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJv bi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vYmFzZS5weGQKK2luZGV4IGJkZDQ5MjI1ZmYyLi4w MzBjOWRlZmE0NSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29t YmluYXRvcmlhbF9wb2x5aGVkcm9uL2Jhc2UucHhkCisrKysgYi9zcmMvc2FnZS9nZW9tZXRyeS9w b2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9iYXNlLnB4ZAorQEAgLTgsNyArOCw3 IEBAIGZyb20gLnBvbHloZWRyb25fZmFjZV9sYXR0aWNlICAgICAgICAgICBjaW1wb3J0IFBvbHlo ZWRyb25GYWNlTGF0dGljZQorIAorIEBjeXRob24uZmluYWwKKyBjZGVmIGNsYXNzIENvbWJpbmF0 b3JpYWxQb2x5aGVkcm9uKFNhZ2VPYmplY3QpOgorLSAgICBjZGVmIHB1YmxpYyBkaWN0IF9fY2Fj aGVkX21ldGhvZHMKKysgICAgY2RlZiBwdWJsaWMgZGljdCBfY2FjaGVkX21ldGhvZHMKKyAKKyAg ICAgIyBEbyBub3QgYXNzdW1lIGFueSBvZiB0aG9zZSBhdHRyaWJ1dGVzIHRvIGJlIGluaXRpYWxp emVkLCB1c2UgdGhlIGNvcnJlc3BvbmRpbmcgbWV0aG9kcyBpbnN0ZWFkLgorICAgICBjZGVmIHR1 cGxlIF9WcmVwICAgICAgICAgICAgICAgICAgICAgICAjIHRoZSBuYW1lcyBvZiBWUmVwLCBpZiB0 aGV5IGV4aXN0CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3Blcm1ncm91 cF9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVu dC5weGQKK2luZGV4IGEyYWM4ZjIwZWFhLi4wYTU4NDc0NWY5NiAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdl L2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5weGQKK0BAIC0yMiw3ICsyMiw3IEBA IGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVs ZW1lbnQpOgorICAgICBjcGRlZiBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCBfZ2VuZXJhdGVfbmV3 X0dBUChzZWxmLCBvbGQpCisgICAgIGNwZGVmIF9nYXBfbGlzdChzZWxmKQorICAgICBjcGRlZiBk b21haW4oc2VsZikKKy0gICAgY2RlZiBwdWJsaWMgX19jdXN0b21fbmFtZQorKyAgICBjZGVmIHB1 YmxpYyBfU2FnZU9iamVjdF9fY3VzdG9tX25hbWUKKyAgICAgY3BkZWYgbGlzdCBfYWN0X29uX2xp c3Rfb25fcG9zaXRpb24oc2VsZiwgbGlzdCB4KQorICAgICBjcGRlZiBDbG9uYWJsZUludEFycmF5 IF9hY3Rfb25fYXJyYXlfb25fcG9zaXRpb24oc2VsZiwgQ2xvbmFibGVJbnRBcnJheSB4KQorICAg ICBjcGRlZiBFVHVwbGUgX2FjdF9vbl9ldHVwbGVfb25fcG9zaXRpb24oc2VsZiwgRVR1cGxlIHgp CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvaW50ZXJmYWNlcy9pbnRlcmZhY2UucHkgYi9zcmMvc2Fn ZS9pbnRlcmZhY2VzL2ludGVyZmFjZS5weQoraW5kZXggZjgyMzdkM2FkOTQuLjMxODAxMTNjOWM3 IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvaW50ZXJmYWNlcy9pbnRlcmZhY2UucHkKKysrKyBiL3Ny Yy9zYWdlL2ludGVyZmFjZXMvaW50ZXJmYWNlLnB5CitAQCAtMTE2OSwxMSArMTE2OSw4IEBAIGRl ZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAgICBzID0gY3IKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgcyA9IHNlbGYuX3JlcHJfKCkKKy0gICAgICAgIGlmIHNlbGYuX25hbWUgaW4g czoKKy0gICAgICAgICAgICB0cnk6CistICAgICAgICAgICAgICAgIHMgPSBzLnJlcGxhY2Uoc2Vs Zi5fbmFtZSwgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorLSAgICAgICAgICAgIGV4 Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKy0gICAgICAgICAgICAgICAgcGFzcworKyAgICAgICAgaWYg c2VsZi5fbmFtZSBpbiBzIGFuZCBzZWxmLmdldF9jdXN0b21fbmFtZSgpIGlzIG5vdCBOb25lOgor KyAgICAgICAgICAgIHMgPSBzLnJlcGxhY2Uoc2VsZi5fbmFtZSwgc2VsZi5nZXRfY3VzdG9tX25h bWUoKSkKKyAgICAgICAgIGlmIGNyOgorICAgICAgICAgICAgIHNlbGYuX2NhY2hlZF9yZXByID0g cworICAgICAgICAgcmV0dXJuIHMKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9pbnRlcmZhY2VzL3Np bmd1bGFyLnB5IGIvc3JjL3NhZ2UvaW50ZXJmYWNlcy9zaW5ndWxhci5weQoraW5kZXggNGI1Yzc2 ZTJiZmEuLjcwNWZhNmY2NmUxIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvaW50ZXJmYWNlcy9zaW5n dWxhci5weQorKysrIGIvc3JjL3NhZ2UvaW50ZXJmYWNlcy9zaW5ndWxhci5weQorQEAgLTE0MDAs OCArMTQwMCw4IEBAIGRlZiBfcmVwcl8oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIHMg PSBzdXBlcihTaW5ndWxhckVsZW1lbnQsIHNlbGYpLl9yZXByXygpCisgICAgICAgICBpZiBzZWxm Ll9uYW1lIGluIHM6CistICAgICAgICAgICAgaWYgKG5vdCBoYXNhdHRyKHNlbGYsICJfX2N1c3Rv bV9uYW1lIikpIGFuZCBzZWxmLnR5cGUoKSA9PSAnbWF0cml4JzoKKy0gICAgICAgICAgICAgICAg cyA9IHNlbGYucGFyZW50KCkuZXZhbCgncG1hdCglcywyMCknJShzZWxmLm5hbWUoKSkpCisrICAg ICAgICAgICAgaWYgc2VsZi5nZXRfY3VzdG9tX25hbWUoKSBpcyBOb25lIGFuZCBzZWxmLnR5cGUo KSA9PSAnbWF0cml4JzoKKysgICAgICAgICAgICAgICAgcyA9IHNlbGYucGFyZW50KCkuZXZhbCgn cG1hdCglcywyMCknICUgKHNlbGYubmFtZSgpKSkKKyAgICAgICAgIHJldHVybiBzCisgCisgICAg IGRlZiBfX2NvcHlfXyhzZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2FyYi9hcml0 aC5weXggYi9zcmMvc2FnZS9saWJzL2FyYi9hcml0aC5weXgKK2luZGV4IGQ4ODVmOTdiMjM4Li4z YjMyZmU3ZThlZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvYXJiL2FyaXRoLnB5eAorKysr IGIvc3JjL3NhZ2UvbGlicy9hcmIvYXJpdGgucHl4CitAQCAtODEsNSArODEsNSBAQCBkZWYgaGls YmVydF9jbGFzc19wb2x5bm9taWFsKEQpOgorICAgICBjZGVmIGxvbmcgbiA9IEQKKyAgICAgY2Rl ZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgcG9seQorICAgICBwb2x5ID0gUG9seW5v bWlhbFJpbmcoWlosICJ4IiwgaW1wbGVtZW50YXRpb249IkZMSU5UIikoKQorLSAgICBhY2JfbW9k dWxhcl9oaWxiZXJ0X2NsYXNzX3BvbHkocG9seS5fX3BvbHksIG4pCisrICAgIGFjYl9tb2R1bGFy X2hpbGJlcnRfY2xhc3NfcG9seShwb2x5Ll9wb2x5LCBuKQorICAgICByZXR1cm4gcG9seQorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvY294ZXRlcjMvY294ZXRlci5weGQgYi9zcmMvc2FnZS9s aWJzL2NveGV0ZXIzL2NveGV0ZXIucHhkCitpbmRleCA5ZDVjYjJhM2Y1ZC4uZGJkMmI4YTYxYzYg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2NveGV0ZXIzL2NveGV0ZXIucHhkCisrKysgYi9z cmMvc2FnZS9saWJzL2NveGV0ZXIzL2NveGV0ZXIucHhkCitAQCAtMjksNiArMjksMyBAQCBjZGVm IGNsYXNzIENveEdyb3VwRWxlbWVudDoKKyAgICAgY2RlZiBDb3hHcm91cCBfcGFyZW50X2dyb3Vw CisgICAgIGNkZWYgQ294R3JvdXBFbGVtZW50IF9uZXcoc2VsZikKKyAgICAgY3BkZWYgQ294R3Jv dXAgcGFyZW50X2dyb3VwKHNlbGYpCistCistY2RlZiBjbGFzcyBDb3hHcmFwaDoKKy0gICAgY2Rl ZiBjX0NveEdyYXBoIHgKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2dhcC9lbGVtZW50LnB5 eCBiL3NyYy9zYWdlL2xpYnMvZ2FwL2VsZW1lbnQucHl4CitpbmRleCAxZGM1M2M4MWY2Ny4uNDc4 Y2FmOWY5ZDAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2dhcC9lbGVtZW50LnB5eAorKysr IGIvc3JjL3NhZ2UvbGlicy9nYXAvZWxlbWVudC5weXgKK0BAIC03MjAsNyArNzIwLDcgQEAgY2Rl ZiBjbGFzcyBHYXBFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAuLi4KKyAgICAg ICAgICAgICBBdHRyaWJ1dGVFcnJvcjogJ3NvbWVfbmFtZScgZG9lcyBub3QgZGVmaW5lIGEgR0FQ IGZ1bmN0aW9uCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIG5hbWUgaW4gKCdfX2RpY3RfXycs ICdfZ2V0QXR0cmlidXRlTmFtZXMnLCAnX19jdXN0b21fbmFtZScsICdrZXlzJyk6CisrICAgICAg ICBpZiBuYW1lIGluICgnX19kaWN0X18nLCAnX2dldEF0dHJpYnV0ZU5hbWVzJywgJ19TYWdlT2Jq ZWN0X19jdXN0b21fbmFtZScsICdrZXlzJyk6CisgICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRl RXJyb3IoJ1B5dGhvbiBzcGVjaWFsIG5hbWUsIG5vdCBhIEdBUCBmdW5jdGlvbi4nKQorICAgICAg ICAgdHJ5OgorICAgICAgICAgICAgIHByb3h5ID0gbWFrZV9HYXBFbGVtZW50X01ldGhvZFByb3h5 XAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvZ2FwL2dhcF9pbmNsdWRlcy5weGQgYi9zcmMv c2FnZS9saWJzL2dhcC9nYXBfaW5jbHVkZXMucHhkCitpbmRleCA4NDBiOGEwMDQyZS4uMWVkNDM3 OGE2YzcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2dhcC9nYXBfaW5jbHVkZXMucHhkCisr KysgYi9zcmMvc2FnZS9saWJzL2dhcC9nYXBfaW5jbHVkZXMucHhkCitAQCAtMTQ0LDMgKzE0NCwx OCBAQCBjZGVmIGV4dGVybiBmcm9tICJnYXAvc3RyaW5nb2JqLmgiIG5vZ2lsOgorICAgICBiaW50 IElTX1NUUklORyhPYmogb2JqKQorICAgICBiaW50IElzU3RyaW5nQ29udihPYmogb2JqKQorICAg ICBPYmogTkVXX1NUUklORyhJbnQpCisrCisrCisrY2RlZiBleHRlcm4gZnJvbSAiPHN0cnVjdG1l bWJlci5oPiIgbm9naWw6CisrICAgICIiIgorKyAgICAvKiBIYWNrOiBDeXRob24gMy4wIGF1dG9t YXRpY2FsbHkgaW5jbHVkZXMgPHN0cnVjdG1lbWJlci5oPiwgd2hpY2gKKysgICAgICogZGVmaW5l cyBzZXZlcmFsIG1hY3JvcyB0aGF0IGNvbGxpZGVzIHdpdGggZW51bSBkZWZpbml0aW9ucyBpbgor KyAgICAgKiBnYXAvb2JqZWN0cy5oLiBXZSBuZWVkIHRvIGluY2x1ZGUgdGhlIGhlYWRlciBleHBs aWNpdGx5IGFuZAorKyAgICAgKiB1bmRlZmluZSB0aGVzZSBtYWNyb3MuCisrICAgICAqLworKyAg ICAjdW5kZWYgVF9JTlQKKysgICAgI3VuZGVmIFRfU1RSSU5HCisrICAgICN1bmRlZiBUX0NIQVIK KysgICAgI3VuZGVmIFRfQk9PTAorKyAgICAiIiIKKysgICAgcGFzcworZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL2xpYnMvbGNhbGMvbGNhbGNfTGZ1bmN0aW9uLnB4ZCBiL3NyYy9zYWdlL2xpYnMvbGNh bGMvbGNhbGNfTGZ1bmN0aW9uLnB4ZAoraW5kZXggNWVkZjA4NDRmM2UuLjFkNTk1MTgwYTZmIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9sY2FsYy9sY2FsY19MZnVuY3Rpb24ucHhkCisrKysg Yi9zcmMvc2FnZS9saWJzL2xjYWxjL2xjYWxjX0xmdW5jdGlvbi5weGQKK0BAIC05OSwxOSArOTks MTkgQEAgY2RlZiBleHRlcm4gZnJvbSAibGNhbGNfc2FnZS5oIjoKKyAjIyMjIyMjIyMjIyMjIyMj CisgCisgIyBzdHJhbmdlIGJ1ZywgSSBjYW4ndCBjb21waWxlIHdpdGhvdXQgdGhpcyB0cmljayA/ Pz8KKy0jIGl0J3Mgb25seSB1c2VkIGluIF9fdHlwZWROCisrIyBpdCdzIG9ubHkgdXNlZCBpbiBf dHlwZWROCisgY3R5cGVkZWYgZG91YmxlIERvdWJsZQorIAorIGNkZWYgY2xhc3MgTGZ1bmN0aW9u OgorICAgICBjZGVmIHZvaWQgKnRoaXNwdHIKKy0gICAgY2RlZiB2b2lkIF9faW5pdF9mdW4oc2Vs ZiwgY2hhciAqTkFNRSwgaW50IHdoYXRfdHlwZSwgZGlyaWNobGV0X2NvZWZmLCBsb25nIGxvbmcg UGVyaW9kLCBkb3VibGUgcSwgIGNfQ29tcGxleCB3LCBpbnQgQSwgZG91YmxlICpnLCBjX0NvbXBs ZXggKmwsIGludCBuX3BvbGVzLCBjX0NvbXBsZXggKnAsIGNfQ29tcGxleCAqcikKKy0gICAgY2Rl ZiBjX0NvbXBsZXggX192YWx1ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJpdmF0aXZlKQorLSAg ICBjZGVmIGNfQ29tcGxleCBfX2hhcmR5X3pfZnVuY3Rpb24oc2VsZixjX0NvbXBsZXggcykKKy0g ICAgY2RlZiBpbnQgX19jb21wdXRlX3Jhbmsoc2VsZikKKysgICAgY2RlZiB2b2lkIF9pbml0X2Z1 bihzZWxmLCBjaGFyICpOQU1FLCBpbnQgd2hhdF90eXBlLCBkaXJpY2hsZXRfY29lZmYsIGxvbmcg bG9uZyBQZXJpb2QsIGRvdWJsZSBxLCAgY19Db21wbGV4IHcsIGludCBBLCBkb3VibGUgKmcsIGNf Q29tcGxleCAqbCwgaW50IG5fcG9sZXMsIGNfQ29tcGxleCAqcCwgY19Db21wbGV4ICpyKQorKyAg ICBjZGVmIGNfQ29tcGxleCBfdmFsdWUoc2VsZixjX0NvbXBsZXggcyxpbnQgZGVyaXZhdGl2ZSkK KysgICAgY2RlZiBjX0NvbXBsZXggX2hhcmR5X3pfZnVuY3Rpb24oc2VsZixjX0NvbXBsZXggcykK KysgICAgY2RlZiBpbnQgX2NvbXB1dGVfcmFuayhzZWxmKQorICAgICAjc3RyYW5nZSBidWcsIHJl cGxhY2luZyBEb3VibGUgd2l0aCBkb3VibGUgZ2l2ZXMgbWUgYSBjb21waWxlIGVycm9yCistICAg IGNkZWYgRG91YmxlIF9fdHlwZWROKHNlbGYsIGRvdWJsZSBUKQorLSAgICBjZGVmIHZvaWQgX19m aW5kX3plcm9zX3Yoc2VsZiwgZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJsZSBzdGVwc2l6ZSxk b3VibGV2ZWMgKnJlc3VsdCkKKy0gICAgY2RlZiBpbnQgX19maW5kX3plcm9zKHNlbGYsIGxvbmcg Y291bnQsIGxvbmcgc3RhcnQsIGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQgcmFuaywgY29uc3QgY2hh ciogbWVzc2FnZV9zdGFtcCwgZG91YmxldmVjKiByZXN1bHQpCisrICAgIGNkZWYgRG91YmxlIF90 eXBlZE4oc2VsZiwgZG91YmxlIFQpCisrICAgIGNkZWYgdm9pZCBfZmluZF96ZXJvc192KHNlbGYs IGRvdWJsZSBUMSwgZG91YmxlIFQyLCBkb3VibGUgc3RlcHNpemUsZG91YmxldmVjICpyZXN1bHQp CisrICAgIGNkZWYgaW50IF9maW5kX3plcm9zKHNlbGYsIGxvbmcgY291bnQsIGxvbmcgc3RhcnQs IGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQgcmFuaywgY29uc3QgY2hhciogbWVzc2FnZV9zdGFtcCwg ZG91YmxldmVjKiByZXN1bHQpCisgCisgICAgIGNkZWYgc3RyIF9yZXByCisgCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvbGlicy9sY2FsYy9sY2FsY19MZnVuY3Rpb24ucHl4IGIvc3JjL3NhZ2UvbGli cy9sY2FsYy9sY2FsY19MZnVuY3Rpb24ucHl4CitpbmRleCA2ZTkwMDVjNTAyYi4uN2I4NzFlZDA0 OWYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2xjYWxjL2xjYWxjX0xmdW5jdGlvbi5weXgK KysrKyBiL3NyYy9zYWdlL2xpYnMvbGNhbGMvbGNhbGNfTGZ1bmN0aW9uLnB5eAorQEAgLTk5LDcg Kzk5LDcgQEAgY2RlZiBjbGFzcyBMZnVuY3Rpb246CisgICAgICAgICAgICAgdG1wYz1DQ0MocmVz aWR1ZVtpXSkKKyAgICAgICAgICAgICByW2krMV0gPSBuZXdfQ29tcGxleChtcGZyX2dldF9kKHRt cGMuX19yZSwgTVBGUl9STkROKSwgbXBmcl9nZXRfZCh0bXBjLl9faW0sIE1QRlJfUk5ETikpCisg CistICAgICAgICBzZWxmLl9faW5pdF9mdW4oTkFNRSwgd2hhdF90eXBlLCBkaXJpY2hsZXRfY29l ZmZpY2llbnQsIFBlcmlvZCwgcSwgIHcsICBBLCBnLCBsLCBuX3BvbGVzLCBwLCByKQorKyAgICAg ICAgc2VsZi5faW5pdF9mdW4oTkFNRSwgd2hhdF90eXBlLCBkaXJpY2hsZXRfY29lZmZpY2llbnQs IFBlcmlvZCwgcSwgIHcsICBBLCBnLCBsLCBuX3BvbGVzLCBwLCByKQorIAorICAgICAgICAgaWYg bmFtZToKKyAgICAgICAgICAgICBuYW1lICs9ICc6ICcKK0BAIC0xODAsNyArMTgwLDcgQEAgY2Rl ZiBjbGFzcyBMZnVuY3Rpb246CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgQ29tcGxleE51 bWJlciBjb21wbGV4aWZpZWRfcyA9IENDQyhzKQorICAgICAgICAgY2RlZiBjX0NvbXBsZXggeiA9 IG5ld19Db21wbGV4KG1wZnJfZ2V0X2QoY29tcGxleGlmaWVkX3MuX19yZSwgTVBGUl9STkROKSwg bXBmcl9nZXRfZChjb21wbGV4aWZpZWRfcy5fX2ltLCBNUEZSX1JORE4pKQorLSAgICAgICAgY2Rl ZiBjX0NvbXBsZXggcmVzdWx0ID0gc2VsZi5fX3ZhbHVlKHosIGRlcml2YXRpdmUpCisrICAgICAg ICBjZGVmIGNfQ29tcGxleCByZXN1bHQgPSBzZWxmLl92YWx1ZSh6LCBkZXJpdmF0aXZlKQorICAg ICAgICAgcmV0dXJuIENDQyhyZXN1bHQucmVhbCgpLHJlc3VsdC5pbWFnKCkpCisgCisgICAgIGRl ZiBoYXJkeV96X2Z1bmN0aW9uKHNlbGYsIHMpOgorQEAgLTIyMyw3ICsyMjMsNyBAQCBjZGVmIGNs YXNzIExmdW5jdGlvbjoKKyAgICAgICAgICNUaGlzIHRha2VzIHMgLT4gLjUgKyBJKnMKKyAgICAg ICAgIGNkZWYgQ29tcGxleE51bWJlciBjb21wbGV4aWZpZWRfcyA9IENDQygwLjUpKyBDQ0MoMCwx KSpDQ0MocykKKyAgICAgICAgIGNkZWYgY19Db21wbGV4IHogPSBuZXdfQ29tcGxleChtcGZyX2dl dF9kKGNvbXBsZXhpZmllZF9zLl9fcmUsIE1QRlJfUk5ETiksIG1wZnJfZ2V0X2QoY29tcGxleGlm aWVkX3MuX19pbSwgTVBGUl9STkROKSkKKy0gICAgICAgIGNkZWYgY19Db21wbGV4IHJlc3VsdCA9 IHNlbGYuX19oYXJkeV96X2Z1bmN0aW9uKHopCisrICAgICAgICBjZGVmIGNfQ29tcGxleCByZXN1 bHQgPSBzZWxmLl9oYXJkeV96X2Z1bmN0aW9uKHopCisgICAgICAgICByZXR1cm4gQ0NDKHJlc3Vs dC5yZWFsKCkscmVzdWx0LmltYWcoKSkKKyAKKyAKK0BAIC0yNDksOSArMjQ5LDkgQEAgY2RlZiBj bGFzcyBMZnVuY3Rpb246CisgICAgICAgICAgICAgMworIAorICAgICAgICAgIiIiCistICAgICAg ICByZXR1cm4gc2VsZi5fX2NvbXB1dGVfcmFuaygpCisrICAgICAgICByZXR1cm4gc2VsZi5fY29t cHV0ZV9yYW5rKCkKKyAKKy0gICAgZGVmIF9fTihzZWxmLCBUKToKKysgICAgZGVmIF9OKHNlbGYs IFQpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wdXRlIHRoZSBudW1iZXIgb2YgemVyb2Vz IHVwdG8gaGVpZ2h0IGBUYCB1c2luZyB0aGUgZm9ybXVsYSBmb3IKKyAgICAgICAgIGBOKFQpYCB3 aXRoIHRoZSBlcnJvciBvZiBgUyhUKWAuIFBsZWFzZSBkbyBub3QgdXNlIHRoaXMuIEl0IGlzIG9u bHkKK0BAIC0yNjIsMTIgKzI2MiwxMiBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbjoKKyAgICAgICAg ICAgICBzYWdlOiBmcm9tIHNhZ2UubGlicy5sY2FsYy5sY2FsY19MZnVuY3Rpb24gaW1wb3J0ICoK KyAgICAgICAgICAgICBzYWdlOiBjaGkgPSBEaXJpY2hsZXRHcm91cCg1KVsyXSAjVGhpcyBpcyBh IHF1YWRyYXRpYyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICBzYWdlOiBMPUxmdW5jdGlvbl9mcm9t X2NoYXJhY3RlcihjaGksIHR5cGU9ImNvbXBsZXgiKQorLSAgICAgICAgICAgIHNhZ2U6IEwuX19O KDEwKSAjIGFicyB0b2wgMWUtOAorKyAgICAgICAgICAgIHNhZ2U6IEwuX04oMTApICMgYWJzIHRv bCAxZS04CisgICAgICAgICAgICAgNC4wCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVh bE51bWJlciByZWFsX1Q9UlJSKFQpCisgICAgICAgICBjZGVmIGRvdWJsZSBkb3VibGVfVCA9IG1w ZnJfZ2V0X2QocmVhbF9ULnZhbHVlLCBNUEZSX1JORE4pCistICAgICAgICBjZGVmIGRvdWJsZSBy ZXNfZCA9IHNlbGYuX190eXBlZE4oZG91YmxlX1QpCisrICAgICAgICBjZGVmIGRvdWJsZSByZXNf ZCA9IHNlbGYuX3R5cGVkTihkb3VibGVfVCkKKyAgICAgICAgIHJldHVybiBSUlIocmVzX2QpCisg CisgICAgIGRlZiBmaW5kX3plcm9zKHNlbGYsIFQxLCBUMiwgc3RlcHNpemUpOgorQEAgLTMyMyw3 ICszMjMsNyBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbjoKKyAgICAgICAgIGNkZWYgUmVhbE51bWJl ciByZWFsX1QyID0gUlJSKFQyKQorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHJlYWxfc3RlcHNp emUgPSBSUlIoc3RlcHNpemUpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgc2VsZi5fX2Zp bmRfemVyb3NfdiggbXBmcl9nZXRfZChyZWFsX1QxLnZhbHVlLCBNUEZSX1JORE4pLCBtcGZyX2dl dF9kKHJlYWxfVDIudmFsdWUsIE1QRlJfUk5ETiksIG1wZnJfZ2V0X2QocmVhbF9zdGVwc2l6ZS52 YWx1ZSwgTVBGUl9STkROKSwmcmVzdWx0KQorKyAgICAgICAgc2VsZi5fZmluZF96ZXJvc192KCBt cGZyX2dldF9kKHJlYWxfVDEudmFsdWUsIE1QRlJfUk5ETiksIG1wZnJfZ2V0X2QocmVhbF9UMi52 YWx1ZSwgTVBGUl9STkROKSwgbXBmcl9nZXRfZChyZWFsX3N0ZXBzaXplLnZhbHVlLCBNUEZSX1JO RE4pLCZyZXN1bHQpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGk9cmVzdWx0LnNpemUo KQorICAgICAgICAgcmV0dXJudmFsdWUgPSBbXQorQEAgLTM5OSw3ICszOTksNyBAQCBjZGVmIGNs YXNzIExmdW5jdGlvbjoKKyAgICAgICAgIGNkZWYgY29uc3QgY2hhciogbWVzc2FnZV9zdGFtcCA9 ICIiCisgICAgICAgICBjZGVmIGRvdWJsZXZlYyByZXN1bHQKKyAgICAgICAgIHNpZ19vbigpCist ICAgICAgICBzZWxmLl9fZmluZF96ZXJvcyhjb3VudCwgc3RhcnQsIG1heF9yZWZpbmUsIHJhbmss IG1lc3NhZ2Vfc3RhbXAsICZyZXN1bHQpCisrICAgICAgICBzZWxmLl9maW5kX3plcm9zKGNvdW50 LCBzdGFydCwgbWF4X3JlZmluZSwgcmFuaywgbWVzc2FnZV9zdGFtcCwgJnJlc3VsdCkKKyAgICAg ICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJudmFsdWUgPSBbXQorICAgICAgICAgZm9yIGkg aW4gcmFuZ2UocmVzdWx0LnNpemUoKSk6CitAQCAtNDA4LDI1ICs0MDgsMjUgQEAgY2RlZiBjbGFz cyBMZnVuY3Rpb246CisgICAgICAgICByZXR1cm4gcmV0dXJudmFsdWUKKyAKKyAgICAgIyBOZWVk cyB0byBiZSBvdmVycmlkZW4KKy0gICAgY2RlZiB2b2lkIF9faW5pdF9mdW4oc2VsZiwgY2hhciAq TkFNRSwgaW50IHdoYXRfdHlwZSwgZGlyaWNobGV0X2NvZWZmLCBsb25nIGxvbmcgUGVyaW9kLCBk b3VibGUgcSwgIGNfQ29tcGxleCB3LCBpbnQgQSwgZG91YmxlICpnLCBjX0NvbXBsZXggKmwsIGlu dCBuX3BvbGVzLCBjX0NvbXBsZXggKnAsIGNfQ29tcGxleCAqcik6CisrICAgIGNkZWYgdm9pZCBf aW5pdF9mdW4oc2VsZiwgY2hhciAqTkFNRSwgaW50IHdoYXRfdHlwZSwgZGlyaWNobGV0X2NvZWZm LCBsb25nIGxvbmcgUGVyaW9kLCBkb3VibGUgcSwgIGNfQ29tcGxleCB3LCBpbnQgQSwgZG91Ymxl ICpnLCBjX0NvbXBsZXggKmwsIGludCBuX3BvbGVzLCBjX0NvbXBsZXggKnAsIGNfQ29tcGxleCAq cik6CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNkZWYgY19D b21wbGV4IF9fdmFsdWUoc2VsZixjX0NvbXBsZXggcyxpbnQgZGVyaXZhdGl2ZSk6CisrICAgIGNk ZWYgY19Db21wbGV4IF92YWx1ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJpdmF0aXZlKToKKyAg ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKy0gICAgY2RlZiBjX0NvbXBsZXgg X19oYXJkeV96X2Z1bmN0aW9uKHNlbGYsY19Db21wbGV4IHMpOgorKyAgICBjZGVmIGNfQ29tcGxl eCBfaGFyZHlfel9mdW5jdGlvbihzZWxmLGNfQ29tcGxleCBzKToKKyAgICAgICAgIHJhaXNlIE5v dEltcGxlbWVudGVkRXJyb3IKKyAKKy0gICAgY2RlZiBpbnQgX19jb21wdXRlX3Jhbmsoc2VsZik6 CisrICAgIGNkZWYgaW50IF9jb21wdXRlX3Jhbmsoc2VsZik6CisgICAgICAgICByYWlzZSBOb3RJ bXBsZW1lbnRlZEVycm9yCisgCistICAgIGNkZWYgZG91YmxlIF9fdHlwZWROKHNlbGYsZG91Ymxl IFQpOgorKyAgICBjZGVmIGRvdWJsZSBfdHlwZWROKHNlbGYsZG91YmxlIFQpOgorICAgICAgICAg cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBjZGVmIHZvaWQgX19maW5kX3plcm9z X3Yoc2VsZixkb3VibGUgVDEsIGRvdWJsZSBUMiwgZG91YmxlIHN0ZXBzaXplLCBkb3VibGV2ZWMg KnJlc3VsdCk6CisrICAgIGNkZWYgdm9pZCBfZmluZF96ZXJvc192KHNlbGYsZG91YmxlIFQxLCBk b3VibGUgVDIsIGRvdWJsZSBzdGVwc2l6ZSwgZG91YmxldmVjICpyZXN1bHQpOgorICAgICAgICAg cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBjZGVmIGludCBfX2ZpbmRfemVyb3Mo c2VsZiwgbG9uZyBjb3VudCwgbG9uZyBzdGFydCwgZG91YmxlIG1heF9yZWZpbmUsIGludCByYW5r LCBjb25zdCBjaGFyKiBtZXNzYWdlX3N0YW1wLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisrICAgIGNk ZWYgaW50IF9maW5kX3plcm9zKHNlbGYsIGxvbmcgY291bnQsIGxvbmcgc3RhcnQsIGRvdWJsZSBt YXhfcmVmaW5lLCBpbnQgcmFuaywgY29uc3QgY2hhciogbWVzc2FnZV9zdGFtcCwgZG91YmxldmVj ICpyZXN1bHQpOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworQEAgLTQ5Nyw3ICs0OTcsNyBAQCBjZGVmIGNsYXNzIExmdW5jdGlv bl9JKExmdW5jdGlvbik6CisgICAgICAgICBzZWxmLl9yZXByICs9ICIgd2l0aCBpbnRlZ2VyIERp cmljaGxldCBjb2VmZmljaWVudHMiCisgCisgICAgICMgb3ZlcnJpZGUKKy0gICAgY2RlZiB2b2lk IF9faW5pdF9mdW4oc2VsZiwgY2hhciAqTkFNRSwgaW50IHdoYXRfdHlwZSwgZGlyaWNobGV0X2Nv ZWZmLCBsb25nIGxvbmcgUGVyaW9kLCBkb3VibGUgcSwgIGNfQ29tcGxleCB3LCBpbnQgQSwgZG91 YmxlICpnLCBjX0NvbXBsZXggKmwsIGludCBuX3BvbGVzLCBjX0NvbXBsZXggKnAsIGNfQ29tcGxl eCAqcik6CisrICAgIGNkZWYgdm9pZCBfaW5pdF9mdW4oc2VsZiwgY2hhciAqTkFNRSwgaW50IHdo YXRfdHlwZSwgZGlyaWNobGV0X2NvZWZmLCBsb25nIGxvbmcgUGVyaW9kLCBkb3VibGUgcSwgIGNf Q29tcGxleCB3LCBpbnQgQSwgZG91YmxlICpnLCBjX0NvbXBsZXggKmwsIGludCBuX3BvbGVzLCBj X0NvbXBsZXggKnAsIGNfQ29tcGxleCAqcik6CisgICAgICAgICBjZGVmIGludCBOID0gbGVuKGRp cmljaGxldF9jb2VmZikKKyAgICAgICAgIGNkZWYgSW50ZWdlciB0bXBpCisgICAgICAgICBjZGVm IGludCAqIGNvZWZmcyA9IG5ld19pbnRzKE4rMSkgI2xjYWxjIGlnbm9yZXMgMHRoZSBjb2VmZmlj aWVudAorQEAgLTUwNywyMiArNTA3LDIyIEBAIGNkZWYgY2xhc3MgTGZ1bmN0aW9uX0koTGZ1bmN0 aW9uKToKKyAgICAgICAgIHNlbGYudGhpc3B0cj1uZXdfY19MZnVuY3Rpb25fSShOQU1FLCB3aGF0 X3R5cGUsICBOLCBjb2VmZnMsIFBlcmlvZCwgcSwgIHcsICBBLCBnLCBsLCBuX3BvbGVzLCBwLCBy KQorICAgICAgICAgZGVsX2ludHMoY29lZmZzKQorIAorLSAgICBjZGVmIGlubGluZSBjX0NvbXBs ZXggX192YWx1ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJpdmF0aXZlKToKKysgICAgY2RlZiBp bmxpbmUgY19Db21wbGV4IF92YWx1ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJpdmF0aXZlKToK KyAgICAgICAgIHJldHVybiAoPGNfTGZ1bmN0aW9uX0kgKj4oc2VsZi50aGlzcHRyKSkudmFsdWUo cywgZGVyaXZhdGl2ZSwgInB1cmUiKQorIAorLSAgICBjZGVmIGlubGluZSBjX0NvbXBsZXggX19o YXJkeV96X2Z1bmN0aW9uKHNlbGYsY19Db21wbGV4IHMpOgorKyAgICBjZGVmIGlubGluZSBjX0Nv bXBsZXggX2hhcmR5X3pfZnVuY3Rpb24oc2VsZixjX0NvbXBsZXggcyk6CisgICAgICAgICByZXR1 cm4gKDxjX0xmdW5jdGlvbl9JICo+KHNlbGYudGhpc3B0cikpLnZhbHVlKHMsIDAsICJyb3RhdGVk IHB1cmUiKQorIAorLSAgICBjZGVmIGludCBfX2NvbXB1dGVfcmFuayhzZWxmKToKKysgICAgY2Rl ZiBpbnQgX2NvbXB1dGVfcmFuayhzZWxmKToKKyAgICAgICAgIHJldHVybiAoPGNfTGZ1bmN0aW9u X0kgKj4oc2VsZi50aGlzcHRyKSkuY29tcHV0ZV9yYW5rKCkKKyAKKy0gICAgY2RlZiB2b2lkIF9f ZmluZF96ZXJvc192KHNlbGYsIGRvdWJsZSBUMSwgZG91YmxlIFQyLCBkb3VibGUgc3RlcHNpemUs IGRvdWJsZXZlYyAqcmVzdWx0KToKKysgICAgY2RlZiB2b2lkIF9maW5kX3plcm9zX3Yoc2VsZiwg ZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJsZSBzdGVwc2l6ZSwgZG91YmxldmVjICpyZXN1bHQp OgorICAgICAgICAgKDxjX0xmdW5jdGlvbl9JICo+c2VsZi50aGlzcHRyKS5maW5kX3plcm9zX3Yo VDEsVDIsc3RlcHNpemUscmVzdWx0WzBdKQorIAorLSAgICBjZGVmIGRvdWJsZSBfX3R5cGVkTihz ZWxmLCBkb3VibGUgVCk6CisrICAgIGNkZWYgZG91YmxlIF90eXBlZE4oc2VsZiwgZG91YmxlIFQp OgorICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fSSAqPnNlbGYudGhpc3B0cikuTihUKQor IAorLSAgICBjZGVmIGludCBfX2ZpbmRfemVyb3Moc2VsZiwgbG9uZyBjb3VudCwgbG9uZyBzdGFy dCwgZG91YmxlIG1heF9yZWZpbmUsIGludCByYW5rLCBjb25zdCBjaGFyKiBtZXNzYWdlX3N0YW1w LCBkb3VibGV2ZWMgKnJlc3VsdCk6CisrICAgIGNkZWYgaW50IF9maW5kX3plcm9zKHNlbGYsIGxv bmcgY291bnQsIGxvbmcgc3RhcnQsIGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQgcmFuaywgY29uc3Qg Y2hhciogbWVzc2FnZV9zdGFtcCwgZG91YmxldmVjICpyZXN1bHQpOgorICAgICAgICAgKDxjX0xm dW5jdGlvbl9JICo+c2VsZi50aGlzcHRyKS5maW5kX3plcm9zKGNvdW50LCBzdGFydCwgbWF4X3Jl ZmluZSwgcmFuaywgbWVzc2FnZV9zdGFtcCwgcmVzdWx0KQorIAorICAgICAjIGRlYnVnIHRvb2xz CitAQCAtNjMzLDcgKzYzMyw3IEBAIGNkZWYgY2xhc3MgTGZ1bmN0aW9uX0QoTGZ1bmN0aW9uKToK KyAgICAgICAgIHNlbGYuX3JlcHIgKz0gIiB3aXRoIHJlYWwgRGlyaWNobGV0IGNvZWZmaWNpZW50 cyIKKyAKKyAgICAgIyBvdmVycmlkZQorLSAgICBjZGVmIHZvaWQgX19pbml0X2Z1bihzZWxmLCBj aGFyICpOQU1FLCBpbnQgd2hhdF90eXBlLCBkaXJpY2hsZXRfY29lZmYsIGxvbmcgbG9uZyBQZXJp b2QsIGRvdWJsZSBxLCAgY19Db21wbGV4IHcsIGludCBBLCBkb3VibGUgKmcsIGNfQ29tcGxleCAq bCwgaW50IG5fcG9sZXMsIGNfQ29tcGxleCAqcCwgY19Db21wbGV4ICpyKToKKysgICAgY2RlZiB2 b2lkIF9pbml0X2Z1bihzZWxmLCBjaGFyICpOQU1FLCBpbnQgd2hhdF90eXBlLCBkaXJpY2hsZXRf Y29lZmYsIGxvbmcgbG9uZyBQZXJpb2QsIGRvdWJsZSBxLCAgY19Db21wbGV4IHcsIGludCBBLCBk b3VibGUgKmcsIGNfQ29tcGxleCAqbCwgaW50IG5fcG9sZXMsIGNfQ29tcGxleCAqcCwgY19Db21w bGV4ICpyKToKKyAgICAgICAgIGNkZWYgaW50IGkKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB0 bXByCisgICAgICAgICBjZGVmIGludCBOID0gbGVuKGRpcmljaGxldF9jb2VmZikKK0BAIC02NDQs MjMgKzY0NCwyMyBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbl9EKExmdW5jdGlvbik6CisgICAgICAg ICBzZWxmLnRoaXNwdHI9bmV3X2NfTGZ1bmN0aW9uX0QoTkFNRSwgd2hhdF90eXBlLCAgTiwgY29l ZmZzLCBQZXJpb2QsIHEsICB3LCAgQSwgZywgbCwgbl9wb2xlcywgcCwgcikKKyAgICAgICAgIGRl bF9kb3VibGVzKGNvZWZmcykKKyAKKy0gICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9fdmFsdWUo c2VsZixjX0NvbXBsZXggcyxpbnQgZGVyaXZhdGl2ZSk6CisrICAgIGNkZWYgaW5saW5lIGNfQ29t cGxleCBfdmFsdWUoc2VsZixjX0NvbXBsZXggcyxpbnQgZGVyaXZhdGl2ZSk6CisgICAgICAgICBy ZXR1cm4gKDxjX0xmdW5jdGlvbl9EICo+KHNlbGYudGhpc3B0cikpLnZhbHVlKHMsIGRlcml2YXRp dmUsICJwdXJlIikKKyAKKyAKKy0gICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9faGFyZHlfel9m dW5jdGlvbihzZWxmLGNfQ29tcGxleCBzKToKKysgICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9o YXJkeV96X2Z1bmN0aW9uKHNlbGYsY19Db21wbGV4IHMpOgorICAgICAgICAgcmV0dXJuICg8Y19M ZnVuY3Rpb25fRCAqPihzZWxmLnRoaXNwdHIpKS52YWx1ZShzLCAwLCAicm90YXRlZCBwdXJlIikK KyAKKy0gICAgY2RlZiBpbmxpbmUgaW50IF9fY29tcHV0ZV9yYW5rKHNlbGYpOgorKyAgICBjZGVm IGlubGluZSBpbnQgX2NvbXB1dGVfcmFuayhzZWxmKToKKyAgICAgICAgIHJldHVybiAoPGNfTGZ1 bmN0aW9uX0QgKj4oc2VsZi50aGlzcHRyKSkuY29tcHV0ZV9yYW5rKCkKKyAKKy0gICAgY2RlZiB2 b2lkIF9fZmluZF96ZXJvc192KHNlbGYsIGRvdWJsZSBUMSwgZG91YmxlIFQyLCBkb3VibGUgc3Rl cHNpemUsIGRvdWJsZXZlYyAqcmVzdWx0KToKKysgICAgY2RlZiB2b2lkIF9maW5kX3plcm9zX3Yo c2VsZiwgZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJsZSBzdGVwc2l6ZSwgZG91YmxldmVjICpy ZXN1bHQpOgorICAgICAgICAgKDxjX0xmdW5jdGlvbl9EICo+c2VsZi50aGlzcHRyKS5maW5kX3pl cm9zX3YoVDEsVDIsc3RlcHNpemUscmVzdWx0WzBdKQorIAorLSAgICBjZGVmIGRvdWJsZSBfX3R5 cGVkTihzZWxmLCBkb3VibGUgVCk6CisrICAgIGNkZWYgZG91YmxlIF90eXBlZE4oc2VsZiwgZG91 YmxlIFQpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fRCAqPnNlbGYudGhpc3B0ciku TihUKQorIAorLSAgICBjZGVmIGludCBfX2ZpbmRfemVyb3Moc2VsZiwgbG9uZyBjb3VudCwgbG9u ZyBzdGFydCxkb3VibGUgbWF4X3JlZmluZSwgaW50IHJhbmssIGNvbnN0IGNoYXIqIG1lc3NhZ2Vf c3RhbXAsIGRvdWJsZXZlYyAqcmVzdWx0KToKKysgICAgY2RlZiBpbnQgX2ZpbmRfemVyb3Moc2Vs ZiwgbG9uZyBjb3VudCwgbG9uZyBzdGFydCxkb3VibGUgbWF4X3JlZmluZSwgaW50IHJhbmssIGNv bnN0IGNoYXIqIG1lc3NhZ2Vfc3RhbXAsIGRvdWJsZXZlYyAqcmVzdWx0KToKKyAgICAgICAgICg8 Y19MZnVuY3Rpb25fRCAqPnNlbGYudGhpc3B0cikuZmluZF96ZXJvcyhjb3VudCwgc3RhcnQsIG1h eF9yZWZpbmUsIHJhbmssIG1lc3NhZ2Vfc3RhbXAsIHJlc3VsdCkKKyAKKyAgICAgIyBkZWJ1ZyB0 b29scworQEAgLTc3Myw3ICs3NzMsNyBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbl9DOgorICAgICAg ICAgc2VsZi5fcmVwciArPSAiIHdpdGggY29tcGxleCBEaXJpY2hsZXQgY29lZmZpY2llbnRzIgor IAorICAgICAjIG92ZXJyaWRlCistICAgIGNkZWYgdm9pZCBfX2luaXRfZnVuKHNlbGYsIGNoYXIg Kk5BTUUsIGludCB3aGF0X3R5cGUsIGRpcmljaGxldF9jb2VmZiwgbG9uZyBsb25nIFBlcmlvZCwg ZG91YmxlIHEsICBjX0NvbXBsZXggdywgaW50IEEsIGRvdWJsZSAqZywgY19Db21wbGV4ICpsLCBp bnQgbl9wb2xlcywgY19Db21wbGV4ICpwLCBjX0NvbXBsZXggKnIpOgorKyAgICBjZGVmIHZvaWQg X2luaXRfZnVuKHNlbGYsIGNoYXIgKk5BTUUsIGludCB3aGF0X3R5cGUsIGRpcmljaGxldF9jb2Vm ZiwgbG9uZyBsb25nIFBlcmlvZCwgZG91YmxlIHEsICBjX0NvbXBsZXggdywgaW50IEEsIGRvdWJs ZSAqZywgY19Db21wbGV4ICpsLCBpbnQgbl9wb2xlcywgY19Db21wbGV4ICpwLCBjX0NvbXBsZXgg KnIpOgorICAgICAgICAgY2RlZiBpbnQgaQorICAgICAgICAgY2RlZiBpbnQgTiA9IGxlbihkaXJp Y2hsZXRfY29lZmYpCisgICAgICAgICBjZGVmIENvbXBsZXhOdW1iZXIgdG1wYworQEAgLTc4OCwy NCArNzg4LDI0IEBAIGNkZWYgY2xhc3MgTGZ1bmN0aW9uX0M6CisgCisgICAgICAgICBkZWxfQ29t cGxleGVzKGNvZWZmcykKKyAKKy0gICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9fdmFsdWUoc2Vs ZixjX0NvbXBsZXggcyxpbnQgZGVyaXZhdGl2ZSk6CisrICAgIGNkZWYgaW5saW5lIGNfQ29tcGxl eCBfdmFsdWUoc2VsZixjX0NvbXBsZXggcyxpbnQgZGVyaXZhdGl2ZSk6CisgICAgICAgICByZXR1 cm4gKDxjX0xmdW5jdGlvbl9DICo+KHNlbGYudGhpc3B0cikpLnZhbHVlKHMsIGRlcml2YXRpdmUs ICJwdXJlIikKKyAKKyAKKy0gICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9faGFyZHlfel9mdW5j dGlvbihzZWxmLGNfQ29tcGxleCBzKToKKysgICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9oYXJk eV96X2Z1bmN0aW9uKHNlbGYsY19Db21wbGV4IHMpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVu Y3Rpb25fQyAqPihzZWxmLnRoaXNwdHIpKS52YWx1ZShzLCAwLCJyb3RhdGVkIHB1cmUiKQorIAor LSAgICBjZGVmIGlubGluZSBpbnQgX19jb21wdXRlX3Jhbmsoc2VsZik6CisrICAgIGNkZWYgaW5s aW5lIGludCBfY29tcHV0ZV9yYW5rKHNlbGYpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rp b25fQyAqPihzZWxmLnRoaXNwdHIpKS5jb21wdXRlX3JhbmsoKQorIAorIAorLSAgICBjZGVmIHZv aWQgX19maW5kX3plcm9zX3Yoc2VsZiwgZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJsZSBzdGVw c2l6ZSwgZG91YmxldmVjICpyZXN1bHQpOgorKyAgICBjZGVmIHZvaWQgX2ZpbmRfemVyb3Nfdihz ZWxmLCBkb3VibGUgVDEsIGRvdWJsZSBUMiwgZG91YmxlIHN0ZXBzaXplLCBkb3VibGV2ZWMgKnJl c3VsdCk6CisgICAgICAgICAoPGNfTGZ1bmN0aW9uX0MgKj5zZWxmLnRoaXNwdHIpLmZpbmRfemVy b3NfdihUMSxUMixzdGVwc2l6ZSxyZXN1bHRbMF0pCisgCistICAgIGNkZWYgZG91YmxlIF9fdHlw ZWROKHNlbGYsIGRvdWJsZSBUKToKKysgICAgY2RlZiBkb3VibGUgX3R5cGVkTihzZWxmLCBkb3Vi bGUgVCk6CisgICAgICAgICByZXR1cm4gKDxjX0xmdW5jdGlvbl9DICo+c2VsZi50aGlzcHRyKS5O KFQpCisgCistICAgIGNkZWYgaW50IF9fZmluZF96ZXJvcyhzZWxmLCBsb25nIGNvdW50LCBsb25n IHN0YXJ0LCBkb3VibGUgbWF4X3JlZmluZSwgaW50IHJhbmssIGNvbnN0IGNoYXIqIG1lc3NhZ2Vf c3RhbXAsIGRvdWJsZXZlYyAqcmVzdWx0KToKKysgICAgY2RlZiBpbnQgX2ZpbmRfemVyb3Moc2Vs ZiwgbG9uZyBjb3VudCwgbG9uZyBzdGFydCwgZG91YmxlIG1heF9yZWZpbmUsIGludCByYW5rLCBj b25zdCBjaGFyKiBtZXNzYWdlX3N0YW1wLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisgICAgICAgICAo PGNfTGZ1bmN0aW9uX0MgKj5zZWxmLnRoaXNwdHIpLmZpbmRfemVyb3MoY291bnQsIHN0YXJ0LCBt YXhfcmVmaW5lLCByYW5rLCBtZXNzYWdlX3N0YW1wLCByZXN1bHQpCisgCisgICAgICMgZGVidWcg dG9vbHMKK0BAIC04NzMsMjQgKzg3MywyNCBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbl9aZXRhKExm dW5jdGlvbik6CisgICAgICAgICBzZWxmLnRoaXNwdHIgPSBuZXdfY19MZnVuY3Rpb25fWmV0YSgp CisgICAgICAgICBzZWxmLl9yZXByID0gIlRoZSBSaWVtYW5uIHpldGEgZnVuY3Rpb24iCisgCist ICAgIGNkZWYgaW5saW5lIGNfQ29tcGxleCBfX3ZhbHVlKHNlbGYsY19Db21wbGV4IHMsaW50IGRl cml2YXRpdmUpOgorKyAgICBjZGVmIGlubGluZSBjX0NvbXBsZXggX3ZhbHVlKHNlbGYsY19Db21w bGV4IHMsaW50IGRlcml2YXRpdmUpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fWmV0 YSAqPihzZWxmLnRoaXNwdHIpKS52YWx1ZShzLCBkZXJpdmF0aXZlLCAicHVyZSIpCisgCisgCist ICAgIGNkZWYgaW5saW5lIGNfQ29tcGxleCBfX2hhcmR5X3pfZnVuY3Rpb24oc2VsZixjX0NvbXBs ZXggcyk6CisrICAgIGNkZWYgaW5saW5lIGNfQ29tcGxleCBfaGFyZHlfel9mdW5jdGlvbihzZWxm LGNfQ29tcGxleCBzKToKKyAgICAgICAgIHJldHVybiAoPGNfTGZ1bmN0aW9uX1pldGEgKj4oc2Vs Zi50aGlzcHRyKSkudmFsdWUocywgMCwgInJvdGF0ZWQgcHVyZSIpCisgCistICAgIGNkZWYgaW5s aW5lIGludCBfX2NvbXB1dGVfcmFuayhzZWxmKToKKysgICAgY2RlZiBpbmxpbmUgaW50IF9jb21w dXRlX3Jhbmsoc2VsZik6CisgICAgICAgICByZXR1cm4gKDxjX0xmdW5jdGlvbl9aZXRhICo+KHNl bGYudGhpc3B0cikpLmNvbXB1dGVfcmFuaygpCisgCisgCistICAgIGNkZWYgdm9pZCBfX2ZpbmRf emVyb3NfdihzZWxmLCBkb3VibGUgVDEsIGRvdWJsZSBUMiwgZG91YmxlIHN0ZXBzaXplLCBkb3Vi bGV2ZWMgKnJlc3VsdCk6CisrICAgIGNkZWYgdm9pZCBfZmluZF96ZXJvc192KHNlbGYsIGRvdWJs ZSBUMSwgZG91YmxlIFQyLCBkb3VibGUgc3RlcHNpemUsIGRvdWJsZXZlYyAqcmVzdWx0KToKKyAg ICAgICAgICg8Y19MZnVuY3Rpb25fWmV0YSAqPnNlbGYudGhpc3B0cikuZmluZF96ZXJvc192KFQx LFQyLHN0ZXBzaXplLHJlc3VsdFswXSkKKyAKKy0gICAgY2RlZiBkb3VibGUgX190eXBlZE4oc2Vs ZiwgZG91YmxlIFQpOgorKyAgICBjZGVmIGRvdWJsZSBfdHlwZWROKHNlbGYsIGRvdWJsZSBUKToK KyAgICAgICAgIHJldHVybiAoPGNfTGZ1bmN0aW9uX1pldGEgKj5zZWxmLnRoaXNwdHIpLk4oVCkK KyAKKy0gICAgY2RlZiBpbnQgX19maW5kX3plcm9zKHNlbGYsIGxvbmcgY291bnQsIGxvbmcgc3Rh cnQsIGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQgcmFuaywgY29uc3QgY2hhciogbWVzc2FnZV9zdGFt cCwgZG91YmxldmVjICpyZXN1bHQpOgorKyAgICBjZGVmIGludCBfZmluZF96ZXJvcyhzZWxmLCBs b25nIGNvdW50LCBsb25nIHN0YXJ0LCBkb3VibGUgbWF4X3JlZmluZSwgaW50IHJhbmssIGNvbnN0 IGNoYXIqIG1lc3NhZ2Vfc3RhbXAsIGRvdWJsZXZlYyAqcmVzdWx0KToKKyAgICAgICAgICg8Y19M ZnVuY3Rpb25fWmV0YSAqPnNlbGYudGhpc3B0cikuZmluZF96ZXJvcyhjb3VudCwgc3RhcnQsIG1h eF9yZWZpbmUsIHJhbmssIG1lc3NhZ2Vfc3RhbXAsIHJlc3VsdCkKKyAKKyAgICAgZGVmIF9fZGVh bGxvY19fKHNlbGYpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNz L1BvbHlub21pYWxfcmFtLnB4aSBiL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNzL1BvbHlu b21pYWxfcmFtLnB4aQoraW5kZXggMWFjNTFmMTIxMWYuLmUwNTg0ZWNiOGFkIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9wYWRpY3MvUG9seW5vbWlhbF9yYW0ucHhpCisrKysg Yi9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9Qb2x5bm9taWFsX3JhbS5weGkKK0BAIC01 NSwxNiArNTUsMTYgQEAgY2RlZiBpbmxpbmUgYmludCBjcmVkdWNlKGNlbGVtZW50IG91dCwgY2Vs ZW1lbnQgYSwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJpbWUKKyAgICAgIiIiCisgICAgIGNk ZWYgY2VsZW1lbnQgYXJlZCA9IGEgJSBwcmltZV9wb3cubW9kdWx1cworICAgICBpZiBhcmVkIGlz IGEgYW5kIG91dCBpcyBub3QgYToKKy0gICAgICAgIG91dC5fX2NvZWZmcyA9IGFyZWQuX19jb2Vm ZnNbOl0KKysgICAgICAgIG91dC5fY29lZmZzID0gYXJlZC5fY29lZmZzWzpdCisgICAgIGVsc2U6 CistICAgICAgICBvdXQuX19jb2VmZnMgPSBhcmVkLl9fY29lZmZzCisrICAgICAgICBvdXQuX2Nv ZWZmcyA9IGFyZWQuX2NvZWZmcworICAgICBjZGVmIGxvbmcgY29lZmZfcHJlYyA9IHByZWMgLyBw cmltZV9wb3cuZSArIDEKKyAgICAgY2RlZiBsb25nIGJyZWFrX3B0ID0gcHJlYyAlIHByaW1lX3Bv dy5lCistICAgIGZvciBpIGluIHJhbmdlKGxlbihvdXQuX19jb2VmZnMpKToKKysgICAgZm9yIGkg aW4gcmFuZ2UobGVuKG91dC5fY29lZmZzKSk6CisgICAgICAgICBpZiBpID09IGJyZWFrX3B0Ogor ICAgICAgICAgICAgIGNvZWZmX3ByZWMgLT0gMQorLSAgICAgICAgb3V0Ll9fY29lZmZzW2ldID0g b3V0Ll9fY29lZmZzW2ldLmFkZF9iaWdvaChjb2VmZl9wcmVjKQorLSAgICBvdXQuX19ub3JtYWxp emUoKQorKyAgICAgICAgb3V0Ll9jb2VmZnNbaV0gPSBvdXQuX2NvZWZmc1tpXS5hZGRfYmlnb2go Y29lZmZfcHJlYykKKysgICAgb3V0Ll9ub3JtYWxpemUoKQorICAgICByZXR1cm4gb3V0ID09IDAK KyAKKyBjZGVmIGlubGluZSBiaW50IGNyZWR1Y2Vfc21hbGwoY2VsZW1lbnQgb3V0LCBjZWxlbWVu dCBhLCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAtMToKK0BAIC0x MTYsNyArMTE2LDcgQEAgY2RlZiBpbmxpbmUgbG9uZyBjdmFsdWF0aW9uKGNlbGVtZW50IGEsIGxv bmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhjZXAKKyAgICAgaGlnaGVyLgorIAor ICAgICAiIiIKKy0gICAgQyA9IGEuX19jb2VmZnMKKysgICAgQyA9IGEuX2NvZWZmcworICAgICBp ZiBub3QgQzoKKyAgICAgICAgIHJldHVybiBwcmVjCisgICAgIGNkZWYgbG9uZyByZXQgPSBtYXhv cmRwCitAQCAtMTYxLDcgKzE2MSw3IEBAIGNkZWYgaW5saW5lIGludCBjc2hpZnQoY2VsZW1lbnQg c2hpZnRlZCwgY2VsZW1lbnQgcmVtLCBjZWxlbWVudCBhLCBsb25nIG4sIGxvbmcKKyAgICAgICAg IHYgPSBjdmFsdWF0aW9uKGEsIHByZWMsIHByaW1lX3BvdykKKyAgICAgICAgIG5vdHJ1bmMgPSAo diA+PSAtbikKKyAgICAgaWYgbm90cnVuYzoKKy0gICAgICAgIHJlbS5fX2NvZWZmcyA9IFtdCisr ICAgICAgICByZW0uX2NvZWZmcyA9IFtdCisgICAgICAgICByZXR1cm4gY3NoaWZ0X25vdHJ1bmMo c2hpZnRlZCwgYSwgbiwgcHJlYywgcHJpbWVfcG93LCByZWR1Y2VfYWZ0ZXJ3YXJkKQorICAgICBp ZiB2ID4gMDoKKyAgICAgICAgIGIgPSBwcmltZV9wb3cucG9seV9yaW5nKDApCitAQCAtMTg1LDcg KzE4NSw3IEBAIGNkZWYgaW5saW5lIGludCBjc2hpZnQoY2VsZW1lbnQgc2hpZnRlZCwgY2VsZW1l bnQgcmVtLCBjZWxlbWVudCBhLCBsb25nIG4sIGxvbmcKKyAgICAgaWYgcmVkdWNlX2FmdGVyd2Fy ZDoKKyAgICAgICAgIGNyZWR1Y2Uoc2hpZnRlZCwgYSwgcHJlYywgcHJpbWVfcG93KQorICAgICBl bHNlOgorLSAgICAgICAgc2hpZnRlZC5fX2NvZWZmcyA9IGEuX19jb2VmZnNbOl0KKysgICAgICAg IHNoaWZ0ZWQuX2NvZWZmcyA9IGEuX2NvZWZmc1s6XQorIAorIGNkZWYgaW5saW5lIGludCBjc2hp ZnRfbm90cnVuYyhjZWxlbWVudCBvdXQsIGNlbGVtZW50IGEsIGxvbmcgbiwgbG9uZyBwcmVjLCBQ b3dDb21wdXRlcl8gcHJpbWVfcG93LCBiaW50IHJlZHVjZV9hZnRlcndhcmQpIGV4Y2VwdCAtMToK KyAgICAgciIiIgorQEAgLTIzNiw3ICsyMzYsNyBAQCBjZGVmIGlubGluZSBpbnQgY3NoaWZ0X25v dHJ1bmMoY2VsZW1lbnQgb3V0LCBjZWxlbWVudCBhLCBsb25nIG4sIGxvbmcgcHJlYywgUG93Qwor ICAgICBpZiByZWR1Y2VfYWZ0ZXJ3YXJkOgorICAgICAgICAgY3JlZHVjZShvdXQsIGEsIHByZWMs IHByaW1lX3BvdykKKyAgICAgZWxzZToKKy0gICAgICAgIG91dC5fX2NvZWZmcyA9IGEuX19jb2Vm ZnNbOl0KKysgICAgICAgIG91dC5fY29lZmZzID0gYS5fY29lZmZzWzpdCisgCisgY2RlZiBpbmxp bmUgaW50IGNpbnZlcnQoY2VsZW1lbnQgb3V0LCBjZWxlbWVudCBhLCBsb25nIHByZWMsIFBvd0Nv bXB1dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAtMToKKyAgICAgciIiIgorQEAgLTI1Myw3ICsyNTMs NyBAQCBjZGVmIGlubGluZSBpbnQgY2ludmVydChjZWxlbWVudCBvdXQsIGNlbGVtZW50IGEsIGxv bmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lXworICAgICAtIGBgcHJpbWVfcG93YGAgLS0gdGhl IGBgUG93Q29tcHV0ZXJgYCBmb3IgdGhlIHJpbmcKKyAKKyAgICAgIiIiCistICAgIG91dC5fX2Nv ZWZmcyA9IHByaW1lX3Bvdy5pbnZlcnQoYSwgcHJlYykuX19jb2VmZnMKKysgICAgb3V0Ll9jb2Vm ZnMgPSBwcmltZV9wb3cuaW52ZXJ0KGEsIHByZWMpLl9jb2VmZnMKKyAgICAgY3JlZHVjZShvdXQs IG91dCwgcHJlYywgcHJpbWVfcG93KQorIAorIGNkZWYgaW5saW5lIGludCBjZGl2dW5pdChjZWxl bWVudCBvdXQsIGNlbGVtZW50IGEsIGNlbGVtZW50IGIsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJf IHByaW1lX3BvdykgZXhjZXB0IC0xOgorQEAgLTMzNSw3ICszMzUsNyBAQCBjZGVmIGlubGluZSBj ZXhwYW5zaW9uX25leHQoY2VsZW1lbnQgdmFsdWUsIGV4cGFuc2lvbl9tb2RlIG1vZGUsIGxvbmcg Y3VycG93ZXIsCisgICAgICMgdGhlIGZvbGxvd2luZyBpcyBzcGVjaWZpYyB0byB0aGUgcmFtaWZp ZWQgb3ZlciB1bnJhbWlmaWVkIGNhc2UuCisgICAgIG1vZHBfcmVwLCB0ZXJtID0gdmFsdWVbMF0u X21vZHBfcmVwKG1vZGUgPT0gc21hbGxlc3RfbW9kZSkKKyAgICAgaWYgdGVybToKKy0gICAgICAg IHZhbHVlLl9fY29lZmZzWzBdIC09IG1vZHBfcmVwCisrICAgICAgICB2YWx1ZS5fY29lZmZzWzBd IC09IG1vZHBfcmVwCisgICAgIGNzaGlmdF9ub3RydW5jKHZhbHVlLCB2YWx1ZSwgLTEsIGN1cnBv d2VyLCBwcmltZV9wb3csIEZhbHNlKQorICAgICByZXR1cm4gdGVybQorIAorQEAgLTM1NCwxMCAr MzU0LDEwIEBAIGNkZWYgaW5saW5lIGNleHBhbnNpb25fZ2V0aXRlbShjZWxlbWVudCB2YWx1ZSwg bG9uZyBtLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KToKKyAgICAgd2hpbGUgbSA+PSAwOgorICAg ICAgICAgbW9kcF9yZXAsIHRlcm0gPSB2YWx1ZVswXS5fbW9kcF9yZXAoKQorICAgICAgICAgaWYg bToKKy0gICAgICAgICAgICBpZiBsZW4odmFsdWUuX19jb2VmZnMpOgorLSAgICAgICAgICAgICAg ICB2YWx1ZS5fX2NvZWZmc1swXSAtPSBtb2RwX3JlcAorKyAgICAgICAgICAgIGlmIGxlbih2YWx1 ZS5fY29lZmZzKToKKysgICAgICAgICAgICAgICAgdmFsdWUuX2NvZWZmc1swXSAtPSBtb2RwX3Jl cAorICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgIHZhbHVlLl9fY29lZmZzLmFw cGVuZCgtbW9kcF9yZXApCisrICAgICAgICAgICAgICAgIHZhbHVlLl9jb2VmZnMuYXBwZW5kKC1t b2RwX3JlcCkKKyAgICAgICAgICAgICBjc2hpZnRfbm90cnVuYyh2YWx1ZSwgdmFsdWUsIC0xLCAx LCBwcmltZV9wb3csIEZhbHNlKQorICAgICAgICAgbSAtPSAxCisgICAgIHJldHVybiB0ZXJtCitA QCAtMzc5LDkgKzM3OSw5IEBAIGNkZWYgaW50IGN0ZWljaG11bGxlcihjZWxlbWVudCBvdXQsIGNl bGVtZW50IHZhbHVlLCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltCisgCisgICAgICIiIgor ICAgICBpZiB2YWx1ZVswXS52YWx1YXRpb24oKSA+IDA6CistICAgICAgICBvdXQuX19jb2VmZnMg PSBbXQorKyAgICAgICAgb3V0Ll9jb2VmZnMgPSBbXQorICAgICBlbHNlOgorLSAgICAgICAgb3V0 Ll9fY29lZmZzID0gW3ZhbHVlWzBdLnBhcmVudCgpLnRlaWNobXVsbGVyKHZhbHVlWzBdKV0KKysg ICAgICAgIG91dC5fY29lZmZzID0gW3ZhbHVlWzBdLnBhcmVudCgpLnRlaWNobXVsbGVyKHZhbHVl WzBdKV0KKyAKKyBjZGVmIGxpc3QgY2NvZWZmaWNpZW50cyhjZWxlbWVudCB4LCBsb25nIHZhbHNo aWZ0LCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpOgorICAgICAiIiIKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9Qb2x5bm9taWFsX3NoYXJlZC5w eGkgYi9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9Qb2x5bm9taWFsX3NoYXJlZC5weGkK K2luZGV4IDQ5NWRjNmIwODQ4Li4zNjdiYmMyZjMzZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xp YnMvbGlua2FnZXMvcGFkaWNzL1BvbHlub21pYWxfc2hhcmVkLnB4aQorKysrIGIvc3JjL3NhZ2Uv bGlicy9saW5rYWdlcy9wYWRpY3MvUG9seW5vbWlhbF9zaGFyZWQucHhpCitAQCAtMTA2LDcgKzEw Niw3IEBAIGNkZWYgaW5saW5lIGludCBjY21wKGNlbGVtZW50IGEsIGNlbGVtZW50IGIsIGxvbmcg cHJlYywgYmludCByZWR1Y2VfYSwgYmludCByZWR1CisgICAgIGlmIG5vdCAocmVkdWNlX2Egb3Ig cmVkdWNlX2IpOgorICAgICAgICAgcmV0dXJuIDAgaWYgYSA9PSBiIGVsc2UgMQorICAgICBjc3Vi KHByaW1lX3Bvdy50bXBfY2NtcF9hLCBhLCBiLCBwcmVjLCBwcmltZV9wb3cpCistICAgIGNvZWZm cyA9IHByaW1lX3Bvdy50bXBfY2NtcF9hLl9fY29lZmZzCisrICAgIGNvZWZmcyA9IHByaW1lX3Bv dy50bXBfY2NtcF9hLl9jb2VmZnMKKyAgICAgY2RlZiBsb25nIGksIGNvZWZmX3ByZWMsIGJyZWFr X3B0CisgICAgIGlmIHByaW1lX3Bvdy5lID09IDE6CisgICAgICAgICBmb3IgaSBpbiByYW5nZShw cmltZV9wb3cudG1wX2NjbXBfYS5kZWdyZWUoKSsxKToKK0BAIC0xODYsOSArMTg2LDkgQEAgY2Rl ZiBpbmxpbmUgaW50IGNuZWcoY2VsZW1lbnQgb3V0LCBjZWxlbWVudCBhLCBsb25nIHByZWMsIFBv d0NvbXB1dGVyXyBwcmltZV9wb3cKKyAgICAgIiIiCisgICAgIGNkZWYgY2VsZW1lbnQgbWEgPSAt YQorICAgICBpZiBtYSBpcyBhOgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0gbWEuX19jb2VmZnNb Ol0KKysgICAgICAgIG91dC5fY29lZmZzID0gbWEuX2NvZWZmc1s6XQorICAgICBlbHNlOgorLSAg ICAgICAgb3V0Ll9fY29lZmZzID0gbWEuX19jb2VmZnMKKysgICAgICAgIG91dC5fY29lZmZzID0g bWEuX2NvZWZmcworIAorIGNkZWYgaW5saW5lIGludCBjYWRkKGNlbGVtZW50IG91dCwgY2VsZW1l bnQgYSwgY2VsZW1lbnQgYiwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBleGNl cHQgLTE6CisgICAgIHIiIiIKK0BAIC0yMTEsOSArMjExLDkgQEAgY2RlZiBpbmxpbmUgaW50IGNh ZGQoY2VsZW1lbnQgb3V0LCBjZWxlbWVudCBhLCBjZWxlbWVudCBiLCBsb25nIHByZWMsIFBvd0Nv bXB1dGUKKyAgICAgIiIiCisgICAgIGNkZWYgY2VsZW1lbnQgc20gPSBhICsgYgorICAgICBpZiBz bSBpcyBhIG9yIHNtIGlzIGI6CistICAgICAgICBvdXQuX19jb2VmZnMgPSBzbS5fX2NvZWZmc1s6 XQorKyAgICAgICAgb3V0Ll9jb2VmZnMgPSBzbS5fY29lZmZzWzpdCisgICAgIGVsc2U6CistICAg ICAgICBvdXQuX19jb2VmZnMgPSBzbS5fX2NvZWZmcworKyAgICAgICAgb3V0Ll9jb2VmZnMgPSBz bS5fY29lZmZzCisgCisgY2RlZiBpbmxpbmUgaW50IGNzdWIoY2VsZW1lbnQgb3V0LCBjZWxlbWVu dCBhLCBjZWxlbWVudCBiLCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2Vw dCAtMToKKyAgICAgciIiIgorQEAgLTIzNiw5ICsyMzYsOSBAQCBjZGVmIGlubGluZSBpbnQgY3N1 YihjZWxlbWVudCBvdXQsIGNlbGVtZW50IGEsIGNlbGVtZW50IGIsIGxvbmcgcHJlYywgUG93Q29t cHV0ZQorICAgICAiIiIKKyAgICAgY2RlZiBjZWxlbWVudCBkZiA9IGEgLSBiCisgICAgIGlmIGRm IGlzIGEgb3IgZGYgaXMgYjoKKy0gICAgICAgIG91dC5fX2NvZWZmcyA9IGRmLl9fY29lZmZzWzpd CisrICAgICAgICBvdXQuX2NvZWZmcyA9IGRmLl9jb2VmZnNbOl0KKyAgICAgZWxzZToKKy0gICAg ICAgIG91dC5fX2NvZWZmcyA9IGRmLl9fY29lZmZzCisrICAgICAgICBvdXQuX2NvZWZmcyA9IGRm Ll9jb2VmZnMKKyAKKyBjZGVmIGlubGluZSBpbnQgY211bChjZWxlbWVudCBvdXQsIGNlbGVtZW50 IGEsIGNlbGVtZW50IGIsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhjZXB0 IC0xOgorICAgICByIiIiCitAQCAtMjYxLDkgKzI2MSw5IEBAIGNkZWYgaW5saW5lIGludCBjbXVs KGNlbGVtZW50IG91dCwgY2VsZW1lbnQgYSwgY2VsZW1lbnQgYiwgbG9uZyBwcmVjLCBQb3dDb21w dXRlCisgICAgICIiIgorICAgICBjZGVmIGNlbGVtZW50IHBkID0gYSpiCisgICAgIGlmIHBkIGlz IGEgb3IgcGQgaXMgYjoKKy0gICAgICAgIG91dC5fX2NvZWZmcyA9IHBkLl9fY29lZmZzWzpdCisr ICAgICAgICBvdXQuX2NvZWZmcyA9IHBkLl9jb2VmZnNbOl0KKyAgICAgZWxzZToKKy0gICAgICAg IG91dC5fX2NvZWZmcyA9IHBkLl9fY29lZmZzCisrICAgICAgICBvdXQuX2NvZWZmcyA9IHBkLl9j b2VmZnMKKyAKKyBjZGVmIGlubGluZSBpbnQgY3NldG9uZShjZWxlbWVudCBvdXQsIFBvd0NvbXB1 dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAtMToKKyAgICAgciIiIgorQEAgLTI3Niw3ICsyNzYsNyBA QCBjZGVmIGlubGluZSBpbnQgY3NldG9uZShjZWxlbWVudCBvdXQsIFBvd0NvbXB1dGVyXyBwcmlt ZV9wb3cpIGV4Y2VwdCAtMToKKyAgICAgLSBgYHByaW1lX3Bvd2BgIC0tIHRoZSBgYFBvd0NvbXB1 dGVyYGAgZm9yIHRoZSByaW5nCisgCisgICAgICIiIgorLSAgICBvdXQuX19jb2VmZnMgPSBbcHJp bWVfcG93LmJhc2VfcmluZygxKV0KKysgICAgb3V0Ll9jb2VmZnMgPSBbcHJpbWVfcG93LmJhc2Vf cmluZygxKV0KKyAKKyBjZGVmIGlubGluZSBpbnQgY3NldHplcm8oY2VsZW1lbnQgb3V0LCBQb3dD b21wdXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLTE6CisgICAgIHIiIiIKK0BAIC0yODksNyArMjg5 LDcgQEAgY2RlZiBpbmxpbmUgaW50IGNzZXR6ZXJvKGNlbGVtZW50IG91dCwgUG93Q29tcHV0ZXJf IHByaW1lX3BvdykgZXhjZXB0IC0xOgorICAgICAtIGBgcHJpbWVfcG93YGAgLS0gdGhlIGBgUG93 Q29tcHV0ZXJgYCBmb3IgdGhlIHJpbmcKKyAKKyAgICAgIiIiCistICAgIG91dC5fX2NvZWZmcyA9 IFtdCisrICAgIG91dC5fY29lZmZzID0gW10KKyAKKyBjZGVmIGlubGluZSBiaW50IGNpc29uZShj ZWxlbWVudCBhLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLTE6CisgICAgIHIiIiIK K0BAIC0zMzAsNyArMzMwLDcgQEAgY2RlZiBpbmxpbmUgaW50IGNjb3B5KGNlbGVtZW50IG91dCwg Y2VsZW1lbnQgYSwgUG93Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhjZXB0IC0KKyAgICAgLSBgYHBy aW1lX3Bvd2BgIC0tIHRoZSBgYFBvd0NvbXB1dGVyYGAgZm9yIHRoZSByaW5nCisgCisgICAgICIi IgorLSAgICBvdXQuX19jb2VmZnMgPSBhLl9fY29lZmZzWzpdCisrICAgIG91dC5fY29lZmZzID0g YS5fY29lZmZzWzpdCisgCisgY2RlZiBpbmxpbmUgY3BpY2tsZShjZWxlbWVudCBhLCBQb3dDb21w dXRlcl8gcHJpbWVfcG93KToKKyAgICAgciIiIgorQEAgLTM0Myw3ICszNDMsNyBAQCBjZGVmIGlu bGluZSBjcGlja2xlKGNlbGVtZW50IGEsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpOgorICAgICAt IGBgcHJpbWVfcG93YGAgdGhlIGBgUG93Q29tcHV0ZXJgYCBmb3IgdGhlIHJpbmcKKyAKKyAgICAg IiIiCistICAgIHJldHVybiBhLl9fY29lZmZzCisrICAgIHJldHVybiBhLl9jb2VmZnMKKyAKKyBj ZGVmIGlubGluZSBpbnQgY3VucGlja2xlKGNlbGVtZW50IG91dCwgeCwgUG93Q29tcHV0ZXJfIHBy aW1lX3BvdykgZXhjZXB0IC0xOgorICAgICByIiIiCitAQCAtMzU4LDcgKzM1OCw3IEBAIGNkZWYg aW5saW5lIGludCBjdW5waWNrbGUoY2VsZW1lbnQgb3V0LCB4LCBQb3dDb21wdXRlcl8gcHJpbWVf cG93KSBleGNlcHQgLTE6CisgICAgIC0gYGBwcmltZV9wb3dgYCAtLSB0aGUgYGBQb3dDb21wdXRl cmBgIGZvciB0aGUgcmluZworIAorICAgICAiIiIKKy0gICAgb3V0Ll9fY29lZmZzID0geAorKyAg ICBvdXQuX2NvZWZmcyA9IHgKKyAKKyBjZGVmIGlubGluZSBsb25nIGNoYXNoKGNlbGVtZW50IGEs IGxvbmcgb3JkcCwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLTE6 CisgICAgIHIiIiIKK0BAIC00MTMsOSArNDEzLDkgQEAgY2RlZiBpbnQgY2NvbnYoY2VsZW1lbnQg b3V0LCB4LCBsb25nIHByZWMsIGxvbmcgdmFsc2hpZnQsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cK KyAgICAgZWxzZToKKyAgICAgICAgIHh4ID0gcHJpbWVfcG93LnBvbHlfcmluZyh4KQorICAgICBp ZiB4eCBpcyB4OgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0geHguX19jb2VmZnNbOl0KKysgICAg ICAgIG91dC5fY29lZmZzID0geHguX2NvZWZmc1s6XQorICAgICBlbHNlOgorLSAgICAgICAgb3V0 Ll9fY29lZmZzID0geHguX19jb2VmZnMKKysgICAgICAgIG91dC5fY29lZmZzID0geHguX2NvZWZm cworICAgICBpZiB2YWxzaGlmdCA+IDA6CisgICAgICAgICBjc2hpZnRfbm90cnVuYyhvdXQsIG91 dCwgLXZhbHNoaWZ0LCBwcmVjLCBwcmltZV9wb3csIFRydWUpCisgICAgIGVsaWYgdmFsc2hpZnQg PT0gMDoKK0BAIC00NTgsMTIgKzQ1OCwxMiBAQCBjZGVmIGlubGluZSBsb25nIGNjb252X21wel90 KGNlbGVtZW50IG91dCwgbXB6X3QgeCwgbG9uZyBwcmVjLCBiaW50IGFic29sdXRlLCBQbworICAg ICBtcHpfc2V0KG4udmFsdWUsIHgpCisgCisgICAgIGlmIG46CistICAgICAgICBvdXQuX19jb2Vm ZnMgPSBbcHJpbWVfcG93LmJhc2VfcmluZyhuKV0KKysgICAgICAgIG91dC5fY29lZmZzID0gW3By aW1lX3Bvdy5iYXNlX3JpbmcobildCisgICAgICAgICBpZiBub3QgYWJzb2x1dGU6CisgICAgICAg ICAgICAgdmFsdWF0aW9uID0gY3JlbW92ZShvdXQsIG91dCwgcHJlYywgcHJpbWVfcG93KQorICAg ICAgICAgY3JlZHVjZShvdXQsIG91dCwgcHJlYywgcHJpbWVfcG93KQorICAgICBlbHNlOgorLSAg ICAgICAgb3V0Ll9fY29lZmZzID0gW10KKysgICAgICAgIG91dC5fY29lZmZzID0gW10KKyAKKyAg ICAgcmV0dXJuIHZhbHVhdGlvbgorIAorQEAgLTQ5MiwxMiArNDkyLDEyIEBAIGNkZWYgaW5saW5l IGludCBjY29udl9tcHpfdF9vdXQobXB6X3Qgb3V0LCBjZWxlbWVudCB4LCBsb25nIHZhbHNoaWZ0 LCBsb25nIHByZWMsCisgICAgIGVsc2U6CisgICAgICAgICBwcmltZV9wb3cucG93aGVscGVyX2Nj b252X291dCA9IHgKKyAKKy0gICAgaWYgbGVuKHByaW1lX3Bvdy5wb3doZWxwZXJfY2NvbnZfb3V0 Ll9fY29lZmZzKSA9PSAwOgorKyAgICBpZiBsZW4ocHJpbWVfcG93LnBvd2hlbHBlcl9jY29udl9v dXQuX2NvZWZmcykgPT0gMDoKKyAgICAgICAgIG1wel9zZXRfdWkob3V0LCAwKQorLSAgICBlbGlm IGxlbihwcmltZV9wb3cucG93aGVscGVyX2Njb252X291dC5fX2NvZWZmcykgPT0gMToKKysgICAg ZWxpZiBsZW4ocHJpbWVfcG93LnBvd2hlbHBlcl9jY29udl9vdXQuX2NvZWZmcykgPT0gMToKKyAg ICAgICAgICMgcmVjdXJzaXZlbHkgbGV0IHRoZSB1bmRlcmx5aW5nIHBvbHlub21pYWwgY29udmVy dCB0aGUgY29uc3RhbnQKKyAgICAgICAgICMgY29lZmZpY2llbnQgdG8gYW4gaW50ZWdlciAoaWYg cG9zc2libGUpCistICAgICAgICBuID0gWloocHJpbWVfcG93LnBvd2hlbHBlcl9jY29udl9vdXQu X19jb2VmZnNbMF0pCisrICAgICAgICBuID0gWloocHJpbWVfcG93LnBvd2hlbHBlcl9jY29udl9v dXQuX2NvZWZmc1swXSkKKyAgICAgICAgIG1wel9zZXQob3V0LCBuLnZhbHVlKQorICAgICBlbHNl OgorICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY2Fubm90IGNvbnZlcnQgdG8gaW50ZWdlciIp CitAQCAtNTMyLDcgKzUzMiw3IEBAIGNkZWYgaW5saW5lIGxvbmcgY2NvbnZfbXBxX3QoY2VsZW1l bnQgb3V0LCBtcHFfdCB4LCBsb25nIHByZWMsIGJpbnQgYWJzb2x1dGUsIFBvCisgICAgICIiIgor ICAgICBjZGVmIFJhdGlvbmFsIHIgPSBQWV9ORVcoUmF0aW9uYWwpCisgICAgIG1wcV9zZXQoci52 YWx1ZSwgeCkKKy0gICAgb3V0Ll9fY29lZmZzID0gW3ByaW1lX3Bvdy5iYXNlX3JpbmcocildCisr ICAgIG91dC5fY29lZmZzID0gW3ByaW1lX3Bvdy5iYXNlX3JpbmcocildCisgCisgICAgIGlmIG5v dCBhYnNvbHV0ZToKKyAgICAgICAgIHJldHVybiBjcmVtb3ZlKG91dCwgb3V0LCBwcmVjLCBwcmlt ZV9wb3cpCitAQCAtNTY1LDEyICs1NjUsMTIgQEAgY2RlZiBpbmxpbmUgaW50IGNjb252X21wcV90 X291dChtcHFfdCBvdXQsIGNlbGVtZW50IHgsIGxvbmcgdmFsc2hpZnQsIGxvbmcgcHJlYywKKyAg ICAgZWxzZToKKyAgICAgICAgIHByaW1lX3Bvdy5wb3doZWxwZXJfY2NvbnZfb3V0ID0geAorIAor LSAgICBpZiBsZW4ocHJpbWVfcG93LnBvd2hlbHBlcl9jY29udl9vdXQuX19jb2VmZnMpID09IDA6 CisrICAgIGlmIGxlbihwcmltZV9wb3cucG93aGVscGVyX2Njb252X291dC5fY29lZmZzKSA9PSAw OgorICAgICAgICAgbXBxX3NldF91aShvdXQsIDAsIDEpCistICAgIGVsaWYgbGVuKHByaW1lX3Bv dy5wb3doZWxwZXJfY2NvbnZfb3V0Ll9fY29lZmZzKSA9PSAxOgorKyAgICBlbGlmIGxlbihwcmlt ZV9wb3cucG93aGVscGVyX2Njb252X291dC5fY29lZmZzKSA9PSAxOgorICAgICAgICAgIyByZWN1 cnNpdmVseSBsZXQgdGhlIHVuZGVybHlpbmcgcG9seW5vbWlhbCBjb252ZXJ0IHRoZSBjb25zdGFu dAorICAgICAgICAgIyBjb2VmZmljaWVudCB0byBhIHJhdGlvbmFsIChpZiBwb3NzaWJsZSkKKy0g ICAgICAgIGMgPSBRUShwcmltZV9wb3cucG93aGVscGVyX2Njb252X291dC5fX2NvZWZmc1swXSkK KysgICAgICAgIGMgPSBRUShwcmltZV9wb3cucG93aGVscGVyX2Njb252X291dC5fY29lZmZzWzBd KQorICAgICAgICAgbXBxX3NldChvdXQsIGMudmFsdWUpCisgICAgIGVsc2U6CisgICAgICAgICBy YWlzZSBWYWx1ZUVycm9yKCJjYW5ub3QgY29udmVydCB0byByYXRpb25hbCIpCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX2x6el9wLnB5eCBiL3NyYy9zYWdlL2xpYnMvbnRsL250 bF9senpfcC5weXgKK2luZGV4IDE2MWQwNzgyYmMyLi5hZjg2YjliY2Y2OSAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcC5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvbnRs L250bF9senpfcC5weXgKK0BAIC04OSwxOSArODksMTkgQEAgY2RlZiBjbGFzcyBudGxfenpfcCgp OgorICAgICAgICAgI3NlbGYuYy5yZXN0b3JlX2MoKSAgICMjIFRoaXMgd2FzIGRvbmUgaW4gX19u ZXdfXworIAorICAgICAgICAgaWYgaXNpbnN0YW5jZShhLCBJbnRlZ2VyTW9kX2ludCk6CistICAg ICAgICAgICAgaWYgKHNlbGYuYy5wID09ICg8SW50ZWdlck1vZF9pbnQ+YSkuX19tb2R1bHVzLmlu dDMyKTogIyMgdGhpcyBpcyBzbG93CisrICAgICAgICAgICAgaWYgKHNlbGYuYy5wID09ICg8SW50 ZWdlck1vZF9pbnQ+YSkuX21vZHVsdXMuaW50MzIpOiAjIyB0aGlzIGlzIHNsb3cKKyAgICAgICAg ICAgICAgICAgc2VsZi54ID0gKDxJbnRlZ2VyTW9kX2ludD5hKS5pdmFsdWUKKyAgICAgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNaXNtYXRjaGVkIG1v ZHVsdXMgZm9yIGNvbnZlcnRpbmcgdG8genpfcC4iKQorIAorICAgICAgICAgZWxpZiBpc2luc3Rh bmNlKGEsIEludGVnZXJNb2RfaW50NjQpOgorLSAgICAgICAgICAgIGlmIChzZWxmLmMucCA9PSAo PEludGVnZXJNb2RfaW50NjQ+YSkuX19tb2R1bHVzLmludDY0KTogIyMgdGhpcyBpcyBzbG93Cisr ICAgICAgICAgICAgaWYgKHNlbGYuYy5wID09ICg8SW50ZWdlck1vZF9pbnQ2ND5hKS5fbW9kdWx1 cy5pbnQ2NCk6ICMjIHRoaXMgaXMgc2xvdworICAgICAgICAgICAgICAgICBzZWxmLnggPSAoPElu dGVnZXJNb2RfaW50NjQ+YSkuaXZhbHVlCisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTWlzbWF0Y2hlZCBtb2R1bHVzIGZvciBjb252ZXJ0aW5n IHRvIHp6X3AuIikKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShhLCBJbnRlZ2VyTW9kX2dt cCk6CistICAgICAgICAgICAgaWYgKHBfc2FnZSA9PSAoPEludGVnZXJNb2RfZ21wPmEpLl9fbW9k dWx1cy5zYWdlSW50ZWdlcik6ICMjIHRoaXMgaXMgc2xvdworKyAgICAgICAgICAgIGlmIChwX3Nh Z2UgPT0gKDxJbnRlZ2VyTW9kX2dtcD5hKS5fbW9kdWx1cy5zYWdlSW50ZWdlcik6ICMjIHRoaXMg aXMgc2xvdworICAgICAgICAgICAgICAgICBzZWxmLnggPSBtcHpfZ2V0X3NpKCg8SW50ZWdlck1v ZF9nbXA+YSkudmFsdWUpCisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgcmFp c2UgVmFsdWVFcnJvcigiTWlzbWF0Y2hlZCBtb2R1bHVzIGZvciBjb252ZXJ0aW5nIHRvIHp6X3Au IikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfbHp6X3BYLnB5eCBiL3NyYy9z YWdlL2xpYnMvbnRsL250bF9senpfcFgucHl4CitpbmRleCAyNGI1MDNhOWE2Mi4uN2QxOWNjNTVl MzcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfbHp6X3BYLnB5eAorKysrIGIv c3JjL3NhZ2UvbGlicy9udGwvbnRsX2x6el9wWC5weXgKK0BAIC0xMDgsMTcgKzEwOCwxNyBAQCBj ZGVmIGNsYXNzIG50bF96el9wWCgpOgorICAgICAgICAgICAgIGEgPSBsc1tpXQorIAorICAgICAg ICAgICAgIGlmIGlzaW5zdGFuY2UoYSwgSW50ZWdlck1vZF9pbnQpOgorLSAgICAgICAgICAgICAg ICBpZiAoc2VsZi5jLnAgPT0gKDxJbnRlZ2VyTW9kX2ludD5hKS5fX21vZHVsdXMuaW50MzIpOiAj IyB0aGlzIGlzIHNsb3cKKysgICAgICAgICAgICAgICAgaWYgKHNlbGYuYy5wID09ICg8SW50ZWdl ck1vZF9pbnQ+YSkuX21vZHVsdXMuaW50MzIpOiAjIyB0aGlzIGlzIHNsb3cKKyAgICAgICAgICAg ICAgICAgICAgIHp6X3BYX1NldENvZWZmX2xvbmcoc2VsZi54LCBpLCAoPEludGVnZXJNb2RfaW50 PmEpLml2YWx1ZSkKKyAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg IHJhaXNlIFZhbHVlRXJyb3IoIk1pc21hdGNoZWQgbW9kdWx1cyBmb3IgY29udmVydGluZyB0byB6 el9wWC4iKQorICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShhLCBJbnRlZ2VyTW9kX2ludDY0 KToKKy0gICAgICAgICAgICAgICAgaWYgKHNlbGYuYy5wID09ICg8SW50ZWdlck1vZF9pbnQ2ND5h KS5fX21vZHVsdXMuaW50NjQpOiAjIyB0aGlzIGlzIHNsb3cKKysgICAgICAgICAgICAgICAgaWYg KHNlbGYuYy5wID09ICg8SW50ZWdlck1vZF9pbnQ2ND5hKS5fbW9kdWx1cy5pbnQ2NCk6ICMjIHRo aXMgaXMgc2xvdworICAgICAgICAgICAgICAgICAgICAgenpfcFhfU2V0Q29lZmZfbG9uZyhzZWxm LngsIGksICg8SW50ZWdlck1vZF9pbnQ2ND5hKS5pdmFsdWUpCisgICAgICAgICAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNaXNtYXRjaGVkIG1v ZHVsdXMgZm9yIGNvbnZlcnRpbmcgdG8genpfcFguIikKKyAgICAgICAgICAgICBlbGlmIGlzaW5z dGFuY2UoYSwgSW50ZWdlck1vZF9nbXApOgorLSAgICAgICAgICAgICAgICBpZiAocF9zYWdlID09 ICg8SW50ZWdlck1vZF9nbXA+YSkuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyKTogIyMgdGhpcyBpcyBz bG93CisrICAgICAgICAgICAgICAgIGlmIChwX3NhZ2UgPT0gKDxJbnRlZ2VyTW9kX2dtcD5hKS5f bW9kdWx1cy5zYWdlSW50ZWdlcik6ICMjIHRoaXMgaXMgc2xvdworICAgICAgICAgICAgICAgICAg ICAgenpfcFhfU2V0Q29lZmZfbG9uZyhzZWxmLngsIGksIG1wel9nZXRfc2koKDxJbnRlZ2VyTW9k X2dtcD5hKS52YWx1ZSkpCisgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg ICAgICByYWlzZSBWYWx1ZUVycm9yKCJNaXNtYXRjaGVkIG1vZHVsdXMgZm9yIGNvbnZlcnRpbmcg dG8genpfcFguIikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2NvbXBsZXhf YmFsbF9kZW5zZS5weXggYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2NvbXBsZXhfYmFsbF9kZW5z ZS5weXgKK2luZGV4IDllMTQwNzljNmQ0Li40N2NhNDEwNzBmYSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL21hdHJpeC9tYXRyaXhfY29tcGxleF9iYWxsX2RlbnNlLnB5eAorKysrIGIvc3JjL3NhZ2Uv bWF0cml4L21hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UucHl4CitAQCAtNjY0LDcgKzY2NCw3IEBA IGNkZWYgY2xhc3MgTWF0cml4X2NvbXBsZXhfYmFsbF9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAg ICAgICAgUG9sID0gcG9seW5vbWlhbF9yaW5nX2NvbnN0cnVjdG9yLl9zaW5nbGVfdmFyaWF0ZShz ZWxmLmJhc2VfcmluZygpLCB2YXIpCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfY29tcGxleF9h cmIgcmVzID0gUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2wpCisgICAgICAgICBzaWdfb24oKQor LSAgICAgICAgYWNiX21hdF9jaGFycG9seShyZXMuX19wb2x5LCBzZWxmLnZhbHVlLCBwcmVjKHNl bGYpKQorKyAgICAgICAgYWNiX21hdF9jaGFycG9seShyZXMuX3BvbHksIHNlbGYudmFsdWUsIHBy ZWMoc2VsZikpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2N5Y2xvX2RlbnNlLnB5eCBiL3NyYy9z YWdlL21hdHJpeC9tYXRyaXhfY3ljbG9fZGVuc2UucHl4CitpbmRleCAxNWZmNjM5NDk1MS4uZjFl ZDlhZjg0MDMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2N5Y2xvX2RlbnNl LnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jeWNsb19kZW5zZS5weXgKK0BAIC0z OTYsMTEgKzM5NiwxMSBAQCBjZGVmIGNsYXNzIE1hdHJpeF9jeWNsb19kZW5zZShNYXRyaXhfZGVu c2UpOgorICAgICAgICAgICAgICMgTm93IHNldCBrLXRoIGVudHJ5IG9mIHgncyBudW1lcmF0b3Ig dG8gdG1wCisgICAgICAgICAgICAgZm1wel9nZXRfbXB6KHRtcCwgZnRtcCkKKyAgICAgICAgICAg ICBtcHpfdG9fWlooJmNvZWZmLCB0bXApCistICAgICAgICAgICAgWlpYX1NldENvZWZmKHguX19u dW1lcmF0b3IsIGssIGNvZWZmKQorKyAgICAgICAgICAgIFpaWF9TZXRDb2VmZih4Ll9udW1lcmF0 b3IsIGssIGNvZWZmKQorIAorICAgICAgICAgIyBTZXQgdGhlIGRlbm9taW5hdG9yIG9mIHggdG8g ZGVub20uCisgICAgICAgICBmbXB6X2dldF9tcHoodG1wLCBkZW5vbSkKKy0gICAgICAgIG1wel90 b19aWigmeC5fX2Rlbm9taW5hdG9yLCB0bXApCisrICAgICAgICBtcHpfdG9fWlooJnguX2Rlbm9t aW5hdG9yLCB0bXApCisgICAgICAgICBmbXB6X2NsZWFyKGRlbm9tKQorICAgICAgICAgbXB6X2Ns ZWFyKHRtcCkKKyAgICAgICAgIGZtcHpfY2xlYXIoZnRtcCkKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfZGVuc2UucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJp eF9pbnRlZ2VyX2RlbnNlLnB5eAoraW5kZXggOWM1MDkxMDQ5NjcuLjgwODgzNTA1NzdjIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX2RlbnNlLnB5eAorKysrIGIv c3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX2RlbnNlLnB5eAorQEAgLTEzNzEsMTIgKzEz NzEsMTIgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9kZW5zZShNYXRyaXhfZGVuc2UpOgor ICAgICAgICAgaWYgYWxnb3JpdGhtID09ICdmbGludCc6CisgICAgICAgICAgICAgZyA9ICg8UG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PiBQb2x5bm9taWFsUmluZyhaWiwgbmFtZXM9dmFy KS5nZW4oKSkuX25ldygpCisgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICBmbXB6 X21hdF9jaGFycG9seShnLl9fcG9seSwgc2VsZi5fbWF0cml4KQorKyAgICAgICAgICAgIGZtcHpf bWF0X2NoYXJwb2x5KGcuX3BvbHksIHNlbGYuX21hdHJpeCkKKyAgICAgICAgICAgICBzaWdfb2Zm KCkKKyAgICAgICAgIGVsaWYgYWxnb3JpdGhtID09ICdsaW5ib3gnOgorICAgICAgICAgICAgIGcg PSAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD4gUG9seW5vbWlhbFJpbmcoWlosIG5h bWVzPXZhcikuZ2VuKCkpLl9uZXcoKQorICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAg ICAgbGluYm94X2ZtcHpfbWF0X2NoYXJwb2x5KGcuX19wb2x5LCBzZWxmLl9tYXRyaXgpCisrICAg ICAgICAgICAgbGluYm94X2ZtcHpfbWF0X2NoYXJwb2x5KGcuX3BvbHksIHNlbGYuX21hdHJpeCkK KyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGVsaWYgYWxnb3JpdGhtID09ICdnZW5l cmljJzoKKyAgICAgICAgICAgICBnID0gTWF0cml4X2RlbnNlLmNoYXJwb2x5KHNlbGYsIHZhcikK K0BAIC0xNDYwLDcgKzE0NjAsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX2RlbnNlKE1h dHJpeF9kZW5zZSk6CisgICAgICAgICBpZiBhbGdvcml0aG0gPT0gJ2xpbmJveCc6CisgICAgICAg ICAgICAgZyA9ICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PiBQb2x5bm9taWFsUmlu ZyhaWiwgbmFtZXM9dmFyKS5nZW4oKSkuX25ldygpCisgICAgICAgICAgICAgc2lnX29uKCkKKy0g ICAgICAgICAgICBsaW5ib3hfZm1wel9tYXRfbWlucG9seShnLl9fcG9seSwgc2VsZi5fbWF0cml4 KQorKyAgICAgICAgICAgIGxpbmJveF9mbXB6X21hdF9taW5wb2x5KGcuX3BvbHksIHNlbGYuX21h dHJpeCkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGVsaWYgYWxnb3JpdGhtID09 ICdnZW5lcmljJzoKKyAgICAgICAgICAgICBnID0gTWF0cml4X2RlbnNlLm1pbnBvbHkoc2VsZiwg dmFyKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfaW50ZWdlcl9zcGFyc2Uu cHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX3NwYXJzZS5weXgKK2luZGV4IGE0 MTY3N2M3YjZhLi44M2Q1ZWU0MmZiZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRy aXhfaW50ZWdlcl9zcGFyc2UucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVn ZXJfc3BhcnNlLnB5eAorQEAgLTg2OSwxMCArODY5LDEwIEBAIGNkZWYgY2xhc3MgTWF0cml4X2lu dGVnZXJfc3BhcnNlKE1hdHJpeF9zcGFyc2UpOgorICAgICAgICAgc2lnX29mZigpCisgCisgICAg ICAgICBjZGVmIHNpemVfdCBpCistICAgICAgICBmbXB6X3BvbHlfZml0X2xlbmd0aChnLl9fcG9s eSwgcC5zaXplKCkpCisrICAgICAgICBmbXB6X3BvbHlfZml0X2xlbmd0aChnLl9wb2x5LCBwLnNp emUoKSkKKyAgICAgICAgIGZvciBpIGluIHJhbmdlKHAuc2l6ZSgpKToKKy0gICAgICAgICAgICBm bXB6X3BvbHlfc2V0X2NvZWZmX21weihnLl9fcG9seSwgaSwgcFswXVtpXS5nZXRfbXB6X2NvbnN0 KCkpCistICAgICAgICBfZm1wel9wb2x5X3NldF9sZW5ndGgoZy5fX3BvbHksIHAuc2l6ZSgpKQor KyAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfbXB6KGcuX3BvbHksIGksIHBbMF1baV0u Z2V0X21wel9jb25zdCgpKQorKyAgICAgICAgX2ZtcHpfcG9seV9zZXRfbGVuZ3RoKGcuX3BvbHks IHAuc2l6ZSgpKQorIAorICAgICAgICAgZGVsIE0KKyAgICAgICAgIGRlbCBwCitAQCAtOTY4LDEw ICs5NjgsMTAgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9zcGFyc2UoTWF0cml4X3NwYXJz ZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAKKyAgICAgICAgIGNkZWYgc2l6ZV90IGkKKy0gICAg ICAgIGZtcHpfcG9seV9maXRfbGVuZ3RoKGcuX19wb2x5LCBwLnNpemUoKSkKKysgICAgICAgIGZt cHpfcG9seV9maXRfbGVuZ3RoKGcuX3BvbHksIHAuc2l6ZSgpKQorICAgICAgICAgZm9yIGkgaW4g cmFuZ2UocC5zaXplKCkpOgorLSAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfbXB6KGcu X19wb2x5LCBpLCBwWzBdW2ldLmdldF9tcHpfY29uc3QoKSkKKy0gICAgICAgIF9mbXB6X3BvbHlf c2V0X2xlbmd0aChnLl9fcG9seSwgcC5zaXplKCkpCisrICAgICAgICAgICAgZm1wel9wb2x5X3Nl dF9jb2VmZl9tcHooZy5fcG9seSwgaSwgcFswXVtpXS5nZXRfbXB6X2NvbnN0KCkpCisrICAgICAg ICBfZm1wel9wb2x5X3NldF9sZW5ndGgoZy5fcG9seSwgcC5zaXplKCkpCisgCisgICAgICAgICBk ZWwgTQorICAgICAgICAgZGVsIHAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9iYXNp c19leGNoYW5nZV9tYXRyb2lkLnB4ZCBiL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX2V4Y2hhbmdl X21hdHJvaWQucHhkCitpbmRleCBhZWMzYmI1NGM0Mi4uMjhjYzdhZDg2OGMgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19leGNoYW5nZV9tYXRyb2lkLnB4ZAorKysrIGIvc3Jj L3NhZ2UvbWF0cm9pZHMvYmFzaXNfZXhjaGFuZ2VfbWF0cm9pZC5weGQKK0BAIC0xNSwxMyArMTUs MTMgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgY2Rl ZiBfd2Vha19pbnZhcmlhbnRfdmFyLCBfc3Ryb25nX2ludmFyaWFudF92YXIsIF9oZXVyaXN0aWNf aW52YXJpYW50X3ZhcgorICAgICBjZGVmIFNldFN5c3RlbSBfd2Vha19wYXJ0aXRpb25fdmFyLCBf c3Ryb25nX3BhcnRpdGlvbl92YXIsIF9oZXVyaXN0aWNfcGFydGl0aW9uX3ZhcgorIAorLSAgICBj ZGVmIF9fcmVsYWJlbChzZWxmLCBsKQorKyAgICBjZGVmIF9yZWxhYmVsKHNlbGYsIGwpCisgCist ICAgIGNkZWYgX19wYWNrKHNlbGYsIGJpdHNldF90LCBYKQorKyAgICBjZGVmIF9wYWNrKHNlbGYs IGJpdHNldF90LCBYKQorICAgICBjZGVmIF9fdW5wYWNrKHNlbGYsIGJpdHNldF90KQorLSAgICBj ZGVmIGJpbnQgX19pc19leGNoYW5nZV9wYWlyKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQg LTEKKy0gICAgY2RlZiBpbnQgX19leGNoYW5nZShzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0 IC0xCistICAgIGNkZWYgaW50IF9fbW92ZShzZWxmLCBiaXRzZXRfdCBYLCBiaXRzZXRfdCBZKSBl eGNlcHQgLTEKKysgICAgY2RlZiBiaW50IF9pc19leGNoYW5nZV9wYWlyKHNlbGYsIGxvbmcgeCwg bG9uZyB5KSBleGNlcHQgLTEKKysgICAgY2RlZiBpbnQgX2V4Y2hhbmdlKHNlbGYsIGxvbmcgeCwg bG9uZyB5KSBleGNlcHQgLTEKKysgICAgY2RlZiBpbnQgX21vdmUoc2VsZiwgYml0c2V0X3QgWCwg Yml0c2V0X3QgWSkgZXhjZXB0IC0xCisgICAgIGNkZWYgX19mdW5kYW1lbnRhbF9jb2NpcmN1aXQo c2VsZiwgYml0c2V0X3QsIGxvbmcgeCkKKyAgICAgY2RlZiBfX2Z1bmRhbWVudGFsX2NpcmN1aXQo c2VsZiwgYml0c2V0X3QsIGxvbmcgeSkKKyAKK0BAIC0zMCw3ICszMCw3IEBAIGNkZWYgY2xhc3Mg QmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgIGNkZWYgX19jbG9zdXJlKHNlbGYs IGJpdHNldF90LCBiaXRzZXRfdCkKKyAgICAgY2RlZiBfX21heF9jb2luZGVwZW5kZW50KHNlbGYs IGJpdHNldF90LCBiaXRzZXRfdCkKKyAgICAgY2RlZiBfX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRf dCwgYml0c2V0X3QpCistICAgIGNkZWYgX19jb2Nsb3N1cmUoc2VsZiwgYml0c2V0X3QsIGJpdHNl dF90KQorKyAgICBjZGVmIF9jb2Nsb3N1cmVfaW50ZXJuYWwoc2VsZiwgYml0c2V0X3QsIGJpdHNl dF90KQorIAorICAgICBjZGVmIF9fYXVnbWVudChzZWxmLCBiaXRzZXRfdCwgYml0c2V0X3QsIGJp dHNldF90KQorICAgICBjZGVmIGJpbnQgX19pc19pbmRlcGVuZGVudChzZWxmLCBiaXRzZXRfdCBG KSBleGNlcHQgLTEKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19leGNoYW5n ZV9tYXRyb2lkLnB5eCBiL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX2V4Y2hhbmdlX21hdHJvaWQu cHl4CitpbmRleCA5MGQxMDg0MmQ0Ni4uMDE1ZmE4YjhkZjMgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9tYXRyb2lkcy9iYXNpc19leGNoYW5nZV9tYXRyb2lkLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0 cm9pZHMvYmFzaXNfZXhjaGFuZ2VfbWF0cm9pZC5weXgKK0BAIC01NywxMCArNTcsMTAgQEAgY2Rl ZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAKKyAgICAgVGhpcyBiYXNl IGV4Y2hhbmdlIGdyYXBoIGlzIG5vdCBzdG9yZWQgYXMgc3VjaCwgYnV0IHNob3VsZCBiZSBwcm92 aWRlZAorICAgICBpbXBsaWNpdGx5IGJ5IHRoZSBjaGlsZCBjbGFzcyBpbiB0aGUgZm9ybSBvZiB0 d28gbWV0aG9kcworLSAgICBgYF9faXNfZXhjaGFuZ2VfcGFpcih4LCB5KWBgIGFuZCBgYF9fZXhj aGFuZ2UoeCwgeSlgYCwgYXMgd2VsbCBhcyBhbgorKyAgICBgYF9pc19leGNoYW5nZV9wYWlyKHgs IHkpYGAgYW5kIGBgX2V4Y2hhbmdlKHgsIHkpYGAsIGFzIHdlbGwgYXMgYW4KKyAgICAgaW5pdGlh bCBiYXNpcy4gQXQgYW55IG1vbWVudCwgQmFzaXNFeGNoYW5nZU1hdHJvaWQga2VlcHMgYSBjdXJy ZW50IGJhc2lzCistICAgIGBCYC4gVGhlIG1ldGhvZCBgYF9faXNfZXhjaGFuZ2VfcGFpcih4LCB5 KWBgIHNob3VsZCByZXR1cm4gYSBib29sZWFuCistICAgIGluZGljYXRpbmcgd2hldGhlciBgQiAt IHggKyB5YCBpcyBhIGJhc2lzLiBUaGUgbWV0aG9kIGBgX19leGNoYW5nZSh4LCB5KWBgCisrICAg IGBCYC4gVGhlIG1ldGhvZCBgYF9pc19leGNoYW5nZV9wYWlyKHgsIHkpYGAgc2hvdWxkIHJldHVy biBhIGJvb2xlYW4KKysgICAgaW5kaWNhdGluZyB3aGV0aGVyIGBCIC0geCArIHlgIGlzIGEgYmFz aXMuIFRoZSBtZXRob2QgYGBfZXhjaGFuZ2UoeCwgeSlgYAorICAgICBpcyBjYWxsZWQgd2hlbiB0 aGUgY3VycmVudCBiYXNpcyBgQmAgaXMgcmVwbGFjZWQgYnkgc2FpZCBgQi14ICsgeWAuIEl0IGlz CisgICAgIHVwIHRvIHRoZSBjaGlsZCBjbGFzcyB0byB1cGRhdGUgaXRzIGludGVybmFsIGRhdGEg c3RydWN0dXJlIHRvIG1ha2UKKyAgICAgaW5mb3JtYXRpb24gcmVsYXRpdmUgdG8gdGhlIG5ldyBi YXNpcyBtb3JlIGFjY2Vzc2libGUuIEZvciBpbnN0YW5jZSwgYQorQEAgLTgxLDE2ICs4MSwxNiBA QCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAtIDpjbGFz czpgQmFzaXNNYXRyb2lkIDxzYWdlLm1hdHJvaWRzLmJhc2lzX21hdHJvaWQuQmFzaXNNYXRyb2lk PmA6IGtlZXBzCisgICAgICAgYSBsaXN0IG9mIGFsbCBiYXNlcy4KKyAKKy0gICAgICAgIC0gYGBf X2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSlgYCByZWR1Y2VzIHRvIGEgcXVlcnkgd2hldGhlciBgQiAt IHggKyB5YAorKyAgICAgICAgLSBgYF9pc19leGNoYW5nZV9wYWlyKHgsIHkpYGAgcmVkdWNlcyB0 byBhIHF1ZXJ5IHdoZXRoZXIgYEIgLSB4ICsgeWAKKyAgICAgICAgICAgaXMgYSBiYXNpcy4KKy0g ICAgICAgIC0gYGBfX2V4Y2hhbmdlKHgsIHkpYGAgaGFzIG5vIHdvcmsgdG8gZG8uCisrICAgICAg ICAtIGBgX2V4Y2hhbmdlKHgsIHkpYGAgaGFzIG5vIHdvcmsgdG8gZG8uCisgCisgICAgIC0gOmNs YXNzOmBMaW5lYXJNYXRyb2lkIDxzYWdlLm1hdHJvaWRzLmxpbmVhcl9tYXRyb2lkLkxpbmVhck1h dHJvaWQ+YDoKKyAgICAgICBrZWVwcyBhIG1hdHJpeCByZXByZXNlbnRhdGlvbiBgQWAgb2YgdGhl IG1hdHJvaWQgc28gdGhhdCBgQVtCXSA9IElgLgorIAorLSAgICAgICAgLSBgYF9faXNfZXhjaGFu Z2VfcGFpcih4LCB5KWBgIHJlZHVjZXMgdG8gdGVzdGluZyB3aGV0aGVyIGBBW3IsIHldYAorKyAg ICAgICAgLSBgYF9pc19leGNoYW5nZV9wYWlyKHgsIHkpYGAgcmVkdWNlcyB0byB0ZXN0aW5nIHdo ZXRoZXIgYEFbciwgeV1gCisgICAgICAgICAgIGlzIG5vbnplcm8sIHdoZXJlIGBBW3IsIHhdPTFg LgorLSAgICAgICAgLSBgYF9fZXhjaGFuZ2UoeCwgeSlgYCBzaG91bGQgbW9kaWZ5IHRoZSBtYXRy aXggc28gdGhhdCBgQVtCIC0geCArIHldYAorKyAgICAgICAgLSBgYF9leGNoYW5nZSh4LCB5KWBg IHNob3VsZCBtb2RpZnkgdGhlIG1hdHJpeCBzbyB0aGF0IGBBW0IgLSB4ICsgeV1gCisgICAgICAg ICAgIGJlY29tZXMgYElgLCB3aGljaCBtZWFucyBwaXZvdGluZyBvbiBgQVtyLCB5XWAuCisgCisg ICAgIC0gYGBUcmFuc3ZlcnNhbE1hdHJvaWRgYCAobm90IHlldCBpbXBsZW1lbnRlZCk6IElmIGBB YCBpcyBhIHNldCBvZiBzdWJzZXRzCitAQCAtMTAwLDE3ICsxMDAsMTcgQEAgY2RlZiBjbGFzcyBC YXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICBlZGdlIGAoQV9pLGUpYCBpZiBg ZWAgaXMgaW4gdGhlIHN1YnNldCBgQV9pYC4gQXQgYW55IHRpbWUgeW91IGtlZXAgYQorICAgICAg IG1heGltdW0gbWF0Y2hpbmcgYE1gIG9mIGBHYCBjb3ZlcmluZyB0aGUgY3VycmVudCBiYXNpcyBg QmAuCisgCistICAgICAgICAtIGBgX19pc19leGNoYW5nZV9wYWlyKHgsIHkpYGAgY2hlY2tzIGZv ciB0aGUgZXhpc3RlbmNlIG9mIGFuCisrICAgICAgICAtIGBgX2lzX2V4Y2hhbmdlX3BhaXIoeCwg eSlgYCBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYW4KKyAgICAgICAgICAgYE1gLWFsdGVy bmF0aW5nIHBhdGggYFBgIGZyb20gYHlgIHRvIGB4YC4KKy0gICAgICAgIC0gYGBfX2V4Y2hhbmdl KHgsIHkpYGAgcmVwbGFjZXMgYE1gIGJ5IHRoZSBzeW1tZXRyaWMgZGlmZmVyZW5jZSBvZgorKyAg ICAgICAgLSBgYF9leGNoYW5nZSh4LCB5KWBgIHJlcGxhY2VzIGBNYCBieSB0aGUgc3ltbWV0cmlj IGRpZmZlcmVuY2Ugb2YKKyAgICAgICAgICAgYE1gIGFuZCBgRShQKWAuCisgCisgICAgIC0gYGBB bGdlYnJhaWNNYXRyb2lkYGAgKG5vdCB5ZXQgaW1wbGVtZW50ZWQpOiBrZWVwcyBhIGxpc3Qgb2Yg cG9seW5vbWlhbHMKKyAgICAgICBpbiB2YXJpYWJsZXMgYEUgLSBCICsgZWAgZm9yIGVhY2ggdmFy aWFibGUgYGVgIGluIGBCYC4KKyAKKy0gICAgICAgIC0gYGBfX2lzX2V4Y2hhbmdlX3BhaXIoeCwg eSlgYCBjaGVja3Mgd2hldGhlciB0aGUgcG9seW5vbWlhbCB0aGF0CisrICAgICAgICAtIGBgX2lz X2V4Y2hhbmdlX3BhaXIoeCwgeSlgYCBjaGVja3Mgd2hldGhlciB0aGUgcG9seW5vbWlhbCB0aGF0 CisgICAgICAgICAgIHJlbGF0ZXMgYHlgIHRvIGBFLUJgIHVzZXMgYHhgLgorLSAgICAgICAgLSBg YF9fZXhjaGFuZ2UoeCwgeSlgYCBtYWtlIG5ldyBsaXN0IG9mIHBvbHlub21pYWxzIGJ5IGNvbXB1 dGluZworKyAgICAgICAgLSBgYF9leGNoYW5nZSh4LCB5KWBgIG1ha2UgbmV3IGxpc3Qgb2YgcG9s eW5vbWlhbHMgYnkgY29tcHV0aW5nCisgICAgICAgICAgIHJlc3VsdGFudHMuCisgCisgICAgIEFs bCBidXQgdGhlIGZpcnN0IG9mIHRoZSBhYm92ZSBtYXRyb2lkcyBhcmUgYWxnZWJyYWljLCBhbmQg YWxsCitAQCAtMTM5LDcgKzEzOSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQo TWF0cm9pZCk6CisgICAgICAgICBUaGlzIGluaXRpYWxpemVyIHNldHMgdXAgYSBjb3JyZXNwb25k ZW5jZSBiZXR3ZWVuIGVsZW1lbnRzIG9mCisgICAgICAgICBgYGdyb3VuZHNldGBgIGFuZCBgYHJh bmdlKGxlbihncm91bmRzZXQpKWBgLiBgYEJhc2lzRXhjaGFuZ2VNYXRyb2lkYGAKKyAgICAgICAg IHVzZXMgdGhpcyBjb3JyZXNwb25kZW5jZSBmb3IgZW5jb2Rpbmcgb2Ygc3Vic2V0cyBvZiB0aGUg Z3JvdW5kc2V0IGFzCistICAgICAgICBiaXRwYWNrZWQgc2V0cyBvZiBpbnRlZ2VycyAtLS0gc2Vl IGBgX19wYWNrKClgYCBhbmQgYGBfX3VucGFjaygpYGAuIEluCisrICAgICAgICBiaXRwYWNrZWQg c2V0cyBvZiBpbnRlZ2VycyAtLS0gc2VlIGBgX3BhY2soKWBgIGFuZCBgYF9fdW5wYWNrKClgYC4g SW4KKyAgICAgICAgIGdlbmVyYWwsIG1ldGhvZHMgb2YgYGBCYXNpc0V4Y2hhbmdlTWF0cm9pZGBg IGhhdmluZyBhIG5hbWUgc3RhcnRpbmcKKyAgICAgICAgIHdpdGggdHdvIHVuZGVyc2NvcmVzIGRl YWwgd2l0aCBzdWNoIGVuY29kZWQgc3Vic2V0cy4KKyAKK0BAIC0xODAsNyArMTgwLDcgQEAgY2Rl ZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBzZWxm Ll9pZHhbc2VsZi5fRVtpXV0gPSBpCisgCisgICAgICAgICBpZiBiYXNpcyBpcyBub3QgTm9uZToK Ky0gICAgICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9jdXJyZW50X2Jhc2lzLCBmcm96ZW5zZXQo YmFzaXMpKQorKyAgICAgICAgICAgIHNlbGYuX3BhY2soc2VsZi5fY3VycmVudF9iYXNpcywgZnJv emVuc2V0KGJhc2lzKSkKKyAKKyAgICAgZGVmIF9fZGVhbGxvY19fKHNlbGYpOgorICAgICAgICAg Yml0c2V0X2ZyZWUoc2VsZi5fY3VycmVudF9iYXNpcykKK0BAIC0xOTEsNyArMTkxLDcgQEAgY2Rl ZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIGJpdHNldF9m cmVlKHNlbGYuX291dHB1dCkKKyAgICAgICAgIGJpdHNldF9mcmVlKHNlbGYuX3RlbXApCisgCist ICAgIGNkZWYgX19yZWxhYmVsKHNlbGYsIGwpOgorKyAgICBjZGVmIF9yZWxhYmVsKHNlbGYsIGwp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZWxhYmVsIGVhY2ggZWxlbWVudCBgZWAgYXMgYGxb ZV1gLCB3aGVyZSBgbGAgaXMgYSBnaXZlbiBpbmplY3RpdmUgbWFwLgorIAorQEAgLTIzMSw3ICsy MzEsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAg ICAgICAgIHNlbGYuX2hldXJpc3RpY19wYXJ0aXRpb25fdmFyLl9yZWxhYmVsKGwpCisgCisgICAg ICMgdGhlIGVuZ2luZQorLSAgICBjZGVmIF9fcGFjayhzZWxmLCBiaXRzZXRfdCBJLCBGKToKKysg ICAgY2RlZiBfcGFjayhzZWxmLCBiaXRzZXRfdCBJLCBGKToKKyAgICAgICAgICIiIgorICAgICAg ICAgRW5jb2RlIGEgc3Vic2V0IEYgb2YgdGhlIGdyb3VuZHNldCBpbnRvIGEgYml0cGFja2VkIHNl dCBvZiBpbnRlZ2VycworICAgICAgICAgIiIiCitAQCAtMjUyLDIxICsyNTIsMjEgQEAgY2RlZiBj bGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHJldHVybiBmcm96 ZW5zZXQoRikKKyAKKyAgICAgIyB0aGlzIG1ldGhvZCBuZWVkcyB0byBiZSBvdmVycmlkZGVuIGJ5 IGNoaWxkIGNsYXNzCistICAgIGNkZWYgYmludCBfX2lzX2V4Y2hhbmdlX3BhaXIoc2VsZiwgbG9u ZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBiaW50IF9pc19leGNoYW5nZV9wYWly KHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisgICAgICAgICAiIiIKKyAgICAgICAg IFRlc3QgaWYgY3VycmVudF9iYXNpcy14ICsgeSBpcyBhIGJhc2lzCisgICAgICAgICAiIiIKKyAg ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKyAgICAgIyBpZiB0aGlzIG1ldGhv ZCBpcyBvdmVycmlkZGVuIGJ5IGEgY2hpbGQgY2xhc3MsIHRoZSBjaGlsZCBjbGFzcyBuZWVkcyB0 byBjYWxsIHRoaXMgbWV0aG9kCistICAgIGNkZWYgaW50IF9fZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4 LCBsb25nIHkpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBpbnQgX2V4Y2hhbmdlKHNlbGYsIGxvbmcg eCwgbG9uZyB5KSBleGNlcHQgLTE6CisgICAgICAgICAiIiIKKyAgICAgICAgIHB1dCBjdXJyZW50 X2Jhc2lzIDwtLSBjdXJyZW50X2Jhc2lzLXggKyB5CisgICAgICAgICAiIiIKKyAgICAgICAgIGJp dHNldF9kaXNjYXJkKHNlbGYuX2N1cnJlbnRfYmFzaXMsIHgpCisgICAgICAgICBiaXRzZXRfYWRk KHNlbGYuX2N1cnJlbnRfYmFzaXMsIHkpCisgCistICAgIGNkZWYgaW50IF9fbW92ZShzZWxmLCBi aXRzZXRfdCBYLCBiaXRzZXRfdCBZKSBleGNlcHQgLTE6CisrICAgIGNkZWYgaW50IF9tb3ZlKHNl bGYsIGJpdHNldF90IFgsIGJpdHNldF90IFkpIGV4Y2VwdCAtMToKKyAgICAgICAgICIiIgorICAg ICAgICAgQ2hhbmdlIGN1cnJlbnRfYmFzaXMgdG8gbWluaW1pemUgaW50ZXJzZWN0aW9uIHdpdGgg YGBYYGAsIG1heGltaXplIGludGVyc2VjdGlvbiB3aXRoIGBgWWBgLgorICAgICAgICAgIiIiCitA QCAtMjc1LDggKzI3NSw4IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9p ZCk6CisgICAgICAgICB3aGlsZSB4ID49IDA6CisgICAgICAgICAgICAgeSA9IGJpdHNldF9maXJz dChZKQorICAgICAgICAgICAgIHdoaWxlIHkgPj0gMDoKKy0gICAgICAgICAgICAgICAgaWYgc2Vs Zi5fX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSk6CistICAgICAgICAgICAgICAgICAgICBzZWxmLl9f ZXhjaGFuZ2UoeCwgeSkKKysgICAgICAgICAgICAgICAgaWYgc2VsZi5faXNfZXhjaGFuZ2VfcGFp cih4LCB5KToKKysgICAgICAgICAgICAgICAgICAgIHNlbGYuX2V4Y2hhbmdlKHgsIHkpCisgICAg ICAgICAgICAgICAgICAgICBiaXRzZXRfZGlzY2FyZChZLCB5KQorICAgICAgICAgICAgICAgICAg ICAgYml0c2V0X2Rpc2NhcmQoWCwgeCkKKyAgICAgICAgICAgICAgICAgICAgIGlmIGJpdHNldF9p c2VtcHR5KFkpOgorQEAgLTI5NSw3ICsyOTUsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VN YXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgYml0c2V0X2NvbXBsZW1lbnQoc2VsZi5fdGVtcCwg c2VsZi5fY3VycmVudF9iYXNpcykKKyAgICAgICAgIHkgPSBiaXRzZXRfZmlyc3Qoc2VsZi5fdGVt cCkKKyAgICAgICAgIHdoaWxlIHkgPj0gMDoKKy0gICAgICAgICAgICBpZiBzZWxmLl9faXNfZXhj aGFuZ2VfcGFpcih4LCB5KToKKysgICAgICAgICAgICBpZiBzZWxmLl9pc19leGNoYW5nZV9wYWly KHgsIHkpOgorICAgICAgICAgICAgICAgICBiaXRzZXRfYWRkKEMsIHkpCisgICAgICAgICAgICAg eSA9IGJpdHNldF9uZXh0KHNlbGYuX3RlbXAsIHkgKyAxKQorICAgICAgICAgYml0c2V0X2FkZChD LCB4KQorQEAgLTMwOCw3ICszMDgsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lk KE1hdHJvaWQpOgorICAgICAgICAgYml0c2V0X2NsZWFyKEMpCisgICAgICAgICB4ID0gYml0c2V0 X2ZpcnN0KHNlbGYuX2N1cnJlbnRfYmFzaXMpCisgICAgICAgICB3aGlsZSB4ID49IDA6CistICAg ICAgICAgICAgaWYgc2VsZi5fX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSk6CisrICAgICAgICAgICAg aWYgc2VsZi5faXNfZXhjaGFuZ2VfcGFpcih4LCB5KToKKyAgICAgICAgICAgICAgICAgYml0c2V0 X2FkZChDLCB4KQorICAgICAgICAgICAgIHggPSBiaXRzZXRfbmV4dChzZWxmLl9jdXJyZW50X2Jh c2lzLCB4ICsgMSkKKyAgICAgICAgIGJpdHNldF9hZGQoQywgeSkKK0BAIC0zMTksNyArMzE5LDcg QEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICIi IgorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5faW5zaWRlLCBzZWxmLl9jdXJyZW50 X2Jhc2lzLCBGKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5fb3V0c2lkZSwgRiwg c2VsZi5fY3VycmVudF9iYXNpcykKKy0gICAgICAgIHNlbGYuX19tb3ZlKHNlbGYuX2luc2lkZSwg c2VsZi5fb3V0c2lkZSkKKysgICAgICAgIHNlbGYuX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9v dXRzaWRlKQorICAgICAgICAgYml0c2V0X2ludGVyc2VjdGlvbihSLCBzZWxmLl9jdXJyZW50X2Jh c2lzLCBGKQorIAorICAgICBjZGVmIF9fY2lyY3VpdChzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRf dCBGKToKK0BAIC0zMzUsOCArMzM1LDggQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9p ZChNYXRyb2lkKToKKyAgICAgICAgIHdoaWxlIHkgPj0gMDoKKyAgICAgICAgICAgICB4ID0gYml0 c2V0X2ZpcnN0KHNlbGYuX2luc2lkZSkKKyAgICAgICAgICAgICB3aGlsZSB4ID49IDA6CistICAg ICAgICAgICAgICAgIGlmIHNlbGYuX19pc19leGNoYW5nZV9wYWlyKHgsIHkpOgorLSAgICAgICAg ICAgICAgICAgICAgc2VsZi5fX2V4Y2hhbmdlKHgsIHkpCisrICAgICAgICAgICAgICAgIGlmIHNl bGYuX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSk6CisrICAgICAgICAgICAgICAgICAgICBzZWxmLl9l eGNoYW5nZSh4LCB5KQorICAgICAgICAgICAgICAgICAgICAgYml0c2V0X2Rpc2NhcmQoc2VsZi5f b3V0c2lkZSwgeSkKKyAgICAgICAgICAgICAgICAgICAgIGJpdHNldF9kaXNjYXJkKHNlbGYuX2lu c2lkZSwgeCkKKyAgICAgICAgICAgICAgICAgICAgIGlmIGJpdHNldF9pc2VtcHR5KHNlbGYuX291 dHNpZGUpOgorQEAgLTM1NSw3ICszNTUsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRy b2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShz ZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIEYpCisgICAgICAgICBiaXRzZXRfZGlm ZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBGLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorLSAgICAgICAg c2VsZi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAgc2VsZi5f bW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisgICAgICAgICBiaXRzZXRfc2V0X2Zp cnN0X24oUiwgc2VsZi5fZ3JvdW5kc2V0X3NpemUpCisgICAgICAgICBjZGVmIGxvbmcgeCA9IGJp dHNldF9maXJzdChzZWxmLl9pbnNpZGUpCisgICAgICAgICB3aGlsZSB4ID49IDA6CitAQCAtMzcw LDcgKzM3MCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6Cisg ICAgICAgICBiaXRzZXRfY29tcGxlbWVudChSLCBGKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVu Y2Uoc2VsZi5faW5zaWRlLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBSKQorICAgICAgICAgYml0c2V0 X2RpZmZlcmVuY2Uoc2VsZi5fb3V0c2lkZSwgUiwgc2VsZi5fY3VycmVudF9iYXNpcykKKy0gICAg ICAgIHNlbGYuX19tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKysgICAgICAgIHNl bGYuX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorICAgICAgICAgYml0c2V0X2Rp ZmZlcmVuY2UoUiwgRiwgc2VsZi5fY3VycmVudF9iYXNpcykKKyAKKyAgICAgY2RlZiBfX2NvY2ly Y3VpdChzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKToKK0BAIC0zODcsOCArMzg3LDggQEAg Y2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHdoaWxl IHggPj0gMDoKKyAgICAgICAgICAgICB5ID0gYml0c2V0X2ZpcnN0KHNlbGYuX291dHNpZGUpCisg ICAgICAgICAgICAgd2hpbGUgeSA+PSAwOgorLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9faXNf ZXhjaGFuZ2VfcGFpcih4LCB5KToKKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuX19leGNoYW5n ZSh4LCB5KQorKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9pc19leGNoYW5nZV9wYWlyKHgsIHkp OgorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXhjaGFuZ2UoeCwgeSkKKyAgICAgICAgICAg ICAgICAgICAgIGJpdHNldF9kaXNjYXJkKHNlbGYuX291dHNpZGUsIHkpCisgICAgICAgICAgICAg ICAgICAgICBiaXRzZXRfZGlzY2FyZChzZWxmLl9pbnNpZGUsIHgpCisgICAgICAgICAgICAgICAg ICAgICBpZiBiaXRzZXRfaXNlbXB0eShzZWxmLl9pbnNpZGUpOgorQEAgLTQwMSwxNCArNDAxLDE0 IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAg ICAgICAgIHJldHVybgorICAgICAgICAgICAgIHggPSBiaXRzZXRfbmV4dChzZWxmLl9pbnNpZGUs IHggKyAxKQorIAorLSAgICBjZGVmIF9fY29jbG9zdXJlKHNlbGYsIGJpdHNldF90IFIsIGJpdHNl dF90IEYpOgorKyAgICBjZGVmIF9jb2Nsb3N1cmVfaW50ZXJuYWwoc2VsZiwgYml0c2V0X3QgUiwg Yml0c2V0X3QgRik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEJpdHBhY2tlZCB2ZXJzaW9uIG9m IGBgY2xvc3VyZWBgLgorICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfY29tcGxlbWVudChS LCBGKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5faW5zaWRlLCBzZWxmLl9jdXJy ZW50X2Jhc2lzLCBSKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5fb3V0c2lkZSwg Uiwgc2VsZi5fY3VycmVudF9iYXNpcykKKy0gICAgICAgIHNlbGYuX19tb3ZlKHNlbGYuX2luc2lk ZSwgc2VsZi5fb3V0c2lkZSkKKysgICAgICAgIHNlbGYuX21vdmUoc2VsZi5faW5zaWRlLCBzZWxm Ll9vdXRzaWRlKQorICAgICAgICAgYml0c2V0X3NldF9maXJzdF9uKFIsIHNlbGYuX2dyb3VuZHNl dF9zaXplKQorICAgICAgICAgY2RlZiBsb25nIHkgPSBiaXRzZXRfZmlyc3Qoc2VsZi5fb3V0c2lk ZSkKKyAgICAgICAgIHdoaWxlIHkgPj0gMDoKK0BAIC00MjIsMTAgKzQyMiwxMCBAQCBjZGVmIGNs YXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIFgp CisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBYLCBzZWxmLl9jdXJy ZW50X2Jhc2lzKQorLSAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRz aWRlKQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisg ICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2luc2lkZSwgWSkK KyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX291dHNpZGUsIFksIHNlbGYuX2N1cnJl bnRfYmFzaXMpCistICAgICAgICBzZWxmLl9fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNp ZGUpCisrICAgICAgICBzZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKyAg ICAgICAgIGJpdHNldF9pbnRlcnNlY3Rpb24oUiwgc2VsZi5fY3VycmVudF9iYXNpcywgWSkKKyAK KyAgICAgY2RlZiBiaW50IF9faXNfaW5kZXBlbmRlbnQoc2VsZiwgYml0c2V0X3QgRikgZXhjZXB0 IC0xOgorQEAgLTQzNCw3ICs0MzQsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lk KE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxm Ll9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIEYpCisgICAgICAgICBiaXRzZXRfZGlmZmVy ZW5jZShzZWxmLl9vdXRzaWRlLCBGLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorLSAgICAgICAgc2Vs Zi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAgc2VsZi5fbW92 ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisgICAgICAgICByZXR1cm4gYml0c2V0X2lz ZW1wdHkoc2VsZi5fb3V0c2lkZSkKKyAKKyAgICAgY2RlZiBfX21vdmVfY3VycmVudF9iYXNpcyhz ZWxmLCBiaXRzZXRfdCBYLCBiaXRzZXRfdCBZKToKK0BAIC00NDMsMjEgKzQ0MywyMSBAQCBjZGVm IGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMs IFgpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBYLCBzZWxmLl9j dXJyZW50X2Jhc2lzKQorLSAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9v dXRzaWRlKQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUp CisgICAgICAgICBiaXRzZXRfaW50ZXJzZWN0aW9uKHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVu dF9iYXNpcywgWSkKKyAgICAgICAgIGJpdHNldF9jb21wbGVtZW50KHNlbGYuX291dHNpZGUsIHNl bGYuX2N1cnJlbnRfYmFzaXMpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRz aWRlLCBzZWxmLl9vdXRzaWRlLCBZKQorLSAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5faW5zaWRl LCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYu X291dHNpZGUpCisgCisgICAgICMgZnVuY3Rpb25zIGZvciBkZXJpdmVkIGNsYXNzZXMgYW5kIGZv ciBwYXJlbnQgY2xhc3MKKyAgICAgY2RlZiBiaW50IF9zZXRfY3VycmVudF9iYXNpcyhzZWxmLCBG KToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IF9jdXJyZW50X2Jhc2lzIHRvIHN1YnNldCBv ZiB0aGUgZ3JvdW5kc2V0IGBgRmBgLgorICAgICAgICAgIiIiCistICAgICAgICBzZWxmLl9fcGFj ayhzZWxmLl9pbnB1dCwgRikKKysgICAgICAgIHNlbGYuX3BhY2soc2VsZi5faW5wdXQsIEYpCisg ICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFz aXMsIHNlbGYuX2lucHV0KQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5fb3V0c2lk ZSwgc2VsZi5faW5wdXQsIHNlbGYuX2N1cnJlbnRfYmFzaXMpCistICAgICAgICBzZWxmLl9fbW92 ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisrICAgICAgICBzZWxmLl9tb3ZlKHNlbGYu X2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKyAgICAgICAgIHJldHVybiBiaXRzZXRfaXNlbXB0eShz ZWxmLl9vdXRzaWRlKSBhbmQgYml0c2V0X2lzZW1wdHkoc2VsZi5faW5zaWRlKQorIAorICAgICAj IGdyb3VuZHNldCBhbmQgZnVsbF9yYW5rCitAQCAtNjMwLDggKzYzMCw4IEBAIGNkZWYgY2xhc3Mg QmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgWydiJywgJ2MnLCAn ZScsICdmJ10KKyAKKyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX3BhY2soc2VsZi5faW5w dXQsIFgpCistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9pbnB1dDIsIFkpCisrICAgICAgICBz ZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBYKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1 dDIsIFkpCisgICAgICAgICBzZWxmLl9fbW92ZV9jdXJyZW50X2Jhc2lzKHNlbGYuX2lucHV0LCBz ZWxmLl9pbnB1dDIpCisgCisgICAgIGNwZGVmIF9tYXhfaW5kZXBlbmRlbnQoc2VsZiwgRik6CitA QCAtNjYxLDcgKzY2MSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9p ZCk6CisgICAgICAgICAgICAgc2VlIDptZXRoOmA8c2FnZS5tYXRyb2lkcy5tYXRyb2lkLk1hdHJv aWQubWF4X2luZGVwZW5kZW50PmAuCisgCisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19w YWNrKHNlbGYuX2lucHV0LCBGKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dCwgRikK KyAgICAgICAgIHNlbGYuX19tYXhfaW5kZXBlbmRlbnQoc2VsZi5fb3V0cHV0LCBzZWxmLl9pbnB1 dCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9fdW5wYWNrKHNlbGYuX291dHB1dCkKKyAKK0BAIC02 OTIsNyArNjkyLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToK KyAgICAgICAgICAgICBzZWUgOm1ldGg6YDxzYWdlLm1hdHJvaWRzLm1hdHJvaWQuTWF0cm9pZC5y YW5rPmAuCisgCisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2lucHV0 LCBGKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dCwgRikKKyAgICAgICAgIHNlbGYu X19tYXhfaW5kZXBlbmRlbnQoc2VsZi5fb3V0cHV0LCBzZWxmLl9pbnB1dCkKKyAgICAgICAgIHJl dHVybiBiaXRzZXRfbGVuKHNlbGYuX291dHB1dCkKKyAKK0BAIC03MjksNyArNzI5LDcgQEAgY2Rl ZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICB0aGUg aW5wdXQgaXMgaW5kZWVkIGEgc3Vic2V0IG9mIHRoZSBncm91bmQgc2V0LAorICAgICAgICAgICAg IHNlZSA6bWV0aDpgPHNhZ2UubWF0cm9pZHMubWF0cm9pZC5NYXRyb2lkLmNpcmN1aXQ+YC4KKyAg ICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX3BhY2soc2VsZi5faW5wdXQsIEYpCisrICAgICAg ICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBGKQorICAgICAgICAgc2VsZi5fX2NpcmN1aXQoc2Vs Zi5fb3V0cHV0LCBzZWxmLl9pbnB1dCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9fdW5wYWNrKHNl bGYuX291dHB1dCkKKyAKK0BAIC03NTQsNyArNzU0LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hh bmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBzYWdlOiBzb3J0ZWQoTS5fZnVuZGFt ZW50YWxfY2lyY3VpdCgnYWJjZCcsICdlJykpCisgICAgICAgICAgICAgWydhJywgJ2InLCAnYycs ICdlJ10KKyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX3BhY2soc2VsZi5faW5wdXQsIEIp CisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBCKQorICAgICAgICAgYml0c2V0X2Ns ZWFyKHNlbGYuX2lucHV0MikKKyAgICAgICAgIHNlbGYuX19tb3ZlX2N1cnJlbnRfYmFzaXMoc2Vs Zi5faW5wdXQsIHNlbGYuX2lucHV0MikKKyAgICAgICAgIHNlbGYuX19mdW5kYW1lbnRhbF9jaXJj dWl0KHNlbGYuX291dHB1dCwgc2VsZi5faWR4W2VdKQorQEAgLTc4Nyw3ICs3ODcsNyBAQCBjZGVm IGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIDptZXRo OmA8c2FnZS5tYXRyb2lkcy5tYXRyb2lkLk1hdHJvaWQuY2xvc3VyZT5gLgorIAorICAgICAgICAg IiIiCistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9pbnB1dCwgRikKKysgICAgICAgIHNlbGYu X3BhY2soc2VsZi5faW5wdXQsIEYpCisgICAgICAgICBzZWxmLl9fY2xvc3VyZShzZWxmLl9vdXRw dXQsIHNlbGYuX2lucHV0KQorICAgICAgICAgcmV0dXJuIHNlbGYuX191bnBhY2soc2VsZi5fb3V0 cHV0KQorIAorQEAgLTgxOCw3ICs4MTgsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRy b2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIHNlZSA6bWV0aDpgPHNhZ2UubWF0cm9pZHMubWF0 cm9pZC5NYXRyb2lkLm1heF9jb2luZGVwZW5kZW50PmAuCisgCisgICAgICAgICAiIiIKKy0gICAg ICAgIHNlbGYuX19wYWNrKHNlbGYuX2lucHV0LCBGKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxm Ll9pbnB1dCwgRikKKyAgICAgICAgIHNlbGYuX19tYXhfY29pbmRlcGVuZGVudChzZWxmLl9vdXRw dXQsIHNlbGYuX2lucHV0KQorICAgICAgICAgcmV0dXJuIHNlbGYuX191bnBhY2soc2VsZi5fb3V0 cHV0KQorIAorQEAgLTg0OCw3ICs4NDgsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRy b2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIGlucHV0IGlzIGluZGVlZCBhIHN1YnNldCBvZiB0 aGUgZ3JvdW5kIHNldCwKKyAgICAgICAgICAgICBzZWUgOm1ldGg6YDxzYWdlLm1hdHJvaWRzLm1h dHJvaWQuTWF0cm9pZC5jb3Jhbms+YC4KKyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX3Bh Y2soc2VsZi5faW5wdXQsIEYpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBGKQor ICAgICAgICAgc2VsZi5fX21heF9jb2luZGVwZW5kZW50KHNlbGYuX291dHB1dCwgc2VsZi5faW5w dXQpCisgICAgICAgICByZXR1cm4gYml0c2V0X2xlbihzZWxmLl9vdXRwdXQpCisgCitAQCAtODg1 LDcgKzg4NSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6Cisg ICAgICAgICAgICAgaW5wdXQgaXMgaW5kZWVkIGEgc3Vic2V0IG9mIHRoZSBncm91bmQgc2V0LAor ICAgICAgICAgICAgIHNlZSA6bWV0aDpgPHNhZ2UubWF0cm9pZHMubWF0cm9pZC5NYXRyb2lkLmNv Y2lyY3VpdD5gLgorICAgICAgICAgIiIiCistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9pbnB1 dCwgRikKKysgICAgICAgIHNlbGYuX3BhY2soc2VsZi5faW5wdXQsIEYpCisgICAgICAgICBzZWxm Ll9fY29jaXJjdWl0KHNlbGYuX291dHB1dCwgc2VsZi5faW5wdXQpCisgICAgICAgICByZXR1cm4g c2VsZi5fX3VucGFjayhzZWxmLl9vdXRwdXQpCisgCitAQCAtOTEwLDcgKzkxMCw3IEBAIGNkZWYg Y2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgc2FnZTog c29ydGVkKE0uX2Z1bmRhbWVudGFsX2NvY2lyY3VpdCgnZWZnaCcsICdlJykpCisgICAgICAgICAg ICAgWydiJywgJ2MnLCAnZCcsICdlJ10KKyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX3Bh Y2soc2VsZi5faW5wdXQsIEIpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBCKQor ICAgICAgICAgYml0c2V0X2NsZWFyKHNlbGYuX2lucHV0MikKKyAgICAgICAgIHNlbGYuX19tb3Zl X2N1cnJlbnRfYmFzaXMoc2VsZi5faW5wdXQsIHNlbGYuX2lucHV0MikKKyAgICAgICAgIHNlbGYu X19mdW5kYW1lbnRhbF9jb2NpcmN1aXQoc2VsZi5fb3V0cHV0LCBzZWxmLl9pZHhbZV0pCitAQCAt OTQzLDggKzk0Myw4IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6 CisgICAgICAgICAgICAgc2VlIDptZXRoOmA8c2FnZS5tYXRyb2lkcy5tYXRyb2lkLk1hdHJvaWQu Y29jbG9zdXJlPmAuCisgCisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19wYWNrKHNlbGYu X2lucHV0LCBGKQorLSAgICAgICAgc2VsZi5fX2NvY2xvc3VyZShzZWxmLl9vdXRwdXQsIHNlbGYu X2lucHV0KQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dCwgRikKKysgICAgICAgIHNl bGYuX2NvY2xvc3VyZV9pbnRlcm5hbChzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0KQorICAgICAg ICAgcmV0dXJuIHNlbGYuX191bnBhY2soc2VsZi5fb3V0cHV0KQorIAorICAgICBjcGRlZiBfYXVn bWVudChzZWxmLCBYLCBZKToKK0BAIC05NzMsOCArOTczLDggQEAgY2RlZiBjbGFzcyBCYXNpc0V4 Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBbJ2UnLCAnZicsICdnJ10KKyAK KyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX3BhY2soc2VsZi5faW5wdXQsIFgpCistICAg ICAgICBzZWxmLl9fcGFjayhzZWxmLl9pbnB1dDIsIFkpCisrICAgICAgICBzZWxmLl9wYWNrKHNl bGYuX2lucHV0LCBYKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dDIsIFkpCisgICAg ICAgICBzZWxmLl9fYXVnbWVudChzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0LCBzZWxmLl9pbnB1 dDIpCisgICAgICAgICByZXR1cm4gc2VsZi5fX3VucGFjayhzZWxmLl9vdXRwdXQpCisgCitAQCAt MTAwNiw3ICsxMDA2LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lk KToKKyAgICAgICAgICAgICB0aGUgaW5wdXQgaXMgaW5kZWVkIGEgc3Vic2V0IG9mIHRoZSBncm91 bmQgc2V0LAorICAgICAgICAgICAgIHNlZSA6bWV0aDpgPHNhZ2UubWF0cm9pZHMubWF0cm9pZC5N YXRyb2lkLmlzX2luZGVwZW5kZW50PmAuCisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19w YWNrKHNlbGYuX2lucHV0LCBGKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dCwgRikK KyAgICAgICAgIHJldHVybiBzZWxmLl9faXNfaW5kZXBlbmRlbnQoc2VsZi5faW5wdXQpCisgCisg ICAgICMgY29ubmVjdGl2aXR5CitAQCAtMTE0Miw4ICsxMTQyLDggQEAgY2RlZiBjbGFzcyBCYXNp c0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIGNkZWYgYml0c2V0X3QgU1MsIFRU CisgICAgICAgICBiaXRzZXRfaW5pdChTUywgc2VsZi5fZ3JvdW5kc2V0X3NpemUpCisgICAgICAg ICBiaXRzZXRfaW5pdChUVCwgc2VsZi5fZ3JvdW5kc2V0X3NpemUpCistICAgICAgICBzZWxmLl9f cGFjayhTUyxTKQorLSAgICAgICAgc2VsZi5fX3BhY2soVFQsVCkKKysgICAgICAgIHNlbGYuX3Bh Y2soU1MsUykKKysgICAgICAgIHNlbGYuX3BhY2soVFQsVCkKKyAgICAgICAgICNGID0gc2V0KHNl bGYuZ3JvdW5kc2V0KCkpIC0gKFMgfCBUKQorICAgICAgICAgY2RlZiBiaXRzZXRfdCBGLCBJCisg ICAgICAgICBiaXRzZXRfaW5pdChGLCBzZWxmLl9ncm91bmRzZXRfc2l6ZSkKK0BAIC0xNDIxLDcg KzE0MjEsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAg ICAgICAgUmNvZmxhdHMgPSBTZXRTeXN0ZW0oc2VsZi5fRSkKKyAgICAgICAgIGkgPSAwCisgICAg ICAgICBiaXRzZXRfY2xlYXIodG9kb1swXSkKKy0gICAgICAgIHNlbGYuX19jb2Nsb3N1cmUoY29m bGF0c1swXSwgdG9kb1swXSkKKysgICAgICAgIHNlbGYuX2NvY2xvc3VyZV9pbnRlcm5hbChjb2Zs YXRzWzBdLCB0b2RvWzBdKQorICAgICAgICAgYml0c2V0X2NvbXBsZW1lbnQodG9kb1swXSwgY29m bGF0c1swXSkKKyAgICAgICAgIHNlbGYuX2NvZmxhdHNfcmVjKFJjb2ZsYXRzLCByLCBjb2ZsYXRz LCB0b2RvLCAwLCAwKQorICAgICAgICAgZm9yIGkgaW4gcmFuZ2UociArIDEpOgorQEAgLTE0NDMs NyArMTQ0Myw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6Cisg ICAgICAgICB3aGlsZSBlID49IDA6CisgICAgICAgICAgICAgYml0c2V0X2NvcHkoc2VsZi5faW5w dXQsIGNvZmxhdHNbaV0pCisgICAgICAgICAgICAgYml0c2V0X2FkZChzZWxmLl9pbnB1dCwgZSkK Ky0gICAgICAgICAgICBzZWxmLl9fY29jbG9zdXJlKGNvZmxhdHNbaSArIDFdLCBzZWxmLl9pbnB1 dCkKKysgICAgICAgICAgICBzZWxmLl9jb2Nsb3N1cmVfaW50ZXJuYWwoY29mbGF0c1tpICsgMV0s IHNlbGYuX2lucHV0KQorICAgICAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHRvZG9baV0sIHRv ZG9baV0sIGNvZmxhdHNbaSArIDFdKQorICAgICAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHRv ZG9baSArIDFdLCBjb2ZsYXRzW2kgKyAxXSwgY29mbGF0c1tpXSkKKyAgICAgICAgICAgICBpZiBi aXRzZXRfZmlyc3QodG9kb1tpICsgMV0pID09IGU6CitAQCAtMjM5Nyw3ICsyMzk3LDcgQEAgY2Rl ZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAg IyBTZXQgY3VycmVudCBiYXNpcyB0byBZCisgICAgICAgICAgICAgICAgIGJpdHNldF9kaWZmZXJl bmNlKHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVudF9iYXNpcywgQkIuX3N1YnNldHNbcG9pbnRl clldKQorICAgICAgICAgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBC Qi5fc3Vic2V0c1twb2ludGVyWV0sIHNlbGYuX2N1cnJlbnRfYmFzaXMpCistICAgICAgICAgICAg ICAgIHNlbGYuX19tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKysgICAgICAgICAg ICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisgICAgICAgICAg ICAgICAgIGlmIG5vdCBiaXRzZXRfZXEoc2VsZi5fY3VycmVudF9iYXNpcywgQkIuX3N1YnNldHNb cG9pbnRlclldKToKKyAgICAgICAgICAgICAgICAgICAgICMgV2UgZmFpbGVkIHRvIHNldCB0aGUg Y3VycmVudCBiYXNpcyB0byBZIHRocm91Z2ggYmFzaXMgZXhjaGFuZ2VzLgorICAgICAgICAgICAg ICAgICAgICAgIyBUaGVyZWZvcmUsIHRoZSBleGNoYW5nZSBheGlvbXMgYXJlIHZpb2xhdGVkIQor QEAgLTI0MDksNyArMjQwOSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0 cm9pZCk6CisgICAgICAgICAgICAgICAgICAgICBmb3VuZHBhaXIgPSBGYWxzZQorICAgICAgICAg ICAgICAgICAgICAgeSA9IGJpdHNldF9maXJzdChzZWxmLl9pbnB1dDIpCisgICAgICAgICAgICAg ICAgICAgICB3aGlsZSB5ID49IDA6ICAjIGZvciB5IGluIFktWAorLSAgICAgICAgICAgICAgICAg ICAgICAgIGlmIHNlbGYuX19pc19leGNoYW5nZV9wYWlyKHksIHgpOgorKyAgICAgICAgICAgICAg ICAgICAgICAgIGlmIHNlbGYuX2lzX2V4Y2hhbmdlX3BhaXIoeSwgeCk6CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvdW5kcGFpciA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeSA9IC0xCisgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19tYXRyb2lkLnB5eCBiL3NyYy9zYWdlL21hdHJvaWRz L2Jhc2lzX21hdHJvaWQucHl4CitpbmRleCAzYWM0MzExMjYyNy4uYzFiNmU5YjA0YzggMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19tYXRyb2lkLnB5eAorKysrIGIvc3JjL3Nh Z2UvbWF0cm9pZHMvYmFzaXNfbWF0cm9pZC5weXgKK0BAIC0yMTksNyArMjE5LDcgQEAgY2RlZiBj bGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgICAg ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiYmFzaXMgaGFzIHdyb25nIGNhcmRpbmFsaXR5LiIpCisg ICAgICAgICAgICAgICAgIGlmIG5vdCBiLmlzc3Vic2V0KHNlbGYuX2dyb3VuZHNldCk6CisgICAg ICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJiYXNpcyBpcyBub3QgYSBzdWJzZXQg b2YgdGhlIGdyb3VuZHNldCIpCistICAgICAgICAgICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2Is IGIpCisrICAgICAgICAgICAgICAgIHNlbGYuX3BhY2soc2VsZi5fYiwgYikKKyAgICAgICAgICAg ICAgICAgaSA9IHNldF90b19pbmRleChzZWxmLl9iKQorICAgICAgICAgICAgICAgICBpZiBub3Qg Yml0c2V0X2luKHNlbGYuX2JiLCBpKToKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Jjb3Vu dCArPSAxCitAQCAtMjM0LDcgKzIzNCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lz RXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy cm9yKCJub25iYXNpcyBoYXMgd3JvbmcgY2FyZGluYWxpdHkiKQorICAgICAgICAgICAgICAgICAg ICAgaWYgbm90IGIuaXNzdWJzZXQoc2VsZi5fZ3JvdW5kc2V0KToKKyAgICAgICAgICAgICAgICAg ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJub25iYXNpcyBpcyBub3QgYSBzdWJzZXQgb2YgdGhl IGdyb3VuZHNldCIpCistICAgICAgICAgICAgICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9iLCBi KQorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9iLCBiKQorICAgICAgICAg ICAgICAgICAgICAgaSA9IHNldF90b19pbmRleChzZWxmLl9iKQorICAgICAgICAgICAgICAgICAg ICAgaWYgYml0c2V0X2luKHNlbGYuX2JiLCBpKToKKyAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLl9iY291bnQgLT0gMQorQEAgLTI2Myw3ICsyNjMsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0 cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgCisgICAgICMgc3VwcG9ydCBmb3IgcGFyZW50 IEJhc2lzRXhjaGFuZ2VNYXRyb2lkCisgCistICAgIGNkZWYgYmludCBfX2lzX2V4Y2hhbmdlX3Bh aXIoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMTogICAgICAjIHRlc3QgaWYgY3VycmVu dF9iYXNpcy14ICsgeSBpcyBhIGJhc2lzCisrICAgIGNkZWYgYmludCBfaXNfZXhjaGFuZ2VfcGFp cihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOiAgICAgICMgdGVzdCBpZiBjdXJyZW50 X2Jhc2lzLXggKyB5IGlzIGEgYmFzaXMKKyAgICAgICAgICIiIgorICAgICAgICAgVGVzdCBpZiBg Qi1lICsgZmAgaXMgYSBiYXNpcyBvZiB0aGUgY3VycmVudCBtYXRyb2lkLgorIAorQEAgLTMyNiw3 ICszMjYsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6 CisgICAgICAgICAgICAgc2FnZTogTS5faXNfYmFzaXMoc2V0KFsnYScsICdiJywgJ2MnLCAnZCdd KSkKKyAgICAgICAgICAgICBGYWxzZQorICAgICAgICAgIiIiCistICAgICAgICBzZWxmLl9fcGFj ayhzZWxmLl9iLCBYKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9iLCBYKQorICAgICAgICAg cmV0dXJuIGJpdHNldF9pbihzZWxmLl9iYiwgc2V0X3RvX2luZGV4KHNlbGYuX2IpKQorIAorICAg ICAjIGR1YWwgYW5kIG1pbm9ycworQEAgLTU1Nyw3ICs1NTcsNyBAQCBjZGVmIGNsYXNzIEJhc2lz TWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgCisgICAgICAgICAiIiIKKyAgICAgICAg IE0gPSBCYXNpc01hdHJvaWQoTT1zZWxmKQorLSAgICAgICAgTS5fX3JlbGFiZWwobCkKKysgICAg ICAgIE0uX3JlbGFiZWwobCkKKyAgICAgICAgIHJldHVybiBNCisgCisgICAgICMgZW51bWVyYXRp b24KK0BAIC0xMTc3LDcgKzExNzcsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4 Y2hhbmdlTWF0cm9pZCk6CisgCisgICAgICAgICAiIiIKKyAgICAgICAgIE4gPSBCYXNpc01hdHJv aWQoTT1zZWxmKQorLSAgICAgICAgTi5yZW5hbWUoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFt ZScpKQorKyAgICAgICAgTi5yZW5hbWUoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAg IHJldHVybiBOCisgCisgICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbz1Ob25lKToKK0BA IC0xMjAxLDcgKzEyMDEsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdl TWF0cm9pZCk6CisgICAgICAgICBpZiBtZW1vIGlzIE5vbmU6CisgICAgICAgICAgICAgbWVtbyA9 IHt9CisgICAgICAgICBOID0gQmFzaXNNYXRyb2lkKE09c2VsZikKKy0gICAgICAgIE4ucmVuYW1l KGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIE4ucmVuYW1lKHNlbGYu Z2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19yZWR1 Y2VfXyhzZWxmKToKK0BAIC0xMjMwLDcgKzEyMzAsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9p ZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGltcG9ydCBz YWdlLm1hdHJvaWRzLnVucGlja2xpbmcKKyAgICAgICAgIEJCID0gYml0c2V0X3BpY2tsZShzZWxm Ll9iYikKKy0gICAgICAgIGRhdGEgPSAoc2VsZi5fRSwgc2VsZi5fbWF0cm9pZF9yYW5rLCBnZXRh dHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJyksIEJCKQorKyAgICAgICAgZGF0YSA9IChzZWxmLl9F LCBzZWxmLl9tYXRyb2lkX3JhbmssIHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCksIEJCKQorICAgICAg ICAgdmVyc2lvbiA9IDAKKyAgICAgICAgIHJldHVybiBzYWdlLm1hdHJvaWRzLnVucGlja2xpbmcu dW5waWNrbGVfYmFzaXNfbWF0cm9pZCwgKHZlcnNpb24sIGRhdGEpCisgCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvbWF0cm9pZHMvY2lyY3VpdF9jbG9zdXJlc19tYXRyb2lkLnB5eCBiL3NyYy9zYWdl L21hdHJvaWRzL2NpcmN1aXRfY2xvc3VyZXNfbWF0cm9pZC5weXgKK2luZGV4IDQwMjgyMmIyZGM2 Li40ZTc5YjA1NzVlMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1aXRfY2xv c3VyZXNfbWF0cm9pZC5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1aXRfY2xvc3Vy ZXNfbWF0cm9pZC5weXgKK0BAIC01MTMsOCArNTEzLDcgQEAgY2RlZiBjbGFzcyBDaXJjdWl0Q2xv c3VyZXNNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgTi5fZ3JvdW5kc2V0ID0gc2VsZi5fZ3Jv dW5kc2V0CisgICAgICAgICBOLl9jaXJjdWl0X2Nsb3N1cmVzID0gc2VsZi5fY2lyY3VpdF9jbG9z dXJlcworICAgICAgICAgTi5fbWF0cm9pZF9yYW5rID0gc2VsZi5fbWF0cm9pZF9yYW5rCistICAg ICAgICBpZiBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykgaXMgbm90IE5vbmU6ICAjIGJl Y2F1c2Ugb2YgbmFtZSB3cmFuZ2xpbmcsIHRoaXMgaXMgbm90IGNhdWdodCBieSB0aGUgZGVmYXVs dCBjb3B5CistICAgICAgICAgICAgTi5yZW5hbWUoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFt ZScpKQorKyAgICAgICAgTi5yZW5hbWUoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAg IHJldHVybiBOCisgCisgICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbz1Ob25lKToKK0BA IC01MzksOCArNTM4LDcgQEAgY2RlZiBjbGFzcyBDaXJjdWl0Q2xvc3VyZXNNYXRyb2lkKE1hdHJv aWQpOgorICAgICAgICAgZnJvbSBjb3B5IGltcG9ydCBkZWVwY29weQorICAgICAgICAgIyBTaW5j ZSBtYXRyb2lkcyBhcmUgaW1tdXRhYmxlLCBOIGNhbm5vdCByZWZlcmVuY2UgaXRzZWxmIGluIGNv cnJlY3QgY29kZSwgc28gbm8gbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgcmVjdXJzaW9uLgorICAg ICAgICAgTiA9IENpcmN1aXRDbG9zdXJlc01hdHJvaWQoZ3JvdW5kc2V0PWRlZXBjb3B5KHNlbGYu X2dyb3VuZHNldCwgbWVtbyksIGNpcmN1aXRfY2xvc3VyZXM9ZGVlcGNvcHkoc2VsZi5fY2lyY3Vp dF9jbG9zdXJlcywgbWVtbykpCistICAgICAgICBpZiBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9u YW1lJykgaXMgbm90IE5vbmU6ICAjIGJlY2F1c2Ugb2YgbmFtZSB3cmFuZ2xpbmcsIHRoaXMgaXMg bm90IGNhdWdodCBieSB0aGUgZGVmYXVsdCBkZWVwY29weQorLSAgICAgICAgICAgIE4ucmVuYW1l KGRlZXBjb3B5KGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSwgbWVtbykpCisrICAgICAg ICBOLnJlbmFtZShkZWVwY29weShzZWxmLmdldF9jdXN0b21fbmFtZSgpLCBtZW1vKSkKKyAgICAg ICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorQEAgLTU3MCw3ICs1 NjgsNyBAQCBjZGVmIGNsYXNzIENpcmN1aXRDbG9zdXJlc01hdHJvaWQoTWF0cm9pZCk6CisgICAg ICAgICAgICAgIDQ6IHt7J2EnLCAnYicsICdjJywgJ2QnLCAnZScsICdmJywgJ2cnLCAnaCd9fX0K KyAgICAgICAgICIiIgorICAgICAgICAgaW1wb3J0IHNhZ2UubWF0cm9pZHMudW5waWNrbGluZwor LSAgICAgICAgZGF0YSA9IChzZWxmLl9ncm91bmRzZXQsIHNlbGYuX2NpcmN1aXRfY2xvc3VyZXMs IGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIGRhdGEgPSAoc2VsZi5f Z3JvdW5kc2V0LCBzZWxmLl9jaXJjdWl0X2Nsb3N1cmVzLCBzZWxmLmdldF9jdXN0b21fbmFtZSgp KQorICAgICAgICAgdmVyc2lvbiA9IDAKKyAgICAgICAgIHJldHVybiBzYWdlLm1hdHJvaWRzLnVu cGlja2xpbmcudW5waWNrbGVfY2lyY3VpdF9jbG9zdXJlc19tYXRyb2lkLCAodmVyc2lvbiwgZGF0 YSkKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9kdWFsX21hdHJvaWQucHkgYi9z cmMvc2FnZS9tYXRyb2lkcy9kdWFsX21hdHJvaWQucHkKK2luZGV4IDgwNGU0M2YwMzViLi5kYTY2 Mzk4MjdlNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2R1YWxfbWF0cm9pZC5weQor KysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvZHVhbF9tYXRyb2lkLnB5CitAQCAtNTE5LDkgKzUxOSw3 IEBAIGRlZiBfX2NvcHlfXyhzZWxmKToKKyAKKyAgICAgICAgICIiIgorICAgICAgICAgTiA9IER1 YWxNYXRyb2lkKHNlbGYuX21hdHJvaWQpCistICAgICAgICBpZiBnZXRhdHRyKHNlbGYsICdfX2N1 c3RvbV9uYW1lJykgaXMgbm90IE5vbmU6CistICAgICAgICAgICAgIyBiZWNhdXNlIG9mIG5hbWUg d3JhbmdsaW5nLCB0aGlzIGlzIG5vdCBjYXVnaHQgYnkgdGhlIGRlZmF1bHQgY29weQorLSAgICAg ICAgICAgIE4ucmVuYW1lKGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAg IE4ucmVuYW1lKHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1cm4gTgorIAor ICAgICBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW89e30pOgorQEAgLTU0MywxMCArNTQxLDcg QEAgZGVmIF9fZGVlcGNvcHlfXyhzZWxmLCBtZW1vPXt9KToKKyAgICAgICAgICIiIgorICAgICAg ICAgZnJvbSBjb3B5IGltcG9ydCBkZWVwY29weQorICAgICAgICAgTiA9IER1YWxNYXRyb2lkKGRl ZXBjb3B5KHNlbGYuX21hdHJvaWQsIG1lbW8pKQorLSAgICAgICAgaWYgZ2V0YXR0cihzZWxmLCAn X19jdXN0b21fbmFtZScpIGlzIG5vdCBOb25lOgorLSAgICAgICAgICAgICMgYmVjYXVzZSBvZiBu YW1lIHdyYW5nbGluZywgdGhpcyBpcyBub3QgY2F1Z2h0IGJ5IHRoZQorLSAgICAgICAgICAgICMg ZGVmYXVsdCBkZWVwY29weQorLSAgICAgICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KGdldGF0dHIo c2VsZiwgJ19fY3VzdG9tX25hbWUnKSwgbWVtbykpCisrICAgICAgICBOLnJlbmFtZShkZWVwY29w eShzZWxmLmdldF9jdXN0b21fbmFtZSgpLCBtZW1vKSkKKyAgICAgICAgIHJldHVybiBOCisgCisg ICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorQEAgLTU3NSw2ICs1NzAsNiBAQCBkZWYgX19yZWR1 Y2VfXyhzZWxmKToKKyAgICAgICAgICAgICAgNDoge3snYScsICdiJywgJ2MnLCAnZCcsICdlJywg J2YnLCAnZycsICdoJ319fScKKyAgICAgICAgICIiIgorICAgICAgICAgaW1wb3J0IHNhZ2UubWF0 cm9pZHMudW5waWNrbGluZworLSAgICAgICAgZGF0YSA9IChzZWxmLl9tYXRyb2lkLCBnZXRhdHRy KHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAgICAgICBkYXRhID0gKHNlbGYuX21hdHJvaWQs IHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICB2ZXJzaW9uID0gMAorICAgICAgICAg cmV0dXJuIHNhZ2UubWF0cm9pZHMudW5waWNrbGluZy51bnBpY2tsZV9kdWFsX21hdHJvaWQsICh2 ZXJzaW9uLCBkYXRhKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2dyYXBoaWNfbWF0 cm9pZC5weSBiL3NyYy9zYWdlL21hdHJvaWRzL2dyYXBoaWNfbWF0cm9pZC5weQoraW5kZXggNTIx NmVmMTE1MTcuLmM3MjdkYzU0ZTUyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvZ3Jh cGhpY19tYXRyb2lkLnB5CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9ncmFwaGljX21hdHJvaWQu cHkKK0BAIC00ODEsOCArNDgxLDcgQEAgZGVmIF9fY29weV9fKHNlbGYpOgorICAgICAgICAgICAg IEZhbHNlCisgICAgICAgICAiIiIKKyAgICAgICAgIE4gPSBHcmFwaGljTWF0cm9pZChzZWxmLl9H KQorLSAgICAgICAgaWYgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpIGlzIG5vdCBOb25l OiAgIyBiZWNhdXNlIG9mIG5hbWUgd3JhbmdsaW5nLCB0aGlzIGlzIG5vdCBjYXVnaHQgYnkgdGhl IGRlZmF1bHQgY29weQorLSAgICAgICAgICAgIE4ucmVuYW1lKGdldGF0dHIoc2VsZiwgJ19fY3Vz dG9tX25hbWUnKSkKKysgICAgICAgIE4ucmVuYW1lKHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisg ICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW89e30p OgorQEAgLTUwMiw4ICs1MDEsNyBAQCBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW89e30pOgor ICAgICAgICAgIiIiCisgICAgICAgICAjIFRoZSBvbmx5IHJlYWwgZGlmZmVyZW5jZSBiZXR3ZWVu IHRoaXMgYW5kIF9fY29weV9fKCkgaXMgdGhlIG1lbW8KKyAgICAgICAgIE4gPSBHcmFwaGljTWF0 cm9pZChkZWVwY29weShzZWxmLl9HLCBtZW1vKSkKKy0gICAgICAgIGlmIGdldGF0dHIoc2VsZiwg J19fY3VzdG9tX25hbWUnKSBpcyBub3QgTm9uZTogICMgYmVjYXVzZSBvZiBuYW1lIHdyYW5nbGlu ZywgdGhpcyBpcyBub3QgY2F1Z2h0IGJ5IHRoZSBkZWZhdWx0IGRlZXBjb3B5CistICAgICAgICAg ICAgTi5yZW5hbWUoZGVlcGNvcHkoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpLCBtZW1v KSkKKysgICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCksIG1l bW8pKQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CitA QCAtNTE5LDcgKzUxNyw3IEBAIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICAgICAgIEdy YXBoaWMgbWF0cm9pZCBvZiByYW5rIDkgb24gMTUgZWxlbWVudHMKKyAgICAgICAgICIiIgorICAg ICAgICAgZnJvbSAudW5waWNrbGluZyBpbXBvcnQgdW5waWNrbGVfZ3JhcGhpY19tYXRyb2lkCist ICAgICAgICBkYXRhID0gKHNlbGYuX0csIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkK KysgICAgICAgIGRhdGEgPSAoc2VsZi5fRywgc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAg ICAgIHZlcnNpb24gPSAwCisgICAgICAgICByZXR1cm4gdW5waWNrbGVfZ3JhcGhpY19tYXRyb2lk LCAodmVyc2lvbiwgZGF0YSkKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9saW5l YXJfbWF0cm9pZC5weGQgYi9zcmMvc2FnZS9tYXRyb2lkcy9saW5lYXJfbWF0cm9pZC5weGQKK2lu ZGV4IDAxNGM4YWVmNTdkLi45YWViZDQ0NmI2OCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJv aWRzL2xpbmVhcl9tYXRyb2lkLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvbGluZWFyX21h dHJvaWQucHhkCitAQCAtMTUsNyArMTUsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFz aXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKQorIAor ICAgICBjZGVmIGxpc3QgX3NldHVwX2ludGVybmFsX3JlcHJlc2VudGF0aW9uKHNlbGYsIG1hdHJp eCwgcmVkdWNlZF9tYXRyaXgsIHJpbmcsIGtlZXBfaW5pdGlhbF9yZXByZXNlbnRhdGlvbikKKy0g ICAgY2RlZiBfX2V4Y2hhbmdlX3ZhbHVlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KQorKyAgICBjZGVm IF9leGNoYW5nZV92YWx1ZV9pbnRlcm5hbChzZWxmLCBsb25nIHgsIGxvbmcgeSkKKyAKKyAgICAg Y3BkZWYgcmVwcmVzZW50YXRpb24oc2VsZiwgQj0qLCByZWR1Y2VkPSosIGxhYmVscz0qLCBvcmRl cj0qLCBsaWZ0X21hcD0qKQorICAgICBjcGRlZiBfY3VycmVudF9yb3dzX2NvbHMoc2VsZiwgQj0q KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2xpbmVhcl9tYXRyb2lkLnB5eCBiL3Ny Yy9zYWdlL21hdHJvaWRzL2xpbmVhcl9tYXRyb2lkLnB5eAoraW5kZXggNjE0NTJlODBjNDguLjM2 ZjU2M2FhNDMzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvbGluZWFyX21hdHJvaWQu cHl4CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9saW5lYXJfbWF0cm9pZC5weXgKK0BAIC0zOTEs MTMgKzM5MSwxMyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJv aWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gY2hhcmFjdGVyaXN0aWMoc2VsZi5f QSkKKyAKKy0gICAgY2RlZiBiaW50IF9faXNfZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25nIHgsIGxv bmcgeSkgZXhjZXB0IC0xOgorKyAgICBjZGVmIGJpbnQgX2lzX2V4Y2hhbmdlX3BhaXIoc2VsZiwg bG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENoZWNr IGlmIGBgc2VsZi5iYXNpcygpIC0geCArIHlgYCBpcyBhZ2FpbiBhIGJhc2lzLiBJbnRlcm5hbCBt ZXRob2QuCisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9BLmlzX25vbnplcm8o c2VsZi5fcHJvd1t4XSwgc2VsZi5fcHJvd1t5XSkKKyAKKy0gICAgY2RlZiBpbnQgX19leGNoYW5n ZShzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorKyAgICBjZGVmIGludCBfZXhjaGFu Z2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKyAgICAgICAgICIiIgorICAgICAg ICAgUHV0IGVsZW1lbnQgaW5kZXhlZCBieSBgYHhgYCBpbnRvIGJhc2lzLCB0YWtpbmcgb3V0IGVs ZW1lbnQgYGB5YGAuCisgICAgICAgICBBc3N1bXB0aW9ucyBhcmUgdGhhdCB0aGlzIGlzIGEgdmFs aWQgYmFzaXMgZXhjaGFuZ2UuCitAQCAtNDIwLDkgKzQyMCw5IEBAIGNkZWYgY2xhc3MgTGluZWFy TWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9BLnNldF91bnNh ZmUocHgsIHB5LCBwaXZpKQorICAgICAgICAgc2VsZi5fcHJvd1t5XSA9IHB4CisgICAgICAgICBz ZWxmLl9wcm93W3hdID0gcHkKKy0gICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9fZXhjaGFu Z2Uoc2VsZiwgeCwgeSkKKysgICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9leGNoYW5nZShz ZWxmLCB4LCB5KQorIAorLSAgICBjZGVmICBfX2V4Y2hhbmdlX3ZhbHVlKHNlbGYsIGxvbmcgeCwg bG9uZyB5KToKKysgICAgY2RlZiAgX2V4Y2hhbmdlX3ZhbHVlX2ludGVybmFsKHNlbGYsIGxvbmcg eCwgbG9uZyB5KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgKHgsIHkpIGVu dHJ5IG9mIHRoZSBjdXJyZW50IHJlcHJlc2VudGF0aW9uLgorICAgICAgICAgIiIiCitAQCAtNjA1 LDcgKzYwNSw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9p ZCk6CisgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXByZXNlbnRhdGlvbiA9IHNlbGYuX2Jh c2ljX3JlcHJlc2VudGF0aW9uKEIpCisgICAgICAgICAgICAgICAgIEEgPSBzZWxmLl9yZXByZXNl bnRhdGlvbgorICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgIEIgPSBzZWxmLl9f c3Vic2V0KEIpCisrICAgICAgICAgICAgICAgIEIgPSBzZWxmLl9zdWJzZXRfaW50ZXJuYWwoQikK KyAgICAgICAgICAgICAgICAgQSA9IHNlbGYuX2Jhc2ljX3JlcHJlc2VudGF0aW9uKEIpCisgICAg ICAgICAgICAgQSA9IEEubWF0cml4X2Zyb21fcm93c19hbmRfY29sdW1ucyhyYW5nZShBLm5yb3dz KCkpLCBvcmRlcl9pZHgpCisgICAgICAgICAgICAgaWYgbGlmdF9tYXAgaXMgTm9uZToKK0BAIC02 MjIsNyArNjIyLDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRy b2lkKToKKyAgICAgICAgICAgICBpZiBCIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgIEIgPSBm cm96ZW5zZXQoc2VsZi5iYXNpcygpKQorICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAg ICAgIEIgPSBzZWxmLl9fc3Vic2V0KEIpCisrICAgICAgICAgICAgICAgIEIgPSBzZWxmLl9zdWJz ZXRfaW50ZXJuYWwoQikKKyAgICAgICAgICAgICBBID0gc2VsZi5fcmVkdWNlZF9yZXByZXNlbnRh dGlvbihCKQorICAgICAgICAgICAgIFIsIEMgPSBzZWxmLl9jdXJyZW50X3Jvd3NfY29scygpCisg ICAgICAgICAgICAgUmkgPSBbXQorQEAgLTE0OTMsNyArMTQ5Myw3IEBAIGNkZWYgY2xhc3MgTGlu ZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgc2FnZTogTS5f ZXhjaGFuZ2VfdmFsdWUoMSwgMykKKyAgICAgICAgICAgICA0CisgICAgICAgICAiIiIKKy0gICAg ICAgIHJldHVybiBzZWxmLl9fZXhjaGFuZ2VfdmFsdWUoc2VsZi5faWR4W2VdLCBzZWxmLl9pZHhb Zl0pCisrICAgICAgICByZXR1cm4gc2VsZi5fZXhjaGFuZ2VfdmFsdWVfaW50ZXJuYWwoc2VsZi5f aWR4W2VdLCBzZWxmLl9pZHhbZl0pCisgCisgICAgIGNwZGVmIGZ1bmRhbWVudGFsX2N5Y2xlKHNl bGYsIEIsIGUpOgorICAgICAgICAgIiIiCitAQCAtMjkwOSw3ICsyOTA5LDcgQEAgY2RlZiBjbGFz cyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgcm93cywgY29scyA9IHNlbGYuX2N1cnJlbnRfcm93c19jb2xzKCkKKyAgICAg ICAgICAgICBOID0gTGluZWFyTWF0cm9pZChncm91bmRzZXQ9cm93cyArIGNvbHMsIHJlZHVjZWRf bWF0cml4PXNlbGYuX0EpCistICAgICAgICBOLnJlbmFtZShnZXRhdHRyKHNlbGYsICdfX2N1c3Rv bV9uYW1lJykpCisrICAgICAgICBOLnJlbmFtZShzZWxmLmdldF9jdXN0b21fbmFtZSgpKQorICAg ICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fZGVlcGNvcHlfXyhzZWxmLCBtZW1vKToKK0BA IC0yOTMwLDcgKzI5MzAsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5n ZU1hdHJvaWQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByb3dzLCBjb2xzID0gc2Vs Zi5fY3VycmVudF9yb3dzX2NvbHMoKQorICAgICAgICAgICAgIE4gPSBMaW5lYXJNYXRyb2lkKGdy b3VuZHNldD1kZWVwY29weShyb3dzICsgY29scywgbWVtbyksIHJlZHVjZWRfbWF0cml4PWRlZXBj b3B5KHNlbGYuX0EsIG1lbW8pKQorLSAgICAgICAgTi5yZW5hbWUoZGVlcGNvcHkoZ2V0YXR0cihz ZWxmLCAnX19jdXN0b21fbmFtZScpLCBtZW1vKSkKKysgICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5 KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCksIG1lbW8pKQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAg ICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CitAQCAtMjk3OSw3ICsyOTc5LDcgQEAgY2RlZiBjbGFz cyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICByb3dz LCBjb2xzID0gc2VsZi5fY3VycmVudF9yb3dzX2NvbHMoKQorICAgICAgICAgICAgIGdzID0gcm93 cyArIGNvbHMKKyAgICAgICAgICAgICByZWR1Y2VkID0gVHJ1ZQorLSAgICAgICAgZGF0YSA9IChB LCBncywgcmVkdWNlZCwgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAg ZGF0YSA9IChBLCBncywgcmVkdWNlZCwgc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAg IHJldHVybiBzYWdlLm1hdHJvaWRzLnVucGlja2xpbmcudW5waWNrbGVfbGluZWFyX21hdHJvaWQs ICh2ZXJzaW9uLCBkYXRhKQorIAorICMgQmluYXJ5IG1hdHJvaWQKK0BAIC0zMTUyLDIwICszMTUy LDIwIEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIDIKKyAKKy0gICAgY2RlZiBiaW50IF9faXNfZXhjaGFuZ2Vf cGFpcihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorKyAgICBjZGVmIGJpbnQgX2lz X2V4Y2hhbmdlX3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIENoZWNrIGlmIGBgc2VsZi5iYXNpcygpIC0geCArIHlgYCBpcyBhZ2Fp biBhIGJhc2lzLiBJbnRlcm5hbCBtZXRob2QuCisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biAoPEJpbmFyeU1hdHJpeD5zZWxmLl9BKS5pc19ub256ZXJvKHNlbGYuX3Byb3dbeF0sIHkpCisg CistICAgIGNkZWYgaW50IF9fZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAt MToKKysgICAgY2RlZiBpbnQgX2V4Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQg LTE6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXBsYWNlIGBgc2VsZi5iYXNpcygpIHdpdGgg YGBzZWxmLmJhc2lzKCkgLSB4ICsgeWBgLiBJbnRlcm5hbCBtZXRob2QsIGRvZXMgbm8gY2hlY2tz LgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGxvbmcgcCA9IHNlbGYuX3Byb3dbeF0KKyAg ICAgICAgIHNlbGYuX0EucGl2b3QocCwgeSkgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlv bgorICAgICAgICAgc2VsZi5fcHJvd1t5XSA9IHAKKy0gICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRy b2lkLl9fZXhjaGFuZ2Uoc2VsZiwgeCwgeSkKKysgICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lk Ll9leGNoYW5nZShzZWxmLCB4LCB5KQorIAorICAgICBjZGVmICBfX2Z1bmRhbWVudGFsX2NvY2ly Y3VpdChzZWxmLCBiaXRzZXRfdCBDLCBsb25nIHgpOgorICAgICAgICAgciIiIgorQEAgLTMxNzMs MTggKzMxNzMsMTggQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgor ICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfY29weShDLCAoPEJpbmFyeU1hdHJpeD5zZWxm Ll9BKS5fTVtzZWxmLl9wcm93W3hdXSkKKyAKKy0gICAgY2RlZiBfX2NvY2xvc3VyZShzZWxmLCBi aXRzZXRfdCBSLCBiaXRzZXRfdCBGKToKKysgICAgY2RlZiBfY29jbG9zdXJlX2ludGVybmFsKHNl bGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBCaXRw YWNrZWQgdmVyc2lvbiBvZiBgYGNvY2xvc3VyZWBgLgorIAorLSAgICAgICAgVGhpcyBmdW5jdGlv biBvdmVycmlkZXMgdGhlIGludGVybmFsIGZ1bmN0aW9uIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9f Y29jbG9zdXJlKCkgb2YgdGhlIHBhcmVudCBjbGFzcy4KKysgICAgICAgIFRoaXMgZnVuY3Rpb24g b3ZlcnJpZGVzIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiBCYXNpc0V4Y2hhbmdlTWF0cm9pZC5fY29j bG9zdXJlX2ludGVybmFsKCkgb2YgdGhlIHBhcmVudCBjbGFzcy4KKyAgICAgICAgIFRoZSBpbXBs ZW1lbnRhdGlvbiBzaG91bGQgYmUgbW9yZSBlZmZpY2llbnQgZm9yIEJpbmFyeU1hdHJvaWQsIGR1 ZSB0byB0aGUgZmFjdCB0aGF0IGluIHRoaXMgY2xhc3MsCisgICAgICAgICBfX2Z1bmRhbWVudGFs X2NvY2lyY3VpdCBpcyBtdWNoIGZhc3RlciB0aGFuIF9fZnVuZGFtZW50YWxfY2lyY3VpdC4KKyAg ICAgICAgICIiIgorICAgICAgICAgYml0c2V0X2NvbXBsZW1lbnQoUiwgRikKKyAgICAgICAgIGJp dHNldF9kaWZmZXJlbmNlKHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVudF9iYXNpcywgUikKKyAg ICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX291dHNpZGUsIFIsIHNlbGYuX2N1cnJlbnRf YmFzaXMpCistICAgICAgICBzZWxmLl9fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUp CisrICAgICAgICBzZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKyAKKyAg ICAgICAgIGJpdHNldF9jb3B5KFIsIEYpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxm Ll9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIEYpCitAQCAtMzE5Niw3ICszMTk2LDcgQEAg Y2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgICAg ICBiaXRzZXRfYWRkKFIsIHkpCisgICAgICAgICAgICAgeSA9IGJpdHNldF9uZXh0KHNlbGYuX2lu c2lkZSwgeSArIDEpCisgCistICAgIGNkZWYgIF9fZXhjaGFuZ2VfdmFsdWUoc2VsZiwgbG9uZyB4 LCBsb25nIHkpOgorKyAgICBjZGVmICBfZXhjaGFuZ2VfdmFsdWVfaW50ZXJuYWwoc2VsZiwgbG9u ZyB4LCBsb25nIHkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSAoeCwgeSkg ZW50cnkgb2YgdGhlIGN1cnJlbnQgcmVwcmVzZW50YXRpb24uCisgICAgICAgICAiIiIKK0BAIC0z OTY0LDcgKzM5NjQsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6 CisgICAgICAgICAgICAgZm9yIGUgaW4gc2VsZi5iYXNpcygpOgorICAgICAgICAgICAgICAgICBi YXNpc1tzZWxmLl9wcm93W3NlbGYuX2lkeFtlXV1dID0gZQorICAgICAgICAgICAgIE4gPSBCaW5h cnlNYXRyb2lkKGdyb3VuZHNldD1zZWxmLl9FLCBtYXRyaXg9c2VsZi5fQSwgYmFzaXM9YmFzaXMp CistICAgICAgICBOLnJlbmFtZShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAg ICAgICBOLnJlbmFtZShzZWxmLmdldF9jdXN0b21fbmFtZSgpKQorICAgICAgICAgcmV0dXJuIE4K KyAKKyAgICAgZGVmIF9fZGVlcGNvcHlfXyhzZWxmLCBtZW1vKToKK0BAIC0zOTg5LDcgKzM5ODks NyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAg ICAgZm9yIGUgaW4gc2VsZi5iYXNpcygpOgorICAgICAgICAgICAgICAgICBiYXNpc1tzZWxmLl9w cm93W3NlbGYuX2lkeFtlXV1dID0gZQorICAgICAgICAgICAgIE4gPSBCaW5hcnlNYXRyb2lkKGdy b3VuZHNldD1kZWVwY29weShzZWxmLl9FLCBtZW1vKSwgbWF0cml4PWRlZXBjb3B5KHNlbGYuX0Es IG1lbW8pLCBiYXNpcz1kZWVwY29weShiYXNpcywgbWVtbykpCistICAgICAgICBOLnJlbmFtZShk ZWVwY29weShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJyksIG1lbW8pKQorKyAgICAgICAg Ti5yZW5hbWUoZGVlcGNvcHkoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSwgbWVtbykpCisgICAgICAg ICByZXR1cm4gTgorIAorICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKK0BAIC00MDQ3LDcgKzQw NDcsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAg ICAgICAgQSA9IHNlbGYuX0EKKyAgICAgICAgICAgICAjIGN1cnJlbnQgYmFzaXMgb3JkZXJlZCBz byBtYXRyaXggY29scyBmb3JtIGlkZW50aXR5IG1hdHJpeDoKKyAgICAgICAgICAgICBiYXNpcyA9 IHNlbGYuX2N1cnJlbnRfcm93c19jb2xzKClbMF0KKy0gICAgICAgIGRhdGEgPSAoQSwgZ3MsIGJh c2lzLCBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAgICAgICBkYXRhID0gKEEs IGdzLCBiYXNpcywgc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBzYWdl Lm1hdHJvaWRzLnVucGlja2xpbmcudW5waWNrbGVfYmluYXJ5X21hdHJvaWQsICh2ZXJzaW9uLCBk YXRhKQorIAorIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CitAQCAt NDIyMCwyMCArNDIyMCwyMCBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJv aWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gMworIAorLSAgICBjZGVmIGJpbnQg X19pc19leGNoYW5nZV9wYWlyKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisrICAg IGNkZWYgYmludCBfaXNfZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0 IC0xOgorICAgICAgICAgciIiIgorICAgICAgICAgQ2hlY2sgaWYgYGBzZWxmLmJhc2lzKCkgLSB4 ICsgeWBgIGlzIGFnYWluIGEgYmFzaXMuIEludGVybmFsIG1ldGhvZC4KKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuICg8VGVybmFyeU1hdHJpeD5zZWxmLl9BKS5pc19ub256ZXJvKHNlbGYu X3Byb3dbeF0sIHkpCisgCistICAgIGNkZWYgaW50IF9fZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4LCBs b25nIHkpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBpbnQgX2V4Y2hhbmdlKHNlbGYsIGxvbmcgeCwg bG9uZyB5KSBleGNlcHQgLTE6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXBsYWNlIGBgc2Vs Zi5iYXNpcygpIHdpdGggYGBzZWxmLmJhc2lzKCkgLSB4ICsgeWBgLiBJbnRlcm5hbCBtZXRob2Qs IGRvZXMgbm8gY2hlY2tzLgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGxvbmcgcCA9IHNl bGYuX3Byb3dbeF0KKyAgICAgICAgIHNlbGYuX0EucGl2b3QocCwgeSkgICAjIE5vdCBhIFNhZ2Ug bWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgc2VsZi5fcHJvd1t5XSA9IHAKKy0gICAgICAgIEJh c2lzRXhjaGFuZ2VNYXRyb2lkLl9fZXhjaGFuZ2Uoc2VsZiwgeCwgeSkKKysgICAgICAgIEJhc2lz RXhjaGFuZ2VNYXRyb2lkLl9leGNoYW5nZShzZWxmLCB4LCB5KQorIAorICAgICBjZGVmICBfX2Z1 bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCBDLCBsb25nIHgpOgorICAgICAgICAg ciIiIgorQEAgLTQyNDEsMTggKzQyNDEsMTggQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChM aW5lYXJNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgYml0c2V0X2NvcHkoQywgKDxU ZXJuYXJ5TWF0cml4PnNlbGYuX0EpLl9NMFtzZWxmLl9wcm93W3hdXSkKKyAKKy0gICAgY2RlZiBf X2NvY2xvc3VyZShzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKToKKysgICAgY2RlZiBfY29j bG9zdXJlX2ludGVybmFsKHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpOgorICAgICAgICAg IiIiCisgICAgICAgICBCaXRwYWNrZWQgdmVyc2lvbiBvZiBgYGNvY2xvc3VyZWBgLgorIAorLSAg ICAgICAgVGhpcyBmdW5jdGlvbiBvdmVycmlkZXMgdGhlIGludGVybmFsIGZ1bmN0aW9uIEJhc2lz RXhjaGFuZ2VNYXRyb2lkLl9fY29jbG9zdXJlKCkgb2YgdGhlIHBhcmVudCBjbGFzcy4KKysgICAg ICAgIFRoaXMgZnVuY3Rpb24gb3ZlcnJpZGVzIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiBCYXNpc0V4 Y2hhbmdlTWF0cm9pZC5fY29jbG9zdXJlX2ludGVybmFsKCkgb2YgdGhlIHBhcmVudCBjbGFzcy4K KyAgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgbW9yZSBlZmZpY2llbnQgZm9y IFRlcm5hcnlNYXRyb2lkLCBkdWUgdG8gdGhlIGZhY3QgdGhhdCBpbiB0aGlzIGNsYXNzLAorICAg ICAgICAgX19mdW5kYW1lbnRhbF9jb2NpcmN1aXQgaXMgbXVjaCBmYXN0ZXIgdGhhbiBfX2Z1bmRh bWVudGFsX2NpcmN1aXQuCisgICAgICAgICAiIiIKKyAgICAgICAgIGJpdHNldF9jb21wbGVtZW50 KFIsIEYpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1 cnJlbnRfYmFzaXMsIFIpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRl LCBSLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorLSAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5faW5z aWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNl bGYuX291dHNpZGUpCisgCisgICAgICAgICBiaXRzZXRfY29weShSLCBGKQorICAgICAgICAgYml0 c2V0X2RpZmZlcmVuY2Uoc2VsZi5faW5zaWRlLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBGKQorQEAg LTQyNjQsNyArNDI2NCw3IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9p ZCk6CisgICAgICAgICAgICAgICAgIGJpdHNldF9hZGQoUiwgeSkKKyAgICAgICAgICAgICB5ID0g Yml0c2V0X25leHQoc2VsZi5faW5zaWRlLCB5ICsgMSkKKyAKKy0gICAgY2RlZiAgX19leGNoYW5n ZV92YWx1ZShzZWxmLCBsb25nIHgsIGxvbmcgeSk6CisrICAgIGNkZWYgIF9leGNoYW5nZV92YWx1 ZV9pbnRlcm5hbChzZWxmLCBsb25nIHgsIGxvbmcgeSk6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlICh4LCB5KSBlbnRyeSBvZiB0aGUgY3VycmVudCByZXByZXNlbnRhdGlvbi4K KyAgICAgICAgICIiIgorQEAgLTQ4NTgsNyArNDg1OCw3IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1h dHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgZm9yIGUgaW4gc2VsZi5iYXNpcygp OgorICAgICAgICAgICAgICAgICBiYXNpc1tzZWxmLl9wcm93W3NlbGYuX2lkeFtlXV1dID0gZQor ICAgICAgICAgICAgIE4gPSBUZXJuYXJ5TWF0cm9pZChncm91bmRzZXQ9c2VsZi5fRSwgbWF0cml4 PXNlbGYuX0EsIGJhc2lzPWJhc2lzKQorLSAgICAgICAgTi5yZW5hbWUoZ2V0YXR0cihzZWxmLCAn X19jdXN0b21fbmFtZScpKQorKyAgICAgICAgTi5yZW5hbWUoc2VsZi5nZXRfY3VzdG9tX25hbWUo KSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVt byk6CitAQCAtNDg4Myw3ICs0ODgzLDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChMaW5l YXJNYXRyb2lkKToKKyAgICAgICAgICAgICBmb3IgZSBpbiBzZWxmLmJhc2lzKCk6CisgICAgICAg ICAgICAgICAgIGJhc2lzW3NlbGYuX3Byb3dbc2VsZi5faWR4W2VdXV0gPSBlCisgICAgICAgICAg ICAgTiA9IFRlcm5hcnlNYXRyb2lkKGdyb3VuZHNldD1kZWVwY29weShzZWxmLl9FLCBtZW1vKSwg bWF0cml4PWRlZXBjb3B5KHNlbGYuX0EsIG1lbW8pLCBiYXNpcz1kZWVwY29weShiYXNpcywgbWVt bykpCistICAgICAgICBOLnJlbmFtZShkZWVwY29weShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9u YW1lJyksIG1lbW8pKQorKyAgICAgICAgTi5yZW5hbWUoZGVlcGNvcHkoc2VsZi5nZXRfY3VzdG9t X25hbWUoKSwgbWVtbykpCisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19yZWR1Y2Vf XyhzZWxmKToKK0BAIC00OTQ1LDcgKzQ5NDUsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lk KExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgIEEgPSBzZWxmLl9BCisgICAgICAgICAgICAg IyBjdXJyZW50IGJhc2lzIG9yZGVyZWQgc28gbWF0cml4IGNvbHMgZm9ybSBpZGVudGl0eSBtYXRy aXg6CisgICAgICAgICAgICAgYmFzaXMgPSBzZWxmLl9jdXJyZW50X3Jvd3NfY29scygpWzBdCist ICAgICAgICBkYXRhID0gKEEsIGdzLCBiYXNpcywgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFt ZScpKQorKyAgICAgICAgZGF0YSA9IChBLCBncywgYmFzaXMsIHNlbGYuZ2V0X2N1c3RvbV9uYW1l KCkpCisgICAgICAgICByZXR1cm4gc2FnZS5tYXRyb2lkcy51bnBpY2tsaW5nLnVucGlja2xlX3Rl cm5hcnlfbWF0cm9pZCwgKHZlcnNpb24sIGRhdGEpCisgCisgIyBRdWF0ZXJuYXJ5IE1hdHJvaWRz CitAQCAtNTEyMiwyMCArNTEyMiwyMCBAQCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRyb2lkKExp bmVhck1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gMgorIAorLSAgICBj ZGVmIGJpbnQgX19pc19leGNoYW5nZV9wYWlyKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQg LTE6CisrICAgIGNkZWYgYmludCBfaXNfZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25nIHgsIGxvbmcg eSkgZXhjZXB0IC0xOgorICAgICAgICAgciIiIgorICAgICAgICAgQ2hlY2sgaWYgYGBzZWxmLmJh c2lzKCkgLSB4ICsgeWBgIGlzIGFnYWluIGEgYmFzaXMuIEludGVybmFsIG1ldGhvZC4KKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuICg8UXVhdGVybmFyeU1hdHJpeD5zZWxmLl9BKS5pc19u b256ZXJvKHNlbGYuX3Byb3dbeF0sIHkpCisgCistICAgIGNkZWYgaW50IF9fZXhjaGFuZ2Uoc2Vs ZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBpbnQgX2V4Y2hhbmdlKHNl bGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXBsYWNlIGBgc2VsZi5iYXNpcygpIHdpdGggYGBzZWxmLmJhc2lzKCkgLSB4ICsgeWBgLiBJbnRl cm5hbCBtZXRob2QsIGRvZXMgbm8gY2hlY2tzLgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVm IGxvbmcgcCA9IHNlbGYuX3Byb3dbeF0KKyAgICAgICAgIHNlbGYuX0EucGl2b3QocCwgeSkgICAj IE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgc2VsZi5fcHJvd1t5XSA9IHAK Ky0gICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9fZXhjaGFuZ2Uoc2VsZiwgeCwgeSkKKysg ICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9leGNoYW5nZShzZWxmLCB4LCB5KQorIAorICAg ICBjZGVmICBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCBDLCBsb25nIHgp OgorICAgICAgICAgciIiIgorQEAgLTUxNDMsMTggKzUxNDMsMTggQEAgY2RlZiBjbGFzcyBRdWF0 ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgYml0 c2V0X3VuaW9uKEMsICg8UXVhdGVybmFyeU1hdHJpeD5zZWxmLl9BKS5fTTBbc2VsZi5fcHJvd1t4 XV0sICg8UXVhdGVybmFyeU1hdHJpeD5zZWxmLl9BKS5fTTFbc2VsZi5fcHJvd1t4XV0pCisgCist ICAgIGNkZWYgX19jb2Nsb3N1cmUoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0X3QgRik6CisrICAg IGNkZWYgX2NvY2xvc3VyZV9pbnRlcm5hbChzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKToK KyAgICAgICAgICIiIgorICAgICAgICAgQml0cGFja2VkIHZlcnNpb24gb2YgYGBjb2Nsb3N1cmVg YC4KKyAKKy0gICAgICAgIFRoaXMgZnVuY3Rpb24gb3ZlcnJpZGVzIHRoZSBpbnRlcm5hbCBmdW5j dGlvbiBCYXNpc0V4Y2hhbmdlTWF0cm9pZC5fX2NvY2xvc3VyZSgpIG9mIHRoZSBwYXJlbnQgY2xh c3MuCisrICAgICAgICBUaGlzIGZ1bmN0aW9uIG92ZXJyaWRlcyB0aGUgaW50ZXJuYWwgZnVuY3Rp b24gQmFzaXNFeGNoYW5nZU1hdHJvaWQuX2NvY2xvc3VyZV9pbnRlcm5hbCgpIG9mIHRoZSBwYXJl bnQgY2xhc3MuCisgICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIGJlIG1vcmUgZWZm aWNpZW50IGZvciBRdWF0ZXJuYXJ5TWF0cm9pZCwgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaW4gdGhp cyBjbGFzcywKKyAgICAgICAgIF9fZnVuZGFtZW50YWxfY29jaXJjdWl0IGlzIG11Y2ggZmFzdGVy IHRoYW4gX19mdW5kYW1lbnRhbF9jaXJjdWl0LgorICAgICAgICAgIiIiCisgICAgICAgICBiaXRz ZXRfY29tcGxlbWVudChSLCBGKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5faW5z aWRlLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBSKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uo c2VsZi5fb3V0c2lkZSwgUiwgc2VsZi5fY3VycmVudF9iYXNpcykKKy0gICAgICAgIHNlbGYuX19t b3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKysgICAgICAgIHNlbGYuX21vdmUoc2Vs Zi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorIAorICAgICAgICAgYml0c2V0X2NvcHkoUiwgRikK KyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVudF9i YXNpcywgRikKK0BAIC01MTY2LDcgKzUxNjYsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRy b2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgICAgICBiaXRzZXRfYWRkKFIsIHkpCisg ICAgICAgICAgICAgeSA9IGJpdHNldF9uZXh0KHNlbGYuX2luc2lkZSwgeSArIDEpCisgCistICAg IGNkZWYgIF9fZXhjaGFuZ2VfdmFsdWUoc2VsZiwgbG9uZyB4LCBsb25nIHkpOgorKyAgICBjZGVm ICBfZXhjaGFuZ2VfdmFsdWVfaW50ZXJuYWwoc2VsZiwgbG9uZyB4LCBsb25nIHkpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSAoeCwgeSkgZW50cnkgb2YgdGhlIGN1cnJlbnQg cmVwcmVzZW50YXRpb24uCisgICAgICAgICAiIiIKK0BAIC01NTg5LDcgKzU1ODksNyBAQCBjZGVm IGNsYXNzIFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgIGZv ciBlIGluIHNlbGYuYmFzaXMoKToKKyAgICAgICAgICAgICAgICAgYmFzaXNbc2VsZi5fcHJvd1tz ZWxmLl9pZHhbZV1dXSA9IGUKKyAgICAgICAgICAgICBOID0gUXVhdGVybmFyeU1hdHJvaWQoZ3Jv dW5kc2V0PXNlbGYuX0UsIG1hdHJpeD1zZWxmLl9BLCBiYXNpcz1iYXNpcykKKy0gICAgICAgIE4u cmVuYW1lKGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIE4ucmVuYW1l KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYg X19kZWVwY29weV9fKHNlbGYsIG1lbW8pOgorQEAgLTU2MTQsNyArNTYxNCw3IEBAIGNkZWYgY2xh c3MgUXVhdGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgZm9yIGUg aW4gc2VsZi5iYXNpcygpOgorICAgICAgICAgICAgICAgICBiYXNpc1tzZWxmLl9wcm93W3NlbGYu X2lkeFtlXV1dID0gZQorICAgICAgICAgICAgIE4gPSBRdWF0ZXJuYXJ5TWF0cm9pZChncm91bmRz ZXQ9ZGVlcGNvcHkoc2VsZi5fRSwgbWVtbyksIG1hdHJpeD1kZWVwY29weShzZWxmLl9BLCBtZW1v KSwgYmFzaXM9ZGVlcGNvcHkoYmFzaXMsIG1lbW8pKQorLSAgICAgICAgTi5yZW5hbWUoZGVlcGNv cHkoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpLCBtZW1vKSkKKysgICAgICAgIE4ucmVu YW1lKGRlZXBjb3B5KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCksIG1lbW8pKQorICAgICAgICAgcmV0 dXJuIE4KKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CitAQCAtNTY3Miw3ICs1NjcyLDcg QEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAg ICAgICBBID0gc2VsZi5fQQorICAgICAgICAgICAgICMgY3VycmVudCBiYXNpcyBvcmRlcmVkIHNv IG1hdHJpeCBjb2xzIGZvcm0gaWRlbnRpdHkgbWF0cml4OgorICAgICAgICAgICAgIGJhc2lzID0g c2VsZi5fY3VycmVudF9yb3dzX2NvbHMoKVswXQorLSAgICAgICAgZGF0YSA9IChBLCBncywgYmFz aXMsIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIGRhdGEgPSAoQSwg Z3MsIGJhc2lzLCBzZWxmLmdldF9jdXN0b21fbmFtZSgpKQorICAgICAgICAgcmV0dXJuIHNhZ2Uu bWF0cm9pZHMudW5waWNrbGluZy51bnBpY2tsZV9xdWF0ZXJuYXJ5X21hdHJvaWQsICh2ZXJzaW9u LCBkYXRhKQorIAorICMgUmVndWxhciBNYXRyb2lkcworQEAgLTU4MzgsMTMgKzU4MzgsMTMgQEAg Y2RlZiBjbGFzcyBSZWd1bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIDAKKyAKKy0gICAgY2RlZiBiaW50IF9faXNfZXhjaGFuZ2VfcGFpcihz ZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorKyAgICBjZGVmIGJpbnQgX2lzX2V4Y2hh bmdlX3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIENoZWNrIGlmIGBgc2VsZi5iYXNpcygpIC0geCArIHlgYCBpcyBhZ2FpbiBhIGJh c2lzLiBJbnRlcm5hbCBtZXRob2QuCisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAoPFBs dXNNaW51c09uZU1hdHJpeD5zZWxmLl9BKS5pc19ub256ZXJvKHNlbGYuX3Byb3dbeF0sIHNlbGYu X3Byb3dbeV0pCisgCistICAgIGNkZWYgaW50IF9fZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4LCBsb25n IHkpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBpbnQgX2V4Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9u ZyB5KSBleGNlcHQgLTE6CisgICAgICAgICAiIiIKKyAgICAgICAgIFB1dCBlbGVtZW50IGluZGV4 ZWQgYnkgYGB4YGAgaW50byBiYXNpcywgdGFraW5nIG91dCBlbGVtZW50IGBgeWBgLiBBc3N1bXB0 aW9ucyBhcmUgdGhhdCB0aGlzIGlzIGEgdmFsaWQgYmFzaXMgZXhjaGFuZ2UuCisgCitAQCAtNTg2 Nyw5ICs1ODY3LDkgQEAgY2RlZiBjbGFzcyBSZWd1bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToK KyAgICAgICAgICg8UGx1c01pbnVzT25lTWF0cml4PnNlbGYuX0EpLnNldChweCwgcHksIHBpdmkp ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgIHNlbGYuX3Byb3dbeV0g PSBweAorICAgICAgICAgc2VsZi5fcHJvd1t4XSA9IHB5CistICAgICAgICBCYXNpc0V4Y2hhbmdl TWF0cm9pZC5fX2V4Y2hhbmdlKHNlbGYsIHgsIHkpCisrICAgICAgICBCYXNpc0V4Y2hhbmdlTWF0 cm9pZC5fZXhjaGFuZ2Uoc2VsZiwgeCwgeSkKKyAKKy0gICAgY2RlZiAgX19leGNoYW5nZV92YWx1 ZShzZWxmLCBsb25nIHgsIGxvbmcgeSk6CisrICAgIGNkZWYgIF9leGNoYW5nZV92YWx1ZV9pbnRl cm5hbChzZWxmLCBsb25nIHgsIGxvbmcgeSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1 cm4gdGhlICh4LCB5KSBlbnRyeSBvZiB0aGUgY3VycmVudCByZXByZXNlbnRhdGlvbi4KKyAKK0BA IC02NTI0LDcgKzY1MjQsNyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExpbmVhck1hdHJv aWQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByb3dzLCBjb2xzID0gc2VsZi5fY3Vy cmVudF9yb3dzX2NvbHMoKQorICAgICAgICAgICAgIE4gPSBSZWd1bGFyTWF0cm9pZChncm91bmRz ZXQ9cm93cyArIGNvbHMsIHJlZHVjZWRfbWF0cml4PXNlbGYuX0EpCistICAgICAgICBOLnJlbmFt ZShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAgICAgICBOLnJlbmFtZShzZWxm LmdldF9jdXN0b21fbmFtZSgpKQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fZGVl cGNvcHlfXyhzZWxmLCBtZW1vKToKK0BAIC02NTQ0LDcgKzY1NDQsNyBAQCBjZGVmIGNsYXNzIFJl Z3VsYXJNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICByb3dzLCBjb2xzID0gc2VsZi5fY3VycmVudF9yb3dzX2NvbHMoKQorICAgICAgICAgICAgIE4g PSBSZWd1bGFyTWF0cm9pZChncm91bmRzZXQ9ZGVlcGNvcHkocm93cyArIGNvbHMsIG1lbW8pLCBy ZWR1Y2VkX21hdHJpeD1kZWVwY29weShzZWxmLl9BLCBtZW1vKSkKKy0gICAgICAgIE4ucmVuYW1l KGRlZXBjb3B5KGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSwgbWVtbykpCisrICAgICAg ICBOLnJlbmFtZShkZWVwY29weShzZWxmLmdldF9jdXN0b21fbmFtZSgpLCBtZW1vKSkKKyAgICAg ICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorQEAgLTY1OTMsNSAr NjU5Myw1IEBAIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAg ICAgICAgICAgcm93cywgY29scyA9IHNlbGYuX2N1cnJlbnRfcm93c19jb2xzKCkKKyAgICAgICAg ICAgICBncyA9IHJvd3MgKyBjb2xzCisgICAgICAgICAgICAgcmVkdWNlZCA9IFRydWUKKy0gICAg ICAgIGRhdGEgPSAoQSwgZ3MsIHJlZHVjZWQsIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUn KSkKKysgICAgICAgIGRhdGEgPSAoQSwgZ3MsIHJlZHVjZWQsIHNlbGYuZ2V0X2N1c3RvbV9uYW1l KCkpCisgICAgICAgICByZXR1cm4gc2FnZS5tYXRyb2lkcy51bnBpY2tsaW5nLnVucGlja2xlX3Jl Z3VsYXJfbWF0cm9pZCwgKHZlcnNpb24sIGRhdGEpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0 cm9pZHMvbWF0cm9pZC5weGQgYi9zcmMvc2FnZS9tYXRyb2lkcy9tYXRyb2lkLnB4ZAoraW5kZXgg ZmU2YzA3ZTNiNzEuLmU5ZGRmZWM5NmFlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMv bWF0cm9pZC5weGQKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL21hdHJvaWQucHhkCitAQCAtMSw4 ICsxLDcgQEAKKyBmcm9tIHNhZ2Uuc3RydWN0dXJlLnNhZ2Vfb2JqZWN0IGNpbXBvcnQgU2FnZU9i amVjdAorIAorIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKy0gICAgY2RlZiBwdWJs aWMgX19jdXN0b21fbmFtZQorLSAgICBjZGVmIHB1YmxpYyBfY3VzdG9tX25hbWUKKysgICAgY2Rl ZiBwdWJsaWMgX1NhZ2VPYmplY3RfX2N1c3RvbV9uYW1lCisgICAgIGNkZWYgcHVibGljIF9jYWNo ZWRfaW5mbworICAgICBjZGVmIGludCBfc3RvcmVkX2Z1bGxfcmFuaworICAgICBjZGVmIGludCBf c3RvcmVkX3NpemUKK0BAIC0zNyw3ICszNiw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2Jq ZWN0KToKKyAgICAgY3BkZWYgX2xpbmVfbGVuZ3RoKHNlbGYsIEYpCisgICAgIGNwZGVmIF9leHRl bnNpb24oc2VsZiwgZWxlbWVudCwgaHlwZXJwbGFuZXMpCisgCistICAgIGNkZWYgaW5saW5lIF9f c3Vic2V0KHNlbGYsIFgpOgorKyAgICBjZGVmIGlubGluZSBfc3Vic2V0X2ludGVybmFsKHNlbGYs IFgpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb252ZXJ0IGBgWGBgIHRvIGEgYGBmcm96ZW5z ZXRgYCBhbmQgY2hlY2sgdGhhdCBpdCBpcyBhIHN1YnNldAorICAgICAgICAgb2YgdGhlIGdyb3Vu ZHNldC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9tYXRyb2lkLnB5eCBiL3NyYy9z YWdlL21hdHJvaWRzL21hdHJvaWQucHl4CitpbmRleCBkY2VlODdlYTQ5Yy4uOGFjNWVjM2Y2Nzgg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyb2lkcy9tYXRyb2lkLnB5eAorKysrIGIvc3JjL3Nh Z2UvbWF0cm9pZHMvbWF0cm9pZC5weXgKK0BAIC0xMzA3LDcgKzEzMDcsNyBAQCBjZGVmIGNsYXNz IE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgVHlwZUVycm9yOiAnc2FnZS5yaW5n cy5pbnRlZ2VyLkludGVnZXInIG9iamVjdCBpcyBub3QgaXRlcmFibGUKKyAgICAgICAgICIiIgor ICAgICAgICAgIyBDYWxsIGNvcnJlc3BvbmRpbmcgQ3l0aG9uIG1ldGhvZAorLSAgICAgICAgcmV0 dXJuIHNlbGYuX19zdWJzZXQoWCkKKysgICAgICAgIHJldHVybiBzZWxmLl9zdWJzZXRfaW50ZXJu YWwoWCkKKyAKKyAgICAgZGVmIF9zdWJzZXRfYWxsKHNlbGYsIFgpOgorICAgICAgICAgIiIiCitA QCAtMTM3NCw3ICsxMzc0LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAg ICAgICAgIiIiCisgICAgICAgICBpZiBYIGlzIE5vbmU6CisgICAgICAgICAgICAgcmV0dXJuIHNl bGYuZnVsbF9yYW5rKCkKKy0gICAgICAgIHJldHVybiBzZWxmLl9yYW5rKHNlbGYuX19zdWJzZXQo WCkpCisrICAgICAgICByZXR1cm4gc2VsZi5fcmFuayhzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkp CisgCisgICAgIGNwZGVmIGZ1bGxfcmFuayhzZWxmKToKKyAgICAgICAgIHIiIiIKK0BAIC0xNDUz LDcgKzE0NTMsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAg ICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogWyd4J10gaXMgbm90IGEgc3Vic2V0IG9m IHRoZSBncm91bmRzZXQKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX21heF9p bmRlcGVuZGVudChzZWxmLl9fc3Vic2V0KFgpKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX21heF9p bmRlcGVuZGVudChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGNpcmN1 aXQoc2VsZiwgWD1Ob25lKToKKyAgICAgICAgICIiIgorQEAgLTE1NTgsNyArMTU1OCw3IEBAIGNk ZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAuLi4KKyAgICAgICAg ICAgICBWYWx1ZUVycm9yOiBbJ3gnXSBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAor ICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fY2xvc3VyZShzZWxmLl9fc3Vic2V0 KFgpKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX2Nsb3N1cmUoc2VsZi5fc3Vic2V0X2ludGVybmFs KFgpKQorIAorICAgICBjcGRlZiBrX2Nsb3N1cmUoc2VsZiwgWCwgayk6CisgICAgICAgICByIiIi CitAQCAtMTU5Nyw3ICsxNTk3LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgor ICAgICAgICAgICAgIHNhZ2U6IHNvcnRlZChNLmtfY2xvc3VyZSh7MCwxfSwgNCkpCisgICAgICAg ICAgICAgWzAsIDEsIDRdCisgICAgICAgICAiIiIKKy0gICAgICAgIFggPSBzZWxmLl9fc3Vic2V0 KFgpCisrICAgICAgICBYID0gc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpCisgICAgICAgICBjZGVm IGludCBjdXIKKyAgICAgICAgIGNkZWYgZnJvemVuc2V0IFMsIGNsCisgICAgICAgICBjdXIgPSAw CitAQCAtMTY0NCw3ICsxNjQ0LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgor ICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6IFsneCddIGlzIG5vdCBh IHN1YnNldCBvZiB0aGUgZ3JvdW5kc2V0CisgICAgICAgICAiIiIKKy0gICAgICAgIFggPSBzZWxm Ll9fc3Vic2V0KFgpCisrICAgICAgICBYID0gc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpCisgICAg ICAgICBZID0gc2VsZi5fX3N1YnNldF9hbGwoWSkKKyAgICAgICAgIHJldHVybiBzZWxmLl9hdWdt ZW50KFgsIFkuZGlmZmVyZW5jZShYKSkKKyAKK0BAIC0xNzgxLDcgKzE3ODEsNyBAQCBjZGVmIGNs YXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAg VmFsdWVFcnJvcjogWyd4J10gaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQKKyAgICAg ICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX21heF9jb2luZGVwZW5kZW50KHNlbGYuX19z dWJzZXQoWCkpCisrICAgICAgICByZXR1cm4gc2VsZi5fbWF4X2NvaW5kZXBlbmRlbnQoc2VsZi5f c3Vic2V0X2ludGVybmFsKFgpKQorIAorICAgICBjcGRlZiBjb2Nsb3N1cmUoc2VsZiwgWCk6Cisg ICAgICAgICAiIiIKK0BAIC0xODEzLDcgKzE4MTMsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2Fn ZU9iamVjdCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogWyd4 J10gaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQKKyAgICAgICAgICIiIgorLSAgICAg ICAgcmV0dXJuIHNlbGYuX2NvY2xvc3VyZShzZWxmLl9fc3Vic2V0KFgpKQorKyAgICAgICAgcmV0 dXJuIHNlbGYuX2NvY2xvc3VyZShzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNw ZGVmIGNvY2lyY3VpdChzZWxmLCBYPU5vbmUpOgorICAgICAgICAgIiIiCitAQCAtMTk0Nyw3ICsx OTQ3LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4u LgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6ICdhYmN4JyBpcyBub3QgYSBzdWJzZXQgb2YgdGhl IGdyb3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5faXNfaW5kZXBl bmRlbnQoc2VsZi5fX3N1YnNldChYKSkKKysgICAgICAgIHJldHVybiBzZWxmLl9pc19pbmRlcGVu ZGVudChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGlzX2RlcGVuZGVu dChzZWxmLCBYKToKKyAgICAgICAgIHIiIiIKK0BAIC0xOTczLDcgKzE5NzMsNyBAQCBjZGVmIGNs YXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAg VmFsdWVFcnJvcjogJ2FiY3gnIGlzIG5vdCBhIHN1YnNldCBvZiB0aGUgZ3JvdW5kc2V0CisgICAg ICAgICAiIiIKKy0gICAgICAgIHJldHVybiBub3Qgc2VsZi5faXNfaW5kZXBlbmRlbnQoc2VsZi5f X3N1YnNldChYKSkKKysgICAgICAgIHJldHVybiBub3Qgc2VsZi5faXNfaW5kZXBlbmRlbnQoc2Vs Zi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAorICAgICBjcGRlZiBpc19iYXNpcyhzZWxmLCBYKToK KyAgICAgICAgIHIiIiIKK0BAIC0xOTk5LDcgKzE5OTksNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQo U2FnZU9iamVjdCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjog J2FiY3gnIGlzIG5vdCBhIHN1YnNldCBvZiB0aGUgZ3JvdW5kc2V0CisgICAgICAgICAiIiIKKy0g ICAgICAgIFggPSBzZWxmLl9fc3Vic2V0KFgpCisrICAgICAgICBYID0gc2VsZi5fc3Vic2V0X2lu dGVybmFsKFgpCisgICAgICAgICBpZiBsZW4oWCkgIT0gc2VsZi5mdWxsX3JhbmsoKToKKyAgICAg ICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBzZWxmLl9pc19iYXNpcyhYKQor QEAgLTIwMzUsNyArMjAzNSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAg ICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICBWYWx1ZUVycm9yOiAnYWJjeCcgaXMgbm90IGEg c3Vic2V0IG9mIHRoZSBncm91bmRzZXQKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNl bGYuX2lzX2Nsb3NlZChzZWxmLl9fc3Vic2V0KFgpKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX2lz X2Nsb3NlZChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGlzX3N1YnNl dF9rX2Nsb3NlZChzZWxmLCBYLCBpbnQgayk6CisgICAgICAgICByIiIiCitAQCAtMjExOCw3ICsy MTE4LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4u LgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6ICdhYmN4JyBpcyBub3QgYSBzdWJzZXQgb2YgdGhl IGdyb3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5faXNfY2lyY3Vp dChzZWxmLl9fc3Vic2V0KFgpKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2NpcmN1aXQoc2Vs Zi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAorICAgICBjcGRlZiBjb2xvb3BzKHNlbGYpOgorICAg ICAgICAgciIiIgorQEAgLTIxNzgsNyArMjE3OCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdl T2JqZWN0KToKKyAgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICBWYWx1ZUVycm9yOiAnYWJj eCcgaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQKKyAgICAgICAgICIiIgorLSAgICAg ICAgcmV0dXJuIHNlbGYuX2lzX2NvaW5kZXBlbmRlbnQoc2VsZi5fX3N1YnNldChYKSkKKysgICAg ICAgIHJldHVybiBzZWxmLl9pc19jb2luZGVwZW5kZW50KHNlbGYuX3N1YnNldF9pbnRlcm5hbChY KSkKKyAKKyAgICAgY3BkZWYgaXNfY29kZXBlbmRlbnQoc2VsZiwgWCk6CisgICAgICAgICByIiIi CitAQCAtMjIxMSw3ICsyMjExLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgor ICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6ICdhYmN4JyBpcyBub3Qg YSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4g bm90IHNlbGYuX2lzX2NvaW5kZXBlbmRlbnQoc2VsZi5fX3N1YnNldChYKSkKKysgICAgICAgIHJl dHVybiBub3Qgc2VsZi5faXNfY29pbmRlcGVuZGVudChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkp CisgCisgICAgIGNwZGVmIGlzX2NvYmFzaXMoc2VsZiwgWCk6CisgICAgICAgICByIiIiCitAQCAt MjI0NSw3ICsyMjQ1LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAg ICAgICAgIC4uLgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6ICdhYmN4JyBpcyBub3QgYSBzdWJz ZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICBYID0gc2VsZi5fX3N1 YnNldChYKQorKyAgICAgICAgWCA9IHNlbGYuX3N1YnNldF9pbnRlcm5hbChYKQorICAgICAgICAg aWYgbGVuKFgpICE9IHNlbGYuZnVsbF9jb3JhbmsoKToKKyAgICAgICAgICAgICByZXR1cm4gRmFs c2UKKyAgICAgICAgIHJldHVybiBzZWxmLl9pc19jb2Jhc2lzKFgpCitAQCAtMjI4Miw3ICsyMjgy LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4uLgor ICAgICAgICAgICAgIFZhbHVlRXJyb3I6ICdhYmN4JyBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdy b3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5faXNfY29jaXJjdWl0 KHNlbGYuX19zdWJzZXQoWCkpCisrICAgICAgICByZXR1cm4gc2VsZi5faXNfY29jaXJjdWl0KHNl bGYuX3N1YnNldF9pbnRlcm5hbChYKSkKKyAKKyAgICAgY3BkZWYgaXNfY29jbG9zZWQoc2VsZiwg WCk6CisgICAgICAgICByIiIiCitAQCAtMjMxNSw3ICsyMzE1LDcgQEAgY2RlZiBjbGFzcyBNYXRy b2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFZhbHVlRXJy b3I6ICdhYmN4JyBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIi CistICAgICAgICByZXR1cm4gc2VsZi5faXNfY29jbG9zZWQoc2VsZi5fX3N1YnNldChYKSkKKysg ICAgICAgIHJldHVybiBzZWxmLl9pc19jb2Nsb3NlZChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkp CisgCisgICAgICMgdmVyaWZpY2F0aW9uCisgCitAQCAtNDg2OCwxMCArNDg2OCwxMCBAQCBjZGVm IGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgc2FnZTogTS5jb25uZWN0 aXZpdHkoJ2FiJywgJ2NkJykKKyAgICAgICAgICAgICAyCisgICAgICAgICAiIiIKKy0gICAgICAg IFMgPSBzZWxmLl9fc3Vic2V0KFMpCisrICAgICAgICBTID0gc2VsZi5fc3Vic2V0X2ludGVybmFs KFMpCisgICAgICAgICBpZiBUIGlzIE5vbmU6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Jh bmsoUykgKyBzZWxmLl9yYW5rKHNlbGYuZ3JvdW5kc2V0KCktUykgLSBzZWxmLmZ1bGxfcmFuaygp CistICAgICAgICBUID0gc2VsZi5fX3N1YnNldChUKQorKyAgICAgICAgVCA9IHNlbGYuX3N1YnNl dF9pbnRlcm5hbChUKQorICAgICAgICAgaWYgUy5pbnRlcnNlY3Rpb24oVCk6CisgICAgICAgICAg ICAgcmFpc2UgVmFsdWVFcnJvcigiUyBhbmQgVCBhcmUgbm90IGRpc2pvaW50IikKKyAgICAgICAg IHJldHVybiBsZW4oc2VsZi5fbGluayhTLCBUKVswXSkgLSBzZWxmLmZ1bGxfcmFuaygpICsgc2Vs Zi5fcmFuayhTKSArIHNlbGYuX3JhbmsoVCkKK0BAIC00OTU2LDggKzQ5NTYsOCBAQCBjZGVmIGNs YXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgc2FnZTogTi5jb25uZWN0aXZp dHkoUykKKyAgICAgICAgICAgICAyCisgICAgICAgICAiIiIKKy0gICAgICAgIFMgPSBzZWxmLl9f c3Vic2V0KFMpCistICAgICAgICBUID0gc2VsZi5fX3N1YnNldChUKQorKyAgICAgICAgUyA9IHNl bGYuX3N1YnNldF9pbnRlcm5hbChTKQorKyAgICAgICAgVCA9IHNlbGYuX3N1YnNldF9pbnRlcm5h bChUKQorICAgICAgICAgaWYgbm90IFMuaXNkaXNqb2ludChUKToKKyAgICAgICAgICAgICByYWlz ZSBWYWx1ZUVycm9yKCJTIGFuZCBUIGFyZSBub3QgZGlzam9pbnQiKQorICAgICAgICAgcmV0dXJu IHNlbGYuX2xpbmsoUywgVCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9taW5vcl9t YXRyb2lkLnB5IGIvc3JjL3NhZ2UvbWF0cm9pZHMvbWlub3JfbWF0cm9pZC5weQoraW5kZXggYzBl NzU2OTE3ZjUuLjk4ODU2MzQ4YWMxIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvbWlu b3JfbWF0cm9pZC5weQorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvbWlub3JfbWF0cm9pZC5weQor QEAgLTQ4Niw4ICs0ODYsNyBAQCBkZWYgX19jb3B5X18oc2VsZik6CisgICAgICAgICAgICAgVHJ1 ZQorICAgICAgICAgIiIiCisgICAgICAgICBOID0gTWlub3JNYXRyb2lkKHNlbGYuX21hdHJvaWQs IHNlbGYuX2NvbnRyYWN0aW9ucywgc2VsZi5fZGVsZXRpb25zKQorLSAgICAgICAgaWYgZ2V0YXR0 cihzZWxmLCAnX19jdXN0b21fbmFtZScpIGlzIG5vdCBOb25lOiAgIyBiZWNhdXNlIG9mIG5hbWUg d3JhbmdsaW5nLCB0aGlzIGlzIG5vdCBjYXVnaHQgYnkgdGhlIGRlZmF1bHQgY29weQorLSAgICAg ICAgICAgIE4ucmVuYW1lKGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAg IE4ucmVuYW1lKHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1cm4gTgorIAor ICAgICBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW89e30pOgorQEAgLTUxMiw4ICs1MTEsNyBA QCBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW89e30pOgorICAgICAgICAgZnJvbSBjb3B5IGlt cG9ydCBkZWVwY29weQorICAgICAgICAgIyBTaW5jZSBtYXRyb2lkcyBhcmUgaW1tdXRhYmxlLCBO IGNhbm5vdCByZWZlcmVuY2UgaXRzZWxmIGluIGNvcnJlY3QgY29kZSwgc28gbm8gbmVlZCB0byB3 b3JyeSBhYm91dCB0aGUgcmVjdXJzaW9uLgorICAgICAgICAgTiA9IE1pbm9yTWF0cm9pZChkZWVw Y29weShzZWxmLl9tYXRyb2lkLCBtZW1vKSwgZGVlcGNvcHkoc2VsZi5fY29udHJhY3Rpb25zLCBt ZW1vKSwgZGVlcGNvcHkoc2VsZi5fZGVsZXRpb25zLCBtZW1vKSkKKy0gICAgICAgIGlmIGdldGF0 dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSBpcyBub3QgTm9uZTogICMgYmVjYXVzZSBvZiBuYW1l IHdyYW5nbGluZywgdGhpcyBpcyBub3QgY2F1Z2h0IGJ5IHRoZSBkZWZhdWx0IGRlZXBjb3B5Cist ICAgICAgICAgICAgTi5yZW5hbWUoZGVlcGNvcHkoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFt ZScpLCBtZW1vKSkKKysgICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KHNlbGYuZ2V0X2N1c3RvbV9u YW1lKCksIG1lbW8pKQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fcmVkdWNlX18o c2VsZik6CitAQCAtNTM0LDYgKzUzMiw2IEBAIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAg ICAgICAgICA0OiB7eydhJywgJ2InLCAnYycsICdkJywgJ2UnLCAnZicsICdnJywgJ2gnfX19Cisg ICAgICAgICAiIiIKKyAgICAgICAgIGltcG9ydCBzYWdlLm1hdHJvaWRzLnVucGlja2xpbmcKKy0g ICAgICAgIGRhdGEgPSAoc2VsZi5fbWF0cm9pZCwgc2VsZi5fY29udHJhY3Rpb25zLCBzZWxmLl9k ZWxldGlvbnMsIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIGRhdGEg PSAoc2VsZi5fbWF0cm9pZCwgc2VsZi5fY29udHJhY3Rpb25zLCBzZWxmLl9kZWxldGlvbnMsIHNl bGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICB2ZXJzaW9uID0gMAorICAgICAgICAgcmV0 dXJuIHNhZ2UubWF0cm9pZHMudW5waWNrbGluZy51bnBpY2tsZV9taW5vcl9tYXRyb2lkLCAodmVy c2lvbiwgZGF0YSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9yYW5rX21hdHJvaWQu cHkgYi9zcmMvc2FnZS9tYXRyb2lkcy9yYW5rX21hdHJvaWQucHkKK2luZGV4IDQ2MzNmZjBhNzky Li42YzRlOTQ3MGFkYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL3JhbmtfbWF0cm9p ZC5weQorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvcmFua19tYXRyb2lkLnB5CitAQCAtMjY3LDkg KzI2Nyw3IEBAIGRlZiBfX2NvcHlfXyhzZWxmKToKKyAgICAgICAgIE4gPSBSYW5rTWF0cm9pZChn cm91bmRzZXQ9W10sIHJhbmtfZnVuY3Rpb249Tm9uZSkKKyAgICAgICAgIE4uX2dyb3VuZHNldCA9 IHNlbGYuX2dyb3VuZHNldAorICAgICAgICAgTi5fcmFua19mdW5jdGlvbiA9IHNlbGYuX3Jhbmtf ZnVuY3Rpb24KKy0gICAgICAgIGlmIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSBpcyBu b3QgTm9uZToKKy0gICAgICAgICAgICAjIGJlY2F1c2Ugb2YgbmFtZSB3cmFuZ2xpbmcsIHRoaXMg aXMgbm90IGNhdWdodCBieSB0aGUgZGVmYXVsdCBjb3B5CistICAgICAgICAgICAgTi5yZW5hbWUo Z2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAgTi5yZW5hbWUoc2VsZi5n ZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX2RlZXBj b3B5X18oc2VsZiwgbWVtbz17fSk6CitAQCAtMjkzLDggKzI5MSw3IEBAIGRlZiBfX2RlZXBjb3B5 X18oc2VsZiwgbWVtbz17fSk6CisgICAgICAgICBmcm9tIGNvcHkgaW1wb3J0IGRlZXBjb3B5Cisg ICAgICAgICAjIFNpbmNlIG1hdHJvaWRzIGFyZSBpbW11dGFibGUsIE4gY2Fubm90IHJlZmVyZW5j ZSBpdHNlbGYgaW4gY29ycmVjdCBjb2RlLCBzbyBubyBuZWVkIHRvIHdvcnJ5IGFib3V0IHRoZSBy ZWN1cnNpb24uCisgICAgICAgICBOID0gUmFua01hdHJvaWQoZ3JvdW5kc2V0PWRlZXBjb3B5KHNl bGYuX2dyb3VuZHNldCksIHJhbmtfZnVuY3Rpb249ZGVlcGNvcHkoc2VsZi5fcmFua19mdW5jdGlv bikpCistICAgICAgICBpZiBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykgaXMgbm90IE5v bmU6ICAjIGJlY2F1c2Ugb2YgbmFtZSB3cmFuZ2xpbmcsIHRoaXMgaXMgbm90IGNhdWdodCBieSB0 aGUgZGVmYXVsdCBkZWVwY29weQorLSAgICAgICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KGdldGF0 dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSwgbWVtbykpCisrICAgICAgICBOLnJlbmFtZShkZWVw Y29weShzZWxmLmdldF9jdXN0b21fbmFtZSgpLCBtZW1vKSkKKyAgICAgICAgIHJldHVybiBOCisg CisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2Mv Y2FjaGVmdW5jLnB4ZCBiL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB4ZAoraW5kZXggZDNjYzY3 N2RlY2UuLjhlNWQ5ZGZhNDJhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMu cHhkCisrKysgYi9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5weGQKK0BAIC01LDcgKzUsNyBAQCBj cGRlZiBjYWNoZV9rZXkobykKKyAKKyBjZGVmIGNsYXNzIENhY2hlZEZ1bmN0aW9uKCk6CisgICAg IGNkZWYgcHVibGljIHN0ciBfX25hbWVfXworLSAgICBjZGVmIHB1YmxpYyBzdHIgX19tb2R1bGVf XworKyAgICBjZGVmIHB1YmxpYyBzdHIgX19jYWNoZWRfbW9kdWxlX18KKyAgICAgY2RlZiBBcmd1 bWVudEZpeGVyIF9hcmd1bWVudF9maXhlcgorICAgICBjZGVmIHB1YmxpYyBmCisgICAgIGNkZWYg cHVibGljIGNhY2hlICAjIG5vdCBhbHdheXMgb2YgdHlwZSA8ZGljdD4KK0BAIC0yMCw3ICsyMCw3 IEBAIGNkZWYgY2xhc3MgQ2FjaGVkRnVuY3Rpb24oKToKKyBjZGVmIGNsYXNzIENhY2hlZE1ldGhv ZCgpOgorICAgICBjZGVmIHN0ciBfY2FjaGVfbmFtZQorICAgICBjZGVmIHB1YmxpYyBzdHIgX19u YW1lX18KKy0gICAgY2RlZiBwdWJsaWMgc3RyIF9fbW9kdWxlX18KKysgICAgY2RlZiBwdWJsaWMg c3RyIF9fY2FjaGVkX21vZHVsZV9fCisgICAgIGNkZWYgQ2FjaGVkRnVuY3Rpb24gX2NhY2hlZGZ1 bmMKKyAgICAgY2RlZiBQeV9zc2l6ZV90IG5hcmdzCisgICAgIGNwZGVmIF9nZXRfaW5zdGFuY2Vf Y2FjaGUoc2VsZiwgaW5zdCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5w eXggYi9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5weXgKK2luZGV4IGEzMDdjMzNlMzJiLi44YWEz MGE4NTI3MiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB5eAorKysrIGIv c3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHl4CitAQCAtNjAsNyArNjAsNyBAQCBiZSB1c2VkOjoK KyAKKyBXZSBjYW4gcHJvY2VlZCBzaW1pbGFybHkgZm9yIGNhY2hlZCBtZXRob2RzIG9mIEN5dGhv biBjbGFzc2VzLAorIHByb3ZpZGVkIHRoYXQgdGhleSBhbGxvdyBhdHRyaWJ1dGUgYXNzaWdubWVu dCBvciBoYXZlIGEgcHVibGljCistYXR0cmlidXRlIGBgX19jYWNoZWRfbWV0aG9kc2BgIG9mIHR5 cGUgYGA8ZGljdD5gYC4gU2luY2UKKythdHRyaWJ1dGUgYGBfY2FjaGVkX21ldGhvZHNgYCBvZiB0 eXBlIGBgPGRpY3Q+YGAuIFNpbmNlCisgOnRyYWM6YDExMTE1YCwgdGhpcyBpcyB0aGUgY2FzZSBm b3IgYWxsIGNsYXNzZXMgaW5oZXJpdGluZyBmcm9tCisgOmNsYXNzOmB+c2FnZS5zdHJ1Y3R1cmUu cGFyZW50LlBhcmVudGAuIFNlZSBiZWxvdyBmb3IgYSBtb3JlIGV4cGxpY2l0CisgZXhhbXBsZS4g QnkgOnRyYWM6YDEyOTUxYCwgY2FjaGVkIG1ldGhvZHMgb2YgZXh0ZW5zaW9uIGNsYXNzZXMgY2Fu CitAQCAtMzAxLDE0ICszMDEsMTQgQEAgb3VnaHQgdG8gYmUgY2hvc2VuLiBBIHR5cGljYWwgZXhh bXBsZSBpcworIAorIEJ5IDp0cmFjOmAxMjk1MWAsIHRoZSBjYWNoZWRfbWV0aG9kIGRlY29yYXRv ciBpcyBhbHNvIHN1cHBvcnRlZCBvbiBub24tYyhwKWRlZgorIG1ldGhvZHMgb2YgZXh0ZW5zaW9u IGNsYXNzZXMsIGFzIGxvbmcgYXMgdGhleSBlaXRoZXIgc3VwcG9ydCBhdHRyaWJ1dGUgYXNzaWdu bWVudAorLW9yIGhhdmUgYSBwdWJsaWMgYXR0cmlidXRlIG9mIHR5cGUgYGA8ZGljdD5gYCBjYWxs ZWQgYGBfX2NhY2hlZF9tZXRob2RzYGAuIFRoZQorK29yIGhhdmUgYSBwdWJsaWMgYXR0cmlidXRl IG9mIHR5cGUgYGA8ZGljdD5gYCBjYWxsZWQgYGBfY2FjaGVkX21ldGhvZHNgYC4gVGhlCisgbGF0 dGVyIGlzIGVhc3k6OgorIAorICAgICBzYWdlOiAjIG5lZWRzIHNhZ2UubWlzYy5jeXRob24KKyAg ICAgc2FnZTogY3l0aG9uX2NvZGUgPSBbCisgICAgIC4uLi46ICJmcm9tIHNhZ2UubWlzYy5jYWNo ZWZ1bmMgaW1wb3J0IGNhY2hlZF9tZXRob2QiLAorICAgICAuLi4uOiAiY2RlZiBjbGFzcyBNeUNs YXNzOiIsCistICAgIC4uLi46ICIgICAgY2RlZiBwdWJsaWMgZGljdCBfX2NhY2hlZF9tZXRob2Rz IiwKKysgICAgLi4uLjogIiAgICBjZGVmIHB1YmxpYyBkaWN0IF9jYWNoZWRfbWV0aG9kcyIsCisg ICAgIC4uLi46ICIgICAgQGNhY2hlZF9tZXRob2QiLAorICAgICAuLi4uOiAiICAgIGRlZiBmKHNl bGYsIGEsYik6IiwKKyAgICAgLi4uLjogIiAgICAgICAgcmV0dXJuIGEqYiJdCitAQCAtNzc0LDEz ICs3NzQsMTcgQEAgY2RlZiBjbGFzcyBDYWNoZWRGdW5jdGlvbigpOgorICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICBzZWxmLl9fbmFtZV9fID0gZi5fX25hbWVfXworICAgICAgICAgdHJ5Ogor LSAgICAgICAgICAgIHNlbGYuX19tb2R1bGVfXyA9IGYuX19tb2R1bGVfXworKyAgICAgICAgICAg IHNlbGYuX19jYWNoZWRfbW9kdWxlX18gPSBmLl9fbW9kdWxlX18KKyAgICAgICAgIGV4Y2VwdCBB dHRyaWJ1dGVFcnJvcjoKKy0gICAgICAgICAgICBzZWxmLl9fbW9kdWxlX18gPSBmLl9fb2JqY2xh c3NfXy5fX21vZHVsZV9fCisrICAgICAgICAgICAgc2VsZi5fX2NhY2hlZF9tb2R1bGVfXyA9IGYu X19vYmpjbGFzc19fLl9fbW9kdWxlX18KKyAgICAgICAgIGlmIGFyZ3VtZW50X2ZpeGVyIGlzIG5v dCBOb25lOiAjIGl0IGlzIE5vbmUgdW5sZXNzIHRoZSBhcmd1bWVudCBmaXhlcgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgd2FzIGtub3duIHByZXZpb3VzbHkuIFNl ZSAjMTUwMzguCisgICAgICAgICAgICAgc2VsZi5fYXJndW1lbnRfZml4ZXIgPSBhcmd1bWVudF9m aXhlcgorIAorKyAgICBAcHJvcGVydHkKKysgICAgZGVmIF9fbW9kdWxlX18oc2VsZik6CisrICAg ICAgICByZXR1cm4gc2VsZi5fX2NhY2hlZF9tb2R1bGVfXworKworICAgICBjZGVmIGdldF9rZXlf YXJnc19rd2RzKHNlbGYsIHR1cGxlIGFyZ3MsIGRpY3Qga3dkcyk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUga2V5IGluIHRoZSBjYWNoZSB0byBiZSB1c2VkIHdoZW4gYGBhcmdz YGAgYW5kCitAQCAtODQxLDcgKzg0NSw3IEBAIGNkZWYgY2xhc3MgQ2FjaGVkRnVuY3Rpb24oKToK KyAgICAgICAgICAgICBzYWdlOiBsb2FkcyhkdW1wcyhoaWxiZXJ0X2NsYXNzX3BvbHlub21pYWwp KSBpcyBoaWxiZXJ0X2NsYXNzX3BvbHlub21pYWwgICNpbmRpcmVjdCBkb2N0ZXN0ICAgICAgICAg ICAgICAgICAjIG5lZWRzIHNhZ2Uuc2NoZW1lcworICAgICAgICAgICAgIFRydWUKKyAgICAgICAg ICIiIgorLSAgICAgICAgcmV0dXJuIF9jYWNoZWRfZnVuY3Rpb25fdW5waWNrbGUsIChzZWxmLl9f bW9kdWxlX18sIHNlbGYuX19uYW1lX18sIHNlbGYuY2FjaGUpCisrICAgICAgICByZXR1cm4gX2Nh Y2hlZF9mdW5jdGlvbl91bnBpY2tsZSwgKHNlbGYuX19jYWNoZWRfbW9kdWxlX18sIHNlbGYuX19u YW1lX18sIHNlbGYuY2FjaGUpCisgCisgICAgICMjIyMjIyMjIworICAgICAjIyBJbnRyb3NwZWN0 aW9uCitAQCAtMjAxOSw3ICsyMDIzLDcgQEAgY2RlZiBjbGFzcyBDYWNoZWRNZXRob2RDYWxsZXIo Q2FjaGVkRnVuY3Rpb24pOgorICAgICAgICAgVGhpcyBnZXR0ZXIgYXR0ZW1wdHMgdG8gYXNzaWdu IGEgYm91bmQgbWV0aG9kIGFzIGFuCisgICAgICAgICBhdHRyaWJ1dGUgdG8gdGhlIGdpdmVuIGlu c3RhbmNlLiBJZiB0aGlzIGlzIG5vdAorICAgICAgICAgcG9zc2libGUgKGZvciBleGFtcGxlLCBm b3Igc29tZSBleHRlbnNpb24gY2xhc3NlcyksCistICAgICAgICBpdCBpcyBhdHRlbXB0ZWQgdG8g ZmluZCBhbiBhdHRyaWJ1dGUgYGBfX2NhY2hlZF9tZXRob2RzYGAsCisrICAgICAgICBpdCBpcyBh dHRlbXB0ZWQgdG8gZmluZCBhbiBhdHRyaWJ1dGUgYGBfY2FjaGVkX21ldGhvZHNgYCwKKyAgICAg ICAgIGFuZCBzdG9yZS9yZXRyaWV2ZSB0aGUgYm91bmQgbWV0aG9kIHRoZXJlLiBJbiB0aGF0Cisg ICAgICAgICB3YXksIGNhY2hlZCBtZXRob2RzIGNhbiBiZSBpbXBsZW1lbnRlZCBmb3IgZXh0ZW5z aW9uCisgICAgICAgICBjbGFzc2VzIGRlcml2aW5nIGZyb20gOmNsYXNzOmB+c2FnZS5zdHJ1Y3R1 cmUucGFyZW50LlBhcmVudGAKK0BAIC0yMDg1LDcgKzIwODksNyBAQCBjZGVmIGNsYXNzIENhY2hl ZE1ldGhvZENhbGxlcihDYWNoZWRGdW5jdGlvbik6CisgICAgICAgICAiIiIKKyAgICAgICAgICMg VGhpcyBpcyBmb3IgUGFyZW50cyBvciBFbGVtZW50cyB0aGF0IGRvIG5vdCBhbGxvdyBhdHRyaWJ1 dGUgYXNzaWdubWVudAorICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgIHJldHVybiAoPGRpY3Q+ aW5zdC5fX2NhY2hlZF9tZXRob2RzKVtzZWxmLl9jYWNoZWRtZXRob2QuX2NhY2hlZGZ1bmMuX19u YW1lX19dCisrICAgICAgICAgICAgcmV0dXJuICg8ZGljdD5pbnN0Ll9jYWNoZWRfbWV0aG9kcylb c2VsZi5fY2FjaGVkbWV0aG9kLl9jYWNoZWRmdW5jLl9fbmFtZV9fXQorICAgICAgICAgZXhjZXB0 IChBdHRyaWJ1dGVFcnJvciwgVHlwZUVycm9yLCBLZXlFcnJvcik6CisgICAgICAgICAgICAgcGFz cworIAorQEAgLTIxMDAsMTAgKzIxMDQsMTAgQEAgY2RlZiBjbGFzcyBDYWNoZWRNZXRob2RDYWxs ZXIoQ2FjaGVkRnVuY3Rpb24pOgorICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAg ICAgICAgICAgIHBhc3MKKyAgICAgICAgIHRyeToKKy0gICAgICAgICAgICBpZiBpbnN0Ll9fY2Fj aGVkX21ldGhvZHMgaXMgTm9uZToKKy0gICAgICAgICAgICAgICAgaW5zdC5fX2NhY2hlZF9tZXRo b2RzID0ge3NlbGYuX2NhY2hlZG1ldGhvZC5fY2FjaGVkZnVuYy5fX25hbWVfXyA6IENhbGxlcn0K KysgICAgICAgICAgICBpZiBpbnN0Ll9jYWNoZWRfbWV0aG9kcyBpcyBOb25lOgorKyAgICAgICAg ICAgICAgICBpbnN0Ll9jYWNoZWRfbWV0aG9kcyA9IHtzZWxmLl9jYWNoZWRtZXRob2QuX2NhY2hl ZGZ1bmMuX19uYW1lX18gOiBDYWxsZXJ9CisgICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAg ICAgICAgKDxkaWN0Pmluc3QuX19jYWNoZWRfbWV0aG9kcylbc2VsZi5fY2FjaGVkbWV0aG9kLl9j YWNoZWRmdW5jLl9fbmFtZV9fXSA9IENhbGxlcgorKyAgICAgICAgICAgICAgICAoPGRpY3Q+aW5z dC5fY2FjaGVkX21ldGhvZHMpW3NlbGYuX2NhY2hlZG1ldGhvZC5fY2FjaGVkZnVuYy5fX25hbWVf X10gPSBDYWxsZXIKKyAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAg ICBwYXNzCisgICAgICAgICByZXR1cm4gQ2FsbGVyCitAQCAtMjQyMSw3ICsyNDI1LDcgQEAgY2Rl ZiBjbGFzcyBDYWNoZWRNZXRob2RDYWxsZXJOb0FyZ3MoQ2FjaGVkRnVuY3Rpb24pOgorICAgICAg ICAgVGhpcyBnZXR0ZXIgYXR0ZW1wdHMgdG8gYXNzaWduIGEgYm91bmQgbWV0aG9kIGFzIGFuCisg ICAgICAgICBhdHRyaWJ1dGUgdG8gdGhlIGdpdmVuIGluc3RhbmNlLiBJZiB0aGlzIGlzIG5vdAor ICAgICAgICAgcG9zc2libGUgKGZvciBleGFtcGxlLCBmb3Igc29tZSBleHRlbnNpb24gY2xhc3Nl cyksCistICAgICAgICBpdCBpcyBhdHRlbXB0ZWQgdG8gZmluZCBhbiBhdHRyaWJ1dGUgYGBfX2Nh Y2hlZF9tZXRob2RzYGAsCisrICAgICAgICBpdCBpcyBhdHRlbXB0ZWQgdG8gZmluZCBhbiBhdHRy aWJ1dGUgYGBfY2FjaGVkX21ldGhvZHNgYCwKKyAgICAgICAgIGFuZCBzdG9yZS9yZXRyaWV2ZSB0 aGUgYm91bmQgbWV0aG9kIHRoZXJlLiBJbiB0aGF0CisgICAgICAgICB3YXksIGNhY2hlZCBtZXRo b2RzIGNhbiBiZSBpbXBsZW1lbnRlZCBmb3IgZXh0ZW5zaW9uCisgICAgICAgICBjbGFzc2VzIGRl cml2aW5nIGZyb20gOmNsYXNzOmB+c2FnZS5zdHJ1Y3R1cmUucGFyZW50LlBhcmVudGAKK0BAIC0y NDcyLDcgKzI0NzYsNyBAQCBjZGVmIGNsYXNzIENhY2hlZE1ldGhvZENhbGxlck5vQXJncyhDYWNo ZWRGdW5jdGlvbik6CisgICAgICAgICAiIiIKKyAgICAgICAgICMgVGhpcyBpcyBmb3IgUGFyZW50 cyBvciBFbGVtZW50cyB0aGF0IGRvIG5vdCBhbGxvdyBhdHRyaWJ1dGUgYXNzaWdubWVudAorICAg ICAgICAgdHJ5OgorLSAgICAgICAgICAgIHJldHVybiAoPGRpY3Q+aW5zdC5fX2NhY2hlZF9tZXRo b2RzKVtzZWxmLl9fbmFtZV9fXQorKyAgICAgICAgICAgIHJldHVybiAoPGRpY3Q+aW5zdC5fY2Fj aGVkX21ldGhvZHMpW3NlbGYuX19uYW1lX19dCisgICAgICAgICBleGNlcHQgKEF0dHJpYnV0ZUVy cm9yLCBUeXBlRXJyb3IsIEtleUVycm9yKToKKyAgICAgICAgICAgICBwYXNzCisgICAgICAgICBD YWxsZXIgPSBDYWNoZWRNZXRob2RDYWxsZXJOb0FyZ3MoaW5zdCwgc2VsZi5mLCBuYW1lPXNlbGYu X19uYW1lX18sIGRvX3BpY2tsZT1zZWxmLmRvX3BpY2tsZSkKK0BAIC0yNDgyLDEwICsyNDg2LDEw IEBAIGNkZWYgY2xhc3MgQ2FjaGVkTWV0aG9kQ2FsbGVyTm9BcmdzKENhY2hlZEZ1bmN0aW9uKToK KyAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICBwYXNzCisgICAg ICAgICB0cnk6CistICAgICAgICAgICAgaWYgaW5zdC5fX2NhY2hlZF9tZXRob2RzIGlzIE5vbmU6 CistICAgICAgICAgICAgICAgIGluc3QuX19jYWNoZWRfbWV0aG9kcyA9IHtzZWxmLl9fbmFtZV9f IDogQ2FsbGVyfQorKyAgICAgICAgICAgIGlmIGluc3QuX2NhY2hlZF9tZXRob2RzIGlzIE5vbmU6 CisrICAgICAgICAgICAgICAgIGluc3QuX2NhY2hlZF9tZXRob2RzID0ge3NlbGYuX19uYW1lX18g OiBDYWxsZXJ9CisgICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAgICAgKDxkaWN0Pmlu c3QuX19jYWNoZWRfbWV0aG9kcylbc2VsZi5fX25hbWVfX10gPSBDYWxsZXIKKysgICAgICAgICAg ICAgICAgKDxkaWN0Pmluc3QuX2NhY2hlZF9tZXRob2RzKVtzZWxmLl9fbmFtZV9fXSA9IENhbGxl cgorICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgIHBhc3MKKyAg ICAgICAgIHJldHVybiBDYWxsZXIKK0BAIC0yNjk4LDcgKzI3MDIsMTEgQEAgY2RlZiBjbGFzcyBD YWNoZWRNZXRob2QoKToKKyAgICAgICAgIHNlbGYuX2NhY2hlX25hbWUgPSAnX2NhY2hlX18nICsg KG5hbWUgb3IgZi5fX25hbWVfXykKKyAgICAgICAgIHNlbGYuX2NhY2hlZGZ1bmMgPSBDYWNoZWRG dW5jdGlvbihmLCBjbGFzc21ldGhvZD1UcnVlLCBuYW1lPW5hbWUsIGtleT1rZXksIGRvX3BpY2ts ZT1kb19waWNrbGUpCisgICAgICAgICBzZWxmLl9fbmFtZV9fID0gc2VsZi5fY2FjaGVkZnVuYy5f X25hbWVfXworLSAgICAgICAgc2VsZi5fX21vZHVsZV9fID0gc2VsZi5fY2FjaGVkZnVuYy5fX21v ZHVsZV9fCisrICAgICAgICBzZWxmLl9fY2FjaGVkX21vZHVsZV9fID0gc2VsZi5fY2FjaGVkZnVu Yy5fX21vZHVsZV9fCisrCisrICAgIEBwcm9wZXJ0eQorKyAgICBkZWYgX19tb2R1bGVfXyhzZWxm KToKKysgICAgICAgIHJldHVybiBzZWxmLl9fY2FjaGVkX21vZHVsZV9fCisgCisgICAgIGRlZiBf X2NhbGxfXyhzZWxmLCBpbnN0LCAqYXJncywgKiprd2RzKToKKyAgICAgICAgICIiIgorQEAgLTI4 MjgsNyArMjgzNiw3IEBAIGNkZWYgY2xhc3MgQ2FjaGVkTWV0aG9kKCk6CisgICAgICAgICBleGNl cHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgbmFtZSA9IHNlbGYuX19uYW1lX18KKyAg ICAgICAgIHRyeToKKy0gICAgICAgICAgICByZXR1cm4gKDxkaWN0Pmluc3QuX19jYWNoZWRfbWV0 aG9kcylbbmFtZV0KKysgICAgICAgICAgICByZXR1cm4gKDxkaWN0Pmluc3QuX2NhY2hlZF9tZXRo b2RzKVtuYW1lXQorICAgICAgICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgVHlwZUVycm9yLCBL ZXlFcnJvcik6CisgICAgICAgICAgICAgcGFzcworICAgICAgICAgIyBBcHBhcmVudGx5IHdlIG5l ZWQgdG8gY29uc3RydWN0IHRoZSBjYWxsZXIuCitAQCAtMjg0MCw4ICsyODQ4LDYgQEAgY2RlZiBj bGFzcyBDYWNoZWRNZXRob2QoKToKKyAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg ICAgICAgICAgaWYgTUVUSF9OT0FSR1MmUHlDRnVuY3Rpb25fR2V0RmxhZ3MoZi5fX2dldF9fKGlu c3QsY2xzKSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5uYXJncyA9IDEKKy0gICAg ICAgICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5uYXJn cyA9IDIKKyAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAg ICAgICAgIHBhc3MKKyAgICAgICAgICAgICBpZiBzZWxmLm5hcmdzID09IDA6CitAQCAtMjg2NCwx MCArMjg3MCwxMCBAQCBjZGVmIGNsYXNzIENhY2hlZE1ldGhvZCgpOgorICAgICAgICAgZXhjZXB0 IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIHRyeToKKy0gICAg ICAgICAgICBpZiBpbnN0Ll9fY2FjaGVkX21ldGhvZHMgaXMgTm9uZToKKy0gICAgICAgICAgICAg ICAgaW5zdC5fX2NhY2hlZF9tZXRob2RzID0ge25hbWUgOiBDYWxsZXJ9CisrICAgICAgICAgICAg aWYgaW5zdC5fY2FjaGVkX21ldGhvZHMgaXMgTm9uZToKKysgICAgICAgICAgICAgICAgaW5zdC5f Y2FjaGVkX21ldGhvZHMgPSB7bmFtZSA6IENhbGxlcn0KKyAgICAgICAgICAgICBlbHNlOgorLSAg ICAgICAgICAgICAgICAoPGRpY3Q+aW5zdC5fX2NhY2hlZF9tZXRob2RzKVtuYW1lXSA9IENhbGxl cgorKyAgICAgICAgICAgICAgICAoPGRpY3Q+aW5zdC5fY2FjaGVkX21ldGhvZHMpW25hbWVdID0g Q2FsbGVyCisgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgcGFz cworICAgICAgICAgcmV0dXJuIENhbGxlcgorQEAgLTI5NjUsMTIgKzI5NzEsMTIgQEAgY2RlZiBj bGFzcyBDYWNoZWRTcGVjaWFsTWV0aG9kKENhY2hlZE1ldGhvZCk6CisgICAgICAgICAgICAgICAg IEQgPSBpbnN0Ll9fZGljdF9fCisgICAgICAgICAgICAgZXhjZXB0IChUeXBlRXJyb3IsIEF0dHJp YnV0ZUVycm9yKToKKyAgICAgICAgICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgICAgICAgICAg RCA9IGluc3QuX19jYWNoZWRfbWV0aG9kcworKyAgICAgICAgICAgICAgICAgICAgRCA9IGluc3Qu X2NhY2hlZF9tZXRob2RzCisgICAgICAgICAgICAgICAgIGV4Y2VwdCAoVHlwZUVycm9yLCBBdHRy aWJ1dGVFcnJvcik6CistICAgICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIkZvciBh IGNhY2hlZCBzcGVjaWFsIG1ldGhvZCwgZWl0aGVyIGF0dHJpYnV0ZSBhc3NpZ25tZW50IG9yIGEg cHVibGljICdfX2NhY2hlZF9tZXRob2RzJyBhdHRyaWJ1dGUgb2YgdHlwZSA8ZGljdD4gaXMgbmVl ZGVkIikKKysgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiRm9yIGEgY2FjaGVk IHNwZWNpYWwgbWV0aG9kLCBlaXRoZXIgYXR0cmlidXRlIGFzc2lnbm1lbnQgb3IgYSBwdWJsaWMg J19jYWNoZWRfbWV0aG9kcycgYXR0cmlidXRlIG9mIHR5cGUgPGRpY3Q+IGlzIG5lZWRlZCIpCisg ICAgICAgICAgICAgaWYgRCBpcyBOb25lOgorLSAgICAgICAgICAgICAgICAjIFRoaXMgY2FuIG9u bHkgaGFwcGVuIGluIHRoZSBjYXNlIG9mIF9fY2FjaGVkX21ldGhvZHMKKy0gICAgICAgICAgICAg ICAgRCA9IGluc3QuX19jYWNoZWRfbWV0aG9kcyA9IHt9CisrICAgICAgICAgICAgICAgICMgVGhp cyBjYW4gb25seSBoYXBwZW4gaW4gdGhlIGNhc2Ugb2YgX2NhY2hlZF9tZXRob2RzCisrICAgICAg ICAgICAgICAgIEQgPSBpbnN0Ll9jYWNoZWRfbWV0aG9kcyA9IHt9CisgICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERb bmFtZV0KK0BAIC0zMjk4LDEzICszMzA0LDEzIEBAIGNkZWYgY2xhc3MgQ2FjaGVkSW5QYXJlbnRN ZXRob2QoQ2FjaGVkTWV0aG9kKToKKyAgICAgICAgICAgICByZXR1cm4gUC5fX2RpY3RfXy5zZXRk ZWZhdWx0KHNlbGYuX2NhY2hlX25hbWUsIGRlZmF1bHQpCisgICAgICAgICBleGNlcHQgQXR0cmli dXRlRXJyb3I6CisgICAgICAgICAgICAgcGFzcworLSAgICAgICAgaWYgbm90IGhhc2F0dHIoUCwn X19jYWNoZWRfbWV0aG9kcycpOgorKyAgICAgICAgaWYgbm90IGhhc2F0dHIoUCwnX2NhY2hlZF9t ZXRob2RzJyk6CisgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJUaGUgcGFyZW50IG9mIHRo aXMgZWxlbWVudCBkb2VzIG5vdCBhbGxvdyBhdHRyaWJ1dGUgYXNzaWdubWVudFxuIiArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgYW5kIGRvZXMgbm90IGRlc2NlbmQgZnJvbSB0 aGUgUGFyZW50IGJhc2UgY2xhc3MuXG4iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IiAgICBDYW5ub3QgdXNlIENhY2hlZEluUGFyZW50TWV0aG9kLiIpCistICAgICAgICBpZiBQLl9f Y2FjaGVkX21ldGhvZHMgaXMgTm9uZToKKy0gICAgICAgICAgICBQLl9fY2FjaGVkX21ldGhvZHMg PSB7fQorLSAgICAgICAgcmV0dXJuICg8ZGljdD5QLl9fY2FjaGVkX21ldGhvZHMpLnNldGRlZmF1 bHQoc2VsZi5fY2FjaGVfbmFtZSwgZGVmYXVsdCkKKysgICAgICAgIGlmIFAuX2NhY2hlZF9tZXRo b2RzIGlzIE5vbmU6CisrICAgICAgICAgICAgUC5fY2FjaGVkX21ldGhvZHMgPSB7fQorKyAgICAg ICAgcmV0dXJuICg8ZGljdD5QLl9jYWNoZWRfbWV0aG9kcykuc2V0ZGVmYXVsdChzZWxmLl9jYWNo ZV9uYW1lLCBkZWZhdWx0KQorIAorICAgICBkZWYgX19nZXRfXyhzZWxmLCBpbnN0LCBjbHMpOgor ICAgICAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9jeXRob24ucHkgYi9zcmMv c2FnZS9taXNjL2N5dGhvbi5weQoraW5kZXggZjQwODNmMzkwOWIuLjVmODNmNTg1YzNhIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9jeXRob24ucHkKKysrKyBiL3NyYy9zYWdlL21pc2MvY3l0 aG9uLnB5CitAQCAtNjQ2LDkgKzY0Niw5IEBAIGRlZiBjb21waWxlX2FuZF9sb2FkKGNvZGUsICoq a3dkcyk6CisgICAgICAgICAuLi4uOiAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50 IHJlcyA9IGYuX25ldygpCisgICAgICAgICAuLi4uOiAgICAgY2RlZiB1bnNpZ25lZCBsb25nIGsK KyAgICAgICAgIC4uLi46ICAgICBjZGVmIFJhdGlvbmFsIHogPSBSYXRpb25hbCgwKQorLSAgICAg ICAgLi4uLjogICAgIGZvciBrIGluIHJhbmdlKGZtcHFfcG9seV9sZW5ndGgoZi5fX3BvbHkpKToK Ky0gICAgICAgIC4uLi46ICAgICAgICAgZm1wcV9wb2x5X2dldF9jb2VmZl9tcHEoei52YWx1ZSwg Zi5fX3BvbHksIGspCistICAgICAgICAuLi4uOiAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZf bXBxKHJlcy5fX3BvbHksIG4qaywgei52YWx1ZSkKKysgICAgICAgIC4uLi46ICAgICBmb3IgayBp biByYW5nZShmbXBxX3BvbHlfbGVuZ3RoKGYuX3BvbHkpKToKKysgICAgICAgIC4uLi46ICAgICAg ICAgZm1wcV9wb2x5X2dldF9jb2VmZl9tcHEoei52YWx1ZSwgZi5fcG9seSwgaykKKysgICAgICAg IC4uLi46ICAgICAgICAgZm1wcV9wb2x5X3NldF9jb2VmZl9tcHEocmVzLl9wb2x5LCBuKmssIHou dmFsdWUpCisgICAgICAgICAuLi4uOiAgICAgcmV0dXJuIHJlcworICAgICAgICAgLi4uLjogJycn CisgICAgICAgICBzYWdlOiBtb2R1bGUgPSBjb21waWxlX2FuZF9sb2FkKGNvZGUpICAjIGxvbmcg dGltZQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvZnBpY2tsZS5weXggYi9zcmMvc2FnZS9t aXNjL2ZwaWNrbGUucHl4CitpbmRleCA5ZjgwYThmMzFhYS4uMzdjMjZlNDMxYmEgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9taXNjL2ZwaWNrbGUucHl4CisrKysgYi9zcmMvc2FnZS9taXNjL2ZwaWNr bGUucHl4CitAQCAtMTI0LDEwICsxMjQsMTIgQEAgZGVmIGNhbGxfcGlja2xlZF9mdW5jdGlvbihm cGFyZ3MpOgorIGRlZiBwaWNrbGVNZXRob2QobWV0aG9kKToKKyAgICAgJ3N1cHBvcnQgZnVuY3Rp b24gZm9yIGNvcHlyZWcgdG8gcGlja2xlIG1ldGhvZCByZWZzJworIAorLSAgICAjIE5vdGU6IE9u IFB5dGhvbiAzIHRoZXJlIGlzIG5vIC5pbV9jbGFzcyBidXQgd2UgY2FuIGdldCB0aGUgaW5zdGFu Y2UncworLSAgICAjIGNsYXNzIHRocm91Z2ggLl9fc2VsZl9fLl9fY2xhc3NfXworLSAgICBjbHMg PSBnZXRhdHRyKG1ldGhvZCwgJ2ltX2NsYXNzJywgbWV0aG9kLl9fc2VsZl9fLl9fY2xhc3NfXykK Ky0gICAgcmV0dXJuICh1bnBpY2tsZU1ldGhvZCwgKG1ldGhvZC5fX2Z1bmNfXy5fX25hbWVfXywg bWV0aG9kLl9fc2VsZl9fLCBjbHMpKQorKyAgICBpZiBpc2luc3RhbmNlKG1ldGhvZC5fX3NlbGZf XywgdHlwZSk6CisrICAgICAgICAjIFRoaXMgaXMgYSBjbGFzcyBtZXRob2QsIHNvIGdldCBpdCBm cm9tIHRoZSB0eXBlIGRpcmVjdGx5CisrICAgICAgICByZXR1cm4gKGdldGF0dHIsIChtZXRob2Qu X19zZWxmX18sIG1ldGhvZC5fX2Z1bmNfXy5fX25hbWVfXykpCisrICAgIGVsc2U6CisrICAgICAg ICBjbHMgPSBtZXRob2QuX19zZWxmX18uX19jbGFzc19fCisrICAgICAgICByZXR1cm4gKHVucGlj a2xlTWV0aG9kLCAobWV0aG9kLl9fZnVuY19fLl9fbmFtZV9fLCBtZXRob2QuX19zZWxmX18sIGNs cykpCisgCisgCisgZGVmIHVucGlja2xlTWV0aG9kKGltX25hbWUsCitAQCAtMTM5LDEwICsxNDEs NyBAQCBkZWYgdW5waWNrbGVNZXRob2QoaW1fbmFtZSwKKyAgICAgICAgIGlmIF9fc2VsZl9fIGlz IE5vbmU6CisgICAgICAgICAgICAgcmV0dXJuIHVuYm91bmQKKyAKKy0gICAgICAgICMgTm90ZTog T24gUHl0aG9uIDIgInVuYm91bmQgbWV0aG9kcyIgYXJlIGp1c3QgZnVuY3Rpb25zLCBzbyB0aGV5 IGRvbid0CistICAgICAgICAjIGhhdmUgYSBfX2Z1bmNfXworLSAgICAgICAgYm91bmQgPSB0eXBl cy5NZXRob2RUeXBlKGdldGF0dHIodW5ib3VuZCwgJ19fZnVuY19fJywgdW5ib3VuZCksCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19zZWxmX18pCisrICAgICAgICBib3VuZCA9 IHR5cGVzLk1ldGhvZFR5cGUodW5ib3VuZCwgX19zZWxmX18pCisgICAgICAgICByZXR1cm4gYm91 bmQKKyAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgYXNzZXJ0IF9fc2VsZl9f IGlzIG5vdCBOb25lLCAiTm8gcmVjb3Vyc2U6IG5vIGluc3RhbmNlIHRvIGd1ZXNzIGZyb20uIgor QEAgLTE1MCwxMSArMTQ5LDggQEAgZGVmIHVucGlja2xlTWV0aG9kKGltX25hbWUsCisgICAgICAg ICAjIGNoYW5nZWQgYXJvdW5kIHNpbmNlIHdlIHBpY2tsZWQgdGhpcyBtZXRob2QsIHdlIG1heSBz dGlsbCBiZQorICAgICAgICAgIyBhYmxlIHRvIGdldCBpdCBieSBsb29raW5nIG9uIHRoZSBpbnN0 YW5jZSdzIGN1cnJlbnQgY2xhc3MuCisgICAgICAgICB1bmJvdW5kID0gZ2V0YXR0cihfX3NlbGZf Xy5fX2NsYXNzX18sIGltX25hbWUpCistICAgICAgICBpZiBfX3NlbGZfXyBpcyBOb25lOgorLSAg ICAgICAgICAgIHJldHVybiB1bmJvdW5kCisgCistICAgICAgICBib3VuZCA9IHR5cGVzLk1ldGhv ZFR5cGUoZ2V0YXR0cih1bmJvdW5kLCAnX19mdW5jX18nLCB1bmJvdW5kKSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfX3NlbGZfXykKKysgICAgICAgIGJvdW5kID0gdHlwZXMu TWV0aG9kVHlwZSh1bmJvdW5kLCBfX3NlbGZfXykKKyAgICAgICAgIHJldHVybiBib3VuZAorIAor IAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvaW5oZXJpdF9jb21wYXJpc29uLnB5eCBiL3Ny Yy9zYWdlL21pc2MvaW5oZXJpdF9jb21wYXJpc29uLnB5eAoraW5kZXggZjA0NmY1ZmI4Y2UuLmFh OTdmNjY0NDk2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9pbmhlcml0X2NvbXBhcmlzb24u cHl4CisrKysgYi9zcmMvc2FnZS9taXNjL2luaGVyaXRfY29tcGFyaXNvbi5weXgKK0BAIC01NCw2 ICs1NCw4IEBAIGNkZWYgY2xhc3MgSW5oZXJpdENvbXBhcmlzb25NZXRhY2xhc3ModHlwZSk6Cisg ICAgICAgICBzYWdlOiAjIG5lZWRzIHNhZ2UubWlzYy5jeXRob24KKyAgICAgICAgIHNhZ2U6IGN5 dGhvbigKKyAgICAgICAgIC4uLi46ICcnJworKyAgICAgICAgLi4uLjogY2ltcG9ydCBjeXRob24K KysgICAgICAgIC4uLi46CisgICAgICAgICAuLi4uOiBmcm9tIHNhZ2UubWlzYy5pbmhlcml0X2Nv bXBhcmlzb24gY2ltcG9ydCBJbmhlcml0Q29tcGFyaXNvbk1ldGFjbGFzcworICAgICAgICAgLi4u LjoKKyAgICAgICAgIC4uLi46IGNkZWYgY2xhc3MgQmFzZSgpOgorQEAgLTY2LDYgKzY4LDcgQEAg Y2RlZiBjbGFzcyBJbmhlcml0Q29tcGFyaXNvbk1ldGFjbGFzcyh0eXBlKToKKyAgICAgICAgIC4u Li46ICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgIC4uLi46CisgICAgICAgICAuLi4uOiBjZGVm IGNsYXNzIERlcml2ZWRXaXRoUmljaGNtcChCYXNlKToKKysgICAgICAgIC4uLi46ICAgICBAY3l0 aG9uLmFsd2F5c19hbGxvd19rZXl3b3JkcyhGYWxzZSkKKyAgICAgICAgIC4uLi46ICAgICBkZWYg X19nZXRtZXRhY2xhc3NfXyhfKToKKyAgICAgICAgIC4uLi46ICAgICAgICAgZnJvbSBzYWdlLm1p c2MuaW5oZXJpdF9jb21wYXJpc29uIGltcG9ydCBJbmhlcml0Q29tcGFyaXNvbk1ldGFjbGFzcwor ICAgICAgICAgLi4uLjogICAgICAgICByZXR1cm4gSW5oZXJpdENvbXBhcmlzb25NZXRhY2xhc3MK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2xhenlfYXR0cmlidXRlLnB5eCBiL3NyYy9zYWdl L21pc2MvbGF6eV9hdHRyaWJ1dGUucHl4CitpbmRleCA4MmEwZjkwYjc3NS4uYmRiZWMzYjNiYTEg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2xhenlfYXR0cmlidXRlLnB5eAorKysrIGIvc3Jj L3NhZ2UvbWlzYy9sYXp5X2F0dHJpYnV0ZS5weXgKK0BAIC0xMTEsMTIgKzExMSwxMiBAQCBjZGVm IGNsYXNzIF9sYXp5X2F0dHJpYnV0ZSgpOgorICAgICAgICAgaWYgYSBpcyBOb25lOiAjIHdoZW4g ZG9pbmcgY2xzLnggZm9yIGNscyBhIGNsYXNzIGFuZCB4IGEgbGF6eSBhdHRyaWJ1dGUKKyAgICAg ICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgICMgX19jYWNo ZWRfbWV0aG9kcyBpcyBzdXBwb3NlZCB0byBiZSBhIHB1YmxpYyBDeXRob24gYXR0cmlidXRlLgor KyAgICAgICAgICAgICMgX2NhY2hlZF9tZXRob2RzIGlzIHN1cHBvc2VkIHRvIGJlIGEgcHVibGlj IEN5dGhvbiBhdHRyaWJ1dGUuCisgICAgICAgICAgICAgIyBBcHBhcmVudGx5LCB0aGVzZSBhcmUg Km5vdCogc3ViamVjdCB0byBuYW1lIG1hbmdsaW5nLgorLSAgICAgICAgICAgIENNID0gZ2V0YXR0 cihhLCAnX19jYWNoZWRfbWV0aG9kcycpCisrICAgICAgICAgICAgQ00gPSBnZXRhdHRyKGEsICdf Y2FjaGVkX21ldGhvZHMnKQorICAgICAgICAgICAgIGlmIENNIGlzIE5vbmU6CisgICAgICAgICAg ICAgICAgIENNID0ge30KKy0gICAgICAgICAgICAgICAgc2V0YXR0cihhLCAnX19jYWNoZWRfbWV0 aG9kcycsIENNKQorKyAgICAgICAgICAgICAgICBzZXRhdHRyKGEsICdfY2FjaGVkX21ldGhvZHMn LCBDTSkKKyAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvciBhcyBtc2c6CisgICAgICAgICAg ICAgQ00gPSBOb25lCisgICAgICAgICBpZiBDTSBpcyBub3QgTm9uZToKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9taXNjL2xhenlfbGlzdC5weXggYi9zcmMvc2FnZS9taXNjL2xhenlfbGlzdC5weXgK K2luZGV4IGMxZmEwMjUwYTk1Li5iYTYyYzQ0NmI2OSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21p c2MvbGF6eV9saXN0LnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9sYXp5X2xpc3QucHl4CitAQCAt MTA1OSw3ICsxMDU5LDExIEBAIGNkZWYgY2xhc3MgbGF6eV9saXN0X2Zyb21fZnVuY3Rpb24obGF6 eV9saXN0X2dlbmVyaWMpOgorICAgICAgICAgICAgIHN0ZXAgICAgICAgICAxCisgICAgICAgICAi IiIKKyAgICAgICAgIHdoaWxlIGxlbihzZWxmLmNhY2hlKSA8PSBpOgorLSAgICAgICAgICAgIHNl bGYuY2FjaGUuYXBwZW5kKHNlbGYuY2FsbGFibGUobGVuKHNlbGYuY2FjaGUpKSkKKysgICAgICAg ICAgICB0cnk6CisrICAgICAgICAgICAgICAgIHZhbHVlID0gc2VsZi5jYWxsYWJsZShsZW4oc2Vs Zi5jYWNoZSkpCisrICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisrICAgICAgICAg ICAgICAgIHJldHVybiAxCisrICAgICAgICAgICAgc2VsZi5jYWNoZS5hcHBlbmQodmFsdWUpCisg CisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICAgciIiIgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL21pc2Mvc2FnZWluc3BlY3QucHkgYi9zcmMvc2FnZS9taXNjL3NhZ2VpbnNwZWN0 LnB5CitpbmRleCAzZGQwY2MwYTQ1Yi4uY2U1ZTk5ODcwMjcgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9taXNjL3NhZ2VpbnNwZWN0LnB5CisrKysgYi9zcmMvc2FnZS9taXNjL3NhZ2VpbnNwZWN0LnB5 CitAQCAtMjI0LDcgKzIyNCwxMSBAQCBkZWYgaXNjbGFzc2luc3RhbmNlKG9iaik6CisgICAgIHJl dHVybiAobm90IGluc3BlY3QuaXNjbGFzcyhvYmopIGFuZAorICAgICAgICAgICAgIGhhc2F0dHIo b2JqLCAnX19jbGFzc19fJykgYW5kCisgICAgICAgICAgICAgaGFzYXR0cihvYmouX19jbGFzc19f LCAnX19tb2R1bGVfXycpIGFuZAorLSAgICAgICAgICAgIG9iai5fX2NsYXNzX18uX19tb2R1bGVf XyBub3QgaW4gYnVpbHRpbl9tb2RzKQorKyAgICAgICAgICAgIG9iai5fX2NsYXNzX18uX19tb2R1 bGVfXyBub3QgaW4gYnVpbHRpbl9tb2RzIGFuZAorKyAgICAgICAgICAgICMgU3RhcnRpbmcgd2l0 aCBDeXRob24gMywgQ3l0aG9uJ3MgYnVpbHRpbiB0eXBlcyBoYXZlIF9fbW9kdWxlX18gc2V0Cisr ICAgICAgICAgICAgIyB0byB0aGUgc2hhcmVkIG1vZHVsZSBuYW1lcyBsaWtlIF9jeXRob25fM18w XzAuCisrICAgICAgICAgICAgbm90IChpc2luc3RhbmNlKG9iai5fX2NsYXNzX18uX19tb2R1bGVf Xywgc3RyKSBhbmQKKysgICAgICAgICAgICAgICAgIG9iai5fX2NsYXNzX18uX19tb2R1bGVfXy5z dGFydHN3aXRoKCdfY3l0aG9uXycpKSkKKyAKKyAKKyAjIFBhcnNlIHN0cmluZ3Mgb2YgZm9ybSAi RmlsZTogc2FnZS9yaW5ncy9yYXRpb25hbC5weXggKHN0YXJ0aW5nIGF0IGxpbmUgMTA4MCkiCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9zZXNzaW9uLnB5eCBiL3NyYy9zYWdlL21pc2Mvc2Vz c2lvbi5weXgKK2luZGV4IGRlNjQ5ZjgwNDI1Li4zMTQ1NGRhYzk5MyAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL21pc2Mvc2Vzc2lvbi5weXgKKysrKyBiL3NyYy9zYWdlL21pc2Mvc2Vzc2lvbi5weXgK K0BAIC04MCw2ICs4MCw4IEBAIGZyb20gc2FnZS5taXNjLnBlcnNpc3QgaW1wb3J0IGxvYWQsIHNh dmUsIGxvYWRzLCBkdW1wcworIAorIHN0YXRlX2F0X2luaXQgPSBOb25lCisgCisrQ3l0aG9uRnVu Y3Rpb25UeXBlID0gdHlwZShsYW1iZGE6IE5vbmUpCisrCisgZGVmIGluaXQoc3RhdGU9Tm9uZSk6 CisgICAgICIiIgorICAgICBJbml0aWFsaXplIHNvbWUgZGljdGlvbmFyaWVzIG5lZWRlZCBieSB0 aGUgOmZ1bmM6YHNob3dfaWRlbnRpZmllcnNgLAorQEAgLTMxMSw3ICszMTMsNyBAQCBkZWYgc2F2 ZV9zZXNzaW9uKG5hbWU9J3NhZ2Vfc2Vzc2lvbicsIHZlcmJvc2U9RmFsc2UpOgorICAgICBmb3Ig ayBpbiBzaG93X2lkZW50aWZpZXJzKGhpZGRlbiA9IFRydWUpOgorICAgICAgICAgdHJ5OgorICAg ICAgICAgICAgIHggPSBzdGF0ZVtrXQorLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoeCwgKHR5 cGVzLkZ1bmN0aW9uVHlwZSwgdHlwZXMuQnVpbHRpbkZ1bmN0aW9uVHlwZSwgdHlwZXMuQnVpbHRp bk1ldGhvZFR5cGUsIHR5cGUpKToKKysgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHgsICh0eXBl cy5GdW5jdGlvblR5cGUsIHR5cGVzLkJ1aWx0aW5GdW5jdGlvblR5cGUsIHR5cGVzLkJ1aWx0aW5N ZXRob2RUeXBlLCBDeXRob25GdW5jdGlvblR5cGUsIHR5cGUpKToKKyAgICAgICAgICAgICAgICAg cmFpc2UgVHlwZUVycm9yKCd7fSBpcyBhIGZ1bmN0aW9uLCBtZXRob2QsIGNsYXNzIG9yIHR5cGUn LmZvcm1hdChrKSkKKyAKKyAgICAgICAgICAgICAjIFdlIGF0dGVtcHQgdG8gcGlja2xlICphbmQq IHVucGlja2xlIGV2ZXJ5IHZhcmlhYmxlIHRvCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxh ci9tb2RzeW0vcDFsaXN0LnB4ZCBiL3NyYy9zYWdlL21vZHVsYXIvbW9kc3ltL3AxbGlzdC5weGQK K2luZGV4IGNjMjRhMzMxMzliLi5iNjZmMjhiOGFkNiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21v ZHVsYXIvbW9kc3ltL3AxbGlzdC5weGQKKysrKyBiL3NyYy9zYWdlL21vZHVsYXIvbW9kc3ltL3Ax bGlzdC5weGQKK0BAIC0yMSw3ICsyMSw3IEBAIGNkZWYgY2xhc3MgUDFMaXN0OgorICAgICAjIEhl cmUgd2UgdXNlIGEgcG9pbnRlciB0byBhIGZ1bmN0aW9uLCBzbyB0aGUgaWYgbG9naWMKKyAgICAg IyBmb3Igbm9ybWFsaXppbmcgYW4gZWxlbWVudCBkb2VzIG5vdCBuZWVkIHRvIGJlIHVzZWQKKyAg ICAgIyBldmVyeSB0aW1lIHRoZSB1c2VyIGNhbGxzIHRoZSBub3JtYWxpemUgZnVuY3Rpb24uCist ICAgIGNkZWYgaW50ICgqX19ub3JtYWxpemUpKGludCBOLCBpbnQgdSwgaW50IHYsCisrICAgIGNk ZWYgaW50ICgqX25vcm1hbGl6ZSkoaW50IE4sIGludCB1LCBpbnQgdiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50KiB1dSwgaW50KiB2diwgaW50KiBzcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IGNvbXB1dGVfcykgZXhjZXB0IC0xCisgICAgIGNwZGVmIGluZGV4 KHNlbGYsIGludCB1LCBpbnQgdikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGFyL21vZHN5 bS9wMWxpc3QucHl4IGIvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vcDFsaXN0LnB5eAoraW5kZXgg MTExZDQwOGNlZTQuLjMwYThmNzQ3MWRkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxhci9t b2RzeW0vcDFsaXN0LnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vcDFsaXN0LnB5 eAorQEAgLTcyMywxMCArNzIzLDEwIEBAIGNkZWYgY2xhc3MgUDFMaXN0KCk6CisgICAgICAgICBz ZWxmLl9fTiA9IE4KKyAgICAgICAgIGlmIE4gPD0gNDYzNDA6CisgICAgICAgICAgICAgc2VsZi5f X2xpc3QgPSBwMWxpc3RfaW50KE4pCistICAgICAgICAgICAgc2VsZi5fX25vcm1hbGl6ZSA9IGNf cDFfbm9ybWFsaXplX2ludAorKyAgICAgICAgICAgIHNlbGYuX25vcm1hbGl6ZSA9IGNfcDFfbm9y bWFsaXplX2ludAorICAgICAgICAgZWxpZiBOIDw9IDIxNDc0ODM2NDc6CisgICAgICAgICAgICAg c2VsZi5fX2xpc3QgPSBwMWxpc3RfbGxvbmcoTikKKy0gICAgICAgICAgICBzZWxmLl9fbm9ybWFs aXplID0gY19wMV9ub3JtYWxpemVfbGxvbmcKKysgICAgICAgICAgICBzZWxmLl9ub3JtYWxpemUg PSBjX3AxX25vcm1hbGl6ZV9sbG9uZworICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByYWlz ZSBPdmVyZmxvd0Vycm9yKCJwMWxpc3Qgbm90IGRlZmluZWQgZm9yIHN1Y2ggbGFyZ2UgTi4iKQor ICAgICAgICAgc2VsZi5fX2xpc3Quc29ydCgpCitAQCAtOTIxLDcgKzkyMSw3IEBAIGNkZWYgY2xh c3MgUDFMaXN0KCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgaW50IHUsIHYsIHV1LCB2 diwgc3MKKyAgICAgICAgIHUsdiA9IHNlbGYuX19saXN0W2ldCistICAgICAgICBzZWxmLl9fbm9y bWFsaXplKHNlbGYuX19OLCAtdSwgdiwgJnV1LCAmdnYsICZzcywgMCkKKysgICAgICAgIHNlbGYu X25vcm1hbGl6ZShzZWxmLl9fTiwgLXUsIHYsICZ1dSwgJnZ2LCAmc3MsIDApCisgICAgICAgICBf LCBqID0gc2VhcmNoKHNlbGYuX19saXN0LCAodXUsdnYpKQorICAgICAgICAgcmV0dXJuIGoKKyAK K0BAIC05NTQsNyArOTU0LDcgQEAgY2RlZiBjbGFzcyBQMUxpc3QoKToKKyAgICAgICAgICIiIgor ICAgICAgICAgY2RlZiBpbnQgdSwgdiwgdXUsIHZ2LCBzcworICAgICAgICAgdSx2ID0gc2VsZi5f X2xpc3RbaV0KKy0gICAgICAgIHNlbGYuX19ub3JtYWxpemUoc2VsZi5fX04sIC12LCB1LCAmdXUs ICZ2diwgJnNzLCAwKQorKyAgICAgICAgc2VsZi5fbm9ybWFsaXplKHNlbGYuX19OLCAtdiwgdSwg JnV1LCAmdnYsICZzcywgMCkKKyAgICAgICAgIF8sIGogPSBzZWFyY2goc2VsZi5fX2xpc3QsICh1 dSx2dikpCisgICAgICAgICByZXR1cm4gagorIAorQEAgLTk4Nyw3ICs5ODcsNyBAQCBjZGVmIGNs YXNzIFAxTGlzdCgpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGludCB1LCB2LCB1dSwg dnYsIHNzCisgICAgICAgICB1LHYgPSBzZWxmLl9fbGlzdFtpXQorLSAgICAgICAgc2VsZi5fX25v cm1hbGl6ZShzZWxmLl9fTiwgdiwgLXUtdiwgJnV1LCAmdnYsICZzcywgMCkKKysgICAgICAgIHNl bGYuX25vcm1hbGl6ZShzZWxmLl9fTiwgdiwgLXUtdiwgJnV1LCAmdnYsICZzcywgMCkKKyAgICAg ICAgIF8sIGogPSBzZWFyY2goc2VsZi5fX2xpc3QsICh1dSx2dikpCisgICAgICAgICByZXR1cm4g agorIAorQEAgLTExNTMsNyArMTE1Myw3IEBAIGNkZWYgY2xhc3MgUDFMaXN0KCk6CisgICAgICAg ICAgICAgVHJ1ZQorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGludCB1dSwgdnYsIHNzCist ICAgICAgICBzZWxmLl9fbm9ybWFsaXplKHNlbGYuX19OLCB1LCB2LCAmdXUsICZ2diwgJnNzLCAw KQorKyAgICAgICAgc2VsZi5fbm9ybWFsaXplKHNlbGYuX19OLCB1LCB2LCAmdXUsICZ2diwgJnNz LCAwKQorICAgICAgICAgcmV0dXJuICh1dSx2dikKKyAKKyAgICAgZGVmIG5vcm1hbGl6ZV93aXRo X3NjYWxhcihzZWxmLCBpbnQgdSwgaW50IHYpOgorQEAgLTExODYsNyArMTE4Niw3IEBAIGNkZWYg Y2xhc3MgUDFMaXN0KCk6CisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCisgICAgICAg ICBjZGVmIGludCB1dSwgdnYsIHNzCistICAgICAgICBzZWxmLl9fbm9ybWFsaXplKHNlbGYuX19O LCB1LCB2LCAmdXUsICZ2diwgJnNzLCAxKQorKyAgICAgICAgc2VsZi5fbm9ybWFsaXplKHNlbGYu X19OLCB1LCB2LCAmdXUsICZ2diwgJnNzLCAxKQorICAgICAgICAgcmV0dXJuICh1dSwgdnYsIHNz KQorIAorICAgICBkZWYgTihzZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwv Z2F1c3NfbGVnZW5kcmUucHl4IGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2dhdXNzX2xlZ2VuZHJlLnB5 eAoraW5kZXggNTMyNTc5N2M3YWEuLjk2NzA4YzViMWFjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv bnVtZXJpY2FsL2dhdXNzX2xlZ2VuZHJlLnB5eAorKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2dh dXNzX2xlZ2VuZHJlLnB5eAorQEAgLTExNyw4ICsxMTcsOCBAQCBkZWYgbm9kZXNfdW5jYWNoZWQo ZGVncmVlLCBwcmVjKToKKyAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImRlZ3JlZT0lcyBub3Qg c3VwcG9ydGVkIChkZWdyZWUgbXVzdCBiZSAzIG9yIGV2ZW4pIiAlIGRlZ3JlZSkKKyAgICAgUiA9 IFJlYWxGaWVsZChpbnQocHJlYyozLzIpKQorICAgICBSb3V0ID0gUmVhbEZpZWxkKHByZWMpCist ICAgIG1wZnJfaW5pdDIodSxSLl9fcHJlYykKKy0gICAgbXBmcl9pbml0Mih2LFIuX19wcmVjKQor KyAgICBtcGZyX2luaXQyKHUsUi5fcHJlYykKKysgICAgbXBmcl9pbml0Mih2LFIuX3ByZWMpCisg ICAgIFpFUk8gPSBSLnplcm8oKQorICAgICBPTkUgPSBSLm9uZSgpCisgICAgIEhBTEYgPSBPTkUv MgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9saW5lYXJfZnVuY3Rpb25zLnB5eCBi L3NyYy9zYWdlL251bWVyaWNhbC9saW5lYXJfZnVuY3Rpb25zLnB5eAoraW5kZXggNTU0OWZmNDM2 ZjUuLmYzZmM2ZmU0MTljIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2xpbmVhcl9m dW5jdGlvbnMucHl4CisrKysgYi9zcmMvc2FnZS9udW1lcmljYWwvbGluZWFyX2Z1bmN0aW9ucy5w eXgKK0BAIC0xNTc5LDcgKzE1NzksMTAgQEAgY2RlZiBjbGFzcyBMaW5lYXJDb25zdHJhaW50KExp bmVhckZ1bmN0aW9uT3JDb25zdHJhaW50KToKKyAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAg ICAgICAgeWllbGQgKGxocywgcmhzKQorICAgICAgICAgICAgIGxocyA9IHJocworLSAgICAgICAg ICAgIHJocyA9IG5leHQodGVybV9pdGVyKQorKyAgICAgICAgICAgIHRyeToKKysgICAgICAgICAg ICAgICAgcmhzID0gbmV4dCh0ZXJtX2l0ZXIpCisrICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVy YXRpb246CisrICAgICAgICAgICAgICAgIHJldHVybgorIAorICAgICBkZWYgaW5lcXVhbGl0aWVz KHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtMTYxMiw3ICsxNjE1LDEwIEBAIGNkZWYgY2xhc3Mg TGluZWFyQ29uc3RyYWludChMaW5lYXJGdW5jdGlvbk9yQ29uc3RyYWludCk6CisgICAgICAgICB3 aGlsZSBUcnVlOgorICAgICAgICAgICAgIHlpZWxkIChsaHMsIHJocykKKyAgICAgICAgICAgICBs aHMgPSByaHMKKy0gICAgICAgICAgICByaHMgPSBuZXh0KHRlcm1faXRlcikKKysgICAgICAgICAg ICB0cnk6CisrICAgICAgICAgICAgICAgIHJocyA9IG5leHQodGVybV9pdGVyKQorKyAgICAgICAg ICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorKyAgICAgICAgICAgICAgICByZXR1cm4KKyAKKyAg ICAgZGVmIF9yZXByXyhzZWxmKToKKyAgICAgICAgIHIiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9xdWl2ZXJzL3JlcHJlc2VudGF0aW9uLnB5IGIvc3JjL3NhZ2UvcXVpdmVycy9yZXByZXNlbnRh dGlvbi5weQoraW5kZXggOWMxMWViOGFkMGUuLmRiODJjYmQ3Yzg2IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvcXVpdmVycy9yZXByZXNlbnRhdGlvbi5weQorKysrIGIvc3JjL3NhZ2UvcXVpdmVycy9y ZXByZXNlbnRhdGlvbi5weQorQEAgLTEyOTcsMTAgKzEyOTcsNyBAQCBkZWYgY29weShzZWxmKToK KyAgICAgICAgICAgICBzYWdlOiB2LmdldF9lbGVtZW50KDEpCisgICAgICAgICAgICAgKDEsIDAp CisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUn KToKKy0gICAgICAgICAgICBuYW1lID0gc2VsZi5fX2N1c3RvbV9uYW1lCistICAgICAgICBlbHNl OgorLSAgICAgICAgICAgIG5hbWUgPSBOb25lCisrICAgICAgICBuYW1lID0gc2VsZi5nZXRfY3Vz dG9tX25hbWUoKQorICAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fZWxlbXMuY29w eSgpLCBuYW1lKQorIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3Mv Y29tcGxleF9hcmIucHl4IGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9hcmIucHl4CitpbmRleCBl ZjQzMmMxZTk0NS4uOTVlNjE1ZjNlZTYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9jb21w bGV4X2FyYi5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfYXJiLnB5eAorQEAgLTg3 NCw3ICs4NzQsNyBAQCBjbGFzcyBDb21wbGV4QmFsbEZpZWxkKFVuaXF1ZVJlcHJlc2VudGF0aW9u LCBzYWdlLnJpbmdzLmFiYy5Db21wbGV4QmFsbEZpZWxkKToKKyAgICAgICAgIGNkZWYgUmVhbEJh bGwgcmIKKyAgICAgICAgIGNkZWYgQ29tcGxleEJhbGwgY2IKKyAgICAgICAgIGFjYl9wb2x5X2lu aXQocm91bmRlZF9wb2x5KQorLSAgICAgICAgY2RlZiBsb25nIGRlZyA9IGFjYl9wb2x5X2RlZ3Jl ZShwb2x5Ll9fcG9seSkKKysgICAgICAgIGNkZWYgbG9uZyBkZWcgPSBhY2JfcG9seV9kZWdyZWUo cG9seS5fcG9seSkKKyAgICAgICAgIGlmIGRlZyA8IDA6CisgICAgICAgICAgICAgcmFpc2UgQXJp dGhtZXRpY0Vycm9yKCJ0YWtpbmcgdGhlIHJvb3RzIG9mIHRoZSB6ZXJvIHBvbHlub21pYWwiKQor ICAgICAgICAgY2RlZiBhY2JfcHRyIHJvb3RzID0gX2FjYl92ZWNfaW5pdChkZWcpCitAQCAtODgz LDcgKzg4Myw3IEBAIGNsYXNzIENvbXBsZXhCYWxsRmllbGQoVW5pcXVlUmVwcmVzZW50YXRpb24s IHNhZ2UucmluZ3MuYWJjLkNvbXBsZXhCYWxsRmllbGQpOgorICAgICAgICAgICAgIHdoaWxlICgo aXNvbGF0ZWQgPCBkZWcgb3IgYW55KGFjYl9yZWxfYWNjdXJhY3lfYml0cygmcm9vdHNbaV0pIDwg dGd0cHJlYworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBp biByYW5nZShkZWcpKSkKKyAgICAgICAgICAgICAgICAgYW5kIHByZWMgPCBtYXhwcmVjKToKKy0g ICAgICAgICAgICAgICAgYWNiX3BvbHlfc2V0X3JvdW5kKHJvdW5kZWRfcG9seSwgcG9seS5fX3Bv bHksIHByZWMpCisrICAgICAgICAgICAgICAgIGFjYl9wb2x5X3NldF9yb3VuZChyb3VuZGVkX3Bv bHksIHBvbHkuX3BvbHksIHByZWMpCisgICAgICAgICAgICAgICAgIG1heGl0ZXIgPSBtaW4obWF4 KGRlZywgMzIpLCBwcmVjKQorICAgICAgICAgICAgICAgICBpZiAocHJlYyA9PSBpbml0aWFsX3By ZWMpOgorICAgICAgICAgICAgICAgICAgICAgaXNvbGF0ZWQgPSBhY2JfcG9seV9maW5kX3Jvb3Rz KHJvb3RzLCByb3VuZGVkX3BvbHksIE5VTEwsIG1heGl0ZXIsIHByZWMpCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvcmluZ3MvY29tcGxleF9tcGMucHhkIGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9t cGMucHhkCitpbmRleCA3NjJjMzhhZmJkYy4uZjdkOGNiOTQ5MmMgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9yaW5ncy9jb21wbGV4X21wYy5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhf bXBjLnB4ZAorQEAgLTExLDcgKzExLDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhOdW1iZXIoc2Fn ZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICBjcGRlZiBfbXVsXyhzZWxm LCBvdGhlcikKKyAKKyBjZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKHNhZ2UucmluZ3Mu cmluZy5GaWVsZCk6CistICAgIGNkZWYgcmVhZG9ubHkgaW50IF9fcHJlYworKyAgICBjZGVmIHJl YWRvbmx5IGludCBfcHJlYworICAgICBjZGVmIG1wY19ybmRfdCBfX3JuZAorICAgICBjZGVmIG9i amVjdCBfX3JuZF9zdHIKKyAgICAgY2RlZiBvYmplY3QgX19yZWFsX2ZpZWxkCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9tcGMucHl4IGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxl eF9tcGMucHl4CitpbmRleCBiMzY4MWZmNzI0Zi4uYzg0N2E5MzAyYjUgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9yaW5ncy9jb21wbGV4X21wYy5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2NvbXBs ZXhfbXBjLnB5eAorQEAgLTMwNyw3ICszMDcsNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxk X2NsYXNzKHNhZ2UucmluZ3MucmluZy5GaWVsZCk6CisgICAgICAgICBpZiBwcmVjIDwgbXBmcl9w cmVjX21pbigpIG9yIHByZWMgPiBtcGZyX3ByZWNfbWF4KCk6CisgICAgICAgICAgICAgcmFpc2Ug VmFsdWVFcnJvcigicHJlYyAoPSVzKSBtdXN0IGJlID49ICVzIGFuZCA8PSAlcy4iICUgKAorICAg ICAgICAgICAgICAgICBwcmVjLCBtcGZyX3ByZWNfbWluKCksIG1wZnJfcHJlY19tYXgoKSkpCist ICAgICAgICBzZWxmLl9fcHJlYyA9IHByZWMKKysgICAgICAgIHNlbGYuX3ByZWMgPSBwcmVjCisg ICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShybmQsIHN0cik6CisgICAgICAgICAgICAgcmFpc2Ug VHlwZUVycm9yKCJybmQgbXVzdCBiZSBhIHN0cmluZyIpCisgICAgICAgICB0cnk6CitAQCAtMzMx LDcgKzMzMSw3IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4RmllbGRfY2xhc3Moc2FnZS5yaW5ncy5y aW5nLkZpZWxkKToKKyAgICAgICAgIGNkZWYgTVBDb21wbGV4TnVtYmVyIHoKKyAgICAgICAgIHog PSBNUENvbXBsZXhOdW1iZXIuX19uZXdfXyhNUENvbXBsZXhOdW1iZXIpCisgICAgICAgICB6Ll9w YXJlbnQgPSBzZWxmCistICAgICAgICBtcGNfaW5pdDIoei52YWx1ZSwgc2VsZi5fX3ByZWMpCisr ICAgICAgICBtcGNfaW5pdDIoei52YWx1ZSwgc2VsZi5fcHJlYykKKyAgICAgICAgIHouaW5pdCA9 IDEKKyAgICAgICAgIHJldHVybiB6CisgCitAQCAtMzQ0LDcgKzM0NCw3IEBAIGNkZWYgY2xhc3Mg TVBDb21wbGV4RmllbGRfY2xhc3Moc2FnZS5yaW5ncy5yaW5nLkZpZWxkKToKKyAgICAgICAgICAg ICBzYWdlOiBNUENvbXBsZXhGaWVsZCgyMDAsICdSTkREVScpICMgaW5kaXJlY3QgZG9jdGVzdAor ICAgICAgICAgICAgIENvbXBsZXggRmllbGQgd2l0aCAyMDAgYml0cyBvZiBwcmVjaXNpb24gYW5k IHJvdW5kaW5nIFJORERVCisgICAgICAgICAiIiIKKy0gICAgICAgIHMgPSAiQ29tcGxleCBGaWVs ZCB3aXRoICVzIGJpdHMgb2YgcHJlY2lzaW9uIiVzZWxmLl9fcHJlYworKyAgICAgICAgcyA9ICJD b21wbGV4IEZpZWxkIHdpdGggJXMgYml0cyBvZiBwcmVjaXNpb24iJXNlbGYuX3ByZWMKKyAgICAg ICAgIGlmIHNlbGYuX19ybmQgIT0gTVBDX1JORE5OOgorICAgICAgICAgICAgIHMgPSBzICsgIiBh bmQgcm91bmRpbmcgJXMiJShzZWxmLl9fcm5kX3N0cikKKyAgICAgICAgIHJldHVybiBzCitAQCAt NDY1LDEzICs0NjUsMTMgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhGaWVsZF9jbGFzcyhzYWdlLnJp bmdzLnJpbmcuRmllbGQpOgorICAgICAgICAgaWYgUlIuaGFzX2NvZXJjZV9tYXBfZnJvbShTKToK KyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29lcmNlX21hcF92aWEoW1JSXSwgUykKKyAKKy0g ICAgICAgIGlmIGlzaW5zdGFuY2UoUywgTVBDb21wbGV4RmllbGRfY2xhc3MpIGFuZCBTLnByZWMo KSA+PSBzZWxmLl9fcHJlYzoKKysgICAgICAgIGlmIGlzaW5zdGFuY2UoUywgTVBDb21wbGV4Rmll bGRfY2xhc3MpIGFuZCBTLnByZWMoKSA+PSBzZWxmLl9wcmVjOgorICAgICAgICAgICAgICNGSVhN RTogV2hhdCBtYXAgd2hlbiByb3VuZGluZyBtb2RlcyBkaWZmZXIgYnV0IHByZWMgaXMgdGhlIHNh bWUgPworICAgICAgICAgICAgICMgICAgICAgSG93IHRvIHByb3ZpZGUgY29tbXV0YXRpdml0eSBv ZiBtb3JwaGlzbXMgPworICAgICAgICAgICAgICMgICAgICAgQ2hhbmdlIF9jbXBfIHdoZW4gZG9u ZQorICAgICAgICAgICAgIHJldHVybiBNUEN0b01QQyhTLCBzZWxmKQorIAorLSAgICAgICAgaWYg aXNpbnN0YW5jZShTLCBDb21wbGV4RmllbGRfY2xhc3MpIGFuZCBTLnByZWMoKSA+PSBzZWxmLl9f cHJlYzoKKysgICAgICAgIGlmIGlzaW5zdGFuY2UoUywgQ29tcGxleEZpZWxkX2NsYXNzKSBhbmQg Uy5wcmVjKCkgPj0gc2VsZi5fcHJlYzoKKyAgICAgICAgICAgICByZXR1cm4gQ0N0b01QQyhTLCBz ZWxmKQorIAorICAgICAgICAgbGF0ZV9pbXBvcnQoKQorQEAgLTQ5MCw3ICs0OTAsNyBAQCBjZGVm IGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MucmluZy5GaWVsZCk6CisgICAg ICAgICAgICAgc2FnZTogbG9hZHMoZHVtcHMoQykpID09IEMKKyAgICAgICAgICAgICBUcnVlCisg ICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBfX2NyZWF0ZV9fTVBDb21wbGV4RmllbGRfdmVy c2lvbjAsIChzZWxmLl9fcHJlYywgc2VsZi5fX3JuZF9zdHIpCisrICAgICAgICByZXR1cm4gX19j cmVhdGVfX01QQ29tcGxleEZpZWxkX3ZlcnNpb24wLCAoc2VsZi5fcHJlYywgc2VsZi5fX3JuZF9z dHIpCisgCisgICAgIGRlZiBfX3JpY2hjbXBfXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAg ICAgICIiIgorQEAgLTUxMyw3ICs1MTMsNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2Ns YXNzKHNhZ2UucmluZ3MucmluZy5GaWVsZCk6CisgCisgICAgICAgICBjZGVmIE1QQ29tcGxleEZp ZWxkX2NsYXNzIHMgPSA8TVBDb21wbGV4RmllbGRfY2xhc3M+bGVmdAorICAgICAgICAgY2RlZiBN UENvbXBsZXhGaWVsZF9jbGFzcyBvID0gPE1QQ29tcGxleEZpZWxkX2NsYXNzPnJpZ2h0CistICAg ICAgICByZXR1cm4gcmljaGNtcChzLl9fcHJlYywgby5fX3ByZWMsIG9wKQorKyAgICAgICAgcmV0 dXJuIHJpY2hjbXAocy5fcHJlYywgby5fcHJlYywgb3ApCisgCisgICAgIGRlZiBnZW4oc2VsZiwg bj0wKToKKyAgICAgICAgICIiIgorQEAgLTYwNCw3ICs2MDQsNyBAQCBjZGVmIGNsYXNzIE1QQ29t cGxleEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MucmluZy5GaWVsZCk6CisgICAgICAgICAgICAgc2Fn ZTogQyA9IE1QQ29tcGxleEZpZWxkKDEwLCAnUk5ETlonKTsgQy5uYW1lKCkKKyAgICAgICAgICAg ICAnTVBDb21wbGV4RmllbGQxMF9STkROWicKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJu ICJNUENvbXBsZXhGaWVsZCVzXyVzIiUoc2VsZi5fX3ByZWMsIHNlbGYuX19ybmRfc3RyKQorKyAg ICAgICAgcmV0dXJuICJNUENvbXBsZXhGaWVsZCVzXyVzIiUoc2VsZi5fcHJlYywgc2VsZi5fX3Ju ZF9zdHIpCisgCisgICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTYy OSw3ICs2MjksNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKHNhZ2UucmluZ3Mu cmluZy5GaWVsZCk6CisgICAgICAgICAgICAgc2FnZTogTVBDb21wbGV4RmllbGQoMjIpLnByZWMo KQorICAgICAgICAgICAgIDIyCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9f cHJlYworKyAgICAgICAgcmV0dXJuIHNlbGYuX3ByZWMKKyAKKyAgICAgZGVmIHJvdW5kaW5nX21v ZGUoc2VsZik6CisgICAgICAgICAiIiIKK0BAIC03MDcsNyArNzA3LDcgQEAgY2RlZiBjbGFzcyBN UENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAg ICAgICAgY2RlZiBNUENvbXBsZXhOdW1iZXIgegorICAgICAgICAgeiA9IE1QQ29tcGxleE51bWJl ci5fX25ld19fKE1QQ29tcGxleE51bWJlcikKKyAgICAgICAgIHouX3BhcmVudCA9IHNlbGYuX3Bh cmVudAorLSAgICAgICAgbXBjX2luaXQyKHoudmFsdWUsICg8TVBDb21wbGV4RmllbGRfY2xhc3M+ c2VsZi5fcGFyZW50KS5fX3ByZWMpCisrICAgICAgICBtcGNfaW5pdDIoei52YWx1ZSwgKDxNUENv bXBsZXhGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjKQorICAgICAgICAgei5pbml0ID0g MQorICAgICAgICAgcmV0dXJuIHoKKyAKK0BAIC03NjAsNyArNzYwLDcgQEAgY2RlZiBjbGFzcyBN UENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAg ICAgICAgaWYgcGFyZW50IGlzIE5vbmU6CisgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yCisg ICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKKy0gICAgICAgIG1wY19pbml0MihzZWxmLnZh bHVlLCBwYXJlbnQuX19wcmVjKQorKyAgICAgICAgbXBjX2luaXQyKHNlbGYudmFsdWUsIHBhcmVu dC5fcHJlYykKKyAgICAgICAgIHNlbGYuaW5pdCA9IDEKKyAgICAgICAgIGlmIHggaXMgTm9uZTog cmV0dXJuCisgICAgICAgICBzZWxmLl9zZXQoeCwgeSwgYmFzZSkKK0BAIC0xMDEwLDcgKzEwMTAs NyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZp ZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogaS5wcmVjKCkKKyAgICAgICAgICAgICAy MDAwCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiA8TVBDb21wbGV4RmllbGRfY2xhc3M+ KHNlbGYuX3BhcmVudCkuX19wcmVjCisrICAgICAgICByZXR1cm4gPE1QQ29tcGxleEZpZWxkX2Ns YXNzPihzZWxmLl9wYXJlbnQpLl9wcmVjCisgCisgICAgIGRlZiByZWFsKHNlbGYpOgorICAgICAg ICAgIiIiCitAQCAtMTU3MSwyNiArMTU3MSw2IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4TnVtYmVy KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToKKyAgICAgICAgIG1wY19ub3Jt KHgudmFsdWUsIHNlbGYudmFsdWUsICg8UmVhbEZpZWxkX2NsYXNzPnguX3BhcmVudCkucm5kKQor ICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgZGVmIF9fcnRydWVkaXZfXyhzZWxmLCBsZWZ0KToK Ky0gICAgICAgIHIiIiIKKy0gICAgICAgIFJldHVybnMgdGhlIHF1b3RpZW50IG9mIGBgbGVmdGBg IHdpdGggYGBzZWxmYGAsIHRoYXQgaXM6IGBgbGVmdC9zZWxmYGAKKy0gICAgICAgIGFzIGEgY29t cGxleCBudW1iZXIuCistCistICAgICAgICBJTlBVVDoKKy0KKy0gICAgICAgIC0gYGBsZWZ0YGAg LS0gYSBjb21wbGV4IG51bWJlcgorLQorLSAgICAgICAgRVhBTVBMRVM6OgorLQorLSAgICAgICAg ICAgIHNhZ2U6IE1QQyA9IE1QQ29tcGxleEZpZWxkKCkKKy0gICAgICAgICAgICBzYWdlOiBhID0g TVBDKDIsIDIpCistICAgICAgICAgICAgc2FnZTogYS5fX3J0cnVlZGl2X18oTVBDKDEpKQorLSAg ICAgICAgICAgIDAuMjUwMDAwMDAwMDAwMDAwIC0gMC4yNTAwMDAwMDAwMDAwMDAqSQorLSAgICAg ICAgICAgIHNhZ2U6IE1QQygxKS9hCistICAgICAgICAgICAgMC4yNTAwMDAwMDAwMDAwMDAgLSAw LjI1MDAwMDAwMDAwMDAwMCpJCistICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBNUENvbXBs ZXhOdW1iZXIoc2VsZi5fcGFyZW50LCBsZWZ0KS9zZWxmCistCisgICAgIGRlZiBfX3Bvd19fKHNl bGYsIHJpZ2h0LCBtb2R1bHVzKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSBgYHNl bGZgYCByYWlzZWQgdG8gdGhlIHBvd2VyIG9mIGV4cG9uZW50LCByb3VuZGVkIGluCitAQCAtMjM0 Nyw3ICsyMzI3LDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUu ZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorIAorICAgICAgICAgY2RlZiBtcGNfcm5kX3Qgcm5kID0g KDxNUENvbXBsZXhGaWVsZF9jbGFzcz4oc2VsZi5fcGFyZW50KSkuX19ybmQKKyAKKy0gICAgICAg IGNkZWYgaW50IHByZWMgPSBzZWxmLl9wYXJlbnQuX19wcmVjCisrICAgICAgICBjZGVmIGludCBw cmVjID0gc2VsZi5fcGFyZW50Ll9wcmVjCisgCisgICAgICAgICBpZiBvcHRpbWFsIG9yIGFsZ29y aXRobSA9PSAicHJpbmNpcGFsIjoKKyAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShyaWdo dCwgTVBDb21wbGV4TnVtYmVyKSBvciAoPE1QQ29tcGxleE51bWJlcj5yaWdodCkuX3BhcmVudCBp cyBub3Qgc2VsZi5fcGFyZW50OgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhf bXBmci5weXggYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21wZnIucHl4CitpbmRleCAzM2Q3M2Q4 MWIxMi4uNjFmMmNhZGM4ZTQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21w ZnIucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21wZnIucHl4CitAQCAtMTY1OCwy OCArMTY1OCw2IEBAIGNkZWYgY2xhc3MgQ29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVt ZW50LkZpZWxkRWxlbWVudCk6CisgICAgICAgICBtcGZyX2NsZWFyKHJpZ2h0X25tKQorICAgICAg ICAgcmV0dXJuIHgKKyAKKy0gICAgZGVmIF9fcnRydWVkaXZfXyhzZWxmLCBsZWZ0KToKKy0gICAg ICAgIHIiIiIKKy0gICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQgb2YgbGVmdCB3aXRoIGBgc2Vs ZmBgLCB0aGF0IGlzOgorLQorLSAgICAgICAgYGBsZWZ0L3NlbGZgYAorLQorLSAgICAgICAgYXMg YSBjb21wbGV4IG51bWJlci4KKy0KKy0gICAgICAgIElOUFVUOgorLQorLSAgICAgICAgLSBgYGxl ZnRgYCAtLSBhIGNvbXBsZXggbnVtYmVyIHRvIGRpdmlkZSBieSBgYHNlbGZgYAorLQorLSAgICAg ICAgRVhBTVBMRVM6OgorLQorLSAgICAgICAgICAgIHNhZ2U6IGEgPSBDb21wbGV4TnVtYmVyKDIs MCkKKy0gICAgICAgICAgICBzYWdlOiBhLl9fcnRydWVkaXZfXyhDQygxKSkKKy0gICAgICAgICAg ICAwLjUwMDAwMDAwMDAwMDAwMAorLSAgICAgICAgICAgIHNhZ2U6IENDKDEpL2EKKy0gICAgICAg ICAgICAwLjUwMDAwMDAwMDAwMDAwMAorLSAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gQ29t cGxleE51bWJlcihzZWxmLl9wYXJlbnQsIGxlZnQpL3NlbGYKKy0KKyAgICAgZGVmIF9fcG93X18o c2VsZiwgcmlnaHQsIG1vZHVsdXMpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmFpc2UgYGBz ZWxmYGAgdG8gdGhlIGBgcmlnaHRgYCBleHBvbmVudC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9y aW5ncy9maW5pdGVfcmluZ3MvaW50ZWdlcl9tb2QucHhkIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRl X3JpbmdzL2ludGVnZXJfbW9kLnB4ZAoraW5kZXggMWUzY2I4MWMxNDguLjM1MWZmYTI1ZTFiIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB4ZAor KysrIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB4ZAorQEAgLTIw LDcgKzIwLDcgQEAgY2RlZiBjbGFzcyBOYXRpdmVJbnRTdHJ1Y3Q6CisgCisgCisgY2RlZiBjbGFz cyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZpbml0ZVJpbmdFbGVtZW50KToKKy0gICAgY2RlZiBOYXRp dmVJbnRTdHJ1Y3QgX19tb2R1bHVzCisrICAgIGNkZWYgTmF0aXZlSW50U3RydWN0IF9tb2R1bHVz CisgICAgIGNkZWYgX25ld19jX2Zyb21fbG9uZyhzZWxmLCBsb25nIHZhbHVlKQorICAgICBjZGVm IEludGVnZXJNb2RfYWJzdHJhY3QgX25ld19jX2Zhc3Qoc2VsZiwgdW5zaWduZWQgbG9uZyB2YWx1 ZSkKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX21weihzZWxmLCBtcHpfdCB2YWx1ZSkKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvaW50ZWdlcl9tb2QucHl4IGIvc3Jj L3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB5eAoraW5kZXggYjk0NjFiZDM2 MmUuLmQ2NGJhNWFmODRmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3Jpbmdz L2ludGVnZXJfbW9kLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVn ZXJfbW9kLnB5eAorQEAgLTM2MSw3ICszNjEsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJz dHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIFplcm9EaXZpc2lvbkVycm9y OiBpbnZlcnNlIG9mIE1vZCg0LCAzMCkgZG9lcyBub3QgZXhpc3QKKyAgICAgICAgICIiIgorICAg ICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50CistICAgICAgICBzZWxmLl9fbW9kdWx1cyA9IHBh cmVudC5fcHl4X29yZGVyCisrICAgICAgICBzZWxmLl9tb2R1bHVzID0gcGFyZW50Ll9weXhfb3Jk ZXIKKyAKKyAgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CisgICAgICAgICAgICAgcmV0dXJuCitA QCAtMzczLDcgKzM3Myw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0cmFjdChGaW5pdGVS aW5nRWxlbWVudCk6CisgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBJbnRlZ2VyKToKKyAg ICAgICAgICAgICB6ID0gPEludGVnZXI+dmFsdWUKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2 YWx1ZSwgcmF0aW9uYWwuUmF0aW9uYWwpOgorLSAgICAgICAgICAgIHogPSB2YWx1ZSAlIHNlbGYu X19tb2R1bHVzLnNhZ2VJbnRlZ2VyCisrICAgICAgICAgICAgeiA9IHZhbHVlICUgc2VsZi5fbW9k dWx1cy5zYWdlSW50ZWdlcgorICAgICAgICAgZWxpZiBpbnRlZ2VyX2NoZWNrX2xvbmdfcHkodmFs dWUsICZsb25ndmFsLCAmZXJyKSBhbmQgbm90IGVycjoKKyAgICAgICAgICAgICBzZWxmLnNldF9m cm9tX2xvbmcobG9uZ3ZhbCkKKyAgICAgICAgICAgICByZXR1cm4KK0BAIC0zODgsNyArMzg4LDcg QEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZpbml0ZVJpbmdFbGVtZW50KToKKyAg ICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcHlfc2NhbGFyX3RvX2VsZW1lbnQodmFsdWUpCisg ICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIEVsZW1lbnQpIGFuZCB2YWx1ZS5w YXJlbnQoKS5pc19leGFjdCgpOgorICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzYWdlLnJp bmdzLnJhdGlvbmFsX2ZpZWxkLlFRKHZhbHVlKQorLSAgICAgICAgICAgICAgICAgICAgeiA9IHZh bHVlICUgc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIKKysgICAgICAgICAgICAgICAgICAgIHog PSB2YWx1ZSAlIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIKKyAgICAgICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICBzZWxmLnNldF9mcm9tX21w eih6LnZhbHVlKQorQEAgLTM5Nyw3ICszOTcsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJz dHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgY2RlZiB0eXBlIHQgPSB0eXBlKHNl bGYpCisgICAgICAgICB4ID0gPEludGVnZXJNb2RfYWJzdHJhY3Q+dC5fX25ld19fKHQpCisgICAg ICAgICB4Ll9wYXJlbnQgPSBzZWxmLl9wYXJlbnQKKy0gICAgICAgIHguX19tb2R1bHVzID0gc2Vs Zi5fX21vZHVsdXMKKysgICAgICAgIHguX21vZHVsdXMgPSBzZWxmLl9tb2R1bHVzCisgICAgICAg ICB4LnNldF9mcm9tX3Vsb25nX2Zhc3QodmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorQEAg LTQwNSw3ICs0MDUsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmlu Z0VsZW1lbnQpOgorICAgICAgICAgY2RlZiB0eXBlIHQgPSB0eXBlKHNlbGYpCisgICAgICAgICBj ZGVmIEludGVnZXJNb2RfYWJzdHJhY3QgeCA9IDxJbnRlZ2VyTW9kX2Fic3RyYWN0PnQuX19uZXdf Xyh0KQorICAgICAgICAgeC5fcGFyZW50ID0gc2VsZi5fcGFyZW50CistICAgICAgICB4Ll9fbW9k dWx1cyA9IHNlbGYuX19tb2R1bHVzCisrICAgICAgICB4Ll9tb2R1bHVzID0gc2VsZi5fbW9kdWx1 cworICAgICAgICAgeC5zZXRfZnJvbV9sb25nKHZhbHVlKQorICAgICAgICAgcmV0dXJuIHgKKyAK K0BAIC01MjksMTcgKzUyOSwxNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmlu aXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBpZiBzZWxmLmlzX3plcm8o KToKKyAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorLSAgICAgICAgbSA9IHNlbGYuX19tb2R1bHVz LnNhZ2VJbnRlZ2VyLmV4YWN0X2xvZygyKSArIDEKKysgICAgICAgIG0gPSBzZWxmLl9tb2R1bHVz LnNhZ2VJbnRlZ2VyLmV4YWN0X2xvZygyKSArIDEKKyAgICAgICAgIHJldHVybiAoc2VsZioqbSku aXNfemVybygpCisgCisgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgICMgSW50ZXJmYWNlcworICAgICAjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworICAgICBkZWYgX3BhcmlfaW5pdF8oc2VsZik6CistICAgICAgICByZXR1cm4gJ01vZCgl cywlcyknJShzdHIoc2VsZiksIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyKQorKyAgICAgICAg cmV0dXJuICdNb2QoJXMsJXMpJyUoc3RyKHNlbGYpLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2Vy KQorIAorICAgICBkZWYgX19wYXJpX18oc2VsZik6CistICAgICAgICByZXR1cm4gc2VsZi5saWZ0 KCkuX19wYXJpX18oKS5Nb2Qoc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIpCisrICAgICAgICBy ZXR1cm4gc2VsZi5saWZ0KCkuX19wYXJpX18oKS5Nb2Qoc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdl cikKKyAKKyAgICAgZGVmIF9nYXBfaW5pdF8oc2VsZik6CisgICAgICAgICByIiIiCitAQCAtNTU4 LDcgKzU1OCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxl bWVudCk6CisgICAgICAgICAgICAgc2FnZTogZ2FwKE1vZCg0LCA0OCkpCisgICAgICAgICAgICAg Wm1vZG5aT2JqKCA0LCA0OCApCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiAnJXMqT25l KFptb2RuWiglcykpJyAlIChzZWxmLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcikKKysgICAg ICAgIHJldHVybiAnJXMqT25lKFptb2RuWiglcykpJyAlIChzZWxmLCBzZWxmLl9tb2R1bHVzLnNh Z2VJbnRlZ2VyKQorIAorICAgICBkZWYgX21hZ21hX2luaXRfKHNlbGYsIG1hZ21hKToKKyAgICAg ICAgICIiIgorQEAgLTg2OSw3ICs4NjksNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJh Y3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IE1vZCgzLDE3KS5tb2R1 bHVzKCkKKyAgICAgICAgICAgICAxNworICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2Vs Zi5fX21vZHVsdXMuc2FnZUludGVnZXIKKysgICAgICAgIHJldHVybiBzZWxmLl9tb2R1bHVzLnNh Z2VJbnRlZ2VyCisgCisgICAgIGRlZiBjaGFycG9seShzZWxmLCB2YXI9J3gnKToKKyAgICAgICAg ICIiIgorQEAgLTEyMjksNyArMTIyOSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0cmFj dChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgICAgIG1vZHVsdXMgPSBSLmdlbigp KioyIC0gUihzZWxmKQorICAgICAgICAgICAgICAgICBpZiBzZWxmLl9wYXJlbnQuaXNfZmllbGQo KToKKyAgICAgICAgICAgICAgICAgICAgIGZyb20gLmZpbml0ZV9maWVsZF9jb25zdHJ1Y3RvciBp bXBvcnQgRmluaXRlRmllbGQKKy0gICAgICAgICAgICAgICAgICAgIFEgPSBGaW5pdGVGaWVsZChz ZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcioqMiwgeSwgbW9kdWx1cykKKysgICAgICAgICAgICAg ICAgICAgIFEgPSBGaW5pdGVGaWVsZChzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyKioyLCB5LCBt b2R1bHVzKQorICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgUiA9 IHNlbGYucGFyZW50KClbJ3gnXQorICAgICAgICAgICAgICAgICAgICAgUSA9IFIucXVvdGllbnQo bW9kdWx1cywgbmFtZXM9KHksKSkKK0BAIC0xMjUwLDcgKzEyNTAsNyBAQCBjZGVmIGNsYXNzIElu dGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIGlmIGFs bCBhbmQgZSA+IDEgYW5kIG5vdCBzZWxmLmlzX3VuaXQoKToKKyAgICAgICAgICAgICAgICAgaWYg c2VsZi5pc196ZXJvKCk6CisgICAgICAgICAgICAgICAgICAgICAjIEFsbCBtdWx0aXBsZXMgb2Yg cF5jaWVsKGUvMikgdmFuaXNoCistICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3NlbGYuX3Bh cmVudCh4KSBmb3IgeCBpbiByYW5nZSgwLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlciwgcCoq KChlKzEpLzIpKV0KKysgICAgICAgICAgICAgICAgICAgIHJldHVybiBbc2VsZi5fcGFyZW50KHgp IGZvciB4IGluIHJhbmdlKDAsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIsIHAqKigoZSsxKS8y KSldCisgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICB6ID0gc2Vs Zi5saWZ0KCkKKyAgICAgICAgICAgICAgICAgICAgIHZhbCA9IHoudmFsdWF0aW9uKHApLzIgICMg c3F1YXJlID0+IHZhbHVhdGlvbiBpcyBldmVuCitAQCAtMTI3Miw3ICsxMjcyLDcgQEAgY2RlZiBj bGFzcyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZpbml0ZVJpbmdFbGVtZW50KToKKyAgICAgICAgICAg ICAgICAgICAgIHBfZXhwID0gcCoqZXhwCisgICAgICAgICAgICAgICAgICAgICB3ID0gW3NlbGYu X3BhcmVudChhLmxpZnQoKSAqIHBfdmFsICsgYikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGEgaW4gdS5zcXJ0KGFsbD1UcnVlKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmb3IgYiBpbiByYW5nZSgwLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlciwgcF9leHApXQor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgYiBpbiByYW5nZSgwLCBzZWxmLl9tb2R1 bHVzLnNhZ2VJbnRlZ2VyLCBwX2V4cCldCisgICAgICAgICAgICAgICAgICAgICBpZiBwID09IDI6 CisgICAgICAgICAgICAgICAgICAgICAgICAgdyA9IGxpc3Qoc2V0KHcpKQorICAgICAgICAgICAg ICAgICAgICAgdy5zb3J0KCkKK0BAIC0xNjI0LDcgKzE2MjQsNyBAQCBjZGVmIGNsYXNzIEludGVn ZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgZGVzcGl0ZSB0aGUg cG9zc2libHkgcHJvYmFiaWxpc3RpYyBuYXR1cmUgb2YgdGhlIHVuZGVybHlpbmcKKyAgICAgICAg IGFsZ29yaXRobS4KKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgc2VsZi5saWZ0KCkgPiBzZWxm Ll9fbW9kdWx1cy5zYWdlSW50ZWdlciA+PiAxOgorKyAgICAgICAgaWYgc2VsZi5saWZ0KCkgPiBz ZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyID4+IDE6CisgICAgICAgICAgICAgcmV0dXJuIC1zZWxm CisgICAgICAgICByZXR1cm4gc2VsZgorIAorQEAgLTE3MDUsMjcgKzE3MDUsMjcgQEAgY2RlZiBj bGFzcyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZpbml0ZVJpbmdFbGVtZW50KToKKyAgICAgICAgIGNk ZWYgaW50X2Zhc3Q2NF90IG5ld19tb2R1bHVzCisgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShz ZWxmLCBJbnRlZ2VyTW9kX2dtcCkgYW5kIG5vdCBpc2luc3RhbmNlKG90aGVyLCBJbnRlZ2VyTW9k X2dtcCk6CisgCistICAgICAgICAgICAgaWYgb3RoZXIuX19tb2R1bHVzLmludDY0ID09IDE6IHJl dHVybiBzZWxmCistICAgICAgICAgICAgbmV3X21vZHVsdXMgPSBzZWxmLl9fbW9kdWx1cy5pbnQ2 NCAqIG90aGVyLl9fbW9kdWx1cy5pbnQ2NAorKyAgICAgICAgICAgIGlmIG90aGVyLl9tb2R1bHVz LmludDY0ID09IDE6IHJldHVybiBzZWxmCisrICAgICAgICAgICAgbmV3X21vZHVsdXMgPSBzZWxm Ll9tb2R1bHVzLmludDY0ICogb3RoZXIuX21vZHVsdXMuaW50NjQKKyAgICAgICAgICAgICBpZiBu ZXdfbW9kdWx1cyA8IElOVEVHRVJfTU9EX0lOVDMyX0xJTUlUOgorLSAgICAgICAgICAgICAgICBy ZXR1cm4gc2VsZi5fX2NydChvdGhlcikKKysgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Ny dChvdGhlcikKKyAKKyAgICAgICAgICAgICBlbGlmIG5ld19tb2R1bHVzIDwgSU5URUdFUl9NT0Rf SU5UNjRfTElNSVQ6CisgICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNlbGYsIElu dGVnZXJNb2RfaW50NjQpOgorICAgICAgICAgICAgICAgICAgICAgc2VsZiA9IEludGVnZXJNb2Rf aW50NjQoc2VsZi5fcGFyZW50LCBzZWxmLmxpZnQoKSkKKyAgICAgICAgICAgICAgICAgaWYgbm90 IGlzaW5zdGFuY2Uob3RoZXIsIEludGVnZXJNb2RfaW50NjQpOgorICAgICAgICAgICAgICAgICAg ICAgb3RoZXIgPSBJbnRlZ2VyTW9kX2ludDY0KG90aGVyLl9wYXJlbnQsIG90aGVyLmxpZnQoKSkK Ky0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19jcnQob3RoZXIpCisrICAgICAgICAgICAg ICAgIHJldHVybiBzZWxmLl9jcnQob3RoZXIpCisgCisgICAgICAgICBpZiBub3QgaXNpbnN0YW5j ZShzZWxmLCBJbnRlZ2VyTW9kX2dtcCk6CistICAgICAgICAgICAgaWYgc2VsZi5fX21vZHVsdXMu aW50NjQgPT0gMTogcmV0dXJuIG90aGVyCisrICAgICAgICAgICAgaWYgc2VsZi5fbW9kdWx1cy5p bnQ2NCA9PSAxOiByZXR1cm4gb3RoZXIKKyAgICAgICAgICAgICBzZWxmID0gSW50ZWdlck1vZF9n bXAoc2VsZi5fcGFyZW50LCBzZWxmLmxpZnQoKSkKKyAKKyAgICAgICAgIGlmIG5vdCBpc2luc3Rh bmNlKG90aGVyLCBJbnRlZ2VyTW9kX2dtcCk6CistICAgICAgICAgICAgaWYgb3RoZXIuX19tb2R1 bHVzLmludDY0ID09IDE6IHJldHVybiBzZWxmCisrICAgICAgICAgICAgaWYgb3RoZXIuX21vZHVs dXMuaW50NjQgPT0gMTogcmV0dXJuIHNlbGYKKyAgICAgICAgICAgICBvdGhlciA9IEludGVnZXJN b2RfZ21wKG90aGVyLl9wYXJlbnQsIG90aGVyLmxpZnQoKSkKKyAKKy0gICAgICAgIHJldHVybiBz ZWxmLl9fY3J0KG90aGVyKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX2NydChvdGhlcikKKyAKKyAg ICAgZGVmIGFkZGl0aXZlX29yZGVyKHNlbGYpOgorICAgICAgICAgciIiIgorQEAgLTE3NDIsNyAr MTc0Miw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxlbWVu dCk6CisgICAgICAgICAgICAgc2FnZTogSW50ZWdlcnMoOTAzMDg0MDIzODQ5MDIpKDIpLmFkZGl0 aXZlX29yZGVyKCkKKyAgICAgICAgICAgICA0NTE1NDIwMTE5MjQ1MQorICAgICAgICAgIiIiCist ICAgICAgICBuID0gc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIKKysgICAgICAgIG4gPSBzZWxm Ll9tb2R1bHVzLnNhZ2VJbnRlZ2VyCisgICAgICAgICByZXR1cm4gc2FnZS5yaW5ncy5pbnRlZ2Vy LkludGVnZXIobiAvLyBzZWxmLmxpZnQoKS5nY2QobikpCisgCisgICAgIGRlZiBpc19wcmltaXRp dmVfcm9vdChzZWxmKToKK0BAIC0xODU2LDcgKzE4NTYsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJN b2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVybiBzYWdl LnJpbmdzLmludGVnZXIuSW50ZWdlcihzZWxmLl9fcGFyaV9fKCkuem5vcmRlcigpKQorICAgICAg ICAgZXhjZXB0IFBhcmlFcnJvcjoKKyAgICAgICAgICAgICByYWlzZSBBcml0aG1ldGljRXJyb3Io Im11bHRpcGxpY2F0aXZlIG9yZGVyIG9mICVzIG5vdCBkZWZpbmVkIHNpbmNlIGl0IGlzIG5vdCBh IHVuaXQgbW9kdWxvICVzIiUoCistICAgICAgICAgICAgICAgIHNlbGYsIHNlbGYuX19tb2R1bHVz LnNhZ2VJbnRlZ2VyKSkKKysgICAgICAgICAgICAgICAgc2VsZiwgc2VsZi5fbW9kdWx1cy5zYWdl SW50ZWdlcikpCisgCisgICAgIGRlZiB2YWx1YXRpb24oc2VsZiwgcCk6CisgICAgICAgICAiIiIK K0BAIC0xOTA1LDcgKzE5MDUsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmlu aXRlUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIDIKKyAKKyAgICAgICAgICIiIgorLSAgICAg ICAgcD1zZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci5nY2QocCkKKysgICAgICAgIHA9c2VsZi5f bW9kdWx1cy5zYWdlSW50ZWdlci5nY2QocCkKKyAgICAgICAgIGlmIHA9PTE6CisgICAgICAgICAg ICAgcmFpc2UgVmFsdWVFcnJvcigiVmFsdWF0aW9uIHdpdGggcmVzcGVjdCB0byBhIHVuaXQgaXMg bm90IGRlZmluZWQuIikKKyAgICAgICAgIHIgPSAwCitAQCAtMTkxMyw3ICsxOTEzLDcgQEAgY2Rl ZiBjbGFzcyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZpbml0ZVJpbmdFbGVtZW50KToKKyAgICAgICAg IHdoaWxlIG5vdCAoc2VsZiAlIHBvd2VyKTogIyBzZWxmICUgcG93ZXIgPT0gMAorICAgICAgICAg ICAgIHIgKz0gMQorICAgICAgICAgICAgIHBvd2VyICo9IHAKKy0gICAgICAgICAgICBpZiBub3Qg cG93ZXIuZGl2aWRlcyhzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcik6CisrICAgICAgICAgICAg aWYgbm90IHBvd2VyLmRpdmlkZXMoc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlcik6CisgICAgICAg ICAgICAgICAgIGZyb20gc2FnZS5yaW5ncy5pbmZpbml0eSBpbXBvcnQgaW5maW5pdHkKKyAgICAg ICAgICAgICAgICAgcmV0dXJuIGluZmluaXR5CisgICAgICAgICByZXR1cm4gcgorQEAgLTE5ODAs NyArMTk4MCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFj dCk6CisgICAgIGNkZWYgSW50ZWdlck1vZF9nbXAgX25ld19jKHNlbGYpOgorICAgICAgICAgY2Rl ZiBJbnRlZ2VyTW9kX2dtcCB4CisgICAgICAgICB4ID0gSW50ZWdlck1vZF9nbXAuX19uZXdfXyhJ bnRlZ2VyTW9kX2dtcCkKKy0gICAgICAgIHguX19tb2R1bHVzID0gc2VsZi5fX21vZHVsdXMKKysg ICAgICAgIHguX21vZHVsdXMgPSBzZWxmLl9tb2R1bHVzCisgICAgICAgICB4Ll9wYXJlbnQgPSBz ZWxmLl9wYXJlbnQKKyAgICAgICAgIHJldHVybiB4CisgCitAQCAtMTk4OSw3ICsxOTg5LDcgQEAg Y2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAKKyAgICAg Y2RlZiB2b2lkIHNldF9mcm9tX21weihzZWxmLCBtcHpfdCB2YWx1ZSk6CisgICAgICAgICBjZGVm IHNhZ2UucmluZ3MuaW50ZWdlci5JbnRlZ2VyIG1vZHVsdXMKKy0gICAgICAgIG1vZHVsdXMgPSBz ZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcgorKyAgICAgICAgbW9kdWx1cyA9IHNlbGYuX21vZHVs dXMuc2FnZUludGVnZXIKKyAgICAgICAgIG1wel9tb2Qoc2VsZi52YWx1ZSwgdmFsdWUsIG1vZHVs dXMudmFsdWUpCisgCisgICAgIGNkZWYgdm9pZCBzZXRfZnJvbV9sb25nKHNlbGYsIGxvbmcgdmFs dWUpOgorQEAgLTIwMDEsNyArMjAwMSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50 ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgMQorICAgICAgICAgIiIiCisgICAgICAg ICBtcHpfc2V0X3NpKHNlbGYudmFsdWUsIHZhbHVlKQorLSAgICAgICAgbXB6X21vZChzZWxmLnZh bHVlLCBzZWxmLnZhbHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKysgICAg ICAgIG1wel9tb2Qoc2VsZi52YWx1ZSwgc2VsZi52YWx1ZSwgc2VsZi5fbW9kdWx1cy5zYWdlSW50 ZWdlci52YWx1ZSkKKyAKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX3Vsb25nX2Zhc3Qoc2VsZiwg dW5zaWduZWQgbG9uZyB2YWx1ZSk6CisgICAgICAgICBtcHpfc2V0X3VpKHNlbGYudmFsdWUsIHZh bHVlKQorQEAgLTIwNzEsNyArMjA3MSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50 ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgeCA9IHNlbGYuX25ld19jKCkKKyAgICAg ICAgICAgICBpZiBrID4gMDoKKyAgICAgICAgICAgICAgICAgbXB6X211bF8yZXhwKHgudmFsdWUs IHNlbGYudmFsdWUsIGspCistICAgICAgICAgICAgICAgIG1wel9mZGl2X3IoeC52YWx1ZSwgeC52 YWx1ZSwgc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisrICAgICAgICAgICAgICAg IG1wel9mZGl2X3IoeC52YWx1ZSwgeC52YWx1ZSwgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlci52 YWx1ZSkKKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICBtcHpfZmRpdl9xXzJl eHAoeC52YWx1ZSwgc2VsZi52YWx1ZSwgLWspCisgICAgICAgICAgICAgcmV0dXJuIHgKK0BAIC0y MTMyLDEyICsyMTMyLDEyIEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9h YnN0cmFjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmxpZnQoKS5nY2Qo c2VsZi5tb2R1bHVzKCkpID09IDEKKyAKKy0gICAgZGVmIF9fY3J0KEludGVnZXJNb2RfZ21wIHNl bGYsIEludGVnZXJNb2RfZ21wIG90aGVyKToKKysgICAgZGVmIF9jcnQoSW50ZWdlck1vZF9nbXAg c2VsZiwgSW50ZWdlck1vZF9nbXAgb3RoZXIpOgorICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2dt cCBsaWZ0LCB4CisgICAgICAgICBjZGVmIHNhZ2UucmluZ3MuaW50ZWdlci5JbnRlZ2VyIG1vZHVs dXMsIG90aGVyX21vZHVsdXMKKyAKKy0gICAgICAgIG1vZHVsdXMgPSBzZWxmLl9fbW9kdWx1cy5z YWdlSW50ZWdlcgorLSAgICAgICAgb3RoZXJfbW9kdWx1cyA9IG90aGVyLl9fbW9kdWx1cy5zYWdl SW50ZWdlcgorKyAgICAgICAgbW9kdWx1cyA9IHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIKKysg ICAgICAgIG90aGVyX21vZHVsdXMgPSBvdGhlci5fbW9kdWx1cy5zYWdlSW50ZWdlcgorICAgICAg ICAgZnJvbSAuaW50ZWdlcl9tb2RfcmluZyBpbXBvcnQgSW50ZWdlck1vZFJpbmcKKyAgICAgICAg IGxpZnQgPSBJbnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9kUmluZyhtb2R1bHVzKm90aGVyX21vZHVs dXMpKQorICAgICAgICAgdHJ5OgorQEAgLTIxODgsOCArMjE4OCw4IEBAIGNkZWYgY2xhc3MgSW50 ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICBjZGVmIEludGVnZXJN b2RfZ21wIHgKKyAgICAgICAgIHggPSBzZWxmLl9uZXdfYygpCisgICAgICAgICBtcHpfYWRkKHgu dmFsdWUsIHNlbGYudmFsdWUsICg8SW50ZWdlck1vZF9nbXA+cmlnaHQpLnZhbHVlKQorLSAgICAg ICAgaWYgbXB6X2NtcCh4LnZhbHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkg ID49IDA6CistICAgICAgICAgICAgbXB6X3N1Yih4LnZhbHVlLCB4LnZhbHVlLCBzZWxmLl9fbW9k dWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKysgICAgICAgIGlmIG1wel9jbXAoeC52YWx1ZSwgc2Vs Zi5fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkgID49IDA6CisrICAgICAgICAgICAgbXB6X3N1 Yih4LnZhbHVlLCB4LnZhbHVlLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKQorICAg ICAgICAgcmV0dXJuIHgKKyAKKyAgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorQEAgLTIy MDQsNyArMjIwNCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0 cmFjdCk6CisgICAgICAgICB4ID0gc2VsZi5fbmV3X2MoKQorICAgICAgICAgbXB6X3N1Yih4LnZh bHVlLCBzZWxmLnZhbHVlLCAoPEludGVnZXJNb2RfZ21wPnJpZ2h0KS52YWx1ZSkKKyAgICAgICAg IGlmIG1wel9zZ24oeC52YWx1ZSkgPT0gLTE6CistICAgICAgICAgICAgbXB6X2FkZCh4LnZhbHVl LCB4LnZhbHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKysgICAgICAgICAg ICBtcHpfYWRkKHgudmFsdWUsIHgudmFsdWUsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIudmFs dWUpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBjcGRlZiBfbmVnXyhzZWxmKToKK0BAIC0y MjIwLDcgKzIyMjAsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfZ21wKEludGVnZXJNb2RfYWJz dHJhY3QpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICBjZGVmIEludGVnZXJN b2RfZ21wIHgKKyAgICAgICAgIHggPSBzZWxmLl9uZXdfYygpCistICAgICAgICBtcHpfc3ViKHgu dmFsdWUsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlLCBzZWxmLnZhbHVlKQorKyAg ICAgICAgbXB6X3N1Yih4LnZhbHVlLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlLCBz ZWxmLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgY3BkZWYgX211bF8oc2VsZiwg cmlnaHQpOgorQEAgLTIyMzQsNyArMjIzNCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAo SW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICBjZGVmIEludGVnZXJNb2RfZ21wIHgKKyAg ICAgICAgIHggPSBzZWxmLl9uZXdfYygpCisgICAgICAgICBtcHpfbXVsKHgudmFsdWUsIHNlbGYu dmFsdWUsICAoPEludGVnZXJNb2RfZ21wPnJpZ2h0KS52YWx1ZSkKKy0gICAgICAgIG1wel9mZGl2 X3IoeC52YWx1ZSwgeC52YWx1ZSwgc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisr ICAgICAgICBtcHpfZmRpdl9yKHgudmFsdWUsIHgudmFsdWUsIHNlbGYuX21vZHVsdXMuc2FnZUlu dGVnZXIudmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBjcGRlZiBfZGl2XyhzZWxm LCByaWdodCk6CitAQCAtMjMxMCw3ICsyMzEwLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dt cChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIGNkZWYgSW50ZWdlck1vZF9nbXAgeCA9 IHNlbGYuX25ld19jKCkKKyAgICAgICAgIHNpZ19vbigpCisgICAgICAgICB0cnk6CistICAgICAg ICAgICAgbXB6X3Bvd19oZWxwZXIoeC52YWx1ZSwgc2VsZi52YWx1ZSwgZXhwLCBzZWxmLl9fbW9k dWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKysgICAgICAgICAgICBtcHpfcG93X2hlbHBlcih4LnZh bHVlLCBzZWxmLnZhbHVlLCBleHAsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisg ICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJu IHgKK0BAIC0yMzMxLDEyICsyMzMxLDEyIEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50 ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgWmVyb0RpdmlzaW9uRXJyb3I6IGludmVy c2Ugb2YgTW9kKDIsIDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw KSBkb2VzIG5vdCBleGlzdAorICAgICAgICAgIiIiCisgICAgICAgICBpZiBzZWxmLmlzX3plcm8o KToKKy0gICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcihmImludmVyc2Ugb2YgTW9k KDAsIHtzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcn0pIGRvZXMgbm90IGV4aXN0IikKKysgICAg ICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcihmImludmVyc2Ugb2YgTW9kKDAsIHtzZWxm Ll9tb2R1bHVzLnNhZ2VJbnRlZ2VyfSkgZG9lcyBub3QgZXhpc3QiKQorIAorICAgICAgICAgY2Rl ZiBJbnRlZ2VyTW9kX2dtcCB4CisgICAgICAgICB4ID0gc2VsZi5fbmV3X2MoKQorLSAgICAgICAg aWYgbm90IG1wel9pbnZlcnQoeC52YWx1ZSwgc2VsZi52YWx1ZSwgc2VsZi5fX21vZHVsdXMuc2Fn ZUludGVnZXIudmFsdWUpOgorLSAgICAgICAgICAgIHJhaXNlIFplcm9EaXZpc2lvbkVycm9yKGYi aW52ZXJzZSBvZiBNb2Qoe3NlbGZ9LCB7c2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXJ9KSBkb2Vz IG5vdCBleGlzdCIpCisrICAgICAgICBpZiBub3QgbXB6X2ludmVydCh4LnZhbHVlLCBzZWxmLnZh bHVlLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKToKKysgICAgICAgICAgICByYWlz ZSBaZXJvRGl2aXNpb25FcnJvcihmImludmVyc2Ugb2YgTW9kKHtzZWxmfSwge3NlbGYuX21vZHVs dXMuc2FnZUludGVnZXJ9KSBkb2VzIG5vdCBleGlzdCIpCisgICAgICAgICByZXR1cm4geAorIAor ICAgICBkZWYgbGlmdChJbnRlZ2VyTW9kX2dtcCBzZWxmKToKK0BAIC0yMzkxLDEwICsyMzkxLDEw IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIGNkZWYgSW50ZWdlck1vZF9nbXAgYW5zID0gc2VsZi5fbmV3X2Mo KQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIG1wel9nY2QoYW5zLnZhbHVlLCBzZWxmLnZh bHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKysgICAgICAgIG1wel9nY2Qo YW5zLnZhbHVlLCBzZWxmLnZhbHVlLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKQor ICAgICAgICAgbXB6X2djZChhbnMudmFsdWUsIGFucy52YWx1ZSwgb3RoZXIudmFsdWUpCisgICAg ICAgICBzaWdfb2ZmKCkKKy0gICAgICAgIGlmIG1wel9jbXAoYW5zLnZhbHVlLCBzZWxmLl9fbW9k dWx1cy5zYWdlSW50ZWdlci52YWx1ZSkgPT0gMDoKKysgICAgICAgIGlmIG1wel9jbXAoYW5zLnZh bHVlLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKSA9PSAwOgorICAgICAgICAgICAg ICMgc2VsZiA9IG90aGVyID0gMAorICAgICAgICAgICAgIG1wel9zZXRfdWkoYW5zLnZhbHVlLCAw KQorICAgICAgICAgcmV0dXJuIGFucworQEAgLTI0MjIsMzAgKzI0MjIsMzAgQEAgY2RlZiBjbGFz cyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgIiIiCisgCisgICAg IGNkZWYgSW50ZWdlck1vZF9pbnQgX25ld19jKHNlbGYsIGludF9mYXN0MzJfdCB2YWx1ZSk6Cist ICAgICAgICBpZiBzZWxmLl9fbW9kdWx1cy50YWJsZSBpcyBub3QgTm9uZToKKy0gICAgICAgICAg ICByZXR1cm4gc2VsZi5fX21vZHVsdXMudGFibGVbdmFsdWVdCisrICAgICAgICBpZiBzZWxmLl9t b2R1bHVzLnRhYmxlIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9tb2R1 bHVzLnRhYmxlW3ZhbHVlXQorICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2ludCB4ID0gSW50ZWdl ck1vZF9pbnQuX19uZXdfXyhJbnRlZ2VyTW9kX2ludCkKKyAgICAgICAgIHguX3BhcmVudCA9IHNl bGYuX3BhcmVudAorLSAgICAgICAgeC5fX21vZHVsdXMgPSBzZWxmLl9fbW9kdWx1cworKyAgICAg ICAgeC5fbW9kdWx1cyA9IHNlbGYuX21vZHVsdXMKKyAgICAgICAgIHguaXZhbHVlID0gdmFsdWUK KyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGNkZWYgdm9pZCBzZXRfZnJvbV9tcHooc2VsZiwg bXB6X3QgdmFsdWUpOgorLSAgICAgICAgc2VsZi5pdmFsdWUgPSBtcHpfZmRpdl91aSh2YWx1ZSwg c2VsZi5fX21vZHVsdXMuaW50MzIpCisrICAgICAgICBzZWxmLml2YWx1ZSA9IG1wel9mZGl2X3Vp KHZhbHVlLCBzZWxmLl9tb2R1bHVzLmludDMyKQorIAorICAgICBjZGVmIHZvaWQgc2V0X2Zyb21f bG9uZyhzZWxmLCBsb25nIHZhbHVlKToKKy0gICAgICAgIHNlbGYuaXZhbHVlID0gdmFsdWUgJSBz ZWxmLl9fbW9kdWx1cy5pbnQzMgorKyAgICAgICAgc2VsZi5pdmFsdWUgPSB2YWx1ZSAlIHNlbGYu X21vZHVsdXMuaW50MzIKKyAgICAgICAgIGlmIHNlbGYuaXZhbHVlIDwgMDoKKy0gICAgICAgICAg ICBzZWxmLml2YWx1ZSArPSBzZWxmLl9fbW9kdWx1cy5pbnQzMgorKyAgICAgICAgICAgIHNlbGYu aXZhbHVlICs9IHNlbGYuX21vZHVsdXMuaW50MzIKKyAKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9t X3Vsb25nX2Zhc3Qoc2VsZiwgdW5zaWduZWQgbG9uZyB2YWx1ZSk6CisgICAgICAgICBzZWxmLml2 YWx1ZSA9IHZhbHVlCisgCisgICAgIGNkZWYgdm9pZCBzZXRfZnJvbV9pbnQoSW50ZWdlck1vZF9p bnQgc2VsZiwgaW50X2Zhc3QzMl90IGl2YWx1ZSk6CisgICAgICAgICBpZiBpdmFsdWUgPCAwOgor LSAgICAgICAgICAgIHNlbGYuaXZhbHVlID0gc2VsZi5fX21vZHVsdXMuaW50MzIgKyAoaXZhbHVl ICUgc2VsZi5fX21vZHVsdXMuaW50MzIpCistICAgICAgICBlbGlmIGl2YWx1ZSA+PSBzZWxmLl9f bW9kdWx1cy5pbnQzMjoKKy0gICAgICAgICAgICBzZWxmLml2YWx1ZSA9IGl2YWx1ZSAlIHNlbGYu X19tb2R1bHVzLmludDMyCisrICAgICAgICAgICAgc2VsZi5pdmFsdWUgPSBzZWxmLl9tb2R1bHVz LmludDMyICsgKGl2YWx1ZSAlIHNlbGYuX21vZHVsdXMuaW50MzIpCisrICAgICAgICBlbGlmIGl2 YWx1ZSA+PSBzZWxmLl9tb2R1bHVzLmludDMyOgorKyAgICAgICAgICAgIHNlbGYuaXZhbHVlID0g aXZhbHVlICUgc2VsZi5fbW9kdWx1cy5pbnQzMgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICBzZWxmLml2YWx1ZSA9IGl2YWx1ZQorIAorQEAgLTI0OTAsNyArMjQ5MCw3IEBAIGNkZWYgY2xh c3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgc2Fn ZTogWm1vZCgxKS5vbmUoKS5pc19vbmUoKQorICAgICAgICAgICAgIFRydWUKKyAgICAgICAgICIi IgorLSAgICAgICAgcmV0dXJuIHNlbGYuaXZhbHVlID09IDEgb3Igc2VsZi5fX21vZHVsdXMuaW50 MzIgPT0gMQorKyAgICAgICAgcmV0dXJuIHNlbGYuaXZhbHVlID09IDEgb3Igc2VsZi5fbW9kdWx1 cy5pbnQzMiA9PSAxCisgCisgICAgIGRlZiBfX2Jvb2xfXyhJbnRlZ2VyTW9kX2ludCBzZWxmKToK KyAgICAgICAgICIiIgorQEAgLTI1MTksOSArMjUxOSw5IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1v ZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgc2FnZTogYS5pc191bml0 KCkKKyAgICAgICAgICAgICBGYWxzZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gZ2Nk X2ludChzZWxmLml2YWx1ZSwgc2VsZi5fX21vZHVsdXMuaW50MzIpID09IDEKKysgICAgICAgIHJl dHVybiBnY2RfaW50KHNlbGYuaXZhbHVlLCBzZWxmLl9tb2R1bHVzLmludDMyKSA9PSAxCisgCist ICAgIGRlZiBfX2NydChJbnRlZ2VyTW9kX2ludCBzZWxmLCBJbnRlZ2VyTW9kX2ludCBvdGhlcik6 CisrICAgIGRlZiBfY3J0KEludGVnZXJNb2RfaW50IHNlbGYsIEludGVnZXJNb2RfaW50IG90aGVy KToKKyAgICAgICAgICIiIgorICAgICAgICAgVXNlIHRoZSBDaGluZXNlIFJlbWFpbmRlciBUaGVv cmVtIHRvIGZpbmQgYW4gZWxlbWVudCBvZiB0aGUKKyAgICAgICAgIGludGVnZXJzIG1vZHVsbyB0 aGUgcHJvZHVjdCBvZiB0aGUgbW9kdWxpIHRoYXQgcmVkdWNlcyB0byBzZWxmIGFuZAorQEAgLTI1 NDMsMTEgKzI1NDMsMTEgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fi c3RyYWN0KToKKyAgICAgICAgIGNkZWYgaW50X2Zhc3QzMl90IHgKKyAKKyAgICAgICAgIGZyb20g LmludGVnZXJfbW9kX3JpbmcgaW1wb3J0IEludGVnZXJNb2RSaW5nCistICAgICAgICBsaWZ0ID0g SW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZFJpbmcoc2VsZi5fX21vZHVsdXMuaW50MzIgKiBvdGhl ci5fX21vZHVsdXMuaW50MzIpKQorKyAgICAgICAgbGlmdCA9IEludGVnZXJNb2RfaW50KEludGVn ZXJNb2RSaW5nKHNlbGYuX21vZHVsdXMuaW50MzIgKiBvdGhlci5fbW9kdWx1cy5pbnQzMikpCisg CisgICAgICAgICB0cnk6CistICAgICAgICAgICAgeCA9IChvdGhlci5pdmFsdWUgLSBzZWxmLml2 YWx1ZSAlIG90aGVyLl9fbW9kdWx1cy5pbnQzMikgKiBtb2RfaW52ZXJzZV9pbnQoc2VsZi5fX21v ZHVsdXMuaW50MzIsIG90aGVyLl9fbW9kdWx1cy5pbnQzMikKKy0gICAgICAgICAgICBsaWZ0LnNl dF9mcm9tX2ludCggeCAqIHNlbGYuX19tb2R1bHVzLmludDMyICsgc2VsZi5pdmFsdWUgKQorKyAg ICAgICAgICAgIHggPSAob3RoZXIuaXZhbHVlIC0gc2VsZi5pdmFsdWUgJSBvdGhlci5fbW9kdWx1 cy5pbnQzMikgKiBtb2RfaW52ZXJzZV9pbnQoc2VsZi5fbW9kdWx1cy5pbnQzMiwgb3RoZXIuX21v ZHVsdXMuaW50MzIpCisrICAgICAgICAgICAgbGlmdC5zZXRfZnJvbV9pbnQoIHggKiBzZWxmLl9t b2R1bHVzLmludDMyICsgc2VsZi5pdmFsdWUgKQorICAgICAgICAgICAgIHJldHVybiBsaWZ0Cisg ICAgICAgICBleGNlcHQgWmVyb0RpdmlzaW9uRXJyb3I6CisgICAgICAgICAgICAgcmFpc2UgWmVy b0RpdmlzaW9uRXJyb3IoIm1vZHVsaSBtdXN0IGJlIGNvcHJpbWUiKQorQEAgLTI1ODYsOCArMjU4 Niw4IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgaW50X2Zhc3QzMl90IHgKKyAgICAgICAgIHggPSBz ZWxmLml2YWx1ZSArICg8SW50ZWdlck1vZF9pbnQ+cmlnaHQpLml2YWx1ZQorLSAgICAgICAgaWYg eCA+PSBzZWxmLl9fbW9kdWx1cy5pbnQzMjoKKy0gICAgICAgICAgICB4ID0geCAtIHNlbGYuX19t b2R1bHVzLmludDMyCisrICAgICAgICBpZiB4ID49IHNlbGYuX21vZHVsdXMuaW50MzI6CisrICAg ICAgICAgICAgeCA9IHggLSBzZWxmLl9tb2R1bHVzLmludDMyCisgICAgICAgICByZXR1cm4gc2Vs Zi5fbmV3X2MoeCkKKyAKKyAgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorQEAgLTI2MDEs NyArMjYwMSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFj dCk6CisgICAgICAgICBjZGVmIGludF9mYXN0MzJfdCB4CisgICAgICAgICB4ID0gc2VsZi5pdmFs dWUgLSAoPEludGVnZXJNb2RfaW50PnJpZ2h0KS5pdmFsdWUKKyAgICAgICAgIGlmIHggPCAwOgor LSAgICAgICAgICAgIHggPSB4ICsgc2VsZi5fX21vZHVsdXMuaW50MzIKKysgICAgICAgICAgICB4 ID0geCArIHNlbGYuX21vZHVsdXMuaW50MzIKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyh4 KQorIAorICAgICBjcGRlZiBfbmVnXyhzZWxmKToKK0BAIC0yNjE1LDcgKzI2MTUsNyBAQCBjZGVm IGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgIiIi CisgICAgICAgICBpZiBzZWxmLml2YWx1ZSA9PSAwOgorICAgICAgICAgICAgIHJldHVybiBzZWxm CistICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5fX21vZHVsdXMuaW50MzIgLSBzZWxm Lml2YWx1ZSkKKysgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhzZWxmLl9tb2R1bHVzLmludDMy IC0gc2VsZi5pdmFsdWUpCisgCisgICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAg ICAgICIiIgorQEAgLTI2MjUsNyArMjYyNSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQo SW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgc2FnZTogUig3KSAqIFIoOCkKKyAg ICAgICAgICAgICA2CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9uZXdfYygo c2VsZi5pdmFsdWUgKiAoPEludGVnZXJNb2RfaW50PnJpZ2h0KS5pdmFsdWUpICUgc2VsZi5fX21v ZHVsdXMuaW50MzIpCisrICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoKHNlbGYuaXZhbHVlICog KDxJbnRlZ2VyTW9kX2ludD5yaWdodCkuaXZhbHVlKSAlIHNlbGYuX21vZHVsdXMuaW50MzIpCisg CisgICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorQEAgLTI2MzUs MTYgKzI2MzUsMTYgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3Ry YWN0KToKKyAgICAgICAgICAgICBzYWdlOiBSKDIpLzMKKyAgICAgICAgICAgICA0CisgICAgICAg ICAiIiIKKy0gICAgICAgIGlmIHNlbGYuX19tb2R1bHVzLmludmVyc2VzIGlzIG5vdCBOb25lOgor LSAgICAgICAgICAgIHJpZ2h0X2ludmVyc2UgPSBzZWxmLl9fbW9kdWx1cy5pbnZlcnNlc1soPElu dGVnZXJNb2RfaW50PnJpZ2h0KS5pdmFsdWVdCisrICAgICAgICBpZiBzZWxmLl9tb2R1bHVzLmlu dmVyc2VzIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIHJpZ2h0X2ludmVyc2UgPSBzZWxmLl9t b2R1bHVzLmludmVyc2VzWyg8SW50ZWdlck1vZF9pbnQ+cmlnaHQpLml2YWx1ZV0KKyAgICAgICAg ICAgICBpZiByaWdodF9pbnZlcnNlIGlzIE5vbmU6CistICAgICAgICAgICAgICAgIHJhaXNlIFpl cm9EaXZpc2lvbkVycm9yKGYiaW52ZXJzZSBvZiBNb2Qoe3JpZ2h0fSwge3NlbGYuX19tb2R1bHVz LnNhZ2VJbnRlZ2VyfSkgZG9lcyBub3QgZXhpc3QiKQorKyAgICAgICAgICAgICAgICByYWlzZSBa ZXJvRGl2aXNpb25FcnJvcihmImludmVyc2Ugb2YgTW9kKHtyaWdodH0sIHtzZWxmLl9tb2R1bHVz LnNhZ2VJbnRlZ2VyfSkgZG9lcyBub3QgZXhpc3QiKQorICAgICAgICAgICAgIGVsc2U6CistICAg ICAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYygoc2VsZi5pdmFsdWUgKiAoPEludGVnZXJN b2RfaW50PnJpZ2h0X2ludmVyc2UpLml2YWx1ZSkgJSBzZWxmLl9fbW9kdWx1cy5pbnQzMikKKysg ICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKChzZWxmLml2YWx1ZSAqICg8SW50ZWdl ck1vZF9pbnQ+cmlnaHRfaW52ZXJzZSkuaXZhbHVlKSAlIHNlbGYuX21vZHVsdXMuaW50MzIpCisg CisgICAgICAgICBjZGVmIGludF9mYXN0MzJfdCB4CistICAgICAgICB4ID0gc2VsZi5pdmFsdWUg KiBtb2RfaW52ZXJzZV9pbnQoKDxJbnRlZ2VyTW9kX2ludD5yaWdodCkuaXZhbHVlLCBzZWxmLl9f bW9kdWx1cy5pbnQzMikKKy0gICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyh4JSBzZWxmLl9fbW9k dWx1cy5pbnQzMikKKysgICAgICAgIHggPSBzZWxmLml2YWx1ZSAqIG1vZF9pbnZlcnNlX2ludCgo PEludGVnZXJNb2RfaW50PnJpZ2h0KS5pdmFsdWUsIHNlbGYuX21vZHVsdXMuaW50MzIpCisrICAg ICAgICByZXR1cm4gc2VsZi5fbmV3X2MoeCUgc2VsZi5fbW9kdWx1cy5pbnQzMikKKyAKKyAgICAg ZGVmIF9faW50X18oSW50ZWdlck1vZF9pbnQgc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0yNzM5 LDcgKzI3MzksNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJNb2RfYWJzdHJh Y3QpOgorICAgICAgICAgaWYgayA9PSAwOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAg ICAgICBlbGlmIGsgPiAwOgorLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYygoc2VsZi5p dmFsdWUgPDwgaykgJSBzZWxmLl9fbW9kdWx1cy5pbnQzMikKKysgICAgICAgICAgICByZXR1cm4g c2VsZi5fbmV3X2MoKHNlbGYuaXZhbHVlIDw8IGspICUgc2VsZi5fbW9kdWx1cy5pbnQzMikKKyAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuaXZhbHVl ID4+ICgtaykpCisgCitAQCAtMjgwMiw3ICsyODAyLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9k X2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICBzaWdfb24oKQorICAgICAg ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgbXB6X2luaXQocmVzX21weikKKy0gICAgICAg ICAgICAgICAgbXB6X3Bvd19oZWxwZXIocmVzX21weiwgKDxJbnRlZ2VyPmJhc2UpLnZhbHVlLCBl eHAsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKQorKyAgICAgICAgICAgICAgICBt cHpfcG93X2hlbHBlcihyZXNfbXB6LCAoPEludGVnZXI+YmFzZSkudmFsdWUsIGV4cCwgc2VsZi5f bW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKyAgICAgICAgICAgICAgICAgcmVzID0gbXB6X2dl dF91aShyZXNfbXB6KQorICAgICAgICAgICAgICAgICBtcHpfY2xlYXIocmVzX21weikKKyAgICAg ICAgICAgICBmaW5hbGx5OgorQEAgLTI4MTEsMTIgKzI4MTEsMTIgQEAgY2RlZiBjbGFzcyBJbnRl Z2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAKKyAgICAgICAgIGlmIGxvbmdfZXhw ID09IDAgYW5kIHNlbGYuaXZhbHVlID09IDA6CisgICAgICAgICAgICAgIyBSZXR1cm4gMCBpZiB0 aGUgbW9kdWx1cyBpcyAxLCBvdGhlcndpc2UgcmV0dXJuIDEuCistICAgICAgICAgICAgcmV0dXJu IHNlbGYuX25ld19jKHNlbGYuX19tb2R1bHVzLmludDMyICE9IDEpCisrICAgICAgICAgICAgcmV0 dXJuIHNlbGYuX25ld19jKHNlbGYuX21vZHVsdXMuaW50MzIgIT0gMSkKKyAgICAgICAgIGNkZWYg YmludCBpbnZlcnQgPSBGYWxzZQorICAgICAgICAgaWYgbG9uZ19leHAgPCAwOgorICAgICAgICAg ICAgIGludmVydCA9IFRydWUKKyAgICAgICAgICAgICBsb25nX2V4cCA9IC1sb25nX2V4cAorLSAg ICAgICAgcmVzID0gbW9kX3Bvd19pbnQoc2VsZi5pdmFsdWUsIGxvbmdfZXhwLCBzZWxmLl9fbW9k dWx1cy5pbnQzMikKKysgICAgICAgIHJlcyA9IG1vZF9wb3dfaW50KHNlbGYuaXZhbHVlLCBsb25n X2V4cCwgc2VsZi5fbW9kdWx1cy5pbnQzMikKKyAgICAgICAgIGlmIGludmVydDoKKyAgICAgICAg ICAgICByZXR1cm4gfnNlbGYuX25ld19jKHJlcykKKyAgICAgICAgIGVsc2U6CitAQCAtMjgzMywx NCArMjgzMywxNCBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJNb2RfYWJzdHJh Y3QpOgorICAgICAgICAgICAgIHNhZ2U6IE1vZCgwLDEpXi0xCisgICAgICAgICAgICAgMAorICAg ICAgICAgIiIiCistICAgICAgICBpZiBzZWxmLl9fbW9kdWx1cy5pbnZlcnNlcyBpcyBub3QgTm9u ZToKKy0gICAgICAgICAgICB4ID0gc2VsZi5fX21vZHVsdXMuaW52ZXJzZXNbc2VsZi5pdmFsdWVd CisrICAgICAgICBpZiBzZWxmLl9tb2R1bHVzLmludmVyc2VzIGlzIG5vdCBOb25lOgorKyAgICAg ICAgICAgIHggPSBzZWxmLl9tb2R1bHVzLmludmVyc2VzW3NlbGYuaXZhbHVlXQorICAgICAgICAg ICAgIGlmIHggaXMgTm9uZToKKy0gICAgICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJy b3IoZiJpbnZlcnNlIG9mIE1vZCh7c2VsZn0sIHtzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcn0p IGRvZXMgbm90IGV4aXN0IikKKysgICAgICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJy b3IoZiJpbnZlcnNlIG9mIE1vZCh7c2VsZn0sIHtzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyfSkg ZG9lcyBub3QgZXhpc3QiKQorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIHJl dHVybiB4CisgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyht b2RfaW52ZXJzZV9pbnQoc2VsZi5pdmFsdWUsIHNlbGYuX19tb2R1bHVzLmludDMyKSkKKysgICAg ICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MobW9kX2ludmVyc2VfaW50KHNlbGYuaXZhbHVlLCBz ZWxmLl9tb2R1bHVzLmludDMyKSkKKyAKKyAgICAgZGVmIGxpZnQoSW50ZWdlck1vZF9pbnQgc2Vs Zik6CisgICAgICAgICAiIiIKK0BAIC0zMDA2LDE1ICszMDA2LDE1IEBAIGNkZWYgY2xhc3MgSW50 ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgc2FnZTogR0Yo MTAzKSgtMSkuc3FydChleHRlbmQ9RmFsc2UsIGFsbD1UcnVlKQorICAgICAgICAgICAgIFtdCisg ICAgICAgICAiIiIKKy0gICAgICAgIGNkZWYgaW50X2Zhc3QzMl90IGksIG4gPSBzZWxmLl9fbW9k dWx1cy5pbnQzMgorKyAgICAgICAgY2RlZiBpbnRfZmFzdDMyX3QgaSwgbiA9IHNlbGYuX21vZHVs dXMuaW50MzIKKyAgICAgICAgIGlmIG4gPiAxMDA6CisgICAgICAgICAgICAgbW9kdWxpID0gc2Vs Zi5fcGFyZW50LmZhY3RvcmVkX29yZGVyKCkKKyAgICAgICAgICMgVW5sZXNzIHRoZSBtb2R1bHVz IGlzIHRpbnksIHRlc3QgdG8gc2VlIGlmIHdlJ3JlIGluIHRoZSByZWFsbHkKKyAgICAgICAgICMg ZWFzeSBjYXNlIG9mIG4gcHJpbWUsIG4gPSAzIG1vZCA0LgorICAgICAgICAgaWYgbiA+IDEwMCBh bmQgbiAlIDQgPT0gMyBhbmQgbGVuKG1vZHVsaSkgPT0gMSBhbmQgbW9kdWxpWzBdWzFdID09IDE6 CistICAgICAgICAgICAgaWYgamFjb2JpX2ludChzZWxmLml2YWx1ZSwgc2VsZi5fX21vZHVsdXMu aW50MzIpID09IDE6CisrICAgICAgICAgICAgaWYgamFjb2JpX2ludChzZWxmLml2YWx1ZSwgc2Vs Zi5fbW9kdWx1cy5pbnQzMikgPT0gMToKKyAgICAgICAgICAgICAgICAgIyBpdCdzIGEgbm9uLXpl cm8gc3F1YXJlLCBzcXJ0KGEpID0gYV4ocCsxKS80CistICAgICAgICAgICAgICAgIGkgPSBtb2Rf cG93X2ludChzZWxmLml2YWx1ZSwgKHNlbGYuX19tb2R1bHVzLmludDMyKzEpLzQsIG4pCisrICAg ICAgICAgICAgICAgIGkgPSBtb2RfcG93X2ludChzZWxmLml2YWx1ZSwgKHNlbGYuX21vZHVsdXMu aW50MzIrMSkvNCwgbikKKyAgICAgICAgICAgICAgICAgaWYgaSA+IG4gLyAyOgorICAgICAgICAg ICAgICAgICAgICAgaSA9IG4gLSBpCisgICAgICAgICAgICAgICAgIGlmIGFsbDoKK0BAIC0zMDQ5 LDcgKzMwNDksNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJNb2RfYWJzdHJh Y3QpOgorICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGB4YCBvciBgLXhgLCB3aGljaGV2 ZXIgaGFzIGEKKyAgICAgICAgIHBvc2l0aXZlIHJlcHJlc2VudGF0aXZlIGluIGAtbi8yIDwgeCBc bGVxIG4vMmAuCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIHNlbGYuaXZhbHVlID4gc2VsZi5f X21vZHVsdXMuaW50MzIgLyAyOgorKyAgICAgICAgaWYgc2VsZi5pdmFsdWUgPiBzZWxmLl9tb2R1 bHVzLmludDMyIC8gMjoKKyAgICAgICAgICAgICByZXR1cm4gLXNlbGYKKyAgICAgICAgIHJldHVy biBzZWxmCisgCitAQCAtMzA4Miw5ICszMDgyLDkgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2lu dChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICBzYWdlOiBtb2QoMCwxKS5nY2Qo bW9kKDAsMSkpCisgICAgICAgICAgICAgMAorICAgICAgICAgIiIiCistICAgICAgICBjZGVmIGlu dF9mYXN0MzJfdCBnID0gZ2NkX2ludChzZWxmLml2YWx1ZSwgc2VsZi5fX21vZHVsdXMuaW50MzIp CisrICAgICAgICBjZGVmIGludF9mYXN0MzJfdCBnID0gZ2NkX2ludChzZWxmLml2YWx1ZSwgc2Vs Zi5fbW9kdWx1cy5pbnQzMikKKyAgICAgICAgIGcgPSBnY2RfaW50KGcsIG90aGVyLml2YWx1ZSkK Ky0gICAgICAgIGlmIGcgPT0gc2VsZi5fX21vZHVsdXMuaW50MzI6ICMgc2VsZiA9IG90aGVyID0g MAorKyAgICAgICAgaWYgZyA9PSBzZWxmLl9tb2R1bHVzLmludDMyOiAjIHNlbGYgPSBvdGhlciA9 IDAKKyAgICAgICAgICAgICBnID0gMAorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKGcpCisg CitAQCAtMzI1NiwyNyArMzI1NiwyNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50 ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgIGNkZWYgSW50ZWdlck1vZF9pbnQ2NCBfbmV3X2Moc2Vs ZiwgaW50X2Zhc3Q2NF90IHZhbHVlKToKKyAgICAgICAgIGNkZWYgSW50ZWdlck1vZF9pbnQ2NCB4 CisgICAgICAgICB4ID0gSW50ZWdlck1vZF9pbnQ2NC5fX25ld19fKEludGVnZXJNb2RfaW50NjQp CistICAgICAgICB4Ll9fbW9kdWx1cyA9IHNlbGYuX19tb2R1bHVzCisrICAgICAgICB4Ll9tb2R1 bHVzID0gc2VsZi5fbW9kdWx1cworICAgICAgICAgeC5fcGFyZW50ID0gc2VsZi5fcGFyZW50Cisg ICAgICAgICB4Lml2YWx1ZSA9IHZhbHVlCisgICAgICAgICByZXR1cm4geAorIAorICAgICBjZGVm IHZvaWQgc2V0X2Zyb21fbXB6KHNlbGYsIG1wel90IHZhbHVlKToKKy0gICAgICAgIHNlbGYuaXZh bHVlID0gbXB6X2ZkaXZfdWkodmFsdWUsIHNlbGYuX19tb2R1bHVzLmludDY0KQorKyAgICAgICAg c2VsZi5pdmFsdWUgPSBtcHpfZmRpdl91aSh2YWx1ZSwgc2VsZi5fbW9kdWx1cy5pbnQ2NCkKKyAK KyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX2xvbmcoc2VsZiwgbG9uZyB2YWx1ZSk6CistICAgICAg ICBzZWxmLml2YWx1ZSA9IHZhbHVlICUgc2VsZi5fX21vZHVsdXMuaW50NjQKKysgICAgICAgIHNl bGYuaXZhbHVlID0gdmFsdWUgJSBzZWxmLl9tb2R1bHVzLmludDY0CisgICAgICAgICBpZiBzZWxm Lml2YWx1ZSA8IDA6CistICAgICAgICAgICAgc2VsZi5pdmFsdWUgKz0gc2VsZi5fX21vZHVsdXMu aW50NjQKKysgICAgICAgICAgICBzZWxmLml2YWx1ZSArPSBzZWxmLl9tb2R1bHVzLmludDY0Cisg CisgICAgIGNkZWYgdm9pZCBzZXRfZnJvbV91bG9uZ19mYXN0KHNlbGYsIHVuc2lnbmVkIGxvbmcg dmFsdWUpOgorICAgICAgICAgc2VsZi5pdmFsdWUgPSB2YWx1ZQorIAorICAgICBjZGVmIHZvaWQg c2V0X2Zyb21faW50KEludGVnZXJNb2RfaW50NjQgc2VsZiwgaW50X2Zhc3Q2NF90IGl2YWx1ZSk6 CisgICAgICAgICBpZiBpdmFsdWUgPCAwOgorLSAgICAgICAgICAgIHNlbGYuaXZhbHVlID0gc2Vs Zi5fX21vZHVsdXMuaW50NjQgKyAoaXZhbHVlICUgc2VsZi5fX21vZHVsdXMuaW50NjQpICMgSXMg aXZhbHVlICUgc2VsZi5fX21vZHVsdXMuaW50NjQgYWN0dWFsbHkgbmVnYXRpdmU/CistICAgICAg ICBlbGlmIGl2YWx1ZSA+PSBzZWxmLl9fbW9kdWx1cy5pbnQ2NDoKKy0gICAgICAgICAgICBzZWxm Lml2YWx1ZSA9IGl2YWx1ZSAlIHNlbGYuX19tb2R1bHVzLmludDY0CisrICAgICAgICAgICAgc2Vs Zi5pdmFsdWUgPSBzZWxmLl9tb2R1bHVzLmludDY0ICsgKGl2YWx1ZSAlIHNlbGYuX21vZHVsdXMu aW50NjQpICMgSXMgaXZhbHVlICUgc2VsZi5fbW9kdWx1cy5pbnQ2NCBhY3R1YWxseSBuZWdhdGl2 ZT8KKysgICAgICAgIGVsaWYgaXZhbHVlID49IHNlbGYuX21vZHVsdXMuaW50NjQ6CisrICAgICAg ICAgICAgc2VsZi5pdmFsdWUgPSBpdmFsdWUgJSBzZWxmLl9tb2R1bHVzLmludDY0CisgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgIHNlbGYuaXZhbHVlID0gaXZhbHVlCisgCitAQCAtMzM0NCw5 ICszMzQ0LDkgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2RfYWJzdHJh Y3QpOgorICAgICAgICAgICAgIHNhZ2U6IG1vZCgyNSwgNV4xMCkuaXNfdW5pdCgpCisgICAgICAg ICAgICAgRmFsc2UKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIGdjZF9pbnQ2NChzZWxm Lml2YWx1ZSwgc2VsZi5fX21vZHVsdXMuaW50NjQpID09IDEKKysgICAgICAgIHJldHVybiBnY2Rf aW50NjQoc2VsZi5pdmFsdWUsIHNlbGYuX21vZHVsdXMuaW50NjQpID09IDEKKyAKKy0gICAgZGVm IF9fY3J0KEludGVnZXJNb2RfaW50NjQgc2VsZiwgSW50ZWdlck1vZF9pbnQ2NCBvdGhlcik6Cisr ICAgIGRlZiBfY3J0KEludGVnZXJNb2RfaW50NjQgc2VsZiwgSW50ZWdlck1vZF9pbnQ2NCBvdGhl cik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFVzZSB0aGUgQ2hpbmVzZSBSZW1haW5kZXIgVGhl b3JlbSB0byBmaW5kIGFuIGVsZW1lbnQgb2YgdGhlCisgICAgICAgICBpbnRlZ2VycyBtb2R1bG8g dGhlIHByb2R1Y3Qgb2YgdGhlIG1vZHVsaSB0aGF0IHJlZHVjZXMgdG8gc2VsZiBhbmQKK0BAIC0z Mzc5LDExICszMzc5LDExIEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9k X2Fic3RyYWN0KToKKyAgICAgICAgIGNkZWYgaW50X2Zhc3Q2NF90IHgKKyAKKyAgICAgICAgIGZy b20gLmludGVnZXJfbW9kX3JpbmcgaW1wb3J0IEludGVnZXJNb2RSaW5nCistICAgICAgICBsaWZ0 ID0gSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kUmluZyhzZWxmLl9fbW9kdWx1cy5pbnQ2NCAq IG90aGVyLl9fbW9kdWx1cy5pbnQ2NCkpCisrICAgICAgICBsaWZ0ID0gSW50ZWdlck1vZF9pbnQ2 NChJbnRlZ2VyTW9kUmluZyhzZWxmLl9tb2R1bHVzLmludDY0ICogb3RoZXIuX21vZHVsdXMuaW50 NjQpKQorIAorICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgIHggPSAob3RoZXIuaXZhbHVlIC0g c2VsZi5pdmFsdWUgJSBvdGhlci5fX21vZHVsdXMuaW50NjQpICogbW9kX2ludmVyc2VfaW50NjQo c2VsZi5fX21vZHVsdXMuaW50NjQsIG90aGVyLl9fbW9kdWx1cy5pbnQ2NCkKKy0gICAgICAgICAg ICBsaWZ0LnNldF9mcm9tX2ludCggeCAqIHNlbGYuX19tb2R1bHVzLmludDY0ICsgc2VsZi5pdmFs dWUgKQorKyAgICAgICAgICAgIHggPSAob3RoZXIuaXZhbHVlIC0gc2VsZi5pdmFsdWUgJSBvdGhl ci5fbW9kdWx1cy5pbnQ2NCkgKiBtb2RfaW52ZXJzZV9pbnQ2NChzZWxmLl9tb2R1bHVzLmludDY0 LCBvdGhlci5fbW9kdWx1cy5pbnQ2NCkKKysgICAgICAgICAgICBsaWZ0LnNldF9mcm9tX2ludCgg eCAqIHNlbGYuX21vZHVsdXMuaW50NjQgKyBzZWxmLml2YWx1ZSApCisgICAgICAgICAgICAgcmV0 dXJuIGxpZnQKKyAgICAgICAgIGV4Y2VwdCBaZXJvRGl2aXNpb25FcnJvcjoKKyAgICAgICAgICAg ICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcigibW9kdWxpIG11c3QgYmUgY29wcmltZSIpCitAQCAt MzQyMiw4ICszNDIyLDggQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2Rf YWJzdHJhY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGludF9mYXN0NjRfdCB4Cisg ICAgICAgICB4ID0gc2VsZi5pdmFsdWUgKyAoPEludGVnZXJNb2RfaW50NjQ+cmlnaHQpLml2YWx1 ZQorLSAgICAgICAgaWYgeCA+PSBzZWxmLl9fbW9kdWx1cy5pbnQ2NDoKKy0gICAgICAgICAgICB4 ID0geCAtIHNlbGYuX19tb2R1bHVzLmludDY0CisrICAgICAgICBpZiB4ID49IHNlbGYuX21vZHVs dXMuaW50NjQ6CisrICAgICAgICAgICAgeCA9IHggLSBzZWxmLl9tb2R1bHVzLmludDY0CisgICAg ICAgICByZXR1cm4gc2VsZi5fbmV3X2MoeCkKKyAKKyAgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmln aHQpOgorQEAgLTM0MzcsNyArMzQzNyw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJ bnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIGNkZWYgaW50X2Zhc3Q2NF90IHgKKyAgICAg ICAgIHggPSBzZWxmLml2YWx1ZSAtICg8SW50ZWdlck1vZF9pbnQ2ND5yaWdodCkuaXZhbHVlCisg ICAgICAgICBpZiB4IDwgMDoKKy0gICAgICAgICAgICB4ID0geCArIHNlbGYuX19tb2R1bHVzLmlu dDY0CisrICAgICAgICAgICAgeCA9IHggKyBzZWxmLl9tb2R1bHVzLmludDY0CisgICAgICAgICBy ZXR1cm4gc2VsZi5fbmV3X2MoeCkKKyAKKyAgICAgY3BkZWYgX25lZ18oc2VsZik6CitAQCAtMzQ1 MSw3ICszNDUxLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2RfYWJz dHJhY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBpZiBzZWxmLml2YWx1ZSA9PSAwOgorICAg ICAgICAgICAgIHJldHVybiBzZWxmCistICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5f X21vZHVsdXMuaW50NjQgLSBzZWxmLml2YWx1ZSkKKysgICAgICAgIHJldHVybiBzZWxmLl9uZXdf YyhzZWxmLl9tb2R1bHVzLmludDY0IC0gc2VsZi5pdmFsdWUpCisgCisgICAgIGNwZGVmIF9tdWxf KHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorQEAgLTM0NjEsNyArMzQ2MSw3IEBAIGNkZWYg Y2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAg ICBzYWdlOiBSKDcwMCkgKiBSKDgwMCkKKyAgICAgICAgICAgICA2MDAwMAorICAgICAgICAgIiIi CistICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoKHNlbGYuaXZhbHVlICogKDxJbnRlZ2VyTW9k X2ludDY0PnJpZ2h0KS5pdmFsdWUpICUgc2VsZi5fX21vZHVsdXMuaW50NjQpCisrICAgICAgICBy ZXR1cm4gc2VsZi5fbmV3X2MoKHNlbGYuaXZhbHVlICogKDxJbnRlZ2VyTW9kX2ludDY0PnJpZ2h0 KS5pdmFsdWUpICUgc2VsZi5fbW9kdWx1cy5pbnQ2NCkKKyAKKyAKKyAgICAgY3BkZWYgX2Rpdl8o c2VsZiwgcmlnaHQpOgorQEAgLTM0NzMsNyArMzQ3Myw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1v ZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICAzMzMzNAorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoKHNlbGYuaXZhbHVlICogbW9kX2lu dmVyc2VfaW50NjQoKDxJbnRlZ2VyTW9kX2ludDY0PnJpZ2h0KS5pdmFsdWUsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9fbW9kdWx1cy5pbnQ2NCkgKSAlIHNlbGYu X19tb2R1bHVzLmludDY0KQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fbW9kdWx1cy5pbnQ2NCkgKSAlIHNlbGYuX21vZHVsdXMuaW50NjQpCisgCisgICAgIGRlZiBf X2ludF9fKEludGVnZXJNb2RfaW50NjQgc2VsZik6CisgICAgICAgICByZXR1cm4gc2VsZi5pdmFs dWUKK0BAIC0zNTU5LDcgKzM1NTksNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50 ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICBpZiBrID09IDA6CisgICAgICAgICAgICAgcmV0 dXJuIHNlbGYKKyAgICAgICAgIGVsaWYgayA+IDA6CistICAgICAgICAgICAgcmV0dXJuIHNlbGYu X25ld19jKChzZWxmLml2YWx1ZSA8PCBrKSAlIHNlbGYuX19tb2R1bHVzLmludDY0KQorKyAgICAg ICAgICAgIHJldHVybiBzZWxmLl9uZXdfYygoc2VsZi5pdmFsdWUgPDwgaykgJSBzZWxmLl9tb2R1 bHVzLmludDY0KQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3 X2Moc2VsZi5pdmFsdWUgPj4gKC1rKSkKKyAKK0BAIC0zNjMzLDcgKzM2MzMsNyBAQCBjZGVmIGNs YXNzIEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAg c2lnX29uKCkKKyAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIG1wel9pbml0KHJl c19tcHopCistICAgICAgICAgICAgICAgIG1wel9wb3dfaGVscGVyKHJlc19tcHosICg8SW50ZWdl cj5iYXNlKS52YWx1ZSwgZXhwLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKysg ICAgICAgICAgICAgICAgbXB6X3Bvd19oZWxwZXIocmVzX21weiwgKDxJbnRlZ2VyPmJhc2UpLnZh bHVlLCBleHAsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisgICAgICAgICAgICAg ICAgIHJlcyA9IG1wel9nZXRfdWkocmVzX21weikKKyAgICAgICAgICAgICAgICAgbXB6X2NsZWFy KHJlc19tcHopCisgICAgICAgICAgICAgZmluYWxseToKK0BAIC0zNjQyLDE0ICszNjQyLDE0IEBA IGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAKKyAg ICAgICAgIGlmIGxvbmdfZXhwID09IDAgYW5kIHNlbGYuaXZhbHVlID09IDA6CisgICAgICAgICAg ICAgIyBSZXR1cm4gMCBpZiB0aGUgbW9kdWx1cyBpcyAxLCBvdGhlcndpc2UgcmV0dXJuIDEuCist ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuX19tb2R1bHVzLmludDY0ICE9IDEp CisrICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuX21vZHVsdXMuaW50NjQgIT0g MSkKKyAgICAgICAgIGNkZWYgYmludCBpbnZlcnQgPSBGYWxzZQorICAgICAgICAgaWYgbG9uZ19l eHAgPCAwOgorICAgICAgICAgICAgIGludmVydCA9IFRydWUKKyAgICAgICAgICAgICBsb25nX2V4 cCA9IC1sb25nX2V4cAorLSAgICAgICAgcmVzID0gbW9kX3Bvd19pbnQ2NChzZWxmLml2YWx1ZSwg bG9uZ19leHAsIHNlbGYuX19tb2R1bHVzLmludDY0KQorKyAgICAgICAgcmVzID0gbW9kX3Bvd19p bnQ2NChzZWxmLml2YWx1ZSwgbG9uZ19leHAsIHNlbGYuX21vZHVsdXMuaW50NjQpCisgICAgICAg ICBpZiBpbnZlcnQ6CistICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKG1vZF9pbnZlcnNl X2ludDY0KHJlcywgc2VsZi5fX21vZHVsdXMuaW50NjQpKQorKyAgICAgICAgICAgIHJldHVybiBz ZWxmLl9uZXdfYyhtb2RfaW52ZXJzZV9pbnQ2NChyZXMsIHNlbGYuX21vZHVsdXMuaW50NjQpKQor ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MocmVzKQorIAor QEAgLTM2NjYsNyArMzY2Niw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2Vy TW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICBzYWdlOiBhCisgICAgICAgICAgICAgNworICAg ICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MobW9kX2ludmVyc2VfaW50NjQo c2VsZi5pdmFsdWUsIHNlbGYuX19tb2R1bHVzLmludDY0KSkKKysgICAgICAgIHJldHVybiBzZWxm Ll9uZXdfYyhtb2RfaW52ZXJzZV9pbnQ2NChzZWxmLml2YWx1ZSwgc2VsZi5fbW9kdWx1cy5pbnQ2 NCkpCisgCisgICAgIGRlZiBsaWZ0KEludGVnZXJNb2RfaW50NjQgc2VsZik6CisgICAgICAgICAi IiIKK0BAIC0zNzE1LDcgKzM3MTUsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50 ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYHhgIG9y IGAteGAsIHdoaWNoZXZlciBoYXMgYQorICAgICAgICAgcG9zaXRpdmUgcmVwcmVzZW50YXRpdmUg aW4gYC1uLzIgPCB4IFxsZXEgbi8yYC4KKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgc2VsZi5p dmFsdWUgPiBzZWxmLl9fbW9kdWx1cy5pbnQ2NCAvIDI6CisrICAgICAgICBpZiBzZWxmLml2YWx1 ZSA+IHNlbGYuX21vZHVsdXMuaW50NjQgLyAyOgorICAgICAgICAgICAgIHJldHVybiAtc2VsZgor ICAgICAgICAgcmV0dXJuIHNlbGYKKyAKK0BAIC0zNzM4LDkgKzM3MzgsOSBAQCBjZGVmIGNsYXNz IEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgc2Fn ZTogbW9kKDAsMTdeNSkuZ2NkKG1vZCgwLDE3XjUpKQorICAgICAgICAgICAgIDAKKyAgICAgICAg ICIiIgorLSAgICAgICAgY2RlZiBpbnRfZmFzdDY0X3QgZyA9IGdjZF9pbnQ2NChzZWxmLml2YWx1 ZSwgc2VsZi5fX21vZHVsdXMuaW50NjQpCisrICAgICAgICBjZGVmIGludF9mYXN0NjRfdCBnID0g Z2NkX2ludDY0KHNlbGYuaXZhbHVlLCBzZWxmLl9tb2R1bHVzLmludDY0KQorICAgICAgICAgZyA9 IGdjZF9pbnQ2NChnLCBvdGhlci5pdmFsdWUpCistICAgICAgICBpZiBnID09IHNlbGYuX19tb2R1 bHVzLmludDY0OiAjIHNlbGYgPSBvdGhlciA9IDAKKysgICAgICAgIGlmIGcgPT0gc2VsZi5fbW9k dWx1cy5pbnQ2NDogIyBzZWxmID0gb3RoZXIgPSAwCisgICAgICAgICAgICAgZyA9IDAKKyAgICAg ICAgIHJldHVybiBzZWxmLl9uZXdfYyhnKQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Jpbmdz L2ZyYWN0aW9uX2ZpZWxkX0ZwVC5weXggYi9zcmMvc2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9G cFQucHl4CitpbmRleCAwYTI1MTkxYTExYy4uYzliYjVkNWEzODQgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9GcFQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9m cmFjdGlvbl9maWVsZF9GcFQucHl4CitAQCAtMTY1MCw3ICsxNjUwLDcgQEAgY2RlZiBjbGFzcyBG cFRfRnBfc2VjdGlvbihTZWN0aW9uKToKKyAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv cigibm90IGNvbnN0YW50IikKKyAgICAgICAgIGFucyA9IEludGVnZXJNb2RfaW50Ll9fbmV3X18o SW50ZWdlck1vZF9pbnQpCisgICAgICAgICBhbnMuX3BhcmVudCA9IHNlbGYuY29kb21haW4oKQor LSAgICAgICAgYW5zLl9fbW9kdWx1cyA9IGFucy5fcGFyZW50Ll9weXhfb3JkZXIKKysgICAgICAg IGFucy5fbW9kdWx1cyA9IGFucy5fcGFyZW50Ll9weXhfb3JkZXIKKyAgICAgICAgIGlmIG5tb2Rf cG9seV9nZXRfY29lZmZfdWkoeC5fZGVub20sIDApICE9IDE6CisgICAgICAgICAgICAgbm9ybWFs aXplKHguX251bWVyLCB4Ll9kZW5vbSwgc2VsZi5wKQorICAgICAgICAgYW5zLml2YWx1ZSA9IG5t b2RfcG9seV9nZXRfY29lZmZfdWkoeC5fbnVtZXIsIDApCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv cmluZ3MvZnJhY3Rpb25fZmllbGRfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9mcmFjdGlv bl9maWVsZF9lbGVtZW50LnB5eAoraW5kZXggMTFhMmI2NDZkMzUuLjc1ZTQ3YWYxMjk5IDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmllbGRfZWxlbWVudC5weXgKKysrKyBi L3NyYy9zYWdlL3JpbmdzL2ZyYWN0aW9uX2ZpZWxkX2VsZW1lbnQucHl4CitAQCAtNzgsOCArNzgs OCBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAg ICAgICBzYWdlOiBGLm9uZSgpLnF1b19yZW0oRi5vbmUoKSkKKyAgICAgICAgICgxLCAwKQorICAg ICAiIiIKKy0gICAgY2RlZiBvYmplY3QgX19udW1lcmF0b3IKKy0gICAgY2RlZiBvYmplY3QgX19k ZW5vbWluYXRvcgorKyAgICBjZGVmIG9iamVjdCBfbnVtZXJhdG9yCisrICAgIGNkZWYgb2JqZWN0 IF9kZW5vbWluYXRvcgorICAgICBjZGVmIGJpbnQgX2lzX3JlZHVjZWQKKyAKKyAgICAgZGVmIF9f aW5pdF9fKHNlbGYsIHBhcmVudCwgbnVtZXJhdG9yLCBkZW5vbWluYXRvcj0xLAorQEAgLTEwOCwx NyArMTA4LDE3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50 KToKKyAgICAgICAgICIiIgorICAgICAgICAgRmllbGRFbGVtZW50Ll9faW5pdF9fKHNlbGYsIHBh cmVudCkKKyAgICAgICAgIGlmIGNvZXJjZToKKy0gICAgICAgICAgICBzZWxmLl9fbnVtZXJhdG9y ICAgPSBwYXJlbnQucmluZygpKG51bWVyYXRvcikKKy0gICAgICAgICAgICBzZWxmLl9fZGVub21p bmF0b3IgPSBwYXJlbnQucmluZygpKGRlbm9taW5hdG9yKQorKyAgICAgICAgICAgIHNlbGYuX251 bWVyYXRvciAgID0gcGFyZW50LnJpbmcoKShudW1lcmF0b3IpCisrICAgICAgICAgICAgc2VsZi5f ZGVub21pbmF0b3IgPSBwYXJlbnQucmluZygpKGRlbm9taW5hdG9yKQorICAgICAgICAgZWxzZToK Ky0gICAgICAgICAgICBzZWxmLl9fbnVtZXJhdG9yICAgPSBudW1lcmF0b3IKKy0gICAgICAgICAg ICBzZWxmLl9fZGVub21pbmF0b3IgPSBkZW5vbWluYXRvcgorKyAgICAgICAgICAgIHNlbGYuX251 bWVyYXRvciAgID0gbnVtZXJhdG9yCisrICAgICAgICAgICAgc2VsZi5fZGVub21pbmF0b3IgPSBk ZW5vbWluYXRvcgorICAgICAgICAgaWYgcmVkdWNlIGFuZCBwYXJlbnQuaXNfZXhhY3QoKToKKyAg ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIHNlbGYucmVkdWNlKCkKKyAgICAgICAg ICAgICBleGNlcHQgQXJpdGhtZXRpY0Vycm9yOgorICAgICAgICAgICAgICAgICBwYXNzCistICAg ICAgICBpZiBzZWxmLl9fZGVub21pbmF0b3IuaXNfemVybygpOgorKyAgICAgICAgaWYgc2VsZi5f ZGVub21pbmF0b3IuaXNfemVybygpOgorICAgICAgICAgICAgIHJhaXNlIFplcm9EaXZpc2lvbkVy cm9yKCJmcmFjdGlvbiBmaWVsZCBlbGVtZW50IGRpdmlzaW9uIGJ5IHplcm8iKQorIAorICAgICBk ZWYgX2ltX2dlbnNfKHNlbGYsIGNvZG9tYWluLCBpbV9nZW5zLCBiYXNlX21hcD1Ob25lKToKK0BA IC0xNTQsOCArMTU0LDggQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVs ZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IHBoaShpL2EpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2Fn ZS5yaW5ncy5udW1iZXJfZmllbGQKKyAgICAgICAgICAgICAoKC1pKSkvYgorICAgICAgICAgIiIi CistICAgICAgICBubnVtID0gY29kb21haW4uY29lcmNlKHNlbGYuX19udW1lcmF0b3IuX2ltX2dl bnNfKGNvZG9tYWluLCBpbV9nZW5zLCBiYXNlX21hcD1iYXNlX21hcCkpCistICAgICAgICBuZGVu ID0gY29kb21haW4uY29lcmNlKHNlbGYuX19kZW5vbWluYXRvci5faW1fZ2Vuc18oY29kb21haW4s IGltX2dlbnMsIGJhc2VfbWFwPWJhc2VfbWFwKSkKKysgICAgICAgIG5udW0gPSBjb2RvbWFpbi5j b2VyY2Uoc2VsZi5fbnVtZXJhdG9yLl9pbV9nZW5zXyhjb2RvbWFpbiwgaW1fZ2VucywgYmFzZV9t YXA9YmFzZV9tYXApKQorKyAgICAgICAgbmRlbiA9IGNvZG9tYWluLmNvZXJjZShzZWxmLl9kZW5v bWluYXRvci5faW1fZ2Vuc18oY29kb21haW4sIGltX2dlbnMsIGJhc2VfbWFwPWJhc2VfbWFwKSkK KyAgICAgICAgIHJldHVybiBjb2RvbWFpbi5jb2VyY2Uobm51bS9uZGVuKQorIAorICAgICBjcGRl ZiByZWR1Y2Uoc2VsZik6CitAQCAtMTkxLDEwICsxOTEsMTAgQEAgY2RlZiBjbGFzcyBGcmFjdGlv bkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgaWYgc2VsZi5faXNfcmVkdWNl ZDoKKyAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIHRyeToKKy0gICAgICAgICAgICBnID0g c2VsZi5fX251bWVyYXRvci5nY2Qoc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgICAgIGcg PSBzZWxmLl9udW1lcmF0b3IuZ2NkKHNlbGYuX2Rlbm9taW5hdG9yKQorICAgICAgICAgICAgIGlm IG5vdCBnLmlzX3VuaXQoKToKKy0gICAgICAgICAgICAgICAgc2VsZi5fX251bWVyYXRvciAvLz0g ZworLSAgICAgICAgICAgICAgICBzZWxmLl9fZGVub21pbmF0b3IgLy89IGcKKysgICAgICAgICAg ICAgICAgc2VsZi5fbnVtZXJhdG9yIC8vPSBnCisrICAgICAgICAgICAgICAgIHNlbGYuX2Rlbm9t aW5hdG9yIC8vPSBnCisgICAgICAgICAgICAgc2VsZi5faXNfcmVkdWNlZCA9IFRydWUKKyAgICAg ICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICByYWlzZSBBcml0aG1ldGlj RXJyb3IoInVuYWJsZSB0byByZWR1Y2UgYmVjYXVzZSBsYWNrIG9mIGdjZCBvciBxdW9fcmVtIGFs Z29yaXRobSIpCitAQCAtMjAyLDE0ICsyMDIsMTQgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxk RWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHJhaXNlIEFyaXRobWV0aWNFcnJv cigidW5hYmxlIHRvIHJlZHVjZSBiZWNhdXNlIGdjZCBhbGdvcml0aG0gZG9lc24ndCB3b3JrIG9u IGlucHV0IikKKyAgICAgICAgIGV4Y2VwdCBOb3RJbXBsZW1lbnRlZEVycm9yOgorICAgICAgICAg ICAgIHJhaXNlIEFyaXRobWV0aWNFcnJvcigidW5hYmxlIHRvIHJlZHVjZSBiZWNhdXNlIGdjZCBh bGdvcml0aG0gbm90IGltcGxlbWVudGVkIG9uIGlucHV0IikKKy0gICAgICAgIGlmIG5vdCBzZWxm Ll9fZGVub21pbmF0b3IuaXNfb25lKCkgYW5kIHNlbGYuX19kZW5vbWluYXRvci5pc191bml0KCk6 CisrICAgICAgICBpZiBub3Qgc2VsZi5fZGVub21pbmF0b3IuaXNfb25lKCkgYW5kIHNlbGYuX2Rl bm9taW5hdG9yLmlzX3VuaXQoKToKKyAgICAgICAgICAgICB0cnk6CistICAgICAgICAgICAgICAg IGludiA9IHNlbGYuX19kZW5vbWluYXRvci5pbnZlcnNlX29mX3VuaXQoKQorKyAgICAgICAgICAg ICAgICBpbnYgPSBzZWxmLl9kZW5vbWluYXRvci5pbnZlcnNlX29mX3VuaXQoKQorICAgICAgICAg ICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg ICBlbHNlOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fbnVtZXJhdG9yICo9IGludgorLSAgICAg ICAgICAgICAgICBzZWxmLl9fZGVub21pbmF0b3IgPSBzZWxmLl9fZGVub21pbmF0b3IucGFyZW50 KCkub25lKCkKKysgICAgICAgICAgICAgICAgc2VsZi5fbnVtZXJhdG9yICo9IGludgorKyAgICAg ICAgICAgICAgICBzZWxmLl9kZW5vbWluYXRvciA9IHNlbGYuX2Rlbm9taW5hdG9yLnBhcmVudCgp Lm9uZSgpCisgCisgICAgIGRlZiBfX2NvcHlfXyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTIy Myw4ICsyMjMsOCBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVu dCk6CisgICAgICAgICAgICAgc2FnZTogY29weShmKQorICAgICAgICAgICAgICh4ICsgeSkveQor ICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5fcGFyZW50 LCBzZWxmLl9fbnVtZXJhdG9yLAorLSAgICAgICAgICAgICAgICBzZWxmLl9fZGVub21pbmF0b3Is IGNvZXJjZT1GYWxzZSwgcmVkdWNlPUZhbHNlKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFz c19fKHNlbGYuX3BhcmVudCwgc2VsZi5fbnVtZXJhdG9yLAorKyAgICAgICAgICAgICAgICBzZWxm Ll9kZW5vbWluYXRvciwgY29lcmNlPUZhbHNlLCByZWR1Y2U9RmFsc2UpCisgCisgICAgIGRlZiBu dW1lcmF0b3Ioc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0yMzgsNyArMjM4LDcgQEAgY2RlZiBj bGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNh Z2U6IGYubnVtZXJhdG9yKCkKKyAgICAgICAgICAgICB4ICsgeQorICAgICAgICAgIiIiCistICAg ICAgICByZXR1cm4gc2VsZi5fX251bWVyYXRvcgorKyAgICAgICAgcmV0dXJuIHNlbGYuX251bWVy YXRvcgorIAorICAgICBkZWYgZGVub21pbmF0b3Ioc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0y NTIsNyArMjUyLDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1l bnQpOgorICAgICAgICAgICAgIHNhZ2U6IGYuZGVub21pbmF0b3IoKQorICAgICAgICAgICAgIHkK KyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX19kZW5vbWluYXRvcgorKyAgICAg ICAgcmV0dXJuIHNlbGYuX2Rlbm9taW5hdG9yCisgCisgCisgICAgIGRlZiBpc19zcXVhcmUoc2Vs Zixyb290PUZhbHNlKToKK0BAIC0zOTksMTAgKzM5OSwxMCBAQCBjZGVmIGNsYXNzIEZyYWN0aW9u RmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogKCh4KzEpLyh4 XjIrMSkpLnN1YnMoe3g6IDF9KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgb3B0aW9uYWwgLSBzYWdlLnJpbmdzLm51bWJlcl9maWVsZAorICAgICAgICAgICAgIDEK KyAgICAgICAgICIiIgorLSAgICAgICAgaWYgc2VsZi5fX2Rlbm9taW5hdG9yLmlzX29uZSgpOgor KyAgICAgICAgaWYgc2VsZi5fZGVub21pbmF0b3IuaXNfb25lKCk6CisgICAgICAgICAgICAgIyBI YW5kbGUgdGhpcyBjYXNlIGV2ZW4gb3ZlciByaW5ncyB0aGF0IGRvbid0IHN1cHBvcnQgcmVkdWN0 aW9uLCB0bworICAgICAgICAgICAgICMgYXZvaWQgYnJlYWtpbmcgZXhpc3RpbmcgY29kZSB0aGF0 IGNhcmVsZXNzbHkgbWl4ZXMgcCBhbmQgcC8xCistICAgICAgICAgICAgcmV0dXJuIGhhc2goc2Vs Zi5fX251bWVyYXRvcikKKysgICAgICAgICAgICByZXR1cm4gaGFzaChzZWxmLl9udW1lcmF0b3Ip CisgICAgICAgICBpZiBzZWxmLl9wYXJlbnQuaXNfZXhhY3QoKToKKyAgICAgICAgICAgICAjIE1h eSBmYWlsOyBsZXQgdGhlIGV4Y2VwdGlvbiBwcm9wYWdhdGUgdGhlbi4KKyAgICAgICAgICAgICAj IChJbiBjb250cmFzdCwgb3ZlciBpbmV4YWN0IHJpbmdzLCB3ZSBoYXNoIHVucmVkdWNlZCBmcmFj dGlvbnMKK0BAIC00MTMsOCArNDEzLDggQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVu dChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgICMgaXNzdWVzIGV2ZW4gaWYgd2UgZGlkbid0 Li4uKQorICAgICAgICAgICAgIHNlbGYucmVkdWNlKCkKKyAgICAgICAgICMgU2FtZSBhbGdvcml0 aG0gYXMgZm9yIGVsZW1lbnRzIG9mIFFRCistICAgICAgICBuID0gaGFzaChzZWxmLl9fbnVtZXJh dG9yKQorLSAgICAgICAgZCA9IGhhc2goc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgbiA9 IGhhc2goc2VsZi5fbnVtZXJhdG9yKQorKyAgICAgICAgZCA9IGhhc2goc2VsZi5fZGVub21pbmF0 b3IpCisgICAgICAgICBpZiBkID09IDE6CisgICAgICAgICAgICAgcmV0dXJuIG4KKyAgICAgICAg IGVsc2U6CitAQCAtNDQzLDcgKzQ0Myw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1l bnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBoKHgwPTEpCisgICAgICAgICAg ICAgKC0yKngxKngyICsgeDEgKyAxKS8oeDEgKyB4MikKKyAgICAgICAgICIiIgorLSAgICAgICAg cmV0dXJuIHNlbGYuX19udW1lcmF0b3IoKngsICoqa3dkcykgLyBzZWxmLl9fZGVub21pbmF0b3Io KngsICoqa3dkcykKKysgICAgICAgIHJldHVybiBzZWxmLl9udW1lcmF0b3IoKngsICoqa3dkcykg LyBzZWxmLl9kZW5vbWluYXRvcigqeCwgKiprd2RzKQorIAorICAgICBkZWYgX2lzX2F0b21pYyhz ZWxmKToKKyAgICAgICAgICIiIgorQEAgLTQ1Niw3ICs0NTYsNyBAQCBjZGVmIGNsYXNzIEZyYWN0 aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogZi5faXNf YXRvbWljKCkKKyAgICAgICAgICAgICBGYWxzZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1 cm4gc2VsZi5fX251bWVyYXRvci5faXNfYXRvbWljKCkgYW5kIHNlbGYuX19kZW5vbWluYXRvci5f aXNfYXRvbWljKCkKKysgICAgICAgIHJldHVybiBzZWxmLl9udW1lcmF0b3IuX2lzX2F0b21pYygp IGFuZCBzZWxmLl9kZW5vbWluYXRvci5faXNfYXRvbWljKCkKKyAKKyAgICAgZGVmIF9yZXByXyhz ZWxmKToKKyAgICAgICAgICIiIgorQEAgLTQ3NiwxMyArNDc2LDEzIEBAIGNkZWYgY2xhc3MgRnJh Y3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAg aWYgc2VsZi5pc196ZXJvKCk6CisgICAgICAgICAgICAgcmV0dXJuICIwIgorLSAgICAgICAgcyA9 ICIlcyIgJSBzZWxmLl9fbnVtZXJhdG9yCistICAgICAgICBpZiBzZWxmLl9fZGVub21pbmF0b3Ig IT0gMToKKy0gICAgICAgICAgICBkZW5vbV9zdHJpbmcgPSBzdHIoIHNlbGYuX19kZW5vbWluYXRv ciApCistICAgICAgICAgICAgaWYgc2VsZi5fX2Rlbm9taW5hdG9yLl9pc19hdG9taWMoKSBhbmQg bm90ICgnKicgaW4gZGVub21fc3RyaW5nIG9yICcvJyBpbiBkZW5vbV9zdHJpbmcpOgorLSAgICAg ICAgICAgICAgICBzID0gIiVzLyVzIiUoc2VsZi5fX251bWVyYXRvci5fY29lZmZfcmVwcihub19z cGFjZT1GYWxzZSksZGVub21fc3RyaW5nKQorKyAgICAgICAgcyA9ICIlcyIgJSBzZWxmLl9udW1l cmF0b3IKKysgICAgICAgIGlmIHNlbGYuX2Rlbm9taW5hdG9yICE9IDE6CisrICAgICAgICAgICAg ZGVub21fc3RyaW5nID0gc3RyKCBzZWxmLl9kZW5vbWluYXRvciApCisrICAgICAgICAgICAgaWYg c2VsZi5fZGVub21pbmF0b3IuX2lzX2F0b21pYygpIGFuZCBub3QgKCcqJyBpbiBkZW5vbV9zdHJp bmcgb3IgJy8nIGluIGRlbm9tX3N0cmluZyk6CisrICAgICAgICAgICAgICAgIHMgPSAiJXMvJXMi JShzZWxmLl9udW1lcmF0b3IuX2NvZWZmX3JlcHIobm9fc3BhY2U9RmFsc2UpLGRlbm9tX3N0cmlu ZykKKyAgICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgICAgICBzID0gIiVzLyglcykiJShz ZWxmLl9fbnVtZXJhdG9yLl9jb2VmZl9yZXByKG5vX3NwYWNlPUZhbHNlKSxkZW5vbV9zdHJpbmcp CisrICAgICAgICAgICAgICAgIHMgPSAiJXMvKCVzKSIlKHNlbGYuX251bWVyYXRvci5fY29lZmZf cmVwcihub19zcGFjZT1GYWxzZSksZGVub21fc3RyaW5nKQorICAgICAgICAgcmV0dXJuIHMKKyAK KyAgICAgZGVmIF9sYXRleF8oc2VsZik6CitAQCAtNTE4LDEwICs1MTgsMTAgQEAgY2RlZiBjbGFz cyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBpZiBzZWxmLmlzX3plcm8oKToKKyAgICAgICAgICAgICByZXR1cm4gIjAiCistICAgICAg ICBpZiBzZWxmLl9fZGVub21pbmF0b3IgPT0gMToKKy0gICAgICAgICAgICByZXR1cm4gbGF0ZXgu bGF0ZXgoc2VsZi5fX251bWVyYXRvcikKKy0gICAgICAgIHJldHVybiAiXFxmcmFjeyVzfXslc30i JShsYXRleC5sYXRleChzZWxmLl9fbnVtZXJhdG9yKSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsYXRleC5sYXRleChzZWxmLl9fZGVub21pbmF0b3IpKQorKyAgICAgICAgaWYg c2VsZi5fZGVub21pbmF0b3IgPT0gMToKKysgICAgICAgICAgICByZXR1cm4gbGF0ZXgubGF0ZXgo c2VsZi5fbnVtZXJhdG9yKQorKyAgICAgICAgcmV0dXJuICJcXGZyYWN7JXN9eyVzfSIlKGxhdGV4 LmxhdGV4KHNlbGYuX251bWVyYXRvciksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGF0ZXgubGF0ZXgoc2VsZi5fZGVub21pbmF0b3IpKQorIAorICAgICBkZWYgX21hZ21hX2lu aXRfKHNlbGYsIG1hZ21hKToKKyAgICAgICAgICIiIgorQEAgLTU3NywxMCArNTc3LDEwIEBAIGNk ZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAg ICBzYWdlOiB0IC0gMS90ICMgaW5kaXJlY3QgZG9jdGVzdCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UucmluZ3MuZmluaXRlX3Jpbmdz CisgICAgICAgICAgICAgKHReMiArIDYpL3QKKyAgICAgICAgICIiIgorLSAgICAgICAgcm51bSA9 IHNlbGYuX19udW1lcmF0b3IKKy0gICAgICAgIHJkZW4gPSBzZWxmLl9fZGVub21pbmF0b3IKKy0g ICAgICAgIHNudW0gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiByaWdodCkuX19udW1lcmF0b3IK Ky0gICAgICAgIHNkZW4gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiByaWdodCkuX19kZW5vbWlu YXRvcgorKyAgICAgICAgcm51bSA9IHNlbGYuX251bWVyYXRvcgorKyAgICAgICAgcmRlbiA9IHNl bGYuX2Rlbm9taW5hdG9yCisrICAgICAgICBzbnVtID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4g cmlnaHQpLl9udW1lcmF0b3IKKysgICAgICAgIHNkZW4gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50 PiByaWdodCkuX2Rlbm9taW5hdG9yCisgCisgICAgICAgICBpZiAocm51bS5pc196ZXJvKCkpOgor ICAgICAgICAgICAgIHJldHVybiA8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0CitAQCAtNjAy LDcgKzYwMiw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50 KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50LnJpbmcoKS5vbmUo KSwgY29lcmNlPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWR1Y2U9RmFs c2UpCisgICAgICAgICAgICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgICAgICAgICAgICAg IHRkZW4gPSBzZWxmLl9fZGVub21pbmF0b3IgKiBzZGVuCisrICAgICAgICAgICAgICAgICAgICAg ICAgdGRlbiA9IHNlbGYuX2Rlbm9taW5hdG9yICogc2RlbgorICAgICAgICAgICAgICAgICAgICAg ICAgIGUgICAgPSB0bnVtLmdjZChkKQorICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBl LmlzX3VuaXQoKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG51bSA9IHRudW0gLy8g ZQorQEAgLTYyNCwxMCArNjI0LDEwIEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQo RmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAg ICAgICAgICBwYXNzCisgCistICAgICAgICBybnVtID0gc2VsZi5fX251bWVyYXRvcgorLSAgICAg ICAgcmRlbiA9IHNlbGYuX19kZW5vbWluYXRvcgorLSAgICAgICAgc251bSA9ICg8RnJhY3Rpb25G aWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX251bWVyYXRvcgorLSAgICAgICAgc2RlbiA9ICg8RnJhY3Rp b25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX2Rlbm9taW5hdG9yCisrICAgICAgICBybnVtID0gc2Vs Zi5fbnVtZXJhdG9yCisrICAgICAgICByZGVuID0gc2VsZi5fZGVub21pbmF0b3IKKysgICAgICAg IHNudW0gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiByaWdodCkuX251bWVyYXRvcgorKyAgICAg ICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fZGVub21pbmF0b3IKKyAK KyAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJlbnQsIHJudW0qc2RlbiAr IHJkZW4qc251bSwgcmRlbipzZGVuLAorICAgICAgICAgICAgIGNvZXJjZT1GYWxzZSwgcmVkdWNl PUZhbHNlKQorQEAgLTY1MiwxMCArNjUyLDEwIEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVs ZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBhICogYiAjIGluZGlyZWN0 IGRvY3Rlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBv cHRpb25hbCAtIHNhZ2UucmluZ3MuZmluaXRlX3JpbmdzCisgICAgICAgICAgICAgMy8odCArIDEp CisgICAgICAgICAiIiIKKy0gICAgICAgIHJudW0gPSBzZWxmLl9fbnVtZXJhdG9yCistICAgICAg ICByZGVuID0gc2VsZi5fX2Rlbm9taW5hdG9yCistICAgICAgICBzbnVtID0gKDxGcmFjdGlvbkZp ZWxkRWxlbWVudD4gcmlnaHQpLl9fbnVtZXJhdG9yCistICAgICAgICBzZGVuID0gKDxGcmFjdGlv bkZpZWxkRWxlbWVudD4gcmlnaHQpLl9fZGVub21pbmF0b3IKKysgICAgICAgIHJudW0gPSBzZWxm Ll9udW1lcmF0b3IKKysgICAgICAgIHJkZW4gPSBzZWxmLl9kZW5vbWluYXRvcgorKyAgICAgICAg c251bSA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fbnVtZXJhdG9yCisrICAgICAg ICBzZGVuID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmlnaHQpLl9kZW5vbWluYXRvcgorIAor ICAgICAgICAgaWYgKHJudW0uaXNfemVybygpIG9yIHNudW0uaXNfemVybygpKToKKyAgICAgICAg ICAgICByZXR1cm4gc2VsZi5fcGFyZW50Lnplcm8oKQorQEAgLTY4OSwxMCArNjg5LDEwIEBAIGNk ZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAg ICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgICAgICBwYXNzCisgCistICAgICAgICBy bnVtID0gc2VsZi5fX251bWVyYXRvcgorLSAgICAgICAgcmRlbiA9IHNlbGYuX19kZW5vbWluYXRv cgorLSAgICAgICAgc251bSA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX251bWVy YXRvcgorLSAgICAgICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX2Rl bm9taW5hdG9yCisrICAgICAgICBybnVtID0gc2VsZi5fbnVtZXJhdG9yCisrICAgICAgICByZGVu ID0gc2VsZi5fZGVub21pbmF0b3IKKysgICAgICAgIHNudW0gPSAoPEZyYWN0aW9uRmllbGRFbGVt ZW50PiByaWdodCkuX251bWVyYXRvcgorKyAgICAgICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVs ZW1lbnQ+IHJpZ2h0KS5fZGVub21pbmF0b3IKKyAKKyAgICAgICAgIHJldHVybiBzZWxmLl9fY2xh c3NfXyhzZWxmLl9wYXJlbnQsIHJudW0gKiBzbnVtLCByZGVuICogc2RlbiwKKyAgICAgICAgICAg ICBjb2VyY2U9RmFsc2UsIHJlZHVjZT1GYWxzZSkKK0BAIC03MTcsOCArNzE3LDggQEAgY2RlZiBj bGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNh Z2U6IGEvYgorICAgICAgICAgICAgICh4KnogLSB4ICsgeiAtIDEpLyh6IC0gMykKKyAgICAgICAg ICIiIgorLSAgICAgICAgc251bSA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX251 bWVyYXRvcgorLSAgICAgICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5f X2Rlbm9taW5hdG9yCisrICAgICAgICBzbnVtID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmln aHQpLl9udW1lcmF0b3IKKysgICAgICAgIHNkZW4gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiBy aWdodCkuX2Rlbm9taW5hdG9yCisgCisgICAgICAgICBpZiBzbnVtLmlzX3plcm8oKToKKyAgICAg ICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcigiZnJhY3Rpb24gZmllbGQgZWxlbWVudCBk aXZpc2lvbiBieSB6ZXJvIikKK0BAIC03NDMsMTAgKzc0MywxMCBAQCBjZGVmIGNsYXNzIEZyYWN0 aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogaW50KEso LjUpKQorICAgICAgICAgICAgIDAKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgc2VsZi5fX2Rl bm9taW5hdG9yICE9IDE6CisrICAgICAgICBpZiBzZWxmLl9kZW5vbWluYXRvciAhPSAxOgorICAg ICAgICAgICAgIHNlbGYucmVkdWNlKCkKKy0gICAgICAgIGlmIHNlbGYuX19kZW5vbWluYXRvciA9 PSAxOgorLSAgICAgICAgICAgIHJldHVybiBpbnQoc2VsZi5fX251bWVyYXRvcikKKysgICAgICAg IGlmIHNlbGYuX2Rlbm9taW5hdG9yID09IDE6CisrICAgICAgICAgICAgcmV0dXJuIGludChzZWxm Ll9udW1lcmF0b3IpCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJv cigiZGVub21pbmF0b3IgbXVzdCBlcXVhbCAxIikKKyAKK0BAIC03NTgsNyArNzU4LDcgQEAgY2Rl ZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAg IHNhZ2U6IGZsb2F0KHgveCArIHkveSkKKyAgICAgICAgICAgICAyLjAKKyAgICAgICAgICIiIgor LSAgICAgICAgcmV0dXJuIGZsb2F0KHNlbGYuX19udW1lcmF0b3IpIC8gZmxvYXQoc2VsZi5fX2Rl bm9taW5hdG9yKQorKyAgICAgICAgcmV0dXJuIGZsb2F0KHNlbGYuX251bWVyYXRvcikgLyBmbG9h dChzZWxmLl9kZW5vbWluYXRvcikKKyAKKyAgICAgZGVmIF9fY29tcGxleF9fKHNlbGYpOgorICAg ICAgICAgIiIiCitAQCAtNzY4LDcgKzc2OCw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVs ZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBjb21wbGV4KHgvKEkqeCkg KyAoSSp5KS95KQorICAgICAgICAgICAgIDBqCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVy biBjb21wbGV4KHNlbGYuX19udW1lcmF0b3IpIC8gY29tcGxleChzZWxmLl9fZGVub21pbmF0b3Ip CisrICAgICAgICByZXR1cm4gY29tcGxleChzZWxmLl9udW1lcmF0b3IpIC8gY29tcGxleChzZWxm Ll9kZW5vbWluYXRvcikKKyAKKyAgICAgZGVmIF9yYXRpb25hbF8oc2VsZik6CisgICAgICAgICBy IiIiCitAQCAtODIyLDEyICs4MjIsMTIgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVu dChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IEEoQyh1KSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlv bmFsIC0gc2FnZS5yaW5ncy5udW1iZXJfZmllbGQKKyAgICAgICAgICAgICB1CisgICAgICAgICAi IiIKKy0gICAgICAgIGlmIHNlbGYuX19kZW5vbWluYXRvci5pc19vbmUoKToKKy0gICAgICAgICAg ICByZXR1cm4gUihzZWxmLl9fbnVtZXJhdG9yKQorKyAgICAgICAgaWYgc2VsZi5fZGVub21pbmF0 b3IuaXNfb25lKCk6CisrICAgICAgICAgICAgcmV0dXJuIFIoc2VsZi5fbnVtZXJhdG9yKQorICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLnJlZHVjZSgpCistICAgICAgICAgICAgbnVt ID0gUihzZWxmLl9fbnVtZXJhdG9yKQorLSAgICAgICAgICAgIGludl9kZW4gPSBSKHNlbGYuX19k ZW5vbWluYXRvcikuaW52ZXJzZV9vZl91bml0KCkKKysgICAgICAgICAgICBudW0gPSBSKHNlbGYu X251bWVyYXRvcikKKysgICAgICAgICAgICBpbnZfZGVuID0gUihzZWxmLl9kZW5vbWluYXRvciku aW52ZXJzZV9vZl91bml0KCkKKyAgICAgICAgICAgICByZXR1cm4gbnVtICogaW52X2RlbgorIAor ICAgICBfcmVhbF9kb3VibGVfID0gX2NvbnZlcnNpb24KK0BAIC04NDcsNyArODQ3LDcgQEAgY2Rl ZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgUmV0 dXJucyBzZWxmIHJhaXNlZCB0byB0aGUgYHJpZ2h0Xnt0aH1gIHBvd2VyLgorIAorICAgICAgICAg Tm90ZSB0aGF0IHdlIG5lZWQgdG8gY2hlY2sgd2hldGhlciBvciBub3QgcmlnaHQgaXMgbmVnYXRp dmUgc28gd2UKKy0gICAgICAgIGRvbid0IHNldCBgYF9fbnVtZXJhdG9yYGAgb3IgYGBfX2Rlbm9t aW5hdG9yYGAgdG8gYW4gZWxlbWVudCBvZiB0aGUKKysgICAgICAgIGRvbid0IHNldCBgYF9udW1l cmF0b3JgYCBvciBgYF9kZW5vbWluYXRvcmBgIHRvIGFuIGVsZW1lbnQgb2YgdGhlCisgICAgICAg ICBmcmFjdGlvbiBmaWVsZCBpbnN0ZWFkIG9mIHRoZSB1bmRlcmx5aW5nIHJpbmcuCisgCisgICAg ICAgICBFWEFNUExFUzo6CitAQCAtODc2LDggKzg3Niw4IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25G aWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiAoKHgreSkvKHgt eSkpXjAKKyAgICAgICAgICAgICAxCisgICAgICAgICAiIiIKKy0gICAgICAgIHNudW0gPSAoPEZy YWN0aW9uRmllbGRFbGVtZW50PiBzZWxmKS5fX251bWVyYXRvcgorLSAgICAgICAgc2RlbiA9ICg8 RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHNlbGYpLl9fZGVub21pbmF0b3IKKysgICAgICAgIHNudW0g PSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiBzZWxmKS5fbnVtZXJhdG9yCisrICAgICAgICBzZGVu ID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gc2VsZikuX2Rlbm9taW5hdG9yCisgICAgICAgICBp ZiByaWdodCA9PSAwOgorICAgICAgICAgICAgIFIgPSBzZWxmLnBhcmVudCgpLnJpbmcoKQorICAg ICAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLnBhcmVudCgpLAorQEAgLTkwNCw3 ICs5MDQsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6 CisgICAgICAgICAgICAgKDQqdF4yICsgNCp0KS8odCArIDIpCisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJlbnQsCistICAgICAgICAgICAgLXNl bGYuX19udW1lcmF0b3IsIHNlbGYuX19kZW5vbWluYXRvciwKKysgICAgICAgICAgICAtc2VsZi5f bnVtZXJhdG9yLCBzZWxmLl9kZW5vbWluYXRvciwKKyAgICAgICAgICAgICBjb2VyY2U9RmFsc2Us IHJlZHVjZT1GYWxzZSkKKyAKKyAgICAgZGVmIF9fYWJzX18oc2VsZik6CitAQCAtOTE1LDcgKzkx NSw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAg ICAgICAgICAgICBzYWdlOiBhYnMoRnJhY3Rpb25GaWVsZEVsZW1lbnQoUVEsIC0yLCAzLCBjb2Vy Y2U9RmFsc2UpKQorICAgICAgICAgICAgIDIvMworICAgICAgICAgIiIiCistICAgICAgICByZXR1 cm4gYWJzKHNlbGYuX19udW1lcmF0b3IpIC8gYWJzKHNlbGYuX19kZW5vbWluYXRvcikKKysgICAg ICAgIHJldHVybiBhYnMoc2VsZi5fbnVtZXJhdG9yKSAvIGFicyhzZWxmLl9kZW5vbWluYXRvcikK KyAKKyAgICAgZGVmIF9faW52ZXJ0X18oc2VsZik6CisgICAgICAgICAiIiIKK0BAIC05MjksNyAr OTI5LDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgor ICAgICAgICAgaWYgc2VsZi5pc196ZXJvKCk6CisgICAgICAgICAgICAgcmFpc2UgWmVyb0Rpdmlz aW9uRXJyb3IoIkNhbm5vdCBpbnZlcnQgMCIpCisgICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNz X18oc2VsZi5fcGFyZW50LAorLSAgICAgICAgICAgIHNlbGYuX19kZW5vbWluYXRvciwgc2VsZi5f X251bWVyYXRvciwgY29lcmNlPUZhbHNlLCByZWR1Y2U9RmFsc2UpCisrICAgICAgICAgICAgc2Vs Zi5fZGVub21pbmF0b3IsIHNlbGYuX251bWVyYXRvciwgY29lcmNlPUZhbHNlLCByZWR1Y2U9RmFs c2UpCisgCisgICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToKKyAgICAg ICAgICIiIgorQEAgLTk1MSwxMCArOTUxLDEwIEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVs ZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiAxID4geQorICAgICAgICAg ICAgIEZhbHNlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiByaWNoY21wKHNlbGYuX19u dW1lcmF0b3IgKgorLSAgICAgICAgICAgICAgICAgICAgICAgKDxGcmFjdGlvbkZpZWxkRWxlbWVu dD5vdGhlcikuX19kZW5vbWluYXRvciwKKy0gICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19k ZW5vbWluYXRvciAqCistICAgICAgICAgICAgICAgICAgICAgICAoPEZyYWN0aW9uRmllbGRFbGVt ZW50Pm90aGVyKS5fX251bWVyYXRvciwgb3ApCisrICAgICAgICByZXR1cm4gcmljaGNtcChzZWxm Ll9udW1lcmF0b3IgKgorKyAgICAgICAgICAgICAgICAgICAgICAgKDxGcmFjdGlvbkZpZWxkRWxl bWVudD5vdGhlcikuX2Rlbm9taW5hdG9yLAorKyAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f ZGVub21pbmF0b3IgKgorKyAgICAgICAgICAgICAgICAgICAgICAgKDxGcmFjdGlvbkZpZWxkRWxl bWVudD5vdGhlcikuX251bWVyYXRvciwgb3ApCisgCisgICAgIGRlZiB2YWx1YXRpb24oc2VsZiwg dj1Ob25lKToKKyAgICAgICAgICIiIgorQEAgLTk3Miw3ICs5NzIsNyBAQCBjZGVmIGNsYXNzIEZy YWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogZi52 YWx1YXRpb24oeF4yICsgMSkKKyAgICAgICAgICAgICAxCisgICAgICAgICAiIiIKKy0gICAgICAg IHJldHVybiBzZWxmLl9fbnVtZXJhdG9yLnZhbHVhdGlvbih2KSAtIHNlbGYuX19kZW5vbWluYXRv ci52YWx1YXRpb24odikKKysgICAgICAgIHJldHVybiBzZWxmLl9udW1lcmF0b3IudmFsdWF0aW9u KHYpIC0gc2VsZi5fZGVub21pbmF0b3IudmFsdWF0aW9uKHYpCisgCisgICAgIGRlZiBfX2Jvb2xf XyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTk5MSw3ICs5OTEsNyBAQCBjZGVmIGNsYXNzIEZy YWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogYm9v bCgxL3gpCisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4g bm90IHNlbGYuX19udW1lcmF0b3IuaXNfemVybygpCisrICAgICAgICByZXR1cm4gbm90IHNlbGYu X251bWVyYXRvci5pc196ZXJvKCkKKyAKKyAgICAgZGVmIGlzX3plcm8oc2VsZik6CisgICAgICAg ICAiIiIKK0BAIC0xMDEwLDcgKzEwMTAsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVt ZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogdS5wYXJlbnQoKSBpcyBGCisg ICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fX251 bWVyYXRvci5pc196ZXJvKCkKKysgICAgICAgIHJldHVybiBzZWxmLl9udW1lcmF0b3IuaXNfemVy bygpCisgCisgICAgIGRlZiBpc19vbmUoc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0xMDI1LDcg KzEwMjUsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6 CisgICAgICAgICAgICAgc2FnZTogKHgveSkuaXNfb25lKCkKKyAgICAgICAgICAgICBGYWxzZQor ICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fX251bWVyYXRvciA9PSBzZWxmLl9f ZGVub21pbmF0b3IKKysgICAgICAgIHJldHVybiBzZWxmLl9udW1lcmF0b3IgPT0gc2VsZi5fZGVu b21pbmF0b3IKKyAKKyAgICAgZGVmIF9zeW1ib2xpY18oc2VsZiwgcmluZyk6CisgICAgICAgICAi IiIKK0BAIC0xMDQ0LDcgKzEwNDQsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50 KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogc3ltYm9saWNfZXhwcmVzc2lvbihl bHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9u YWwgLSBzYWdlLnN5bWJvbGljCisgICAgICAgICAgICAgMi8zKih4ICsgeSkvKHggLSB5KQorICAg ICAgICAgIiIiCistICAgICAgICByZXR1cm4gcmluZyhzZWxmLl9fbnVtZXJhdG9yKS9yaW5nKHNl bGYuX19kZW5vbWluYXRvcikKKysgICAgICAgIHJldHVybiByaW5nKHNlbGYuX251bWVyYXRvcikv cmluZyhzZWxmLl9kZW5vbWluYXRvcikKKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6Cisg ICAgICAgICAiIiIKK0BAIC0xMDU4LDcgKzEwNTgsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmll bGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gKG1ha2VfZWxlbWVudCwKKy0gICAgICAgICAgICAgICAgKHNlbGYu X3BhcmVudCwgc2VsZi5fX251bWVyYXRvciwgc2VsZi5fX2Rlbm9taW5hdG9yKSkKKysgICAgICAg ICAgICAgICAgKHNlbGYuX3BhcmVudCwgc2VsZi5fbnVtZXJhdG9yLCBzZWxmLl9kZW5vbWluYXRv cikpCisgCisgICAgIGRlZiBfZXZhbHVhdGVfcG9seW5vbWlhbChzZWxmLCBwb2wpOgorICAgICAg ICAgIiIiCitAQCAtMTE3MCw5ICsxMTcwLDkgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxl bWVudF8xcG9seV9maWVsZChGcmFjdGlvbkZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFNlZSA6bWV0aDpgcmVkdWNlYC4KKyAgICAgICAgICIiIgorLSAgICAgICAgaW52bGMg PSB+c2VsZi5fX2Rlbm9taW5hdG9yLmxlYWRpbmdfY29lZmZpY2llbnQoKQorLSAgICAgICAgc2Vs Zi5fX2Rlbm9taW5hdG9yID0gc2VsZi5fX2Rlbm9taW5hdG9yLm1vbmljKCkKKy0gICAgICAgIHNl bGYuX19udW1lcmF0b3IgKj0gaW52bGMKKysgICAgICAgIGludmxjID0gfnNlbGYuX2Rlbm9taW5h dG9yLmxlYWRpbmdfY29lZmZpY2llbnQoKQorKyAgICAgICAgc2VsZi5fZGVub21pbmF0b3IgPSBz ZWxmLl9kZW5vbWluYXRvci5tb25pYygpCisrICAgICAgICBzZWxmLl9udW1lcmF0b3IgKj0gaW52 bGMKKyAKKyAgICAgZGVmIGlzX2ludGVncmFsKHNlbGYpOgorICAgICAgICAgIiIiCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rpb25fZmllbGQvZHJpbmZlbGRfbW9kdWxlcy9kcmlu ZmVsZF9tb2R1bGUucHkgYi9zcmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9kcmluZmVsZF9t b2R1bGVzL2RyaW5mZWxkX21vZHVsZS5weQoraW5kZXggYTI3ZTc1ZjVmY2UuLjc0ZWYxMjVmYjZh IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rpb25fZmllbGQvZHJpbmZlbGRfbW9k dWxlcy9kcmluZmVsZF9tb2R1bGUucHkKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Z1bmN0aW9uX2Zp ZWxkL2RyaW5mZWxkX21vZHVsZXMvZHJpbmZlbGRfbW9kdWxlLnB5CitAQCAtODA0LDggKzgwNCw4 IEBAIGRlZiBfbGF0ZXhfKHNlbGYpOgorICAgICAgICAgICAgIFxwaGkKKyAgICAgICAgICAgICBz YWdlOiBwaGkucmVzZXRfbmFtZSgpCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIGhhc2F0dHIo c2VsZiwgJ19fY3VzdG9tX25hbWUnKToKKy0gICAgICAgICAgICByZXR1cm4gbGF0ZXhfdmFyaWFi bGVfbmFtZShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAgICAgICBpZiBzZWxm LmdldF9jdXN0b21fbmFtZSgpIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIHJldHVybiBsYXRl eF92YXJpYWJsZV9uYW1lKHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgIHJldHVybiBmJ1xccGhpOiB7bGF0ZXgoc2VsZi5fZnVuY3Rpb25fcmluZy5n ZW4oKSl9IFxcbWFwc3RvICcgXAorICAgICAgICAgICAgICAgICAgICBmJ3tsYXRleChzZWxmLl9n ZW4pfScKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9sYXVyZW50X3Nlcmllc19yaW5nX2Vs ZW1lbnQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvbGF1cmVudF9zZXJpZXNfcmluZ19lbGVtZW50LnB4 ZAoraW5kZXggZDE5MDY0NWNlNTIuLjhkZjVhOTJjOWU3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv cmluZ3MvbGF1cmVudF9zZXJpZXNfcmluZ19lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvbGF1cmVudF9zZXJpZXNfcmluZ19lbGVtZW50LnB4ZAorQEAgLTQsNyArNCw3IEBAIGNkZWYg Y2xhc3MgTGF1cmVudFNlcmllcyhBbGdlYnJhRWxlbWVudCk6CisgICAgIGNkZWYgTW9kdWxlRWxl bWVudCBfX3UKKyAgICAgY2RlZiBsb25nIF9fbgorIAorLSAgICBjZGVmIF9fbm9ybWFsaXplKHNl bGYpCisrICAgIGNkZWYgX25vcm1hbGl6ZShzZWxmKQorICAgICBjcGRlZiBfYWRkXyhzZWxmLCBv dGhlcikKKyAgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisgCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvbGF1cmVudF9zZXJpZXNfcmluZ19lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3Jp bmdzL2xhdXJlbnRfc2VyaWVzX3JpbmdfZWxlbWVudC5weXgKK2luZGV4IDhlOTUwNDc4MDQ1Li45 YmVmNzIzOTZiNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2xhdXJlbnRfc2VyaWVzX3Jp bmdfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2xhdXJlbnRfc2VyaWVzX3Jpbmdf ZWxlbWVudC5weXgKK0BAIC0zMDIsNyArMzAyLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50U2VyaWVz KEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgIHggPSBpbV9nZW5zWzBdCisgICAgICAgICByZXR1 cm4gY29kb21haW4oc2VsZi5fX3UuX2ltX2dlbnNfKGNvZG9tYWluLCBpbV9nZW5zLCBiYXNlX21h cD1iYXNlX21hcCkgKiB4KipzZWxmLl9fbikKKyAKKy0gICAgY2RlZiBfX25vcm1hbGl6ZShzZWxm KToKKysgICAgY2RlZiBfbm9ybWFsaXplKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAg QSBMYXVyZW50IHNlcmllcyBpcyBhIHBhaXIgKHUodCksIG4pLCB3aGVyZSBlaXRoZXIgdT0wICh0 byBzb21lCisgICAgICAgICBwcmVjaXNpb24pIG9yIHUgaXMgYSB1bml0LiBUaGlzIHBhaXIgY29y cmVzcG9uZHMgdG8KK0BAIC03MjUsNyArNzI1LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50U2VyaWVz KEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgUiA9IHNlbGYuX3BhcmVudC5iYXNl X3JpbmcoKQorICAgICAgICAgICAgICAgICBjb2VmZnMgPSBbdmFsdWVdICsgW1IoMCkgZm9yIF8g aW4gcmFuZ2UoMSwtaildICsgc2VsZi5fX3UubGlzdCgpCisgICAgICAgICAgICAgICAgIHNlbGYu X191ID0gc2VsZi5fX3UuX3BhcmVudChjb2VmZnMpCistICAgICAgICBzZWxmLl9fbm9ybWFsaXpl KCkKKysgICAgICAgIHNlbGYuX25vcm1hbGl6ZSgpCisgCisgICAgIGNwZGVmIF9hZGRfKHNlbGYs IHJpZ2h0X20pOgorICAgICAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvbW9y cGhpc20ucHhkIGIvc3JjL3NhZ2UvcmluZ3MvbW9ycGhpc20ucHhkCitpbmRleCBlYTYwODlmMjli NC4uNGI4ZThkMDUyZGYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9tb3JwaGlzbS5weGQK KysrKyBiL3NyYy9zYWdlL3JpbmdzL21vcnBoaXNtLnB4ZAorQEAgLTE0LDcgKzE0LDcgQEAgY2Rl ZiBjbGFzcyBSaW5nTWFwX2xpZnQoUmluZ01hcCk6CisgCisgY2RlZiBjbGFzcyBSaW5nSG9tb21v cnBoaXNtKFJpbmdNYXApOgorICAgICBjZGVmIE1vcnBoaXNtIF9saWZ0CistICAgIGNkZWYgcHVi bGljIGRpY3QgX19jYWNoZWRfbWV0aG9kcworKyAgICBjZGVmIHB1YmxpYyBkaWN0IF9jYWNoZWRf bWV0aG9kcworIAorIGNkZWYgY2xhc3MgUmluZ0hvbW9tb3JwaGlzbV9pbV9nZW5zKFJpbmdIb21v bW9ycGhpc20pOgorICAgICBjZGVmIF9pbV9nZW5zCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvcmlu Z3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL3Jpbmdz L251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfZWxlbWVudC5weGQKK2luZGV4IDliNjkxNzIyM2Ew Li5jM2Q4YThiNGE0YiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9u dW1iZXJfZmllbGRfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVs ZC9udW1iZXJfZmllbGRfZWxlbWVudC5weGQKK0BAIC0xMSwxMiArMTEsMTIgQEAgZnJvbSBzYWdl LmxpYnMubnRsLm50bF9aWiBjaW1wb3J0IG50bF9aWgorIAorIAorIGNkZWYgY2xhc3MgTnVtYmVy RmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKy0gICAgY2RlZiBaWlhfYyBf X251bWVyYXRvcgorLSAgICBjZGVmIFpaX2MgX19kZW5vbWluYXRvcgorKyAgICBjZGVmIFpaWF9j IF9udW1lcmF0b3IKKysgICAgY2RlZiBaWl9jIF9kZW5vbWluYXRvcgorICAgICAjIFBvaW50ZXJz IHRvIHRoZSBkZWZpbmluZyBwb2x5bm9taWFsICh3aXRoIG51bWVyYXRvcikgZm9yIHRoZSBmaWVs ZC4KKyAgICAgIyBJIGtlZXAgdGhlc2UgYXMgcG9pbnRlcnMgZm9yIGFyaXRobWV0aWMgc3BlZWQu CistICAgIGNkZWYgbnRsX1paWCBfX2ZsZF9udW1lcmF0b3IKKy0gICAgY2RlZiBudGxfWlogX19m bGRfZGVub21pbmF0b3IKKysgICAgY2RlZiBudGxfWlpYIF9mbGRfbnVtZXJhdG9yCisrICAgIGNk ZWYgbnRsX1paIF9mbGRfZGVub21pbmF0b3IKKyAgICAgY2RlZiBvYmplY3QgX19tdWx0aXBsaWNh dGl2ZV9vcmRlcgorICAgICBjZGVmIG9iamVjdCBfX3BhcmkKKyAgICAgY2RlZiBvYmplY3QgX19t YXRyaXgKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2Zp ZWxkX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVs ZF9lbGVtZW50LnB5eAoraW5kZXggMjdlMzNhZDViZTAuLmQ0NGZjNTViNzBjIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB5eAor KysrIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB5 eAorQEAgLTIxOCw4ICsyMTgsOCBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1i ZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICBjZGVmIHR5cGUgdCA9IHR5cGUoc2VsZikK KyAgICAgICAgIGNkZWYgTnVtYmVyRmllbGRFbGVtZW50IHggPSA8TnVtYmVyRmllbGRFbGVtZW50 PnQuX19uZXdfXyh0KQorICAgICAgICAgeC5fcGFyZW50ID0gc2VsZi5fcGFyZW50CistICAgICAg ICB4Ll9fZmxkX251bWVyYXRvciA9IHNlbGYuX19mbGRfbnVtZXJhdG9yCistICAgICAgICB4Ll9f ZmxkX2Rlbm9taW5hdG9yID0gc2VsZi5fX2ZsZF9kZW5vbWluYXRvcgorKyAgICAgICAgeC5fZmxk X251bWVyYXRvciA9IHNlbGYuX2ZsZF9udW1lcmF0b3IKKysgICAgICAgIHguX2ZsZF9kZW5vbWlu YXRvciA9IHNlbGYuX2ZsZF9kZW5vbWluYXRvcgorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAg Y2RlZiBudW1iZXJfZmllbGQoc2VsZik6CitAQCAtMzE3LDIwICszMTcsMjAgQEAgY2RlZiBjbGFz cyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAg ICAgIFRydWUKKyAgICAgICAgICIiIgorICAgICAgICAgRmllbGRFbGVtZW50Ll9faW5pdF9fKHNl bGYsIHBhcmVudCkKKy0gICAgICAgIHNlbGYuX19mbGRfbnVtZXJhdG9yLCBzZWxmLl9fZmxkX2Rl bm9taW5hdG9yID0gcGFyZW50LmFic29sdXRlX3BvbHlub21pYWxfbnRsKCkKKysgICAgICAgIHNl bGYuX2ZsZF9udW1lcmF0b3IsIHNlbGYuX2ZsZF9kZW5vbWluYXRvciA9IHBhcmVudC5hYnNvbHV0 ZV9wb2x5bm9taWFsX250bCgpCisgCisgICAgICAgICBjZGVmIFpaX2MgY29lZmYKKyAgICAgICAg IGlmIGlzaW5zdGFuY2UoZiwgKGludCwgSW50ZWdlcl9zYWdlKSk6CisgICAgICAgICAgICAgIyBz ZXQgaXQgdXAgYW5kIGV4aXQgaW1tZWRpYXRlbHkKKyAgICAgICAgICAgICAjIGZhc3QgcGF0aHdh eQorICAgICAgICAgICAgIG1wel90b19aWigmY29lZmYsICg8SW50ZWdlcj5aWihmKSkudmFsdWUp CistICAgICAgICAgICAgWlpYX1NldENvZWZmKCBzZWxmLl9fbnVtZXJhdG9yLCAwLCBjb2VmZiAp CistICAgICAgICAgICAgWlpfY29udl9mcm9tX2ludCggc2VsZi5fX2Rlbm9taW5hdG9yLCAxICkK KysgICAgICAgICAgICBaWlhfU2V0Q29lZmYoIHNlbGYuX251bWVyYXRvciwgMCwgY29lZmYgKQor KyAgICAgICAgICAgIFpaX2NvbnZfZnJvbV9pbnQoIHNlbGYuX2Rlbm9taW5hdG9yLCAxICkKKyAg ICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShmLCBOdW1iZXJGaWVs ZEVsZW1lbnQpOgorICAgICAgICAgICAgIGlmIHR5cGUoc2VsZikgaXMgdHlwZShmKToKKy0gICAg ICAgICAgICAgICAgc2VsZi5fX251bWVyYXRvciA9ICg8TnVtYmVyRmllbGRFbGVtZW50PmYpLl9f bnVtZXJhdG9yCistICAgICAgICAgICAgICAgIHNlbGYuX19kZW5vbWluYXRvciA9ICg8TnVtYmVy RmllbGRFbGVtZW50PmYpLl9fZGVub21pbmF0b3IKKysgICAgICAgICAgICAgICAgc2VsZi5fbnVt ZXJhdG9yID0gKDxOdW1iZXJGaWVsZEVsZW1lbnQ+ZikuX251bWVyYXRvcgorKyAgICAgICAgICAg ICAgICBzZWxmLl9kZW5vbWluYXRvciA9ICg8TnVtYmVyRmllbGRFbGVtZW50PmYpLl9kZW5vbWlu YXRvcgorICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICBmID0gZi5wb2x5bm9taWFsKCkKK0BAIC0zNDIsMTEgKzM0MiwxMSBAQCBjZGVm IGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgCisg ICAgICAgICBjZGVmIGxvbmcgaQorICAgICAgICAgZGVuID0gZi5kZW5vbWluYXRvcigpCistICAg ICAgICBtcHpfdG9fWlooJnNlbGYuX19kZW5vbWluYXRvciwgKDxJbnRlZ2VyPlpaKGRlbikpLnZh bHVlKQorKyAgICAgICAgbXB6X3RvX1paKCZzZWxmLl9kZW5vbWluYXRvciwgKDxJbnRlZ2VyPlpa KGRlbikpLnZhbHVlKQorICAgICAgICAgbnVtID0gZiAqIGRlbgorICAgICAgICAgZm9yIGkgZnJv bSAwIDw9IGkgPD0gbnVtLmRlZ3JlZSgpOgorICAgICAgICAgICAgIG1wel90b19aWigmY29lZmYs ICg8SW50ZWdlcj5aWihudW1baV0pKS52YWx1ZSkKKy0gICAgICAgICAgICBaWlhfU2V0Q29lZmYo IHNlbGYuX19udW1lcmF0b3IsIGksIGNvZWZmICkKKysgICAgICAgICAgICBaWlhfU2V0Q29lZmYo IHNlbGYuX251bWVyYXRvciwgaSwgY29lZmYgKQorIAorICAgICBkZWYgX2xpZnRfY3ljbG90b21p Y19lbGVtZW50KHNlbGYsIG5ld19wYXJlbnQsIGJpbnQgY2hlY2s9VHJ1ZSwgaW50IHJlbD0wKToK KyAgICAgICAgICIiIgorQEAgLTQxNywxNyArNDE3LDE3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmll bGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIGNkZWYgdHlwZSB0 ID0gdHlwZShzZWxmKQorICAgICAgICAgY2RlZiBOdW1iZXJGaWVsZEVsZW1lbnQgeCA9IDxOdW1i ZXJGaWVsZEVsZW1lbnQ+dC5fX25ld19fKHQpCisgICAgICAgICB4Ll9wYXJlbnQgPSA8UGFyZW50 V2l0aEJhc2U+bmV3X3BhcmVudAorLSAgICAgICAgeC5fX2ZsZF9udW1lcmF0b3IsIHguX19mbGRf ZGVub21pbmF0b3IgPSBuZXdfcGFyZW50LnBvbHlub21pYWxfbnRsKCkKKy0gICAgICAgIHguX19k ZW5vbWluYXRvciA9IHNlbGYuX19kZW5vbWluYXRvcgorKyAgICAgICAgeC5fZmxkX251bWVyYXRv ciwgeC5fZmxkX2Rlbm9taW5hdG9yID0gbmV3X3BhcmVudC5wb2x5bm9taWFsX250bCgpCisrICAg ICAgICB4Ll9kZW5vbWluYXRvciA9IHNlbGYuX2Rlbm9taW5hdG9yCisgICAgICAgICBjZGVmIFpa WF9jIHJlc3VsdAorICAgICAgICAgY2RlZiBaWl9jIHRtcAorICAgICAgICAgY2RlZiBpbnQgaQor ICAgICAgICAgY2RlZiBudGxfWlpYIF9udW0KKyAgICAgICAgIGNkZWYgbnRsX1paIF9kZW4KKy0g ICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDw9IFpaWF9kZWcoc2VsZi5fX251bWVyYXRvcik6Cist ICAgICAgICAgICAgdG1wID0gWlpYX2NvZWZmKHNlbGYuX19udW1lcmF0b3IsIGkpCisrICAgICAg ICBmb3IgaSBmcm9tIDAgPD0gaSA8PSBaWlhfZGVnKHNlbGYuX251bWVyYXRvcik6CisrICAgICAg ICAgICAgdG1wID0gWlpYX2NvZWZmKHNlbGYuX251bWVyYXRvciwgaSkKKyAgICAgICAgICAgICBa WlhfU2V0Q29lZmYocmVzdWx0LCBpKnJlbCwgdG1wKQorLSAgICAgICAgWlpYX3JlbSh4Ll9fbnVt ZXJhdG9yLCByZXN1bHQsIHguX19mbGRfbnVtZXJhdG9yLngpCisrICAgICAgICBaWlhfcmVtKHgu X251bWVyYXRvciwgcmVzdWx0LCB4Ll9mbGRfbnVtZXJhdG9yLngpCisgICAgICAgICByZXR1cm4g eAorIAorICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKK0BAIC04NTgsNyArODU4LDcgQEAgY2Rl ZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAg ICAgICAgY2RlZiBpbnQgcmVzCisgCisgICAgICAgICAjIGZhc3QgZXF1YWxpdHkgY2hlY2sKKy0g ICAgICAgIHJlcyA9IGxlZnQuX19udW1lcmF0b3IgPT0gX3JpZ2h0Ll9fbnVtZXJhdG9yIGFuZCBs ZWZ0Ll9fZGVub21pbmF0b3IgPT0gX3JpZ2h0Ll9fZGVub21pbmF0b3IKKysgICAgICAgIHJlcyA9 IGxlZnQuX251bWVyYXRvciA9PSBfcmlnaHQuX251bWVyYXRvciBhbmQgbGVmdC5fZGVub21pbmF0 b3IgPT0gX3JpZ2h0Ll9kZW5vbWluYXRvcgorICAgICAgICAgaWYgcmVzOgorICAgICAgICAgICAg IGlmIG9wID09IFB5X0VRIG9yIG9wID09IFB5X0dFIG9yIG9wID09IFB5X0xFOgorICAgICAgICAg ICAgICAgICByZXR1cm4gVHJ1ZQorQEAgLTg4MywxNSArODgzLDE1IEBAIGNkZWYgY2xhc3MgTnVt YmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIGlmIFAu X2VtYmVkZGVkX3JlYWw6CisgICAgICAgICAgICAgbXB6X2luaXQobGQpCisgICAgICAgICAgICAg bXB6X2luaXQocmQpCistICAgICAgICAgICAgWlpfdG9fbXB6KGxkLCAmbGVmdC5fX2Rlbm9taW5h dG9yKQorLSAgICAgICAgICAgIFpaX3RvX21weihyZCwgJl9yaWdodC5fX2Rlbm9taW5hdG9yKQor KyAgICAgICAgICAgIFpaX3RvX21weihsZCwgJmxlZnQuX2Rlbm9taW5hdG9yKQorKyAgICAgICAg ICAgIFpaX3RvX21weihyZCwgJl9yaWdodC5fZGVub21pbmF0b3IpCisgCisgICAgICAgICAgICAg diA9IDxSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQ+IFAuX2dldF9lbWJlZGRpbmdfYXBwcm94KDAp CisgICAgICAgICAgICAgbXBmaV9pbml0MihsYSwgbXBmaV9nZXRfcHJlYyh2LnZhbHVlKSkKKyAg ICAgICAgICAgICBtcGZpX2luaXQyKHJhLCBtcGZpX2dldF9wcmVjKHYudmFsdWUpKQorLSAgICAg ICAgICAgIFpaWF9ldmFsdWF0aW9uX21wZmkobGEsIGxlZnQuX19udW1lcmF0b3IsIHYudmFsdWUp CisrICAgICAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmaShsYSwgbGVmdC5fbnVtZXJhdG9yLCB2 LnZhbHVlKQorICAgICAgICAgICAgIG1wZmlfZGl2X3oobGEsIGxhLCBsZCkKKy0gICAgICAgICAg ICBaWlhfZXZhbHVhdGlvbl9tcGZpKHJhLCBfcmlnaHQuX19udW1lcmF0b3IsIHYudmFsdWUpCisr ICAgICAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmaShyYSwgX3JpZ2h0Ll9udW1lcmF0b3IsIHYu dmFsdWUpCisgICAgICAgICAgICAgbXBmaV9kaXZfeihyYSwgcmEsIHJkKQorICAgICAgICAgICAg IHdoaWxlIG1wZnJfZ3JlYXRlcmVxdWFsX3AoJmxhLnJpZ2h0LCAmcmEubGVmdCkgXAorICAgICAg ICAgICAgICAgICAgIGFuZCBtcGZyX2dyZWF0ZXJlcXVhbF9wKCZyYS5yaWdodCwgJmxhLmxlZnQp OgorQEAgLTg5OSw5ICs4OTksOSBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1i ZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAgICAgICAgIHYgPSA8UmVhbEludGVydmFs RmllbGRFbGVtZW50PiBQLl9nZXRfZW1iZWRkaW5nX2FwcHJveChpKQorICAgICAgICAgICAgICAg ICBtcGZpX3NldF9wcmVjKGxhLCBtcGZpX2dldF9wcmVjKHYudmFsdWUpKQorICAgICAgICAgICAg ICAgICBtcGZpX3NldF9wcmVjKHJhLCBtcGZpX2dldF9wcmVjKHYudmFsdWUpKQorLSAgICAgICAg ICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZpKGxhLCBsZWZ0Ll9fbnVtZXJhdG9yLCB2LnZhbHVl KQorKyAgICAgICAgICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZpKGxhLCBsZWZ0Ll9udW1lcmF0 b3IsIHYudmFsdWUpCisgICAgICAgICAgICAgICAgIG1wZmlfZGl2X3oobGEsIGxhLCBsZCkKKy0g ICAgICAgICAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmaShyYSwgX3JpZ2h0Ll9fbnVtZXJhdG9y LCB2LnZhbHVlKQorKyAgICAgICAgICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZpKHJhLCBfcmln aHQuX251bWVyYXRvciwgdi52YWx1ZSkKKyAgICAgICAgICAgICAgICAgbXBmaV9kaXZfeihyYSwg cmEsIHJkKQorICAgICAgICAgICAgIGlmIG9wID09IFB5X0xUIG9yIG9wID09IFB5X0xFOgorICAg ICAgICAgICAgICAgICByZXMgPSBtcGZyX2xlc3NfcCgmbGEucmlnaHQsICZyYS5sZWZ0KQorQEAg LTk1MCw4ICs5NTAsOCBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVs ZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICBjZGVmIFJhdGlvbmFsIHRtcF9yYXRpb25hbAorIAor ICAgICAgICAgIyBJdCBzZWVtcyBsaWtlIGEgc2ltcGxlciBhcHByb2FjaCB3b3VsZCBiZSB0byBz aW1wbHkgZ2VuZXJhdGUKKy0gICAgICAgICMgcmFuZG9tIGludGVnZXJzIGZvciBlYWNoIGNvZWZm aWNpZW50IG9mIHNlbGYuX19udW1lcmF0b3IKKy0gICAgICAgICMgYW5kIGFuIGludGVnZXIgZm9y IHNlbGYuX19kZW5vbWluYXRvci4gSG93ZXZlciwgdGhpcyB3b3VsZAorKyAgICAgICAgIyByYW5k b20gaW50ZWdlcnMgZm9yIGVhY2ggY29lZmZpY2llbnQgb2Ygc2VsZi5fbnVtZXJhdG9yCisrICAg ICAgICAjIGFuZCBhbiBpbnRlZ2VyIGZvciBzZWxmLl9kZW5vbWluYXRvci4gSG93ZXZlciwgdGhp cyB3b3VsZAorICAgICAgICAgIyBnZW5lcmF0ZSB0aGluZ3Mgd2l0aCBhIGZhaXJseSBmaXhlZCBz aGFwZTogaW4gcGFydGljdWxhciwKKyAgICAgICAgICMgd2UnZCBiZSB2ZXJ5IHVubGlrZWx5IHRv IGdldCBlbGVtZW50cyBsaWtlIDEvMyphXjMgKyAxLzcsCisgICAgICAgICAjIG9yIGFueXRoaW5n IHdoZXJlIHRoZSBkZW5vbWluYXRvcnMgYXJlIGFjdHVhbGx5IHVucmVsYXRlZAorQEAgLTk2NSwx OSArOTY1LDE5IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxl bWVudF9iYXNlKToKKyAKKyAgICAgICAgICAgICAjIHNldCB0aGUgZGVub21pbmF0b3IKKyAgICAg ICAgICAgICBtcHpfc2V0X3NpKGRlbm9tX3RlbXAudmFsdWUsIDEpCistICAgICAgICAgICAgbXB6 X3RvX1paKCZzZWxmLl9fZGVub21pbmF0b3IsICg8SW50ZWdlcj5kZW5vbV90ZW1wKS52YWx1ZSkK Ky0gICAgICAgICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8IFpaWF9kZWcoc2VsZi5fX2ZsZF9udW1l cmF0b3IueCk6CisrICAgICAgICAgICAgbXB6X3RvX1paKCZzZWxmLl9kZW5vbWluYXRvciwgKDxJ bnRlZ2VyPmRlbm9tX3RlbXApLnZhbHVlKQorKyAgICAgICAgICAgIGZvciBpIGZyb20gMCA8PSBp IDwgWlpYX2RlZyhzZWxmLl9mbGRfbnVtZXJhdG9yLngpOgorICAgICAgICAgICAgICAgICB0bXBf aW50ZWdlciA9IDxJbnRlZ2VyPihaWi5yYW5kb21fZWxlbWVudCh4PW51bV9ib3VuZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0cmlidXRp b249ZGlzdHJpYnV0aW9uKSkKKyAgICAgICAgICAgICAgICAgbXB6X3RvX1paKCZudGxfdGVtcCwg KDxJbnRlZ2VyPnRtcF9pbnRlZ2VyKS52YWx1ZSkKKy0gICAgICAgICAgICAgICAgWlpYX1NldENv ZWZmKHNlbGYuX19udW1lcmF0b3IsIGksIG50bF90ZW1wKQorKyAgICAgICAgICAgICAgICBaWlhf U2V0Q29lZmYoc2VsZi5fbnVtZXJhdG9yLCBpLCBudGxfdGVtcCkKKyAKKyAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgY29lZmZfbGlzdCA9IFtdCisgICAgICAgICAgICAgbXB6X3NldF9zaShk ZW5vbV90ZW1wLnZhbHVlLCAxKQorICAgICAgICAgICAgIHRtcF9pbnRlZ2VyID0gSW50ZWdlci5f X25ld19fKEludGVnZXIpCisgCistICAgICAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPCBaWlhf ZGVnKHNlbGYuX19mbGRfbnVtZXJhdG9yLngpOgorKyAgICAgICAgICAgIGZvciBpIGZyb20gMCA8 PSBpIDwgWlpYX2RlZyhzZWxmLl9mbGRfbnVtZXJhdG9yLngpOgorICAgICAgICAgICAgICAgICB0 bXBfcmF0aW9uYWwgPSA8UmF0aW9uYWw+KFFRLnJhbmRvbV9lbGVtZW50KG51bV9ib3VuZD1udW1f Ym91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGVuX2JvdW5kPWRlbl9ib3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0cmlidXRpb249ZGlzdHJp YnV0aW9uKSkKK0BAIC05ODksMTAgKzk4OSwxMCBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxl bWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAgICAgIyBzY2FsZSB0aGUg bnVtZXJhdG9ycyBhbmQgc2V0IGV2ZXJ5dGhpbmcgYXBwcm9wcmlhdGVseQorIAorICAgICAgICAg ICAgICMgZmlyc3QsIHRoZSBkZW5vbWluYXRvciAoZWFzeSkKKy0gICAgICAgICAgICBtcHpfdG9f WlooJnNlbGYuX19kZW5vbWluYXRvciwgKDxJbnRlZ2VyPmRlbm9tX3RlbXApLnZhbHVlKQorKyAg ICAgICAgICAgIG1wel90b19aWigmc2VsZi5fZGVub21pbmF0b3IsICg8SW50ZWdlcj5kZW5vbV90 ZW1wKS52YWx1ZSkKKyAKKyAgICAgICAgICAgICAjIG5vdyB0aGUgY29lZmZpY2llbnRzIHRoZW1z ZWx2ZXMuCistICAgICAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPCBaWlhfZGVnKHNlbGYuX19m bGRfbnVtZXJhdG9yLngpOgorKyAgICAgICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwgWlpYX2Rl ZyhzZWxmLl9mbGRfbnVtZXJhdG9yLngpOgorICAgICAgICAgICAgICAgICAjIGNhbGN1bGF0ZSB0 aGUgbmV3IG51bWVyYXRvci4gaWYgb3VyIG9sZCBlbnRyeSBpcworICAgICAgICAgICAgICAgICAj IHAvcSwgYW5kIHRoZSBsY20gaXMgaywgaXQncyBqdXN0IHBrL3EsIHdoaWNoIHdlCisgICAgICAg ICAgICAgICAgICMgYWxzbyBrbm93IGlzIGludGVncmFsIC0tIHNvIHdlIGNhbiB1c2UgbXB6X2Rp dmV4YWN0CitAQCAtMTAwNiw3ICsxMDA2LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1l bnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgICAgICAjIG5vdyBzZXQg dGhlIGNvZWZmaWNpZW50IG9mIHNlbGYKKyAgICAgICAgICAgICAgICAgbXB6X3RvX1paKCZudGxf dGVtcCwgKDxJbnRlZ2VyPnRtcF9pbnRlZ2VyKS52YWx1ZSkKKyAKKy0gICAgICAgICAgICAgICAg WlpYX1NldENvZWZmKHNlbGYuX19udW1lcmF0b3IsIGksIG50bF90ZW1wKQorKyAgICAgICAgICAg ICAgICBaWlhfU2V0Q29lZmYoc2VsZi5fbnVtZXJhdG9yLCBpLCBudGxfdGVtcCkKKyAKKyAgICAg ICAgIHJldHVybiAwICAjIE5vIGVycm9yCisgCitAQCAtMTA4OSwxMCArMTA4OSwxMCBAQCBjZGVm IGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAg ICAgICAgICAgc2FnZTogTC56ZXJvKCkuc2lnbigpCisgICAgICAgICAgICAgMAorICAgICAgICAg IiIiCistICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX19udW1lcmF0b3IpID09IC0xOgorKyAgICAg ICAgaWYgWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpID09IC0xOgorICAgICAgICAgICAgIHJldHVy biAwCistICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX19udW1lcmF0b3IpID09IDA6CistICAgICAg ICAgICAgcmV0dXJuIFpaX3NpZ24oWlpYX2NvZWZmKHNlbGYuX19udW1lcmF0b3IsIDApKQorKyAg ICAgICAgaWYgWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpID09IDA6CisrICAgICAgICAgICAgcmV0 dXJuIFpaX3NpZ24oWlpYX2NvZWZmKHNlbGYuX251bWVyYXRvciwgMCkpCisgCisgICAgICAgICBp ZiBub3QgKDxudW1iZXJfZmllbGRfYmFzZS5OdW1iZXJGaWVsZD4gc2VsZi5fcGFyZW50KS5fZW1i ZWRkZWRfcmVhbDoKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoInNpZ24gbm90IHdlbGwg ZGVmaW5lZCBzaW5jZSBubyByZWFsIGVtYmVkZGluZyBpcyBzcGVjaWZpZWQiKQorQEAgLTExNTMs MTIgKzExNTMsMTIgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRF bGVtZW50X2Jhc2UpOgorICAgICAgICAgY2RlZiBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQgdgor IAorIAorLSAgICAgICAgaWYgWlpYX2RlZyhzZWxmLl9fbnVtZXJhdG9yKSA8PSAwOgorKyAgICAg ICAgaWYgWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpIDw9IDA6CisgICAgICAgICAgICAgbXB6X2lu aXQobnVtKQorICAgICAgICAgICAgIG1wel9pbml0KGRlbikKKyAKKy0gICAgICAgICAgICBaWlhf Z2V0aXRlbV9hc19tcHoobnVtLCAmc2VsZi5fX251bWVyYXRvciwgMCkKKy0gICAgICAgICAgICBa Wl90b19tcHooZGVuLCAmc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgICAgIFpaWF9nZXRp dGVtX2FzX21weihudW0sICZzZWxmLl9udW1lcmF0b3IsIDApCisrICAgICAgICAgICAgWlpfdG9f bXB6KGRlbiwgJnNlbGYuX2Rlbm9taW5hdG9yKQorIAorICAgICAgICAgICAgIGFucyA9IFBZX05F VyhJbnRlZ2VyKQorICAgICAgICAgICAgIG1wel9mZGl2X3EoYW5zLnZhbHVlLCBudW0sIGRlbikK K0BAIC0xMTgzLDkgKzExODMsOSBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1i ZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICBtcHpfaW5pdChkZW4pCisgICAgICAgICBt cGZpX2luaXQyKGEsIG1wZmlfZ2V0X3ByZWModi52YWx1ZSkpCisgCistICAgICAgICBaWl90b19t cHooZGVuLCAmc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgWlpfdG9fbXB6KGRlbiwgJnNl bGYuX2Rlbm9taW5hdG9yKQorIAorLSAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmaShhLCBzZWxm Ll9fbnVtZXJhdG9yLCB2LnZhbHVlKQorKyAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmaShhLCBz ZWxmLl9udW1lcmF0b3IsIHYudmFsdWUpCisgICAgICAgICBtcGZpX2Rpdl96KGEsIGEsIGRlbikK KyAKKyAgICAgICAgIG1wZnJfZmxvb3IoJmEubGVmdCwgJmEubGVmdCkKK0BAIC0xMTk3LDcgKzEx OTcsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRf YmFzZSk6CisgICAgICAgICAgICAgdiA9IDxSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQ+IFAuX2dl dF9lbWJlZGRpbmdfYXBwcm94KGkpCisgCisgICAgICAgICAgICAgbXBmaV9zZXRfcHJlYyhhLCBt cGZpX2dldF9wcmVjKHYudmFsdWUpKQorLSAgICAgICAgICAgIFpaWF9ldmFsdWF0aW9uX21wZmko YSwgc2VsZi5fX251bWVyYXRvciwgdi52YWx1ZSkKKysgICAgICAgICAgICBaWlhfZXZhbHVhdGlv bl9tcGZpKGEsIHNlbGYuX251bWVyYXRvciwgdi52YWx1ZSkKKyAgICAgICAgICAgICBtcGZpX2Rp dl96KGEsIGEsIGRlbikKKyAgICAgICAgICAgICBtcGZyX2Zsb29yKCZhLmxlZnQgLCZhLmxlZnQp CisgICAgICAgICAgICAgbXBmcl9mbG9vcigmYS5yaWdodCwgJmEucmlnaHQpCitAQCAtMTI0OCw3 ICsxMjQ4LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVt ZW50X2Jhc2UpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFR5cGVFcnJvcjogY2Vp bCBub3QgdW5pcXVlbHkgZGVmaW5lZCBzaW5jZSBubyByZWFsIGVtYmVkZGluZyBpcyBzcGVjaWZp ZWQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgWlpYX2RlZyhzZWxmLl9fbnVtZXJhdG9yKSA8 PSAwOgorKyAgICAgICAgaWYgWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpIDw9IDA6CisgICAgICAg ICAgICAgcmV0dXJuIHNlbGYuX3JhdGlvbmFsXygpLmNlaWwoKQorIAorICAgICAgICAgaWYgbm90 ICg8bnVtYmVyX2ZpZWxkX2Jhc2UuTnVtYmVyRmllbGQ+IHNlbGYuX3BhcmVudCkuX2VtYmVkZGVk X3JlYWw6CitAQCAtMTMxMSw3ICsxMzExLDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1l bnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAg ICAgIFR5cGVFcnJvcjogZmxvb3Igbm90IHVuaXF1ZWx5IGRlZmluZWQgc2luY2Ugbm8gcmVhbCBl bWJlZGRpbmcgaXMgc3BlY2lmaWVkCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIFpaWF9kZWco c2VsZi5fX251bWVyYXRvcikgPD0gMDoKKysgICAgICAgIGlmIFpaWF9kZWcoc2VsZi5fbnVtZXJh dG9yKSA8PSAwOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9yYXRpb25hbF8oKS5yb3VuZCgp CisgCisgICAgICAgICByZXR1cm4gKHNlbGYgKyBRUSgoMSwyKSkpLmZsb29yKCkKK0BAIC0yNDgz LDE3ICsyNDgzLDE3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxk RWxlbWVudF9iYXNlKToKKyAgICAgICAgIGNkZWYgWlpfYyBnY2QKKyAgICAgICAgIGNkZWYgWlpf YyB0MQorICAgICAgICAgY2RlZiBaWlhfYyB0MgorLSAgICAgICAgaWYgWlpfSXNPbmUoc2VsZi5f X2Rlbm9taW5hdG9yKToKKysgICAgICAgIGlmIFpaX0lzT25lKHNlbGYuX2Rlbm9taW5hdG9yKToK KyAgICAgICAgICAgICByZXR1cm4KKy0gICAgICAgIFpaWF9jb250ZW50KHQxLCBzZWxmLl9fbnVt ZXJhdG9yKQorLSAgICAgICAgWlpfR0NEKGdjZCwgdDEsIHNlbGYuX19kZW5vbWluYXRvcikKKy0g ICAgICAgIGlmIFpaX3NpZ24oZ2NkKSAhPSBaWl9zaWduKHNlbGYuX19kZW5vbWluYXRvcik6Cisr ICAgICAgICBaWlhfY29udGVudCh0MSwgc2VsZi5fbnVtZXJhdG9yKQorKyAgICAgICAgWlpfR0NE KGdjZCwgdDEsIHNlbGYuX2Rlbm9taW5hdG9yKQorKyAgICAgICAgaWYgWlpfc2lnbihnY2QpICE9 IFpaX3NpZ24oc2VsZi5fZGVub21pbmF0b3IpOgorICAgICAgICAgICAgIFpaX25lZ2F0ZSh0MSwg Z2NkKQorICAgICAgICAgICAgIGdjZCA9IHQxCistICAgICAgICBaWlhfZGl2X1paKHQyLCBzZWxm Ll9fbnVtZXJhdG9yLCBnY2QpCistICAgICAgICBaWl9kaXYodDEsIHNlbGYuX19kZW5vbWluYXRv ciwgZ2NkKQorLSAgICAgICAgc2VsZi5fX251bWVyYXRvciA9IHQyCistICAgICAgICBzZWxmLl9f ZGVub21pbmF0b3IgPSB0MQorKyAgICAgICAgWlpYX2Rpdl9aWih0Miwgc2VsZi5fbnVtZXJhdG9y LCBnY2QpCisrICAgICAgICBaWl9kaXYodDEsIHNlbGYuX2Rlbm9taW5hdG9yLCBnY2QpCisrICAg ICAgICBzZWxmLl9udW1lcmF0b3IgPSB0MgorKyAgICAgICAgc2VsZi5fZGVub21pbmF0b3IgPSB0 MQorIAorICAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICByIiIiCitAQCAt MjUwOSwxNSArMjUwOSwxNSBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJG aWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICBjZGVmIE51bWJlckZpZWxkRWxlbWVudCBfcmln aHQgPSByaWdodAorICAgICAgICAgY2RlZiBaWl9jIGcsIHExLCBxMgorICAgICAgICAgeCA9IHNl bGYuX25ldygpCistICAgICAgICBaWl9HQ0QoZywgc2VsZi5fX2Rlbm9taW5hdG9yLCBfcmlnaHQu X19kZW5vbWluYXRvcikKKy0gICAgICAgIFpaX2RpdihxMSwgc2VsZi5fX2Rlbm9taW5hdG9yLCBn KQorLSAgICAgICAgWlpfZGl2KHEyLCBfcmlnaHQuX19kZW5vbWluYXRvciwgZykKKy0gICAgICAg IFpaX211bCh4Ll9fZGVub21pbmF0b3IsIHExLCBxMikKKy0gICAgICAgIFpaX211bCh4Ll9fZGVu b21pbmF0b3IsIHguX19kZW5vbWluYXRvciwgZykKKysgICAgICAgIFpaX0dDRChnLCBzZWxmLl9k ZW5vbWluYXRvciwgX3JpZ2h0Ll9kZW5vbWluYXRvcikKKysgICAgICAgIFpaX2RpdihxMSwgc2Vs Zi5fZGVub21pbmF0b3IsIGcpCisrICAgICAgICBaWl9kaXYocTIsIF9yaWdodC5fZGVub21pbmF0 b3IsIGcpCisrICAgICAgICBaWl9tdWwoeC5fZGVub21pbmF0b3IsIHExLCBxMikKKysgICAgICAg IFpaX211bCh4Ll9kZW5vbWluYXRvciwgeC5fZGVub21pbmF0b3IsIGcpCisgICAgICAgICBjZGVm IFpaWF9jIHQxLCB0MgorLSAgICAgICAgWlpYX211bF9aWih0MSwgc2VsZi5fX251bWVyYXRvciwg cTIpCistICAgICAgICBaWlhfbXVsX1paKHQyLCBfcmlnaHQuX19udW1lcmF0b3IsIHExKQorLSAg ICAgICAgWlpYX2FkZCh4Ll9fbnVtZXJhdG9yLCB0MSwgdDIpCisrICAgICAgICBaWlhfbXVsX1pa KHQxLCBzZWxmLl9udW1lcmF0b3IsIHEyKQorKyAgICAgICAgWlpYX211bF9aWih0MiwgX3JpZ2h0 Ll9udW1lcmF0b3IsIHExKQorKyAgICAgICAgWlpYX2FkZCh4Ll9udW1lcmF0b3IsIHQxLCB0MikK KyAgICAgICAgIHguX3JlZHVjZV9jXygpCisgICAgICAgICByZXR1cm4geAorIAorQEAgLTI1MzQs MTUgKzI1MzQsMTUgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRF bGVtZW50X2Jhc2UpOgorICAgICAgICAgY2RlZiBOdW1iZXJGaWVsZEVsZW1lbnQgX3JpZ2h0ID0g cmlnaHQKKyAgICAgICAgIGNkZWYgWlpfYyBnLCBxMSwgcTIKKyAgICAgICAgIHggPSBzZWxmLl9u ZXcoKQorLSAgICAgICAgWlpfR0NEKGcsIHNlbGYuX19kZW5vbWluYXRvciwgX3JpZ2h0Ll9fZGVu b21pbmF0b3IpCistICAgICAgICBaWl9kaXYocTEsIHNlbGYuX19kZW5vbWluYXRvciwgZykKKy0g ICAgICAgIFpaX2RpdihxMiwgX3JpZ2h0Ll9fZGVub21pbmF0b3IsIGcpCistICAgICAgICBaWl9t dWwoeC5fX2Rlbm9taW5hdG9yLCBxMSwgcTIpCistICAgICAgICBaWl9tdWwoeC5fX2Rlbm9taW5h dG9yLCB4Ll9fZGVub21pbmF0b3IsIGcpCisrICAgICAgICBaWl9HQ0QoZywgc2VsZi5fZGVub21p bmF0b3IsIF9yaWdodC5fZGVub21pbmF0b3IpCisrICAgICAgICBaWl9kaXYocTEsIHNlbGYuX2Rl bm9taW5hdG9yLCBnKQorKyAgICAgICAgWlpfZGl2KHEyLCBfcmlnaHQuX2Rlbm9taW5hdG9yLCBn KQorKyAgICAgICAgWlpfbXVsKHguX2Rlbm9taW5hdG9yLCBxMSwgcTIpCisrICAgICAgICBaWl9t dWwoeC5fZGVub21pbmF0b3IsIHguX2Rlbm9taW5hdG9yLCBnKQorICAgICAgICAgY2RlZiBaWlhf YyB0MSwgdDIKKy0gICAgICAgIFpaWF9tdWxfWloodDEsIHNlbGYuX19udW1lcmF0b3IsIHEyKQor LSAgICAgICAgWlpYX211bF9aWih0MiwgX3JpZ2h0Ll9fbnVtZXJhdG9yLCBxMSkKKy0gICAgICAg IFpaWF9zdWIoeC5fX251bWVyYXRvciwgdDEsIHQyKQorKyAgICAgICAgWlpYX211bF9aWih0MSwg c2VsZi5fbnVtZXJhdG9yLCBxMikKKysgICAgICAgIFpaWF9tdWxfWloodDIsIF9yaWdodC5fbnVt ZXJhdG9yLCBxMSkKKysgICAgICAgIFpaWF9zdWIoeC5fbnVtZXJhdG9yLCB0MSwgdDIpCisgICAg ICAgICB4Ll9yZWR1Y2VfY18oKQorICAgICAgICAgcmV0dXJuIHgKKyAKK0BAIC0yNTcxLDE4ICsy NTcxLDE4IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVu dF9iYXNlKToKKyAgICAgICAgIHNpZ19vbigpCisgICAgICAgICAjIE11bE1vZCBkb2Vzbid0IGhh bmRsZSBub24tbW9uaWMgcG9seW5vbWlhbHMuCisgICAgICAgICAjIFRoZXJlZm9yZSwgd2UgaGFu ZGxlIHRoZSBub24tbW9uaWMgY2FzZSBlbnRpcmVseSBzZXBhcmF0ZWx5LgorLSAgICAgICAgWlpf bXVsKHguX19kZW5vbWluYXRvciwgc2VsZi5fX2Rlbm9taW5hdG9yLCBfcmlnaHQuX19kZW5vbWlu YXRvcikKKy0gICAgICAgIGlmIFpaX0lzT25lKFpaWF9MZWFkQ29lZmYoc2VsZi5fX2ZsZF9udW1l cmF0b3IueCkpOgorLSAgICAgICAgICAgIFpaWF9NdWxNb2QoeC5fX251bWVyYXRvciwgc2VsZi5f X251bWVyYXRvciwgX3JpZ2h0Ll9fbnVtZXJhdG9yLCBzZWxmLl9fZmxkX251bWVyYXRvci54KQor KyAgICAgICAgWlpfbXVsKHguX2Rlbm9taW5hdG9yLCBzZWxmLl9kZW5vbWluYXRvciwgX3JpZ2h0 Ll9kZW5vbWluYXRvcikKKysgICAgICAgIGlmIFpaX0lzT25lKFpaWF9MZWFkQ29lZmYoc2VsZi5f ZmxkX251bWVyYXRvci54KSk6CisrICAgICAgICAgICAgWlpYX011bE1vZCh4Ll9udW1lcmF0b3Is IHNlbGYuX251bWVyYXRvciwgX3JpZ2h0Ll9udW1lcmF0b3IsIHNlbGYuX2ZsZF9udW1lcmF0b3Iu eCkKKyAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgWlpYX211bCh4Ll9fbnVtZXJhdG9yLCBz ZWxmLl9fbnVtZXJhdG9yLCBfcmlnaHQuX19udW1lcmF0b3IpCistICAgICAgICAgICAgaWYgWlpY X2RlZyh4Ll9fbnVtZXJhdG9yKSA+PSBaWlhfZGVnKHNlbGYuX19mbGRfbnVtZXJhdG9yLngpOgor LSAgICAgICAgICAgICAgICBaWlhfbXVsX1paKCB4Ll9fbnVtZXJhdG9yLCB4Ll9fbnVtZXJhdG9y LCBzZWxmLl9fZmxkX2Rlbm9taW5hdG9yLnggKQorLSAgICAgICAgICAgICAgICBaWlhfbXVsX1pa KCB0ZW1wLCBzZWxmLl9fZmxkX251bWVyYXRvci54LCB4Ll9fZGVub21pbmF0b3IgKQorLSAgICAg ICAgICAgICAgICBaWl9wb3dlcih0ZW1wMSxaWlhfTGVhZENvZWZmKHRlbXApLFpaWF9kZWcoeC5f X251bWVyYXRvciktWlpYX2RlZyhzZWxmLl9fZmxkX251bWVyYXRvci54KSsxKQorLSAgICAgICAg ICAgICAgICBaWlhfUHNldWRvUmVtKHguX19udW1lcmF0b3IsIHguX19udW1lcmF0b3IsIHRlbXAp CistICAgICAgICAgICAgICAgIFpaX211bCh4Ll9fZGVub21pbmF0b3IsIHguX19kZW5vbWluYXRv ciwgc2VsZi5fX2ZsZF9kZW5vbWluYXRvci54KQorLSAgICAgICAgICAgICAgICBaWl9tdWwoeC5f X2Rlbm9taW5hdG9yLCB4Ll9fZGVub21pbmF0b3IsIHRlbXAxKQorKyAgICAgICAgICAgIFpaWF9t dWwoeC5fbnVtZXJhdG9yLCBzZWxmLl9udW1lcmF0b3IsIF9yaWdodC5fbnVtZXJhdG9yKQorKyAg ICAgICAgICAgIGlmIFpaWF9kZWcoeC5fbnVtZXJhdG9yKSA+PSBaWlhfZGVnKHNlbGYuX2ZsZF9u dW1lcmF0b3IueCk6CisrICAgICAgICAgICAgICAgIFpaWF9tdWxfWlooIHguX251bWVyYXRvciwg eC5fbnVtZXJhdG9yLCBzZWxmLl9mbGRfZGVub21pbmF0b3IueCApCisrICAgICAgICAgICAgICAg IFpaWF9tdWxfWlooIHRlbXAsIHNlbGYuX2ZsZF9udW1lcmF0b3IueCwgeC5fZGVub21pbmF0b3Ig KQorKyAgICAgICAgICAgICAgICBaWl9wb3dlcih0ZW1wMSxaWlhfTGVhZENvZWZmKHRlbXApLFpa WF9kZWcoeC5fbnVtZXJhdG9yKS1aWlhfZGVnKHNlbGYuX2ZsZF9udW1lcmF0b3IueCkrMSkKKysg ICAgICAgICAgICAgICAgWlpYX1BzZXVkb1JlbSh4Ll9udW1lcmF0b3IsIHguX251bWVyYXRvciwg dGVtcCkKKysgICAgICAgICAgICAgICAgWlpfbXVsKHguX2Rlbm9taW5hdG9yLCB4Ll9kZW5vbWlu YXRvciwgc2VsZi5fZmxkX2Rlbm9taW5hdG9yLngpCisrICAgICAgICAgICAgICAgIFpaX211bCh4 Ll9kZW5vbWluYXRvciwgeC5fZGVub21pbmF0b3IsIHRlbXAxKQorICAgICAgICAgc2lnX29mZigp CisgICAgICAgICB4Ll9yZWR1Y2VfY18oKQorICAgICAgICAgcmV0dXJuIHgKK0BAIC0yNzA0LDcg KzI3MDQsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1l bnRfYmFzZSk6CisgICAgICAgICAgICAgc2FnZTogYm9vbChiICsgMSkKKyAgICAgICAgICAgICBU cnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBub3QgSXNaZXJvX1paWChzZWxmLl9f bnVtZXJhdG9yKQorKyAgICAgICAgcmV0dXJuIG5vdCBJc1plcm9fWlpYKHNlbGYuX251bWVyYXRv cikKKyAKKyAgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICByIiIiCitAQCAtMjcxNyw4 ICsyNzE3LDggQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVt ZW50X2Jhc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIE51bWJlckZpZWxkRWxlbWVu dCB4CisgICAgICAgICB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIFpaWF9tdWxfbG9uZyh4Ll9f bnVtZXJhdG9yLCBzZWxmLl9fbnVtZXJhdG9yLCAtMSkKKy0gICAgICAgIHguX19kZW5vbWluYXRv ciA9IHNlbGYuX19kZW5vbWluYXRvcgorKyAgICAgICAgWlpYX211bF9sb25nKHguX251bWVyYXRv ciwgc2VsZi5fbnVtZXJhdG9yLCAtMSkKKysgICAgICAgIHguX2Rlbm9taW5hdG9yID0gc2VsZi5f ZGVub21pbmF0b3IKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGNwZGVmIF9jb3B5X2Zvcl9w YXJlbnQoc2VsZiwgUGFyZW50IHBhcmVudCk6CitAQCAtMjczOCw4ICsyNzM4LDggQEAgY2RlZiBj bGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAg ICAgIiIiCisgICAgICAgICBjZGVmIE51bWJlckZpZWxkRWxlbWVudCB4CisgICAgICAgICB4ID0g c2VsZi5fbmV3KCkKKy0gICAgICAgIHguX19udW1lcmF0b3IgPSBzZWxmLl9fbnVtZXJhdG9yCist ICAgICAgICB4Ll9fZGVub21pbmF0b3IgPSBzZWxmLl9fZGVub21pbmF0b3IKKysgICAgICAgIHgu X251bWVyYXRvciA9IHNlbGYuX251bWVyYXRvcgorKyAgICAgICAgeC5fZGVub21pbmF0b3IgPSBz ZWxmLl9kZW5vbWluYXRvcgorICAgICAgICAgeC5fc2V0X3BhcmVudChwYXJlbnQpCisgICAgICAg ICByZXR1cm4geAorIAorQEAgLTI4MjYsNyArMjgyNiw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmll bGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgICAgICBzYWdlOiBM LjxhPiA9IEsuZXh0ZW5zaW9uKGYpCisgICAgICAgICAgICAgc2FnZTogYWxwaGEgPSAoYV44ICsg KHpldGEyMl45IC0gemV0YTIyXjYgKyAyKnpldGEyMl40ICsgMzMpKmFeNykvKDEwKioyNTU1KSAj bG9uZyB0aW1lCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIElzWmVyb19aWlgoc2VsZi5fX251 bWVyYXRvcik6CisrICAgICAgICBpZiBJc1plcm9fWlpYKHNlbGYuX251bWVyYXRvcik6CisgICAg ICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoIm51bWJlciBmaWVsZCBlbGVtZW50IGRp dmlzaW9uIGJ5IHplcm8iKQorICAgICAgICAgY2RlZiBOdW1iZXJGaWVsZEVsZW1lbnQgeAorICAg ICAgICAgY2RlZiBaWlhfYyB0ZW1wCitAQCAtMjgzNSw4ICsyODM1LDggQEAgY2RlZiBjbGFzcyBO dW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAg ICMgYnV0IG1heSBmYWlsIGlmIE5UTCBydW5zIG91dCBvZiBGRlQgcHJpbWVzLgorICAgICAgICAg ICAgIHggPSBzZWxmLl9uZXcoKQorICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAg WlpYX1hHQ0QoeC5fX2Rlbm9taW5hdG9yLCB4Ll9fbnVtZXJhdG9yLCB0ZW1wLCBzZWxmLl9fbnVt ZXJhdG9yLCBzZWxmLl9fZmxkX251bWVyYXRvci54LCAxKQorLSAgICAgICAgICAgIFpaWF9tdWxf WlooeC5fX251bWVyYXRvciwgeC5fX251bWVyYXRvciwgc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAg ICAgICAgICAgIFpaWF9YR0NEKHguX2Rlbm9taW5hdG9yLCB4Ll9udW1lcmF0b3IsIHRlbXAsIHNl bGYuX251bWVyYXRvciwgc2VsZi5fZmxkX251bWVyYXRvci54LCAxKQorKyAgICAgICAgICAgIFpa WF9tdWxfWlooeC5fbnVtZXJhdG9yLCB4Ll9udW1lcmF0b3IsIHNlbGYuX2Rlbm9taW5hdG9yKQor ICAgICAgICAgICAgIHguX3JlZHVjZV9jXygpCisgICAgICAgICAgICAgc2lnX29mZigpCisgICAg ICAgICBleGNlcHQgTlRMRXJyb3I6CitAQCAtMjg1OCw3ICsyODU4LDcgQEAgY2RlZiBjbGFzcyBO dW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAg IHNhZ2U6ICgyKkkqSSkuX2ludGVnZXJfKCkKKyAgICAgICAgICAgICAtMgorICAgICAgICAgIiIi CistICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX19udW1lcmF0b3IpID49IDE6CisrICAgICAgICBp ZiBaWlhfZGVnKHNlbGYuX251bWVyYXRvcikgPj0gMToKKyAgICAgICAgICAgICByYWlzZSBUeXBl RXJyb3IoIlVuYWJsZSB0byBjb2VyY2UgJXMgdG8gYW4gaW50ZWdlciIgJSBzZWxmKQorICAgICAg ICAgcmV0dXJuIFpaKHNlbGYuX3JhdGlvbmFsXygpKQorIAorQEAgLTI4NzcsMTIgKzI4NzcsMTIg QEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2Up OgorICAgICAgICAgICAgIHNhZ2U6IChJKkkvMikuX3JhdGlvbmFsXygpCisgICAgICAgICAgICAg LTEvMgorICAgICAgICAgIiIiCistICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX19udW1lcmF0b3Ip ID49IDE6CisrICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX251bWVyYXRvcikgPj0gMToKKyAgICAg ICAgICAgICByYWlzZSBUeXBlRXJyb3IoIlVuYWJsZSB0byBjb2VyY2UgJXMgdG8gYSByYXRpb25h bCIlc2VsZikKKyAgICAgICAgIGNkZWYgSW50ZWdlciBudW0gPSBJbnRlZ2VyLl9fbmV3X18oSW50 ZWdlcikKKy0gICAgICAgIFpaWF9nZXRpdGVtX2FzX21weihudW0udmFsdWUsICZzZWxmLl9fbnVt ZXJhdG9yLCAwKQorKyAgICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6KG51bS52YWx1ZSwgJnNlbGYu X251bWVyYXRvciwgMCkKKyAgICAgICAgIGNkZWYgSW50ZWdlciBkZW4gPSBJbnRlZ2VyLl9fbmV3 X18oSW50ZWdlcikKKy0gICAgICAgIFpaX3RvX21weihkZW4udmFsdWUsICZzZWxmLl9fZGVub21p bmF0b3IpCisrICAgICAgICBaWl90b19tcHooZGVuLnZhbHVlLCAmc2VsZi5fZGVub21pbmF0b3Ip CisgICAgICAgICByZXR1cm4gbnVtIC8gZGVuCisgCisgICAgIGRlZiBfYWxnZWJyYWljXyhzZWxm LCBwYXJlbnQpOgorQEAgLTMyNjgsMTUgKzMyNjgsMTUgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVs ZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgY2RlZiBtcHpfdCB6 CisgCisgICAgICAgICBtcHpfaW5pdCh6KQorLSAgICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6KHos ICZzZWxmLl9fbnVtZXJhdG9yLCAwKQorKyAgICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6KHosICZz ZWxmLl9udW1lcmF0b3IsIDApCisgICAgICAgICBoID0gbXB6X3B5dGhvbmhhc2goeikKKyAKKy0g ICAgICAgIGZvciBpIGZyb20gMSA8PSBpIDw9IFpaWF9kZWcoc2VsZi5fX251bWVyYXRvcik6Cist ICAgICAgICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6KHosICZzZWxmLl9fbnVtZXJhdG9yLCBpKQor KyAgICAgICAgZm9yIGkgZnJvbSAxIDw9IGkgPD0gWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpOgor KyAgICAgICAgICAgIFpaWF9nZXRpdGVtX2FzX21weih6LCAmc2VsZi5fbnVtZXJhdG9yLCBpKQor ICAgICAgICAgICAgICMgbWFnaWMgbnVtYmVyIGJlbG93IGlzIGZsb29yKDJeNjMgLyAoMitzcXJ0 KDIpKSkKKyAgICAgICAgICAgICBoIF49IG1wel9weXRob25oYXNoKHopICsgKDxQeV9oYXNoX3Q+ IDI3MDE0NjMxMjQxODgzODQ3MDEpICsgKGggPDwgMTYpICsgKGggPj4gMikKKyAKKy0gICAgICAg IFpaX3RvX21weih6LCAmc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgWlpfdG9fbXB6KHos ICZzZWxmLl9kZW5vbWluYXRvcikKKyAgICAgICAgICMgbWFnaWMgbnVtYmVyIGJlbG93IGlzIGZs b29yKCgxK3NxcnQoNSkpICogMl42MSkKKyAgICAgICAgIGggKz0gKG1wel9weXRob25oYXNoKHop IC0gMSkgKiAoPFB5X2hhc2hfdD4gNzQ2MTg2NDcyMzI1ODE4NzUyNSkKKyAKK0BAIC0zMzA1LDEy ICszMzA1LDEyIEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxl bWVudF9iYXNlKToKKyAgICAgICAgIGNkZWYgaW50IGkKKyAgICAgICAgIGNkZWYgbXB6X3QgZGVu CisgICAgICAgICBtcHpfaW5pdChkZW4pCistICAgICAgICBaWl90b19tcHooZGVuLCAmc2VsZi5f X2Rlbm9taW5hdG9yKQorLSAgICAgICAgY2RlZiBpbnQgc2l6ZSA9IFpaWF9kZWcoc2VsZi5fX251 bWVyYXRvcikgKyAxCisrICAgICAgICBaWl90b19tcHooZGVuLCAmc2VsZi5fZGVub21pbmF0b3Ip CisrICAgICAgICBjZGVmIGludCBzaXplID0gWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpICsgMQor ICAgICAgICAgY2RlZiBsaXN0IGNvZWZmcyA9IFtOb25lXSpzaXplCisgICAgICAgICBmb3IgaSBp biByYW5nZShzaXplKToKKyAgICAgICAgICAgICBjb2VmZiA9IFJhdGlvbmFsLl9fbmV3X18oUmF0 aW9uYWwpCistICAgICAgICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6KG1wcV9udW1yZWYoY29lZmYu dmFsdWUpLCAmc2VsZi5fX251bWVyYXRvciwgaSkKKysgICAgICAgICAgICBaWlhfZ2V0aXRlbV9h c19tcHoobXBxX251bXJlZihjb2VmZi52YWx1ZSksICZzZWxmLl9udW1lcmF0b3IsIGkpCisgICAg ICAgICAgICAgbXB6X3NldChtcHFfZGVucmVmKGNvZWZmLnZhbHVlKSwgZGVuKQorICAgICAgICAg ICAgIG1wcV9jYW5vbmljYWxpemUoY29lZmYudmFsdWUpCisgICAgICAgICAgICAgY29lZmZzW2ld ID0gY29lZmYKK0BAIC0zMzE4LDE0ICszMzE4LDE0IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRF bGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIHJldHVybiBjb2VmZnMK KyAKKyAgICAgY2RlZiB2b2lkIF9udGxfY29lZmZfYXNfbXB6KHNlbGYsIG1wel90IHosIGxvbmcg aSk6CistICAgICAgICBpZiBpID4gWlpYX2RlZyhzZWxmLl9fbnVtZXJhdG9yKToKKysgICAgICAg IGlmIGkgPiBaWlhfZGVnKHNlbGYuX251bWVyYXRvcik6CisgICAgICAgICAgICAgbXB6X3NldF91 aSh6LCAwKQorICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBaWlhfZ2V0aXRlbV9hc19tcHoo eiwgJnNlbGYuX19udW1lcmF0b3IsIGkpCisrICAgICAgICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6 KHosICZzZWxmLl9udW1lcmF0b3IsIGkpCisgCisgICAgIGNkZWYgdm9pZCBfbnRsX2Rlbm9tX2Fz X21weihzZWxmLCBtcHpfdCB6KToKKyAgICAgICAgIGNkZWYgSW50ZWdlciBkZW5vbSA9IEludGVn ZXIuX19uZXdfXyhJbnRlZ2VyKQorLSAgICAgICAgWlpfdG9fbXB6KGRlbm9tLnZhbHVlLCAmc2Vs Zi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgWlpfdG9fbXB6KGRlbm9tLnZhbHVlLCAmc2VsZi5f ZGVub21pbmF0b3IpCisgICAgICAgICBtcHpfc2V0KHosIGRlbm9tLnZhbHVlKQorIAorICAgICBk ZWYgZGVub21pbmF0b3Ioc2VsZik6CitAQCAtMzM0NCw3ICszMzQ0LDcgQEAgY2RlZiBjbGFzcyBO dW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAg IDE1CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgSW50ZWdlciBhbnMgPSBJbnRlZ2VyLl9f bmV3X18oSW50ZWdlcikKKy0gICAgICAgIFpaX3RvX21weihhbnMudmFsdWUsICZzZWxmLl9fZGVu b21pbmF0b3IpCisrICAgICAgICBaWl90b19tcHooYW5zLnZhbHVlLCAmc2VsZi5fZGVub21pbmF0 b3IpCisgICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGRlZiBfc2V0X211bHRpcGxpY2F0aXZl X29yZGVyKHNlbGYsIG4pOgorQEAgLTM0NzQsOCArMzQ3NCw4IEBAIGNkZWYgY2xhc3MgTnVtYmVy RmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgICAgICBzYWdl OiBhLmlzX29uZSgpCisgICAgICAgICAgICAgRmFsc2UKKyAgICAgICAgICIiIgorLSAgICAgICAg cmV0dXJuIFpaWF9Jc09uZShzZWxmLl9fbnVtZXJhdG9yKSA9PSAxIGFuZCBcCistICAgICAgICAg ICAgICAgWlpfSXNPbmUoc2VsZi5fX2Rlbm9taW5hdG9yKSA9PSAxCisrICAgICAgICByZXR1cm4g WlpYX0lzT25lKHNlbGYuX251bWVyYXRvcikgPT0gMSBhbmQgXAorKyAgICAgICAgICAgICAgIFpa X0lzT25lKHNlbGYuX2Rlbm9taW5hdG9yKSA9PSAxCisgCisgICAgIGNwZGVmIGJpbnQgaXNfcmF0 aW9uYWwoc2VsZik6CisgICAgICAgICByIiIiCitAQCAtMzUwMSw3ICszNTAxLDcgQEAgY2RlZiBj bGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAg ICAgICAgIHNhZ2U6IEsoMS8yKS5pc19yYXRpb25hbCgpCisgICAgICAgICAgICAgVHJ1ZQorICAg ICAgICAgIiIiCistICAgICAgICByZXR1cm4gWlpYX2RlZyhzZWxmLl9fbnVtZXJhdG9yKSA8PSAw CisrICAgICAgICByZXR1cm4gWlpYX2RlZyhzZWxmLl9udW1lcmF0b3IpIDw9IDAKKyAKKyAgICAg ZGVmIGlzX2ludGVnZXIoc2VsZik6CisgICAgICAgICByIiIiCitAQCAtMzUyNyw3ICszNTI3LDcg QEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2Up OgorICAgICAgICAgICAgIHNhZ2U6IEsoMS8yKS5pc19pbnRlZ2VyKCkKKyAgICAgICAgICAgICBG YWxzZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gWlpYX2RlZyhzZWxmLl9fbnVtZXJh dG9yKSA8PSAwIGFuZCBaWl9Jc09uZShzZWxmLl9fZGVub21pbmF0b3IpID09IDEKKysgICAgICAg IHJldHVybiBaWlhfZGVnKHNlbGYuX251bWVyYXRvcikgPD0gMCBhbmQgWlpfSXNPbmUoc2VsZi5f ZGVub21pbmF0b3IpID09IDEKKyAKKyAgICAgZGVmIHRyYWNlKHNlbGYsIEs9Tm9uZSk6CisgICAg ICAgICByIiIiCitAQCAtNTMyMiw4ICs1MzIyLDggQEAgY2RlZiBjbGFzcyBPcmRlckVsZW1lbnRf YWJzb2x1dGUoTnVtYmVyRmllbGRFbGVtZW50X2Fic29sdXRlKToKKyAgICAgICAgIGNkZWYgT3Jk ZXJFbGVtZW50X2Fic29sdXRlIHggPSA8T3JkZXJFbGVtZW50X2Fic29sdXRlPnQuX19uZXdfXyh0 KQorICAgICAgICAgeC5fcGFyZW50ID0gc2VsZi5fcGFyZW50CisgICAgICAgICB4Ll9udW1iZXJf ZmllbGQgPSBzZWxmLl9wYXJlbnQubnVtYmVyX2ZpZWxkKCkKKy0gICAgICAgIHguX19mbGRfbnVt ZXJhdG9yID0gc2VsZi5fX2ZsZF9udW1lcmF0b3IKKy0gICAgICAgIHguX19mbGRfZGVub21pbmF0 b3IgPSBzZWxmLl9fZmxkX2Rlbm9taW5hdG9yCisrICAgICAgICB4Ll9mbGRfbnVtZXJhdG9yID0g c2VsZi5fZmxkX251bWVyYXRvcgorKyAgICAgICAgeC5fZmxkX2Rlbm9taW5hdG9yID0gc2VsZi5f ZmxkX2Rlbm9taW5hdG9yCisgICAgICAgICByZXR1cm4geAorIAorICAgICBjZGVmIG51bWJlcl9m aWVsZChzZWxmKToKK0BAIC01NDQzLDggKzU0NDMsOCBAQCBjZGVmIGNsYXNzIE9yZGVyRWxlbWVu dF9yZWxhdGl2ZShOdW1iZXJGaWVsZEVsZW1lbnRfcmVsYXRpdmUpOgorICAgICAgICAgY2RlZiBP cmRlckVsZW1lbnRfcmVsYXRpdmUgeCA9IDxPcmRlckVsZW1lbnRfcmVsYXRpdmU+dC5fX25ld19f KHQpCisgICAgICAgICB4Ll9wYXJlbnQgPSBzZWxmLl9wYXJlbnQKKyAgICAgICAgIHguX251bWJl cl9maWVsZCA9IHNlbGYuX3BhcmVudC5udW1iZXJfZmllbGQoKQorLSAgICAgICAgeC5fX2ZsZF9u dW1lcmF0b3IgPSBzZWxmLl9fZmxkX251bWVyYXRvcgorLSAgICAgICAgeC5fX2ZsZF9kZW5vbWlu YXRvciA9IHNlbGYuX19mbGRfZGVub21pbmF0b3IKKysgICAgICAgIHguX2ZsZF9udW1lcmF0b3Ig PSBzZWxmLl9mbGRfbnVtZXJhdG9yCisrICAgICAgICB4Ll9mbGRfZGVub21pbmF0b3IgPSBzZWxm Ll9mbGRfZGVub21pbmF0b3IKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiBfX2ludmVy dF9fKHNlbGYpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9udW1i ZXJfZmllbGRfZWxlbWVudF9xdWFkcmF0aWMucHl4IGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2Zp ZWxkL251bWJlcl9maWVsZF9lbGVtZW50X3F1YWRyYXRpYy5weXgKK2luZGV4IDA5OTJlN2NkNTI3 Li5jMzJmNmFhZGQxMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9u dW1iZXJfZmllbGRfZWxlbWVudF9xdWFkcmF0aWMucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9u dW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnRfcXVhZHJhdGljLnB5eAorQEAgLTYxMCw4 ICs2MTAsOCBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudF9xdWFkcmF0aWMoTnVtYmVy RmllbGRFbGVtZW50X2Fic29sdXRlKToKKyAgICAgICAgIG1wel9jbGVhcih0bXBfbXB6KQorIAor ICAgICAgICAgeC5fcGFyZW50ID0gPFBhcmVudFdpdGhCYXNlPm5ld19wYXJlbnQKKy0gICAgICAg IHguX19mbGRfbnVtZXJhdG9yLCB4Ll9fZmxkX2Rlbm9taW5hdG9yID0gbmV3X3BhcmVudC5wb2x5 bm9taWFsX250bCgpCistICAgICAgICB4Ll9fZGVub21pbmF0b3IgPSBlbHRfZGVuCisrICAgICAg ICB4Ll9mbGRfbnVtZXJhdG9yLCB4Ll9mbGRfZGVub21pbmF0b3IgPSBuZXdfcGFyZW50LnBvbHlu b21pYWxfbnRsKCkKKysgICAgICAgIHguX2Rlbm9taW5hdG9yID0gZWx0X2RlbgorICAgICAgICAg Y2RlZiBaWlhfYyByZXN1bHQKKyAgICAgICAgIGNkZWYgWlpfYyB0bXAKKyAgICAgICAgIGNkZWYg aW50IGkKK0BAIC02MjEsNyArNjIxLDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnRf cXVhZHJhdGljKE51bWJlckZpZWxkRWxlbWVudF9hYnNvbHV0ZSk6CisgICAgICAgICBmb3IgaSBm cm9tIDAgPD0gaSA8PSBaWlhfZGVnKGVsdF9udW0pOgorICAgICAgICAgICAgIHRtcCA9IFpaWF9j b2VmZihlbHRfbnVtLCBpKQorICAgICAgICAgICAgIFpaWF9TZXRDb2VmZihyZXN1bHQsIGkqcmVs LCB0bXApCistICAgICAgICBaWlhfcmVtKHguX19udW1lcmF0b3IsIHJlc3VsdCwgX251bS54KQor KyAgICAgICAgWlpYX3JlbSh4Ll9udW1lcmF0b3IsIHJlc3VsdCwgX251bS54KQorICAgICAgICAg KDxOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGU+eCkuX3JlZHVjZV9jXygpCisgICAgICAgICBy ZXR1cm4geAorIAorQEAgLTE2NDMsNyArMTY0Myw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRF bGVtZW50X3F1YWRyYXRpYyhOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUpOgorICAgICAgICAg cmV0dXJuIHJlcworIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLSMgV2UgbXVzdCBvdmVy cmlkZSBldmVyeXRoaW5nIHRoYXQgbWFrZXMgdXNlcyBvZiBzZWxmLl9fbnVtZXJhdG9yL19fZGVu b21pbmF0b3IKKysjIFdlIG11c3Qgb3ZlcnJpZGUgZXZlcnl0aGluZyB0aGF0IG1ha2VzIHVzZXMg b2Ygc2VsZi5fbnVtZXJhdG9yL19kZW5vbWluYXRvcgorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIAorICAgICBkZWYgX19oYXNoX18oc2VsZik6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL0NBX3RlbXBsYXRlLnB4aSBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9DQV90ZW1w bGF0ZS5weGkKK2luZGV4IGEwYTY2YzE5NjIxLi5kODIxYjVjMTU3NiAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL3BhZGljcy9DQV90ZW1wbGF0ZS5weGkKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L3BhZGljcy9DQV90ZW1wbGF0ZS5weGkKK0BAIC0xNDYzLDcgKzE0NjMsNyBAQCBjZGVmIGNsYXNz IHBBZGljQ29lcmNpb25fQ0FfZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAg IElGIENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAgICAgICAjIFRoZSBiYXNlIHJpbmcg aXMgd3JvbmcsIHNvIHdlIGZpeCBpdC4KKyAgICAgICAgICAgICBLID0gYW5zLnVuaXQuYmFzZV9y aW5nKCkKKy0gICAgICAgICAgICBhbnMudW5pdC5fX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFu cy51bml0Ll9fY29lZmZzXQorKyAgICAgICAgICAgIGFucy51bml0Ll9jb2VmZnMgPSBbSyhjKSBm b3IgYyBpbiBhbnMudW5pdC5fY29lZmZzXQorICAgICAgICAgYW5zLl9ub3JtYWxpemUoKQorICAg ICAgICAgcmV0dXJuIGFucworIAorQEAgLTE1MTYsNyArMTUxNiw3IEBAIGNkZWYgY2xhc3MgcEFk aWNDb2VyY2lvbl9DQV9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgICAg IElGIENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAgICAgICAgICAgIyBUaGUgYmFzZSBy aW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgICAgIEsgPSBhbnMudW5p dC5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgICAgICBhbnMudW5pdC5fX2NvZWZmcyA9IFtLKGMp IGZvciBjIGluIGFucy51bml0Ll9fY29lZmZzXQorKyAgICAgICAgICAgICAgICBhbnMudW5pdC5f Y29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgICAgICBw YXNzCisgICAgICAgICByZXR1cm4gYW5zCisgCitAQCAtMTY4Niw3ICsxNjg2LDcgQEAgY2RlZiBj bGFzcyBwQWRpY0NvbnZlcnRfQ0FfZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICAgICAg SUYgQ0VMRU1FTlRfSVNfUFlfT0JKRUNUOgorICAgICAgICAgICAgICAgICAjIFRoZSBiYXNlIHJp bmcgaXMgd3JvbmcsIHNvIHdlIGZpeCBpdC4KKyAgICAgICAgICAgICAgICAgUiA9IGFucy52YWx1 ZS5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgICAgICBhbnMudmFsdWUuX19jb2VmZnMgPSBbUihj KSBmb3IgYyBpbiBhbnMudmFsdWUuX19jb2VmZnNdCisrICAgICAgICAgICAgICAgIGFucy52YWx1 ZS5fY29lZmZzID0gW1IoYykgZm9yIGMgaW4gYW5zLnZhbHVlLl9jb2VmZnNdCisgICAgICAgICBy ZXR1cm4gYW5zCisgCisgICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94 LCBhcmdzPSgpLCBrd2RzPXt9KToKK0BAIC0xNzQxLDcgKzE3NDEsNyBAQCBjZGVmIGNsYXNzIHBB ZGljQ29udmVydF9DQV9mcmFjX2ZpZWxkKE1vcnBoaXNtKToKKyAgICAgICAgICAgICBJRiBDRUxF TUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgICAgICMgVGhlIGJhc2UgcmluZyBpcyB3 cm9uZywgc28gd2UgZml4IGl0LgorICAgICAgICAgICAgICAgICBSID0gYW5zLnZhbHVlLmJhc2Vf cmluZygpCistICAgICAgICAgICAgICAgIGFucy52YWx1ZS5fX2NvZWZmcyA9IFtSKGMpIGZvciBj IGluIGFucy52YWx1ZS5fX2NvZWZmc10KKysgICAgICAgICAgICAgICAgYW5zLnZhbHVlLl9jb2Vm ZnMgPSBbUihjKSBmb3IgYyBpbiBhbnMudmFsdWUuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBh bnMKKyAKKyAgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9yaW5ncy9wYWRpY3MvQ1JfdGVtcGxhdGUucHhpIGIvc3JjL3NhZ2UvcmluZ3MvcGFk aWNzL0NSX3RlbXBsYXRlLnB4aQoraW5kZXggY2I1N2JiMmNiNDguLjg2M2M2MTI1ODdjIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NSX3RlbXBsYXRlLnB4aQorKysrIGIvc3Jj L3NhZ2UvcmluZ3MvcGFkaWNzL0NSX3RlbXBsYXRlLnB4aQorQEAgLTIxODQsNyArMjE4NCw3IEBA IGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9DUl9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20p OgorICAgICAgICAgSUYgQ0VMRU1FTlRfSVNfUFlfT0JKRUNUOgorICAgICAgICAgICAgICMgVGhl IGJhc2UgcmluZyBpcyB3cm9uZywgc28gd2UgZml4IGl0LgorICAgICAgICAgICAgIEsgPSBhbnMu dW5pdC5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgIGFucy51bml0Ll9fY29lZmZzID0gW0soYykg Zm9yIGMgaW4gYW5zLnVuaXQuX19jb2VmZnNdCisrICAgICAgICAgICAgYW5zLnVuaXQuX2NvZWZm cyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5z CisgCisgICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgp LCBrd2RzPXt9KToKK0BAIC0yMjQxLDcgKzIyNDEsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNp b25fQ1JfZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgICAgICBJRiBDRUxF TUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgICAgICMgVGhlIGJhc2UgcmluZyBpcyB3 cm9uZywgc28gd2UgZml4IGl0LgorICAgICAgICAgICAgICAgICBLID0gYW5zLnVuaXQuYmFzZV9y aW5nKCkKKy0gICAgICAgICAgICAgICAgYW5zLnVuaXQuX19jb2VmZnMgPSBbSyhjKSBmb3IgYyBp biBhbnMudW5pdC5fX2NvZWZmc10KKysgICAgICAgICAgICAgICAgYW5zLnVuaXQuX2NvZWZmcyA9 IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisg CisgICAgIGRlZiBzZWN0aW9uKHNlbGYpOgorQEAgLTI0MDQsNyArMjQwNCw3IEBAIGNkZWYgY2xh c3MgcEFkaWNDb252ZXJ0X0NSX2ZyYWNfZmllbGQoTW9ycGhpc20pOgorICAgICAgICAgSUYgQ0VM RU1FTlRfSVNfUFlfT0JKRUNUOgorICAgICAgICAgICAgICMgVGhlIGJhc2UgcmluZyBpcyB3cm9u Zywgc28gd2UgZml4IGl0LgorICAgICAgICAgICAgIEsgPSBhbnMudW5pdC5iYXNlX3JpbmcoKQor LSAgICAgICAgICAgIGFucy51bml0Ll9fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQu X19jb2VmZnNdCisrICAgICAgICAgICAgYW5zLnVuaXQuX2NvZWZmcyA9IFtLKGMpIGZvciBjIGlu IGFucy51bml0Ll9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGNwZGVmIEVs ZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KToKK0BAIC0y NDYzLDcgKzI0NjMsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9DUl9mcmFjX2ZpZWxkKE1v cnBoaXNtKToKKyAgICAgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAg ICAgICAgICAgICMgVGhlIGJhc2UgcmluZyBpcyB3cm9uZywgc28gd2UgZml4IGl0LgorICAgICAg ICAgICAgICAgICBLID0gYW5zLnVuaXQuYmFzZV9yaW5nKCkKKy0gICAgICAgICAgICAgICAgYW5z LnVuaXQuX19jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fX2NvZWZmc10KKysgICAg ICAgICAgICAgICAgYW5zLnVuaXQuX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9j b2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGNkZWYgZGljdCBfZXh0cmFfc2xv dHMoc2VsZik6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0ZNX3RlbXBsYXRl LnB4aSBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9GTV90ZW1wbGF0ZS5weGkKK2luZGV4IGVhN2Q0 MDU1NjYwLi5mNDcyMDAwNzRlYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9G TV90ZW1wbGF0ZS5weGkKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9GTV90ZW1wbGF0ZS5w eGkKK0BAIC0xMjI3LDcgKzEyMjcsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fRk1fZnJh Y19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIElGIENFTEVNRU5UX0lTX1BZX09C SkVDVDoKKyAgICAgICAgICAgICAjIFRoZSBiYXNlIHJpbmcgaXMgd3JvbmcsIHNvIHdlIGZpeCBp dC4KKyAgICAgICAgICAgICBLID0gYW5zLnVuaXQuYmFzZV9yaW5nKCkKKy0gICAgICAgICAgICBh bnMudW5pdC5fX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9fY29lZmZzXQorKyAg ICAgICAgICAgIGFucy51bml0Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29l ZmZzXQorICAgICAgICAgcmV0dXJuIGFucworIAorICAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dp dGhfYXJncyhzZWxmLCBfeCwgYXJncz0oKSwga3dkcz17fSk6CitAQCAtMTI3Nyw3ICsxMjc3LDcg QEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX0ZNX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3JwaGlz bSk6CisgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgIyBU aGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgSyA9IGFu cy51bml0LmJhc2VfcmluZygpCistICAgICAgICAgICAgYW5zLnVuaXQuX19jb2VmZnMgPSBbSyhj KSBmb3IgYyBpbiBhbnMudW5pdC5fX2NvZWZmc10KKysgICAgICAgICAgICBhbnMudW5pdC5fY29l ZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBh bnMKKyAKKyAgICAgZGVmIHNlY3Rpb24oc2VsZik6CitAQCAtMTQzNSw3ICsxNDM1LDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY0NvbnZlcnRfRk1fZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICBJ RiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlz IHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgUiA9IGFucy52YWx1ZS5iYXNlX3Jp bmcoKQorLSAgICAgICAgICAgIGFucy52YWx1ZS5fX2NvZWZmcyA9IFtSKGMpIGZvciBjIGluIGFu cy52YWx1ZS5fX2NvZWZmc10KKysgICAgICAgICAgICBhbnMudmFsdWUuX2NvZWZmcyA9IFtSKGMp IGZvciBjIGluIGFucy52YWx1ZS5fY29lZmZzXQorICAgICAgICAgcmV0dXJuIGFucworIAorICAg ICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwgYXJncz0oKSwga3dkcz17 fSk6CitAQCAtMTQ4Myw3ICsxNDgzLDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfRk1fZnJh Y19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6Cisg ICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAg ICAgICAgICAgUiA9IGFucy52YWx1ZS5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgIGFucy52YWx1 ZS5fX2NvZWZmcyA9IFtSKGMpIGZvciBjIGluIGFucy52YWx1ZS5fX2NvZWZmc10KKysgICAgICAg ICAgICBhbnMudmFsdWUuX2NvZWZmcyA9IFtSKGMpIGZvciBjIGluIGFucy52YWx1ZS5fY29lZmZz XQorICAgICAgICAgcmV0dXJuIGFucworIAorICAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNl bGYpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9GUF90ZW1wbGF0ZS5weGkg Yi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRlBfdGVtcGxhdGUucHhpCitpbmRleCA1N2VjNjE5YjI3 OC4uYzcxOGMwYTVmOGQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRlBfdGVt cGxhdGUucHhpCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRlBfdGVtcGxhdGUucHhpCitA QCAtMTg0OSw3ICsxODQ5LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX0ZQX2ZyYWNfZmll bGQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6 CisgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisg ICAgICAgICAgICAgSyA9IGFucy51bml0LmJhc2VfcmluZygpCistICAgICAgICAgICAgYW5zLnVu aXQuX19jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fX2NvZWZmc10KKysgICAgICAg ICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZmc10K KyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2Fy Z3Moc2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pOgorQEAgLTE5MDMsNyArMTkwMyw3IEBAIGNk ZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9GUF9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgor ICAgICAgICAgICAgIElGIENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAgICAgICAgICAg IyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgICAg IEsgPSBhbnMudW5pdC5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgICAgICBhbnMudW5pdC5fX2Nv ZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9fY29lZmZzXQorKyAgICAgICAgICAgICAg ICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAg ICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgZGVmIHNlY3Rpb24oc2VsZik6CitAQCAtMjAyNSw3 ICsyMDI1LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfRlBfZnJhY19maWVsZChNb3JwaGlz bSk6CisgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgIyBU aGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgSyA9IGFu cy51bml0LmJhc2VfcmluZygpCistICAgICAgICAgICAgYW5zLnVuaXQuX19jb2VmZnMgPSBbSyhj KSBmb3IgYyBpbiBhbnMudW5pdC5fX2NvZWZmc10KKysgICAgICAgICAgICBhbnMudW5pdC5fY29l ZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBh bnMKKyAKKyAgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFyZ3M9 KCksIGt3ZHM9e30pOgorQEAgLTIwODEsNyArMjA4MSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252 ZXJ0X0ZQX2ZyYWNfZmllbGQoTW9ycGhpc20pOgorICAgICAgICAgICAgIElGIENFTEVNRU5UX0lT X1BZX09CSkVDVDoKKyAgICAgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBz byB3ZSBmaXggaXQuCisgICAgICAgICAgICAgICAgIEsgPSBhbnMudW5pdC5iYXNlX3JpbmcoKQor LSAgICAgICAgICAgICAgICBhbnMudW5pdC5fX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51 bml0Ll9fY29lZmZzXQorKyAgICAgICAgICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykg Zm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAg Y2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5n cy9wYWRpY3MvcG93X2NvbXB1dGVyLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29t cHV0ZXIucHhkCitpbmRleCAyYTkzZTQyMjU0ZS4uODc2NjcyNTg4MmUgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyLnB4ZAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL3Bvd19jb21wdXRlci5weGQKK0BAIC02LDcgKzYsNyBAQCBjZGVmIGNsYXNzIFBv d0NvbXB1dGVyX2NsYXNzKFNhZ2VPYmplY3QpOgorICAgICBjZGVmIEludGVnZXIgcHJpbWUKKyAg ICAgY2RlZiBJbnRlZ2VyIHAyICMgZmxvb3IocC8yKQorICAgICBjZGVmIGJpbnQgaW5fZmllbGQK Ky0gICAgY2RlZiBpbnQgX19hbGxvY2F0ZWQKKysgICAgY2RlZiBpbnQgX2FsbG9jYXRlZAorICAg ICBjZGVmIHB1YmxpYyBvYmplY3QgX3ByZWNfdHlwZQorIAorICAgICBjZGVmIGxvbmcgcmFtX3By ZWNfY2FwICMgPSBwcmVjX2NhcCAqIGUKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRp Y3MvcG93X2NvbXB1dGVyLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXIu cHl4CitpbmRleCBjMmZhODAzMTA4Ni4uMWM1YmRmODY4OTcgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFk aWNzL3Bvd19jb21wdXRlci5weXgKK0BAIC02NSw3ICs2NSw3IEBAIGNkZWYgY2xhc3MgUG93Q29t cHV0ZXJfY2xhc3MoU2FnZU9iamVjdCk6CisgICAgICAgICBzaWdfb24oKQorICAgICAgICAgbXB6 X2luaXQoc2VsZi50ZW1wX20pCisgICAgICAgICBzaWdfb2ZmKCkKKy0gICAgICAgIHNlbGYuX19h bGxvY2F0ZWQgPSAxCisrICAgICAgICBzZWxmLl9hbGxvY2F0ZWQgPSAxCisgCisgICAgIGRlZiBf X2luaXRfXyhzZWxmLCBJbnRlZ2VyIHByaW1lLCBsb25nIGNhY2hlX2xpbWl0LCBsb25nIHByZWNf Y2FwLCBsb25nIHJhbV9wcmVjX2NhcCwgYmludCBpbl9maWVsZCwgcG9seT1Ob25lLCBzaGlmdF9z ZWVkPU5vbmUpOgorICAgICAgICAgIiIiCitAQCAtNDg1LDcgKzQ4NSw3IEBAIGNkZWYgY2xhc3Mg UG93Q29tcHV0ZXJfYmFzZShQb3dDb21wdXRlcl9jbGFzcyk6CisgICAgICAgICBmaW5hbGx5Ogor ICAgICAgICAgICAgIHNpZ19vZmYoKQorIAorLSAgICAgICAgc2VsZi5fX2FsbG9jYXRlZCA9IDIK KysgICAgICAgIHNlbGYuX2FsbG9jYXRlZCA9IDIKKyAKKyAgICAgZGVmIF9faW5pdF9fKHNlbGYs IEludGVnZXIgcHJpbWUsIGxvbmcgY2FjaGVfbGltaXQsIGxvbmcgcHJlY19jYXAsIGxvbmcgcmFt X3ByZWNfY2FwLCBiaW50IGluX2ZpZWxkLCBwb2x5PU5vbmUsIHNoaWZ0X3NlZWQ9Tm9uZSk6Cisg ICAgICAgICAiIiIKK0BAIC01MjksNyArNTI5LDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9i YXNlKFBvd0NvbXB1dGVyX2NsYXNzKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQeV9z c2l6ZV90IGkKKyAKKy0gICAgICAgIGlmIHNlbGYuX19hbGxvY2F0ZWQgPj0gMjoKKysgICAgICAg IGlmIHNlbGYuX2FsbG9jYXRlZCA+PSAyOgorICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNl bGYuY2FjaGVfbGltaXQgKyAxKToKKyAgICAgICAgICAgICAgICAgbXB6X2NsZWFyKHNlbGYuc21h bGxfcG93ZXJzW2ldKQorICAgICAgICAgICAgIG1wel9jbGVhcihzZWxmLnRvcF9wb3dlcikKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX2ZsaW50LnB5eCBi L3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfZmxpbnQucHl4CitpbmRleCA5Zjkx NGRlZmNjNi4uZTUyMWVhNmUwNzggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3Mv cG93X2NvbXB1dGVyX2ZsaW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19j b21wdXRlcl9mbGludC5weXgKK0BAIC01OSw3ICs1OSw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0 ZXJfZmxpbnQoUG93Q29tcHV0ZXJfY2xhc3MpOgorICAgICAgICAgZmluYWxseToKKyAgICAgICAg ICAgICBzaWdfb2ZmKCkKKyAKKy0gICAgICAgIHNlbGYuX19hbGxvY2F0ZWQgPSA0CisrICAgICAg ICBzZWxmLl9hbGxvY2F0ZWQgPSA0CisgCisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBJbnRlZ2Vy IHByaW1lLCBsb25nIGNhY2hlX2xpbWl0LCBsb25nIHByZWNfY2FwLCBsb25nIHJhbV9wcmVjX2Nh cCwgYmludCBpbl9maWVsZCwgcG9seT1Ob25lLCBzaGlmdF9zZWVkPU5vbmUpOgorICAgICAgICAg IiIiCitAQCAtODcsNyArODcsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2ZsaW50KFBvd0Nv bXB1dGVyX2NsYXNzKToKKyAgICAgICAgICAgICBzYWdlOiBBID0gUG93Q29tcHV0ZXJfZmxpbnQo NSwgMjAsIDIwLCAyMCwgRmFsc2UpCisgICAgICAgICAgICAgc2FnZTogZGVsIEEKKyAgICAgICAg ICIiIgorLSAgICAgICAgaWYgc2VsZi5fX2FsbG9jYXRlZCA+PSA0OgorKyAgICAgICAgaWYgc2Vs Zi5fYWxsb2NhdGVkID49IDQ6CisgICAgICAgICAgICAgZm1wel9jbGVhcihzZWxmLmZwcmltZSkK KyAgICAgICAgICAgICBmbXB6X2NsZWFyKHNlbGYuaGFsZl9wcmltZSkKKyAgICAgICAgICAgICBm bXB6X2NsZWFyKHNlbGYuX2Zwb3dfdmFyaWFibGUpCitAQCAtMjA4LDcgKzIwOCw3IEBAIGNkZWYg Y2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRfMXN0ZXAoUG93Q29tcHV0ZXJfZmxpbnQpOgorIAorICAg ICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCBw b2x5ID0gX3BvbHkKKy0gICAgICAgIGNkZWYgbG9uZyBsZW5ndGggPSBmbXB6X3BvbHlfbGVuZ3Ro KHBvbHkuX19wb2x5KQorKyAgICAgICAgY2RlZiBsb25nIGxlbmd0aCA9IGZtcHpfcG9seV9sZW5n dGgocG9seS5fcG9seSkKKyAKKyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBpCisgCitAQCAtMjUx LDcgKzI1MSw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRfMXN0ZXAoUG93Q29tcHV0 ZXJfZmxpbnQpOgorICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAK Ky0gICAgICAgIHNlbGYuX19hbGxvY2F0ZWQgPSA4CisrICAgICAgICBzZWxmLl9hbGxvY2F0ZWQg PSA4CisgCisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBJbnRlZ2VyIHByaW1lLCBsb25nIGNhY2hl X2xpbWl0LCBsb25nIHByZWNfY2FwLCBsb25nIHJhbV9wcmVjX2NhcCwgYmludCBpbl9maWVsZCwg X3BvbHksIHNoaWZ0X3NlZWQ9Tm9uZSk6CisgICAgICAgICAiIiIKK0BAIC0yNjgsMTAgKzI2OCwx MCBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2ZsaW50XzFzdGVwKFBvd0NvbXB1dGVyX2ZsaW50 KToKKyAgICAgICAgIFBvd0NvbXB1dGVyX2ZsaW50Ll9faW5pdF9fKHNlbGYsIHByaW1lLCBjYWNo ZV9saW1pdCwgcHJlY19jYXAsIHJhbV9wcmVjX2NhcCwgaW5fZmllbGQsIF9wb2x5LCBzaGlmdF9z ZWVkKQorIAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgcG9s eSA9IF9wb2x5CistICAgICAgICBjZGVmIGxvbmcgbGVuZ3RoID0gZm1wel9wb2x5X2xlbmd0aChw b2x5Ll9fcG9seSkKKysgICAgICAgIGNkZWYgbG9uZyBsZW5ndGggPSBmbXB6X3BvbHlfbGVuZ3Ro KHBvbHkuX3BvbHkpCisgICAgICAgICBzZWxmLmRlZyA9IGxlbmd0aCAtIDEKKyAKKy0gICAgICAg IGZtcHpfcG9seV9zZXQoc2VsZi5tb2R1bHVzLCBwb2x5Ll9fcG9seSkKKysgICAgICAgIGZtcHpf cG9seV9zZXQoc2VsZi5tb2R1bHVzLCBwb2x5Ll9wb2x5KQorIAorICAgICAgICAgY2RlZiBQeV9z c2l6ZV90IGkKKyAgICAgICAgIGNkZWYgZm1weiogY29lZmZzID0gc2VsZi5tb2R1bHVzLmNvZWZm cworQEAgLTI5Niw3ICsyOTYsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2ZsaW50XzFzdGVw KFBvd0NvbXB1dGVyX2ZsaW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQeV9zc2l6 ZV90IGkKKyAKKy0gICAgICAgIGlmIHNlbGYuX19hbGxvY2F0ZWQgPj0gODoKKysgICAgICAgIGlm IHNlbGYuX2FsbG9jYXRlZCA+PSA4OgorICAgICAgICAgICAgIGZtcHpfY2xlYXIoc2VsZi5xKQor ICAgICAgICAgICAgIGZtcHpfcG9seV9jbGVhcihzZWxmLm1vZHVsdXMpCisgICAgICAgICAgICAg Zm1wel9wb2x5X2NsZWFyKHNlbGYucG93aGVscGVyX29uZXVuaXQpCitAQCAtNDI3LDkgKzQyNyw5 IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRfMXN0ZXAoUG93Q29tcHV0ZXJfZmxpbnQp OgorICAgICAgICAgeCA9IFIuZ2VuKCkKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2Vy X2RlbnNlX2ZsaW50IGFucyA9ICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50Pz54KS5f bmV3KCkKKyAgICAgICAgIGlmIF9uIGlzIE5vbmU6CistICAgICAgICAgICAgZm1wel9wb2x5X3Nl dChhbnMuX19wb2x5LCBzZWxmLm1vZHVsdXMpCisrICAgICAgICAgICAgZm1wel9wb2x5X3NldChh bnMuX3BvbHksIHNlbGYubW9kdWx1cykKKyAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgZm1w el9wb2x5X3NldChhbnMuX19wb2x5LCBzZWxmLmdldF9tb2R1bHVzKF9uKVswXSkKKysgICAgICAg ICAgICBmbXB6X3BvbHlfc2V0KGFucy5fcG9seSwgc2VsZi5nZXRfbW9kdWx1cyhfbilbMF0pCisg ICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGNkZWYgX25ld19mbXB6X3BvbHkoc2VsZiwgZm1w el9wb2x5X3QgdmFsdWUsIHZhcj0neCcpOgorQEAgLTQ0MCw3ICs0NDAsNyBAQCBjZGVmIGNsYXNz IFBvd0NvbXB1dGVyX2ZsaW50XzFzdGVwKFBvd0NvbXB1dGVyX2ZsaW50KToKKyAgICAgICAgIFIg PSBaWlt2YXJdCisgICAgICAgICB4ID0gUi5nZW4oKQorICAgICAgICAgY2RlZiBQb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfZmxpbnQgYW5zID0gKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxp bnQ/PngpLl9uZXcoKQorLSAgICAgICAgZm1wel9wb2x5X3NldChhbnMuX19wb2x5LCB2YWx1ZSkK KysgICAgICAgIGZtcHpfcG9seV9zZXQoYW5zLl9wb2x5LCB2YWx1ZSkKKyAgICAgICAgIHJldHVy biBhbnMKKyAKKyBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2ZsaW50X3VucmFtKFBvd0NvbXB1dGVy X2ZsaW50XzFzdGVwKToKK0BAIC01MDEsNyArNTAxLDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRl cl9mbGludF91bnJhbShQb3dDb21wdXRlcl9mbGludF8xc3RlcCk6CisgICAgICAgICBtcHpfaW5p dChzZWxmLm1wel9tYXRtb2QpCisgICAgICAgICBzaWdfb2ZmKCkKKyAKKy0gICAgICAgIHNlbGYu X19hbGxvY2F0ZWQgPSAxNgorKyAgICAgICAgc2VsZi5fYWxsb2NhdGVkID0gMTYKKyAKKyAgICAg ZGVmIF9fZGVhbGxvY19fKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtNTE1LDcgKzUxNSw3IEBA IGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRfdW5yYW0oUG93Q29tcHV0ZXJfZmxpbnRfMXN0 ZXApOgorICAgICAgICAgICAgIHNhZ2U6IGRlbCBBCisgCisgICAgICAgICAiIiIKKy0gICAgICAg IGlmIHNlbGYuX19hbGxvY2F0ZWQgPj0gMTY6CisrICAgICAgICBpZiBzZWxmLl9hbGxvY2F0ZWQg Pj0gMTY6CisgICAgICAgICAgICAgZm1wel9jbGVhcihzZWxmLmZtcHpfY2NtcCkKKyAgICAgICAg ICAgICBmbXB6X2NsZWFyKHNlbGYuZm1wel9jdmFsKQorICAgICAgICAgICAgIGZtcHpfY2xlYXIo c2VsZi5mbXB6X2NpbnYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19j b21wdXRlcl9yZWxhdGl2ZS5weGQgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVy X3JlbGF0aXZlLnB4ZAoraW5kZXggZmM3ZDViMjFmNDIuLmUwZTVhYTU2MDBlIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9yZWxhdGl2ZS5weGQKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfcmVsYXRpdmUucHhkCitAQCAtMTgs NyArMTgsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX3JlbGF0aXZlKFBvd0NvbXB1dGVyX2Ns YXNzKToKKyAgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2Ugc2hpZnRfcmVtCisgICAg IGNkZWYgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIGFsaWFzaW5nCisgICAgICMgYWxsb3cgY2Fj aGVkIG1ldGhvZHMKKy0gICAgY2RlZiBwdWJsaWMgZGljdCBfX2NhY2hlZF9tZXRob2RzCisrICAg IGNkZWYgcHVibGljIGRpY3QgX2NhY2hlZF9tZXRob2RzCisgCisgICAgIGNkZWYgdW5zaWduZWQg bG9uZyBjYXBkaXYoc2VsZiwgdW5zaWduZWQgbG9uZyBuKQorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfcmVsYXRpdmUucHl4IGIvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL3Bvd19jb21wdXRlcl9yZWxhdGl2ZS5weXgKK2luZGV4IDM5MDUxYTY4MWRlLi4y MjUzMjgxYmQzNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0 ZXJfcmVsYXRpdmUucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVy X3JlbGF0aXZlLnB5eAorQEAgLTY5LDcgKzY5LDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9y ZWxhdGl2ZShQb3dDb21wdXRlcl9jbGFzcyk6CisgICAgICAgICAgICAgc2FnZTogUEMgPSBQb3dD b21wdXRlcl9yZWxhdGl2ZV9tYWtlcigzLCAyMCwgMjAsIDYwLCBGYWxzZSwgZiwgc2hpZnRfc2Vl ZCwgJ2ZpeGVkLW1vZCcpCisgCisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19hbGxvY2F0 ZWQgPSA0CisrICAgICAgICBzZWxmLl9hbGxvY2F0ZWQgPSA0CisgCisgICAgIGRlZiBfX2luaXRf XyhzZWxmLCBJbnRlZ2VyIHByaW1lLCBsb25nIGNhY2hlX2xpbWl0LCBsb25nIHByZWNfY2FwLCBs b25nIHJhbV9wcmVjX2NhcCwgYmludCBpbl9maWVsZCwgcG9seSwgc2hpZnRfc2VlZCk6CisgICAg ICAgICByIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9oaWxiZXJ0 LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvaGlsYmVydC5weXgKK2luZGV4IGExZjcw ZTBjOTgzLi5kMmFiZjMyNWZkOCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21p YWwvaGlsYmVydC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvaGlsYmVydC5w eXgKK0BAIC0xNzAsNyArMTcwLDcgQEAgY2RlZiBiaW50IEhpbGJlcnRCYXNlQ2FzZShQb2x5bm9t aWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgZmhzLCBOb2RlIEQsIHR1cGxlIHcpOgorICAgICBjZGVm IGludCBlCisgICAgICMgRmlyc3QsIHRoZSBlYXNpZXN0IGNhc2VzOgorICAgICBpZiBub3QgRC5J ZDogIyBUaGUgemVybyBpZGVhbAorLSAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShmaHMu X19wb2x5LCAwLCAxKSAjID0gUFIoMSkKKysgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2ko ZmhzLl9wb2x5LCAwLCAxKSAjID0gUFIoMSkKKyAgICAgICAgIHJldHVybiBUcnVlCisgICAgIGNk ZWYgRVR1cGxlIG0gPSA8RVR1cGxlPlB5TGlzdF9HRVRfSVRFTShELklkLCBsZW4oRC5JZCktMSkK KyAgICAgaWYgbS5fbm9uemVybyA9PSAwOiAjIFRoZSBvbmUgaWRlYWwKK0BAIC0xODMsMTggKzE4 MywxOCBAQCBjZGVmIGJpbnQgSGlsYmVydEJhc2VDYXNlKFBvbHlub21pYWxfaW50ZWdlcl9kZW5z ZV9mbGludCBmaHMsIE5vZGUgRCwgdHVwbGUgdyk6CisgICAgIGlmIG0uX25vbnplcm8gPT0gMSBh bmQgbS5fZGF0YVsxXSA9PSAxOgorICAgICAgICAgZm1wel9wb2x5X2luaXQocG9seV90bXApCisg ICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHBvbHlfdG1wLCAwLCAxKQorLSAgICAgICAg Zm1wel9wb2x5X3NldF9jb2VmZl9zaShmaHMuX19wb2x5LCAwLCAxKSAjID0gUFIoMSkKKysgICAg ICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2koZmhzLl9wb2x5LCAwLCAxKSAjID0gUFIoMSkKKyAg ICAgICAgIGlmIHcgaXMgTm9uZToKKyAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oRC5J ZCkpOgorICAgICAgICAgICAgICAgICBleHAgPSAoPEVUdXBsZT5QeUxpc3RfR0VUX0lURU0oRC5J ZCwgaSkpLnVud2VpZ2h0ZWRfZGVncmVlKCkKKyAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3Nl dF9jb2VmZl9zaShwb2x5X3RtcCwgZXhwLCAtMSkKKy0gICAgICAgICAgICAgICAgZm1wel9wb2x5 X211bChmaHMuX19wb2x5LCBmaHMuX19wb2x5LCBwb2x5X3RtcCkKKysgICAgICAgICAgICAgICAg Zm1wel9wb2x5X211bChmaHMuX3BvbHksIGZocy5fcG9seSwgcG9seV90bXApCisgICAgICAgICAg ICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2kocG9seV90bXAsIGV4cCwgMCkKKyAgICAgICAg IGVsc2U6CisgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKEQuSWQpKToKKyAgICAgICAg ICAgICAgICAgZXhwID0gKDxFVHVwbGU+UHlMaXN0X0dFVF9JVEVNKEQuSWQsIGkpKS53ZWlnaHRl ZF9kZWdyZWUodykKKyAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShwb2x5 X3RtcCwgZXhwLCAtMSkKKy0gICAgICAgICAgICAgICAgZm1wel9wb2x5X211bChmaHMuX19wb2x5 LCBmaHMuX19wb2x5LCBwb2x5X3RtcCkKKysgICAgICAgICAgICAgICAgZm1wel9wb2x5X211bChm aHMuX3BvbHksIGZocy5fcG9seSwgcG9seV90bXApCisgICAgICAgICAgICAgICAgIGZtcHpfcG9s eV9zZXRfY29lZmZfc2kocG9seV90bXAsIGV4cCwgMCkKKyAgICAgICAgIGZtcHpfcG9seV9jbGVh cihwb2x5X3RtcCkKKyAgICAgICAgIHJldHVybiBUcnVlICMgUFIucHJvZChbKDEtdCoqZGVncmVl KG0sdykpIGZvciBtIGluIEQuSWRdKQorQEAgLTIxMCwxOCArMjEwLDE4IEBAIGNkZWYgYmludCBI aWxiZXJ0QmFzZUNhc2UoUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IGZocywgTm9kZSBE LCB0dXBsZSB3KToKKyAgICAgICAgICMgVGhlIGlkZWFsIGlzIGdlbmVyYXRlZCBieSBzb21lIHBv d2VycyBvZiBzaW5nbGUgdmFyaWFibGVzLCBpLmUuLCBpdCBzcGxpdHMuCisgICAgICAgICBmbXB6 X3BvbHlfaW5pdChwb2x5X3RtcCkKKyAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2kocG9s eV90bXAsIDAsIDEpCistICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKGZocy5fX3BvbHks IDAsIDEpICMgPSBQUigxKQorKyAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShmaHMuX3Bv bHksIDAsIDEpICMgPSBQUigxKQorICAgICAgICAgaWYgdyBpcyBOb25lOgorICAgICAgICAgICAg IGZvciBpIGluIHJhbmdlKGxlbihELklkKSk6CisgICAgICAgICAgICAgICAgIGV4cCA9ICg8RVR1 cGxlPlB5TGlzdF9HRVRfSVRFTShELklkLCBpKSkudW53ZWlnaHRlZF9kZWdyZWUoKQorICAgICAg ICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHBvbHlfdG1wLCBleHAsIC0xKQorLSAg ICAgICAgICAgICAgICBmbXB6X3BvbHlfbXVsKGZocy5fX3BvbHksIGZocy5fX3BvbHksIHBvbHlf dG1wKQorKyAgICAgICAgICAgICAgICBmbXB6X3BvbHlfbXVsKGZocy5fcG9seSwgZmhzLl9wb2x5 LCBwb2x5X3RtcCkKKyAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShwb2x5 X3RtcCwgZXhwLCAwKQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBmb3IgaSBpbiByYW5n ZShsZW4oRC5JZCkpOgorICAgICAgICAgICAgICAgICBleHAgPSAoPEVUdXBsZT5QeUxpc3RfR0VU X0lURU0oRC5JZCwgaSkpLndlaWdodGVkX2RlZ3JlZSh3KQorICAgICAgICAgICAgICAgICBmbXB6 X3BvbHlfc2V0X2NvZWZmX3NpKHBvbHlfdG1wLCBleHAsIC0xKQorLSAgICAgICAgICAgICAgICBm bXB6X3BvbHlfbXVsKGZocy5fX3BvbHksIGZocy5fX3BvbHksIHBvbHlfdG1wKQorKyAgICAgICAg ICAgICAgICBmbXB6X3BvbHlfbXVsKGZocy5fcG9seSwgZmhzLl9wb2x5LCBwb2x5X3RtcCkKKyAg ICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShwb2x5X3RtcCwgZXhwLCAwKQor ICAgICAgICAgZm1wel9wb2x5X2NsZWFyKHBvbHlfdG1wKQorICAgICAgICAgcmV0dXJuIFRydWUg IyBQUi5wcm9kKFsoMS10KipkZWdyZWUobSx3KSkgZm9yIG0gaW4gRC5JZF0pCitAQCAtMjc4LDgg KzI3OCw4IEBAIGNkZWYgYmludCBIaWxiZXJ0QmFzZUNhc2UoUG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX2ZsaW50IGZocywgTm9kZSBELCB0dXBsZSB3KToKKyAgICAgICAgICAgICAgICAgICAgIGZt cHpfcG9seV9tdWwoU2Vjb25kU3VtbWFuZCwgU2Vjb25kU3VtbWFuZCwgcG9seV90bXApCisgICAg ICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHBvbHlfdG1wLCBleHAsIDAp CisgICAgICAgICBmbXB6X3BvbHlfY2xlYXIocG9seV90bXApCistICAgICAgICBmbXB6X3BvbHlf YWRkKGZocy5fX3BvbHksIGZocy5fX3BvbHksIEZpcnN0U3VtbWFuZCkKKy0gICAgICAgIGZtcHpf cG9seV9hZGQoZmhzLl9fcG9seSwgZmhzLl9fcG9seSwgU2Vjb25kU3VtbWFuZCkKKysgICAgICAg IGZtcHpfcG9seV9hZGQoZmhzLl9wb2x5LCBmaHMuX3BvbHksIEZpcnN0U3VtbWFuZCkKKysgICAg ICAgIGZtcHpfcG9seV9hZGQoZmhzLl9wb2x5LCBmaHMuX3BvbHksIFNlY29uZFN1bW1hbmQpCisg ICAgICAgICBmbXB6X3BvbHlfY2xlYXIoRmlyc3RTdW1tYW5kKQorICAgICAgICAgZm1wel9wb2x5 X2NsZWFyKFNlY29uZFN1bW1hbmQpCisgICAgICAgICByZXR1cm4gVHJ1ZQorQEAgLTUzMiwxMSAr NTMyLDExIEBAIGRlZiBmaXJzdF9oaWxiZXJ0X3NlcmllcyhJLCBncmFkaW5nPU5vbmUsIHJldHVy bl9ncmFkaW5nPUZhbHNlKToKKyAgICAgICAgICAgICAgICAgaWYgQU4uQmFjay5SaWdodCBpcyBO b25lOgorICAgICAgICAgICAgICAgICAgICAgQU4gPSBBTi5CYWNrCisgICAgICAgICAgICAgICAg ICAgICAjfiBmaHMgKj0gQU4uTE11bHQKKy0gICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9t dWwoZmhzLl9fcG9seSwgZmhzLl9fcG9seSwgQU4uTE11bHQpCisrICAgICAgICAgICAgICAgICAg ICBmbXB6X3BvbHlfbXVsKGZocy5fcG9seSwgZmhzLl9wb2x5LCBBTi5MTXVsdCkKKyAgICAgICAg ICAgICAgICAgICAgIGdvdF9yZXN1bHQgPSBUcnVlCisgICAgICAgICAgICAgICAgIGVsc2U6Cist ICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0KEFOLkJhY2suTGVmdEZIUywgZmhzLl9f cG9seSkKKy0gICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfc2koZmhzLl9fcG9seSwg MCkKKysgICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXQoQU4uQmFjay5MZWZ0RkhTLCBm aHMuX3BvbHkpCisrICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X3NpKGZocy5fcG9s eSwgMCkKKyAgICAgICAgICAgICAgICAgICAgIEFOID0gQU4uQmFjay5SaWdodAorICAgICAgICAg ICAgICAgICAgICAgQU4uQmFjay5MZWZ0ID0gTm9uZQorICAgICAgICAgICAgICAgICAgICAgZ290 X3Jlc3VsdCA9IEhpbGJlcnRCYXNlQ2FzZShmaHMsIEFOLCB3KQorQEAgLTU0NSw4ICs1NDUsOCBA QCBkZWYgZmlyc3RfaGlsYmVydF9zZXJpZXMoSSwgZ3JhZGluZz1Ob25lLCByZXR1cm5fZ3JhZGlu Zz1GYWxzZSk6CisgICAgICAgICAgICAgICAgIEFOLlJpZ2h0ID0gTm9uZQorICAgICAgICAgICAg ICAgICAjfiBmaHMgPSBBTi5MTXVsdCpBTi5MZWZ0RkhTICsgQU4uUk11bHQqZmhzCisgICAgICAg ICAgICAgICAgIGZtcHpfcG9seV9tdWwoQU4uTE11bHQsIEFOLkxNdWx0LCBBTi5MZWZ0RkhTKQor LSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfbXVsKEFOLlJNdWx0LCBBTi5STXVsdCwgZmhzLl9f cG9seSkKKy0gICAgICAgICAgICAgICAgZm1wel9wb2x5X2FkZChmaHMuX19wb2x5LCBBTi5MTXVs dCwgQU4uUk11bHQpCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9tdWwoQU4uUk11bHQsIEFO LlJNdWx0LCBmaHMuX3BvbHkpCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9hZGQoZmhzLl9w b2x5LCBBTi5MTXVsdCwgQU4uUk11bHQpCisgICAgICAgICAgICAgICAgIGdvdF9yZXN1bHQgPSBU cnVlCisgCisgZGVmIGhpbGJlcnRfcG9pbmNhcmVfc2VyaWVzKEksIGdyYWRpbmc9Tm9uZSk6Citk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9sYXVyZW50X3BvbHlub21pYWwu cHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9sYXVyZW50X3BvbHlub21pYWwucHhkCitp bmRleCAzNjQ4ZDZkMWVkMS4uOGU5MTA3YWViNDcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5n cy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlhbC5weGQKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvbGF1cmVudF9wb2x5bm9taWFsLnB4ZAorQEAgLTEyLDYgKzEyLDYgQEAgY2Rl ZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKKyBj ZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwp OgorICAgICBjZGVmIE1vZHVsZUVsZW1lbnQgX191CisgICAgIGNkZWYgbG9uZyBfX24KKy0gICAg Y3BkZWYgX19ub3JtYWxpemUoc2VsZikKKysgICAgY3BkZWYgX25vcm1hbGl6ZShzZWxmKQorICAg ICBjcGRlZiBfdW5zYWZlX211dGF0ZShzZWxmLCBpLCB2YWx1ZSkKKyAKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlhbC5weXggYi9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlhbC5weXgKK2luZGV4IDRiZTI0NmM2 Njg4Li5jZDc5OTk2ZWVkNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv bGF1cmVudF9wb2x5bm9taWFsLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9s YXVyZW50X3BvbHlub21pYWwucHl4CitAQCAtMzY2LDcgKzM2Niw3IEBAIGNkZWYgY2xhc3MgTGF1 cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICAj IHNlbGYgaXMgdGhhdCB0Xm4gKiB1OgorICAgICAgICAgc2VsZi5fX3UgPSBmCisgICAgICAgICBz ZWxmLl9fbiA9IG4KKy0gICAgICAgIHNlbGYuX19ub3JtYWxpemUoKQorKyAgICAgICAgc2VsZi5f bm9ybWFsaXplKCkKKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CisgICAgICAgICAiIiIK K0BAIC01MzEsNyArNTMxLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJp YXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgICAgICB1ID0gdS5tYXBfY29lZmZpY2ll bnRzKGJhc2VfbWFwKQorICAgICAgICAgcmV0dXJuIGNvZG9tYWluKHUoeCkgKiB4KipzZWxmLl9f bikKKyAKKy0gICAgY3BkZWYgX19ub3JtYWxpemUoc2VsZik6CisrICAgIGNwZGVmIF9ub3JtYWxp emUoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBBIExhdXJlbnQgc2VyaWVzIGlzIGEg cGFpciBgKHUodCksIG4pYCwgd2hlcmUgZWl0aGVyIGB1ID0gMGAKKyAgICAgICAgICh0byBzb21l IHByZWNpc2lvbikgb3IgYHVgIGlzIGEgdW5pdC4gVGhpcyBwYWlyIGNvcnJlc3BvbmRzIHRvCitA QCAtNzYzLDcgKzc2Myw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0 ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgcmV0ID0gPExhdXJlbnRQb2x5bm9t aWFsX3VuaXZhcmlhdGU+IHNlbGYuX25ld19jKCkKKyAgICAgICAgICAgICByZXQuX191ID0gZgor ICAgICAgICAgICAgIHJldC5fX24gPSBzZWxmLl9fbgorLSAgICAgICAgICAgIHJldC5fX25vcm1h bGl6ZSgpCisrICAgICAgICAgICAgcmV0Ll9ub3JtYWxpemUoKQorICAgICAgICAgICAgIHJldHVy biByZXQKKyAKKyAgICAgICAgIHJldHVybiBzZWxmLl9fdVtpIC0gc2VsZi5fX25dCitAQCAtOTE5 LDcgKzkxOSw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVy ZW50UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgIFIgPSBzZWxmLl9wYXJlbnQuYmFzZV9y aW5nKCkKKyAgICAgICAgICAgICAgICAgY29lZmZzID0gW3ZhbHVlXSArIFtSLnplcm8oKSBmb3Ig XyBpbiByYW5nZSgxLC1qKV0gKyBzZWxmLl9fdS5saXN0KCkKKyAgICAgICAgICAgICAgICAgc2Vs Zi5fX3UgPSBzZWxmLl9fdS5fcGFyZW50KGNvZWZmcykKKy0gICAgICAgIHNlbGYuX19ub3JtYWxp emUoKQorKyAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAKKyAgICAgY3BkZWYgX2FkZF8oc2Vs ZiwgcmlnaHRfbSk6CisgICAgICAgICAiIiIKK0BAIC05NzIsNyArOTcyLDcgQEAgY2RlZiBjbGFz cyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAg ICAgIHJldCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisg ICAgICAgICByZXQuX191ID0gPE1vZHVsZUVsZW1lbnQ+IChmMSArIGYyKQorICAgICAgICAgcmV0 Ll9fbiA9IG0KKy0gICAgICAgIHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICByZXQuX25vcm1h bGl6ZSgpCisgICAgICAgICByZXR1cm4gcmV0CisgCisgICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJp Z2h0X20pOgorQEAgLTEwMTIsNyArMTAxMiw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21p YWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICByZXQgPSA8TGF1cmVu dFBvbHlub21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAgICAgcmV0Ll9fdSA9 IDxNb2R1bGVFbGVtZW50PiAoZjEgLSBmMikKKyAgICAgICAgIHJldC5fX24gPSBtCistICAgICAg ICByZXQuX19ub3JtYWxpemUoKQorKyAgICAgICAgcmV0Ll9ub3JtYWxpemUoKQorICAgICAgICAg cmV0dXJuIHJldAorIAorICAgICBkZWYgZGVncmVlKHNlbGYpOgorQEAgLTEwNjMsNyArMTA2Myw3 IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5v bWlhbCk6CisgICAgICAgICByZXQgPSA8TGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZT4gc2Vs Zi5fbmV3X2MoKQorICAgICAgICAgcmV0Ll9fdSA9IDxNb2R1bGVFbGVtZW50PiAoc2VsZi5fX3Ug KiByaWdodC5fX3UpCisgICAgICAgICByZXQuX19uID0gc2VsZi5fX24gKyByaWdodC5fX24KKy0g ICAgICAgIHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAg ICAgICByZXR1cm4gcmV0CisgCisgICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGMpOgor QEAgLTEwNzksNyArMTA3OSw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFy aWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICByZXQgPSA8TGF1cmVudFBvbHlub21p YWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAgICAgcmV0Ll9fdSA9IDxNb2R1bGVF bGVtZW50PiBzZWxmLl9fdS5fcm11bF8oYykKKyAgICAgICAgIHJldC5fX24gPSBzZWxmLl9fbgor LSAgICAgICAgcmV0Ll9fbm9ybWFsaXplKCkKKysgICAgICAgIHJldC5fbm9ybWFsaXplKCkKKyAg ICAgICAgIHJldHVybiByZXQKKyAKKyAgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYyk6 CitAQCAtMTA5NSw3ICsxMDk1LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2 YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9IDxMYXVyZW50UG9seW5v bWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICByZXQuX191ID0gPE1vZHVs ZUVsZW1lbnQ+IHNlbGYuX191Ll9sbXVsXyhjKQorICAgICAgICAgcmV0Ll9fbiA9IHNlbGYuX19u CistICAgICAgICByZXQuX19ub3JtYWxpemUoKQorKyAgICAgICAgcmV0Ll9ub3JtYWxpemUoKQor ICAgICAgICAgcmV0dXJuIHJldAorIAorICAgICBkZWYgaXNfbW9ub21pYWwoc2VsZik6CitAQCAt MTE3NSw3ICsxMTc1LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRl KExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9IDxMYXVyZW50UG9seW5vbWlhbF91 bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICByZXQuX191ID0gPE1vZHVsZUVsZW1l bnQ+IChzZWxmLl9fdSAvLyByaWdodC5fX3UpCisgICAgICAgICByZXQuX19uID0gc2VsZi5fX24g LSByaWdodC5fX24KKy0gICAgICAgIHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICByZXQuX25v cm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcmV0CisgCisgICAgIGRlZiBzaGlmdChzZWxmLCBr KToKK0BAIC0xMjg3LDcgKzEyODcsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3Vu aXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAgICAgIGlmIHNlbGYuX191Lmlz X3VuaXQoKToKKyAgICAgICAgICAgICAgICAgcmV0Ll9fdSA9IHNlbGYuX191LmludmVyc2Vfb2Zf dW5pdCgpCisgICAgICAgICAgICAgICAgIHJldC5fX24gPSAtc2VsZi5fX24KKy0gICAgICAgICAg ICAgICAgcmV0Ll9fbm9ybWFsaXplKCkKKysgICAgICAgICAgICAgICAgcmV0Ll9ub3JtYWxpemUo KQorICAgICAgICAgICAgICAgICByZXR1cm4gcmV0CisgICAgICAgICAgICAgIyBFbmxhcmdlIHRo ZSByaW5nIHNvIHdlIGNhbiBkaXZpZGUgYnkgdGhlIGNvZWZmaWNpZW50CisgICAgICAgICAgICAg UiA9IHNlbGYuX3BhcmVudC5iYXNlX3JpbmcoKS5mcmFjdGlvbl9maWVsZCgpCitAQCAtMTM2Miw3 ICsxMzYyLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJl bnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJp YXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICByZXQuX191ID0gc2VsZi5fX3UuZ2NkKGIuX191 KQorICAgICAgICAgcmV0Ll9fbiA9IG1pbihzZWxmLl9fbiwgYi5fX24pCistICAgICAgICByZXQu X19ub3JtYWxpemUoKQorKyAgICAgICAgcmV0Ll9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJu IHJldAorIAorICAgICBAY29lcmNlX2Jpbm9wCitAQCAtMTQwOCwxMSArMTQwOCwxMSBAQCBjZGVm IGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgor ICAgICAgICAgcWwgPSA8TGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2Mo KQorICAgICAgICAgcWwuX191ID0gPE1vZHVsZUVsZW1lbnQ+IHEKKyAgICAgICAgIHFsLl9fbiA9 IHNlbGYuX19uIC0gcmlnaHQuX19uCistICAgICAgICBxbC5fX25vcm1hbGl6ZSgpCisrICAgICAg ICBxbC5fbm9ybWFsaXplKCkKKyAgICAgICAgIHFyID0gPExhdXJlbnRQb2x5bm9taWFsX3VuaXZh cmlhdGU+IHNlbGYuX25ld19jKCkKKyAgICAgICAgIHFyLl9fdSA9IDxNb2R1bGVFbGVtZW50PiBy CisgICAgICAgICBxci5fX24gPSBzZWxmLl9fbgorLSAgICAgICAgcXIuX19ub3JtYWxpemUoKQor KyAgICAgICAgcXIuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcWwsIHFyCisgCisgICAg IGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodF9yLCBpbnQgb3ApOgorQEAgLTE1MTksNyArMTUx OSw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9s eW5vbWlhbCk6CisgICAgICAgICByZXQgPSA8TGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZT4g c2VsZi5fbmV3X2MoKQorICAgICAgICAgcmV0Ll9fdSA9IDxNb2R1bGVFbGVtZW50PiBzZWxmLl9f dS50cnVuY2F0ZShuIC0gc2VsZi5fX24pCisgICAgICAgICByZXQuX19uID0gc2VsZi5fX24KKy0g ICAgICAgIHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAg ICAgICByZXR1cm4gcmV0CisgCisgICAgIGRlZiB2YXJpYWJsZV9uYW1lKHNlbGYpOgorQEAgLTE3 NzcsNyArMTc3Nyw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShM YXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgIHJldCA9IDxMYXVyZW50UG9seW5v bWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICAgICAgICAgIHJldC5fX3Ug PSA8TW9kdWxlRWxlbWVudD4gc2VsZi5fcGFyZW50Ll9SKHUpCisgICAgICAgICAgICAgICAgIHJl dC5fX24gPSBzZWxmLl9fbgorLSAgICAgICAgICAgICAgICByZXQuX19ub3JtYWxpemUoKQorKyAg ICAgICAgICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAgICAgICAgICAgICAgIHJldHVybiBy ZXQKKyAgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAg IHJhaXNlIFZhbHVlRXJyb3IoJ2Nhbm5vdCBkaWZmZXJlbnRpYXRlIHdpdGggcmVzcGVjdCB0byB7 fScuZm9ybWF0KHZhcikpCitAQCAtMTc5Miw3ICsxNzkyLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50 UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9 IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICBy ZXQuX191ID0gPE1vZHVsZUVsZW1lbnQ+IHNlbGYuX3BhcmVudC5fUihhKQorICAgICAgICAgcmV0 Ll9fbiA9IHNlbGYuX19uIC0gMQorLSAgICAgICAgcmV0Ll9fbm9ybWFsaXplKCkKKysgICAgICAg IHJldC5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiByZXQKKyAKKyAgICAgZGVmIGludGVn cmFsKHNlbGYpOgorQEAgLTE4NTcsNyArMTg1Nyw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlu b21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICByZXQgPSA8TGF1 cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAgICAgcmV0Ll9f dSA9IDxNb2R1bGVFbGVtZW50PiB1CisgICAgICAgICByZXQuX19uID0gbiArIDEKKy0gICAgICAg IHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAgICAgICBy ZXR1cm4gcmV0CisgCisgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqeCwgKiprd2RzKToKK0BAIC0x OTE5LDE0ICsxOTE5LDE0IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0 ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICB1ID0gPExhdXJlbnRQb2x5bm9taWFsX3Vu aXZhcmlhdGU+IHNlbGYuX25ld19jKCkKKyAgICAgICAgIHUuX191ID0gcGYudW5pdCgpCisgICAg ICAgICB1Ll9fbiA9IHNlbGYuX19uCistICAgICAgICB1Ll9fbm9ybWFsaXplKCkKKysgICAgICAg IHUuX25vcm1hbGl6ZSgpCisgCisgICAgICAgICBmID0gW10KKyAgICAgICAgIGZvciB0IGluIHBm OgorICAgICAgICAgICAgIGQgPSA8TGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5f bmV3X2MoKQorICAgICAgICAgICAgIGQuX191ID0gdFswXQorICAgICAgICAgICAgIGQuX19uID0g MAorLSAgICAgICAgICAgIGQuX19ub3JtYWxpemUoKQorKyAgICAgICAgICAgIGQuX25vcm1hbGl6 ZSgpCisgICAgICAgICAgICAgaWYgZC5pc191bml0KCk6CisgICAgICAgICAgICAgICAgIHUgKj0g ZCAqKiB0WzFdCisgICAgICAgICAgICAgZWxzZToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5n cy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfbGlic2luZ3VsYXIucHl4IGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX2xpYnNpbmd1bGFyLnB5eAoraW5kZXgg ZDc5NmI3ZjgxNjkuLjgzYzc5YzM5ODQzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX2xpYnNpbmd1bGFyLnB5eAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX2xpYnNpbmd1bGFyLnB5eAorQEAgLTM3 NSw3ICszNzUsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhcihNUG9s eW5vbWlhbFJpbmdfYmFzZSk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgTm90SW1w bGVtZW50ZWRFcnJvcjogcG9seW5vbWlhbHMgaW4gLTEgdmFyaWFibGVzIGFyZSBub3Qgc3VwcG9y dGVkIGluIFNpbmd1bGFyCisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19uZ2VucyA9IG4K KysgICAgICAgIHNlbGYuX25nZW5zID0gbgorICAgICAgICAgc2VsZi5fcmluZyA9IHNpbmd1bGFy X3JpbmdfbmV3KGJhc2VfcmluZywgbiwgbmFtZXMsIG9yZGVyKQorICAgICAgICAgc2VsZi5femVy b19lbGVtZW50ID0gbmV3X01QKHNlbGYsIE5VTEwpCisgICAgICAgICBjZGVmIE1Qb2x5bm9taWFs X2xpYnNpbmd1bGFyIG9uZSA9IG5ld19NUChzZWxmLCBwX0lTZXQoMSwgc2VsZi5fcmluZykpCitA QCAtMTAxOSw3ICsxMDE5LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3Vs YXIoTVBvbHlub21pYWxSaW5nX2Jhc2UpOgorICAgICAgICAgICAgIE11bHRpdmFyaWF0ZSBQb2x5 bm9taWFsIFJpbmcgaW4geCwgeSBvdmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKyAg ICAgICAgIHZhcnN0ciA9ICIsICIuam9pbihjaGFyX3RvX3N0cihyUmluZ1ZhcihpLHNlbGYuX3Jp bmcpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYuX19u Z2VucykpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5f bmdlbnMpKQorICAgICAgICAgcmV0dXJuICJNdWx0aXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGlu ICVzIG92ZXIgJXMiICUgKHZhcnN0ciwgc2VsZi5iYXNlX3JpbmcoKSkKKyAKKyAgICAgZGVmIG5n ZW5zKHNlbGYpOgorQEAgLTEwMzcsNyArMTAzNyw3IEBAIGNkZWYgY2xhc3MgTVBvbHlub21pYWxS aW5nX2xpYnNpbmd1bGFyKE1Qb2x5bm9taWFsUmluZ19iYXNlKToKKyAgICAgICAgICAgICBzYWdl OiBQLm5nZW5zKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLnJpbmdzLmZpbml0ZV9yaW5ncworICAgICAgICAg ICAgIDEwMDAKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIGludChzZWxmLl9fbmdlbnMp CisrICAgICAgICByZXR1cm4gaW50KHNlbGYuX25nZW5zKQorIAorICAgICBkZWYgZ2VuKHNlbGYs IGludCBuPTApOgorICAgICAgICAgIiIiCitAQCAtMTA2NSw3ICsxMDY1LDcgQEAgY2RlZiBjbGFz cyBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIoTVBvbHlub21pYWxSaW5nX2Jhc2UpOgorICAg ICAgICAgY2RlZiBwb2x5ICpfcAorICAgICAgICAgY2RlZiByaW5nICpfcmluZyA9IHNlbGYuX3Jp bmcKKyAKKy0gICAgICAgIGlmIG4gPCAwIG9yIG4gPj0gc2VsZi5fX25nZW5zOgorKyAgICAgICAg aWYgbiA8IDAgb3IgbiA+PSBzZWxmLl9uZ2VuczoKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy cm9yKCJHZW5lcmF0b3Igbm90IGRlZmluZWQuIikKKyAKKyAgICAgICAgIHJDaGFuZ2VDdXJyUmlu ZyhfcmluZykKK0BAIC0xNDk0LDcgKzE0OTQsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmlu Z19saWJzaW5ndWxhcihNUG9seW5vbWlhbFJpbmdfYmFzZSk6CisgICAgICAgICByZXR1cm4gdW5w aWNrbGVfTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyLCBcCisgICAgICAgICAgICAgKHNlbGYu YmFzZV9yaW5nKCksIHNlbGYudmFyaWFibGVfbmFtZXMoKSwgc2VsZi50ZXJtX29yZGVyKCkpCisg CistICAgIGRlZiBfX3RlbXBvcmFyaWx5X2NoYW5nZV9uYW1lcyhzZWxmLCBuYW1lcywgbGF0ZXhf bmFtZXMpOgorKyAgICBkZWYgX3RlbXBvcmFyaWx5X2NoYW5nZV9uYW1lcyhzZWxmLCBuYW1lcywg bGF0ZXhfbmFtZXMpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGlzIHVzZWQgYnkgdGhl IHZhcmlhYmxlIG5hbWVzIGNvbnRleHQgbWFuYWdlci4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfcmluZ19iYXNlLnB4ZCBiL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHhkCitpbmRl eCBmYzgxY2Y2ZDI5OC4uZWI2ZjhiNzA5MTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9w b2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfcmluZ19iYXNlLnB4ZAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX3JpbmdfYmFzZS5weGQKK0BAIC0yLDgg KzIsOCBAQCBjaW1wb3J0IHNhZ2UucmluZ3MucmluZworIGZyb20gc2FnZS5zdHJ1Y3R1cmUucGFy ZW50IGNpbXBvcnQgUGFyZW50CisgCisgY2RlZiBjbGFzcyBNUG9seW5vbWlhbFJpbmdfYmFzZShz YWdlLnJpbmdzLnJpbmcuQ29tbXV0YXRpdmVSaW5nKToKKy0gICAgY2RlZiBvYmplY3QgX19uZ2Vu cworLSAgICBjZGVmIG9iamVjdCBfX3Rlcm1fb3JkZXIKKysgICAgY2RlZiBvYmplY3QgX25nZW5z CisrICAgIGNkZWYgb2JqZWN0IF90ZXJtX29yZGVyCisgICAgIGNkZWYgcHVibGljIG9iamVjdCBf aGFzX3Npbmd1bGFyCisgICAgIGNkZWYgcHVibGljIG9iamVjdCBfbWFnbWFfZ2VucworICAgICBj ZGVmIHB1YmxpYyBkaWN0IF9tYWdtYV9jYWNoZQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHl4IGIvc3JjL3NhZ2Uvcmlu Z3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX3JpbmdfYmFzZS5weXgKK2luZGV4IDFkM2Zi YzYwOTQ0Li5jOGY2NjUwOGNjMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21p YWwvbXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9w b2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfcmluZ19iYXNlLnB5eAorQEAgLTgwLDggKzgwLDgg QEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbFJpbmdfYmFzZShzYWdlLnJpbmdzLnJpbmcuQ29tbXV0 YXRpdmVSaW5nKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdWx0aXZhcmlhdGUg UG9seW5vbWlhbCBSaW5ncyBtdXN0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJo YXZlIG1vcmUgdGhhbiAwIHZhcmlhYmxlcy4iKQorICAgICAgICAgb3JkZXIgPSBUZXJtT3JkZXIo b3JkZXIsIG4pCistICAgICAgICBzZWxmLl9fbmdlbnMgPSBuCistICAgICAgICBzZWxmLl9fdGVy bV9vcmRlciA9IG9yZGVyCisrICAgICAgICBzZWxmLl9uZ2VucyA9IG4KKysgICAgICAgIHNlbGYu X3Rlcm1fb3JkZXIgPSBvcmRlcgorICAgICAgICAgc2VsZi5faGFzX3Npbmd1bGFyID0gRmFsc2Ug ICMgY2Fubm90IGNvbnZlcnQgdG8gU2luZ3VsYXIgYnkgZGVmYXVsdAorICAgICAgICAgc2VsZi5f bWFnbWFfY2FjaGUgPSB7fQorICAgICAgICAgIyBSaW5nLl9faW5pdF9fIGFscmVhZHkgZG9lcyBh c3NpZ24gdGhlIG5hbWVzLgorQEAgLTYzOSwxMiArNjM5LDEyIEBAIGNkZWYgY2xhc3MgTVBvbHlu b21pYWxSaW5nX2Jhc2Uoc2FnZS5yaW5ncy5yaW5nLkNvbW11dGF0aXZlUmluZyk6CisgICAgICAg ICBsZnQgPSA8TVBvbHlub21pYWxSaW5nX2Jhc2U+bGVmdAorICAgICAgICAgb3RoZXIgPSA8TVBv bHlub21pYWxSaW5nX2Jhc2U+cmlnaHQKKyAKKy0gICAgICAgIGx4ID0gKGxmdC5iYXNlX3Jpbmco KSwgbGZ0Ll9fbmdlbnMsCisrICAgICAgICBseCA9IChsZnQuYmFzZV9yaW5nKCksIGxmdC5fbmdl bnMsCisgICAgICAgICAgICAgICBsZnQudmFyaWFibGVfbmFtZXMoKSwKKy0gICAgICAgICAgICAg IGxmdC5fX3Rlcm1fb3JkZXIpCistICAgICAgICByeCA9IChvdGhlci5iYXNlX3JpbmcoKSwgb3Ro ZXIuX19uZ2VucywKKysgICAgICAgICAgICAgIGxmdC5fdGVybV9vcmRlcikKKysgICAgICAgIHJ4 ID0gKG90aGVyLmJhc2VfcmluZygpLCBvdGhlci5fbmdlbnMsCisgICAgICAgICAgICAgICBvdGhl ci52YXJpYWJsZV9uYW1lcygpLAorLSAgICAgICAgICAgICAgb3RoZXIuX190ZXJtX29yZGVyKQor KyAgICAgICAgICAgICAgb3RoZXIuX3Rlcm1fb3JkZXIpCisgICAgICAgICByZXR1cm4gcmljaGNt cChseCwgcngsIG9wKQorIAorICAgICBkZWYgX3JlcHJfKHNlbGYpOgorQEAgLTg0OSw3ICs4NDks NyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmluZ19iYXNlKHNhZ2UucmluZ3MucmluZy5Db21t dXRhdGl2ZVJpbmcpOgorICAgICAgICAgcmV0dXJuIEZhbHNlCisgCisgICAgIGRlZiB0ZXJtX29y ZGVyKHNlbGYpOgorLSAgICAgICAgcmV0dXJuIHNlbGYuX190ZXJtX29yZGVyCisrICAgICAgICBy ZXR1cm4gc2VsZi5fdGVybV9vcmRlcgorIAorICAgICBkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZik6 CisgICAgICAgICAiIiIKK0BAIC04NjcsNyArODY3LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlh bFJpbmdfYmFzZShzYWdlLnJpbmdzLnJpbmcuQ29tbXV0YXRpdmVSaW5nKToKKyAgICAgICAgIHJl dHVybiBzZWxmLmJhc2VfcmluZygpLmNoYXJhY3RlcmlzdGljKCkKKyAKKyAgICAgZGVmIGdlbihz ZWxmLCBuPTApOgorLSAgICAgICAgaWYgbiA8IDAgb3IgbiA+PSBzZWxmLl9fbmdlbnM6CisrICAg ICAgICBpZiBuIDwgMCBvciBuID49IHNlbGYuX25nZW5zOgorICAgICAgICAgICAgIHJhaXNlIFZh bHVlRXJyb3IoIkdlbmVyYXRvciBub3QgZGVmaW5lZC4iKQorICAgICAgICAgcmV0dXJuIHNlbGYu X2dlbnNbaW50KG4pXQorIAorQEAgLTkyNyw3ICs5MjcsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9t aWFsUmluZ19iYXNlKHNhZ2UucmluZ3MucmluZy5Db21tdXRhdGl2ZVJpbmcpOgorICAgICAgICAg cmV0dXJuIHNlbGYuYmFzZV9yaW5nKCkua3J1bGxfZGltZW5zaW9uKCkgKyBzZWxmLm5nZW5zKCkK KyAKKyAgICAgZGVmIG5nZW5zKHNlbGYpOgorLSAgICAgICAgcmV0dXJuIHNlbGYuX19uZ2Vucwor KyAgICAgICAgcmV0dXJuIHNlbGYuX25nZW5zCisgCisgICAgIGRlZiBfbW9ub21pYWxfb3JkZXJf ZnVuY3Rpb24oc2VsZik6CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9vcmVfcG9seW5vbWlhbF9lbGVtZW50 LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5w eGQKK2luZGV4IDNhM2ZlMGEwZDU0Li5hYTM2MTEyYWI5MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5weGQKKysrKyBiL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5weGQKK0BAIC0zMyw3 ICszMyw3IEBAIGNkZWYgdm9pZCBsbXVsX2dlbihsaXN0IEEsIE1vcnBoaXNtIG0sIGQpCisgY2Rl ZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAg IGNkZWYgbGlzdCBfY29lZmZzCisgCistICAgIGNkZWYgdm9pZCBfX25vcm1hbGl6ZShzZWxmKQor KyAgICBjZGVmIHZvaWQgX25vcm1hbGl6ZShzZWxmKQorICAgICBjcGRlZiBfYWRkXyhzZWxmLCBv dGhlcikKKyAgICAgY2RlZiBsaXN0IF9tdWxfbGlzdChzZWxmLCBsaXN0IEEpCisgICAgIGNwZGVm IF9tdWxfKHNlbGYsIG90aGVyKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21p YWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L29yZV9wb2x5bm9taWFsX2VsZW1lbnQucHl4CitpbmRleCBkNjdjNjNiNmJlOC4uYmUxNTRiYThi MWEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL29yZV9wb2x5bm9taWFs X2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL29yZV9wb2x5bm9t aWFsX2VsZW1lbnQucHl4CitAQCAtMjI2OSw3ICsyMjY5LDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5 bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBpc2luc3Rh bmNlKHgsIGxpc3QpOgorICAgICAgICAgICAgIGlmIGNoZWNrOgorICAgICAgICAgICAgICAgICBz ZWxmLl9jb2VmZnMgPSBbUih0KSBmb3IgdCBpbiB4XQorLSAgICAgICAgICAgICAgICBzZWxmLl9f bm9ybWFsaXplKCkKKysgICAgICAgICAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAgICAgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgICAgICBzZWxmLl9jb2VmZnMgPSB4CisgICAgICAgICAg ICAgcmV0dXJuCitAQCAtMjI4OCw3ICsyMjg4LDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFs X2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICAgICAgc2VsZi5fY29lZmZzID0gW1IoYSwgKiprd2RzKSBmb3IgYSBpbiB4Lmxpc3Qo KV0KKyAgICAgICAgICAgICAgICAgaWYgY2hlY2s6CistICAgICAgICAgICAgICAgICAgICBzZWxm Ll9fbm9ybWFsaXplKCkKKysgICAgICAgICAgICAgICAgICAgIHNlbGYuX25vcm1hbGl6ZSgpCisg ICAgICAgICAgICAgICAgIHJldHVybgorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIGlu dCkgYW5kIHggPT0gMDoKK0BAIC0yMzAyLDcgKzIzMDIsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlu b21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsKToKKyAgICAgICAgICAgICB4ID0gW3hd CisgICAgICAgICBpZiBjaGVjazoKKyAgICAgICAgICAgICBzZWxmLl9jb2VmZnMgPSBbUih6LCAq Kmt3ZHMpIGZvciB6IGluIHhdCistICAgICAgICAgICAgc2VsZi5fX25vcm1hbGl6ZSgpCisrICAg ICAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg c2VsZi5fY29lZmZzID0geAorIAorQEAgLTIzNzcsMTAgKzIzNzcsMTAgQEAgY2RlZiBjbGFzcyBP cmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAgICAgICBmLl9w YXJlbnQgPSBQCisgICAgICAgICBmLl9jb2VmZnMgPSBjb2VmZnMKKyAgICAgICAgIGlmIGNoZWNr OgorLSAgICAgICAgICAgIGYuX19ub3JtYWxpemUoKQorKyAgICAgICAgICAgIGYuX25vcm1hbGl6 ZSgpCisgICAgICAgICByZXR1cm4gZgorIAorLSAgICBjZGVmIHZvaWQgX19ub3JtYWxpemUoc2Vs Zik6CisrICAgIGNkZWYgdm9pZCBfbm9ybWFsaXplKHNlbGYpOgorICAgICAgICAgciIiIgorICAg ICAgICAgUmVtb3ZlIGhpZ2hlciBvcmRlciBgMGAtY29lZmZpY2llbnRzIGZyb20gdGhlIHJlcHJl c2VudGF0aW9uIG9mIGBgc2VsZmBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvcGJvcmkvcGJvcmkucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wYm9y aS9wYm9yaS5weXgKK2luZGV4IDA3Y2M2OTY0NzdhLi4zMTQxOTZmYWExNCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGJvcmkvcGJvcmkucHl4CisrKysgYi9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3Bib3JpL3Bib3JpLnB5eAorQEAgLTU0Nyw3ICs1NDcsNyBAQCBj ZGVmIGNsYXNzIEJvb2xlYW5Qb2x5bm9taWFsUmluZyhCb29sZWFuUG9seW5vbWlhbFJpbmdfYmFz ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiB0dXBsZShuZXdfQlBfZnJvbV9QQlZh cihzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Bi cmluZy52YXJpYWJsZShzZWxmLnBiaW5kW2ldKSkKKy0gICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiByYW5nZShzZWxmLl9fbmdlbnMpKQorKyAgICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IHJhbmdlKHNlbGYuX25nZW5zKSkKKyAKKyAgICAgZGVmIGNoYW5nZV9yaW5nKHNlbGYsIGJhc2Vf cmluZz1Ob25lLCBuYW1lcz1Ob25lLCBvcmRlcj1Ob25lKToKKyAgICAgICAgICIiIgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB4ZCBiL3NyYy9zYWdlL3Jp bmdzL3BvbHlub21pYWwvcGx1cmFsLnB4ZAoraW5kZXggNDFkYjJhMTQ0ZTcuLmQzYTQ2ZjZhYTBk IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHhkCisrKysg Yi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BsdXJhbC5weGQKK0BAIC0xMywxMCArMTMsMTAg QEAgY2RlZiBleHRlcm4gZnJvbSAqOgorICAgICBjdHlwZWRlZiBsb25nIFB5X2hhc2hfdAorIAor IGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsUmluZ19wbHVyYWwoUmluZyk6CistICAgIGNkZWYgb2Jq ZWN0IF9fbmdlbnMKKysgICAgY2RlZiBvYmplY3QgX25nZW5zCisgICAgIGNkZWYgb2JqZWN0IF9j CisgICAgIGNkZWYgb2JqZWN0IF9kCistICAgIGNkZWYgb2JqZWN0IF9fdGVybV9vcmRlcgorKyAg ICBjZGVmIG9iamVjdCBfdGVybV9vcmRlcgorICAgICBjZGVmIHB1YmxpYyBvYmplY3QgX2hhc19z aW5ndWxhcgorICAgICBjZGVmIHB1YmxpYyBvYmplY3QgX21hZ21hX2dlbnMsIF9tYWdtYV9jYWNo ZQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB5eCBi L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB5eAoraW5kZXggYTY0N2Q2OGUwOGQu LmJjNDMyNjExYzg5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVy YWwucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BsdXJhbC5weXgKK0BAIC0z MzYsOCArMzM2LDggQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbChSaW5nKToK KyAgICAgICAgIHNlbGYuX3JpbmcgPSBzaW5ndWxhcl9yaW5nX3JlZmVyZW5jZShydy5fcmluZykK KyAgICAgICAgIHNlbGYuX3JpbmcuU2hvcnRPdXQgPSAwCisgCistICAgICAgICBzZWxmLl9fbmdl bnMgPSBuCistICAgICAgICBzZWxmLl9fdGVybV9vcmRlciA9IG9yZGVyCisrICAgICAgICBzZWxm Ll9uZ2VucyA9IG4KKysgICAgICAgIHNlbGYuX3Rlcm1fb3JkZXIgPSBvcmRlcgorIAorICAgICAg ICAgUmluZy5fX2luaXRfXyhzZWxmLCBiYXNlX3JpbmcsIG5hbWVzLCBjYXRlZ29yeT1jYXRlZ29y eSkKKyAgICAgICAgIHNlbGYuX3BvcHVsYXRlX2NvZXJjaW9uX2xpc3RzXygpCitAQCAtNjczLDcg KzY3Myw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsUmluZ19wbHVyYWwoUmluZyk6CisgICAg ICAgICAgICAgc2FnZTogUC50ZXJtX29yZGVyKCkKKyAgICAgICAgICAgICBEZWdyZWUgcmV2ZXJz ZSBsZXhpY29ncmFwaGljIHRlcm0gb3JkZXIKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJu IHNlbGYuX190ZXJtX29yZGVyCisrICAgICAgICByZXR1cm4gc2VsZi5fdGVybV9vcmRlcgorIAor ICAgICBkZWYgaXNfY29tbXV0YXRpdmUoc2VsZik6CisgICAgICAgICAiIiIKK0BAIC03MjcsNyAr NzI3LDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbChSaW5nKToKKyAgICAg ICAgIGZyb20gc2FnZS5yZXBsLnJpY2hfb3V0cHV0LmJhY2tlbmRfYmFzZSBpbXBvcnQgQmFja2Vu ZEJhc2UKKyAgICAgICAgIGZyb20gc2FnZS5yZXBsLmRpc3BsYXkucHJldHR5X3ByaW50IGltcG9y dCBTYWdlUHJldHR5UHJpbnRlcgorICAgICAgICAgdmFyc3RyID0gIiwgIi5qb2luKGNoYXJfdG9f c3RyKHJSaW5nVmFyKGksIHNlbGYuX3JpbmcpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg IGZvciBpIGluIHJhbmdlKHNlbGYuX19uZ2VucykpCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fbmdlbnMpKQorICAgICAgICAgYmFja2VuZCA9IEJhY2tl bmRCYXNlKCkKKyAgICAgICAgIHJlbGF0aW9ucyA9IGJhY2tlbmQuX2FwcGx5X3ByZXR0eV9wcmlu dGVyKFNhZ2VQcmV0dHlQcmludGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5yZWxhdGlvbnMoKSkKK0BAIC04MzAsNyArODMwLDcgQEAg Y2RlZiBjbGFzcyBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbChSaW5nKToKKyAgICAgICAgICAgICBz YWdlOiBQLm5nZW5zKCkKKyAgICAgICAgICAgICAzCisgICAgICAgICAiIiIKKy0gICAgICAgIHJl dHVybiBpbnQoc2VsZi5fX25nZW5zKQorKyAgICAgICAgcmV0dXJuIGludChzZWxmLl9uZ2VucykK KyAKKyAgICAgZGVmIGdlbihzZWxmLCBpbnQgbj0wKToKKyAgICAgICAgICIiIgorQEAgLTg1Nyw3 ICs4NTcsNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsKFJpbmcpOgorICAg ICAgICAgY2RlZiBwb2x5ICpfcAorICAgICAgICAgY2RlZiByaW5nICpfcmluZyA9IHNlbGYuX3Jp bmcKKyAKKy0gICAgICAgIGlmIG4gPCAwIG9yIG4gPj0gc2VsZi5fX25nZW5zOgorKyAgICAgICAg aWYgbiA8IDAgb3IgbiA+PSBzZWxmLl9uZ2VuczoKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy cm9yKCJHZW5lcmF0b3Igbm90IGRlZmluZWQuIikKKyAKKyAgICAgICAgIHJDaGFuZ2VDdXJyUmlu ZyhfcmluZykKK0BAIC0yMzUyLDcgKzIzNTIsNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbF9w bHVyYWwoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAg ICAgICAgICAgICAgIHggPSAoeCwpCisgCistICAgICAgICBpZiBsZW4oeCkgIT0gKDxOQ1BvbHlu b21pYWxSaW5nX3BsdXJhbD5zZWxmLl9wYXJlbnQpLl9fbmdlbnM6CisrICAgICAgICBpZiBsZW4o eCkgIT0gKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5zZWxmLl9wYXJlbnQpLl9uZ2VuczoKKyAg ICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoInggbXVzdCBoYXZlIGxlbmd0aCBzZWxmLm5nZW5z KCkiKQorIAorICAgICAgICAgbSA9IHBfSVNldCgxLHIpCitAQCAtMjg5MCw4ICsyODkwLDggQEAg Y3BkZWYgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIG5ld19DUmluZyhSaW5nV3JhcCBydywg YmFzZV9yaW5nKToKKyAKKyAgICAgc2VsZi5fcmluZy5TaG9ydE91dCA9IDAKKyAKKy0gICAgc2Vs Zi5fX25nZW5zID0gcncubmdlbnMoKQorLSAgICBzZWxmLl9fdGVybV9vcmRlciA9ICBUZXJtT3Jk ZXIocncub3JkZXJpbmdfc3RyaW5nKCksIGZvcmNlPVRydWUpCisrICAgIHNlbGYuX25nZW5zID0g cncubmdlbnMoKQorKyAgICBzZWxmLl90ZXJtX29yZGVyID0gIFRlcm1PcmRlcihydy5vcmRlcmlu Z19zdHJpbmcoKSwgZm9yY2U9VHJ1ZSkKKyAKKyAgICAgUGFyZW50V2l0aEdlbnMuX19pbml0X18o c2VsZiwgYmFzZV9yaW5nLCB0dXBsZShydy52YXJfbmFtZXMoKSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5vcm1hbGl6ZT1GYWxzZSkKK0BAIC0yOTYyLDggKzI5NjIsOCBAQCBjcGRl ZiBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbCBuZXdfTlJpbmcoUmluZ1dyYXAgcncsIGJhc2Vfcmlu Zyk6CisgCisgICAgIHNlbGYuX3JpbmcuU2hvcnRPdXQgPSAwCisgCistICAgIHNlbGYuX19uZ2Vu cyA9IHJ3Lm5nZW5zKCkKKy0gICAgc2VsZi5fX3Rlcm1fb3JkZXIgPSAgVGVybU9yZGVyKHJ3Lm9y ZGVyaW5nX3N0cmluZygpLCBmb3JjZT1UcnVlKQorKyAgICBzZWxmLl9uZ2VucyA9IHJ3Lm5nZW5z KCkKKysgICAgc2VsZi5fdGVybV9vcmRlciA9ICBUZXJtT3JkZXIocncub3JkZXJpbmdfc3RyaW5n KCksIGZvcmNlPVRydWUpCisgCisgICAgIFBhcmVudFdpdGhHZW5zLl9faW5pdF9fKHNlbGYsIGJh c2VfcmluZywgcncudmFyX25hbWVzKCkpCisgIyAgICBzZWxmLl9wb3B1bGF0ZV9jb2VyY2lvbl9s aXN0c18oKSAgIyA/Pz8KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bv bHlub21pYWxfY29tcGxleF9hcmIucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5 bm9taWFsX2NvbXBsZXhfYXJiLnB4ZAoraW5kZXggYWE0ZTJhMWMwZGMuLmU1NGQ4NWU5NjFiIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBsZXhf YXJiLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBs ZXhfYXJiLnB4ZAorQEAgLTIsNSArMiw1IEBAIGZyb20gc2FnZS5saWJzLmFyYi5hY2JfcG9seSBj aW1wb3J0ICoKKyBmcm9tIHNhZ2UucmluZ3MucG9seW5vbWlhbC5wb2x5bm9taWFsX2VsZW1lbnQg Y2ltcG9ydCBQb2x5bm9taWFsCisgCisgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJi KFBvbHlub21pYWwpOgorLSAgICBjZGVmIGFjYl9wb2x5X3N0cnVjdFsxXSBfX3BvbHkgIyBodHRw czovL2dpdGh1Yi5jb20vY3l0aG9uL2N5dGhvbi9pc3N1ZXMvMTk4NAorKyAgICBjZGVmIGFjYl9w b2x5X3N0cnVjdFsxXSBfcG9seSAjIGh0dHBzOi8vZ2l0aHViLmNvbS9jeXRob24vY3l0aG9uL2lz c3Vlcy8xOTg0CisgICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiBfbmV3KHNlbGYpCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBsZXhf YXJiLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9jb21wbGV4X2Fy Yi5weXgKK2luZGV4IGU1MTI2OGI0YjU0Li41N2MxYTUyZWRlNCAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9jb21wbGV4X2FyYi5weXgKKysrKyBiL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9jb21wbGV4X2FyYi5weXgKK0BAIC03 NSw3ICs3NSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFs KToKKyAgICAgICAgICAgICBzYWdlOiBDb21wbGV4QmFsbEZpZWxkKDIpWyd5J10oKQorICAgICAg ICAgICAgIDAKKyAgICAgICAgICIiIgorLSAgICAgICAgYWNiX3BvbHlfaW5pdChzZWxmLl9fcG9s eSkKKysgICAgICAgIGFjYl9wb2x5X2luaXQoc2VsZi5fcG9seSkKKyAKKyAgICAgZGVmIF9fZGVh bGxvY19fKHNlbGYpOgorICAgICAgICAgciIiIgorQEAgLTg0LDcgKzg0LDcgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6 IHBvbCA9IENCRlsneCddKCkKKyAgICAgICAgICAgICBzYWdlOiBkZWwgcG9sCisgICAgICAgICAi IiIKKy0gICAgICAgIGFjYl9wb2x5X2NsZWFyKHNlbGYuX19wb2x5KQorKyAgICAgICAgYWNiX3Bv bHlfY2xlYXIoc2VsZi5fcG9seSkKKyAKKyAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJi IF9uZXcoc2VsZik6CisgICAgICAgICByIiIiCitAQCAtMTQwLDQ5ICsxNDAsNDkgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgUG9seW5v bWlhbC5fX2luaXRfXyhzZWxmLCBwYXJlbnQsIGlzX2dlbj1pc19nZW4pCisgCisgICAgICAgICBp ZiBpc19nZW46CistICAgICAgICAgICAgYWNiX3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX19wb2x5 LCAxLCAxKQorKyAgICAgICAgICAgIGFjYl9wb2x5X3NldF9jb2VmZl9zaShzZWxmLl9wb2x5LCAx LCAxKQorICAgICAgICAgZWxpZiB4IGlzIE5vbmU6CistICAgICAgICAgICAgYWNiX3BvbHlfemVy byhzZWxmLl9fcG9seSkKKysgICAgICAgICAgICBhY2JfcG9seV96ZXJvKHNlbGYuX3BvbHkpCisg ICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgUG9seW5vbWlhbF9jb21wbGV4X2FyYik6CistICAg ICAgICAgICAgYWNiX3BvbHlfc2V0KHNlbGYuX19wb2x5LCAoPFBvbHlub21pYWxfY29tcGxleF9h cmI+IHgpLl9fcG9seSkKKysgICAgICAgICAgICBhY2JfcG9seV9zZXQoc2VsZi5fcG9seSwgKDxQ b2x5bm9taWFsX2NvbXBsZXhfYXJiPiB4KS5fcG9seSkKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5j ZSh4LCBDb21wbGV4QmFsbCk6CistICAgICAgICAgICAgYWNiX3BvbHlfc2V0X2NvZWZmX2FjYihz ZWxmLl9fcG9seSwgMCwgKDxDb21wbGV4QmFsbD4geCkudmFsdWUpCisrICAgICAgICAgICAgYWNi X3BvbHlfc2V0X2NvZWZmX2FjYihzZWxmLl9wb2x5LCAwLCAoPENvbXBsZXhCYWxsPiB4KS52YWx1 ZSkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgQ29lZmYgPSBwYXJlbnQuYmFzZV9yaW5n KCkKKyAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHgsIGxpc3QpOgorICAgICAgICAgICAgICAg ICBsc3QgPSA8bGlzdD4geAorICAgICAgICAgICAgICAgICBsZW5ndGggPSBsZW4obHN0KQorLSAg ICAgICAgICAgICAgICBzaWdfb24oKTsgYWNiX3BvbHlfZml0X2xlbmd0aChzZWxmLl9fcG9seSwg bGVuZ3RoKTsgc2lnX29mZigpCisrICAgICAgICAgICAgICAgIHNpZ19vbigpOyBhY2JfcG9seV9m aXRfbGVuZ3RoKHNlbGYuX3BvbHksIGxlbmd0aCk7IHNpZ19vZmYoKQorICAgICAgICAgICAgICAg ICBmb3IgaSBpbiByYW5nZShsZW5ndGgpOgorICAgICAgICAgICAgICAgICAgICAgYmFsbCA9IENv ZWZmKGxzdFtpXSkKKy0gICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X3NldF9jb2VmZl9hY2Io c2VsZi5fX3BvbHksIGksIGJhbGwudmFsdWUpCisrICAgICAgICAgICAgICAgICAgICBhY2JfcG9s eV9zZXRfY29lZmZfYWNiKHNlbGYuX3BvbHksIGksIGJhbGwudmFsdWUpCisgICAgICAgICAgICAg ZWxpZiBpc2luc3RhbmNlKHgsIHR1cGxlKToKKyAgICAgICAgICAgICAgICAgdHBsID0gPHR1cGxl PiB4CisgICAgICAgICAgICAgICAgIGxlbmd0aCA9IGxlbih0cGwpCistICAgICAgICAgICAgICAg IHNpZ19vbigpOyBhY2JfcG9seV9maXRfbGVuZ3RoKHNlbGYuX19wb2x5LCBsZW5ndGgpOyBzaWdf b2ZmKCkKKysgICAgICAgICAgICAgICAgc2lnX29uKCk7IGFjYl9wb2x5X2ZpdF9sZW5ndGgoc2Vs Zi5fcG9seSwgbGVuZ3RoKTsgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIGZvciBpIGluIHJh bmdlKGxlbmd0aCk6CisgICAgICAgICAgICAgICAgICAgICBiYWxsID0gQ29lZmYodHBsW2ldKQor LSAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfc2V0X2NvZWZmX2FjYihzZWxmLl9fcG9seSwg aSwgYmFsbC52YWx1ZSkKKysgICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X3NldF9jb2VmZl9h Y2Ioc2VsZi5fcG9seSwgaSwgYmFsbC52YWx1ZSkKKyAgICAgICAgICAgICBlbGlmIGlzaW5zdGFu Y2UoeCwgUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgIHBvbCA9IDxQb2x5bm9taWFsPiB4 CisgICAgICAgICAgICAgICAgIGxlbmd0aCA9IHBvbC5kZWdyZWUoKSArIDEKKy0gICAgICAgICAg ICAgICAgc2lnX29uKCk7IGFjYl9wb2x5X2ZpdF9sZW5ndGgoc2VsZi5fX3BvbHksIGxlbmd0aCk7 IHNpZ19vZmYoKQorKyAgICAgICAgICAgICAgICBzaWdfb24oKTsgYWNiX3BvbHlfZml0X2xlbmd0 aChzZWxmLl9wb2x5LCBsZW5ndGgpOyBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAgZm9yIGkg aW4gcmFuZ2UobGVuZ3RoKToKKyAgICAgICAgICAgICAgICAgICAgIGJhbGwgPSBDb2VmZihwb2wu Z2V0X3Vuc2FmZShpKSkKKy0gICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X3NldF9jb2VmZl9h Y2Ioc2VsZi5fX3BvbHksIGksIGJhbGwudmFsdWUpCisrICAgICAgICAgICAgICAgICAgICBhY2Jf cG9seV9zZXRfY29lZmZfYWNiKHNlbGYuX3BvbHksIGksIGJhbGwudmFsdWUpCisgICAgICAgICAg ICAgZWxpZiBpc2luc3RhbmNlKHgsIGRpY3QpOgorICAgICAgICAgICAgICAgICBkY3QgPSA8ZGlj dD4geAorICAgICAgICAgICAgICAgICBpZiBsZW4oZGN0KSA9PSAwOgorLSAgICAgICAgICAgICAg ICAgICAgYWNiX3BvbHlfemVybyhzZWxmLl9fcG9seSkKKysgICAgICAgICAgICAgICAgICAgIGFj Yl9wb2x5X3plcm8oc2VsZi5fcG9seSkKKyAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICAgICAgICAgIGxlbmd0aCA9IG1heChpbnQoaSkgZm9yIGkgaW4gZGN0KSArIDEKKy0gICAg ICAgICAgICAgICAgICAgIHNpZ19vbigpOyBhY2JfcG9seV9maXRfbGVuZ3RoKHNlbGYuX19wb2x5 LCBsZW5ndGgpOyBzaWdfb2ZmKCkKKysgICAgICAgICAgICAgICAgICAgIHNpZ19vbigpOyBhY2Jf cG9seV9maXRfbGVuZ3RoKHNlbGYuX3BvbHksIGxlbmd0aCk7IHNpZ19vZmYoKQorICAgICAgICAg ICAgICAgICAgICAgZm9yIGksIGMgaW4gZGN0Lml0ZXJpdGVtcygpOgorICAgICAgICAgICAgICAg ICAgICAgICAgIGJhbGwgPSBDb2VmZihjKQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFjYl9w b2x5X3NldF9jb2VmZl9hY2Ioc2VsZi5fX3BvbHksIGksIGJhbGwudmFsdWUpCisrICAgICAgICAg ICAgICAgICAgICAgICAgYWNiX3BvbHlfc2V0X2NvZWZmX2FjYihzZWxmLl9wb2x5LCBpLCBiYWxs LnZhbHVlKQorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIGJhbGwgPSBDb2Vm Zih4KQorLSAgICAgICAgICAgICAgICBhY2JfcG9seV9zZXRfY29lZmZfYWNiKHNlbGYuX19wb2x5 LCAwLCBiYWxsLnZhbHVlKQorKyAgICAgICAgICAgICAgICBhY2JfcG9seV9zZXRfY29lZmZfYWNi KHNlbGYuX3BvbHksIDAsIGJhbGwudmFsdWUpCisgCisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYp OgorICAgICAgICAgciIiIgorQEAgLTIxOSwxMiArMjE5LDEyIEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBQb2woWzEs IDAsIDAsIDBdKS5kZWdyZWUoKQorICAgICAgICAgICAgIDAKKyAgICAgICAgICIiIgorLSAgICAg ICAgcmV0dXJuIHNtYWxsSW50ZWdlcihhY2JfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpKQorKyAg ICAgICAgcmV0dXJuIHNtYWxsSW50ZWdlcihhY2JfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkpCisg CisgICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IG4pOgorICAgICAgICAgY2Rl ZiBDb21wbGV4QmFsbCByZXMgPSBDb21wbGV4QmFsbC5fX25ld19fKENvbXBsZXhCYWxsKQorICAg ICAgICAgcmVzLl9wYXJlbnQgPSBzZWxmLl9wYXJlbnQuX2Jhc2UKKy0gICAgICAgIGFjYl9wb2x5 X2dldF9jb2VmZl9hY2IocmVzLnZhbHVlLCBzZWxmLl9fcG9seSwgbikKKysgICAgICAgIGFjYl9w b2x5X2dldF9jb2VmZl9hY2IocmVzLnZhbHVlLCBzZWxmLl9wb2x5LCBuKQorICAgICAgICAgcmV0 dXJuIHJlcworIAorICAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUpOgor QEAgLTI0MSw3ICsyNDEsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9s eW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogUG9sKFswLCAxLCBSQkYoMCwgcmFkPS4xKSwg MF0pLmxpc3QoKQorICAgICAgICAgICAgIFswLCAxLjAwMDAwMDAwMDAwMDAwMCwgWysvLSAwLjEw MV1dCisgICAgICAgICAiIiIKKy0gICAgICAgIGNkZWYgdW5zaWduZWQgbG9uZyBsZW5ndGggPSBh Y2JfcG9seV9sZW5ndGgoc2VsZi5fX3BvbHkpCisrICAgICAgICBjZGVmIHVuc2lnbmVkIGxvbmcg bGVuZ3RoID0gYWNiX3BvbHlfbGVuZ3RoKHNlbGYuX3BvbHkpCisgICAgICAgICByZXR1cm4gW3Nl bGYuZ2V0X3Vuc2FmZShuKSBmb3IgbiBpbiByYW5nZShsZW5ndGgpXQorIAorICAgICBkZWYgX19i b29sX18oc2VsZik6CitAQCAtMjU3LDcgKzI1Nyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9j b21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBib29sKHopCisgICAg ICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gYWNiX3BvbHlfbGVu Z3RoKHNlbGYuX19wb2x5KQorKyAgICAgICAgcmV0dXJuIGFjYl9wb2x5X2xlbmd0aChzZWxmLl9w b2x5KQorIAorICAgICAjIFJpbmcgYW5kIEV1Y2xpZGVhbiBhcml0aG1ldGljCisgCitAQCAtMjc0 LDkgKzI3NCw5IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFs KToKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiByZXMgPSBzZWxmLl9uZXco KQorICAgICAgICAgc2lnX29uKCkKKyAgICAgICAgIGFjYl9wb2x5X2FkZCgKKy0gICAgICAgICAg ICAgICAgcmVzLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgc2VsZi5fX3BvbHksCistICAgICAg ICAgICAgICAgICg8UG9seW5vbWlhbF9jb21wbGV4X2FyYj4gb3RoZXIpLl9fcG9seSwKKysgICAg ICAgICAgICAgICAgcmVzLl9wb2x5LAorKyAgICAgICAgICAgICAgICBzZWxmLl9wb2x5LAorKyAg ICAgICAgICAgICAgICAoPFBvbHlub21pYWxfY29tcGxleF9hcmI+IG90aGVyKS5fcG9seSwKKyAg ICAgICAgICAgICAgICAgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIHJlcworQEAgLTI5Myw3ICsyOTMsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29t cGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5v bWlhbF9jb21wbGV4X2FyYiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0g ICAgICAgIGFjYl9wb2x5X25lZyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSkKKysgICAgICAgIGFj Yl9wb2x5X25lZyhyZXMuX3BvbHksIHNlbGYuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAg ICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0zMTAsOSArMzEwLDkgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFs X2NvbXBsZXhfYXJiIHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorICAgICAg ICAgYWNiX3BvbHlfc3ViKAorLSAgICAgICAgICAgICAgICByZXMuX19wb2x5LAorLSAgICAgICAg ICAgICAgICBzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2NvbXBs ZXhfYXJiPiBvdGhlcikuX19wb2x5LAorKyAgICAgICAgICAgICAgICByZXMuX3BvbHksCisrICAg ICAgICAgICAgICAgIHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9j b21wbGV4X2FyYj4gb3RoZXIpLl9wb2x5LAorICAgICAgICAgICAgICAgICBwcmVjKHNlbGYpKQor ICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCitAQCAtMzMxLDkgKzMzMSw5 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAg ICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAg ICAgc2lnX29uKCkKKyAgICAgICAgIGFjYl9wb2x5X211bCgKKy0gICAgICAgICAgICAgICAgcmVz Ll9fcG9seSwKKy0gICAgICAgICAgICAgICAgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAg ICg8UG9seW5vbWlhbF9jb21wbGV4X2FyYj4gb3RoZXIpLl9fcG9seSwKKysgICAgICAgICAgICAg ICAgcmVzLl9wb2x5LAorKyAgICAgICAgICAgICAgICBzZWxmLl9wb2x5LAorKyAgICAgICAgICAg ICAgICAoPFBvbHlub21pYWxfY29tcGxleF9hcmI+IG90aGVyKS5fcG9seSwKKyAgICAgICAgICAg ICAgICAgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJl cworQEAgLTM1NCw3ICszNTQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIo UG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21w bGV4X2FyYiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFj Yl9wb2x5X3NjYWxhcl9tdWwocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksICg8Q29tcGxleEJhbGw+ IGEpLnZhbHVlLCBwcmVjKHNlbGYpKQorKyAgICAgICAgYWNiX3BvbHlfc2NhbGFyX211bChyZXMu X3BvbHksIHNlbGYuX3BvbHksICg8Q29tcGxleEJhbGw+IGEpLnZhbHVlLCBwcmVjKHNlbGYpKQor ICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtNDA5LDggKzQw OSw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAg ICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiBxdW8gPSBzZWxmLl9uZXcoKQorICAg ICAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHJlbSA9IHNlbGYuX25ldygpCisgICAg ICAgICBzaWdfb24oKQorLSAgICAgICAgY2RlZiBiaW50IHN1Y2Nlc3MgPSBhY2JfcG9seV9kaXZy ZW0ocXVvLl9fcG9seSwgcmVtLl9fcG9seSwgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAg IGRpdi5fX3BvbHksIHByZWMoc2VsZikpCisrICAgICAgICBjZGVmIGJpbnQgc3VjY2VzcyA9IGFj Yl9wb2x5X2RpdnJlbShxdW8uX3BvbHksIHJlbS5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAg ICAgICAgICAgZGl2Ll9wb2x5LCBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisgICAg ICAgICBpZiBzdWNjZXNzOgorICAgICAgICAgICAgIHJldHVybiBxdW8sIHJlbQorQEAgLTQ0NSwx NSArNDQ1LDE1IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFs KToKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAgICAgICAgIG4gPSAwCisgICAgICAgICBzaWdf b24oKQorLSAgICAgICAgYWNiX3BvbHlfc2V0KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5KQorLSAg ICAgICAgYWNiX3BvbHlfdHJ1bmNhdGUocmVzLl9fcG9seSwgbikKKysgICAgICAgIGFjYl9wb2x5 X3NldChyZXMuX3BvbHksIHNlbGYuX3BvbHkpCisrICAgICAgICBhY2JfcG9seV90cnVuY2F0ZShy ZXMuX3BvbHksIG4pCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAK KyAgICAgY2RlZiBfaW5wbGFjZV90cnVuY2F0ZShzZWxmLCBsb25nIG4pOgorICAgICAgICAgaWYg biA8IDA6CisgICAgICAgICAgICAgbiA9IDAKKy0gICAgICAgIGFjYl9wb2x5X3RydW5jYXRlKHNl bGYuX19wb2x5LCBuKQorKyAgICAgICAgYWNiX3BvbHlfdHJ1bmNhdGUoc2VsZi5fcG9seSwgbikK KyAgICAgICAgIHJldHVybiBzZWxmCisgCisgICAgIGRlZiBfX2xzaGlmdF9fKHZhbCwgbik6CitA QCAtNDg1LDcgKzQ4NSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5 bm9taWFsKToKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiBzZWxmID0gKDxQ b2x5bm9taWFsX2NvbXBsZXhfYXJiPiB2YWwpCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfY29t cGxleF9hcmIgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBh Y2JfcG9seV9zaGlmdF9sZWZ0KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBuKQorKyAgICAgICAg YWNiX3BvbHlfc2hpZnRfbGVmdChyZXMuX3BvbHksIHNlbGYuX3BvbHksIG4pCisgICAgICAgICBz aWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC01MTgsNyArNTE4LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgY2Rl ZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHNlbGYgPSAoPFBvbHlub21pYWxfY29tcGxleF9hcmI+ IHZhbCkKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiByZXMgPSBzZWxmLl9u ZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X3NoaWZ0X3JpZ2h0KHJl cy5fX3BvbHksIHNlbGYuX19wb2x5LCBuKQorKyAgICAgICAgYWNiX3BvbHlfc2hpZnRfcmlnaHQo cmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBuKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICBy ZXR1cm4gcmVzCisgCitAQCAtNTQ4LDcgKzU0OCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9j b21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAgICAgICAg IG4gPSAwCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNiX3BvbHlfbXVsbG93KHJlcy5f X3BvbHksIHNlbGYuX19wb2x5LCBteV9vdGhlci5fX3BvbHksIG4sIHByZWMoc2VsZikpCisrICAg ICAgICBhY2JfcG9seV9tdWxsb3cocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBteV9vdGhlci5fcG9s eSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJl cworIAorQEAgLTU3Niw3ICs1NzYsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9h cmIoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAor ICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X2ludl9zZXJpZXMocmVzLl9fcG9s eSwgc2VsZi5fX3BvbHksIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9pbnZfc2Vy aWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19v ZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTYxMiw3ICs2MTIsNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwg MDoKKyAgICAgICAgICAgICBuID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9w b2x5X3Bvd191aV90cnVuY19iaW5leHAocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIGV4cG8sIG4s IHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9wb3dfdWlfdHJ1bmNfYmluZXhwKHJlcy5f cG9seSwgc2VsZi5fcG9seSwgZXhwbywgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYo KQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTY0OCw3ICs2NDgsNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwgMDoK KyAgICAgICAgICAgICBuID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5 X2xvZ19zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG4sIHByZWMoc2VsZikpCisrICAg ICAgICBhY2JfcG9seV9sb2dfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbiwgcHJlYyhz ZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTY3 Miw3ICs2NzIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlh bCk6CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorICAgICAgICAgc2ln X29uKCkKKy0gICAgICAgIGFjYl9wb2x5X2V4cF9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3Bv bHksIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9leHBfc2VyaWVzKHJlcy5fcG9s eSwgc2VsZi5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAg ICAgcmV0dXJuIHJlcworIAorQEAgLTY5Nyw3ICs2OTcsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAg ICAgICBuID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X3NxcnRfc2Vy aWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBuLCBwcmVjKHNlbGYpKQorKyAgICAgICAgYWNi X3BvbHlfc3FydF9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBuLCBwcmVjKHNlbGYpKQor ICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtNzE2LDcgKzcx Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAg ICAgICAgIGlmIG4gPCAwOgorICAgICAgICAgICAgIG4gPSAwCisgICAgICAgICBzaWdfb24oKQor LSAgICAgICAgYWNiX3BvbHlfZ2FtbWFfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBu LCBwcmVjKHNlbGYpKQorKyAgICAgICAgYWNiX3BvbHlfZ2FtbWFfc2VyaWVzKHJlcy5fcG9seSwg c2VsZi5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIHJlcworIAorQEAgLTczNSw3ICs3MzUsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf Y29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAg ICBuID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X2xnYW1tYV9zZXJp ZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2Jf cG9seV9sZ2FtbWFfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbiwgcHJlYyhzZWxmKSkK KyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTc1NCw3ICs3 NTQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6Cisg ICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorICAgICAgICAgc2lnX29uKCkK Ky0gICAgICAgIGFjYl9wb2x5X3JnYW1tYV9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHks IG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9yZ2FtbWFfc2VyaWVzKHJlcy5fcG9s eSwgc2VsZi5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAg ICAgcmV0dXJuIHJlcworIAorQEAgLTc4NCw3ICs3ODQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBuIDwgMDoKKyAgICAgICAg ICAgICBuID0gMAorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X2xhbWJlcnR3 X3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgX2JyYW5jaCwgMCwgbiwgcHJlYyhzZWxm KSkKKysgICAgICAgIGFjYl9wb2x5X2xhbWJlcnR3X3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3Bv bHksIF9icmFuY2gsIDAsIG4sIHByZWMoc2VsZikpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIGZtcHpfY2xlYXIoX2JyYW5jaCkKKyAgICAgICAgIHJldHVybiByZXMKK0BAIC04MTQsNyAr ODE0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgor ICAgICAgICAgY2RlZiBDb21wbGV4QmFsbCBfYSA9IDxDb21wbGV4QmFsbD4gKHNlbGYuX3BhcmVu dC5fYmFzZS5jb2VyY2UoYSkpCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfY29tcGxleF9hcmIg cmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBhY2JfcG9seV96 ZXRhX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgX2EudmFsdWUsIGRlZmxhdGUsIG4s IHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV96ZXRhX3NlcmllcyhyZXMuX3BvbHksIHNl bGYuX3BvbHksIF9hLnZhbHVlLCBkZWZsYXRlLCBuLCBwcmVjKHNlbGYpKQorICAgICAgICAgc2ln X29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtODQ2LDI0ICs4NDYsMjQgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgY2Rl ZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBjZGVm IGFjYl9wb2x5X3Qgc2VsZl90cywgb3RoZXJfdHMKKyAgICAgICAgIGNkZWYgYWNiX3B0ciBjYwor LSAgICAgICAgaWYgYWNiX3BvbHlfbGVuZ3RoKG90aGVyMS5fX3BvbHkpID4gMDoKKy0gICAgICAg ICAgICBjYyA9IGFjYl9wb2x5X2dldF9jb2VmZl9wdHIob3RoZXIxLl9fcG9seSwgMCkKKysgICAg ICAgIGlmIGFjYl9wb2x5X2xlbmd0aChvdGhlcjEuX3BvbHkpID4gMDoKKysgICAgICAgICAgICBj YyA9IGFjYl9wb2x5X2dldF9jb2VmZl9wdHIob3RoZXIxLl9wb2x5LCAwKQorICAgICAgICAgICAg IGlmIG5vdCBhY2JfaXNfemVybyhjYyk6CisgICAgICAgICAgICAgICAgIHNpZ19vbigpCisgICAg ICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X2luaXQoc2Vs Zl90cykKKyAgICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X2luaXQob3RoZXJfdHMpCistICAg ICAgICAgICAgICAgICAgICBhY2JfcG9seV90YXlsb3Jfc2hpZnQoc2VsZl90cywgc2VsZi5fX3Bv bHksIGNjLCBwcmVjKHNlbGYpKQorLSAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfc2V0KG90 aGVyX3RzLCBvdGhlcjEuX19wb2x5KQorKyAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfdGF5 bG9yX3NoaWZ0KHNlbGZfdHMsIHNlbGYuX3BvbHksIGNjLCBwcmVjKHNlbGYpKQorKyAgICAgICAg ICAgICAgICAgICAgYWNiX3BvbHlfc2V0KG90aGVyX3RzLCBvdGhlcjEuX3BvbHkpCisgICAgICAg ICAgICAgICAgICAgICBhY2JfemVybyhhY2JfcG9seV9nZXRfY29lZmZfcHRyKG90aGVyX3RzLCAw KSkKKy0gICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X2NvbXBvc2Vfc2VyaWVzKHJlcy5fX3Bv bHksIHNlbGZfdHMsIG90aGVyX3RzLCBuLCBwcmVjKHNlbGYpKQorKyAgICAgICAgICAgICAgICAg ICAgYWNiX3BvbHlfY29tcG9zZV9zZXJpZXMocmVzLl9wb2x5LCBzZWxmX3RzLCBvdGhlcl90cywg biwgcHJlYyhzZWxmKSkKKyAgICAgICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAg ICAgICAgIGFjYl9wb2x5X2NsZWFyKG90aGVyX3RzKQorICAgICAgICAgICAgICAgICAgICAgYWNi X3BvbHlfY2xlYXIoc2VsZl90cykKKyAgICAgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAg ICAgICAgICAgICAgICByZXR1cm4gcmVzCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNi X3BvbHlfY29tcG9zZV9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG90aGVyMS5fX3Bv bHksIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9jb21wb3NlX3NlcmllcyhyZXMu X3BvbHksIHNlbGYuX3BvbHksIG90aGVyMS5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTg5NSwxMiArODk1LDEyIEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAg IGNkZWYgUG9seW5vbWlhbF9jb21wbGV4X2FyYiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAg aWYgbiA8IDA6CisgICAgICAgICAgICAgbiA9IDAKKy0gICAgICAgIGlmIG5vdCBhY2JfaXNfemVy byhhY2JfcG9seV9nZXRfY29lZmZfcHRyKHNlbGYuX19wb2x5LCAwKSk6CisrICAgICAgICBpZiBu b3QgYWNiX2lzX3plcm8oYWNiX3BvbHlfZ2V0X2NvZWZmX3B0cihzZWxmLl9wb2x5LCAwKSk6Cisg ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGhlIGNvbnN0YW50IGNvZWZmaWNpZW50IG11 c3QgYmUgemVybyIpCistICAgICAgICBpZiBhY2JfY29udGFpbnNfemVybyhhY2JfcG9seV9nZXRf Y29lZmZfcHRyKHNlbGYuX19wb2x5LCAxKSk6CisrICAgICAgICBpZiBhY2JfY29udGFpbnNfemVy byhhY2JfcG9seV9nZXRfY29lZmZfcHRyKHNlbGYuX3BvbHksIDEpKToKKyAgICAgICAgICAgICBy YWlzZSBWYWx1ZUVycm9yKCJ0aGUgbGluZWFyIHRlcm0gbXVzdCBiZSBub256ZXJvIikKKyAgICAg ICAgIHNpZ19vbigpCistICAgICAgICBhY2JfcG9seV9yZXZlcnRfc2VyaWVzKHJlcy5fX3BvbHks IHNlbGYuX19wb2x5LCBuLCBwcmVjKHNlbGYpKQorKyAgICAgICAgYWNiX3BvbHlfcmV2ZXJ0X3Nl cmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIG4sIHByZWMoc2VsZikpCisgICAgICAgICBzaWdf b2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC05MzgsMTUgKzkzOCwxNSBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg ICAgIGJhbGwgPSBDb21wbGV4QmFsbC5fX25ld19fKENvbXBsZXhCYWxsKQorICAgICAgICAgICAg ICAgICBiYWxsLl9wYXJlbnQgPSBzZWxmLl9wYXJlbnQuX2Jhc2UKKyAgICAgICAgICAgICAgICAg c2lnX29uKCkKKy0gICAgICAgICAgICAgICAgYWNiX3BvbHlfZXZhbHVhdGUoYmFsbC52YWx1ZSwg c2VsZi5fX3BvbHksCisrICAgICAgICAgICAgICAgIGFjYl9wb2x5X2V2YWx1YXRlKGJhbGwudmFs dWUsIHNlbGYuX3BvbHksCisgICAgICAgICAgICAgICAgICAgICAgICAgKDxDb21wbGV4QmFsbD4g cG9pbnQpLnZhbHVlLCBwcmVjKHNlbGYpKQorICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAg ICAgICAgICAgICAgICAgcmV0dXJuIGJhbGwKKyAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2Uo cG9pbnQsIFBvbHlub21pYWxfY29tcGxleF9hcmIpOgorICAgICAgICAgICAgICAgICBwb2x5ID0g KDxQb2x5bm9taWFsX2NvbXBsZXhfYXJiPiBwb2ludCkuX25ldygpCisgICAgICAgICAgICAgICAg IHNpZ19vbigpCistICAgICAgICAgICAgICAgIGFjYl9wb2x5X2NvbXBvc2UocG9seS5fX3BvbHks IHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9jb21w bGV4X2FyYj4gcG9pbnQpLl9fcG9seSwgcHJlYyhzZWxmKSkKKysgICAgICAgICAgICAgICAgYWNi X3BvbHlfY29tcG9zZShwb2x5Ll9wb2x5LCBzZWxmLl9wb2x5LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICg8UG9seW5vbWlhbF9jb21wbGV4X2FyYj4gcG9pbnQpLl9wb2x5LCBwcmVjKHNlbGYp KQorICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHBv bHkKKyAgICAgICAgICAgICAjIFRPRE86IHBlcmhhcHMgYWRkIG1vcmUgc3BlY2lhbCBjYXNlcywg ZS5nLiBmb3IgcmVhbCBiYWxsLAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21p YWwvcG9seW5vbWlhbF9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9s eW5vbWlhbF9lbGVtZW50LnB4ZAoraW5kZXggMDgzZjUwNmIyMjIuLjVkY2JmNDU5N2QwIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2VsZW1lbnQucHhk CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfZWxlbWVudC5weGQK K0BAIC00NSwxMiArNDUsMTIgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsKENvbW11dGF0aXZlUG9s eW5vbWlhbCk6CisgICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KQorICAgICBjcGRlZiBfZmxv b3JkaXZfKHNlbGYsIHJpZ2h0KQorIAorLSAgICBjZGVmIHB1YmxpYyBkaWN0IF9fY2FjaGVkX21l dGhvZHMKKysgICAgY2RlZiBwdWJsaWMgZGljdCBfY2FjaGVkX21ldGhvZHMKKyAKKyBjZGVmIGNs YXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgY2RlZiBQb2x5 bm9taWFsX2dlbmVyaWNfZGVuc2UgX25ld19jKHNlbGYsIGxpc3QgY29lZmZzLCBQYXJlbnQgUCkK Ky0gICAgY2RlZiBsaXN0IF9fY29lZmZzCistICAgIGNkZWYgaW50IF9fbm9ybWFsaXplKHNlbGYp IGV4Y2VwdCAtMQorKyAgICBjZGVmIGxpc3QgX2NvZWZmcworKyAgICBjZGVmIGludCBfbm9ybWFs aXplKHNlbGYpIGV4Y2VwdCAtMQorICAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5 PSopCisgCisgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2VfaW5leGFjdChQb2x5 bm9taWFsX2dlbmVyaWNfZGVuc2UpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvcG9seW5vbWlhbF9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv cG9seW5vbWlhbF9lbGVtZW50LnB5eAoraW5kZXggNGQ0YjlkZDEwZjUuLmQxYzgwMjgzNWFlIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2VsZW1lbnQu cHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfZWxlbWVudC5w eXgKK0BAIC05ODAwLDcgKzk4MDAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29tbXV0YXRp dmVQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAwCisgICAgICAgICAiIiIKKyAgICAgICAgICMg X19nZXRpdGVtX18gYWxyZWFkeSByZXR1cm5zIGEgcG9seW5vbWlhbCEhCistICAgICAgICAjIFdl IG11c3Qgbm90IGhhdmUgY2hlY2s9RmFsc2UsIHNpbmNlIDAgbXVzdCBub3QgaGF2ZSBfX2NvZWZm cyA9IFswXS4KKysgICAgICAgICMgV2UgbXVzdCBub3QgaGF2ZSBjaGVjaz1GYWxzZSwgc2luY2Ug MCBtdXN0IG5vdCBoYXZlIF9jb2VmZnMgPSBbMF0uCisgICAgICAgICByZXR1cm4gPFBvbHlub21p YWw+c2VsZi5fcGFyZW50KHNlbGZbOm5dKSMsIGNoZWNrPUZhbHNlKQorIAorICAgICBjZGVmIF9p bnBsYWNlX3RydW5jYXRlKHNlbGYsIGxvbmcgcHJlYyk6CitAQCAtMTE1NDEsMTYgKzExNTQxLDE2 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAg ICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCB4PU5vbmUsIGludCBjaGVjaz0xLCBpc19nZW49 RmFsc2UsIGludCBjb25zdHJ1Y3Q9MCwgKiprd2RzKToKKyAgICAgICAgIFBvbHlub21pYWwuX19p bml0X18oc2VsZiwgcGFyZW50LCBpc19nZW49aXNfZ2VuKQorICAgICAgICAgaWYgeCBpcyBOb25l OgorLSAgICAgICAgICAgIHNlbGYuX19jb2VmZnMgPSBbXQorKyAgICAgICAgICAgIHNlbGYuX2Nv ZWZmcyA9IFtdCisgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBSID0gcGFyZW50LmJh c2VfcmluZygpCisgICAgICAgICBpZiBpc2luc3RhbmNlKHgsIChsaXN0LCB0dXBsZSkpOgorICAg ICAgICAgICAgIGlmIGNoZWNrOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fY29lZmZzID0gW1Io dCkgZm9yIHQgaW4geF0KKy0gICAgICAgICAgICAgICAgc2VsZi5fX25vcm1hbGl6ZSgpCisrICAg ICAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IFtSKHQpIGZvciB0IGluIHhdCisrICAgICAgICAg ICAgICAgIHNlbGYuX25vcm1hbGl6ZSgpCisgICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAg ICAgICAgc2VsZi5fX2NvZWZmcyA9IHgKKysgICAgICAgICAgICAgICAgc2VsZi5fY29lZmZzID0g eAorICAgICAgICAgICAgIHJldHVybgorIAorICAgICAgICAgaWYgc2FnZS5yaW5ncy5mcmFjdGlv bl9maWVsZF9lbGVtZW50LmlzX0ZyYWN0aW9uRmllbGRFbGVtZW50KHgpOgorQEAgLTExNTY1LDE5 ICsxMTU2NSwxOSBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9t aWFsKToKKyAgICAgICAgICAgICBlbGlmIFIuaGFzX2NvZXJjZV9tYXBfZnJvbSgoPEVsZW1lbnQ+ eCkuX3BhcmVudCk6IyBpcyBSIG9yICg8RWxlbWVudD54KS5fcGFyZW50ID09IFI6CisgICAgICAg ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgIGlmIHguaXNfemVybygpOgorLSAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19jb2VmZnMgPSBbXQorKyAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IFtdCisgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuCisgICAgICAgICAgICAgICAgIGV4Y2VwdCAoQXR0cmlidXRlRXJyb3IsIFR5cGVFcnJvcik6 CisgICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgIHggPSBbeF0KKyAg ICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fY29lZmZzID0gW1IoYSwg Kiprd2RzKSBmb3IgYSBpbiB4Lmxpc3QoY29weT1GYWxzZSldCisrICAgICAgICAgICAgICAgIHNl bGYuX2NvZWZmcyA9IFtSKGEsICoqa3dkcykgZm9yIGEgaW4geC5saXN0KGNvcHk9RmFsc2UpXQor ICAgICAgICAgICAgICAgICBpZiBjaGVjazoKKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuX19u b3JtYWxpemUoKQorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAgICAg ICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgaW50KSBh bmQgeCA9PSAwOgorLSAgICAgICAgICAgIHNlbGYuX19jb2VmZnMgPSBbXQorKyAgICAgICAgICAg IHNlbGYuX2NvZWZmcyA9IFtdCisgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBlbGlm IGlzaW5zdGFuY2UoeCwgZGljdCk6CitAQCAtMTE1OTMsMTYgKzExNTkzLDE2IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICMgICAgICAgICAgICBl bHNlOgorICMgICAgICAgICAgICAgICAgeCA9IFtdICAgICMgemVybyBwb2x5bm9taWFsCisgICAg ICAgICBpZiBjaGVjazoKKy0gICAgICAgICAgICBzZWxmLl9fY29lZmZzID0gW1IoeiwgKiprd2Rz KSBmb3IgeiBpbiB4XQorLSAgICAgICAgICAgIHNlbGYuX19ub3JtYWxpemUoKQorKyAgICAgICAg ICAgIHNlbGYuX2NvZWZmcyA9IFtSKHosICoqa3dkcykgZm9yIHogaW4geF0KKysgICAgICAgICAg ICBzZWxmLl9ub3JtYWxpemUoKQorICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBzZWxmLl9f Y29lZmZzID0geAorKyAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IHgKKyAKKyAgICAgY2RlZiBQ b2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgX25ld19jKHNlbGYsIGxpc3QgY29lZmZzLCBQYXJlbnQg UCk6CisgICAgICAgICBjZGVmIHR5cGUgdCA9IHR5cGUoc2VsZikKKyAgICAgICAgIGNkZWYgUG9s eW5vbWlhbF9nZW5lcmljX2RlbnNlIGYgPSA8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnQuX19u ZXdfXyh0KQorICAgICAgICAgZi5fcGFyZW50ID0gUAorLSAgICAgICAgZi5fX2NvZWZmcyA9IGNv ZWZmcworKyAgICAgICAgZi5fY29lZmZzID0gY29lZmZzCisgICAgICAgICByZXR1cm4gZgorIAor ICAgICBjcGRlZiBQb2x5bm9taWFsIF9uZXdfY29uc3RhbnRfcG9seShzZWxmLCBhLCBQYXJlbnQg UCk6CitAQCAtMTE2NDQsMTAgKzExNjQ0LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5l cmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IHR5cGUoZikKKyAgICAg ICAgICAgICA8Y2xhc3MgJ3NhZ2UucmluZ3MucG9seW5vbWlhbC5wb2x5bm9taWFsX2VsZW1lbnQu UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlJz4KKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJu IG1ha2VfZ2VuZXJpY19wb2x5bm9taWFsLCAoc2VsZi5fcGFyZW50LCBzZWxmLl9fY29lZmZzKQor KyAgICAgICAgcmV0dXJuIG1ha2VfZ2VuZXJpY19wb2x5bm9taWFsLCAoc2VsZi5fcGFyZW50LCBz ZWxmLl9jb2VmZnMpCisgCisgICAgIGRlZiBfX2Jvb2xfXyhzZWxmKToKKy0gICAgICAgIHJldHVy biBib29sKHNlbGYuX19jb2VmZnMpCisrICAgICAgICByZXR1cm4gYm9vbChzZWxmLl9jb2VmZnMp CisgCisgICAgIGNwZGVmIGJpbnQgaXNfdGVybShzZWxmKSBleGNlcHQgLTE6CisgICAgICAgICAi IiIKK0BAIC0xMTY2NywxMCArMTE2NjcsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVy aWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogKDEgKyAzKnheNSkuaXNf dGVybSgpCisgICAgICAgICAgICAgRmFsc2UKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgbm90 IHNlbGYuX19jb2VmZnM6CisrICAgICAgICBpZiBub3Qgc2VsZi5fY29lZmZzOgorICAgICAgICAg ICAgIHJldHVybiBGYWxzZQorIAorLSAgICAgICAgZm9yIGMgaW4gc2VsZi5fX2NvZWZmc1s6LTFd OgorKyAgICAgICAgZm9yIGMgaW4gc2VsZi5fY29lZmZzWzotMV06CisgICAgICAgICAgICAgaWYg YzoKKyAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1cm4gVHJ1ZQor QEAgLTExNjgyLDkgKzExNjgyLDkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVu c2UoUG9seW5vbWlhbCk6CisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3QgYGBzZWxmICogdGVy bWBgLCB3aGVyZSBgYHRlcm1gYCBpcyBhIHBvbHlub21pYWwKKyAgICAgICAgIHdpdGggYSBzaW5n bGUgdGVybS4KKyAgICAgICAgICIiIgorLSAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGQgPSBsZW4o ICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPiB0ZXJtKS5fX2NvZWZmcyApIC0gMQorKyAgICAg ICAgY2RlZiBQeV9zc2l6ZV90IGQgPSBsZW4oICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPiB0 ZXJtKS5fY29lZmZzICkgLSAxCisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaQorLSAgICAgICAg Y2RlZiBsaXN0IHggPSBzZWxmLl9fY29lZmZzCisrICAgICAgICBjZGVmIGxpc3QgeCA9IHNlbGYu X2NvZWZmcworICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGVsbCA9IGxlbih4KQorICAgICAgICAg YyA9IHRlcm0uZ2V0X3Vuc2FmZShkKQorICAgICAgICAgY2RlZiBsaXN0IHYgPSBbc2VsZi5iYXNl X3JpbmcoKS56ZXJvKCldICogKGQgKyBlbGwpCitAQCAtMTE2OTcsMTAgKzExNjk3LDEwIEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAg Y2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgcmVzID0gc2VsZi5fbmV3X2Modiwgc2VsZi5f cGFyZW50KQorICAgICAgICAgI2lmIG5vdCB2W2xlbih2KS0xXToKKyAgICAgICAgICMgIm5vcm1h bGl6ZSIgY2hlY2tzIHRoaXMgYW55d2F5Li4uCistICAgICAgICByZXMuX19ub3JtYWxpemUoKQor KyAgICAgICAgcmVzLl9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBj ZGVmIGludCBfX25vcm1hbGl6ZShzZWxmKSBleGNlcHQgLTE6CisrICAgIGNkZWYgaW50IF9ub3Jt YWxpemUoc2VsZikgZXhjZXB0IC0xOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzoKKyAK K0BAIC0xMTcxOCw3ICsxMTcxOCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2Rl bnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIE5vdEltcGxl bWVudGVkRXJyb3I6IGNhbm5vdCBjaGVjayB3aGV0aGVyIG51bWJlciBpcyBub24temVybworICAg ICAgICAgIiIiCistICAgICAgICBjZGVmIGxpc3QgeCA9IHNlbGYuX19jb2VmZnMKKysgICAgICAg IGNkZWYgbGlzdCB4ID0gc2VsZi5fY29lZmZzCisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgbiA9 IGxlbih4KSAtIDEKKyAgICAgICAgIHdoaWxlIG4gPj0gMCBhbmQgbm90IHhbbl06CisgICAgICAg ICAgICAgZGVsIHhbbl0KK0BAIC0xMTc0Nyw3ICsxMTc0Nyw3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IGZbOjNd CisgICAgICAgICAgICAgNDAuMCp4XjIgKyAxMC4wKnggKyAxLjAKKyAgICAgICAgICIiIgorLSAg ICAgICAgcmV0dXJuIHNlbGYuX19jb2VmZnNbbl0KKysgICAgICAgIHJldHVybiBzZWxmLl9jb2Vm ZnNbbl0KKyAKKyAgICAgZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIG4sIHZhbHVlKToKKyAgICAg ICAgICIiIgorQEAgLTExNzcwLDE3ICsxMTc3MCwxNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf Z2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgbiA9IGlu dChuKQorICAgICAgICAgdmFsdWUgPSBzZWxmLmJhc2VfcmluZygpKHZhbHVlKQorLSAgICAgICAg aWYgbiA+PSAwIGFuZCBuIDwgbGVuKHNlbGYuX19jb2VmZnMpOgorLSAgICAgICAgICAgIHNlbGYu X19jb2VmZnNbbl0gPSB2YWx1ZQorLSAgICAgICAgICAgIGlmIG4gPT0gbGVuKHNlbGYuX19jb2Vm ZnMpIGFuZCB2YWx1ZSA9PSAwOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fbm9ybWFsaXplKCkK KysgICAgICAgIGlmIG4gPj0gMCBhbmQgbiA8IGxlbihzZWxmLl9jb2VmZnMpOgorKyAgICAgICAg ICAgIHNlbGYuX2NvZWZmc1tuXSA9IHZhbHVlCisrICAgICAgICAgICAgaWYgbiA9PSBsZW4oc2Vs Zi5fY29lZmZzKSBhbmQgdmFsdWUgPT0gMDoKKysgICAgICAgICAgICAgICAgc2VsZi5fbm9ybWFs aXplKCkKKyAgICAgICAgIGVsaWYgbiA8IDA6CisgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJv cigicG9seW5vbWlhbCBjb2VmZmljaWVudCBpbmRleCBtdXN0IGJlIG5vbm5lZ2F0aXZlIikKKyAg ICAgICAgIGVsaWYgdmFsdWUgIT0gMDoKKyAgICAgICAgICAgICB6ZXJvID0gc2VsZi5iYXNlX3Jp bmcoKS56ZXJvKCkKKy0gICAgICAgICAgICBmb3IgXyBpbiByYW5nZShsZW4oc2VsZi5fX2NvZWZm cyksIG4pOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fY29lZmZzLmFwcGVuZCh6ZXJvKQorLSAg ICAgICAgICAgIHNlbGYuX19jb2VmZnMuYXBwZW5kKHZhbHVlKQorKyAgICAgICAgICAgIGZvciBf IGluIHJhbmdlKGxlbihzZWxmLl9jb2VmZnMpLCBuKToKKysgICAgICAgICAgICAgICAgc2VsZi5f Y29lZmZzLmFwcGVuZCh6ZXJvKQorKyAgICAgICAgICAgIHNlbGYuX2NvZWZmcy5hcHBlbmQodmFs dWUpCisgCisgICAgIGRlZiBfX2Zsb29yZGl2X18oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIi CitAQCAtMTE4MjIsOCArMTE4MjIsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19k ZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgICAgICByZXR1cm4gKDxQb2x5bm9taWFsX2dlbmVy aWNfZGVuc2U+c2VsZikuX2Zsb29yZGl2Xyg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnJpZ2h0 KQorICAgICAgICAgUCA9IHBhcmVudChzZWxmKQorICAgICAgICAgZCA9IFAuYmFzZV9yaW5nKCko cmlnaHQpCistICAgICAgICBjZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSByZXMgPSAoPFBv bHlub21pYWxfZ2VuZXJpY19kZW5zZT5zZWxmKS5fbmV3X2MoW2MgLy8gZCBmb3IgYyBpbiAoPFBv bHlub21pYWxfZ2VuZXJpY19kZW5zZT5zZWxmKS5fX2NvZWZmc10sIFApCistICAgICAgICByZXMu X19ub3JtYWxpemUoKQorKyAgICAgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgcmVz ID0gKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+c2VsZikuX25ld19jKFtjIC8vIGQgZm9yIGMg aW4gKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+c2VsZikuX2NvZWZmc10sIFApCisrICAgICAg ICByZXMuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcmVzCisgCisgICAgIGNwZGVmIF9h ZGRfKHNlbGYsIHJpZ2h0KToKK0BAIC0xMTgzOSw4ICsxMTgzOSw4IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAg ICBjZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSByZXMKKyAgICAgICAgIGNkZWYgUHlfc3Np emVfdCBjaGVjaz0wLCBpLCBtaW4KKy0gICAgICAgIHggPSAoPFBvbHlub21pYWxfZ2VuZXJpY19k ZW5zZT5zZWxmKS5fX2NvZWZmcworLSAgICAgICAgeSA9ICg8UG9seW5vbWlhbF9nZW5lcmljX2Rl bnNlPnJpZ2h0KS5fX2NvZWZmcworKyAgICAgICAgeCA9ICg8UG9seW5vbWlhbF9nZW5lcmljX2Rl bnNlPnNlbGYpLl9jb2VmZnMKKysgICAgICAgIHkgPSAoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5z ZT5yaWdodCkuX2NvZWZmcworICAgICAgICAgaWYgbGVuKHgpID4gbGVuKHkpOgorICAgICAgICAg ICAgIG1pbiA9IGxlbih5KQorICAgICAgICAgICAgIGhpZ2ggPSB4W21pbjpdCitAQCAtMTE4NTIs NyArMTE4NTIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9t aWFsKToKKyAgICAgICAgIGNkZWYgbGlzdCBsb3cgPSBbeFtpXSArIHlbaV0gZm9yIGkgZnJvbSAw IDw9IGkgPCBtaW5dCisgICAgICAgICBpZiBsZW4oeCkgPT0gbGVuKHkpOgorICAgICAgICAgICAg IHJlcyA9IHNlbGYuX25ld19jKGxvdywgc2VsZi5fcGFyZW50KQorLSAgICAgICAgICAgIHJlcy5f X25vcm1hbGl6ZSgpCisrICAgICAgICAgICAgcmVzLl9ub3JtYWxpemUoKQorICAgICAgICAgICAg IHJldHVybiByZXMKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25l d19jKGxvdyArIGhpZ2gsIHNlbGYuX3BhcmVudCkKK0BAIC0xMTg2MCw4ICsxMTg2MCw4IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICBjcGRl ZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICBjZGVmIFBvbHlub21pYWxfZ2VuZXJpY19k ZW5zZSByZXMKKyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBjaGVjaz0wLCBpLCBtaW4KKy0gICAg ICAgIHggPSAoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5zZWxmKS5fX2NvZWZmcworLSAgICAg ICAgeSA9ICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnJpZ2h0KS5fX2NvZWZmcworKyAgICAg ICAgeCA9ICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnNlbGYpLl9jb2VmZnMKKysgICAgICAg IHkgPSAoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5yaWdodCkuX2NvZWZmcworICAgICAgICAg aWYgbGVuKHgpID4gbGVuKHkpOgorICAgICAgICAgICAgIG1pbiA9IGxlbih5KQorICAgICAgICAg ICAgIGhpZ2ggPSB4W21pbjpdCitAQCAtMTE4NzMsMzMgKzExODczLDMzIEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgbG93ID0gW3hb aV0gLSB5W2ldIGZvciBpIGZyb20gMCA8PSBpIDwgbWluXQorICAgICAgICAgaWYgbGVuKHgpID09 IGxlbih5KToKKyAgICAgICAgICAgICByZXMgPSBzZWxmLl9uZXdfYyhsb3csIHNlbGYuX3BhcmVu dCkKKy0gICAgICAgICAgICByZXMuX19ub3JtYWxpemUoKQorKyAgICAgICAgICAgIHJlcy5fbm9y bWFsaXplKCkKKyAgICAgICAgICAgICByZXR1cm4gcmVzCisgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhsb3cgKyBoaWdoLCBzZWxmLl9wYXJlbnQpCisgCisg ICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGMpOgorLSAgICAgICAgaWYgbm90IHNlbGYu X19jb2VmZnM6CisrICAgICAgICBpZiBub3Qgc2VsZi5fY29lZmZzOgorICAgICAgICAgICAgIHJl dHVybiBzZWxmCistICAgICAgICBpZiBjLl9wYXJlbnQgaXMgbm90ICg8RWxlbWVudD5zZWxmLl9f Y29lZmZzWzBdKS5fcGFyZW50OgorLSAgICAgICAgICAgIGMgPSAoPEVsZW1lbnQ+c2VsZi5fX2Nv ZWZmc1swXSkuX3BhcmVudC5jb2VyY2UoYykKKy0gICAgICAgIHYgPSBbYyAqIGEgZm9yIGEgaW4g c2VsZi5fX2NvZWZmc10KKysgICAgICAgIGlmIGMuX3BhcmVudCBpcyBub3QgKDxFbGVtZW50PnNl bGYuX2NvZWZmc1swXSkuX3BhcmVudDoKKysgICAgICAgICAgICBjID0gKDxFbGVtZW50PnNlbGYu X2NvZWZmc1swXSkuX3BhcmVudC5jb2VyY2UoYykKKysgICAgICAgIHYgPSBbYyAqIGEgZm9yIGEg aW4gc2VsZi5fY29lZmZzXQorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2Ug cmVzID0gc2VsZi5fbmV3X2Modiwgc2VsZi5fcGFyZW50KQorICAgICAgICAgI2lmIG5vdCB2W2xl bih2KS0xXToKKyAgICAgICAgICMgIm5vcm1hbGl6ZSIgY2hlY2tzIHRoaXMgYW55d2F5Li4uCist ICAgICAgICByZXMuX19ub3JtYWxpemUoKQorKyAgICAgICAgcmVzLl9ub3JtYWxpemUoKQorICAg ICAgICAgcmV0dXJuIHJlcworIAorICAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBjKToK Ky0gICAgICAgIGlmIG5vdCBzZWxmLl9fY29lZmZzOgorKyAgICAgICAgaWYgbm90IHNlbGYuX2Nv ZWZmczoKKyAgICAgICAgICAgICByZXR1cm4gc2VsZgorLSAgICAgICAgaWYgYy5fcGFyZW50IGlz IG5vdCAoPEVsZW1lbnQ+c2VsZi5fX2NvZWZmc1swXSkuX3BhcmVudDoKKy0gICAgICAgICAgICBj ID0gKDxFbGVtZW50PnNlbGYuX19jb2VmZnNbMF0pLl9wYXJlbnQuY29lcmNlKGMpCistICAgICAg ICB2ID0gW2EgKiBjIGZvciBhIGluIHNlbGYuX19jb2VmZnNdCisrICAgICAgICBpZiBjLl9wYXJl bnQgaXMgbm90ICg8RWxlbWVudD5zZWxmLl9jb2VmZnNbMF0pLl9wYXJlbnQ6CisrICAgICAgICAg ICAgYyA9ICg8RWxlbWVudD5zZWxmLl9jb2VmZnNbMF0pLl9wYXJlbnQuY29lcmNlKGMpCisrICAg ICAgICB2ID0gW2EgKiBjIGZvciBhIGluIHNlbGYuX2NvZWZmc10KKyAgICAgICAgIGNkZWYgUG9s eW5vbWlhbF9nZW5lcmljX2RlbnNlIHJlcyA9IHNlbGYuX25ld19jKHYsIHNlbGYuX3BhcmVudCkK KyAgICAgICAgICNpZiBub3QgdltsZW4odiktMV06CisgICAgICAgICAjICJub3JtYWxpemUiIGNo ZWNrcyB0aGlzIGFueXdheS4uLgorLSAgICAgICAgcmVzLl9fbm9ybWFsaXplKCkKKysgICAgICAg IHJlcy5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKyAgICAgY3BkZWYgY29u c3RhbnRfY29lZmZpY2llbnQoc2VsZik6CitAQCAtMTE5MTYsMTAgKzExOTE2LDEwIEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAg IHNhZ2U6IGYuY29uc3RhbnRfY29lZmZpY2llbnQoKQorICAgICAgICAgICAgIHQKKyAgICAgICAg ICIiIgorLSAgICAgICAgaWYgbm90IHNlbGYuX19jb2VmZnM6CisrICAgICAgICBpZiBub3Qgc2Vs Zi5fY29lZmZzOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLmJhc2VfcmluZygpLnplcm8oKQor ICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICByZXR1cm4gc2VsZi5fX2NvZWZmc1swXQorKyAg ICAgICAgICAgIHJldHVybiBzZWxmLl9jb2VmZnNbMF0KKyAKKyAgICAgY3BkZWYgbGlzdCBsaXN0 KHNlbGYsIGJpbnQgY29weT1UcnVlKToKKyAgICAgICAgICIiIgorQEAgLTExOTM0LDkgKzExOTM0 LDkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6Cisg ICAgICAgICAgICAgWzEsIDksIDEyLCA4XQorICAgICAgICAgIiIiCisgICAgICAgICBpZiBjb3B5 OgorLSAgICAgICAgICAgIHJldHVybiBsaXN0KHNlbGYuX19jb2VmZnMpCisrICAgICAgICAgICAg cmV0dXJuIGxpc3Qoc2VsZi5fY29lZmZzKQorICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBy ZXR1cm4gc2VsZi5fX2NvZWZmcworKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9jb2VmZnMKKyAK KyAgICAgZGVmIGRlZ3JlZShzZWxmLCBnZW49Tm9uZSk6CisgICAgICAgICAiIiIKK0BAIC0xMTk1 NSw3ICsxMTk1NSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlu b21pYWwpOgorICAgICAgICAgICAgIDxjbGFzcyAnc2FnZS5yaW5ncy5pbnRlZ2VyLkludGVnZXIn PgorIAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKGxlbihzZWxm Ll9fY29lZmZzKSAtIDEpCisrICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKGxlbihzZWxmLl9j b2VmZnMpIC0gMSkKKyAKKyAgICAgZGVmIHNoaWZ0KHNlbGYsIFB5X3NzaXplX3Qgbik6CisgICAg ICAgICByIiIiCitAQCAtMTE5OTMsMTMgKzExOTkzLDEzIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCisg ICAgICAgICBpZiBuID4gMDoKKyAgICAgICAgICAgICBvdXRwdXQgPSBbc2VsZi5iYXNlX3Jpbmco KS56ZXJvKCldICogbgorLSAgICAgICAgICAgIG91dHB1dC5leHRlbmQoc2VsZi5fX2NvZWZmcykK KysgICAgICAgICAgICBvdXRwdXQuZXh0ZW5kKHNlbGYuX2NvZWZmcykKKyAgICAgICAgICAgICBy ZXR1cm4gc2VsZi5fbmV3X2Mob3V0cHV0LCBzZWxmLl9wYXJlbnQpCisgICAgICAgICBpZiBuIDwg MDoKKy0gICAgICAgICAgICBpZiBuID4gbGVuKHNlbGYuX19jb2VmZnMpIC0gMToKKysgICAgICAg ICAgICBpZiBuID4gbGVuKHNlbGYuX2NvZWZmcykgLSAxOgorICAgICAgICAgICAgICAgICByZXR1 cm4gc2VsZi5fcGFyZW50KFtdKQorICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAg IHJldHVybiBzZWxmLl9uZXdfYyhzZWxmLl9fY29lZmZzWy1pbnQobik6XSwgc2VsZi5fcGFyZW50 KQorKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5fY29lZmZzWy1pbnQo bik6XSwgc2VsZi5fcGFyZW50KQorIAorICAgICBAY29lcmNlX2Jpbm9wCisgICAgIGRlZiBxdW9f cmVtKHNlbGYsIG90aGVyKToKK0BAIC0xMjA3Myw4ICsxMjA3Myw4IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHJldHVybiBz ZWxmLCBzZWxmCisgCisgICAgICAgICBSID0gc2VsZi5fcGFyZW50LmJhc2VfcmluZygpCistICAg ICAgICBjZGVmIGxpc3QgeCA9IGxpc3QoKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+c2VsZiku X19jb2VmZnMpICMgbWFrZSBhIGNvcHkKKy0gICAgICAgIGNkZWYgbGlzdCB5ID0gKDxQb2x5bm9t aWFsX2dlbmVyaWNfZGVuc2U+b3RoZXIpLl9fY29lZmZzCisrICAgICAgICBjZGVmIGxpc3QgeCA9 IGxpc3QoKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+c2VsZikuX2NvZWZmcykgIyBtYWtlIGEg Y29weQorKyAgICAgICAgY2RlZiBsaXN0IHkgPSAoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5v dGhlcikuX2NvZWZmcworICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IG0gPSBsZW4oeCkgICMgZGVn KHNlbGYpPW0tMQorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IG4gPSBsZW4oeSkgICMgZGVnKG90 aGVyKT1uLTEKKyAgICAgICAgIGlmIG0gPCBuOgorQEAgLTEyMTM1LDE4ICsxMjEzNSwxOCBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAg ICAgICBzYWdlOiB0eXBlKGYpCisgICAgICAgICAgICAgPGNsYXNzICdzYWdlLnJpbmdzLnBvbHlu b21pYWwucG9seW5vbWlhbF9lbGVtZW50LlBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSc+CisgICAg ICAgICAiIiIKKy0gICAgICAgIGwgPSBsZW4oc2VsZi5fX2NvZWZmcykKKysgICAgICAgIGwgPSBs ZW4oc2VsZi5fY29lZmZzKQorICAgICAgICAgaWYgbiA+IGw6CisgICAgICAgICAgICAgbiA9IGwK Ky0gICAgICAgIHdoaWxlIG4gPiAwIGFuZCBub3Qgc2VsZi5fX2NvZWZmc1tuLTFdOgorKyAgICAg ICAgd2hpbGUgbiA+IDAgYW5kIG5vdCBzZWxmLl9jb2VmZnNbbi0xXToKKyAgICAgICAgICAgICBu IC09IDEKKy0gICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhzZWxmLl9fY29lZmZzWzpuXSwgc2Vs Zi5fcGFyZW50KQorKyAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuX2NvZWZmc1s6bl0s IHNlbGYuX3BhcmVudCkKKyAKKyAgICAgY2RlZiBfaW5wbGFjZV90cnVuY2F0ZShzZWxmLCBsb25n IG4pOgorLSAgICAgICAgaWYgbiA8IGxlbihzZWxmLl9fY29lZmZzKToKKy0gICAgICAgICAgICB3 aGlsZSBuID4gMCBhbmQgbm90IHNlbGYuX19jb2VmZnNbbi0xXToKKysgICAgICAgIGlmIG4gPCBs ZW4oc2VsZi5fY29lZmZzKToKKysgICAgICAgICAgICB3aGlsZSBuID4gMCBhbmQgbm90IHNlbGYu X2NvZWZmc1tuLTFdOgorICAgICAgICAgICAgICAgICBuIC09IDEKKy0gICAgICAgIHNlbGYuX19j b2VmZnMgPSBzZWxmLl9fY29lZmZzWzpuXQorKyAgICAgICAgc2VsZi5fY29lZmZzID0gc2VsZi5f Y29lZmZzWzpuXQorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKyBkZWYgbWFrZV9nZW5lcmljX3Bv bHlub21pYWwocGFyZW50LCBjb2VmZnMpOgorQEAgLTEyMzA1LDcgKzEyMzA1LDcgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2VfaW5leGFjdChQb2x5bm9taWFsX2dlbmVyaWNf ZGVuc2UpOgorIAorICAgICAtIFhhdmllciBDYXJ1c28gKDIwMTMtMDMpCisgICAgICIiIgorLSAg ICBjZGVmIGludCBfX25vcm1hbGl6ZShzZWxmKSBleGNlcHQgLTE6CisrICAgIGNkZWYgaW50IF9u b3JtYWxpemUoc2VsZikgZXhjZXB0IC0xOgorICAgICAgICAgciIiIgorICAgICAgICAgVEVTVFM6 OgorIAorQEAgLTEyMzE2LDcgKzEyMzE2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVy aWNfZGVuc2VfaW5leGFjdChQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UpOgorICAgICAgICAgICAg IHNhZ2U6IFMoWzEsIFIoMCwgMjApXSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UucmluZ3MucGFkaWNzCisgICAgICAgICAg ICAgTyg1XjIwKSp4ICsgMSArIE8oNV4yMCkKKyAgICAgICAgICIiIgorLSAgICAgICAgY2RlZiBs aXN0IHggPSBzZWxmLl9fY29lZmZzCisrICAgICAgICBjZGVmIGxpc3QgeCA9IHNlbGYuX2NvZWZm cworICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IG4gPSBsZW4oeCkgLSAxCisgICAgICAgICBjZGVm IFJpbmdFbGVtZW50IGMKKyAgICAgICAgIHdoaWxlIG4gPj0gMDoKK0BAIC0xMjM3Niw3ICsxMjM3 Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlX2luZXhhY3QoUG9seW5v bWlhbF9nZW5lcmljX2RlbnNlKToKKyAKKyAgICAgICAgIC0gWGF2aWVyIENhcnVzbyAoMjAxMy0w MykKKyAgICAgICAgICIiIgorLSAgICAgICAgY29lZmZzID0gc2VsZi5fX2NvZWZmcworKyAgICAg ICAgY29lZmZzID0gc2VsZi5fY29lZmZzCisgICAgICAgICBkID0gbGVuKGNvZWZmcykgLSAxCisg ICAgICAgICB3aGlsZSBkID49IDA6CisgICAgICAgICAgICAgYyA9IGNvZWZmc1tkXQorQEAgLTEy NDIwLDcgKzEyNDIwLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2VfaW5l eGFjdChQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UpOgorIAorICAgICAgICAgLSBYYXZpZXIgQ2Fy dXNvICgyMDEzLTAzKQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gbGVuKHNlbGYuX19j b2VmZnMpIC0gMQorKyAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9jb2VmZnMpIC0gMQorIAorIAor IGNkZWYgY2xhc3MgQ29uc3RhbnRQb2x5bm9taWFsU2VjdGlvbihNYXApOgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50 LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X2ZsaW50LnB4ZAoraW5kZXggMDNjNWNlYmJmMDkuLmIxYjU5M2Q2YTI2IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQu cHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9mbGludC5weGQKK0BAIC01LDcgKzUsNyBAQCBmcm9tIHNhZ2UucmluZ3MuaW50ZWdlciBj aW1wb3J0IEludGVnZXIKKyBmcm9tIHNhZ2Uuc3RydWN0dXJlLnBhcmVudCBjaW1wb3J0IFBhcmVu dAorIAorIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21p YWwpOgorLSAgICBjZGVmIGZtcHpfcG9seV90IF9fcG9seQorKyAgICBjZGVmIGZtcHpfcG9seV90 IF9wb2x5CisgCisgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IF9uZXco c2VsZikKKyAgICAgY3BkZWYgX3Vuc2FmZV9tdXRhdGUoc2VsZiwgbG9uZyBuLCB2YWx1ZSkKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9mbGludC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50 ZWdlcl9kZW5zZV9mbGludC5weXgKK2luZGV4IGUyMDFhYzg0M2FkLi4xOTRlYjkyNjNiMiAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX2ZsaW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfZmxpbnQucHl4CitAQCAtOTksMTQgKzk5LDE0IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgciIi IgorICAgICAgICAgVGhpcyBjYWxscyB0aGUgdW5kZXJseWluZyBGTElOVCBmbXB6X3BvbHkgY29u c3RydWN0b3IKKyAgICAgICAgICIiIgorLSAgICAgICAgZm1wel9wb2x5X2luaXQoc2VsZi5fX3Bv bHkpCisrICAgICAgICBmbXB6X3BvbHlfaW5pdChzZWxmLl9wb2x5KQorIAorIAorICAgICBkZWYg X19kZWFsbG9jX18oc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBjYWxscyB0aGUgdW5k ZXJseWluZyBGTElOVCBmbXB6X3BvbHkgZGVzdHJ1Y3RvcgorICAgICAgICAgIiIiCistICAgICAg ICBmbXB6X3BvbHlfY2xlYXIoc2VsZi5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfY2xlYXIo c2VsZi5fcG9seSkKKyAKKyAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQg X25ldyhzZWxmKToKKyAgICAgICAgIHIiIiIKK0BAIC0xMzksNyArMTM5LDcgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICB4 Ll9pc19nZW4gPSAwCisgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhLCBJbnRlZ2VyKToKKyAg ICAgICAgICAgICBhID0gWlooYSkKKy0gICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfbXB6KHgu X19wb2x5LCAwLCAoPEludGVnZXI+YSkudmFsdWUpCisrICAgICAgICBmbXB6X3BvbHlfc2V0X2Nv ZWZmX21weih4Ll9wb2x5LCAwLCAoPEludGVnZXI+YSkudmFsdWUpCisgICAgICAgICByZXR1cm4g eAorIAorICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCB4PU5vbmUsIGNoZWNrPVRydWUs IGlzX2dlbj1GYWxzZSwKK0BAIC0yMjQsOCArMjI0LDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBpc2luc3RhbmNl KHgsIFBvbHlub21pYWwpOgorICAgICAgICAgICAgIGlmIHgucGFyZW50KCkgaXMgc2VsZi5wYXJl bnQoKToKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgZm1wel9w b2x5X3NldChzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPFBv bHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD54KS5fX3BvbHkpCisrICAgICAgICAgICAgICAg IGZtcHpfcG9seV9zZXQoc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD54KS5fcG9seSkKKyAgICAgICAgICAg ICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgIGVs c2U6CitAQCAtMjQ2LDcgKzI0Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICAgICAgZGVncmVlID0gaQor ICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAg ICAgICAgZm1wel9wb2x5X3JlYWxsb2Moc2VsZi5fX3BvbHksIGRlZ3JlZSArIDEpCisrICAgICAg ICAgICAgICAgIGZtcHpfcG9seV9yZWFsbG9jKHNlbGYuX3BvbHksIGRlZ3JlZSArIDEpCisgICAg ICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6 CisgICAgICAgICAgICAgICAgIHJhaXNlIE92ZXJmbG93RXJyb3IoIkNhbm5vdCBhbGxvY2F0ZSBt ZW1vcnkhIikKK0BAIC0yNTUsMTMgKzI1NSwxMyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50 ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgaSA9IGlpWzBd IGlmIHR5cGUoaWkpIGlzIHR1cGxlIGVsc2UgaWkKKyAgICAgICAgICAgICAgICAgaWYgaXNfc21h bGxfcHl0aG9uX2ludChhKToKKyAgICAgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAg ICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX19wb2x5LCBpLCBhKQor KyAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShzZWxmLl9wb2x5LCBp LCBhKQorICAgICAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhLCBJbnRlZ2VyKToK KyAgICAgICAgICAgICAgICAgICAgICAgICBhID0gWlooYSkKKyAgICAgICAgICAgICAgICAgICAg IHNpZ19vbigpCistICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX21weihz ZWxmLl9fcG9seSwgaSwgKDxJbnRlZ2VyPmEpLnZhbHVlKQorKyAgICAgICAgICAgICAgICAgICAg Zm1wel9wb2x5X3NldF9jb2VmZl9tcHooc2VsZi5fcG9seSwgaSwgKDxJbnRlZ2VyPmEpLnZhbHVl KQorICAgICAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgcmV0dXJuCisg CitAQCAtMjcwLDcgKzI3MCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIGNoZWNrID0gRmFsc2UKKyAKKyAgICAg ICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBudGxfWlpYKTogICAgIyBjb2VyY2lvbiBmcm9tIG50bC5w eXggb2JqZWN0CistICAgICAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoc2VsZi5fX3BvbHksICg8 bnRsX1paWD54KS54KQorKyAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYuX3BvbHks ICg8bnRsX1paWD54KS54KQorICAgICAgICAgICAgIHJldHVybgorIAorICAgICAgICAgZWxpZiBp c2luc3RhbmNlKHgsIEZyYWN0aW9uRmllbGRFbGVtZW50KSBhbmQgXAorQEAgLTI3OCw4ICsyNzgs OCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFs KToKKyAgICAgICAgICAgICBpZiB4LmRlbm9taW5hdG9yKCkgPT0gMToKKyAgICAgICAgICAgICAg ICAgIyBmcmFjdGlvbiBvZiB0aGUgZm9ybSBmKHgpLzEKKyAgICAgICAgICAgICAgICAgc2lnX29u KCkKKy0gICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldChzZWxmLl9fcG9seSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD54Lm51bWVy YXRvcigpKS5fX3BvbHkpCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXQoc2VsZi5fcG9s eSwKKysgICAgICAgICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9m bGludD54Lm51bWVyYXRvcigpKS5fcG9seSkKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisg ICAgICAgICAgICAgICAgIHJldHVybgorIAorQEAgLTI4NywxOSArMjg3LDE5IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAg ICAgIHggPSBbeF0gICAjIGNvbnN0YW50IHBvbHlub21pYWxzCisgCisgICAgICAgICBzaWdfb24o KQorLSAgICAgICAgZm1wel9wb2x5X3JlYWxsb2Moc2VsZi5fX3BvbHksIGxlbih4KSkKKysgICAg ICAgIGZtcHpfcG9seV9yZWFsbG9jKHNlbGYuX3BvbHksIGxlbih4KSkKKyAgICAgICAgIHNpZ19v ZmYoKQorICAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPCBsZW4oeCk6CisgICAgICAgICAgICAg YSA9IHhbaV0KKyAgICAgICAgICAgICBpZiBpc19zbWFsbF9weXRob25faW50KGEpOgorICAgICAg ICAgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZm X3NpKHNlbGYuX19wb2x5LCBpLCBhKQorKyAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2Nv ZWZmX3NpKHNlbGYuX3BvbHksIGksIGEpCisgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGEsIElu dGVnZXIpOgorICAgICAgICAgICAgICAgICAgICAgYSA9IFpaKGEpCisgICAgICAgICAgICAgICAg IHNpZ19vbigpCistICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfbXB6KHNlbGYu X19wb2x5LCBpLCAoPEludGVnZXI+YSkudmFsdWUpCisrICAgICAgICAgICAgICAgIGZtcHpfcG9s eV9zZXRfY29lZmZfbXB6KHNlbGYuX3BvbHksIGksICg8SW50ZWdlcj5hKS52YWx1ZSkKKyAgICAg ICAgICAgICAgICAgc2lnX29mZigpCisgCisgICAgIGRlZiBfZXZhbF9tcGZyXyhzZWxmLCBSZWFs TnVtYmVyIGEpOgorQEAgLTMyNyw3ICszMjcsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50 ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2Rl ZiBSZWFsTnVtYmVyIHJlcyA9IGEuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAg Zm1wel9wb2x5X2V2YWx1YXRpb25fbXBmcihyZXMudmFsdWUsIHNlbGYuX19wb2x5LCBhLnZhbHVl KQorKyAgICAgICAgZm1wel9wb2x5X2V2YWx1YXRpb25fbXBmcihyZXMudmFsdWUsIHNlbGYuX3Bv bHksIGEudmFsdWUpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAK K0BAIC0zNTcsNyArMzU3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf ZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbEludGVy dmFsRmllbGRFbGVtZW50IHJlcyA9IGEuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAg ICAgZm1wel9wb2x5X2V2YWx1YXRpb25fbXBmaShyZXMudmFsdWUsIHNlbGYuX19wb2x5LCBhLnZh bHVlKQorKyAgICAgICAgZm1wel9wb2x5X2V2YWx1YXRpb25fbXBmaShyZXMudmFsdWUsIHNlbGYu X3BvbHksIGEudmFsdWUpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMK KyAKK0BAIC00MTIsOCArNDEyLDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVu c2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh4LCBQb2x5 bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQpOgorICAgICAgICAgICAgICAgICBmID0gc2VsZi5f bmV3KCkKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgZm1wel9w b2x5X2NvbXBvc2UoZi5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD4geDApLl9fcG9s eSkKKysgICAgICAgICAgICAgICAgZm1wel9wb2x5X2NvbXBvc2UoZi5fcG9seSwgc2VsZi5fcG9s eSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQ+IHgwKS5fcG9seSkKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisg ICAgICAgICAgICAgICAgIHJldHVybiBmCisgICAgICAgICAgICAgaWYgaXNfc21hbGxfcHl0aG9u X2ludCh4MCk6CitAQCAtNDIyLDcgKzQyMiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICBmbXB6X2luaXQo YV9mbXB6KQorICAgICAgICAgICAgICAgICBmbXB6X2luaXQoel9mbXB6KQorICAgICAgICAgICAg ICAgICBmbXB6X3NldF9zaShhX2ZtcHosIFB5SW50X0FTX0xPTkcoeDApKQorLSAgICAgICAgICAg ICAgICBmbXB6X3BvbHlfZXZhbHVhdGVfZm1weih6X2ZtcHosIHNlbGYuX19wb2x5LCBhX2ZtcHop CisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9ldmFsdWF0ZV9mbXB6KHpfZm1weiwgc2VsZi5f cG9seSwgYV9mbXB6KQorICAgICAgICAgICAgICAgICBmbXB6X2dldF9tcHooei52YWx1ZSwgel9m bXB6KQorICAgICAgICAgICAgICAgICBmbXB6X2NsZWFyKGFfZm1weikKKyAgICAgICAgICAgICAg ICAgZm1wel9jbGVhcih6X2ZtcHopCitAQCAtNDMzLDcgKzQzMyw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIGlm IGlzaW5zdGFuY2UoeDAsIEludGVnZXIpOgorICAgICAgICAgICAgICAgICBhID0gPEludGVnZXI+ IHgwCisgCistICAgICAgICAgICAgICAgIGlmIGZtcHpfcG9seV9sZW5ndGgoc2VsZi5fX3BvbHkp ID09IDA6CisrICAgICAgICAgICAgICAgIGlmIGZtcHpfcG9seV9sZW5ndGgoc2VsZi5fcG9seSkg PT0gMDoKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBaWi56ZXJvKCkKKyAgICAgICAgICAg ICAgICAgaWYgbXB6X3NnbihhLnZhbHVlKSA9PSAwOgorICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIHNlbGZbMF0KK0BAIC00NDQsNyArNDQ0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2lu dGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgIGZtcHpfaW5p dChhX2ZtcHopCisgICAgICAgICAgICAgICAgIGZtcHpfaW5pdCh6X2ZtcHopCisgICAgICAgICAg ICAgICAgIGZtcHpfc2V0X21weihhX2ZtcHosIGEudmFsdWUpCistICAgICAgICAgICAgICAgIGZt cHpfcG9seV9ldmFsdWF0ZV9mbXB6KHpfZm1weiwgc2VsZi5fX3BvbHksIGFfZm1weikKKysgICAg ICAgICAgICAgICAgZm1wel9wb2x5X2V2YWx1YXRlX2ZtcHooel9mbXB6LCBzZWxmLl9wb2x5LCBh X2ZtcHopCisgICAgICAgICAgICAgICAgIGZtcHpfZ2V0X21weih6LnZhbHVlLCB6X2ZtcHopCisg ICAgICAgICAgICAgICAgIGZtcHpfY2xlYXIoYV9mbXB6KQorICAgICAgICAgICAgICAgICBmbXB6 X2NsZWFyKHpfZm1weikKK0BAIC00NjAsMTQgKzQ2MCwxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgYXJi X2EgPSA8UmVhbEJhbGw+IHgwCisgICAgICAgICAgICAgICAgIGFyYl96ID0gYXJiX2EuX25ldygp CisgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgIGFyYl9mbXB6X3Bv bHlfZXZhbHVhdGVfYXJiKGFyYl96LnZhbHVlLCBzZWxmLl9fcG9seSwgYXJiX2EudmFsdWUsIGFy Yl9hLl9wYXJlbnQuX3ByZWMpCisrICAgICAgICAgICAgICAgIGFyYl9mbXB6X3BvbHlfZXZhbHVh dGVfYXJiKGFyYl96LnZhbHVlLCBzZWxmLl9wb2x5LCBhcmJfYS52YWx1ZSwgYXJiX2EuX3BhcmVu dC5fcHJlYykKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJl dHVybiBhcmJfegorICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoeDAsIENvbXBsZXhCYWxsKToK KyAgICAgICAgICAgICAgICAgYWNiX2EgPSA8Q29tcGxleEJhbGw+IHgwCisgICAgICAgICAgICAg ICAgIGFjYl96ID0gYWNiX2EuX25ldygpCisgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAg ICAgICAgICAgICAgIGFyYl9mbXB6X3BvbHlfZXZhbHVhdGVfYWNiKGFjYl96LnZhbHVlLCBzZWxm Ll9fcG9seSwgYWNiX2EudmFsdWUsIGFjYl9hLl9wYXJlbnQuX3ByZWMpCisrICAgICAgICAgICAg ICAgIGFyYl9mbXB6X3BvbHlfZXZhbHVhdGVfYWNiKGFjYl96LnZhbHVlLCBzZWxmLl9wb2x5LCBh Y2JfYS52YWx1ZSwgYWNiX2EuX3BhcmVudC5fcHJlYykKKyAgICAgICAgICAgICAgICAgc2lnX29m ZigpCisgICAgICAgICAgICAgICAgIHJldHVybiBhY2JfegorIAorQEAgLTUxMCwxMCArNTEwLDEw IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwp OgorIAorICAgICAgICAgY2RlZiBmbXB6X3QgYworICAgICAgICAgZm1wel9pbml0KGMpCistICAg ICAgICBmbXB6X3BvbHlfZ2V0X2NvZWZmX2ZtcHooYywgc2VsZi5fX3BvbHksIGZtcHpfcG9seV9k ZWdyZWUoc2VsZi5fX3BvbHkpKQorKyAgICAgICAgZm1wel9wb2x5X2dldF9jb2VmZl9mbXB6KGMs IHNlbGYuX3BvbHksIGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkpCisgICAgICAgICBjZGVm IGludCBzaWduID0gZm1wel9zZ24oYykKKyAKKy0gICAgICAgIGZtcHpfcG9seV9jb250ZW50KGMs IHNlbGYuX19wb2x5KQorKyAgICAgICAgZm1wel9wb2x5X2NvbnRlbnQoYywgc2VsZi5fcG9seSkK KyAKKyAgICAgICAgIGNkZWYgSW50ZWdlciB6ID0gSW50ZWdlci5fX25ld19fKEludGVnZXIpCisg ICAgICAgICBmbXB6X2dldF9tcHooei52YWx1ZSwgYykKK0BAIC01NjEsNyArNTYxLDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgNSp4XjUgKyA0KnheNCArIDMqeF4zICsgMip4XjIgKyB4ICsgMQorICAgICAgICAg IiIiCisgICAgICAgICBjZGVmIEludGVnZXIgeiA9IEludGVnZXIuX19uZXdfXyhJbnRlZ2VyKQor LSAgICAgICAgZm1wel9wb2x5X2dldF9jb2VmZl9tcHooei52YWx1ZSwgc2VsZi5fX3BvbHksIG4p CisrICAgICAgICBmbXB6X3BvbHlfZ2V0X2NvZWZmX21weih6LnZhbHVlLCBzZWxmLl9wb2x5LCBu KQorICAgICAgICAgcmV0dXJuIHoKKyAKKyAgICAgZGVmIF9yZXByKHNlbGYsIG5hbWU9Tm9uZSwg YmludCBsYXRleD1GYWxzZSk6CitAQCAtNTgzLDggKzU4Myw4IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBsb25n IGkKKyAgICAgICAgIGNkZWYgSW50ZWdlciBjb2VmID0gSW50ZWdlci5fX25ld19fKEludGVnZXIp CisgICAgICAgICBjZGVmIGxpc3QgYWxsID0gW10KKy0gICAgICAgIGZvciBpIGZyb20gZm1wel9w b2x5X2RlZ3JlZShzZWxmLl9fcG9seSkgPj0gaSA+PSAwOgorLSAgICAgICAgICAgIGZtcHpfcG9s eV9nZXRfY29lZmZfbXB6KGNvZWYudmFsdWUsIHNlbGYuX19wb2x5LCBpKQorKyAgICAgICAgZm9y IGkgZnJvbSBmbXB6X3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID49IGkgPj0gMDoKKysgICAgICAg ICAgICBmbXB6X3BvbHlfZ2V0X2NvZWZmX21weihjb2VmLnZhbHVlLCBzZWxmLl9wb2x5LCBpKQor ICAgICAgICAgICAgIGlmIGNvZWY6CisgICAgICAgICAgICAgICAgIGlmIGNvZWYgPiAwOgorICAg ICAgICAgICAgICAgICAgICAgc2lnbl9zdHIgPSAnKycKK0BAIC02NDksOCArNjQ5LDggQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IHgg PSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHpfcG9seV9hZGQo eC5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50 ZWdlcl9kZW5zZV9mbGludD5yaWdodCkuX19wb2x5KQorKyAgICAgICAgZm1wel9wb2x5X2FkZCh4 Ll9wb2x5LCBzZWxmLl9wb2x5LAorKyAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdl cl9kZW5zZV9mbGludD5yaWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAg IHJldHVybiB4CisgCitAQCAtNjY5LDggKzY2OSw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBj ZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCB4ID0gc2VsZi5fbmV3KCkKKyAgICAg ICAgIHNpZ19vbigpCistICAgICAgICBmbXB6X3BvbHlfc3ViKHguX19wb2x5LCBzZWxmLl9fcG9s eSwKKy0gICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+cmln aHQpLl9fcG9seSkKKysgICAgICAgIGZtcHpfcG9seV9zdWIoeC5fcG9seSwgc2VsZi5fcG9seSwK KysgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+cmlnaHQp Ll9wb2x5KQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4geAorIAorQEAgLTY4 OCw3ICs2ODgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQ b2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQgeCA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAg ICAgZm1wel9wb2x5X25lZyh4Ll9fcG9seSwgc2VsZi5fX3BvbHkpCisrICAgICAgICBmbXB6X3Bv bHlfbmVnKHguX3BvbHksIHNlbGYuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAg IHJldHVybiB4CisgCitAQCAtNzU4LDcgKzc1OCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfZmxpbnQgcnIgPSBzZWxmLl9uZXcoKQorIAorICAgICAgICAgc2lnX29u KCkKKy0gICAgICAgIGZtcHpfcG9seV9kaXZyZW0ocXEuX19wb2x5LCByci5fX3BvbHksIHNlbGYu X19wb2x5LCByaWdodC5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfZGl2cmVtKHFxLl9wb2x5 LCByci5fcG9seSwgc2VsZi5fcG9seSwgcmlnaHQuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkK KyAgICAgICAgIHJldHVybiBxcSwgcnIKKyAKK0BAIC03NzYsNyArNzc2LDcgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAg ICAgc2FnZTogeC5pc196ZXJvKCkKKyAgICAgICAgICAgICBGYWxzZQorICAgICAgICAgIiIiCist ICAgICAgICByZXR1cm4gKGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xKQorKyAg ICAgICAgcmV0dXJuIChmbXB6X3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID09IC0xKQorIAorICAg ICBjcGRlZiBiaW50IGlzX29uZShzZWxmKSBleGNlcHQgLTE6CisgICAgICAgICAiIiIKK0BAIC03 OTIsNyArNzkyLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQo UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogeC5pc19vbmUoKQorICAgICAgICAgICAg IEZhbHNlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBmbXB6X3BvbHlfaXNfb25lKHNl bGYuX19wb2x5KQorKyAgICAgICAgcmV0dXJuIGZtcHpfcG9seV9pc19vbmUoc2VsZi5fcG9seSkK KyAKKyAgICAgZGVmIF9fYm9vbF9fKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtODA4LDcgKzgw OCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21p YWwpOgorICAgICAgICAgICAgIHNhZ2U6IGJvb2woeCkKKyAgICAgICAgICAgICBUcnVlCisgICAg ICAgICAiIiIKKy0gICAgICAgIHJldHVybiBub3QgKGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fX3Bv bHkpID09IC0xKQorKyAgICAgICAgcmV0dXJuIG5vdCAoZm1wel9wb2x5X2RlZ3JlZShzZWxmLl9w b2x5KSA9PSAtMSkKKyAKKyAgICAgQGNvZXJjZV9iaW5vcAorICAgICBkZWYgZ2NkKHNlbGYsIHJp Z2h0KToKK0BAIC04MzEsOCArODMxLDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAg ICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IHggPSBzZWxmLl9uZXcoKQor ICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHpfcG9seV9nY2QoeC5fX3BvbHksIHNlbGYu X19wb2x5LAorLSAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dD5yaWdodCkuX19wb2x5KQorKyAgICAgICAgZm1wel9wb2x5X2djZCh4Ll9wb2x5LCBzZWxmLl9w b2x5LAorKyAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD5y aWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCitA QCAtOTQxLDggKzk0MSw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2Zs aW50KFBvbHlub21pYWwpOgorICAgICAgICAgZm1wel9pbml0KHIpCisgCisgICAgICAgICBzaWdf b24oKQorLSAgICAgICAgZm1wel9wb2x5X3hnY2Qociwgc3MuX19wb2x5LCB0dC5fX3BvbHksIHNl bGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9m bGludD5yaWdodCkuX19wb2x5KQorKyAgICAgICAgZm1wel9wb2x5X3hnY2Qociwgc3MuX3BvbHks IHR0Ll9wb2x5LCBzZWxmLl9wb2x5LAorKyAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50 ZWdlcl9kZW5zZV9mbGludD5yaWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIGNkZWYgSW50ZWdlciByciA9IEludGVnZXIuX19uZXdfXyhJbnRlZ2VyKQorICAgICAgICAg Zm1wel9nZXRfbXB6KHJyLnZhbHVlLCByKQorQEAgLTk3MCw4ICs5NzAsOCBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIi IgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgeCA9IHNlbGYu X25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X211bCh4Ll9fcG9s eSwgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX2ZsaW50PnJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfbXVsKHguX3BvbHks IHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X2ZsaW50PnJpZ2h0KS5fcG9seSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJu IHgKKyAKK0BAIC0xMDAwLDggKzEwMDAsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdl cl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50IHggPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0g ICAgICAgIGZtcHpfcG9seV9tdWxsb3coeC5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAg ICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+cmlnaHQpLl9fcG9s eSwKKysgICAgICAgIGZtcHpfcG9seV9tdWxsb3coeC5fcG9seSwgc2VsZi5fcG9seSwKKysgICAg ICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PnJpZ2h0KS5f cG9seSwKKyAgICAgICAgICAgICAgICAgICAgIG4pCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIHJldHVybiB4CitAQCAtMTAyMCw3ICsxMDIwLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IHggPSBzZWxmLl9uZXcoKQorICAg ICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHpfcG9seV9zY2FsYXJfbXVsX21weih4Ll9fcG9s eSwgc2VsZi5fX3BvbHksICg8SW50ZWdlcj5yaWdodCkudmFsdWUpCisrICAgICAgICBmbXB6X3Bv bHlfc2NhbGFyX211bF9tcHooeC5fcG9seSwgc2VsZi5fcG9seSwgKDxJbnRlZ2VyPnJpZ2h0KS52 YWx1ZSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHgKKyAKK0BAIC0xMDM4 LDcgKzEwMzgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQ b2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQgeCA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAg ICAgZm1wel9wb2x5X3NjYWxhcl9tdWxfbXB6KHguX19wb2x5LCBzZWxmLl9fcG9seSwgKDxJbnRl Z2VyPnJpZ2h0KS52YWx1ZSkKKysgICAgICAgIGZtcHpfcG9seV9zY2FsYXJfbXVsX21weih4Ll9w b2x5LCBzZWxmLl9wb2x5LCAoPEludGVnZXI+cmlnaHQpLnZhbHVlKQorICAgICAgICAgc2lnX29m ZigpCisgICAgICAgICByZXR1cm4geAorIAorQEAgLTExMzIsNyArMTEzMiw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAg ICAgIG51bSA9IG4ubnVtZXJhdG9yKCkKKyAgICAgICAgICAgICBkZW4gPSBuLmRlbm9taW5hdG9y KCkKKyAKKy0gICAgICAgICAgICBpZiBmbXB6X3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAw OgorKyAgICAgICAgICAgIGlmIGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPT0gMDoKKyAg ICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZlswXS5udGhfcm9vdChkZW4p ICoqIG51bSkKKyAKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5udGhfcm9vdChkZW4pICoqIG51 bQorQEAgLTExNDIsNyArMTE0Miw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX2ZsaW50KFBvbHlub21pYWwpOgorIAorICAgICAgICAgICAgIGlmIHNlbGYuaXNfemVybygp OgorICAgICAgICAgICAgICAgICBpZiBubiA9PSAwOgorLSAgICAgICAgICAgICAgICAgICAgZm1w el9wb2x5X3NldF9jb2VmZl9zaShyZXMuX19wb2x5LCAwLCAxKQorKyAgICAgICAgICAgICAgICAg ICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShyZXMuX3BvbHksIDAsIDEpCisgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gcmVzCisgICAgICAgICAgICAgICAgIGVsaWYgbm4gPCAwOgorICAgICAg ICAgICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoIm5lZ2F0aXZlIGV4cG9uZW50 IGluIHBvd2VyIG9mIHplcm8iKQorQEAgLTExNTAsMTcgKzExNTAsMTcgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gcmVzCisgICAgICAgICAgICAgaWYgbm4gPCAwOgorICAgICAgICAgICAg ICAgICBzaWdfb24oKQorLSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfcG93KHJlcy5fX3BvbHks IHNlbGYuX19wb2x5LCAtbm4pCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9wb3cocmVzLl9w b2x5LCBzZWxmLl9wb2x5LCAtbm4pCisgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAg ICAgICAgICAgICByZXR1cm4gfnJlcworICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg ICAgIGlmIHNlbGYgaXMgc2VsZi5fcGFyZW50LmdlbigpOgorICAgICAgICAgICAgICAgICAgICAg c2lnX29uKCkKKy0gICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfdWkocmVz Ll9fcG9seSwgbm4sIDEpCisrICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZm X3VpKHJlcy5fcG9seSwgbm4sIDEpCisgICAgICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAg ICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAg ICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfcG93KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBu bikKKysgICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9wb3cocmVzLl9wb2x5LCBzZWxmLl9w b2x5LCBubikKKyAgICAgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgICAg ICByZXR1cm4gcmVzCisgCitAQCAtMTE4Nyw3ICsxMTg3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgCisgICAgICAgICBjZGVmIFBv bHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCByZXMKKyAgICAgICAgIHJlcyA9IHNlbGYuX25l dygpCistICAgICAgICBmbXB6X3BvbHlfcG93X3RydW5jKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5 LCBuLCBwcmVjKQorKyAgICAgICAgZm1wel9wb2x5X3Bvd190cnVuYyhyZXMuX3BvbHksIHNlbGYu X3BvbHksIG4sIHByZWMpCisgICAgICAgICByZXR1cm4gcmVzCisgCisgICAgIGRlZiBfX2Zsb29y ZGl2X18oUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IHNlbGYsIHJpZ2h0KToKK0BAIC0x MjI2LDE0ICsxMjI2LDE0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2Zs aW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg ICAgICAgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgICAgICAgICAgICAgIHNpZ19vbigpCist ICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2NhbGFyX2ZkaXZfbXB6KHJlcy5fX3BvbHks IHNlbGYuX19wb2x5LAorKyAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NjYWxhcl9mZGl2 X21weihyZXMuX3BvbHksIHNlbGYuX3BvbHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICg8SW50ZWdlcj4gcmlnaHQpLnZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgc2lnX29mZigp CisgICAgICAgICAgICAgICAgIHJldHVybiByZXMKKyAgICAgICAgICAgICBlbGlmIHJpZ2h0IGlu IFpaOgorICAgICAgICAgICAgICAgICByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgICAgICAg ICBzaWdfb24oKQorLSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2NhbGFyX2ZkaXZfbXB6KHJl cy5fX3BvbHksIHNlbGYuX19wb2x5LAorKyAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2NhbGFy X2ZkaXZfbXB6KHJlcy5fcG9seSwgc2VsZi5fcG9seSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAoPEludGVnZXI+WloocmlnaHQpKS52YWx1ZSkKKyAgICAgICAgICAgICAgICAgc2lnX29mZigp CisgICAgICAgICAgICAgICAgIHJldHVybiByZXMKK0BAIC0xMjQ4LDcgKzEyNDgsNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgICAgICBz aWdfb24oKQorLSAgICAgICAgICAgIGZtcHpfcG9seV9kaXYocmVzLl9fcG9seSwgc2VsZi5fX3Bv bHksIF9yaWdodC5fX3BvbHkpCisrICAgICAgICAgICAgZm1wel9wb2x5X2RpdihyZXMuX3BvbHks IHNlbGYuX3BvbHksIF9yaWdodC5fcG9seSkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTI5Myw5ICsxMjkzLDkgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBw cmVjIDw9IDA6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGhlIHByZWNpc2lvbiBt dXN0IGJlIHBvc2l0aXZlLCBnb3Qge30iLmZvcm1hdChwcmVjKSkKKyAKKy0gICAgICAgIGlmIGZt cHpfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xOgorKyAgICAgICAgaWYgZm1wel9wb2x5 X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y KCJjb25zdGFudCB0ZXJtIGlzIHplcm8iKQorLSAgICAgICAgY2RlZiBmbXB6X3QgYyA9IGZtcHpf cG9seV9nZXRfY29lZmZfcHRyKHNlbGYuX19wb2x5LCAwKQorKyAgICAgICAgY2RlZiBmbXB6X3Qg YyA9IGZtcHpfcG9seV9nZXRfY29lZmZfcHRyKHNlbGYuX3BvbHksIDApCisgICAgICAgICBpZiBm bXB6X2NtcF9zaShjLCAxKSBhbmQgZm1wel9jbXBfc2koYywgLTEpOgorICAgICAgICAgICAgIHJh aXNlIFZhbHVlRXJyb3IoImNvbnN0YW50IHRlcm0ge30gaXMgbm90IGEgdW5pdCIuZm9ybWF0KHNl bGZbMF0pKQorIAorQEAgLTEzMDMsNyArMTMwMyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgaWYgcHJlYyA8PSAwOgor ICAgICAgICAgICAgIHJldHVybiByZXMKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXB6 X3BvbHlfaW52X3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAg IGZtcHpfcG9seV9pbnZfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAgICAg ICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTEzMzEsMTYgKzEzMzEs MTYgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlh bCk6CisgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigibiBtdXN0IGJlID49IDAiKQorICAg ICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgaW50KToKKyAgICAgICAgICAgICBzaWdfb24oKQor LSAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2koc2VsZi5fX3BvbHksIG4sIHZhbHVl KQorKyAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2koc2VsZi5fcG9seSwgbiwgdmFs dWUpCisgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UodmFs dWUsIEludGVnZXIpOgorICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgZm1wel9w b2x5X3NldF9jb2VmZl9tcHooc2VsZi5fX3BvbHksIG4sICg8SW50ZWdlcj52YWx1ZSkudmFsdWUp CisrICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9tcHooc2VsZi5fcG9seSwgbiwgKDxJ bnRlZ2VyPnZhbHVlKS52YWx1ZSkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgdmFsdWUgPSBJbnRlZ2VyKHZhbHVlKQorICAgICAgICAgICAgIHNp Z19vbigpCistICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9tcHooc2VsZi5fX3BvbHks IG4sICg8SW50ZWdlcj52YWx1ZSkudmFsdWUpCisrICAgICAgICAgICAgZm1wel9wb2x5X3NldF9j b2VmZl9tcHooc2VsZi5fcG9seSwgbiwgKDxJbnRlZ2VyPnZhbHVlKS52YWx1ZSkKKyAgICAgICAg ICAgICBzaWdfb2ZmKCkKKyAKKyAgICAgZGVmIHJlYWxfcm9vdF9pbnRlcnZhbHMoc2VsZik6CitA QCAtMTM2NCw3ICsxMzY0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf ZmxpbnQoUG9seW5vbWlhbCk6CisgCisgIyMgICAgIGRlZiBfX2NvcHlfXyhzZWxmKToKKyAjIyAg ICAgICAgIGYgPSBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2Uoc2VsZi5wYXJlbnQoKSkKKy0jIyAg ICAgICAgIGYuX19wb2x5ID0gc2VsZi5fX3BvbHkuY29weSgpCisrIyMgICAgICAgICBmLl9wb2x5 ID0gc2VsZi5fcG9seS5jb3B5KCkKKyAjIyAgICAgICAgIHJldHVybiBmCisgCisgCitAQCAtMTM5 MSw3ICsxMzkxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQo UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogdHlwZSh4LmRlZ3JlZSgpKQorICAgICAg ICAgICAgIDxjbGFzcyAnc2FnZS5yaW5ncy5pbnRlZ2VyLkludGVnZXInPgorICAgICAgICAgIiIi CistICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fX3Bv bHkpKQorKyAgICAgICAgcmV0dXJuIHNtYWxsSW50ZWdlcihmbXB6X3BvbHlfZGVncmVlKHNlbGYu X3BvbHkpKQorIAorICAgICBkZWYgcHNldWRvX2RpdnJlbShzZWxmLCBCKToKKyAgICAgICAgIHIi IiIKK0BAIC0xNDI2LDcgKzE0MjYsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5 bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgUSA9IHNlbGYuX25ldygpLCBSID0gc2VsZi5fbmV3 KCksIF9CID0gQgorICAgICAgICAgY2RlZiB1bG9uZyBkCistICAgICAgICBmbXB6X3BvbHlfcHNl dWRvX2RpdnJlbShRLl9fcG9seSwgUi5fX3BvbHksICZkLCBzZWxmLl9fcG9seSwgX0IuX19wb2x5 KQorKyAgICAgICAgZm1wel9wb2x5X3BzZXVkb19kaXZyZW0oUS5fcG9seSwgUi5fcG9seSwgJmQs IHNlbGYuX3BvbHksIF9CLl9wb2x5KQorICAgICAgICAgcmV0dXJuIFEsIFIsIEludGVnZXIoZCkK KyAKKyAgICAgZGVmIGRpc2NyaW1pbmFudChzZWxmLCBwcm9vZj1UcnVlKToKK0BAIC0xNDYwLDcg KzE0NjAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5 bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBaWlhfYyBudGxfcG9seQorICAg ICAgICAgY2RlZiBaWl9jKiB0ZW1wCistICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChudGxfcG9s eSwgc2VsZi5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChudGxfcG9seSwgc2Vs Zi5fcG9seSkKKyAKKyAgICAgICAgIHRlbXAgPSBaWlhfZGlzY3JpbWluYW50KCZudGxfcG9seSwg cHJvb2YpCisgICAgICAgICBjZGVmIEludGVnZXIgeCA9IEludGVnZXIuX19uZXdfXyhJbnRlZ2Vy KQorQEAgLTE1MzEsMTIgKzE1MzEsMTIgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgCisgICAgICAgICAgICAgIyB0aGUgcHJpbWl0aXZl IHBhcnQgcmV0dXJuZWQgYnkgRkxJTlQgaGFzIHBvc2l0aXZlIGxlYWRpbmcKKyAgICAgICAgICAg ICAjIGNvZWZmaWNpZW50CistICAgICAgICAgICAgZm1wel9wb2x5X3ByaW1pdGl2ZV9wYXJ0KHBw YXJ0LCBzZWxmLl9fcG9seSkKKysgICAgICAgICAgICBmbXB6X3BvbHlfcHJpbWl0aXZlX3BhcnQo cHBhcnQsIHNlbGYuX3BvbHkpCisgCisgICAgICAgICAgICAgZm1wel9wb2x5X2dldF9aWlgobnRs X3BvbHksIHBwYXJ0KQorICAgICAgICAgICAgIGZtcHpfcG9seV9jbGVhcihwcGFydCkKKyAgICAg ICAgIGVsc2U6CistICAgICAgICAgICAgZm1wel9wb2x5X2dldF9aWlgobnRsX3BvbHksIHNlbGYu X19wb2x5KQorKyAgICAgICAgICAgIGZtcHpfcG9seV9nZXRfWlpYKG50bF9wb2x5LCBzZWxmLl9w b2x5KQorIAorICAgICAgICAgIyBpbnB1dCBpcyBwcmltaXRpdmUsIHdpdGggcG9zaXRpdmUgbGVh ZGluZyBjb2VmZmljaWVudAorICAgICAgICAgWlpYX3NxdWFyZWZyZWVfZGVjb21wb3NpdGlvbigm diwgJmUsICZuLCAmbnRsX3BvbHkpCitAQCAtMTU0NCw3ICsxNTQ0LDcgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBGID0g W10KKyAgICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwgbjoKKyAgICAgICAgICAgICBmYWMgPSBz ZWxmLl9uZXcoKQorLSAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKGZhYy5fX3BvbHksIHZb aV1bMF0pCisrICAgICAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoZmFjLl9wb2x5LCB2W2ldWzBd KQorICAgICAgICAgICAgIEYuYXBwZW5kKCAoZmFjLGVbaV0pICkKKyAgICAgICAgICAgICBkZWwg dltpXQorICAgICAgICAgc2lnX2ZyZWUodikKK0BAIC0xNTgyLDkgKzE1ODIsOSBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAg IGNkZWYgWlpfYyBjb250ZW50CisgICAgICAgICBjZGVmIHZlY19wYWlyX1paWF9sb25nX2MgZmFj dG9ycworICAgICAgICAgY2RlZiBsb25nIGkKKy0gICAgICAgIGNkZWYgaW50IHNpZ19tZSA9IGZt cHpfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpCisrICAgICAgICBjZGVmIGludCBzaWdfbWUgPSBm bXB6X3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpCisgCistICAgICAgICBmbXB6X3BvbHlfZ2V0X1pa WChudGxfcG9seSwgc2VsZi5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChudGxf cG9seSwgc2VsZi5fcG9seSkKKyAKKyAgICAgICAgIGlmIHNpZ19tZSA+IDEwOgorICAgICAgICAg ICAgIHNpZ19vbigpCitAQCAtMTYwMywxMyArMTYwMywxMyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBmYWNfcHkg PSBzZWxmLl9uZXcoKQorICAgICAgICAgICAgIGZtcHpfaW5pdCh0Y29udGVudCkKKyAgICAgICAg ICAgICBmbXB6X3NldF9aWih0Y29udGVudCwgY29udGVudCkKKy0gICAgICAgICAgICBmbXB6X3Bv bHlfc2V0X2NvZWZmX2ZtcHooZmFjX3B5Ll9fcG9seSwgMCwgdGNvbnRlbnQpCisrICAgICAgICAg ICAgZm1wel9wb2x5X3NldF9jb2VmZl9mbXB6KGZhY19weS5fcG9seSwgMCwgdGNvbnRlbnQpCisg ICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoIChmYWNfcHksMSkgKQorICAgICAgICAgICAgIGZt cHpfY2xlYXIodGNvbnRlbnQpCisgCisgICAgICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8IGZhY3Rv cnMubGVuZ3RoKCk6CisgICAgICAgICAgICAgZmFjX3B5ID0gc2VsZi5fbmV3KCkKKy0gICAgICAg ICAgICBmbXB6X3BvbHlfc2V0X1paWChmYWNfcHkuX19wb2x5LCBmYWN0b3JzLlJhd0dldChpKS5h KQorKyAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKGZhY19weS5fcG9seSwgZmFjdG9ycy5S YXdHZXQoaSkuYSkKKyAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZCggKGZhY19weSxmYWN0b3Jz LlJhd0dldChpKS5iKSApCisgICAgICAgICByZXR1cm4gRmFjdG9yaXphdGlvbihyZXN1bHRzLCB1 bml0ID0gdW5pdCkKKyAKK0BAIC0xNjM5LDcgKzE2MzksNyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAoLTEpICog MiAqIDMgKiA1ICogeAorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIGludCBpCistICAgICAg ICBjZGVmIGxvbmcgZGVnID0gZm1wel9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkKKysgICAgICAg IGNkZWYgbG9uZyBkZWcgPSBmbXB6X3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpCisgICAgICAgICAj IGl0IGFwcGVhcnMgdGhhdCBwYXJpIGhhcyBhIHdpbmRvdyBmcm9tIGFib3V0IGRlZ3JlZXMgMzAg YW5kIDMwMAorICAgICAgICAgIyBpbiB3aGljaCBpdCBiZWF0cyBOVEwuCisgICAgICAgICBjID0g c2VsZi5jb250ZW50KCkKK0BAIC0xNzgzLDggKzE3ODMsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgSW50ZWdl ciB4ID0gSW50ZWdlci5fX25ld19fKEludGVnZXIpCisgCisgICAgICAgICBzaWdfb24oKQorLSAg ICAgICAgZm1wel9wb2x5X3Jlc3VsdGFudChyZXMsIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAg ICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD5vdGhlcikuX19wb2x5KQorKyAg ICAgICAgZm1wel9wb2x5X3Jlc3VsdGFudChyZXMsIHNlbGYuX3BvbHksCisrICAgICAgICAgICAg ICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50Pm90aGVyKS5fcG9seSkKKyAgICAg ICAgIHNpZ19vZmYoKQorICAgICAgICAgZm1wel9nZXRfbXB6KHgudmFsdWUsIHJlcykKKyAgICAg ICAgIGZtcHpfY2xlYXIocmVzKQorQEAgLTE4MzAsMTAgKzE4MzAsMTAgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg aWYgZCAhPSBkZWdyZWU6CisgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImRlZ3Jl ZSBhcmd1bWVudCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIsIGdvdCAlcyIgJSBkZWdy ZWUpCisgICAgICAgICAgICAgIyBGTElOVCBleHBlY3RzIGxlbmd0aAorLSAgICAgICAgICAgIGZt cHpfcG9seV9yZXZlcnNlKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBkKzEpCisrICAgICAgICAg ICAgZm1wel9wb2x5X3JldmVyc2UocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBkKzEpCisgICAgICAg ICBlbHNlOgorLSAgICAgICAgICAgIGZtcHpfcG9seV9yZXZlcnNlKHJlcy5fX3BvbHksIHNlbGYu X19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X2xlbmd0aChzZWxmLl9fcG9s eSkpCisrICAgICAgICAgICAgZm1wel9wb2x5X3JldmVyc2UocmVzLl9wb2x5LCBzZWxmLl9wb2x5 LAorKyAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X2xlbmd0aChzZWxmLl9wb2x5KSkKKyAg ICAgICAgIHJldHVybiByZXMKKyAKKyAgICAgZGVmIHJldmVydF9zZXJpZXMoc2VsZiwgbik6CitA QCAtMTg2Nyw3ICsxODY3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf ZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigic2VsZiBt dXN0IGhhdmUgY29uc3RhbnQgY29lZmZpY2llbnQgMCBhbmQgYSB1bml0IGZvciBjb2VmZmljaWVu dCB7fV4xIi5mb3JtYXQoc2VsZi5wYXJlbnQoKS5nZW4oKSkpCisgCisgICAgICAgICBzaWdfb24o KQorLSAgICAgICAgZm1wel9wb2x5X3JldmVydF9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3Bv bHksIG0pCisrICAgICAgICBmbXB6X3BvbHlfcmV2ZXJ0X3NlcmllcyhyZXMuX3BvbHksIHNlbGYu X3BvbHksIG0pCisgICAgICAgICBzaWdfb2ZmKCkKKyAKKyAgICAgICAgIHJldHVybiByZXMKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9udGwucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfbnRsLnB4ZAoraW5kZXggYTdjMzgwYjQ5YTIuLmZjZDkwN2UxYWJlIDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf bnRsLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfbnRsLnB4ZAorQEAgLTIsNiArMiw2IEBAIGZyb20gc2FnZS5saWJzLm50bC50eXBl cyBjaW1wb3J0IFpaWF9jCisgZnJvbSBzYWdlLnJpbmdzLnBvbHlub21pYWwucG9seW5vbWlhbF9l bGVtZW50IGNpbXBvcnQgUG9seW5vbWlhbAorIAorIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKy0gICAgY2RlZiBaWlhfYyBfX3BvbHkKKysgICAg Y2RlZiBaWlhfYyBfcG9seQorIAorICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9u dGwgX25ldyhzZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwucHl4CitpbmRleCBlN2I3MDhiYmM1MS4uODBh MTcyNmJiNGUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9udGwucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwucHl4CitAQCAtMTcyLDcgKzE3Miw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAg ICAgIGlmIGlzaW5zdGFuY2UoeCwgUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgaWYgeC5wYXJl bnQoKSBpcyBzZWxmLnBhcmVudCgpOgorICAgICAgICAgICAgICAgICAjIGNvcHkgd2l0aCBOVEwg YXNzaWdubWVudCBvcGVyYXRvcgorLSAgICAgICAgICAgICAgICBzZWxmLl9fcG9seSA9ICg8UG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD54KS5fX3BvbHkKKysgICAgICAgICAgICAgICAgc2Vs Zi5fcG9seSA9ICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD54KS5fcG9seQorICAgICAg ICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAj IGNvZXJjZSBjb2VmZmljaWVudHMgaW50byBTYWdlIGludGVnZXJzCitAQCAtMTkxLDE3ICsxOTEs MTcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwp OgorICAgICAgICAgICAgICAgICAgICAgZGVncmVlID0gaQorICAgICAgICAgICAgIGlmIGRlZ3Jl ZSA+PSBOVExfT1ZGQk5EOgorICAgICAgICAgICAgICAgICByYWlzZSBPdmVyZmxvd0Vycm9yKCJE ZW5zZSBOVEwgaW50ZWdlciBwb2x5bm9taWFscyBoYXZlIGEgbWF4aW11bSBkZWdyZWUgb2YgJXMi ICUgKE5UTF9PVkZCTkQtMSkpCistICAgICAgICAgICAgWlpYX1NldENvZWZmX2xvbmcoc2VsZi5f X3BvbHksIGRlZ3JlZSwgMSkKKysgICAgICAgICAgICBaWlhfU2V0Q29lZmZfbG9uZyhzZWxmLl9w b2x5LCBkZWdyZWUsIDEpCisgICAgICAgICAgICAgIyBub3cgZmlsbCB0aGVtIGluCisgICAgICAg ICAgICAgZm9yIGlpLCBhIGluIHg6CisgICAgICAgICAgICAgICAgIGkgPSBpaVswXSBpZiB0eXBl KGlpKSBpcyB0dXBsZSBlbHNlIGlpCisgICAgICAgICAgICAgICAgIGlmIHR5cGUoYSkgaXMgaW50 OgorLSAgICAgICAgICAgICAgICAgICAgWlpYX1NldENvZWZmX2xvbmcoc2VsZi5fX3BvbHksIGks IGEpCisrICAgICAgICAgICAgICAgICAgICBaWlhfU2V0Q29lZmZfbG9uZyhzZWxmLl9wb2x5LCBp LCBhKQorICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgaWYgbm90 IGlzaW5zdGFuY2UoYSwgSW50ZWdlcik6CisgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IFpa KGEpCisgICAgICAgICAgICAgICAgICAgICBtcHpfdG9fWlooJnksICg8SW50ZWdlcj5hKS52YWx1 ZSkKKy0gICAgICAgICAgICAgICAgICAgIFpaWF9TZXRDb2VmZihzZWxmLl9fcG9seSwgaSwgeSkK KysgICAgICAgICAgICAgICAgICAgIFpaWF9TZXRDb2VmZihzZWxmLl9wb2x5LCBpLCB5KQorICAg ICAgICAgICAgIHJldHVybgorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIHBhcmlfZ2Vu KToKK0BAIC0yMTAsMTQgKzIxMCwxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9udGwoUG9seW5vbWlhbCk6CisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgbnRs X1paWCk6ICAgICMgY29lcmNpb24gZnJvbSBudGwucHl4IG9iamVjdAorICAgICAgICAgICAgICMg Y29weSB3aXRoIE5UTCBhc3NpZ25tZW50IG9wZXJhdG9yCistICAgICAgICAgICAgc2VsZi5fX3Bv bHkgPSAoPG50bF9aWlg+eCkueAorKyAgICAgICAgICAgIHNlbGYuX3BvbHkgPSAoPG50bF9aWlg+ eCkueAorICAgICAgICAgICAgIHJldHVybgorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgs IEZyYWN0aW9uRmllbGRFbGVtZW50KSBhbmQgXAorICAgICAgICAgICAgICAgICAgaXNpbnN0YW5j ZSh4Lm51bWVyYXRvcigpLCBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKToKKyAgICAgICAg ICAgICBpZiB4LmRlbm9taW5hdG9yKCkgPT0gMToKKyAgICAgICAgICAgICAgICAgIyBmcmFjdGlv biBvZiB0aGUgZm9ybSBmKHgpLzEKKy0gICAgICAgICAgICAgICAgc2VsZi5fX3BvbHkgPSAoPFBv bHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+eC5udW1lcmF0b3IoKSkuX19wb2x5CisrICAgICAg ICAgICAgICAgIHNlbGYuX3BvbHkgPSAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+eC5u dW1lcmF0b3IoKSkuX3BvbHkKKyAgICAgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBl bGlmIG5vdCBpc2luc3RhbmNlKHgsIChsaXN0LCB0dXBsZSkpOgorQEAgLTIyOSwxMiArMjI5LDEy IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToK KyAgICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwgbGVuKHgpOgorICAgICAgICAgICAgIGEgPSB4 W2ldCisgICAgICAgICAgICAgaWYgdHlwZShhKSBpcyBpbnQ6CistICAgICAgICAgICAgICAgIFpa WF9TZXRDb2VmZl9sb25nKHNlbGYuX19wb2x5LCBpLCBhKQorKyAgICAgICAgICAgICAgICBaWlhf U2V0Q29lZmZfbG9uZyhzZWxmLl9wb2x5LCBpLCBhKQorICAgICAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGEsIEludGVnZXIpOgorICAgICAgICAgICAg ICAgICAgICAgYSA9IFpaKGEpCisgICAgICAgICAgICAgICAgIG1wel90b19aWigmeSwgKDxJbnRl Z2VyPmEpLnZhbHVlKQorLSAgICAgICAgICAgICAgICBaWlhfU2V0Q29lZmYoc2VsZi5fX3BvbHks IGksIHkpCisrICAgICAgICAgICAgICAgIFpaWF9TZXRDb2VmZihzZWxmLl9wb2x5LCBpLCB5KQor IAorIAorICAgICBkZWYgY29udGVudChzZWxmKToKK0BAIC0yNTksNyArMjU5LDcgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAg IiIiCisgICAgICAgICBjZGVmIFpaX2MgeQorICAgICAgICAgY2RlZiBJbnRlZ2VyIHogPSBJbnRl Z2VyLl9fbmV3X18oSW50ZWdlcikKKy0gICAgICAgIFpaWF9jb250ZW50KHksIHNlbGYuX19wb2x5 KQorKyAgICAgICAgWlpYX2NvbnRlbnQoeSwgc2VsZi5fcG9seSkKKyAgICAgICAgIFpaX3RvX21w eih6LnZhbHVlLCAmeSkKKyAgICAgICAgIHJldHVybiB6CisgCitAQCAtMjg4LDcgKzI4OCw3IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAg ICAgICAgICIiIgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHJlcyA9IGEuX25ldygpCisgICAg ICAgICBzaWdfb24oKQorLSAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmcihyZXMudmFsdWUsIHNl bGYuX19wb2x5LCBhLnZhbHVlKQorKyAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmcihyZXMudmFs dWUsIHNlbGYuX3BvbHksIGEudmFsdWUpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJl dHVybiByZXMKKyAKK0BAIC0zMTgsNyArMzE4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2lu dGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVm IFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudCByZXMgPSBhLl9uZXcoKQorICAgICAgICAgc2lnX29u KCkKKy0gICAgICAgIFpaWF9ldmFsdWF0aW9uX21wZmkocmVzLnZhbHVlLCBzZWxmLl9fcG9seSwg YS52YWx1ZSkKKysgICAgICAgIFpaWF9ldmFsdWF0aW9uX21wZmkocmVzLnZhbHVlLCBzZWxmLl9w b2x5LCBhLnZhbHVlKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisg CitAQCAtMzYzLDcgKzM2Myw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X250bChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICA1KnheNSArIDQqeF40ICsgMyp4XjMgKyAy KnheMiArIHggKyAxCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgSW50ZWdlciB6ID0gSW50 ZWdlci5fX25ld19fKEludGVnZXIpCistICAgICAgICBaWl90b19tcHooei52YWx1ZSwgJnNlbGYu X19wb2x5LnJlcC5lbHRzKClbbl0pCisrICAgICAgICBaWl90b19tcHooei52YWx1ZSwgJnNlbGYu X3BvbHkucmVwLmVsdHMoKVtuXSkKKyAgICAgICAgIHJldHVybiB6CisgCisgICAgIGRlZiBfcmVw cihzZWxmLCBuYW1lPU5vbmUsIGJpbnQgbGF0ZXg9RmFsc2UpOgorQEAgLTM4MCwxNSArMzgwLDE1 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToK KyAgICAgICAgICAgICBuYW1lID0gc2VsZi5wYXJlbnQoKS52YXJpYWJsZV9uYW1lKCkKKyAgICAg ICAgIGNkZWYgbG9uZyBpCisgICAgICAgICBjZGVmIGxpc3QgYWxsID0gW10KKy0gICAgICAgIGZv ciBpIGZyb20gWlpYX2RlZyhzZWxmLl9fcG9seSkgPj0gaSA+PSAwOgorLSAgICAgICAgICAgIHNp Z24gPSBaWl9zaWduKFpaWF9jb2VmZihzZWxmLl9fcG9seSwgaSkpCisrICAgICAgICBmb3IgaSBm cm9tIFpaWF9kZWcoc2VsZi5fcG9seSkgPj0gaSA+PSAwOgorKyAgICAgICAgICAgIHNpZ24gPSBa Wl9zaWduKFpaWF9jb2VmZihzZWxmLl9wb2x5LCBpKSkKKyAgICAgICAgICAgICBpZiBzaWduOgor ICAgICAgICAgICAgICAgICBpZiBzaWduID4gMDoKKyAgICAgICAgICAgICAgICAgICAgIHNpZ25f c3RyID0gJysnCistICAgICAgICAgICAgICAgICAgICBjb2VmZl9zdHIgPSBjY3JlcHIoc2VsZi5f X3BvbHkucmVwLmVsdHMoKVtpXSkKKysgICAgICAgICAgICAgICAgICAgIGNvZWZmX3N0ciA9IGNj cmVwcihzZWxmLl9wb2x5LnJlcC5lbHRzKClbaV0pCisgICAgICAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgICAgICBzaWduX3N0ciA9ICctJworLSAgICAgICAgICAgICAgICAgICAg Y29lZmZfc3RyID0gY2NyZXByKHNlbGYuX19wb2x5LnJlcC5lbHRzKClbaV0pWzE6XQorKyAgICAg ICAgICAgICAgICAgICAgY29lZmZfc3RyID0gY2NyZXByKHNlbGYuX3BvbHkucmVwLmVsdHMoKVtp XSlbMTpdCisgICAgICAgICAgICAgICAgIGlmIGkgPiAwOgorICAgICAgICAgICAgICAgICAgICAg aWYgY29lZmZfc3RyID09ICcxJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb2VmZl9zdHIg PSAnJworQEAgLTQ0MSw4ICs0NDEsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgLTMqeF4yICsgMip4ICsgNworICAg ICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgeCA9 IHNlbGYuX25ldygpCistICAgICAgICBaWlhfYWRkKHguX19wb2x5LCBzZWxmLl9fcG9seSwKKy0g ICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPnJpZ2h0KS5fX3Bv bHkpCisrICAgICAgICBaWlhfYWRkKHguX3BvbHksIHNlbGYuX3BvbHksCisrICAgICAgICAgICAg ICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD5yaWdodCkuX3BvbHkpCisgICAgICAg ICByZXR1cm4geAorIAorIAorQEAgLTQ1OSw4ICs0NTksOCBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgMyp4XjIgKyAy KnggLSA1CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX250bCB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIFpaWF9zdWIoeC5fX3BvbHksIHNlbGYu X19wb2x5LAorLSAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+ cmlnaHQpLl9fcG9seSkKKysgICAgICAgIFpaWF9zdWIoeC5fcG9seSwgc2VsZi5fcG9seSwKKysg ICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPnJpZ2h0KS5fcG9s eSkKKyAgICAgICAgIHJldHVybiB4CisgCisgCitAQCAtNDc2LDcgKzQ3Niw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgICAg ICAtMip4ICsgMQorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdl cl9kZW5zZV9udGwgeCA9IHNlbGYuX25ldygpCistICAgICAgICBaWlhfbmVnYXRlKHguX19wb2x5 LCBzZWxmLl9fcG9seSkKKysgICAgICAgIFpaWF9uZWdhdGUoeC5fcG9seSwgc2VsZi5fcG9seSkK KyAgICAgICAgIHJldHVybiB4CisgCisgCitAQCAtNTMzLDEwICs1MzMsMTAgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgIiIi CisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgX3JpZ2h0ID0gPFBv bHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+IHJpZ2h0CisgCistICAgICAgICBpZiBaWlhfSXNa ZXJvKF9yaWdodC5fX3BvbHkpOgorKyAgICAgICAgaWYgWlpYX0lzWmVybyhfcmlnaHQuX3BvbHkp OgorICAgICAgICAgICAgIHJhaXNlIEFyaXRobWV0aWNFcnJvcigiZGl2aXNpb24gYnkgemVybyBw b2x5bm9taWFsIikKKyAKKy0gICAgICAgIGlmIFpaWF9Jc1plcm8oc2VsZi5fX3BvbHkpOgorKyAg ICAgICAgaWYgWlpYX0lzWmVybyhzZWxmLl9wb2x5KToKKyAgICAgICAgICAgICByZXR1cm4gc2Vs Ziwgc2VsZgorIAorICAgICAgICAgY2RlZiBaWlhfYyAqcQorQEAgLTU0NSwxOSArNTQ1LDE5IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAg ICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCByciA9IHNlbGYuX25ldygp CisgICAgICAgICBjZGVmIGludCBkaXZpc2libGUKKyAKKy0gICAgICAgIGlmIFpaX0lzT25lKFpa WF9MZWFkQ29lZmYoX3JpZ2h0Ll9fcG9seSkpOgorKyAgICAgICAgaWYgWlpfSXNPbmUoWlpYX0xl YWRDb2VmZihfcmlnaHQuX3BvbHkpKToKKyAgICAgICAgICAgICAjIGRpdmlzb3IgaXMgbW9uaWMu IEp1c3QgZG8gdGhlIGRpdmlzaW9uIGFuZCByZW1haW5kZXIKKy0gICAgICAgICAgICBaWlhfcXVv X3JlbSgmc2VsZi5fX3BvbHksICZfcmlnaHQuX19wb2x5LCAmciwgJnEpCistICAgICAgICAgICAg WlpYX3N3YXAocXEuX19wb2x5LCBxWzBdKQorLSAgICAgICAgICAgIFpaWF9zd2FwKHJyLl9fcG9s eSwgclswXSkKKysgICAgICAgICAgICBaWlhfcXVvX3JlbSgmc2VsZi5fcG9seSwgJl9yaWdodC5f cG9seSwgJnIsICZxKQorKyAgICAgICAgICAgIFpaWF9zd2FwKHFxLl9wb2x5LCBxWzBdKQorKyAg ICAgICAgICAgIFpaWF9zd2FwKHJyLl9wb2x5LCByWzBdKQorICAgICAgICAgICAgIGRlbCBxCisg ICAgICAgICAgICAgZGVsIHIKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgIyBOb24tbW9u aWMgZGl2aXNvci4gQ2hlY2sgd2hldGhlciBpdCBkaXZpZGVzIGV4YWN0bHkuCistICAgICAgICAg ICAgcSA9IFpaWF9kaXYoJnNlbGYuX19wb2x5LCAmX3JpZ2h0Ll9fcG9seSwgJmRpdmlzaWJsZSkK KysgICAgICAgICAgICBxID0gWlpYX2Rpdigmc2VsZi5fcG9seSwgJl9yaWdodC5fcG9seSwgJmRp dmlzaWJsZSkKKyAgICAgICAgICAgICBpZiBkaXZpc2libGU6CisgICAgICAgICAgICAgICAgICMg ZXhhY3RseSBkaXZpc2libGUKKy0gICAgICAgICAgICAgICAgWlpYX3N3YXAocVswXSwgcXEuX19w b2x5KQorKyAgICAgICAgICAgICAgICBaWlhfc3dhcChxWzBdLCBxcS5fcG9seSkKKyAgICAgICAg ICAgICAgICAgZGVsIHEKKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAjIGRp dmlzaW9uIGZhaWxlZDogY2xlYW4gdXAgYW5kIHJhaXNlIGV4Y2VwdGlvbgorQEAgLTU4NCw4ICs1 ODQsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlh bCk6CisgICAgICAgICAiIiIKKyAgICAgICAgICMgdG9kbzogd2UncmUgZG9pbmcgYW4gdW5uZWNl c3NhcnkgY29weSBoZXJlCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9u dGwgeCA9IHNlbGYuX25ldygpCistICAgICAgICBjZGVmIFpaWF9jKiB0ZW1wID0gWlpYX2djZCgm c2VsZi5fX3BvbHksICYoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+cmlnaHQpLl9fcG9s eSkKKy0gICAgICAgIHguX19wb2x5ID0gdGVtcFswXQorKyAgICAgICAgY2RlZiBaWlhfYyogdGVt cCA9IFpaWF9nY2QoJnNlbGYuX3BvbHksICYoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+ cmlnaHQpLl9wb2x5KQorKyAgICAgICAgeC5fcG9seSA9IHRlbXBbMF0KKyAgICAgICAgIGRlbCB0 ZW1wCisgICAgICAgICByZXR1cm4geAorIAorQEAgLTY1OCwxMyArNjU4LDEzIEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgIGNk ZWYgWlpYX2MgKnQKKyAgICAgICAgIGNkZWYgWlpfYyAqcgorIAorLSAgICAgICAgWlpYX3hnY2Qo JnNlbGYuX19wb2x5LCAmKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPnJpZ2h0KS5fX3Bv bHksICZyLCAmcywgJnQsIDEpICAgICMgcHJvb2YgPSAxCisrICAgICAgICBaWlhfeGdjZCgmc2Vs Zi5fcG9seSwgJig8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD5yaWdodCkuX3BvbHksICZy LCAmcywgJnQsIDEpICAgICMgcHJvb2YgPSAxCisgICAgICAgICBjZGVmIEludGVnZXIgcnIgPSBJ bnRlZ2VyLl9fbmV3X18oSW50ZWdlcikKKyAgICAgICAgIFpaX3RvX21weihyci52YWx1ZSwgcikK KyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCBzcyA9IHNlbGYuX25l dygpCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgdHQgPSBzZWxm Ll9uZXcoKQorLSAgICAgICAgc3MuX19wb2x5ID0gc1swXQorLSAgICAgICAgdHQuX19wb2x5ID0g dFswXQorKyAgICAgICAgc3MuX3BvbHkgPSBzWzBdCisrICAgICAgICB0dC5fcG9seSA9IHRbMF0K KyAgICAgICAgIGRlbCByCisgICAgICAgICBkZWwgcworICAgICAgICAgZGVsIHQKK0BAIC02OTEs OCArNjkxLDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlu b21pYWwpOgorICAgICAgICAgICAgIHheMyAtIDEwKnheMiArIDMyKnggLSAzMgorICAgICAgICAg IiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgeCA9IHNlbGYu X25ldygpCistICAgICAgICBaWlhfbXVsKHguX19wb2x5LCBzZWxmLl9fcG9seSwKKy0gICAgICAg ICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPnJpZ2h0KS5fX3BvbHkpCisr ICAgICAgICBaWlhfbXVsKHguX3BvbHksIHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICg8 UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD5yaWdodCkuX3BvbHkpCisgICAgICAgICByZXR1 cm4geAorIAorICAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCk6CitAQCAtNzEx LDcgKzcxMSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5 bm9taWFsKToKKyAgICAgICAgIGNkZWYgWlpfYyBfcmlnaHQKKyAKKyAgICAgICAgIG1wel90b19a WigmX3JpZ2h0LCAoPEludGVnZXI+cmlnaHQpLnZhbHVlKQorLSAgICAgICAgWlpYX211bF9aWih4 Ll9fcG9seSwgc2VsZi5fX3BvbHksIF9yaWdodCkKKysgICAgICAgIFpaWF9tdWxfWlooeC5fcG9s eSwgc2VsZi5fcG9seSwgX3JpZ2h0KQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgY3BkZWYg X3JtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorQEAgLTczMCw3ICs3MzAsNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICBj ZGVmIFpaX2MgX3JpZ2h0CisgCisgICAgICAgICBtcHpfdG9fWlooJl9yaWdodCwgKDxJbnRlZ2Vy PnJpZ2h0KS52YWx1ZSkKKy0gICAgICAgIFpaWF9tdWxfWlooeC5fX3BvbHksIHNlbGYuX19wb2x5 LCBfcmlnaHQpCisrICAgICAgICBaWlhfbXVsX1paKHguX3BvbHksIHNlbGYuX3BvbHksIF9yaWdo dCkKKyAgICAgICAgIHJldHVybiB4CisgCisgCitAQCAtNzgzLDcgKzc4Myw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgIHZh bHVlID0gSW50ZWdlcih2YWx1ZSkKKyAgICAgICAgIGNkZWYgWlpfYyB5CisgICAgICAgICBtcHpf dG9fWlooJnksICg8SW50ZWdlcj52YWx1ZSkudmFsdWUpCistICAgICAgICBaWlhfU2V0Q29lZmYo c2VsZi5fX3BvbHksIG4sIHkpCisrICAgICAgICBaWlhfU2V0Q29lZmYoc2VsZi5fcG9seSwgbiwg eSkKKyAKKyAKKyAgICAgZGVmIHJlYWxfcm9vdF9pbnRlcnZhbHMoc2VsZik6CitAQCAtODA1LDcg KzgwNSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9t aWFsKToKKyAKKyAjIyAgICAgZGVmIF9fY29weV9fKHNlbGYpOgorICMjICAgICAgICAgZiA9IFBv bHlub21pYWxfaW50ZWdlcl9kZW5zZShzZWxmLnBhcmVudCgpKQorLSMjICAgICAgICAgZi5fX3Bv bHkgPSBzZWxmLl9fcG9seS5jb3B5KCkKKysjIyAgICAgICAgIGYuX3BvbHkgPSBzZWxmLl9wb2x5 LmNvcHkoKQorICMjICAgICAgICAgcmV0dXJuIGYKKyAKKyAKK0BAIC04MjYsNyArODI2LDcgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAg ICAgICAgICAgIHNhZ2U6IFIoMCkuZGVncmVlKCkKKyAgICAgICAgICAgICAtMQorICAgICAgICAg IiIiCistICAgICAgICByZXR1cm4gWlpYX2RlZyhzZWxmLl9fcG9seSkKKysgICAgICAgIHJldHVy biBaWlhfZGVnKHNlbGYuX3BvbHkpCisgCisgICAgIGRlZiBkaXNjcmltaW5hbnQoc2VsZiwgcHJv b2Y9VHJ1ZSk6CisgICAgICAgICByIiIiCitAQCAtODQ5LDcgKzg0OSw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBz YWdlOiBmLmRpc2NyaW1pbmFudChwcm9vZj1GYWxzZSkKKyAgICAgICAgICAgICAtMzM5CisgICAg ICAgICAiIiIKKy0gICAgICAgIGNkZWYgWlpfYyogdGVtcCA9IFpaWF9kaXNjcmltaW5hbnQoJnNl bGYuX19wb2x5LCBwcm9vZikKKysgICAgICAgIGNkZWYgWlpfYyogdGVtcCA9IFpaWF9kaXNjcmlt aW5hbnQoJnNlbGYuX3BvbHksIHByb29mKQorICAgICAgICAgY2RlZiBJbnRlZ2VyIHggPSBJbnRl Z2VyLl9fbmV3X18oSW50ZWdlcikKKyAgICAgICAgIFpaX3RvX21weih4LnZhbHVlLCB0ZW1wKQor ICAgICAgICAgZGVsIHRlbXAKK0BAIC05MDQsMTEgKzkwNCwxMSBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIGxvbmcq IGUKKyAgICAgICAgIGNkZWYgbG9uZyBpLCBuCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50 ZWdlcl9kZW5zZV9udGwgegorLSAgICAgICAgWlpYX3NxdWFyZWZyZWVfZGVjb21wb3NpdGlvbigm diwgJmUsICZuLCAmcC5fX3BvbHkpCisrICAgICAgICBaWlhfc3F1YXJlZnJlZV9kZWNvbXBvc2l0 aW9uKCZ2LCAmZSwgJm4sICZwLl9wb2x5KQorICAgICAgICAgRiA9IFtdCisgICAgICAgICBmb3Ig aSBmcm9tIDAgPD0gaSA8IG46CisgICAgICAgICAgICAgeiA9IHNlbGYuX25ldygpCistICAgICAg ICAgICAgei5fX3BvbHkgPSB2W2ldWzBdCisrICAgICAgICAgICAgei5fcG9seSA9IHZbaV1bMF0K KyAgICAgICAgICAgICBGLmFwcGVuZCgoeiwgZVtpXSkpCisgICAgICAgICAgICAgZGVsIHZbaV0K KyAgICAgICAgIHNpZ19mcmVlKHYpCitAQCAtOTUwLDI0ICs5NTAsMjQgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBa Wl9jIGNvbnRlbnQKKyAgICAgICAgIGNkZWYgdmVjX3BhaXJfWlpYX2xvbmdfYyBmYWN0b3JzCisg ICAgICAgICBjZGVmIGxvbmcgaQorLSAgICAgICAgY2RlZiBpbnQgc2lnX21lID0gWlpYX2RlZyhz ZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgaW50IHNpZ19tZSA9IFpaWF9kZWcoc2VsZi5fcG9s eSkKKyAgICAgICAgIGlmIHNpZ19tZSA+IDEwOgorICAgICAgICAgICAgIHNpZ19vbigpCistICAg ICAgICBaWlhfZmFjdG9yKGNvbnRlbnQsIGZhY3RvcnMsIHNlbGYuX19wb2x5LCAwLCAwKQorKyAg ICAgICAgWlpYX2ZhY3Rvcihjb250ZW50LCBmYWN0b3JzLCBzZWxmLl9wb2x5LCAwLCAwKQorICAg ICAgICAgaWYgc2lnX21lID4gMTA6CisgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICBy ZXN1bHRzID0gW10KKyAgICAgICAgIHVuaXQgPSBOb25lCisgICAgICAgICBpZiBub3QgWlpfSXNP bmUoY29udGVudCk6CisgICAgICAgICAgICAgZmFjX3B5ID0gc2VsZi5fbmV3KCkKKy0gICAgICAg ICAgICBaWlhfU2V0Q29lZmYoZmFjX3B5Ll9fcG9seSwgMCwgY29udGVudCkKKy0gICAgICAgICAg ICBpZiBaWlhfZGVnKGZhY19weS5fX3BvbHkpID09IDAgYW5kIFpaX3RvX2ludChmYWNfcHkuX19w b2x5LnJlcC5lbHRzKCkpPT0tMToKKysgICAgICAgICAgICBaWlhfU2V0Q29lZmYoZmFjX3B5Ll9w b2x5LCAwLCBjb250ZW50KQorKyAgICAgICAgICAgIGlmIFpaWF9kZWcoZmFjX3B5Ll9wb2x5KSA9 PSAwIGFuZCBaWl90b19pbnQoZmFjX3B5Ll9wb2x5LnJlcC5lbHRzKCkpPT0tMToKKyAgICAgICAg ICAgICAgICAgdW5pdCA9IGZhY19weQorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg ICAgIHJlc3VsdHMuYXBwZW5kKCAoZmFjX3B5LDEpICkKKyAgICAgICAgIGZvciBpIGZyb20gMCA8 PSBpIDwgZmFjdG9ycy5sZW5ndGgoKToKKyAgICAgICAgICAgICBmYWNfcHkgPSBzZWxmLl9uZXco KQorLSAgICAgICAgICAgIGZhY19weS5fX3BvbHkgPSBmYWN0b3JzLlJhd0dldChpKS5hCisrICAg ICAgICAgICAgZmFjX3B5Ll9wb2x5ID0gZmFjdG9ycy5SYXdHZXQoaSkuYQorICAgICAgICAgICAg IHJlc3VsdHMuYXBwZW5kKCAoZmFjX3B5LGZhY3RvcnMuUmF3R2V0KGkpLmIpICkKKyAgICAgICAg IHJldHVybiBGYWN0b3JpemF0aW9uKHJlc3VsdHMsIHVuaXQgPSB1bml0KQorIAorQEAgLTk5Niw3 ICs5OTYsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5v bWlhbCk6CisgICAgICAgICAgICAgc2FnZTogZiA9IC0zMCp4OyBmLmZhY3RvcigpCisgICAgICAg ICAgICAgKC0xKSAqIDIgKiAzICogNSAqIHgKKyAgICAgICAgICIiIgorLSAgICAgICAgY2RlZiBp bnQgZGVnID0gWlpYX2RlZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgaW50IGRlZyA9IFpa WF9kZWcoc2VsZi5fcG9seSkKKyAgICAgICAgICMgaXQgYXBwZWFycyB0aGF0IHBhcmkgaGFzIGEg d2luZG93IGZyb20gYWJvdXQgZGVncmVlcyAzMCBhbmQgMzAwCisgICAgICAgICAjIGluIHdoaWNo IGl0IGJlYXRzIE5UTC4KKyAgICAgICAgIGMgPSBzZWxmLmNvbnRlbnQoKQorQEAgLTExMzEsNyAr MTEzMSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9t aWFsKToKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCBfb3RoZXIgPSA8UG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX250bD4oc2VsZi5wYXJlbnQoKS5jb2VyY2Uob3RoZXIpKQorLSAgICAgICAgY2RlZiBaWl9j KiB0ZW1wID0gWlpYX3Jlc3VsdGFudCgmc2VsZi5fX3BvbHksICZfb3RoZXIuX19wb2x5LCBwcm9v ZikKKysgICAgICAgIGNkZWYgWlpfYyogdGVtcCA9IFpaWF9yZXN1bHRhbnQoJnNlbGYuX3BvbHks ICZfb3RoZXIuX3BvbHksIHByb29mKQorICAgICAgICAgY2RlZiBJbnRlZ2VyIHggPSBJbnRlZ2Vy Ll9fbmV3X18oSW50ZWdlcikKKyAgICAgICAgIFpaX3RvX21weih4LnZhbHVlLCB0ZW1wKQorICAg ICAgICAgZGVsIHRlbXAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bv bHlub21pYWxfbW9kbl9kZW5zZV9udGwucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9w b2x5bm9taWFsX21vZG5fZGVuc2VfbnRsLnB4ZAoraW5kZXggMjY0ZjA1ZjNjMGQuLjY5MzRhY2Zl ZThkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX21v ZG5fZGVuc2VfbnRsLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9t aWFsX21vZG5fZGVuc2VfbnRsLnB4ZAorQEAgLTE2LDcgKzE2LDcgQEAgZnJvbSBzYWdlLmxpYnMu bnRsLmx6el9wWCBjaW1wb3J0ICoKKyAKKyAKKyBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2Vf bW9kX24oUG9seW5vbWlhbCk6CistICAgIGNkZWYgb2JqZWN0IF9fcG9seQorKyAgICBjZGVmIG9i amVjdCBfcG9seQorICAgICBjZGVmIG9iamVjdCBfX3Npbmd1bGFyCisgCisgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6KFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9tb2RuX2RlbnNl X250bC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfbW9kbl9kZW5z ZV9udGwucHl4CitpbmRleCA1NzQ2OGUzNTEwZi4uZDY5ZDVlMDkwMTggMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfbW9kbl9kZW5zZV9udGwucHl4Cisr KysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfbW9kbl9kZW5zZV9udGwu cHl4CitAQCAtMTA1LDE5ICsxMDUsMTkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21v ZF9uKFBvbHlub21pYWwpOgorIAorICAgICAgICAgaWYgY29uc3RydWN0OgorICAgICAgICAgICAg IGlmIGlzaW5zdGFuY2UoeCwgWlpfcFgpOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fcG9seSA9 IHgKKysgICAgICAgICAgICAgICAgc2VsZi5fcG9seSA9IHgKKyAgICAgICAgICAgICAgICAgcmV0 dXJuCistICAgICAgICAgICAgc2VsZi5fX3BvbHkgPSBaWl9wWCh4LCBwYXJlbnQubW9kdWx1cygp KQorKyAgICAgICAgICAgIHNlbGYuX3BvbHkgPSBaWl9wWCh4LCBwYXJlbnQubW9kdWx1cygpKQor ICAgICAgICAgICAgIHJldHVybgorIAorLSAgICAgICAgc2VsZi5fX3BvbHkgPSBaWl9wWChbXSwg cGFyZW50Lm1vZHVsdXMoKSkKKysgICAgICAgIHNlbGYuX3BvbHkgPSBaWl9wWChbXSwgcGFyZW50 Lm1vZHVsdXMoKSkKKyAKKyAgICAgICAgIGlmIHggaXMgTm9uZToKKyAgICAgICAgICAgICByZXR1 cm4gICAgICAgICAjIGxlYXZlIGluaXRpYWxpemVkIHRvIDAgcG9seW5vbWlhbC4KKyAKKyAgICAg ICAgIGlmIGlzaW5zdGFuY2UoeCwgUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgaWYgeC5wYXJl bnQoKSA9PSBzZWxmLnBhcmVudCgpOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fcG9seSA9ICg8 UG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF96ej54KS5fX3BvbHkuX19jb3B5X18oKQorKyAgICAg ICAgICAgICAgICBzZWxmLl9wb2x5ID0gKDxQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6Pngp Ll9wb2x5Ll9fY29weV9fKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICAgICAgUiA9IHBhcmVudC5iYXNlX3JpbmcoKQorQEAgLTEzMCw3 ICsxMzAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlhbCk6 CisgCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgWlpYKToKKy0gICAgICAgICAgICBz ZWxmLl9fcG9seSA9IHguY29weSgpCisrICAgICAgICAgICAgc2VsZi5fcG9seSA9IHguY29weSgp CisgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgcGFy aV9nZW4pOgorQEAgLTE0Miw3ICsxNDIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2Vf bW9kX24oUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgaWYgeC5kZW5vbWluYXRvcigpLmlzX3Vu aXQoKToKKyAgICAgICAgICAgICAgICAgbnVtZXIgPSB4Lm51bWVyYXRvcigpCisgICAgICAgICAg ICAgICAgIGRlbm9tID0geC5kZW5vbWluYXRvcigpLmludmVyc2Vfb2ZfdW5pdCgpCistICAgICAg ICAgICAgICAgIHggPSBudW1lci5fX3BvbHkgKiBkZW5vbS5fX3BvbHkKKysgICAgICAgICAgICAg ICAgeCA9IG51bWVyLl9wb2x5ICogZGVub20uX3BvbHkKKyAgICAgICAgICAgICAgICAgY2hlY2sg PSBGYWxzZQorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVF cnJvcigiRGVub21pbmF0b3Igbm90IGEgdW5pdC4iKQorQEAgLTE1NCwxMyArMTU0LDEzIEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5bm9taWFsKToKKyAgICAgICAgICAg ICBSID0gcGFyZW50LmJhc2VfcmluZygpCisgICAgICAgICAgICAgeCA9IFtaWihSKGEpKSBmb3Ig YSBpbiB4XQorIAorLSAgICAgICAgc2VsZi5fX3BvbHkgPSBaWl9wWCh4LCBwYXJlbnQubW9kdWx1 cygpKQorKyAgICAgICAgc2VsZi5fcG9seSA9IFpaX3BYKHgsIHBhcmVudC5tb2R1bHVzKCkpCisg CisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICAgcmV0dXJuIG1ha2VfZWxlbWVu dCwgKHNlbGYucGFyZW50KCksIChzZWxmLmxpc3QoKSwgRmFsc2UsIHNlbGYuaXNfZ2VuKCkpKQor IAorICAgICBkZWYgaW50X2xpc3Qoc2VsZik6CistICAgICAgICByZXR1cm4gZXZhbChzdHIoc2Vs Zi5fX3BvbHkpLnJlcGxhY2UoJyAnLCcsJykpCisrICAgICAgICByZXR1cm4gZXZhbChzdHIoc2Vs Zi5fcG9seSkucmVwbGFjZSgnICcsJywnKSkKKyAKKyAgICAgZGVmIF9fcGFyaV9fKHNlbGYsIHZh cmlhYmxlPU5vbmUpOgorICAgICAgICAgIiIiCitAQCAtMTg2LDcgKzE4Niw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBZb3Ug bXVzdCBjYWxsIGBgbnRsLnNldF9tb2R1bHVzKG50bC5aWihuKSlgYCBiZWZvcmUgZG9pbmcKKyAg ICAgICAgICAgICBhcml0aG1ldGljIHdpdGggdGhpcyBvYmplY3QhCisgICAgICAgICAiIiIKKy0g ICAgICAgIHJldHVybiBzZWxmLl9fcG9seQorKyAgICAgICAgcmV0dXJuIHNlbGYuX3BvbHkKKyAK KyAgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qgbik6CisgICAgICAgICAiIiIK K0BAIC0yMDMsMTMgKzIwMywxMyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24o UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogZls6M10KKyAgICAgICAgICAgICAxMyp4 XjIgKyAxMCp4ICsgNQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50 Ll9iYXNlKCg8bnRsX1paX3BYPiBzZWxmLl9fcG9seSlbbl0uX2ludGVnZXJfKCkpCisrICAgICAg ICByZXR1cm4gc2VsZi5fcGFyZW50Ll9iYXNlKCg8bnRsX1paX3BYPiBzZWxmLl9wb2x5KVtuXS5f aW50ZWdlcl8oKSkKKyAKKyAgICAgZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIG4sIHZhbHVlKToK KyAgICAgICAgIG4gPSBpbnQobikKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAgICAgICAgIHJh aXNlIEluZGV4RXJyb3IoIm4gbXVzdCBiZSA+PSAwIikKKy0gICAgICAgIHNlbGYuX19wb2x5W25d ID0gaW50KHZhbHVlKQorKyAgICAgICAgc2VsZi5fcG9seVtuXSA9IGludCh2YWx1ZSkKKyAKKyAg ICAgZGVmIF9wb3coc2VsZiwgbik6CisgICAgICAgICBuID0gaW50KG4pCitAQCAtMjE4LDEwICsy MTgsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBvbHlub21pYWwpOgor ICAgICAgICAgICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNlbGZbMF0qKm4pCisgICAgICAgICBp ZiBuIDwgMDoKKyAgICAgICAgICAgICByZXR1cm4gKH5zZWxmKSoqKC1uKQorLSAgICAgICAgcmV0 dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fX3BvbHkqKm4sIGNvbnN0cnVjdD1UcnVlKQorKyAgICAg ICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fcG9seSoqbiwgY29uc3RydWN0PVRydWUpCisg CisgICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKy0gICAgICAgIHJldHVybiBzZWxmLnBh cmVudCgpKHNlbGYuX19wb2x5ICsgKDxQb2x5bm9taWFsX2RlbnNlX21vZF9uPnJpZ2h0KS5fX3Bv bHksIGNvbnN0cnVjdD1UcnVlKQorKyAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5f cG9seSArICg8UG9seW5vbWlhbF9kZW5zZV9tb2Rfbj5yaWdodCkuX3BvbHksIGNvbnN0cnVjdD1U cnVlKQorIAorICAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKK0BA IC0yMzEsMTEgKzIzMSwxMSBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9s eW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogKHggLSAyKSooeF4yIC0gOCp4ICsgMTYpCisg ICAgICAgICAgICAgeF4zICsgOTAqeF4yICsgMzIqeCArIDY4CisgICAgICAgICAiIiIKKy0gICAg ICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNlbGYuX19wb2x5ICogKDxQb2x5bm9taWFsX2RlbnNl X21vZF9uPnJpZ2h0KS5fX3BvbHksIGNvbnN0cnVjdD1UcnVlKQorKyAgICAgICAgcmV0dXJuIHNl bGYucGFyZW50KCkoc2VsZi5fcG9seSAqICg8UG9seW5vbWlhbF9kZW5zZV9tb2Rfbj5yaWdodCku X3BvbHksIGNvbnN0cnVjdD1UcnVlKQorIAorICAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVu dCBjKToKKyAgICAgICAgIHRyeToKKy0gICAgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKSha Wl9wWChbY10sIHNlbGYucGFyZW50KCkubW9kdWx1cygpKSAqIHNlbGYuX19wb2x5LCBjb25zdHJ1 Y3Q9VHJ1ZSkKKysgICAgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShaWl9wWChbY10sIHNl bGYucGFyZW50KCkubW9kdWx1cygpKSAqIHNlbGYuX3BvbHksIGNvbnN0cnVjdD1UcnVlKQorICAg ICAgICAgZXhjZXB0IFJ1bnRpbWVFcnJvciBhcyBtc2c6ICMgc2hvdWxkIHRoaXMgcmVhbGx5IGJl IGEgVHlwZUVycm9yCisgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1zZykKKyAKK0BAIC0y NDUsNyArMjQ1LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBvbHlub21p YWwpOgorICAgICAgICAgUmV0dXJuIGEgdHVwbGUgYGAocXVvdGllbnQsIHJlbWFpbmRlcilgYCB3 aGVyZSBgYHNlbGYgPSBxdW90aWVudCpvdGhlciArCisgICAgICAgICByZW1haW5kZXJgYC4KKyAg ICAgICAgICIiIgorLSAgICAgICAgdiA9IHNlbGYuX19wb2x5LnF1b19yZW0oKDxQb2x5bm9taWFs X2RlbnNlX21vZF9uPnJpZ2h0KS5fX3BvbHkpCisrICAgICAgICB2ID0gc2VsZi5fcG9seS5xdW9f cmVtKCg8UG9seW5vbWlhbF9kZW5zZV9tb2Rfbj5yaWdodCkuX3BvbHkpCisgICAgICAgICBQID0g c2VsZi5wYXJlbnQoKQorICAgICAgICAgcmV0dXJuIChQKHZbMF0sIGNvbnN0cnVjdD1UcnVlKSwg UCh2WzFdLCBjb25zdHJ1Y3Q9VHJ1ZSkgKQorIAorQEAgLTI4MSwxMSArMjgxLDExIEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgor ICAgICAgICAgaWYgbiA9PSAwIG9yIHNlbGYuZGVncmVlKCkgPCAwOgorICAgICAgICAgICAgIHJl dHVybiBzZWxmCistICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShzZWxmLl9fcG9seS5sZWZ0 X3NoaWZ0KG4pLAorKyAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fcG9seS5sZWZ0 X3NoaWZ0KG4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RydWN0PVRydWUp CisgCisgICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKy0gICAgICAgIHJldHVybiBzZWxm LnBhcmVudCgpKHNlbGYuX19wb2x5IC0gKDxQb2x5bm9taWFsX2RlbnNlX21vZF9uPnJpZ2h0KS5f X3BvbHksIGNvbnN0cnVjdD1UcnVlKQorKyAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2Vs Zi5fcG9seSAtICg8UG9seW5vbWlhbF9kZW5zZV9tb2Rfbj5yaWdodCkuX3BvbHksIGNvbnN0cnVj dD1UcnVlKQorIAorICAgICBkZWYgX19mbG9vcmRpdl9fKHNlbGYsIHJpZ2h0KToKKyAgICAgICAg IHEsIF8gPSBzZWxmLnF1b19yZW0ocmlnaHQpCitAQCAtMzE0LDcgKzMxNCw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdl OiBpc2luc3RhbmNlKHguZGVncmVlKCksIEludGVnZXIpCisgICAgICAgICAgICAgVHJ1ZQorICAg ICAgICAgIiIiCistICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKG1heChzZWxmLl9fcG9seS5k ZWdyZWUoKSwgLTEpKQorKyAgICAgICAgcmV0dXJuIHNtYWxsSW50ZWdlcihtYXgoc2VsZi5fcG9s eS5kZWdyZWUoKSwgLTEpKQorIAorICAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5 PVRydWUpOgorICAgICAgICAgIiIiCitAQCAtMzU4LDcgKzM1OCw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAg aWYgc2VsZi5pc19nZW4oKToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIkNhbm5vdCBj aGFuZ2UgdGhlIHZhbHVlIG9mIHRoZSBnZW5lcmF0b3IuIikKKy0gICAgICAgIHNlbGYuX19wb2x5 ID0gWlpfcFgodiwgc2VsZi5wYXJlbnQoKS5tb2R1bHVzKCkpCisrICAgICAgICBzZWxmLl9wb2x5 ID0gWlpfcFgodiwgc2VsZi5wYXJlbnQoKS5tb2R1bHVzKCkpCisgCisgICAgICMgUG9seW5vbWlh bF9zaW5ndWxhcl9yZXByIHN0dWZmLCBjb3BpZWQgZHVlIHRvIGxhY2sgb2YgbXVsdGlwbGUgaW5o ZXJpdGFuY2UKKyAgICAgZGVmIF9zaW5ndWxhcl8oc2VsZiwgc2luZ3VsYXI9c2luZ3VsYXJfZGVm YXVsdCwgZm9yY2U9RmFsc2UpOgorQEAgLTY1NCw4ICs2NTQsOCBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfZGVuc2VfbW9kbl9udGxfenooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAgICAg ICAgICAgICAgIHJldHVybgorIAorICAgICAgICAgUG9seW5vbWlhbF9kZW5zZV9tb2Rfbi5fX2lu aXRfXyhzZWxmLCBwYXJlbnQsIHYsIGNoZWNrPWNoZWNrLCBpc19nZW49aXNfZ2VuLCBjb25zdHJ1 Y3Q9Y29uc3RydWN0KQorLSAgICAgICAgdiA9IFthIGZvciBhIGluIHNlbGYuX19wb2x5Lmxpc3Qo KV0KKy0gICAgICAgIHNlbGYuX19wb2x5ID0gTm9uZSAjIHRoaXMgd2lsbCBldmVudHVhbGx5IGdv IGF3YXkKKysgICAgICAgIHYgPSBbYSBmb3IgYSBpbiBzZWxmLl9wb2x5Lmxpc3QoKV0KKysgICAg ICAgIHNlbGYuX3BvbHkgPSBOb25lICMgdGhpcyB3aWxsIGV2ZW50dWFsbHkgZ28gYXdheQorICAg ICAgICAgY2RlZiBudGxfenpfcFggbnRsID0gbnRsX3p6X3BYKHYsIHBhcmVudC5tb2R1bHVzKCkp ICMgbGV0IGl0IGhhbmRsZSB0aGUgaGFyZCB3b3JrCisgICAgICAgICBzZWxmLnggPSBudGwueAor ICAgICAgICAgc2VsZi5jID0gbnRsLmMKK0BAIC02NjgsOCArNjY4LDggQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6KFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorICAg ICAgICAgIyBUT0RPOiBHZXQgcmlkIG9mIHRoaXMKKyAgICAgICAgIFBvbHlub21pYWxfZGVuc2Vf bW9kX24ubnRsX3NldF9kaXJlY3RseShzZWxmLCB2KQorICAgICAgICAgIyB2ZXJiYXRpbSBmcm9t IF9faW5pdF9fCistICAgICAgICB2ID0gW2ludChhKSBmb3IgYSBpbiBzZWxmLl9fcG9seS5saXN0 KCldCistICAgICAgICBzZWxmLl9fcG9seSA9IE5vbmUgIyB0aGlzIHdpbGwgZXZlbnR1YWxseSBn byBhd2F5CisrICAgICAgICB2ID0gW2ludChhKSBmb3IgYSBpbiBzZWxmLl9wb2x5Lmxpc3QoKV0K KysgICAgICAgIHNlbGYuX3BvbHkgPSBOb25lICMgdGhpcyB3aWxsIGV2ZW50dWFsbHkgZ28gYXdh eQorICAgICAgICAgY2RlZiBudGxfenpfcFggbnRsID0gbnRsX3p6X3BYKHYsIHNlbGYuX3BhcmVu dC5tb2R1bHVzKCkpICMgbGV0IGl0IGhhbmRsZSB0aGUgaGFyZCB3b3JrCisgICAgICAgICBzZWxm LnggPSBudGwueAorICAgICAgICAgc2VsZi5jID0gbnRsLmMKK0BAIC0xMjQxLDggKzEyNDEsOCBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfWlooUG9seW5vbWlhbF9kZW5z ZV9tb2Rfbik6CisgICAgICAgICAgICAgICAgIHJldHVybgorIAorICAgICAgICAgUG9seW5vbWlh bF9kZW5zZV9tb2Rfbi5fX2luaXRfXyhzZWxmLCBwYXJlbnQsIHYsIGNoZWNrPWNoZWNrLCBpc19n ZW49aXNfZ2VuLCBjb25zdHJ1Y3Q9Y29uc3RydWN0KQorLSAgICAgICAgY2RlZiBudGxfWlpfcFgg bnRsID0gc2VsZi5fX3BvbHkKKy0gICAgICAgIHNlbGYuX19wb2x5ID0gTm9uZSAjIHRoaXMgd2ls bCBldmVudHVhbGx5IGdvIGF3YXkKKysgICAgICAgIGNkZWYgbnRsX1paX3BYIG50bCA9IHNlbGYu X3BvbHkKKysgICAgICAgIHNlbGYuX3BvbHkgPSBOb25lICMgdGhpcyB3aWxsIGV2ZW50dWFsbHkg Z28gYXdheQorICAgICAgICAgc2VsZi54ID0gbnRsLngKKyAgICAgICAgIHNlbGYuYyA9IG50bC5j CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3Jh dGlvbmFsX2ZsaW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9y YXRpb25hbF9mbGludC5weGQKK2luZGV4IDA1NWQ3ODQyNjY4Li5mNDY0NGYxOWQwNCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25h bF9mbGludC5weGQKK0BAIC0xMSw3ICsxMSw3IEBAIGZyb20gc2FnZS5saWJzLmZsaW50LnR5cGVz IGNpbXBvcnQgZm1wcV9wb2x5X3QKKyBmcm9tIHNhZ2UucmluZ3MucG9seW5vbWlhbC5wb2x5bm9t aWFsX2VsZW1lbnQgY2ltcG9ydCBQb2x5bm9taWFsCisgCisgY2RlZiBjbGFzcyBQb2x5bm9taWFs X3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorLSAgICBjZGVmIGZtcHFfcG9seV90IF9fcG9s eQorKyAgICBjZGVmIGZtcHFfcG9seV90IF9wb2x5CisgCisgICAgIGNkZWYgUG9seW5vbWlhbF9y YXRpb25hbF9mbGludCBfbmV3KHNlbGYpCisgICAgIGNwZGVmIF9tb2RfKHNlbGYsIHJpZ2h0KQor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25h bF9mbGludC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmF0aW9u YWxfZmxpbnQucHl4CitpbmRleCBkMGRkMTU1MjJlOS4uMjZkMDcwYWM3N2YgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHl4 CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmF0aW9uYWxfZmxp bnQucHl4CitAQCAtMTU1LDE2ICsxNTUsMTYgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlv bmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgcmVzLl9wYXJlbnQgPSBQCisgICAgICAg ICByZXMuX2lzX2dlbiA9IDxjaGFyPjAKKyAgICAgICAgIGlmIGlzaW5zdGFuY2UoeCwgaW50KToK Ky0gICAgICAgICAgICBmbXBxX3BvbHlfc2V0X3NpKHJlcy5fX3BvbHksIDxpbnQ+IHgpCisrICAg ICAgICAgICAgZm1wcV9wb2x5X3NldF9zaShyZXMuX3BvbHksIDxpbnQ+IHgpCisgCisgICAgICAg ICBlbGlmIGlzaW5zdGFuY2UoeCwgSW50ZWdlcik6CistICAgICAgICAgICAgZm1wcV9wb2x5X3Nl dF9tcHoocmVzLl9fcG9seSwgKDxJbnRlZ2VyPiB4KS52YWx1ZSkKKysgICAgICAgICAgICBmbXBx X3BvbHlfc2V0X21weihyZXMuX3BvbHksICg8SW50ZWdlcj4geCkudmFsdWUpCisgCisgICAgICAg ICBlbGlmIGlzaW5zdGFuY2UoeCwgUmF0aW9uYWwpOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9z ZXRfbXBxKHJlcy5fX3BvbHksICg8UmF0aW9uYWw+IHgpLnZhbHVlKQorKyAgICAgICAgICAgIGZt cHFfcG9seV9zZXRfbXBxKHJlcy5fcG9seSwgKDxSYXRpb25hbD4geCkudmFsdWUpCisgCisgICAg ICAgICBlbHNlOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfc2kocmVzLl9fcG9seSwgaW50 KHgpKQorKyAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfc2kocmVzLl9wb2x5LCBpbnQoeCkpCisg ICAgICAgICByZXR1cm4gcmVzCisgCisgCitAQCAtMTc3LDcgKzE3Nyw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdl OiBSLjx0PiA9IFFRW10KKyAgICAgICAgICAgICBzYWdlOiBmID0gMi8zICogdCAtIDcgICNpbmRp cmVjdCBkb2N0ZXN0CisgICAgICAgICAiIiIKKy0gICAgICAgIGZtcHFfcG9seV9pbml0KHNlbGYu X19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X2luaXQoc2VsZi5fcG9seSkKKyAKKyAgICAgZGVm IF9fZGVhbGxvY19fKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtMTg5LDcgKzE4OSw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAg ICAgICBzYWdlOiBmID0gMS8zICogdAorICAgICAgICAgICAgIHNhZ2U6IGRlbCBmCisgICAgICAg ICAiIiIKKy0gICAgICAgIGZtcHFfcG9seV9jbGVhcihzZWxmLl9fcG9seSkKKysgICAgICAgIGZt cHFfcG9seV9jbGVhcihzZWxmLl9wb2x5KQorIAorICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFy ZW50LCB4PU5vbmUsIGNoZWNrPVRydWUsIGlzX2dlbj1GYWxzZSwgY29uc3RydWN0PUZhbHNlKToK KyAgICAgICAgICIiIgorQEAgLTIyNywxOSArMjI3LDE5IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIFBvbHlub21pYWwuX19pbml0 X18oc2VsZiwgcGFyZW50LCBpc19nZW49aXNfZ2VuKQorIAorICAgICAgICAgaWYgaXNfZ2VuOgor LSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfc2koc2VsZi5fX3BvbHksIDEsIDEpCisr ICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9jb2VmZl9zaShzZWxmLl9wb2x5LCAxLCAxKQorIAor ICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQpOgor LSAgICAgICAgICAgIGZtcHFfcG9seV9zZXQoc2VsZi5fX3BvbHksICg8UG9seW5vbWlhbF9yYXRp b25hbF9mbGludD4geCkuX19wb2x5KQorKyAgICAgICAgICAgIGZtcHFfcG9seV9zZXQoc2VsZi5f cG9seSwgKDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PiB4KS5fcG9seSkKKyAKKyAgICAgICAg IGVsaWYgaXNpbnN0YW5jZSh4LCBpbnQpOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfc2ko c2VsZi5fX3BvbHksIDxpbnQ+IHgpCisrICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9zaShzZWxm Ll9wb2x5LCA8aW50PiB4KQorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIEludGVnZXIp OgorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfbXB6KHNlbGYuX19wb2x5LCAoPEludGVnZXI+ IHgpLnZhbHVlKQorKyAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfbXB6KHNlbGYuX3BvbHksICg8 SW50ZWdlcj4geCkudmFsdWUpCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgUmF0aW9u YWwpOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfbXBxKHNlbGYuX19wb2x5LCAoPFJhdGlv bmFsPiB4KS52YWx1ZSkKKysgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X21wcShzZWxmLl9wb2x5 LCAoPFJhdGlvbmFsPiB4KS52YWx1ZSkKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBs aXN0KSBvciBpc2luc3RhbmNlKHgsIHR1cGxlKToKKyAKK0BAIC0yNTcsNyArMjU3LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAg ICAgIGZvciBkZWcgZnJvbSAwIDw9IGRlZyA8IG46CisgICAgICAgICAgICAgICAgIG1wcV9pbml0 KEwyW2RlZ10pCisgICAgICAgICAgICAgICAgIG1wcV9zZXQoTDJbZGVnXSwgKDxSYXRpb25hbD4g TDFbZGVnXSkudmFsdWUpCistICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9hcnJheV9tcHEoc2Vs Zi5fX3BvbHksIEwyLCBuKQorKyAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfYXJyYXlfbXBxKHNl bGYuX3BvbHksIEwyLCBuKQorICAgICAgICAgICAgIGZvciBkZWcgZnJvbSAwIDw9IGRlZyA8IG46 CisgICAgICAgICAgICAgICAgIG1wcV9jbGVhcihMMltkZWddKQorICAgICAgICAgICAgIHNpZ19m cmVlKEwyKQorQEAgLTI2NiwxMyArMjY2LDEzIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRp b25hbF9mbGludChQb2x5bm9taWFsKToKKyAjICAgICAgICAgICBkZWcgPSAwCisgIyAgICAgICAg ICAgZm9yIGUgaW4geDoKKyAjICAgICAgICAgICAgICAgYyA9IFJhdGlvbmFsKGUpCistIyAgICAg ICAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfbXBxKHNlbGYuX19wb2x5LCBkZWcsIGMudmFs dWUpCisrIyAgICAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfbXBxKHNlbGYuX3BvbHks IGRlZywgYy52YWx1ZSkKKyAjICAgICAgICAgICAgICAgZGVnICs9IDEKKyAKKyAgICAgICAgIGVs aWYgaXNpbnN0YW5jZSh4LCBkaWN0KToKKyAgICAgICAgICAgICBmb3IgZGVnLCBlIGluIHguaXRl cml0ZW1zKCk6CisgICAgICAgICAgICAgICAgIGMgPSBSYXRpb25hbChlKQorLSAgICAgICAgICAg ICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX21wcShzZWxmLl9fcG9seSwgZGVnLCBjLnZhbHVlKQor KyAgICAgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX21wcShzZWxmLl9wb2x5LCBkZWcs IGMudmFsdWUpCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgcGFyaV9nZW4pOgorICAg ICAgICAgICAgIGsgPSBzZWxmLl9wYXJlbnQuYmFzZV9yaW5nKCkKK0BAIC0yODEsNyArMjgxLDcg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2dlbj1GYWxzZSwg Y29uc3RydWN0PWNvbnN0cnVjdCkKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBQb2x5 bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQpOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRf Zm1wel9wb2x5KHNlbGYuX19wb2x5LCAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD54 KS5fX3BvbHkpCisrICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9mbXB6X3BvbHkoc2VsZi5fcG9s eSwgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+eCkuX3BvbHkpCisgCisgICAgICAg ICBlbGlmIGlzaW5zdGFuY2UoeCwgUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgayA9IHNlbGYu X3BhcmVudC5iYXNlX3JpbmcoKQorQEAgLTMyOSw3ICszMjksNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgVHJ1ZQorICAg ICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0g c2VsZi5fbmV3KCkKKy0gICAgICAgIGZtcHFfcG9seV9zZXQocmVzLl9fcG9seSwgc2VsZi5fX3Bv bHkpCisrICAgICAgICBmbXBxX3BvbHlfc2V0KHJlcy5fcG9seSwgc2VsZi5fcG9seSkKKyAgICAg ICAgIHJldHVybiByZXMKKyAKKyAgICAgZGVmIF9zaW5ndWxhcl8oc2VsZiwgc2luZ3VsYXI9c2lu Z3VsYXJfZGVmYXVsdCk6CitAQCAtMzY0LDcgKzM2NCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBnLmxpc3Qo KQorICAgICAgICAgICAgIFtdCisgICAgICAgICAiIiIKKy0gICAgICAgIGNkZWYgdW5zaWduZWQg bG9uZyBsZW5ndGggPSBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYuX19wb2x5KQorKyAgICAgICAgY2Rl ZiB1bnNpZ25lZCBsb25nIGxlbmd0aCA9IGZtcHFfcG9seV9sZW5ndGgoc2VsZi5fcG9seSkKKyAg ICAgICAgIHJldHVybiBbc2VsZi5nZXRfdW5zYWZlKG4pIGZvciBuIGluIHJhbmdlKGxlbmd0aCld CisgCisgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworQEAgLTM5Miw3ICszOTIsNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg c2FnZTogdHlwZShmLmRlZ3JlZSgpKQorICAgICAgICAgICAgIDxjbGFzcyAnc2FnZS5yaW5ncy5p bnRlZ2VyLkludGVnZXInPgorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc21hbGxJbnRl Z2VyKGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpKQorKyAgICAgICAgcmV0dXJuIHNtYWxs SW50ZWdlcihmbXBxX3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpKQorIAorICAgICBjZGVmIGdldF91 bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBuKToKKyAgICAgICAgICIiIgorQEAgLTQxMyw3ICs0MTMs NyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6Cisg ICAgICAgICAgICAgMS8yKnReMiArIHQgKyAxCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYg UmF0aW9uYWwgeiA9IFJhdGlvbmFsLl9fbmV3X18oUmF0aW9uYWwpCistICAgICAgICBmbXBxX3Bv bHlfZ2V0X2NvZWZmX21wcSh6LnZhbHVlLCBzZWxmLl9fcG9seSwgbikKKysgICAgICAgIGZtcHFf cG9seV9nZXRfY29lZmZfbXBxKHoudmFsdWUsIHNlbGYuX3BvbHksIG4pCisgICAgICAgICByZXR1 cm4gegorIAorICAgICBjcGRlZiBfdW5zYWZlX211dGF0ZShzZWxmLCB1bnNpZ25lZCBsb25nIG4s IHZhbHVlKToKK0BAIC00MzQsMjQgKzQzNCwyNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0 aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICByZWx5IG9uIHRoaXMgY29udmVudGlv bi4gIFRoaXMgbWV0aG9kIHNob3VsZCBiZSB1c2VkIG9ubHkgd2l0aCB0aGUKKyAgICAgICAgIHV0 bW9zdCBjYXJlLgorICAgICAgICAgIiIiCistICAgICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2Rv X3NpZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNl bGYuX3BvbHkpCisgCisgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBpbnQpOgorICAgICAg ICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgICAg ICBmbXBxX3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX19wb2x5LCBuLCB2YWx1ZSkKKysgICAgICAg ICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX3BvbHksIG4sIHZhbHVlKQorICAgICAg ICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UodmFs dWUsIEludGVnZXIpOgorICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhj ZXB0aW9uIikKKy0gICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX21weihzZWxmLl9fcG9s eSwgbiwgKDxJbnRlZ2VyPiB2YWx1ZSkudmFsdWUpCisrICAgICAgICAgICAgZm1wcV9wb2x5X3Nl dF9jb2VmZl9tcHooc2VsZi5fcG9seSwgbiwgKDxJbnRlZ2VyPiB2YWx1ZSkudmFsdWUpCisgICAg ICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2 YWx1ZSwgUmF0aW9uYWwpOgorICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQg ZXhjZXB0aW9uIikKKy0gICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX21wcShzZWxmLl9f cG9seSwgbiwgKDxSYXRpb25hbD4gdmFsdWUpLnZhbHVlKQorKyAgICAgICAgICAgIGZtcHFfcG9s eV9zZXRfY29lZmZfbXBxKHNlbGYuX3BvbHksIG4sICg8UmF0aW9uYWw+IHZhbHVlKS52YWx1ZSkK KyAgICAgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICB2YWx1ZSA9IFJhdGlvbmFsKHZhbHVlKQorICAgICAgICAgICAgIGlmIGRvX3NpZzog c2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2Nv ZWZmX21wcShzZWxmLl9fcG9seSwgbiwgKDxSYXRpb25hbD4gdmFsdWUpLnZhbHVlKQorKyAgICAg ICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfbXBxKHNlbGYuX3BvbHksIG4sICg8UmF0aW9uYWw+ IHZhbHVlKS52YWx1ZSkKKyAgICAgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorIAorICAg ICBkZWYgX19jYWxsX18oc2VsZiwgKngsICoqa3dkcyk6CitAQCAtNTAxLDIwICs1MDEsMjAgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAg ICAgICAgIGlmIGlzaW5zdGFuY2UoYSwgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCk6CisgICAg ICAgICAgICAgICAgIGYgPSAoPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+IGEpLl9uZXcoKQor ICAgICAgICAgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgICAg ICAgICBmbXBxX3BvbHlfY29tcG9zZShmLl9fcG9seSwgc2VsZi5fX3BvbHksCistICAgICAgICAg ICAgICAgICAgICAoPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+IGEpLl9fcG9seSkKKysgICAg ICAgICAgICAgICAgZm1wcV9wb2x5X2NvbXBvc2UoZi5fcG9seSwgc2VsZi5fcG9seSwKKysgICAg ICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD4gYSkuX3BvbHkpCisg ICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICByZXR1cm4gZgorICAg ICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShhLCBSYXRpb25hbCk6CisgICAgICAgICAgICAgICAg IHIgPSBSYXRpb25hbC5fX25ld19fKFJhdGlvbmFsKQorICAgICAgICAgICAgICAgICBzaWdfc3Ry KCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgICAgICAgICBmbXBxX3BvbHlfZXZhbHVhdGVf bXBxKHIudmFsdWUsIHNlbGYuX19wb2x5LCAoPFJhdGlvbmFsPiBhKS52YWx1ZSkKKysgICAgICAg ICAgICAgICAgZm1wcV9wb2x5X2V2YWx1YXRlX21wcShyLnZhbHVlLCBzZWxmLl9wb2x5LCAoPFJh dGlvbmFsPiBhKS52YWx1ZSkKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAg ICAgICAgIHJldHVybiByCisgICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGEsIEludGVnZXIp OgorICAgICAgICAgICAgICAgICByID0gUmF0aW9uYWwuX19uZXdfXyhSYXRpb25hbCkKKyAgICAg ICAgICAgICAgICAgc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgICAgICAgICAg Zm1wcV9wb2x5X2V2YWx1YXRlX21weihyLnZhbHVlLCBzZWxmLl9fcG9seSwgKDxJbnRlZ2VyPiBh KS52YWx1ZSkKKysgICAgICAgICAgICAgICAgZm1wcV9wb2x5X2V2YWx1YXRlX21weihyLnZhbHVl LCBzZWxmLl9wb2x5LCAoPEludGVnZXI+IGEpLnZhbHVlKQorICAgICAgICAgICAgICAgICBzaWdf b2ZmKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHIKKyAgICAgICAgICAgICBlbGlmIGlzaW5z dGFuY2UoYSwgaW50KToKK0BAIC01MjMsNyArNTIzLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICBmbXB6X2luaXQo dG1wZnopCisgICAgICAgICAgICAgICAgIGZtcHFfaW5pdCh0bXBmcSkKKyAgICAgICAgICAgICAg ICAgZm1wel9zZXRfc2kodG1wZnosIFB5SW50X0FTX0xPTkcoYSkpCistICAgICAgICAgICAgICAg IGZtcHFfcG9seV9ldmFsdWF0ZV9mbXB6KHRtcGZxLCBzZWxmLl9fcG9seSwgdG1wZnopCisrICAg ICAgICAgICAgICAgIGZtcHFfcG9seV9ldmFsdWF0ZV9mbXB6KHRtcGZxLCBzZWxmLl9wb2x5LCB0 bXBmeikKKyAgICAgICAgICAgICAgICAgZm1wcV9nZXRfbXBxKHIudmFsdWUsIHRtcGZxKQorICAg ICAgICAgICAgICAgICBmbXBxX2NsZWFyKHRtcGZxKQorICAgICAgICAgICAgICAgICBmbXB6X2Ns ZWFyKHRtcGZ6KQorQEAgLTUzMywxOCArNTMzLDE4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9y YXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgYXJiX2EgPSA8UmVh bEJhbGw+IGEKKyAgICAgICAgICAgICAgICAgYXJiX3ogPSBhcmJfYS5fbmV3KCkKKyAgICAgICAg ICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgX2FyYl9mbXB6X3BvbHlfZXZhbHVh dGVfYXJiKGFyYl96LnZhbHVlLCBmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYuX19wb2x5KSwgYXJiX2Eu dmFsdWUsIGFyYl9hLl9wYXJlbnQuX3ByZWMpCistICAgICAgICAgICAgICAgIGFyYl9kaXZfZm1w eihhcmJfei52YWx1ZSwgYXJiX3oudmFsdWUsIGZtcHFfcG9seV9kZW5yZWYoc2VsZi5fX3BvbHkp LCBhcmJfYS5fcGFyZW50Ll9wcmVjKQorKyAgICAgICAgICAgICAgICBfYXJiX2ZtcHpfcG9seV9l dmFsdWF0ZV9hcmIoYXJiX3oudmFsdWUsIGZtcHFfcG9seV9udW1yZWYoc2VsZi5fcG9seSksCisr ICAgICAgICAgICAgICAgICAgICAgICAgZm1wcV9wb2x5X2xlbmd0aChzZWxmLl9wb2x5KSwgYXJi X2EudmFsdWUsIGFyYl9hLl9wYXJlbnQuX3ByZWMpCisrICAgICAgICAgICAgICAgIGFyYl9kaXZf Zm1weihhcmJfei52YWx1ZSwgYXJiX3oudmFsdWUsIGZtcHFfcG9seV9kZW5yZWYoc2VsZi5fcG9s eSksIGFyYl9hLl9wYXJlbnQuX3ByZWMpCisgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAg ICAgICAgICAgICAgICByZXR1cm4gYXJiX3oKKyAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGEs IENvbXBsZXhCYWxsKToKKyAgICAgICAgICAgICAgICAgYWNiX2EgPSA8Q29tcGxleEJhbGw+IGEK KyAgICAgICAgICAgICAgICAgYWNiX3ogPSBhY2JfYS5fbmV3KCkKKyAgICAgICAgICAgICAgICAg c2lnX29uKCkKKy0gICAgICAgICAgICAgICAgX2FyYl9mbXB6X3BvbHlfZXZhbHVhdGVfYWNiKGFj Yl96LnZhbHVlLCBmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYuX19wb2x5KSwgYWNiX2EudmFsdWUsIGFj Yl9hLl9wYXJlbnQuX3ByZWMpCistICAgICAgICAgICAgICAgIGFjYl9kaXZfZm1weihhY2Jfei52 YWx1ZSwgYWNiX3oudmFsdWUsIGZtcHFfcG9seV9kZW5yZWYoc2VsZi5fX3BvbHkpLCBhY2JfYS5f cGFyZW50Ll9wcmVjKQorKyAgICAgICAgICAgICAgICBfYXJiX2ZtcHpfcG9seV9ldmFsdWF0ZV9h Y2IoYWNiX3oudmFsdWUsIGZtcHFfcG9seV9udW1yZWYoc2VsZi5fcG9seSksCisrICAgICAgICAg ICAgICAgICAgICAgICAgZm1wcV9wb2x5X2xlbmd0aChzZWxmLl9wb2x5KSwgYWNiX2EudmFsdWUs IGFjYl9hLl9wYXJlbnQuX3ByZWMpCisrICAgICAgICAgICAgICAgIGFjYl9kaXZfZm1weihhY2Jf ei52YWx1ZSwgYWNiX3oudmFsdWUsIGZtcHFfcG9seV9kZW5yZWYoc2VsZi5fcG9seSksIGFjYl9h Ll9wYXJlbnQuX3ByZWMpCisgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAg ICAgICByZXR1cm4gYWNiX3oKKyAKK0BAIC01NzAsMTQgKzU3MCwxNCBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIFBvbHlu b21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzCisgICAgICAgICBjZGVmIGJpbnQgZG9fc2lnCisgCist ICAgICAgICBpZiAobiA+PSBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYuX19wb2x5KSk6CisrICAgICAg ICBpZiAobiA+PSBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYuX3BvbHkpKToKKyAgICAgICAgICAgICBy ZXR1cm4gc2VsZgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXMgPSBzZWxmLl9uZXco KQorICAgICAgICAgICAgIGlmIG4gPiAwOgorLSAgICAgICAgICAgICAgICBkb19zaWcgPSBfZG9f c2lnKHNlbGYuX19wb2x5KQorKyAgICAgICAgICAgICAgICBkb19zaWcgPSBfZG9fc2lnKHNlbGYu X3BvbHkpCisgICAgICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0 aW9uIikKKy0gICAgICAgICAgICAgICAgZm1wcV9wb2x5X2dldF9zbGljZShyZXMuX19wb2x5LCBz ZWxmLl9fcG9seSwgMCwgbikKKysgICAgICAgICAgICAgICAgZm1wcV9wb2x5X2dldF9zbGljZShy ZXMuX3BvbHksIHNlbGYuX3BvbHksIDAsIG4pCisgICAgICAgICAgICAgICAgIGlmIGRvX3NpZzog c2lnX29mZigpCisgICAgICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTY2NCw3ICs2NjQsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICBjZGVmIGJpbnQgZG9fc2lnCisgCisgICAgICAgICBpZiBkZWdyZWUgaXMgTm9uZToKKy0g ICAgICAgICAgICBsZW4gPSBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYuX19wb2x5KQorKyAgICAgICAg ICAgIGxlbiA9IGZtcHFfcG9seV9sZW5ndGgoc2VsZi5fcG9seSkKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICBsZW4gPSA8dW5zaWduZWQgbG9uZz4g KGRlZ3JlZSArIDEpCitAQCAtNjcyLDkgKzY3Miw5IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9y YXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF cnJvcignZGVncmVlIG11c3QgYmUgY29udmVydGlibGUgdG8gbG9uZycpCisgCisgICAgICAgICBy ZXMgPSBzZWxmLl9uZXcoKQorLSAgICAgICAgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkK KysgICAgICAgIGRvX3NpZyA9IF9kb19zaWcoc2VsZi5fcG9seSkKKyAgICAgICAgIGlmIGRvX3Np Zzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgIGZtcHFfcG9seV9yZXZlcnNl KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBsZW4pCisrICAgICAgICBmbXBxX3BvbHlfcmV2ZXJz ZShyZXMuX3BvbHksIHNlbGYuX3BvbHksIGxlbikKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX29m ZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtNzA5LDcgKzcwOSw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBy YWlzZSBWYWx1ZUVycm9yKCJzZWxmIG11c3QgaGF2ZSBjb25zdGFudCBjb2VmZmljaWVudCAwIGFu ZCBhIHVuaXQgZm9yIGNvZWZmaWNpZW50IHt9XjEiLmZvcm1hdChzZWxmLnBhcmVudCgpLmdlbigp KSkKKyAKKyAgICAgICAgIHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBx X3BvbHlfcmV2ZXJ0X3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgbSkKKysgICAgICAg IGZtcHFfcG9seV9yZXZlcnRfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbSkKKyAgICAg ICAgIHNpZ19vZmYoKQorIAorICAgICAgICAgcmV0dXJuIHJlcworQEAgLTczMSw3ICs3MzEsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgc2FnZTogUigwKS5pc196ZXJvKCkKKyAgICAgICAgICAgICBUcnVlCisgICAgICAg ICAiIiIKKy0gICAgICAgIHJldHVybiBmbXBxX3BvbHlfaXNfemVybyhzZWxmLl9fcG9seSkKKysg ICAgICAgIHJldHVybiBmbXBxX3BvbHlfaXNfemVybyhzZWxmLl9wb2x5KQorIAorICAgICBjcGRl ZiBiaW50IGlzX29uZShzZWxmKSBleGNlcHQgLTE6CisgICAgICAgICByIiIiCitAQCAtNzUxLDcg Kzc1MSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFs KToKKyAgICAgICAgICAgICBzYWdlOiBSKFsxLDFdKS5pc19vbmUoKQorICAgICAgICAgICAgIEZh bHNlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBmbXBxX3BvbHlfaXNfb25lKHNlbGYu X19wb2x5KQorKyAgICAgICAgcmV0dXJuIGZtcHFfcG9seV9pc19vbmUoc2VsZi5fcG9seSkKKyAK KyAgICAgZGVmIF9fYm9vbF9fKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtNzY2LDcgKzc2Niw3 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAg ICAgICAgICAgICBzYWdlOiBib29sKFIoMCkpCisgICAgICAgICAgICAgRmFsc2UKKyAgICAgICAg ICIiIgorLSAgICAgICAgcmV0dXJuIG5vdCBmbXBxX3BvbHlfaXNfemVybyhzZWxmLl9fcG9seSkK KysgICAgICAgIHJldHVybiBub3QgZm1wcV9wb2x5X2lzX3plcm8oc2VsZi5fcG9seSkKKyAKKyAg ICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgICMgU2hpZnRpbmcgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworQEAgLTc5NCwx NCArNzk0LDE0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9t aWFsKToKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCByZXMKKyAgICAg ICAgIGNkZWYgYmludCBkb19zaWcKKyAKKy0gICAgICAgIGlmIGsgPT0gMCBvciBmbXBxX3BvbHlf aXNfemVybyhmLl9fcG9seSk6CisrICAgICAgICBpZiBrID09IDAgb3IgZm1wcV9wb2x5X2lzX3pl cm8oZi5fcG9seSk6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgcmVzID0gZi5fbmV3KCkKKy0gICAgICAgICAgICBkb19zaWcgPSBmbXBxX3Bv bHlfbGVuZ3RoKGYuX19wb2x5KSA+IDUwMDAgb3IgbiA+IDUwMDAKKysgICAgICAgICAgICBkb19z aWcgPSBmbXBxX3BvbHlfbGVuZ3RoKGYuX3BvbHkpID4gNTAwMCBvciBuID4gNTAwMAorIAorICAg ICAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAg ICAgICBmbXBxX3BvbHlfc2hpZnRfbGVmdChyZXMuX19wb2x5LCBmLl9fcG9seSwgaykKKysgICAg ICAgICAgICBmbXBxX3BvbHlfc2hpZnRfbGVmdChyZXMuX3BvbHksIGYuX3BvbHksIGspCisgICAg ICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgICAgICByZXR1cm4gcmVzCisg CitAQCAtODIyLDE0ICs4MjIsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2Zs aW50KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50 IHJlcworICAgICAgICAgY2RlZiBiaW50IGRvX3NpZworIAorLSAgICAgICAgaWYgayA9PSAwIG9y IGZtcHFfcG9seV9pc196ZXJvKGYuX19wb2x5KToKKysgICAgICAgIGlmIGsgPT0gMCBvciBmbXBx X3BvbHlfaXNfemVybyhmLl9wb2x5KToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICByZXMgPSBmLl9uZXcoKQorLSAgICAgICAgICAgIGRvX3Np ZyA9IF9kb19zaWcoZi5fX3BvbHkpCisrICAgICAgICAgICAgZG9fc2lnID0gX2RvX3NpZyhmLl9w b2x5KQorIAorICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9u IikKKy0gICAgICAgICAgICBmbXBxX3BvbHlfc2hpZnRfcmlnaHQocmVzLl9fcG9seSwgZi5fX3Bv bHksIGspCisrICAgICAgICAgICAgZm1wcV9wb2x5X3NoaWZ0X3JpZ2h0KHJlcy5fcG9seSwgZi5f cG9seSwgaykKKyAgICAgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgICAg IHJldHVybiByZXMKKyAKK0BAIC04NTgsMTAgKzg1OCwxMCBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNk ZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCBvcDIgPSA8UG9seW5vbWlhbF9yYXRpb25hbF9m bGludD4gcmlnaHQKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCByZXMg PSBzZWxmLl9uZXcoKQorLSAgICAgICAgY2RlZiBiaW50IGRvX3NpZyA9IF9kb19zaWcoc2VsZi5f X3BvbHkpIG9yIF9kb19zaWcob3AyLl9fcG9seSkKKysgICAgICAgIGNkZWYgYmludCBkb19zaWcg PSBfZG9fc2lnKHNlbGYuX3BvbHkpIG9yIF9kb19zaWcob3AyLl9wb2x5KQorIAorICAgICAgICAg aWYgZG9fc2lnOiBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9wb2x5 X2FkZChyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgb3AyLl9fcG9seSkKKysgICAgICAgIGZtcHFf cG9seV9hZGQocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBvcDIuX3BvbHkpCisgICAgICAgICBpZiBk b19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTg4NiwxMCArODg2 LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToK KyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IG9w MiA9IDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PiByaWdodAorICAgICAgICAgY2RlZiBQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCistICAgICAgICBjZGVmIGJp bnQgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkgb3IgX2RvX3NpZyhvcDIuX19wb2x5KQor KyAgICAgICAgY2RlZiBiaW50IGRvX3NpZyA9IF9kb19zaWcoc2VsZi5fcG9seSkgb3IgX2RvX3Np ZyhvcDIuX3BvbHkpCisgCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19zdHIoIkZMSU5UIGV4Y2Vw dGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfc3ViKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBv cDIuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X3N1YihyZXMuX3BvbHksIHNlbGYuX3BvbHks IG9wMi5fcG9seSkKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAgICByZXR1 cm4gcmVzCisgCitAQCAtOTEyLDEwICs5MTIsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3Jh dGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIFRydWUKKyAgICAgICAgICIi IgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25l dygpCistICAgICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkKKysg ICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpCisgCisgICAgICAg ICBpZiBkb19zaWc6IHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3Bv bHlfbmVnKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X25lZyhy ZXMuX3BvbHksIHNlbGYuX3BvbHkpCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAg ICAgICAgcmV0dXJuIHJlcworIAorQEAgLTk0NSw4ICs5NDUsOCBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIFBvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQgcnIgPSBzZWxmLl9uZXcoKQorIAorICAgICAgICAgc2lnX3N0cigi RkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgIGZtcHFfcG9seV9kaXZyZW0ocXEuX19wb2x5LCBy ci5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAoPFBvbHlu b21pYWxfcmF0aW9uYWxfZmxpbnQ+IHJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBmbXBxX3BvbHlf ZGl2cmVtKHFxLl9wb2x5LCByci5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PiByaWdodCkuX3BvbHkpCisgICAg ICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBxcSwgcnIKKyAKK0BAIC05NzQsOCArOTc0 LDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgor ICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygp CisgCisgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9w b2x5X2djZChyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgKDxQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50PiByaWdodCkuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5 X2djZChyZXMuX3BvbHksIHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlh bF9yYXRpb25hbF9mbGludD4gcmlnaHQpLl9wb2x5KQorICAgICAgICAgc2lnX29mZigpCisgICAg ICAgICByZXR1cm4gcmVzCisgCitAQCAtMTAwMSw4ICsxMDAxLDggQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9t aWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgCisgICAgICAgICBzaWdfc3Ry KCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9wb2x5X2xjbShyZXMuX19wb2x5LCBz ZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50PiByaWdodCkuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X2xjbShyZXMuX3BvbHks IHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9yYXRpb25h bF9mbGludD4gcmlnaHQpLl9wb2x5KQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1 cm4gcmVzCisgCitAQCAtMTA0Myw3ICsxMDQzLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3Jh dGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlv bmFsX2ZsaW50IHQgPSBzZWxmLl9uZXcoKQorIAorICAgICAgICAgc2lnX3N0cigiRkxJTlQgZXhj ZXB0aW9uIikKKy0gICAgICAgIGZtcHFfcG9seV94Z2NkKGQuX19wb2x5LCBzLl9fcG9seSwgdC5f X3BvbHksIHNlbGYuX19wb2x5LCAoPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+cmlnaHQpLl9f cG9seSkKKysgICAgICAgIGZtcHFfcG9seV94Z2NkKGQuX3BvbHksIHMuX3BvbHksIHQuX3BvbHks IHNlbGYuX3BvbHksICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD5yaWdodCkuX3BvbHkpCisg ICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBkLCBzLCB0CisgCitAQCAtMTA2OSwx MCArMTA2OSwxMCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5v bWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9m bGludCBvcDIgPSA8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD4gcmlnaHQKKyAgICAgICAgIGNk ZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCByZXMgPSBzZWxmLl9uZXcoKQorLSAgICAgICAg Y2RlZiBiaW50IGRvX3NpZyA9IF9kb19zaWcoc2VsZi5fX3BvbHkpIG9yIF9kb19zaWcob3AyLl9f cG9seSkKKysgICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpIG9y IF9kb19zaWcob3AyLl9wb2x5KQorIAorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfc3RyKCJGTElO VCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9wb2x5X211bChyZXMuX19wb2x5LCBzZWxmLl9f cG9seSwgb3AyLl9fcG9seSkKKysgICAgICAgIGZtcHFfcG9seV9tdWwocmVzLl9wb2x5LCBzZWxm Ll9wb2x5LCBvcDIuX3BvbHkpCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAg ICAgcmV0dXJuIHJlcworIAorQEAgLTExMDMsMTMgKzExMDMsMTMgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAg ICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgb3AyID0gPFBvbHlub21pYWxfcmF0aW9u YWxfZmxpbnQ+IHJpZ2h0CisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQg cmVzID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNl bGYuX19wb2x5KSBvciBfZG9fc2lnKG9wMi5fX3BvbHkpCisrICAgICAgICBjZGVmIGJpbnQgZG9f c2lnID0gX2RvX3NpZyhzZWxmLl9wb2x5KSBvciBfZG9fc2lnKG9wMi5fcG9seSkKKyAKKyAgICAg ICAgIGlmIG4gPD0gMDoKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJuIG11c3QgYmUg PiAwIikKKyAKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikK Ky0gICAgICAgIGZtcHFfcG9seV9tdWxsb3cocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG9wMi5f X3BvbHksIG4pCisrICAgICAgICBmbXBxX3BvbHlfbXVsbG93KHJlcy5fcG9seSwgc2VsZi5fcG9s eSwgb3AyLl9wb2x5LCBuKQorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAg IHJldHVybiByZXMKKyAKK0BAIC0xMTI1LDEwICsxMTI1LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICA5KnReMyAtIDYq dCArIDIKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2Zs aW50IHJlcyA9IHNlbGYuX25ldygpCistICAgICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2RvX3Np ZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYu X3BvbHkpCisgCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIp CistICAgICAgICBmbXBxX3BvbHlfc2NhbGFyX211bF9tcHEocmVzLl9fcG9seSwgc2VsZi5fX3Bv bHksCisrICAgICAgICBmbXBxX3BvbHlfc2NhbGFyX211bF9tcHEocmVzLl9wb2x5LCBzZWxmLl9w b2x5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8UmF0aW9uYWw+IGxlZnQp LnZhbHVlKQorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBy ZXMKK0BAIC0xMTQ1LDEwICsxMTQ1LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25h bF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICA5KnReMyAtIDYqdCArIDIKKyAgICAg ICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNl bGYuX25ldygpCistICAgICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9s eSkKKysgICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpCisgCisg ICAgICAgICBpZiBkb19zaWc6IHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBm bXBxX3BvbHlfc2NhbGFyX211bF9tcHEocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksCisrICAgICAg ICBmbXBxX3BvbHlfc2NhbGFyX211bF9tcHEocmVzLl9wb2x5LCBzZWxmLl9wb2x5LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8UmF0aW9uYWw+IHJpZ2h0KS52YWx1ZSkKKyAg ICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCitAQCAtMTI3 MiwyNyArMTI3MiwyNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9s eW5vbWlhbCk6CisgICAgICAgICAgICAgbnVtID0gci5udW1lcmF0b3IoKQorICAgICAgICAgICAg IGRlbiA9IHIuZGVub21pbmF0b3IoKQorIAorLSAgICAgICAgICAgIGlmIGZtcHFfcG9seV9kZWdy ZWUoc2VsZi5fX3BvbHkpID09IDA6CisrICAgICAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShz ZWxmLl9wb2x5KSA9PSAwOgorICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShz ZWxmWzBdLm50aF9yb290KGRlbikgKiogbnVtKQorIAorICAgICAgICAgICAgIHJldHVybiBzZWxm Lm50aF9yb290KGRlbikgKiogbnVtCisgCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIGlm IG4gPCAwOgorLSAgICAgICAgICAgICAgICBpZiBmbXBxX3BvbHlfaXNfemVybyhzZWxmLl9fcG9s eSk6CisrICAgICAgICAgICAgICAgIGlmIGZtcHFfcG9seV9pc196ZXJvKHNlbGYuX3BvbHkpOgor ICAgICAgICAgICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IoIm5lZ2F0aXZlIGV4 cG9uZW50IGluIHBvd2VyIG9mIHplcm8iKQorICAgICAgICAgICAgICAgICByZXMgPSBzZWxmLl9u ZXcoKQorICAgICAgICAgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAg ICAgICAgICAgICBmbXBxX3BvbHlfcG93KHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCAtbikKKysg ICAgICAgICAgICAgICAgZm1wcV9wb2x5X3BvdyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIC1uKQor ICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIH5yZXMK KyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICByZXMgPSBzZWxmLl9uZXcoKQor ICAgICAgICAgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorICAgICAgICAgICAg ICAgICBpZiBzZWxmLl9pc19nZW46CistICAgICAgICAgICAgICAgICAgICBmbXBxX3BvbHlfc2V0 X2NvZWZmX3NpKHJlcy5fX3BvbHksIG4sIDEpCisrICAgICAgICAgICAgICAgICAgICBmbXBxX3Bv bHlfc2V0X2NvZWZmX3NpKHJlcy5fcG9seSwgbiwgMSkKKyAgICAgICAgICAgICAgICAgZWxzZToK Ky0gICAgICAgICAgICAgICAgICAgIGZtcHFfcG9seV9wb3cocmVzLl9fcG9seSwgc2VsZi5fX3Bv bHksIG4pCisrICAgICAgICAgICAgICAgICAgICBmbXBxX3BvbHlfcG93KHJlcy5fcG9seSwgc2Vs Zi5fcG9seSwgbikKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAg IHJldHVybiByZXMKKyAKK0BAIC0xMzI4LDEwICsxMzI4LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIG5vdCBpc2luc3Rh bmNlKHJpZ2h0LCBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KToKKyAgICAgICAgICAgICBpZiBy aWdodCBpbiBRUToKKyAgICAgICAgICAgICAgICAgcmVzID0gc2VsZi5fbmV3KCkKKy0gICAgICAg ICAgICAgICAgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkKKysgICAgICAgICAgICAgICAg ZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9wb2x5KQorIAorICAgICAgICAgICAgICAgICBpZiBkb19z aWc6IHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICAgICAgICAgIGZtcHFfcG9s eV9zY2FsYXJfZGl2X21wcShyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwKKysgICAgICAgICAgICAg ICAgZm1wcV9wb2x5X3NjYWxhcl9kaXZfbXBxKHJlcy5fcG9seSwgc2VsZi5fcG9seSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8UmF0aW9uYWw+ IFFRKHJpZ2h0KSkudmFsdWUpCisgICAgICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigp CisgICAgICAgICAgICAgICAgIHJldHVybiByZXMKK0BAIC0xMzQwLDggKzEzNDAsOCBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgCisgICAgICAg ICByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikK Ky0gICAgICAgIGZtcHFfcG9seV9kaXYocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dD5yaWdodCkuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X2RpdihyZXMuX3BvbHksIHNlbGYu X3BvbHksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8UG9seW5vbWlh bF9yYXRpb25hbF9mbGludD5yaWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIHJldHVybiByZXMKKyAKK0BAIC0xMzgxLDE1ICsxMzgxLDE1IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAg ICAgaWYgcHJlYyA8PSAwOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInRoZSBwcmVj aXNpb24gbXVzdCBiZSBwb3NpdGl2ZSwgZ290IHt9Ii5mb3JtYXQocHJlYykpCistICAgICAgICBp ZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAtMSBvciBcCistICAgICAgICAgICBm bXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9fcG9seSkpOgorKyAgICAgICAgaWYg Zm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMSBvciBcCisrICAgICAgICAgICBmbXB6 X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFp c2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVybSBpcyB6ZXJvIikKKyAKKyAgICAgICAgIGNkZWYg UG9seW5vbWlhbF9yYXRpb25hbF9mbGludCByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgaWYg cHJlYyA8PSAwOgorICAgICAgICAgICAgIHJldHVybiByZXMKKyAgICAgICAgIHNpZ19vbigpCist ICAgICAgICBmbXBxX3BvbHlfaW52X3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJl YykKKysgICAgICAgIGZtcHFfcG9seV9pbnZfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwg cHJlYykKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTE0 MjMsOCArMTQyMyw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5 bm9taWFsKToKKyAKKyAgICAgICAgIHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfc3Ry KCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9wb2x5X3JlbShyZXMuX19wb2x5LCBz ZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50PnJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBmbXBxX3BvbHlf cmVtKHJlcy5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PnJpZ2h0KS5fcG9seSkKKyAgICAg ICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTE0NTMsNyArMTQ1Myw3 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAg ICAgICAgIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludC5fX2luaXRfXyhudW0sIHBhcmVu dCwgeD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrPUZh bHNlLCBpc19nZW49RmFsc2UsIGNvbnN0cnVjdD1GYWxzZSkKKyAgICAgICAgIHNpZ19zdHIoIkZM SU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfZ2V0X251bWVyYXRvcihudW0uX19w b2x5LCBzZWxmLl9fcG9seSkKKysgICAgICAgIGZtcHFfcG9seV9nZXRfbnVtZXJhdG9yKG51bS5f cG9seSwgc2VsZi5fcG9seSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIG51 bQorIAorQEAgLTE0NjksMTAgKzE0NjksMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlv bmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIDMKKyAgICAgICAgICIiIgorICAg ICAgICAgY2RlZiBJbnRlZ2VyIGRlbiA9IEludGVnZXIuX19uZXdfXyhJbnRlZ2VyKQorLSAgICAg ICAgaWYgZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9fcG9seSkgaXMgTlVMTDoKKysgICAgICAgIGlm IGZtcHFfcG9seV9kZW5yZWYoc2VsZi5fcG9seSkgaXMgTlVMTDoKKyAgICAgICAgICAgICBtcHpf c2V0X3VpKGRlbi52YWx1ZSwgMSkKKyAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgZm1wel9n ZXRfbXB6KGRlbi52YWx1ZSwgPGZtcHogKj4gZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9fcG9seSkp CisrICAgICAgICAgICAgZm1wel9nZXRfbXB6KGRlbi52YWx1ZSwgPGZtcHogKj4gZm1wcV9wb2x5 X2RlbnJlZihzZWxmLl9wb2x5KSkKKyAgICAgICAgIHJldHVybiBkZW4KKyAKKyAgICAgZGVmIF9k ZXJpdmF0aXZlKHNlbGYsIHZhciA9IE5vbmUpOgorQEAgLTE1MTcsMTAgKzE1MTcsMTAgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAg ICAgIHJhaXNlIFZhbHVlRXJyb3IoImNhbm5vdCBkaWZmZXJlbnRpYXRlIHdpdGggcmVzcGVjdCB0 byB7fSIuZm9ybWF0KHZhcikpCisgCisgICAgICAgICBkZXIgPSBzZWxmLl9uZXcoKQorLSAgICAg ICAgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkKKysgICAgICAgIGRvX3NpZyA9IF9kb19z aWcoc2VsZi5fcG9seSkKKyAKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhj ZXB0aW9uIikKKy0gICAgICAgIGZtcHFfcG9seV9kZXJpdmF0aXZlKGRlci5fX3BvbHksIHNlbGYu X19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X2Rlcml2YXRpdmUoZGVyLl9wb2x5LCBzZWxmLl9w b2x5KQorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBkZXIK KyAKK0BAIC0xNTc0LDggKzE1NzQsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxf ZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIGZtcHFfdCB0CisgICAgICAgICBmbXBx X2luaXQodCkKKyAgICAgICAgIHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBm bXBxX3BvbHlfcmVzdWx0YW50KHQsIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+cmlnaHQpLl9fcG9seSkKKysgICAg ICAgIGZtcHFfcG9seV9yZXN1bHRhbnQodCwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PnJpZ2h0KS5fcG9seSkKKyAg ICAgICAgIGZtcHFfZ2V0X21wcShyZXMudmFsdWUsIHQpCisgICAgICAgICBzaWdfb2ZmKCkKKyAg ICAgICAgIGZtcHFfY2xlYXIodCkKK0BAIC0xNjIzLDcgKzE2MjMsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgCisgICAgICAgICAiIiIKKyAg ICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IHByaW1pdGl2ZQorLSAg ICAgICAgY2RlZiB1bnNpZ25lZCBsb25nIGxlbmd0aCA9IGZtcHFfcG9seV9sZW5ndGgoc2VsZi5f X3BvbHkpCisrICAgICAgICBjZGVmIHVuc2lnbmVkIGxvbmcgbGVuZ3RoID0gZm1wcV9wb2x5X2xl bmd0aChzZWxmLl9wb2x5KQorIAorICAgICAgICAgaWYgbGVuZ3RoIDwgMjoKKyAgICAgICAgICAg ICByZXR1cm4gRmFsc2UKK0BAIC0xNjM2LDggKzE2MzYsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB4PU5vbmUsIGNoZWNrPVRydWUsIGlzX2dlbj1GYWxzZSwgY29uc3RydWN0PUZhbHNlKQor IAorICAgICAgICAgICAgIHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICAgICAg Zm1wcV9wb2x5X2dldF9udW1lcmF0b3IocHJpbWl0aXZlLl9fcG9seSwgc2VsZi5fX3BvbHkpCist ICAgICAgICAgICAgZm1wel9wb2x5X3ByaW1pdGl2ZV9wYXJ0KHByaW1pdGl2ZS5fX3BvbHksIHBy aW1pdGl2ZS5fX3BvbHkpCisrICAgICAgICAgICAgZm1wcV9wb2x5X2dldF9udW1lcmF0b3IocHJp bWl0aXZlLl9wb2x5LCBzZWxmLl9wb2x5KQorKyAgICAgICAgICAgIGZtcHpfcG9seV9wcmltaXRp dmVfcGFydChwcmltaXRpdmUuX3BvbHksIHByaW1pdGl2ZS5fcG9seSkKKyAgICAgICAgICAgICBz aWdfb2ZmKCkKKyAgICAgICAgICAgICByZXR1cm4gcHJpbWl0aXZlLmlzX2lycmVkdWNpYmxlKCkK KyAKK0BAIC0xNjY5LDE0ICsxNjY5LDE0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25h bF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICBWYWx1 ZUVycm9yOiBjb25zdGFudCB0ZXJtIHNob3VsZCBiZSAxIGluIG9yZGVyIHRvIHRha2UgbG9nYXJp dGhtCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3Bv bHkpID09IC0xIG9yIFwKKy0gICAgICAgICAgIGZtcHpfY21wKGZtcHFfcG9seV9udW1yZWYoc2Vs Zi5fX3BvbHkpLAorLSAgICAgICAgICAgICAgICAgICAgZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9f cG9seSkpOgorKyAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMSBv ciBcCisrICAgICAgICAgICBmbXB6X2NtcChmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX3BvbHkpLAor KyAgICAgICAgICAgICAgICAgICAgZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9wb2x5KSk6CisgICAg ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVybSBzaG91bGQgYmUgMSBpbiBv cmRlciB0byB0YWtlIGxvZ2FyaXRobSIpCisgCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0 aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAg ICBmbXBxX3BvbHlfbG9nX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysg ICAgICAgIGZtcHFfcG9seV9sb2dfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykK KyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTE3MDMsMTQg KzE3MDMsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21p YWwpOgorICAgICAgICAgICAgIHNhZ2U6IF8ucGFyZW50KCkKKyAgICAgICAgICAgICBVbml2YXJp YXRlIFBvbHlub21pYWwgUmluZyBpbiB4IG92ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIi IgorLSAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkgPT0gLTE6CisrICAg ICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID09IC0xOgorICAgICAgICAgICAg IHJldHVybiBzZWxmLl9wYXJlbnQub25lKCkKKy0gICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVy byhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSk6CisrICAgICAgICBlbGlmIG5vdCBmbXB6 X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFp c2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVybSBzaG91bGQgYmUgMCBpbiBvcmRlciB0byB0YWtl IGV4cG9uZW50aWFsIikKKyAKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dCByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHFfcG9s eV9leHBfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBwcmVjKQorKyAgICAgICAgZm1w cV9wb2x5X2V4cF9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBwcmVjKQorICAgICAgICAg c2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTczNywxNCArMTczNywxNCBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgc2FnZTogXy5wYXJlbnQoKQorICAgICAgICAgICAgIFVuaXZhcmlhdGUgUG9seW5v bWlhbCBSaW5nIGluIHggb3ZlciBSYXRpb25hbCBGaWVsZAorICAgICAgICAgIiIiCistICAgICAg ICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAtMToKKysgICAgICAgIGlmIGZt cHFfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPT0gLTE6CisgICAgICAgICAgICAgcmV0dXJuIHNl bGYuX3BhcmVudC56ZXJvKCkKKy0gICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3Bv bHlfbnVtcmVmKHNlbGYuX19wb2x5KSk6CisrICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8o Zm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVF cnJvcigiY29uc3RhbnQgdGVybSBzaG91bGQgYmUgMCBpbiBvcmRlciB0byB0YWtlIGFyY3Rhbmdl bnQiKQorIAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNl bGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wcV9wb2x5X2F0YW5fc2Vy aWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBwcmVjKQorKyAgICAgICAgZm1wcV9wb2x5X2F0 YW5fc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAgICAgICAgIHNpZ19vZmYo KQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTE3NjgsMTQgKzE3NjgsMTQgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAg IHNhZ2U6IF8ucGFyZW50KCkKKyAgICAgICAgICAgICBVbml2YXJpYXRlIFBvbHlub21pYWwgUmlu ZyBpbiB4IG92ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgZm1w cV9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkgPT0gLTE6CisrICAgICAgICBpZiBmbXBxX3BvbHlf ZGVncmVlKHNlbGYuX3BvbHkpID09IC0xOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJl bnQuemVybygpCistICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJl ZihzZWxmLl9fcG9seSkpOgorKyAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFfcG9s eV9udW1yZWYoc2VsZi5fcG9seSkpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNv bnN0YW50IHRlcm0gc2hvdWxkIGJlIDAgaW4gb3JkZXIgdG8gdGFrZSBoeXBlcmJvbGljIGFyY3Rh bmdlbnQiKQorIAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9 IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wcV9wb2x5X2F0YW5o X3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZtcHFfcG9s eV9hdGFuaF9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBwcmVjKQorICAgICAgICAgc2ln X29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTgwMiwxNCArMTgwMiwxNCBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAg ICAgICAgc2FnZTogXy5wYXJlbnQoKQorICAgICAgICAgICAgIFVuaXZhcmlhdGUgUG9seW5vbWlh bCBSaW5nIGluIHggb3ZlciBSYXRpb25hbCBGaWVsZAorICAgICAgICAgIiIiCistICAgICAgICBp ZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAtMToKKysgICAgICAgIGlmIGZtcHFf cG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPT0gLTE6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYu X3BhcmVudC56ZXJvKCkKKy0gICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlf bnVtcmVmKHNlbGYuX19wb2x5KSk6CisrICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1w cV9wb2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv cigiY29uc3RhbnQgdGVybSBzaG91bGQgYmUgMCBpbiBvcmRlciB0byB0YWtlIGFyY3NpbmUiKQor IAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25l dygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wcV9wb2x5X2FzaW5fc2VyaWVzKHJl cy5fX3BvbHksIHNlbGYuX19wb2x5LCBwcmVjKQorKyAgICAgICAgZm1wcV9wb2x5X2FzaW5fc2Vy aWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAgICAgICAgIHNpZ19vZmYoKQorICAg ICAgICAgcmV0dXJuIHJlcworIAorQEAgLTE4MzcsMTQgKzE4MzcsMTQgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6 IF8ucGFyZW50KCkKKyAgICAgICAgICAgICBVbml2YXJpYXRlIFBvbHlub21pYWwgUmluZyBpbiB4 IG92ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgZm1wcV9wb2x5 X2RlZ3JlZShzZWxmLl9fcG9seSkgPT0gLTE6CisrICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVl KHNlbGYuX3BvbHkpID09IC0xOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuemVy bygpCistICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxm Ll9fcG9seSkpOgorKyAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFfcG9seV9udW1y ZWYoc2VsZi5fcG9seSkpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNvbnN0YW50 IHRlcm0gc2hvdWxkIGJlIDAgaW4gb3JkZXIgdG8gdGFrZSBoeXBlcmJvbGljIGFyY3NpbmUiKQor IAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25l dygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wcV9wb2x5X2FzaW5oX3Nlcmllcyhy ZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZtcHFfcG9seV9hc2luaF9z ZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBwcmVjKQorICAgICAgICAgc2lnX29mZigpCisg ICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTg3MSwxNCArMTg3MSwxNCBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2Fn ZTogXy5wYXJlbnQoKQorICAgICAgICAgICAgIFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGlu IHggb3ZlciBSYXRpb25hbCBGaWVsZAorICAgICAgICAgIiIiCistICAgICAgICBpZiBmbXBxX3Bv bHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAtMToKKysgICAgICAgIGlmIGZtcHFfcG9seV9kZWdy ZWUoc2VsZi5fcG9seSkgPT0gLTE6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC56 ZXJvKCkKKy0gICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNl bGYuX19wb2x5KSk6CisrICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251 bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3Rh bnQgdGVybSBzaG91bGQgYmUgMCBpbiBvcmRlciB0byB0YWtlIHRhbmdlbnQiKQorIAorICAgICAg ICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgICAg ICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wcV9wb2x5X3Rhbl9zZXJpZXMocmVzLl9fcG9seSwg c2VsZi5fX3BvbHksIHByZWMpCisrICAgICAgICBmbXBxX3BvbHlfdGFuX3NlcmllcyhyZXMuX3Bv bHksIHNlbGYuX3BvbHksIHByZWMpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVy biByZXMKKyAKK0BAIC0xOTA1LDE0ICsxOTA1LDE0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9y YXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBfLnBhcmVudCgp CisgICAgICAgICAgICAgVW5pdmFyaWF0ZSBQb2x5bm9taWFsIFJpbmcgaW4geCBvdmVyIFJhdGlv bmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2Vs Zi5fX3BvbHkpID09IC0xOgorKyAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5 KSA9PSAtMToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Lnplcm8oKQorLSAgICAg ICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2VsZi5fX3BvbHkpKToK KysgICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX3Bv bHkpKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjb25zdGFudCB0ZXJtIHNob3Vs ZCBiZSAwIGluIG9yZGVyIHRvIHRha2Ugc2luZSIpCisgCisgICAgICAgICBjZGVmIFBvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCist ICAgICAgICBmbXBxX3BvbHlfc2luX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJl YykKKysgICAgICAgIGZtcHFfcG9seV9zaW5fc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwg cHJlYykKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTE5 MzcsMTQgKzE5MzcsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBv bHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IF8ucGFyZW50KCkKKyAgICAgICAgICAgICBV bml2YXJpYXRlIFBvbHlub21pYWwgUmluZyBpbiB4IG92ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAg ICAgICIiIgorLSAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkgPT0gLTE6 CisrICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID09IC0xOgorICAgICAg ICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuemVybygpCistICAgICAgICBlbGlmIG5vdCBmbXB6 X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9fcG9seSkpOgorKyAgICAgICAgZWxpZiBu b3QgZm1wel9pc196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2VsZi5fcG9seSkpOgorICAgICAgICAg ICAgIHJhaXNlIFZhbHVlRXJyb3IoImNvbnN0YW50IHRlcm0gc2hvdWxkIGJlIDAgaW4gb3JkZXIg dG8gdGFrZSBjb3NpbmUiKQorIAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2Zs aW50IHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wcV9w b2x5X2Nvc19zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIHByZWMpCisrICAgICAgICBm bXBxX3BvbHlfY29zX3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIHByZWMpCisgICAgICAg ICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0xOTY5LDE0ICsxOTY5LDE0 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAg ICAgICAgICAgICBzYWdlOiBfLnBhcmVudCgpCisgICAgICAgICAgICAgVW5pdmFyaWF0ZSBQb2x5 bm9taWFsIFJpbmcgaW4geCBvdmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0gICAg ICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xOgorKyAgICAgICAgaWYg Zm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMToKKyAgICAgICAgICAgICByZXR1cm4g c2VsZi5fcGFyZW50Lnplcm8oKQorLSAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFf cG9seV9udW1yZWYoc2VsZi5fX3BvbHkpKToKKysgICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVy byhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX3BvbHkpKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1 ZUVycm9yKCJjb25zdGFudCB0ZXJtIHNob3VsZCBiZSAwIGluIG9yZGVyIHRvIHRha2UgaHlwZXJi b2xpYyBzaW5lIikKKyAKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCBy ZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHFfcG9seV9z aW5oX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZtcHFf cG9seV9zaW5oX3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIHByZWMpCisgICAgICAgICBz aWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0yMDA3LDE0ICsyMDA3LDE0IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAg ICAgICAgICBzYWdlOiBfLnBhcmVudCgpCisgICAgICAgICAgICAgVW5pdmFyaWF0ZSBQb2x5bm9t aWFsIFJpbmcgaW4geCBvdmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0gICAgICAg IGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xOgorKyAgICAgICAgaWYgZm1w cV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMToKKyAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5fcGFyZW50Lm9uZSgpCistICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5 X251bXJlZihzZWxmLl9fcG9seSkpOgorKyAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZt cHFfcG9seV9udW1yZWYoc2VsZi5fcG9seSkpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy b3IoImNvbnN0YW50IHRlcm0gc2hvdWxkIGJlIDAgaW4gb3JkZXIgdG8gdGFrZSBoeXBlcmJvbGlj IGNvc2luZSIpCisgCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVz ID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3BvbHlfY29z aF9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIHByZWMpCisrICAgICAgICBmbXBxX3Bv bHlfY29zaF9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBwcmVjKQorICAgICAgICAgc2ln X29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMjA0MCwxNCArMjA0MCwxNCBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAg ICAgICAgc2FnZTogXy5wYXJlbnQoKQorICAgICAgICAgICAgIFVuaXZhcmlhdGUgUG9seW5vbWlh bCBSaW5nIGluIHggb3ZlciBSYXRpb25hbCBGaWVsZAorICAgICAgICAgIiIiCistICAgICAgICBp ZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAtMToKKysgICAgICAgIGlmIGZtcHFf cG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPT0gLTE6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYu X3BhcmVudC56ZXJvKCkKKy0gICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlf bnVtcmVmKHNlbGYuX19wb2x5KSk6CisrICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1w cV9wb2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv cigiY29uc3RhbnQgdGVybSBzaG91bGQgYmUgMCBpbiBvcmRlciB0byB0YWtlIGh5cGVyYm9saWMg dGFuZ2VudCIpCisgCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVz ID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3BvbHlfdGFu aF9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIHByZWMpCisrICAgICAgICBmbXBxX3Bv bHlfdGFuaF9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBwcmVjKQorICAgICAgICAgc2ln X29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvcmlu Z3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3JlYWxfbXBmcl9kZW5zZS5weXggYi9zcmMvc2FnZS9y aW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmVhbF9tcGZyX2RlbnNlLnB5eAoraW5kZXggZmJl OTZkMTg2YzUuLjk1NWY4MzQ2OGU0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9wb2x5bm9taWFsX3JlYWxfbXBmcl9kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvcG9seW5vbWlhbF9yZWFsX21wZnJfZGVuc2UucHl4CitAQCAtMTE2LDcgKzEx Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbFJlYWxEZW5zZShQb2x5bm9taWFsKToKKyAgICAg ICAgIFBvbHlub21pYWwuX19pbml0X18oc2VsZiwgcGFyZW50LCBpc19nZW49aXNfZ2VuKQorICAg ICAgICAgc2VsZi5fYmFzZV9yaW5nID0gcGFyZW50Ll9iYXNlCisgICAgICAgICBjZGVmIFB5X3Nz aXplX3QgaSwgZGVncmVlCistICAgICAgICBjZGVmIGludCBwcmVjID0gc2VsZi5fYmFzZV9yaW5n Ll9fcHJlYworKyAgICAgICAgY2RlZiBpbnQgcHJlYyA9IHNlbGYuX2Jhc2VfcmluZy5fcHJlYwor ICAgICAgICAgY2RlZiBtcGZyX3JuZF90IHJuZCA9IHNlbGYuX2Jhc2VfcmluZy5ybmQKKyAgICAg ICAgIGlmIHggaXMgTm9uZToKKyAgICAgICAgICAgICBzZWxmLl9jb2VmZnMgPSA8bXBmcl90Kj5j aGVja19hbGxvY2FycmF5KDEsIHNpemVvZihtcGZyX3QpKSAjIGRlZ3JlZSB6ZXJvCitAQCAtMjI3 LDcgKzIyNyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbFJlYWxEZW5zZShQb2x5bm9taWFsKToK KyAKKyAgICAgY2RlZiBQb2x5bm9taWFsUmVhbERlbnNlIF9uZXcoc2VsZiwgUHlfc3NpemVfdCBk ZWdyZWUpOgorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGkKKy0gICAgICAgIGNkZWYgaW50IHBy ZWMgPSBzZWxmLl9iYXNlX3JpbmcuX19wcmVjCisrICAgICAgICBjZGVmIGludCBwcmVjID0gc2Vs Zi5fYmFzZV9yaW5nLl9wcmVjCisgICAgICAgICBjZGVmIFBvbHlub21pYWxSZWFsRGVuc2UgZiA9 IDxQb2x5bm9taWFsUmVhbERlbnNlPlBvbHlub21pYWxSZWFsRGVuc2UuX19uZXdfXyhQb2x5bm9t aWFsUmVhbERlbnNlKQorICAgICAgICAgZi5fcGFyZW50ID0gc2VsZi5fcGFyZW50CisgICAgICAg ICBmLl9iYXNlX3JpbmcgPSBzZWxmLl9iYXNlX3JpbmcKK0BAIC01MDEsNyArNTAxLDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsUmVhbERlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICBmID0gbGVmdC5fbmV3KGxlZnQuX2RlZ3JlZSArIHJpZ2h0Ll9kZWdyZWUp CisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgbXBmcl9pbml0Mih0bXAsIGxlZnQuX2Jhc2Vf cmluZy5fX3ByZWMpCisrICAgICAgICBtcGZyX2luaXQyKHRtcCwgbGVmdC5fYmFzZV9yaW5nLl9w cmVjKQorICAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPD0gZi5fZGVncmVlOgorICAgICAgICAg ICAgICMgWWVzLCB3ZSBjb3VsZCBtYWtlIHRoaXMgbW9yZSBlZmZpY2llbnQgYnkgaW5pdGlhbGl6 aW5nIHdpdGgKKyAgICAgICAgICAgICAjIGEgbXVsdGlwbGUgb2YgbGVmdCByYXRoZXIgdGhhbiBh bGwgemVyb3MuLi4KK0BAIC02NjEsNyArNjYxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsUmVh bERlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgcSA9IHNlbGYuX25ldyhzZWxmLl9kZWdyZWUg LSBvdGhlci5fZGVncmVlKQorICAgICAgICAgIyBUaGlzIGlzIHRoZSBzdGFuZGFyZCBkaXZpc2lv biBhbGdvcml0aG0KKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBtcGZyX2luaXQyKHRtcCwg c2VsZi5fYmFzZV9yaW5nLl9fcHJlYykKKysgICAgICAgIG1wZnJfaW5pdDIodG1wLCBzZWxmLl9i YXNlX3JpbmcuX3ByZWMpCisgICAgICAgICBmb3IgaSBmcm9tIHNlbGYuX2RlZ3JlZSA+PSBpID49 IG90aGVyLl9kZWdyZWU6CisgICAgICAgICAgICAgbXBmcl9zZXQocS5fY29lZmZzW2ktb3RoZXIu X2RlZ3JlZV0sIHIuX2NvZWZmc1tpXSwgcm5kKQorICAgICAgICAgICAgIGZvciBqIGZyb20gMCA8 PSBqIDwgb3RoZXIuX2RlZ3JlZToKK0BAIC03MjUsNyArNzI1LDcgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsUmVhbERlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHgg PSA8UmVhbE51bWJlcj54eAorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHJlcworIAorLSAgICAg ICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+eC5fcGFyZW50KS5fX3ByZWMgPCBzZWxmLl9iYXNlX3Jp bmcuX19wcmVjOgorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+eC5fcGFyZW50KS5fcHJl YyA8IHNlbGYuX2Jhc2VfcmluZy5fcHJlYzoKKyAgICAgICAgICAgICByZXMgPSBSZWFsTnVtYmVy KHguX3BhcmVudCkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmVzID0gUmVhbE51bWJl cihzZWxmLl9iYXNlX3JpbmcpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9wb2x5bm9taWFsX3ptb2RfZmxpbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9w b2x5bm9taWFsX3ptb2RfZmxpbnQucHl4CitpbmRleCAyNTNhYjk0OWZjYy4uNGM0ODA2NzM4NjEg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfem1vZF9m bGludC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF96bW9k X2ZsaW50LnB5eAorQEAgLTExMCw3ICsxMTAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfem1v ZF9mbGludChQb2x5bm9taWFsX3RlbXBsYXRlKToKKyAgICAgICAgICAgICByZXR1cm4KKyAgICAg ICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQpOgor ICAgICAgICAgICAgIFBvbHlub21pYWxfdGVtcGxhdGUuX19pbml0X18oc2VsZiwgcGFyZW50LCAw LCBjaGVjaywgaXNfZ2VuLCBjb25zdHJ1Y3QpCistICAgICAgICAgICAgc2VsZi5fc2V0X2ZtcHpf cG9seSgoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD54KS5fX3BvbHkpCisrICAgICAg ICAgICAgc2VsZi5fc2V0X2ZtcHpfcG9seSgoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dD54KS5fcG9seSkKKyAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgaWYgaXNpbnN0YW5jZSh4LCBudGxfenpfcFgpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3JpbmdzL3Bvd2VyX3Nlcmllc19tcG9seS5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJp ZXNfbXBvbHkucHhkCitpbmRleCBmODIyZWNjMTIyNy4uZDM1OGFkYTEzNTYgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfbXBvbHkucHhkCisrKysgYi9zcmMvc2FnZS9y aW5ncy9wb3dlcl9zZXJpZXNfbXBvbHkucHhkCitAQCAtMyw2ICszLDYgQEAgZnJvbSAucG93ZXJf c2VyaWVzX3JpbmdfZWxlbWVudCBjaW1wb3J0IFBvd2VyU2VyaWVzCisgCisgY2RlZiBjbGFzcyBQ b3dlclNlcmllc19tcG9seShQb3dlclNlcmllcyk6CisgICAgIGNkZWYgTW9kdWxlRWxlbWVudCBf X2YKKy0gICAgY2RlZiBvYmplY3QgX19wb2x5CisrICAgIGNkZWYgb2JqZWN0IF9wb2x5CisgICAg IGNkZWYgb2JqZWN0IF9fbGlzdAorICAgICBjZGVmIGJpbnQgX3RydW5jYXRlZAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19tcG9seS5weXggYi9zcmMvc2FnZS9yaW5n cy9wb3dlcl9zZXJpZXNfbXBvbHkucHl4CitpbmRleCAwYzkwMWEzNTU3Yi4uYmU1OTI5NGU3NWIg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfbXBvbHkucHl4CisrKysg Yi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfbXBvbHkucHl4CitAQCAtNjUsNyArNjUsNyBA QCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzX21wb2x5KFBvd2VyU2VyaWVzKToKKyAKKyAgICAgZGVm IF9fcmVkdWNlX18oc2VsZik6CisgICAgICAgICAjIGRvICpub3QqIGRlbGV0ZSBvbGQgdmVyc2lv bnMuCistICAgICAgICByZXR1cm4gbWFrZV9wb3dlcnNlcmllc19tcG9seV92MCwgKHNlbGYuX3Bh cmVudCwgc2VsZi5fX2YsIHNlbGYuX3ByZWMsIHNlbGYuX19pc19nZW4pCisrICAgICAgICByZXR1 cm4gbWFrZV9wb3dlcnNlcmllc19tcG9seV92MCwgKHNlbGYuX3BhcmVudCwgc2VsZi5fX2YsIHNl bGYuX3ByZWMsIHNlbGYuX2lzX2dlbikKKyAKKyAgICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdz LCAqKmt3ZHMpOgorICAgICAgICAgaWYgbGVuKGt3ZHMpID09IDAgYW5kIGxlbihhcmdzKSA9PSAx OgorQEAgLTkyLDEwICs5MiwxMCBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzX21wb2x5KFBvd2Vy U2VyaWVzKToKKyAgICAgICAgIHJldHVybiBzZWxmLl9fbGlzdAorIAorICAgICBkZWYgcG9seW5v bWlhbChzZWxmKToKKy0gICAgICAgIGlmIHNlbGYuX19wb2x5IGlzIE5vbmU6CisrICAgICAgICBp ZiBzZWxmLl9wb2x5IGlzIE5vbmU6CisgICAgICAgICAgICAgUyA9IHNlbGYucGFyZW50KCkuX21w b2x5X3JpbmcoKQorLSAgICAgICAgICAgIHNlbGYuX19wb2x5ID0gc2VsZi5fX2YucG9seW5vbWlh bChTLmdlbnMoKVstMV0pCistICAgICAgICByZXR1cm4gc2VsZi5fX3BvbHkKKysgICAgICAgICAg ICBzZWxmLl9wb2x5ID0gc2VsZi5fX2YucG9seW5vbWlhbChTLmdlbnMoKVstMV0pCisrICAgICAg ICByZXR1cm4gc2VsZi5fcG9seQorIAorICAgICBkZWYgX21wb2x5KHNlbGYpOgorICAgICAgICAg cmV0dXJuIHNlbGYuX19mCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVz X3BvbHkucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3BvbHkucHl4CitpbmRleCA3 YzkzMTY4ZDRiMS4uNmNhY2FiMWYwYzggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb3dl cl9zZXJpZXNfcG9seS5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19wb2x5 LnB5eAorQEAgLTk3LDcgKzk3LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllc19wb2x5KFBvd2Vy U2VyaWVzKToKKyAgICAgICAgICAgICBzYWdlOiBmID09IGxvYWRzKGR1bXBzKGYpKSAjIGluZGly ZWN0IGRvY3Rlc3QKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJl dHVybiBzZWxmLl9fY2xhc3NfXywgKHNlbGYuX3BhcmVudCwgc2VsZi5fX2YsIHNlbGYuX3ByZWMs IHNlbGYuX19pc19nZW4pCisrICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18sIChzZWxmLl9w YXJlbnQsIHNlbGYuX19mLCBzZWxmLl9wcmVjLCBzZWxmLl9pc19nZW4pCisgCisgICAgIGRlZiBw b2x5bm9taWFsKHNlbGYpOgorICAgICAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvcmlu Z3MvcG93ZXJfc2VyaWVzX3JpbmdfZWxlbWVudC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9z ZXJpZXNfcmluZ19lbGVtZW50LnB4ZAoraW5kZXggMDY3YzRmM2M2ZDQuLmU1YzAzMWVlMTQ3IDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3JpbmdfZWxlbWVudC5weGQK KysrKyBiL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19yaW5nX2VsZW1lbnQucHhkCitAQCAt MSw3ICsxLDcgQEAKKyBmcm9tIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQgY2ltcG9ydCBBbGdlYnJh RWxlbWVudCwgUmluZ0VsZW1lbnQKKyAKKyBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzKEFsZ2VicmFF bGVtZW50KToKKy0gICAgY2RlZiBjaGFyIF9faXNfZ2VuCisrICAgIGNkZWYgY2hhciBfaXNfZ2Vu CisgICAgIGNkZWYgX3ByZWMKKyAgICAgY2RlZiBjb21tb25fcHJlY19jKHNlbGYsIFBvd2VyU2Vy aWVzIG90aGVyKQorICAgICAjX3ByZWMoc2VsZiwgUmluZ0VsZW1lbnQgcmlnaHRfcikKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcmluZ19lbGVtZW50LnB5eCBiL3Ny Yy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19yaW5nX2VsZW1lbnQucHl4CitpbmRleCA1NDMxNGQ1 MzhlZC4uZTVlMmRmNzllMWIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJp ZXNfcmluZ19lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3Jp bmdfZWxlbWVudC5weXgKK0BAIC0xNTksNyArMTU5LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmll cyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAgICAgIG92ZXIgRmluaXRlIEZpZWxkIG9mIHNp emUgMworICAgICAgICAgIiIiCisgICAgICAgICBBbGdlYnJhRWxlbWVudC5fX2luaXRfXyhzZWxm LCBwYXJlbnQpCistICAgICAgICBzZWxmLl9faXNfZ2VuID0gaXNfZ2VuCisrICAgICAgICBzZWxm Ll9pc19nZW4gPSBpc19nZW4KKyAgICAgICAgIHNlbGYuX3ByZWMgPSBwcmVjCisgCisgICAgIGRl ZiBfX2hhc2hfXyhzZWxmKToKK0BAIC0yMzQsNyArMjM0LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNl cmllcyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogMSp0ID09IHQKKyAgICAg ICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBib29sKHNlbGYuX19p c19nZW4pCisrICAgICAgICByZXR1cm4gYm9vbChzZWxmLl9pc19nZW4pCisgCisgICAgIGRlZiBf aW1fZ2Vuc18oc2VsZiwgY29kb21haW4sIGltX2dlbnMsIGJhc2VfbWFwPU5vbmUpOgorICAgICAg ICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB4ZCBiL3NyYy9z YWdlL3JpbmdzL3JlYWxfbXBmaS5weGQKK2luZGV4IDk1OWE2NTBhYWZjLi40MjAxNzg4ZDE5OCAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmaS5weGQKKysrKyBiL3NyYy9zYWdl L3JpbmdzL3JlYWxfbXBmaS5weGQKK0BAIC0xMSw3ICsxMSw3IEBAIGZyb20gLnJlYWxfbXBmciBj aW1wb3J0IFJlYWxGaWVsZF9jbGFzcworIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRFbGVt ZW50KFJpbmdFbGVtZW50KSAgIyBmb3J3YXJkIGRlY2wKKyAKKyBjZGVmIGNsYXNzIFJlYWxJbnRl cnZhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxkKToKKy0gICAg Y2RlZiBtcGZyX3ByZWNfdCBfX3ByZWMKKysgICAgY2RlZiBtcGZyX3ByZWNfdCBfcHJlYworICAg ICBjZGVmIGJpbnQgc2NpX25vdAorICAgICAjIENhY2hlIFJlYWxGaWVsZCBpbnN0YW5jZXMgZm9y IHRoZSBsb3dlciwgdXBwZXIsIGFuZCBtaWRkbGUgYm91bmRzLgorICAgICAjIFRoZXNlIGhhdmUg dGhlIHNhbWUgcHJlY2lzaW9uIGFzIHRoZSBpbnRlcnZhbCBmaWVsZDsKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9yaW5ncy9yZWFsX21wZmkucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB5 eAoraW5kZXggMTE5M2ExNGJhZmYuLjUwOWY2ZjYzZGEwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv cmluZ3MvcmVhbF9tcGZpLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB5eAor QEAgLTUyNiw3ICs1MjYsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzKHNh Z2UucmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxkKToKKyAgICAgICAgIGlmIHByZWMgPCBNUEZS X1BSRUNfTUlOIG9yIHByZWMgPiBNUEZSX1BSRUNfTUFYOgorICAgICAgICAgICAgIHJhaXNlIFZh bHVlRXJyb3IoInByZWMgKD0lcykgbXVzdCBiZSA+PSAlcyBhbmQgPD0gJXMuIiAlICgKKyAgICAg ICAgICAgICAgICAgcHJlYywgTVBGUl9QUkVDX01JTiwgTVBGUl9QUkVDX01BWCkpCistICAgICAg ICBzZWxmLl9fcHJlYyA9IHByZWMKKysgICAgICAgIHNlbGYuX3ByZWMgPSBwcmVjCisgICAgICAg ICBzZWxmLnNjaV9ub3QgPSBzY2lfbm90CisgICAgICAgICBzZWxmLl9fbG93ZXJfZmllbGQgPSBS ZWFsRmllbGQocHJlYywgc2NpX25vdCwgIlJOREQiKQorICAgICAgICAgc2VsZi5fX21pZGRsZV9m aWVsZCA9IFJlYWxGaWVsZChwcmVjLCBzY2lfbm90LCAiUk5ETiIpCitAQCAtNTk4LDcgKzU5OCw3 IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVh bEludGVydmFsRmllbGQpOgorICAgICAgICAgZWxpZiBybmQgPT0gIlJORFUiOgorICAgICAgICAg ICAgIHJldHVybiBzZWxmLnVwcGVyX2ZpZWxkKCkKKyAgICAgICAgIGVsc2U6CistICAgICAgICAg ICAgcmV0dXJuIFJlYWxGaWVsZChzZWxmLl9fcHJlYywgc2VsZi5zY2lfbm90LCBybmQpCisrICAg ICAgICAgICAgcmV0dXJuIFJlYWxGaWVsZChzZWxmLl9wcmVjLCBzZWxmLnNjaV9ub3QsIHJuZCkK KyAKKyAgICAgZGVmIF9yZXByXyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTYxMSw3ICs2MTEs NyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJl YWxJbnRlcnZhbEZpZWxkKToKKyAgICAgICAgICAgICBzYWdlOiBSZWFsSW50ZXJ2YWxGaWVsZCgy MDApICMgaW5kaXJlY3QgZG9jdGVzdAorICAgICAgICAgICAgIFJlYWwgSW50ZXJ2YWwgRmllbGQg d2l0aCAyMDAgYml0cyBvZiBwcmVjaXNpb24KKyAgICAgICAgICIiIgorLSAgICAgICAgcyA9ICJS ZWFsIEludGVydmFsIEZpZWxkIHdpdGggJXMgYml0cyBvZiBwcmVjaXNpb24iJXNlbGYuX19wcmVj CisrICAgICAgICBzID0gIlJlYWwgSW50ZXJ2YWwgRmllbGQgd2l0aCAlcyBiaXRzIG9mIHByZWNp c2lvbiIlc2VsZi5fcHJlYworICAgICAgICAgcmV0dXJuIHMKKyAKKyAgICAgZGVmIF9sYXRleF8o c2VsZik6CitAQCAtODAyLDcgKzgwMiw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRf Y2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEludGVydmFsRmllbGQpOgorICAgICAgICAgICAgIHNh Z2U6IFJJRi5oYXNfY29lcmNlX21hcF9mcm9tKGZsb2F0KQorICAgICAgICAgICAgIEZhbHNlCisg ICAgICAgICAiIiIKKy0gICAgICAgIHByZWMgPSBzZWxmLl9fcHJlYworKyAgICAgICAgcHJlYyA9 IHNlbGYuX3ByZWMKKyAKKyAgICAgICAgICMgRGlyZWN0IGFuZCBlZmZpY2llbnQgY29udmVyc2lv bnMKKyAgICAgICAgIGlmIFMgaXMgWlogb3IgUyBpcyBRUToKK0BAIC04MTAsNyArODEwLDcgQEAg Y2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsSW50 ZXJ2YWxGaWVsZCk6CisgICAgICAgICBpZiBTIGlzIGludCBvciBTIGlzIGxvbmc6CisgICAgICAg ICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgIGlmIGlzaW5zdGFuY2UoUywgUmVhbEludGVydmFs RmllbGRfY2xhc3MpOgorLSAgICAgICAgICAgIHJldHVybiAoPFJlYWxJbnRlcnZhbEZpZWxkX2Ns YXNzPlMpLl9fcHJlYyA+PSBwcmVjCisrICAgICAgICAgICAgcmV0dXJuICg8UmVhbEludGVydmFs RmllbGRfY2xhc3M+UykuX3ByZWMgPj0gcHJlYworICAgICAgICAgaWYgaXNpbnN0YW5jZShTLCBz YWdlLnJpbmdzLmFiYy5OdW1iZXJGaWVsZF9xdWFkcmF0aWMpOgorICAgICAgICAgICAgIHJldHVy biBTLmRpc2NyaW1pbmFudCgpID4gMAorIAorQEAgLTg0NCw3ICs4NDQsNyBAQCBjZGVmIGNsYXNz IFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxk KToKKyAgICAgICAgIGNkZWYgUmVhbEludGVydmFsRmllbGRfY2xhc3MgcmlnaHQKKyAgICAgICAg IGxlZnQgPSBzZWxmCisgICAgICAgICByaWdodCA9IG90aGVyICAjIHRvIGFjY2VzcyBDIHN0cnVj dHVyZQorLSAgICAgICAgcmV0dXJuIHJpY2hjbXAobGVmdC5fX3ByZWMsIHJpZ2h0Ll9fcHJlYywg b3ApCisrICAgICAgICByZXR1cm4gcmljaGNtcChsZWZ0Ll9wcmVjLCByaWdodC5fcHJlYywgb3Ap CisgCisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtODU2LDcg Kzg1Niw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5h YmMuUmVhbEludGVydmFsRmllbGQpOgorICAgICAgICAgICAgIHNhZ2U6IGxvYWRzKGR1bXBzKFIp KSA9PSBSCisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4g X19jcmVhdGVfX1JlYWxJbnRlcnZhbEZpZWxkX3ZlcnNpb24wLCAoc2VsZi5fX3ByZWMsIHNlbGYu c2NpX25vdCkKKysgICAgICAgIHJldHVybiBfX2NyZWF0ZV9fUmVhbEludGVydmFsRmllbGRfdmVy c2lvbjAsIChzZWxmLl9wcmVjLCBzZWxmLnNjaV9ub3QpCisgCisgICAgIGRlZiByYW5kb21fZWxl bWVudChzZWxmLCAqYXJncywgKiprd2RzKToKKyAgICAgICAgICIiIgorQEAgLTk5Nyw3ICs5OTcs NyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJl YWxJbnRlcnZhbEZpZWxkKToKKyAgICAgICAgICAgICBzYWdlOiBSZWFsSW50ZXJ2YWxGaWVsZCgy MDApLm5hbWUoKQorICAgICAgICAgICAgICdJbnRlcnZhbFJlYWxJbnRlcnZhbEZpZWxkMjAwJwor ICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gIkludGVydmFsUmVhbEludGVydmFsRmllbGQl cyIlKHNlbGYuX19wcmVjKQorKyAgICAgICAgcmV0dXJuICJJbnRlcnZhbFJlYWxJbnRlcnZhbEZp ZWxkJXMiJShzZWxmLl9wcmVjKQorIAorICAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAg ICAiIiIKK0BAIC0xMDIzLDcgKzEwMjMsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxk X2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxJbnRlcnZhbEZpZWxkKToKKyAgICAgICAgICAgICBz YWdlOiBSZWFsSW50ZXJ2YWxGaWVsZCgyMDApLnByZWNpc2lvbigpCisgICAgICAgICAgICAgMjAw CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9fcHJlYworKyAgICAgICAgcmV0 dXJuIHNlbGYuX3ByZWMKKyAKKyAgICAgcHJlYyA9IHByZWNpc2lvbgorIAorQEAgLTExODcsNyAr MTE4Nyw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50 KToKKyAgICAgICAgICAgICBzYWdlOiBUZXN0U3VpdGUoeCkucnVuKHNraXA9WyJfdGVzdF9lcSIs ICJfdGVzdF9waWNrbGluZyJdKQorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFJlYWxJbnRl cnZhbEZpZWxkX2NsYXNzIHAgPSA8UmVhbEludGVydmFsRmllbGRfY2xhc3M/PnBhcmVudAorLSAg ICAgICAgbXBmaV9pbml0MihzZWxmLnZhbHVlLCBwLl9fcHJlYykKKysgICAgICAgIG1wZmlfaW5p dDIoc2VsZi52YWx1ZSwgcC5fcHJlYykKKyAgICAgICAgIHNlbGYuX3BhcmVudCA9IHAKKyAKKyAg ICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgeCwgaW50IGJhc2U9MTApOgorQEAgLTE4NjQs NyArMTg2NCw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRFbGVtZW50KFJpbmdFbGVt ZW50KToKKyAKKyAgICAgICAgIGNkZWYgbXBfZXhwX3Qgc2VsZl9leHAKKyAgICAgICAgIGNkZWYg bXB6X3Qgc2VsZl96egorLSAgICAgICAgY2RlZiBtcGZyX3ByZWNfdCBwcmVjID0gKDxSZWFsSW50 ZXJ2YWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYworKyAgICAgICAgY2RlZiBtcGZy X3ByZWNfdCBwcmVjID0gKDxSZWFsSW50ZXJ2YWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9w cmVjCisgICAgICAgICBjZGVmIGNoYXIgKnp6X3N0cgorICAgICAgICAgY2RlZiBzaXplX3Qgenpf c3RyX21heGxlbgorIAorQEAgLTI5NzcsNyArMjk3Nyw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVy dmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBSZWFsSW50 ZXJ2YWxGaWVsZCgyMDApKDIuMSkucHJlY2lzaW9uKCkKKyAgICAgICAgICAgICAyMDAKKyAgICAg ICAgICIiIgorLSAgICAgICAgcmV0dXJuICg8UmVhbEludGVydmFsRmllbGRfY2xhc3M+c2VsZi5f cGFyZW50KS5fX3ByZWMKKysgICAgICAgIHJldHVybiAoPFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNz PnNlbGYuX3BhcmVudCkuX3ByZWMKKyAKKyAgICAgcHJlYyA9IHByZWNpc2lvbgorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weGQgYi9zcmMvc2FnZS9yaW5ncy9yZWFs X21wZnIucHhkCitpbmRleCAzNTQ5ZWNjZmQwMy4uZGQxOGU4NzcxNWIgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9yaW5ncy9yZWFsX21wZnIucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX21w ZnIucHhkCitAQCAtOSw3ICs5LDcgQEAgZnJvbSBzYWdlLmxpYnMubXBmci50eXBlcyBjaW1wb3J0 IG1wZnJfcHJlY190CisgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1l bnQuUmluZ0VsZW1lbnQpICAjIGZvcndhcmQgZGVjbAorIAorIGNkZWYgY2xhc3MgUmVhbEZpZWxk X2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxGaWVsZCk6CistICAgIGNkZWYgbXBmcl9wcmVjX3Qg X19wcmVjCisrICAgIGNkZWYgbXBmcl9wcmVjX3QgX3ByZWMKKyAgICAgY2RlZiBiaW50IHNjaV9u b3QKKyAgICAgY2RlZiBtcGZyX3JuZF90IHJuZAorICAgICBjZGVmIG9iamVjdCBybmRfc3RyCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZyLnB5eCBiL3NyYy9zYWdlL3Jpbmdz L3JlYWxfbXBmci5weXgKK2luZGV4IGVhN2ZmMDdhMjE2Li43NDQwZmFkZDI2NSAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3Jl YWxfbXBmci5weXgKK0BAIC01MjQsNyArNTI0LDcgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xh c3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAgICAgIGlmIHByZWMgPCBNUEZSX1BS RUNfTUlOIG9yIHByZWMgPiBNUEZSX1BSRUNfTUFYOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVl RXJyb3IoInByZWMgKD0lcykgbXVzdCBiZSA+PSAlcyBhbmQgPD0gJXMiICUgKAorICAgICAgICAg ICAgICAgICBwcmVjLCBNUEZSX1BSRUNfTUlOLCBNUEZSX1BSRUNfTUFYKSkKKy0gICAgICAgIHNl bGYuX19wcmVjID0gcHJlYworKyAgICAgICAgc2VsZi5fcHJlYyA9IHByZWMKKyAgICAgICAgIHNl bGYuc2NpX25vdCA9IHNjaV9ub3QKKyAKKyAgICAgICAgIHNlbGYucm5kID0gPG1wZnJfcm5kX3Q+ cm5kCitAQCAtNTYxLDcgKzU2MSw3IEBAIGNkZWYgY2xhc3MgUmVhbEZpZWxkX2NsYXNzKHNhZ2Uu cmluZ3MuYWJjLlJlYWxGaWVsZCk6CisgICAgICAgICAgICAgc2FnZTogUmVhbEZpZWxkKDE3LHJu ZD0nUk5ERCcpICMgaW5kaXJlY3QgZG9jdGVzdAorICAgICAgICAgICAgIFJlYWwgRmllbGQgd2l0 aCAxNyBiaXRzIG9mIHByZWNpc2lvbiBhbmQgcm91bmRpbmcgUk5ERAorICAgICAgICAgIiIiCist ICAgICAgICBzID0gIlJlYWwgRmllbGQgd2l0aCAlcyBiaXRzIG9mIHByZWNpc2lvbiIlc2VsZi5f X3ByZWMKKysgICAgICAgIHMgPSAiUmVhbCBGaWVsZCB3aXRoICVzIGJpdHMgb2YgcHJlY2lzaW9u IiVzZWxmLl9wcmVjCisgICAgICAgICBpZiBzZWxmLnJuZCAhPSBNUEZSX1JORE46CisgICAgICAg ICAgICAgcyA9IHMgKyAiIGFuZCByb3VuZGluZyAlcyIlKHNlbGYucm5kX3N0cikKKyAgICAgICAg IHJldHVybiBzCitAQCAtNzMzLDEzICs3MzMsMTMgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xh c3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAgICAgICAgICByZXR1cm4gWlp0b1JS KFpaLCBzZWxmKQorICAgICAgICAgZWxpZiBTIGlzIFFROgorICAgICAgICAgICAgIHJldHVybiBR UXRvUlIoUVEsIHNlbGYpCistICAgICAgICBlbGlmIChTIGlzIFJERiBvciBTIGlzIGZsb2F0KSBh bmQgc2VsZi5fX3ByZWMgPD0gNTM6CisrICAgICAgICBlbGlmIChTIGlzIFJERiBvciBTIGlzIGZs b2F0KSBhbmQgc2VsZi5fcHJlYyA8PSA1MzoKKyAgICAgICAgICAgICByZXR1cm4gZG91YmxlX3Rv UlIoUywgc2VsZikKKyAgICAgICAgIGVsaWYgUyBpcyBsb25nOgorICAgICAgICAgICAgIHJldHVy biBpbnRfdG9SUihsb25nLCBzZWxmKQorICAgICAgICAgZWxpZiBTIGlzIGludDoKKyAgICAgICAg ICAgICByZXR1cm4gaW50X3RvUlIoaW50LCBzZWxmKQorLSAgICAgICAgZWxpZiBpc2luc3RhbmNl KFMsIFJlYWxGaWVsZF9jbGFzcykgYW5kIFMucHJlYygpID49IHNlbGYuX19wcmVjOgorKyAgICAg ICAgZWxpZiBpc2luc3RhbmNlKFMsIFJlYWxGaWVsZF9jbGFzcykgYW5kIFMucHJlYygpID49IHNl bGYuX3ByZWM6CisgICAgICAgICAgICAgcmV0dXJuIFJSdG9SUihTLCBzZWxmKQorICAgICAgICAg ZWxpZiBRUS5oYXNfY29lcmNlX21hcF9mcm9tKFMpOgorICAgICAgICAgICAgIHJldHVybiBRUXRv UlIoUVEsIHNlbGYpICogUVEuX2ludGVybmFsX2NvZXJjZV9tYXBfZnJvbShTKQorQEAgLTc4Niw3 ICs3ODYsNyBAQCBjZGVmIGNsYXNzIFJlYWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFs RmllbGQpOgorICAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorIAorICAgICAgICAg X290aGVyID0gPFJlYWxGaWVsZF9jbGFzcz5vdGhlciAgIyB0byBhY2Nlc3MgQyBzdHJ1Y3R1cmUK Ky0gICAgICAgIHJldHVybiAoc2VsZi5fX3ByZWMgPT0gX290aGVyLl9fcHJlYyBhbmQKKysgICAg ICAgIHJldHVybiAoc2VsZi5fcHJlYyA9PSBfb3RoZXIuX3ByZWMgYW5kCisgICAgICAgICAgICAg ICAgIHNlbGYucm5kID09IF9vdGhlci5ybmQpID09IChvcCA9PSBQeV9FUSkKKyAKKyAgICAgZGVm IF9fcmVkdWNlX18oc2VsZik6CitAQCAtNzk5LDcgKzc5OSw3IEBAIGNkZWYgY2xhc3MgUmVhbEZp ZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxGaWVsZCk6CisgICAgICAgICAgICAgc2FnZTog bG9hZHMoZHVtcHMoUikpID09IFIKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0g ICAgICAgIHJldHVybiBfX2NyZWF0ZV9fUmVhbEZpZWxkX3ZlcnNpb24wLCAoc2VsZi5fX3ByZWMs IHNlbGYuc2NpX25vdCwgc2VsZi5ybmRfc3RyKQorKyAgICAgICAgcmV0dXJuIF9fY3JlYXRlX19S ZWFsRmllbGRfdmVyc2lvbjAsIChzZWxmLl9wcmVjLCBzZWxmLnNjaV9ub3QsIHNlbGYucm5kX3N0 cikKKyAKKyAgICAgZGVmIGNvbnN0cnVjdGlvbihzZWxmKToKKyAgICAgICAgIHIiIiIKK0BAIC05 NjgsNyArOTY4LDcgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMu UmVhbEZpZWxkKToKKyAgICAgICAgICAgICBzYWdlOiBSZWFsRmllbGQoMTAwLHJuZD0nUk5EVScp Lm5hbWUoKQorICAgICAgICAgICAgICdSZWFsRmllbGQxMDBfMicKKyAgICAgICAgICIiIgorLSAg ICAgICAgcmV0dXJuICJSZWFsRmllbGQlc18lcyIlKHNlbGYuX19wcmVjLHNlbGYucm5kKQorKyAg ICAgICAgcmV0dXJuICJSZWFsRmllbGQlc18lcyIlKHNlbGYuX3ByZWMsc2VsZi5ybmQpCisgCisg ICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTk5NSw3ICs5OTUsNyBA QCBjZGVmIGNsYXNzIFJlYWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsRmllbGQpOgor ICAgICAgICAgICAgIHNhZ2U6IFJlYWxGaWVsZCgyMCkucHJlY2lzaW9uKCkKKyAgICAgICAgICAg ICAyMAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gSW50ZWdlcihzZWxmLl9fcHJlYykK KysgICAgICAgIHJldHVybiBJbnRlZ2VyKHNlbGYuX3ByZWMpCisgCisgICAgIHByZWM9cHJlY2lz aW9uICMgYW4gYWxpYXMKKyAKK0BAIC0xMDMxLDcgKzEwMzEsNyBAQCBjZGVmIGNsYXNzIFJlYWxG aWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsRmllbGQpOgorICAgICAgICAgICAgIHNhZ2U6 IFIudG9fcHJlYygzMDApCisgICAgICAgICAgICAgUmVhbCBGaWVsZCB3aXRoIDMwMCBiaXRzIG9m IHByZWNpc2lvbiBhbmQgcm91bmRpbmcgUk5EWgorICAgICAgICAgIiIiCistICAgICAgICBpZiBw cmVjID09IHNlbGYuX19wcmVjOgorKyAgICAgICAgaWYgcHJlYyA9PSBzZWxmLl9wcmVjOgorICAg ICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVy biBSZWFsRmllbGQocHJlYywgc2VsZi5zY2lfbm90LCBzZWxmLnJuZCkKK0BAIC0xMDUyLDcgKzEw NTIsNyBAQCBjZGVmIGNsYXNzIFJlYWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsRmll bGQpOgorICAgICAgICAgICAgIDAuODg2MjI2OTI1NDUyNzU4MDEzNjQ5MDgzNzQxNjcwNTcyNTkx Mzk4Nzc0NzMKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHggPSBzZWxm Ll9uZXcoKQorLSAgICAgICAgaWYgc2VsZi5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNp Z19vbigpCisrICAgICAgICBpZiBzZWxmLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdf b24oKQorICAgICAgICAgIyBUaGUgZG9jcyBmb3IgbXBmcl9mcmVlX2NhY2hlIHNheSAiRnJlZSB0 aGUgY2FjaGUgdXNlZCBieQorICAgICAgICAgIyB0aGUgZnVuY3Rpb25zIGNvbXB1dGluZyBjb25z dGFudHMgaWYgbmVlZGVkIChjdXJyZW50bHkKKyAgICAgICAgICMgbXBmcl9jb25zdF9sb2cyLCBt cGZyX2NvbnN0X3BpIGFuZCBtcGZyX2NvbnN0X2V1bGVyKSIsIHNvCitAQCAtMTA2Miw3ICsxMDYy LDcgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxk KToKKyAgICAgICAgICMgZnVuY3Rpb25zLCBidXQgdGhpcyBmcmVlIGlzIG5lZWRlZCBmb3IgdGhl bSB0b28hCisgICAgICAgICBtcGZyX2ZyZWVfY2FjaGUoKQorICAgICAgICAgbXBmcl9jb25zdF9w aSh4LnZhbHVlLCBzZWxmLnJuZCkKKy0gICAgICAgIGlmIHNlbGYuX19wcmVjID4gU0lHX1BSRUNf VEhSRVNIT0xEOiBzaWdfb2ZmKCkKKysgICAgICAgIGlmIHNlbGYuX3ByZWMgPiBTSUdfUFJFQ19U SFJFU0hPTEQ6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgZGVmIGV1bGVy X2NvbnN0YW50KHNlbGYpOgorQEAgLTEwOTEsMTAgKzEwOTEsMTAgQEAgY2RlZiBjbGFzcyBSZWFs RmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAgICAgICAgICAwLjkx NTk2NTU5NDE3NzIxOTAxNTA1NDYwMzUxNDkzCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYg UmVhbE51bWJlciB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGlmIHNlbGYuX19wcmVjID4gU0lH X1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAgaWYgc2VsZi5fcHJlYyA+IFNJR19Q UkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIG1wZnJfZnJlZV9jYWNoZSgpCisgICAg ICAgICBtcGZyX2NvbnN0X2NhdGFsYW4oeC52YWx1ZSwgc2VsZi5ybmQpCistICAgICAgICBpZiBz ZWxmLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICBpZiBz ZWxmLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVy biB4CisgCisgICAgIGRlZiBsb2cyKHNlbGYpOgorQEAgLTExMTEsMTAgKzExMTEsMTAgQEAgY2Rl ZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAg ICAgICAgICAwLjY5MzE0NzE4MDU1OTk0NTMwOTQxNzIzMjEyMTQ2CisgICAgICAgICAiIiIKKyAg ICAgICAgIGNkZWYgUmVhbE51bWJlciB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGlmIHNlbGYu X19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAgaWYgc2VsZi5f cHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIG1wZnJfZnJlZV9j YWNoZSgpCisgICAgICAgICBtcGZyX2NvbnN0X2xvZzIoeC52YWx1ZSwgc2VsZi5ybmQpCistICAg ICAgICBpZiBzZWxmLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAg ICAgICBpZiBzZWxmLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKyAgICAg ICAgIHJldHVybiB4CisgCisgICAgIGRlZiByYW5kb21fZWxlbWVudChzZWxmLCBtaW49LTEsIG1h eD0xLCBkaXN0cmlidXRpb249Tm9uZSk6CitAQCAtMTE4MSw5ICsxMTgxLDkgQEAgY2RlZiBjbGFz cyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAgICAgIGlm IG4gPCAwOgorICAgICAgICAgICAgIHJhaXNlIEFyaXRobWV0aWNFcnJvcigibiBtdXN0IGJlIG5v bm5lZ2F0aXZlIikKKyAgICAgICAgIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAgaWYgc2VsZi5f X3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQgYW5kIG4gPCBTSUdfUFJFQ19USFJFU0hPTEQ6IHNp Z19vbigpCisrICAgICAgICBpZiBzZWxmLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEIGFuZCBu IDwgU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorICAgICAgICAgbXBmcl9mYWNfdWkoeC52 YWx1ZSwgbiwgc2VsZi5ybmQpCistICAgICAgICBpZiBzZWxmLl9fcHJlYyA+IFNJR19QUkVDX1RI UkVTSE9MRCBhbmQgbiA8IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICBp ZiBzZWxmLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEIGFuZCBuIDwgU0lHX1BSRUNfVEhSRVNI T0xEOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiByb3VuZGluZ19t b2RlKHNlbGYpOgorQEAgLTEzNDYsNyArMTM0Niw3IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihz YWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICBOYU4KKyAg ICAgICAgICIiIgorICAgICAgICAgY2RlZiBSZWFsRmllbGRfY2xhc3MgcCA9IDxSZWFsRmllbGRf Y2xhc3M/PnBhcmVudAorLSAgICAgICAgbXBmcl9pbml0MihzZWxmLnZhbHVlLCBwLl9fcHJlYykK KysgICAgICAgIG1wZnJfaW5pdDIoc2VsZi52YWx1ZSwgcC5fcHJlYykKKyAgICAgICAgIHNlbGYu X3BhcmVudCA9IHAKKyAKKyAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgeD0wLCBpbnQg YmFzZT0xMCk6CitAQCAtMTQ0Niw3ICsxNDQ2LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNh Z2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IG51 bXB5LmFycmF5KFsxLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMF0pLmR0eXBl ICAgICAgICAgICAjIG9wdGlvbmFsIC0gbnVtcHkKKyAgICAgICAgICAgICBkdHlwZSgnTycpCisg ICAgICAgICAiIiIKKy0gICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCku X19wcmVjIDw9IDUzOgorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50 KS5fcHJlYyA8PSA1MzoKKyAgICAgICAgICAgICByZXR1cm4gbnVtcHlfZG91YmxlX2ludGVyZmFj ZQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gbnVtcHlfb2JqZWN0X2ludGVy ZmFjZQorQEAgLTIwNzUsNyArMjA3NSw3IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0 cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAjIFRoaXMgYXZvaWRz IHRoZSBjb25mdXNpb24gYSBsb3Qgb2YgcGVvcGxlIGhhdmUgd2l0aCB0aGUgbGFzdAorICAgICAg ICAgICAgICMgMS0yIGJpbmFyeSBkaWdpdHMgYmVpbmcgd3JvbmcgZHVlIHRvIHJvdW5kaW5nIGNv bWluZyBmcm9tCisgICAgICAgICAgICAgIyByZXByZXNlbnRpbmcgbnVtYmVycyBpbiBiaW5hcnku CistICAgICAgICAgICAgZGlnaXRzID0gPHNpemVfdD4oKCg8UmVhbEZpZWxkX2NsYXNzPnNlbGYu X3BhcmVudCkuX19wcmVjIC0gMSkgKiBNX0xOMl9MTjEwKQorKyAgICAgICAgICAgIGRpZ2l0cyA9 IDxzaXplX3Q+KCgoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjIC0gMSkgKiBN X0xOMl9MTjEwKQorICAgICAgICAgICAgIGlmIGRpZ2l0cyA8IDI6CisgICAgICAgICAgICAgICAg IGRpZ2l0cyA9IDIKKyAKK0BAIC0yMzAzLDcgKzIzMDMsNyBAQCBjZGVmIGNsYXNzIFJlYWxOdW1i ZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICBpZiBzZ24g PT0gMDoKKyAgICAgICAgICAgICByZXR1cm4gegorIAorLSAgICAgICAgY2RlZiBtcGZyX3ByZWNf dCBwcmVjID0gKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMKKysgICAgICAg IGNkZWYgbXBmcl9wcmVjX3QgcHJlYyA9ICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCku X3ByZWMKKyAKKyAgICAgICAgIGlmIG1wZnJfaW5mX3Aoc2VsZi52YWx1ZSk6CisgICAgICAgICAg ICAgbXB6X3NldF91aSh6LnZhbHVlLCBFWFBfTUFYKzEtRVhQX01JTikKK0BAIC0yNzU3LDcgKzI3 NTcsNyBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5n RWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogUmVhbEZpZWxkKDEwMSkoLTEpLnByZWNpc2lv bigpCisgICAgICAgICAgICAgMTAxCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBJbnRl Z2VyKCg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjKQorKyAgICAgICAgcmV0 dXJuIEludGVnZXIoKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYykKKyAKKyAg ICAgcHJlYyA9IHByZWNpc2lvbiAjIGFsaWFzCisgCitAQCAtMzM2NCw3ICszMzY0LDcgQEAgY2Rl ZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgor ICAgICAgICAgY2RlZiB1bnNpZ25lZCBsb25nIHdvcmRzaXplID0gc2l6ZW9mKGxvbmcpKjgKKyAK KyAgICAgICAgIGNkZWYgbXBmcl9wcmVjX3QgcHJlYworLSAgICAgICAgcHJlYyA9ICg8UmVhbEZp ZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjCisrICAgICAgICBwcmVjID0gKDxSZWFsRmll bGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYworIAorICAgICAgICAgIyBXZSByb3VuZCB1cCB0 aGUgcHJlY2lzaW9uIHRvIHRoZSBuZWFyZXN0IG11bHRpcGxlIG9mIHdvcmRzaXplLgorICAgICAg ICAgY2RlZiBpbnQgcm91bmRlZF9wcmVjCitAQCAtMzY5OSw3ICszNjk5LDcgQEAgY2RlZiBjbGFz cyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAg ICAgZnJvbSAucmVhbF9tcGZpIGltcG9ydCBSZWFsSW50ZXJ2YWxGaWVsZAorIAorICAgICAgICAg Y2RlZiBtcGZyX3JuZF90IHJuZCA9ICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkucm5k CistICAgICAgICBjZGVmIG1wZnJfcHJlY190IHByZWMgPSAoPFJlYWxGaWVsZF9jbGFzcz5zZWxm Ll9wYXJlbnQpLl9fcHJlYworKyAgICAgICAgY2RlZiBtcGZyX3ByZWNfdCBwcmVjID0gKDxSZWFs RmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYworIAorICAgICAgICAgY2RlZiBSZWFsTnVt YmVyIGxvdywgaGlnaAorICAgICAgICAgY2RlZiBpbnQgb2RkCitAQCAtNDI0OSw5ICs0MjQ5LDkg QEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1l bnQpOgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHgKKyAgICAgICAgIGlmIG1wZnJfY21wX3Vp KHNlbGYudmFsdWUsIDApID49IDA6CisgICAgICAgICAgICAgeCA9IHNlbGYuX25ldygpCistICAg ICAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiAxMCpT SUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisrICAgICAgICAgICAgaWYgKDxSZWFsRmllbGRf Y2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IDEwKlNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29u KCkKKyAgICAgICAgICAgICBtcGZyX3NxcnQoeC52YWx1ZSwgc2VsZi52YWx1ZSwgKDxSZWFsRmll bGRfY2xhc3M+c2VsZi5fcGFyZW50KS5ybmQpCistICAgICAgICAgICAgaWYgKDxSZWFsRmllbGRf Y2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiAxMCpTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19v ZmYoKQorKyAgICAgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3By ZWMgPiAxMCpTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorICAgICAgICAgICAgIGlmIGFs bDoKKyAgICAgICAgICAgICAgICAgaWYgeC5pc196ZXJvKCk6CisgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gW3hdCitAQCAtNDI5NSwxMiArNDI5NSwxMiBAQCBjZGVmIGNsYXNzIFJlYWxOdW1i ZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgLTEu NDIxMDg1NDcxNTIwMjBlLTE0CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJl ciB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3Bh cmVudCkuX19wcmVjID4gMTAqU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAg aWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IDEwKlNJR19QUkVDX1RI UkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIG1wZnJfY2JydCh4LnZhbHVlLCBzZWxmLnZhbHVl LCAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLnJuZCkKKy0gICAgICAgIGlmICg8UmVh bEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gMTAqU0lHX1BSRUNfVEhSRVNIT0xE OiBzaWdfb2ZmKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCku X3ByZWMgPiAxMCpTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJu IHgKKyAKKy0gICAgZGVmIF9fcG93KHNlbGYsIFJlYWxOdW1iZXIgZXhwb25lbnQpOgorKyAgICBk ZWYgX3BvdyhzZWxmLCBSZWFsTnVtYmVyIGV4cG9uZW50KToKKyAgICAgICAgICIiIgorICAgICAg ICAgQ29tcHV0ZSBgYHNlbGZgYCByYWlzZWQgdG8gdGhlIHBvd2VyIG9mIGV4cG9uZW50LCByb3Vu ZGVkIGluIHRoZQorICAgICAgICAgZGlyZWN0aW9uIHNwZWNpZmllZCBieSB0aGUgcGFyZW50IG9m IGBgc2VsZmBgLgorQEAgLTQzMDksNyArNDMwOSw3IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihz YWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAKKyAgICAgICAgICAgICBzYWdl OiBSID0gUmVhbEZpZWxkKDMwKQorICAgICAgICAgICAgIHNhZ2U6IGEgPSBSKCcxLjIzNDU2JykK Ky0gICAgICAgICAgICBzYWdlOiBhLl9fcG93KDIwLjApCisrICAgICAgICAgICAgc2FnZTogYS5f cG93KDIwLjApCisgICAgICAgICAgICAgNjcuNjQ2Mjk3CisgICAgICAgICAiIiIKKyAgICAgICAg IGNkZWYgUmVhbE51bWJlciB4CitAQCAtNDQzNSw5ICs0NDM1LDkgQEAgY2RlZiBjbGFzcyBSZWFs TnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAg ICAgICByZXR1cm4gc2VsZi5fY29tcGxleF9udW1iZXJfKCkubG9nKGJhc2UpCisgICAgICAgICBp ZiBiYXNlIGlzIE5vbmUgb3IgYmFzZSA9PSAnZSc6CisgICAgICAgICAgICAgeCA9IHNlbGYuX25l dygpCistICAgICAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3By ZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisrICAgICAgICAgICAgaWYgKDxSZWFs RmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2ln X29uKCkKKyAgICAgICAgICAgICBtcGZyX2xvZyh4LnZhbHVlLCBzZWxmLnZhbHVlLCAoPFJlYWxG aWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLnJuZCkKKy0gICAgICAgICAgICBpZiAoPFJlYWxGaWVs ZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29m ZigpCisrICAgICAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJl YyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisgICAgICAgICAgICAgcmV0dXJuIHgK KyAgICAgICAgIGVsaWYgYmFzZSA9PSAxMDoKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5sb2cx MCgpCitAQCAtNDQ3Niw5ICs0NDc2LDkgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3Ry dWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgaWYgc2VsZiA8IDA6CisgICAg ICAgICAgICAgcmV0dXJuIHNlbGYuX2NvbXBsZXhfbnVtYmVyXygpLmxvZygyKQorICAgICAgICAg eCA9IHNlbGYuX25ldygpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJl bnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKysgICAgICAgIGlmICg8 UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6 IHNpZ19vbigpCisgICAgICAgICBtcGZyX2xvZzIoeC52YWx1ZSwgc2VsZi52YWx1ZSwgKDxSZWFs RmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5ybmQpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9j bGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigp CisrICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjID4gU0lH X1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRl ZiBsb2cxMChzZWxmKToKK0BAIC00NTEzLDkgKzQ1MTMsOSBAQCBjZGVmIGNsYXNzIFJlYWxOdW1i ZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICBpZiBzZWxm IDwgMDoKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29tcGxleF9udW1iZXJfKCkubG9nKDEw KQorICAgICAgICAgeCA9IHNlbGYuX25ldygpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFz cz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKysg ICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdfUFJF Q19USFJFU0hPTEQ6IHNpZ19vbigpCisgICAgICAgICBtcGZyX2xvZzEwKHgudmFsdWUsIHNlbGYu dmFsdWUsICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkucm5kKQorLSAgICAgICAgaWYg KDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hP TEQ6IHNpZ19vZmYoKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50 KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisgICAgICAgICByZXR1cm4g eAorIAorICAgICBkZWYgbG9nMXAoc2VsZik6CitAQCAtNDU2Miw5ICs0NTYyLDkgQEAgY2RlZiBj bGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAg ICAgICAgaWYgc2VsZiA8IC0xOgorICAgICAgICAgICAgIHJldHVybiAoc2VsZisxLjApLl9jb21w bGV4X251bWJlcl8oKS5sb2coKQorICAgICAgICAgeCA9IHNlbGYuX25ldygpCistICAgICAgICBp ZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVT SE9MRDogc2lnX29uKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVu dCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisgICAgICAgICBtcGZyX2xv ZzFwKHgudmFsdWUsIHNlbGYudmFsdWUsICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCku cm5kKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMg PiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRf Y2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigp CisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYgZXhwKHNlbGYpOgorQEAgLTQ2MjAsOSAr NDYyMCw5IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJp bmdFbGVtZW50KToKKyAgICAgICAgICAgICAxLjg5MTE3MjQ4MjUzMDIxZS0xMAorICAgICAgICAg IiIiCisgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgeCA9IHNlbGYuX25ldygpCistICAgICAgICBp ZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVT SE9MRDogc2lnX29uKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVu dCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisgICAgICAgICBtcGZyX2V4 cDIoeC52YWx1ZSwgc2VsZi52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5y bmQpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+ IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICBpZiAoPFJlYWxGaWVsZF9j bGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkK KyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiBleHAxMChzZWxmKToKK0BAIC00NjQ4LDkg KzQ2NDgsOSBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5S aW5nRWxlbWVudCk6CisgICAgICAgICAgICAgNS4wMTE4NzIzMzYyNzI3NmUtMzMKKyAgICAgICAg ICIiIgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAg aWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiBTSUdfUFJFQ19USFJF U0hPTEQ6IHNpZ19vbigpCisrICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJl bnQpLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorICAgICAgICAgbXBmcl9l eHAxMCh4LnZhbHVlLCBzZWxmLnZhbHVlLCAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQp LnJuZCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVj ID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxk X2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYo KQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgZGVmIGV4cG0xKHNlbGYpOgorQEAgLTQ2NzIs OSArNDY3Miw5IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50 LlJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAxLjAwMDAwMDAwMDAwMDAwZS0xNgorICAgICAg ICAgIiIiCisgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgeCA9IHNlbGYuX25ldygpCistICAgICAg ICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RI UkVTSE9MRDogc2lnX29uKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3Bh cmVudCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisgICAgICAgICBtcGZy X2V4cG0xKHgudmFsdWUsIHNlbGYudmFsdWUsICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVu dCkucm5kKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3By ZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorKyAgICAgICAgaWYgKDxSZWFsRmll bGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29m ZigpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYgZWludChzZWxmKToKK0BAIC00Njk0 LDkgKzQ2OTQsOSBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVu dC5SaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgLTAuMjE5MzgzOTM0Mzk1NTIwCisgICAgICAg ICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAg IGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gU0lHX1BSRUNfVEhS RVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFy ZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIG1wZnJf ZWludCh4LnZhbHVlLCBzZWxmLnZhbHVlLCAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQp LnJuZCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVj ID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRf Y2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkK KyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiBjb3Moc2VsZik6CitAQCAtNTEyNSw5ICs1 MTI1LDkgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmlu Z0VsZW1lbnQpOgorICAgICAgICAgICAgIF9vdGhlciA9IHNlbGYuX3BhcmVudChvdGhlcikKKyAK KyAgICAgICAgIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+ c2VsZi5fcGFyZW50KS5fX3ByZWMgPiAxMDAwMDogc2lnX29uKCkKKysgICAgICAgIGlmICg8UmVh bEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiAxMDAwMDogc2lnX29uKCkKKyAgICAg ICAgIG1wZnJfYWdtKHgudmFsdWUsIHNlbGYudmFsdWUsIF9vdGhlci52YWx1ZSwgKDxSZWFsRmll bGRfY2xhc3M+c2VsZi5fcGFyZW50KS5ybmQpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFz cz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IDEwMDAwOiBzaWdfb2ZmKCkKKysgICAgICAgIGlmICg8 UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiAxMDAwMDogc2lnX29mZigpCisg ICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYgZXJmKHNlbGYpOgorQEAgLTUyODAsOSArNTI4 MCw5IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdF bGVtZW50KToKKyAgICAgICAgICAgICAwLjg4NjIyNjkyNTQ1Mjc1OAorICAgICAgICAgIiIiCisg ICAgICAgICBjZGVmIFJlYWxOdW1iZXIgeCA9IHNlbGYuX25ldygpCistICAgICAgICBpZiAoPFJl YWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDog c2lnX29uKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3By ZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisgICAgICAgICBtcGZyX2dhbW1hKHgu dmFsdWUsIHNlbGYudmFsdWUsICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkucm5kKQor LSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiBTSUdf UFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+ c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisgICAg ICAgICByZXR1cm4geAorIAorICAgICBkZWYgbG9nX2dhbW1hKHNlbGYpOgorQEAgLTUzMDYsMTAg KzUzMDYsMTAgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQu UmluZ0VsZW1lbnQpOgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHggPSBzZWxmLl9uZXcoKQor ICAgICAgICAgcGFyZW50ID0gKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KQorICAgICAg ICAgaWYgbm90IG1wZnJfc2duKHNlbGYudmFsdWUpIDwgMDoKKy0gICAgICAgICAgICBpZiBwYXJl bnQuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOgorKyAgICAgICAgICAgIGlmIHBhcmVudC5f cHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDoKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKyAg ICAgICAgICAgICBtcGZyX2xuZ2FtbWEoeC52YWx1ZSwgc2VsZi52YWx1ZSwgcGFyZW50LnJuZCkK Ky0gICAgICAgICAgICBpZiBwYXJlbnQuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOgorKyAg ICAgICAgICAgIGlmIHBhcmVudC5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDoKKyAgICAgICAg ICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgcmV0dXJuIHgKKyAgICAgICAgIGZyb20g c2FnZS5saWJzLm1wbWF0aC51dGlscyBpbXBvcnQgY2FsbAorQEAgLTU1MzQsNyArNTUzNCw3IEBA IGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50 KToKKyAKKyAgICAgICAgIGNkZWYgUmVhbEZpZWxkX2NsYXNzIGZsZCA9IDxSZWFsRmllbGRfY2xh c3M+c2VsZi5fcGFyZW50CisgCistICAgICAgICBpZiBhbGdvcml0aG0gPT0gMCBhbmQgbiA8PSAx MDAwMCAvIGZsZC5fX3ByZWM6CisrICAgICAgICBpZiBhbGdvcml0aG0gPT0gMCBhbmQgbiA8PSAx MDAwMCAvIGZsZC5fcHJlYzoKKyAgICAgICAgICAgICAjIFRoaXMgaXMgYSByb3VnaCBlc3RpbWF0 ZSBmb3Igd2hlbiBpdCBpcyBwcm9iYWJseQorICAgICAgICAgICAgICMgZmFzdGVyIHRvIGNhbGwg bXBmciBkaXJlY3RseS4gIChUaGlzIGlzIGEgcHJldHR5CisgICAgICAgICAgICAgIyBnb29kIGVz dGltYXRlIG9uIG9uZSBwYXJ0aWN1bGFyIG1hY2hpbmUsIGEKK0BAIC01NjM5LDcgKzU2MzksNyBA QCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVu dCk6CisgCisgICAgICAgICBmcm9tIC5yZWFsX21wZmkgaW1wb3J0IFJlYWxJbnRlcnZhbEZpZWxk CisgCistICAgICAgICBjZGVmIG1wZnJfcHJlY190IHByZWMgPSBmbGQuX19wcmVjICsgMTAKKysg ICAgICAgIGNkZWYgbXBmcl9wcmVjX3QgcHJlYyA9IGZsZC5fcHJlYyArIDEwCisgCisgICAgICAg ICBjZGVmIFJlYWxOdW1iZXIgbG93ZXIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB1cHBlcgor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3JpbmcucHhkIGIvc3JjL3NhZ2UvcmluZ3Mvcmlu Zy5weGQKK2luZGV4IDkzODRmMzlmMjU4Li4xMzIyNjk3Njg4ZiAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3JpbmdzL3JpbmcucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9yaW5nLnB4ZAorQEAgLTcs NyArNyw3IEBAIGNkZWYgY2xhc3MgUmluZyhQYXJlbnRXaXRoR2Vucyk6CisgICAgIGNkZWYgcHVi bGljIG9iamVjdCBfb25lX2VsZW1lbnQKKyAgICAgY2RlZiBwdWJsaWMgb2JqZWN0IF96ZXJvX2lk ZWFsCisgICAgIGNkZWYgcHVibGljIG9iamVjdCBfdW5pdF9pZGVhbAorLSAgICBjZGVmIHB1Ymxp YyBvYmplY3QgX19pZGVhbF9tb25vaWQKKysgICAgY2RlZiBwdWJsaWMgb2JqZWN0IF9pZGVhbF9t b25vaWQKKyAKKyAKKyBjZGVmIGNsYXNzIENvbW11dGF0aXZlUmluZyhSaW5nKToKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9yaW5ncy9yaW5nLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3JpbmcucHl4Citp bmRleCA0Y2JhMmM5YmE3Zi4uOGFjZjQzODMyNzAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5n cy9yaW5nLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcmluZy5weXgKK0BAIC0zMjUsMTIgKzMy NSwxMiBAQCBjZGVmIGNsYXNzIFJpbmcoUGFyZW50V2l0aEdlbnMpOgorICAgICAgICAgICAgICBi eSB0aGUgaWRlYWwgKHgqeSArIHkqeiwgeCp4ICsgeCp5IC0geSp4IC0geSp5KQorIAorICAgICAg ICAgIiIiCistICAgICAgICBpZiBzZWxmLl9faWRlYWxfbW9ub2lkIGlzIG5vdCBOb25lOgorLSAg ICAgICAgICAgIHJldHVybiBzZWxmLl9faWRlYWxfbW9ub2lkCisrICAgICAgICBpZiBzZWxmLl9p ZGVhbF9tb25vaWQgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2lkZWFs X21vbm9pZAorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBmcm9tIHNhZ2UucmluZ3Mubm9u Y29tbXV0YXRpdmVfaWRlYWxzIGltcG9ydCBJZGVhbE1vbm9pZF9uYworICAgICAgICAgICAgIE0g PSBJZGVhbE1vbm9pZF9uYyhzZWxmKQorLSAgICAgICAgICAgIHNlbGYuX19pZGVhbF9tb25vaWQg PSBNCisrICAgICAgICAgICAgc2VsZi5faWRlYWxfbW9ub2lkID0gTQorICAgICAgICAgICAgIHJl dHVybiBNCisgCisgICAgIGRlZiBpZGVhbChzZWxmLCAqYXJncywgKiprd2RzKToKK0BAIC0xMTA2 LDEyICsxMTA2LDEyIEBAIGNkZWYgY2xhc3MgUmluZyhQYXJlbnRXaXRoR2Vucyk6CisgICAgICAg ICAgICAgc2FnZTogUi48eD49UVFbXTsgUi5pZGVhbF9tb25vaWQoKQorICAgICAgICAgICAgIE1v bm9pZCBvZiBpZGVhbHMgb2YgVW5pdmFyaWF0ZSBQb2x5bm9taWFsIFJpbmcgaW4geCBvdmVyIFJh dGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIHNlbGYuX19pZGVhbF9tb25v aWQgaXMgbm90IE5vbmU6CistICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19pZGVhbF9tb25vaWQK KysgICAgICAgIGlmIHNlbGYuX2lkZWFsX21vbm9pZCBpcyBub3QgTm9uZToKKysgICAgICAgICAg ICByZXR1cm4gc2VsZi5faWRlYWxfbW9ub2lkCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAg IGZyb20gc2FnZS5yaW5ncy5pZGVhbF9tb25vaWQgaW1wb3J0IElkZWFsTW9ub2lkCisgICAgICAg ICAgICAgTSA9IElkZWFsTW9ub2lkKHNlbGYpCistICAgICAgICAgICAgc2VsZi5fX2lkZWFsX21v bm9pZCA9IE0KKysgICAgICAgICAgICBzZWxmLl9pZGVhbF9tb25vaWQgPSBNCisgICAgICAgICAg ICAgcmV0dXJuIE0KKyAKKyAgICAgQGNhY2hlZF9tZXRob2QKK0BAIC0xMzQ1LDEyICsxMzQ1LDEy IEBAIGNkZWYgY2xhc3MgQ29tbXV0YXRpdmVSaW5nKFJpbmcpOgorICAgICAgICAgICAgIHNhZ2U6 IFIuPHg+PVFRW107IFIuaWRlYWxfbW9ub2lkKCkKKyAgICAgICAgICAgICBNb25vaWQgb2YgaWRl YWxzIG9mIFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGluIHggb3ZlciBSYXRpb25hbCBGaWVs ZAorICAgICAgICAgIiIiCistICAgICAgICBpZiBzZWxmLl9faWRlYWxfbW9ub2lkIGlzIG5vdCBO b25lOgorLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9faWRlYWxfbW9ub2lkCisrICAgICAgICBp ZiBzZWxmLl9pZGVhbF9tb25vaWQgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgcmV0dXJuIHNl bGYuX2lkZWFsX21vbm9pZAorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBmcm9tIHNhZ2Uu cmluZ3MuaWRlYWxfbW9ub2lkIGltcG9ydCBJZGVhbE1vbm9pZAorICAgICAgICAgICAgIE0gPSBJ ZGVhbE1vbm9pZChzZWxmKQorLSAgICAgICAgICAgIHNlbGYuX19pZGVhbF9tb25vaWQgPSBNCisr ICAgICAgICAgICAgc2VsZi5faWRlYWxfbW9ub2lkID0gTQorICAgICAgICAgICAgIHJldHVybiBN CisgCisgICAgIGRlZiBleHRlbnNpb24oc2VsZiwgcG9seSwgbmFtZT1Ob25lLCBuYW1lcz1Ob25l LCAqKmt3ZHMpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3NjaGVtZXMvZWxsaXB0aWNfY3VydmVz L21vZF9zeW1fbnVtLnB5eCBiL3NyYy9zYWdlL3NjaGVtZXMvZWxsaXB0aWNfY3VydmVzL21vZF9z eW1fbnVtLnB5eAoraW5kZXggNjU3NDJmMjhkNzIuLjI5NmE2YjVkMDc1IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2Uvc2NoZW1lcy9lbGxpcHRpY19jdXJ2ZXMvbW9kX3N5bV9udW0ucHl4CisrKysgYi9z cmMvc2FnZS9zY2hlbWVzL2VsbGlwdGljX2N1cnZlcy9tb2Rfc3ltX251bS5weXgKK0BAIC03MzAs NyArNzMwLDcgQEAgY2RlZiBjbGFzcyBNb2R1bGFyU3ltYm9sTnVtZXJpY2FsOgorICAgICAgICAg ZG91YmxlIF9lcHNfcGx1cywgX2Vwc19taW51cywgX2Vwc191bml0YXJ5X3BsdXMsIF9lcHNfdW5p dGFyeV9taW51cworICAgICAgICAgcHVibGljIFJlYWxOdW1iZXIgX29tMSwgX29tMgorICAgICAg ICAgb2JqZWN0IF9FLCBfZXBzUXMsIF9NdCwgX0VwYXJpCistICAgICAgICBwdWJsaWMgZGljdCBf X2NhY2hlZF9tZXRob2RzCisrICAgICAgICBwdWJsaWMgZGljdCBfY2FjaGVkX21ldGhvZHMKKyAg ICAgICAgIFJhdGlvbmFsIF90d2lzdF9xCisgICAgICAgICBJbnRlZ2VyIF9ECisgICAgICAgICBp bnQgX2dsb2JhbF9zaWduCitAQCAtNzg1LDcgKzc4NSw3IEBAIGNkZWYgY2xhc3MgTW9kdWxhclN5 bWJvbE51bWVyaWNhbDoKKyAgICAgICAgIHNlbGYuX3NldF9lcHNRcygpCisgICAgICAgICBzZWxm Ll9pbml0aWFsaXNlX2FuX2NvZWZmaWNpZW50cygpCisgICAgICAgICBzZWxmLl9zZXRfZGVuX2Jv dW5kcygpCistICAgICAgICBzZWxmLl9fY2FjaGVkX21ldGhvZHMgPSB7fQorKyAgICAgICAgc2Vs Zi5fY2FjaGVkX21ldGhvZHMgPSB7fQorIAorICAgICAgICAgIyBzZWxmLm5jX3N1bXMgPSBJbnRl Z2VyKDApCisgICAgICAgICAjIHNlbGYubmNfZGlyZWN0ID0gSW50ZWdlcigwKQorQEAgLTEzNTcs NyArMTM1Nyw3IEBAIGNkZWYgY2xhc3MgTW9kdWxhclN5bWJvbE51bWVyaWNhbDoKKyAgICAgICAg ICAgICBzYWdlOiBNKDApCisgICAgICAgICAgICAgMS81CisgICAgICAgICAiIiIKKy0gICAgICAg IGNhZGkgPSBzZWxmLl9fY2FjaGVkX21ldGhvZHMKKysgICAgICAgIGNhZGkgPSBzZWxmLl9jYWNo ZWRfbWV0aG9kcworICAgICAgICAgZm9yIG1lIGluIGNhZGk6CisgICAgICAgICAgICAgY2FkaVtt ZV0uY2xlYXJfY2FjaGUoKQorIAorQEAgLTE4MzMsNyArMTgzMyw3IEBAIGNkZWYgY2xhc3MgTW9k dWxhclN5bWJvbE51bWVyaWNhbDoKKyAKKyAgICAgICAgICMgaWYgY2FsbGVkIHdpdGggYSBwcmV2 aW91cyAobSx6LGVwcykgYnV0IGEgbGFyZ2VyIGVwcywKKyAgICAgICAgICMgcmV0dXJuIHRoZSBj YWNoZWQgdmFsdWUKKy0gICAgICAgIGNhYyA9IHNlbGYuX19jYWNoZWRfbWV0aG9kc1snX2thcHBh J10uY2FjaGUKKysgICAgICAgIGNhYyA9IHNlbGYuX2NhY2hlZF9tZXRob2RzWydfa2FwcGEnXS5j YWNoZQorICAgICAgICAgZm9yIGtlIGluIGNhYzoKKyAgICAgICAgICAgICBtbSwgenosIGVlcHMg PSBrZVswXQorICAgICAgICAgICAgIGlmIG1tID09IG0gYW5kIHp6ID09IHo6CitAQCAtMjc0Niwx NiArMjc0NiwxNiBAQCBjZGVmIGNsYXNzIE1vZHVsYXJTeW1ib2xOdW1lcmljYWw6CisgICAgICAg ICAgICAgc2FnZTogbXMgPSBNb2R1bGFyU3ltYm9sTnVtZXJpY2FsKEUpCisgICAgICAgICAgICAg c2FnZTogbXMubWFuaW5fc3ltYm9sKDQsMTcpCisgICAgICAgICAgICAgMQorLSAgICAgICAgICAg IHNhZ2U6IG1zLl9fY2FjaGVkX21ldGhvZHNbIl9tYW5pbl9zeW1ib2xfd2l0aF9jYWNoZSJdLmNh Y2hlICMgcmFuZG9tCisrICAgICAgICAgICAgc2FnZTogbXMuX2NhY2hlZF9tZXRob2RzWyJfbWFu aW5fc3ltYm9sX3dpdGhfY2FjaGUiXS5jYWNoZSAjIHJhbmRvbQorICAgICAgICAgICAgIHsoKDEs IDUsIDEpLCAoKSk6IDEsCisgICAgICAgICAgICAgKCgxLCAxNSwgMSksICgpKTogLTEsCisgICAg ICAgICAgICAgKCgxLCAyMiwgMSksICgpKTogLTEsCisgICAgICAgICAgICAgKCgxLCAzMiwgMSks ICgpKTogMX0KKy0gICAgICAgICAgICBzYWdlOiBtcy5fX2NhY2hlZF9tZXRob2RzWyJfbWFuaW5f c3ltYm9sX3dpdGhfY2FjaGUiXS5jYWNoZVsoMSwxNSwxKSwoKV0KKysgICAgICAgICAgICBzYWdl OiBtcy5fY2FjaGVkX21ldGhvZHNbIl9tYW5pbl9zeW1ib2xfd2l0aF9jYWNoZSJdLmNhY2hlWygx LDE1LDEpLCgpXQorICAgICAgICAgICAgIC0xCisgICAgICAgICAgICAgc2FnZTogbXMubWFuaW5f c3ltYm9sKDQrMTcsLTQpCisgICAgICAgICAgICAgMAorLSAgICAgICAgICAgIHNhZ2U6IG1zLl9f Y2FjaGVkX21ldGhvZHNbIl9tYW5pbl9zeW1ib2xfd2l0aF9jYWNoZSJdLmNhY2hlICMgcmFuZG9t CisrICAgICAgICAgICAgc2FnZTogbXMuX2NhY2hlZF9tZXRob2RzWyJfbWFuaW5fc3ltYm9sX3dp dGhfY2FjaGUiXS5jYWNoZSAjIHJhbmRvbQorICAgICAgICAgICAgIHsoKDEsIDQsIDEpLCAoKSk6 IDAsCisgICAgICAgICAgICAgKCgxLCA1LCAxKSwgKCkpOiAxLAorICAgICAgICAgICAgICgoMSwg OCwgMSksICgpKTogMSwKK0BAIC0yNzY4LDcgKzI3NjgsNyBAQCBjZGVmIGNsYXNzIE1vZHVsYXJT eW1ib2xOdW1lcmljYWw6CisgICAgICAgICAgICAgKCgxLCAyOSwgMSksICgpKTogMSwKKyAgICAg ICAgICAgICAoKDEsIDMyLCAxKSwgKCkpOiAxLAorICAgICAgICAgICAgICgoMSwgMzMsIDEpLCAo KSk6IDB9CistICAgICAgICAgICAgc2FnZTogbXMuX19jYWNoZWRfbWV0aG9kc1siX21hbmluX3N5 bWJvbF93aXRoX2NhY2hlIl0uY2FjaGVbICgxLDIzLDEpLCAoKSBdCisrICAgICAgICAgICAgc2Fn ZTogbXMuX2NhY2hlZF9tZXRob2RzWyJfbWFuaW5fc3ltYm9sX3dpdGhfY2FjaGUiXS5jYWNoZVsg KDEsMjMsMSksICgpIF0KKyAgICAgICAgICAgICAtMQorICAgICAgICAgIiIiCisgICAgICAgICBj ZGVmOgorQEAgLTI5MDMsNyArMjkwMyw3IEBAIGNkZWYgY2xhc3MgTW9kdWxhclN5bWJvbE51bWVy aWNhbDoKKyAgICAgICAgICMgICAgICAgICIoJXMgOiVzKSIlKHVuLCB2biksIGxldmVsPTMpCisg CisgICAgICAgICAjIGlzIGl0IGFscmVhZHkgaW4gdGhlIGNhY2hlID8KKy0gICAgICAgIGMgPSBz ZWxmLl9fY2FjaGVkX21ldGhvZHMKKysgICAgICAgIGMgPSBzZWxmLl9jYWNoZWRfbWV0aG9kcwor ICAgICAgICAgaWYgIl9tYW5pbl9zeW1ib2xfd2l0aF9jYWNoZSIgaW4gYzoKKyAgICAgICAgICAg ICBjID0gY1siX21hbmluX3N5bWJvbF93aXRoX2NhY2hlIl0KKyAgICAgICAgICAgICBpZiBjLmlz X2luX2NhY2hlKHVuLHZuLHNpZ24pOgorQEAgLTI5MTksNyArMjkxOSw3IEBAIGNkZWYgY2xhc3Mg TW9kdWxhclN5bWJvbE51bWVyaWNhbDoKKyAgICAgICAgICMgd2UgZ2V0IGZvciBmcmVlIGFkZGl0 aW9uYWwgdmFsdWVzIG9mIE1hbmluCisgICAgICAgICAjIHN5bWJvbHMgdGhhdCB3ZSBjYWNoZSwg dG9vLgorICAgICAgICAgIyBUaGlzIHNldHMgNiB2YWx1ZXMgaW4gYXZlcmFnZQorLSAgICAgICAg YyA9IHNlbGYuX19jYWNoZWRfbWV0aG9kc1siX21hbmluX3N5bWJvbF93aXRoX2NhY2hlIl0KKysg ICAgICAgIGMgPSBzZWxmLl9jYWNoZWRfbWV0aG9kc1siX21hbmluX3N5bWJvbF93aXRoX2NhY2hl Il0KKyAKKyAgICAgICAgICMgKC12OnUpID0gLSAodTp2KQorICAgICAgICAgb2kgPSBwcm9qX25v cm1hbGlzZShzZWxmLl9OX0UsIC12LCB1LCAmdW4sICZ2bikKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9zZXRzL3NldF9mcm9tX2l0ZXJhdG9yLnB5IGIvc3JjL3NhZ2Uvc2V0cy9zZXRfZnJvbV9pdGVy YXRvci5weQoraW5kZXggYzQ3YmI3NjkyMGIuLjExZjEyZTZkNWVhIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2Uvc2V0cy9zZXRfZnJvbV9pdGVyYXRvci5weQorKysrIGIvc3JjL3NhZ2Uvc2V0cy9zZXRf ZnJvbV9pdGVyYXRvci5weQorQEAgLTIxNCwxMiArMjE0LDEyIEBAIGRlZiBfX3JlZHVjZV9fKHNl bGYpOgorICAgICAgICAgICAgIFRydWUKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIChF bnVtZXJhdGVkU2V0RnJvbUl0ZXJhdG9yLAorLSAgICAgICAgICAgICAgICAoc2VsZi5fZnVuYywg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmdW5jCistICAgICAgICAgICAgICAgICBnZXRh dHRyKHNlbGYsICdfYXJncycsIE5vbmUpLCAgICAgICAgICAjIGFyZ3MKKy0gICAgICAgICAgICAg ICAgIGdldGF0dHIoc2VsZiwgJ19rd2RzJywgTm9uZSksICAgICAgICAgICMga3dkcworLSAgICAg ICAgICAgICAgICAgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScsIE5vbmUpLCAgIyBuYW1l CistICAgICAgICAgICAgICAgICBzZWxmLmNhdGVnb3J5KCksICAgICAgICAgICAgICAgICAgICAg ICAjIGNhdGVnb3J5CistICAgICAgICAgICAgICAgICBoYXNhdHRyKHNlbGYsICdfY2FjaGUnKSkg ICAgICAgICAgICAgICAjIGNhY2hlCisrICAgICAgICAgICAgICAgIChzZWxmLl9mdW5jLCAgICAg ICAgICAgICAgICAgICAgIyBmdW5jCisrICAgICAgICAgICAgICAgICBnZXRhdHRyKHNlbGYsICdf YXJncycsIE5vbmUpLCAgIyBhcmdzCisrICAgICAgICAgICAgICAgICBnZXRhdHRyKHNlbGYsICdf a3dkcycsIE5vbmUpLCAgIyBrd2RzCisrICAgICAgICAgICAgICAgICBzZWxmLmdldF9jdXN0b21f bmFtZSgpLCAgICAgICAgIyBuYW1lCisrICAgICAgICAgICAgICAgICBzZWxmLmNhdGVnb3J5KCks ICAgICAgICAgICAgICAgIyBjYXRlZ29yeQorKyAgICAgICAgICAgICAgICAgaGFzYXR0cihzZWxm LCAnX2NhY2hlJykpICAgICAgICMgY2FjaGUKKyAgICAgICAgICAgICAgICAgKQorIAorICAgICBk ZWYgX3JlcHJfKHNlbGYpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jYXRlZ29y eV9vYmplY3QucHhkIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2NhdGVnb3J5X29iamVjdC5weGQKK2lu ZGV4IGZmMzA4OGFlOWI2Li44M2QzZDQ5NjdkNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVj dHVyZS9jYXRlZ29yeV9vYmplY3QucHhkCisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY2F0ZWdv cnlfb2JqZWN0LnB4ZAorQEAgLTEzLDcgKzEzLDcgQEAgZnJvbSBzYWdlLnN0cnVjdHVyZS5zYWdl X29iamVjdCBjaW1wb3J0IFNhZ2VPYmplY3QKKyBjcGRlZiBjaGVja19kZWZhdWx0X2NhdGVnb3J5 KGRlZmF1bHRfY2F0ZWdvcnksIGNhdGVnb3J5KQorIAorIGNkZWYgY2xhc3MgQ2F0ZWdvcnlPYmpl Y3QoU2FnZU9iamVjdCk6CistICAgIGNkZWYgcHVibGljIGRpY3QgX19jYWNoZWRfbWV0aG9kcwor KyAgICBjZGVmIHB1YmxpYyBkaWN0IF9jYWNoZWRfbWV0aG9kcworICAgICBjZGVmIF9jYXRlZ29y eQorICAgICBjZGVmIHB1YmxpYyBfYmFzZQorICAgICBjZGVmIHB1YmxpYyBfbmFtZXMKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvY2F0ZWdvcnlfb2JqZWN0LnB5eCBiL3NyYy9zYWdl L3N0cnVjdHVyZS9jYXRlZ29yeV9vYmplY3QucHl4CitpbmRleCAzODU5ZjI0MDk1YS4uYjZhN2Vh ZWNiNWIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvY2F0ZWdvcnlfb2JqZWN0LnB5 eAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2NhdGVnb3J5X29iamVjdC5weXgKK0BAIC0xMTMs NyArMTEzLDcgQEAgY2RlZiBjbGFzcyBDYXRlZ29yeU9iamVjdChTYWdlT2JqZWN0KToKKyAgICAg ICAgICAgICBzZWxmLl9pbml0X2NhdGVnb3J5XyhjYXRlZ29yeSkKKyAKKyAgICAgZGVmIF9fY2lu aXRfXyhzZWxmKToKKy0gICAgICAgIHNlbGYuX19jYWNoZWRfbWV0aG9kcyA9IHt9CisrICAgICAg ICBzZWxmLl9jYWNoZWRfbWV0aG9kcyA9IHt9CisgICAgICAgICBzZWxmLl9oYXNoX3ZhbHVlID0g LTEKKyAKKyAgICAgZGVmIF9pbml0X2NhdGVnb3J5XyhzZWxmLCBjYXRlZ29yeSk6CitAQCAtNDkx LDcgKzQ5MSw3IEBAIGNkZWYgY2xhc3MgQ2F0ZWdvcnlPYmplY3QoU2FnZU9iamVjdCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLnZhcmlhYmxlX25hbWVzKClbMF0KKyAKKy0g ICAgZGVmIF9fdGVtcG9yYXJpbHlfY2hhbmdlX25hbWVzKHNlbGYsIG5hbWVzLCBsYXRleF9uYW1l cyk6CisrICAgIGRlZiBfdGVtcG9yYXJpbHlfY2hhbmdlX25hbWVzKHNlbGYsIG5hbWVzLCBsYXRl eF9uYW1lcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgaXMgdXNlZCBieSB0aGUgdmFy aWFibGUgbmFtZXMgY29udGV4dCBtYW5hZ2VyLgorIAorQEAgLTg0NCw3ICs4NDQsNyBAQCBjZGVm IGNsYXNzIENhdGVnb3J5T2JqZWN0KFNhZ2VPYmplY3QpOgorICAgICAgICAgIyBMb29rdXAgYSBt ZXRob2Qgb3IgYXR0cmlidXRlIGZyb20gdGhlIGNhdGVnb3J5IGFic3RyYWN0IGNsYXNzZXMuCisg ICAgICAgICAjIFNlZSBfX2dldGF0dHJfXyBhYm92ZSBmb3IgZG9jdW1lbnRhdGlvbi4KKyAgICAg ICAgIHRyeToKKy0gICAgICAgICAgICByZXR1cm4gc2VsZi5fX2NhY2hlZF9tZXRob2RzW25hbWVd CisrICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NhY2hlZF9tZXRob2RzW25hbWVdCisgICAgICAg ICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgaWYgc2VsZi5fY2F0ZWdvcnkgaXMgTm9u ZToKKyAgICAgICAgICAgICAgICAgIyBVc3VhbGx5LCB0aGlzIHdpbGwganVzdCByYWlzZSBBdHRy aWJ1dGVFcnJvciBpbgorQEAgLTg1NCw3ICs4NTQsNyBAQCBjZGVmIGNsYXNzIENhdGVnb3J5T2Jq ZWN0KFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICBjbHMgPSBzZWxmLl9jYXRlZ29yeS5w YXJlbnRfY2xhc3MKKyAKKyAgICAgICAgICAgICBhdHRyID0gZ2V0YXR0cl9mcm9tX290aGVyX2Ns YXNzKHNlbGYsIGNscywgbmFtZSkKKy0gICAgICAgICAgICBzZWxmLl9fY2FjaGVkX21ldGhvZHNb bmFtZV0gPSBhdHRyCisrICAgICAgICAgICAgc2VsZi5fY2FjaGVkX21ldGhvZHNbbmFtZV0gPSBh dHRyCisgICAgICAgICAgICAgcmV0dXJuIGF0dHIKKyAKKyAgICAgZGVmIF9fZGlyX18oc2VsZik6 CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2VsZW1lbnQucHhkIGIvc3JjL3NhZ2Uv c3RydWN0dXJlL2VsZW1lbnQucHhkCitpbmRleCA3OWU4NmQ4YTVjMy4uMjBjNTU2Yjk4NWUgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdl L3N0cnVjdHVyZS9lbGVtZW50LnB4ZAorQEAgLTE3Niw3ICsxNzYsNyBAQCBjZGVmIGNsYXNzIEVs ZW1lbnQoU2FnZU9iamVjdCk6CisgCisgCisgY2RlZiBjbGFzcyBFbGVtZW50V2l0aENhY2hlZE1l dGhvZChFbGVtZW50KToKKy0gICAgY2RlZiBwdWJsaWMgZGljdCBfX2NhY2hlZF9tZXRob2RzCisr ICAgIGNkZWYgcHVibGljIGRpY3QgX2NhY2hlZF9tZXRob2RzCisgCisgY2RlZiBjbGFzcyBNb2R1 bGVFbGVtZW50KEVsZW1lbnQpICAgICAgICMgZm9yd2FyZCBkZWNsYXJhdGlvbgorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVy ZS9lbGVtZW50LnB5eAoraW5kZXggYWI2ZWUxNTdhOTQuLjM2ZGExYzBjYzEyIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1 cmUvZWxlbWVudC5weXgKK0BAIC0zNzksNiArMzc5LDcgQEAgY2RlZiBjbGFzcyBFbGVtZW50KFNh Z2VPYmplY3QpOgorICAgICAuLiBhdXRvbWV0aG9kOjogX19tb2RfXworICAgICAiIiIKKyAgICAg QGN5dGhvbi5iaW5kaW5nKEZhbHNlKQorKyAgICBAY3l0aG9uLmFsd2F5c19hbGxvd19rZXl3b3Jk cyhGYWxzZSkKKyAgICAgZGVmIF9fZ2V0bWV0YWNsYXNzX18oXyk6CisgICAgICAgICBmcm9tIHNh Z2UubWlzYy5pbmhlcml0X2NvbXBhcmlzb24gaW1wb3J0IEluaGVyaXRDb21wYXJpc29uTWV0YWNs YXNzCisgICAgICAgICByZXR1cm4gSW5oZXJpdENvbXBhcmlzb25NZXRhY2xhc3MKK0BAIC0yMzU2 LDE4ICsyMzU3LDE4IEBAIGNkZWYgY2xhc3MgRWxlbWVudFdpdGhDYWNoZWRNZXRob2QoRWxlbWVu dCk6CisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCisgICAgICAgICB0cnk6CistICAg ICAgICAgICAgcmV0dXJuIHNlbGYuX19jYWNoZWRfbWV0aG9kc1tuYW1lXQorKyAgICAgICAgICAg IHJldHVybiBzZWxmLl9jYWNoZWRfbWV0aG9kc1tuYW1lXQorICAgICAgICAgZXhjZXB0IEtleUVy cm9yOgorICAgICAgICAgICAgIGF0dHIgPSBnZXRhdHRyX2Zyb21fb3RoZXJfY2xhc3Moc2VsZiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50LmNh dGVnb3J5KCkuZWxlbWVudF9jbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbmFtZSkKKy0gICAgICAgICAgICBzZWxmLl9fY2FjaGVkX21ldGhvZHNbbmFtZV0g PSBhdHRyCisrICAgICAgICAgICAgc2VsZi5fY2FjaGVkX21ldGhvZHNbbmFtZV0gPSBhdHRyCisg ICAgICAgICAgICAgcmV0dXJuIGF0dHIKKyAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAg ICAgICAgICAgYXR0ciA9IGdldGF0dHJfZnJvbV9vdGhlcl9jbGFzcyhzZWxmLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQuY2F0ZWdvcnkoKS5l bGVtZW50X2NsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu YW1lKQorLSAgICAgICAgICAgIHNlbGYuX19jYWNoZWRfbWV0aG9kcyA9IHtuYW1lIDogYXR0cn0K KysgICAgICAgICAgICBzZWxmLl9jYWNoZWRfbWV0aG9kcyA9IHtuYW1lIDogYXR0cn0KKyAgICAg ICAgICAgICByZXR1cm4gYXR0cgorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVy ZS9wYXJlbnRfZ2Vucy5weXggYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50X2dlbnMucHl4Citp bmRleCBhYjUzMTMxNDQ1OC4uY2M2ZmZhYWNlMjEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1 Y3R1cmUvcGFyZW50X2dlbnMucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50X2dl bnMucHl4CitAQCAtMzcxLDcgKzM3MSw3IEBAIGNkZWYgY2xhc3MgbG9jYWx2YXJzOgorICAgICAg ICAgICAgIHNlbGYuX2xhdGV4X25hbWVzID0gbGF0ZXhfbmFtZXMKKyAKKyAgICAgZGVmIF9fZW50 ZXJfXyhzZWxmKToKKy0gICAgICAgIHNlbGYuX29yaWcgPSBzZWxmLl9vYmouX190ZW1wb3Jhcmls eV9jaGFuZ2VfbmFtZXMoc2VsZi5fbmFtZXMsIHNlbGYuX2xhdGV4X25hbWVzKQorKyAgICAgICAg c2VsZi5fb3JpZyA9IHNlbGYuX29iai5fdGVtcG9yYXJpbHlfY2hhbmdlX25hbWVzKHNlbGYuX25h bWVzLCBzZWxmLl9sYXRleF9uYW1lcykKKyAKKyAgICAgZGVmIF9fZXhpdF9fKHNlbGYsIHR5cGUs IHZhbHVlLCB0cmFjZWJhY2spOgorLSAgICAgICAgc2VsZi5fb2JqLl9fdGVtcG9yYXJpbHlfY2hh bmdlX25hbWVzKHNlbGYuX29yaWdbMF0sIHNlbGYuX29yaWdbMV0pCisrICAgICAgICBzZWxmLl9v YmouX3RlbXBvcmFyaWx5X2NoYW5nZV9uYW1lcyhzZWxmLl9vcmlnWzBdLCBzZWxmLl9vcmlnWzFd KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9zYWdlX29iamVjdC5weXggYi9zcmMv c2FnZS9zdHJ1Y3R1cmUvc2FnZV9vYmplY3QucHl4CitpbmRleCA4NDc0MTQyZWFhMS4uMTAwMDBh ZWYzOTQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvc2FnZV9vYmplY3QucHl4Cisr KysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvc2FnZV9vYmplY3QucHl4CitAQCAtNjksNiArNjksOCBA QCBjZGVmIGNsYXNzIFNhZ2VPYmplY3Q6CisgICAgICAgICByIiIiCisgICAgICAgICBDaGFuZ2Ug c2VsZiBzbyBpdCBwcmludHMgYXMgeCwgd2hlcmUgeCBpcyBhIHN0cmluZy4KKyAKKysgICAgICAg IElmIHggaXMgYGBOb25lYGAsIHRoZSBleGlzdGluZyBjdXN0b20gbmFtZSBpcyByZW1vdmVkLgor KworICAgICAgICAgLi4gTk9URTo6CisgCisgICAgICAgICAgICBUaGlzIGlzICpvbmx5KiBzdXBw b3J0ZWQgZm9yIFB5dGhvbiBjbGFzc2VzIHRoYXQgZGVyaXZlCitAQCAtOTEsNiArOTMsOSBAQCBj ZGVmIGNsYXNzIFNhZ2VPYmplY3Q6CisgICAgICAgICAgICAgc2FnZTogaC5yZW5hbWUoJ3heMzAw ICsgLi4uJykKKyAgICAgICAgICAgICBzYWdlOiBoCisgICAgICAgICAgICAgeF4zMDAgKyAuLi4K KysgICAgICAgICAgICBzYWdlOiBnLnJlbmFtZShOb25lKQorKyAgICAgICAgICAgIHNhZ2U6IGcK KysgICAgICAgICAgICB4XjMgKyB4IC0gNQorIAorICAgICAgICAgUmVhbCBudW1iZXJzIGFyZSBu b3QgUHl0aG9uIGNsYXNzZXMsIHNvIHJlbmFtZSBpcyBub3Qgc3VwcG9ydGVkOjoKKyAKK0BAIC0x MTAsMTUgKzExNSwxNiBAQCBjZGVmIGNsYXNzIFNhZ2VPYmplY3Q6CisgICAgICAgICAgICBhIGxv dCBvZiBtZW1vcnkuCisgCisgICAgICAgICAgICBUbyBzdXBwb3J0IHRoZW0gZm9yIGEgc3BlY2lm aWMgY2xhc3MsIGFkZCBhCistICAgICAgICAgICBgYGNkZWYgcHVibGljIF9fY3VzdG9tX25hbWVg YCBhdHRyaWJ1dGUuCisrICAgICAgICAgICBgYGNkZWYgcHVibGljIF9TYWdlT2JqZWN0X19jdXN0 b21fbmFtZWBgIGF0dHJpYnV0ZS4KKyAgICAgICAgICIiIgorICAgICAgICAgaWYgeCBpcyBOb25l OgorLSAgICAgICAgICAgICNpZiBoYXNhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJyk6CistICAg ICAgICAgICAgIyB0aGF0J3MgdGVzdGVkIGluIHJlc2V0X25hbWUgYW55d2F5Li4uCisgICAgICAg ICAgICAgc2VsZi5yZXNldF9uYW1lKCkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgdHJ5 OgorLSAgICAgICAgICAgICAgICBzZWxmLl9fY3VzdG9tX25hbWUgPSBzdHIoeCkKKysgICAgICAg ICAgICAgICAgIyBUT0RPOiBhZnRlciBkcm9wcGluZyBzdXBwb3J0IGZvciBDeXRob24gPCAzLjAu MCwgYWxsCisrICAgICAgICAgICAgICAgICMgdGhlIHNlbGYuX1NhZ2VPYmplY3RfX2N1c3RvbV9u YW1lIGluIHRoaXMgY2xhc3MgY2FuIGJlCisrICAgICAgICAgICAgICAgICMgY2hhbmdlZCB0byBz ZWxmLl9fY3VzdG9tX25hbWUKKysgICAgICAgICAgICAgICAgc2VsZi5fU2FnZU9iamVjdF9fY3Vz dG9tX25hbWUgPSBzdHIoeCkKKyAgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Cisg ICAgICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoIm9iamVjdCBkb2VzIG5v dCBzdXBwb3J0IHJlbmFtaW5nOiAlcyIgJSBzZWxmKQorIAorQEAgLTEzOCw4ICsxNDQsMzAgQEAg Y2RlZiBjbGFzcyBTYWdlT2JqZWN0OgorICAgICAgICAgICAgIHNhZ2U6IFAKKyAgICAgICAgICAg ICBVbml2YXJpYXRlIFBvbHlub21pYWwgUmluZyBpbiB4IG92ZXIgUmF0aW9uYWwgRmllbGQKKyAg ICAgICAgICIiIgorLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpOgor LSAgICAgICAgICAgIGRlbCBzZWxmLl9fY3VzdG9tX25hbWUKKysgICAgICAgIGlmIGhhc2F0dHIo c2VsZiwgJ19TYWdlT2JqZWN0X19jdXN0b21fbmFtZScpOgorKyAgICAgICAgICAgIGRlbCBzZWxm Ll9TYWdlT2JqZWN0X19jdXN0b21fbmFtZQorKworKyAgICBkZWYgZ2V0X2N1c3RvbV9uYW1lKHNl bGYpOgorKyAgICAgICAgIiIiCisrICAgICAgICBSZXR1cm4gdGhlIGN1c3RvbSBuYW1lIG9mIHRo aXMgb2JqZWN0LCBvciBgYE5vbmVgYCBpZiBpdCBpcyBub3QKKysgICAgICAgIHJlbmFtZWQuCisr CisrICAgICAgICBFWEFNUExFUzo6CisrCisrICAgICAgICAgICAgc2FnZTogUC48eD4gPSBRUVtd CisrICAgICAgICAgICAgc2FnZTogUC5nZXRfY3VzdG9tX25hbWUoKSBpcyBOb25lCisrICAgICAg ICAgICAgVHJ1ZQorKyAgICAgICAgICAgIHNhZ2U6IFAucmVuYW1lKCdBIHBvbHlub21pYWwgcmlu ZycpCisrICAgICAgICAgICAgc2FnZTogUC5nZXRfY3VzdG9tX25hbWUoKQorKyAgICAgICAgICAg ICdBIHBvbHlub21pYWwgcmluZycKKysgICAgICAgICAgICBzYWdlOiBQLnJlc2V0X25hbWUoKQor KyAgICAgICAgICAgIHNhZ2U6IFAuZ2V0X2N1c3RvbV9uYW1lKCkgaXMgTm9uZQorKyAgICAgICAg ICAgIFRydWUKKysgICAgICAgICIiIgorKyAgICAgICAgdHJ5OgorKyAgICAgICAgICAgIHJldHVy biBzZWxmLl9TYWdlT2JqZWN0X19jdXN0b21fbmFtZQorKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0 ZUVycm9yOgorKyAgICAgICAgICAgIHJldHVybiBOb25lCisgCisgICAgIGRlZiBfX3JlcHJfXyhz ZWxmKToKKyAgICAgICAgICIiIgorQEAgLTE4MSw3ICsyMDksNyBAQCBjZGVmIGNsYXNzIFNhZ2VP YmplY3Q6CisgICAgICAgICAgICAgPHNhZ2Uuc3RydWN0dXJlLnNhZ2Vfb2JqZWN0LlNhZ2VPYmpl Y3Qgb2JqZWN0IGF0IC4uLj4KKyAgICAgICAgICIiIgorICAgICAgICAgdHJ5OgorLSAgICAgICAg ICAgIG5hbWUgPSBzZWxmLl9fY3VzdG9tX25hbWUKKysgICAgICAgICAgICBuYW1lID0gc2VsZi5f U2FnZU9iamVjdF9fY3VzdG9tX25hbWUKKyAgICAgICAgICAgICBpZiBuYW1lIGlzIG5vdCBOb25l OgorICAgICAgICAgICAgICAgICByZXR1cm4gbmFtZQorICAgICAgICAgZXhjZXB0IEF0dHJpYnV0 ZUVycm9yOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3RvcG9sb2d5L3NpbXBsaWNpYWxfc2V0LnB5 IGIvc3JjL3NhZ2UvdG9wb2xvZ3kvc2ltcGxpY2lhbF9zZXQucHkKK2luZGV4IDQyY2MzZjc3Nzgw Li4zZWUxNGFlMmRhOCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3RvcG9sb2d5L3NpbXBsaWNpYWxf c2V0LnB5CisrKysgYi9zcmMvc2FnZS90b3BvbG9neS9zaW1wbGljaWFsX3NldC5weQorQEAgLTU3 MCwxMyArNTcwLDEyIEBAIGRlZiBfX2x0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICAgICAgIHJl dHVybiBUcnVlCisgICAgICAgICBpZiBzZWxmLmRlZ2VuZXJhY2llcygpIGFuZCBvdGhlci5kZWdl bmVyYWNpZXMoKSBhbmQgc2VsZi5kZWdlbmVyYWNpZXMoKSAhPSBvdGhlci5kZWdlbmVyYWNpZXMo KToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5kZWdlbmVyYWNpZXMoKSA8IG90aGVyLmRlZ2Vu ZXJhY2llcygpCistICAgICAgICBpZiBoYXNhdHRyKHNlbGYubm9uZGVnZW5lcmF0ZSgpLCAnX19j dXN0b21fbmFtZScpOgorLSAgICAgICAgICAgIGlmIGhhc2F0dHIob3RoZXIubm9uZGVnZW5lcmF0 ZSgpLCAnX19jdXN0b21fbmFtZScpOgorLSAgICAgICAgICAgICAgICByZXR1cm4gc3RyKHNlbGYp IDwgc3RyKG90aGVyKQorKyAgICAgICAgaWYgc2VsZi5ub25kZWdlbmVyYXRlKCkuZ2V0X2N1c3Rv bV9uYW1lKCkgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgaWYgb3RoZXIubm9uZGVnZW5lcmF0 ZSgpLmdldF9jdXN0b21fbmFtZSgpIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgICAgICByZXR1 cm4gc2VsZi5ub25kZWdlbmVyYXRlKCkuZ2V0X2N1c3RvbV9uYW1lKCkgPCBvdGhlci5ub25kZWdl bmVyYXRlKCkuZ2V0X2N1c3RvbV9uYW1lKCkKKyAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorIAor LSAgICAgICAgaWYgKGhhc2F0dHIob3RoZXIsICdfX2N1c3RvbV9uYW1lJykKKy0gICAgICAgICAg ICAgICAgb3IgaGFzYXR0cihvdGhlci5ub25kZWdlbmVyYXRlKCksICdfX2N1c3RvbV9uYW1lJykp OgorKyAgICAgICAgaWYgb3RoZXIubm9uZGVnZW5lcmF0ZSgpLmdldF9jdXN0b21fbmFtZSgpIGlz IG5vdCBOb25lOgorICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIGlk KHNlbGYpIDwgaWQob3RoZXIpCisgCitAQCAtNzkzLDggKzc5Miw4IEBAIGRlZiBfX2NvcHlfXyhz ZWxmKToKKyAgICAgICAgICMgZGltZW5zaW9uLCB0aGUgZGVnZW5lcmFjaWVzLCBhbmQgdGhlIG5h bWUgKHdpdGggYSBwcmltZQorICAgICAgICAgIyBhZGRlZCkuCisgICAgICAgICBzaWdtYSA9IEFi c3RyYWN0U2ltcGxleChzZWxmLl9kaW0sIGRlZ2VuZXJhY2llcz1zZWxmLmRlZ2VuZXJhY2llcygp KQorLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpOgorLSAgICAgICAg ICAgIHNpZ21hLnJlbmFtZShzdHIoc2VsZikgKyAiJyIpCisrICAgICAgICBpZiBzZWxmLmdldF9j dXN0b21fbmFtZSgpIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIHNpZ21hLnJlbmFtZShzZWxm LmdldF9jdXN0b21fbmFtZSgpICsgIiciKQorICAgICAgICAgcmV0dXJuIHNpZ21hCisgCisgICAg IGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbyk6CitAQCAtODM5LDggKzgzOCw4IEBAIGRlZiBf X2RlZXBjb3B5X18oc2VsZiwgbWVtbyk6CisgICAgICAgICAgICAgcmV0dXJuIG1lbW9bdW5kZXJs eWluZ10uYXBwbHlfZGVnZW5lcmFjaWVzKCpkZWdlbnMpCisgICAgICAgICBleGNlcHQgS2V5RXJy b3I6CisgICAgICAgICAgICAgc2lnbWEgPSBBYnN0cmFjdFNpbXBsZXgodW5kZXJseWluZy5fZGlt KQorLSAgICAgICAgICAgIGlmIGhhc2F0dHIodW5kZXJseWluZywgJ19fY3VzdG9tX25hbWUnKToK Ky0gICAgICAgICAgICAgICAgc2lnbWEucmVuYW1lKHN0cihzZWxmKSArICInIikKKysgICAgICAg ICAgICBpZiB1bmRlcmx5aW5nLmdldF9jdXN0b21fbmFtZSgpIGlzIG5vdCBOb25lOgorKyAgICAg ICAgICAgICAgICBzaWdtYS5yZW5hbWUodW5kZXJseWluZy5nZXRfY3VzdG9tX25hbWUoKSArICIn IikKKyAgICAgICAgICAgICBtZW1vW3VuZGVybHlpbmddID0gc2lnbWEKKyAgICAgICAgICAgICBy ZXR1cm4gc2lnbWEuYXBwbHlfZGVnZW5lcmFjaWVzKCpkZWdlbnMpCisgCitAQCAtODk2LDEyICs4 OTUsMTIgQEAgZGVmIF9sYXRleF8oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIGlmIHNl bGYuX2xhdGV4X25hbWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2xh dGV4X25hbWUKKy0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKToKKy0g ICAgICAgICAgICByZXR1cm4gc3RyKHNlbGYpCisrICAgICAgICBpZiBzZWxmLmdldF9jdXN0b21f bmFtZSgpIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIHJldHVybiBzZWxmLmdldF9jdXN0b21f bmFtZSgpCisgICAgICAgICBpZiBzZWxmLm5vbmRlZ2VuZXJhdGUoKS5fbGF0ZXhfbmFtZSBpcyBu b3QgTm9uZToKKyAgICAgICAgICAgICBzaW1wbGV4ID0gc2VsZi5ub25kZWdlbmVyYXRlKCkuX2xh dGV4X25hbWUKKy0gICAgICAgIGVsaWYgaGFzYXR0cihzZWxmLm5vbmRlZ2VuZXJhdGUoKSwgJ19f Y3VzdG9tX25hbWUnKToKKy0gICAgICAgICAgICBzaW1wbGV4ID0gc3RyKHNlbGYubm9uZGVnZW5l cmF0ZSgpKQorKyAgICAgICAgZWxpZiBzZWxmLm5vbmRlZ2VuZXJhdGUoKS5nZXRfY3VzdG9tX25h bWUoKSBpcyBub3QgTm9uZToKKysgICAgICAgICAgICBzaW1wbGV4ID0gc2VsZi5ub25kZWdlbmVy YXRlKCkuZ2V0X2N1c3RvbV9uYW1lKCkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2lt cGxleCA9ICJcXERlbHRhXnt7e319fSIuZm9ybWF0KHNlbGYuX2RpbSkKKyAgICAgICAgIGlmIHNl bGYuZGVnZW5lcmFjaWVzKCk6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvdG9wb2xvZ3kvc2ltcGxp Y2lhbF9zZXRfY29uc3RydWN0aW9ucy5weSBiL3NyYy9zYWdlL3RvcG9sb2d5L3NpbXBsaWNpYWxf c2V0X2NvbnN0cnVjdGlvbnMucHkKK2luZGV4IGFlOTg4MjFkZjhhLi4zYTIxNzI4NmFjNSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL3RvcG9sb2d5L3NpbXBsaWNpYWxfc2V0X2NvbnN0cnVjdGlvbnMu cHkKKysrKyBiL3NyYy9zYWdlL3RvcG9sb2d5L3NpbXBsaWNpYWxfc2V0X2NvbnN0cnVjdGlvbnMu cHkKK0BAIC0xNzYsOCArMTc2LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIGRhdGEsIGFtYmllbnQ9 Tm9uZSk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIFNpbXBsaWNpYWxTZXRfZmluaXRl Ll9faW5pdF9fKHNlbGYsIGRhdGEpCisgICAgICAgICBpZiBzZWxmID09IGFtYmllbnQ6CistICAg ICAgICAgICAgaWYgaGFzYXR0cihhbWJpZW50LCAnX19jdXN0b21fbmFtZScpOgorLSAgICAgICAg ICAgICAgICBzZWxmLnJlbmFtZShzdHIoYW1iaWVudCkpCisrICAgICAgICAgICAgc2VsZi5yZW5h bWUoYW1iaWVudC5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgICAgICBzZWxmLl9sYXRleF9u YW1lID0gbGF0ZXgoYW1iaWVudCkKKyAgICAgICAgICMgV2hlbiBjb25zdHJ1Y3RpbmcgdGhlIGlu Y2x1c2lvbiBtYXAsIHdlIGRvIG5vdCBuZWVkIHRvIGNoZWNrCisgICAgICAgICAjIHRoZSB2YWxp ZGl0eSBvZiB0aGUgbW9ycGhpc20sIGFuZCBtb3JlIGltcG9ydGFudGx5LCB3ZQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2J1aWxkLWN5dGhvbjMucGF0Y2ggYi9zcmNwa2dz L3NhZ2VtYXRoL3BhdGNoZXMvYnVpbGQtY3l0aG9uMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAwLi41N2QxYWRlODlmYzc3Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2J1aWxkLWN5dGhvbjMucGF0Y2gKQEAgLTAsMCArMSw0 NCBAQAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2V4dC9zdGRzYWdlLnB4ZCBiL3NyYy9zYWdlL2V4 dC9zdGRzYWdlLnB4ZAoraW5kZXggMTVhYmUxM2I3Y2QuLmUyYmY3NDM0ZjM1IDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvZXh0L3N0ZHNhZ2UucHhkCisrKysgYi9zcmMvc2FnZS9leHQvc3Rkc2FnZS5w eGQKK0BAIC0xMCw3ICsxMCw3IEBAIFN0YW5kYXJkIEMgaGVscGVyIGNvZGUgZm9yIEN5dGhvbiBt b2R1bGVzCisgIyAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8K KyAjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKyAKKy1mcm9tIGNweXRob24ub2JqZWN0IGNpbXBvcnQg UHlfVFlQRSwgUHlUeXBlT2JqZWN0CisrZnJvbSBjcHl0aG9uLm9iamVjdCBjaW1wb3J0IFB5X1RZ UEUsIFB5VHlwZU9iamVjdCwgUHlPYmplY3QKKyAKKyAKKyBjZGVmIGlubGluZSBQWV9ORVcodHlw ZSB0KToKK0BAIC0xOSw3ICsxOSw3IEBAIGNkZWYgaW5saW5lIFBZX05FVyh0eXBlIHQpOgorICAg ICA6Y2xhc3M6YEludGVnZXJgIHdoZXJlIHdlIGNoYW5nZSBgYHRwX25ld2BgIGF0IHJ1bnRpbWUg KEN5dGhvbgorICAgICBvcHRpbWl6YXRpb25zIGFzc3VtZSB0aGF0IGBgdHBfbmV3YGAgZG9lc24n dCBjaGFuZ2UpLgorICAgICAiIiIKKy0gICAgcmV0dXJuICg8UHlUeXBlT2JqZWN0Kj50KS50cF9u ZXcodCwgPG9iamVjdD5OVUxMLCA8b2JqZWN0Pk5VTEwpCisrICAgIHJldHVybiAoPFB5VHlwZU9i amVjdCo+dCkudHBfbmV3KHQsIDxQeU9iamVjdCo+TlVMTCwgPFB5T2JqZWN0Kj5OVUxMKQorIAor IAorIGNkZWYgaW5saW5lIHZvaWQgUFlfU0VUX1RQX05FVyh0eXBlIGRzdCwgdHlwZSBzcmMpOgor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlX3NldHVwL2N5dGhvbl9vcHRpb25zLnB5IGIvc3JjL3NhZ2Vf c2V0dXAvY3l0aG9uX29wdGlvbnMucHkKK2luZGV4IDA4NmFhMDcwY2E5Li45NzI1Y2UwZTFhZiAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlX3NldHVwL2N5dGhvbl9vcHRpb25zLnB5CisrKysgYi9zcmMv c2FnZV9zZXR1cC9jeXRob25fb3B0aW9ucy5weQorQEAgLTEwLDEzICsxMCwxNyBAQCBkZWYgY29t cGlsZXJfZGlyZWN0aXZlcyhwcm9maWxlOiBib29sKToKKyAgICAgICAgIGF1dG9fcGlja2xlPUZh bHNlLAorICAgICAgICAgIyBEbyBub3QgY3JlYXRlIF9fdGVzdF9fIGRpY3Rpb25hcnkgYXV0b21h dGljYWxseSBmcm9tIGRvY3N0cmluZ3MKKyAgICAgICAgIGF1dG90ZXN0ZGljdD1GYWxzZSwKKysg ICAgICAgIGJpbmRpbmc9RmFsc2UsCisrICAgICAgICBjX2FwaV9iaW5vcF9tZXRob2RzPVRydWUs CisgICAgICAgICAjIERvIG5vdCBjaGVjayBmb3IgZGl2aXNpb24gYnkgMCAodGhpcyBpcyBhYm91 dCAzNSUgcXVpY2tlciB0aGFuIHdpdGggY2hlY2spCisgICAgICAgICBjZGl2aXNpb249VHJ1ZSwK KysgICAgICAgIGNwb3c9VHJ1ZSwKKyAgICAgICAgICMgRW1iZWQgYSB0ZXh0dWFsIGNvcHkgb2Yg dGhlIGNhbGwgc2lnbmF0dXJlIGluIHRoZSBkb2NzdHJpbmcgKHRvIHN1cHBvcnQgdG9vbHMgbGlr ZSBJUHl0aG9uKQorICAgICAgICAgZW1iZWRzaWduYXR1cmU9VHJ1ZSwKKyAgICAgICAgIGZhc3Rf Z2V0YXR0cj1UcnVlLAorICAgICAgICAgIyBVc2UgUHl0aG9uIDMgKGluY2x1ZGluZyBzb3VyY2Ug Y29kZSBzZW1hbnRpY3MpIGZvciBtb2R1bGUgY29tcGlsYXRpb24KKyAgICAgICAgIGxhbmd1YWdl X2xldmVsPSIzIiwKKysgICAgICAgIGxlZ2FjeV9pbXBsaWNpdF9ub2V4Y2VwdD1UcnVlLAorICAg ICAgICAgIyBFbmFibGUgc3VwcG9ydCBmb3IgbGF0ZSBpbmNsdWRlcyAobWFrZSBkZWNsYXJhdGlv bnMgaW4gQ3l0aG9uIGNvZGUgYXZhaWxhYmxlIHRvIEMgaW5jbHVkZSBmaWxlcykKKyAgICAgICAg IHByZWxpbWluYXJ5X2xhdGVfaW5jbHVkZXNfY3kyOD1UcnVlLAorICAgICAgICAgIyBBZGQgaG9v a3MgZm9yIFB5dGhvbiBwcm9maWxlcnMgaW50byB0aGUgY29tcGlsZWQgQyBjb2RlCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZml4LWRvY3Rlc3QtY3l0aG9uMy5wYXRjaCBi L3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtZG9jdGVzdC1jeXRob24zLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjRjZmYxZmIxODI4ZGIKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZml4LWRvY3Rlc3QtY3l0aG9u My5wYXRjaApAQCAtMCwwICsxLDIwNyBAQAorZGlmZiAtLWdpdCBhL3NyYy9kb2MvZW4vdGhlbWF0 aWNfdHV0b3JpYWxzL2NvZXJjaW9uX2FuZF9jYXRlZ29yaWVzLnJzdCBiL3NyYy9kb2MvZW4vdGhl bWF0aWNfdHV0b3JpYWxzL2NvZXJjaW9uX2FuZF9jYXRlZ29yaWVzLnJzdAoraW5kZXggZGUyMzQ5 YTlhM2YuLmJiMjMzMzFjMTUxIDEwMDY0NAorLS0tIGEvc3JjL2RvYy9lbi90aGVtYXRpY190dXRv cmlhbHMvY29lcmNpb25fYW5kX2NhdGVnb3JpZXMucnN0CisrKysgYi9zcmMvZG9jL2VuL3RoZW1h dGljX3R1dG9yaWFscy9jb2VyY2lvbl9hbmRfY2F0ZWdvcmllcy5yc3QKK0BAIC0xMDUsNyArMTA1 LDcgQEAgaXQgbWFrZXMgc2Vuc2UgdG8gYnVpbGQgb24gdG9wIG9mIHRoZSBiYXNlIGNsYXNzCisg VGhpcyBiYXNlIGNsYXNzIHByb3ZpZGVzIGEgbG90IG1vcmUgbWV0aG9kcyB0aGFuIGEgZ2VuZXJh bCBwYXJlbnQ6OgorIAorICAgICBzYWdlOiBbcCBmb3IgcCBpbiBkaXIoRmllbGQpIGlmIHAgbm90 IGluIGRpcihQYXJlbnQpXQorLSAgICBbJ19fZnJhY3Rpb25fZmllbGQnLAorKyAgICBbJ19Db21t dXRhdGl2ZVJpbmdfX2ZyYWN0aW9uX2ZpZWxkJywKKyAgICAgICdfX2l0ZXJfXycsCisgICAgICAn X19sZW5fXycsCisgICAgICAnX19yeG9yX18nLAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FyaXRo L3NyYW5nZS5weXggYi9zcmMvc2FnZS9hcml0aC9zcmFuZ2UucHl4CitpbmRleCAxNTZlNTQ4YTEx YS4uMTMyY2Y5M2QwODUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9hcml0aC9zcmFuZ2UucHl4Cisr KysgYi9zcmMvc2FnZS9hcml0aC9zcmFuZ2UucHl4CitAQCAtODQsNyArODQsNyBAQCBkZWYgeHNy YW5nZShzdGFydCwgZW5kPU5vbmUsIHN0ZXA9MSwgdW5pdmVyc2U9Tm9uZSwgKiwgY29lcmNlPVRy dWUsIGJpbnQgaW5jbHVkZQorICAgICBFWEFNUExFUzo6CisgCisgICAgICAgICBzYWdlOiB4c3Jh bmdlKDEwKQorLSAgICAgICAgPGdlbmVyYXRvciBvYmplY3QgYXQgMHguLi4+CisrICAgICAgICA8 Li4uZ2VuZXJhdG9yIG9iamVjdCBhdCAweC4uLj4KKyAgICAgICAgIHNhZ2U6IGZvciBpIGluIHhz cmFuZ2UoMSw1KToKKyAgICAgICAgIC4uLi46ICAgICBwcmludChpKQorICAgICAgICAgMQorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L3Nsb2FuZV9mdW5jdGlvbnMucHkgYi9zcmMvc2Fn ZS9jb21iaW5hdC9zbG9hbmVfZnVuY3Rpb25zLnB5CitpbmRleCBjM2NmOTI5OTA5My4uZTVjOTli NzFmZTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC9zbG9hbmVfZnVuY3Rpb25zLnB5 CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9zbG9hbmVfZnVuY3Rpb25zLnB5CitAQCAtOTE2OSw3 ICs5MTY5LDcgQEAgY2xhc3MgU2xvYW5lKFNhZ2VPYmplY3QpOgorICAgICAgICAgOjoKKyAKKyAg ICAgICAgICAgICBzYWdlOiBzbG9hbmUuX19yZXByX18KKy0gICAgICAgICAgICA8bWV0aG9kLXdy YXBwZXIgJ19fcmVwcl9fJyBvZiBTbG9hbmUgb2JqZWN0IGF0IDB4Li4uPgorKyAgICAgICAgICAg IDxidWlsdC1pbiBtZXRob2QgX19yZXByX18gb2YgU2xvYW5lIG9iamVjdCBhdCAweC4uLj4KKyAg ICAgICAgICAgICBzYWdlOiBzbG9hbmUuX19uYW1lX18KKyAgICAgICAgICAgICBUcmFjZWJhY2sg KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAgICAgLi4uCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHl4IGIvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHl4 CitpbmRleCA4YWEzMGE4NTI3Mi4uMmIxZDM4YzEyYjkgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9t aXNjL2NhY2hlZnVuYy5weXgKKysrKyBiL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB5eAorQEAg LTUwLDcgKzUwLDcgQEAgYmUgdXNlZDo6CisgICAgIHNhZ2U6IGN5dGhvbignJydjcGRlZiB0ZXN0 X2Z1bmN0KHgpOiByZXR1cm4gLXgnJycpICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlv bmFsIC0gc2FnZS5taXNjLmN5dGhvbgorICAgICBzYWdlOiB3cmFwcGVkX2Z1bmN0ID0gY2FjaGVk X2Z1bmN0aW9uKHRlc3RfZnVuY3QsIG5hbWU9J3dyYXBwZWRfZnVuY3QnKSAgICAgIyBvcHRpb25h bCAtIHNhZ2UubWlzYy5jeXRob24KKyAgICAgc2FnZTogd3JhcHBlZF9mdW5jdCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwg LSBzYWdlLm1pc2MuY3l0aG9uCistICAgIENhY2hlZCB2ZXJzaW9uIG9mIDxidWlsdC1pbiBmdW5j dGlvbiB0ZXN0X2Z1bmN0PgorKyAgICBDYWNoZWQgdmVyc2lvbiBvZiA8Y3lmdW5jdGlvbiB0ZXN0 X2Z1bmN0IGF0IC4uLj4KKyAgICAgc2FnZTogd3JhcHBlZF9mdW5jdC5fX25hbWVfXyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdl Lm1pc2MuY3l0aG9uCisgICAgICd3cmFwcGVkX2Z1bmN0JworICAgICBzYWdlOiB3cmFwcGVkX2Z1 bmN0KDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIyBvcHRpb25hbCAtIHNhZ2UubWlzYy5jeXRob24KK0BAIC04Miw5ICs4Miw5IEBAIGFwcHJv YWNoIGlzIHN0aWxsIG5lZWRlZCBmb3IgY3BkZWYgbWV0aG9kczo6CisgICAgIHNhZ2U6IGN5dGhv bihvcy5saW5lc2VwLmpvaW4oY3l0aG9uX2NvZGUpKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5taXNjLmN5dGhvbgorICAgICBzYWdlOiBPID0gTXlD bGFzcygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIyBvcHRpb25hbCAtIHNhZ2UubWlzYy5jeXRob24KKyAgICAgc2FnZTogTy5kaXJlY3Rf bWV0aG9kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgb3B0aW9uYWwgLSBzYWdlLm1pc2MuY3l0aG9uCistICAgIENhY2hlZCB2ZXJzaW9uIG9m IDxtZXRob2QgJ2RpcmVjdF9tZXRob2QnIG9mICcuLi5NeUNsYXNzJyBvYmplY3RzPgorKyAgICBD YWNoZWQgdmVyc2lvbiBvZiA8Y3lmdW5jdGlvbiBNeUNsYXNzLmRpcmVjdF9tZXRob2QgYXQgLi4u PgorICAgICBzYWdlOiBPLndyYXBwZWRfbWV0aG9kICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UubWlzYy5jeXRob24K Ky0gICAgQ2FjaGVkIHZlcnNpb24gb2YgPGJ1aWx0LWluIGZ1bmN0aW9uIHRlc3RfbWV0aD4KKysg ICAgQ2FjaGVkIHZlcnNpb24gb2YgPGN5ZnVuY3Rpb24gdGVzdF9tZXRoIGF0IC4uLj4KKyAgICAg c2FnZTogTy53cmFwcGVkX21ldGhvZC5fX25hbWVfXyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLm1pc2MuY3l0aG9uCisgICAgICd3 cmFwcGVkX21ldGhvZCcKKyAgICAgc2FnZTogTy53cmFwcGVkX21ldGhvZCg1KSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdl Lm1pc2MuY3l0aG9uCitAQCAtMjcwLDYgKzI3MCw3IEBAIEludHJvc3BlY3Rpb24gd29ya3M6Ogor ICAgICAgICAgInNvbWUgZG9jIGZvciBhIHdyYXBwZWQgY3l0aG9uIG1ldGhvZCIKKyAgICAgICAg IHJldHVybiAteAorICAgICBzYWdlOiBwcmludChzYWdlX2dldHNvdXJjZShPLmRpcmVjdF9tZXRo b2QpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UubWlz Yy5jeXRob24KKysgICAgQGNhY2hlZF9tZXRob2QKKyAgICAgZGVmIGRpcmVjdF9tZXRob2Qoc2Vs ZiwgeCk6CisgICAgICAgICAiU29tZSBkb2MgZm9yIGRpcmVjdCBtZXRob2QiCisgICAgICAgICBy ZXR1cm4gMip4CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9sYXp5X2ltcG9ydC5weXggYi9z cmMvc2FnZS9taXNjL2xhenlfaW1wb3J0LnB5eAoraW5kZXggYzMzYTFlNzRlZmQuLjdmYzczNDA3 YWNlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9sYXp5X2ltcG9ydC5weXgKKysrKyBiL3Ny Yy9zYWdlL21pc2MvbGF6eV9pbXBvcnQucHl4CitAQCAtMTA5NSw3ICsxMDk1LDcgQEAgZGVmIGxh enlfaW1wb3J0KG1vZHVsZSwgbmFtZXMsIGFzXz1Ob25lLCAqLAorICAgICAgICAgc2FnZTogZnJv bSBzYWdlLmZlYXR1cmVzIGltcG9ydCBQeXRob25Nb2R1bGUKKyAgICAgICAgIHNhZ2U6IGxhenlf aW1wb3J0KCdwcGwnLCAnZXF1YXRpb24nLCBmZWF0dXJlPVB5dGhvbk1vZHVsZSgncHBsJywgc3Br Zz0ncHBscHknLCB0eXBlPSdzdGFuZGFyZCcpKQorICAgICAgICAgc2FnZTogZXF1YXRpb24KKy0g ICAgICAgIDxidWlsdC1pbiBmdW5jdGlvbiBlcXVhdGlvbj4KKysgICAgICAgIDxjeWZ1bmN0aW9u IGVxdWF0aW9uIGF0IC4uLj4KKyAgICAgICAgIHNhZ2U6IGxhenlfaW1wb3J0KCdQeU5vcm1hbGl6 JywgJ05tekxpc3RDb25lUHJvcGVydGllcycsIGZlYXR1cmU9UHl0aG9uTW9kdWxlKCdQeU5vcm1h bGl6Jywgc3BrZz0ncHlub3JtYWxpeicpKSAgIyBvcHRpb25hbCAtIHB5bm9ybWFsaXoKKyAgICAg ICAgIHNhZ2U6IE5tekxpc3RDb25lUHJvcGVydGllcyAgIyBvcHRpb25hbCAtIHB5bm9ybWFsaXoK KyAgICAgICAgIDxidWlsdC1pbiBmdW5jdGlvbiBObXpMaXN0Q29uZVByb3BlcnRpZXM+CitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9sYXp5X2xpc3QucHl4IGIvc3JjL3NhZ2UvbWlzYy9sYXp5 X2xpc3QucHl4CitpbmRleCBiYTYyYzQ0NmI2OS4uY2Q3NTA5MzM4NjAgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9taXNjL2xhenlfbGlzdC5weXgKKysrKyBiL3NyYy9zYWdlL21pc2MvbGF6eV9saXN0 LnB5eAorQEAgLTY3OCw3ICs2NzgsNyBAQCBjZGVmIGNsYXNzIGxhenlfbGlzdF9nZW5lcmljKCk6 CisgICAgICAgICAgICAgc2FnZTogZnJvbSBpdGVydG9vbHMgaW1wb3J0IGNvdW50CisgICAgICAg ICAgICAgc2FnZTogZnJvbSBzYWdlLm1pc2MubGF6eV9saXN0IGltcG9ydCBsYXp5X2xpc3QKKyAg ICAgICAgICAgICBzYWdlOiBpdGVyKGxhenlfbGlzdChjb3VudCgpKSkKKy0gICAgICAgICAgICA8 Z2VuZXJhdG9yIG9iamVjdCBhdCAweC4uLj4KKysgICAgICAgICAgICA8Li4uZ2VuZXJhdG9yIG9i amVjdCBhdCAweC4uLj4KKyAKKyAgICAgICAgIDo6CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv bWlzYy9zYWdlaW5zcGVjdC5weSBiL3NyYy9zYWdlL21pc2Mvc2FnZWluc3BlY3QucHkKK2luZGV4 IGNlNWU5OTg3MDI3Li5kZjhlNmJmODlhYyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2Mvc2Fn ZWluc3BlY3QucHkKKysrKyBiL3NyYy9zYWdlL21pc2Mvc2FnZWluc3BlY3QucHkKK0BAIC03Niw4 ICs3Niw4IEBAIEN5dGhvbiBmdW5jdGlvbnM6OgorICAgICBzYWdlOiBzYWdlX2dldGRvYyhzYWdl LnJpbmdzLnJhdGlvbmFsLm1ha2VfcmF0aW9uYWwpLmxzdHJpcCgpCisgICAgICdNYWtlIGEgcmF0 aW9uYWwgbnVtYmVyIC4uLicKKyAKKy0gICAgc2FnZTogc2FnZV9nZXRzb3VyY2Uoc2FnZS5yaW5n cy5yYXRpb25hbC5tYWtlX3JhdGlvbmFsKVs0Ol0KKy0gICAgJ21ha2VfcmF0aW9uYWwocyk6Li4u JworKyAgICBzYWdlOiBzYWdlX2dldHNvdXJjZShzYWdlLnJpbmdzLnJhdGlvbmFsLm1ha2VfcmF0 aW9uYWwpCisrICAgICdAY3l0aG9uLmJpbmRpbmcoVHJ1ZSlcbmRlZiBtYWtlX3JhdGlvbmFsKHMp Oi4uLicKKyAKKyBQeXRob24gZnVuY3Rpb25zOjoKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9t b2R1bGVzL2ZyZWVfbW9kdWxlX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvbW9kdWxlcy9mcmVlX21v ZHVsZV9lbGVtZW50LnB5eAoraW5kZXggZDVlODI1NmI2OGMuLmM5YWY5YmNiZGY3IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvbW9kdWxlcy9mcmVlX21vZHVsZV9lbGVtZW50LnB5eAorKysrIGIvc3Jj L3NhZ2UvbW9kdWxlcy9mcmVlX21vZHVsZV9lbGVtZW50LnB5eAorQEAgLTE2MzQsNyArMTYzNCw3 IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnQoVmVjdG9yKTogICAjIGFic3RyYWN0IGJh c2UgY2xhc3MKKyAKKyAgICAgICAgICAgICBzYWdlOiB2ID0gdmVjdG9yKFsxLDIvMyxwaV0pCisg ICAgICAgICAgICAgc2FnZTogdi5pdGVtcygpCistICAgICAgICAgICAgPGdlbmVyYXRvciBvYmpl Y3QgYXQgLi4uPgorKyAgICAgICAgICAgIDwuLi5nZW5lcmF0b3Igb2JqZWN0IGF0IC4uLj4KKyAg ICAgICAgICAgICBzYWdlOiBsaXN0KHYuaXRlbXMoKSkKKyAgICAgICAgICAgICBbKDAsIDEpLCAo MSwgMi8zKSwgKDIsIHBpKV0KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVf cmluZ3MvZmluaXRlX2ZpZWxkX2Jhc2UucHl4IGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3Jpbmdz L2Zpbml0ZV9maWVsZF9iYXNlLnB5eAoraW5kZXggN2UyZWVkOTExNTMuLjNhNmRiODk5NWM2IDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2Zpbml0ZV9maWVsZF9iYXNl LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2Zpbml0ZV9maWVsZF9iYXNl LnB5eAorQEAgLTMyOCw3ICszMjgsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkKEZpZWxkKToK KyAgICAgICAgICAgICBzYWdlOiBwID0gbmV4dF9wcmltZSgyXjY0KQorICAgICAgICAgICAgIHNh Z2U6IGsuPGE+ID0gRmluaXRlRmllbGQocF4yLCBpbXBsPSJwYXJpIikKKyAgICAgICAgICAgICBz YWdlOiBpdCA9IGl0ZXIoayk7IGl0CistICAgICAgICAgICAgPGdlbmVyYXRvciBvYmplY3QgYXQg Li4uPgorKyAgICAgICAgICAgIDwuLi5nZW5lcmF0b3Igb2JqZWN0IGF0IC4uLj4KKyAgICAgICAg ICAgICBzYWdlOiBbbmV4dChpdCkgZm9yIGkgaW4gcmFuZ2UoMTApXQorICAgICAgICAgICAgIFsw LCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5XQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Jp bmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2Zpbml0ZV9maWVsZC5weXggYi9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlhbF9maW5pdGVfZmllbGQucHl4CitpbmRl eCA0MTk1MTY4NzkzOS4uYzZiNjdjYmE1ZmIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9w b2x5bm9taWFsL3NrZXdfcG9seW5vbWlhbF9maW5pdGVfZmllbGQucHl4CisrKysgYi9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlhbF9maW5pdGVfZmllbGQucHl4CitAQCAt NjI5LDcgKzYyOSw3IEBAIGNkZWYgY2xhc3MgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxkX2Rl bnNlKFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9vcmRlcl9kZW5zZSk6CisgICAgICAgICAgICAgc2Fn ZTogUy48eD4gPSBrWyd4JyxGcm9iXQorICAgICAgICAgICAgIHNhZ2U6IGEgPSB4XjQgKyAyKnQq eF4zICsgMyp0XjIqeF4yICsgKHReMiArIHQgKyAxKSp4ICsgNCp0ICsgMworICAgICAgICAgICAg IHNhZ2U6IGl0ZXIgPSBhLnJpZ2h0X2lycmVkdWNpYmxlX2Rpdmlzb3JzKCk7IGl0ZXIKKy0gICAg ICAgICAgICA8Z2VuZXJhdG9yIG9iamVjdCBhdCAweC4uLj4KKysgICAgICAgICAgICA8Li4uZ2Vu ZXJhdG9yIG9iamVjdCBhdCAweC4uLj4KKyAgICAgICAgICAgICBzYWdlOiBuZXh0KGl0ZXIpICAg IyByYW5kb20KKyAgICAgICAgICAgICB4ICsgMip0XjIgKyA0KnQgKyA0CisgICAgICAgICAgICAg c2FnZTogbmV4dChpdGVyKSAgICMgcmFuZG9tCitAQCAtNjY0LDcgKzY2NCw3IEBAIGNkZWYgY2xh c3MgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxkX2RlbnNlKFNrZXdQb2x5bm9taWFsX2Zpbml0 ZV9vcmRlcl9kZW5zZSk6CisgICAgICAgICAgICAgc2FnZTogUy48eD4gPSBrWyd4JyxGcm9iXQor ICAgICAgICAgICAgIHNhZ2U6IGEgPSB4XjQgKyAyKnQqeF4zICsgMyp0XjIqeF4yICsgKHReMiAr IHQgKyAxKSp4ICsgNCp0ICsgMworICAgICAgICAgICAgIHNhZ2U6IGl0ZXIgPSBhLmxlZnRfaXJy ZWR1Y2libGVfZGl2aXNvcnMoKTsgaXRlcgorLSAgICAgICAgICAgIDxnZW5lcmF0b3Igb2JqZWN0 IGF0IDB4Li4uPgorKyAgICAgICAgICAgIDwuLi5nZW5lcmF0b3Igb2JqZWN0IGF0IDB4Li4uPgor ICAgICAgICAgICAgIHNhZ2U6IG5leHQoaXRlcikgICMgcmFuZG9tCisgICAgICAgICAgICAgeCAr IDMqdCArIDMKKyAgICAgICAgICAgICBzYWdlOiBuZXh0KGl0ZXIpICAjIHJhbmRvbQorQEAgLTEw NTIsNyArMTA1Miw3IEBAIGNkZWYgY2xhc3MgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxkX2Rl bnNlKFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9vcmRlcl9kZW5zZSk6CisgICAgICAgICAgICAgc2Fn ZTogUy48eD4gPSBrWyd4JyxGcm9iXQorICAgICAgICAgICAgIHNhZ2U6IGEgPSB4XjMgKyAodF4y ICsgMSkqeF4yICsgKDIqdCArIDMpKnggKyB0XjIgKyB0ICsgMgorICAgICAgICAgICAgIHNhZ2U6 IGl0ZXIgPSBhLmZhY3Rvcml6YXRpb25zKCk7IGl0ZXIKKy0gICAgICAgICAgICA8Z2VuZXJhdG9y IG9iamVjdCBhdCAweC4uLj4KKysgICAgICAgICAgICA8Li4uZ2VuZXJhdG9yIG9iamVjdCBhdCAw eC4uLj4KKyAgICAgICAgICAgICBzYWdlOiBuZXh0KGl0ZXIpICAgIyByYW5kb20KKyAgICAgICAg ICAgICAoeCArIDMqdF4yICsgNCp0KSAqICh4ICsgMip0XjIpICogKHggKyA0KnReMiArIDQqdCAr IDIpCisgICAgICAgICAgICAgc2FnZTogbmV4dChpdGVyKSAgICMgcmFuZG9tCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2NvZXJjZV9kaWN0LnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVy ZS9jb2VyY2VfZGljdC5weXgKK2luZGV4IGEyZTg0NDMwODRjLi5lZjg2YzZhZjM1YyAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfZGljdC5weXgKKysrKyBiL3NyYy9zYWdl L3N0cnVjdHVyZS9jb2VyY2VfZGljdC5weXgKK0BAIC03NzcsNyArNzc3LDcgQEAgY2RlZiBjbGFz cyBNb25vRGljdDoKKyAgICAgICAgICAgICBzYWdlOiBMWzFdID0gTm9uZQorICAgICAgICAgICAg IHNhZ2U6IExbMl0gPSBUcnVlCisgICAgICAgICAgICAgc2FnZTogTC5pdGVtcygpCistICAgICAg ICAgICAgPGdlbmVyYXRvciBvYmplY3QgYXQgLi4uPgorKyAgICAgICAgICAgIDwuLi5nZW5lcmF0 b3Igb2JqZWN0IGF0IC4uLj4KKyAgICAgICAgICAgICBzYWdlOiBzb3J0ZWQoTC5pdGVtcygpKQor ICAgICAgICAgICAgIFsoMSwgTm9uZSksICgyLCBUcnVlKV0KKyAgICAgICAgICIiIgorQEAgLTE0 NTIsNyArMTQ1Miw3IEBAIGNkZWYgY2xhc3MgVHJpcGxlRGljdDoKKyAgICAgICAgICAgICBzYWdl OiBMID0gVHJpcGxlRGljdCgpCisgICAgICAgICAgICAgc2FnZTogTFsxLDIsM10gPSBOb25lCisg ICAgICAgICAgICAgc2FnZTogTC5pdGVtcygpCistICAgICAgICAgICAgPGdlbmVyYXRvciBvYmpl Y3QgYXQgLi4uPgorKyAgICAgICAgICAgIDwuLi5nZW5lcmF0b3Igb2JqZWN0IGF0IC4uLj4KKyAg ICAgICAgICAgICBzYWdlOiBsaXN0KEwuaXRlbXMoKSkKKyAgICAgICAgICAgICBbKCgxLCAyLCAz KSwgTm9uZSldCisgICAgICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS90ZXN0cy9jbWRs aW5lLnB5IGIvc3JjL3NhZ2UvdGVzdHMvY21kbGluZS5weQoraW5kZXggYWQwYzQ0YWEyNzQuLmYx NGNkMmRiNzY4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvdGVzdHMvY21kbGluZS5weQorKysrIGIv c3JjL3NhZ2UvdGVzdHMvY21kbGluZS5weQorQEAgLTQ5MSw5ICs0OTEsOCBAQCBkZWYgdGVzdF9l eGVjdXRhYmxlKGFyZ3MsIGlucHV0PSIiLCB0aW1lb3V0PTEwMC4wLCBweWRlYnVnX2lnbm9yZV93 YXJuaW5ncz1GYWxzZQorIAorICAgICAgICAgc2FnZTogKG91dCwgZXJyLCByZXQpID0gdGVzdF9l eGVjdXRhYmxlKFsic2FnZSIsICItLWN5dGhvbiJdKQorICAgICAgICAgc2FnZTogcHJpbnQoZXJy KQorLSAgICAgICAgQ3l0aG9uIChodHRwOi8vY3l0aG9uLm9yZykgaXMgYSBjb21waWxlciBmb3Ig Y29kZSB3cml0dGVuIGluIHRoZQorLSAgICAgICAgQ3l0aG9uIGxhbmd1YWdlLiAgQ3l0aG9uIGlz IGJhc2VkIG9uIFB5cmV4IGJ5IEdyZWcgRXdpbmcuCisgICAgICAgICAuLi4KKysgICAgICAgIGN5 dGhvbjogZXJyb3I6IGN5dGhvbjogTmVlZCBhdCBsZWFzdCBvbmUgc291cmNlIGZpbGUKKyAKKyAg ICAgICAgIHNhZ2U6IGRlZiBoYXNfdHR5KCk6CisgICAgICAgICAuLi4uOiAgICAgdHJ5OgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2dldF9wYXRjaGVzIGIvc3JjcGtncy9z YWdlbWF0aC9wYXRjaGVzL2dldF9wYXRjaGVzCmluZGV4IGMyYzVhYTFjN2VjY2QuLjhkNTBmOWEz Y2QzYjMgMTAwNzU1Ci0tLSBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9nZXRfcGF0Y2hlcwor KysgYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZ2V0X3BhdGNoZXMKQEAgLTEyLDcgKzEyLDcg QEAgZXNhYwogIyBnZXRfcHIgPFBSIG51bWJlcj4gPGRlc2NyaXB0aW9uPiBbZXh0XQogZ2V0X3By KCkgewogCXByPSQxCi0JZGVzYz0kKGVjaG8gIiQyIiB8IHNlZCAtZSAncy8gL18vZycpCisJZGVz Yz0kKGVjaG8gIiQyIiB8IHRyICcgLycgJ18tJykKIAlleHQ9JHszLWRpZmZ9CiAJJERPIHdnZXQg IiRVUkxfQkFTRV9QUiRwci4kZXh0IiAtTyAiJHByLSRkZXNjLnBhdGNoIgogfQpAQCAtMjQsNiAr MjQsOSBAQCBjZCAkKGRpcm5hbWUgIiQwIikKICNnZXRfcHIgIDM2MDE4ICAgInNpbmd1bGFyIDQu My4ycDQiICMgaW5jbHVkZWQgaW4gIzM1OTM0CiBnZXRfcHIgIDM2MDQ2ICAgImZpeCBtZW1vcnkg bGVhayIKIAotIyBwb3NpdGl2ZSByZXZpZXcKKyMgbWVyZ2VkIGluIDEwLjIuYmV0YTEKIGdldF9w ciAgMzU5MzQgICAic2luZ3VsYXIgNC4zLjJwNyIKK2dldF9wciAgMzYxMDkgICAicHJlcGFyZSBm b3IgY3l0aG9uIDMuMCIgIyBpbmNsdWRlZCBpbiAjMzYxMTAKKworIyBwb3NpdGl2ZSByZXZpZXcK IGdldF9wciAgMzYwMDYgICAiZ21wIDYuMy4wIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zYWdlbWF0 aC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2FnZW1hdGgvdGVtcGxhdGUKaW5kZXggMDE5YWQzN2NiM2E3 MC4uNWQzMGJiMGJmYzE2MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9zYWdlbWF0aC90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3NhZ2VtYXRoL3RlbXBsYXRlCkBAIC0xLDEyICsxLDEyIEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdzYWdlbWF0aCcKIHBrZ25hbWU9c2FnZW1hdGgKIHZlcnNpb249MTAuMQot cmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfd3Jrc3JjPXBrZ3Mvc2FnZW1hdGgtc3RhbmRh cmQKIGJ1aWxkX3N0eWxlPXB5dGhvbjMtbW9kdWxlCiBfYmluZGlyPS91c3IvbGliL3NhZ2VtYXRo LyR2ZXJzaW9uL2JpbgogbWFrZV9pbnN0YWxsX2FyZ3M9Ii0taW5zdGFsbC1zY3JpcHRzPSRfYmlu ZGlyIgotaG9zdG1ha2VkZXBlbmRzPSJtNCBwa2ctY29uZmlnIHB5dGhvbjMtQ3l0aG9uMC4yOSBw eXRob24zLUppbmphMgoraG9zdG1ha2VkZXBlbmRzPSJtNCBwa2ctY29uZmlnIHB5dGhvbjMtQ3l0 aG9uIHB5dGhvbjMtSmluamEyCiAgcHl0aG9uMy1wa2djb25maWcgcHl0aG9uMy1zZXR1cHRvb2xz IgogbWFrZWRlcGVuZHM9ImFyYi1kZXZlbCBib29zdC1kZXZlbCBicmlhbC1kZXZlbCBjbGlxdWVy LWRldmVsIGVjbCBlY2xpYi1kZXZlbAogIGVjbS1kZXZlbCBmZmxhcy1mZnBhY2sgZmxpbnRsaWIt ZGV2ZWwgZ2FwLWRldmVsIGdkLWRldmVsIGdpYWMtZGV2ZWwgZ2xway1kZXZlbApAQCAtMTgsNyAr MTgsNyBAQCBtYWtlZGVwZW5kcz0iYXJiLWRldmVsIGJvb3N0LWRldmVsIGJyaWFsLWRldmVsIGNs aXF1ZXItZGV2ZWwgZWNsIGVjbGliLWRldmVsCiBkZXBlbmRzPSJlY2xpYi1kZXZlbCBmZmxhcy1m ZnBhY2sgZmxpbnRsaWItZGV2ZWwgZ2NjLWZvcnRyYW4gZ2QtZGV2ZWwKICBnZmFuIGdpYWMgZ3Ns LWRldmVsIGd6aXAgbGlicG5nLWRldmVsIGxpbmJveC1kZXZlbCBtNHJpLWRldmVsIG1heGltYS1l Y2wKICBtcGZyLWRldmVsIG5hdXR5IG50bC1kZXZlbCBwYWxwIHBhcmktZGV2ZWwgcGFyaS1lbGxk YXRhLXNtYWxsIHBhcmktZ2FsZGF0YQotIHBhcmktZ2FscG9sLXNtYWxsIHBhcmktc2VhZGF0YS1z bWFsbCBwa2ctY29uZmlnIHB5dGhvbjMtQ3l0aG9uMC4yOSBweXRob24zLWN5cGFyaTIKKyBwYXJp LWdhbHBvbC1zbWFsbCBwYXJpLXNlYWRhdGEtc21hbGwgcGtnLWNvbmZpZyBweXRob24zLUN5dGhv biBweXRob24zLWN5cGFyaTIKICBweXRob24zLWN5c2lnbmFscyBweXRob24zLWRldmVsIHB5dGhv bjMtZnB5bGxsIHB5dGhvbjMtaXB5dGhvbiBweXRob24zLWxyY2FsYwogIHB5dGhvbjMtaXB5dGhv bl9pcHlrZXJuZWwgcHl0aG9uMy1qdXB5dGVyX2lweXdpZGdldHMgcHl0aG9uMy1tYXRwbG90bGli CiAgcHl0aG9uMy1tZW1vcnlfYWxsb2NhdG9yIHB5dGhvbjMtbmV0d29ya3ggcHl0aG9uMy1waXAg cHl0aG9uMy1wa2djb25maWcK --===============6135481253218872781==--