From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 32653 invoked from network); 5 Sep 2023 11:57:06 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 5 Sep 2023 11:57:06 -0000 Content-Type: multipart/mixed; boundary="===============8588024153071885812==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_sagemath=3A_use_cython_3?= To: ml@inbox.vuxu.org From: tornaria Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 05 Sep 2023 13:57:05 +0200 List-Id: Message-ID: <20230905115705.f6WlhAkfKU9T9WxD-NEk5SNrO5_trec2znNTRR0QQL8@z> GitHub notification mails are now in MIME to allow UTF8. --===============8588024153071885812== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgdG9ybmFyaWEgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3Rv cm5hcmlhL3ZvaWQtcGFja2FnZXMgc2FnZW1hdGgtY3l0aG9uMwpodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDU4ODcKCnNhZ2VtYXRoOiB1c2UgY3l0aG9u IDMKIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBjaGFuZ2VzIGluIHRo aXMgUFI6ICoqYnJpZWZseSoqDQoNClNpbmNlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYWdlbWF0aC9z YWdlL3B1bGwvMzYxMDkgd2FzIG1lcmdlZCB1cHN0cmVhbSwgaXQncyBub3cgYWxtb3N0IHRyaXZp YWwgdG8gYnVpbGQgc2FnZW1hdGggd2l0aCBjeXRob24gMy4gVGhpcyBQUiBpcyBwcmV0dHkgc3Ry YWlnaHRmb3J3YXJkIHRvIHVuZGVyc3RhbmQ6DQoNCiAtIGNvbW1pdCA3ZjhlNjUxNGZmYTU0NDQ5 YTgwZTAxZmJhZTdmOTM1NWE3NzM5YTQ2IHJlYnVpbGRzIGBweXRob24zLXBwbHB5YCB1c2luZyBj eXRob24gMy4gTm90aGluZyBmYW5jeSBoZXJlIGFuZCB0aGlzIGNvbW1pdCB3YXMgYWxyZWFkeSB0 ZXN0ZWQgYW5kIG9ubHkgZHJvcHBlZCBzaW5jZSBpdCB0dXJuZWQgb3V0IGl0IGhhZCB0byBiZSBi dWlsdCB3aXRoIHRoZSBzYW1lIHZlcnNpb24gb2YgY3l0aG9uIGFzIHNhZ2VtYXRoIGl0c2VsZi4N CiAtIGNvbW1pdCBkZjBkMjE4NzFjZTg1MGVmZWEzZmMwMWYxOWEzZDllOGMwZDVmMGQ0IGlzIGp1 c3QgYWRkaW5nIGEgZmV3IHBhdGNoZXMgdG8gc2FnZW1hdGgsIHN3aXRjaGluZyB0byBjeXRob24g MywgYW5kIGJ1bXBpbmcuDQoNCkRlc2NyaXB0aW9uIG9mIGFkZGVkIHBhdGNoZXM6DQoxLiBwYXRj aCBgMzYxMDktMDBwcmUucGF0Y2hgOiB0aGlzIGlzIGhhbmQgcGlja2VkIHRyaXZpYWwgcGF0Y2gg dGhhdCBhbGxvd3MgdXMgdG8gYXBwbHkgaHR0cHM6Ly9naXRodWIuY29tL3NhZ2VtYXRoL3NhZ2Uv cHVsbC8zNjEwOSBjbGVhbmx5IG9uIDEwLjEgKHNpbmNlIHRoYXQgUFIgaXMgYmFzZWQgb24gMTAu MS5iZXRhMCkuIEFsbCBjaGFuZ2VzIGFyZSBjb21tZW50cyENCjIuIHBhdGNoIGAzNjEwOS1wcmVw YXJlX2Zvcl9jeXRob25fMy4wLnBhdGNoYDogdGhpcyBpcyBsb25nLCB0YWtlbiB2ZXJiYXRpbSBm cm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9zYWdlbWF0aC9zYWdlL3B1bGwvMzYxMDkuZGlmZiwgYW5k IGlzIGFscmVhZHkgbWVyZ2VkLg0KMy4gcGF0Y2ggYGJ1aWxkLWN5dGhvbjMucGF0Y2hgOiB0aGlz IGlzIDIgbGluZXMgY2hhbmdlZCBwbHVzIDQgbGVnYWN5IGJ1aWxkIG9wdGlvbnMgYWRkZWQgdG8g Y3l0aG9uIHNldHVwLg0KNC4gcGF0Y2ggYGZpeC1kb2N0ZXN0LWN5dGhvbjMucGF0Y2hgOiB0aGlz IGlzIGEgZmV3IGZpeGVzIGluIGRvY3Rlc3RzIHRvIGFjY29tb2RhdGUgbWlub3IgY2hhbmdlcyBp biBjeXRob24gb3V0cHV0IChgX19yZXByX19gIGZvciBjeXRob24gY2xhc3NlcywgZnVuY3Rpb25z LCBhbmQgZ2VuZXJhdG9ycykuDQoNCkNDOiBAYWhlc2ZvcmQgDQoNCjwhLS0NCiMjIyMgTmV3IHBh Y2thZ2UNCi0gVGhpcyBuZXcgcGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3BhY2thZ2UgcmVxdWly ZW1lbnRzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2Iv bWFzdGVyL0NPTlRSSUJVVElORy5tZCNwYWNrYWdlLXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipO TyoqDQotLT4NCg0KPCEtLSBOb3RlOiBJZiB0aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRha2UgbW9y ZSB0aGFuIDIgaG91cnMsIHBsZWFzZSBhZGQgY2kgc2tpcCB0YWcgYXMgZGVzY3JpYmVkIGluDQpo dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NP TlRSSUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uDQphbmQgdGVzdCBhdCBsZWFzdCBv bmUgbmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVp bGQuDQpJZ25vcmUgdGhpcyBzZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5nIENJLg0K LS0+DQo8IS0tDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxv Y2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQotIEkgYnVpbHQg dGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1h cmsgY3Jvc3NidWlsZHMpOg0KICAtIGFhcmNoNjQtbXVzbA0KICAtIGFybXY3bA0KICAtIGFybXY2 bC1tdXNsDQotLT4NCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQt bGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQ1ODg3LnBhdGNoIGlzIGF0dGFjaGVk --===============8588024153071885812== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-sagemath-cython3-45887.patch" RnJvbSBmMWJlZDY3NmE4NDZiYjNmNzA3ZDVlZGUyZTI2YWNmMTc4OTE2MzIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R29uemFsbz0yMFRvcm5hcj1DMz1BRGE/PSA8 dG9ybmFyaWFAY21hdC5lZHUudXk+CkRhdGU6IFdlZCwgMTkgSnVsIDIwMjMgMjE6MDQ6MzMgLTAz MDAKU3ViamVjdDogW1BBVENIIDEvMl0gcHl0aG9uMy1wcGxweTogdXBkYXRlIHRvIDAuOC45LCB1 c2UgY3l0aG9uIDMuCgotLS0KIHNyY3BrZ3MvcHl0aG9uMy1wcGxweS90ZW1wbGF0ZSB8IDEyICsr KysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbjMtcHBscHkvdGVtcGxhdGUgYi9zcmNwa2dz L3B5dGhvbjMtcHBscHkvdGVtcGxhdGUKaW5kZXggNmMxZTgzYWEwOTFjNy4uZDdhMzFhZWFiMjAy MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24zLXBwbHB5L3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvcHl0aG9uMy1wcGxweS90ZW1wbGF0ZQpAQCAtMSwxOSArMSwxOSBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAncHl0aG9uMy1wcGxweScKIHBrZ25hbWU9cHl0aG9uMy1wcGxweQotdmVyc2lvbj0w LjguNwotcmV2aXNpb249MwordmVyc2lvbj0wLjguOQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 cHl0aG9uMy1tb2R1bGUKLWhvc3RtYWtlZGVwZW5kcz0icHl0aG9uMy1zZXR1cHRvb2xzIHB5dGhv bjMtQ3l0aG9uMC4yOSIKK2hvc3RtYWtlZGVwZW5kcz0icHl0aG9uMy1zZXR1cHRvb2xzIHB5dGhv bjMtQ3l0aG9uIgogbWFrZWRlcGVuZHM9InB5dGhvbjMtY3lzaWduYWxzIHB5dGhvbjMtZ21weTIg cHl0aG9uMy1kZXZlbCBnbXAtZGV2ZWwKICBnbXB4eC1kZXZlbCBwcGwtZGV2ZWwgbXBmci1kZXZl bCBsaWJtcGMtZGV2ZWwgcGFyaS1kZXZlbCIKIGRlcGVuZHM9InB5dGhvbjMiCiBzaG9ydF9kZXNj PSJQeXRob24gd3JhcHBlciB0byB0aGUgQysrIFBhcm1hIFBvbHloZWRyYSBMaWJyYXJ5IChQUEwp IgogbWFpbnRhaW5lcj0iR29uemFsbyBUb3JuYXLDrWEgPHRvcm5hcmlhQGNtYXQuZWR1LnV5PiIK IGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCi1ob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuY29t L3ZpZGVsZWMvcHBscHkiCi1jaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmNvbS92aWRlbGVjL3Bw bHB5Ly0vcmF3L21hc3Rlci9DSEFOR0VTLnR4dCIKK2hvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5j b20vc2FnZW1hdGgvcHBscHkiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250 ZW50LmNvbS9zYWdlbWF0aC9wcGxweS9tYXN0ZXIvQ0hBTkdFUy50eHQiCiBkaXN0ZmlsZXM9IiR7 UFlQSV9TSVRFfS9wL3BwbHB5L3BwbHB5LSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09NTAw YmQwZjRhZTFhNzY5NTZmYWU3ZmNiYTc3ODU0ZjVlYzNlNjRmY2U3NjgwMzY2NDk4Mzc2M2MzZjJi ZDhiZAorY2hlY2tzdW09ZGI3YTNiNTcxZDZlZjA1M2Y3NTEzNzk3NWU5NDdjM2ExYzFlNDVhMzBi YWI5MGVhZjIxNWI0ZTVjYzE1Nzk3ZQogCiBkb19jaGVjaygpIHsKIAlQWVRIT05QQVRIPSQoY2Qg YnVpbGQvbGliKiAmJiBwd2QpIHB5dGhvbjMgc2V0dXAucHkgdGVzdAoKRnJvbSBiYTBjNzYzNjZj MTQ4NGM5YmI2OWYxMmU0ZTU2OTkyMWE5NDkyOGJhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/R29uemFsbz0yMFRvcm5hcj1DMz1BRGE/PSA8dG9ybmFyaWFAY21hdC5l ZHUudXk+CkRhdGU6IFR1ZSwgMjkgQXVnIDIwMjMgMjI6MTQ6NDkgLTAzMDAKU3ViamVjdDogW1BB VENIIDIvMl0gc2FnZW1hdGg6IHVzZSBjeXRob24gMy4wCgotLS0KIHNyY3BrZ3Mvc2FnZW1hdGgv cGF0Y2hlcy8zNjEwOS0wMHByZS5wYXRjaCAgICB8ICAgNTAgKwogLi4uLzM2MTA5LXByZXBhcmVf Zm9yX2N5dGhvbl8zLjAucGF0Y2ggICAgICAgIHwgOTk5NSArKysrKysrKysrKysrKysrKwogc3Jj cGtncy9zYWdlbWF0aC9wYXRjaGVzL2J1aWxkLWN5dGhvbjMucGF0Y2ggIHwgICA0NCArCiAuLi4v cGF0Y2hlcy9maXgtZG9jdGVzdC1jeXRob24zLnBhdGNoICAgICAgICAgfCAgMjA3ICsKIHNyY3Br Z3Mvc2FnZW1hdGgvcGF0Y2hlcy9nZXRfcGF0Y2hlcyAgICAgICAgICB8ICAgIDcgKy0KIHNyY3Br Z3Mvc2FnZW1hdGgvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIDYgZmls ZXMgY2hhbmdlZCwgMTAzMDQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvMzYxMDktMDBwcmUucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvMzYxMDktcHJlcGFyZV9m b3JfY3l0aG9uXzMuMC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc2FnZW1hdGgv cGF0Y2hlcy9idWlsZC1jeXRob24zLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9z YWdlbWF0aC9wYXRjaGVzL2ZpeC1kb2N0ZXN0LWN5dGhvbjMucGF0Y2gKCmRpZmYgLS1naXQgYS9z cmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvMzYxMDktMDBwcmUucGF0Y2ggYi9zcmNwa2dzL3NhZ2Vt YXRoL3BhdGNoZXMvMzYxMDktMDBwcmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwMC4uMGEzMGQ2MjJmMGY2MgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv c2FnZW1hdGgvcGF0Y2hlcy8zNjEwOS0wMHByZS5wYXRjaApAQCAtMCwwICsxLDUwIEBACitQcmUt cGF0Y2ggc28gdGhhdCBQUiAjMzYxMDkgYXBwbGllcyBjbGVhbmx5IG9uIHRvcCBvZiAxMC4xCisK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jYXRlZ29yaWVzL2hvcGZfYWxnZWJyYXNfd2l0aF9iYXNp cy5weSBiL3NyYy9zYWdlL2NhdGVnb3JpZXMvaG9wZl9hbGdlYnJhc193aXRoX2Jhc2lzLnB5Citp bmRleCBlYTQwMTg5NmNhMC4uMjliNmY0OGE4NmYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jYXRl Z29yaWVzL2hvcGZfYWxnZWJyYXNfd2l0aF9iYXNpcy5weQorKysrIGIvc3JjL3NhZ2UvY2F0ZWdv cmllcy9ob3BmX2FsZ2VicmFzX3dpdGhfYmFzaXMucHkKK0BAIC0zMywxMSArMzMsMTEgQEAgY2xh c3MgSG9wZkFsZ2VicmFzV2l0aEJhc2lzKENhdGVnb3J5V2l0aEF4aW9tX292ZXJfYmFzZV9yaW5n KToKKyAgICAgV2Ugbm93IHNob3cgaG93IHRvIHVzZSBhIHNpbXBsZSBIb3BmIGFsZ2VicmEsIG5h bWVseSB0aGUgZ3JvdXAgYWxnZWJyYSBvZiB0aGUgZGloZWRyYWwgZ3JvdXAKKyAgICAgKHNlZSBh bHNvIEFsZ2VicmFzV2l0aEJhc2lzKTo6CisgCistICAgICAgICBzYWdlOiBBID0gQy5leGFtcGxl KCk7IEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgb3B0aW9uYWwgLSBzYWdlLmdyb3VwcworKyAgICAgICAgc2FnZTogQSA9IEMuZXhhbXBs ZSgpOyBBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIG5lZWRzIHNhZ2UuZ3JvdXBzCisgICAgICAgICBBbiBleGFtcGxlIG9mIEhvcGYgYWxn ZWJyYSB3aXRoIGJhc2lzOiB0aGUgZ3JvdXAgYWxnZWJyYSBvZiB0aGUKKyAgICAgICAgICBEaWhl ZHJhbCBncm91cCBvZiBvcmRlciA2IGFzIGEgcGVybXV0YXRpb24gZ3JvdXAgb3ZlciBSYXRpb25h bCBGaWVsZAorLSAgICAgICAgc2FnZTogQS5fX2N1c3RvbV9uYW1lID0gIkEiICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2Fn ZS5ncm91cHMKKy0gICAgICAgIHNhZ2U6IEEuY2F0ZWdvcnkoKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNh Z2UuZ3JvdXBzCisrICAgICAgICBzYWdlOiBBLl9fY3VzdG9tX25hbWUgPSAiQSIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbmVlZHMgc2FnZS5n cm91cHMKKysgICAgICAgIHNhZ2U6IEEuY2F0ZWdvcnkoKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBuZWVkcyBzYWdlLmdyb3Vw cworICAgICAgICAgQ2F0ZWdvcnkgb2YgZmluaXRlIGRpbWVuc2lvbmFsIGhvcGYgYWxnZWJyYXMg d2l0aCBiYXNpcyBvdmVyIFJhdGlvbmFsIEZpZWxkCisgCisgICAgICAgICBzYWdlOiBBLm9uZV9i YXNpcygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLmdyb3VwcworZGlmZiAtLWdpdCBhL3NyYy9zYWdl L2NhdGVnb3JpZXMvbW9kdWxlc193aXRoX2Jhc2lzLnB5IGIvc3JjL3NhZ2UvY2F0ZWdvcmllcy9t b2R1bGVzX3dpdGhfYmFzaXMucHkKK2luZGV4IDg1YTBkNTAyMzlhLi5jMGUyOTg4NmI1ZiAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL2NhdGVnb3JpZXMvbW9kdWxlc193aXRoX2Jhc2lzLnB5CisrKysg Yi9zcmMvc2FnZS9jYXRlZ29yaWVzL21vZHVsZXNfd2l0aF9iYXNpcy5weQorQEAgLTY2LDkgKzY2 LDkgQEAgY2xhc3MgTW9kdWxlc1dpdGhCYXNpcyhDYXRlZ29yeVdpdGhBeGlvbV9vdmVyX2Jhc2Vf cmluZyk6CisgCisgICAgIExldCBgWGAgYW5kIGBZYCBiZSB0d28gbW9kdWxlcyB3aXRoIGJhc2lz LiBXZSBjYW4gYnVpbGQgYEhvbShYLFkpYDo6CisgCistICAgICAgICBzYWdlOiBYID0gQ29tYmlu YXRvcmlhbEZyZWVNb2R1bGUoUVEsIFsxLDJdKTsgWC5fX2N1c3RvbV9uYW1lID0gIlgiICAgICAg ICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLm1vZHVsZXMKKy0gICAgICAgIHNhZ2U6IFkgPSBDb21i aW5hdG9yaWFsRnJlZU1vZHVsZShRUSwgWzMsNF0pOyBZLl9fY3VzdG9tX25hbWUgPSAiWSIgICAg ICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UubW9kdWxlcworLSAgICAgICAgc2FnZTogSCA9IEhv bShYLCBZKTsgSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5tb2R1bGVzCisrICAgICAgICBzYWdlOiBYID0g Q29tYmluYXRvcmlhbEZyZWVNb2R1bGUoUVEsIFsxLDJdKTsgWC5fX2N1c3RvbV9uYW1lID0gIlgi ICAgICAgICAgICAgICMgbmVlZHMgc2FnZS5tb2R1bGVzCisrICAgICAgICBzYWdlOiBZID0gQ29t YmluYXRvcmlhbEZyZWVNb2R1bGUoUVEsIFszLDRdKTsgWS5fX2N1c3RvbV9uYW1lID0gIlkiICAg ICAgICAgICAgICMgbmVlZHMgc2FnZS5tb2R1bGVzCisrICAgICAgICBzYWdlOiBIID0gSG9tKFgs IFkpOyBIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgbmVlZHMgc2FnZS5tb2R1bGVzCisgICAgICAgICBTZXQgb2YgTW9ycGhpc21zIGZy b20gWCB0byBZCisgICAgICAgICAgaW4gQ2F0ZWdvcnkgb2YgZmluaXRlIGRpbWVuc2lvbmFsIHZl Y3RvciBzcGFjZXMgd2l0aCBiYXNpcyBvdmVyIFJhdGlvbmFsIEZpZWxkCisgCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHl4IGIvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMu cHl4CitpbmRleCBkYWM0YzY4NGY0Ny4uOWIyOTE2ZTU0N2QgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9taXNjL2NhY2hlZnVuYy5weXgKKysrKyBiL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB5eAor QEAgLTI5Nyw2ICsyOTcsNyBAQCBtZXRob2RzIG9mIGV4dGVuc2lvbiBjbGFzc2VzLCBhcyBsb25n IGFzIHRoZXkgZWl0aGVyIHN1cHBvcnQgYXR0cmlidXRlIGFzc2lnbm1lbgorIG9yIGhhdmUgYSBw dWJsaWMgYXR0cmlidXRlIG9mIHR5cGUgYGA8ZGljdD5gYCBjYWxsZWQgYGBfX2NhY2hlZF9tZXRo b2RzYGAuIFRoZQorIGxhdHRlciBpcyBlYXN5OjoKKyAKKysgICAgc2FnZTogIyBuZWVkcyBzYWdl Lm1pc2MuY3l0aG9uCisgICAgIHNhZ2U6IGN5dGhvbl9jb2RlID0gWworICAgICAuLi4uOiAiZnJv bSBzYWdlLm1pc2MuY2FjaGVmdW5jIGltcG9ydCBjYWNoZWRfbWV0aG9kIiwKKyAgICAgLi4uLjog ImNkZWYgY2xhc3MgTXlDbGFzczoiLApkaWZmIC0tZ2l0IGEvc3JjcGtncy9zYWdlbWF0aC9wYXRj aGVzLzM2MTA5LXByZXBhcmVfZm9yX2N5dGhvbl8zLjAucGF0Y2ggYi9zcmNwa2dzL3NhZ2VtYXRo L3BhdGNoZXMvMzYxMDktcHJlcGFyZV9mb3JfY3l0aG9uXzMuMC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi45MzM5MGY3ZWVmOTkyCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzM2MTA5LXByZXBhcmVfZm9yX2N5dGhvbl8z LjAucGF0Y2gKQEAgLTAsMCArMSw5OTk1IEBACitkaWZmIC0tZ2l0IGEvc3JjL2RvYy9lbi90aGVt YXRpY190dXRvcmlhbHMvY29lcmNpb25fYW5kX2NhdGVnb3JpZXMucnN0IGIvc3JjL2RvYy9lbi90 aGVtYXRpY190dXRvcmlhbHMvY29lcmNpb25fYW5kX2NhdGVnb3JpZXMucnN0CitpbmRleCA0ZWZl NjhhMjYxNy4uZGUyMzQ5YTlhM2YgMTAwNjQ0CistLS0gYS9zcmMvZG9jL2VuL3RoZW1hdGljX3R1 dG9yaWFscy9jb2VyY2lvbl9hbmRfY2F0ZWdvcmllcy5yc3QKKysrKyBiL3NyYy9kb2MvZW4vdGhl bWF0aWNfdHV0b3JpYWxzL2NvZXJjaW9uX2FuZF9jYXRlZ29yaWVzLnJzdAorQEAgLTEwNiw3ICsx MDYsNiBAQCBUaGlzIGJhc2UgY2xhc3MgcHJvdmlkZXMgYSBsb3QgbW9yZSBtZXRob2RzIHRoYW4g YSBnZW5lcmFsIHBhcmVudDo6CisgCisgICAgIHNhZ2U6IFtwIGZvciBwIGluIGRpcihGaWVsZCkg aWYgcCBub3QgaW4gZGlyKFBhcmVudCldCisgICAgIFsnX19mcmFjdGlvbl9maWVsZCcsCistICAg ICAnX19pZGVhbF9tb25vaWQnLAorICAgICAgJ19faXRlcl9fJywKKyAgICAgICdfX2xlbl9fJywK KyAgICAgICdfX3J4b3JfXycsCitAQCAtMTE5LDYgKzExOCw3IEBAIFRoaXMgYmFzZSBjbGFzcyBw cm92aWRlcyBhIGxvdCBtb3JlIG1ldGhvZHMgdGhhbiBhIGdlbmVyYWwgcGFyZW50OjoKKyAgICAg ICdfZGVmYXVsdF9jYXRlZ29yeScsCisgICAgICAnX2dlbnMnLAorICAgICAgJ19pZGVhbF9jbGFz c18nLAorKyAgICAgJ19pZGVhbF9tb25vaWQnLAorICAgICAgJ19sYXRleF9uYW1lcycsCisgICAg ICAnX2xpc3QnLAorICAgICAgJ19vbmVfZWxlbWVudCcsCitkaWZmIC0tZ2l0IGEvc3JjL2RvYy9l bi90aGVtYXRpY190dXRvcmlhbHMvdHV0b3JpYWwtb2JqZWN0cy1hbmQtY2xhc3Nlcy5yc3QgYi9z cmMvZG9jL2VuL3RoZW1hdGljX3R1dG9yaWFscy90dXRvcmlhbC1vYmplY3RzLWFuZC1jbGFzc2Vz LnJzdAoraW5kZXggNTFhZWM5ODk4MTAuLjU1M2E5NDZjNGQ4IDEwMDY0NAorLS0tIGEvc3JjL2Rv Yy9lbi90aGVtYXRpY190dXRvcmlhbHMvdHV0b3JpYWwtb2JqZWN0cy1hbmQtY2xhc3Nlcy5yc3QK KysrKyBiL3NyYy9kb2MvZW4vdGhlbWF0aWNfdHV0b3JpYWxzL3R1dG9yaWFsLW9iamVjdHMtYW5k LWNsYXNzZXMucnN0CitAQCAtMjk4LDcgKzI5OCw3IEBAIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcv bGlicmFyeS8gZm9yIGEgY29tcGxldGUgbGlzdC4gOjoKKyAgICAgICAgIHNhZ2U6IGVsCisgICAg ICAgICBibGEKKyAgICAgICAgIHNhZ2U6IGVsLl9fZGljdF9fCistICAgICAgICB7J19fY3VzdG9t X25hbWUnOiAnYmxhJywgJ3ZhbHVlJzogNDJ9CisrICAgICAgICB7J19TYWdlT2JqZWN0X19jdXN0 b21fbmFtZSc6ICdibGEnLCAndmFsdWUnOiA0Mn0KKyAKKyAgICAgTG90cyBvZiBTYWdlIG9iamVj dHMgYXJlIG5vdCBQeXRob24gb2JqZWN0cyBidXQgY29tcGlsZWQgQ3l0aG9uCisgICAgIG9iamVj dHMuIFB5dGhvbiBzZWVzIHRoZW0gYXMgYnVpbHRpbiBvYmplY3RzIGFuZCB5b3UgZG8gbm90IGhh dmUKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hbGdlYnJhcy9sZXR0ZXJwbGFjZS9mcmVlX2FsZ2Vi cmFfbGV0dGVycGxhY2UucHhkIGIvc3JjL3NhZ2UvYWxnZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9h bGdlYnJhX2xldHRlcnBsYWNlLnB4ZAoraW5kZXggZDFkMTYyYzNiNDAuLjQ3YTcyNzVhYmEwIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvYWxnZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9hbGdlYnJhX2xl dHRlcnBsYWNlLnB4ZAorKysrIGIvc3JjL3NhZ2UvYWxnZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9h bGdlYnJhX2xldHRlcnBsYWNlLnB4ZAorQEAgLTIwLDE2ICsyMCwxNSBAQCBjZGVmIGNsYXNzIEZy ZWVBbGdlYnJhX2xldHRlcnBsYWNlX2xpYnNpbmd1bGFyKCk6CisgICAgIGNkZWYgcmluZyogX2xw X3JpbmcKKyAgICAgY2RlZiBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgX2NvbW11dGF0aXZl X3JpbmcKKyAgICAgY2RlZiBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgX2xwX3JpbmdfaW50 ZXJuYWwKKy0gICAgY2RlZiBvYmplY3QgX19uZ2VucworKyAgICBjZGVmIG9iamVjdCBfbmdlbnMK KyAKKyBjZGVmIGNsYXNzIEZyZWVBbGdlYnJhX2xldHRlcnBsYWNlKEFsZ2VicmEpOgorICAgICBj ZGVmIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhciBfY29tbXV0YXRpdmVfcmluZworICAgICBj ZGVmIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhciBfY3VycmVudF9yaW5nCisgICAgIGNkZWYg aW50IF9kZWdib3VuZAorLSAgICBjZGVmIGludCBfX25nZW5zCisrICAgIGNkZWYgaW50IF9uZ2Vu cworICAgICBjZGVmIGludCBfbmJfc2xhY2t2YXJzCisgICAgIGNkZWYgb2JqZWN0IF9fbW9ub2lk CistICAgIGNkZWYgcHVibGljIG9iamVjdCBfX2N1c3RvbV9uYW1lCisgICAgIGNkZWYgc3RyIGV4 cG9uZW50c190b19zdHJpbmcoc2VsZiwgRSkKKyAgICAgY2RlZiBzdHIgZXhwb25lbnRzX3RvX2xh dGV4KHNlbGYsIEUpCisgICAgIGNkZWYgdHVwbGUgX2RlZ3JlZXMKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9hbGdlYnJhcy9sZXR0ZXJwbGFjZS9mcmVlX2FsZ2VicmFfbGV0dGVycGxhY2UucHl4IGIv c3JjL3NhZ2UvYWxnZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9hbGdlYnJhX2xldHRlcnBsYWNlLnB5 eAoraW5kZXggZTljNzBjOWRlMjkuLjUzZjBkZmRlYTZkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv YWxnZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9hbGdlYnJhX2xldHRlcnBsYWNlLnB5eAorKysrIGIv c3JjL3NhZ2UvYWxnZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9hbGdlYnJhX2xldHRlcnBsYWNlLnB5 eAorQEAgLTI1NSw3ICsyNTUsNyBAQCBjZGVmIGNsYXNzIEZyZWVBbGdlYnJhX2xldHRlcnBsYWNl KEFsZ2VicmEpOgorICAgICAgICAgIiIiCisgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShSLCBN UG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIpOgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJv cigiYSBsZXR0ZXJwbGFjZSBhbGdlYnJhIG11c3QgYmUgcHJvdmlkZWQgYnkgYSBwb2x5bm9taWFs IHJpbmcgb2YgdHlwZSAlcyIgJSBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIpCistICAgICAg ICBzZWxmLl9fbmdlbnMgPSBSLm5nZW5zKCkKKysgICAgICAgIHNlbGYuX25nZW5zID0gUi5uZ2Vu cygpCisgICAgICAgICBpZiBkZWdyZWVzIGlzIE5vbmU6CisgICAgICAgICAgICAgdmFybmFtZXMg PSBSLnZhcmlhYmxlX25hbWVzKCkKKyAgICAgICAgICAgICBzZWxmLl9uYl9zbGFja3ZhcnMgPSAw CitAQCAtMjY5LDEyICsyNjksMTIgQEAgY2RlZiBjbGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFj ZShBbGdlYnJhKToKKyAgICAgICAgIHNlbGYuX2N1cnJlbnRfcmluZyA9IG1ha2VfbGV0dGVycGxh Y2VfcmluZyhSLCAxKQorICAgICAgICAgc2VsZi5fZGVnYm91bmQgPSAxCisgICAgICAgICBpZiBk ZWdyZWVzIGlzIE5vbmU6CistICAgICAgICAgICAgc2VsZi5fZGVncmVlcyA9IHR1cGxlKFtpbnQo MSldICogc2VsZi5fX25nZW5zKQorKyAgICAgICAgICAgIHNlbGYuX2RlZ3JlZXMgPSB0dXBsZShb aW50KDEpXSAqIHNlbGYuX25nZW5zKQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBpZiAo bm90IGlzaW5zdGFuY2UoZGVncmVlcywgKHR1cGxlLCBsaXN0KSkpIFwKKy0gICAgICAgICAgICAg ICAgICAgIG9yIGxlbihkZWdyZWVzKSAhPSBzZWxmLl9fbmdlbnMgLSBzZWxmLl9uYl9zbGFja3Zh cnMgXAorKyAgICAgICAgICAgICAgICAgICAgb3IgbGVuKGRlZ3JlZXMpICE9IHNlbGYuX25nZW5z IC0gc2VsZi5fbmJfc2xhY2t2YXJzIFwKKyAgICAgICAgICAgICAgICAgICAgIG9yIGFueShpIDw9 IDAgZm9yIGkgaW4gZGVncmVlcyk6CistICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigi dGhlIGdlbmVyYXRvciBkZWdyZWVzIG11c3QgYmUgZ2l2ZW4gYnkgYSBsaXN0IG9yIHR1cGxlIG9m ICVkIHBvc2l0aXZlIGludGVnZXJzIiAlIChzZWxmLl9fbmdlbnMgLSAxKSkKKysgICAgICAgICAg ICAgICAgcmFpc2UgVHlwZUVycm9yKCJ0aGUgZ2VuZXJhdG9yIGRlZ3JlZXMgbXVzdCBiZSBnaXZl biBieSBhIGxpc3Qgb3IgdHVwbGUgb2YgJWQgcG9zaXRpdmUgaW50ZWdlcnMiICUgKHNlbGYuX25n ZW5zIC0gMSkpCisgICAgICAgICAgICAgc2VsZi5fZGVncmVlcyA9IHR1cGxlKFtpbnQoaSkgZm9y IGkgaW4gZGVncmVlc10pCisgICAgICAgICAgICAgc2VsZi5zZXRfZGVnYm91bmQobWF4KHNlbGYu X2RlZ3JlZXMpKQorICAgICAgICAgc2VsZi5fcG9wdWxhdGVfY29lcmNpb25fbGlzdHNfKGNvZXJj ZV9saXN0PVtiYXNlX3JpbmddKQorQEAgLTMwNSw3ICszMDUsNyBAQCBjZGVmIGNsYXNzIEZyZWVB bGdlYnJhX2xldHRlcnBsYWNlKEFsZ2VicmEpOgorICAgICAgICAgICAgIHNhZ2U6IEYubmdlbnMo KQorICAgICAgICAgICAgIDMKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX19u Z2VucyAtIHNlbGYuX25iX3NsYWNrdmFycworKyAgICAgICAgcmV0dXJuIHNlbGYuX25nZW5zIC0g c2VsZi5fbmJfc2xhY2t2YXJzCisgCisgICAgIGRlZiBnZW4oc2VsZiwgaSk6CisgICAgICAgICAi IiIKK0BAIC0zMjcsMTcgKzMyNywxNyBAQCBjZGVmIGNsYXNzIEZyZWVBbGdlYnJhX2xldHRlcnBs YWNlKEFsZ2VicmEpOgorICAgICAgICAgICAgIHNhZ2U6IEYuZ2VuKDIpCisgICAgICAgICAgICAg YworICAgICAgICAgIiIiCistICAgICAgICBpZiBpID49IHNlbGYuX19uZ2VucyAtIHNlbGYuX25i X3NsYWNrdmFyczoKKy0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ0aGlzIGZyZWUgYWxn ZWJyYSBvbmx5IGhhcyAlZCBnZW5lcmF0b3JzIiAlIChzZWxmLl9fbmdlbnMgLSBzZWxmLl9uYl9z bGFja3ZhcnMpKQorKyAgICAgICAgaWYgaSA+PSBzZWxmLl9uZ2VucyAtIHNlbGYuX25iX3NsYWNr dmFyczoKKysgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ0aGlzIGZyZWUgYWxnZWJyYSBv bmx5IGhhcyAlZCBnZW5lcmF0b3JzIiAlIChzZWxmLl9uZ2VucyAtIHNlbGYuX25iX3NsYWNrdmFy cykpCisgICAgICAgICBpZiBzZWxmLl9nZW5zIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIHJl dHVybiBzZWxmLl9nZW5zW2ldCisgICAgICAgICBkZWcgPSBzZWxmLl9kZWdyZWVzW2ldCisgICAg ICAgICAjIHNlbGYuc2V0X2RlZ2JvdW5kKGRlZykKKyAgICAgICAgIHAgPSBzZWxmLl9jdXJyZW50 X3JpbmcuZ2VuKGkpCisgICAgICAgICBjZGVmIGludCBuCistICAgICAgICBjZGVmIGludCBqID0g c2VsZi5fX25nZW5zIC0gMQorKyAgICAgICAgY2RlZiBpbnQgaiA9IHNlbGYuX25nZW5zIC0gMQor ICAgICAgICAgZm9yIG4gaW4gcmFuZ2UoMSwgZGVnKToKKy0gICAgICAgICAgICBqICs9IHNlbGYu X19uZ2VucworKyAgICAgICAgICAgIGogKz0gc2VsZi5fbmdlbnMKKyAgICAgICAgICAgICBwICo9 IHNlbGYuX2N1cnJlbnRfcmluZy5nZW4oaikKKyAgICAgICAgIHJldHVybiBGcmVlQWxnZWJyYUVs ZW1lbnRfbGV0dGVycGxhY2Uoc2VsZiwgcCkKKyAKK0BAIC00MTMsNyArNDEzLDcgQEAgY2RlZiBj bGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgICAgICAgICBzYWdl OiBGcmVlQWxnZWJyYShRUSwgaW1wbGVtZW50YXRpb249J2xldHRlcnBsYWNlJywgbmFtZXM9Wyd4 J10pLmlzX2NvbW11dGF0aXZlKCkKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0g ICAgICAgIHJldHVybiBzZWxmLl9fbmdlbnMgLSBzZWxmLl9uYl9zbGFja3ZhcnMgPD0gMQorKyAg ICAgICAgcmV0dXJuIHNlbGYuX25nZW5zIC0gc2VsZi5fbmJfc2xhY2t2YXJzIDw9IDEKKyAKKyAg ICAgZGVmIGlzX2ZpZWxkKHNlbGYsIHByb29mPVRydWUpOgorICAgICAgICAgIiIiCitAQCAtNDMw LDcgKzQzMCw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6 CisgICAgICAgICAgICAgc2FnZTogRi5pc19maWVsZCgpCisgICAgICAgICAgICAgRmFsc2UKKyAg ICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIChub3QgKHNlbGYuX19uZ2VucyAtIHNlbGYuX25i X3NsYWNrdmFycykpIGFuZCBzZWxmLl9iYXNlLmlzX2ZpZWxkKHByb29mPXByb29mKQorKyAgICAg ICAgcmV0dXJuIChub3QgKHNlbGYuX25nZW5zIC0gc2VsZi5fbmJfc2xhY2t2YXJzKSkgYW5kIHNl bGYuX2Jhc2UuaXNfZmllbGQocHJvb2Y9cHJvb2YpCisgCisgICAgIGRlZiBfcmVwcl8oc2VsZik6 CisgICAgICAgICAiIiIKK0BAIC00NDYsNyArNDQ2LDcgQEAgY2RlZiBjbGFzcyBGcmVlQWxnZWJy YV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgICAgICAgICBzYWdlOiBGCisgICAgICAgICAg ICAgRnJlZSBBc3NvY2lhdGl2ZSBVbml0YWwgQWxnZWJyYSBvbiAzIGdlbmVyYXRvcnMgKHgsIHks IHopIG92ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuICJG cmVlIEFzc29jaWF0aXZlIFVuaXRhbCBBbGdlYnJhIG9uICVkIGdlbmVyYXRvcnMgJXMgb3ZlciAl cyIgJSAoc2VsZi5fX25nZW5zIC0gc2VsZi5fbmJfc2xhY2t2YXJzLCBzZWxmLmdlbnMoKSwgc2Vs Zi5fYmFzZSkKKysgICAgICAgIHJldHVybiAiRnJlZSBBc3NvY2lhdGl2ZSBVbml0YWwgQWxnZWJy YSBvbiAlZCBnZW5lcmF0b3JzICVzIG92ZXIgJXMiICUgKHNlbGYuX25nZW5zIC0gc2VsZi5fbmJf c2xhY2t2YXJzLCBzZWxmLmdlbnMoKSwgc2VsZi5fYmFzZSkKKyAKKyAgICAgZGVmIF9sYXRleF8o c2VsZik6CisgICAgICAgICByIiIiCitAQCAtNTg2LDcgKzU4Niw3IEBAIGNkZWYgY2xhc3MgRnJl ZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6CisgICAgICAgICAgICAgICBnZW5lcmF0ZWQg ZnJlZSBhYmVsaWFuIG1vbm9pZC4KKyAgICAgICAgICAgICAgIEluIHByaW5jaXBsZSwgdGhpcyBp cyBjb3JyZWN0LCBidXQgaXQgaXMgbm90IGltcGxlbWVudGVkLCB5ZXQuPgorICAgICAgICAgIiIi CistICAgICAgICBjZGVmIGludCBuZ2VucyA9IHNlbGYuX19uZ2VucworKyAgICAgICAgY2RlZiBp bnQgbmdlbnMgPSBzZWxmLl9uZ2VucworICAgICAgICAgY2RlZiBpbnQgbmJsb2NrcyA9IGxlbihF KSAvLyBuZ2VucworICAgICAgICAgY2RlZiBpbnQgaSwgaiwgYmFzZSwgZXhwLCB2YXJfaW5kCisg ICAgICAgICBjZGVmIGxpc3Qgb3V0ID0gW10KK0BAIC02MTgsNyArNjE4LDcgQEAgY2RlZiBjbGFz cyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgICAgICAgICBzYWdlOiBs YXRleCgtKGEqYiooeisxKS1jKV4yKSAgICAgIyBpbmRpcmVjdCBkb2N0ZXN0CisgICAgICAgICAg ICAgXGxlZnQoMiB6ICsgMVxyaWdodCkgYSBiIGEgYiArIFxsZWZ0KHogKyAxXHJpZ2h0KSBhIGIg YyArIFxsZWZ0KHogKyAxXHJpZ2h0KSBjIGEgYiAtIGMgYworICAgICAgICAgIiIiCistICAgICAg ICBjZGVmIGludCBuZ2VucyA9IHNlbGYuX19uZ2VucworKyAgICAgICAgY2RlZiBpbnQgbmdlbnMg PSBzZWxmLl9uZ2VucworICAgICAgICAgY2RlZiBpbnQgbmJsb2NrcyA9IGxlbihFKSAvLyBuZ2Vu cworICAgICAgICAgY2RlZiBpbnQgaSwgaiwgYmFzZSwgZXhwLCB2YXJfaW5kCisgICAgICAgICBj ZGVmIGxpc3Qgb3V0ID0gW10KK0BAIC02NzgsNyArNjc4LDcgQEAgY2RlZiBjbGFzcyBGcmVlQWxn ZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgICAgIGNkZWYgbGlzdCBvdXQgPSBbXQor ICAgICAgICAgQyA9IHNlbGYuY3VycmVudF9yaW5nKCkKKyAgICAgICAgIGNkZWYgRnJlZUFsZ2Vi cmFFbGVtZW50X2xldHRlcnBsYWNlIHgKKy0gICAgICAgIG5nZW5zID0gc2VsZi5fX25nZW5zCisr ICAgICAgICBuZ2VucyA9IHNlbGYuX25nZW5zCisgICAgICAgICBjZGVmIGxpc3QgRyA9IFtDKHgu X3BvbHkpIGZvciB4IGluIGddCisgICAgICAgICBmcm9tIHNhZ2UuZ3JvdXBzLnBlcm1fZ3BzLnBl cm1ncm91cF9uYW1lZCBpbXBvcnQgQ3ljbGljUGVybXV0YXRpb25Hcm91cAorICAgICAgICAgQ0cg PSBDeWNsaWNQZXJtdXRhdGlvbkdyb3VwKEMubmdlbnMoKSkKK0BAIC04MTEsNyArODExLDcgQEAg Y2RlZiBjbGFzcyBGcmVlQWxnZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgICAgICAg ICBsID0gbGVuKGUpCisgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgIGNkZWYgZGljdCBvdXQg PSB7fQorLSAgICAgICAgc2VsZi5zZXRfZGVnYm91bmQobCAvLyBzZWxmLl9fbmdlbnMpCisrICAg ICAgICBzZWxmLnNldF9kZWdib3VuZChsIC8vIHNlbGYuX25nZW5zKQorICAgICAgICAgY2RlZiBQ eV9zc2l6ZV90IG4gPSBzZWxmLl9jdXJyZW50X3JpbmcubmdlbnMoKQorICAgICAgICAgZm9yIGUs IGMgaW4gRC5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgICBvdXRbdHVwbGUoZSkgKyAoMCwpICog KG4gLSBsKV0gPSBjCitAQCAtODk2LDcgKzg5Niw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFf bGV0dGVycGxhY2VfbGlic2luZ3VsYXIoKToKKyAgICAgICAgIHNlbGYuX2NvbW11dGF0aXZlX3Jp bmcgPSBjb21tdXRhdGl2ZV9yaW5nCisgCisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb21tdXRh dGl2ZV9yaW5nLCBkZWdib3VuZCk6CistICAgICAgICBzZWxmLl9fbmdlbnMgPSBjb21tdXRhdGl2 ZV9yaW5nLm5nZW5zKCkgKiBkZWdib3VuZAorKyAgICAgICAgc2VsZi5fbmdlbnMgPSBjb21tdXRh dGl2ZV9yaW5nLm5nZW5zKCkgKiBkZWdib3VuZAorIAorICAgICBkZWYgX19kZWFsbG9jX18oc2Vs Zik6CisgICAgICAgICByIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvcXVhdGFs Zy9xdWF0ZXJuaW9uX2FsZ2VicmFfZWxlbWVudC5weXggYi9zcmMvc2FnZS9hbGdlYnJhcy9xdWF0 YWxnL3F1YXRlcm5pb25fYWxnZWJyYV9lbGVtZW50LnB5eAoraW5kZXggZjZlODc0NDBmZTkuLjhj YjdlODQ4ZmQwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvYWxnZWJyYXMvcXVhdGFsZy9xdWF0ZXJu aW9uX2FsZ2VicmFfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFzL3F1YXRhbGcv cXVhdGVybmlvbl9hbGdlYnJhX2VsZW1lbnQucHl4CitAQCAtMTcwMCwxNSArMTcwMCwxNSBAQCBj ZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9udW1iZXJfZmllbGQoUXVhdGVybmlv bkFsZ2VicmFFbGVtZW50X2Fic3RyYQorICAgICAgICAgICAgIHgsIHksIHosIHcgPSB2CisgICAg ICAgICBjZGVmIE51bWJlckZpZWxkRWxlbWVudCBhID0gPE51bWJlckZpZWxkRWxlbWVudD4ocGFy ZW50Ll9iYXNlKHBhcmVudC5fYSkpCisgICAgICAgICBjZGVmIE51bWJlckZpZWxkRWxlbWVudCBi ID0gPE51bWJlckZpZWxkRWxlbWVudD4ocGFyZW50Ll9iYXNlKHBhcmVudC5fYikpCistICAgICAg ICBmbXB6X3BvbHlfc2V0X1paWChzZWxmLngsICg8TnVtYmVyRmllbGRFbGVtZW50PngpLl9fbnVt ZXJhdG9yKQorLSAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoc2VsZi55LCAoPE51bWJlckZpZWxk RWxlbWVudD55KS5fX251bWVyYXRvcikKKy0gICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYu eiwgKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eikuX19udW1lcmF0b3IpCistICAgICAgICBmbXB6X3Bv bHlfc2V0X1paWChzZWxmLncsICg8TnVtYmVyRmllbGRFbGVtZW50PncpLl9fbnVtZXJhdG9yKQor KyAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoc2VsZi54LCAoPE51bWJlckZpZWxkRWxlbWVudD54 KS5fbnVtZXJhdG9yKQorKyAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoc2VsZi55LCAoPE51bWJl ckZpZWxkRWxlbWVudD55KS5fbnVtZXJhdG9yKQorKyAgICAgICAgZm1wel9wb2x5X3NldF9aWlgo c2VsZi56LCAoPE51bWJlckZpZWxkRWxlbWVudD56KS5fbnVtZXJhdG9yKQorKyAgICAgICAgZm1w el9wb2x5X3NldF9aWlgoc2VsZi53LCAoPE51bWJlckZpZWxkRWxlbWVudD53KS5fbnVtZXJhdG9y KQorIAorLSAgICAgICAgWlpfdG9fbXB6KFQxLCAmKDxOdW1iZXJGaWVsZEVsZW1lbnQ+eCkuX19k ZW5vbWluYXRvcikKKy0gICAgICAgIFpaX3RvX21weihUMiwgJig8TnVtYmVyRmllbGRFbGVtZW50 PnkpLl9fZGVub21pbmF0b3IpCistICAgICAgICBaWl90b19tcHoodDMsICYoPE51bWJlckZpZWxk RWxlbWVudD56KS5fX2Rlbm9taW5hdG9yKQorLSAgICAgICAgWlpfdG9fbXB6KHQ0LCAmKDxOdW1i ZXJGaWVsZEVsZW1lbnQ+dykuX19kZW5vbWluYXRvcikKKysgICAgICAgIFpaX3RvX21weihUMSwg Jig8TnVtYmVyRmllbGRFbGVtZW50PngpLl9kZW5vbWluYXRvcikKKysgICAgICAgIFpaX3RvX21w eihUMiwgJig8TnVtYmVyRmllbGRFbGVtZW50PnkpLl9kZW5vbWluYXRvcikKKysgICAgICAgIFpa X3RvX21weih0MywgJig8TnVtYmVyRmllbGRFbGVtZW50PnopLl9kZW5vbWluYXRvcikKKysgICAg ICAgIFpaX3RvX21weih0NCwgJig8TnVtYmVyRmllbGRFbGVtZW50PncpLl9kZW5vbWluYXRvcikK KyAKKyAgICAgICAgIG1wel9sY20oc2VsZi5kLCBUMSwgVDIpCisgICAgICAgICBtcHpfbGNtKHNl bGYuZCwgc2VsZi5kLCB0MykKK0BAIC0xNzI0LDEwICsxNzI0LDEwIEBAIGNkZWYgY2xhc3MgUXVh dGVybmlvbkFsZ2VicmFFbGVtZW50X251bWJlcl9maWVsZChRdWF0ZXJuaW9uQWxnZWJyYUVsZW1l bnRfYWJzdHJhCisgICAgICAgICBmbXB6X3BvbHlfc2NhbGFyX211bF9tcHooc2VsZi56LCBzZWxm LnosIHQzKQorICAgICAgICAgZm1wel9wb2x5X3NjYWxhcl9tdWxfbXB6KHNlbGYudywgc2VsZi53 LCB0NCkKKyAKKy0gICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYuYSwgYS5fX251bWVyYXRv cikgICAgICMgd2Ugd2lsbCBhc3N1bWUgdGhhdCB0aGUgZGVub21pbmF0b3Igb2YgYSBhbmQgYiBh cmUgMQorLSAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoc2VsZi5iLCBiLl9fbnVtZXJhdG9yKQor KyAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoc2VsZi5hLCBhLl9udW1lcmF0b3IpICAgICAjIHdl IHdpbGwgYXNzdW1lIHRoYXQgdGhlIGRlbm9taW5hdG9yIG9mIGEgYW5kIGIgYXJlIDEKKysgICAg ICAgIGZtcHpfcG9seV9zZXRfWlpYKHNlbGYuYiwgYi5fbnVtZXJhdG9yKQorIAorLSAgICAgICAg Zm1wel9wb2x5X3NldF9aWlgoc2VsZi5tb2R1bHVzLCAoPE51bWJlckZpZWxkRWxlbWVudD54KS5f X2ZsZF9udW1lcmF0b3IueCkgICMgYW5kIHNhbWUgZm9yIHRoZSBtb2R1bHVzCisrICAgICAgICBm bXB6X3BvbHlfc2V0X1paWChzZWxmLm1vZHVsdXMsICg8TnVtYmVyRmllbGRFbGVtZW50PngpLl9m bGRfbnVtZXJhdG9yLngpICAjIGFuZCBzYW1lIGZvciB0aGUgbW9kdWx1cworIAorICAgICBkZWYg X19nZXRpdGVtX18oc2VsZiwgaW50IGkpOgorICAgICAgICAgIiIiCitAQCAtMTc1NiwxNyArMTc1 NiwxNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9udW1iZXJfZmllbGQo UXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3RyYQorICAgICAgICAgY2RlZiBOdW1iZXJGaWVs ZEVsZW1lbnQgaXRlbSA9IGVsLl9uZXcoKQorIAorICAgICAgICAgaWYgaSA9PSAwOgorLSAgICAg ICAgICAgIGZtcHpfcG9seV9nZXRfWlpYKGl0ZW0uX19udW1lcmF0b3IsIHNlbGYueCkKKysgICAg ICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChpdGVtLl9udW1lcmF0b3IsIHNlbGYueCkKKyAgICAg ICAgIGVsaWYgaSA9PSAxOgorLSAgICAgICAgICAgIGZtcHpfcG9seV9nZXRfWlpYKGl0ZW0uX19u dW1lcmF0b3IsIHNlbGYueSkKKysgICAgICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChpdGVtLl9u dW1lcmF0b3IsIHNlbGYueSkKKyAgICAgICAgIGVsaWYgaSA9PSAyOgorLSAgICAgICAgICAgIGZt cHpfcG9seV9nZXRfWlpYKGl0ZW0uX19udW1lcmF0b3IsIHNlbGYueikKKysgICAgICAgICAgICBm bXB6X3BvbHlfZ2V0X1paWChpdGVtLl9udW1lcmF0b3IsIHNlbGYueikKKyAgICAgICAgIGVsaWYg aSA9PSAzOgorLSAgICAgICAgICAgIGZtcHpfcG9seV9nZXRfWlpYKGl0ZW0uX19udW1lcmF0b3Is IHNlbGYudykKKysgICAgICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChpdGVtLl9udW1lcmF0b3Is IHNlbGYudykKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigi cXVhdGVybmlvbiBlbGVtZW50IGluZGV4IG91dCBvZiByYW5nZSIpCisgCistICAgICAgICBtcHpf dG9fWlooJml0ZW0uX19kZW5vbWluYXRvciwgc2VsZi5kKQorKyAgICAgICAgbXB6X3RvX1paKCZp dGVtLl9kZW5vbWluYXRvciwgc2VsZi5kKQorIAorICAgICAgICAgcmV0dXJuIGl0ZW0KKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9jYXRlZ29yaWVzL2hvcGZfYWxnZWJyYXNfd2l0aF9iYXNpcy5w eSBiL3NyYy9zYWdlL2NhdGVnb3JpZXMvaG9wZl9hbGdlYnJhc193aXRoX2Jhc2lzLnB5CitpbmRl eCAxYmU5NjRjYjZjOS4uNjE1ZmM0ZWFlMDYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jYXRlZ29y aWVzL2hvcGZfYWxnZWJyYXNfd2l0aF9iYXNpcy5weQorKysrIGIvc3JjL3NhZ2UvY2F0ZWdvcmll cy9ob3BmX2FsZ2VicmFzX3dpdGhfYmFzaXMucHkKK0BAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEhv cGZBbGdlYnJhc1dpdGhCYXNpcyhDYXRlZ29yeVdpdGhBeGlvbV9vdmVyX2Jhc2VfcmluZyk6Cisg ICAgICAgICBzYWdlOiBBID0gQy5leGFtcGxlKCk7IEEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbmVlZHMgc2FnZS5ncm91cHMKKyAgICAg ICAgIEFuIGV4YW1wbGUgb2YgSG9wZiBhbGdlYnJhIHdpdGggYmFzaXM6IHRoZSBncm91cCBhbGdl YnJhIG9mIHRoZQorICAgICAgICAgIERpaGVkcmFsIGdyb3VwIG9mIG9yZGVyIDYgYXMgYSBwZXJt dXRhdGlvbiBncm91cCBvdmVyIFJhdGlvbmFsIEZpZWxkCistICAgICAgICBzYWdlOiBBLl9fY3Vz dG9tX25hbWUgPSAiQSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgbmVlZHMgc2FnZS5ncm91cHMKKysgICAgICAgIHNhZ2U6IEEucmVuYW1lKCJB IikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIyBuZWVkcyBzYWdlLmdyb3VwcworICAgICAgICAgc2FnZTogQS5jYXRlZ29yeSgpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIG5lZWRzIHNhZ2UuZ3JvdXBzCisgICAgICAgICBDYXRlZ29yeSBvZiBmaW5pdGUgZGltZW5z aW9uYWwgaG9wZiBhbGdlYnJhcyB3aXRoIGJhc2lzIG92ZXIgUmF0aW9uYWwgRmllbGQKKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9jYXRlZ29yaWVzL21vZHVsZXNfd2l0aF9iYXNpcy5weSBiL3Ny Yy9zYWdlL2NhdGVnb3JpZXMvbW9kdWxlc193aXRoX2Jhc2lzLnB5CitpbmRleCA2NWZkNDdjYjg5 MC4uZmMxODU3ZjBjOGUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jYXRlZ29yaWVzL21vZHVsZXNf d2l0aF9iYXNpcy5weQorKysrIGIvc3JjL3NhZ2UvY2F0ZWdvcmllcy9tb2R1bGVzX3dpdGhfYmFz aXMucHkKK0BAIC02Niw4ICs2Niw4IEBAIGNsYXNzIE1vZHVsZXNXaXRoQmFzaXMoQ2F0ZWdvcnlX aXRoQXhpb21fb3Zlcl9iYXNlX3JpbmcpOgorIAorICAgICBMZXQgYFhgIGFuZCBgWWAgYmUgdHdv IG1vZHVsZXMgd2l0aCBiYXNpcy4gV2UgY2FuIGJ1aWxkIGBIb20oWCxZKWA6OgorIAorLSAgICAg ICAgc2FnZTogWCA9IENvbWJpbmF0b3JpYWxGcmVlTW9kdWxlKFFRLCBbMSwyXSk7IFguX19jdXN0 b21fbmFtZSA9ICJYIiAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UubW9kdWxlcworLSAgICAgICAg c2FnZTogWSA9IENvbWJpbmF0b3JpYWxGcmVlTW9kdWxlKFFRLCBbMyw0XSk7IFkuX19jdXN0b21f bmFtZSA9ICJZIiAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UubW9kdWxlcworKyAgICAgICAgc2Fn ZTogWCA9IENvbWJpbmF0b3JpYWxGcmVlTW9kdWxlKFFRLCBbMSwyXSk7IFgucmVuYW1lKCJYIikg ICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UubW9kdWxlcworKyAgICAgICAgc2FnZTog WSA9IENvbWJpbmF0b3JpYWxGcmVlTW9kdWxlKFFRLCBbMyw0XSk7IFkucmVuYW1lKCJZIikgICAg ICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UubW9kdWxlcworICAgICAgICAgc2FnZTogSCA9 IEhvbShYLCBZKTsgSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UubW9kdWxlcworICAgICAgICAgU2V0IG9mIE1vcnBo aXNtcyBmcm9tIFggdG8gWQorICAgICAgICAgIGluIENhdGVnb3J5IG9mIGZpbml0ZSBkaW1lbnNp b25hbCB2ZWN0b3Igc3BhY2VzIHdpdGggYmFzaXMgb3ZlciBSYXRpb25hbCBGaWVsZAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L2NsdXN0ZXJfY29tcGxleC5weSBiL3NyYy9zYWdlL2Nv bWJpbmF0L2NsdXN0ZXJfY29tcGxleC5weQoraW5kZXggZWRjNGYyMzVhZWIuLmUyNjNkOTgzODg3 IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvY2x1c3Rlcl9jb21wbGV4LnB5CisrKysg Yi9zcmMvc2FnZS9jb21iaW5hdC9jbHVzdGVyX2NvbXBsZXgucHkKK0BAIC0yMjIsMTAgKzIyMiw2 IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBXLCBrLCBjb3hldGVyX2VsZW1lbnQsIGFsZ29yaXRobSk6 CisgICAgICAgICBzZWxmLl9XID0gVworICAgICAgICAgc2VsZi5fdzAgPSB3CisgICAgICAgICBz ZWxmLl9rID0gaworLSAgICAgICAgaWYgayA9PSAxOgorLSAgICAgICAgICAgIHNlbGYuX19jdXN0 b21fbmFtZSA9ICdDbHVzdGVyIGNvbXBsZXgnCistICAgICAgICBlbHNlOgorLSAgICAgICAgICAg IHNlbGYuX19jdXN0b21fbmFtZSA9ICdNdWx0aS1jbHVzdGVyIGNvbXBsZXgnCisgCisgICAgICAg ICBzZWxmLnNldF9pbW11dGFibGUoKQorIAorQEAgLTI3MSw3ICsyNjcsMTAgQEAgZGVmIF9yZXBy XyhzZWxmKToKKyAgICAgICAgICAgICBzYWdlOiBDbHVzdGVyQ29tcGxleChbJ0EnLCAyXSkuX3Jl cHJfKCkKKyAgICAgICAgICAgICAiQ2x1c3RlciBjb21wbGV4IG9mIHR5cGUgWydBJywgMl0gd2l0 aCA1IHZlcnRpY2VzIGFuZCA1IGZhY2V0cyIKKyAgICAgICAgICIiIgorLSAgICAgICAgbmFtZSA9 IHNlbGYuX19jdXN0b21fbmFtZQorKyAgICAgICAgaWYgc2VsZi5fayA9PSAxOgorKyAgICAgICAg ICAgIG5hbWUgPSAnQ2x1c3RlciBjb21wbGV4JworKyAgICAgICAgZWxzZToKKysgICAgICAgICAg ICBuYW1lID0gJ011bHRpLWNsdXN0ZXIgY29tcGxleCcKKyAgICAgICAgIG5hbWUgKz0gKCcgb2Yg dHlwZSAlcyB3aXRoICVzIHZlcnRpY2VzIGFuZCAlcyBmYWNldHMnCisgICAgICAgICAgICAgICAg ICAlIChzZWxmLmNhcnRhbl90eXBlKCksIGxlbihzZWxmLnZlcnRpY2VzKCkpLAorICAgICAgICAg ICAgICAgICAgICAgbGVuKHNlbGYuX2ZhY2V0cykpKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2Nv bWJpbmF0L2ludGVnZXJfbGlzdHMvYmFzZS5weGQgYi9zcmMvc2FnZS9jb21iaW5hdC9pbnRlZ2Vy X2xpc3RzL2Jhc2UucHhkCitpbmRleCBlY2I1NTUwYTljZi4uM2QzNzNhNjRmZTAgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9jb21iaW5hdC9pbnRlZ2VyX2xpc3RzL2Jhc2UucHhkCisrKysgYi9zcmMv c2FnZS9jb21iaW5hdC9pbnRlZ2VyX2xpc3RzL2Jhc2UucHhkCitAQCAtMTIsNCArMTIsNCBAQCBj ZGVmIGNsYXNzIEludGVnZXJMaXN0c0JhY2tlbmQoKToKKyAgICAgY2RlZiByZWFkb25seSBtaW5f cGFydCwgbWF4X3BhcnQKKyAgICAgY2RlZiByZWFkb25seSBtaW5fc2xvcGUsIG1heF9zbG9wZQor ICAgICBjZGVmIHJlYWRvbmx5IEVudmVsb3BlIGZsb29yLCBjZWlsaW5nCistICAgIGNkZWYgcHVi bGljIGRpY3QgX19jYWNoZWRfbWV0aG9kcyAgIyBTdXBwb3J0IGNhY2hlZF9tZXRob2QKKysgICAg Y2RlZiBwdWJsaWMgZGljdCBfY2FjaGVkX21ldGhvZHMgICMgU3VwcG9ydCBjYWNoZWRfbWV0aG9k CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY29tYmluYXQvc3Vid29yZF9jb21wbGV4LnB5IGIvc3Jj L3NhZ2UvY29tYmluYXQvc3Vid29yZF9jb21wbGV4LnB5CitpbmRleCBiNzQ4OWJkZjc1NC4uZGU3 ZWVmZTk0NmUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC9zdWJ3b3JkX2NvbXBsZXgu cHkKKysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L3N1YndvcmRfY29tcGxleC5weQorQEAgLTExMzEs NyArMTEzMSw2IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBRLCB3LCBhbGdvcml0aG09ImluZHVjdGl2 ZSIpOgorICAgICAgICAgU2ltcGxpY2lhbENvbXBsZXguX19pbml0X18oc2VsZiwgbWF4aW1hbF9m YWNlcz1GcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltYWxpdHlf Y2hlY2s9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29y eT1jYXQpCistICAgICAgICBzZWxmLl9fY3VzdG9tX25hbWUgPSAnU3Vid29yZCBjb21wbGV4Jwor ICAgICAgICAgc2VsZi5fVyA9IFcKKyAgICAgICAgIHRyeToKKyAgICAgICAgICAgICBUID0gVy5j b3hldGVyX21hdHJpeCgpLmNveGV0ZXJfdHlwZSgpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY3B5 dGhvbi9jeXRob25fbWV0YWNsYXNzLmggYi9zcmMvc2FnZS9jcHl0aG9uL2N5dGhvbl9tZXRhY2xh c3MuaAoraW5kZXggZGEwNmFiNzVhNmIuLmVjZjdmOTczYzNlIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvY3B5dGhvbi9jeXRob25fbWV0YWNsYXNzLmgKKysrKyBiL3NyYy9zYWdlL2NweXRob24vY3l0 aG9uX21ldGFjbGFzcy5oCitAQCAtNTIsNiArNTIsMTYgQEAgc3RhdGljIENZVEhPTl9JTkxJTkUg aW50IFNhZ2VfUHlUeXBlX1JlYWR5KFB5VHlwZU9iamVjdCogdCkKKyAgICAgaWYgKHIgPCAwKQor ICAgICAgICAgcmV0dXJuIHI7CisgCisrI2lmIFBZX1ZFUlNJT05fSEVYID49IDB4MDMwNTAwMDAK KysgICAgLy8gQ3l0aG9uIDMgc2V0cyBQeV9UUEZMQUdTX0hFQVBUWVBFIGJlZm9yZSBjYWxsaW5n IFB5VHlwZV9SZWFkeSwKKysgICAgLy8gYW5kIHJlc2V0cyBqdXN0IGFmdGVyIHRoZSBjYWxsLiBX ZSBuZWVkIHRvIHJlc2V0IGl0IGVhcmxpZXIsCisrICAgIC8vIHNpbmNlIG90aGVyd2lzZSB0aGUg Y2FsbCB0byBtZXRhY2xhc3MuX19pbml0X18gYmVsb3cgbWF5IGhhdmUKKysgICAgLy8gaWxsZWdh bCBtZW1vcnkgYWNjZXNzZXMuCisrICAgIC8vIFNlZSBhbHNvOgorKyAgICAvLyBodHRwczovL2dp dGh1Yi5jb20vY3l0aG9uL2N5dGhvbi9pc3N1ZXMvMzYwMworKyAgICB0LT50cF9mbGFncyAmPSB+ UHlfVFBGTEFHU19IRUFQVFlQRTsKKysjZW5kaWYKKysKKyAgICAgLyogU2V0IG9yIGdldCBtZXRh Y2xhc3MgKHRoZSB0eXBlIG9mIHQpICovCisgICAgIFB5VHlwZU9iamVjdCogbWV0YWNsYXNzOwor IAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NweXRob24vY3l0aG9uX21ldGFjbGFzcy5weXggYi9z cmMvc2FnZS9jcHl0aG9uL2N5dGhvbl9tZXRhY2xhc3MucHl4CitpbmRleCBhOGZlODUzNjYxZC4u YThmYTkyZmMxYTggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jcHl0aG9uL2N5dGhvbl9tZXRhY2xh c3MucHl4CisrKysgYi9zcmMvc2FnZS9jcHl0aG9uL2N5dGhvbl9tZXRhY2xhc3MucHl4CitAQCAt MTksMTMgKzE5LDE2IEBAIGZpbGUgaWYgeW91IGFyZSB1c2luZyBvbmUpLgorIAorIEluIHRoZSBl eHRlbnNpb24gdHlwZSAoYS5rLmEuIGBgY2RlZiBjbGFzc2BgKSBmb3Igd2hpY2ggeW91IHdhbnQg dG8KKyBkZWZpbmUgYSBtZXRhY2xhc3MsIGRlZmluZSBhIG1ldGhvZCBgYF9fZ2V0bWV0YWNsYXNz X19gYCB3aXRoIGEgc2luZ2xlCistdW51c2VkIGFyZ3VtZW50LiBUaGlzIG1ldGhvZCBzaG91bGQg cmV0dXJuIGEgdHlwZSB0byBiZSB1c2VkIGFzCisrdW51c2VkIGFyZ3VtZW50LCBhbmQgdHVybiBv ZmYgdGhlIEN5dGhvbiBkaXJlY3RpdmUKKytgYGFsd2F5c19hbGxvd19rZXl3b3Jkc2BgLiBUaGlz IG1ldGhvZCBzaG91bGQgcmV0dXJuIGEgdHlwZSB0byBiZSB1c2VkIGFzCisgbWV0YWNsYXNzOgor IAorIC4uIGNvZGUtYmxvY2s6OiBjeXRob24KKyAKKysgICAgY2ltcG9ydCBjeXRob24KKyAgICAg Y2ltcG9ydCBzYWdlLmNweXRob24uY3l0aG9uX21ldGFjbGFzcworICAgICBjZGVmIGNsYXNzIE15 Q3VzdG9tVHlwZSgpOgorKyAgICAgICAgQGN5dGhvbi5hbHdheXNfYWxsb3dfa2V5d29yZHMoRmFs c2UpCisgICAgICAgICBkZWYgX19nZXRtZXRhY2xhc3NfXyhfKToKKyAgICAgICAgICAgICBmcm9t IGZvbyBpbXBvcnQgTXlNZXRhY2xhc3MKKyAgICAgICAgICAgICByZXR1cm4gTXlNZXRhY2xhc3MK K0BAIC02Myw4ICs2NiwxMCBAQCBFWEFNUExFUzo6CisgCisgICAgIHNhZ2U6IGN5dGhvbiggICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgbmVlZHMgc2FnZS5taXNjLmN5dGhvbgorICAgICAuLi4uOiAnJycKKysgICAg Li4uLjogY2ltcG9ydCBjeXRob24KKyAgICAgLi4uLjogY2ltcG9ydCBzYWdlLmNweXRob24uY3l0 aG9uX21ldGFjbGFzcworICAgICAuLi4uOiBjZGVmIGNsYXNzIE15Q3VzdG9tVHlwZSgpOgorKyAg ICAuLi4uOiAgICAgQGN5dGhvbi5hbHdheXNfYWxsb3dfa2V5d29yZHMoRmFsc2UpCisgICAgIC4u Li46ICAgICBkZWYgX19nZXRtZXRhY2xhc3NfXyhfKToKKyAgICAgLi4uLjogICAgICAgICBjbGFz cyBNeU1ldGFjbGFzcyh0eXBlKToKKyAgICAgLi4uLjogICAgICAgICAgICAgZGVmIF9faW5pdF9f KCphcmdzKToKK0BAIC0xMDEsOCArMTA2LDEwIEBAIHJldHVybnMgYSBub24tdHlwZTo6CisgCisg ICAgIHNhZ2U6IGN5dGhvbiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbmVlZHMgc2FnZS5taXNjLmN5dGhvbgor ICAgICAuLi4uOiAnJycKKysgICAgLi4uLjogY2ltcG9ydCBjeXRob24KKyAgICAgLi4uLjogY2lt cG9ydCBzYWdlLmNweXRob24uY3l0aG9uX21ldGFjbGFzcworICAgICAuLi4uOiBjZGVmIGNsYXNz IE15Q3VzdG9tVHlwZSgpOgorKyAgICAuLi4uOiAgICAgQGN5dGhvbi5hbHdheXNfYWxsb3dfa2V5 d29yZHMoRmFsc2UpCisgICAgIC4uLi46ICAgICBkZWYgX19nZXRtZXRhY2xhc3NfXyhfKToKKyAg ICAgLi4uLjogICAgICAgICByZXR1cm4gMgorICAgICAuLi4uOiAnJycpCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvY3B5dGhvbi9nZXRhdHRyLnB5eCBiL3NyYy9zYWdlL2NweXRob24vZ2V0YXR0ci5w eXgKK2luZGV4IDNmNjAzYjk4MDQwLi4xNmY2NDljMDgzZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L2NweXRob24vZ2V0YXR0ci5weXgKKysrKyBiL3NyYy9zYWdlL2NweXRob24vZ2V0YXR0ci5weXgK K0BAIC0yNzEsNyArMjcxLDcgQEAgY3BkZWYgZ2V0YXR0cl9mcm9tX290aGVyX2NsYXNzKHNlbGYs IGNscywgbmFtZSk6CisgCisgICAgIENhdmVhdDogbGF6eSBhdHRyaWJ1dGVzIHdvcmsgd2l0aCBl eHRlbnNpb24gdHlwZXMgb25seQorICAgICBpZiB0aGV5IGFsbG93IGF0dHJpYnV0ZSBhc3NpZ25t ZW50IG9yIGhhdmUgYSBwdWJsaWMgYXR0cmlidXRlCistICAgIGBgX19jYWNoZWRfbWV0aG9kc2Bg IG9mIHR5cGUgYGA8ZGljdD5gYC4gVGhpcyBjb25kaXRpb24KKysgICAgYGBfY2FjaGVkX21ldGhv ZHNgYCBvZiB0eXBlIGBgPGRpY3Q+YGAuIFRoaXMgY29uZGl0aW9uCisgICAgIGlzIHNhdGlzZmll ZCwgZS5nLiwgYnkgYW55IGNsYXNzIHRoYXQgaXMgZGVyaXZlZCBmcm9tCisgICAgIDpjbGFzczpg UGFyZW50YDo6CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9j b21iaW5hdG9yaWFsX3BvbHloZWRyb24vYmFzZS5weGQgYi9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5 aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9iYXNlLnB4ZAoraW5kZXggYmRkNDkyMjVm ZjIuLjAzMGM5ZGVmYTQ1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJv bi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vYmFzZS5weGQKKysrKyBiL3NyYy9zYWdlL2dlb21l dHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2Jhc2UucHhkCitAQCAtOCw3 ICs4LDcgQEAgZnJvbSAucG9seWhlZHJvbl9mYWNlX2xhdHRpY2UgICAgICAgICAgIGNpbXBvcnQg UG9seWhlZHJvbkZhY2VMYXR0aWNlCisgCisgQGN5dGhvbi5maW5hbAorIGNkZWYgY2xhc3MgQ29t YmluYXRvcmlhbFBvbHloZWRyb24oU2FnZU9iamVjdCk6CistICAgIGNkZWYgcHVibGljIGRpY3Qg X19jYWNoZWRfbWV0aG9kcworKyAgICBjZGVmIHB1YmxpYyBkaWN0IF9jYWNoZWRfbWV0aG9kcwor IAorICAgICAjIERvIG5vdCBhc3N1bWUgYW55IG9mIHRob3NlIGF0dHJpYnV0ZXMgdG8gYmUgaW5p dGlhbGl6ZWQsIHVzZSB0aGUgY29ycmVzcG9uZGluZyBtZXRob2RzIGluc3RlYWQuCisgICAgIGNk ZWYgdHVwbGUgX1ZyZXAgICAgICAgICAgICAgICAgICAgICAgICMgdGhlIG5hbWVzIG9mIFZSZXAs IGlmIHRoZXkgZXhpc3QKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGVy bWdyb3VwX2VsZW1lbnQucHhkIGIvc3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3Blcm1ncm91cF9l bGVtZW50LnB4ZAoraW5kZXggYTJhYzhmMjBlYWEuLjBhNTg0NzQ1Zjk2IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3Blcm1ncm91cF9lbGVtZW50LnB4ZAorKysrIGIvc3Jj L3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3Blcm1ncm91cF9lbGVtZW50LnB4ZAorQEAgLTIyLDcgKzIy LDcgQEAgY2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdy b3VwRWxlbWVudCk6CisgICAgIGNwZGVmIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IF9nZW5lcmF0 ZV9uZXdfR0FQKHNlbGYsIG9sZCkKKyAgICAgY3BkZWYgX2dhcF9saXN0KHNlbGYpCisgICAgIGNw ZGVmIGRvbWFpbihzZWxmKQorLSAgICBjZGVmIHB1YmxpYyBfX2N1c3RvbV9uYW1lCisrICAgIGNk ZWYgcHVibGljIF9TYWdlT2JqZWN0X19jdXN0b21fbmFtZQorICAgICBjcGRlZiBsaXN0IF9hY3Rf b25fbGlzdF9vbl9wb3NpdGlvbihzZWxmLCBsaXN0IHgpCisgICAgIGNwZGVmIENsb25hYmxlSW50 QXJyYXkgX2FjdF9vbl9hcnJheV9vbl9wb3NpdGlvbihzZWxmLCBDbG9uYWJsZUludEFycmF5IHgp CisgICAgIGNwZGVmIEVUdXBsZSBfYWN0X29uX2V0dXBsZV9vbl9wb3NpdGlvbihzZWxmLCBFVHVw bGUgeCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9pbnRlcmZhY2VzL2ludGVyZmFjZS5weSBiL3Ny Yy9zYWdlL2ludGVyZmFjZXMvaW50ZXJmYWNlLnB5CitpbmRleCBmODIzN2QzYWQ5NC4uMzE4MDEx M2M5YzcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9pbnRlcmZhY2VzL2ludGVyZmFjZS5weQorKysr IGIvc3JjL3NhZ2UvaW50ZXJmYWNlcy9pbnRlcmZhY2UucHkKK0BAIC0xMTY5LDExICsxMTY5LDgg QEAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAgICAgIHMgPSBjcgorICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICBzID0gc2VsZi5fcmVwcl8oKQorLSAgICAgICAgaWYgc2VsZi5fbmFt ZSBpbiBzOgorLSAgICAgICAgICAgIHRyeToKKy0gICAgICAgICAgICAgICAgcyA9IHMucmVwbGFj ZShzZWxmLl9uYW1lLCBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCistICAgICAgICAg ICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorLSAgICAgICAgICAgICAgICBwYXNzCisrICAgICAg ICBpZiBzZWxmLl9uYW1lIGluIHMgYW5kIHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkgaXMgbm90IE5v bmU6CisrICAgICAgICAgICAgcyA9IHMucmVwbGFjZShzZWxmLl9uYW1lLCBzZWxmLmdldF9jdXN0 b21fbmFtZSgpKQorICAgICAgICAgaWYgY3I6CisgICAgICAgICAgICAgc2VsZi5fY2FjaGVkX3Jl cHIgPSBzCisgICAgICAgICByZXR1cm4gcworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2ludGVyZmFj ZXMvc2luZ3VsYXIucHkgYi9zcmMvc2FnZS9pbnRlcmZhY2VzL3Npbmd1bGFyLnB5CitpbmRleCA0 YjVjNzZlMmJmYS4uNzA1ZmE2ZjY2ZTEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9pbnRlcmZhY2Vz L3Npbmd1bGFyLnB5CisrKysgYi9zcmMvc2FnZS9pbnRlcmZhY2VzL3Npbmd1bGFyLnB5CitAQCAt MTQwMCw4ICsxNDAwLDggQEAgZGVmIF9yZXByXyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgcyA9IHN1cGVyKFNpbmd1bGFyRWxlbWVudCwgc2VsZikuX3JlcHJfKCkKKyAgICAgICAgIGlm IHNlbGYuX25hbWUgaW4gczoKKy0gICAgICAgICAgICBpZiAobm90IGhhc2F0dHIoc2VsZiwgIl9f Y3VzdG9tX25hbWUiKSkgYW5kIHNlbGYudHlwZSgpID09ICdtYXRyaXgnOgorLSAgICAgICAgICAg ICAgICBzID0gc2VsZi5wYXJlbnQoKS5ldmFsKCdwbWF0KCVzLDIwKSclKHNlbGYubmFtZSgpKSkK KysgICAgICAgICAgICBpZiBzZWxmLmdldF9jdXN0b21fbmFtZSgpIGlzIE5vbmUgYW5kIHNlbGYu dHlwZSgpID09ICdtYXRyaXgnOgorKyAgICAgICAgICAgICAgICBzID0gc2VsZi5wYXJlbnQoKS5l dmFsKCdwbWF0KCVzLDIwKScgJSAoc2VsZi5uYW1lKCkpKQorICAgICAgICAgcmV0dXJuIHMKKyAK KyAgICAgZGVmIF9fY29weV9fKHNlbGYpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvYXJi L2FyaXRoLnB5eCBiL3NyYy9zYWdlL2xpYnMvYXJiL2FyaXRoLnB5eAoraW5kZXggZDg4NWY5N2Iy MzguLjNiMzJmZTdlOGVkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9hcmIvYXJpdGgucHl4 CisrKysgYi9zcmMvc2FnZS9saWJzL2FyYi9hcml0aC5weXgKK0BAIC04MSw1ICs4MSw1IEBAIGRl ZiBoaWxiZXJ0X2NsYXNzX3BvbHlub21pYWwoRCk6CisgICAgIGNkZWYgbG9uZyBuID0gRAorICAg ICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCBwb2x5CisgICAgIHBvbHkgPSBQ b2x5bm9taWFsUmluZyhaWiwgIngiLCBpbXBsZW1lbnRhdGlvbj0iRkxJTlQiKSgpCistICAgIGFj Yl9tb2R1bGFyX2hpbGJlcnRfY2xhc3NfcG9seShwb2x5Ll9fcG9seSwgbikKKysgICAgYWNiX21v ZHVsYXJfaGlsYmVydF9jbGFzc19wb2x5KHBvbHkuX3BvbHksIG4pCisgICAgIHJldHVybiBwb2x5 CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9jb3hldGVyMy9jb3hldGVyLnB4ZCBiL3NyYy9z YWdlL2xpYnMvY294ZXRlcjMvY294ZXRlci5weGQKK2luZGV4IDlkNWNiMmEzZjVkLi5kYmQyYjhh NjFjNiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvY294ZXRlcjMvY294ZXRlci5weGQKKysr KyBiL3NyYy9zYWdlL2xpYnMvY294ZXRlcjMvY294ZXRlci5weGQKK0BAIC0yOSw2ICsyOSwzIEBA IGNkZWYgY2xhc3MgQ294R3JvdXBFbGVtZW50OgorICAgICBjZGVmIENveEdyb3VwIF9wYXJlbnRf Z3JvdXAKKyAgICAgY2RlZiBDb3hHcm91cEVsZW1lbnQgX25ldyhzZWxmKQorICAgICBjcGRlZiBD b3hHcm91cCBwYXJlbnRfZ3JvdXAoc2VsZikKKy0KKy1jZGVmIGNsYXNzIENveEdyYXBoOgorLSAg ICBjZGVmIGNfQ294R3JhcGggeAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvZ2FwL2VsZW1l bnQucHl4IGIvc3JjL3NhZ2UvbGlicy9nYXAvZWxlbWVudC5weXgKK2luZGV4IDFkYzUzYzgxZjY3 Li40NzhjYWY5ZjlkMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvZ2FwL2VsZW1lbnQucHl4 CisrKysgYi9zcmMvc2FnZS9saWJzL2dhcC9lbGVtZW50LnB5eAorQEAgLTcyMCw3ICs3MjAsNyBA QCBjZGVmIGNsYXNzIEdhcEVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIC4uLgor ICAgICAgICAgICAgIEF0dHJpYnV0ZUVycm9yOiAnc29tZV9uYW1lJyBkb2VzIG5vdCBkZWZpbmUg YSBHQVAgZnVuY3Rpb24KKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgbmFtZSBpbiAoJ19fZGlj dF9fJywgJ19nZXRBdHRyaWJ1dGVOYW1lcycsICdfX2N1c3RvbV9uYW1lJywgJ2tleXMnKToKKysg ICAgICAgIGlmIG5hbWUgaW4gKCdfX2RpY3RfXycsICdfZ2V0QXR0cmlidXRlTmFtZXMnLCAnX1Nh Z2VPYmplY3RfX2N1c3RvbV9uYW1lJywgJ2tleXMnKToKKyAgICAgICAgICAgICByYWlzZSBBdHRy aWJ1dGVFcnJvcignUHl0aG9uIHNwZWNpYWwgbmFtZSwgbm90IGEgR0FQIGZ1bmN0aW9uLicpCisg ICAgICAgICB0cnk6CisgICAgICAgICAgICAgcHJveHkgPSBtYWtlX0dhcEVsZW1lbnRfTWV0aG9k UHJveHlcCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9nYXAvZ2FwX2luY2x1ZGVzLnB4ZCBi L3NyYy9zYWdlL2xpYnMvZ2FwL2dhcF9pbmNsdWRlcy5weGQKK2luZGV4IDg0MGI4YTAwNDJlLi4x ZWQ0Mzc4YTZjNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvZ2FwL2dhcF9pbmNsdWRlcy5w eGQKKysrKyBiL3NyYy9zYWdlL2xpYnMvZ2FwL2dhcF9pbmNsdWRlcy5weGQKK0BAIC0xNDQsMyAr MTQ0LDE4IEBAIGNkZWYgZXh0ZXJuIGZyb20gImdhcC9zdHJpbmdvYmouaCIgbm9naWw6CisgICAg IGJpbnQgSVNfU1RSSU5HKE9iaiBvYmopCisgICAgIGJpbnQgSXNTdHJpbmdDb252KE9iaiBvYmop CisgICAgIE9iaiBORVdfU1RSSU5HKEludCkKKysKKysKKytjZGVmIGV4dGVybiBmcm9tICI8c3Ry dWN0bWVtYmVyLmg+IiBub2dpbDoKKysgICAgIiIiCisrICAgIC8qIEhhY2s6IEN5dGhvbiAzLjAg YXV0b21hdGljYWxseSBpbmNsdWRlcyA8c3RydWN0bWVtYmVyLmg+LCB3aGljaAorKyAgICAgKiBk ZWZpbmVzIHNldmVyYWwgbWFjcm9zIHRoYXQgY29sbGlkZXMgd2l0aCBlbnVtIGRlZmluaXRpb25z IGluCisrICAgICAqIGdhcC9vYmplY3RzLmguIFdlIG5lZWQgdG8gaW5jbHVkZSB0aGUgaGVhZGVy IGV4cGxpY2l0bHkgYW5kCisrICAgICAqIHVuZGVmaW5lIHRoZXNlIG1hY3Jvcy4KKysgICAgICov CisrICAgICN1bmRlZiBUX0lOVAorKyAgICAjdW5kZWYgVF9TVFJJTkcKKysgICAgI3VuZGVmIFRf Q0hBUgorKyAgICAjdW5kZWYgVF9CT09MCisrICAgICIiIgorKyAgICBwYXNzCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvbGlicy9sY2FsYy9sY2FsY19MZnVuY3Rpb24ucHhkIGIvc3JjL3NhZ2UvbGli cy9sY2FsYy9sY2FsY19MZnVuY3Rpb24ucHhkCitpbmRleCA1ZWRmMDg0NGYzZS4uMWQ1OTUxODBh NmYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2xjYWxjL2xjYWxjX0xmdW5jdGlvbi5weGQK KysrKyBiL3NyYy9zYWdlL2xpYnMvbGNhbGMvbGNhbGNfTGZ1bmN0aW9uLnB4ZAorQEAgLTk5LDE5 ICs5OSwxOSBAQCBjZGVmIGV4dGVybiBmcm9tICJsY2FsY19zYWdlLmgiOgorICMjIyMjIyMjIyMj IyMjIyMKKyAKKyAjIHN0cmFuZ2UgYnVnLCBJIGNhbid0IGNvbXBpbGUgd2l0aG91dCB0aGlzIHRy aWNrID8/PworLSMgaXQncyBvbmx5IHVzZWQgaW4gX190eXBlZE4KKysjIGl0J3Mgb25seSB1c2Vk IGluIF90eXBlZE4KKyBjdHlwZWRlZiBkb3VibGUgRG91YmxlCisgCisgY2RlZiBjbGFzcyBMZnVu Y3Rpb246CisgICAgIGNkZWYgdm9pZCAqdGhpc3B0cgorLSAgICBjZGVmIHZvaWQgX19pbml0X2Z1 bihzZWxmLCBjaGFyICpOQU1FLCBpbnQgd2hhdF90eXBlLCBkaXJpY2hsZXRfY29lZmYsIGxvbmcg bG9uZyBQZXJpb2QsIGRvdWJsZSBxLCAgY19Db21wbGV4IHcsIGludCBBLCBkb3VibGUgKmcsIGNf Q29tcGxleCAqbCwgaW50IG5fcG9sZXMsIGNfQ29tcGxleCAqcCwgY19Db21wbGV4ICpyKQorLSAg ICBjZGVmIGNfQ29tcGxleCBfX3ZhbHVlKHNlbGYsY19Db21wbGV4IHMsaW50IGRlcml2YXRpdmUp CistICAgIGNkZWYgY19Db21wbGV4IF9faGFyZHlfel9mdW5jdGlvbihzZWxmLGNfQ29tcGxleCBz KQorLSAgICBjZGVmIGludCBfX2NvbXB1dGVfcmFuayhzZWxmKQorKyAgICBjZGVmIHZvaWQgX2lu aXRfZnVuKHNlbGYsIGNoYXIgKk5BTUUsIGludCB3aGF0X3R5cGUsIGRpcmljaGxldF9jb2VmZiwg bG9uZyBsb25nIFBlcmlvZCwgZG91YmxlIHEsICBjX0NvbXBsZXggdywgaW50IEEsIGRvdWJsZSAq ZywgY19Db21wbGV4ICpsLCBpbnQgbl9wb2xlcywgY19Db21wbGV4ICpwLCBjX0NvbXBsZXggKnIp CisrICAgIGNkZWYgY19Db21wbGV4IF92YWx1ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJpdmF0 aXZlKQorKyAgICBjZGVmIGNfQ29tcGxleCBfaGFyZHlfel9mdW5jdGlvbihzZWxmLGNfQ29tcGxl eCBzKQorKyAgICBjZGVmIGludCBfY29tcHV0ZV9yYW5rKHNlbGYpCisgICAgICNzdHJhbmdlIGJ1 ZywgcmVwbGFjaW5nIERvdWJsZSB3aXRoIGRvdWJsZSBnaXZlcyBtZSBhIGNvbXBpbGUgZXJyb3IK Ky0gICAgY2RlZiBEb3VibGUgX190eXBlZE4oc2VsZiwgZG91YmxlIFQpCistICAgIGNkZWYgdm9p ZCBfX2ZpbmRfemVyb3NfdihzZWxmLCBkb3VibGUgVDEsIGRvdWJsZSBUMiwgZG91YmxlIHN0ZXBz aXplLGRvdWJsZXZlYyAqcmVzdWx0KQorLSAgICBjZGVmIGludCBfX2ZpbmRfemVyb3Moc2VsZiwg bG9uZyBjb3VudCwgbG9uZyBzdGFydCwgZG91YmxlIG1heF9yZWZpbmUsIGludCByYW5rLCBjb25z dCBjaGFyKiBtZXNzYWdlX3N0YW1wLCBkb3VibGV2ZWMqIHJlc3VsdCkKKysgICAgY2RlZiBEb3Vi bGUgX3R5cGVkTihzZWxmLCBkb3VibGUgVCkKKysgICAgY2RlZiB2b2lkIF9maW5kX3plcm9zX3Yo c2VsZiwgZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJsZSBzdGVwc2l6ZSxkb3VibGV2ZWMgKnJl c3VsdCkKKysgICAgY2RlZiBpbnQgX2ZpbmRfemVyb3Moc2VsZiwgbG9uZyBjb3VudCwgbG9uZyBz dGFydCwgZG91YmxlIG1heF9yZWZpbmUsIGludCByYW5rLCBjb25zdCBjaGFyKiBtZXNzYWdlX3N0 YW1wLCBkb3VibGV2ZWMqIHJlc3VsdCkKKyAKKyAgICAgY2RlZiBzdHIgX3JlcHIKKyAKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9saWJzL2xjYWxjL2xjYWxjX0xmdW5jdGlvbi5weXggYi9zcmMvc2Fn ZS9saWJzL2xjYWxjL2xjYWxjX0xmdW5jdGlvbi5weXgKK2luZGV4IDZlOTAwNWM1MDJiLi43Yjg3 MWVkMDQ5ZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbGNhbGMvbGNhbGNfTGZ1bmN0aW9u LnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9sY2FsYy9sY2FsY19MZnVuY3Rpb24ucHl4CitAQCAt OTksNyArOTksNyBAQCBjZGVmIGNsYXNzIExmdW5jdGlvbjoKKyAgICAgICAgICAgICB0bXBjPUND QyhyZXNpZHVlW2ldKQorICAgICAgICAgICAgIHJbaSsxXSA9IG5ld19Db21wbGV4KG1wZnJfZ2V0 X2QodG1wYy5fX3JlLCBNUEZSX1JORE4pLCBtcGZyX2dldF9kKHRtcGMuX19pbSwgTVBGUl9STkRO KSkKKyAKKy0gICAgICAgIHNlbGYuX19pbml0X2Z1bihOQU1FLCB3aGF0X3R5cGUsIGRpcmljaGxl dF9jb2VmZmljaWVudCwgUGVyaW9kLCBxLCAgdywgIEEsIGcsIGwsIG5fcG9sZXMsIHAsIHIpCisr ICAgICAgICBzZWxmLl9pbml0X2Z1bihOQU1FLCB3aGF0X3R5cGUsIGRpcmljaGxldF9jb2VmZmlj aWVudCwgUGVyaW9kLCBxLCAgdywgIEEsIGcsIGwsIG5fcG9sZXMsIHAsIHIpCisgCisgICAgICAg ICBpZiBuYW1lOgorICAgICAgICAgICAgIG5hbWUgKz0gJzogJworQEAgLTE4MCw3ICsxODAsNyBA QCBjZGVmIGNsYXNzIExmdW5jdGlvbjoKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBDb21w bGV4TnVtYmVyIGNvbXBsZXhpZmllZF9zID0gQ0NDKHMpCisgICAgICAgICBjZGVmIGNfQ29tcGxl eCB6ID0gbmV3X0NvbXBsZXgobXBmcl9nZXRfZChjb21wbGV4aWZpZWRfcy5fX3JlLCBNUEZSX1JO RE4pLCBtcGZyX2dldF9kKGNvbXBsZXhpZmllZF9zLl9faW0sIE1QRlJfUk5ETikpCistICAgICAg ICBjZGVmIGNfQ29tcGxleCByZXN1bHQgPSBzZWxmLl9fdmFsdWUoeiwgZGVyaXZhdGl2ZSkKKysg ICAgICAgIGNkZWYgY19Db21wbGV4IHJlc3VsdCA9IHNlbGYuX3ZhbHVlKHosIGRlcml2YXRpdmUp CisgICAgICAgICByZXR1cm4gQ0NDKHJlc3VsdC5yZWFsKCkscmVzdWx0LmltYWcoKSkKKyAKKyAg ICAgZGVmIGhhcmR5X3pfZnVuY3Rpb24oc2VsZiwgcyk6CitAQCAtMjIzLDcgKzIyMyw3IEBAIGNk ZWYgY2xhc3MgTGZ1bmN0aW9uOgorICAgICAgICAgI1RoaXMgdGFrZXMgcyAtPiAuNSArIEkqcwor ICAgICAgICAgY2RlZiBDb21wbGV4TnVtYmVyIGNvbXBsZXhpZmllZF9zID0gQ0NDKDAuNSkrIEND QygwLDEpKkNDQyhzKQorICAgICAgICAgY2RlZiBjX0NvbXBsZXggeiA9IG5ld19Db21wbGV4KG1w ZnJfZ2V0X2QoY29tcGxleGlmaWVkX3MuX19yZSwgTVBGUl9STkROKSwgbXBmcl9nZXRfZChjb21w bGV4aWZpZWRfcy5fX2ltLCBNUEZSX1JORE4pKQorLSAgICAgICAgY2RlZiBjX0NvbXBsZXggcmVz dWx0ID0gc2VsZi5fX2hhcmR5X3pfZnVuY3Rpb24oeikKKysgICAgICAgIGNkZWYgY19Db21wbGV4 IHJlc3VsdCA9IHNlbGYuX2hhcmR5X3pfZnVuY3Rpb24oeikKKyAgICAgICAgIHJldHVybiBDQ0Mo cmVzdWx0LnJlYWwoKSxyZXN1bHQuaW1hZygpKQorIAorIAorQEAgLTI0OSw5ICsyNDksOSBAQCBj ZGVmIGNsYXNzIExmdW5jdGlvbjoKKyAgICAgICAgICAgICAzCisgCisgICAgICAgICAiIiIKKy0g ICAgICAgIHJldHVybiBzZWxmLl9fY29tcHV0ZV9yYW5rKCkKKysgICAgICAgIHJldHVybiBzZWxm Ll9jb21wdXRlX3JhbmsoKQorIAorLSAgICBkZWYgX19OKHNlbGYsIFQpOgorKyAgICBkZWYgX04o c2VsZiwgVCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXB1dGUgdGhlIG51bWJlciBvZiB6 ZXJvZXMgdXB0byBoZWlnaHQgYFRgIHVzaW5nIHRoZSBmb3JtdWxhIGZvcgorICAgICAgICAgYE4o VClgIHdpdGggdGhlIGVycm9yIG9mIGBTKFQpYC4gUGxlYXNlIGRvIG5vdCB1c2UgdGhpcy4gSXQg aXMgb25seQorQEAgLTI2MiwxMiArMjYyLDEyIEBAIGNkZWYgY2xhc3MgTGZ1bmN0aW9uOgorICAg ICAgICAgICAgIHNhZ2U6IGZyb20gc2FnZS5saWJzLmxjYWxjLmxjYWxjX0xmdW5jdGlvbiBpbXBv cnQgKgorICAgICAgICAgICAgIHNhZ2U6IGNoaSA9IERpcmljaGxldEdyb3VwKDUpWzJdICNUaGlz IGlzIGEgcXVhZHJhdGljIGNoYXJhY3RlcgorICAgICAgICAgICAgIHNhZ2U6IEw9TGZ1bmN0aW9u X2Zyb21fY2hhcmFjdGVyKGNoaSwgdHlwZT0iY29tcGxleCIpCistICAgICAgICAgICAgc2FnZTog TC5fX04oMTApICMgYWJzIHRvbCAxZS04CisrICAgICAgICAgICAgc2FnZTogTC5fTigxMCkgIyBh YnMgdG9sIDFlLTgKKyAgICAgICAgICAgICA0LjAKKyAgICAgICAgICIiIgorICAgICAgICAgY2Rl ZiBSZWFsTnVtYmVyIHJlYWxfVD1SUlIoVCkKKyAgICAgICAgIGNkZWYgZG91YmxlIGRvdWJsZV9U ID0gbXBmcl9nZXRfZChyZWFsX1QudmFsdWUsIE1QRlJfUk5ETikKKy0gICAgICAgIGNkZWYgZG91 YmxlIHJlc19kID0gc2VsZi5fX3R5cGVkTihkb3VibGVfVCkKKysgICAgICAgIGNkZWYgZG91Ymxl IHJlc19kID0gc2VsZi5fdHlwZWROKGRvdWJsZV9UKQorICAgICAgICAgcmV0dXJuIFJSUihyZXNf ZCkKKyAKKyAgICAgZGVmIGZpbmRfemVyb3Moc2VsZiwgVDEsIFQyLCBzdGVwc2l6ZSk6CitAQCAt MzIzLDcgKzMyMyw3IEBAIGNkZWYgY2xhc3MgTGZ1bmN0aW9uOgorICAgICAgICAgY2RlZiBSZWFs TnVtYmVyIHJlYWxfVDIgPSBSUlIoVDIpCisgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgcmVhbF9z dGVwc2l6ZSA9IFJSUihzdGVwc2l6ZSkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBzZWxm Ll9fZmluZF96ZXJvc192KCBtcGZyX2dldF9kKHJlYWxfVDEudmFsdWUsIE1QRlJfUk5ETiksIG1w ZnJfZ2V0X2QocmVhbF9UMi52YWx1ZSwgTVBGUl9STkROKSwgbXBmcl9nZXRfZChyZWFsX3N0ZXBz aXplLnZhbHVlLCBNUEZSX1JORE4pLCZyZXN1bHQpCisrICAgICAgICBzZWxmLl9maW5kX3plcm9z X3YoIG1wZnJfZ2V0X2QocmVhbF9UMS52YWx1ZSwgTVBGUl9STkROKSwgbXBmcl9nZXRfZChyZWFs X1QyLnZhbHVlLCBNUEZSX1JORE4pLCBtcGZyX2dldF9kKHJlYWxfc3RlcHNpemUudmFsdWUsIE1Q RlJfUk5ETiksJnJlc3VsdCkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgaT1yZXN1bHQu c2l6ZSgpCisgICAgICAgICByZXR1cm52YWx1ZSA9IFtdCitAQCAtMzk5LDcgKzM5OSw3IEBAIGNk ZWYgY2xhc3MgTGZ1bmN0aW9uOgorICAgICAgICAgY2RlZiBjb25zdCBjaGFyKiBtZXNzYWdlX3N0 YW1wID0gIiIKKyAgICAgICAgIGNkZWYgZG91YmxldmVjIHJlc3VsdAorICAgICAgICAgc2lnX29u KCkKKy0gICAgICAgIHNlbGYuX19maW5kX3plcm9zKGNvdW50LCBzdGFydCwgbWF4X3JlZmluZSwg cmFuaywgbWVzc2FnZV9zdGFtcCwgJnJlc3VsdCkKKysgICAgICAgIHNlbGYuX2ZpbmRfemVyb3Mo Y291bnQsIHN0YXJ0LCBtYXhfcmVmaW5lLCByYW5rLCBtZXNzYWdlX3N0YW1wLCAmcmVzdWx0KQor ICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm52YWx1ZSA9IFtdCisgICAgICAgICBm b3IgaSBpbiByYW5nZShyZXN1bHQuc2l6ZSgpKToKK0BAIC00MDgsMjUgKzQwOCwyNSBAQCBjZGVm IGNsYXNzIExmdW5jdGlvbjoKKyAgICAgICAgIHJldHVybiByZXR1cm52YWx1ZQorIAorICAgICAj IE5lZWRzIHRvIGJlIG92ZXJyaWRlbgorLSAgICBjZGVmIHZvaWQgX19pbml0X2Z1bihzZWxmLCBj aGFyICpOQU1FLCBpbnQgd2hhdF90eXBlLCBkaXJpY2hsZXRfY29lZmYsIGxvbmcgbG9uZyBQZXJp b2QsIGRvdWJsZSBxLCAgY19Db21wbGV4IHcsIGludCBBLCBkb3VibGUgKmcsIGNfQ29tcGxleCAq bCwgaW50IG5fcG9sZXMsIGNfQ29tcGxleCAqcCwgY19Db21wbGV4ICpyKToKKysgICAgY2RlZiB2 b2lkIF9pbml0X2Z1bihzZWxmLCBjaGFyICpOQU1FLCBpbnQgd2hhdF90eXBlLCBkaXJpY2hsZXRf Y29lZmYsIGxvbmcgbG9uZyBQZXJpb2QsIGRvdWJsZSBxLCAgY19Db21wbGV4IHcsIGludCBBLCBk b3VibGUgKmcsIGNfQ29tcGxleCAqbCwgaW50IG5fcG9sZXMsIGNfQ29tcGxleCAqcCwgY19Db21w bGV4ICpyKToKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKy0gICAgY2Rl ZiBjX0NvbXBsZXggX192YWx1ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJpdmF0aXZlKToKKysg ICAgY2RlZiBjX0NvbXBsZXggX3ZhbHVlKHNlbGYsY19Db21wbGV4IHMsaW50IGRlcml2YXRpdmUp OgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBjZGVmIGNfQ29t cGxleCBfX2hhcmR5X3pfZnVuY3Rpb24oc2VsZixjX0NvbXBsZXggcyk6CisrICAgIGNkZWYgY19D b21wbGV4IF9oYXJkeV96X2Z1bmN0aW9uKHNlbGYsY19Db21wbGV4IHMpOgorICAgICAgICAgcmFp c2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBjZGVmIGludCBfX2NvbXB1dGVfcmFuayhz ZWxmKToKKysgICAgY2RlZiBpbnQgX2NvbXB1dGVfcmFuayhzZWxmKToKKyAgICAgICAgIHJhaXNl IE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKy0gICAgY2RlZiBkb3VibGUgX190eXBlZE4oc2VsZixk b3VibGUgVCk6CisrICAgIGNkZWYgZG91YmxlIF90eXBlZE4oc2VsZixkb3VibGUgVCk6CisgICAg ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNkZWYgdm9pZCBfX2ZpbmRf emVyb3NfdihzZWxmLGRvdWJsZSBUMSwgZG91YmxlIFQyLCBkb3VibGUgc3RlcHNpemUsIGRvdWJs ZXZlYyAqcmVzdWx0KToKKysgICAgY2RlZiB2b2lkIF9maW5kX3plcm9zX3Yoc2VsZixkb3VibGUg VDEsIGRvdWJsZSBUMiwgZG91YmxlIHN0ZXBzaXplLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisgICAg ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNkZWYgaW50IF9fZmluZF96 ZXJvcyhzZWxmLCBsb25nIGNvdW50LCBsb25nIHN0YXJ0LCBkb3VibGUgbWF4X3JlZmluZSwgaW50 IHJhbmssIGNvbnN0IGNoYXIqIG1lc3NhZ2Vfc3RhbXAsIGRvdWJsZXZlYyAqcmVzdWx0KToKKysg ICAgY2RlZiBpbnQgX2ZpbmRfemVyb3Moc2VsZiwgbG9uZyBjb3VudCwgbG9uZyBzdGFydCwgZG91 YmxlIG1heF9yZWZpbmUsIGludCByYW5rLCBjb25zdCBjaGFyKiBtZXNzYWdlX3N0YW1wLCBkb3Vi bGV2ZWMgKnJlc3VsdCk6CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCisg IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCitAQCAtNDk3LDcgKzQ5Nyw3IEBAIGNkZWYgY2xhc3MgTGZ1 bmN0aW9uX0koTGZ1bmN0aW9uKToKKyAgICAgICAgIHNlbGYuX3JlcHIgKz0gIiB3aXRoIGludGVn ZXIgRGlyaWNobGV0IGNvZWZmaWNpZW50cyIKKyAKKyAgICAgIyBvdmVycmlkZQorLSAgICBjZGVm IHZvaWQgX19pbml0X2Z1bihzZWxmLCBjaGFyICpOQU1FLCBpbnQgd2hhdF90eXBlLCBkaXJpY2hs ZXRfY29lZmYsIGxvbmcgbG9uZyBQZXJpb2QsIGRvdWJsZSBxLCAgY19Db21wbGV4IHcsIGludCBB LCBkb3VibGUgKmcsIGNfQ29tcGxleCAqbCwgaW50IG5fcG9sZXMsIGNfQ29tcGxleCAqcCwgY19D b21wbGV4ICpyKToKKysgICAgY2RlZiB2b2lkIF9pbml0X2Z1bihzZWxmLCBjaGFyICpOQU1FLCBp bnQgd2hhdF90eXBlLCBkaXJpY2hsZXRfY29lZmYsIGxvbmcgbG9uZyBQZXJpb2QsIGRvdWJsZSBx LCAgY19Db21wbGV4IHcsIGludCBBLCBkb3VibGUgKmcsIGNfQ29tcGxleCAqbCwgaW50IG5fcG9s ZXMsIGNfQ29tcGxleCAqcCwgY19Db21wbGV4ICpyKToKKyAgICAgICAgIGNkZWYgaW50IE4gPSBs ZW4oZGlyaWNobGV0X2NvZWZmKQorICAgICAgICAgY2RlZiBJbnRlZ2VyIHRtcGkKKyAgICAgICAg IGNkZWYgaW50ICogY29lZmZzID0gbmV3X2ludHMoTisxKSAjbGNhbGMgaWdub3JlcyAwdGhlIGNv ZWZmaWNpZW50CitAQCAtNTA3LDIyICs1MDcsMjIgQEAgY2RlZiBjbGFzcyBMZnVuY3Rpb25fSShM ZnVuY3Rpb24pOgorICAgICAgICAgc2VsZi50aGlzcHRyPW5ld19jX0xmdW5jdGlvbl9JKE5BTUUs IHdoYXRfdHlwZSwgIE4sIGNvZWZmcywgUGVyaW9kLCBxLCAgdywgIEEsIGcsIGwsIG5fcG9sZXMs IHAsIHIpCisgICAgICAgICBkZWxfaW50cyhjb2VmZnMpCisgCistICAgIGNkZWYgaW5saW5lIGNf Q29tcGxleCBfX3ZhbHVlKHNlbGYsY19Db21wbGV4IHMsaW50IGRlcml2YXRpdmUpOgorKyAgICBj ZGVmIGlubGluZSBjX0NvbXBsZXggX3ZhbHVlKHNlbGYsY19Db21wbGV4IHMsaW50IGRlcml2YXRp dmUpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fSSAqPihzZWxmLnRoaXNwdHIpKS52 YWx1ZShzLCBkZXJpdmF0aXZlLCAicHVyZSIpCisgCistICAgIGNkZWYgaW5saW5lIGNfQ29tcGxl eCBfX2hhcmR5X3pfZnVuY3Rpb24oc2VsZixjX0NvbXBsZXggcyk6CisrICAgIGNkZWYgaW5saW5l IGNfQ29tcGxleCBfaGFyZHlfel9mdW5jdGlvbihzZWxmLGNfQ29tcGxleCBzKToKKyAgICAgICAg IHJldHVybiAoPGNfTGZ1bmN0aW9uX0kgKj4oc2VsZi50aGlzcHRyKSkudmFsdWUocywgMCwgInJv dGF0ZWQgcHVyZSIpCisgCistICAgIGNkZWYgaW50IF9fY29tcHV0ZV9yYW5rKHNlbGYpOgorKyAg ICBjZGVmIGludCBfY29tcHV0ZV9yYW5rKHNlbGYpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVu Y3Rpb25fSSAqPihzZWxmLnRoaXNwdHIpKS5jb21wdXRlX3JhbmsoKQorIAorLSAgICBjZGVmIHZv aWQgX19maW5kX3plcm9zX3Yoc2VsZiwgZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJsZSBzdGVw c2l6ZSwgZG91YmxldmVjICpyZXN1bHQpOgorKyAgICBjZGVmIHZvaWQgX2ZpbmRfemVyb3Nfdihz ZWxmLCBkb3VibGUgVDEsIGRvdWJsZSBUMiwgZG91YmxlIHN0ZXBzaXplLCBkb3VibGV2ZWMgKnJl c3VsdCk6CisgICAgICAgICAoPGNfTGZ1bmN0aW9uX0kgKj5zZWxmLnRoaXNwdHIpLmZpbmRfemVy b3NfdihUMSxUMixzdGVwc2l6ZSxyZXN1bHRbMF0pCisgCistICAgIGNkZWYgZG91YmxlIF9fdHlw ZWROKHNlbGYsIGRvdWJsZSBUKToKKysgICAgY2RlZiBkb3VibGUgX3R5cGVkTihzZWxmLCBkb3Vi bGUgVCk6CisgICAgICAgICByZXR1cm4gKDxjX0xmdW5jdGlvbl9JICo+c2VsZi50aGlzcHRyKS5O KFQpCisgCistICAgIGNkZWYgaW50IF9fZmluZF96ZXJvcyhzZWxmLCBsb25nIGNvdW50LCBsb25n IHN0YXJ0LCBkb3VibGUgbWF4X3JlZmluZSwgaW50IHJhbmssIGNvbnN0IGNoYXIqIG1lc3NhZ2Vf c3RhbXAsIGRvdWJsZXZlYyAqcmVzdWx0KToKKysgICAgY2RlZiBpbnQgX2ZpbmRfemVyb3Moc2Vs ZiwgbG9uZyBjb3VudCwgbG9uZyBzdGFydCwgZG91YmxlIG1heF9yZWZpbmUsIGludCByYW5rLCBj b25zdCBjaGFyKiBtZXNzYWdlX3N0YW1wLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisgICAgICAgICAo PGNfTGZ1bmN0aW9uX0kgKj5zZWxmLnRoaXNwdHIpLmZpbmRfemVyb3MoY291bnQsIHN0YXJ0LCBt YXhfcmVmaW5lLCByYW5rLCBtZXNzYWdlX3N0YW1wLCByZXN1bHQpCisgCisgICAgICMgZGVidWcg dG9vbHMKK0BAIC02MzMsNyArNjMzLDcgQEAgY2RlZiBjbGFzcyBMZnVuY3Rpb25fRChMZnVuY3Rp b24pOgorICAgICAgICAgc2VsZi5fcmVwciArPSAiIHdpdGggcmVhbCBEaXJpY2hsZXQgY29lZmZp Y2llbnRzIgorIAorICAgICAjIG92ZXJyaWRlCistICAgIGNkZWYgdm9pZCBfX2luaXRfZnVuKHNl bGYsIGNoYXIgKk5BTUUsIGludCB3aGF0X3R5cGUsIGRpcmljaGxldF9jb2VmZiwgbG9uZyBsb25n IFBlcmlvZCwgZG91YmxlIHEsICBjX0NvbXBsZXggdywgaW50IEEsIGRvdWJsZSAqZywgY19Db21w bGV4ICpsLCBpbnQgbl9wb2xlcywgY19Db21wbGV4ICpwLCBjX0NvbXBsZXggKnIpOgorKyAgICBj ZGVmIHZvaWQgX2luaXRfZnVuKHNlbGYsIGNoYXIgKk5BTUUsIGludCB3aGF0X3R5cGUsIGRpcmlj aGxldF9jb2VmZiwgbG9uZyBsb25nIFBlcmlvZCwgZG91YmxlIHEsICBjX0NvbXBsZXggdywgaW50 IEEsIGRvdWJsZSAqZywgY19Db21wbGV4ICpsLCBpbnQgbl9wb2xlcywgY19Db21wbGV4ICpwLCBj X0NvbXBsZXggKnIpOgorICAgICAgICAgY2RlZiBpbnQgaQorICAgICAgICAgY2RlZiBSZWFsTnVt YmVyIHRtcHIKKyAgICAgICAgIGNkZWYgaW50IE4gPSBsZW4oZGlyaWNobGV0X2NvZWZmKQorQEAg LTY0NCwyMyArNjQ0LDIzIEBAIGNkZWYgY2xhc3MgTGZ1bmN0aW9uX0QoTGZ1bmN0aW9uKToKKyAg ICAgICAgIHNlbGYudGhpc3B0cj1uZXdfY19MZnVuY3Rpb25fRChOQU1FLCB3aGF0X3R5cGUsICBO LCBjb2VmZnMsIFBlcmlvZCwgcSwgIHcsICBBLCBnLCBsLCBuX3BvbGVzLCBwLCByKQorICAgICAg ICAgZGVsX2RvdWJsZXMoY29lZmZzKQorIAorLSAgICBjZGVmIGlubGluZSBjX0NvbXBsZXggX192 YWx1ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJpdmF0aXZlKToKKysgICAgY2RlZiBpbmxpbmUg Y19Db21wbGV4IF92YWx1ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJpdmF0aXZlKToKKyAgICAg ICAgIHJldHVybiAoPGNfTGZ1bmN0aW9uX0QgKj4oc2VsZi50aGlzcHRyKSkudmFsdWUocywgZGVy aXZhdGl2ZSwgInB1cmUiKQorIAorIAorLSAgICBjZGVmIGlubGluZSBjX0NvbXBsZXggX19oYXJk eV96X2Z1bmN0aW9uKHNlbGYsY19Db21wbGV4IHMpOgorKyAgICBjZGVmIGlubGluZSBjX0NvbXBs ZXggX2hhcmR5X3pfZnVuY3Rpb24oc2VsZixjX0NvbXBsZXggcyk6CisgICAgICAgICByZXR1cm4g KDxjX0xmdW5jdGlvbl9EICo+KHNlbGYudGhpc3B0cikpLnZhbHVlKHMsIDAsICJyb3RhdGVkIHB1 cmUiKQorIAorLSAgICBjZGVmIGlubGluZSBpbnQgX19jb21wdXRlX3Jhbmsoc2VsZik6CisrICAg IGNkZWYgaW5saW5lIGludCBfY29tcHV0ZV9yYW5rKHNlbGYpOgorICAgICAgICAgcmV0dXJuICg8 Y19MZnVuY3Rpb25fRCAqPihzZWxmLnRoaXNwdHIpKS5jb21wdXRlX3JhbmsoKQorIAorLSAgICBj ZGVmIHZvaWQgX19maW5kX3plcm9zX3Yoc2VsZiwgZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJs ZSBzdGVwc2l6ZSwgZG91YmxldmVjICpyZXN1bHQpOgorKyAgICBjZGVmIHZvaWQgX2ZpbmRfemVy b3NfdihzZWxmLCBkb3VibGUgVDEsIGRvdWJsZSBUMiwgZG91YmxlIHN0ZXBzaXplLCBkb3VibGV2 ZWMgKnJlc3VsdCk6CisgICAgICAgICAoPGNfTGZ1bmN0aW9uX0QgKj5zZWxmLnRoaXNwdHIpLmZp bmRfemVyb3NfdihUMSxUMixzdGVwc2l6ZSxyZXN1bHRbMF0pCisgCistICAgIGNkZWYgZG91Ymxl IF9fdHlwZWROKHNlbGYsIGRvdWJsZSBUKToKKysgICAgY2RlZiBkb3VibGUgX3R5cGVkTihzZWxm LCBkb3VibGUgVCk6CisgICAgICAgICByZXR1cm4gKDxjX0xmdW5jdGlvbl9EICo+c2VsZi50aGlz cHRyKS5OKFQpCisgCistICAgIGNkZWYgaW50IF9fZmluZF96ZXJvcyhzZWxmLCBsb25nIGNvdW50 LCBsb25nIHN0YXJ0LGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQgcmFuaywgY29uc3QgY2hhciogbWVz c2FnZV9zdGFtcCwgZG91YmxldmVjICpyZXN1bHQpOgorKyAgICBjZGVmIGludCBfZmluZF96ZXJv cyhzZWxmLCBsb25nIGNvdW50LCBsb25nIHN0YXJ0LGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQgcmFu aywgY29uc3QgY2hhciogbWVzc2FnZV9zdGFtcCwgZG91YmxldmVjICpyZXN1bHQpOgorICAgICAg ICAgKDxjX0xmdW5jdGlvbl9EICo+c2VsZi50aGlzcHRyKS5maW5kX3plcm9zKGNvdW50LCBzdGFy dCwgbWF4X3JlZmluZSwgcmFuaywgbWVzc2FnZV9zdGFtcCwgcmVzdWx0KQorIAorICAgICAjIGRl YnVnIHRvb2xzCitAQCAtNzczLDcgKzc3Myw3IEBAIGNkZWYgY2xhc3MgTGZ1bmN0aW9uX0M6Cisg ICAgICAgICBzZWxmLl9yZXByICs9ICIgd2l0aCBjb21wbGV4IERpcmljaGxldCBjb2VmZmljaWVu dHMiCisgCisgICAgICMgb3ZlcnJpZGUKKy0gICAgY2RlZiB2b2lkIF9faW5pdF9mdW4oc2VsZiwg Y2hhciAqTkFNRSwgaW50IHdoYXRfdHlwZSwgZGlyaWNobGV0X2NvZWZmLCBsb25nIGxvbmcgUGVy aW9kLCBkb3VibGUgcSwgIGNfQ29tcGxleCB3LCBpbnQgQSwgZG91YmxlICpnLCBjX0NvbXBsZXgg KmwsIGludCBuX3BvbGVzLCBjX0NvbXBsZXggKnAsIGNfQ29tcGxleCAqcik6CisrICAgIGNkZWYg dm9pZCBfaW5pdF9mdW4oc2VsZiwgY2hhciAqTkFNRSwgaW50IHdoYXRfdHlwZSwgZGlyaWNobGV0 X2NvZWZmLCBsb25nIGxvbmcgUGVyaW9kLCBkb3VibGUgcSwgIGNfQ29tcGxleCB3LCBpbnQgQSwg ZG91YmxlICpnLCBjX0NvbXBsZXggKmwsIGludCBuX3BvbGVzLCBjX0NvbXBsZXggKnAsIGNfQ29t cGxleCAqcik6CisgICAgICAgICBjZGVmIGludCBpCisgICAgICAgICBjZGVmIGludCBOID0gbGVu KGRpcmljaGxldF9jb2VmZikKKyAgICAgICAgIGNkZWYgQ29tcGxleE51bWJlciB0bXBjCitAQCAt Nzg4LDI0ICs3ODgsMjQgQEAgY2RlZiBjbGFzcyBMZnVuY3Rpb25fQzoKKyAKKyAgICAgICAgIGRl bF9Db21wbGV4ZXMoY29lZmZzKQorIAorLSAgICBjZGVmIGlubGluZSBjX0NvbXBsZXggX192YWx1 ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJpdmF0aXZlKToKKysgICAgY2RlZiBpbmxpbmUgY19D b21wbGV4IF92YWx1ZShzZWxmLGNfQ29tcGxleCBzLGludCBkZXJpdmF0aXZlKToKKyAgICAgICAg IHJldHVybiAoPGNfTGZ1bmN0aW9uX0MgKj4oc2VsZi50aGlzcHRyKSkudmFsdWUocywgZGVyaXZh dGl2ZSwgInB1cmUiKQorIAorIAorLSAgICBjZGVmIGlubGluZSBjX0NvbXBsZXggX19oYXJkeV96 X2Z1bmN0aW9uKHNlbGYsY19Db21wbGV4IHMpOgorKyAgICBjZGVmIGlubGluZSBjX0NvbXBsZXgg X2hhcmR5X3pfZnVuY3Rpb24oc2VsZixjX0NvbXBsZXggcyk6CisgICAgICAgICByZXR1cm4gKDxj X0xmdW5jdGlvbl9DICo+KHNlbGYudGhpc3B0cikpLnZhbHVlKHMsIDAsInJvdGF0ZWQgcHVyZSIp CisgCistICAgIGNkZWYgaW5saW5lIGludCBfX2NvbXB1dGVfcmFuayhzZWxmKToKKysgICAgY2Rl ZiBpbmxpbmUgaW50IF9jb21wdXRlX3Jhbmsoc2VsZik6CisgICAgICAgICByZXR1cm4gKDxjX0xm dW5jdGlvbl9DICo+KHNlbGYudGhpc3B0cikpLmNvbXB1dGVfcmFuaygpCisgCisgCistICAgIGNk ZWYgdm9pZCBfX2ZpbmRfemVyb3NfdihzZWxmLCBkb3VibGUgVDEsIGRvdWJsZSBUMiwgZG91Ymxl IHN0ZXBzaXplLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisrICAgIGNkZWYgdm9pZCBfZmluZF96ZXJv c192KHNlbGYsIGRvdWJsZSBUMSwgZG91YmxlIFQyLCBkb3VibGUgc3RlcHNpemUsIGRvdWJsZXZl YyAqcmVzdWx0KToKKyAgICAgICAgICg8Y19MZnVuY3Rpb25fQyAqPnNlbGYudGhpc3B0cikuZmlu ZF96ZXJvc192KFQxLFQyLHN0ZXBzaXplLHJlc3VsdFswXSkKKyAKKy0gICAgY2RlZiBkb3VibGUg X190eXBlZE4oc2VsZiwgZG91YmxlIFQpOgorKyAgICBjZGVmIGRvdWJsZSBfdHlwZWROKHNlbGYs IGRvdWJsZSBUKToKKyAgICAgICAgIHJldHVybiAoPGNfTGZ1bmN0aW9uX0MgKj5zZWxmLnRoaXNw dHIpLk4oVCkKKyAKKy0gICAgY2RlZiBpbnQgX19maW5kX3plcm9zKHNlbGYsIGxvbmcgY291bnQs IGxvbmcgc3RhcnQsIGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQgcmFuaywgY29uc3QgY2hhciogbWVz c2FnZV9zdGFtcCwgZG91YmxldmVjICpyZXN1bHQpOgorKyAgICBjZGVmIGludCBfZmluZF96ZXJv cyhzZWxmLCBsb25nIGNvdW50LCBsb25nIHN0YXJ0LCBkb3VibGUgbWF4X3JlZmluZSwgaW50IHJh bmssIGNvbnN0IGNoYXIqIG1lc3NhZ2Vfc3RhbXAsIGRvdWJsZXZlYyAqcmVzdWx0KToKKyAgICAg ICAgICg8Y19MZnVuY3Rpb25fQyAqPnNlbGYudGhpc3B0cikuZmluZF96ZXJvcyhjb3VudCwgc3Rh cnQsIG1heF9yZWZpbmUsIHJhbmssIG1lc3NhZ2Vfc3RhbXAsIHJlc3VsdCkKKyAKKyAgICAgIyBk ZWJ1ZyB0b29scworQEAgLTg3MywyNCArODczLDI0IEBAIGNkZWYgY2xhc3MgTGZ1bmN0aW9uX1pl dGEoTGZ1bmN0aW9uKToKKyAgICAgICAgIHNlbGYudGhpc3B0ciA9IG5ld19jX0xmdW5jdGlvbl9a ZXRhKCkKKyAgICAgICAgIHNlbGYuX3JlcHIgPSAiVGhlIFJpZW1hbm4gemV0YSBmdW5jdGlvbiIK KyAKKy0gICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9fdmFsdWUoc2VsZixjX0NvbXBsZXggcyxp bnQgZGVyaXZhdGl2ZSk6CisrICAgIGNkZWYgaW5saW5lIGNfQ29tcGxleCBfdmFsdWUoc2VsZixj X0NvbXBsZXggcyxpbnQgZGVyaXZhdGl2ZSk6CisgICAgICAgICByZXR1cm4gKDxjX0xmdW5jdGlv bl9aZXRhICo+KHNlbGYudGhpc3B0cikpLnZhbHVlKHMsIGRlcml2YXRpdmUsICJwdXJlIikKKyAK KyAKKy0gICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9faGFyZHlfel9mdW5jdGlvbihzZWxmLGNf Q29tcGxleCBzKToKKysgICAgY2RlZiBpbmxpbmUgY19Db21wbGV4IF9oYXJkeV96X2Z1bmN0aW9u KHNlbGYsY19Db21wbGV4IHMpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fWmV0YSAq PihzZWxmLnRoaXNwdHIpKS52YWx1ZShzLCAwLCAicm90YXRlZCBwdXJlIikKKyAKKy0gICAgY2Rl ZiBpbmxpbmUgaW50IF9fY29tcHV0ZV9yYW5rKHNlbGYpOgorKyAgICBjZGVmIGlubGluZSBpbnQg X2NvbXB1dGVfcmFuayhzZWxmKToKKyAgICAgICAgIHJldHVybiAoPGNfTGZ1bmN0aW9uX1pldGEg Kj4oc2VsZi50aGlzcHRyKSkuY29tcHV0ZV9yYW5rKCkKKyAKKyAKKy0gICAgY2RlZiB2b2lkIF9f ZmluZF96ZXJvc192KHNlbGYsIGRvdWJsZSBUMSwgZG91YmxlIFQyLCBkb3VibGUgc3RlcHNpemUs IGRvdWJsZXZlYyAqcmVzdWx0KToKKysgICAgY2RlZiB2b2lkIF9maW5kX3plcm9zX3Yoc2VsZiwg ZG91YmxlIFQxLCBkb3VibGUgVDIsIGRvdWJsZSBzdGVwc2l6ZSwgZG91YmxldmVjICpyZXN1bHQp OgorICAgICAgICAgKDxjX0xmdW5jdGlvbl9aZXRhICo+c2VsZi50aGlzcHRyKS5maW5kX3plcm9z X3YoVDEsVDIsc3RlcHNpemUscmVzdWx0WzBdKQorIAorLSAgICBjZGVmIGRvdWJsZSBfX3R5cGVk TihzZWxmLCBkb3VibGUgVCk6CisrICAgIGNkZWYgZG91YmxlIF90eXBlZE4oc2VsZiwgZG91Ymxl IFQpOgorICAgICAgICAgcmV0dXJuICg8Y19MZnVuY3Rpb25fWmV0YSAqPnNlbGYudGhpc3B0ciku TihUKQorIAorLSAgICBjZGVmIGludCBfX2ZpbmRfemVyb3Moc2VsZiwgbG9uZyBjb3VudCwgbG9u ZyBzdGFydCwgZG91YmxlIG1heF9yZWZpbmUsIGludCByYW5rLCBjb25zdCBjaGFyKiBtZXNzYWdl X3N0YW1wLCBkb3VibGV2ZWMgKnJlc3VsdCk6CisrICAgIGNkZWYgaW50IF9maW5kX3plcm9zKHNl bGYsIGxvbmcgY291bnQsIGxvbmcgc3RhcnQsIGRvdWJsZSBtYXhfcmVmaW5lLCBpbnQgcmFuaywg Y29uc3QgY2hhciogbWVzc2FnZV9zdGFtcCwgZG91YmxldmVjICpyZXN1bHQpOgorICAgICAgICAg KDxjX0xmdW5jdGlvbl9aZXRhICo+c2VsZi50aGlzcHRyKS5maW5kX3plcm9zKGNvdW50LCBzdGFy dCwgbWF4X3JlZmluZSwgcmFuaywgbWVzc2FnZV9zdGFtcCwgcmVzdWx0KQorIAorICAgICBkZWYg X19kZWFsbG9jX18oc2VsZik6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9w YWRpY3MvUG9seW5vbWlhbF9yYW0ucHhpIGIvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9wYWRpY3Mv UG9seW5vbWlhbF9yYW0ucHhpCitpbmRleCAxYWM1MWYxMjExZi4uZTA1ODRlY2I4YWQgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9Qb2x5bm9taWFsX3JhbS5weGkK KysrKyBiL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNzL1BvbHlub21pYWxfcmFtLnB4aQor QEAgLTU1LDE2ICs1NSwxNiBAQCBjZGVmIGlubGluZSBiaW50IGNyZWR1Y2UoY2VsZW1lbnQgb3V0 LCBjZWxlbWVudCBhLCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZQorICAgICAiIiIKKyAg ICAgY2RlZiBjZWxlbWVudCBhcmVkID0gYSAlIHByaW1lX3Bvdy5tb2R1bHVzCisgICAgIGlmIGFy ZWQgaXMgYSBhbmQgb3V0IGlzIG5vdCBhOgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0gYXJlZC5f X2NvZWZmc1s6XQorKyAgICAgICAgb3V0Ll9jb2VmZnMgPSBhcmVkLl9jb2VmZnNbOl0KKyAgICAg ZWxzZToKKy0gICAgICAgIG91dC5fX2NvZWZmcyA9IGFyZWQuX19jb2VmZnMKKysgICAgICAgIG91 dC5fY29lZmZzID0gYXJlZC5fY29lZmZzCisgICAgIGNkZWYgbG9uZyBjb2VmZl9wcmVjID0gcHJl YyAvIHByaW1lX3Bvdy5lICsgMQorICAgICBjZGVmIGxvbmcgYnJlYWtfcHQgPSBwcmVjICUgcHJp bWVfcG93LmUKKy0gICAgZm9yIGkgaW4gcmFuZ2UobGVuKG91dC5fX2NvZWZmcykpOgorKyAgICBm b3IgaSBpbiByYW5nZShsZW4ob3V0Ll9jb2VmZnMpKToKKyAgICAgICAgIGlmIGkgPT0gYnJlYWtf cHQ6CisgICAgICAgICAgICAgY29lZmZfcHJlYyAtPSAxCistICAgICAgICBvdXQuX19jb2VmZnNb aV0gPSBvdXQuX19jb2VmZnNbaV0uYWRkX2JpZ29oKGNvZWZmX3ByZWMpCistICAgIG91dC5fX25v cm1hbGl6ZSgpCisrICAgICAgICBvdXQuX2NvZWZmc1tpXSA9IG91dC5fY29lZmZzW2ldLmFkZF9i aWdvaChjb2VmZl9wcmVjKQorKyAgICBvdXQuX25vcm1hbGl6ZSgpCisgICAgIHJldHVybiBvdXQg PT0gMAorIAorIGNkZWYgaW5saW5lIGJpbnQgY3JlZHVjZV9zbWFsbChjZWxlbWVudCBvdXQsIGNl bGVtZW50IGEsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhjZXB0IC0xOgor QEAgLTExNiw3ICsxMTYsNyBAQCBjZGVmIGlubGluZSBsb25nIGN2YWx1YXRpb24oY2VsZW1lbnQg YSwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBleGNlcAorICAgICBoaWdoZXIu CisgCisgICAgICIiIgorLSAgICBDID0gYS5fX2NvZWZmcworKyAgICBDID0gYS5fY29lZmZzCisg ICAgIGlmIG5vdCBDOgorICAgICAgICAgcmV0dXJuIHByZWMKKyAgICAgY2RlZiBsb25nIHJldCA9 IG1heG9yZHAKK0BAIC0xNjEsNyArMTYxLDcgQEAgY2RlZiBpbmxpbmUgaW50IGNzaGlmdChjZWxl bWVudCBzaGlmdGVkLCBjZWxlbWVudCByZW0sIGNlbGVtZW50IGEsIGxvbmcgbiwgbG9uZworICAg ICAgICAgdiA9IGN2YWx1YXRpb24oYSwgcHJlYywgcHJpbWVfcG93KQorICAgICAgICAgbm90cnVu YyA9ICh2ID49IC1uKQorICAgICBpZiBub3RydW5jOgorLSAgICAgICAgcmVtLl9fY29lZmZzID0g W10KKysgICAgICAgIHJlbS5fY29lZmZzID0gW10KKyAgICAgICAgIHJldHVybiBjc2hpZnRfbm90 cnVuYyhzaGlmdGVkLCBhLCBuLCBwcmVjLCBwcmltZV9wb3csIHJlZHVjZV9hZnRlcndhcmQpCisg ICAgIGlmIHYgPiAwOgorICAgICAgICAgYiA9IHByaW1lX3Bvdy5wb2x5X3JpbmcoMCkKK0BAIC0x ODUsNyArMTg1LDcgQEAgY2RlZiBpbmxpbmUgaW50IGNzaGlmdChjZWxlbWVudCBzaGlmdGVkLCBj ZWxlbWVudCByZW0sIGNlbGVtZW50IGEsIGxvbmcgbiwgbG9uZworICAgICBpZiByZWR1Y2VfYWZ0 ZXJ3YXJkOgorICAgICAgICAgY3JlZHVjZShzaGlmdGVkLCBhLCBwcmVjLCBwcmltZV9wb3cpCisg ICAgIGVsc2U6CistICAgICAgICBzaGlmdGVkLl9fY29lZmZzID0gYS5fX2NvZWZmc1s6XQorKyAg ICAgICAgc2hpZnRlZC5fY29lZmZzID0gYS5fY29lZmZzWzpdCisgCisgY2RlZiBpbmxpbmUgaW50 IGNzaGlmdF9ub3RydW5jKGNlbGVtZW50IG91dCwgY2VsZW1lbnQgYSwgbG9uZyBuLCBsb25nIHBy ZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3csIGJpbnQgcmVkdWNlX2FmdGVyd2FyZCkgZXhjZXB0 IC0xOgorICAgICByIiIiCitAQCAtMjM2LDcgKzIzNiw3IEBAIGNkZWYgaW5saW5lIGludCBjc2hp ZnRfbm90cnVuYyhjZWxlbWVudCBvdXQsIGNlbGVtZW50IGEsIGxvbmcgbiwgbG9uZyBwcmVjLCBQ b3dDCisgICAgIGlmIHJlZHVjZV9hZnRlcndhcmQ6CisgICAgICAgICBjcmVkdWNlKG91dCwgYSwg cHJlYywgcHJpbWVfcG93KQorICAgICBlbHNlOgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0gYS5f X2NvZWZmc1s6XQorKyAgICAgICAgb3V0Ll9jb2VmZnMgPSBhLl9jb2VmZnNbOl0KKyAKKyBjZGVm IGlubGluZSBpbnQgY2ludmVydChjZWxlbWVudCBvdXQsIGNlbGVtZW50IGEsIGxvbmcgcHJlYywg UG93Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhjZXB0IC0xOgorICAgICByIiIiCitAQCAtMjUzLDcg KzI1Myw3IEBAIGNkZWYgaW5saW5lIGludCBjaW52ZXJ0KGNlbGVtZW50IG91dCwgY2VsZW1lbnQg YSwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJpbWVfCisgICAgIC0gYGBwcmltZV9wb3dgYCAt LSB0aGUgYGBQb3dDb21wdXRlcmBgIGZvciB0aGUgcmluZworIAorICAgICAiIiIKKy0gICAgb3V0 Ll9fY29lZmZzID0gcHJpbWVfcG93LmludmVydChhLCBwcmVjKS5fX2NvZWZmcworKyAgICBvdXQu X2NvZWZmcyA9IHByaW1lX3Bvdy5pbnZlcnQoYSwgcHJlYykuX2NvZWZmcworICAgICBjcmVkdWNl KG91dCwgb3V0LCBwcmVjLCBwcmltZV9wb3cpCisgCisgY2RlZiBpbmxpbmUgaW50IGNkaXZ1bml0 KGNlbGVtZW50IG91dCwgY2VsZW1lbnQgYSwgY2VsZW1lbnQgYiwgbG9uZyBwcmVjLCBQb3dDb21w dXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLTE6CitAQCAtMzM1LDcgKzMzNSw3IEBAIGNkZWYgaW5s aW5lIGNleHBhbnNpb25fbmV4dChjZWxlbWVudCB2YWx1ZSwgZXhwYW5zaW9uX21vZGUgbW9kZSwg bG9uZyBjdXJwb3dlciwKKyAgICAgIyB0aGUgZm9sbG93aW5nIGlzIHNwZWNpZmljIHRvIHRoZSBy YW1pZmllZCBvdmVyIHVucmFtaWZpZWQgY2FzZS4KKyAgICAgbW9kcF9yZXAsIHRlcm0gPSB2YWx1 ZVswXS5fbW9kcF9yZXAobW9kZSA9PSBzbWFsbGVzdF9tb2RlKQorICAgICBpZiB0ZXJtOgorLSAg ICAgICAgdmFsdWUuX19jb2VmZnNbMF0gLT0gbW9kcF9yZXAKKysgICAgICAgIHZhbHVlLl9jb2Vm ZnNbMF0gLT0gbW9kcF9yZXAKKyAgICAgY3NoaWZ0X25vdHJ1bmModmFsdWUsIHZhbHVlLCAtMSwg Y3VycG93ZXIsIHByaW1lX3BvdywgRmFsc2UpCisgICAgIHJldHVybiB0ZXJtCisgCitAQCAtMzU0 LDEwICszNTQsMTAgQEAgY2RlZiBpbmxpbmUgY2V4cGFuc2lvbl9nZXRpdGVtKGNlbGVtZW50IHZh bHVlLCBsb25nIG0sIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpOgorICAgICB3aGlsZSBtID49IDA6 CisgICAgICAgICBtb2RwX3JlcCwgdGVybSA9IHZhbHVlWzBdLl9tb2RwX3JlcCgpCisgICAgICAg ICBpZiBtOgorLSAgICAgICAgICAgIGlmIGxlbih2YWx1ZS5fX2NvZWZmcyk6CistICAgICAgICAg ICAgICAgIHZhbHVlLl9fY29lZmZzWzBdIC09IG1vZHBfcmVwCisrICAgICAgICAgICAgaWYgbGVu KHZhbHVlLl9jb2VmZnMpOgorKyAgICAgICAgICAgICAgICB2YWx1ZS5fY29lZmZzWzBdIC09IG1v ZHBfcmVwCisgICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAgICAgdmFsdWUuX19jb2Vm ZnMuYXBwZW5kKC1tb2RwX3JlcCkKKysgICAgICAgICAgICAgICAgdmFsdWUuX2NvZWZmcy5hcHBl bmQoLW1vZHBfcmVwKQorICAgICAgICAgICAgIGNzaGlmdF9ub3RydW5jKHZhbHVlLCB2YWx1ZSwg LTEsIDEsIHByaW1lX3BvdywgRmFsc2UpCisgICAgICAgICBtIC09IDEKKyAgICAgcmV0dXJuIHRl cm0KK0BAIC0zNzksOSArMzc5LDkgQEAgY2RlZiBpbnQgY3RlaWNobXVsbGVyKGNlbGVtZW50IG91 dCwgY2VsZW1lbnQgdmFsdWUsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW0KKyAKKyAgICAg IiIiCisgICAgIGlmIHZhbHVlWzBdLnZhbHVhdGlvbigpID4gMDoKKy0gICAgICAgIG91dC5fX2Nv ZWZmcyA9IFtdCisrICAgICAgICBvdXQuX2NvZWZmcyA9IFtdCisgICAgIGVsc2U6CistICAgICAg ICBvdXQuX19jb2VmZnMgPSBbdmFsdWVbMF0ucGFyZW50KCkudGVpY2htdWxsZXIodmFsdWVbMF0p XQorKyAgICAgICAgb3V0Ll9jb2VmZnMgPSBbdmFsdWVbMF0ucGFyZW50KCkudGVpY2htdWxsZXIo dmFsdWVbMF0pXQorIAorIGNkZWYgbGlzdCBjY29lZmZpY2llbnRzKGNlbGVtZW50IHgsIGxvbmcg dmFsc2hpZnQsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdyk6CisgICAgICIiIgor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNzL1BvbHlub21pYWxfc2hh cmVkLnB4aSBiL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNzL1BvbHlub21pYWxfc2hhcmVk LnB4aQoraW5kZXggNDk1ZGM2YjA4NDguLjM2N2JiYzJmMzNkIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbGlicy9saW5rYWdlcy9wYWRpY3MvUG9seW5vbWlhbF9zaGFyZWQucHhpCisrKysgYi9zcmMv c2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9Qb2x5bm9taWFsX3NoYXJlZC5weGkKK0BAIC0xMDYs NyArMTA2LDcgQEAgY2RlZiBpbmxpbmUgaW50IGNjbXAoY2VsZW1lbnQgYSwgY2VsZW1lbnQgYiwg bG9uZyBwcmVjLCBiaW50IHJlZHVjZV9hLCBiaW50IHJlZHUKKyAgICAgaWYgbm90IChyZWR1Y2Vf YSBvciByZWR1Y2VfYik6CisgICAgICAgICByZXR1cm4gMCBpZiBhID09IGIgZWxzZSAxCisgICAg IGNzdWIocHJpbWVfcG93LnRtcF9jY21wX2EsIGEsIGIsIHByZWMsIHByaW1lX3BvdykKKy0gICAg Y29lZmZzID0gcHJpbWVfcG93LnRtcF9jY21wX2EuX19jb2VmZnMKKysgICAgY29lZmZzID0gcHJp bWVfcG93LnRtcF9jY21wX2EuX2NvZWZmcworICAgICBjZGVmIGxvbmcgaSwgY29lZmZfcHJlYywg YnJlYWtfcHQKKyAgICAgaWYgcHJpbWVfcG93LmUgPT0gMToKKyAgICAgICAgIGZvciBpIGluIHJh bmdlKHByaW1lX3Bvdy50bXBfY2NtcF9hLmRlZ3JlZSgpKzEpOgorQEAgLTE4Niw5ICsxODYsOSBA QCBjZGVmIGlubGluZSBpbnQgY25lZyhjZWxlbWVudCBvdXQsIGNlbGVtZW50IGEsIGxvbmcgcHJl YywgUG93Q29tcHV0ZXJfIHByaW1lX3BvdworICAgICAiIiIKKyAgICAgY2RlZiBjZWxlbWVudCBt YSA9IC1hCisgICAgIGlmIG1hIGlzIGE6CistICAgICAgICBvdXQuX19jb2VmZnMgPSBtYS5fX2Nv ZWZmc1s6XQorKyAgICAgICAgb3V0Ll9jb2VmZnMgPSBtYS5fY29lZmZzWzpdCisgICAgIGVsc2U6 CistICAgICAgICBvdXQuX19jb2VmZnMgPSBtYS5fX2NvZWZmcworKyAgICAgICAgb3V0Ll9jb2Vm ZnMgPSBtYS5fY29lZmZzCisgCisgY2RlZiBpbmxpbmUgaW50IGNhZGQoY2VsZW1lbnQgb3V0LCBj ZWxlbWVudCBhLCBjZWxlbWVudCBiLCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cp IGV4Y2VwdCAtMToKKyAgICAgciIiIgorQEAgLTIxMSw5ICsyMTEsOSBAQCBjZGVmIGlubGluZSBp bnQgY2FkZChjZWxlbWVudCBvdXQsIGNlbGVtZW50IGEsIGNlbGVtZW50IGIsIGxvbmcgcHJlYywg UG93Q29tcHV0ZQorICAgICAiIiIKKyAgICAgY2RlZiBjZWxlbWVudCBzbSA9IGEgKyBiCisgICAg IGlmIHNtIGlzIGEgb3Igc20gaXMgYjoKKy0gICAgICAgIG91dC5fX2NvZWZmcyA9IHNtLl9fY29l ZmZzWzpdCisrICAgICAgICBvdXQuX2NvZWZmcyA9IHNtLl9jb2VmZnNbOl0KKyAgICAgZWxzZToK Ky0gICAgICAgIG91dC5fX2NvZWZmcyA9IHNtLl9fY29lZmZzCisrICAgICAgICBvdXQuX2NvZWZm cyA9IHNtLl9jb2VmZnMKKyAKKyBjZGVmIGlubGluZSBpbnQgY3N1YihjZWxlbWVudCBvdXQsIGNl bGVtZW50IGEsIGNlbGVtZW50IGIsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdykg ZXhjZXB0IC0xOgorICAgICByIiIiCitAQCAtMjM2LDkgKzIzNiw5IEBAIGNkZWYgaW5saW5lIGlu dCBjc3ViKGNlbGVtZW50IG91dCwgY2VsZW1lbnQgYSwgY2VsZW1lbnQgYiwgbG9uZyBwcmVjLCBQ b3dDb21wdXRlCisgICAgICIiIgorICAgICBjZGVmIGNlbGVtZW50IGRmID0gYSAtIGIKKyAgICAg aWYgZGYgaXMgYSBvciBkZiBpcyBiOgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0gZGYuX19jb2Vm ZnNbOl0KKysgICAgICAgIG91dC5fY29lZmZzID0gZGYuX2NvZWZmc1s6XQorICAgICBlbHNlOgor LSAgICAgICAgb3V0Ll9fY29lZmZzID0gZGYuX19jb2VmZnMKKysgICAgICAgIG91dC5fY29lZmZz ID0gZGYuX2NvZWZmcworIAorIGNkZWYgaW5saW5lIGludCBjbXVsKGNlbGVtZW50IG91dCwgY2Vs ZW1lbnQgYSwgY2VsZW1lbnQgYiwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBl eGNlcHQgLTE6CisgICAgIHIiIiIKK0BAIC0yNjEsOSArMjYxLDkgQEAgY2RlZiBpbmxpbmUgaW50 IGNtdWwoY2VsZW1lbnQgb3V0LCBjZWxlbWVudCBhLCBjZWxlbWVudCBiLCBsb25nIHByZWMsIFBv d0NvbXB1dGUKKyAgICAgIiIiCisgICAgIGNkZWYgY2VsZW1lbnQgcGQgPSBhKmIKKyAgICAgaWYg cGQgaXMgYSBvciBwZCBpcyBiOgorLSAgICAgICAgb3V0Ll9fY29lZmZzID0gcGQuX19jb2VmZnNb Ol0KKysgICAgICAgIG91dC5fY29lZmZzID0gcGQuX2NvZWZmc1s6XQorICAgICBlbHNlOgorLSAg ICAgICAgb3V0Ll9fY29lZmZzID0gcGQuX19jb2VmZnMKKysgICAgICAgIG91dC5fY29lZmZzID0g cGQuX2NvZWZmcworIAorIGNkZWYgaW5saW5lIGludCBjc2V0b25lKGNlbGVtZW50IG91dCwgUG93 Q29tcHV0ZXJfIHByaW1lX3BvdykgZXhjZXB0IC0xOgorICAgICByIiIiCitAQCAtMjc2LDcgKzI3 Niw3IEBAIGNkZWYgaW5saW5lIGludCBjc2V0b25lKGNlbGVtZW50IG91dCwgUG93Q29tcHV0ZXJf IHByaW1lX3BvdykgZXhjZXB0IC0xOgorICAgICAtIGBgcHJpbWVfcG93YGAgLS0gdGhlIGBgUG93 Q29tcHV0ZXJgYCBmb3IgdGhlIHJpbmcKKyAKKyAgICAgIiIiCistICAgIG91dC5fX2NvZWZmcyA9 IFtwcmltZV9wb3cuYmFzZV9yaW5nKDEpXQorKyAgICBvdXQuX2NvZWZmcyA9IFtwcmltZV9wb3cu YmFzZV9yaW5nKDEpXQorIAorIGNkZWYgaW5saW5lIGludCBjc2V0emVybyhjZWxlbWVudCBvdXQs IFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAtMToKKyAgICAgciIiIgorQEAgLTI4OSw3 ICsyODksNyBAQCBjZGVmIGlubGluZSBpbnQgY3NldHplcm8oY2VsZW1lbnQgb3V0LCBQb3dDb21w dXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLTE6CisgICAgIC0gYGBwcmltZV9wb3dgYCAtLSB0aGUg YGBQb3dDb21wdXRlcmBgIGZvciB0aGUgcmluZworIAorICAgICAiIiIKKy0gICAgb3V0Ll9fY29l ZmZzID0gW10KKysgICAgb3V0Ll9jb2VmZnMgPSBbXQorIAorIGNkZWYgaW5saW5lIGJpbnQgY2lz b25lKGNlbGVtZW50IGEsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAtMToKKyAgICAg ciIiIgorQEAgLTMzMCw3ICszMzAsNyBAQCBjZGVmIGlubGluZSBpbnQgY2NvcHkoY2VsZW1lbnQg b3V0LCBjZWxlbWVudCBhLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBleGNlcHQgLQorICAgICAt IGBgcHJpbWVfcG93YGAgLS0gdGhlIGBgUG93Q29tcHV0ZXJgYCBmb3IgdGhlIHJpbmcKKyAKKyAg ICAgIiIiCistICAgIG91dC5fX2NvZWZmcyA9IGEuX19jb2VmZnNbOl0KKysgICAgb3V0Ll9jb2Vm ZnMgPSBhLl9jb2VmZnNbOl0KKyAKKyBjZGVmIGlubGluZSBjcGlja2xlKGNlbGVtZW50IGEsIFBv d0NvbXB1dGVyXyBwcmltZV9wb3cpOgorICAgICByIiIiCitAQCAtMzQzLDcgKzM0Myw3IEBAIGNk ZWYgaW5saW5lIGNwaWNrbGUoY2VsZW1lbnQgYSwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdyk6Cisg ICAgIC0gYGBwcmltZV9wb3dgYCB0aGUgYGBQb3dDb21wdXRlcmBgIGZvciB0aGUgcmluZworIAor ICAgICAiIiIKKy0gICAgcmV0dXJuIGEuX19jb2VmZnMKKysgICAgcmV0dXJuIGEuX2NvZWZmcwor IAorIGNkZWYgaW5saW5lIGludCBjdW5waWNrbGUoY2VsZW1lbnQgb3V0LCB4LCBQb3dDb21wdXRl cl8gcHJpbWVfcG93KSBleGNlcHQgLTE6CisgICAgIHIiIiIKK0BAIC0zNTgsNyArMzU4LDcgQEAg Y2RlZiBpbmxpbmUgaW50IGN1bnBpY2tsZShjZWxlbWVudCBvdXQsIHgsIFBvd0NvbXB1dGVyXyBw cmltZV9wb3cpIGV4Y2VwdCAtMToKKyAgICAgLSBgYHByaW1lX3Bvd2BgIC0tIHRoZSBgYFBvd0Nv bXB1dGVyYGAgZm9yIHRoZSByaW5nCisgCisgICAgICIiIgorLSAgICBvdXQuX19jb2VmZnMgPSB4 CisrICAgIG91dC5fY29lZmZzID0geAorIAorIGNkZWYgaW5saW5lIGxvbmcgY2hhc2goY2VsZW1l bnQgYSwgbG9uZyBvcmRwLCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2Vw dCAtMToKKyAgICAgciIiIgorQEAgLTQxMyw5ICs0MTMsOSBAQCBjZGVmIGludCBjY29udihjZWxl bWVudCBvdXQsIHgsIGxvbmcgcHJlYywgbG9uZyB2YWxzaGlmdCwgUG93Q29tcHV0ZXJfIHByaW1l X3BvdworICAgICBlbHNlOgorICAgICAgICAgeHggPSBwcmltZV9wb3cucG9seV9yaW5nKHgpCisg ICAgIGlmIHh4IGlzIHg6CistICAgICAgICBvdXQuX19jb2VmZnMgPSB4eC5fX2NvZWZmc1s6XQor KyAgICAgICAgb3V0Ll9jb2VmZnMgPSB4eC5fY29lZmZzWzpdCisgICAgIGVsc2U6CistICAgICAg ICBvdXQuX19jb2VmZnMgPSB4eC5fX2NvZWZmcworKyAgICAgICAgb3V0Ll9jb2VmZnMgPSB4eC5f Y29lZmZzCisgICAgIGlmIHZhbHNoaWZ0ID4gMDoKKyAgICAgICAgIGNzaGlmdF9ub3RydW5jKG91 dCwgb3V0LCAtdmFsc2hpZnQsIHByZWMsIHByaW1lX3BvdywgVHJ1ZSkKKyAgICAgZWxpZiB2YWxz aGlmdCA9PSAwOgorQEAgLTQ1OCwxMiArNDU4LDEyIEBAIGNkZWYgaW5saW5lIGxvbmcgY2NvbnZf bXB6X3QoY2VsZW1lbnQgb3V0LCBtcHpfdCB4LCBsb25nIHByZWMsIGJpbnQgYWJzb2x1dGUsIFBv CisgICAgIG1wel9zZXQobi52YWx1ZSwgeCkKKyAKKyAgICAgaWYgbjoKKy0gICAgICAgIG91dC5f X2NvZWZmcyA9IFtwcmltZV9wb3cuYmFzZV9yaW5nKG4pXQorKyAgICAgICAgb3V0Ll9jb2VmZnMg PSBbcHJpbWVfcG93LmJhc2VfcmluZyhuKV0KKyAgICAgICAgIGlmIG5vdCBhYnNvbHV0ZToKKyAg ICAgICAgICAgICB2YWx1YXRpb24gPSBjcmVtb3ZlKG91dCwgb3V0LCBwcmVjLCBwcmltZV9wb3cp CisgICAgICAgICBjcmVkdWNlKG91dCwgb3V0LCBwcmVjLCBwcmltZV9wb3cpCisgICAgIGVsc2U6 CistICAgICAgICBvdXQuX19jb2VmZnMgPSBbXQorKyAgICAgICAgb3V0Ll9jb2VmZnMgPSBbXQor IAorICAgICByZXR1cm4gdmFsdWF0aW9uCisgCitAQCAtNDkyLDEyICs0OTIsMTIgQEAgY2RlZiBp bmxpbmUgaW50IGNjb252X21wel90X291dChtcHpfdCBvdXQsIGNlbGVtZW50IHgsIGxvbmcgdmFs c2hpZnQsIGxvbmcgcHJlYywKKyAgICAgZWxzZToKKyAgICAgICAgIHByaW1lX3Bvdy5wb3doZWxw ZXJfY2NvbnZfb3V0ID0geAorIAorLSAgICBpZiBsZW4ocHJpbWVfcG93LnBvd2hlbHBlcl9jY29u dl9vdXQuX19jb2VmZnMpID09IDA6CisrICAgIGlmIGxlbihwcmltZV9wb3cucG93aGVscGVyX2Nj b252X291dC5fY29lZmZzKSA9PSAwOgorICAgICAgICAgbXB6X3NldF91aShvdXQsIDApCistICAg IGVsaWYgbGVuKHByaW1lX3Bvdy5wb3doZWxwZXJfY2NvbnZfb3V0Ll9fY29lZmZzKSA9PSAxOgor KyAgICBlbGlmIGxlbihwcmltZV9wb3cucG93aGVscGVyX2Njb252X291dC5fY29lZmZzKSA9PSAx OgorICAgICAgICAgIyByZWN1cnNpdmVseSBsZXQgdGhlIHVuZGVybHlpbmcgcG9seW5vbWlhbCBj b252ZXJ0IHRoZSBjb25zdGFudAorICAgICAgICAgIyBjb2VmZmljaWVudCB0byBhbiBpbnRlZ2Vy IChpZiBwb3NzaWJsZSkKKy0gICAgICAgIG4gPSBaWihwcmltZV9wb3cucG93aGVscGVyX2Njb252 X291dC5fX2NvZWZmc1swXSkKKysgICAgICAgIG4gPSBaWihwcmltZV9wb3cucG93aGVscGVyX2Nj b252X291dC5fY29lZmZzWzBdKQorICAgICAgICAgbXB6X3NldChvdXQsIG4udmFsdWUpCisgICAg IGVsc2U6CisgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjYW5ub3QgY29udmVydCB0byBpbnRl Z2VyIikKK0BAIC01MzIsNyArNTMyLDcgQEAgY2RlZiBpbmxpbmUgbG9uZyBjY29udl9tcHFfdChj ZWxlbWVudCBvdXQsIG1wcV90IHgsIGxvbmcgcHJlYywgYmludCBhYnNvbHV0ZSwgUG8KKyAgICAg IiIiCisgICAgIGNkZWYgUmF0aW9uYWwgciA9IFBZX05FVyhSYXRpb25hbCkKKyAgICAgbXBxX3Nl dChyLnZhbHVlLCB4KQorLSAgICBvdXQuX19jb2VmZnMgPSBbcHJpbWVfcG93LmJhc2VfcmluZyhy KV0KKysgICAgb3V0Ll9jb2VmZnMgPSBbcHJpbWVfcG93LmJhc2VfcmluZyhyKV0KKyAKKyAgICAg aWYgbm90IGFic29sdXRlOgorICAgICAgICAgcmV0dXJuIGNyZW1vdmUob3V0LCBvdXQsIHByZWMs IHByaW1lX3BvdykKK0BAIC01NjUsMTIgKzU2NSwxMiBAQCBjZGVmIGlubGluZSBpbnQgY2NvbnZf bXBxX3Rfb3V0KG1wcV90IG91dCwgY2VsZW1lbnQgeCwgbG9uZyB2YWxzaGlmdCwgbG9uZyBwcmVj LAorICAgICBlbHNlOgorICAgICAgICAgcHJpbWVfcG93LnBvd2hlbHBlcl9jY29udl9vdXQgPSB4 CisgCistICAgIGlmIGxlbihwcmltZV9wb3cucG93aGVscGVyX2Njb252X291dC5fX2NvZWZmcykg PT0gMDoKKysgICAgaWYgbGVuKHByaW1lX3Bvdy5wb3doZWxwZXJfY2NvbnZfb3V0Ll9jb2VmZnMp ID09IDA6CisgICAgICAgICBtcHFfc2V0X3VpKG91dCwgMCwgMSkKKy0gICAgZWxpZiBsZW4ocHJp bWVfcG93LnBvd2hlbHBlcl9jY29udl9vdXQuX19jb2VmZnMpID09IDE6CisrICAgIGVsaWYgbGVu KHByaW1lX3Bvdy5wb3doZWxwZXJfY2NvbnZfb3V0Ll9jb2VmZnMpID09IDE6CisgICAgICAgICAj IHJlY3Vyc2l2ZWx5IGxldCB0aGUgdW5kZXJseWluZyBwb2x5bm9taWFsIGNvbnZlcnQgdGhlIGNv bnN0YW50CisgICAgICAgICAjIGNvZWZmaWNpZW50IHRvIGEgcmF0aW9uYWwgKGlmIHBvc3NpYmxl KQorLSAgICAgICAgYyA9IFFRKHByaW1lX3Bvdy5wb3doZWxwZXJfY2NvbnZfb3V0Ll9fY29lZmZz WzBdKQorKyAgICAgICAgYyA9IFFRKHByaW1lX3Bvdy5wb3doZWxwZXJfY2NvbnZfb3V0Ll9jb2Vm ZnNbMF0pCisgICAgICAgICBtcHFfc2V0KG91dCwgYy52YWx1ZSkKKyAgICAgZWxzZToKKyAgICAg ICAgIHJhaXNlIFZhbHVlRXJyb3IoImNhbm5vdCBjb252ZXJ0IHRvIHJhdGlvbmFsIikKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfbHp6X3AucHl4IGIvc3JjL3NhZ2UvbGlicy9u dGwvbnRsX2x6el9wLnB5eAoraW5kZXggMTYxZDA3ODJiYzIuLmFmODZiOWJjZjY5IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX2x6el9wLnB5eAorKysrIGIvc3JjL3NhZ2UvbGli cy9udGwvbnRsX2x6el9wLnB5eAorQEAgLTg5LDE5ICs4OSwxOSBAQCBjZGVmIGNsYXNzIG50bF96 el9wKCk6CisgICAgICAgICAjc2VsZi5jLnJlc3RvcmVfYygpICAgIyMgVGhpcyB3YXMgZG9uZSBp biBfX25ld19fCisgCisgICAgICAgICBpZiBpc2luc3RhbmNlKGEsIEludGVnZXJNb2RfaW50KToK Ky0gICAgICAgICAgICBpZiAoc2VsZi5jLnAgPT0gKDxJbnRlZ2VyTW9kX2ludD5hKS5fX21vZHVs dXMuaW50MzIpOiAjIyB0aGlzIGlzIHNsb3cKKysgICAgICAgICAgICBpZiAoc2VsZi5jLnAgPT0g KDxJbnRlZ2VyTW9kX2ludD5hKS5fbW9kdWx1cy5pbnQzMik6ICMjIHRoaXMgaXMgc2xvdworICAg ICAgICAgICAgICAgICBzZWxmLnggPSAoPEludGVnZXJNb2RfaW50PmEpLml2YWx1ZQorICAgICAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk1pc21hdGNo ZWQgbW9kdWx1cyBmb3IgY29udmVydGluZyB0byB6el9wLiIpCisgCisgICAgICAgICBlbGlmIGlz aW5zdGFuY2UoYSwgSW50ZWdlck1vZF9pbnQ2NCk6CistICAgICAgICAgICAgaWYgKHNlbGYuYy5w ID09ICg8SW50ZWdlck1vZF9pbnQ2ND5hKS5fX21vZHVsdXMuaW50NjQpOiAjIyB0aGlzIGlzIHNs b3cKKysgICAgICAgICAgICBpZiAoc2VsZi5jLnAgPT0gKDxJbnRlZ2VyTW9kX2ludDY0PmEpLl9t b2R1bHVzLmludDY0KTogIyMgdGhpcyBpcyBzbG93CisgICAgICAgICAgICAgICAgIHNlbGYueCA9 ICg8SW50ZWdlck1vZF9pbnQ2ND5hKS5pdmFsdWUKKyAgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNaXNtYXRjaGVkIG1vZHVsdXMgZm9yIGNvbnZl cnRpbmcgdG8genpfcC4iKQorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGEsIEludGVnZXJN b2RfZ21wKToKKy0gICAgICAgICAgICBpZiAocF9zYWdlID09ICg8SW50ZWdlck1vZF9nbXA+YSku X19tb2R1bHVzLnNhZ2VJbnRlZ2VyKTogIyMgdGhpcyBpcyBzbG93CisrICAgICAgICAgICAgaWYg KHBfc2FnZSA9PSAoPEludGVnZXJNb2RfZ21wPmEpLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyKTogIyMg dGhpcyBpcyBzbG93CisgICAgICAgICAgICAgICAgIHNlbGYueCA9IG1wel9nZXRfc2koKDxJbnRl Z2VyTW9kX2dtcD5hKS52YWx1ZSkKKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg ICByYWlzZSBWYWx1ZUVycm9yKCJNaXNtYXRjaGVkIG1vZHVsdXMgZm9yIGNvbnZlcnRpbmcgdG8g enpfcC4iKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcFgucHl4IGIv c3JjL3NhZ2UvbGlicy9udGwvbnRsX2x6el9wWC5weXgKK2luZGV4IDI0YjUwM2E5YTYyLi43ZDE5 Y2M1NWUzNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcFgucHl4Cisr KysgYi9zcmMvc2FnZS9saWJzL250bC9udGxfbHp6X3BYLnB5eAorQEAgLTEwOCwxNyArMTA4LDE3 IEBAIGNkZWYgY2xhc3MgbnRsX3p6X3BYKCk6CisgICAgICAgICAgICAgYSA9IGxzW2ldCisgCisg ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShhLCBJbnRlZ2VyTW9kX2ludCk6CistICAgICAgICAg ICAgICAgIGlmIChzZWxmLmMucCA9PSAoPEludGVnZXJNb2RfaW50PmEpLl9fbW9kdWx1cy5pbnQz Mik6ICMjIHRoaXMgaXMgc2xvdworKyAgICAgICAgICAgICAgICBpZiAoc2VsZi5jLnAgPT0gKDxJ bnRlZ2VyTW9kX2ludD5hKS5fbW9kdWx1cy5pbnQzMik6ICMjIHRoaXMgaXMgc2xvdworICAgICAg ICAgICAgICAgICAgICAgenpfcFhfU2V0Q29lZmZfbG9uZyhzZWxmLngsIGksICg8SW50ZWdlck1v ZF9pbnQ+YSkuaXZhbHVlKQorICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTWlzbWF0Y2hlZCBtb2R1bHVzIGZvciBjb252ZXJ0aW5n IHRvIHp6X3BYLiIpCisgICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGEsIEludGVnZXJNb2Rf aW50NjQpOgorLSAgICAgICAgICAgICAgICBpZiAoc2VsZi5jLnAgPT0gKDxJbnRlZ2VyTW9kX2lu dDY0PmEpLl9fbW9kdWx1cy5pbnQ2NCk6ICMjIHRoaXMgaXMgc2xvdworKyAgICAgICAgICAgICAg ICBpZiAoc2VsZi5jLnAgPT0gKDxJbnRlZ2VyTW9kX2ludDY0PmEpLl9tb2R1bHVzLmludDY0KTog IyMgdGhpcyBpcyBzbG93CisgICAgICAgICAgICAgICAgICAgICB6el9wWF9TZXRDb2VmZl9sb25n KHNlbGYueCwgaSwgKDxJbnRlZ2VyTW9kX2ludDY0PmEpLml2YWx1ZSkKKyAgICAgICAgICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk1pc21hdGNo ZWQgbW9kdWx1cyBmb3IgY29udmVydGluZyB0byB6el9wWC4iKQorICAgICAgICAgICAgIGVsaWYg aXNpbnN0YW5jZShhLCBJbnRlZ2VyTW9kX2dtcCk6CistICAgICAgICAgICAgICAgIGlmIChwX3Nh Z2UgPT0gKDxJbnRlZ2VyTW9kX2dtcD5hKS5fX21vZHVsdXMuc2FnZUludGVnZXIpOiAjIyB0aGlz IGlzIHNsb3cKKysgICAgICAgICAgICAgICAgaWYgKHBfc2FnZSA9PSAoPEludGVnZXJNb2RfZ21w PmEpLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyKTogIyMgdGhpcyBpcyBzbG93CisgICAgICAgICAgICAg ICAgICAgICB6el9wWF9TZXRDb2VmZl9sb25nKHNlbGYueCwgaSwgbXB6X2dldF9zaSgoPEludGVn ZXJNb2RfZ21wPmEpLnZhbHVlKSkKKyAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk1pc21hdGNoZWQgbW9kdWx1cyBmb3IgY29udmVy dGluZyB0byB6el9wWC4iKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY29t cGxleF9iYWxsX2RlbnNlLnB5eCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY29tcGxleF9iYWxs X2RlbnNlLnB5eAoraW5kZXggOWUxNDA3OWM2ZDQuLjQ3Y2E0MTA3MGZhIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UucHl4CisrKysgYi9zcmMv c2FnZS9tYXRyaXgvbWF0cml4X2NvbXBsZXhfYmFsbF9kZW5zZS5weXgKK0BAIC02NjQsNyArNjY0 LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfY29tcGxleF9iYWxsX2RlbnNlKE1hdHJpeF9kZW5zZSk6 CisgICAgICAgICBQb2wgPSBwb2x5bm9taWFsX3JpbmdfY29uc3RydWN0b3IuX3NpbmdsZV92YXJp YXRlKHNlbGYuYmFzZV9yaW5nKCksIHZhcikKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21w bGV4X2FyYiByZXMgPSBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbCkKKyAgICAgICAgIHNpZ19v bigpCistICAgICAgICBhY2JfbWF0X2NoYXJwb2x5KHJlcy5fX3BvbHksIHNlbGYudmFsdWUsIHBy ZWMoc2VsZikpCisrICAgICAgICBhY2JfbWF0X2NoYXJwb2x5KHJlcy5fcG9seSwgc2VsZi52YWx1 ZSwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcwor IAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY3ljbG9fZGVuc2UucHl4IGIv c3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jeWNsb19kZW5zZS5weXgKK2luZGV4IDE1ZmY2Mzk0OTUx Li5mMWVkOWFmODQwMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY3ljbG9f ZGVuc2UucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2N5Y2xvX2RlbnNlLnB5eAor QEAgLTM5NiwxMSArMzk2LDExIEBAIGNkZWYgY2xhc3MgTWF0cml4X2N5Y2xvX2RlbnNlKE1hdHJp eF9kZW5zZSk6CisgICAgICAgICAgICAgIyBOb3cgc2V0IGstdGggZW50cnkgb2YgeCdzIG51bWVy YXRvciB0byB0bXAKKyAgICAgICAgICAgICBmbXB6X2dldF9tcHoodG1wLCBmdG1wKQorICAgICAg ICAgICAgIG1wel90b19aWigmY29lZmYsIHRtcCkKKy0gICAgICAgICAgICBaWlhfU2V0Q29lZmYo eC5fX251bWVyYXRvciwgaywgY29lZmYpCisrICAgICAgICAgICAgWlpYX1NldENvZWZmKHguX251 bWVyYXRvciwgaywgY29lZmYpCisgCisgICAgICAgICAjIFNldCB0aGUgZGVub21pbmF0b3Igb2Yg eCB0byBkZW5vbS4KKyAgICAgICAgIGZtcHpfZ2V0X21weih0bXAsIGRlbm9tKQorLSAgICAgICAg bXB6X3RvX1paKCZ4Ll9fZGVub21pbmF0b3IsIHRtcCkKKysgICAgICAgIG1wel90b19aWigmeC5f ZGVub21pbmF0b3IsIHRtcCkKKyAgICAgICAgIGZtcHpfY2xlYXIoZGVub20pCisgICAgICAgICBt cHpfY2xlYXIodG1wKQorICAgICAgICAgZm1wel9jbGVhcihmdG1wKQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL21hdHJpeC9tYXRyaXhfaW50ZWdlcl9kZW5zZS5weXggYi9zcmMvc2FnZS9tYXRyaXgv bWF0cml4X2ludGVnZXJfZGVuc2UucHl4CitpbmRleCA5YzUwOTEwNDk2Ny4uODA4ODM1MDU3N2Mg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfZGVuc2UucHl4Cisr KysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfZGVuc2UucHl4CitAQCAtMTM3MSwx MiArMTM3MSwxMiBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX2RlbnNlKE1hdHJpeF9kZW5z ZSk6CisgICAgICAgICBpZiBhbGdvcml0aG0gPT0gJ2ZsaW50JzoKKyAgICAgICAgICAgICBnID0g KDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+IFBvbHlub21pYWxSaW5nKFpaLCBuYW1l cz12YXIpLmdlbigpKS5fbmV3KCkKKyAgICAgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgICAg IGZtcHpfbWF0X2NoYXJwb2x5KGcuX19wb2x5LCBzZWxmLl9tYXRyaXgpCisrICAgICAgICAgICAg Zm1wel9tYXRfY2hhcnBvbHkoZy5fcG9seSwgc2VsZi5fbWF0cml4KQorICAgICAgICAgICAgIHNp Z19vZmYoKQorICAgICAgICAgZWxpZiBhbGdvcml0aG0gPT0gJ2xpbmJveCc6CisgICAgICAgICAg ICAgZyA9ICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PiBQb2x5bm9taWFsUmluZyha WiwgbmFtZXM9dmFyKS5nZW4oKSkuX25ldygpCisgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAg ICAgICAgICBsaW5ib3hfZm1wel9tYXRfY2hhcnBvbHkoZy5fX3BvbHksIHNlbGYuX21hdHJpeCkK KysgICAgICAgICAgICBsaW5ib3hfZm1wel9tYXRfY2hhcnBvbHkoZy5fcG9seSwgc2VsZi5fbWF0 cml4KQorICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgZWxpZiBhbGdvcml0aG0gPT0g J2dlbmVyaWMnOgorICAgICAgICAgICAgIGcgPSBNYXRyaXhfZGVuc2UuY2hhcnBvbHkoc2VsZiwg dmFyKQorQEAgLTE0NjAsNyArMTQ2MCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2ludGVnZXJfZGVu c2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIGlmIGFsZ29yaXRobSA9PSAnbGluYm94JzoKKyAg ICAgICAgICAgICBnID0gKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+IFBvbHlub21p YWxSaW5nKFpaLCBuYW1lcz12YXIpLmdlbigpKS5fbmV3KCkKKyAgICAgICAgICAgICBzaWdfb24o KQorLSAgICAgICAgICAgIGxpbmJveF9mbXB6X21hdF9taW5wb2x5KGcuX19wb2x5LCBzZWxmLl9t YXRyaXgpCisrICAgICAgICAgICAgbGluYm94X2ZtcHpfbWF0X21pbnBvbHkoZy5fcG9seSwgc2Vs Zi5fbWF0cml4KQorICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgZWxpZiBhbGdvcml0 aG0gPT0gJ2dlbmVyaWMnOgorICAgICAgICAgICAgIGcgPSBNYXRyaXhfZGVuc2UubWlucG9seShz ZWxmLCB2YXIpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX3Nw YXJzZS5weXggYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfc3BhcnNlLnB5eAoraW5k ZXggYTQxNjc3YzdiNmEuLjgzZDVlZTQyZmJlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4 L21hdHJpeF9pbnRlZ2VyX3NwYXJzZS5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhf aW50ZWdlcl9zcGFyc2UucHl4CitAQCAtODY5LDEwICs4NjksMTAgQEAgY2RlZiBjbGFzcyBNYXRy aXhfaW50ZWdlcl9zcGFyc2UoTWF0cml4X3NwYXJzZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAK KyAgICAgICAgIGNkZWYgc2l6ZV90IGkKKy0gICAgICAgIGZtcHpfcG9seV9maXRfbGVuZ3RoKGcu X19wb2x5LCBwLnNpemUoKSkKKysgICAgICAgIGZtcHpfcG9seV9maXRfbGVuZ3RoKGcuX3BvbHks IHAuc2l6ZSgpKQorICAgICAgICAgZm9yIGkgaW4gcmFuZ2UocC5zaXplKCkpOgorLSAgICAgICAg ICAgIGZtcHpfcG9seV9zZXRfY29lZmZfbXB6KGcuX19wb2x5LCBpLCBwWzBdW2ldLmdldF9tcHpf Y29uc3QoKSkKKy0gICAgICAgIF9mbXB6X3BvbHlfc2V0X2xlbmd0aChnLl9fcG9seSwgcC5zaXpl KCkpCisrICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9tcHooZy5fcG9seSwgaSwgcFsw XVtpXS5nZXRfbXB6X2NvbnN0KCkpCisrICAgICAgICBfZm1wel9wb2x5X3NldF9sZW5ndGgoZy5f cG9seSwgcC5zaXplKCkpCisgCisgICAgICAgICBkZWwgTQorICAgICAgICAgZGVsIHAKK0BAIC05 NjgsMTAgKzk2OCwxMCBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX3NwYXJzZShNYXRyaXhf c3BhcnNlKToKKyAgICAgICAgIHNpZ19vZmYoKQorIAorICAgICAgICAgY2RlZiBzaXplX3QgaQor LSAgICAgICAgZm1wel9wb2x5X2ZpdF9sZW5ndGgoZy5fX3BvbHksIHAuc2l6ZSgpKQorKyAgICAg ICAgZm1wel9wb2x5X2ZpdF9sZW5ndGgoZy5fcG9seSwgcC5zaXplKCkpCisgICAgICAgICBmb3Ig aSBpbiByYW5nZShwLnNpemUoKSk6CistICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9t cHooZy5fX3BvbHksIGksIHBbMF1baV0uZ2V0X21wel9jb25zdCgpKQorLSAgICAgICAgX2ZtcHpf cG9seV9zZXRfbGVuZ3RoKGcuX19wb2x5LCBwLnNpemUoKSkKKysgICAgICAgICAgICBmbXB6X3Bv bHlfc2V0X2NvZWZmX21weihnLl9wb2x5LCBpLCBwWzBdW2ldLmdldF9tcHpfY29uc3QoKSkKKysg ICAgICAgIF9mbXB6X3BvbHlfc2V0X2xlbmd0aChnLl9wb2x5LCBwLnNpemUoKSkKKyAKKyAgICAg ICAgIGRlbCBNCisgICAgICAgICBkZWwgcAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRz L2Jhc2lzX2V4Y2hhbmdlX21hdHJvaWQucHhkIGIvc3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfZXhj aGFuZ2VfbWF0cm9pZC5weGQKK2luZGV4IGFlYzNiYjU0YzQyLi4yOGNjN2FkODY4YyAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX2V4Y2hhbmdlX21hdHJvaWQucHhkCisrKysg Yi9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19leGNoYW5nZV9tYXRyb2lkLnB4ZAorQEAgLTE1LDEz ICsxNSwxMyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAg ICBjZGVmIF93ZWFrX2ludmFyaWFudF92YXIsIF9zdHJvbmdfaW52YXJpYW50X3ZhciwgX2hldXJp c3RpY19pbnZhcmlhbnRfdmFyCisgICAgIGNkZWYgU2V0U3lzdGVtIF93ZWFrX3BhcnRpdGlvbl92 YXIsIF9zdHJvbmdfcGFydGl0aW9uX3ZhciwgX2hldXJpc3RpY19wYXJ0aXRpb25fdmFyCisgCist ICAgIGNkZWYgX19yZWxhYmVsKHNlbGYsIGwpCisrICAgIGNkZWYgX3JlbGFiZWwoc2VsZiwgbCkK KyAKKy0gICAgY2RlZiBfX3BhY2soc2VsZiwgYml0c2V0X3QsIFgpCisrICAgIGNkZWYgX3BhY2so c2VsZiwgYml0c2V0X3QsIFgpCisgICAgIGNkZWYgX191bnBhY2soc2VsZiwgYml0c2V0X3QpCist ICAgIGNkZWYgYmludCBfX2lzX2V4Y2hhbmdlX3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4 Y2VwdCAtMQorLSAgICBjZGVmIGludCBfX2V4Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBl eGNlcHQgLTEKKy0gICAgY2RlZiBpbnQgX19tb3ZlKHNlbGYsIGJpdHNldF90IFgsIGJpdHNldF90 IFkpIGV4Y2VwdCAtMQorKyAgICBjZGVmIGJpbnQgX2lzX2V4Y2hhbmdlX3BhaXIoc2VsZiwgbG9u ZyB4LCBsb25nIHkpIGV4Y2VwdCAtMQorKyAgICBjZGVmIGludCBfZXhjaGFuZ2Uoc2VsZiwgbG9u ZyB4LCBsb25nIHkpIGV4Y2VwdCAtMQorKyAgICBjZGVmIGludCBfbW92ZShzZWxmLCBiaXRzZXRf dCBYLCBiaXRzZXRfdCBZKSBleGNlcHQgLTEKKyAgICAgY2RlZiBfX2Z1bmRhbWVudGFsX2NvY2ly Y3VpdChzZWxmLCBiaXRzZXRfdCwgbG9uZyB4KQorICAgICBjZGVmIF9fZnVuZGFtZW50YWxfY2ly Y3VpdChzZWxmLCBiaXRzZXRfdCwgbG9uZyB5KQorIAorQEAgLTMwLDcgKzMwLDcgQEAgY2RlZiBj bGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgY2RlZiBfX2Nsb3N1cmUo c2VsZiwgYml0c2V0X3QsIGJpdHNldF90KQorICAgICBjZGVmIF9fbWF4X2NvaW5kZXBlbmRlbnQo c2VsZiwgYml0c2V0X3QsIGJpdHNldF90KQorICAgICBjZGVmIF9fY29jaXJjdWl0KHNlbGYsIGJp dHNldF90LCBiaXRzZXRfdCkKKy0gICAgY2RlZiBfX2NvY2xvc3VyZShzZWxmLCBiaXRzZXRfdCwg Yml0c2V0X3QpCisrICAgIGNkZWYgX2NvY2xvc3VyZV9pbnRlcm5hbChzZWxmLCBiaXRzZXRfdCwg Yml0c2V0X3QpCisgCisgICAgIGNkZWYgX19hdWdtZW50KHNlbGYsIGJpdHNldF90LCBiaXRzZXRf dCwgYml0c2V0X3QpCisgICAgIGNkZWYgYmludCBfX2lzX2luZGVwZW5kZW50KHNlbGYsIGJpdHNl dF90IEYpIGV4Y2VwdCAtMQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX2V4 Y2hhbmdlX21hdHJvaWQucHl4IGIvc3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfZXhjaGFuZ2VfbWF0 cm9pZC5weXgKK2luZGV4IDkwZDEwODQyZDQ2Li4wMTVmYThiOGRmMyAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL21hdHJvaWRzL2Jhc2lzX2V4Y2hhbmdlX21hdHJvaWQucHl4CisrKysgYi9zcmMvc2Fn ZS9tYXRyb2lkcy9iYXNpc19leGNoYW5nZV9tYXRyb2lkLnB5eAorQEAgLTU3LDEwICs1NywxMCBA QCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorIAorICAgICBUaGlz IGJhc2UgZXhjaGFuZ2UgZ3JhcGggaXMgbm90IHN0b3JlZCBhcyBzdWNoLCBidXQgc2hvdWxkIGJl IHByb3ZpZGVkCisgICAgIGltcGxpY2l0bHkgYnkgdGhlIGNoaWxkIGNsYXNzIGluIHRoZSBmb3Jt IG9mIHR3byBtZXRob2RzCistICAgIGBgX19pc19leGNoYW5nZV9wYWlyKHgsIHkpYGAgYW5kIGBg X19leGNoYW5nZSh4LCB5KWBgLCBhcyB3ZWxsIGFzIGFuCisrICAgIGBgX2lzX2V4Y2hhbmdlX3Bh aXIoeCwgeSlgYCBhbmQgYGBfZXhjaGFuZ2UoeCwgeSlgYCwgYXMgd2VsbCBhcyBhbgorICAgICBp bml0aWFsIGJhc2lzLiBBdCBhbnkgbW9tZW50LCBCYXNpc0V4Y2hhbmdlTWF0cm9pZCBrZWVwcyBh IGN1cnJlbnQgYmFzaXMKKy0gICAgYEJgLiBUaGUgbWV0aG9kIGBgX19pc19leGNoYW5nZV9wYWly KHgsIHkpYGAgc2hvdWxkIHJldHVybiBhIGJvb2xlYW4KKy0gICAgaW5kaWNhdGluZyB3aGV0aGVy IGBCIC0geCArIHlgIGlzIGEgYmFzaXMuIFRoZSBtZXRob2QgYGBfX2V4Y2hhbmdlKHgsIHkpYGAK KysgICAgYEJgLiBUaGUgbWV0aG9kIGBgX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSlgYCBzaG91bGQg cmV0dXJuIGEgYm9vbGVhbgorKyAgICBpbmRpY2F0aW5nIHdoZXRoZXIgYEIgLSB4ICsgeWAgaXMg YSBiYXNpcy4gVGhlIG1ldGhvZCBgYF9leGNoYW5nZSh4LCB5KWBgCisgICAgIGlzIGNhbGxlZCB3 aGVuIHRoZSBjdXJyZW50IGJhc2lzIGBCYCBpcyByZXBsYWNlZCBieSBzYWlkIGBCLXggKyB5YC4g SXQgaXMKKyAgICAgdXAgdG8gdGhlIGNoaWxkIGNsYXNzIHRvIHVwZGF0ZSBpdHMgaW50ZXJuYWwg ZGF0YSBzdHJ1Y3R1cmUgdG8gbWFrZQorICAgICBpbmZvcm1hdGlvbiByZWxhdGl2ZSB0byB0aGUg bmV3IGJhc2lzIG1vcmUgYWNjZXNzaWJsZS4gRm9yIGluc3RhbmNlLCBhCitAQCAtODEsMTYgKzgx LDE2IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgIC0g OmNsYXNzOmBCYXNpc01hdHJvaWQgPHNhZ2UubWF0cm9pZHMuYmFzaXNfbWF0cm9pZC5CYXNpc01h dHJvaWQ+YDoga2VlcHMKKyAgICAgICBhIGxpc3Qgb2YgYWxsIGJhc2VzLgorIAorLSAgICAgICAg LSBgYF9faXNfZXhjaGFuZ2VfcGFpcih4LCB5KWBgIHJlZHVjZXMgdG8gYSBxdWVyeSB3aGV0aGVy IGBCIC0geCArIHlgCisrICAgICAgICAtIGBgX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSlgYCByZWR1 Y2VzIHRvIGEgcXVlcnkgd2hldGhlciBgQiAtIHggKyB5YAorICAgICAgICAgICBpcyBhIGJhc2lz LgorLSAgICAgICAgLSBgYF9fZXhjaGFuZ2UoeCwgeSlgYCBoYXMgbm8gd29yayB0byBkby4KKysg ICAgICAgIC0gYGBfZXhjaGFuZ2UoeCwgeSlgYCBoYXMgbm8gd29yayB0byBkby4KKyAKKyAgICAg LSA6Y2xhc3M6YExpbmVhck1hdHJvaWQgPHNhZ2UubWF0cm9pZHMubGluZWFyX21hdHJvaWQuTGlu ZWFyTWF0cm9pZD5gOgorICAgICAgIGtlZXBzIGEgbWF0cml4IHJlcHJlc2VudGF0aW9uIGBBYCBv ZiB0aGUgbWF0cm9pZCBzbyB0aGF0IGBBW0JdID0gSWAuCisgCistICAgICAgICAtIGBgX19pc19l eGNoYW5nZV9wYWlyKHgsIHkpYGAgcmVkdWNlcyB0byB0ZXN0aW5nIHdoZXRoZXIgYEFbciwgeV1g CisrICAgICAgICAtIGBgX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSlgYCByZWR1Y2VzIHRvIHRlc3Rp bmcgd2hldGhlciBgQVtyLCB5XWAKKyAgICAgICAgICAgaXMgbm9uemVybywgd2hlcmUgYEFbciwg eF09MWAuCistICAgICAgICAtIGBgX19leGNoYW5nZSh4LCB5KWBgIHNob3VsZCBtb2RpZnkgdGhl IG1hdHJpeCBzbyB0aGF0IGBBW0IgLSB4ICsgeV1gCisrICAgICAgICAtIGBgX2V4Y2hhbmdlKHgs IHkpYGAgc2hvdWxkIG1vZGlmeSB0aGUgbWF0cml4IHNvIHRoYXQgYEFbQiAtIHggKyB5XWAKKyAg ICAgICAgICAgYmVjb21lcyBgSWAsIHdoaWNoIG1lYW5zIHBpdm90aW5nIG9uIGBBW3IsIHldYC4K KyAKKyAgICAgLSBgYFRyYW5zdmVyc2FsTWF0cm9pZGBgIChub3QgeWV0IGltcGxlbWVudGVkKTog SWYgYEFgIGlzIGEgc2V0IG9mIHN1YnNldHMKK0BAIC0xMDAsMTcgKzEwMCwxNyBAQCBjZGVmIGNs YXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgIGVkZ2UgYChBX2ksZSlg IGlmIGBlYCBpcyBpbiB0aGUgc3Vic2V0IGBBX2lgLiBBdCBhbnkgdGltZSB5b3Uga2VlcCBhCisg ICAgICAgbWF4aW11bSBtYXRjaGluZyBgTWAgb2YgYEdgIGNvdmVyaW5nIHRoZSBjdXJyZW50IGJh c2lzIGBCYC4KKyAKKy0gICAgICAgIC0gYGBfX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSlgYCBjaGVj a3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYW4KKysgICAgICAgIC0gYGBfaXNfZXhjaGFuZ2VfcGFp cih4LCB5KWBgIGNoZWNrcyBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBhbgorICAgICAgICAgICBgTWAt YWx0ZXJuYXRpbmcgcGF0aCBgUGAgZnJvbSBgeWAgdG8gYHhgLgorLSAgICAgICAgLSBgYF9fZXhj aGFuZ2UoeCwgeSlgYCByZXBsYWNlcyBgTWAgYnkgdGhlIHN5bW1ldHJpYyBkaWZmZXJlbmNlIG9m CisrICAgICAgICAtIGBgX2V4Y2hhbmdlKHgsIHkpYGAgcmVwbGFjZXMgYE1gIGJ5IHRoZSBzeW1t ZXRyaWMgZGlmZmVyZW5jZSBvZgorICAgICAgICAgICBgTWAgYW5kIGBFKFApYC4KKyAKKyAgICAg LSBgYEFsZ2VicmFpY01hdHJvaWRgYCAobm90IHlldCBpbXBsZW1lbnRlZCk6IGtlZXBzIGEgbGlz dCBvZiBwb2x5bm9taWFscworICAgICAgIGluIHZhcmlhYmxlcyBgRSAtIEIgKyBlYCBmb3IgZWFj aCB2YXJpYWJsZSBgZWAgaW4gYEJgLgorIAorLSAgICAgICAgLSBgYF9faXNfZXhjaGFuZ2VfcGFp cih4LCB5KWBgIGNoZWNrcyB3aGV0aGVyIHRoZSBwb2x5bm9taWFsIHRoYXQKKysgICAgICAgIC0g YGBfaXNfZXhjaGFuZ2VfcGFpcih4LCB5KWBgIGNoZWNrcyB3aGV0aGVyIHRoZSBwb2x5bm9taWFs IHRoYXQKKyAgICAgICAgICAgcmVsYXRlcyBgeWAgdG8gYEUtQmAgdXNlcyBgeGAuCistICAgICAg ICAtIGBgX19leGNoYW5nZSh4LCB5KWBgIG1ha2UgbmV3IGxpc3Qgb2YgcG9seW5vbWlhbHMgYnkg Y29tcHV0aW5nCisrICAgICAgICAtIGBgX2V4Y2hhbmdlKHgsIHkpYGAgbWFrZSBuZXcgbGlzdCBv ZiBwb2x5bm9taWFscyBieSBjb21wdXRpbmcKKyAgICAgICAgICAgcmVzdWx0YW50cy4KKyAKKyAg ICAgQWxsIGJ1dCB0aGUgZmlyc3Qgb2YgdGhlIGFib3ZlIG1hdHJvaWRzIGFyZSBhbGdlYnJhaWMs IGFuZCBhbGwKK0BAIC0xMzksNyArMTM5LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0 cm9pZChNYXRyb2lkKToKKyAgICAgICAgIFRoaXMgaW5pdGlhbGl6ZXIgc2V0cyB1cCBhIGNvcnJl c3BvbmRlbmNlIGJldHdlZW4gZWxlbWVudHMgb2YKKyAgICAgICAgIGBgZ3JvdW5kc2V0YGAgYW5k IGBgcmFuZ2UobGVuKGdyb3VuZHNldCkpYGAuIGBgQmFzaXNFeGNoYW5nZU1hdHJvaWRgYAorICAg ICAgICAgdXNlcyB0aGlzIGNvcnJlc3BvbmRlbmNlIGZvciBlbmNvZGluZyBvZiBzdWJzZXRzIG9m IHRoZSBncm91bmRzZXQgYXMKKy0gICAgICAgIGJpdHBhY2tlZCBzZXRzIG9mIGludGVnZXJzIC0t LSBzZWUgYGBfX3BhY2soKWBgIGFuZCBgYF9fdW5wYWNrKClgYC4gSW4KKysgICAgICAgIGJpdHBh Y2tlZCBzZXRzIG9mIGludGVnZXJzIC0tLSBzZWUgYGBfcGFjaygpYGAgYW5kIGBgX191bnBhY2so KWBgLiBJbgorICAgICAgICAgZ2VuZXJhbCwgbWV0aG9kcyBvZiBgYEJhc2lzRXhjaGFuZ2VNYXRy b2lkYGAgaGF2aW5nIGEgbmFtZSBzdGFydGluZworICAgICAgICAgd2l0aCB0d28gdW5kZXJzY29y ZXMgZGVhbCB3aXRoIHN1Y2ggZW5jb2RlZCBzdWJzZXRzLgorIAorQEAgLTE4MCw3ICsxODAsNyBA QCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAg IHNlbGYuX2lkeFtzZWxmLl9FW2ldXSA9IGkKKyAKKyAgICAgICAgIGlmIGJhc2lzIGlzIG5vdCBO b25lOgorLSAgICAgICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2N1cnJlbnRfYmFzaXMsIGZyb3pl bnNldChiYXNpcykpCisrICAgICAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9jdXJyZW50X2Jhc2lz LCBmcm96ZW5zZXQoYmFzaXMpKQorIAorICAgICBkZWYgX19kZWFsbG9jX18oc2VsZik6CisgICAg ICAgICBiaXRzZXRfZnJlZShzZWxmLl9jdXJyZW50X2Jhc2lzKQorQEAgLTE5MSw3ICsxOTEsNyBA QCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgYml0 c2V0X2ZyZWUoc2VsZi5fb3V0cHV0KQorICAgICAgICAgYml0c2V0X2ZyZWUoc2VsZi5fdGVtcCkK KyAKKy0gICAgY2RlZiBfX3JlbGFiZWwoc2VsZiwgbCk6CisrICAgIGNkZWYgX3JlbGFiZWwoc2Vs ZiwgbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJlbGFiZWwgZWFjaCBlbGVtZW50IGBlYCBh cyBgbFtlXWAsIHdoZXJlIGBsYCBpcyBhIGdpdmVuIGluamVjdGl2ZSBtYXAuCisgCitAQCAtMjMx LDcgKzIzMSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6Cisg ICAgICAgICAgICAgc2VsZi5faGV1cmlzdGljX3BhcnRpdGlvbl92YXIuX3JlbGFiZWwobCkKKyAK KyAgICAgIyB0aGUgZW5naW5lCistICAgIGNkZWYgX19wYWNrKHNlbGYsIGJpdHNldF90IEksIEYp OgorKyAgICBjZGVmIF9wYWNrKHNlbGYsIGJpdHNldF90IEksIEYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBFbmNvZGUgYSBzdWJzZXQgRiBvZiB0aGUgZ3JvdW5kc2V0IGludG8gYSBiaXRwYWNr ZWQgc2V0IG9mIGludGVnZXJzCisgICAgICAgICAiIiIKK0BAIC0yNTIsMjEgKzI1MiwyMSBAQCBj ZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgcmV0dXJu IGZyb3plbnNldChGKQorIAorICAgICAjIHRoaXMgbWV0aG9kIG5lZWRzIHRvIGJlIG92ZXJyaWRk ZW4gYnkgY2hpbGQgY2xhc3MKKy0gICAgY2RlZiBiaW50IF9faXNfZXhjaGFuZ2VfcGFpcihzZWxm LCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorKyAgICBjZGVmIGJpbnQgX2lzX2V4Y2hhbmdl X3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKyAgICAgICAgICIiIgorICAg ICAgICAgVGVzdCBpZiBjdXJyZW50X2Jhc2lzLXggKyB5IGlzIGEgYmFzaXMKKyAgICAgICAgICIi IgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorICAgICAjIGlmIHRoaXMg bWV0aG9kIGlzIG92ZXJyaWRkZW4gYnkgYSBjaGlsZCBjbGFzcywgdGhlIGNoaWxkIGNsYXNzIG5l ZWRzIHRvIGNhbGwgdGhpcyBtZXRob2QKKy0gICAgY2RlZiBpbnQgX19leGNoYW5nZShzZWxmLCBs b25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorKyAgICBjZGVmIGludCBfZXhjaGFuZ2Uoc2VsZiwg bG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKyAgICAgICAgICIiIgorICAgICAgICAgcHV0IGN1 cnJlbnRfYmFzaXMgPC0tIGN1cnJlbnRfYmFzaXMteCArIHkKKyAgICAgICAgICIiIgorICAgICAg ICAgYml0c2V0X2Rpc2NhcmQoc2VsZi5fY3VycmVudF9iYXNpcywgeCkKKyAgICAgICAgIGJpdHNl dF9hZGQoc2VsZi5fY3VycmVudF9iYXNpcywgeSkKKyAKKy0gICAgY2RlZiBpbnQgX19tb3ZlKHNl bGYsIGJpdHNldF90IFgsIGJpdHNldF90IFkpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBpbnQgX21v dmUoc2VsZiwgYml0c2V0X3QgWCwgYml0c2V0X3QgWSkgZXhjZXB0IC0xOgorICAgICAgICAgIiIi CisgICAgICAgICBDaGFuZ2UgY3VycmVudF9iYXNpcyB0byBtaW5pbWl6ZSBpbnRlcnNlY3Rpb24g d2l0aCBgYFhgYCwgbWF4aW1pemUgaW50ZXJzZWN0aW9uIHdpdGggYGBZYGAuCisgICAgICAgICAi IiIKK0BAIC0yNzUsOCArMjc1LDggQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChN YXRyb2lkKToKKyAgICAgICAgIHdoaWxlIHggPj0gMDoKKyAgICAgICAgICAgICB5ID0gYml0c2V0 X2ZpcnN0KFkpCisgICAgICAgICAgICAgd2hpbGUgeSA+PSAwOgorLSAgICAgICAgICAgICAgICBp ZiBzZWxmLl9faXNfZXhjaGFuZ2VfcGFpcih4LCB5KToKKy0gICAgICAgICAgICAgICAgICAgIHNl bGYuX19leGNoYW5nZSh4LCB5KQorKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9pc19leGNoYW5n ZV9wYWlyKHgsIHkpOgorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXhjaGFuZ2UoeCwgeSkK KyAgICAgICAgICAgICAgICAgICAgIGJpdHNldF9kaXNjYXJkKFksIHkpCisgICAgICAgICAgICAg ICAgICAgICBiaXRzZXRfZGlzY2FyZChYLCB4KQorICAgICAgICAgICAgICAgICAgICAgaWYgYml0 c2V0X2lzZW1wdHkoWSk6CitAQCAtMjk1LDcgKzI5NSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNo YW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBiaXRzZXRfY29tcGxlbWVudChzZWxmLl90 ZW1wLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorICAgICAgICAgeSA9IGJpdHNldF9maXJzdChzZWxm Ll90ZW1wKQorICAgICAgICAgd2hpbGUgeSA+PSAwOgorLSAgICAgICAgICAgIGlmIHNlbGYuX19p c19leGNoYW5nZV9wYWlyKHgsIHkpOgorKyAgICAgICAgICAgIGlmIHNlbGYuX2lzX2V4Y2hhbmdl X3BhaXIoeCwgeSk6CisgICAgICAgICAgICAgICAgIGJpdHNldF9hZGQoQywgeSkKKyAgICAgICAg ICAgICB5ID0gYml0c2V0X25leHQoc2VsZi5fdGVtcCwgeSArIDEpCisgICAgICAgICBiaXRzZXRf YWRkKEMsIHgpCitAQCAtMzA4LDcgKzMwOCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1h dHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBiaXRzZXRfY2xlYXIoQykKKyAgICAgICAgIHggPSBi aXRzZXRfZmlyc3Qoc2VsZi5fY3VycmVudF9iYXNpcykKKyAgICAgICAgIHdoaWxlIHggPj0gMDoK Ky0gICAgICAgICAgICBpZiBzZWxmLl9faXNfZXhjaGFuZ2VfcGFpcih4LCB5KToKKysgICAgICAg ICAgICBpZiBzZWxmLl9pc19leGNoYW5nZV9wYWlyKHgsIHkpOgorICAgICAgICAgICAgICAgICBi aXRzZXRfYWRkKEMsIHgpCisgICAgICAgICAgICAgeCA9IGJpdHNldF9uZXh0KHNlbGYuX2N1cnJl bnRfYmFzaXMsIHggKyAxKQorICAgICAgICAgYml0c2V0X2FkZChDLCB5KQorQEAgLTMxOSw3ICsz MTksNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAg ICAgIiIiCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1 cnJlbnRfYmFzaXMsIEYpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRl LCBGLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorLSAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5faW5z aWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNl bGYuX291dHNpZGUpCisgICAgICAgICBiaXRzZXRfaW50ZXJzZWN0aW9uKFIsIHNlbGYuX2N1cnJl bnRfYmFzaXMsIEYpCisgCisgICAgIGNkZWYgX19jaXJjdWl0KHNlbGYsIGJpdHNldF90IFIsIGJp dHNldF90IEYpOgorQEAgLTMzNSw4ICszMzUsOCBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VN YXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgd2hpbGUgeSA+PSAwOgorICAgICAgICAgICAgIHgg PSBiaXRzZXRfZmlyc3Qoc2VsZi5faW5zaWRlKQorICAgICAgICAgICAgIHdoaWxlIHggPj0gMDoK Ky0gICAgICAgICAgICAgICAgaWYgc2VsZi5fX2lzX2V4Y2hhbmdlX3BhaXIoeCwgeSk6CistICAg ICAgICAgICAgICAgICAgICBzZWxmLl9fZXhjaGFuZ2UoeCwgeSkKKysgICAgICAgICAgICAgICAg aWYgc2VsZi5faXNfZXhjaGFuZ2VfcGFpcih4LCB5KToKKysgICAgICAgICAgICAgICAgICAgIHNl bGYuX2V4Y2hhbmdlKHgsIHkpCisgICAgICAgICAgICAgICAgICAgICBiaXRzZXRfZGlzY2FyZChz ZWxmLl9vdXRzaWRlLCB5KQorICAgICAgICAgICAgICAgICAgICAgYml0c2V0X2Rpc2NhcmQoc2Vs Zi5faW5zaWRlLCB4KQorICAgICAgICAgICAgICAgICAgICAgaWYgYml0c2V0X2lzZW1wdHkoc2Vs Zi5fb3V0c2lkZSk6CitAQCAtMzU1LDcgKzM1NSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5n ZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGJpdHNldF9kaWZmZXJl bmNlKHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVudF9iYXNpcywgRikKKyAgICAgICAgIGJpdHNl dF9kaWZmZXJlbmNlKHNlbGYuX291dHNpZGUsIEYsIHNlbGYuX2N1cnJlbnRfYmFzaXMpCistICAg ICAgICBzZWxmLl9fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisrICAgICAgICBz ZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKyAgICAgICAgIGJpdHNldF9z ZXRfZmlyc3RfbihSLCBzZWxmLl9ncm91bmRzZXRfc2l6ZSkKKyAgICAgICAgIGNkZWYgbG9uZyB4 ID0gYml0c2V0X2ZpcnN0KHNlbGYuX2luc2lkZSkKKyAgICAgICAgIHdoaWxlIHggPj0gMDoKK0BA IC0zNzAsNyArMzcwLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lk KToKKyAgICAgICAgIGJpdHNldF9jb21wbGVtZW50KFIsIEYpCisgICAgICAgICBiaXRzZXRfZGlm ZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIFIpCisgICAgICAgICBi aXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRzaWRlLCBSLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQor LSAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAg ICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisgICAgICAgICBiaXRz ZXRfZGlmZmVyZW5jZShSLCBGLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorIAorICAgICBjZGVmIF9f Y29jaXJjdWl0KHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpOgorQEAgLTM4Nyw4ICszODcs OCBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAg d2hpbGUgeCA+PSAwOgorICAgICAgICAgICAgIHkgPSBiaXRzZXRfZmlyc3Qoc2VsZi5fb3V0c2lk ZSkKKyAgICAgICAgICAgICB3aGlsZSB5ID49IDA6CistICAgICAgICAgICAgICAgIGlmIHNlbGYu X19pc19leGNoYW5nZV9wYWlyKHgsIHkpOgorLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2V4 Y2hhbmdlKHgsIHkpCisrICAgICAgICAgICAgICAgIGlmIHNlbGYuX2lzX2V4Y2hhbmdlX3BhaXIo eCwgeSk6CisrICAgICAgICAgICAgICAgICAgICBzZWxmLl9leGNoYW5nZSh4LCB5KQorICAgICAg ICAgICAgICAgICAgICAgYml0c2V0X2Rpc2NhcmQoc2VsZi5fb3V0c2lkZSwgeSkKKyAgICAgICAg ICAgICAgICAgICAgIGJpdHNldF9kaXNjYXJkKHNlbGYuX2luc2lkZSwgeCkKKyAgICAgICAgICAg ICAgICAgICAgIGlmIGJpdHNldF9pc2VtcHR5KHNlbGYuX2luc2lkZSk6CitAQCAtNDAxLDE0ICs0 MDEsMTQgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAg ICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgeCA9IGJpdHNldF9uZXh0KHNlbGYuX2lu c2lkZSwgeCArIDEpCisgCistICAgIGNkZWYgX19jb2Nsb3N1cmUoc2VsZiwgYml0c2V0X3QgUiwg Yml0c2V0X3QgRik6CisrICAgIGNkZWYgX2NvY2xvc3VyZV9pbnRlcm5hbChzZWxmLCBiaXRzZXRf dCBSLCBiaXRzZXRfdCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgQml0cGFja2VkIHZlcnNp b24gb2YgYGBjbG9zdXJlYGAuCisgICAgICAgICAiIiIKKyAgICAgICAgIGJpdHNldF9jb21wbGVt ZW50KFIsIEYpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYu X2N1cnJlbnRfYmFzaXMsIFIpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9vdXRz aWRlLCBSLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorLSAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5f aW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAgc2VsZi5fbW92ZShzZWxmLl9pbnNpZGUs IHNlbGYuX291dHNpZGUpCisgICAgICAgICBiaXRzZXRfc2V0X2ZpcnN0X24oUiwgc2VsZi5fZ3Jv dW5kc2V0X3NpemUpCisgICAgICAgICBjZGVmIGxvbmcgeSA9IGJpdHNldF9maXJzdChzZWxmLl9v dXRzaWRlKQorICAgICAgICAgd2hpbGUgeSA+PSAwOgorQEAgLTQyMiwxMCArNDIyLDEwIEBAIGNk ZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVudF9iYXNp cywgWCkKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX291dHNpZGUsIFgsIHNlbGYu X2N1cnJlbnRfYmFzaXMpCistICAgICAgICBzZWxmLl9fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYu X291dHNpZGUpCisrICAgICAgICBzZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lk ZSkKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX2luc2lkZSwgc2VsZi5faW5zaWRl LCBZKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5fb3V0c2lkZSwgWSwgc2VsZi5f Y3VycmVudF9iYXNpcykKKy0gICAgICAgIHNlbGYuX19tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5f b3V0c2lkZSkKKysgICAgICAgIHNlbGYuX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRl KQorICAgICAgICAgYml0c2V0X2ludGVyc2VjdGlvbihSLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBZ KQorIAorICAgICBjZGVmIGJpbnQgX19pc19pbmRlcGVuZGVudChzZWxmLCBiaXRzZXRfdCBGKSBl eGNlcHQgLTE6CitAQCAtNDM0LDcgKzQzNCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1h dHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNl KHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVudF9iYXNpcywgRikKKyAgICAgICAgIGJpdHNldF9k aWZmZXJlbmNlKHNlbGYuX291dHNpZGUsIEYsIHNlbGYuX2N1cnJlbnRfYmFzaXMpCistICAgICAg ICBzZWxmLl9fbW92ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisrICAgICAgICBzZWxm Ll9tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKyAgICAgICAgIHJldHVybiBiaXRz ZXRfaXNlbXB0eShzZWxmLl9vdXRzaWRlKQorIAorICAgICBjZGVmIF9fbW92ZV9jdXJyZW50X2Jh c2lzKHNlbGYsIGJpdHNldF90IFgsIGJpdHNldF90IFkpOgorQEAgLTQ0MywyMSArNDQzLDIxIEBA IGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVudF9i YXNpcywgWCkKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX291dHNpZGUsIFgsIHNl bGYuX2N1cnJlbnRfYmFzaXMpCistICAgICAgICBzZWxmLl9fbW92ZShzZWxmLl9pbnNpZGUsIHNl bGYuX291dHNpZGUpCisrICAgICAgICBzZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0 c2lkZSkKKyAgICAgICAgIGJpdHNldF9pbnRlcnNlY3Rpb24oc2VsZi5faW5zaWRlLCBzZWxmLl9j dXJyZW50X2Jhc2lzLCBZKQorICAgICAgICAgYml0c2V0X2NvbXBsZW1lbnQoc2VsZi5fb3V0c2lk ZSwgc2VsZi5fY3VycmVudF9iYXNpcykKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYu X291dHNpZGUsIHNlbGYuX291dHNpZGUsIFkpCistICAgICAgICBzZWxmLl9fbW92ZShzZWxmLl9p bnNpZGUsIHNlbGYuX291dHNpZGUpCisrICAgICAgICBzZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwg c2VsZi5fb3V0c2lkZSkKKyAKKyAgICAgIyBmdW5jdGlvbnMgZm9yIGRlcml2ZWQgY2xhc3NlcyBh bmQgZm9yIHBhcmVudCBjbGFzcworICAgICBjZGVmIGJpbnQgX3NldF9jdXJyZW50X2Jhc2lzKHNl bGYsIEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgX2N1cnJlbnRfYmFzaXMgdG8gc3Vi c2V0IG9mIHRoZSBncm91bmRzZXQgYGBGYGAuCisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYu X19wYWNrKHNlbGYuX2lucHV0LCBGKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dCwg RikKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVu dF9iYXNpcywgc2VsZi5faW5wdXQpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9v dXRzaWRlLCBzZWxmLl9pbnB1dCwgc2VsZi5fY3VycmVudF9iYXNpcykKKy0gICAgICAgIHNlbGYu X19tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKysgICAgICAgIHNlbGYuX21vdmUo c2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorICAgICAgICAgcmV0dXJuIGJpdHNldF9pc2Vt cHR5KHNlbGYuX291dHNpZGUpIGFuZCBiaXRzZXRfaXNlbXB0eShzZWxmLl9pbnNpZGUpCisgCisg ICAgICMgZ3JvdW5kc2V0IGFuZCBmdWxsX3JhbmsKK0BAIC02MzAsOCArNjMwLDggQEAgY2RlZiBj bGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBbJ2InLCAn YycsICdlJywgJ2YnXQorIAorICAgICAgICAgIiIiCistICAgICAgICBzZWxmLl9fcGFjayhzZWxm Ll9pbnB1dCwgWCkKKy0gICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2lucHV0MiwgWSkKKysgICAg ICAgIHNlbGYuX3BhY2soc2VsZi5faW5wdXQsIFgpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYu X2lucHV0MiwgWSkKKyAgICAgICAgIHNlbGYuX19tb3ZlX2N1cnJlbnRfYmFzaXMoc2VsZi5faW5w dXQsIHNlbGYuX2lucHV0MikKKyAKKyAgICAgY3BkZWYgX21heF9pbmRlcGVuZGVudChzZWxmLCBG KToKK0BAIC02NjEsNyArNjYxLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChN YXRyb2lkKToKKyAgICAgICAgICAgICBzZWUgOm1ldGg6YDxzYWdlLm1hdHJvaWRzLm1hdHJvaWQu TWF0cm9pZC5tYXhfaW5kZXBlbmRlbnQ+YC4KKyAKKyAgICAgICAgICIiIgorLSAgICAgICAgc2Vs Zi5fX3BhY2soc2VsZi5faW5wdXQsIEYpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0 LCBGKQorICAgICAgICAgc2VsZi5fX21heF9pbmRlcGVuZGVudChzZWxmLl9vdXRwdXQsIHNlbGYu X2lucHV0KQorICAgICAgICAgcmV0dXJuIHNlbGYuX191bnBhY2soc2VsZi5fb3V0cHV0KQorIAor QEAgLTY5Miw3ICs2OTIsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJv aWQpOgorICAgICAgICAgICAgIHNlZSA6bWV0aDpgPHNhZ2UubWF0cm9pZHMubWF0cm9pZC5NYXRy b2lkLnJhbms+YC4KKyAKKyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX3BhY2soc2VsZi5f aW5wdXQsIEYpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBGKQorICAgICAgICAg c2VsZi5fX21heF9pbmRlcGVuZGVudChzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0KQorICAgICAg ICAgcmV0dXJuIGJpdHNldF9sZW4oc2VsZi5fb3V0cHV0KQorIAorQEAgLTcyOSw3ICs3MjksNyBA QCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAg IHRoZSBpbnB1dCBpcyBpbmRlZWQgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZCBzZXQsCisgICAgICAg ICAgICAgc2VlIDptZXRoOmA8c2FnZS5tYXRyb2lkcy5tYXRyb2lkLk1hdHJvaWQuY2lyY3VpdD5g LgorICAgICAgICAgIiIiCistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9pbnB1dCwgRikKKysg ICAgICAgIHNlbGYuX3BhY2soc2VsZi5faW5wdXQsIEYpCisgICAgICAgICBzZWxmLl9fY2lyY3Vp dChzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0KQorICAgICAgICAgcmV0dXJuIHNlbGYuX191bnBh Y2soc2VsZi5fb3V0cHV0KQorIAorQEAgLTc1NCw3ICs3NTQsNyBAQCBjZGVmIGNsYXNzIEJhc2lz RXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIHNhZ2U6IHNvcnRlZChNLl9m dW5kYW1lbnRhbF9jaXJjdWl0KCdhYmNkJywgJ2UnKSkKKyAgICAgICAgICAgICBbJ2EnLCAnYics ICdjJywgJ2UnXQorICAgICAgICAgIiIiCistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9pbnB1 dCwgQikKKysgICAgICAgIHNlbGYuX3BhY2soc2VsZi5faW5wdXQsIEIpCisgICAgICAgICBiaXRz ZXRfY2xlYXIoc2VsZi5faW5wdXQyKQorICAgICAgICAgc2VsZi5fX21vdmVfY3VycmVudF9iYXNp cyhzZWxmLl9pbnB1dCwgc2VsZi5faW5wdXQyKQorICAgICAgICAgc2VsZi5fX2Z1bmRhbWVudGFs X2NpcmN1aXQoc2VsZi5fb3V0cHV0LCBzZWxmLl9pZHhbZV0pCitAQCAtNzg3LDcgKzc4Nyw3IEBA IGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAg Om1ldGg6YDxzYWdlLm1hdHJvaWRzLm1hdHJvaWQuTWF0cm9pZC5jbG9zdXJlPmAuCisgCisgICAg ICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2lucHV0LCBGKQorKyAgICAgICAg c2VsZi5fcGFjayhzZWxmLl9pbnB1dCwgRikKKyAgICAgICAgIHNlbGYuX19jbG9zdXJlKHNlbGYu X291dHB1dCwgc2VsZi5faW5wdXQpCisgICAgICAgICByZXR1cm4gc2VsZi5fX3VucGFjayhzZWxm Ll9vdXRwdXQpCisgCitAQCAtODE4LDcgKzgxOCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5n ZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgc2VlIDptZXRoOmA8c2FnZS5tYXRyb2lk cy5tYXRyb2lkLk1hdHJvaWQubWF4X2NvaW5kZXBlbmRlbnQ+YC4KKyAKKyAgICAgICAgICIiIgor LSAgICAgICAgc2VsZi5fX3BhY2soc2VsZi5faW5wdXQsIEYpCisrICAgICAgICBzZWxmLl9wYWNr KHNlbGYuX2lucHV0LCBGKQorICAgICAgICAgc2VsZi5fX21heF9jb2luZGVwZW5kZW50KHNlbGYu X291dHB1dCwgc2VsZi5faW5wdXQpCisgICAgICAgICByZXR1cm4gc2VsZi5fX3VucGFjayhzZWxm Ll9vdXRwdXQpCisgCitAQCAtODQ4LDcgKzg0OCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5n ZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgaW5wdXQgaXMgaW5kZWVkIGEgc3Vic2V0 IG9mIHRoZSBncm91bmQgc2V0LAorICAgICAgICAgICAgIHNlZSA6bWV0aDpgPHNhZ2UubWF0cm9p ZHMubWF0cm9pZC5NYXRyb2lkLmNvcmFuaz5gLgorICAgICAgICAgIiIiCistICAgICAgICBzZWxm Ll9fcGFjayhzZWxmLl9pbnB1dCwgRikKKysgICAgICAgIHNlbGYuX3BhY2soc2VsZi5faW5wdXQs IEYpCisgICAgICAgICBzZWxmLl9fbWF4X2NvaW5kZXBlbmRlbnQoc2VsZi5fb3V0cHV0LCBzZWxm Ll9pbnB1dCkKKyAgICAgICAgIHJldHVybiBiaXRzZXRfbGVuKHNlbGYuX291dHB1dCkKKyAKK0BA IC04ODUsNyArODg1LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lk KToKKyAgICAgICAgICAgICBpbnB1dCBpcyBpbmRlZWQgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZCBz ZXQsCisgICAgICAgICAgICAgc2VlIDptZXRoOmA8c2FnZS5tYXRyb2lkcy5tYXRyb2lkLk1hdHJv aWQuY29jaXJjdWl0PmAuCisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYuX19wYWNrKHNlbGYu X2lucHV0LCBGKQorKyAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9pbnB1dCwgRikKKyAgICAgICAg IHNlbGYuX19jb2NpcmN1aXQoc2VsZi5fb3V0cHV0LCBzZWxmLl9pbnB1dCkKKyAgICAgICAgIHJl dHVybiBzZWxmLl9fdW5wYWNrKHNlbGYuX291dHB1dCkKKyAKK0BAIC05MTAsNyArOTEwLDcgQEAg Y2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBz YWdlOiBzb3J0ZWQoTS5fZnVuZGFtZW50YWxfY29jaXJjdWl0KCdlZmdoJywgJ2UnKSkKKyAgICAg ICAgICAgICBbJ2InLCAnYycsICdkJywgJ2UnXQorICAgICAgICAgIiIiCistICAgICAgICBzZWxm Ll9fcGFjayhzZWxmLl9pbnB1dCwgQikKKysgICAgICAgIHNlbGYuX3BhY2soc2VsZi5faW5wdXQs IEIpCisgICAgICAgICBiaXRzZXRfY2xlYXIoc2VsZi5faW5wdXQyKQorICAgICAgICAgc2VsZi5f X21vdmVfY3VycmVudF9iYXNpcyhzZWxmLl9pbnB1dCwgc2VsZi5faW5wdXQyKQorICAgICAgICAg c2VsZi5fX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLl9vdXRwdXQsIHNlbGYuX2lkeFtlXSkK K0BAIC05NDMsOCArOTQzLDggQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRy b2lkKToKKyAgICAgICAgICAgICBzZWUgOm1ldGg6YDxzYWdlLm1hdHJvaWRzLm1hdHJvaWQuTWF0 cm9pZC5jb2Nsb3N1cmU+YC4KKyAKKyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX3BhY2so c2VsZi5faW5wdXQsIEYpCistICAgICAgICBzZWxmLl9fY29jbG9zdXJlKHNlbGYuX291dHB1dCwg c2VsZi5faW5wdXQpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0LCBGKQorKyAgICAg ICAgc2VsZi5fY29jbG9zdXJlX2ludGVybmFsKHNlbGYuX291dHB1dCwgc2VsZi5faW5wdXQpCisg ICAgICAgICByZXR1cm4gc2VsZi5fX3VucGFjayhzZWxmLl9vdXRwdXQpCisgCisgICAgIGNwZGVm IF9hdWdtZW50KHNlbGYsIFgsIFkpOgorQEAgLTk3Myw4ICs5NzMsOCBAQCBjZGVmIGNsYXNzIEJh c2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIFsnZScsICdmJywgJ2cn XQorIAorICAgICAgICAgIiIiCistICAgICAgICBzZWxmLl9fcGFjayhzZWxmLl9pbnB1dCwgWCkK Ky0gICAgICAgIHNlbGYuX19wYWNrKHNlbGYuX2lucHV0MiwgWSkKKysgICAgICAgIHNlbGYuX3Bh Y2soc2VsZi5faW5wdXQsIFgpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0MiwgWSkK KyAgICAgICAgIHNlbGYuX19hdWdtZW50KHNlbGYuX291dHB1dCwgc2VsZi5faW5wdXQsIHNlbGYu X2lucHV0MikKKyAgICAgICAgIHJldHVybiBzZWxmLl9fdW5wYWNrKHNlbGYuX291dHB1dCkKKyAK K0BAIC0xMDA2LDcgKzEwMDYsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1h dHJvaWQpOgorICAgICAgICAgICAgIHRoZSBpbnB1dCBpcyBpbmRlZWQgYSBzdWJzZXQgb2YgdGhl IGdyb3VuZCBzZXQsCisgICAgICAgICAgICAgc2VlIDptZXRoOmA8c2FnZS5tYXRyb2lkcy5tYXRy b2lkLk1hdHJvaWQuaXNfaW5kZXBlbmRlbnQ+YC4KKyAgICAgICAgICIiIgorLSAgICAgICAgc2Vs Zi5fX3BhY2soc2VsZi5faW5wdXQsIEYpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2lucHV0 LCBGKQorICAgICAgICAgcmV0dXJuIHNlbGYuX19pc19pbmRlcGVuZGVudChzZWxmLl9pbnB1dCkK KyAKKyAgICAgIyBjb25uZWN0aXZpdHkKK0BAIC0xMTQyLDggKzExNDIsOCBAQCBjZGVmIGNsYXNz IEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgY2RlZiBiaXRzZXRfdCBT UywgVFQKKyAgICAgICAgIGJpdHNldF9pbml0KFNTLCBzZWxmLl9ncm91bmRzZXRfc2l6ZSkKKyAg ICAgICAgIGJpdHNldF9pbml0KFRULCBzZWxmLl9ncm91bmRzZXRfc2l6ZSkKKy0gICAgICAgIHNl bGYuX19wYWNrKFNTLFMpCistICAgICAgICBzZWxmLl9fcGFjayhUVCxUKQorKyAgICAgICAgc2Vs Zi5fcGFjayhTUyxTKQorKyAgICAgICAgc2VsZi5fcGFjayhUVCxUKQorICAgICAgICAgI0YgPSBz ZXQoc2VsZi5ncm91bmRzZXQoKSkgLSAoUyB8IFQpCisgICAgICAgICBjZGVmIGJpdHNldF90IEYs IEkKKyAgICAgICAgIGJpdHNldF9pbml0KEYsIHNlbGYuX2dyb3VuZHNldF9zaXplKQorQEAgLTE0 MjEsNyArMTQyMSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6 CisgICAgICAgICBSY29mbGF0cyA9IFNldFN5c3RlbShzZWxmLl9FKQorICAgICAgICAgaSA9IDAK KyAgICAgICAgIGJpdHNldF9jbGVhcih0b2RvWzBdKQorLSAgICAgICAgc2VsZi5fX2NvY2xvc3Vy ZShjb2ZsYXRzWzBdLCB0b2RvWzBdKQorKyAgICAgICAgc2VsZi5fY29jbG9zdXJlX2ludGVybmFs KGNvZmxhdHNbMF0sIHRvZG9bMF0pCisgICAgICAgICBiaXRzZXRfY29tcGxlbWVudCh0b2RvWzBd LCBjb2ZsYXRzWzBdKQorICAgICAgICAgc2VsZi5fY29mbGF0c19yZWMoUmNvZmxhdHMsIHIsIGNv ZmxhdHMsIHRvZG8sIDAsIDApCisgICAgICAgICBmb3IgaSBpbiByYW5nZShyICsgMSk6CitAQCAt MTQ0Myw3ICsxNDQzLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lk KToKKyAgICAgICAgIHdoaWxlIGUgPj0gMDoKKyAgICAgICAgICAgICBiaXRzZXRfY29weShzZWxm Ll9pbnB1dCwgY29mbGF0c1tpXSkKKyAgICAgICAgICAgICBiaXRzZXRfYWRkKHNlbGYuX2lucHV0 LCBlKQorLSAgICAgICAgICAgIHNlbGYuX19jb2Nsb3N1cmUoY29mbGF0c1tpICsgMV0sIHNlbGYu X2lucHV0KQorKyAgICAgICAgICAgIHNlbGYuX2NvY2xvc3VyZV9pbnRlcm5hbChjb2ZsYXRzW2kg KyAxXSwgc2VsZi5faW5wdXQpCisgICAgICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2UodG9kb1tp XSwgdG9kb1tpXSwgY29mbGF0c1tpICsgMV0pCisgICAgICAgICAgICAgYml0c2V0X2RpZmZlcmVu Y2UodG9kb1tpICsgMV0sIGNvZmxhdHNbaSArIDFdLCBjb2ZsYXRzW2ldKQorICAgICAgICAgICAg IGlmIGJpdHNldF9maXJzdCh0b2RvW2kgKyAxXSkgPT0gZToKK0BAIC0yMzk3LDcgKzIzOTcsNyBA QCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAg ICAgICAjIFNldCBjdXJyZW50IGJhc2lzIHRvIFkKKyAgICAgICAgICAgICAgICAgYml0c2V0X2Rp ZmZlcmVuY2Uoc2VsZi5faW5zaWRlLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBCQi5fc3Vic2V0c1tw b2ludGVyWV0pCisgICAgICAgICAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX291dHNp ZGUsIEJCLl9zdWJzZXRzW3BvaW50ZXJZXSwgc2VsZi5fY3VycmVudF9iYXNpcykKKy0gICAgICAg ICAgICAgICAgc2VsZi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAg ICAgICAgICAgICBzZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKyAgICAg ICAgICAgICAgICAgaWYgbm90IGJpdHNldF9lcShzZWxmLl9jdXJyZW50X2Jhc2lzLCBCQi5fc3Vi c2V0c1twb2ludGVyWV0pOgorICAgICAgICAgICAgICAgICAgICAgIyBXZSBmYWlsZWQgdG8gc2V0 IHRoZSBjdXJyZW50IGJhc2lzIHRvIFkgdGhyb3VnaCBiYXNpcyBleGNoYW5nZXMuCisgICAgICAg ICAgICAgICAgICAgICAjIFRoZXJlZm9yZSwgdGhlIGV4Y2hhbmdlIGF4aW9tcyBhcmUgdmlvbGF0 ZWQhCitAQCAtMjQwOSw3ICsyNDA5LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9p ZChNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgICAgIGZvdW5kcGFpciA9IEZhbHNlCisgICAg ICAgICAgICAgICAgICAgICB5ID0gYml0c2V0X2ZpcnN0KHNlbGYuX2lucHV0MikKKyAgICAgICAg ICAgICAgICAgICAgIHdoaWxlIHkgPj0gMDogICMgZm9yIHkgaW4gWS1YCistICAgICAgICAgICAg ICAgICAgICAgICAgaWYgc2VsZi5fX2lzX2V4Y2hhbmdlX3BhaXIoeSwgeCk6CisrICAgICAgICAg ICAgICAgICAgICAgICAgaWYgc2VsZi5faXNfZXhjaGFuZ2VfcGFpcih5LCB4KToKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZm91bmRwYWlyID0gVHJ1ZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB5ID0gLTEKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX21hdHJvaWQucHl4IGIvc3JjL3NhZ2UvbWF0 cm9pZHMvYmFzaXNfbWF0cm9pZC5weXgKK2luZGV4IDNhYzQzMTEyNjI3Li5jMWI2ZTliMDRjOCAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX21hdHJvaWQucHl4CisrKysgYi9z cmMvc2FnZS9tYXRyb2lkcy9iYXNpc19tYXRyb2lkLnB5eAorQEAgLTIxOSw3ICsyMTksNyBAQCBj ZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAg ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJiYXNpcyBoYXMgd3JvbmcgY2FyZGluYWxpdHku IikKKyAgICAgICAgICAgICAgICAgaWYgbm90IGIuaXNzdWJzZXQoc2VsZi5fZ3JvdW5kc2V0KToK KyAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImJhc2lzIGlzIG5vdCBhIHN1 YnNldCBvZiB0aGUgZ3JvdW5kc2V0IikKKy0gICAgICAgICAgICAgICAgc2VsZi5fX3BhY2soc2Vs Zi5fYiwgYikKKysgICAgICAgICAgICAgICAgc2VsZi5fcGFjayhzZWxmLl9iLCBiKQorICAgICAg ICAgICAgICAgICBpID0gc2V0X3RvX2luZGV4KHNlbGYuX2IpCisgICAgICAgICAgICAgICAgIGlm IG5vdCBiaXRzZXRfaW4oc2VsZi5fYmIsIGkpOgorICAgICAgICAgICAgICAgICAgICAgc2VsZi5f YmNvdW50ICs9IDEKK0BAIC0yMzQsNyArMjM0LDcgQEAgY2RlZiBjbGFzcyBCYXNpc01hdHJvaWQo QmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZh bHVlRXJyb3IoIm5vbmJhc2lzIGhhcyB3cm9uZyBjYXJkaW5hbGl0eSIpCisgICAgICAgICAgICAg ICAgICAgICBpZiBub3QgYi5pc3N1YnNldChzZWxmLl9ncm91bmRzZXQpOgorICAgICAgICAgICAg ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm5vbmJhc2lzIGlzIG5vdCBhIHN1YnNldCBv ZiB0aGUgZ3JvdW5kc2V0IikKKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuX19wYWNrKHNlbGYu X2IsIGIpCisrICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2IsIGIpCisgICAg ICAgICAgICAgICAgICAgICBpID0gc2V0X3RvX2luZGV4KHNlbGYuX2IpCisgICAgICAgICAgICAg ICAgICAgICBpZiBiaXRzZXRfaW4oc2VsZi5fYmIsIGkpOgorICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuX2Jjb3VudCAtPSAxCitAQCAtMjYzLDcgKzI2Myw3IEBAIGNkZWYgY2xhc3MgQmFz aXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAKKyAgICAgIyBzdXBwb3J0IGZvciBw YXJlbnQgQmFzaXNFeGNoYW5nZU1hdHJvaWQKKyAKKy0gICAgY2RlZiBiaW50IF9faXNfZXhjaGFu Z2VfcGFpcihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOiAgICAgICMgdGVzdCBpZiBj dXJyZW50X2Jhc2lzLXggKyB5IGlzIGEgYmFzaXMKKysgICAgY2RlZiBiaW50IF9pc19leGNoYW5n ZV9wYWlyKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6ICAgICAgIyB0ZXN0IGlmIGN1 cnJlbnRfYmFzaXMteCArIHkgaXMgYSBiYXNpcworICAgICAgICAgIiIiCisgICAgICAgICBUZXN0 IGlmIGBCLWUgKyBmYCBpcyBhIGJhc2lzIG9mIHRoZSBjdXJyZW50IG1hdHJvaWQuCisgCitAQCAt MzI2LDcgKzMyNiw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRy b2lkKToKKyAgICAgICAgICAgICBzYWdlOiBNLl9pc19iYXNpcyhzZXQoWydhJywgJ2InLCAnYycs ICdkJ10pKQorICAgICAgICAgICAgIEZhbHNlCisgICAgICAgICAiIiIKKy0gICAgICAgIHNlbGYu X19wYWNrKHNlbGYuX2IsIFgpCisrICAgICAgICBzZWxmLl9wYWNrKHNlbGYuX2IsIFgpCisgICAg ICAgICByZXR1cm4gYml0c2V0X2luKHNlbGYuX2JiLCBzZXRfdG9faW5kZXgoc2VsZi5fYikpCisg CisgICAgICMgZHVhbCBhbmQgbWlub3JzCitAQCAtNTU3LDcgKzU1Nyw3IEBAIGNkZWYgY2xhc3Mg QmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAKKyAgICAgICAgICIiIgorICAg ICAgICAgTSA9IEJhc2lzTWF0cm9pZChNPXNlbGYpCistICAgICAgICBNLl9fcmVsYWJlbChsKQor KyAgICAgICAgTS5fcmVsYWJlbChsKQorICAgICAgICAgcmV0dXJuIE0KKyAKKyAgICAgIyBlbnVt ZXJhdGlvbgorQEAgLTExNzcsNyArMTE3Nyw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJh c2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAKKyAgICAgICAgICIiIgorICAgICAgICAgTiA9IEJhc2lz TWF0cm9pZChNPXNlbGYpCistICAgICAgICBOLnJlbmFtZShnZXRhdHRyKHNlbGYsICdfX2N1c3Rv bV9uYW1lJykpCisrICAgICAgICBOLnJlbmFtZShzZWxmLmdldF9jdXN0b21fbmFtZSgpKQorICAg ICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fZGVlcGNvcHlfXyhzZWxmLCBtZW1vPU5vbmUp OgorQEAgLTEyMDEsNyArMTIwMSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhj aGFuZ2VNYXRyb2lkKToKKyAgICAgICAgIGlmIG1lbW8gaXMgTm9uZToKKyAgICAgICAgICAgICBt ZW1vID0ge30KKyAgICAgICAgIE4gPSBCYXNpc01hdHJvaWQoTT1zZWxmKQorLSAgICAgICAgTi5y ZW5hbWUoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAgTi5yZW5hbWUo c2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBf X3JlZHVjZV9fKHNlbGYpOgorQEAgLTEyMzAsNyArMTIzMCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNN YXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgaW1w b3J0IHNhZ2UubWF0cm9pZHMudW5waWNrbGluZworICAgICAgICAgQkIgPSBiaXRzZXRfcGlja2xl KHNlbGYuX2JiKQorLSAgICAgICAgZGF0YSA9IChzZWxmLl9FLCBzZWxmLl9tYXRyb2lkX3Jhbmss IGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSwgQkIpCisrICAgICAgICBkYXRhID0gKHNl bGYuX0UsIHNlbGYuX21hdHJvaWRfcmFuaywgc2VsZi5nZXRfY3VzdG9tX25hbWUoKSwgQkIpCisg ICAgICAgICB2ZXJzaW9uID0gMAorICAgICAgICAgcmV0dXJuIHNhZ2UubWF0cm9pZHMudW5waWNr bGluZy51bnBpY2tsZV9iYXNpc19tYXRyb2lkLCAodmVyc2lvbiwgZGF0YSkKKyAKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9jaXJjdWl0X2Nsb3N1cmVzX21hdHJvaWQucHl4IGIvc3Jj L3NhZ2UvbWF0cm9pZHMvY2lyY3VpdF9jbG9zdXJlc19tYXRyb2lkLnB5eAoraW5kZXggNDAyODIy YjJkYzYuLjRlNzliMDU3NWUyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvY2lyY3Vp dF9jbG9zdXJlc19tYXRyb2lkLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvY2lyY3VpdF9j bG9zdXJlc19tYXRyb2lkLnB5eAorQEAgLTUxMyw4ICs1MTMsNyBAQCBjZGVmIGNsYXNzIENpcmN1 aXRDbG9zdXJlc01hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBOLl9ncm91bmRzZXQgPSBzZWxm Ll9ncm91bmRzZXQKKyAgICAgICAgIE4uX2NpcmN1aXRfY2xvc3VyZXMgPSBzZWxmLl9jaXJjdWl0 X2Nsb3N1cmVzCisgICAgICAgICBOLl9tYXRyb2lkX3JhbmsgPSBzZWxmLl9tYXRyb2lkX3JhbmsK Ky0gICAgICAgIGlmIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSBpcyBub3QgTm9uZTog ICMgYmVjYXVzZSBvZiBuYW1lIHdyYW5nbGluZywgdGhpcyBpcyBub3QgY2F1Z2h0IGJ5IHRoZSBk ZWZhdWx0IGNvcHkKKy0gICAgICAgICAgICBOLnJlbmFtZShnZXRhdHRyKHNlbGYsICdfX2N1c3Rv bV9uYW1lJykpCisrICAgICAgICBOLnJlbmFtZShzZWxmLmdldF9jdXN0b21fbmFtZSgpKQorICAg ICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fZGVlcGNvcHlfXyhzZWxmLCBtZW1vPU5vbmUp OgorQEAgLTUzOSw4ICs1MzgsNyBAQCBjZGVmIGNsYXNzIENpcmN1aXRDbG9zdXJlc01hdHJvaWQo TWF0cm9pZCk6CisgICAgICAgICBmcm9tIGNvcHkgaW1wb3J0IGRlZXBjb3B5CisgICAgICAgICAj IFNpbmNlIG1hdHJvaWRzIGFyZSBpbW11dGFibGUsIE4gY2Fubm90IHJlZmVyZW5jZSBpdHNlbGYg aW4gY29ycmVjdCBjb2RlLCBzbyBubyBuZWVkIHRvIHdvcnJ5IGFib3V0IHRoZSByZWN1cnNpb24u CisgICAgICAgICBOID0gQ2lyY3VpdENsb3N1cmVzTWF0cm9pZChncm91bmRzZXQ9ZGVlcGNvcHko c2VsZi5fZ3JvdW5kc2V0LCBtZW1vKSwgY2lyY3VpdF9jbG9zdXJlcz1kZWVwY29weShzZWxmLl9j aXJjdWl0X2Nsb3N1cmVzLCBtZW1vKSkKKy0gICAgICAgIGlmIGdldGF0dHIoc2VsZiwgJ19fY3Vz dG9tX25hbWUnKSBpcyBub3QgTm9uZTogICMgYmVjYXVzZSBvZiBuYW1lIHdyYW5nbGluZywgdGhp cyBpcyBub3QgY2F1Z2h0IGJ5IHRoZSBkZWZhdWx0IGRlZXBjb3B5CistICAgICAgICAgICAgTi5y ZW5hbWUoZGVlcGNvcHkoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpLCBtZW1vKSkKKysg ICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCksIG1lbW8pKQor ICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CitAQCAtNTcw LDcgKzU2OCw3IEBAIGNkZWYgY2xhc3MgQ2lyY3VpdENsb3N1cmVzTWF0cm9pZChNYXRyb2lkKToK KyAgICAgICAgICAgICAgNDoge3snYScsICdiJywgJ2MnLCAnZCcsICdlJywgJ2YnLCAnZycsICdo J319fQorICAgICAgICAgIiIiCisgICAgICAgICBpbXBvcnQgc2FnZS5tYXRyb2lkcy51bnBpY2ts aW5nCistICAgICAgICBkYXRhID0gKHNlbGYuX2dyb3VuZHNldCwgc2VsZi5fY2lyY3VpdF9jbG9z dXJlcywgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAgZGF0YSA9IChz ZWxmLl9ncm91bmRzZXQsIHNlbGYuX2NpcmN1aXRfY2xvc3VyZXMsIHNlbGYuZ2V0X2N1c3RvbV9u YW1lKCkpCisgICAgICAgICB2ZXJzaW9uID0gMAorICAgICAgICAgcmV0dXJuIHNhZ2UubWF0cm9p ZHMudW5waWNrbGluZy51bnBpY2tsZV9jaXJjdWl0X2Nsb3N1cmVzX21hdHJvaWQsICh2ZXJzaW9u LCBkYXRhKQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2R1YWxfbWF0cm9pZC5w eSBiL3NyYy9zYWdlL21hdHJvaWRzL2R1YWxfbWF0cm9pZC5weQoraW5kZXggODA0ZTQzZjAzNWIu LmRhNjYzOTgyN2U0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvZHVhbF9tYXRyb2lk LnB5CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9kdWFsX21hdHJvaWQucHkKK0BAIC01MTksOSAr NTE5LDcgQEAgZGVmIF9fY29weV9fKHNlbGYpOgorIAorICAgICAgICAgIiIiCisgICAgICAgICBO ID0gRHVhbE1hdHJvaWQoc2VsZi5fbWF0cm9pZCkKKy0gICAgICAgIGlmIGdldGF0dHIoc2VsZiwg J19fY3VzdG9tX25hbWUnKSBpcyBub3QgTm9uZToKKy0gICAgICAgICAgICAjIGJlY2F1c2Ugb2Yg bmFtZSB3cmFuZ2xpbmcsIHRoaXMgaXMgbm90IGNhdWdodCBieSB0aGUgZGVmYXVsdCBjb3B5Cist ICAgICAgICAgICAgTi5yZW5hbWUoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAg ICAgICAgTi5yZW5hbWUoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBO CisgCisgICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbz17fSk6CitAQCAtNTQzLDEwICs1 NDEsNyBAQCBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW89e30pOgorICAgICAgICAgIiIiCisg ICAgICAgICBmcm9tIGNvcHkgaW1wb3J0IGRlZXBjb3B5CisgICAgICAgICBOID0gRHVhbE1hdHJv aWQoZGVlcGNvcHkoc2VsZi5fbWF0cm9pZCwgbWVtbykpCistICAgICAgICBpZiBnZXRhdHRyKHNl bGYsICdfX2N1c3RvbV9uYW1lJykgaXMgbm90IE5vbmU6CistICAgICAgICAgICAgIyBiZWNhdXNl IG9mIG5hbWUgd3JhbmdsaW5nLCB0aGlzIGlzIG5vdCBjYXVnaHQgYnkgdGhlCistICAgICAgICAg ICAgIyBkZWZhdWx0IGRlZXBjb3B5CistICAgICAgICAgICAgTi5yZW5hbWUoZGVlcGNvcHkoZ2V0 YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpLCBtZW1vKSkKKysgICAgICAgIE4ucmVuYW1lKGRl ZXBjb3B5KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCksIG1lbW8pKQorICAgICAgICAgcmV0dXJuIE4K KyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CitAQCAtNTc1LDYgKzU3MCw2IEBAIGRlZiBf X3JlZHVjZV9fKHNlbGYpOgorICAgICAgICAgICAgICA0OiB7eydhJywgJ2InLCAnYycsICdkJywg J2UnLCAnZicsICdnJywgJ2gnfX19JworICAgICAgICAgIiIiCisgICAgICAgICBpbXBvcnQgc2Fn ZS5tYXRyb2lkcy51bnBpY2tsaW5nCistICAgICAgICBkYXRhID0gKHNlbGYuX21hdHJvaWQsIGdl dGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIGRhdGEgPSAoc2VsZi5fbWF0 cm9pZCwgc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHZlcnNpb24gPSAwCisgICAg ICAgICByZXR1cm4gc2FnZS5tYXRyb2lkcy51bnBpY2tsaW5nLnVucGlja2xlX2R1YWxfbWF0cm9p ZCwgKHZlcnNpb24sIGRhdGEpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvZ3JhcGhp Y19tYXRyb2lkLnB5IGIvc3JjL3NhZ2UvbWF0cm9pZHMvZ3JhcGhpY19tYXRyb2lkLnB5CitpbmRl eCA1MjE2ZWYxMTUxNy4uYzcyN2RjNTRlNTIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyb2lk cy9ncmFwaGljX21hdHJvaWQucHkKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL2dyYXBoaWNfbWF0 cm9pZC5weQorQEAgLTQ4MSw4ICs0ODEsNyBAQCBkZWYgX19jb3B5X18oc2VsZik6CisgICAgICAg ICAgICAgRmFsc2UKKyAgICAgICAgICIiIgorICAgICAgICAgTiA9IEdyYXBoaWNNYXRyb2lkKHNl bGYuX0cpCistICAgICAgICBpZiBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykgaXMgbm90 IE5vbmU6ICAjIGJlY2F1c2Ugb2YgbmFtZSB3cmFuZ2xpbmcsIHRoaXMgaXMgbm90IGNhdWdodCBi eSB0aGUgZGVmYXVsdCBjb3B5CistICAgICAgICAgICAgTi5yZW5hbWUoZ2V0YXR0cihzZWxmLCAn X19jdXN0b21fbmFtZScpKQorKyAgICAgICAgTi5yZW5hbWUoc2VsZi5nZXRfY3VzdG9tX25hbWUo KSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVt bz17fSk6CitAQCAtNTAyLDggKzUwMSw3IEBAIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbz17 fSk6CisgICAgICAgICAiIiIKKyAgICAgICAgICMgVGhlIG9ubHkgcmVhbCBkaWZmZXJlbmNlIGJl dHdlZW4gdGhpcyBhbmQgX19jb3B5X18oKSBpcyB0aGUgbWVtbworICAgICAgICAgTiA9IEdyYXBo aWNNYXRyb2lkKGRlZXBjb3B5KHNlbGYuX0csIG1lbW8pKQorLSAgICAgICAgaWYgZ2V0YXR0cihz ZWxmLCAnX19jdXN0b21fbmFtZScpIGlzIG5vdCBOb25lOiAgIyBiZWNhdXNlIG9mIG5hbWUgd3Jh bmdsaW5nLCB0aGlzIGlzIG5vdCBjYXVnaHQgYnkgdGhlIGRlZmF1bHQgZGVlcGNvcHkKKy0gICAg ICAgICAgICBOLnJlbmFtZShkZWVwY29weShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJyks IG1lbW8pKQorKyAgICAgICAgTi5yZW5hbWUoZGVlcGNvcHkoc2VsZi5nZXRfY3VzdG9tX25hbWUo KSwgbWVtbykpCisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19yZWR1Y2VfXyhzZWxm KToKK0BAIC01MTksNyArNTE3LDcgQEAgZGVmIF9fcmVkdWNlX18oc2VsZik6CisgICAgICAgICAg ICAgR3JhcGhpYyBtYXRyb2lkIG9mIHJhbmsgOSBvbiAxNSBlbGVtZW50cworICAgICAgICAgIiIi CisgICAgICAgICBmcm9tIC51bnBpY2tsaW5nIGltcG9ydCB1bnBpY2tsZV9ncmFwaGljX21hdHJv aWQKKy0gICAgICAgIGRhdGEgPSAoc2VsZi5fRywgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFt ZScpKQorKyAgICAgICAgZGF0YSA9IChzZWxmLl9HLCBzZWxmLmdldF9jdXN0b21fbmFtZSgpKQor ICAgICAgICAgdmVyc2lvbiA9IDAKKyAgICAgICAgIHJldHVybiB1bnBpY2tsZV9ncmFwaGljX21h dHJvaWQsICh2ZXJzaW9uLCBkYXRhKQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRz L2xpbmVhcl9tYXRyb2lkLnB4ZCBiL3NyYy9zYWdlL21hdHJvaWRzL2xpbmVhcl9tYXRyb2lkLnB4 ZAoraW5kZXggMDE0YzhhZWY1N2QuLjlhZWJkNDQ2YjY4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv bWF0cm9pZHMvbGluZWFyX21hdHJvaWQucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9saW5l YXJfbWF0cm9pZC5weGQKK0BAIC0xNSw3ICsxNSw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9p ZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgIGNwZGVmIGNoYXJhY3RlcmlzdGljKHNlbGYp CisgCisgICAgIGNkZWYgbGlzdCBfc2V0dXBfaW50ZXJuYWxfcmVwcmVzZW50YXRpb24oc2VsZiwg bWF0cml4LCByZWR1Y2VkX21hdHJpeCwgcmluZywga2VlcF9pbml0aWFsX3JlcHJlc2VudGF0aW9u KQorLSAgICBjZGVmIF9fZXhjaGFuZ2VfdmFsdWUoc2VsZiwgbG9uZyB4LCBsb25nIHkpCisrICAg IGNkZWYgX2V4Y2hhbmdlX3ZhbHVlX2ludGVybmFsKHNlbGYsIGxvbmcgeCwgbG9uZyB5KQorIAor ICAgICBjcGRlZiByZXByZXNlbnRhdGlvbihzZWxmLCBCPSosIHJlZHVjZWQ9KiwgbGFiZWxzPSos IG9yZGVyPSosIGxpZnRfbWFwPSopCisgICAgIGNwZGVmIF9jdXJyZW50X3Jvd3NfY29scyhzZWxm LCBCPSopCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvbGluZWFyX21hdHJvaWQucHl4 IGIvc3JjL3NhZ2UvbWF0cm9pZHMvbGluZWFyX21hdHJvaWQucHl4CitpbmRleCA2MTQ1MmU4MGM0 OC4uMzZmNTYzYWE0MzMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyb2lkcy9saW5lYXJfbWF0 cm9pZC5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL2xpbmVhcl9tYXRyb2lkLnB5eAorQEAg LTM5MSwxMyArMzkxLDEzIEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdl TWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBjaGFyYWN0ZXJpc3RpYyhz ZWxmLl9BKQorIAorLSAgICBjZGVmIGJpbnQgX19pc19leGNoYW5nZV9wYWlyKHNlbGYsIGxvbmcg eCwgbG9uZyB5KSBleGNlcHQgLTE6CisrICAgIGNkZWYgYmludCBfaXNfZXhjaGFuZ2VfcGFpcihz ZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorICAgICAgICAgciIiIgorICAgICAgICAg Q2hlY2sgaWYgYGBzZWxmLmJhc2lzKCkgLSB4ICsgeWBgIGlzIGFnYWluIGEgYmFzaXMuIEludGVy bmFsIG1ldGhvZC4KKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX0EuaXNfbm9u emVybyhzZWxmLl9wcm93W3hdLCBzZWxmLl9wcm93W3ldKQorIAorLSAgICBjZGVmIGludCBfX2V4 Y2hhbmdlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisrICAgIGNkZWYgaW50IF9l eGNoYW5nZShzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorICAgICAgICAgIiIiCisg ICAgICAgICBQdXQgZWxlbWVudCBpbmRleGVkIGJ5IGBgeGBgIGludG8gYmFzaXMsIHRha2luZyBv dXQgZWxlbWVudCBgYHlgYC4KKyAgICAgICAgIEFzc3VtcHRpb25zIGFyZSB0aGF0IHRoaXMgaXMg YSB2YWxpZCBiYXNpcyBleGNoYW5nZS4KK0BAIC00MjAsOSArNDIwLDkgQEAgY2RlZiBjbGFzcyBM aW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgIHNlbGYuX0Euc2V0 X3Vuc2FmZShweCwgcHksIHBpdmkpCisgICAgICAgICBzZWxmLl9wcm93W3ldID0gcHgKKyAgICAg ICAgIHNlbGYuX3Byb3dbeF0gPSBweQorLSAgICAgICAgQmFzaXNFeGNoYW5nZU1hdHJvaWQuX19l eGNoYW5nZShzZWxmLCB4LCB5KQorKyAgICAgICAgQmFzaXNFeGNoYW5nZU1hdHJvaWQuX2V4Y2hh bmdlKHNlbGYsIHgsIHkpCisgCistICAgIGNkZWYgIF9fZXhjaGFuZ2VfdmFsdWUoc2VsZiwgbG9u ZyB4LCBsb25nIHkpOgorKyAgICBjZGVmICBfZXhjaGFuZ2VfdmFsdWVfaW50ZXJuYWwoc2VsZiwg bG9uZyB4LCBsb25nIHkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSAoeCwg eSkgZW50cnkgb2YgdGhlIGN1cnJlbnQgcmVwcmVzZW50YXRpb24uCisgICAgICAgICAiIiIKK0BA IC02MDUsNyArNjA1LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VN YXRyb2lkKToKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcHJlc2VudGF0aW9uID0gc2Vs Zi5fYmFzaWNfcmVwcmVzZW50YXRpb24oQikKKyAgICAgICAgICAgICAgICAgQSA9IHNlbGYuX3Jl cHJlc2VudGF0aW9uCisgICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAgICAgQiA9IHNl bGYuX19zdWJzZXQoQikKKysgICAgICAgICAgICAgICAgQiA9IHNlbGYuX3N1YnNldF9pbnRlcm5h bChCKQorICAgICAgICAgICAgICAgICBBID0gc2VsZi5fYmFzaWNfcmVwcmVzZW50YXRpb24oQikK KyAgICAgICAgICAgICBBID0gQS5tYXRyaXhfZnJvbV9yb3dzX2FuZF9jb2x1bW5zKHJhbmdlKEEu bnJvd3MoKSksIG9yZGVyX2lkeCkKKyAgICAgICAgICAgICBpZiBsaWZ0X21hcCBpcyBOb25lOgor QEAgLTYyMiw3ICs2MjIsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5n ZU1hdHJvaWQpOgorICAgICAgICAgICAgIGlmIEIgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAg QiA9IGZyb3plbnNldChzZWxmLmJhc2lzKCkpCisgICAgICAgICAgICAgZWxzZToKKy0gICAgICAg ICAgICAgICAgQiA9IHNlbGYuX19zdWJzZXQoQikKKysgICAgICAgICAgICAgICAgQiA9IHNlbGYu X3N1YnNldF9pbnRlcm5hbChCKQorICAgICAgICAgICAgIEEgPSBzZWxmLl9yZWR1Y2VkX3JlcHJl c2VudGF0aW9uKEIpCisgICAgICAgICAgICAgUiwgQyA9IHNlbGYuX2N1cnJlbnRfcm93c19jb2xz KCkKKyAgICAgICAgICAgICBSaSA9IFtdCitAQCAtMTQ5Myw3ICsxNDkzLDcgQEAgY2RlZiBjbGFz cyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICBzYWdl OiBNLl9leGNoYW5nZV92YWx1ZSgxLCAzKQorICAgICAgICAgICAgIDQKKyAgICAgICAgICIiIgor LSAgICAgICAgcmV0dXJuIHNlbGYuX19leGNoYW5nZV92YWx1ZShzZWxmLl9pZHhbZV0sIHNlbGYu X2lkeFtmXSkKKysgICAgICAgIHJldHVybiBzZWxmLl9leGNoYW5nZV92YWx1ZV9pbnRlcm5hbChz ZWxmLl9pZHhbZV0sIHNlbGYuX2lkeFtmXSkKKyAKKyAgICAgY3BkZWYgZnVuZGFtZW50YWxfY3lj bGUoc2VsZiwgQiwgZSk6CisgICAgICAgICAiIiIKK0BAIC0yOTA5LDcgKzI5MDksNyBAQCBjZGVm IGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICByb3dzLCBjb2xzID0gc2VsZi5fY3VycmVudF9yb3dzX2NvbHMoKQor ICAgICAgICAgICAgIE4gPSBMaW5lYXJNYXRyb2lkKGdyb3VuZHNldD1yb3dzICsgY29scywgcmVk dWNlZF9tYXRyaXg9c2VsZi5fQSkKKy0gICAgICAgIE4ucmVuYW1lKGdldGF0dHIoc2VsZiwgJ19f Y3VzdG9tX25hbWUnKSkKKysgICAgICAgIE4ucmVuYW1lKHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkp CisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW8p OgorQEAgLTI5MzAsNyArMjkzMCw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4 Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJvd3MsIGNvbHMg PSBzZWxmLl9jdXJyZW50X3Jvd3NfY29scygpCisgICAgICAgICAgICAgTiA9IExpbmVhck1hdHJv aWQoZ3JvdW5kc2V0PWRlZXBjb3B5KHJvd3MgKyBjb2xzLCBtZW1vKSwgcmVkdWNlZF9tYXRyaXg9 ZGVlcGNvcHkoc2VsZi5fQSwgbWVtbykpCistICAgICAgICBOLnJlbmFtZShkZWVwY29weShnZXRh dHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJyksIG1lbW8pKQorKyAgICAgICAgTi5yZW5hbWUoZGVl cGNvcHkoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSwgbWVtbykpCisgICAgICAgICByZXR1cm4gTgor IAorICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKK0BAIC0yOTc5LDcgKzI5NzksNyBAQCBjZGVm IGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAg IHJvd3MsIGNvbHMgPSBzZWxmLl9jdXJyZW50X3Jvd3NfY29scygpCisgICAgICAgICAgICAgZ3Mg PSByb3dzICsgY29scworICAgICAgICAgICAgIHJlZHVjZWQgPSBUcnVlCistICAgICAgICBkYXRh ID0gKEEsIGdzLCByZWR1Y2VkLCBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAg ICAgICBkYXRhID0gKEEsIGdzLCByZWR1Y2VkLCBzZWxmLmdldF9jdXN0b21fbmFtZSgpKQorICAg ICAgICAgcmV0dXJuIHNhZ2UubWF0cm9pZHMudW5waWNrbGluZy51bnBpY2tsZV9saW5lYXJfbWF0 cm9pZCwgKHZlcnNpb24sIGRhdGEpCisgCisgIyBCaW5hcnkgbWF0cm9pZAorQEAgLTMxNTIsMjAg KzMxNTIsMjAgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gMgorIAorLSAgICBjZGVmIGJpbnQgX19pc19leGNo YW5nZV9wYWlyKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisrICAgIGNkZWYgYmlu dCBfaXNfZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorICAg ICAgICAgciIiIgorICAgICAgICAgQ2hlY2sgaWYgYGBzZWxmLmJhc2lzKCkgLSB4ICsgeWBgIGlz IGFnYWluIGEgYmFzaXMuIEludGVybmFsIG1ldGhvZC4KKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuICg8QmluYXJ5TWF0cml4PnNlbGYuX0EpLmlzX25vbnplcm8oc2VsZi5fcHJvd1t4XSwg eSkKKyAKKy0gICAgY2RlZiBpbnQgX19leGNoYW5nZShzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhj ZXB0IC0xOgorKyAgICBjZGVmIGludCBfZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4 Y2VwdCAtMToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJlcGxhY2UgYGBzZWxmLmJhc2lzKCkg d2l0aCBgYHNlbGYuYmFzaXMoKSAtIHggKyB5YGAuIEludGVybmFsIG1ldGhvZCwgZG9lcyBubyBj aGVja3MuCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgbG9uZyBwID0gc2VsZi5fcHJvd1t4 XQorICAgICAgICAgc2VsZi5fQS5waXZvdChwLCB5KSAgICMgTm90IGEgU2FnZSBtYXRyaXggb3Bl cmF0aW9uCisgICAgICAgICBzZWxmLl9wcm93W3ldID0gcAorLSAgICAgICAgQmFzaXNFeGNoYW5n ZU1hdHJvaWQuX19leGNoYW5nZShzZWxmLCB4LCB5KQorKyAgICAgICAgQmFzaXNFeGNoYW5nZU1h dHJvaWQuX2V4Y2hhbmdlKHNlbGYsIHgsIHkpCisgCisgICAgIGNkZWYgIF9fZnVuZGFtZW50YWxf Y29jaXJjdWl0KHNlbGYsIGJpdHNldF90IEMsIGxvbmcgeCk6CisgICAgICAgICByIiIiCitAQCAt MzE3MywxOCArMzE3MywxOCBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0cm9p ZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGJpdHNldF9jb3B5KEMsICg8QmluYXJ5TWF0cml4 PnNlbGYuX0EpLl9NW3NlbGYuX3Byb3dbeF1dKQorIAorLSAgICBjZGVmIF9fY29jbG9zdXJlKHNl bGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpOgorKyAgICBjZGVmIF9jb2Nsb3N1cmVfaW50ZXJu YWwoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0X3QgRik6CisgICAgICAgICAiIiIKKyAgICAgICAg IEJpdHBhY2tlZCB2ZXJzaW9uIG9mIGBgY29jbG9zdXJlYGAuCisgCistICAgICAgICBUaGlzIGZ1 bmN0aW9uIG92ZXJyaWRlcyB0aGUgaW50ZXJuYWwgZnVuY3Rpb24gQmFzaXNFeGNoYW5nZU1hdHJv aWQuX19jb2Nsb3N1cmUoKSBvZiB0aGUgcGFyZW50IGNsYXNzLgorKyAgICAgICAgVGhpcyBmdW5j dGlvbiBvdmVycmlkZXMgdGhlIGludGVybmFsIGZ1bmN0aW9uIEJhc2lzRXhjaGFuZ2VNYXRyb2lk Ll9jb2Nsb3N1cmVfaW50ZXJuYWwoKSBvZiB0aGUgcGFyZW50IGNsYXNzLgorICAgICAgICAgVGhl IGltcGxlbWVudGF0aW9uIHNob3VsZCBiZSBtb3JlIGVmZmljaWVudCBmb3IgQmluYXJ5TWF0cm9p ZCwgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaW4gdGhpcyBjbGFzcywKKyAgICAgICAgIF9fZnVuZGFt ZW50YWxfY29jaXJjdWl0IGlzIG11Y2ggZmFzdGVyIHRoYW4gX19mdW5kYW1lbnRhbF9jaXJjdWl0 LgorICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfY29tcGxlbWVudChSLCBGKQorICAgICAg ICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5faW5zaWRlLCBzZWxmLl9jdXJyZW50X2Jhc2lzLCBS KQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5fb3V0c2lkZSwgUiwgc2VsZi5fY3Vy cmVudF9iYXNpcykKKy0gICAgICAgIHNlbGYuX19tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0 c2lkZSkKKysgICAgICAgIHNlbGYuX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQor IAorICAgICAgICAgYml0c2V0X2NvcHkoUiwgRikKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNl KHNlbGYuX2luc2lkZSwgc2VsZi5fY3VycmVudF9iYXNpcywgRikKK0BAIC0zMTk2LDcgKzMxOTYs NyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAg ICAgICAgIGJpdHNldF9hZGQoUiwgeSkKKyAgICAgICAgICAgICB5ID0gYml0c2V0X25leHQoc2Vs Zi5faW5zaWRlLCB5ICsgMSkKKyAKKy0gICAgY2RlZiAgX19leGNoYW5nZV92YWx1ZShzZWxmLCBs b25nIHgsIGxvbmcgeSk6CisrICAgIGNkZWYgIF9leGNoYW5nZV92YWx1ZV9pbnRlcm5hbChzZWxm LCBsb25nIHgsIGxvbmcgeSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlICh4 LCB5KSBlbnRyeSBvZiB0aGUgY3VycmVudCByZXByZXNlbnRhdGlvbi4KKyAgICAgICAgICIiIgor QEAgLTM5NjQsNyArMzk2NCw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRy b2lkKToKKyAgICAgICAgICAgICBmb3IgZSBpbiBzZWxmLmJhc2lzKCk6CisgICAgICAgICAgICAg ICAgIGJhc2lzW3NlbGYuX3Byb3dbc2VsZi5faWR4W2VdXV0gPSBlCisgICAgICAgICAgICAgTiA9 IEJpbmFyeU1hdHJvaWQoZ3JvdW5kc2V0PXNlbGYuX0UsIG1hdHJpeD1zZWxmLl9BLCBiYXNpcz1i YXNpcykKKy0gICAgICAgIE4ucmVuYW1lKGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkK KysgICAgICAgIE4ucmVuYW1lKHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1 cm4gTgorIAorICAgICBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW8pOgorQEAgLTM5ODksNyAr Mzk4OSw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAg ICAgICAgICBmb3IgZSBpbiBzZWxmLmJhc2lzKCk6CisgICAgICAgICAgICAgICAgIGJhc2lzW3Nl bGYuX3Byb3dbc2VsZi5faWR4W2VdXV0gPSBlCisgICAgICAgICAgICAgTiA9IEJpbmFyeU1hdHJv aWQoZ3JvdW5kc2V0PWRlZXBjb3B5KHNlbGYuX0UsIG1lbW8pLCBtYXRyaXg9ZGVlcGNvcHkoc2Vs Zi5fQSwgbWVtbyksIGJhc2lzPWRlZXBjb3B5KGJhc2lzLCBtZW1vKSkKKy0gICAgICAgIE4ucmVu YW1lKGRlZXBjb3B5KGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSwgbWVtbykpCisrICAg ICAgICBOLnJlbmFtZShkZWVwY29weShzZWxmLmdldF9jdXN0b21fbmFtZSgpLCBtZW1vKSkKKyAg ICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorQEAgLTQwNDcs NyArNDA0Nyw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAg ICAgICAgICAgICBBID0gc2VsZi5fQQorICAgICAgICAgICAgICMgY3VycmVudCBiYXNpcyBvcmRl cmVkIHNvIG1hdHJpeCBjb2xzIGZvcm0gaWRlbnRpdHkgbWF0cml4OgorICAgICAgICAgICAgIGJh c2lzID0gc2VsZi5fY3VycmVudF9yb3dzX2NvbHMoKVswXQorLSAgICAgICAgZGF0YSA9IChBLCBn cywgYmFzaXMsIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIGRhdGEg PSAoQSwgZ3MsIGJhc2lzLCBzZWxmLmdldF9jdXN0b21fbmFtZSgpKQorICAgICAgICAgcmV0dXJu IHNhZ2UubWF0cm9pZHMudW5waWNrbGluZy51bnBpY2tsZV9iaW5hcnlfbWF0cm9pZCwgKHZlcnNp b24sIGRhdGEpCisgCisgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToK K0BAIC00MjIwLDIwICs0MjIwLDIwIEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFy TWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAzCisgCistICAgIGNkZWYg YmludCBfX2lzX2V4Y2hhbmdlX3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToK KysgICAgY2RlZiBiaW50IF9pc19leGNoYW5nZV9wYWlyKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBl eGNlcHQgLTE6CisgICAgICAgICByIiIiCisgICAgICAgICBDaGVjayBpZiBgYHNlbGYuYmFzaXMo KSAtIHggKyB5YGAgaXMgYWdhaW4gYSBiYXNpcy4gSW50ZXJuYWwgbWV0aG9kLgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gKDxUZXJuYXJ5TWF0cml4PnNlbGYuX0EpLmlzX25vbnplcm8o c2VsZi5fcHJvd1t4XSwgeSkKKyAKKy0gICAgY2RlZiBpbnQgX19leGNoYW5nZShzZWxmLCBsb25n IHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorKyAgICBjZGVmIGludCBfZXhjaGFuZ2Uoc2VsZiwgbG9u ZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJlcGxhY2Ug YGBzZWxmLmJhc2lzKCkgd2l0aCBgYHNlbGYuYmFzaXMoKSAtIHggKyB5YGAuIEludGVybmFsIG1l dGhvZCwgZG9lcyBubyBjaGVja3MuCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgbG9uZyBw ID0gc2VsZi5fcHJvd1t4XQorICAgICAgICAgc2VsZi5fQS5waXZvdChwLCB5KSAgICMgTm90IGEg U2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAgICBzZWxmLl9wcm93W3ldID0gcAorLSAgICAg ICAgQmFzaXNFeGNoYW5nZU1hdHJvaWQuX19leGNoYW5nZShzZWxmLCB4LCB5KQorKyAgICAgICAg QmFzaXNFeGNoYW5nZU1hdHJvaWQuX2V4Y2hhbmdlKHNlbGYsIHgsIHkpCisgCisgICAgIGNkZWYg IF9fZnVuZGFtZW50YWxfY29jaXJjdWl0KHNlbGYsIGJpdHNldF90IEMsIGxvbmcgeCk6CisgICAg ICAgICByIiIiCitAQCAtNDI0MSwxOCArNDI0MSwxOCBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRy b2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfY29weShD LCAoPFRlcm5hcnlNYXRyaXg+c2VsZi5fQSkuX00wW3NlbGYuX3Byb3dbeF1dKQorIAorLSAgICBj ZGVmIF9fY29jbG9zdXJlKHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpOgorKyAgICBjZGVm IF9jb2Nsb3N1cmVfaW50ZXJuYWwoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0X3QgRik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEJpdHBhY2tlZCB2ZXJzaW9uIG9mIGBgY29jbG9zdXJlYGAuCisg CistICAgICAgICBUaGlzIGZ1bmN0aW9uIG92ZXJyaWRlcyB0aGUgaW50ZXJuYWwgZnVuY3Rpb24g QmFzaXNFeGNoYW5nZU1hdHJvaWQuX19jb2Nsb3N1cmUoKSBvZiB0aGUgcGFyZW50IGNsYXNzLgor KyAgICAgICAgVGhpcyBmdW5jdGlvbiBvdmVycmlkZXMgdGhlIGludGVybmFsIGZ1bmN0aW9uIEJh c2lzRXhjaGFuZ2VNYXRyb2lkLl9jb2Nsb3N1cmVfaW50ZXJuYWwoKSBvZiB0aGUgcGFyZW50IGNs YXNzLgorICAgICAgICAgVGhlIGltcGxlbWVudGF0aW9uIHNob3VsZCBiZSBtb3JlIGVmZmljaWVu dCBmb3IgVGVybmFyeU1hdHJvaWQsIGR1ZSB0byB0aGUgZmFjdCB0aGF0IGluIHRoaXMgY2xhc3Ms CisgICAgICAgICBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdCBpcyBtdWNoIGZhc3RlciB0aGFuIF9f ZnVuZGFtZW50YWxfY2lyY3VpdC4KKyAgICAgICAgICIiIgorICAgICAgICAgYml0c2V0X2NvbXBs ZW1lbnQoUiwgRikKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX2luc2lkZSwgc2Vs Zi5fY3VycmVudF9iYXNpcywgUikKKyAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKHNlbGYuX291 dHNpZGUsIFIsIHNlbGYuX2N1cnJlbnRfYmFzaXMpCistICAgICAgICBzZWxmLl9fbW92ZShzZWxm Ll9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisrICAgICAgICBzZWxmLl9tb3ZlKHNlbGYuX2luc2lk ZSwgc2VsZi5fb3V0c2lkZSkKKyAKKyAgICAgICAgIGJpdHNldF9jb3B5KFIsIEYpCisgICAgICAg ICBiaXRzZXRfZGlmZmVyZW5jZShzZWxmLl9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIEYp CitAQCAtNDI2NCw3ICs0MjY0LDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChMaW5lYXJN YXRyb2lkKToKKyAgICAgICAgICAgICAgICAgYml0c2V0X2FkZChSLCB5KQorICAgICAgICAgICAg IHkgPSBiaXRzZXRfbmV4dChzZWxmLl9pbnNpZGUsIHkgKyAxKQorIAorLSAgICBjZGVmICBfX2V4 Y2hhbmdlX3ZhbHVlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KToKKysgICAgY2RlZiAgX2V4Y2hhbmdl X3ZhbHVlX2ludGVybmFsKHNlbGYsIGxvbmcgeCwgbG9uZyB5KToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgKHgsIHkpIGVudHJ5IG9mIHRoZSBjdXJyZW50IHJlcHJlc2VudGF0 aW9uLgorICAgICAgICAgIiIiCitAQCAtNDg1OCw3ICs0ODU4LDcgQEAgY2RlZiBjbGFzcyBUZXJu YXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICBmb3IgZSBpbiBzZWxmLmJh c2lzKCk6CisgICAgICAgICAgICAgICAgIGJhc2lzW3NlbGYuX3Byb3dbc2VsZi5faWR4W2VdXV0g PSBlCisgICAgICAgICAgICAgTiA9IFRlcm5hcnlNYXRyb2lkKGdyb3VuZHNldD1zZWxmLl9FLCBt YXRyaXg9c2VsZi5fQSwgYmFzaXM9YmFzaXMpCistICAgICAgICBOLnJlbmFtZShnZXRhdHRyKHNl bGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAgICAgICBOLnJlbmFtZShzZWxmLmdldF9jdXN0b21f bmFtZSgpKQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fZGVlcGNvcHlfXyhzZWxm LCBtZW1vKToKK0BAIC00ODgzLDcgKzQ4ODMsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lk KExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgIGZvciBlIGluIHNlbGYuYmFzaXMoKToKKyAg ICAgICAgICAgICAgICAgYmFzaXNbc2VsZi5fcHJvd1tzZWxmLl9pZHhbZV1dXSA9IGUKKyAgICAg ICAgICAgICBOID0gVGVybmFyeU1hdHJvaWQoZ3JvdW5kc2V0PWRlZXBjb3B5KHNlbGYuX0UsIG1l bW8pLCBtYXRyaXg9ZGVlcGNvcHkoc2VsZi5fQSwgbWVtbyksIGJhc2lzPWRlZXBjb3B5KGJhc2lz LCBtZW1vKSkKKy0gICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KGdldGF0dHIoc2VsZiwgJ19fY3Vz dG9tX25hbWUnKSwgbWVtbykpCisrICAgICAgICBOLnJlbmFtZShkZWVwY29weShzZWxmLmdldF9j dXN0b21fbmFtZSgpLCBtZW1vKSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAgIGRlZiBfX3Jl ZHVjZV9fKHNlbGYpOgorQEAgLTQ5NDUsNyArNDk0NSw3IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1h dHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgQSA9IHNlbGYuX0EKKyAgICAgICAg ICAgICAjIGN1cnJlbnQgYmFzaXMgb3JkZXJlZCBzbyBtYXRyaXggY29scyBmb3JtIGlkZW50aXR5 IG1hdHJpeDoKKyAgICAgICAgICAgICBiYXNpcyA9IHNlbGYuX2N1cnJlbnRfcm93c19jb2xzKClb MF0KKy0gICAgICAgIGRhdGEgPSAoQSwgZ3MsIGJhc2lzLCBnZXRhdHRyKHNlbGYsICdfX2N1c3Rv bV9uYW1lJykpCisrICAgICAgICBkYXRhID0gKEEsIGdzLCBiYXNpcywgc2VsZi5nZXRfY3VzdG9t X25hbWUoKSkKKyAgICAgICAgIHJldHVybiBzYWdlLm1hdHJvaWRzLnVucGlja2xpbmcudW5waWNr bGVfdGVybmFyeV9tYXRyb2lkLCAodmVyc2lvbiwgZGF0YSkKKyAKKyAjIFF1YXRlcm5hcnkgTWF0 cm9pZHMKK0BAIC01MTIyLDIwICs1MTIyLDIwIEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJv aWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAyCisgCist ICAgIGNkZWYgYmludCBfX2lzX2V4Y2hhbmdlX3BhaXIoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4 Y2VwdCAtMToKKysgICAgY2RlZiBiaW50IF9pc19leGNoYW5nZV9wYWlyKHNlbGYsIGxvbmcgeCwg bG9uZyB5KSBleGNlcHQgLTE6CisgICAgICAgICByIiIiCisgICAgICAgICBDaGVjayBpZiBgYHNl bGYuYmFzaXMoKSAtIHggKyB5YGAgaXMgYWdhaW4gYSBiYXNpcy4gSW50ZXJuYWwgbWV0aG9kLgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gKDxRdWF0ZXJuYXJ5TWF0cml4PnNlbGYuX0Ep LmlzX25vbnplcm8oc2VsZi5fcHJvd1t4XSwgeSkKKyAKKy0gICAgY2RlZiBpbnQgX19leGNoYW5n ZShzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorKyAgICBjZGVmIGludCBfZXhjaGFu Z2Uoc2VsZiwgbG9uZyB4LCBsb25nIHkpIGV4Y2VwdCAtMToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJlcGxhY2UgYGBzZWxmLmJhc2lzKCkgd2l0aCBgYHNlbGYuYmFzaXMoKSAtIHggKyB5YGAu IEludGVybmFsIG1ldGhvZCwgZG9lcyBubyBjaGVja3MuCisgICAgICAgICAiIiIKKyAgICAgICAg IGNkZWYgbG9uZyBwID0gc2VsZi5fcHJvd1t4XQorICAgICAgICAgc2VsZi5fQS5waXZvdChwLCB5 KSAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAgICBzZWxmLl9wcm93W3ld ID0gcAorLSAgICAgICAgQmFzaXNFeGNoYW5nZU1hdHJvaWQuX19leGNoYW5nZShzZWxmLCB4LCB5 KQorKyAgICAgICAgQmFzaXNFeGNoYW5nZU1hdHJvaWQuX2V4Y2hhbmdlKHNlbGYsIHgsIHkpCisg CisgICAgIGNkZWYgIF9fZnVuZGFtZW50YWxfY29jaXJjdWl0KHNlbGYsIGJpdHNldF90IEMsIGxv bmcgeCk6CisgICAgICAgICByIiIiCitAQCAtNTE0MywxOCArNTE0MywxOCBAQCBjZGVmIGNsYXNz IFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBiaXRzZXRfdW5pb24oQywgKDxRdWF0ZXJuYXJ5TWF0cml4PnNlbGYuX0EpLl9NMFtzZWxmLl9w cm93W3hdXSwgKDxRdWF0ZXJuYXJ5TWF0cml4PnNlbGYuX0EpLl9NMVtzZWxmLl9wcm93W3hdXSkK KyAKKy0gICAgY2RlZiBfX2NvY2xvc3VyZShzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKToK KysgICAgY2RlZiBfY29jbG9zdXJlX2ludGVybmFsKHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90 IEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBCaXRwYWNrZWQgdmVyc2lvbiBvZiBgYGNvY2xv c3VyZWBgLgorIAorLSAgICAgICAgVGhpcyBmdW5jdGlvbiBvdmVycmlkZXMgdGhlIGludGVybmFs IGZ1bmN0aW9uIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9fY29jbG9zdXJlKCkgb2YgdGhlIHBhcmVu dCBjbGFzcy4KKysgICAgICAgIFRoaXMgZnVuY3Rpb24gb3ZlcnJpZGVzIHRoZSBpbnRlcm5hbCBm dW5jdGlvbiBCYXNpc0V4Y2hhbmdlTWF0cm9pZC5fY29jbG9zdXJlX2ludGVybmFsKCkgb2YgdGhl IHBhcmVudCBjbGFzcy4KKyAgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgbW9y ZSBlZmZpY2llbnQgZm9yIFF1YXRlcm5hcnlNYXRyb2lkLCBkdWUgdG8gdGhlIGZhY3QgdGhhdCBp biB0aGlzIGNsYXNzLAorICAgICAgICAgX19mdW5kYW1lbnRhbF9jb2NpcmN1aXQgaXMgbXVjaCBm YXN0ZXIgdGhhbiBfX2Z1bmRhbWVudGFsX2NpcmN1aXQuCisgICAgICAgICAiIiIKKyAgICAgICAg IGJpdHNldF9jb21wbGVtZW50KFIsIEYpCisgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShzZWxm Ll9pbnNpZGUsIHNlbGYuX2N1cnJlbnRfYmFzaXMsIFIpCisgICAgICAgICBiaXRzZXRfZGlmZmVy ZW5jZShzZWxmLl9vdXRzaWRlLCBSLCBzZWxmLl9jdXJyZW50X2Jhc2lzKQorLSAgICAgICAgc2Vs Zi5fX21vdmUoc2VsZi5faW5zaWRlLCBzZWxmLl9vdXRzaWRlKQorKyAgICAgICAgc2VsZi5fbW92 ZShzZWxmLl9pbnNpZGUsIHNlbGYuX291dHNpZGUpCisgCisgICAgICAgICBiaXRzZXRfY29weShS LCBGKQorICAgICAgICAgYml0c2V0X2RpZmZlcmVuY2Uoc2VsZi5faW5zaWRlLCBzZWxmLl9jdXJy ZW50X2Jhc2lzLCBGKQorQEAgLTUxNjYsNyArNTE2Niw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFy eU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIGJpdHNldF9hZGQoUiwg eSkKKyAgICAgICAgICAgICB5ID0gYml0c2V0X25leHQoc2VsZi5faW5zaWRlLCB5ICsgMSkKKyAK Ky0gICAgY2RlZiAgX19leGNoYW5nZV92YWx1ZShzZWxmLCBsb25nIHgsIGxvbmcgeSk6CisrICAg IGNkZWYgIF9leGNoYW5nZV92YWx1ZV9pbnRlcm5hbChzZWxmLCBsb25nIHgsIGxvbmcgeSk6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlICh4LCB5KSBlbnRyeSBvZiB0aGUgY3Vy cmVudCByZXByZXNlbnRhdGlvbi4KKyAgICAgICAgICIiIgorQEAgLTU1ODksNyArNTU4OSw3IEBA IGNkZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAg ICAgZm9yIGUgaW4gc2VsZi5iYXNpcygpOgorICAgICAgICAgICAgICAgICBiYXNpc1tzZWxmLl9w cm93W3NlbGYuX2lkeFtlXV1dID0gZQorICAgICAgICAgICAgIE4gPSBRdWF0ZXJuYXJ5TWF0cm9p ZChncm91bmRzZXQ9c2VsZi5fRSwgbWF0cml4PXNlbGYuX0EsIGJhc2lzPWJhc2lzKQorLSAgICAg ICAgTi5yZW5hbWUoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAgTi5y ZW5hbWUoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBOCisgCisgICAg IGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbyk6CitAQCAtNTYxNCw3ICs1NjE0LDcgQEAgY2Rl ZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICBm b3IgZSBpbiBzZWxmLmJhc2lzKCk6CisgICAgICAgICAgICAgICAgIGJhc2lzW3NlbGYuX3Byb3db c2VsZi5faWR4W2VdXV0gPSBlCisgICAgICAgICAgICAgTiA9IFF1YXRlcm5hcnlNYXRyb2lkKGdy b3VuZHNldD1kZWVwY29weShzZWxmLl9FLCBtZW1vKSwgbWF0cml4PWRlZXBjb3B5KHNlbGYuX0Es IG1lbW8pLCBiYXNpcz1kZWVwY29weShiYXNpcywgbWVtbykpCistICAgICAgICBOLnJlbmFtZShk ZWVwY29weShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJyksIG1lbW8pKQorKyAgICAgICAg Ti5yZW5hbWUoZGVlcGNvcHkoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSwgbWVtbykpCisgICAgICAg ICByZXR1cm4gTgorIAorICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKK0BAIC01NjcyLDcgKzU2 NzIsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAg ICAgICAgICAgIEEgPSBzZWxmLl9BCisgICAgICAgICAgICAgIyBjdXJyZW50IGJhc2lzIG9yZGVy ZWQgc28gbWF0cml4IGNvbHMgZm9ybSBpZGVudGl0eSBtYXRyaXg6CisgICAgICAgICAgICAgYmFz aXMgPSBzZWxmLl9jdXJyZW50X3Jvd3NfY29scygpWzBdCistICAgICAgICBkYXRhID0gKEEsIGdz LCBiYXNpcywgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAgZGF0YSA9 IChBLCBncywgYmFzaXMsIHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1cm4g c2FnZS5tYXRyb2lkcy51bnBpY2tsaW5nLnVucGlja2xlX3F1YXRlcm5hcnlfbWF0cm9pZCwgKHZl cnNpb24sIGRhdGEpCisgCisgIyBSZWd1bGFyIE1hdHJvaWRzCitAQCAtNTgzOCwxMyArNTgzOCwx MyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gMAorIAorLSAgICBjZGVmIGJpbnQgX19pc19leGNoYW5nZV9w YWlyKHNlbGYsIGxvbmcgeCwgbG9uZyB5KSBleGNlcHQgLTE6CisrICAgIGNkZWYgYmludCBfaXNf ZXhjaGFuZ2VfcGFpcihzZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xOgorICAgICAgICAg ciIiIgorICAgICAgICAgQ2hlY2sgaWYgYGBzZWxmLmJhc2lzKCkgLSB4ICsgeWBgIGlzIGFnYWlu IGEgYmFzaXMuIEludGVybmFsIG1ldGhvZC4KKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu ICg8UGx1c01pbnVzT25lTWF0cml4PnNlbGYuX0EpLmlzX25vbnplcm8oc2VsZi5fcHJvd1t4XSwg c2VsZi5fcHJvd1t5XSkKKyAKKy0gICAgY2RlZiBpbnQgX19leGNoYW5nZShzZWxmLCBsb25nIHgs IGxvbmcgeSkgZXhjZXB0IC0xOgorKyAgICBjZGVmIGludCBfZXhjaGFuZ2Uoc2VsZiwgbG9uZyB4 LCBsb25nIHkpIGV4Y2VwdCAtMToKKyAgICAgICAgICIiIgorICAgICAgICAgUHV0IGVsZW1lbnQg aW5kZXhlZCBieSBgYHhgYCBpbnRvIGJhc2lzLCB0YWtpbmcgb3V0IGVsZW1lbnQgYGB5YGAuIEFz c3VtcHRpb25zIGFyZSB0aGF0IHRoaXMgaXMgYSB2YWxpZCBiYXNpcyBleGNoYW5nZS4KKyAKK0BA IC01ODY3LDkgKzU4NjcsOSBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExpbmVhck1hdHJv aWQpOgorICAgICAgICAgKDxQbHVzTWludXNPbmVNYXRyaXg+c2VsZi5fQSkuc2V0KHB4LCBweSwg cGl2aSkgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgc2VsZi5fcHJv d1t5XSA9IHB4CisgICAgICAgICBzZWxmLl9wcm93W3hdID0gcHkKKy0gICAgICAgIEJhc2lzRXhj aGFuZ2VNYXRyb2lkLl9fZXhjaGFuZ2Uoc2VsZiwgeCwgeSkKKysgICAgICAgIEJhc2lzRXhjaGFu Z2VNYXRyb2lkLl9leGNoYW5nZShzZWxmLCB4LCB5KQorIAorLSAgICBjZGVmICBfX2V4Y2hhbmdl X3ZhbHVlKHNlbGYsIGxvbmcgeCwgbG9uZyB5KToKKysgICAgY2RlZiAgX2V4Y2hhbmdlX3ZhbHVl X2ludGVybmFsKHNlbGYsIGxvbmcgeCwgbG9uZyB5KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFJldHVybiB0aGUgKHgsIHkpIGVudHJ5IG9mIHRoZSBjdXJyZW50IHJlcHJlc2VudGF0aW9uLgor IAorQEAgLTY1MjQsNyArNjUyNCw3IEBAIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQoTGluZWFy TWF0cm9pZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJvd3MsIGNvbHMgPSBzZWxm Ll9jdXJyZW50X3Jvd3NfY29scygpCisgICAgICAgICAgICAgTiA9IFJlZ3VsYXJNYXRyb2lkKGdy b3VuZHNldD1yb3dzICsgY29scywgcmVkdWNlZF9tYXRyaXg9c2VsZi5fQSkKKy0gICAgICAgIE4u cmVuYW1lKGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIE4ucmVuYW1l KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkpCisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYg X19kZWVwY29weV9fKHNlbGYsIG1lbW8pOgorQEAgLTY1NDQsNyArNjU0NCw3IEBAIGNkZWYgY2xh c3MgUmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgIHJvd3MsIGNvbHMgPSBzZWxmLl9jdXJyZW50X3Jvd3NfY29scygpCisgICAgICAgICAg ICAgTiA9IFJlZ3VsYXJNYXRyb2lkKGdyb3VuZHNldD1kZWVwY29weShyb3dzICsgY29scywgbWVt byksIHJlZHVjZWRfbWF0cml4PWRlZXBjb3B5KHNlbGYuX0EsIG1lbW8pKQorLSAgICAgICAgTi5y ZW5hbWUoZGVlcGNvcHkoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpLCBtZW1vKSkKKysg ICAgICAgIE4ucmVuYW1lKGRlZXBjb3B5KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCksIG1lbW8pKQor ICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CitAQCAtNjU5 Myw1ICs2NTkzLDUgQEAgY2RlZiBjbGFzcyBSZWd1bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToK KyAgICAgICAgICAgICByb3dzLCBjb2xzID0gc2VsZi5fY3VycmVudF9yb3dzX2NvbHMoKQorICAg ICAgICAgICAgIGdzID0gcm93cyArIGNvbHMKKyAgICAgICAgICAgICByZWR1Y2VkID0gVHJ1ZQor LSAgICAgICAgZGF0YSA9IChBLCBncywgcmVkdWNlZCwgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21f bmFtZScpKQorKyAgICAgICAgZGF0YSA9IChBLCBncywgcmVkdWNlZCwgc2VsZi5nZXRfY3VzdG9t X25hbWUoKSkKKyAgICAgICAgIHJldHVybiBzYWdlLm1hdHJvaWRzLnVucGlja2xpbmcudW5waWNr bGVfcmVndWxhcl9tYXRyb2lkLCAodmVyc2lvbiwgZGF0YSkKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9tYXRyb2lkcy9tYXRyb2lkLnB4ZCBiL3NyYy9zYWdlL21hdHJvaWRzL21hdHJvaWQucHhkCitp bmRleCBmZTZjMDdlM2I3MS4uZTlkZGZlYzk2YWUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRy b2lkcy9tYXRyb2lkLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvbWF0cm9pZC5weGQKK0BA IC0xLDggKzEsNyBAQAorIGZyb20gc2FnZS5zdHJ1Y3R1cmUuc2FnZV9vYmplY3QgY2ltcG9ydCBT YWdlT2JqZWN0CisgCisgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorLSAgICBjZGVm IHB1YmxpYyBfX2N1c3RvbV9uYW1lCistICAgIGNkZWYgcHVibGljIF9jdXN0b21fbmFtZQorKyAg ICBjZGVmIHB1YmxpYyBfU2FnZU9iamVjdF9fY3VzdG9tX25hbWUKKyAgICAgY2RlZiBwdWJsaWMg X2NhY2hlZF9pbmZvCisgICAgIGNkZWYgaW50IF9zdG9yZWRfZnVsbF9yYW5rCisgICAgIGNkZWYg aW50IF9zdG9yZWRfc2l6ZQorQEAgLTM3LDcgKzM2LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNh Z2VPYmplY3QpOgorICAgICBjcGRlZiBfbGluZV9sZW5ndGgoc2VsZiwgRikKKyAgICAgY3BkZWYg X2V4dGVuc2lvbihzZWxmLCBlbGVtZW50LCBoeXBlcnBsYW5lcykKKyAKKy0gICAgY2RlZiBpbmxp bmUgX19zdWJzZXQoc2VsZiwgWCk6CisrICAgIGNkZWYgaW5saW5lIF9zdWJzZXRfaW50ZXJuYWwo c2VsZiwgWCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbnZlcnQgYGBYYGAgdG8gYSBgYGZy b3plbnNldGBgIGFuZCBjaGVjayB0aGF0IGl0IGlzIGEgc3Vic2V0CisgICAgICAgICBvZiB0aGUg Z3JvdW5kc2V0LgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL21hdHJvaWQucHl4IGIv c3JjL3NhZ2UvbWF0cm9pZHMvbWF0cm9pZC5weXgKK2luZGV4IGRjZWU4N2VhNDljLi44YWM1ZWMz ZjY3OCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL21hdHJvaWQucHl4CisrKysgYi9z cmMvc2FnZS9tYXRyb2lkcy9tYXRyb2lkLnB5eAorQEAgLTEzMDcsNyArMTMwNyw3IEBAIGNkZWYg Y2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBUeXBlRXJyb3I6ICdzYWdl LnJpbmdzLmludGVnZXIuSW50ZWdlcicgb2JqZWN0IGlzIG5vdCBpdGVyYWJsZQorICAgICAgICAg IiIiCisgICAgICAgICAjIENhbGwgY29ycmVzcG9uZGluZyBDeXRob24gbWV0aG9kCistICAgICAg ICByZXR1cm4gc2VsZi5fX3N1YnNldChYKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX3N1YnNldF9p bnRlcm5hbChYKQorIAorICAgICBkZWYgX3N1YnNldF9hbGwoc2VsZiwgWCk6CisgICAgICAgICAi IiIKK0BAIC0xMzc0LDcgKzEzNzQsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIGlmIFggaXMgTm9uZToKKyAgICAgICAgICAgICByZXR1 cm4gc2VsZi5mdWxsX3JhbmsoKQorLSAgICAgICAgcmV0dXJuIHNlbGYuX3Jhbmsoc2VsZi5fX3N1 YnNldChYKSkKKysgICAgICAgIHJldHVybiBzZWxmLl9yYW5rKHNlbGYuX3N1YnNldF9pbnRlcm5h bChYKSkKKyAKKyAgICAgY3BkZWYgZnVsbF9yYW5rKHNlbGYpOgorICAgICAgICAgciIiIgorQEAg LTE0NTMsNyArMTQ1Myw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAg ICAgICAgICAuLi4KKyAgICAgICAgICAgICBWYWx1ZUVycm9yOiBbJ3gnXSBpcyBub3QgYSBzdWJz ZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5f bWF4X2luZGVwZW5kZW50KHNlbGYuX19zdWJzZXQoWCkpCisrICAgICAgICByZXR1cm4gc2VsZi5f bWF4X2luZGVwZW5kZW50KHNlbGYuX3N1YnNldF9pbnRlcm5hbChYKSkKKyAKKyAgICAgY3BkZWYg Y2lyY3VpdChzZWxmLCBYPU5vbmUpOgorICAgICAgICAgIiIiCitAQCAtMTU1OCw3ICsxNTU4LDcg QEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4uLgorICAg ICAgICAgICAgIFZhbHVlRXJyb3I6IFsneCddIGlzIG5vdCBhIHN1YnNldCBvZiB0aGUgZ3JvdW5k c2V0CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9jbG9zdXJlKHNlbGYuX19z dWJzZXQoWCkpCisrICAgICAgICByZXR1cm4gc2VsZi5fY2xvc3VyZShzZWxmLl9zdWJzZXRfaW50 ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGtfY2xvc3VyZShzZWxmLCBYLCBrKToKKyAgICAgICAg IHIiIiIKK0BAIC0xNTk3LDcgKzE1OTcsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVj dCk6CisgICAgICAgICAgICAgc2FnZTogc29ydGVkKE0ua19jbG9zdXJlKHswLDF9LCA0KSkKKyAg ICAgICAgICAgICBbMCwgMSwgNF0KKyAgICAgICAgICIiIgorLSAgICAgICAgWCA9IHNlbGYuX19z dWJzZXQoWCkKKysgICAgICAgIFggPSBzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkKKyAgICAgICAg IGNkZWYgaW50IGN1cgorICAgICAgICAgY2RlZiBmcm96ZW5zZXQgUywgY2wKKyAgICAgICAgIGN1 ciA9IDAKK0BAIC0xNjQ0LDcgKzE2NDQsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVj dCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogWyd4J10gaXMg bm90IGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQKKyAgICAgICAgICIiIgorLSAgICAgICAgWCA9 IHNlbGYuX19zdWJzZXQoWCkKKysgICAgICAgIFggPSBzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkK KyAgICAgICAgIFkgPSBzZWxmLl9fc3Vic2V0X2FsbChZKQorICAgICAgICAgcmV0dXJuIHNlbGYu X2F1Z21lbnQoWCwgWS5kaWZmZXJlbmNlKFgpKQorIAorQEAgLTE3ODEsNyArMTc4MSw3IEBAIGNk ZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAuLi4KKyAgICAgICAg ICAgICBWYWx1ZUVycm9yOiBbJ3gnXSBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAor ICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fbWF4X2NvaW5kZXBlbmRlbnQoc2Vs Zi5fX3N1YnNldChYKSkKKysgICAgICAgIHJldHVybiBzZWxmLl9tYXhfY29pbmRlcGVuZGVudChz ZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGNvY2xvc3VyZShzZWxmLCBY KToKKyAgICAgICAgICIiIgorQEAgLTE4MTMsNyArMTgxMyw3IEBAIGNkZWYgY2xhc3MgTWF0cm9p ZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICBWYWx1ZUVycm9y OiBbJ3gnXSBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIiCist ICAgICAgICByZXR1cm4gc2VsZi5fY29jbG9zdXJlKHNlbGYuX19zdWJzZXQoWCkpCisrICAgICAg ICByZXR1cm4gc2VsZi5fY29jbG9zdXJlKHNlbGYuX3N1YnNldF9pbnRlcm5hbChYKSkKKyAKKyAg ICAgY3BkZWYgY29jaXJjdWl0KHNlbGYsIFg9Tm9uZSk6CisgICAgICAgICAiIiIKK0BAIC0xOTQ3 LDcgKzE5NDcsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAg ICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogJ2FiY3gnIGlzIG5vdCBhIHN1YnNldCBv ZiB0aGUgZ3JvdW5kc2V0CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9pc19p bmRlcGVuZGVudChzZWxmLl9fc3Vic2V0KFgpKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2lu ZGVwZW5kZW50KHNlbGYuX3N1YnNldF9pbnRlcm5hbChYKSkKKyAKKyAgICAgY3BkZWYgaXNfZGVw ZW5kZW50KHNlbGYsIFgpOgorICAgICAgICAgciIiIgorQEAgLTE5NzMsNyArMTk3Myw3IEBAIGNk ZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAuLi4KKyAgICAgICAg ICAgICBWYWx1ZUVycm9yOiAnYWJjeCcgaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQK KyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9pc19pbmRlcGVuZGVudChz ZWxmLl9fc3Vic2V0KFgpKQorKyAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9pc19pbmRlcGVuZGVu dChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGlzX2Jhc2lzKHNlbGYs IFgpOgorICAgICAgICAgciIiIgorQEAgLTE5OTksNyArMTk5OSw3IEBAIGNkZWYgY2xhc3MgTWF0 cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICBWYWx1ZUVy cm9yOiAnYWJjeCcgaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQKKyAgICAgICAgICIi IgorLSAgICAgICAgWCA9IHNlbGYuX19zdWJzZXQoWCkKKysgICAgICAgIFggPSBzZWxmLl9zdWJz ZXRfaW50ZXJuYWwoWCkKKyAgICAgICAgIGlmIGxlbihYKSAhPSBzZWxmLmZ1bGxfcmFuaygpOgor ICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2Jhc2lz KFgpCitAQCAtMjAzNSw3ICsyMDM1LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3Qp OgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6ICdhYmN4JyBpcyBu b3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIiCistICAgICAgICByZXR1 cm4gc2VsZi5faXNfY2xvc2VkKHNlbGYuX19zdWJzZXQoWCkpCisrICAgICAgICByZXR1cm4gc2Vs Zi5faXNfY2xvc2VkKHNlbGYuX3N1YnNldF9pbnRlcm5hbChYKSkKKyAKKyAgICAgY3BkZWYgaXNf c3Vic2V0X2tfY2xvc2VkKHNlbGYsIFgsIGludCBrKToKKyAgICAgICAgIHIiIiIKK0BAIC0yMTE4 LDcgKzIxMTgsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAg ICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogJ2FiY3gnIGlzIG5vdCBhIHN1YnNldCBv ZiB0aGUgZ3JvdW5kc2V0CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9pc19j aXJjdWl0KHNlbGYuX19zdWJzZXQoWCkpCisrICAgICAgICByZXR1cm4gc2VsZi5faXNfY2lyY3Vp dChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCisgICAgIGNwZGVmIGNvbG9vcHMoc2VsZik6 CisgICAgICAgICByIiIiCitAQCAtMjE3OCw3ICsyMTc4LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lk KFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgIFZhbHVlRXJyb3I6 ICdhYmN4JyBpcyBub3QgYSBzdWJzZXQgb2YgdGhlIGdyb3VuZHNldAorICAgICAgICAgIiIiCist ICAgICAgICByZXR1cm4gc2VsZi5faXNfY29pbmRlcGVuZGVudChzZWxmLl9fc3Vic2V0KFgpKQor KyAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2NvaW5kZXBlbmRlbnQoc2VsZi5fc3Vic2V0X2ludGVy bmFsKFgpKQorIAorICAgICBjcGRlZiBpc19jb2RlcGVuZGVudChzZWxmLCBYKToKKyAgICAgICAg IHIiIiIKK0BAIC0yMjExLDcgKzIyMTEsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVj dCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogJ2FiY3gnIGlz IG5vdCBhIHN1YnNldCBvZiB0aGUgZ3JvdW5kc2V0CisgICAgICAgICAiIiIKKy0gICAgICAgIHJl dHVybiBub3Qgc2VsZi5faXNfY29pbmRlcGVuZGVudChzZWxmLl9fc3Vic2V0KFgpKQorKyAgICAg ICAgcmV0dXJuIG5vdCBzZWxmLl9pc19jb2luZGVwZW5kZW50KHNlbGYuX3N1YnNldF9pbnRlcm5h bChYKSkKKyAKKyAgICAgY3BkZWYgaXNfY29iYXNpcyhzZWxmLCBYKToKKyAgICAgICAgIHIiIiIK K0BAIC0yMjQ1LDcgKzIyNDUsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6Cisg ICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogJ2FiY3gnIGlzIG5vdCBh IHN1YnNldCBvZiB0aGUgZ3JvdW5kc2V0CisgICAgICAgICAiIiIKKy0gICAgICAgIFggPSBzZWxm Ll9fc3Vic2V0KFgpCisrICAgICAgICBYID0gc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpCisgICAg ICAgICBpZiBsZW4oWCkgIT0gc2VsZi5mdWxsX2NvcmFuaygpOgorICAgICAgICAgICAgIHJldHVy biBGYWxzZQorICAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2NvYmFzaXMoWCkKK0BAIC0yMjgyLDcg KzIyODIsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAg Li4uCisgICAgICAgICAgICAgVmFsdWVFcnJvcjogJ2FiY3gnIGlzIG5vdCBhIHN1YnNldCBvZiB0 aGUgZ3JvdW5kc2V0CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9pc19jb2Np cmN1aXQoc2VsZi5fX3N1YnNldChYKSkKKysgICAgICAgIHJldHVybiBzZWxmLl9pc19jb2NpcmN1 aXQoc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAorICAgICBjcGRlZiBpc19jb2Nsb3NlZChz ZWxmLCBYKToKKyAgICAgICAgIHIiIiIKK0BAIC0yMzE1LDcgKzIzMTUsNyBAQCBjZGVmIGNsYXNz IE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgVmFs dWVFcnJvcjogJ2FiY3gnIGlzIG5vdCBhIHN1YnNldCBvZiB0aGUgZ3JvdW5kc2V0CisgICAgICAg ICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9pc19jb2Nsb3NlZChzZWxmLl9fc3Vic2V0KFgp KQorKyAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2NvY2xvc2VkKHNlbGYuX3N1YnNldF9pbnRlcm5h bChYKSkKKyAKKyAgICAgIyB2ZXJpZmljYXRpb24KKyAKK0BAIC00ODY4LDEwICs0ODY4LDEwIEBA IGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBzYWdlOiBNLmNv bm5lY3Rpdml0eSgnYWInLCAnY2QnKQorICAgICAgICAgICAgIDIKKyAgICAgICAgICIiIgorLSAg ICAgICAgUyA9IHNlbGYuX19zdWJzZXQoUykKKysgICAgICAgIFMgPSBzZWxmLl9zdWJzZXRfaW50 ZXJuYWwoUykKKyAgICAgICAgIGlmIFQgaXMgTm9uZToKKyAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5fcmFuayhTKSArIHNlbGYuX3Jhbmsoc2VsZi5ncm91bmRzZXQoKS1TKSAtIHNlbGYuZnVsbF9y YW5rKCkKKy0gICAgICAgIFQgPSBzZWxmLl9fc3Vic2V0KFQpCisrICAgICAgICBUID0gc2VsZi5f c3Vic2V0X2ludGVybmFsKFQpCisgICAgICAgICBpZiBTLmludGVyc2VjdGlvbihUKToKKyAgICAg ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJTIGFuZCBUIGFyZSBub3QgZGlzam9pbnQiKQorICAg ICAgICAgcmV0dXJuIGxlbihzZWxmLl9saW5rKFMsIFQpWzBdKSAtIHNlbGYuZnVsbF9yYW5rKCkg KyBzZWxmLl9yYW5rKFMpICsgc2VsZi5fcmFuayhUKQorQEAgLTQ5NTYsOCArNDk1Niw4IEBAIGNk ZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBzYWdlOiBOLmNvbm5l Y3Rpdml0eShTKQorICAgICAgICAgICAgIDIKKyAgICAgICAgICIiIgorLSAgICAgICAgUyA9IHNl bGYuX19zdWJzZXQoUykKKy0gICAgICAgIFQgPSBzZWxmLl9fc3Vic2V0KFQpCisrICAgICAgICBT ID0gc2VsZi5fc3Vic2V0X2ludGVybmFsKFMpCisrICAgICAgICBUID0gc2VsZi5fc3Vic2V0X2lu dGVybmFsKFQpCisgICAgICAgICBpZiBub3QgUy5pc2Rpc2pvaW50KFQpOgorICAgICAgICAgICAg IHJhaXNlIFZhbHVlRXJyb3IoIlMgYW5kIFQgYXJlIG5vdCBkaXNqb2ludCIpCisgICAgICAgICBy ZXR1cm4gc2VsZi5fbGluayhTLCBUKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL21p bm9yX21hdHJvaWQucHkgYi9zcmMvc2FnZS9tYXRyb2lkcy9taW5vcl9tYXRyb2lkLnB5CitpbmRl eCBjMGU3NTY5MTdmNS4uOTg4NTYzNDhhYzEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyb2lk cy9taW5vcl9tYXRyb2lkLnB5CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9taW5vcl9tYXRyb2lk LnB5CitAQCAtNDg2LDggKzQ4Niw3IEBAIGRlZiBfX2NvcHlfXyhzZWxmKToKKyAgICAgICAgICAg ICBUcnVlCisgICAgICAgICAiIiIKKyAgICAgICAgIE4gPSBNaW5vck1hdHJvaWQoc2VsZi5fbWF0 cm9pZCwgc2VsZi5fY29udHJhY3Rpb25zLCBzZWxmLl9kZWxldGlvbnMpCistICAgICAgICBpZiBn ZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykgaXMgbm90IE5vbmU6ICAjIGJlY2F1c2Ugb2Yg bmFtZSB3cmFuZ2xpbmcsIHRoaXMgaXMgbm90IGNhdWdodCBieSB0aGUgZGVmYXVsdCBjb3B5Cist ICAgICAgICAgICAgTi5yZW5hbWUoZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAg ICAgICAgTi5yZW5hbWUoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHJldHVybiBO CisgCisgICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbz17fSk6CitAQCAtNTEyLDggKzUx MSw3IEBAIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbz17fSk6CisgICAgICAgICBmcm9tIGNv cHkgaW1wb3J0IGRlZXBjb3B5CisgICAgICAgICAjIFNpbmNlIG1hdHJvaWRzIGFyZSBpbW11dGFi bGUsIE4gY2Fubm90IHJlZmVyZW5jZSBpdHNlbGYgaW4gY29ycmVjdCBjb2RlLCBzbyBubyBuZWVk IHRvIHdvcnJ5IGFib3V0IHRoZSByZWN1cnNpb24uCisgICAgICAgICBOID0gTWlub3JNYXRyb2lk KGRlZXBjb3B5KHNlbGYuX21hdHJvaWQsIG1lbW8pLCBkZWVwY29weShzZWxmLl9jb250cmFjdGlv bnMsIG1lbW8pLCBkZWVwY29weShzZWxmLl9kZWxldGlvbnMsIG1lbW8pKQorLSAgICAgICAgaWYg Z2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpIGlzIG5vdCBOb25lOiAgIyBiZWNhdXNlIG9m IG5hbWUgd3JhbmdsaW5nLCB0aGlzIGlzIG5vdCBjYXVnaHQgYnkgdGhlIGRlZmF1bHQgZGVlcGNv cHkKKy0gICAgICAgICAgICBOLnJlbmFtZShkZWVwY29weShnZXRhdHRyKHNlbGYsICdfX2N1c3Rv bV9uYW1lJyksIG1lbW8pKQorKyAgICAgICAgTi5yZW5hbWUoZGVlcGNvcHkoc2VsZi5nZXRfY3Vz dG9tX25hbWUoKSwgbWVtbykpCisgICAgICAgICByZXR1cm4gTgorIAorICAgICBkZWYgX19yZWR1 Y2VfXyhzZWxmKToKK0BAIC01MzQsNiArNTMyLDYgQEAgZGVmIF9fcmVkdWNlX18oc2VsZik6Cisg ICAgICAgICAgICAgIDQ6IHt7J2EnLCAnYicsICdjJywgJ2QnLCAnZScsICdmJywgJ2cnLCAnaCd9 fX0KKyAgICAgICAgICIiIgorICAgICAgICAgaW1wb3J0IHNhZ2UubWF0cm9pZHMudW5waWNrbGlu ZworLSAgICAgICAgZGF0YSA9IChzZWxmLl9tYXRyb2lkLCBzZWxmLl9jb250cmFjdGlvbnMsIHNl bGYuX2RlbGV0aW9ucywgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpKQorKyAgICAgICAg ZGF0YSA9IChzZWxmLl9tYXRyb2lkLCBzZWxmLl9jb250cmFjdGlvbnMsIHNlbGYuX2RlbGV0aW9u cywgc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIHZlcnNpb24gPSAwCisgICAgICAg ICByZXR1cm4gc2FnZS5tYXRyb2lkcy51bnBpY2tsaW5nLnVucGlja2xlX21pbm9yX21hdHJvaWQs ICh2ZXJzaW9uLCBkYXRhKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL3JhbmtfbWF0 cm9pZC5weSBiL3NyYy9zYWdlL21hdHJvaWRzL3JhbmtfbWF0cm9pZC5weQoraW5kZXggNDYzM2Zm MGE3OTIuLjZjNGU5NDcwYWRhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvcmFua19t YXRyb2lkLnB5CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9yYW5rX21hdHJvaWQucHkKK0BAIC0y NjcsOSArMjY3LDcgQEAgZGVmIF9fY29weV9fKHNlbGYpOgorICAgICAgICAgTiA9IFJhbmtNYXRy b2lkKGdyb3VuZHNldD1bXSwgcmFua19mdW5jdGlvbj1Ob25lKQorICAgICAgICAgTi5fZ3JvdW5k c2V0ID0gc2VsZi5fZ3JvdW5kc2V0CisgICAgICAgICBOLl9yYW5rX2Z1bmN0aW9uID0gc2VsZi5f cmFua19mdW5jdGlvbgorLSAgICAgICAgaWYgZ2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScp IGlzIG5vdCBOb25lOgorLSAgICAgICAgICAgICMgYmVjYXVzZSBvZiBuYW1lIHdyYW5nbGluZywg dGhpcyBpcyBub3QgY2F1Z2h0IGJ5IHRoZSBkZWZhdWx0IGNvcHkKKy0gICAgICAgICAgICBOLnJl bmFtZShnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJykpCisrICAgICAgICBOLnJlbmFtZShz ZWxmLmdldF9jdXN0b21fbmFtZSgpKQorICAgICAgICAgcmV0dXJuIE4KKyAKKyAgICAgZGVmIF9f ZGVlcGNvcHlfXyhzZWxmLCBtZW1vPXt9KToKK0BAIC0yOTMsOCArMjkxLDcgQEAgZGVmIF9fZGVl cGNvcHlfXyhzZWxmLCBtZW1vPXt9KToKKyAgICAgICAgIGZyb20gY29weSBpbXBvcnQgZGVlcGNv cHkKKyAgICAgICAgICMgU2luY2UgbWF0cm9pZHMgYXJlIGltbXV0YWJsZSwgTiBjYW5ub3QgcmVm ZXJlbmNlIGl0c2VsZiBpbiBjb3JyZWN0IGNvZGUsIHNvIG5vIG5lZWQgdG8gd29ycnkgYWJvdXQg dGhlIHJlY3Vyc2lvbi4KKyAgICAgICAgIE4gPSBSYW5rTWF0cm9pZChncm91bmRzZXQ9ZGVlcGNv cHkoc2VsZi5fZ3JvdW5kc2V0KSwgcmFua19mdW5jdGlvbj1kZWVwY29weShzZWxmLl9yYW5rX2Z1 bmN0aW9uKSkKKy0gICAgICAgIGlmIGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSBpcyBu b3QgTm9uZTogICMgYmVjYXVzZSBvZiBuYW1lIHdyYW5nbGluZywgdGhpcyBpcyBub3QgY2F1Z2h0 IGJ5IHRoZSBkZWZhdWx0IGRlZXBjb3B5CistICAgICAgICAgICAgTi5yZW5hbWUoZGVlcGNvcHko Z2V0YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpLCBtZW1vKSkKKysgICAgICAgIE4ucmVuYW1l KGRlZXBjb3B5KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCksIG1lbW8pKQorICAgICAgICAgcmV0dXJu IE4KKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv bWlzYy9jYWNoZWZ1bmMucHhkIGIvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHhkCitpbmRleCBk M2NjNjc3ZGVjZS4uOGU1ZDlkZmE0MmEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2NhY2hl ZnVuYy5weGQKKysrKyBiL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB4ZAorQEAgLTUsNyArNSw3 IEBAIGNwZGVmIGNhY2hlX2tleShvKQorIAorIGNkZWYgY2xhc3MgQ2FjaGVkRnVuY3Rpb24oKToK KyAgICAgY2RlZiBwdWJsaWMgc3RyIF9fbmFtZV9fCistICAgIGNkZWYgcHVibGljIHN0ciBfX21v ZHVsZV9fCisrICAgIGNkZWYgcHVibGljIHN0ciBfX2NhY2hlZF9tb2R1bGVfXworICAgICBjZGVm IEFyZ3VtZW50Rml4ZXIgX2FyZ3VtZW50X2ZpeGVyCisgICAgIGNkZWYgcHVibGljIGYKKyAgICAg Y2RlZiBwdWJsaWMgY2FjaGUgICMgbm90IGFsd2F5cyBvZiB0eXBlIDxkaWN0PgorQEAgLTIwLDcg KzIwLDcgQEAgY2RlZiBjbGFzcyBDYWNoZWRGdW5jdGlvbigpOgorIGNkZWYgY2xhc3MgQ2FjaGVk TWV0aG9kKCk6CisgICAgIGNkZWYgc3RyIF9jYWNoZV9uYW1lCisgICAgIGNkZWYgcHVibGljIHN0 ciBfX25hbWVfXworLSAgICBjZGVmIHB1YmxpYyBzdHIgX19tb2R1bGVfXworKyAgICBjZGVmIHB1 YmxpYyBzdHIgX19jYWNoZWRfbW9kdWxlX18KKyAgICAgY2RlZiBDYWNoZWRGdW5jdGlvbiBfY2Fj aGVkZnVuYworICAgICBjZGVmIFB5X3NzaXplX3QgbmFyZ3MKKyAgICAgY3BkZWYgX2dldF9pbnN0 YW5jZV9jYWNoZShzZWxmLCBpbnN0KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvY2FjaGVm dW5jLnB5eCBiL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB5eAoraW5kZXggYTMwN2MzM2UzMmIu LjhhYTMwYTg1MjcyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHl4Cisr KysgYi9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5weXgKK0BAIC02MCw3ICs2MCw3IEBAIGJlIHVz ZWQ6OgorIAorIFdlIGNhbiBwcm9jZWVkIHNpbWlsYXJseSBmb3IgY2FjaGVkIG1ldGhvZHMgb2Yg Q3l0aG9uIGNsYXNzZXMsCisgcHJvdmlkZWQgdGhhdCB0aGV5IGFsbG93IGF0dHJpYnV0ZSBhc3Np Z25tZW50IG9yIGhhdmUgYSBwdWJsaWMKKy1hdHRyaWJ1dGUgYGBfX2NhY2hlZF9tZXRob2RzYGAg b2YgdHlwZSBgYDxkaWN0PmBgLiBTaW5jZQorK2F0dHJpYnV0ZSBgYF9jYWNoZWRfbWV0aG9kc2Bg IG9mIHR5cGUgYGA8ZGljdD5gYC4gU2luY2UKKyA6dHJhYzpgMTExMTVgLCB0aGlzIGlzIHRoZSBj YXNlIGZvciBhbGwgY2xhc3NlcyBpbmhlcml0aW5nIGZyb20KKyA6Y2xhc3M6YH5zYWdlLnN0cnVj dHVyZS5wYXJlbnQuUGFyZW50YC4gU2VlIGJlbG93IGZvciBhIG1vcmUgZXhwbGljaXQKKyBleGFt cGxlLiBCeSA6dHJhYzpgMTI5NTFgLCBjYWNoZWQgbWV0aG9kcyBvZiBleHRlbnNpb24gY2xhc3Nl cyBjYW4KK0BAIC0zMDEsMTQgKzMwMSwxNCBAQCBvdWdodCB0byBiZSBjaG9zZW4uIEEgdHlwaWNh bCBleGFtcGxlIGlzCisgCisgQnkgOnRyYWM6YDEyOTUxYCwgdGhlIGNhY2hlZF9tZXRob2QgZGVj b3JhdG9yIGlzIGFsc28gc3VwcG9ydGVkIG9uIG5vbi1jKHApZGVmCisgbWV0aG9kcyBvZiBleHRl bnNpb24gY2xhc3NlcywgYXMgbG9uZyBhcyB0aGV5IGVpdGhlciBzdXBwb3J0IGF0dHJpYnV0ZSBh c3NpZ25tZW50Cistb3IgaGF2ZSBhIHB1YmxpYyBhdHRyaWJ1dGUgb2YgdHlwZSBgYDxkaWN0PmBg IGNhbGxlZCBgYF9fY2FjaGVkX21ldGhvZHNgYC4gVGhlCisrb3IgaGF2ZSBhIHB1YmxpYyBhdHRy aWJ1dGUgb2YgdHlwZSBgYDxkaWN0PmBgIGNhbGxlZCBgYF9jYWNoZWRfbWV0aG9kc2BgLiBUaGUK KyBsYXR0ZXIgaXMgZWFzeTo6CisgCisgICAgIHNhZ2U6ICMgbmVlZHMgc2FnZS5taXNjLmN5dGhv bgorICAgICBzYWdlOiBjeXRob25fY29kZSA9IFsKKyAgICAgLi4uLjogImZyb20gc2FnZS5taXNj LmNhY2hlZnVuYyBpbXBvcnQgY2FjaGVkX21ldGhvZCIsCisgICAgIC4uLi46ICJjZGVmIGNsYXNz IE15Q2xhc3M6IiwKKy0gICAgLi4uLjogIiAgICBjZGVmIHB1YmxpYyBkaWN0IF9fY2FjaGVkX21l dGhvZHMiLAorKyAgICAuLi4uOiAiICAgIGNkZWYgcHVibGljIGRpY3QgX2NhY2hlZF9tZXRob2Rz IiwKKyAgICAgLi4uLjogIiAgICBAY2FjaGVkX21ldGhvZCIsCisgICAgIC4uLi46ICIgICAgZGVm IGYoc2VsZiwgYSxiKToiLAorICAgICAuLi4uOiAiICAgICAgICByZXR1cm4gYSpiIl0KK0BAIC03 NzQsMTMgKzc3NCwxNyBAQCBjZGVmIGNsYXNzIENhY2hlZEZ1bmN0aW9uKCk6CisgICAgICAgICBl bHNlOgorICAgICAgICAgICAgIHNlbGYuX19uYW1lX18gPSBmLl9fbmFtZV9fCisgICAgICAgICB0 cnk6CistICAgICAgICAgICAgc2VsZi5fX21vZHVsZV9fID0gZi5fX21vZHVsZV9fCisrICAgICAg ICAgICAgc2VsZi5fX2NhY2hlZF9tb2R1bGVfXyA9IGYuX19tb2R1bGVfXworICAgICAgICAgZXhj ZXB0IEF0dHJpYnV0ZUVycm9yOgorLSAgICAgICAgICAgIHNlbGYuX19tb2R1bGVfXyA9IGYuX19v YmpjbGFzc19fLl9fbW9kdWxlX18KKysgICAgICAgICAgICBzZWxmLl9fY2FjaGVkX21vZHVsZV9f ID0gZi5fX29iamNsYXNzX18uX19tb2R1bGVfXworICAgICAgICAgaWYgYXJndW1lbnRfZml4ZXIg aXMgbm90IE5vbmU6ICMgaXQgaXMgTm9uZSB1bmxlc3MgdGhlIGFyZ3VtZW50IGZpeGVyCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB3YXMga25vd24gcHJldmlvdXNs eS4gU2VlICMxNTAzOC4KKyAgICAgICAgICAgICBzZWxmLl9hcmd1bWVudF9maXhlciA9IGFyZ3Vt ZW50X2ZpeGVyCisgCisrICAgIEBwcm9wZXJ0eQorKyAgICBkZWYgX19tb2R1bGVfXyhzZWxmKToK KysgICAgICAgIHJldHVybiBzZWxmLl9fY2FjaGVkX21vZHVsZV9fCisrCisgICAgIGNkZWYgZ2V0 X2tleV9hcmdzX2t3ZHMoc2VsZiwgdHVwbGUgYXJncywgZGljdCBrd2RzKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIHRoZSBrZXkgaW4gdGhlIGNhY2hlIHRvIGJlIHVzZWQgd2hlbiBg YGFyZ3NgYCBhbmQKK0BAIC04NDEsNyArODQ1LDcgQEAgY2RlZiBjbGFzcyBDYWNoZWRGdW5jdGlv bigpOgorICAgICAgICAgICAgIHNhZ2U6IGxvYWRzKGR1bXBzKGhpbGJlcnRfY2xhc3NfcG9seW5v bWlhbCkpIGlzIGhpbGJlcnRfY2xhc3NfcG9seW5vbWlhbCAgI2luZGlyZWN0IGRvY3Rlc3QgICAg ICAgICAgICAgICAgICMgbmVlZHMgc2FnZS5zY2hlbWVzCisgICAgICAgICAgICAgVHJ1ZQorICAg ICAgICAgIiIiCistICAgICAgICByZXR1cm4gX2NhY2hlZF9mdW5jdGlvbl91bnBpY2tsZSwgKHNl bGYuX19tb2R1bGVfXywgc2VsZi5fX25hbWVfXywgc2VsZi5jYWNoZSkKKysgICAgICAgIHJldHVy biBfY2FjaGVkX2Z1bmN0aW9uX3VucGlja2xlLCAoc2VsZi5fX2NhY2hlZF9tb2R1bGVfXywgc2Vs Zi5fX25hbWVfXywgc2VsZi5jYWNoZSkKKyAKKyAgICAgIyMjIyMjIyMjCisgICAgICMjIEludHJv c3BlY3Rpb24KK0BAIC0yMDE5LDcgKzIwMjMsNyBAQCBjZGVmIGNsYXNzIENhY2hlZE1ldGhvZENh bGxlcihDYWNoZWRGdW5jdGlvbik6CisgICAgICAgICBUaGlzIGdldHRlciBhdHRlbXB0cyB0byBh c3NpZ24gYSBib3VuZCBtZXRob2QgYXMgYW4KKyAgICAgICAgIGF0dHJpYnV0ZSB0byB0aGUgZ2l2 ZW4gaW5zdGFuY2UuIElmIHRoaXMgaXMgbm90CisgICAgICAgICBwb3NzaWJsZSAoZm9yIGV4YW1w bGUsIGZvciBzb21lIGV4dGVuc2lvbiBjbGFzc2VzKSwKKy0gICAgICAgIGl0IGlzIGF0dGVtcHRl ZCB0byBmaW5kIGFuIGF0dHJpYnV0ZSBgYF9fY2FjaGVkX21ldGhvZHNgYCwKKysgICAgICAgIGl0 IGlzIGF0dGVtcHRlZCB0byBmaW5kIGFuIGF0dHJpYnV0ZSBgYF9jYWNoZWRfbWV0aG9kc2BgLAor ICAgICAgICAgYW5kIHN0b3JlL3JldHJpZXZlIHRoZSBib3VuZCBtZXRob2QgdGhlcmUuIEluIHRo YXQKKyAgICAgICAgIHdheSwgY2FjaGVkIG1ldGhvZHMgY2FuIGJlIGltcGxlbWVudGVkIGZvciBl eHRlbnNpb24KKyAgICAgICAgIGNsYXNzZXMgZGVyaXZpbmcgZnJvbSA6Y2xhc3M6YH5zYWdlLnN0 cnVjdHVyZS5wYXJlbnQuUGFyZW50YAorQEAgLTIwODUsNyArMjA4OSw3IEBAIGNkZWYgY2xhc3Mg Q2FjaGVkTWV0aG9kQ2FsbGVyKENhY2hlZEZ1bmN0aW9uKToKKyAgICAgICAgICIiIgorICAgICAg ICAgIyBUaGlzIGlzIGZvciBQYXJlbnRzIG9yIEVsZW1lbnRzIHRoYXQgZG8gbm90IGFsbG93IGF0 dHJpYnV0ZSBhc3NpZ25tZW50CisgICAgICAgICB0cnk6CistICAgICAgICAgICAgcmV0dXJuICg8 ZGljdD5pbnN0Ll9fY2FjaGVkX21ldGhvZHMpW3NlbGYuX2NhY2hlZG1ldGhvZC5fY2FjaGVkZnVu Yy5fX25hbWVfX10KKysgICAgICAgICAgICByZXR1cm4gKDxkaWN0Pmluc3QuX2NhY2hlZF9tZXRo b2RzKVtzZWxmLl9jYWNoZWRtZXRob2QuX2NhY2hlZGZ1bmMuX19uYW1lX19dCisgICAgICAgICBl eGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBUeXBlRXJyb3IsIEtleUVycm9yKToKKyAgICAgICAgICAg ICBwYXNzCisgCitAQCAtMjEwMCwxMCArMjEwNCwxMCBAQCBjZGVmIGNsYXNzIENhY2hlZE1ldGhv ZENhbGxlcihDYWNoZWRGdW5jdGlvbik6CisgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6 CisgICAgICAgICAgICAgcGFzcworICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgIGlmIGluc3Qu X19jYWNoZWRfbWV0aG9kcyBpcyBOb25lOgorLSAgICAgICAgICAgICAgICBpbnN0Ll9fY2FjaGVk X21ldGhvZHMgPSB7c2VsZi5fY2FjaGVkbWV0aG9kLl9jYWNoZWRmdW5jLl9fbmFtZV9fIDogQ2Fs bGVyfQorKyAgICAgICAgICAgIGlmIGluc3QuX2NhY2hlZF9tZXRob2RzIGlzIE5vbmU6CisrICAg ICAgICAgICAgICAgIGluc3QuX2NhY2hlZF9tZXRob2RzID0ge3NlbGYuX2NhY2hlZG1ldGhvZC5f Y2FjaGVkZnVuYy5fX25hbWVfXyA6IENhbGxlcn0KKyAgICAgICAgICAgICBlbHNlOgorLSAgICAg ICAgICAgICAgICAoPGRpY3Q+aW5zdC5fX2NhY2hlZF9tZXRob2RzKVtzZWxmLl9jYWNoZWRtZXRo b2QuX2NhY2hlZGZ1bmMuX19uYW1lX19dID0gQ2FsbGVyCisrICAgICAgICAgICAgICAgICg8ZGlj dD5pbnN0Ll9jYWNoZWRfbWV0aG9kcylbc2VsZi5fY2FjaGVkbWV0aG9kLl9jYWNoZWRmdW5jLl9f bmFtZV9fXSA9IENhbGxlcgorICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAg ICAgICAgIHBhc3MKKyAgICAgICAgIHJldHVybiBDYWxsZXIKK0BAIC0yNDIxLDcgKzI0MjUsNyBA QCBjZGVmIGNsYXNzIENhY2hlZE1ldGhvZENhbGxlck5vQXJncyhDYWNoZWRGdW5jdGlvbik6Cisg ICAgICAgICBUaGlzIGdldHRlciBhdHRlbXB0cyB0byBhc3NpZ24gYSBib3VuZCBtZXRob2QgYXMg YW4KKyAgICAgICAgIGF0dHJpYnV0ZSB0byB0aGUgZ2l2ZW4gaW5zdGFuY2UuIElmIHRoaXMgaXMg bm90CisgICAgICAgICBwb3NzaWJsZSAoZm9yIGV4YW1wbGUsIGZvciBzb21lIGV4dGVuc2lvbiBj bGFzc2VzKSwKKy0gICAgICAgIGl0IGlzIGF0dGVtcHRlZCB0byBmaW5kIGFuIGF0dHJpYnV0ZSBg YF9fY2FjaGVkX21ldGhvZHNgYCwKKysgICAgICAgIGl0IGlzIGF0dGVtcHRlZCB0byBmaW5kIGFu IGF0dHJpYnV0ZSBgYF9jYWNoZWRfbWV0aG9kc2BgLAorICAgICAgICAgYW5kIHN0b3JlL3JldHJp ZXZlIHRoZSBib3VuZCBtZXRob2QgdGhlcmUuIEluIHRoYXQKKyAgICAgICAgIHdheSwgY2FjaGVk IG1ldGhvZHMgY2FuIGJlIGltcGxlbWVudGVkIGZvciBleHRlbnNpb24KKyAgICAgICAgIGNsYXNz ZXMgZGVyaXZpbmcgZnJvbSA6Y2xhc3M6YH5zYWdlLnN0cnVjdHVyZS5wYXJlbnQuUGFyZW50YAor QEAgLTI0NzIsNyArMjQ3Niw3IEBAIGNkZWYgY2xhc3MgQ2FjaGVkTWV0aG9kQ2FsbGVyTm9Bcmdz KENhY2hlZEZ1bmN0aW9uKToKKyAgICAgICAgICIiIgorICAgICAgICAgIyBUaGlzIGlzIGZvciBQ YXJlbnRzIG9yIEVsZW1lbnRzIHRoYXQgZG8gbm90IGFsbG93IGF0dHJpYnV0ZSBhc3NpZ25tZW50 CisgICAgICAgICB0cnk6CistICAgICAgICAgICAgcmV0dXJuICg8ZGljdD5pbnN0Ll9fY2FjaGVk X21ldGhvZHMpW3NlbGYuX19uYW1lX19dCisrICAgICAgICAgICAgcmV0dXJuICg8ZGljdD5pbnN0 Ll9jYWNoZWRfbWV0aG9kcylbc2VsZi5fX25hbWVfX10KKyAgICAgICAgIGV4Y2VwdCAoQXR0cmli dXRlRXJyb3IsIFR5cGVFcnJvciwgS2V5RXJyb3IpOgorICAgICAgICAgICAgIHBhc3MKKyAgICAg ICAgIENhbGxlciA9IENhY2hlZE1ldGhvZENhbGxlck5vQXJncyhpbnN0LCBzZWxmLmYsIG5hbWU9 c2VsZi5fX25hbWVfXywgZG9fcGlja2xlPXNlbGYuZG9fcGlja2xlKQorQEAgLTI0ODIsMTAgKzI0 ODYsMTAgQEAgY2RlZiBjbGFzcyBDYWNoZWRNZXRob2RDYWxsZXJOb0FyZ3MoQ2FjaGVkRnVuY3Rp b24pOgorICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgIHBhc3MK KyAgICAgICAgIHRyeToKKy0gICAgICAgICAgICBpZiBpbnN0Ll9fY2FjaGVkX21ldGhvZHMgaXMg Tm9uZToKKy0gICAgICAgICAgICAgICAgaW5zdC5fX2NhY2hlZF9tZXRob2RzID0ge3NlbGYuX19u YW1lX18gOiBDYWxsZXJ9CisrICAgICAgICAgICAgaWYgaW5zdC5fY2FjaGVkX21ldGhvZHMgaXMg Tm9uZToKKysgICAgICAgICAgICAgICAgaW5zdC5fY2FjaGVkX21ldGhvZHMgPSB7c2VsZi5fX25h bWVfXyA6IENhbGxlcn0KKyAgICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgICAgICAoPGRp Y3Q+aW5zdC5fX2NhY2hlZF9tZXRob2RzKVtzZWxmLl9fbmFtZV9fXSA9IENhbGxlcgorKyAgICAg ICAgICAgICAgICAoPGRpY3Q+aW5zdC5fY2FjaGVkX21ldGhvZHMpW3NlbGYuX19uYW1lX19dID0g Q2FsbGVyCisgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgcGFz cworICAgICAgICAgcmV0dXJuIENhbGxlcgorQEAgLTI2OTgsNyArMjcwMiwxMSBAQCBjZGVmIGNs YXNzIENhY2hlZE1ldGhvZCgpOgorICAgICAgICAgc2VsZi5fY2FjaGVfbmFtZSA9ICdfY2FjaGVf XycgKyAobmFtZSBvciBmLl9fbmFtZV9fKQorICAgICAgICAgc2VsZi5fY2FjaGVkZnVuYyA9IENh Y2hlZEZ1bmN0aW9uKGYsIGNsYXNzbWV0aG9kPVRydWUsIG5hbWU9bmFtZSwga2V5PWtleSwgZG9f cGlja2xlPWRvX3BpY2tsZSkKKyAgICAgICAgIHNlbGYuX19uYW1lX18gPSBzZWxmLl9jYWNoZWRm dW5jLl9fbmFtZV9fCistICAgICAgICBzZWxmLl9fbW9kdWxlX18gPSBzZWxmLl9jYWNoZWRmdW5j Ll9fbW9kdWxlX18KKysgICAgICAgIHNlbGYuX19jYWNoZWRfbW9kdWxlX18gPSBzZWxmLl9jYWNo ZWRmdW5jLl9fbW9kdWxlX18KKysKKysgICAgQHByb3BlcnR5CisrICAgIGRlZiBfX21vZHVsZV9f KHNlbGYpOgorKyAgICAgICAgcmV0dXJuIHNlbGYuX19jYWNoZWRfbW9kdWxlX18KKyAKKyAgICAg ZGVmIF9fY2FsbF9fKHNlbGYsIGluc3QsICphcmdzLCAqKmt3ZHMpOgorICAgICAgICAgIiIiCitA QCAtMjgyOCw3ICsyODM2LDcgQEAgY2RlZiBjbGFzcyBDYWNoZWRNZXRob2QoKToKKyAgICAgICAg IGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICBuYW1lID0gc2VsZi5fX25hbWVf XworICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgIHJldHVybiAoPGRpY3Q+aW5zdC5fX2NhY2hl ZF9tZXRob2RzKVtuYW1lXQorKyAgICAgICAgICAgIHJldHVybiAoPGRpY3Q+aW5zdC5fY2FjaGVk X21ldGhvZHMpW25hbWVdCisgICAgICAgICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBUeXBlRXJy b3IsIEtleUVycm9yKToKKyAgICAgICAgICAgICBwYXNzCisgICAgICAgICAjIEFwcGFyZW50bHkg d2UgbmVlZCB0byBjb25zdHJ1Y3QgdGhlIGNhbGxlci4KK0BAIC0yODQwLDggKzI4NDgsNiBAQCBj ZGVmIGNsYXNzIENhY2hlZE1ldGhvZCgpOgorICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAg ICAgICAgICAgICAgICBpZiBNRVRIX05PQVJHUyZQeUNGdW5jdGlvbl9HZXRGbGFncyhmLl9fZ2V0 X18oaW5zdCxjbHMpKToKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5hcmdzID0gMQor LSAgICAgICAgICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAgICAgICAgICAgICBzZWxm Lm5hcmdzID0gMgorICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAg ICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgIGlmIHNlbGYubmFyZ3MgPT0gMDoKK0BAIC0y ODY0LDEwICsyODcwLDEwIEBAIGNkZWYgY2xhc3MgQ2FjaGVkTWV0aG9kKCk6CisgICAgICAgICBl eGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgcGFzcworICAgICAgICAgdHJ5Ogor LSAgICAgICAgICAgIGlmIGluc3QuX19jYWNoZWRfbWV0aG9kcyBpcyBOb25lOgorLSAgICAgICAg ICAgICAgICBpbnN0Ll9fY2FjaGVkX21ldGhvZHMgPSB7bmFtZSA6IENhbGxlcn0KKysgICAgICAg ICAgICBpZiBpbnN0Ll9jYWNoZWRfbWV0aG9kcyBpcyBOb25lOgorKyAgICAgICAgICAgICAgICBp bnN0Ll9jYWNoZWRfbWV0aG9kcyA9IHtuYW1lIDogQ2FsbGVyfQorICAgICAgICAgICAgIGVsc2U6 CistICAgICAgICAgICAgICAgICg8ZGljdD5pbnN0Ll9fY2FjaGVkX21ldGhvZHMpW25hbWVdID0g Q2FsbGVyCisrICAgICAgICAgICAgICAgICg8ZGljdD5pbnN0Ll9jYWNoZWRfbWV0aG9kcylbbmFt ZV0gPSBDYWxsZXIKKyAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAg ICBwYXNzCisgICAgICAgICByZXR1cm4gQ2FsbGVyCitAQCAtMjk2NSwxMiArMjk3MSwxMiBAQCBj ZGVmIGNsYXNzIENhY2hlZFNwZWNpYWxNZXRob2QoQ2FjaGVkTWV0aG9kKToKKyAgICAgICAgICAg ICAgICAgRCA9IGluc3QuX19kaWN0X18KKyAgICAgICAgICAgICBleGNlcHQgKFR5cGVFcnJvciwg QXR0cmlidXRlRXJyb3IpOgorICAgICAgICAgICAgICAgICB0cnk6CistICAgICAgICAgICAgICAg ICAgICBEID0gaW5zdC5fX2NhY2hlZF9tZXRob2RzCisrICAgICAgICAgICAgICAgICAgICBEID0g aW5zdC5fY2FjaGVkX21ldGhvZHMKKyAgICAgICAgICAgICAgICAgZXhjZXB0IChUeXBlRXJyb3Is IEF0dHJpYnV0ZUVycm9yKToKKy0gICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigi Rm9yIGEgY2FjaGVkIHNwZWNpYWwgbWV0aG9kLCBlaXRoZXIgYXR0cmlidXRlIGFzc2lnbm1lbnQg b3IgYSBwdWJsaWMgJ19fY2FjaGVkX21ldGhvZHMnIGF0dHJpYnV0ZSBvZiB0eXBlIDxkaWN0PiBp cyBuZWVkZWQiKQorKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJGb3IgYSBj YWNoZWQgc3BlY2lhbCBtZXRob2QsIGVpdGhlciBhdHRyaWJ1dGUgYXNzaWdubWVudCBvciBhIHB1 YmxpYyAnX2NhY2hlZF9tZXRob2RzJyBhdHRyaWJ1dGUgb2YgdHlwZSA8ZGljdD4gaXMgbmVlZGVk IikKKyAgICAgICAgICAgICBpZiBEIGlzIE5vbmU6CistICAgICAgICAgICAgICAgICMgVGhpcyBj YW4gb25seSBoYXBwZW4gaW4gdGhlIGNhc2Ugb2YgX19jYWNoZWRfbWV0aG9kcworLSAgICAgICAg ICAgICAgICBEID0gaW5zdC5fX2NhY2hlZF9tZXRob2RzID0ge30KKysgICAgICAgICAgICAgICAg IyBUaGlzIGNhbiBvbmx5IGhhcHBlbiBpbiB0aGUgY2FzZSBvZiBfY2FjaGVkX21ldGhvZHMKKysg ICAgICAgICAgICAgICAgRCA9IGluc3QuX2NhY2hlZF9tZXRob2RzID0ge30KKyAgICAgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gRFtuYW1lXQorQEAgLTMyOTgsMTMgKzMzMDQsMTMgQEAgY2RlZiBjbGFzcyBDYWNoZWRJblBh cmVudE1ldGhvZChDYWNoZWRNZXRob2QpOgorICAgICAgICAgICAgIHJldHVybiBQLl9fZGljdF9f LnNldGRlZmF1bHQoc2VsZi5fY2FjaGVfbmFtZSwgZGVmYXVsdCkKKyAgICAgICAgIGV4Y2VwdCBB dHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICBwYXNzCistICAgICAgICBpZiBub3QgaGFzYXR0 cihQLCdfX2NhY2hlZF9tZXRob2RzJyk6CisrICAgICAgICBpZiBub3QgaGFzYXR0cihQLCdfY2Fj aGVkX21ldGhvZHMnKToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIlRoZSBwYXJlbnQg b2YgdGhpcyBlbGVtZW50IGRvZXMgbm90IGFsbG93IGF0dHJpYnV0ZSBhc3NpZ25tZW50XG4iICsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBhbmQgZG9lcyBub3QgZGVzY2VuZCBm cm9tIHRoZSBQYXJlbnQgYmFzZSBjbGFzcy5cbiIgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiICAgIENhbm5vdCB1c2UgQ2FjaGVkSW5QYXJlbnRNZXRob2QuIikKKy0gICAgICAgIGlm IFAuX19jYWNoZWRfbWV0aG9kcyBpcyBOb25lOgorLSAgICAgICAgICAgIFAuX19jYWNoZWRfbWV0 aG9kcyA9IHt9CistICAgICAgICByZXR1cm4gKDxkaWN0PlAuX19jYWNoZWRfbWV0aG9kcykuc2V0 ZGVmYXVsdChzZWxmLl9jYWNoZV9uYW1lLCBkZWZhdWx0KQorKyAgICAgICAgaWYgUC5fY2FjaGVk X21ldGhvZHMgaXMgTm9uZToKKysgICAgICAgICAgICBQLl9jYWNoZWRfbWV0aG9kcyA9IHt9Cisr ICAgICAgICByZXR1cm4gKDxkaWN0PlAuX2NhY2hlZF9tZXRob2RzKS5zZXRkZWZhdWx0KHNlbGYu X2NhY2hlX25hbWUsIGRlZmF1bHQpCisgCisgICAgIGRlZiBfX2dldF9fKHNlbGYsIGluc3QsIGNs cyk6CisgICAgICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2N5dGhvbi5weSBi L3NyYy9zYWdlL21pc2MvY3l0aG9uLnB5CitpbmRleCBmNDA4M2YzOTA5Yi4uNWY4M2Y1ODVjM2Eg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2N5dGhvbi5weQorKysrIGIvc3JjL3NhZ2UvbWlz Yy9jeXRob24ucHkKK0BAIC02NDYsOSArNjQ2LDkgQEAgZGVmIGNvbXBpbGVfYW5kX2xvYWQoY29k ZSwgKiprd2RzKToKKyAgICAgICAgIC4uLi46ICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxf ZmxpbnQgcmVzID0gZi5fbmV3KCkKKyAgICAgICAgIC4uLi46ICAgICBjZGVmIHVuc2lnbmVkIGxv bmcgaworICAgICAgICAgLi4uLjogICAgIGNkZWYgUmF0aW9uYWwgeiA9IFJhdGlvbmFsKDApCist ICAgICAgICAuLi4uOiAgICAgZm9yIGsgaW4gcmFuZ2UoZm1wcV9wb2x5X2xlbmd0aChmLl9fcG9s eSkpOgorLSAgICAgICAgLi4uLjogICAgICAgICBmbXBxX3BvbHlfZ2V0X2NvZWZmX21wcSh6LnZh bHVlLCBmLl9fcG9seSwgaykKKy0gICAgICAgIC4uLi46ICAgICAgICAgZm1wcV9wb2x5X3NldF9j b2VmZl9tcHEocmVzLl9fcG9seSwgbiprLCB6LnZhbHVlKQorKyAgICAgICAgLi4uLjogICAgIGZv ciBrIGluIHJhbmdlKGZtcHFfcG9seV9sZW5ndGgoZi5fcG9seSkpOgorKyAgICAgICAgLi4uLjog ICAgICAgICBmbXBxX3BvbHlfZ2V0X2NvZWZmX21wcSh6LnZhbHVlLCBmLl9wb2x5LCBrKQorKyAg ICAgICAgLi4uLjogICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX21wcShyZXMuX3BvbHksIG4q aywgei52YWx1ZSkKKyAgICAgICAgIC4uLi46ICAgICByZXR1cm4gcmVzCisgICAgICAgICAuLi4u OiAnJycKKyAgICAgICAgIHNhZ2U6IG1vZHVsZSA9IGNvbXBpbGVfYW5kX2xvYWQoY29kZSkgICMg bG9uZyB0aW1lCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9mcGlja2xlLnB5eCBiL3NyYy9z YWdlL21pc2MvZnBpY2tsZS5weXgKK2luZGV4IDlmODBhOGYzMWFhLi4zN2MyNmU0MzFiYSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvZnBpY2tsZS5weXgKKysrKyBiL3NyYy9zYWdlL21pc2Mv ZnBpY2tsZS5weXgKK0BAIC0xMjQsMTAgKzEyNCwxMiBAQCBkZWYgY2FsbF9waWNrbGVkX2Z1bmN0 aW9uKGZwYXJncyk6CisgZGVmIHBpY2tsZU1ldGhvZChtZXRob2QpOgorICAgICAnc3VwcG9ydCBm dW5jdGlvbiBmb3IgY29weXJlZyB0byBwaWNrbGUgbWV0aG9kIHJlZnMnCisgCistICAgICMgTm90 ZTogT24gUHl0aG9uIDMgdGhlcmUgaXMgbm8gLmltX2NsYXNzIGJ1dCB3ZSBjYW4gZ2V0IHRoZSBp bnN0YW5jZSdzCistICAgICMgY2xhc3MgdGhyb3VnaCAuX19zZWxmX18uX19jbGFzc19fCistICAg IGNscyA9IGdldGF0dHIobWV0aG9kLCAnaW1fY2xhc3MnLCBtZXRob2QuX19zZWxmX18uX19jbGFz c19fKQorLSAgICByZXR1cm4gKHVucGlja2xlTWV0aG9kLCAobWV0aG9kLl9fZnVuY19fLl9fbmFt ZV9fLCBtZXRob2QuX19zZWxmX18sIGNscykpCisrICAgIGlmIGlzaW5zdGFuY2UobWV0aG9kLl9f c2VsZl9fLCB0eXBlKToKKysgICAgICAgICMgVGhpcyBpcyBhIGNsYXNzIG1ldGhvZCwgc28gZ2V0 IGl0IGZyb20gdGhlIHR5cGUgZGlyZWN0bHkKKysgICAgICAgIHJldHVybiAoZ2V0YXR0ciwgKG1l dGhvZC5fX3NlbGZfXywgbWV0aG9kLl9fZnVuY19fLl9fbmFtZV9fKSkKKysgICAgZWxzZToKKysg ICAgICAgIGNscyA9IG1ldGhvZC5fX3NlbGZfXy5fX2NsYXNzX18KKysgICAgICAgIHJldHVybiAo dW5waWNrbGVNZXRob2QsIChtZXRob2QuX19mdW5jX18uX19uYW1lX18sIG1ldGhvZC5fX3NlbGZf XywgY2xzKSkKKyAKKyAKKyBkZWYgdW5waWNrbGVNZXRob2QoaW1fbmFtZSwKK0BAIC0xMzksMTAg KzE0MSw3IEBAIGRlZiB1bnBpY2tsZU1ldGhvZChpbV9uYW1lLAorICAgICAgICAgaWYgX19zZWxm X18gaXMgTm9uZToKKyAgICAgICAgICAgICByZXR1cm4gdW5ib3VuZAorIAorLSAgICAgICAgIyBO b3RlOiBPbiBQeXRob24gMiAidW5ib3VuZCBtZXRob2RzIiBhcmUganVzdCBmdW5jdGlvbnMsIHNv IHRoZXkgZG9uJ3QKKy0gICAgICAgICMgaGF2ZSBhIF9fZnVuY19fCistICAgICAgICBib3VuZCA9 IHR5cGVzLk1ldGhvZFR5cGUoZ2V0YXR0cih1bmJvdW5kLCAnX19mdW5jX18nLCB1bmJvdW5kKSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3NlbGZfXykKKysgICAgICAgIGJv dW5kID0gdHlwZXMuTWV0aG9kVHlwZSh1bmJvdW5kLCBfX3NlbGZfXykKKyAgICAgICAgIHJldHVy biBib3VuZAorICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICBhc3NlcnQgX19z ZWxmX18gaXMgbm90IE5vbmUsICJObyByZWNvdXJzZTogbm8gaW5zdGFuY2UgdG8gZ3Vlc3MgZnJv bS4iCitAQCAtMTUwLDExICsxNDksOCBAQCBkZWYgdW5waWNrbGVNZXRob2QoaW1fbmFtZSwKKyAg ICAgICAgICMgY2hhbmdlZCBhcm91bmQgc2luY2Ugd2UgcGlja2xlZCB0aGlzIG1ldGhvZCwgd2Ug bWF5IHN0aWxsIGJlCisgICAgICAgICAjIGFibGUgdG8gZ2V0IGl0IGJ5IGxvb2tpbmcgb24gdGhl IGluc3RhbmNlJ3MgY3VycmVudCBjbGFzcy4KKyAgICAgICAgIHVuYm91bmQgPSBnZXRhdHRyKF9f c2VsZl9fLl9fY2xhc3NfXywgaW1fbmFtZSkKKy0gICAgICAgIGlmIF9fc2VsZl9fIGlzIE5vbmU6 CistICAgICAgICAgICAgcmV0dXJuIHVuYm91bmQKKyAKKy0gICAgICAgIGJvdW5kID0gdHlwZXMu TWV0aG9kVHlwZShnZXRhdHRyKHVuYm91bmQsICdfX2Z1bmNfXycsIHVuYm91bmQpLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fc2VsZl9fKQorKyAgICAgICAgYm91bmQgPSB0 eXBlcy5NZXRob2RUeXBlKHVuYm91bmQsIF9fc2VsZl9fKQorICAgICAgICAgcmV0dXJuIGJvdW5k CisgCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9pbmhlcml0X2NvbXBhcmlzb24ucHl4 IGIvc3JjL3NhZ2UvbWlzYy9pbmhlcml0X2NvbXBhcmlzb24ucHl4CitpbmRleCBmMDQ2ZjVmYjhj ZS4uYWE5N2Y2NjQ0OTYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2luaGVyaXRfY29tcGFy aXNvbi5weXgKKysrKyBiL3NyYy9zYWdlL21pc2MvaW5oZXJpdF9jb21wYXJpc29uLnB5eAorQEAg LTU0LDYgKzU0LDggQEAgY2RlZiBjbGFzcyBJbmhlcml0Q29tcGFyaXNvbk1ldGFjbGFzcyh0eXBl KToKKyAgICAgICAgIHNhZ2U6ICMgbmVlZHMgc2FnZS5taXNjLmN5dGhvbgorICAgICAgICAgc2Fn ZTogY3l0aG9uKAorICAgICAgICAgLi4uLjogJycnCisrICAgICAgICAuLi4uOiBjaW1wb3J0IGN5 dGhvbgorKyAgICAgICAgLi4uLjoKKyAgICAgICAgIC4uLi46IGZyb20gc2FnZS5taXNjLmluaGVy aXRfY29tcGFyaXNvbiBjaW1wb3J0IEluaGVyaXRDb21wYXJpc29uTWV0YWNsYXNzCisgICAgICAg ICAuLi4uOgorICAgICAgICAgLi4uLjogY2RlZiBjbGFzcyBCYXNlKCk6CitAQCAtNjYsNiArNjgs NyBAQCBjZGVmIGNsYXNzIEluaGVyaXRDb21wYXJpc29uTWV0YWNsYXNzKHR5cGUpOgorICAgICAg ICAgLi4uLjogICAgICAgICByZXR1cm4gMQorICAgICAgICAgLi4uLjoKKyAgICAgICAgIC4uLi46 IGNkZWYgY2xhc3MgRGVyaXZlZFdpdGhSaWNoY21wKEJhc2UpOgorKyAgICAgICAgLi4uLjogICAg IEBjeXRob24uYWx3YXlzX2FsbG93X2tleXdvcmRzKEZhbHNlKQorICAgICAgICAgLi4uLjogICAg IGRlZiBfX2dldG1ldGFjbGFzc19fKF8pOgorICAgICAgICAgLi4uLjogICAgICAgICBmcm9tIHNh Z2UubWlzYy5pbmhlcml0X2NvbXBhcmlzb24gaW1wb3J0IEluaGVyaXRDb21wYXJpc29uTWV0YWNs YXNzCisgICAgICAgICAuLi4uOiAgICAgICAgIHJldHVybiBJbmhlcml0Q29tcGFyaXNvbk1ldGFj bGFzcworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvbGF6eV9hdHRyaWJ1dGUucHl4IGIvc3Jj L3NhZ2UvbWlzYy9sYXp5X2F0dHJpYnV0ZS5weXgKK2luZGV4IDgyYTBmOTBiNzc1Li5iZGJlYzNi M2JhMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvbGF6eV9hdHRyaWJ1dGUucHl4CisrKysg Yi9zcmMvc2FnZS9taXNjL2xhenlfYXR0cmlidXRlLnB5eAorQEAgLTExMSwxMiArMTExLDEyIEBA IGNkZWYgY2xhc3MgX2xhenlfYXR0cmlidXRlKCk6CisgICAgICAgICBpZiBhIGlzIE5vbmU6ICMg d2hlbiBkb2luZyBjbHMueCBmb3IgY2xzIGEgY2xhc3MgYW5kIHggYSBsYXp5IGF0dHJpYnV0ZQor ICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICB0cnk6CistICAgICAgICAgICAgIyBf X2NhY2hlZF9tZXRob2RzIGlzIHN1cHBvc2VkIHRvIGJlIGEgcHVibGljIEN5dGhvbiBhdHRyaWJ1 dGUuCisrICAgICAgICAgICAgIyBfY2FjaGVkX21ldGhvZHMgaXMgc3VwcG9zZWQgdG8gYmUgYSBw dWJsaWMgQ3l0aG9uIGF0dHJpYnV0ZS4KKyAgICAgICAgICAgICAjIEFwcGFyZW50bHksIHRoZXNl IGFyZSAqbm90KiBzdWJqZWN0IHRvIG5hbWUgbWFuZ2xpbmcuCistICAgICAgICAgICAgQ00gPSBn ZXRhdHRyKGEsICdfX2NhY2hlZF9tZXRob2RzJykKKysgICAgICAgICAgICBDTSA9IGdldGF0dHIo YSwgJ19jYWNoZWRfbWV0aG9kcycpCisgICAgICAgICAgICAgaWYgQ00gaXMgTm9uZToKKyAgICAg ICAgICAgICAgICAgQ00gPSB7fQorLSAgICAgICAgICAgICAgICBzZXRhdHRyKGEsICdfX2NhY2hl ZF9tZXRob2RzJywgQ00pCisrICAgICAgICAgICAgICAgIHNldGF0dHIoYSwgJ19jYWNoZWRfbWV0 aG9kcycsIENNKQorICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yIGFzIG1zZzoKKyAgICAg ICAgICAgICBDTSA9IE5vbmUKKyAgICAgICAgIGlmIENNIGlzIG5vdCBOb25lOgorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL21pc2MvbGF6eV9saXN0LnB5eCBiL3NyYy9zYWdlL21pc2MvbGF6eV9saXN0 LnB5eAoraW5kZXggYzFmYTAyNTBhOTUuLmJhNjJjNDQ2YjY5IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbWlzYy9sYXp5X2xpc3QucHl4CisrKysgYi9zcmMvc2FnZS9taXNjL2xhenlfbGlzdC5weXgK K0BAIC0xMDU5LDcgKzEwNTksMTEgQEAgY2RlZiBjbGFzcyBsYXp5X2xpc3RfZnJvbV9mdW5jdGlv bihsYXp5X2xpc3RfZ2VuZXJpYyk6CisgICAgICAgICAgICAgc3RlcCAgICAgICAgIDEKKyAgICAg ICAgICIiIgorICAgICAgICAgd2hpbGUgbGVuKHNlbGYuY2FjaGUpIDw9IGk6CistICAgICAgICAg ICAgc2VsZi5jYWNoZS5hcHBlbmQoc2VsZi5jYWxsYWJsZShsZW4oc2VsZi5jYWNoZSkpKQorKyAg ICAgICAgICAgIHRyeToKKysgICAgICAgICAgICAgICAgdmFsdWUgPSBzZWxmLmNhbGxhYmxlKGxl bihzZWxmLmNhY2hlKSkKKysgICAgICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKysgICAg ICAgICAgICAgICAgcmV0dXJuIDEKKysgICAgICAgICAgICBzZWxmLmNhY2hlLmFwcGVuZCh2YWx1 ZSkKKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CisgICAgICAgICByIiIiCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvbWlzYy9zYWdlaW5zcGVjdC5weSBiL3NyYy9zYWdlL21pc2Mvc2FnZWlu c3BlY3QucHkKK2luZGV4IDNkZDBjYzBhNDViLi5jZTVlOTk4NzAyNyAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL21pc2Mvc2FnZWluc3BlY3QucHkKKysrKyBiL3NyYy9zYWdlL21pc2Mvc2FnZWluc3Bl Y3QucHkKK0BAIC0yMjQsNyArMjI0LDExIEBAIGRlZiBpc2NsYXNzaW5zdGFuY2Uob2JqKToKKyAg ICAgcmV0dXJuIChub3QgaW5zcGVjdC5pc2NsYXNzKG9iaikgYW5kCisgICAgICAgICAgICAgaGFz YXR0cihvYmosICdfX2NsYXNzX18nKSBhbmQKKyAgICAgICAgICAgICBoYXNhdHRyKG9iai5fX2Ns YXNzX18sICdfX21vZHVsZV9fJykgYW5kCistICAgICAgICAgICAgb2JqLl9fY2xhc3NfXy5fX21v ZHVsZV9fIG5vdCBpbiBidWlsdGluX21vZHMpCisrICAgICAgICAgICAgb2JqLl9fY2xhc3NfXy5f X21vZHVsZV9fIG5vdCBpbiBidWlsdGluX21vZHMgYW5kCisrICAgICAgICAgICAgIyBTdGFydGlu ZyB3aXRoIEN5dGhvbiAzLCBDeXRob24ncyBidWlsdGluIHR5cGVzIGhhdmUgX19tb2R1bGVfXyBz ZXQKKysgICAgICAgICAgICAjIHRvIHRoZSBzaGFyZWQgbW9kdWxlIG5hbWVzIGxpa2UgX2N5dGhv bl8zXzBfMC4KKysgICAgICAgICAgICBub3QgKGlzaW5zdGFuY2Uob2JqLl9fY2xhc3NfXy5fX21v ZHVsZV9fLCBzdHIpIGFuZAorKyAgICAgICAgICAgICAgICAgb2JqLl9fY2xhc3NfXy5fX21vZHVs ZV9fLnN0YXJ0c3dpdGgoJ19jeXRob25fJykpKQorIAorIAorICMgUGFyc2Ugc3RyaW5ncyBvZiBm b3JtICJGaWxlOiBzYWdlL3JpbmdzL3JhdGlvbmFsLnB5eCAoc3RhcnRpbmcgYXQgbGluZSAxMDgw KSIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL3Nlc3Npb24ucHl4IGIvc3JjL3NhZ2UvbWlz Yy9zZXNzaW9uLnB5eAoraW5kZXggZGU2NDlmODA0MjUuLjMxNDU0ZGFjOTkzIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbWlzYy9zZXNzaW9uLnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9zZXNzaW9u LnB5eAorQEAgLTgwLDYgKzgwLDggQEAgZnJvbSBzYWdlLm1pc2MucGVyc2lzdCBpbXBvcnQgbG9h ZCwgc2F2ZSwgbG9hZHMsIGR1bXBzCisgCisgc3RhdGVfYXRfaW5pdCA9IE5vbmUKKyAKKytDeXRo b25GdW5jdGlvblR5cGUgPSB0eXBlKGxhbWJkYTogTm9uZSkKKysKKyBkZWYgaW5pdChzdGF0ZT1O b25lKToKKyAgICAgIiIiCisgICAgIEluaXRpYWxpemUgc29tZSBkaWN0aW9uYXJpZXMgbmVlZGVk IGJ5IHRoZSA6ZnVuYzpgc2hvd19pZGVudGlmaWVyc2AsCitAQCAtMzExLDcgKzMxMyw3IEBAIGRl ZiBzYXZlX3Nlc3Npb24obmFtZT0nc2FnZV9zZXNzaW9uJywgdmVyYm9zZT1GYWxzZSk6CisgICAg IGZvciBrIGluIHNob3dfaWRlbnRpZmllcnMoaGlkZGVuID0gVHJ1ZSk6CisgICAgICAgICB0cnk6 CisgICAgICAgICAgICAgeCA9IHN0YXRlW2tdCistICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh4 LCAodHlwZXMuRnVuY3Rpb25UeXBlLCB0eXBlcy5CdWlsdGluRnVuY3Rpb25UeXBlLCB0eXBlcy5C dWlsdGluTWV0aG9kVHlwZSwgdHlwZSkpOgorKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoeCwg KHR5cGVzLkZ1bmN0aW9uVHlwZSwgdHlwZXMuQnVpbHRpbkZ1bmN0aW9uVHlwZSwgdHlwZXMuQnVp bHRpbk1ldGhvZFR5cGUsIEN5dGhvbkZ1bmN0aW9uVHlwZSwgdHlwZSkpOgorICAgICAgICAgICAg ICAgICByYWlzZSBUeXBlRXJyb3IoJ3t9IGlzIGEgZnVuY3Rpb24sIG1ldGhvZCwgY2xhc3Mgb3Ig dHlwZScuZm9ybWF0KGspKQorIAorICAgICAgICAgICAgICMgV2UgYXR0ZW1wdCB0byBwaWNrbGUg KmFuZCogdW5waWNrbGUgZXZlcnkgdmFyaWFibGUgdG8KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9t b2R1bGFyL21vZHN5bS9wMWxpc3QucHhkIGIvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vcDFsaXN0 LnB4ZAoraW5kZXggY2MyNGEzMzEzOWIuLmI2NmYyOGI4YWQ2IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbW9kdWxhci9tb2RzeW0vcDFsaXN0LnB4ZAorKysrIGIvc3JjL3NhZ2UvbW9kdWxhci9tb2Rz eW0vcDFsaXN0LnB4ZAorQEAgLTIxLDcgKzIxLDcgQEAgY2RlZiBjbGFzcyBQMUxpc3Q6CisgICAg ICMgSGVyZSB3ZSB1c2UgYSBwb2ludGVyIHRvIGEgZnVuY3Rpb24sIHNvIHRoZSBpZiBsb2dpYwor ICAgICAjIGZvciBub3JtYWxpemluZyBhbiBlbGVtZW50IGRvZXMgbm90IG5lZWQgdG8gYmUgdXNl ZAorICAgICAjIGV2ZXJ5IHRpbWUgdGhlIHVzZXIgY2FsbHMgdGhlIG5vcm1hbGl6ZSBmdW5jdGlv bi4KKy0gICAgY2RlZiBpbnQgKCpfX25vcm1hbGl6ZSkoaW50IE4sIGludCB1LCBpbnQgdiwKKysg ICAgY2RlZiBpbnQgKCpfbm9ybWFsaXplKShpbnQgTiwgaW50IHUsIGludCB2LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQqIHV1LCBpbnQqIHZ2LCBpbnQqIHNzLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgY29tcHV0ZV9zKSBleGNlcHQgLTEKKyAgICAgY3BkZWYg aW5kZXgoc2VsZiwgaW50IHUsIGludCB2KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsYXIv bW9kc3ltL3AxbGlzdC5weXggYi9zcmMvc2FnZS9tb2R1bGFyL21vZHN5bS9wMWxpc3QucHl4Citp bmRleCAxMTFkNDA4Y2VlNC4uMzBhOGY3NDcxZGQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1 bGFyL21vZHN5bS9wMWxpc3QucHl4CisrKysgYi9zcmMvc2FnZS9tb2R1bGFyL21vZHN5bS9wMWxp c3QucHl4CitAQCAtNzIzLDEwICs3MjMsMTAgQEAgY2RlZiBjbGFzcyBQMUxpc3QoKToKKyAgICAg ICAgIHNlbGYuX19OID0gTgorICAgICAgICAgaWYgTiA8PSA0NjM0MDoKKyAgICAgICAgICAgICBz ZWxmLl9fbGlzdCA9IHAxbGlzdF9pbnQoTikKKy0gICAgICAgICAgICBzZWxmLl9fbm9ybWFsaXpl ID0gY19wMV9ub3JtYWxpemVfaW50CisrICAgICAgICAgICAgc2VsZi5fbm9ybWFsaXplID0gY19w MV9ub3JtYWxpemVfaW50CisgICAgICAgICBlbGlmIE4gPD0gMjE0NzQ4MzY0NzoKKyAgICAgICAg ICAgICBzZWxmLl9fbGlzdCA9IHAxbGlzdF9sbG9uZyhOKQorLSAgICAgICAgICAgIHNlbGYuX19u b3JtYWxpemUgPSBjX3AxX25vcm1hbGl6ZV9sbG9uZworKyAgICAgICAgICAgIHNlbGYuX25vcm1h bGl6ZSA9IGNfcDFfbm9ybWFsaXplX2xsb25nCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAg IHJhaXNlIE92ZXJmbG93RXJyb3IoInAxbGlzdCBub3QgZGVmaW5lZCBmb3Igc3VjaCBsYXJnZSBO LiIpCisgICAgICAgICBzZWxmLl9fbGlzdC5zb3J0KCkKK0BAIC05MjEsNyArOTIxLDcgQEAgY2Rl ZiBjbGFzcyBQMUxpc3QoKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBpbnQgdSwgdiwg dXUsIHZ2LCBzcworICAgICAgICAgdSx2ID0gc2VsZi5fX2xpc3RbaV0KKy0gICAgICAgIHNlbGYu X19ub3JtYWxpemUoc2VsZi5fX04sIC11LCB2LCAmdXUsICZ2diwgJnNzLCAwKQorKyAgICAgICAg c2VsZi5fbm9ybWFsaXplKHNlbGYuX19OLCAtdSwgdiwgJnV1LCAmdnYsICZzcywgMCkKKyAgICAg ICAgIF8sIGogPSBzZWFyY2goc2VsZi5fX2xpc3QsICh1dSx2dikpCisgICAgICAgICByZXR1cm4g agorIAorQEAgLTk1NCw3ICs5NTQsNyBAQCBjZGVmIGNsYXNzIFAxTGlzdCgpOgorICAgICAgICAg IiIiCisgICAgICAgICBjZGVmIGludCB1LCB2LCB1dSwgdnYsIHNzCisgICAgICAgICB1LHYgPSBz ZWxmLl9fbGlzdFtpXQorLSAgICAgICAgc2VsZi5fX25vcm1hbGl6ZShzZWxmLl9fTiwgLXYsIHUs ICZ1dSwgJnZ2LCAmc3MsIDApCisrICAgICAgICBzZWxmLl9ub3JtYWxpemUoc2VsZi5fX04sIC12 LCB1LCAmdXUsICZ2diwgJnNzLCAwKQorICAgICAgICAgXywgaiA9IHNlYXJjaChzZWxmLl9fbGlz dCwgKHV1LHZ2KSkKKyAgICAgICAgIHJldHVybiBqCisgCitAQCAtOTg3LDcgKzk4Nyw3IEBAIGNk ZWYgY2xhc3MgUDFMaXN0KCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgaW50IHUsIHYs IHV1LCB2diwgc3MKKyAgICAgICAgIHUsdiA9IHNlbGYuX19saXN0W2ldCistICAgICAgICBzZWxm Ll9fbm9ybWFsaXplKHNlbGYuX19OLCB2LCAtdS12LCAmdXUsICZ2diwgJnNzLCAwKQorKyAgICAg ICAgc2VsZi5fbm9ybWFsaXplKHNlbGYuX19OLCB2LCAtdS12LCAmdXUsICZ2diwgJnNzLCAwKQor ICAgICAgICAgXywgaiA9IHNlYXJjaChzZWxmLl9fbGlzdCwgKHV1LHZ2KSkKKyAgICAgICAgIHJl dHVybiBqCisgCitAQCAtMTE1Myw3ICsxMTUzLDcgQEAgY2RlZiBjbGFzcyBQMUxpc3QoKToKKyAg ICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgaW50IHV1LCB2diwg c3MKKy0gICAgICAgIHNlbGYuX19ub3JtYWxpemUoc2VsZi5fX04sIHUsIHYsICZ1dSwgJnZ2LCAm c3MsIDApCisrICAgICAgICBzZWxmLl9ub3JtYWxpemUoc2VsZi5fX04sIHUsIHYsICZ1dSwgJnZ2 LCAmc3MsIDApCisgICAgICAgICByZXR1cm4gKHV1LHZ2KQorIAorICAgICBkZWYgbm9ybWFsaXpl X3dpdGhfc2NhbGFyKHNlbGYsIGludCB1LCBpbnQgdik6CitAQCAtMTE4Niw3ICsxMTg2LDcgQEAg Y2RlZiBjbGFzcyBQMUxpc3QoKToKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKyAg ICAgICAgIGNkZWYgaW50IHV1LCB2diwgc3MKKy0gICAgICAgIHNlbGYuX19ub3JtYWxpemUoc2Vs Zi5fX04sIHUsIHYsICZ1dSwgJnZ2LCAmc3MsIDEpCisrICAgICAgICBzZWxmLl9ub3JtYWxpemUo c2VsZi5fX04sIHUsIHYsICZ1dSwgJnZ2LCAmc3MsIDEpCisgICAgICAgICByZXR1cm4gKHV1LCB2 diwgc3MpCisgCisgICAgIGRlZiBOKHNlbGYpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVy aWNhbC9nYXVzc19sZWdlbmRyZS5weXggYi9zcmMvc2FnZS9udW1lcmljYWwvZ2F1c3NfbGVnZW5k cmUucHl4CitpbmRleCA1MzI1Nzk3YzdhYS4uOTY3MDhjNWIxYWMgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9udW1lcmljYWwvZ2F1c3NfbGVnZW5kcmUucHl4CisrKysgYi9zcmMvc2FnZS9udW1lcmlj YWwvZ2F1c3NfbGVnZW5kcmUucHl4CitAQCAtMTE3LDggKzExNyw4IEBAIGRlZiBub2Rlc191bmNh Y2hlZChkZWdyZWUsIHByZWMpOgorICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiZGVncmVlPSVz IG5vdCBzdXBwb3J0ZWQgKGRlZ3JlZSBtdXN0IGJlIDMgb3IgZXZlbikiICUgZGVncmVlKQorICAg ICBSID0gUmVhbEZpZWxkKGludChwcmVjKjMvMikpCisgICAgIFJvdXQgPSBSZWFsRmllbGQocHJl YykKKy0gICAgbXBmcl9pbml0Mih1LFIuX19wcmVjKQorLSAgICBtcGZyX2luaXQyKHYsUi5fX3By ZWMpCisrICAgIG1wZnJfaW5pdDIodSxSLl9wcmVjKQorKyAgICBtcGZyX2luaXQyKHYsUi5fcHJl YykKKyAgICAgWkVSTyA9IFIuemVybygpCisgICAgIE9ORSA9IFIub25lKCkKKyAgICAgSEFMRiA9 IE9ORS8yCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2xpbmVhcl9mdW5jdGlvbnMu cHl4IGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2xpbmVhcl9mdW5jdGlvbnMucHl4CitpbmRleCA1NTQ5 ZmY0MzZmNS4uZjNmYzZmZTQxOWMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9udW1lcmljYWwvbGlu ZWFyX2Z1bmN0aW9ucy5weXgKKysrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9saW5lYXJfZnVuY3Rp b25zLnB5eAorQEAgLTE1NzksNyArMTU3OSwxMCBAQCBjZGVmIGNsYXNzIExpbmVhckNvbnN0cmFp bnQoTGluZWFyRnVuY3Rpb25PckNvbnN0cmFpbnQpOgorICAgICAgICAgd2hpbGUgVHJ1ZToKKyAg ICAgICAgICAgICB5aWVsZCAobGhzLCByaHMpCisgICAgICAgICAgICAgbGhzID0gcmhzCistICAg ICAgICAgICAgcmhzID0gbmV4dCh0ZXJtX2l0ZXIpCisrICAgICAgICAgICAgdHJ5OgorKyAgICAg ICAgICAgICAgICByaHMgPSBuZXh0KHRlcm1faXRlcikKKysgICAgICAgICAgICBleGNlcHQgU3Rv cEl0ZXJhdGlvbjoKKysgICAgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgIGRlZiBpbmVxdWFs aXRpZXMoc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0xNjEyLDcgKzE2MTUsMTAgQEAgY2RlZiBj bGFzcyBMaW5lYXJDb25zdHJhaW50KExpbmVhckZ1bmN0aW9uT3JDb25zdHJhaW50KToKKyAgICAg ICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgeWllbGQgKGxocywgcmhzKQorICAgICAgICAg ICAgIGxocyA9IHJocworLSAgICAgICAgICAgIHJocyA9IG5leHQodGVybV9pdGVyKQorKyAgICAg ICAgICAgIHRyeToKKysgICAgICAgICAgICAgICAgcmhzID0gbmV4dCh0ZXJtX2l0ZXIpCisrICAg ICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisrICAgICAgICAgICAgICAgIHJldHVybgor IAorICAgICBkZWYgX3JlcHJfKHNlbGYpOgorICAgICAgICAgciIiIgorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3F1aXZlcnMvcmVwcmVzZW50YXRpb24ucHkgYi9zcmMvc2FnZS9xdWl2ZXJzL3JlcHJl c2VudGF0aW9uLnB5CitpbmRleCA5YzExZWI4YWQwZS4uZGI4MmNiZDdjODYgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9xdWl2ZXJzL3JlcHJlc2VudGF0aW9uLnB5CisrKysgYi9zcmMvc2FnZS9xdWl2 ZXJzL3JlcHJlc2VudGF0aW9uLnB5CitAQCAtMTI5NywxMCArMTI5Nyw3IEBAIGRlZiBjb3B5KHNl bGYpOgorICAgICAgICAgICAgIHNhZ2U6IHYuZ2V0X2VsZW1lbnQoMSkKKyAgICAgICAgICAgICAo MSwgMCkKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX19jdXN0b21f bmFtZScpOgorLSAgICAgICAgICAgIG5hbWUgPSBzZWxmLl9fY3VzdG9tX25hbWUKKy0gICAgICAg IGVsc2U6CistICAgICAgICAgICAgbmFtZSA9IE5vbmUKKysgICAgICAgIG5hbWUgPSBzZWxmLmdl dF9jdXN0b21fbmFtZSgpCisgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShzZWxmLl9lbGVt cy5jb3B5KCksIG5hbWUpCisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9y aW5ncy9jb21wbGV4X2FyYi5weXggYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2FyYi5weXgKK2lu ZGV4IGVmNDMyYzFlOTQ1Li45NWU2MTVmM2VlNiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jpbmdz L2NvbXBsZXhfYXJiLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9hcmIucHl4CitA QCAtODc0LDcgKzg3NCw3IEBAIGNsYXNzIENvbXBsZXhCYWxsRmllbGQoVW5pcXVlUmVwcmVzZW50 YXRpb24sIHNhZ2UucmluZ3MuYWJjLkNvbXBsZXhCYWxsRmllbGQpOgorICAgICAgICAgY2RlZiBS ZWFsQmFsbCByYgorICAgICAgICAgY2RlZiBDb21wbGV4QmFsbCBjYgorICAgICAgICAgYWNiX3Bv bHlfaW5pdChyb3VuZGVkX3BvbHkpCistICAgICAgICBjZGVmIGxvbmcgZGVnID0gYWNiX3BvbHlf ZGVncmVlKHBvbHkuX19wb2x5KQorKyAgICAgICAgY2RlZiBsb25nIGRlZyA9IGFjYl9wb2x5X2Rl Z3JlZShwb2x5Ll9wb2x5KQorICAgICAgICAgaWYgZGVnIDwgMDoKKyAgICAgICAgICAgICByYWlz ZSBBcml0aG1ldGljRXJyb3IoInRha2luZyB0aGUgcm9vdHMgb2YgdGhlIHplcm8gcG9seW5vbWlh bCIpCisgICAgICAgICBjZGVmIGFjYl9wdHIgcm9vdHMgPSBfYWNiX3ZlY19pbml0KGRlZykKK0BA IC04ODMsNyArODgzLDcgQEAgY2xhc3MgQ29tcGxleEJhbGxGaWVsZChVbmlxdWVSZXByZXNlbnRh dGlvbiwgc2FnZS5yaW5ncy5hYmMuQ29tcGxleEJhbGxGaWVsZCk6CisgICAgICAgICAgICAgd2hp bGUgKChpc29sYXRlZCA8IGRlZyBvciBhbnkoYWNiX3JlbF9hY2N1cmFjeV9iaXRzKCZyb290c1tp XSkgPCB0Z3RwcmVjCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv ciBpIGluIHJhbmdlKGRlZykpKQorICAgICAgICAgICAgICAgICBhbmQgcHJlYyA8IG1heHByZWMp OgorLSAgICAgICAgICAgICAgICBhY2JfcG9seV9zZXRfcm91bmQocm91bmRlZF9wb2x5LCBwb2x5 Ll9fcG9seSwgcHJlYykKKysgICAgICAgICAgICAgICAgYWNiX3BvbHlfc2V0X3JvdW5kKHJvdW5k ZWRfcG9seSwgcG9seS5fcG9seSwgcHJlYykKKyAgICAgICAgICAgICAgICAgbWF4aXRlciA9IG1p bihtYXgoZGVnLCAzMiksIHByZWMpCisgICAgICAgICAgICAgICAgIGlmIChwcmVjID09IGluaXRp YWxfcHJlYyk6CisgICAgICAgICAgICAgICAgICAgICBpc29sYXRlZCA9IGFjYl9wb2x5X2ZpbmRf cm9vdHMocm9vdHMsIHJvdW5kZWRfcG9seSwgTlVMTCwgbWF4aXRlciwgcHJlYykKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21wYy5weGQgYi9zcmMvc2FnZS9yaW5ncy9jb21w bGV4X21wYy5weGQKK2luZGV4IDc2MmMzOGFmYmRjLi5mN2Q4Y2I5NDkyYyAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBjLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvY29t cGxleF9tcGMucHhkCitAQCAtMTEsNyArMTEsNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleE51bWJl cihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgICAgIGNwZGVmIF9tdWxf KHNlbGYsIG90aGVyKQorIAorIGNkZWYgY2xhc3MgTVBDb21wbGV4RmllbGRfY2xhc3Moc2FnZS5y aW5ncy5yaW5nLkZpZWxkKToKKy0gICAgY2RlZiByZWFkb25seSBpbnQgX19wcmVjCisrICAgIGNk ZWYgcmVhZG9ubHkgaW50IF9wcmVjCisgICAgIGNkZWYgbXBjX3JuZF90IF9fcm5kCisgICAgIGNk ZWYgb2JqZWN0IF9fcm5kX3N0cgorICAgICBjZGVmIG9iamVjdCBfX3JlYWxfZmllbGQKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21wYy5weXggYi9zcmMvc2FnZS9yaW5ncy9j b21wbGV4X21wYy5weXgKK2luZGV4IGIzNjgxZmY3MjRmLi5jODQ3YTkzMDJiNSAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBjLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3Mv Y29tcGxleF9tcGMucHl4CitAQCAtMzA3LDcgKzMwNyw3IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4 RmllbGRfY2xhc3Moc2FnZS5yaW5ncy5yaW5nLkZpZWxkKToKKyAgICAgICAgIGlmIHByZWMgPCBt cGZyX3ByZWNfbWluKCkgb3IgcHJlYyA+IG1wZnJfcHJlY19tYXgoKToKKyAgICAgICAgICAgICBy YWlzZSBWYWx1ZUVycm9yKCJwcmVjICg9JXMpIG11c3QgYmUgPj0gJXMgYW5kIDw9ICVzLiIgJSAo CisgICAgICAgICAgICAgICAgIHByZWMsIG1wZnJfcHJlY19taW4oKSwgbXBmcl9wcmVjX21heCgp KSkKKy0gICAgICAgIHNlbGYuX19wcmVjID0gcHJlYworKyAgICAgICAgc2VsZi5fcHJlYyA9IHBy ZWMKKyAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJuZCwgc3RyKToKKyAgICAgICAgICAgICBy YWlzZSBUeXBlRXJyb3IoInJuZCBtdXN0IGJlIGEgc3RyaW5nIikKKyAgICAgICAgIHRyeToKK0BA IC0zMzEsNyArMzMxLDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhGaWVsZF9jbGFzcyhzYWdlLnJp bmdzLnJpbmcuRmllbGQpOgorICAgICAgICAgY2RlZiBNUENvbXBsZXhOdW1iZXIgegorICAgICAg ICAgeiA9IE1QQ29tcGxleE51bWJlci5fX25ld19fKE1QQ29tcGxleE51bWJlcikKKyAgICAgICAg IHouX3BhcmVudCA9IHNlbGYKKy0gICAgICAgIG1wY19pbml0Mih6LnZhbHVlLCBzZWxmLl9fcHJl YykKKysgICAgICAgIG1wY19pbml0Mih6LnZhbHVlLCBzZWxmLl9wcmVjKQorICAgICAgICAgei5p bml0ID0gMQorICAgICAgICAgcmV0dXJuIHoKKyAKK0BAIC0zNDQsNyArMzQ0LDcgQEAgY2RlZiBj bGFzcyBNUENvbXBsZXhGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLnJpbmcuRmllbGQpOgorICAgICAg ICAgICAgIHNhZ2U6IE1QQ29tcGxleEZpZWxkKDIwMCwgJ1JORERVJykgIyBpbmRpcmVjdCBkb2N0 ZXN0CisgICAgICAgICAgICAgQ29tcGxleCBGaWVsZCB3aXRoIDIwMCBiaXRzIG9mIHByZWNpc2lv biBhbmQgcm91bmRpbmcgUk5ERFUKKyAgICAgICAgICIiIgorLSAgICAgICAgcyA9ICJDb21wbGV4 IEZpZWxkIHdpdGggJXMgYml0cyBvZiBwcmVjaXNpb24iJXNlbGYuX19wcmVjCisrICAgICAgICBz ID0gIkNvbXBsZXggRmllbGQgd2l0aCAlcyBiaXRzIG9mIHByZWNpc2lvbiIlc2VsZi5fcHJlYwor ICAgICAgICAgaWYgc2VsZi5fX3JuZCAhPSBNUENfUk5ETk46CisgICAgICAgICAgICAgcyA9IHMg KyAiIGFuZCByb3VuZGluZyAlcyIlKHNlbGYuX19ybmRfc3RyKQorICAgICAgICAgcmV0dXJuIHMK K0BAIC00NjUsMTMgKzQ2NSwxMyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKHNh Z2UucmluZ3MucmluZy5GaWVsZCk6CisgICAgICAgICBpZiBSUi5oYXNfY29lcmNlX21hcF9mcm9t KFMpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9jb2VyY2VfbWFwX3ZpYShbUlJdLCBTKQor IAorLSAgICAgICAgaWYgaXNpbnN0YW5jZShTLCBNUENvbXBsZXhGaWVsZF9jbGFzcykgYW5kIFMu cHJlYygpID49IHNlbGYuX19wcmVjOgorKyAgICAgICAgaWYgaXNpbnN0YW5jZShTLCBNUENvbXBs ZXhGaWVsZF9jbGFzcykgYW5kIFMucHJlYygpID49IHNlbGYuX3ByZWM6CisgICAgICAgICAgICAg I0ZJWE1FOiBXaGF0IG1hcCB3aGVuIHJvdW5kaW5nIG1vZGVzIGRpZmZlciBidXQgcHJlYyBpcyB0 aGUgc2FtZSA/CisgICAgICAgICAgICAgIyAgICAgICBIb3cgdG8gcHJvdmlkZSBjb21tdXRhdGl2 aXR5IG9mIG1vcnBoaXNtcyA/CisgICAgICAgICAgICAgIyAgICAgICBDaGFuZ2UgX2NtcF8gd2hl biBkb25lCisgICAgICAgICAgICAgcmV0dXJuIE1QQ3RvTVBDKFMsIHNlbGYpCisgCistICAgICAg ICBpZiBpc2luc3RhbmNlKFMsIENvbXBsZXhGaWVsZF9jbGFzcykgYW5kIFMucHJlYygpID49IHNl bGYuX19wcmVjOgorKyAgICAgICAgaWYgaXNpbnN0YW5jZShTLCBDb21wbGV4RmllbGRfY2xhc3Mp IGFuZCBTLnByZWMoKSA+PSBzZWxmLl9wcmVjOgorICAgICAgICAgICAgIHJldHVybiBDQ3RvTVBD KFMsIHNlbGYpCisgCisgICAgICAgICBsYXRlX2ltcG9ydCgpCitAQCAtNDkwLDcgKzQ5MCw3IEBA IGNkZWYgY2xhc3MgTVBDb21wbGV4RmllbGRfY2xhc3Moc2FnZS5yaW5ncy5yaW5nLkZpZWxkKToK KyAgICAgICAgICAgICBzYWdlOiBsb2FkcyhkdW1wcyhDKSkgPT0gQworICAgICAgICAgICAgIFRy dWUKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIF9fY3JlYXRlX19NUENvbXBsZXhGaWVs ZF92ZXJzaW9uMCwgKHNlbGYuX19wcmVjLCBzZWxmLl9fcm5kX3N0cikKKysgICAgICAgIHJldHVy biBfX2NyZWF0ZV9fTVBDb21wbGV4RmllbGRfdmVyc2lvbjAsIChzZWxmLl9wcmVjLCBzZWxmLl9f cm5kX3N0cikKKyAKKyAgICAgZGVmIF9fcmljaGNtcF9fKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgor ICAgICAgICAgIiIiCitAQCAtNTEzLDcgKzUxMyw3IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4Rmll bGRfY2xhc3Moc2FnZS5yaW5ncy5yaW5nLkZpZWxkKToKKyAKKyAgICAgICAgIGNkZWYgTVBDb21w bGV4RmllbGRfY2xhc3MgcyA9IDxNUENvbXBsZXhGaWVsZF9jbGFzcz5sZWZ0CisgICAgICAgICBj ZGVmIE1QQ29tcGxleEZpZWxkX2NsYXNzIG8gPSA8TVBDb21wbGV4RmllbGRfY2xhc3M+cmlnaHQK Ky0gICAgICAgIHJldHVybiByaWNoY21wKHMuX19wcmVjLCBvLl9fcHJlYywgb3ApCisrICAgICAg ICByZXR1cm4gcmljaGNtcChzLl9wcmVjLCBvLl9wcmVjLCBvcCkKKyAKKyAgICAgZGVmIGdlbihz ZWxmLCBuPTApOgorICAgICAgICAgIiIiCitAQCAtNjA0LDcgKzYwNCw3IEBAIGNkZWYgY2xhc3Mg TVBDb21wbGV4RmllbGRfY2xhc3Moc2FnZS5yaW5ncy5yaW5nLkZpZWxkKToKKyAgICAgICAgICAg ICBzYWdlOiBDID0gTVBDb21wbGV4RmllbGQoMTAsICdSTkROWicpOyBDLm5hbWUoKQorICAgICAg ICAgICAgICdNUENvbXBsZXhGaWVsZDEwX1JORE5aJworICAgICAgICAgIiIiCistICAgICAgICBy ZXR1cm4gIk1QQ29tcGxleEZpZWxkJXNfJXMiJShzZWxmLl9fcHJlYywgc2VsZi5fX3JuZF9zdHIp CisrICAgICAgICByZXR1cm4gIk1QQ29tcGxleEZpZWxkJXNfJXMiJShzZWxmLl9wcmVjLCBzZWxm Ll9fcm5kX3N0cikKKyAKKyAgICAgZGVmIF9faGFzaF9fKHNlbGYpOgorICAgICAgICAgIiIiCitA QCAtNjI5LDcgKzYyOSw3IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4RmllbGRfY2xhc3Moc2FnZS5y aW5ncy5yaW5nLkZpZWxkKToKKyAgICAgICAgICAgICBzYWdlOiBNUENvbXBsZXhGaWVsZCgyMiku cHJlYygpCisgICAgICAgICAgICAgMjIKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNl bGYuX19wcmVjCisrICAgICAgICByZXR1cm4gc2VsZi5fcHJlYworIAorICAgICBkZWYgcm91bmRp bmdfbW9kZShzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTcwNyw3ICs3MDcsNyBAQCBjZGVmIGNs YXNzIE1QQ29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6 CisgICAgICAgICBjZGVmIE1QQ29tcGxleE51bWJlciB6CisgICAgICAgICB6ID0gTVBDb21wbGV4 TnVtYmVyLl9fbmV3X18oTVBDb21wbGV4TnVtYmVyKQorICAgICAgICAgei5fcGFyZW50ID0gc2Vs Zi5fcGFyZW50CistICAgICAgICBtcGNfaW5pdDIoei52YWx1ZSwgKDxNUENvbXBsZXhGaWVsZF9j bGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYykKKysgICAgICAgIG1wY19pbml0Mih6LnZhbHVlLCAo PE1QQ29tcGxleEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMpCisgICAgICAgICB6Lmlu aXQgPSAxCisgICAgICAgICByZXR1cm4gegorIAorQEAgLTc2MCw3ICs3NjAsNyBAQCBjZGVmIGNs YXNzIE1QQ29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6 CisgICAgICAgICBpZiBwYXJlbnQgaXMgTm9uZToKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJy b3IKKyAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAorLSAgICAgICAgbXBjX2luaXQyKHNl bGYudmFsdWUsIHBhcmVudC5fX3ByZWMpCisrICAgICAgICBtcGNfaW5pdDIoc2VsZi52YWx1ZSwg cGFyZW50Ll9wcmVjKQorICAgICAgICAgc2VsZi5pbml0ID0gMQorICAgICAgICAgaWYgeCBpcyBO b25lOiByZXR1cm4KKyAgICAgICAgIHNlbGYuX3NldCh4LCB5LCBiYXNlKQorQEAgLTEwMTAsNyAr MTAxMCw3IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1l bnQuRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBpLnByZWMoKQorICAgICAgICAg ICAgIDIwMDAKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIDxNUENvbXBsZXhGaWVsZF9j bGFzcz4oc2VsZi5fcGFyZW50KS5fX3ByZWMKKysgICAgICAgIHJldHVybiA8TVBDb21wbGV4Rmll bGRfY2xhc3M+KHNlbGYuX3BhcmVudCkuX3ByZWMKKyAKKyAgICAgZGVmIHJlYWwoc2VsZik6Cisg ICAgICAgICAiIiIKK0BAIC0xNTcxLDI2ICsxNTcxLDYgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhO dW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAgbXBj X25vcm0oeC52YWx1ZSwgc2VsZi52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+eC5fcGFyZW50KS5y bmQpCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBkZWYgX19ydHJ1ZWRpdl9fKHNlbGYsIGxl ZnQpOgorLSAgICAgICAgciIiIgorLSAgICAgICAgUmV0dXJucyB0aGUgcXVvdGllbnQgb2YgYGBs ZWZ0YGAgd2l0aCBgYHNlbGZgYCwgdGhhdCBpczogYGBsZWZ0L3NlbGZgYAorLSAgICAgICAgYXMg YSBjb21wbGV4IG51bWJlci4KKy0KKy0gICAgICAgIElOUFVUOgorLQorLSAgICAgICAgLSBgYGxl ZnRgYCAtLSBhIGNvbXBsZXggbnVtYmVyCistCistICAgICAgICBFWEFNUExFUzo6CistCistICAg ICAgICAgICAgc2FnZTogTVBDID0gTVBDb21wbGV4RmllbGQoKQorLSAgICAgICAgICAgIHNhZ2U6 IGEgPSBNUEMoMiwgMikKKy0gICAgICAgICAgICBzYWdlOiBhLl9fcnRydWVkaXZfXyhNUEMoMSkp CistICAgICAgICAgICAgMC4yNTAwMDAwMDAwMDAwMDAgLSAwLjI1MDAwMDAwMDAwMDAwMCpJCist ICAgICAgICAgICAgc2FnZTogTVBDKDEpL2EKKy0gICAgICAgICAgICAwLjI1MDAwMDAwMDAwMDAw MCAtIDAuMjUwMDAwMDAwMDAwMDAwKkkKKy0gICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIE1Q Q29tcGxleE51bWJlcihzZWxmLl9wYXJlbnQsIGxlZnQpL3NlbGYKKy0KKyAgICAgZGVmIF9fcG93 X18oc2VsZiwgcmlnaHQsIG1vZHVsdXMpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wdXRl IGBgc2VsZmBgIHJhaXNlZCB0byB0aGUgcG93ZXIgb2YgZXhwb25lbnQsIHJvdW5kZWQgaW4KK0BA IC0yMzQ3LDcgKzIzMjcsNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleE51bWJlcihzYWdlLnN0cnVj dHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgCisgICAgICAgICBjZGVmIG1wY19ybmRfdCBy bmQgPSAoPE1QQ29tcGxleEZpZWxkX2NsYXNzPihzZWxmLl9wYXJlbnQpKS5fX3JuZAorIAorLSAg ICAgICAgY2RlZiBpbnQgcHJlYyA9IHNlbGYuX3BhcmVudC5fX3ByZWMKKysgICAgICAgIGNkZWYg aW50IHByZWMgPSBzZWxmLl9wYXJlbnQuX3ByZWMKKyAKKyAgICAgICAgIGlmIG9wdGltYWwgb3Ig YWxnb3JpdGhtID09ICJwcmluY2lwYWwiOgorICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNl KHJpZ2h0LCBNUENvbXBsZXhOdW1iZXIpIG9yICg8TVBDb21wbGV4TnVtYmVyPnJpZ2h0KS5fcGFy ZW50IGlzIG5vdCBzZWxmLl9wYXJlbnQ6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvY29t cGxleF9tcGZyLnB5eCBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBmci5weXgKK2luZGV4IDMz ZDczZDgxYjEyLi42MWYyY2FkYzhlNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2NvbXBs ZXhfbXBmci5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBmci5weXgKK0BAIC0x NjU4LDI4ICsxNjU4LDYgQEAgY2RlZiBjbGFzcyBDb21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJl LmVsZW1lbnQuRmllbGRFbGVtZW50KToKKyAgICAgICAgIG1wZnJfY2xlYXIocmlnaHRfbm0pCisg ICAgICAgICByZXR1cm4geAorIAorLSAgICBkZWYgX19ydHJ1ZWRpdl9fKHNlbGYsIGxlZnQpOgor LSAgICAgICAgciIiIgorLSAgICAgICAgUmV0dXJuIHRoZSBxdW90aWVudCBvZiBsZWZ0IHdpdGgg YGBzZWxmYGAsIHRoYXQgaXM6CistCistICAgICAgICBgYGxlZnQvc2VsZmBgCistCistICAgICAg ICBhcyBhIGNvbXBsZXggbnVtYmVyLgorLQorLSAgICAgICAgSU5QVVQ6CistCistICAgICAgICAt IGBgbGVmdGBgIC0tIGEgY29tcGxleCBudW1iZXIgdG8gZGl2aWRlIGJ5IGBgc2VsZmBgCistCist ICAgICAgICBFWEFNUExFUzo6CistCistICAgICAgICAgICAgc2FnZTogYSA9IENvbXBsZXhOdW1i ZXIoMiwwKQorLSAgICAgICAgICAgIHNhZ2U6IGEuX19ydHJ1ZWRpdl9fKENDKDEpKQorLSAgICAg ICAgICAgIDAuNTAwMDAwMDAwMDAwMDAwCistICAgICAgICAgICAgc2FnZTogQ0MoMSkvYQorLSAg ICAgICAgICAgIDAuNTAwMDAwMDAwMDAwMDAwCistICAgICAgICAiIiIKKy0gICAgICAgIHJldHVy biBDb21wbGV4TnVtYmVyKHNlbGYuX3BhcmVudCwgbGVmdCkvc2VsZgorLQorICAgICBkZWYgX19w b3dfXyhzZWxmLCByaWdodCwgbW9kdWx1cyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSYWlz ZSBgYHNlbGZgYCB0byB0aGUgYGByaWdodGBgIGV4cG9uZW50LgorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9pbnRlZ2VyX21vZC5weGQgYi9zcmMvc2FnZS9yaW5ncy9m aW5pdGVfcmluZ3MvaW50ZWdlcl9tb2QucHhkCitpbmRleCAxZTNjYjgxYzE0OC4uMzUxZmZhMjVl MWIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvaW50ZWdlcl9tb2Qu cHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvaW50ZWdlcl9tb2QucHhkCitA QCAtMjAsNyArMjAsNyBAQCBjZGVmIGNsYXNzIE5hdGl2ZUludFN0cnVjdDoKKyAKKyAKKyBjZGVm IGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorLSAgICBjZGVm IE5hdGl2ZUludFN0cnVjdCBfX21vZHVsdXMKKysgICAgY2RlZiBOYXRpdmVJbnRTdHJ1Y3QgX21v ZHVsdXMKKyAgICAgY2RlZiBfbmV3X2NfZnJvbV9sb25nKHNlbGYsIGxvbmcgdmFsdWUpCisgICAg IGNkZWYgSW50ZWdlck1vZF9hYnN0cmFjdCBfbmV3X2NfZmFzdChzZWxmLCB1bnNpZ25lZCBsb25n IHZhbHVlKQorICAgICBjZGVmIHZvaWQgc2V0X2Zyb21fbXB6KHNlbGYsIG1wel90IHZhbHVlKQor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9pbnRlZ2VyX21vZC5weXgg Yi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvaW50ZWdlcl9tb2QucHl4CitpbmRleCBiOTQ2 MWJkMzYyZS4uZDY0YmE1YWY4NGYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVf cmluZ3MvaW50ZWdlcl9tb2QucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3Mv aW50ZWdlcl9tb2QucHl4CitAQCAtMzYxLDcgKzM2MSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1v ZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgWmVyb0RpdmlzaW9u RXJyb3I6IGludmVyc2Ugb2YgTW9kKDQsIDMwKSBkb2VzIG5vdCBleGlzdAorICAgICAgICAgIiIi CisgICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKKy0gICAgICAgIHNlbGYuX19tb2R1bHVz ID0gcGFyZW50Ll9weXhfb3JkZXIKKysgICAgICAgIHNlbGYuX21vZHVsdXMgPSBwYXJlbnQuX3B5 eF9vcmRlcgorIAorICAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgICAgICByZXR1 cm4KK0BAIC0zNzMsNyArMzczLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZp bml0ZVJpbmdFbGVtZW50KToKKyAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIEludGVnZXIp OgorICAgICAgICAgICAgIHogPSA8SW50ZWdlcj52YWx1ZQorICAgICAgICAgZWxpZiBpc2luc3Rh bmNlKHZhbHVlLCByYXRpb25hbC5SYXRpb25hbCk6CistICAgICAgICAgICAgeiA9IHZhbHVlICUg c2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIKKysgICAgICAgICAgICB6ID0gdmFsdWUgJSBzZWxm Ll9tb2R1bHVzLnNhZ2VJbnRlZ2VyCisgICAgICAgICBlbGlmIGludGVnZXJfY2hlY2tfbG9uZ19w eSh2YWx1ZSwgJmxvbmd2YWwsICZlcnIpIGFuZCBub3QgZXJyOgorICAgICAgICAgICAgIHNlbGYu c2V0X2Zyb21fbG9uZyhsb25ndmFsKQorICAgICAgICAgICAgIHJldHVybgorQEAgLTM4OCw3ICsz ODgsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQp OgorICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBweV9zY2FsYXJfdG9fZWxlbWVudCh2YWx1 ZSkKKyAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgRWxlbWVudCkgYW5kIHZh bHVlLnBhcmVudCgpLmlzX2V4YWN0KCk6CisgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNh Z2UucmluZ3MucmF0aW9uYWxfZmllbGQuUVEodmFsdWUpCistICAgICAgICAgICAgICAgICAgICB6 ID0gdmFsdWUgJSBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcgorKyAgICAgICAgICAgICAgICAg ICAgeiA9IHZhbHVlICUgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlcgorICAgICAgICAgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgIHNlbGYuc2V0X2Zy b21fbXB6KHoudmFsdWUpCitAQCAtMzk3LDcgKzM5Nyw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1v ZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICBjZGVmIHR5cGUgdCA9IHR5 cGUoc2VsZikKKyAgICAgICAgIHggPSA8SW50ZWdlck1vZF9hYnN0cmFjdD50Ll9fbmV3X18odCkK KyAgICAgICAgIHguX3BhcmVudCA9IHNlbGYuX3BhcmVudAorLSAgICAgICAgeC5fX21vZHVsdXMg PSBzZWxmLl9fbW9kdWx1cworKyAgICAgICAgeC5fbW9kdWx1cyA9IHNlbGYuX21vZHVsdXMKKyAg ICAgICAgIHguc2V0X2Zyb21fdWxvbmdfZmFzdCh2YWx1ZSkKKyAgICAgICAgIHJldHVybiB4Cisg CitAQCAtNDA1LDcgKzQwNSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0cmFjdChGaW5p dGVSaW5nRWxlbWVudCk6CisgICAgICAgICBjZGVmIHR5cGUgdCA9IHR5cGUoc2VsZikKKyAgICAg ICAgIGNkZWYgSW50ZWdlck1vZF9hYnN0cmFjdCB4ID0gPEludGVnZXJNb2RfYWJzdHJhY3Q+dC5f X25ld19fKHQpCisgICAgICAgICB4Ll9wYXJlbnQgPSBzZWxmLl9wYXJlbnQKKy0gICAgICAgIHgu X19tb2R1bHVzID0gc2VsZi5fX21vZHVsdXMKKysgICAgICAgIHguX21vZHVsdXMgPSBzZWxmLl9t b2R1bHVzCisgICAgICAgICB4LnNldF9mcm9tX2xvbmcodmFsdWUpCisgICAgICAgICByZXR1cm4g eAorIAorQEAgLTUyOSwxNyArNTI5LDE3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0cmFj dChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGlmIHNlbGYuaXNf emVybygpOgorICAgICAgICAgICAgIHJldHVybiBUcnVlCistICAgICAgICBtID0gc2VsZi5fX21v ZHVsdXMuc2FnZUludGVnZXIuZXhhY3RfbG9nKDIpICsgMQorKyAgICAgICAgbSA9IHNlbGYuX21v ZHVsdXMuc2FnZUludGVnZXIuZXhhY3RfbG9nKDIpICsgMQorICAgICAgICAgcmV0dXJuIChzZWxm KiptKS5pc196ZXJvKCkKKyAKKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAgICAgIyBJbnRlcmZhY2VzCisgICAg ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisgICAgIGRlZiBfcGFyaV9pbml0XyhzZWxmKToKKy0gICAgICAgIHJldHVybiAn TW9kKCVzLCVzKSclKHN0cihzZWxmKSwgc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIpCisrICAg ICAgICByZXR1cm4gJ01vZCglcywlcyknJShzdHIoc2VsZiksIHNlbGYuX21vZHVsdXMuc2FnZUlu dGVnZXIpCisgCisgICAgIGRlZiBfX3BhcmlfXyhzZWxmKToKKy0gICAgICAgIHJldHVybiBzZWxm LmxpZnQoKS5fX3BhcmlfXygpLk1vZChzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcikKKysgICAg ICAgIHJldHVybiBzZWxmLmxpZnQoKS5fX3BhcmlfXygpLk1vZChzZWxmLl9tb2R1bHVzLnNhZ2VJ bnRlZ2VyKQorIAorICAgICBkZWYgX2dhcF9pbml0XyhzZWxmKToKKyAgICAgICAgIHIiIiIKK0BA IC01NTgsNyArNTU4LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZpbml0ZVJp bmdFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBnYXAoTW9kKDQsIDQ4KSkKKyAgICAgICAg ICAgICBabW9kblpPYmooIDQsIDQ4ICkKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuICcl cypPbmUoWm1vZG5aKCVzKSknICUgKHNlbGYsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyKQor KyAgICAgICAgcmV0dXJuICclcypPbmUoWm1vZG5aKCVzKSknICUgKHNlbGYsIHNlbGYuX21vZHVs dXMuc2FnZUludGVnZXIpCisgCisgICAgIGRlZiBfbWFnbWFfaW5pdF8oc2VsZiwgbWFnbWEpOgor ICAgICAgICAgIiIiCitAQCAtODY5LDcgKzg2OSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9h YnN0cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogTW9kKDMsMTcp Lm1vZHVsdXMoKQorICAgICAgICAgICAgIDE3CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVy biBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcgorKyAgICAgICAgcmV0dXJuIHNlbGYuX21vZHVs dXMuc2FnZUludGVnZXIKKyAKKyAgICAgZGVmIGNoYXJwb2x5KHNlbGYsIHZhcj0neCcpOgorICAg ICAgICAgIiIiCitAQCAtMTIyOSw3ICsxMjI5LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2Fi c3RyYWN0KEZpbml0ZVJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgbW9kdWx1cyA9IFIu Z2VuKCkqKjIgLSBSKHNlbGYpCisgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3BhcmVudC5pc19m aWVsZCgpOgorICAgICAgICAgICAgICAgICAgICAgZnJvbSAuZmluaXRlX2ZpZWxkX2NvbnN0cnVj dG9yIGltcG9ydCBGaW5pdGVGaWVsZAorLSAgICAgICAgICAgICAgICAgICAgUSA9IEZpbml0ZUZp ZWxkKHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyKioyLCB5LCBtb2R1bHVzKQorKyAgICAgICAg ICAgICAgICAgICAgUSA9IEZpbml0ZUZpZWxkKHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIqKjIs IHksIG1vZHVsdXMpCisgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAg ICBSID0gc2VsZi5wYXJlbnQoKVsneCddCisgICAgICAgICAgICAgICAgICAgICBRID0gUi5xdW90 aWVudChtb2R1bHVzLCBuYW1lcz0oeSwpKQorQEAgLTEyNTAsNyArMTI1MCw3IEBAIGNkZWYgY2xh c3MgSW50ZWdlck1vZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAg aWYgYWxsIGFuZCBlID4gMSBhbmQgbm90IHNlbGYuaXNfdW5pdCgpOgorICAgICAgICAgICAgICAg ICBpZiBzZWxmLmlzX3plcm8oKToKKyAgICAgICAgICAgICAgICAgICAgICMgQWxsIG11bHRpcGxl cyBvZiBwXmNpZWwoZS8yKSB2YW5pc2gKKy0gICAgICAgICAgICAgICAgICAgIHJldHVybiBbc2Vs Zi5fcGFyZW50KHgpIGZvciB4IGluIHJhbmdlKDAsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2Vy LCBwKiooKGUrMSkvMikpXQorKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtzZWxmLl9wYXJl bnQoeCkgZm9yIHggaW4gcmFuZ2UoMCwgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlciwgcCoqKChl KzEpLzIpKV0KKyAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIHog PSBzZWxmLmxpZnQoKQorICAgICAgICAgICAgICAgICAgICAgdmFsID0gei52YWx1YXRpb24ocCkv MiAgIyBzcXVhcmUgPT4gdmFsdWF0aW9uIGlzIGV2ZW4KK0BAIC0xMjcyLDcgKzEyNzIsNyBAQCBj ZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAg ICAgICAgICAgICAgICAgcF9leHAgPSBwKipleHAKKyAgICAgICAgICAgICAgICAgICAgIHcgPSBb c2VsZi5fcGFyZW50KGEubGlmdCgpICogcF92YWwgKyBiKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmb3IgYSBpbiB1LnNxcnQoYWxsPVRydWUpCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZvciBiIGluIHJhbmdlKDAsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyLCBwX2V4 cCldCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBiIGluIHJhbmdlKDAsIHNlbGYu X21vZHVsdXMuc2FnZUludGVnZXIsIHBfZXhwKV0KKyAgICAgICAgICAgICAgICAgICAgIGlmIHAg PT0gMjoKKyAgICAgICAgICAgICAgICAgICAgICAgICB3ID0gbGlzdChzZXQodykpCisgICAgICAg ICAgICAgICAgICAgICB3LnNvcnQoKQorQEAgLTE2MjQsNyArMTYyNCw3IEBAIGNkZWYgY2xhc3Mg SW50ZWdlck1vZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICBkZXNwaXRl IHRoZSBwb3NzaWJseSBwcm9iYWJpbGlzdGljIG5hdHVyZSBvZiB0aGUgdW5kZXJseWluZworICAg ICAgICAgYWxnb3JpdGhtLgorICAgICAgICAgIiIiCistICAgICAgICBpZiBzZWxmLmxpZnQoKSA+ IHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyID4+IDE6CisrICAgICAgICBpZiBzZWxmLmxpZnQo KSA+IHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIgPj4gMToKKyAgICAgICAgICAgICByZXR1cm4g LXNlbGYKKyAgICAgICAgIHJldHVybiBzZWxmCisgCitAQCAtMTcwNSwyNyArMTcwNSwyNyBAQCBj ZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAgICAg ICAgY2RlZiBpbnRfZmFzdDY0X3QgbmV3X21vZHVsdXMKKyAgICAgICAgIGlmIG5vdCBpc2luc3Rh bmNlKHNlbGYsIEludGVnZXJNb2RfZ21wKSBhbmQgbm90IGlzaW5zdGFuY2Uob3RoZXIsIEludGVn ZXJNb2RfZ21wKToKKyAKKy0gICAgICAgICAgICBpZiBvdGhlci5fX21vZHVsdXMuaW50NjQgPT0g MTogcmV0dXJuIHNlbGYKKy0gICAgICAgICAgICBuZXdfbW9kdWx1cyA9IHNlbGYuX19tb2R1bHVz LmludDY0ICogb3RoZXIuX19tb2R1bHVzLmludDY0CisrICAgICAgICAgICAgaWYgb3RoZXIuX21v ZHVsdXMuaW50NjQgPT0gMTogcmV0dXJuIHNlbGYKKysgICAgICAgICAgICBuZXdfbW9kdWx1cyA9 IHNlbGYuX21vZHVsdXMuaW50NjQgKiBvdGhlci5fbW9kdWx1cy5pbnQ2NAorICAgICAgICAgICAg IGlmIG5ld19tb2R1bHVzIDwgSU5URUdFUl9NT0RfSU5UMzJfTElNSVQ6CistICAgICAgICAgICAg ICAgIHJldHVybiBzZWxmLl9fY3J0KG90aGVyKQorKyAgICAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5fY3J0KG90aGVyKQorIAorICAgICAgICAgICAgIGVsaWYgbmV3X21vZHVsdXMgPCBJTlRFR0VS X01PRF9JTlQ2NF9MSU1JVDoKKyAgICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc2Vs ZiwgSW50ZWdlck1vZF9pbnQ2NCk6CisgICAgICAgICAgICAgICAgICAgICBzZWxmID0gSW50ZWdl ck1vZF9pbnQ2NChzZWxmLl9wYXJlbnQsIHNlbGYubGlmdCgpKQorICAgICAgICAgICAgICAgICBp ZiBub3QgaXNpbnN0YW5jZShvdGhlciwgSW50ZWdlck1vZF9pbnQ2NCk6CisgICAgICAgICAgICAg ICAgICAgICBvdGhlciA9IEludGVnZXJNb2RfaW50NjQob3RoZXIuX3BhcmVudCwgb3RoZXIubGlm dCgpKQorLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fX2NydChvdGhlcikKKysgICAgICAg ICAgICAgICAgcmV0dXJuIHNlbGYuX2NydChvdGhlcikKKyAKKyAgICAgICAgIGlmIG5vdCBpc2lu c3RhbmNlKHNlbGYsIEludGVnZXJNb2RfZ21wKToKKy0gICAgICAgICAgICBpZiBzZWxmLl9fbW9k dWx1cy5pbnQ2NCA9PSAxOiByZXR1cm4gb3RoZXIKKysgICAgICAgICAgICBpZiBzZWxmLl9tb2R1 bHVzLmludDY0ID09IDE6IHJldHVybiBvdGhlcgorICAgICAgICAgICAgIHNlbGYgPSBJbnRlZ2Vy TW9kX2dtcChzZWxmLl9wYXJlbnQsIHNlbGYubGlmdCgpKQorIAorICAgICAgICAgaWYgbm90IGlz aW5zdGFuY2Uob3RoZXIsIEludGVnZXJNb2RfZ21wKToKKy0gICAgICAgICAgICBpZiBvdGhlci5f X21vZHVsdXMuaW50NjQgPT0gMTogcmV0dXJuIHNlbGYKKysgICAgICAgICAgICBpZiBvdGhlci5f bW9kdWx1cy5pbnQ2NCA9PSAxOiByZXR1cm4gc2VsZgorICAgICAgICAgICAgIG90aGVyID0gSW50 ZWdlck1vZF9nbXAob3RoZXIuX3BhcmVudCwgb3RoZXIubGlmdCgpKQorIAorLSAgICAgICAgcmV0 dXJuIHNlbGYuX19jcnQob3RoZXIpCisrICAgICAgICByZXR1cm4gc2VsZi5fY3J0KG90aGVyKQor IAorICAgICBkZWYgYWRkaXRpdmVfb3JkZXIoc2VsZik6CisgICAgICAgICByIiIiCitAQCAtMTc0 Miw3ICsxNzQyLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZpbml0ZVJpbmdF bGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBJbnRlZ2Vycyg5MDMwODQwMjM4NDkwMikoMiku YWRkaXRpdmVfb3JkZXIoKQorICAgICAgICAgICAgIDQ1MTU0MjAxMTkyNDUxCisgICAgICAgICAi IiIKKy0gICAgICAgIG4gPSBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcgorKyAgICAgICAgbiA9 IHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIKKyAgICAgICAgIHJldHVybiBzYWdlLnJpbmdzLmlu dGVnZXIuSW50ZWdlcihuIC8vIHNlbGYubGlmdCgpLmdjZChuKSkKKyAKKyAgICAgZGVmIGlzX3By aW1pdGl2ZV9yb290KHNlbGYpOgorQEAgLTE4NTYsNyArMTg1Niw3IEBAIGNkZWYgY2xhc3MgSW50 ZWdlck1vZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgcmV0dXJu IHNhZ2UucmluZ3MuaW50ZWdlci5JbnRlZ2VyKHNlbGYuX19wYXJpX18oKS56bm9yZGVyKCkpCisg ICAgICAgICBleGNlcHQgUGFyaUVycm9yOgorICAgICAgICAgICAgIHJhaXNlIEFyaXRobWV0aWNF cnJvcigibXVsdGlwbGljYXRpdmUgb3JkZXIgb2YgJXMgbm90IGRlZmluZWQgc2luY2UgaXQgaXMg bm90IGEgdW5pdCBtb2R1bG8gJXMiJSgKKy0gICAgICAgICAgICAgICAgc2VsZiwgc2VsZi5fX21v ZHVsdXMuc2FnZUludGVnZXIpKQorKyAgICAgICAgICAgICAgICBzZWxmLCBzZWxmLl9tb2R1bHVz LnNhZ2VJbnRlZ2VyKSkKKyAKKyAgICAgZGVmIHZhbHVhdGlvbihzZWxmLCBwKToKKyAgICAgICAg ICIiIgorQEAgLTE5MDUsNyArMTkwNSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0cmFj dChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgMgorIAorICAgICAgICAgIiIiCist ICAgICAgICBwPXNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyLmdjZChwKQorKyAgICAgICAgcD1z ZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLmdjZChwKQorICAgICAgICAgaWYgcD09MToKKyAgICAg ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJWYWx1YXRpb24gd2l0aCByZXNwZWN0IHRvIGEgdW5p dCBpcyBub3QgZGVmaW5lZC4iKQorICAgICAgICAgciA9IDAKK0BAIC0xOTEzLDcgKzE5MTMsNyBA QCBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRlUmluZ0VsZW1lbnQpOgorICAg ICAgICAgd2hpbGUgbm90IChzZWxmICUgcG93ZXIpOiAjIHNlbGYgJSBwb3dlciA9PSAwCisgICAg ICAgICAgICAgciArPSAxCisgICAgICAgICAgICAgcG93ZXIgKj0gcAorLSAgICAgICAgICAgIGlm IG5vdCBwb3dlci5kaXZpZGVzKHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyKToKKysgICAgICAg ICAgICBpZiBub3QgcG93ZXIuZGl2aWRlcyhzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyKToKKyAg ICAgICAgICAgICAgICAgZnJvbSBzYWdlLnJpbmdzLmluZmluaXR5IGltcG9ydCBpbmZpbml0eQor ICAgICAgICAgICAgICAgICByZXR1cm4gaW5maW5pdHkKKyAgICAgICAgIHJldHVybiByCitAQCAt MTk4MCw3ICsxOTgwLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9kX2Fi c3RyYWN0KToKKyAgICAgY2RlZiBJbnRlZ2VyTW9kX2dtcCBfbmV3X2Moc2VsZik6CisgICAgICAg ICBjZGVmIEludGVnZXJNb2RfZ21wIHgKKyAgICAgICAgIHggPSBJbnRlZ2VyTW9kX2dtcC5fX25l d19fKEludGVnZXJNb2RfZ21wKQorLSAgICAgICAgeC5fX21vZHVsdXMgPSBzZWxmLl9fbW9kdWx1 cworKyAgICAgICAgeC5fbW9kdWx1cyA9IHNlbGYuX21vZHVsdXMKKyAgICAgICAgIHguX3BhcmVu dCA9IHNlbGYuX3BhcmVudAorICAgICAgICAgcmV0dXJuIHgKKyAKK0BAIC0xOTg5LDcgKzE5ODks NyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfZ21wKEludGVnZXJNb2RfYWJzdHJhY3QpOgorIAor ICAgICBjZGVmIHZvaWQgc2V0X2Zyb21fbXB6KHNlbGYsIG1wel90IHZhbHVlKToKKyAgICAgICAg IGNkZWYgc2FnZS5yaW5ncy5pbnRlZ2VyLkludGVnZXIgbW9kdWx1cworLSAgICAgICAgbW9kdWx1 cyA9IHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyCisrICAgICAgICBtb2R1bHVzID0gc2VsZi5f bW9kdWx1cy5zYWdlSW50ZWdlcgorICAgICAgICAgbXB6X21vZChzZWxmLnZhbHVlLCB2YWx1ZSwg bW9kdWx1cy52YWx1ZSkKKyAKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX2xvbmcoc2VsZiwgbG9u ZyB2YWx1ZSk6CitAQCAtMjAwMSw3ICsyMDAxLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dt cChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICAxCisgICAgICAgICAiIiIKKyAg ICAgICAgIG1wel9zZXRfc2koc2VsZi52YWx1ZSwgdmFsdWUpCistICAgICAgICBtcHpfbW9kKHNl bGYudmFsdWUsIHNlbGYudmFsdWUsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKQor KyAgICAgICAgbXB6X21vZChzZWxmLnZhbHVlLCBzZWxmLnZhbHVlLCBzZWxmLl9tb2R1bHVzLnNh Z2VJbnRlZ2VyLnZhbHVlKQorIAorICAgICBjZGVmIHZvaWQgc2V0X2Zyb21fdWxvbmdfZmFzdChz ZWxmLCB1bnNpZ25lZCBsb25nIHZhbHVlKToKKyAgICAgICAgIG1wel9zZXRfdWkoc2VsZi52YWx1 ZSwgdmFsdWUpCitAQCAtMjA3MSw3ICsyMDcxLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dt cChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICB4ID0gc2VsZi5fbmV3X2MoKQor ICAgICAgICAgICAgIGlmIGsgPiAwOgorICAgICAgICAgICAgICAgICBtcHpfbXVsXzJleHAoeC52 YWx1ZSwgc2VsZi52YWx1ZSwgaykKKy0gICAgICAgICAgICAgICAgbXB6X2ZkaXZfcih4LnZhbHVl LCB4LnZhbHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKysgICAgICAgICAg ICAgICAgbXB6X2ZkaXZfcih4LnZhbHVlLCB4LnZhbHVlLCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRl Z2VyLnZhbHVlKQorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIG1wel9mZGl2 X3FfMmV4cCh4LnZhbHVlLCBzZWxmLnZhbHVlLCAtaykKKyAgICAgICAgICAgICByZXR1cm4geAor QEAgLTIxMzIsMTIgKzIxMzIsMTIgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dtcChJbnRlZ2Vy TW9kX2Fic3RyYWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubGlmdCgp LmdjZChzZWxmLm1vZHVsdXMoKSkgPT0gMQorIAorLSAgICBkZWYgX19jcnQoSW50ZWdlck1vZF9n bXAgc2VsZiwgSW50ZWdlck1vZF9nbXAgb3RoZXIpOgorKyAgICBkZWYgX2NydChJbnRlZ2VyTW9k X2dtcCBzZWxmLCBJbnRlZ2VyTW9kX2dtcCBvdGhlcik6CisgICAgICAgICBjZGVmIEludGVnZXJN b2RfZ21wIGxpZnQsIHgKKyAgICAgICAgIGNkZWYgc2FnZS5yaW5ncy5pbnRlZ2VyLkludGVnZXIg bW9kdWx1cywgb3RoZXJfbW9kdWx1cworIAorLSAgICAgICAgbW9kdWx1cyA9IHNlbGYuX19tb2R1 bHVzLnNhZ2VJbnRlZ2VyCistICAgICAgICBvdGhlcl9tb2R1bHVzID0gb3RoZXIuX19tb2R1bHVz LnNhZ2VJbnRlZ2VyCisrICAgICAgICBtb2R1bHVzID0gc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdl cgorKyAgICAgICAgb3RoZXJfbW9kdWx1cyA9IG90aGVyLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyCisg ICAgICAgICBmcm9tIC5pbnRlZ2VyX21vZF9yaW5nIGltcG9ydCBJbnRlZ2VyTW9kUmluZworICAg ICAgICAgbGlmdCA9IEludGVnZXJNb2RfZ21wKEludGVnZXJNb2RSaW5nKG1vZHVsdXMqb3RoZXJf bW9kdWx1cykpCisgICAgICAgICB0cnk6CitAQCAtMjE4OCw4ICsyMTg4LDggQEAgY2RlZiBjbGFz cyBJbnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIGNkZWYgSW50 ZWdlck1vZF9nbXAgeAorICAgICAgICAgeCA9IHNlbGYuX25ld19jKCkKKyAgICAgICAgIG1wel9h ZGQoeC52YWx1ZSwgc2VsZi52YWx1ZSwgKDxJbnRlZ2VyTW9kX2dtcD5yaWdodCkudmFsdWUpCist ICAgICAgICBpZiBtcHpfY21wKHgudmFsdWUsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZh bHVlKSAgPj0gMDoKKy0gICAgICAgICAgICBtcHpfc3ViKHgudmFsdWUsIHgudmFsdWUsIHNlbGYu X19tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKQorKyAgICAgICAgaWYgbXB6X2NtcCh4LnZhbHVl LCBzZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKSAgPj0gMDoKKysgICAgICAgICAgICBt cHpfc3ViKHgudmFsdWUsIHgudmFsdWUsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUp CisgICAgICAgICByZXR1cm4geAorIAorICAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CitA QCAtMjIwNCw3ICsyMjA0LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9k X2Fic3RyYWN0KToKKyAgICAgICAgIHggPSBzZWxmLl9uZXdfYygpCisgICAgICAgICBtcHpfc3Vi KHgudmFsdWUsIHNlbGYudmFsdWUsICg8SW50ZWdlck1vZF9nbXA+cmlnaHQpLnZhbHVlKQorICAg ICAgICAgaWYgbXB6X3Nnbih4LnZhbHVlKSA9PSAtMToKKy0gICAgICAgICAgICBtcHpfYWRkKHgu dmFsdWUsIHgudmFsdWUsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKQorKyAgICAg ICAgICAgIG1wel9hZGQoeC52YWx1ZSwgeC52YWx1ZSwgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdl ci52YWx1ZSkKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGNwZGVmIF9uZWdfKHNlbGYpOgor QEAgLTIyMjAsNyArMjIyMCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1v ZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgIGNkZWYgSW50 ZWdlck1vZF9nbXAgeAorICAgICAgICAgeCA9IHNlbGYuX25ld19jKCkKKy0gICAgICAgIG1wel9z dWIoeC52YWx1ZSwgc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUsIHNlbGYudmFsdWUp CisrICAgICAgICBtcHpfc3ViKHgudmFsdWUsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIudmFs dWUsIHNlbGYudmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBjcGRlZiBfbXVsXyhz ZWxmLCByaWdodCk6CitAQCAtMjIzNCw3ICsyMjM0LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9k X2dtcChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIGNkZWYgSW50ZWdlck1vZF9nbXAg eAorICAgICAgICAgeCA9IHNlbGYuX25ld19jKCkKKyAgICAgICAgIG1wel9tdWwoeC52YWx1ZSwg c2VsZi52YWx1ZSwgICg8SW50ZWdlck1vZF9nbXA+cmlnaHQpLnZhbHVlKQorLSAgICAgICAgbXB6 X2ZkaXZfcih4LnZhbHVlLCB4LnZhbHVlLCBzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1 ZSkKKysgICAgICAgIG1wel9mZGl2X3IoeC52YWx1ZSwgeC52YWx1ZSwgc2VsZi5fbW9kdWx1cy5z YWdlSW50ZWdlci52YWx1ZSkKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGNwZGVmIF9kaXZf KHNlbGYsIHJpZ2h0KToKK0BAIC0yMzEwLDcgKzIzMTAsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJN b2RfZ21wKEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2dt cCB4ID0gc2VsZi5fbmV3X2MoKQorICAgICAgICAgc2lnX29uKCkKKyAgICAgICAgIHRyeToKKy0g ICAgICAgICAgICBtcHpfcG93X2hlbHBlcih4LnZhbHVlLCBzZWxmLnZhbHVlLCBleHAsIHNlbGYu X19tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKQorKyAgICAgICAgICAgIG1wel9wb3dfaGVscGVy KHgudmFsdWUsIHNlbGYudmFsdWUsIGV4cCwgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1 ZSkKKyAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICBy ZXR1cm4geAorQEAgLTIzMzEsMTIgKzIzMzEsMTIgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dt cChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICBaZXJvRGl2aXNpb25FcnJvcjog aW52ZXJzZSBvZiBNb2QoMiwgMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDApIGRvZXMgbm90IGV4aXN0CisgICAgICAgICAiIiIKKyAgICAgICAgIGlmIHNlbGYuaXNf emVybygpOgorLSAgICAgICAgICAgIHJhaXNlIFplcm9EaXZpc2lvbkVycm9yKGYiaW52ZXJzZSBv ZiBNb2QoMCwge3NlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyfSkgZG9lcyBub3QgZXhpc3QiKQor KyAgICAgICAgICAgIHJhaXNlIFplcm9EaXZpc2lvbkVycm9yKGYiaW52ZXJzZSBvZiBNb2QoMCwg e3NlbGYuX21vZHVsdXMuc2FnZUludGVnZXJ9KSBkb2VzIG5vdCBleGlzdCIpCisgCisgICAgICAg ICBjZGVmIEludGVnZXJNb2RfZ21wIHgKKyAgICAgICAgIHggPSBzZWxmLl9uZXdfYygpCistICAg ICAgICBpZiBub3QgbXB6X2ludmVydCh4LnZhbHVlLCBzZWxmLnZhbHVlLCBzZWxmLl9fbW9kdWx1 cy5zYWdlSW50ZWdlci52YWx1ZSk6CistICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJy b3IoZiJpbnZlcnNlIG9mIE1vZCh7c2VsZn0sIHtzZWxmLl9fbW9kdWx1cy5zYWdlSW50ZWdlcn0p IGRvZXMgbm90IGV4aXN0IikKKysgICAgICAgIGlmIG5vdCBtcHpfaW52ZXJ0KHgudmFsdWUsIHNl bGYudmFsdWUsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpOgorKyAgICAgICAgICAg IHJhaXNlIFplcm9EaXZpc2lvbkVycm9yKGYiaW52ZXJzZSBvZiBNb2Qoe3NlbGZ9LCB7c2VsZi5f bW9kdWx1cy5zYWdlSW50ZWdlcn0pIGRvZXMgbm90IGV4aXN0IikKKyAgICAgICAgIHJldHVybiB4 CisgCisgICAgIGRlZiBsaWZ0KEludGVnZXJNb2RfZ21wIHNlbGYpOgorQEAgLTIzOTEsMTAgKzIz OTEsMTAgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9kX2Fic3RyYWN0KToK KyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2dtcCBhbnMgPSBzZWxmLl9u ZXdfYygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgbXB6X2djZChhbnMudmFsdWUsIHNl bGYudmFsdWUsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKQorKyAgICAgICAgbXB6 X2djZChhbnMudmFsdWUsIHNlbGYudmFsdWUsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIudmFs dWUpCisgICAgICAgICBtcHpfZ2NkKGFucy52YWx1ZSwgYW5zLnZhbHVlLCBvdGhlci52YWx1ZSkK KyAgICAgICAgIHNpZ19vZmYoKQorLSAgICAgICAgaWYgbXB6X2NtcChhbnMudmFsdWUsIHNlbGYu X19tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKSA9PSAwOgorKyAgICAgICAgaWYgbXB6X2NtcChh bnMudmFsdWUsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpID09IDA6CisgICAgICAg ICAgICAgIyBzZWxmID0gb3RoZXIgPSAwCisgICAgICAgICAgICAgbXB6X3NldF91aShhbnMudmFs dWUsIDApCisgICAgICAgICByZXR1cm4gYW5zCitAQCAtMjQyMiwzMCArMjQyMiwzMCBAQCBjZGVm IGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAiIiIKKyAK KyAgICAgY2RlZiBJbnRlZ2VyTW9kX2ludCBfbmV3X2Moc2VsZiwgaW50X2Zhc3QzMl90IHZhbHVl KToKKy0gICAgICAgIGlmIHNlbGYuX19tb2R1bHVzLnRhYmxlIGlzIG5vdCBOb25lOgorLSAgICAg ICAgICAgIHJldHVybiBzZWxmLl9fbW9kdWx1cy50YWJsZVt2YWx1ZV0KKysgICAgICAgIGlmIHNl bGYuX21vZHVsdXMudGFibGUgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgcmV0dXJuIHNlbGYu X21vZHVsdXMudGFibGVbdmFsdWVdCisgICAgICAgICBjZGVmIEludGVnZXJNb2RfaW50IHggPSBJ bnRlZ2VyTW9kX2ludC5fX25ld19fKEludGVnZXJNb2RfaW50KQorICAgICAgICAgeC5fcGFyZW50 ID0gc2VsZi5fcGFyZW50CistICAgICAgICB4Ll9fbW9kdWx1cyA9IHNlbGYuX19tb2R1bHVzCisr ICAgICAgICB4Ll9tb2R1bHVzID0gc2VsZi5fbW9kdWx1cworICAgICAgICAgeC5pdmFsdWUgPSB2 YWx1ZQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX21weihz ZWxmLCBtcHpfdCB2YWx1ZSk6CistICAgICAgICBzZWxmLml2YWx1ZSA9IG1wel9mZGl2X3VpKHZh bHVlLCBzZWxmLl9fbW9kdWx1cy5pbnQzMikKKysgICAgICAgIHNlbGYuaXZhbHVlID0gbXB6X2Zk aXZfdWkodmFsdWUsIHNlbGYuX21vZHVsdXMuaW50MzIpCisgCisgICAgIGNkZWYgdm9pZCBzZXRf ZnJvbV9sb25nKHNlbGYsIGxvbmcgdmFsdWUpOgorLSAgICAgICAgc2VsZi5pdmFsdWUgPSB2YWx1 ZSAlIHNlbGYuX19tb2R1bHVzLmludDMyCisrICAgICAgICBzZWxmLml2YWx1ZSA9IHZhbHVlICUg c2VsZi5fbW9kdWx1cy5pbnQzMgorICAgICAgICAgaWYgc2VsZi5pdmFsdWUgPCAwOgorLSAgICAg ICAgICAgIHNlbGYuaXZhbHVlICs9IHNlbGYuX19tb2R1bHVzLmludDMyCisrICAgICAgICAgICAg c2VsZi5pdmFsdWUgKz0gc2VsZi5fbW9kdWx1cy5pbnQzMgorIAorICAgICBjZGVmIHZvaWQgc2V0 X2Zyb21fdWxvbmdfZmFzdChzZWxmLCB1bnNpZ25lZCBsb25nIHZhbHVlKToKKyAgICAgICAgIHNl bGYuaXZhbHVlID0gdmFsdWUKKyAKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX2ludChJbnRlZ2Vy TW9kX2ludCBzZWxmLCBpbnRfZmFzdDMyX3QgaXZhbHVlKToKKyAgICAgICAgIGlmIGl2YWx1ZSA8 IDA6CistICAgICAgICAgICAgc2VsZi5pdmFsdWUgPSBzZWxmLl9fbW9kdWx1cy5pbnQzMiArIChp dmFsdWUgJSBzZWxmLl9fbW9kdWx1cy5pbnQzMikKKy0gICAgICAgIGVsaWYgaXZhbHVlID49IHNl bGYuX19tb2R1bHVzLmludDMyOgorLSAgICAgICAgICAgIHNlbGYuaXZhbHVlID0gaXZhbHVlICUg c2VsZi5fX21vZHVsdXMuaW50MzIKKysgICAgICAgICAgICBzZWxmLml2YWx1ZSA9IHNlbGYuX21v ZHVsdXMuaW50MzIgKyAoaXZhbHVlICUgc2VsZi5fbW9kdWx1cy5pbnQzMikKKysgICAgICAgIGVs aWYgaXZhbHVlID49IHNlbGYuX21vZHVsdXMuaW50MzI6CisrICAgICAgICAgICAgc2VsZi5pdmFs dWUgPSBpdmFsdWUgJSBzZWxmLl9tb2R1bHVzLmludDMyCisgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgIHNlbGYuaXZhbHVlID0gaXZhbHVlCisgCitAQCAtMjQ5MCw3ICsyNDkwLDcgQEAgY2Rl ZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAg ICBzYWdlOiBabW9kKDEpLm9uZSgpLmlzX29uZSgpCisgICAgICAgICAgICAgVHJ1ZQorICAgICAg ICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5pdmFsdWUgPT0gMSBvciBzZWxmLl9fbW9kdWx1 cy5pbnQzMiA9PSAxCisrICAgICAgICByZXR1cm4gc2VsZi5pdmFsdWUgPT0gMSBvciBzZWxmLl9t b2R1bHVzLmludDMyID09IDEKKyAKKyAgICAgZGVmIF9fYm9vbF9fKEludGVnZXJNb2RfaW50IHNl bGYpOgorICAgICAgICAgIiIiCitAQCAtMjUxOSw5ICsyNTE5LDkgQEAgY2RlZiBjbGFzcyBJbnRl Z2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICBzYWdlOiBhLmlz X3VuaXQoKQorICAgICAgICAgICAgIEZhbHNlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVy biBnY2RfaW50KHNlbGYuaXZhbHVlLCBzZWxmLl9fbW9kdWx1cy5pbnQzMikgPT0gMQorKyAgICAg ICAgcmV0dXJuIGdjZF9pbnQoc2VsZi5pdmFsdWUsIHNlbGYuX21vZHVsdXMuaW50MzIpID09IDEK KyAKKy0gICAgZGVmIF9fY3J0KEludGVnZXJNb2RfaW50IHNlbGYsIEludGVnZXJNb2RfaW50IG90 aGVyKToKKysgICAgZGVmIF9jcnQoSW50ZWdlck1vZF9pbnQgc2VsZiwgSW50ZWdlck1vZF9pbnQg b3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBVc2UgdGhlIENoaW5lc2UgUmVtYWluZGVy IFRoZW9yZW0gdG8gZmluZCBhbiBlbGVtZW50IG9mIHRoZQorICAgICAgICAgaW50ZWdlcnMgbW9k dWxvIHRoZSBwcm9kdWN0IG9mIHRoZSBtb2R1bGkgdGhhdCByZWR1Y2VzIHRvIHNlbGYgYW5kCitA QCAtMjU0MywxMSArMjU0MywxMSBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJN b2RfYWJzdHJhY3QpOgorICAgICAgICAgY2RlZiBpbnRfZmFzdDMyX3QgeAorIAorICAgICAgICAg ZnJvbSAuaW50ZWdlcl9tb2RfcmluZyBpbXBvcnQgSW50ZWdlck1vZFJpbmcKKy0gICAgICAgIGxp ZnQgPSBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kUmluZyhzZWxmLl9fbW9kdWx1cy5pbnQzMiAq IG90aGVyLl9fbW9kdWx1cy5pbnQzMikpCisrICAgICAgICBsaWZ0ID0gSW50ZWdlck1vZF9pbnQo SW50ZWdlck1vZFJpbmcoc2VsZi5fbW9kdWx1cy5pbnQzMiAqIG90aGVyLl9tb2R1bHVzLmludDMy KSkKKyAKKyAgICAgICAgIHRyeToKKy0gICAgICAgICAgICB4ID0gKG90aGVyLml2YWx1ZSAtIHNl bGYuaXZhbHVlICUgb3RoZXIuX19tb2R1bHVzLmludDMyKSAqIG1vZF9pbnZlcnNlX2ludChzZWxm Ll9fbW9kdWx1cy5pbnQzMiwgb3RoZXIuX19tb2R1bHVzLmludDMyKQorLSAgICAgICAgICAgIGxp ZnQuc2V0X2Zyb21faW50KCB4ICogc2VsZi5fX21vZHVsdXMuaW50MzIgKyBzZWxmLml2YWx1ZSAp CisrICAgICAgICAgICAgeCA9IChvdGhlci5pdmFsdWUgLSBzZWxmLml2YWx1ZSAlIG90aGVyLl9t b2R1bHVzLmludDMyKSAqIG1vZF9pbnZlcnNlX2ludChzZWxmLl9tb2R1bHVzLmludDMyLCBvdGhl ci5fbW9kdWx1cy5pbnQzMikKKysgICAgICAgICAgICBsaWZ0LnNldF9mcm9tX2ludCggeCAqIHNl bGYuX21vZHVsdXMuaW50MzIgKyBzZWxmLml2YWx1ZSApCisgICAgICAgICAgICAgcmV0dXJuIGxp ZnQKKyAgICAgICAgIGV4Y2VwdCBaZXJvRGl2aXNpb25FcnJvcjoKKyAgICAgICAgICAgICByYWlz ZSBaZXJvRGl2aXNpb25FcnJvcigibW9kdWxpIG11c3QgYmUgY29wcmltZSIpCitAQCAtMjU4Niw4 ICsyNTg2LDggQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBpbnRfZmFzdDMyX3QgeAorICAgICAgICAg eCA9IHNlbGYuaXZhbHVlICsgKDxJbnRlZ2VyTW9kX2ludD5yaWdodCkuaXZhbHVlCistICAgICAg ICBpZiB4ID49IHNlbGYuX19tb2R1bHVzLmludDMyOgorLSAgICAgICAgICAgIHggPSB4IC0gc2Vs Zi5fX21vZHVsdXMuaW50MzIKKysgICAgICAgIGlmIHggPj0gc2VsZi5fbW9kdWx1cy5pbnQzMjoK KysgICAgICAgICAgICB4ID0geCAtIHNlbGYuX21vZHVsdXMuaW50MzIKKyAgICAgICAgIHJldHVy biBzZWxmLl9uZXdfYyh4KQorIAorICAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CitAQCAt MjYwMSw3ICsyNjAxLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fi c3RyYWN0KToKKyAgICAgICAgIGNkZWYgaW50X2Zhc3QzMl90IHgKKyAgICAgICAgIHggPSBzZWxm Lml2YWx1ZSAtICg8SW50ZWdlck1vZF9pbnQ+cmlnaHQpLml2YWx1ZQorICAgICAgICAgaWYgeCA8 IDA6CistICAgICAgICAgICAgeCA9IHggKyBzZWxmLl9fbW9kdWx1cy5pbnQzMgorKyAgICAgICAg ICAgIHggPSB4ICsgc2VsZi5fbW9kdWx1cy5pbnQzMgorICAgICAgICAgcmV0dXJuIHNlbGYuX25l d19jKHgpCisgCisgICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorQEAgLTI2MTUsNyArMjYxNSw3IEBA IGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIGlmIHNlbGYuaXZhbHVlID09IDA6CisgICAgICAgICAgICAgcmV0dXJu IHNlbGYKKy0gICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhzZWxmLl9fbW9kdWx1cy5pbnQzMiAt IHNlbGYuaXZhbHVlKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuX21vZHVsdXMu aW50MzIgLSBzZWxmLml2YWx1ZSkKKyAKKyAgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpOgor ICAgICAgICAgIiIiCitAQCAtMjYyNSw3ICsyNjI1LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9k X2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICBzYWdlOiBSKDcpICogUig4 KQorICAgICAgICAgICAgIDYKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX25l d19jKChzZWxmLml2YWx1ZSAqICg8SW50ZWdlck1vZF9pbnQ+cmlnaHQpLml2YWx1ZSkgJSBzZWxm Ll9fbW9kdWx1cy5pbnQzMikKKysgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYygoc2VsZi5pdmFs dWUgKiAoPEludGVnZXJNb2RfaW50PnJpZ2h0KS5pdmFsdWUpICUgc2VsZi5fbW9kdWx1cy5pbnQz MikKKyAKKyAgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCitAQCAt MjYzNSwxNiArMjYzNSwxNiBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJNb2Rf YWJzdHJhY3QpOgorICAgICAgICAgICAgIHNhZ2U6IFIoMikvMworICAgICAgICAgICAgIDQKKyAg ICAgICAgICIiIgorLSAgICAgICAgaWYgc2VsZi5fX21vZHVsdXMuaW52ZXJzZXMgaXMgbm90IE5v bmU6CistICAgICAgICAgICAgcmlnaHRfaW52ZXJzZSA9IHNlbGYuX19tb2R1bHVzLmludmVyc2Vz Wyg8SW50ZWdlck1vZF9pbnQ+cmlnaHQpLml2YWx1ZV0KKysgICAgICAgIGlmIHNlbGYuX21vZHVs dXMuaW52ZXJzZXMgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgcmlnaHRfaW52ZXJzZSA9IHNl bGYuX21vZHVsdXMuaW52ZXJzZXNbKDxJbnRlZ2VyTW9kX2ludD5yaWdodCkuaXZhbHVlXQorICAg ICAgICAgICAgIGlmIHJpZ2h0X2ludmVyc2UgaXMgTm9uZToKKy0gICAgICAgICAgICAgICAgcmFp c2UgWmVyb0RpdmlzaW9uRXJyb3IoZiJpbnZlcnNlIG9mIE1vZCh7cmlnaHR9LCB7c2VsZi5fX21v ZHVsdXMuc2FnZUludGVnZXJ9KSBkb2VzIG5vdCBleGlzdCIpCisrICAgICAgICAgICAgICAgIHJh aXNlIFplcm9EaXZpc2lvbkVycm9yKGYiaW52ZXJzZSBvZiBNb2Qoe3JpZ2h0fSwge3NlbGYuX21v ZHVsdXMuc2FnZUludGVnZXJ9KSBkb2VzIG5vdCBleGlzdCIpCisgICAgICAgICAgICAgZWxzZToK Ky0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKChzZWxmLml2YWx1ZSAqICg8SW50 ZWdlck1vZF9pbnQ+cmlnaHRfaW52ZXJzZSkuaXZhbHVlKSAlIHNlbGYuX19tb2R1bHVzLmludDMy KQorKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoKHNlbGYuaXZhbHVlICogKDxJ bnRlZ2VyTW9kX2ludD5yaWdodF9pbnZlcnNlKS5pdmFsdWUpICUgc2VsZi5fbW9kdWx1cy5pbnQz MikKKyAKKyAgICAgICAgIGNkZWYgaW50X2Zhc3QzMl90IHgKKy0gICAgICAgIHggPSBzZWxmLml2 YWx1ZSAqIG1vZF9pbnZlcnNlX2ludCgoPEludGVnZXJNb2RfaW50PnJpZ2h0KS5pdmFsdWUsIHNl bGYuX19tb2R1bHVzLmludDMyKQorLSAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHglIHNlbGYu X19tb2R1bHVzLmludDMyKQorKyAgICAgICAgeCA9IHNlbGYuaXZhbHVlICogbW9kX2ludmVyc2Vf aW50KCg8SW50ZWdlck1vZF9pbnQ+cmlnaHQpLml2YWx1ZSwgc2VsZi5fbW9kdWx1cy5pbnQzMikK KysgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyh4JSBzZWxmLl9tb2R1bHVzLmludDMyKQorIAor ICAgICBkZWYgX19pbnRfXyhJbnRlZ2VyTW9kX2ludCBzZWxmKToKKyAgICAgICAgICIiIgorQEAg LTI3MzksNyArMjczOSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9h YnN0cmFjdCk6CisgICAgICAgICBpZiBrID09IDA6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYK KyAgICAgICAgIGVsaWYgayA+IDA6CistICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKChz ZWxmLml2YWx1ZSA8PCBrKSAlIHNlbGYuX19tb2R1bHVzLmludDMyKQorKyAgICAgICAgICAgIHJl dHVybiBzZWxmLl9uZXdfYygoc2VsZi5pdmFsdWUgPDwgaykgJSBzZWxmLl9tb2R1bHVzLmludDMy KQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5p dmFsdWUgPj4gKC1rKSkKKyAKK0BAIC0yODAyLDcgKzI4MDIsNyBAQCBjZGVmIGNsYXNzIEludGVn ZXJNb2RfaW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgICAgIHNpZ19vbigpCisg ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICBtcHpfaW5pdChyZXNfbXB6KQorLSAg ICAgICAgICAgICAgICBtcHpfcG93X2hlbHBlcihyZXNfbXB6LCAoPEludGVnZXI+YmFzZSkudmFs dWUsIGV4cCwgc2VsZi5fX21vZHVsdXMuc2FnZUludGVnZXIudmFsdWUpCisrICAgICAgICAgICAg ICAgIG1wel9wb3dfaGVscGVyKHJlc19tcHosICg8SW50ZWdlcj5iYXNlKS52YWx1ZSwgZXhwLCBz ZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKQorICAgICAgICAgICAgICAgICByZXMgPSBt cHpfZ2V0X3VpKHJlc19tcHopCisgICAgICAgICAgICAgICAgIG1wel9jbGVhcihyZXNfbXB6KQor ICAgICAgICAgICAgIGZpbmFsbHk6CitAQCAtMjgxMSwxMiArMjgxMSwxMiBAQCBjZGVmIGNsYXNz IEludGVnZXJNb2RfaW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorIAorICAgICAgICAgaWYgbG9u Z19leHAgPT0gMCBhbmQgc2VsZi5pdmFsdWUgPT0gMDoKKyAgICAgICAgICAgICAjIFJldHVybiAw IGlmIHRoZSBtb2R1bHVzIGlzIDEsIG90aGVyd2lzZSByZXR1cm4gMS4KKy0gICAgICAgICAgICBy ZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5fX21vZHVsdXMuaW50MzIgIT0gMSkKKysgICAgICAgICAg ICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5fbW9kdWx1cy5pbnQzMiAhPSAxKQorICAgICAgICAg Y2RlZiBiaW50IGludmVydCA9IEZhbHNlCisgICAgICAgICBpZiBsb25nX2V4cCA8IDA6CisgICAg ICAgICAgICAgaW52ZXJ0ID0gVHJ1ZQorICAgICAgICAgICAgIGxvbmdfZXhwID0gLWxvbmdfZXhw CistICAgICAgICByZXMgPSBtb2RfcG93X2ludChzZWxmLml2YWx1ZSwgbG9uZ19leHAsIHNlbGYu X19tb2R1bHVzLmludDMyKQorKyAgICAgICAgcmVzID0gbW9kX3Bvd19pbnQoc2VsZi5pdmFsdWUs IGxvbmdfZXhwLCBzZWxmLl9tb2R1bHVzLmludDMyKQorICAgICAgICAgaWYgaW52ZXJ0OgorICAg ICAgICAgICAgIHJldHVybiB+c2VsZi5fbmV3X2MocmVzKQorICAgICAgICAgZWxzZToKK0BAIC0y ODMzLDE0ICsyODMzLDE0IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9h YnN0cmFjdCk6CisgICAgICAgICAgICAgc2FnZTogTW9kKDAsMSleLTEKKyAgICAgICAgICAgICAw CisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIHNlbGYuX19tb2R1bHVzLmludmVyc2VzIGlzIG5v dCBOb25lOgorLSAgICAgICAgICAgIHggPSBzZWxmLl9fbW9kdWx1cy5pbnZlcnNlc1tzZWxmLml2 YWx1ZV0KKysgICAgICAgIGlmIHNlbGYuX21vZHVsdXMuaW52ZXJzZXMgaXMgbm90IE5vbmU6Cisr ICAgICAgICAgICAgeCA9IHNlbGYuX21vZHVsdXMuaW52ZXJzZXNbc2VsZi5pdmFsdWVdCisgICAg ICAgICAgICAgaWYgeCBpcyBOb25lOgorLSAgICAgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNp b25FcnJvcihmImludmVyc2Ugb2YgTW9kKHtzZWxmfSwge3NlbGYuX19tb2R1bHVzLnNhZ2VJbnRl Z2VyfSkgZG9lcyBub3QgZXhpc3QiKQorKyAgICAgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNp b25FcnJvcihmImludmVyc2Ugb2YgTW9kKHtzZWxmfSwge3NlbGYuX21vZHVsdXMuc2FnZUludGVn ZXJ9KSBkb2VzIG5vdCBleGlzdCIpCisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg ICAgcmV0dXJuIHgKKyAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25l d19jKG1vZF9pbnZlcnNlX2ludChzZWxmLml2YWx1ZSwgc2VsZi5fX21vZHVsdXMuaW50MzIpKQor KyAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhtb2RfaW52ZXJzZV9pbnQoc2VsZi5pdmFs dWUsIHNlbGYuX21vZHVsdXMuaW50MzIpKQorIAorICAgICBkZWYgbGlmdChJbnRlZ2VyTW9kX2lu dCBzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTMwMDYsMTUgKzMwMDYsMTUgQEAgY2RlZiBjbGFz cyBJbnRlZ2VyTW9kX2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICBzYWdl OiBHRigxMDMpKC0xKS5zcXJ0KGV4dGVuZD1GYWxzZSwgYWxsPVRydWUpCisgICAgICAgICAgICAg W10KKyAgICAgICAgICIiIgorLSAgICAgICAgY2RlZiBpbnRfZmFzdDMyX3QgaSwgbiA9IHNlbGYu X19tb2R1bHVzLmludDMyCisrICAgICAgICBjZGVmIGludF9mYXN0MzJfdCBpLCBuID0gc2VsZi5f bW9kdWx1cy5pbnQzMgorICAgICAgICAgaWYgbiA+IDEwMDoKKyAgICAgICAgICAgICBtb2R1bGkg PSBzZWxmLl9wYXJlbnQuZmFjdG9yZWRfb3JkZXIoKQorICAgICAgICAgIyBVbmxlc3MgdGhlIG1v ZHVsdXMgaXMgdGlueSwgdGVzdCB0byBzZWUgaWYgd2UncmUgaW4gdGhlIHJlYWxseQorICAgICAg ICAgIyBlYXN5IGNhc2Ugb2YgbiBwcmltZSwgbiA9IDMgbW9kIDQuCisgICAgICAgICBpZiBuID4g MTAwIGFuZCBuICUgNCA9PSAzIGFuZCBsZW4obW9kdWxpKSA9PSAxIGFuZCBtb2R1bGlbMF1bMV0g PT0gMToKKy0gICAgICAgICAgICBpZiBqYWNvYmlfaW50KHNlbGYuaXZhbHVlLCBzZWxmLl9fbW9k dWx1cy5pbnQzMikgPT0gMToKKysgICAgICAgICAgICBpZiBqYWNvYmlfaW50KHNlbGYuaXZhbHVl LCBzZWxmLl9tb2R1bHVzLmludDMyKSA9PSAxOgorICAgICAgICAgICAgICAgICAjIGl0J3MgYSBu b24temVybyBzcXVhcmUsIHNxcnQoYSkgPSBhXihwKzEpLzQKKy0gICAgICAgICAgICAgICAgaSA9 IG1vZF9wb3dfaW50KHNlbGYuaXZhbHVlLCAoc2VsZi5fX21vZHVsdXMuaW50MzIrMSkvNCwgbikK KysgICAgICAgICAgICAgICAgaSA9IG1vZF9wb3dfaW50KHNlbGYuaXZhbHVlLCAoc2VsZi5fbW9k dWx1cy5pbnQzMisxKS80LCBuKQorICAgICAgICAgICAgICAgICBpZiBpID4gbiAvIDI6CisgICAg ICAgICAgICAgICAgICAgICBpID0gbiAtIGkKKyAgICAgICAgICAgICAgICAgaWYgYWxsOgorQEAg LTMwNDksNyArMzA0OSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9h YnN0cmFjdCk6CisgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYHhgIG9yIGAteGAsIHdo aWNoZXZlciBoYXMgYQorICAgICAgICAgcG9zaXRpdmUgcmVwcmVzZW50YXRpdmUgaW4gYC1uLzIg PCB4IFxsZXEgbi8yYC4KKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgc2VsZi5pdmFsdWUgPiBz ZWxmLl9fbW9kdWx1cy5pbnQzMiAvIDI6CisrICAgICAgICBpZiBzZWxmLml2YWx1ZSA+IHNlbGYu X21vZHVsdXMuaW50MzIgLyAyOgorICAgICAgICAgICAgIHJldHVybiAtc2VsZgorICAgICAgICAg cmV0dXJuIHNlbGYKKyAKK0BAIC0zMDgyLDkgKzMwODIsOSBAQCBjZGVmIGNsYXNzIEludGVnZXJN b2RfaW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgICAgIHNhZ2U6IG1vZCgwLDEp LmdjZChtb2QoMCwxKSkKKyAgICAgICAgICAgICAwCisgICAgICAgICAiIiIKKy0gICAgICAgIGNk ZWYgaW50X2Zhc3QzMl90IGcgPSBnY2RfaW50KHNlbGYuaXZhbHVlLCBzZWxmLl9fbW9kdWx1cy5p bnQzMikKKysgICAgICAgIGNkZWYgaW50X2Zhc3QzMl90IGcgPSBnY2RfaW50KHNlbGYuaXZhbHVl LCBzZWxmLl9tb2R1bHVzLmludDMyKQorICAgICAgICAgZyA9IGdjZF9pbnQoZywgb3RoZXIuaXZh bHVlKQorLSAgICAgICAgaWYgZyA9PSBzZWxmLl9fbW9kdWx1cy5pbnQzMjogIyBzZWxmID0gb3Ro ZXIgPSAwCisrICAgICAgICBpZiBnID09IHNlbGYuX21vZHVsdXMuaW50MzI6ICMgc2VsZiA9IG90 aGVyID0gMAorICAgICAgICAgICAgIGcgPSAwCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Mo ZykKKyAKK0BAIC0zMjU2LDI3ICszMjU2LDI3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2 NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgY2RlZiBJbnRlZ2VyTW9kX2ludDY0IF9uZXdf YyhzZWxmLCBpbnRfZmFzdDY0X3QgdmFsdWUpOgorICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2lu dDY0IHgKKyAgICAgICAgIHggPSBJbnRlZ2VyTW9kX2ludDY0Ll9fbmV3X18oSW50ZWdlck1vZF9p bnQ2NCkKKy0gICAgICAgIHguX19tb2R1bHVzID0gc2VsZi5fX21vZHVsdXMKKysgICAgICAgIHgu X21vZHVsdXMgPSBzZWxmLl9tb2R1bHVzCisgICAgICAgICB4Ll9wYXJlbnQgPSBzZWxmLl9wYXJl bnQKKyAgICAgICAgIHguaXZhbHVlID0gdmFsdWUKKyAgICAgICAgIHJldHVybiB4CisgCisgICAg IGNkZWYgdm9pZCBzZXRfZnJvbV9tcHooc2VsZiwgbXB6X3QgdmFsdWUpOgorLSAgICAgICAgc2Vs Zi5pdmFsdWUgPSBtcHpfZmRpdl91aSh2YWx1ZSwgc2VsZi5fX21vZHVsdXMuaW50NjQpCisrICAg ICAgICBzZWxmLml2YWx1ZSA9IG1wel9mZGl2X3VpKHZhbHVlLCBzZWxmLl9tb2R1bHVzLmludDY0 KQorIAorICAgICBjZGVmIHZvaWQgc2V0X2Zyb21fbG9uZyhzZWxmLCBsb25nIHZhbHVlKToKKy0g ICAgICAgIHNlbGYuaXZhbHVlID0gdmFsdWUgJSBzZWxmLl9fbW9kdWx1cy5pbnQ2NAorKyAgICAg ICAgc2VsZi5pdmFsdWUgPSB2YWx1ZSAlIHNlbGYuX21vZHVsdXMuaW50NjQKKyAgICAgICAgIGlm IHNlbGYuaXZhbHVlIDwgMDoKKy0gICAgICAgICAgICBzZWxmLml2YWx1ZSArPSBzZWxmLl9fbW9k dWx1cy5pbnQ2NAorKyAgICAgICAgICAgIHNlbGYuaXZhbHVlICs9IHNlbGYuX21vZHVsdXMuaW50 NjQKKyAKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX3Vsb25nX2Zhc3Qoc2VsZiwgdW5zaWduZWQg bG9uZyB2YWx1ZSk6CisgICAgICAgICBzZWxmLml2YWx1ZSA9IHZhbHVlCisgCisgICAgIGNkZWYg dm9pZCBzZXRfZnJvbV9pbnQoSW50ZWdlck1vZF9pbnQ2NCBzZWxmLCBpbnRfZmFzdDY0X3QgaXZh bHVlKToKKyAgICAgICAgIGlmIGl2YWx1ZSA8IDA6CistICAgICAgICAgICAgc2VsZi5pdmFsdWUg PSBzZWxmLl9fbW9kdWx1cy5pbnQ2NCArIChpdmFsdWUgJSBzZWxmLl9fbW9kdWx1cy5pbnQ2NCkg IyBJcyBpdmFsdWUgJSBzZWxmLl9fbW9kdWx1cy5pbnQ2NCBhY3R1YWxseSBuZWdhdGl2ZT8KKy0g ICAgICAgIGVsaWYgaXZhbHVlID49IHNlbGYuX19tb2R1bHVzLmludDY0OgorLSAgICAgICAgICAg IHNlbGYuaXZhbHVlID0gaXZhbHVlICUgc2VsZi5fX21vZHVsdXMuaW50NjQKKysgICAgICAgICAg ICBzZWxmLml2YWx1ZSA9IHNlbGYuX21vZHVsdXMuaW50NjQgKyAoaXZhbHVlICUgc2VsZi5fbW9k dWx1cy5pbnQ2NCkgIyBJcyBpdmFsdWUgJSBzZWxmLl9tb2R1bHVzLmludDY0IGFjdHVhbGx5IG5l Z2F0aXZlPworKyAgICAgICAgZWxpZiBpdmFsdWUgPj0gc2VsZi5fbW9kdWx1cy5pbnQ2NDoKKysg ICAgICAgICAgICBzZWxmLml2YWx1ZSA9IGl2YWx1ZSAlIHNlbGYuX21vZHVsdXMuaW50NjQKKyAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2VsZi5pdmFsdWUgPSBpdmFsdWUKKyAKK0BAIC0z MzQ0LDkgKzMzNDQsOSBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9h YnN0cmFjdCk6CisgICAgICAgICAgICAgc2FnZTogbW9kKDI1LCA1XjEwKS5pc191bml0KCkKKyAg ICAgICAgICAgICBGYWxzZQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gZ2NkX2ludDY0 KHNlbGYuaXZhbHVlLCBzZWxmLl9fbW9kdWx1cy5pbnQ2NCkgPT0gMQorKyAgICAgICAgcmV0dXJu IGdjZF9pbnQ2NChzZWxmLml2YWx1ZSwgc2VsZi5fbW9kdWx1cy5pbnQ2NCkgPT0gMQorIAorLSAg ICBkZWYgX19jcnQoSW50ZWdlck1vZF9pbnQ2NCBzZWxmLCBJbnRlZ2VyTW9kX2ludDY0IG90aGVy KToKKysgICAgZGVmIF9jcnQoSW50ZWdlck1vZF9pbnQ2NCBzZWxmLCBJbnRlZ2VyTW9kX2ludDY0 IG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgVXNlIHRoZSBDaGluZXNlIFJlbWFpbmRl ciBUaGVvcmVtIHRvIGZpbmQgYW4gZWxlbWVudCBvZiB0aGUKKyAgICAgICAgIGludGVnZXJzIG1v ZHVsbyB0aGUgcHJvZHVjdCBvZiB0aGUgbW9kdWxpIHRoYXQgcmVkdWNlcyB0byBzZWxmIGFuZAor QEAgLTMzNzksMTEgKzMzNzksMTEgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVn ZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgY2RlZiBpbnRfZmFzdDY0X3QgeAorIAorICAgICAg ICAgZnJvbSAuaW50ZWdlcl9tb2RfcmluZyBpbXBvcnQgSW50ZWdlck1vZFJpbmcKKy0gICAgICAg IGxpZnQgPSBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2RSaW5nKHNlbGYuX19tb2R1bHVzLmlu dDY0ICogb3RoZXIuX19tb2R1bHVzLmludDY0KSkKKysgICAgICAgIGxpZnQgPSBJbnRlZ2VyTW9k X2ludDY0KEludGVnZXJNb2RSaW5nKHNlbGYuX21vZHVsdXMuaW50NjQgKiBvdGhlci5fbW9kdWx1 cy5pbnQ2NCkpCisgCisgICAgICAgICB0cnk6CistICAgICAgICAgICAgeCA9IChvdGhlci5pdmFs dWUgLSBzZWxmLml2YWx1ZSAlIG90aGVyLl9fbW9kdWx1cy5pbnQ2NCkgKiBtb2RfaW52ZXJzZV9p bnQ2NChzZWxmLl9fbW9kdWx1cy5pbnQ2NCwgb3RoZXIuX19tb2R1bHVzLmludDY0KQorLSAgICAg ICAgICAgIGxpZnQuc2V0X2Zyb21faW50KCB4ICogc2VsZi5fX21vZHVsdXMuaW50NjQgKyBzZWxm Lml2YWx1ZSApCisrICAgICAgICAgICAgeCA9IChvdGhlci5pdmFsdWUgLSBzZWxmLml2YWx1ZSAl IG90aGVyLl9tb2R1bHVzLmludDY0KSAqIG1vZF9pbnZlcnNlX2ludDY0KHNlbGYuX21vZHVsdXMu aW50NjQsIG90aGVyLl9tb2R1bHVzLmludDY0KQorKyAgICAgICAgICAgIGxpZnQuc2V0X2Zyb21f aW50KCB4ICogc2VsZi5fbW9kdWx1cy5pbnQ2NCArIHNlbGYuaXZhbHVlICkKKyAgICAgICAgICAg ICByZXR1cm4gbGlmdAorICAgICAgICAgZXhjZXB0IFplcm9EaXZpc2lvbkVycm9yOgorICAgICAg ICAgICAgIHJhaXNlIFplcm9EaXZpc2lvbkVycm9yKCJtb2R1bGkgbXVzdCBiZSBjb3ByaW1lIikK K0BAIC0zNDIyLDggKzM0MjIsOCBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50ZWdl ck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgaW50X2Zhc3Q2NF90 IHgKKyAgICAgICAgIHggPSBzZWxmLml2YWx1ZSArICg8SW50ZWdlck1vZF9pbnQ2ND5yaWdodCku aXZhbHVlCistICAgICAgICBpZiB4ID49IHNlbGYuX19tb2R1bHVzLmludDY0OgorLSAgICAgICAg ICAgIHggPSB4IC0gc2VsZi5fX21vZHVsdXMuaW50NjQKKysgICAgICAgIGlmIHggPj0gc2VsZi5f bW9kdWx1cy5pbnQ2NDoKKysgICAgICAgICAgICB4ID0geCAtIHNlbGYuX21vZHVsdXMuaW50NjQK KyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyh4KQorIAorICAgICBjcGRlZiBfc3ViXyhzZWxm LCByaWdodCk6CitAQCAtMzQzNyw3ICszNDM3LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2lu dDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgY2RlZiBpbnRfZmFzdDY0X3QgeAor ICAgICAgICAgeCA9IHNlbGYuaXZhbHVlIC0gKDxJbnRlZ2VyTW9kX2ludDY0PnJpZ2h0KS5pdmFs dWUKKyAgICAgICAgIGlmIHggPCAwOgorLSAgICAgICAgICAgIHggPSB4ICsgc2VsZi5fX21vZHVs dXMuaW50NjQKKysgICAgICAgICAgICB4ID0geCArIHNlbGYuX21vZHVsdXMuaW50NjQKKyAgICAg ICAgIHJldHVybiBzZWxmLl9uZXdfYyh4KQorIAorICAgICBjcGRlZiBfbmVnXyhzZWxmKToKK0BA IC0zNDUxLDcgKzM0NTEsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1v ZF9hYnN0cmFjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGlmIHNlbGYuaXZhbHVlID09IDA6 CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYKKy0gICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhz ZWxmLl9fbW9kdWx1cy5pbnQ2NCAtIHNlbGYuaXZhbHVlKQorKyAgICAgICAgcmV0dXJuIHNlbGYu X25ld19jKHNlbGYuX21vZHVsdXMuaW50NjQgLSBzZWxmLml2YWx1ZSkKKyAKKyAgICAgY3BkZWYg X211bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCitAQCAtMzQ2MSw3ICszNDYxLDcgQEAg Y2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAg ICAgICAgIHNhZ2U6IFIoNzAwKSAqIFIoODAwKQorICAgICAgICAgICAgIDYwMDAwCisgICAgICAg ICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9uZXdfYygoc2VsZi5pdmFsdWUgKiAoPEludGVn ZXJNb2RfaW50NjQ+cmlnaHQpLml2YWx1ZSkgJSBzZWxmLl9fbW9kdWx1cy5pbnQ2NCkKKysgICAg ICAgIHJldHVybiBzZWxmLl9uZXdfYygoc2VsZi5pdmFsdWUgKiAoPEludGVnZXJNb2RfaW50NjQ+ cmlnaHQpLml2YWx1ZSkgJSBzZWxmLl9tb2R1bHVzLmludDY0KQorIAorIAorICAgICBjcGRlZiBf ZGl2XyhzZWxmLCByaWdodCk6CitAQCAtMzQ3Myw3ICszNDczLDcgQEAgY2RlZiBjbGFzcyBJbnRl Z2VyTW9kX2ludDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgICAgIDMzMzM0Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYygoc2VsZi5pdmFsdWUgKiBt b2RfaW52ZXJzZV9pbnQ2NCgoPEludGVnZXJNb2RfaW50NjQ+cmlnaHQpLml2YWx1ZSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19tb2R1bHVzLmludDY0KSApICUg c2VsZi5fX21vZHVsdXMuaW50NjQpCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLl9tb2R1bHVzLmludDY0KSApICUgc2VsZi5fbW9kdWx1cy5pbnQ2NCkKKyAKKyAgICAg ZGVmIF9faW50X18oSW50ZWdlck1vZF9pbnQ2NCBzZWxmKToKKyAgICAgICAgIHJldHVybiBzZWxm Lml2YWx1ZQorQEAgLTM1NTksNyArMzU1OSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2 NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIGlmIGsgPT0gMDoKKyAgICAgICAgICAg ICByZXR1cm4gc2VsZgorICAgICAgICAgZWxpZiBrID4gMDoKKy0gICAgICAgICAgICByZXR1cm4g c2VsZi5fbmV3X2MoKHNlbGYuaXZhbHVlIDw8IGspICUgc2VsZi5fX21vZHVsdXMuaW50NjQpCisr ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKChzZWxmLml2YWx1ZSA8PCBrKSAlIHNlbGYu X21vZHVsdXMuaW50NjQpCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBzZWxm Ll9uZXdfYyhzZWxmLml2YWx1ZSA+PiAoLWspKQorIAorQEAgLTM2MzMsNyArMzYzMyw3IEBAIGNk ZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAg ICAgICBzaWdfb24oKQorICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgbXB6X2lu aXQocmVzX21weikKKy0gICAgICAgICAgICAgICAgbXB6X3Bvd19oZWxwZXIocmVzX21weiwgKDxJ bnRlZ2VyPmJhc2UpLnZhbHVlLCBleHAsIHNlbGYuX19tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVl KQorKyAgICAgICAgICAgICAgICBtcHpfcG93X2hlbHBlcihyZXNfbXB6LCAoPEludGVnZXI+YmFz ZSkudmFsdWUsIGV4cCwgc2VsZi5fbW9kdWx1cy5zYWdlSW50ZWdlci52YWx1ZSkKKyAgICAgICAg ICAgICAgICAgcmVzID0gbXB6X2dldF91aShyZXNfbXB6KQorICAgICAgICAgICAgICAgICBtcHpf Y2xlYXIocmVzX21weikKKyAgICAgICAgICAgICBmaW5hbGx5OgorQEAgLTM2NDIsMTQgKzM2NDIs MTQgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgor IAorICAgICAgICAgaWYgbG9uZ19leHAgPT0gMCBhbmQgc2VsZi5pdmFsdWUgPT0gMDoKKyAgICAg ICAgICAgICAjIFJldHVybiAwIGlmIHRoZSBtb2R1bHVzIGlzIDEsIG90aGVyd2lzZSByZXR1cm4g MS4KKy0gICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5fX21vZHVsdXMuaW50NjQg IT0gMSkKKysgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5fbW9kdWx1cy5pbnQ2 NCAhPSAxKQorICAgICAgICAgY2RlZiBiaW50IGludmVydCA9IEZhbHNlCisgICAgICAgICBpZiBs b25nX2V4cCA8IDA6CisgICAgICAgICAgICAgaW52ZXJ0ID0gVHJ1ZQorICAgICAgICAgICAgIGxv bmdfZXhwID0gLWxvbmdfZXhwCistICAgICAgICByZXMgPSBtb2RfcG93X2ludDY0KHNlbGYuaXZh bHVlLCBsb25nX2V4cCwgc2VsZi5fX21vZHVsdXMuaW50NjQpCisrICAgICAgICByZXMgPSBtb2Rf cG93X2ludDY0KHNlbGYuaXZhbHVlLCBsb25nX2V4cCwgc2VsZi5fbW9kdWx1cy5pbnQ2NCkKKyAg ICAgICAgIGlmIGludmVydDoKKy0gICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MobW9kX2lu dmVyc2VfaW50NjQocmVzLCBzZWxmLl9fbW9kdWx1cy5pbnQ2NCkpCisrICAgICAgICAgICAgcmV0 dXJuIHNlbGYuX25ld19jKG1vZF9pbnZlcnNlX2ludDY0KHJlcywgc2VsZi5fbW9kdWx1cy5pbnQ2 NCkpCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhyZXMp CisgCitAQCAtMzY2Niw3ICszNjY2LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludDY0KElu dGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgICAgIHNhZ2U6IGEKKyAgICAgICAgICAgICA3 CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhtb2RfaW52ZXJzZV9p bnQ2NChzZWxmLml2YWx1ZSwgc2VsZi5fX21vZHVsdXMuaW50NjQpKQorKyAgICAgICAgcmV0dXJu IHNlbGYuX25ld19jKG1vZF9pbnZlcnNlX2ludDY0KHNlbGYuaXZhbHVlLCBzZWxmLl9tb2R1bHVz LmludDY0KSkKKyAKKyAgICAgZGVmIGxpZnQoSW50ZWdlck1vZF9pbnQ2NCBzZWxmKToKKyAgICAg ICAgICIiIgorQEAgLTM3MTUsNyArMzcxNSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2 NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBg eGAgb3IgYC14YCwgd2hpY2hldmVyIGhhcyBhCisgICAgICAgICBwb3NpdGl2ZSByZXByZXNlbnRh dGl2ZSBpbiBgLW4vMiA8IHggXGxlcSBuLzJgLgorICAgICAgICAgIiIiCistICAgICAgICBpZiBz ZWxmLml2YWx1ZSA+IHNlbGYuX19tb2R1bHVzLmludDY0IC8gMjoKKysgICAgICAgIGlmIHNlbGYu aXZhbHVlID4gc2VsZi5fbW9kdWx1cy5pbnQ2NCAvIDI6CisgICAgICAgICAgICAgcmV0dXJuIC1z ZWxmCisgICAgICAgICByZXR1cm4gc2VsZgorIAorQEAgLTM3MzgsOSArMzczOCw5IEBAIGNkZWYg Y2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAg ICBzYWdlOiBtb2QoMCwxN141KS5nY2QobW9kKDAsMTdeNSkpCisgICAgICAgICAgICAgMAorICAg ICAgICAgIiIiCistICAgICAgICBjZGVmIGludF9mYXN0NjRfdCBnID0gZ2NkX2ludDY0KHNlbGYu aXZhbHVlLCBzZWxmLl9fbW9kdWx1cy5pbnQ2NCkKKysgICAgICAgIGNkZWYgaW50X2Zhc3Q2NF90 IGcgPSBnY2RfaW50NjQoc2VsZi5pdmFsdWUsIHNlbGYuX21vZHVsdXMuaW50NjQpCisgICAgICAg ICBnID0gZ2NkX2ludDY0KGcsIG90aGVyLml2YWx1ZSkKKy0gICAgICAgIGlmIGcgPT0gc2VsZi5f X21vZHVsdXMuaW50NjQ6ICMgc2VsZiA9IG90aGVyID0gMAorKyAgICAgICAgaWYgZyA9PSBzZWxm Ll9tb2R1bHVzLmludDY0OiAjIHNlbGYgPSBvdGhlciA9IDAKKyAgICAgICAgICAgICBnID0gMAor ICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKGcpCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv cmluZ3MvZnJhY3Rpb25fZmllbGRfRnBULnB5eCBiL3NyYy9zYWdlL3JpbmdzL2ZyYWN0aW9uX2Zp ZWxkX0ZwVC5weXgKK2luZGV4IDBhMjUxOTFhMTFjLi5jOWJiNWQ1YTM4NCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL3JpbmdzL2ZyYWN0aW9uX2ZpZWxkX0ZwVC5weXgKKysrKyBiL3NyYy9zYWdlL3Jp bmdzL2ZyYWN0aW9uX2ZpZWxkX0ZwVC5weXgKK0BAIC0xNjUwLDcgKzE2NTAsNyBAQCBjZGVmIGNs YXNzIEZwVF9GcF9zZWN0aW9uKFNlY3Rpb24pOgorICAgICAgICAgICAgICAgICByYWlzZSBWYWx1 ZUVycm9yKCJub3QgY29uc3RhbnQiKQorICAgICAgICAgYW5zID0gSW50ZWdlck1vZF9pbnQuX19u ZXdfXyhJbnRlZ2VyTW9kX2ludCkKKyAgICAgICAgIGFucy5fcGFyZW50ID0gc2VsZi5jb2RvbWFp bigpCistICAgICAgICBhbnMuX19tb2R1bHVzID0gYW5zLl9wYXJlbnQuX3B5eF9vcmRlcgorKyAg ICAgICAgYW5zLl9tb2R1bHVzID0gYW5zLl9wYXJlbnQuX3B5eF9vcmRlcgorICAgICAgICAgaWYg bm1vZF9wb2x5X2dldF9jb2VmZl91aSh4Ll9kZW5vbSwgMCkgIT0gMToKKyAgICAgICAgICAgICBu b3JtYWxpemUoeC5fbnVtZXIsIHguX2Rlbm9tLCBzZWxmLnApCisgICAgICAgICBhbnMuaXZhbHVl ID0gbm1vZF9wb2x5X2dldF9jb2VmZl91aSh4Ll9udW1lciwgMCkKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL2Zy YWN0aW9uX2ZpZWxkX2VsZW1lbnQucHl4CitpbmRleCAxMWEyYjY0NmQzNS4uNzVlNDdhZjEyOTkg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9lbGVtZW50LnB5eAor KysrIGIvc3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmllbGRfZWxlbWVudC5weXgKK0BAIC03OCw4 ICs3OCw4IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToK KyAgICAgICAgIHNhZ2U6IEYub25lKCkucXVvX3JlbShGLm9uZSgpKQorICAgICAgICAgKDEsIDAp CisgICAgICIiIgorLSAgICBjZGVmIG9iamVjdCBfX251bWVyYXRvcgorLSAgICBjZGVmIG9iamVj dCBfX2Rlbm9taW5hdG9yCisrICAgIGNkZWYgb2JqZWN0IF9udW1lcmF0b3IKKysgICAgY2RlZiBv YmplY3QgX2Rlbm9taW5hdG9yCisgICAgIGNkZWYgYmludCBfaXNfcmVkdWNlZAorIAorICAgICBk ZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBudW1lcmF0b3IsIGRlbm9taW5hdG9yPTEsCitAQCAt MTA4LDE3ICsxMDgsMTcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVs ZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBGaWVsZEVsZW1lbnQuX19pbml0X18oc2Vs ZiwgcGFyZW50KQorICAgICAgICAgaWYgY29lcmNlOgorLSAgICAgICAgICAgIHNlbGYuX19udW1l cmF0b3IgICA9IHBhcmVudC5yaW5nKCkobnVtZXJhdG9yKQorLSAgICAgICAgICAgIHNlbGYuX19k ZW5vbWluYXRvciA9IHBhcmVudC5yaW5nKCkoZGVub21pbmF0b3IpCisrICAgICAgICAgICAgc2Vs Zi5fbnVtZXJhdG9yICAgPSBwYXJlbnQucmluZygpKG51bWVyYXRvcikKKysgICAgICAgICAgICBz ZWxmLl9kZW5vbWluYXRvciA9IHBhcmVudC5yaW5nKCkoZGVub21pbmF0b3IpCisgICAgICAgICBl bHNlOgorLSAgICAgICAgICAgIHNlbGYuX19udW1lcmF0b3IgICA9IG51bWVyYXRvcgorLSAgICAg ICAgICAgIHNlbGYuX19kZW5vbWluYXRvciA9IGRlbm9taW5hdG9yCisrICAgICAgICAgICAgc2Vs Zi5fbnVtZXJhdG9yICAgPSBudW1lcmF0b3IKKysgICAgICAgICAgICBzZWxmLl9kZW5vbWluYXRv ciA9IGRlbm9taW5hdG9yCisgICAgICAgICBpZiByZWR1Y2UgYW5kIHBhcmVudC5pc19leGFjdCgp OgorICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgc2VsZi5yZWR1Y2UoKQorICAg ICAgICAgICAgIGV4Y2VwdCBBcml0aG1ldGljRXJyb3I6CisgICAgICAgICAgICAgICAgIHBhc3MK Ky0gICAgICAgIGlmIHNlbGYuX19kZW5vbWluYXRvci5pc196ZXJvKCk6CisrICAgICAgICBpZiBz ZWxmLl9kZW5vbWluYXRvci5pc196ZXJvKCk6CisgICAgICAgICAgICAgcmFpc2UgWmVyb0Rpdmlz aW9uRXJyb3IoImZyYWN0aW9uIGZpZWxkIGVsZW1lbnQgZGl2aXNpb24gYnkgemVybyIpCisgCisg ICAgIGRlZiBfaW1fZ2Vuc18oc2VsZiwgY29kb21haW4sIGltX2dlbnMsIGJhc2VfbWFwPU5vbmUp OgorQEAgLTE1NCw4ICsxNTQsOCBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZp ZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogcGhpKGkvYSkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwg LSBzYWdlLnJpbmdzLm51bWJlcl9maWVsZAorICAgICAgICAgICAgICgoLWkpKS9iCisgICAgICAg ICAiIiIKKy0gICAgICAgIG5udW0gPSBjb2RvbWFpbi5jb2VyY2Uoc2VsZi5fX251bWVyYXRvci5f aW1fZ2Vuc18oY29kb21haW4sIGltX2dlbnMsIGJhc2VfbWFwPWJhc2VfbWFwKSkKKy0gICAgICAg IG5kZW4gPSBjb2RvbWFpbi5jb2VyY2Uoc2VsZi5fX2Rlbm9taW5hdG9yLl9pbV9nZW5zXyhjb2Rv bWFpbiwgaW1fZ2VucywgYmFzZV9tYXA9YmFzZV9tYXApKQorKyAgICAgICAgbm51bSA9IGNvZG9t YWluLmNvZXJjZShzZWxmLl9udW1lcmF0b3IuX2ltX2dlbnNfKGNvZG9tYWluLCBpbV9nZW5zLCBi YXNlX21hcD1iYXNlX21hcCkpCisrICAgICAgICBuZGVuID0gY29kb21haW4uY29lcmNlKHNlbGYu X2Rlbm9taW5hdG9yLl9pbV9nZW5zXyhjb2RvbWFpbiwgaW1fZ2VucywgYmFzZV9tYXA9YmFzZV9t YXApKQorICAgICAgICAgcmV0dXJuIGNvZG9tYWluLmNvZXJjZShubnVtL25kZW4pCisgCisgICAg IGNwZGVmIHJlZHVjZShzZWxmKToKK0BAIC0xOTEsMTAgKzE5MSwxMCBAQCBjZGVmIGNsYXNzIEZy YWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICBpZiBzZWxmLl9pc19y ZWR1Y2VkOgorICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgdHJ5OgorLSAgICAgICAgICAg IGcgPSBzZWxmLl9fbnVtZXJhdG9yLmdjZChzZWxmLl9fZGVub21pbmF0b3IpCisrICAgICAgICAg ICAgZyA9IHNlbGYuX251bWVyYXRvci5nY2Qoc2VsZi5fZGVub21pbmF0b3IpCisgICAgICAgICAg ICAgaWYgbm90IGcuaXNfdW5pdCgpOgorLSAgICAgICAgICAgICAgICBzZWxmLl9fbnVtZXJhdG9y IC8vPSBnCistICAgICAgICAgICAgICAgIHNlbGYuX19kZW5vbWluYXRvciAvLz0gZworKyAgICAg ICAgICAgICAgICBzZWxmLl9udW1lcmF0b3IgLy89IGcKKysgICAgICAgICAgICAgICAgc2VsZi5f ZGVub21pbmF0b3IgLy89IGcKKyAgICAgICAgICAgICBzZWxmLl9pc19yZWR1Y2VkID0gVHJ1ZQor ICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgIHJhaXNlIEFyaXRo bWV0aWNFcnJvcigidW5hYmxlIHRvIHJlZHVjZSBiZWNhdXNlIGxhY2sgb2YgZ2NkIG9yIHF1b19y ZW0gYWxnb3JpdGhtIikKK0BAIC0yMDIsMTQgKzIwMiwxNCBAQCBjZGVmIGNsYXNzIEZyYWN0aW9u RmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgcmFpc2UgQXJpdGhtZXRp Y0Vycm9yKCJ1bmFibGUgdG8gcmVkdWNlIGJlY2F1c2UgZ2NkIGFsZ29yaXRobSBkb2Vzbid0IHdv cmsgb24gaW5wdXQiKQorICAgICAgICAgZXhjZXB0IE5vdEltcGxlbWVudGVkRXJyb3I6CisgICAg ICAgICAgICAgcmFpc2UgQXJpdGhtZXRpY0Vycm9yKCJ1bmFibGUgdG8gcmVkdWNlIGJlY2F1c2Ug Z2NkIGFsZ29yaXRobSBub3QgaW1wbGVtZW50ZWQgb24gaW5wdXQiKQorLSAgICAgICAgaWYgbm90 IHNlbGYuX19kZW5vbWluYXRvci5pc19vbmUoKSBhbmQgc2VsZi5fX2Rlbm9taW5hdG9yLmlzX3Vu aXQoKToKKysgICAgICAgIGlmIG5vdCBzZWxmLl9kZW5vbWluYXRvci5pc19vbmUoKSBhbmQgc2Vs Zi5fZGVub21pbmF0b3IuaXNfdW5pdCgpOgorICAgICAgICAgICAgIHRyeToKKy0gICAgICAgICAg ICAgICAgaW52ID0gc2VsZi5fX2Rlbm9taW5hdG9yLmludmVyc2Vfb2ZfdW5pdCgpCisrICAgICAg ICAgICAgICAgIGludiA9IHNlbGYuX2Rlbm9taW5hdG9yLmludmVyc2Vfb2ZfdW5pdCgpCisgICAg ICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICAgcGFzcworICAgICAg ICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgIHNlbGYuX19udW1lcmF0b3IgKj0gaW52Cist ICAgICAgICAgICAgICAgIHNlbGYuX19kZW5vbWluYXRvciA9IHNlbGYuX19kZW5vbWluYXRvci5w YXJlbnQoKS5vbmUoKQorKyAgICAgICAgICAgICAgICBzZWxmLl9udW1lcmF0b3IgKj0gaW52Cisr ICAgICAgICAgICAgICAgIHNlbGYuX2Rlbm9taW5hdG9yID0gc2VsZi5fZGVub21pbmF0b3IucGFy ZW50KCkub25lKCkKKyAKKyAgICAgZGVmIF9fY29weV9fKHNlbGYpOgorICAgICAgICAgIiIiCitA QCAtMjIzLDggKzIyMyw4IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRF bGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBjb3B5KGYpCisgICAgICAgICAgICAgKHggKyB5 KS95CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLl9w YXJlbnQsIHNlbGYuX19udW1lcmF0b3IsCistICAgICAgICAgICAgICAgIHNlbGYuX19kZW5vbWlu YXRvciwgY29lcmNlPUZhbHNlLCByZWR1Y2U9RmFsc2UpCisrICAgICAgICByZXR1cm4gc2VsZi5f X2NsYXNzX18oc2VsZi5fcGFyZW50LCBzZWxmLl9udW1lcmF0b3IsCisrICAgICAgICAgICAgICAg IHNlbGYuX2Rlbm9taW5hdG9yLCBjb2VyY2U9RmFsc2UsIHJlZHVjZT1GYWxzZSkKKyAKKyAgICAg ZGVmIG51bWVyYXRvcihzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTIzOCw3ICsyMzgsNyBAQCBj ZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAg ICAgc2FnZTogZi5udW1lcmF0b3IoKQorICAgICAgICAgICAgIHggKyB5CisgICAgICAgICAiIiIK Ky0gICAgICAgIHJldHVybiBzZWxmLl9fbnVtZXJhdG9yCisrICAgICAgICByZXR1cm4gc2VsZi5f bnVtZXJhdG9yCisgCisgICAgIGRlZiBkZW5vbWluYXRvcihzZWxmKToKKyAgICAgICAgICIiIgor QEAgLTI1Miw3ICsyNTIsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxk RWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogZi5kZW5vbWluYXRvcigpCisgICAgICAgICAg ICAgeQorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gc2VsZi5fX2Rlbm9taW5hdG9yCisr ICAgICAgICByZXR1cm4gc2VsZi5fZGVub21pbmF0b3IKKyAKKyAKKyAgICAgZGVmIGlzX3NxdWFy ZShzZWxmLHJvb3Q9RmFsc2UpOgorQEAgLTM5OSwxMCArMzk5LDEwIEBAIGNkZWYgY2xhc3MgRnJh Y3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiAoKHgr MSkvKHheMisxKSkuc3Vicyh7eDogMX0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UucmluZ3MubnVtYmVyX2ZpZWxkCisgICAgICAgICAg ICAgMQorICAgICAgICAgIiIiCistICAgICAgICBpZiBzZWxmLl9fZGVub21pbmF0b3IuaXNfb25l KCk6CisrICAgICAgICBpZiBzZWxmLl9kZW5vbWluYXRvci5pc19vbmUoKToKKyAgICAgICAgICAg ICAjIEhhbmRsZSB0aGlzIGNhc2UgZXZlbiBvdmVyIHJpbmdzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBy ZWR1Y3Rpb24sIHRvCisgICAgICAgICAgICAgIyBhdm9pZCBicmVha2luZyBleGlzdGluZyBjb2Rl IHRoYXQgY2FyZWxlc3NseSBtaXhlcyBwIGFuZCBwLzEKKy0gICAgICAgICAgICByZXR1cm4gaGFz aChzZWxmLl9fbnVtZXJhdG9yKQorKyAgICAgICAgICAgIHJldHVybiBoYXNoKHNlbGYuX251bWVy YXRvcikKKyAgICAgICAgIGlmIHNlbGYuX3BhcmVudC5pc19leGFjdCgpOgorICAgICAgICAgICAg ICMgTWF5IGZhaWw7IGxldCB0aGUgZXhjZXB0aW9uIHByb3BhZ2F0ZSB0aGVuLgorICAgICAgICAg ICAgICMgKEluIGNvbnRyYXN0LCBvdmVyIGluZXhhY3QgcmluZ3MsIHdlIGhhc2ggdW5yZWR1Y2Vk IGZyYWN0aW9ucworQEAgLTQxMyw4ICs0MTMsOCBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRF bGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgIyBpc3N1ZXMgZXZlbiBpZiB3ZSBk aWRuJ3QuLi4pCisgICAgICAgICAgICAgc2VsZi5yZWR1Y2UoKQorICAgICAgICAgIyBTYW1lIGFs Z29yaXRobSBhcyBmb3IgZWxlbWVudHMgb2YgUVEKKy0gICAgICAgIG4gPSBoYXNoKHNlbGYuX19u dW1lcmF0b3IpCistICAgICAgICBkID0gaGFzaChzZWxmLl9fZGVub21pbmF0b3IpCisrICAgICAg ICBuID0gaGFzaChzZWxmLl9udW1lcmF0b3IpCisrICAgICAgICBkID0gaGFzaChzZWxmLl9kZW5v bWluYXRvcikKKyAgICAgICAgIGlmIGQgPT0gMToKKyAgICAgICAgICAgICByZXR1cm4gbgorICAg ICAgICAgZWxzZToKK0BAIC00NDMsNyArNDQzLDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxk RWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IGgoeDA9MSkKKyAgICAg ICAgICAgICAoLTIqeDEqeDIgKyB4MSArIDEpLyh4MSArIHgyKQorICAgICAgICAgIiIiCistICAg ICAgICByZXR1cm4gc2VsZi5fX251bWVyYXRvcigqeCwgKiprd2RzKSAvIHNlbGYuX19kZW5vbWlu YXRvcigqeCwgKiprd2RzKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX251bWVyYXRvcigqeCwgKipr d2RzKSAvIHNlbGYuX2Rlbm9taW5hdG9yKCp4LCAqKmt3ZHMpCisgCisgICAgIGRlZiBfaXNfYXRv bWljKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtNDU2LDcgKzQ1Niw3IEBAIGNkZWYgY2xhc3Mg RnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBm Ll9pc19hdG9taWMoKQorICAgICAgICAgICAgIEZhbHNlCisgICAgICAgICAiIiIKKy0gICAgICAg IHJldHVybiBzZWxmLl9fbnVtZXJhdG9yLl9pc19hdG9taWMoKSBhbmQgc2VsZi5fX2Rlbm9taW5h dG9yLl9pc19hdG9taWMoKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX251bWVyYXRvci5faXNfYXRv bWljKCkgYW5kIHNlbGYuX2Rlbm9taW5hdG9yLl9pc19hdG9taWMoKQorIAorICAgICBkZWYgX3Jl cHJfKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtNDc2LDEzICs0NzYsMTMgQEAgY2RlZiBjbGFz cyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBpZiBzZWxmLmlzX3plcm8oKToKKyAgICAgICAgICAgICByZXR1cm4gIjAiCistICAgICAg ICBzID0gIiVzIiAlIHNlbGYuX19udW1lcmF0b3IKKy0gICAgICAgIGlmIHNlbGYuX19kZW5vbWlu YXRvciAhPSAxOgorLSAgICAgICAgICAgIGRlbm9tX3N0cmluZyA9IHN0ciggc2VsZi5fX2Rlbm9t aW5hdG9yICkKKy0gICAgICAgICAgICBpZiBzZWxmLl9fZGVub21pbmF0b3IuX2lzX2F0b21pYygp IGFuZCBub3QgKCcqJyBpbiBkZW5vbV9zdHJpbmcgb3IgJy8nIGluIGRlbm9tX3N0cmluZyk6Cist ICAgICAgICAgICAgICAgIHMgPSAiJXMvJXMiJShzZWxmLl9fbnVtZXJhdG9yLl9jb2VmZl9yZXBy KG5vX3NwYWNlPUZhbHNlKSxkZW5vbV9zdHJpbmcpCisrICAgICAgICBzID0gIiVzIiAlIHNlbGYu X251bWVyYXRvcgorKyAgICAgICAgaWYgc2VsZi5fZGVub21pbmF0b3IgIT0gMToKKysgICAgICAg ICAgICBkZW5vbV9zdHJpbmcgPSBzdHIoIHNlbGYuX2Rlbm9taW5hdG9yICkKKysgICAgICAgICAg ICBpZiBzZWxmLl9kZW5vbWluYXRvci5faXNfYXRvbWljKCkgYW5kIG5vdCAoJyonIGluIGRlbm9t X3N0cmluZyBvciAnLycgaW4gZGVub21fc3RyaW5nKToKKysgICAgICAgICAgICAgICAgcyA9ICIl cy8lcyIlKHNlbGYuX251bWVyYXRvci5fY29lZmZfcmVwcihub19zcGFjZT1GYWxzZSksZGVub21f c3RyaW5nKQorICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgIHMgPSAiJXMvKCVz KSIlKHNlbGYuX19udW1lcmF0b3IuX2NvZWZmX3JlcHIobm9fc3BhY2U9RmFsc2UpLGRlbm9tX3N0 cmluZykKKysgICAgICAgICAgICAgICAgcyA9ICIlcy8oJXMpIiUoc2VsZi5fbnVtZXJhdG9yLl9j b2VmZl9yZXByKG5vX3NwYWNlPUZhbHNlKSxkZW5vbV9zdHJpbmcpCisgICAgICAgICByZXR1cm4g cworIAorICAgICBkZWYgX2xhdGV4XyhzZWxmKToKK0BAIC01MTgsMTAgKzUxOCwxMCBAQCBjZGVm IGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIGlmIHNlbGYuaXNfemVybygpOgorICAgICAgICAgICAgIHJldHVybiAiMCIKKy0g ICAgICAgIGlmIHNlbGYuX19kZW5vbWluYXRvciA9PSAxOgorLSAgICAgICAgICAgIHJldHVybiBs YXRleC5sYXRleChzZWxmLl9fbnVtZXJhdG9yKQorLSAgICAgICAgcmV0dXJuICJcXGZyYWN7JXN9 eyVzfSIlKGxhdGV4LmxhdGV4KHNlbGYuX19udW1lcmF0b3IpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxhdGV4LmxhdGV4KHNlbGYuX19kZW5vbWluYXRvcikpCisrICAgICAg ICBpZiBzZWxmLl9kZW5vbWluYXRvciA9PSAxOgorKyAgICAgICAgICAgIHJldHVybiBsYXRleC5s YXRleChzZWxmLl9udW1lcmF0b3IpCisrICAgICAgICByZXR1cm4gIlxcZnJhY3slc317JXN9IiUo bGF0ZXgubGF0ZXgoc2VsZi5fbnVtZXJhdG9yKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsYXRleC5sYXRleChzZWxmLl9kZW5vbWluYXRvcikpCisgCisgICAgIGRlZiBfbWFn bWFfaW5pdF8oc2VsZiwgbWFnbWEpOgorICAgICAgICAgIiIiCitAQCAtNTc3LDEwICs1NzcsMTAg QEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAg ICAgICAgIHNhZ2U6IHQgLSAxL3QgIyBpbmRpcmVjdCBkb2N0ZXN0ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5yaW5ncy5maW5pdGVf cmluZ3MKKyAgICAgICAgICAgICAodF4yICsgNikvdAorICAgICAgICAgIiIiCistICAgICAgICBy bnVtID0gc2VsZi5fX251bWVyYXRvcgorLSAgICAgICAgcmRlbiA9IHNlbGYuX19kZW5vbWluYXRv cgorLSAgICAgICAgc251bSA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX251bWVy YXRvcgorLSAgICAgICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fX2Rl bm9taW5hdG9yCisrICAgICAgICBybnVtID0gc2VsZi5fbnVtZXJhdG9yCisrICAgICAgICByZGVu ID0gc2VsZi5fZGVub21pbmF0b3IKKysgICAgICAgIHNudW0gPSAoPEZyYWN0aW9uRmllbGRFbGVt ZW50PiByaWdodCkuX251bWVyYXRvcgorKyAgICAgICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVs ZW1lbnQ+IHJpZ2h0KS5fZGVub21pbmF0b3IKKyAKKyAgICAgICAgIGlmIChybnVtLmlzX3plcm8o KSk6CisgICAgICAgICAgICAgcmV0dXJuIDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmlnaHQKK0BA IC02MDIsNyArNjAyLDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVs ZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQucmluZygp Lm9uZSgpLCBjb2VyY2U9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZHVj ZT1GYWxzZSkKKyAgICAgICAgICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgICAg ICAgICAgdGRlbiA9IHNlbGYuX19kZW5vbWluYXRvciAqIHNkZW4KKysgICAgICAgICAgICAgICAg ICAgICAgICB0ZGVuID0gc2VsZi5fZGVub21pbmF0b3IgKiBzZGVuCisgICAgICAgICAgICAgICAg ICAgICAgICAgZSAgICA9IHRudW0uZ2NkKGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYg bm90IGUuaXNfdW5pdCgpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bnVtID0gdG51 bSAvLyBlCitAQCAtNjI0LDEwICs2MjQsMTAgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxl bWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAg ICAgICAgICAgICAgIHBhc3MKKyAKKy0gICAgICAgIHJudW0gPSBzZWxmLl9fbnVtZXJhdG9yCist ICAgICAgICByZGVuID0gc2VsZi5fX2Rlbm9taW5hdG9yCistICAgICAgICBzbnVtID0gKDxGcmFj dGlvbkZpZWxkRWxlbWVudD4gcmlnaHQpLl9fbnVtZXJhdG9yCistICAgICAgICBzZGVuID0gKDxG cmFjdGlvbkZpZWxkRWxlbWVudD4gcmlnaHQpLl9fZGVub21pbmF0b3IKKysgICAgICAgIHJudW0g PSBzZWxmLl9udW1lcmF0b3IKKysgICAgICAgIHJkZW4gPSBzZWxmLl9kZW5vbWluYXRvcgorKyAg ICAgICAgc251bSA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHJpZ2h0KS5fbnVtZXJhdG9yCisr ICAgICAgICBzZGVuID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmlnaHQpLl9kZW5vbWluYXRv cgorIAorICAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYuX3BhcmVudCwgcm51bSpz ZGVuICsgcmRlbipzbnVtLCByZGVuKnNkZW4sCisgICAgICAgICAgICAgY29lcmNlPUZhbHNlLCBy ZWR1Y2U9RmFsc2UpCitAQCAtNjUyLDEwICs2NTIsMTAgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZp ZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IGEgKiBiICMgaW5k aXJlY3QgZG9jdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIG9wdGlvbmFsIC0gc2FnZS5yaW5ncy5maW5pdGVfcmluZ3MKKyAgICAgICAgICAgICAzLyh0 ICsgMSkKKyAgICAgICAgICIiIgorLSAgICAgICAgcm51bSA9IHNlbGYuX19udW1lcmF0b3IKKy0g ICAgICAgIHJkZW4gPSBzZWxmLl9fZGVub21pbmF0b3IKKy0gICAgICAgIHNudW0gPSAoPEZyYWN0 aW9uRmllbGRFbGVtZW50PiByaWdodCkuX19udW1lcmF0b3IKKy0gICAgICAgIHNkZW4gPSAoPEZy YWN0aW9uRmllbGRFbGVtZW50PiByaWdodCkuX19kZW5vbWluYXRvcgorKyAgICAgICAgcm51bSA9 IHNlbGYuX251bWVyYXRvcgorKyAgICAgICAgcmRlbiA9IHNlbGYuX2Rlbm9taW5hdG9yCisrICAg ICAgICBzbnVtID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmlnaHQpLl9udW1lcmF0b3IKKysg ICAgICAgIHNkZW4gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiByaWdodCkuX2Rlbm9taW5hdG9y CisgCisgICAgICAgICBpZiAocm51bS5pc196ZXJvKCkgb3Igc251bS5pc196ZXJvKCkpOgorICAg ICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuemVybygpCitAQCAtNjg5LDEwICs2ODksMTAg QEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAg ICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAgICAgIHBhc3MKKyAKKy0gICAg ICAgIHJudW0gPSBzZWxmLl9fbnVtZXJhdG9yCistICAgICAgICByZGVuID0gc2VsZi5fX2Rlbm9t aW5hdG9yCistICAgICAgICBzbnVtID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmlnaHQpLl9f bnVtZXJhdG9yCistICAgICAgICBzZGVuID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmlnaHQp Ll9fZGVub21pbmF0b3IKKysgICAgICAgIHJudW0gPSBzZWxmLl9udW1lcmF0b3IKKysgICAgICAg IHJkZW4gPSBzZWxmLl9kZW5vbWluYXRvcgorKyAgICAgICAgc251bSA9ICg8RnJhY3Rpb25GaWVs ZEVsZW1lbnQ+IHJpZ2h0KS5fbnVtZXJhdG9yCisrICAgICAgICBzZGVuID0gKDxGcmFjdGlvbkZp ZWxkRWxlbWVudD4gcmlnaHQpLl9kZW5vbWluYXRvcgorIAorICAgICAgICAgcmV0dXJuIHNlbGYu X19jbGFzc19fKHNlbGYuX3BhcmVudCwgcm51bSAqIHNudW0sIHJkZW4gKiBzZGVuLAorICAgICAg ICAgICAgIGNvZXJjZT1GYWxzZSwgcmVkdWNlPUZhbHNlKQorQEAgLTcxNyw4ICs3MTcsOCBAQCBj ZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAg ICAgc2FnZTogYS9iCisgICAgICAgICAgICAgKHgqeiAtIHggKyB6IC0gMSkvKHogLSAzKQorICAg ICAgICAgIiIiCistICAgICAgICBzbnVtID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmlnaHQp Ll9fbnVtZXJhdG9yCistICAgICAgICBzZGVuID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gcmln aHQpLl9fZGVub21pbmF0b3IKKysgICAgICAgIHNudW0gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50 PiByaWdodCkuX251bWVyYXRvcgorKyAgICAgICAgc2RlbiA9ICg8RnJhY3Rpb25GaWVsZEVsZW1l bnQ+IHJpZ2h0KS5fZGVub21pbmF0b3IKKyAKKyAgICAgICAgIGlmIHNudW0uaXNfemVybygpOgor ICAgICAgICAgICAgIHJhaXNlIFplcm9EaXZpc2lvbkVycm9yKCJmcmFjdGlvbiBmaWVsZCBlbGVt ZW50IGRpdmlzaW9uIGJ5IHplcm8iKQorQEAgLTc0MywxMCArNzQzLDEwIEBAIGNkZWYgY2xhc3Mg RnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBp bnQoSyguNSkpCisgICAgICAgICAgICAgMAorICAgICAgICAgIiIiCistICAgICAgICBpZiBzZWxm Ll9fZGVub21pbmF0b3IgIT0gMToKKysgICAgICAgIGlmIHNlbGYuX2Rlbm9taW5hdG9yICE9IDE6 CisgICAgICAgICAgICAgc2VsZi5yZWR1Y2UoKQorLSAgICAgICAgaWYgc2VsZi5fX2Rlbm9taW5h dG9yID09IDE6CistICAgICAgICAgICAgcmV0dXJuIGludChzZWxmLl9fbnVtZXJhdG9yKQorKyAg ICAgICAgaWYgc2VsZi5fZGVub21pbmF0b3IgPT0gMToKKysgICAgICAgICAgICByZXR1cm4gaW50 KHNlbGYuX251bWVyYXRvcikKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmFpc2UgVHlw ZUVycm9yKCJkZW5vbWluYXRvciBtdXN0IGVxdWFsIDEiKQorIAorQEAgLTc1OCw3ICs3NTgsNyBA QCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAg ICAgICAgc2FnZTogZmxvYXQoeC94ICsgeS95KQorICAgICAgICAgICAgIDIuMAorICAgICAgICAg IiIiCistICAgICAgICByZXR1cm4gZmxvYXQoc2VsZi5fX251bWVyYXRvcikgLyBmbG9hdChzZWxm Ll9fZGVub21pbmF0b3IpCisrICAgICAgICByZXR1cm4gZmxvYXQoc2VsZi5fbnVtZXJhdG9yKSAv IGZsb2F0KHNlbGYuX2Rlbm9taW5hdG9yKQorIAorICAgICBkZWYgX19jb21wbGV4X18oc2VsZik6 CisgICAgICAgICAiIiIKK0BAIC03NjgsNyArNzY4LDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZp ZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IGNvbXBsZXgoeC8o SSp4KSArIChJKnkpL3kpCisgICAgICAgICAgICAgMGoKKyAgICAgICAgICIiIgorLSAgICAgICAg cmV0dXJuIGNvbXBsZXgoc2VsZi5fX251bWVyYXRvcikgLyBjb21wbGV4KHNlbGYuX19kZW5vbWlu YXRvcikKKysgICAgICAgIHJldHVybiBjb21wbGV4KHNlbGYuX251bWVyYXRvcikgLyBjb21wbGV4 KHNlbGYuX2Rlbm9taW5hdG9yKQorIAorICAgICBkZWYgX3JhdGlvbmFsXyhzZWxmKToKKyAgICAg ICAgIHIiIiIKK0BAIC04MjIsMTIgKzgyMiwxMiBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRF bGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgc2FnZTogQShDKHUpKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg b3B0aW9uYWwgLSBzYWdlLnJpbmdzLm51bWJlcl9maWVsZAorICAgICAgICAgICAgIHUKKyAgICAg ICAgICIiIgorLSAgICAgICAgaWYgc2VsZi5fX2Rlbm9taW5hdG9yLmlzX29uZSgpOgorLSAgICAg ICAgICAgIHJldHVybiBSKHNlbGYuX19udW1lcmF0b3IpCisrICAgICAgICBpZiBzZWxmLl9kZW5v bWluYXRvci5pc19vbmUoKToKKysgICAgICAgICAgICByZXR1cm4gUihzZWxmLl9udW1lcmF0b3Ip CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHNlbGYucmVkdWNlKCkKKy0gICAgICAgICAg ICBudW0gPSBSKHNlbGYuX19udW1lcmF0b3IpCistICAgICAgICAgICAgaW52X2RlbiA9IFIoc2Vs Zi5fX2Rlbm9taW5hdG9yKS5pbnZlcnNlX29mX3VuaXQoKQorKyAgICAgICAgICAgIG51bSA9IFIo c2VsZi5fbnVtZXJhdG9yKQorKyAgICAgICAgICAgIGludl9kZW4gPSBSKHNlbGYuX2Rlbm9taW5h dG9yKS5pbnZlcnNlX29mX3VuaXQoKQorICAgICAgICAgICAgIHJldHVybiBudW0gKiBpbnZfZGVu CisgCisgICAgIF9yZWFsX2RvdWJsZV8gPSBfY29udmVyc2lvbgorQEAgLTg0Nyw3ICs4NDcsNyBA QCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAg ICBSZXR1cm5zIHNlbGYgcmFpc2VkIHRvIHRoZSBgcmlnaHRee3RofWAgcG93ZXIuCisgCisgICAg ICAgICBOb3RlIHRoYXQgd2UgbmVlZCB0byBjaGVjayB3aGV0aGVyIG9yIG5vdCByaWdodCBpcyBu ZWdhdGl2ZSBzbyB3ZQorLSAgICAgICAgZG9uJ3Qgc2V0IGBgX19udW1lcmF0b3JgYCBvciBgYF9f ZGVub21pbmF0b3JgYCB0byBhbiBlbGVtZW50IG9mIHRoZQorKyAgICAgICAgZG9uJ3Qgc2V0IGBg X251bWVyYXRvcmBgIG9yIGBgX2Rlbm9taW5hdG9yYGAgdG8gYW4gZWxlbWVudCBvZiB0aGUKKyAg ICAgICAgIGZyYWN0aW9uIGZpZWxkIGluc3RlYWQgb2YgdGhlIHVuZGVybHlpbmcgcmluZy4KKyAK KyAgICAgICAgIEVYQU1QTEVTOjoKK0BAIC04NzYsOCArODc2LDggQEAgY2RlZiBjbGFzcyBGcmFj dGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6ICgoeCt5 KS8oeC15KSleMAorICAgICAgICAgICAgIDEKKyAgICAgICAgICIiIgorLSAgICAgICAgc251bSA9 ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHNlbGYpLl9fbnVtZXJhdG9yCistICAgICAgICBzZGVu ID0gKDxGcmFjdGlvbkZpZWxkRWxlbWVudD4gc2VsZikuX19kZW5vbWluYXRvcgorKyAgICAgICAg c251bSA9ICg8RnJhY3Rpb25GaWVsZEVsZW1lbnQ+IHNlbGYpLl9udW1lcmF0b3IKKysgICAgICAg IHNkZW4gPSAoPEZyYWN0aW9uRmllbGRFbGVtZW50PiBzZWxmKS5fZGVub21pbmF0b3IKKyAgICAg ICAgIGlmIHJpZ2h0ID09IDA6CisgICAgICAgICAgICAgUiA9IHNlbGYucGFyZW50KCkucmluZygp CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYucGFyZW50KCksCitAQCAt OTA0LDcgKzkwNCw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVt ZW50KToKKyAgICAgICAgICAgICAoNCp0XjIgKyA0KnQpLyh0ICsgMikKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYuX3BhcmVudCwKKy0gICAgICAgICAg ICAtc2VsZi5fX251bWVyYXRvciwgc2VsZi5fX2Rlbm9taW5hdG9yLAorKyAgICAgICAgICAgIC1z ZWxmLl9udW1lcmF0b3IsIHNlbGYuX2Rlbm9taW5hdG9yLAorICAgICAgICAgICAgIGNvZXJjZT1G YWxzZSwgcmVkdWNlPUZhbHNlKQorIAorICAgICBkZWYgX19hYnNfXyhzZWxmKToKK0BAIC05MTUs NyArOTE1LDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQp OgorICAgICAgICAgICAgIHNhZ2U6IGFicyhGcmFjdGlvbkZpZWxkRWxlbWVudChRUSwgLTIsIDMs IGNvZXJjZT1GYWxzZSkpCisgICAgICAgICAgICAgMi8zCisgICAgICAgICAiIiIKKy0gICAgICAg IHJldHVybiBhYnMoc2VsZi5fX251bWVyYXRvcikgLyBhYnMoc2VsZi5fX2Rlbm9taW5hdG9yKQor KyAgICAgICAgcmV0dXJuIGFicyhzZWxmLl9udW1lcmF0b3IpIC8gYWJzKHNlbGYuX2Rlbm9taW5h dG9yKQorIAorICAgICBkZWYgX19pbnZlcnRfXyhzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTky OSw3ICs5MjksNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVu dCk6CisgICAgICAgICBpZiBzZWxmLmlzX3plcm8oKToKKyAgICAgICAgICAgICByYWlzZSBaZXJv RGl2aXNpb25FcnJvcigiQ2Fubm90IGludmVydCAwIikKKyAgICAgICAgIHJldHVybiBzZWxmLl9f Y2xhc3NfXyhzZWxmLl9wYXJlbnQsCistICAgICAgICAgICAgc2VsZi5fX2Rlbm9taW5hdG9yLCBz ZWxmLl9fbnVtZXJhdG9yLCBjb2VyY2U9RmFsc2UsIHJlZHVjZT1GYWxzZSkKKysgICAgICAgICAg ICBzZWxmLl9kZW5vbWluYXRvciwgc2VsZi5fbnVtZXJhdG9yLCBjb2VyY2U9RmFsc2UsIHJlZHVj ZT1GYWxzZSkKKyAKKyAgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApOgor ICAgICAgICAgIiIiCitAQCAtOTUxLDEwICs5NTEsMTAgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZp ZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IDEgPiB5CisgICAg ICAgICAgICAgRmFsc2UKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHJpY2hjbXAoc2Vs Zi5fX251bWVyYXRvciAqCistICAgICAgICAgICAgICAgICAgICAgICAoPEZyYWN0aW9uRmllbGRF bGVtZW50Pm90aGVyKS5fX2Rlbm9taW5hdG9yLAorLSAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fX2Rlbm9taW5hdG9yICoKKy0gICAgICAgICAgICAgICAgICAgICAgICg8RnJhY3Rpb25GaWVs ZEVsZW1lbnQ+b3RoZXIpLl9fbnVtZXJhdG9yLCBvcCkKKysgICAgICAgIHJldHVybiByaWNoY21w KHNlbGYuX251bWVyYXRvciAqCisrICAgICAgICAgICAgICAgICAgICAgICAoPEZyYWN0aW9uRmll bGRFbGVtZW50Pm90aGVyKS5fZGVub21pbmF0b3IsCisrICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLl9kZW5vbWluYXRvciAqCisrICAgICAgICAgICAgICAgICAgICAgICAoPEZyYWN0aW9uRmll bGRFbGVtZW50Pm90aGVyKS5fbnVtZXJhdG9yLCBvcCkKKyAKKyAgICAgZGVmIHZhbHVhdGlvbihz ZWxmLCB2PU5vbmUpOgorICAgICAgICAgIiIiCitAQCAtOTcyLDcgKzk3Miw3IEBAIGNkZWYgY2xh c3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdl OiBmLnZhbHVhdGlvbih4XjIgKyAxKQorICAgICAgICAgICAgIDEKKyAgICAgICAgICIiIgorLSAg ICAgICAgcmV0dXJuIHNlbGYuX19udW1lcmF0b3IudmFsdWF0aW9uKHYpIC0gc2VsZi5fX2Rlbm9t aW5hdG9yLnZhbHVhdGlvbih2KQorKyAgICAgICAgcmV0dXJuIHNlbGYuX251bWVyYXRvci52YWx1 YXRpb24odikgLSBzZWxmLl9kZW5vbWluYXRvci52YWx1YXRpb24odikKKyAKKyAgICAgZGVmIF9f Ym9vbF9fKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtOTkxLDcgKzk5MSw3IEBAIGNkZWYgY2xh c3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdl OiBib29sKDEveCkKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJl dHVybiBub3Qgc2VsZi5fX251bWVyYXRvci5pc196ZXJvKCkKKysgICAgICAgIHJldHVybiBub3Qg c2VsZi5fbnVtZXJhdG9yLmlzX3plcm8oKQorIAorICAgICBkZWYgaXNfemVybyhzZWxmKToKKyAg ICAgICAgICIiIgorQEAgLTEwMTAsNyArMTAxMCw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVs ZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiB1LnBhcmVudCgpIGlz IEYKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxm Ll9fbnVtZXJhdG9yLmlzX3plcm8oKQorKyAgICAgICAgcmV0dXJuIHNlbGYuX251bWVyYXRvci5p c196ZXJvKCkKKyAKKyAgICAgZGVmIGlzX29uZShzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTEw MjUsNyArMTAyNSw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVt ZW50KToKKyAgICAgICAgICAgICBzYWdlOiAoeC95KS5pc19vbmUoKQorICAgICAgICAgICAgIEZh bHNlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9fbnVtZXJhdG9yID09IHNl bGYuX19kZW5vbWluYXRvcgorKyAgICAgICAgcmV0dXJuIHNlbGYuX251bWVyYXRvciA9PSBzZWxm Ll9kZW5vbWluYXRvcgorIAorICAgICBkZWYgX3N5bWJvbGljXyhzZWxmLCByaW5nKToKKyAgICAg ICAgICIiIgorQEAgLTEwNDQsNyArMTA0NCw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVs ZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBzeW1ib2xpY19leHByZXNz aW9uKGVsdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBv cHRpb25hbCAtIHNhZ2Uuc3ltYm9saWMKKyAgICAgICAgICAgICAyLzMqKHggKyB5KS8oeCAtIHkp CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiByaW5nKHNlbGYuX19udW1lcmF0b3IpL3Jp bmcoc2VsZi5fX2Rlbm9taW5hdG9yKQorKyAgICAgICAgcmV0dXJuIHJpbmcoc2VsZi5fbnVtZXJh dG9yKS9yaW5nKHNlbGYuX2Rlbm9taW5hdG9yKQorIAorICAgICBkZWYgX19yZWR1Y2VfXyhzZWxm KToKKyAgICAgICAgICIiIgorQEAgLTEwNTgsNyArMTA1OCw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rp b25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICBUcnVlCisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiAobWFrZV9lbGVtZW50LAorLSAgICAgICAgICAgICAgICAo c2VsZi5fcGFyZW50LCBzZWxmLl9fbnVtZXJhdG9yLCBzZWxmLl9fZGVub21pbmF0b3IpKQorKyAg ICAgICAgICAgICAgICAoc2VsZi5fcGFyZW50LCBzZWxmLl9udW1lcmF0b3IsIHNlbGYuX2Rlbm9t aW5hdG9yKSkKKyAKKyAgICAgZGVmIF9ldmFsdWF0ZV9wb2x5bm9taWFsKHNlbGYsIHBvbCk6Cisg ICAgICAgICAiIiIKK0BAIC0xMTcwLDkgKzExNzAsOSBAQCBjZGVmIGNsYXNzIEZyYWN0aW9uRmll bGRFbGVtZW50XzFwb2x5X2ZpZWxkKEZyYWN0aW9uRmllbGRFbGVtZW50KToKKyAgICAgICAgICIi IgorICAgICAgICAgU2VlIDptZXRoOmByZWR1Y2VgLgorICAgICAgICAgIiIiCistICAgICAgICBp bnZsYyA9IH5zZWxmLl9fZGVub21pbmF0b3IubGVhZGluZ19jb2VmZmljaWVudCgpCistICAgICAg ICBzZWxmLl9fZGVub21pbmF0b3IgPSBzZWxmLl9fZGVub21pbmF0b3IubW9uaWMoKQorLSAgICAg ICAgc2VsZi5fX251bWVyYXRvciAqPSBpbnZsYworKyAgICAgICAgaW52bGMgPSB+c2VsZi5fZGVu b21pbmF0b3IubGVhZGluZ19jb2VmZmljaWVudCgpCisrICAgICAgICBzZWxmLl9kZW5vbWluYXRv ciA9IHNlbGYuX2Rlbm9taW5hdG9yLm1vbmljKCkKKysgICAgICAgIHNlbGYuX251bWVyYXRvciAq PSBpbnZsYworIAorICAgICBkZWYgaXNfaW50ZWdyYWwoc2VsZik6CisgICAgICAgICAiIiIKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9kcmluZmVsZF9tb2R1bGVz L2RyaW5mZWxkX21vZHVsZS5weSBiL3NyYy9zYWdlL3JpbmdzL2Z1bmN0aW9uX2ZpZWxkL2RyaW5m ZWxkX21vZHVsZXMvZHJpbmZlbGRfbW9kdWxlLnB5CitpbmRleCBhMjdlNzVmNWZjZS4uNzRlZjEy NWZiNmEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9kcmluZmVs ZF9tb2R1bGVzL2RyaW5mZWxkX21vZHVsZS5weQorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rp b25fZmllbGQvZHJpbmZlbGRfbW9kdWxlcy9kcmluZmVsZF9tb2R1bGUucHkKK0BAIC04MDQsOCAr ODA0LDggQEAgZGVmIF9sYXRleF8oc2VsZik6CisgICAgICAgICAgICAgXHBoaQorICAgICAgICAg ICAgIHNhZ2U6IHBoaS5yZXNldF9uYW1lKCkKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgaGFz YXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScpOgorLSAgICAgICAgICAgIHJldHVybiBsYXRleF92 YXJpYWJsZV9uYW1lKGdldGF0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKSkKKysgICAgICAgIGlm IHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgcmV0dXJu IGxhdGV4X3ZhcmlhYmxlX25hbWUoc2VsZi5nZXRfY3VzdG9tX25hbWUoKSkKKyAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgcmV0dXJuIGYnXFxwaGk6IHtsYXRleChzZWxmLl9mdW5jdGlvbl9y aW5nLmdlbigpKX0gXFxtYXBzdG8gJyBcCisgICAgICAgICAgICAgICAgICAgIGYne2xhdGV4KHNl bGYuX2dlbil9JworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2xhdXJlbnRfc2VyaWVzX3Jp bmdfZWxlbWVudC5weGQgYi9zcmMvc2FnZS9yaW5ncy9sYXVyZW50X3Nlcmllc19yaW5nX2VsZW1l bnQucHhkCitpbmRleCBkMTkwNjQ1Y2U1Mi4uOGRmNWE5MmM5ZTcgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9yaW5ncy9sYXVyZW50X3Nlcmllc19yaW5nX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2Fn ZS9yaW5ncy9sYXVyZW50X3Nlcmllc19yaW5nX2VsZW1lbnQucHhkCitAQCAtNCw3ICs0LDcgQEAg Y2RlZiBjbGFzcyBMYXVyZW50U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKyAgICAgY2RlZiBNb2R1 bGVFbGVtZW50IF9fdQorICAgICBjZGVmIGxvbmcgX19uCisgCistICAgIGNkZWYgX19ub3JtYWxp emUoc2VsZikKKysgICAgY2RlZiBfbm9ybWFsaXplKHNlbGYpCisgICAgIGNwZGVmIF9hZGRfKHNl bGYsIG90aGVyKQorICAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikKKyAKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9yaW5ncy9sYXVyZW50X3Nlcmllc19yaW5nX2VsZW1lbnQucHl4IGIvc3JjL3Nh Z2UvcmluZ3MvbGF1cmVudF9zZXJpZXNfcmluZ19lbGVtZW50LnB5eAoraW5kZXggOGU5NTA0Nzgw NDUuLjliZWY3MjM5NmI3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvbGF1cmVudF9zZXJp ZXNfcmluZ19lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvbGF1cmVudF9zZXJpZXNf cmluZ19lbGVtZW50LnB5eAorQEAgLTMwMiw3ICszMDIsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRT ZXJpZXMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgeCA9IGltX2dlbnNbMF0KKyAgICAgICAg IHJldHVybiBjb2RvbWFpbihzZWxmLl9fdS5faW1fZ2Vuc18oY29kb21haW4sIGltX2dlbnMsIGJh c2VfbWFwPWJhc2VfbWFwKSAqIHgqKnNlbGYuX19uKQorIAorLSAgICBjZGVmIF9fbm9ybWFsaXpl KHNlbGYpOgorKyAgICBjZGVmIF9ub3JtYWxpemUoc2VsZik6CisgICAgICAgICByIiIiCisgICAg ICAgICBBIExhdXJlbnQgc2VyaWVzIGlzIGEgcGFpciAodSh0KSwgbiksIHdoZXJlIGVpdGhlciB1 PTAgKHRvIHNvbWUKKyAgICAgICAgIHByZWNpc2lvbikgb3IgdSBpcyBhIHVuaXQuIFRoaXMgcGFp ciBjb3JyZXNwb25kcyB0bworQEAgLTcyNSw3ICs3MjUsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRT ZXJpZXMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICBSID0gc2VsZi5fcGFyZW50 LmJhc2VfcmluZygpCisgICAgICAgICAgICAgICAgIGNvZWZmcyA9IFt2YWx1ZV0gKyBbUigwKSBm b3IgXyBpbiByYW5nZSgxLC1qKV0gKyBzZWxmLl9fdS5saXN0KCkKKyAgICAgICAgICAgICAgICAg c2VsZi5fX3UgPSBzZWxmLl9fdS5fcGFyZW50KGNvZWZmcykKKy0gICAgICAgIHNlbGYuX19ub3Jt YWxpemUoKQorKyAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAKKyAgICAgY3BkZWYgX2FkZF8o c2VsZiwgcmlnaHRfbSk6CisgICAgICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5n cy9tb3JwaGlzbS5weGQgYi9zcmMvc2FnZS9yaW5ncy9tb3JwaGlzbS5weGQKK2luZGV4IGVhNjA4 OWYyOWI0Li40YjhlOGQwNTJkZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL21vcnBoaXNt LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvbW9ycGhpc20ucHhkCitAQCAtMTQsNyArMTQsNyBA QCBjZGVmIGNsYXNzIFJpbmdNYXBfbGlmdChSaW5nTWFwKToKKyAKKyBjZGVmIGNsYXNzIFJpbmdI b21vbW9ycGhpc20oUmluZ01hcCk6CisgICAgIGNkZWYgTW9ycGhpc20gX2xpZnQKKy0gICAgY2Rl ZiBwdWJsaWMgZGljdCBfX2NhY2hlZF9tZXRob2RzCisrICAgIGNkZWYgcHVibGljIGRpY3QgX2Nh Y2hlZF9tZXRob2RzCisgCisgY2RlZiBjbGFzcyBSaW5nSG9tb21vcnBoaXNtX2ltX2dlbnMoUmlu Z0hvbW9tb3JwaGlzbSk6CisgICAgIGNkZWYgX2ltX2dlbnMKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnQucHhkIGIvc3JjL3NhZ2Uv cmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB4ZAoraW5kZXggOWI2OTE3 MjIzYTAuLmMzZDhhOGI0YTRiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2Zp ZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVy X2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50LnB4ZAorQEAgLTExLDEyICsxMSwxMiBAQCBmcm9t IHNhZ2UubGlicy5udGwubnRsX1paIGNpbXBvcnQgbnRsX1paCisgCisgCisgY2RlZiBjbGFzcyBO dW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorLSAgICBjZGVmIFpa WF9jIF9fbnVtZXJhdG9yCistICAgIGNkZWYgWlpfYyBfX2Rlbm9taW5hdG9yCisrICAgIGNkZWYg WlpYX2MgX251bWVyYXRvcgorKyAgICBjZGVmIFpaX2MgX2Rlbm9taW5hdG9yCisgICAgICMgUG9p bnRlcnMgdG8gdGhlIGRlZmluaW5nIHBvbHlub21pYWwgKHdpdGggbnVtZXJhdG9yKSBmb3IgdGhl IGZpZWxkLgorICAgICAjIEkga2VlcCB0aGVzZSBhcyBwb2ludGVycyBmb3IgYXJpdGhtZXRpYyBz cGVlZC4KKy0gICAgY2RlZiBudGxfWlpYIF9fZmxkX251bWVyYXRvcgorLSAgICBjZGVmIG50bF9a WiBfX2ZsZF9kZW5vbWluYXRvcgorKyAgICBjZGVmIG50bF9aWlggX2ZsZF9udW1lcmF0b3IKKysg ICAgY2RlZiBudGxfWlogX2ZsZF9kZW5vbWluYXRvcgorICAgICBjZGVmIG9iamVjdCBfX211bHRp cGxpY2F0aXZlX29yZGVyCisgICAgIGNkZWYgb2JqZWN0IF9fcGFyaQorICAgICBjZGVmIG9iamVj dCBfX21hdHJpeAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9udW1i ZXJfZmllbGRfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVy X2ZpZWxkX2VsZW1lbnQucHl4CitpbmRleCAyN2UzM2FkNWJlMC4uZDQ0ZmM1NWI3MGMgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnQu cHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1l bnQucHl4CitAQCAtMjE4LDggKzIxOCw4IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50 KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIGNkZWYgdHlwZSB0ID0gdHlwZShz ZWxmKQorICAgICAgICAgY2RlZiBOdW1iZXJGaWVsZEVsZW1lbnQgeCA9IDxOdW1iZXJGaWVsZEVs ZW1lbnQ+dC5fX25ld19fKHQpCisgICAgICAgICB4Ll9wYXJlbnQgPSBzZWxmLl9wYXJlbnQKKy0g ICAgICAgIHguX19mbGRfbnVtZXJhdG9yID0gc2VsZi5fX2ZsZF9udW1lcmF0b3IKKy0gICAgICAg IHguX19mbGRfZGVub21pbmF0b3IgPSBzZWxmLl9fZmxkX2Rlbm9taW5hdG9yCisrICAgICAgICB4 Ll9mbGRfbnVtZXJhdG9yID0gc2VsZi5fZmxkX251bWVyYXRvcgorKyAgICAgICAgeC5fZmxkX2Rl bm9taW5hdG9yID0gc2VsZi5fZmxkX2Rlbm9taW5hdG9yCisgICAgICAgICByZXR1cm4geAorIAor ICAgICBjZGVmIG51bWJlcl9maWVsZChzZWxmKToKK0BAIC0zMTcsMjAgKzMxNywyMCBAQCBjZGVm IGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAg ICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCisgICAgICAgICBGaWVsZEVsZW1lbnQuX19pbml0 X18oc2VsZiwgcGFyZW50KQorLSAgICAgICAgc2VsZi5fX2ZsZF9udW1lcmF0b3IsIHNlbGYuX19m bGRfZGVub21pbmF0b3IgPSBwYXJlbnQuYWJzb2x1dGVfcG9seW5vbWlhbF9udGwoKQorKyAgICAg ICAgc2VsZi5fZmxkX251bWVyYXRvciwgc2VsZi5fZmxkX2Rlbm9taW5hdG9yID0gcGFyZW50LmFi c29sdXRlX3BvbHlub21pYWxfbnRsKCkKKyAKKyAgICAgICAgIGNkZWYgWlpfYyBjb2VmZgorICAg ICAgICAgaWYgaXNpbnN0YW5jZShmLCAoaW50LCBJbnRlZ2VyX3NhZ2UpKToKKyAgICAgICAgICAg ICAjIHNldCBpdCB1cCBhbmQgZXhpdCBpbW1lZGlhdGVseQorICAgICAgICAgICAgICMgZmFzdCBw YXRod2F5CisgICAgICAgICAgICAgbXB6X3RvX1paKCZjb2VmZiwgKDxJbnRlZ2VyPlpaKGYpKS52 YWx1ZSkKKy0gICAgICAgICAgICBaWlhfU2V0Q29lZmYoIHNlbGYuX19udW1lcmF0b3IsIDAsIGNv ZWZmICkKKy0gICAgICAgICAgICBaWl9jb252X2Zyb21faW50KCBzZWxmLl9fZGVub21pbmF0b3Is IDEgKQorKyAgICAgICAgICAgIFpaWF9TZXRDb2VmZiggc2VsZi5fbnVtZXJhdG9yLCAwLCBjb2Vm ZiApCisrICAgICAgICAgICAgWlpfY29udl9mcm9tX2ludCggc2VsZi5fZGVub21pbmF0b3IsIDEg KQorICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGYsIE51bWJl ckZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgaWYgdHlwZShzZWxmKSBpcyB0eXBlKGYpOgor LSAgICAgICAgICAgICAgICBzZWxmLl9fbnVtZXJhdG9yID0gKDxOdW1iZXJGaWVsZEVsZW1lbnQ+ ZikuX19udW1lcmF0b3IKKy0gICAgICAgICAgICAgICAgc2VsZi5fX2Rlbm9taW5hdG9yID0gKDxO dW1iZXJGaWVsZEVsZW1lbnQ+ZikuX19kZW5vbWluYXRvcgorKyAgICAgICAgICAgICAgICBzZWxm Ll9udW1lcmF0b3IgPSAoPE51bWJlckZpZWxkRWxlbWVudD5mKS5fbnVtZXJhdG9yCisrICAgICAg ICAgICAgICAgIHNlbGYuX2Rlbm9taW5hdG9yID0gKDxOdW1iZXJGaWVsZEVsZW1lbnQ+ZikuX2Rl bm9taW5hdG9yCisgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgIGYgPSBmLnBvbHlub21pYWwoKQorQEAgLTM0MiwxMSArMzQyLDExIEBA IGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToK KyAKKyAgICAgICAgIGNkZWYgbG9uZyBpCisgICAgICAgICBkZW4gPSBmLmRlbm9taW5hdG9yKCkK Ky0gICAgICAgIG1wel90b19aWigmc2VsZi5fX2Rlbm9taW5hdG9yLCAoPEludGVnZXI+WlooZGVu KSkudmFsdWUpCisrICAgICAgICBtcHpfdG9fWlooJnNlbGYuX2Rlbm9taW5hdG9yLCAoPEludGVn ZXI+WlooZGVuKSkudmFsdWUpCisgICAgICAgICBudW0gPSBmICogZGVuCisgICAgICAgICBmb3Ig aSBmcm9tIDAgPD0gaSA8PSBudW0uZGVncmVlKCk6CisgICAgICAgICAgICAgbXB6X3RvX1paKCZj b2VmZiwgKDxJbnRlZ2VyPlpaKG51bVtpXSkpLnZhbHVlKQorLSAgICAgICAgICAgIFpaWF9TZXRD b2VmZiggc2VsZi5fX251bWVyYXRvciwgaSwgY29lZmYgKQorKyAgICAgICAgICAgIFpaWF9TZXRD b2VmZiggc2VsZi5fbnVtZXJhdG9yLCBpLCBjb2VmZiApCisgCisgICAgIGRlZiBfbGlmdF9jeWNs b3RvbWljX2VsZW1lbnQoc2VsZiwgbmV3X3BhcmVudCwgYmludCBjaGVjaz1UcnVlLCBpbnQgcmVs PTApOgorICAgICAgICAgIiIiCitAQCAtNDE3LDE3ICs0MTcsMTcgQEAgY2RlZiBjbGFzcyBOdW1i ZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgY2RlZiB0 eXBlIHQgPSB0eXBlKHNlbGYpCisgICAgICAgICBjZGVmIE51bWJlckZpZWxkRWxlbWVudCB4ID0g PE51bWJlckZpZWxkRWxlbWVudD50Ll9fbmV3X18odCkKKyAgICAgICAgIHguX3BhcmVudCA9IDxQ YXJlbnRXaXRoQmFzZT5uZXdfcGFyZW50CistICAgICAgICB4Ll9fZmxkX251bWVyYXRvciwgeC5f X2ZsZF9kZW5vbWluYXRvciA9IG5ld19wYXJlbnQucG9seW5vbWlhbF9udGwoKQorLSAgICAgICAg eC5fX2Rlbm9taW5hdG9yID0gc2VsZi5fX2Rlbm9taW5hdG9yCisrICAgICAgICB4Ll9mbGRfbnVt ZXJhdG9yLCB4Ll9mbGRfZGVub21pbmF0b3IgPSBuZXdfcGFyZW50LnBvbHlub21pYWxfbnRsKCkK KysgICAgICAgIHguX2Rlbm9taW5hdG9yID0gc2VsZi5fZGVub21pbmF0b3IKKyAgICAgICAgIGNk ZWYgWlpYX2MgcmVzdWx0CisgICAgICAgICBjZGVmIFpaX2MgdG1wCisgICAgICAgICBjZGVmIGlu dCBpCisgICAgICAgICBjZGVmIG50bF9aWlggX251bQorICAgICAgICAgY2RlZiBudGxfWlogX2Rl bgorLSAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPD0gWlpYX2RlZyhzZWxmLl9fbnVtZXJhdG9y KToKKy0gICAgICAgICAgICB0bXAgPSBaWlhfY29lZmYoc2VsZi5fX251bWVyYXRvciwgaSkKKysg ICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDw9IFpaWF9kZWcoc2VsZi5fbnVtZXJhdG9yKToKKysg ICAgICAgICAgICB0bXAgPSBaWlhfY29lZmYoc2VsZi5fbnVtZXJhdG9yLCBpKQorICAgICAgICAg ICAgIFpaWF9TZXRDb2VmZihyZXN1bHQsIGkqcmVsLCB0bXApCistICAgICAgICBaWlhfcmVtKHgu X19udW1lcmF0b3IsIHJlc3VsdCwgeC5fX2ZsZF9udW1lcmF0b3IueCkKKysgICAgICAgIFpaWF9y ZW0oeC5fbnVtZXJhdG9yLCByZXN1bHQsIHguX2ZsZF9udW1lcmF0b3IueCkKKyAgICAgICAgIHJl dHVybiB4CisgCisgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorQEAgLTg1OCw3ICs4NTgsNyBA QCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6 CisgICAgICAgICBjZGVmIGludCByZXMKKyAKKyAgICAgICAgICMgZmFzdCBlcXVhbGl0eSBjaGVj aworLSAgICAgICAgcmVzID0gbGVmdC5fX251bWVyYXRvciA9PSBfcmlnaHQuX19udW1lcmF0b3Ig YW5kIGxlZnQuX19kZW5vbWluYXRvciA9PSBfcmlnaHQuX19kZW5vbWluYXRvcgorKyAgICAgICAg cmVzID0gbGVmdC5fbnVtZXJhdG9yID09IF9yaWdodC5fbnVtZXJhdG9yIGFuZCBsZWZ0Ll9kZW5v bWluYXRvciA9PSBfcmlnaHQuX2Rlbm9taW5hdG9yCisgICAgICAgICBpZiByZXM6CisgICAgICAg ICAgICAgaWYgb3AgPT0gUHlfRVEgb3Igb3AgPT0gUHlfR0Ugb3Igb3AgPT0gUHlfTEU6CisgICAg ICAgICAgICAgICAgIHJldHVybiBUcnVlCitAQCAtODgzLDE1ICs4ODMsMTUgQEAgY2RlZiBjbGFz cyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAg aWYgUC5fZW1iZWRkZWRfcmVhbDoKKyAgICAgICAgICAgICBtcHpfaW5pdChsZCkKKyAgICAgICAg ICAgICBtcHpfaW5pdChyZCkKKy0gICAgICAgICAgICBaWl90b19tcHoobGQsICZsZWZ0Ll9fZGVu b21pbmF0b3IpCistICAgICAgICAgICAgWlpfdG9fbXB6KHJkLCAmX3JpZ2h0Ll9fZGVub21pbmF0 b3IpCisrICAgICAgICAgICAgWlpfdG9fbXB6KGxkLCAmbGVmdC5fZGVub21pbmF0b3IpCisrICAg ICAgICAgICAgWlpfdG9fbXB6KHJkLCAmX3JpZ2h0Ll9kZW5vbWluYXRvcikKKyAKKyAgICAgICAg ICAgICB2ID0gPFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudD4gUC5fZ2V0X2VtYmVkZGluZ19hcHBy b3goMCkKKyAgICAgICAgICAgICBtcGZpX2luaXQyKGxhLCBtcGZpX2dldF9wcmVjKHYudmFsdWUp KQorICAgICAgICAgICAgIG1wZmlfaW5pdDIocmEsIG1wZmlfZ2V0X3ByZWModi52YWx1ZSkpCist ICAgICAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmaShsYSwgbGVmdC5fX251bWVyYXRvciwgdi52 YWx1ZSkKKysgICAgICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZpKGxhLCBsZWZ0Ll9udW1lcmF0 b3IsIHYudmFsdWUpCisgICAgICAgICAgICAgbXBmaV9kaXZfeihsYSwgbGEsIGxkKQorLSAgICAg ICAgICAgIFpaWF9ldmFsdWF0aW9uX21wZmkocmEsIF9yaWdodC5fX251bWVyYXRvciwgdi52YWx1 ZSkKKysgICAgICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZpKHJhLCBfcmlnaHQuX251bWVyYXRv ciwgdi52YWx1ZSkKKyAgICAgICAgICAgICBtcGZpX2Rpdl96KHJhLCByYSwgcmQpCisgICAgICAg ICAgICAgd2hpbGUgbXBmcl9ncmVhdGVyZXF1YWxfcCgmbGEucmlnaHQsICZyYS5sZWZ0KSBcCisg ICAgICAgICAgICAgICAgICAgYW5kIG1wZnJfZ3JlYXRlcmVxdWFsX3AoJnJhLnJpZ2h0LCAmbGEu bGVmdCk6CitAQCAtODk5LDkgKzg5OSw5IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50 KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgICAgICAgICAgdiA9IDxSZWFsSW50 ZXJ2YWxGaWVsZEVsZW1lbnQ+IFAuX2dldF9lbWJlZGRpbmdfYXBwcm94KGkpCisgICAgICAgICAg ICAgICAgIG1wZmlfc2V0X3ByZWMobGEsIG1wZmlfZ2V0X3ByZWModi52YWx1ZSkpCisgICAgICAg ICAgICAgICAgIG1wZmlfc2V0X3ByZWMocmEsIG1wZmlfZ2V0X3ByZWModi52YWx1ZSkpCistICAg ICAgICAgICAgICAgIFpaWF9ldmFsdWF0aW9uX21wZmkobGEsIGxlZnQuX19udW1lcmF0b3IsIHYu dmFsdWUpCisrICAgICAgICAgICAgICAgIFpaWF9ldmFsdWF0aW9uX21wZmkobGEsIGxlZnQuX251 bWVyYXRvciwgdi52YWx1ZSkKKyAgICAgICAgICAgICAgICAgbXBmaV9kaXZfeihsYSwgbGEsIGxk KQorLSAgICAgICAgICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZpKHJhLCBfcmlnaHQuX19udW1l cmF0b3IsIHYudmFsdWUpCisrICAgICAgICAgICAgICAgIFpaWF9ldmFsdWF0aW9uX21wZmkocmEs IF9yaWdodC5fbnVtZXJhdG9yLCB2LnZhbHVlKQorICAgICAgICAgICAgICAgICBtcGZpX2Rpdl96 KHJhLCByYSwgcmQpCisgICAgICAgICAgICAgaWYgb3AgPT0gUHlfTFQgb3Igb3AgPT0gUHlfTEU6 CisgICAgICAgICAgICAgICAgIHJlcyA9IG1wZnJfbGVzc19wKCZsYS5yaWdodCwgJnJhLmxlZnQp CitAQCAtOTUwLDggKzk1MCw4IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJl ckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIGNkZWYgUmF0aW9uYWwgdG1wX3JhdGlvbmFs CisgCisgICAgICAgICAjIEl0IHNlZW1zIGxpa2UgYSBzaW1wbGVyIGFwcHJvYWNoIHdvdWxkIGJl IHRvIHNpbXBseSBnZW5lcmF0ZQorLSAgICAgICAgIyByYW5kb20gaW50ZWdlcnMgZm9yIGVhY2gg Y29lZmZpY2llbnQgb2Ygc2VsZi5fX251bWVyYXRvcgorLSAgICAgICAgIyBhbmQgYW4gaW50ZWdl ciBmb3Igc2VsZi5fX2Rlbm9taW5hdG9yLiBIb3dldmVyLCB0aGlzIHdvdWxkCisrICAgICAgICAj IHJhbmRvbSBpbnRlZ2VycyBmb3IgZWFjaCBjb2VmZmljaWVudCBvZiBzZWxmLl9udW1lcmF0b3IK KysgICAgICAgICMgYW5kIGFuIGludGVnZXIgZm9yIHNlbGYuX2Rlbm9taW5hdG9yLiBIb3dldmVy LCB0aGlzIHdvdWxkCisgICAgICAgICAjIGdlbmVyYXRlIHRoaW5ncyB3aXRoIGEgZmFpcmx5IGZp eGVkIHNoYXBlOiBpbiBwYXJ0aWN1bGFyLAorICAgICAgICAgIyB3ZSdkIGJlIHZlcnkgdW5saWtl bHkgdG8gZ2V0IGVsZW1lbnRzIGxpa2UgMS8zKmFeMyArIDEvNywKKyAgICAgICAgICMgb3IgYW55 dGhpbmcgd2hlcmUgdGhlIGRlbm9taW5hdG9ycyBhcmUgYWN0dWFsbHkgdW5yZWxhdGVkCitAQCAt OTY1LDE5ICs5NjUsMTkgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmll bGRFbGVtZW50X2Jhc2UpOgorIAorICAgICAgICAgICAgICMgc2V0IHRoZSBkZW5vbWluYXRvcgor ICAgICAgICAgICAgIG1wel9zZXRfc2koZGVub21fdGVtcC52YWx1ZSwgMSkKKy0gICAgICAgICAg ICBtcHpfdG9fWlooJnNlbGYuX19kZW5vbWluYXRvciwgKDxJbnRlZ2VyPmRlbm9tX3RlbXApLnZh bHVlKQorLSAgICAgICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwgWlpYX2RlZyhzZWxmLl9fZmxk X251bWVyYXRvci54KToKKysgICAgICAgICAgICBtcHpfdG9fWlooJnNlbGYuX2Rlbm9taW5hdG9y LCAoPEludGVnZXI+ZGVub21fdGVtcCkudmFsdWUpCisrICAgICAgICAgICAgZm9yIGkgZnJvbSAw IDw9IGkgPCBaWlhfZGVnKHNlbGYuX2ZsZF9udW1lcmF0b3IueCk6CisgICAgICAgICAgICAgICAg IHRtcF9pbnRlZ2VyID0gPEludGVnZXI+KFpaLnJhbmRvbV9lbGVtZW50KHg9bnVtX2JvdW5kLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3Ry aWJ1dGlvbj1kaXN0cmlidXRpb24pKQorICAgICAgICAgICAgICAgICBtcHpfdG9fWlooJm50bF90 ZW1wLCAoPEludGVnZXI+dG1wX2ludGVnZXIpLnZhbHVlKQorLSAgICAgICAgICAgICAgICBaWlhf U2V0Q29lZmYoc2VsZi5fX251bWVyYXRvciwgaSwgbnRsX3RlbXApCisrICAgICAgICAgICAgICAg IFpaWF9TZXRDb2VmZihzZWxmLl9udW1lcmF0b3IsIGksIG50bF90ZW1wKQorIAorICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICBjb2VmZl9saXN0ID0gW10KKyAgICAgICAgICAgICBtcHpfc2V0 X3NpKGRlbm9tX3RlbXAudmFsdWUsIDEpCisgICAgICAgICAgICAgdG1wX2ludGVnZXIgPSBJbnRl Z2VyLl9fbmV3X18oSW50ZWdlcikKKyAKKy0gICAgICAgICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8 IFpaWF9kZWcoc2VsZi5fX2ZsZF9udW1lcmF0b3IueCk6CisrICAgICAgICAgICAgZm9yIGkgZnJv bSAwIDw9IGkgPCBaWlhfZGVnKHNlbGYuX2ZsZF9udW1lcmF0b3IueCk6CisgICAgICAgICAgICAg ICAgIHRtcF9yYXRpb25hbCA9IDxSYXRpb25hbD4oUVEucmFuZG9tX2VsZW1lbnQobnVtX2JvdW5k PW51bV9ib3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkZW5fYm91bmQ9ZGVuX2JvdW5kLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbj1k aXN0cmlidXRpb24pKQorQEAgLTk4OSwxMCArOTg5LDEwIEBAIGNkZWYgY2xhc3MgTnVtYmVyRmll bGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgICAgICAjIHNjYWxl IHRoZSBudW1lcmF0b3JzIGFuZCBzZXQgZXZlcnl0aGluZyBhcHByb3ByaWF0ZWx5CisgCisgICAg ICAgICAgICAgIyBmaXJzdCwgdGhlIGRlbm9taW5hdG9yIChlYXN5KQorLSAgICAgICAgICAgIG1w el90b19aWigmc2VsZi5fX2Rlbm9taW5hdG9yLCAoPEludGVnZXI+ZGVub21fdGVtcCkudmFsdWUp CisrICAgICAgICAgICAgbXB6X3RvX1paKCZzZWxmLl9kZW5vbWluYXRvciwgKDxJbnRlZ2VyPmRl bm9tX3RlbXApLnZhbHVlKQorIAorICAgICAgICAgICAgICMgbm93IHRoZSBjb2VmZmljaWVudHMg dGhlbXNlbHZlcy4KKy0gICAgICAgICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8IFpaWF9kZWcoc2Vs Zi5fX2ZsZF9udW1lcmF0b3IueCk6CisrICAgICAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPCBa WlhfZGVnKHNlbGYuX2ZsZF9udW1lcmF0b3IueCk6CisgICAgICAgICAgICAgICAgICMgY2FsY3Vs YXRlIHRoZSBuZXcgbnVtZXJhdG9yLiBpZiBvdXIgb2xkIGVudHJ5IGlzCisgICAgICAgICAgICAg ICAgICMgcC9xLCBhbmQgdGhlIGxjbSBpcyBrLCBpdCdzIGp1c3QgcGsvcSwgd2hpY2ggd2UKKyAg ICAgICAgICAgICAgICAgIyBhbHNvIGtub3cgaXMgaW50ZWdyYWwgLS0gc28gd2UgY2FuIHVzZSBt cHpfZGl2ZXhhY3QKK0BAIC0xMDA2LDcgKzEwMDYsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxk RWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAgICAgICAgICMgbm93 IHNldCB0aGUgY29lZmZpY2llbnQgb2Ygc2VsZgorICAgICAgICAgICAgICAgICBtcHpfdG9fWloo Jm50bF90ZW1wLCAoPEludGVnZXI+dG1wX2ludGVnZXIpLnZhbHVlKQorIAorLSAgICAgICAgICAg ICAgICBaWlhfU2V0Q29lZmYoc2VsZi5fX251bWVyYXRvciwgaSwgbnRsX3RlbXApCisrICAgICAg ICAgICAgICAgIFpaWF9TZXRDb2VmZihzZWxmLl9udW1lcmF0b3IsIGksIG50bF90ZW1wKQorIAor ICAgICAgICAgcmV0dXJuIDAgICMgTm8gZXJyb3IKKyAKK0BAIC0xMDg5LDEwICsxMDg5LDEwIEBA IGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToK KyAgICAgICAgICAgICBzYWdlOiBMLnplcm8oKS5zaWduKCkKKyAgICAgICAgICAgICAwCisgICAg ICAgICAiIiIKKy0gICAgICAgIGlmIFpaWF9kZWcoc2VsZi5fX251bWVyYXRvcikgPT0gLTE6Cisr ICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX251bWVyYXRvcikgPT0gLTE6CisgICAgICAgICAgICAg cmV0dXJuIDAKKy0gICAgICAgIGlmIFpaWF9kZWcoc2VsZi5fX251bWVyYXRvcikgPT0gMDoKKy0g ICAgICAgICAgICByZXR1cm4gWlpfc2lnbihaWlhfY29lZmYoc2VsZi5fX251bWVyYXRvciwgMCkp CisrICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX251bWVyYXRvcikgPT0gMDoKKysgICAgICAgICAg ICByZXR1cm4gWlpfc2lnbihaWlhfY29lZmYoc2VsZi5fbnVtZXJhdG9yLCAwKSkKKyAKKyAgICAg ICAgIGlmIG5vdCAoPG51bWJlcl9maWVsZF9iYXNlLk51bWJlckZpZWxkPiBzZWxmLl9wYXJlbnQp Ll9lbWJlZGRlZF9yZWFsOgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigic2lnbiBub3Qg d2VsbCBkZWZpbmVkIHNpbmNlIG5vIHJlYWwgZW1iZWRkaW5nIGlzIHNwZWNpZmllZCIpCitAQCAt MTE1MywxMiArMTE1MywxMiBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJG aWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICBjZGVmIFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVu dCB2CisgCisgCistICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX19udW1lcmF0b3IpIDw9IDA6Cisr ICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX251bWVyYXRvcikgPD0gMDoKKyAgICAgICAgICAgICBt cHpfaW5pdChudW0pCisgICAgICAgICAgICAgbXB6X2luaXQoZGVuKQorIAorLSAgICAgICAgICAg IFpaWF9nZXRpdGVtX2FzX21weihudW0sICZzZWxmLl9fbnVtZXJhdG9yLCAwKQorLSAgICAgICAg ICAgIFpaX3RvX21weihkZW4sICZzZWxmLl9fZGVub21pbmF0b3IpCisrICAgICAgICAgICAgWlpY X2dldGl0ZW1fYXNfbXB6KG51bSwgJnNlbGYuX251bWVyYXRvciwgMCkKKysgICAgICAgICAgICBa Wl90b19tcHooZGVuLCAmc2VsZi5fZGVub21pbmF0b3IpCisgCisgICAgICAgICAgICAgYW5zID0g UFlfTkVXKEludGVnZXIpCisgICAgICAgICAgICAgbXB6X2ZkaXZfcShhbnMudmFsdWUsIG51bSwg ZGVuKQorQEAgLTExODMsOSArMTE4Myw5IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50 KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIG1wel9pbml0KGRlbikKKyAgICAg ICAgIG1wZmlfaW5pdDIoYSwgbXBmaV9nZXRfcHJlYyh2LnZhbHVlKSkKKyAKKy0gICAgICAgIFpa X3RvX21weihkZW4sICZzZWxmLl9fZGVub21pbmF0b3IpCisrICAgICAgICBaWl90b19tcHooZGVu LCAmc2VsZi5fZGVub21pbmF0b3IpCisgCistICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZpKGEs IHNlbGYuX19udW1lcmF0b3IsIHYudmFsdWUpCisrICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZp KGEsIHNlbGYuX251bWVyYXRvciwgdi52YWx1ZSkKKyAgICAgICAgIG1wZmlfZGl2X3ooYSwgYSwg ZGVuKQorIAorICAgICAgICAgbXBmcl9mbG9vcigmYS5sZWZ0LCAmYS5sZWZ0KQorQEAgLTExOTcs NyArMTE5Nyw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxl bWVudF9iYXNlKToKKyAgICAgICAgICAgICB2ID0gPFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudD4g UC5fZ2V0X2VtYmVkZGluZ19hcHByb3goaSkKKyAKKyAgICAgICAgICAgICBtcGZpX3NldF9wcmVj KGEsIG1wZmlfZ2V0X3ByZWModi52YWx1ZSkpCistICAgICAgICAgICAgWlpYX2V2YWx1YXRpb25f bXBmaShhLCBzZWxmLl9fbnVtZXJhdG9yLCB2LnZhbHVlKQorKyAgICAgICAgICAgIFpaWF9ldmFs dWF0aW9uX21wZmkoYSwgc2VsZi5fbnVtZXJhdG9yLCB2LnZhbHVlKQorICAgICAgICAgICAgIG1w ZmlfZGl2X3ooYSwgYSwgZGVuKQorICAgICAgICAgICAgIG1wZnJfZmxvb3IoJmEubGVmdCAsJmEu bGVmdCkKKyAgICAgICAgICAgICBtcGZyX2Zsb29yKCZhLnJpZ2h0LCAmYS5yaWdodCkKK0BAIC0x MjQ4LDcgKzEyNDgsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVs ZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgVHlwZUVycm9y OiBjZWlsIG5vdCB1bmlxdWVseSBkZWZpbmVkIHNpbmNlIG5vIHJlYWwgZW1iZWRkaW5nIGlzIHNw ZWNpZmllZAorICAgICAgICAgIiIiCistICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX19udW1lcmF0 b3IpIDw9IDA6CisrICAgICAgICBpZiBaWlhfZGVnKHNlbGYuX251bWVyYXRvcikgPD0gMDoKKyAg ICAgICAgICAgICByZXR1cm4gc2VsZi5fcmF0aW9uYWxfKCkuY2VpbCgpCisgCisgICAgICAgICBp ZiBub3QgKDxudW1iZXJfZmllbGRfYmFzZS5OdW1iZXJGaWVsZD4gc2VsZi5fcGFyZW50KS5fZW1i ZWRkZWRfcmVhbDoKK0BAIC0xMzExLDcgKzEzMTEsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxk RWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAgICAgLi4uCisgICAg ICAgICAgICAgVHlwZUVycm9yOiBmbG9vciBub3QgdW5pcXVlbHkgZGVmaW5lZCBzaW5jZSBubyBy ZWFsIGVtYmVkZGluZyBpcyBzcGVjaWZpZWQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgWlpY X2RlZyhzZWxmLl9fbnVtZXJhdG9yKSA8PSAwOgorKyAgICAgICAgaWYgWlpYX2RlZyhzZWxmLl9u dW1lcmF0b3IpIDw9IDA6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JhdGlvbmFsXygpLnJv dW5kKCkKKyAKKyAgICAgICAgIHJldHVybiAoc2VsZiArIFFRKCgxLDIpKSkuZmxvb3IoKQorQEAg LTI0ODMsMTcgKzI0ODMsMTcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVy RmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgY2RlZiBaWl9jIGdjZAorICAgICAgICAgY2Rl ZiBaWl9jIHQxCisgICAgICAgICBjZGVmIFpaWF9jIHQyCistICAgICAgICBpZiBaWl9Jc09uZShz ZWxmLl9fZGVub21pbmF0b3IpOgorKyAgICAgICAgaWYgWlpfSXNPbmUoc2VsZi5fZGVub21pbmF0 b3IpOgorICAgICAgICAgICAgIHJldHVybgorLSAgICAgICAgWlpYX2NvbnRlbnQodDEsIHNlbGYu X19udW1lcmF0b3IpCistICAgICAgICBaWl9HQ0QoZ2NkLCB0MSwgc2VsZi5fX2Rlbm9taW5hdG9y KQorLSAgICAgICAgaWYgWlpfc2lnbihnY2QpICE9IFpaX3NpZ24oc2VsZi5fX2Rlbm9taW5hdG9y KToKKysgICAgICAgIFpaWF9jb250ZW50KHQxLCBzZWxmLl9udW1lcmF0b3IpCisrICAgICAgICBa Wl9HQ0QoZ2NkLCB0MSwgc2VsZi5fZGVub21pbmF0b3IpCisrICAgICAgICBpZiBaWl9zaWduKGdj ZCkgIT0gWlpfc2lnbihzZWxmLl9kZW5vbWluYXRvcik6CisgICAgICAgICAgICAgWlpfbmVnYXRl KHQxLCBnY2QpCisgICAgICAgICAgICAgZ2NkID0gdDEKKy0gICAgICAgIFpaWF9kaXZfWloodDIs IHNlbGYuX19udW1lcmF0b3IsIGdjZCkKKy0gICAgICAgIFpaX2Rpdih0MSwgc2VsZi5fX2Rlbm9t aW5hdG9yLCBnY2QpCistICAgICAgICBzZWxmLl9fbnVtZXJhdG9yID0gdDIKKy0gICAgICAgIHNl bGYuX19kZW5vbWluYXRvciA9IHQxCisrICAgICAgICBaWlhfZGl2X1paKHQyLCBzZWxmLl9udW1l cmF0b3IsIGdjZCkKKysgICAgICAgIFpaX2Rpdih0MSwgc2VsZi5fZGVub21pbmF0b3IsIGdjZCkK KysgICAgICAgIHNlbGYuX251bWVyYXRvciA9IHQyCisrICAgICAgICBzZWxmLl9kZW5vbWluYXRv ciA9IHQxCisgCisgICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIHIiIiIK K0BAIC0yNTA5LDE1ICsyNTA5LDE1IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51 bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIGNkZWYgTnVtYmVyRmllbGRFbGVtZW50 IF9yaWdodCA9IHJpZ2h0CisgICAgICAgICBjZGVmIFpaX2MgZywgcTEsIHEyCisgICAgICAgICB4 ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIFpaX0dDRChnLCBzZWxmLl9fZGVub21pbmF0b3IsIF9y aWdodC5fX2Rlbm9taW5hdG9yKQorLSAgICAgICAgWlpfZGl2KHExLCBzZWxmLl9fZGVub21pbmF0 b3IsIGcpCistICAgICAgICBaWl9kaXYocTIsIF9yaWdodC5fX2Rlbm9taW5hdG9yLCBnKQorLSAg ICAgICAgWlpfbXVsKHguX19kZW5vbWluYXRvciwgcTEsIHEyKQorLSAgICAgICAgWlpfbXVsKHgu X19kZW5vbWluYXRvciwgeC5fX2Rlbm9taW5hdG9yLCBnKQorKyAgICAgICAgWlpfR0NEKGcsIHNl bGYuX2Rlbm9taW5hdG9yLCBfcmlnaHQuX2Rlbm9taW5hdG9yKQorKyAgICAgICAgWlpfZGl2KHEx LCBzZWxmLl9kZW5vbWluYXRvciwgZykKKysgICAgICAgIFpaX2RpdihxMiwgX3JpZ2h0Ll9kZW5v bWluYXRvciwgZykKKysgICAgICAgIFpaX211bCh4Ll9kZW5vbWluYXRvciwgcTEsIHEyKQorKyAg ICAgICAgWlpfbXVsKHguX2Rlbm9taW5hdG9yLCB4Ll9kZW5vbWluYXRvciwgZykKKyAgICAgICAg IGNkZWYgWlpYX2MgdDEsIHQyCistICAgICAgICBaWlhfbXVsX1paKHQxLCBzZWxmLl9fbnVtZXJh dG9yLCBxMikKKy0gICAgICAgIFpaWF9tdWxfWloodDIsIF9yaWdodC5fX251bWVyYXRvciwgcTEp CistICAgICAgICBaWlhfYWRkKHguX19udW1lcmF0b3IsIHQxLCB0MikKKysgICAgICAgIFpaWF9t dWxfWloodDEsIHNlbGYuX251bWVyYXRvciwgcTIpCisrICAgICAgICBaWlhfbXVsX1paKHQyLCBf cmlnaHQuX251bWVyYXRvciwgcTEpCisrICAgICAgICBaWlhfYWRkKHguX251bWVyYXRvciwgdDEs IHQyKQorICAgICAgICAgeC5fcmVkdWNlX2NfKCkKKyAgICAgICAgIHJldHVybiB4CisgCitAQCAt MjUzNCwxNSArMjUzNCwxNSBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJG aWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICBjZGVmIE51bWJlckZpZWxkRWxlbWVudCBfcmln aHQgPSByaWdodAorICAgICAgICAgY2RlZiBaWl9jIGcsIHExLCBxMgorICAgICAgICAgeCA9IHNl bGYuX25ldygpCistICAgICAgICBaWl9HQ0QoZywgc2VsZi5fX2Rlbm9taW5hdG9yLCBfcmlnaHQu X19kZW5vbWluYXRvcikKKy0gICAgICAgIFpaX2RpdihxMSwgc2VsZi5fX2Rlbm9taW5hdG9yLCBn KQorLSAgICAgICAgWlpfZGl2KHEyLCBfcmlnaHQuX19kZW5vbWluYXRvciwgZykKKy0gICAgICAg IFpaX211bCh4Ll9fZGVub21pbmF0b3IsIHExLCBxMikKKy0gICAgICAgIFpaX211bCh4Ll9fZGVu b21pbmF0b3IsIHguX19kZW5vbWluYXRvciwgZykKKysgICAgICAgIFpaX0dDRChnLCBzZWxmLl9k ZW5vbWluYXRvciwgX3JpZ2h0Ll9kZW5vbWluYXRvcikKKysgICAgICAgIFpaX2RpdihxMSwgc2Vs Zi5fZGVub21pbmF0b3IsIGcpCisrICAgICAgICBaWl9kaXYocTIsIF9yaWdodC5fZGVub21pbmF0 b3IsIGcpCisrICAgICAgICBaWl9tdWwoeC5fZGVub21pbmF0b3IsIHExLCBxMikKKysgICAgICAg IFpaX211bCh4Ll9kZW5vbWluYXRvciwgeC5fZGVub21pbmF0b3IsIGcpCisgICAgICAgICBjZGVm IFpaWF9jIHQxLCB0MgorLSAgICAgICAgWlpYX211bF9aWih0MSwgc2VsZi5fX251bWVyYXRvciwg cTIpCistICAgICAgICBaWlhfbXVsX1paKHQyLCBfcmlnaHQuX19udW1lcmF0b3IsIHExKQorLSAg ICAgICAgWlpYX3N1Yih4Ll9fbnVtZXJhdG9yLCB0MSwgdDIpCisrICAgICAgICBaWlhfbXVsX1pa KHQxLCBzZWxmLl9udW1lcmF0b3IsIHEyKQorKyAgICAgICAgWlpYX211bF9aWih0MiwgX3JpZ2h0 Ll9udW1lcmF0b3IsIHExKQorKyAgICAgICAgWlpYX3N1Yih4Ll9udW1lcmF0b3IsIHQxLCB0MikK KyAgICAgICAgIHguX3JlZHVjZV9jXygpCisgICAgICAgICByZXR1cm4geAorIAorQEAgLTI1NzEs MTggKzI1NzEsMTggQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRF bGVtZW50X2Jhc2UpOgorICAgICAgICAgc2lnX29uKCkKKyAgICAgICAgICMgTXVsTW9kIGRvZXNu J3QgaGFuZGxlIG5vbi1tb25pYyBwb2x5bm9taWFscy4KKyAgICAgICAgICMgVGhlcmVmb3JlLCB3 ZSBoYW5kbGUgdGhlIG5vbi1tb25pYyBjYXNlIGVudGlyZWx5IHNlcGFyYXRlbHkuCistICAgICAg ICBaWl9tdWwoeC5fX2Rlbm9taW5hdG9yLCBzZWxmLl9fZGVub21pbmF0b3IsIF9yaWdodC5fX2Rl bm9taW5hdG9yKQorLSAgICAgICAgaWYgWlpfSXNPbmUoWlpYX0xlYWRDb2VmZihzZWxmLl9fZmxk X251bWVyYXRvci54KSk6CistICAgICAgICAgICAgWlpYX011bE1vZCh4Ll9fbnVtZXJhdG9yLCBz ZWxmLl9fbnVtZXJhdG9yLCBfcmlnaHQuX19udW1lcmF0b3IsIHNlbGYuX19mbGRfbnVtZXJhdG9y LngpCisrICAgICAgICBaWl9tdWwoeC5fZGVub21pbmF0b3IsIHNlbGYuX2Rlbm9taW5hdG9yLCBf cmlnaHQuX2Rlbm9taW5hdG9yKQorKyAgICAgICAgaWYgWlpfSXNPbmUoWlpYX0xlYWRDb2VmZihz ZWxmLl9mbGRfbnVtZXJhdG9yLngpKToKKysgICAgICAgICAgICBaWlhfTXVsTW9kKHguX251bWVy YXRvciwgc2VsZi5fbnVtZXJhdG9yLCBfcmlnaHQuX251bWVyYXRvciwgc2VsZi5fZmxkX251bWVy YXRvci54KQorICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBaWlhfbXVsKHguX19udW1lcmF0 b3IsIHNlbGYuX19udW1lcmF0b3IsIF9yaWdodC5fX251bWVyYXRvcikKKy0gICAgICAgICAgICBp ZiBaWlhfZGVnKHguX19udW1lcmF0b3IpID49IFpaWF9kZWcoc2VsZi5fX2ZsZF9udW1lcmF0b3Iu eCk6CistICAgICAgICAgICAgICAgIFpaWF9tdWxfWlooIHguX19udW1lcmF0b3IsIHguX19udW1l cmF0b3IsIHNlbGYuX19mbGRfZGVub21pbmF0b3IueCApCistICAgICAgICAgICAgICAgIFpaWF9t dWxfWlooIHRlbXAsIHNlbGYuX19mbGRfbnVtZXJhdG9yLngsIHguX19kZW5vbWluYXRvciApCist ICAgICAgICAgICAgICAgIFpaX3Bvd2VyKHRlbXAxLFpaWF9MZWFkQ29lZmYodGVtcCksWlpYX2Rl Zyh4Ll9fbnVtZXJhdG9yKS1aWlhfZGVnKHNlbGYuX19mbGRfbnVtZXJhdG9yLngpKzEpCistICAg ICAgICAgICAgICAgIFpaWF9Qc2V1ZG9SZW0oeC5fX251bWVyYXRvciwgeC5fX251bWVyYXRvciwg dGVtcCkKKy0gICAgICAgICAgICAgICAgWlpfbXVsKHguX19kZW5vbWluYXRvciwgeC5fX2Rlbm9t aW5hdG9yLCBzZWxmLl9fZmxkX2Rlbm9taW5hdG9yLngpCistICAgICAgICAgICAgICAgIFpaX211 bCh4Ll9fZGVub21pbmF0b3IsIHguX19kZW5vbWluYXRvciwgdGVtcDEpCisrICAgICAgICAgICAg WlpYX211bCh4Ll9udW1lcmF0b3IsIHNlbGYuX251bWVyYXRvciwgX3JpZ2h0Ll9udW1lcmF0b3Ip CisrICAgICAgICAgICAgaWYgWlpYX2RlZyh4Ll9udW1lcmF0b3IpID49IFpaWF9kZWcoc2VsZi5f ZmxkX251bWVyYXRvci54KToKKysgICAgICAgICAgICAgICAgWlpYX211bF9aWiggeC5fbnVtZXJh dG9yLCB4Ll9udW1lcmF0b3IsIHNlbGYuX2ZsZF9kZW5vbWluYXRvci54ICkKKysgICAgICAgICAg ICAgICAgWlpYX211bF9aWiggdGVtcCwgc2VsZi5fZmxkX251bWVyYXRvci54LCB4Ll9kZW5vbWlu YXRvciApCisrICAgICAgICAgICAgICAgIFpaX3Bvd2VyKHRlbXAxLFpaWF9MZWFkQ29lZmYodGVt cCksWlpYX2RlZyh4Ll9udW1lcmF0b3IpLVpaWF9kZWcoc2VsZi5fZmxkX251bWVyYXRvci54KSsx KQorKyAgICAgICAgICAgICAgICBaWlhfUHNldWRvUmVtKHguX251bWVyYXRvciwgeC5fbnVtZXJh dG9yLCB0ZW1wKQorKyAgICAgICAgICAgICAgICBaWl9tdWwoeC5fZGVub21pbmF0b3IsIHguX2Rl bm9taW5hdG9yLCBzZWxmLl9mbGRfZGVub21pbmF0b3IueCkKKysgICAgICAgICAgICAgICAgWlpf bXVsKHguX2Rlbm9taW5hdG9yLCB4Ll9kZW5vbWluYXRvciwgdGVtcDEpCisgICAgICAgICBzaWdf b2ZmKCkKKyAgICAgICAgIHguX3JlZHVjZV9jXygpCisgICAgICAgICByZXR1cm4geAorQEAgLTI3 MDQsNyArMjcwNCw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxk RWxlbWVudF9iYXNlKToKKyAgICAgICAgICAgICBzYWdlOiBib29sKGIgKyAxKQorICAgICAgICAg ICAgIFRydWUKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIG5vdCBJc1plcm9fWlpYKHNl bGYuX19udW1lcmF0b3IpCisrICAgICAgICByZXR1cm4gbm90IElzWmVyb19aWlgoc2VsZi5fbnVt ZXJhdG9yKQorIAorICAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAgIHIiIiIKK0BAIC0y NzE3LDggKzI3MTcsOCBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVs ZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgTnVtYmVyRmllbGRF bGVtZW50IHgKKyAgICAgICAgIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAgWlpYX211bF9sb25n KHguX19udW1lcmF0b3IsIHNlbGYuX19udW1lcmF0b3IsIC0xKQorLSAgICAgICAgeC5fX2Rlbm9t aW5hdG9yID0gc2VsZi5fX2Rlbm9taW5hdG9yCisrICAgICAgICBaWlhfbXVsX2xvbmcoeC5fbnVt ZXJhdG9yLCBzZWxmLl9udW1lcmF0b3IsIC0xKQorKyAgICAgICAgeC5fZGVub21pbmF0b3IgPSBz ZWxmLl9kZW5vbWluYXRvcgorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgY3BkZWYgX2NvcHlf Zm9yX3BhcmVudChzZWxmLCBQYXJlbnQgcGFyZW50KToKK0BAIC0yNzM4LDggKzI3MzgsOCBAQCBj ZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgTnVtYmVyRmllbGRFbGVtZW50IHgKKyAgICAgICAg IHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAgeC5fX251bWVyYXRvciA9IHNlbGYuX19udW1lcmF0 b3IKKy0gICAgICAgIHguX19kZW5vbWluYXRvciA9IHNlbGYuX19kZW5vbWluYXRvcgorKyAgICAg ICAgeC5fbnVtZXJhdG9yID0gc2VsZi5fbnVtZXJhdG9yCisrICAgICAgICB4Ll9kZW5vbWluYXRv ciA9IHNlbGYuX2Rlbm9taW5hdG9yCisgICAgICAgICB4Ll9zZXRfcGFyZW50KHBhcmVudCkKKyAg ICAgICAgIHJldHVybiB4CisgCitAQCAtMjgyNiw3ICsyODI2LDcgQEAgY2RlZiBjbGFzcyBOdW1i ZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAgIHNh Z2U6IEwuPGE+ID0gSy5leHRlbnNpb24oZikKKyAgICAgICAgICAgICBzYWdlOiBhbHBoYSA9IChh XjggKyAoemV0YTIyXjkgLSB6ZXRhMjJeNiArIDIqemV0YTIyXjQgKyAzMykqYV43KS8oMTAqKjI1 NTUpICNsb25nIHRpbWUKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgSXNaZXJvX1paWChzZWxm Ll9fbnVtZXJhdG9yKToKKysgICAgICAgIGlmIElzWmVyb19aWlgoc2VsZi5fbnVtZXJhdG9yKToK KyAgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcigibnVtYmVyIGZpZWxkIGVsZW1l bnQgZGl2aXNpb24gYnkgemVybyIpCisgICAgICAgICBjZGVmIE51bWJlckZpZWxkRWxlbWVudCB4 CisgICAgICAgICBjZGVmIFpaWF9jIHRlbXAKK0BAIC0yODM1LDggKzI4MzUsOCBAQCBjZGVmIGNs YXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAg ICAgICAgIyBidXQgbWF5IGZhaWwgaWYgTlRMIHJ1bnMgb3V0IG9mIEZGVCBwcmltZXMuCisgICAg ICAgICAgICAgeCA9IHNlbGYuX25ldygpCisgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAg ICAgICBaWlhfWEdDRCh4Ll9fZGVub21pbmF0b3IsIHguX19udW1lcmF0b3IsIHRlbXAsIHNlbGYu X19udW1lcmF0b3IsIHNlbGYuX19mbGRfbnVtZXJhdG9yLngsIDEpCistICAgICAgICAgICAgWlpY X211bF9aWih4Ll9fbnVtZXJhdG9yLCB4Ll9fbnVtZXJhdG9yLCBzZWxmLl9fZGVub21pbmF0b3Ip CisrICAgICAgICAgICAgWlpYX1hHQ0QoeC5fZGVub21pbmF0b3IsIHguX251bWVyYXRvciwgdGVt cCwgc2VsZi5fbnVtZXJhdG9yLCBzZWxmLl9mbGRfbnVtZXJhdG9yLngsIDEpCisrICAgICAgICAg ICAgWlpYX211bF9aWih4Ll9udW1lcmF0b3IsIHguX251bWVyYXRvciwgc2VsZi5fZGVub21pbmF0 b3IpCisgICAgICAgICAgICAgeC5fcmVkdWNlX2NfKCkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkK KyAgICAgICAgIGV4Y2VwdCBOVExFcnJvcjoKK0BAIC0yODU4LDcgKzI4NTgsNyBAQCBjZGVmIGNs YXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAg ICAgICAgc2FnZTogKDIqSSpJKS5faW50ZWdlcl8oKQorICAgICAgICAgICAgIC0yCisgICAgICAg ICAiIiIKKy0gICAgICAgIGlmIFpaWF9kZWcoc2VsZi5fX251bWVyYXRvcikgPj0gMToKKysgICAg ICAgIGlmIFpaWF9kZWcoc2VsZi5fbnVtZXJhdG9yKSA+PSAxOgorICAgICAgICAgICAgIHJhaXNl IFR5cGVFcnJvcigiVW5hYmxlIHRvIGNvZXJjZSAlcyB0byBhbiBpbnRlZ2VyIiAlIHNlbGYpCisg ICAgICAgICByZXR1cm4gWlooc2VsZi5fcmF0aW9uYWxfKCkpCisgCitAQCAtMjg3NywxMiArMjg3 NywxMiBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRf YmFzZSk6CisgICAgICAgICAgICAgc2FnZTogKEkqSS8yKS5fcmF0aW9uYWxfKCkKKyAgICAgICAg ICAgICAtMS8yCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIFpaWF9kZWcoc2VsZi5fX251bWVy YXRvcikgPj0gMToKKysgICAgICAgIGlmIFpaWF9kZWcoc2VsZi5fbnVtZXJhdG9yKSA+PSAxOgor ICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiVW5hYmxlIHRvIGNvZXJjZSAlcyB0byBhIHJh dGlvbmFsIiVzZWxmKQorICAgICAgICAgY2RlZiBJbnRlZ2VyIG51bSA9IEludGVnZXIuX19uZXdf XyhJbnRlZ2VyKQorLSAgICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6KG51bS52YWx1ZSwgJnNlbGYu X19udW1lcmF0b3IsIDApCisrICAgICAgICBaWlhfZ2V0aXRlbV9hc19tcHoobnVtLnZhbHVlLCAm c2VsZi5fbnVtZXJhdG9yLCAwKQorICAgICAgICAgY2RlZiBJbnRlZ2VyIGRlbiA9IEludGVnZXIu X19uZXdfXyhJbnRlZ2VyKQorLSAgICAgICAgWlpfdG9fbXB6KGRlbi52YWx1ZSwgJnNlbGYuX19k ZW5vbWluYXRvcikKKysgICAgICAgIFpaX3RvX21weihkZW4udmFsdWUsICZzZWxmLl9kZW5vbWlu YXRvcikKKyAgICAgICAgIHJldHVybiBudW0gLyBkZW4KKyAKKyAgICAgZGVmIF9hbGdlYnJhaWNf KHNlbGYsIHBhcmVudCk6CitAQCAtMzI2OCwxNSArMzI2OCwxNSBAQCBjZGVmIGNsYXNzIE51bWJl ckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAgICBjZGVmIG1w el90IHoKKyAKKyAgICAgICAgIG1wel9pbml0KHopCistICAgICAgICBaWlhfZ2V0aXRlbV9hc19t cHooeiwgJnNlbGYuX19udW1lcmF0b3IsIDApCisrICAgICAgICBaWlhfZ2V0aXRlbV9hc19tcHoo eiwgJnNlbGYuX251bWVyYXRvciwgMCkKKyAgICAgICAgIGggPSBtcHpfcHl0aG9uaGFzaCh6KQor IAorLSAgICAgICAgZm9yIGkgZnJvbSAxIDw9IGkgPD0gWlpYX2RlZyhzZWxmLl9fbnVtZXJhdG9y KToKKy0gICAgICAgICAgICBaWlhfZ2V0aXRlbV9hc19tcHooeiwgJnNlbGYuX19udW1lcmF0b3Is IGkpCisrICAgICAgICBmb3IgaSBmcm9tIDEgPD0gaSA8PSBaWlhfZGVnKHNlbGYuX251bWVyYXRv cik6CisrICAgICAgICAgICAgWlpYX2dldGl0ZW1fYXNfbXB6KHosICZzZWxmLl9udW1lcmF0b3Is IGkpCisgICAgICAgICAgICAgIyBtYWdpYyBudW1iZXIgYmVsb3cgaXMgZmxvb3IoMl42MyAvICgy K3NxcnQoMikpKQorICAgICAgICAgICAgIGggXj0gbXB6X3B5dGhvbmhhc2goeikgKyAoPFB5X2hh c2hfdD4gMjcwMTQ2MzEyNDE4ODM4NDcwMSkgKyAoaCA8PCAxNikgKyAoaCA+PiAyKQorIAorLSAg ICAgICAgWlpfdG9fbXB6KHosICZzZWxmLl9fZGVub21pbmF0b3IpCisrICAgICAgICBaWl90b19t cHooeiwgJnNlbGYuX2Rlbm9taW5hdG9yKQorICAgICAgICAgIyBtYWdpYyBudW1iZXIgYmVsb3cg aXMgZmxvb3IoKDErc3FydCg1KSkgKiAyXjYxKQorICAgICAgICAgaCArPSAobXB6X3B5dGhvbmhh c2goeikgLSAxKSAqICg8UHlfaGFzaF90PiA3NDYxODY0NzIzMjU4MTg3NTI1KQorIAorQEAgLTMz MDUsMTIgKzMzMDUsMTIgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmll bGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgY2RlZiBpbnQgaQorICAgICAgICAgY2RlZiBtcHpf dCBkZW4KKyAgICAgICAgIG1wel9pbml0KGRlbikKKy0gICAgICAgIFpaX3RvX21weihkZW4sICZz ZWxmLl9fZGVub21pbmF0b3IpCistICAgICAgICBjZGVmIGludCBzaXplID0gWlpYX2RlZyhzZWxm Ll9fbnVtZXJhdG9yKSArIDEKKysgICAgICAgIFpaX3RvX21weihkZW4sICZzZWxmLl9kZW5vbWlu YXRvcikKKysgICAgICAgIGNkZWYgaW50IHNpemUgPSBaWlhfZGVnKHNlbGYuX251bWVyYXRvcikg KyAxCisgICAgICAgICBjZGVmIGxpc3QgY29lZmZzID0gW05vbmVdKnNpemUKKyAgICAgICAgIGZv ciBpIGluIHJhbmdlKHNpemUpOgorICAgICAgICAgICAgIGNvZWZmID0gUmF0aW9uYWwuX19uZXdf XyhSYXRpb25hbCkKKy0gICAgICAgICAgICBaWlhfZ2V0aXRlbV9hc19tcHoobXBxX251bXJlZihj b2VmZi52YWx1ZSksICZzZWxmLl9fbnVtZXJhdG9yLCBpKQorKyAgICAgICAgICAgIFpaWF9nZXRp dGVtX2FzX21weihtcHFfbnVtcmVmKGNvZWZmLnZhbHVlKSwgJnNlbGYuX251bWVyYXRvciwgaSkK KyAgICAgICAgICAgICBtcHpfc2V0KG1wcV9kZW5yZWYoY29lZmYudmFsdWUpLCBkZW4pCisgICAg ICAgICAgICAgbXBxX2Nhbm9uaWNhbGl6ZShjb2VmZi52YWx1ZSkKKyAgICAgICAgICAgICBjb2Vm ZnNbaV0gPSBjb2VmZgorQEAgLTMzMTgsMTQgKzMzMTgsMTQgQEAgY2RlZiBjbGFzcyBOdW1iZXJG aWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgcmV0dXJuIGNv ZWZmcworIAorICAgICBjZGVmIHZvaWQgX250bF9jb2VmZl9hc19tcHooc2VsZiwgbXB6X3Qgeiwg bG9uZyBpKToKKy0gICAgICAgIGlmIGkgPiBaWlhfZGVnKHNlbGYuX19udW1lcmF0b3IpOgorKyAg ICAgICAgaWYgaSA+IFpaWF9kZWcoc2VsZi5fbnVtZXJhdG9yKToKKyAgICAgICAgICAgICBtcHpf c2V0X3VpKHosIDApCisgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgIFpaWF9nZXRpdGVtX2Fz X21weih6LCAmc2VsZi5fX251bWVyYXRvciwgaSkKKysgICAgICAgICAgICBaWlhfZ2V0aXRlbV9h c19tcHooeiwgJnNlbGYuX251bWVyYXRvciwgaSkKKyAKKyAgICAgY2RlZiB2b2lkIF9udGxfZGVu b21fYXNfbXB6KHNlbGYsIG1wel90IHopOgorICAgICAgICAgY2RlZiBJbnRlZ2VyIGRlbm9tID0g SW50ZWdlci5fX25ld19fKEludGVnZXIpCistICAgICAgICBaWl90b19tcHooZGVub20udmFsdWUs ICZzZWxmLl9fZGVub21pbmF0b3IpCisrICAgICAgICBaWl90b19tcHooZGVub20udmFsdWUsICZz ZWxmLl9kZW5vbWluYXRvcikKKyAgICAgICAgIG1wel9zZXQoeiwgZGVub20udmFsdWUpCisgCisg ICAgIGRlZiBkZW5vbWluYXRvcihzZWxmKToKK0BAIC0zMzQ0LDcgKzMzNDQsNyBAQCBjZGVmIGNs YXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAgICAg ICAgICAgMTUKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBJbnRlZ2VyIGFucyA9IEludGVn ZXIuX19uZXdfXyhJbnRlZ2VyKQorLSAgICAgICAgWlpfdG9fbXB6KGFucy52YWx1ZSwgJnNlbGYu X19kZW5vbWluYXRvcikKKysgICAgICAgIFpaX3RvX21weihhbnMudmFsdWUsICZzZWxmLl9kZW5v bWluYXRvcikKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgZGVmIF9zZXRfbXVsdGlwbGlj YXRpdmVfb3JkZXIoc2VsZiwgbik6CitAQCAtMzQ3NCw4ICszNDc0LDggQEAgY2RlZiBjbGFzcyBO dW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAgICAgICAg IHNhZ2U6IGEuaXNfb25lKCkKKyAgICAgICAgICAgICBGYWxzZQorICAgICAgICAgIiIiCistICAg ICAgICByZXR1cm4gWlpYX0lzT25lKHNlbGYuX19udW1lcmF0b3IpID09IDEgYW5kIFwKKy0gICAg ICAgICAgICAgICBaWl9Jc09uZShzZWxmLl9fZGVub21pbmF0b3IpID09IDEKKysgICAgICAgIHJl dHVybiBaWlhfSXNPbmUoc2VsZi5fbnVtZXJhdG9yKSA9PSAxIGFuZCBcCisrICAgICAgICAgICAg ICAgWlpfSXNPbmUoc2VsZi5fZGVub21pbmF0b3IpID09IDEKKyAKKyAgICAgY3BkZWYgYmludCBp c19yYXRpb25hbChzZWxmKToKKyAgICAgICAgIHIiIiIKK0BAIC0zNTAxLDcgKzM1MDEsNyBAQCBj ZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6Cisg ICAgICAgICAgICAgc2FnZTogSygxLzIpLmlzX3JhdGlvbmFsKCkKKyAgICAgICAgICAgICBUcnVl CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBaWlhfZGVnKHNlbGYuX19udW1lcmF0b3Ip IDw9IDAKKysgICAgICAgIHJldHVybiBaWlhfZGVnKHNlbGYuX251bWVyYXRvcikgPD0gMAorIAor ICAgICBkZWYgaXNfaW50ZWdlcihzZWxmKToKKyAgICAgICAgIHIiIiIKK0BAIC0zNTI3LDcgKzM1 MjcsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRf YmFzZSk6CisgICAgICAgICAgICAgc2FnZTogSygxLzIpLmlzX2ludGVnZXIoKQorICAgICAgICAg ICAgIEZhbHNlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBaWlhfZGVnKHNlbGYuX19u dW1lcmF0b3IpIDw9IDAgYW5kIFpaX0lzT25lKHNlbGYuX19kZW5vbWluYXRvcikgPT0gMQorKyAg ICAgICAgcmV0dXJuIFpaWF9kZWcoc2VsZi5fbnVtZXJhdG9yKSA8PSAwIGFuZCBaWl9Jc09uZShz ZWxmLl9kZW5vbWluYXRvcikgPT0gMQorIAorICAgICBkZWYgdHJhY2Uoc2VsZiwgSz1Ob25lKToK KyAgICAgICAgIHIiIiIKK0BAIC01MzIyLDggKzUzMjIsOCBAQCBjZGVmIGNsYXNzIE9yZGVyRWxl bWVudF9hYnNvbHV0ZShOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUpOgorICAgICAgICAgY2Rl ZiBPcmRlckVsZW1lbnRfYWJzb2x1dGUgeCA9IDxPcmRlckVsZW1lbnRfYWJzb2x1dGU+dC5fX25l d19fKHQpCisgICAgICAgICB4Ll9wYXJlbnQgPSBzZWxmLl9wYXJlbnQKKyAgICAgICAgIHguX251 bWJlcl9maWVsZCA9IHNlbGYuX3BhcmVudC5udW1iZXJfZmllbGQoKQorLSAgICAgICAgeC5fX2Zs ZF9udW1lcmF0b3IgPSBzZWxmLl9fZmxkX251bWVyYXRvcgorLSAgICAgICAgeC5fX2ZsZF9kZW5v bWluYXRvciA9IHNlbGYuX19mbGRfZGVub21pbmF0b3IKKysgICAgICAgIHguX2ZsZF9udW1lcmF0 b3IgPSBzZWxmLl9mbGRfbnVtZXJhdG9yCisrICAgICAgICB4Ll9mbGRfZGVub21pbmF0b3IgPSBz ZWxmLl9mbGRfZGVub21pbmF0b3IKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGNkZWYgbnVt YmVyX2ZpZWxkKHNlbGYpOgorQEAgLTU0NDMsOCArNTQ0Myw4IEBAIGNkZWYgY2xhc3MgT3JkZXJF bGVtZW50X3JlbGF0aXZlKE51bWJlckZpZWxkRWxlbWVudF9yZWxhdGl2ZSk6CisgICAgICAgICBj ZGVmIE9yZGVyRWxlbWVudF9yZWxhdGl2ZSB4ID0gPE9yZGVyRWxlbWVudF9yZWxhdGl2ZT50Ll9f bmV3X18odCkKKyAgICAgICAgIHguX3BhcmVudCA9IHNlbGYuX3BhcmVudAorICAgICAgICAgeC5f bnVtYmVyX2ZpZWxkID0gc2VsZi5fcGFyZW50Lm51bWJlcl9maWVsZCgpCistICAgICAgICB4Ll9f ZmxkX251bWVyYXRvciA9IHNlbGYuX19mbGRfbnVtZXJhdG9yCistICAgICAgICB4Ll9fZmxkX2Rl bm9taW5hdG9yID0gc2VsZi5fX2ZsZF9kZW5vbWluYXRvcgorKyAgICAgICAgeC5fZmxkX251bWVy YXRvciA9IHNlbGYuX2ZsZF9udW1lcmF0b3IKKysgICAgICAgIHguX2ZsZF9kZW5vbWluYXRvciA9 IHNlbGYuX2ZsZF9kZW5vbWluYXRvcgorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgZGVmIF9f aW52ZXJ0X18oc2VsZik6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxk L251bWJlcl9maWVsZF9lbGVtZW50X3F1YWRyYXRpYy5weXggYi9zcmMvc2FnZS9yaW5ncy9udW1i ZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnRfcXVhZHJhdGljLnB5eAoraW5kZXggMDk5MmU3 Y2Q1MjcuLmMzMmY2YWFkZDEwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2Zp ZWxkL251bWJlcl9maWVsZF9lbGVtZW50X3F1YWRyYXRpYy5weXgKKysrKyBiL3NyYy9zYWdlL3Jp bmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfZWxlbWVudF9xdWFkcmF0aWMucHl4CitAQCAt NjEwLDggKzYxMCw4IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyhO dW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUpOgorICAgICAgICAgbXB6X2NsZWFyKHRtcF9tcHop CisgCisgICAgICAgICB4Ll9wYXJlbnQgPSA8UGFyZW50V2l0aEJhc2U+bmV3X3BhcmVudAorLSAg ICAgICAgeC5fX2ZsZF9udW1lcmF0b3IsIHguX19mbGRfZGVub21pbmF0b3IgPSBuZXdfcGFyZW50 LnBvbHlub21pYWxfbnRsKCkKKy0gICAgICAgIHguX19kZW5vbWluYXRvciA9IGVsdF9kZW4KKysg ICAgICAgIHguX2ZsZF9udW1lcmF0b3IsIHguX2ZsZF9kZW5vbWluYXRvciA9IG5ld19wYXJlbnQu cG9seW5vbWlhbF9udGwoKQorKyAgICAgICAgeC5fZGVub21pbmF0b3IgPSBlbHRfZGVuCisgICAg ICAgICBjZGVmIFpaWF9jIHJlc3VsdAorICAgICAgICAgY2RlZiBaWl9jIHRtcAorICAgICAgICAg Y2RlZiBpbnQgaQorQEAgLTYyMSw3ICs2MjEsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxl bWVudF9xdWFkcmF0aWMoTnVtYmVyRmllbGRFbGVtZW50X2Fic29sdXRlKToKKyAgICAgICAgIGZv ciBpIGZyb20gMCA8PSBpIDw9IFpaWF9kZWcoZWx0X251bSk6CisgICAgICAgICAgICAgdG1wID0g WlpYX2NvZWZmKGVsdF9udW0sIGkpCisgICAgICAgICAgICAgWlpYX1NldENvZWZmKHJlc3VsdCwg aSpyZWwsIHRtcCkKKy0gICAgICAgIFpaWF9yZW0oeC5fX251bWVyYXRvciwgcmVzdWx0LCBfbnVt LngpCisrICAgICAgICBaWlhfcmVtKHguX251bWVyYXRvciwgcmVzdWx0LCBfbnVtLngpCisgICAg ICAgICAoPE51bWJlckZpZWxkRWxlbWVudF9hYnNvbHV0ZT54KS5fcmVkdWNlX2NfKCkKKyAgICAg ICAgIHJldHVybiB4CisgCitAQCAtMTY0Myw3ICsxNjQzLDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJG aWVsZEVsZW1lbnRfcXVhZHJhdGljKE51bWJlckZpZWxkRWxlbWVudF9hYnNvbHV0ZSk6CisgICAg ICAgICByZXR1cm4gcmVzCisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCistIyBXZSBtdXN0 IG92ZXJyaWRlIGV2ZXJ5dGhpbmcgdGhhdCBtYWtlcyB1c2VzIG9mIHNlbGYuX19udW1lcmF0b3Iv X19kZW5vbWluYXRvcgorKyMgV2UgbXVzdCBvdmVycmlkZSBldmVyeXRoaW5nIHRoYXQgbWFrZXMg dXNlcyBvZiBzZWxmLl9udW1lcmF0b3IvX2Rlbm9taW5hdG9yCisgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisgCisgICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wYWRpY3MvQ0FfdGVtcGxhdGUucHhpIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NB X3RlbXBsYXRlLnB4aQoraW5kZXggYTBhNjZjMTk2MjEuLmQ4MjFiNWMxNTc2IDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NBX3RlbXBsYXRlLnB4aQorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcGFkaWNzL0NBX3RlbXBsYXRlLnB4aQorQEAgLTE0NjMsNyArMTQ2Myw3IEBAIGNkZWYg Y2xhc3MgcEFkaWNDb2VyY2lvbl9DQV9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAg ICAgICAgSUYgQ0VMRU1FTlRfSVNfUFlfT0JKRUNUOgorICAgICAgICAgICAgICMgVGhlIGJhc2Ug cmluZyBpcyB3cm9uZywgc28gd2UgZml4IGl0LgorICAgICAgICAgICAgIEsgPSBhbnMudW5pdC5i YXNlX3JpbmcoKQorLSAgICAgICAgICAgIGFucy51bml0Ll9fY29lZmZzID0gW0soYykgZm9yIGMg aW4gYW5zLnVuaXQuX19jb2VmZnNdCisrICAgICAgICAgICAgYW5zLnVuaXQuX2NvZWZmcyA9IFtL KGMpIGZvciBjIGluIGFucy51bml0Ll9jb2VmZnNdCisgICAgICAgICBhbnMuX25vcm1hbGl6ZSgp CisgICAgICAgICByZXR1cm4gYW5zCisgCitAQCAtMTUxNiw3ICsxNTE2LDcgQEAgY2RlZiBjbGFz cyBwQWRpY0NvZXJjaW9uX0NBX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAg ICAgICAgSUYgQ0VMRU1FTlRfSVNfUFlfT0JKRUNUOgorICAgICAgICAgICAgICAgICAjIFRoZSBi YXNlIHJpbmcgaXMgd3JvbmcsIHNvIHdlIGZpeCBpdC4KKyAgICAgICAgICAgICAgICAgSyA9IGFu cy51bml0LmJhc2VfcmluZygpCistICAgICAgICAgICAgICAgIGFucy51bml0Ll9fY29lZmZzID0g W0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX19jb2VmZnNdCisrICAgICAgICAgICAgICAgIGFucy51 bml0Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29lZmZzXQorICAgICAgICAg ICAgIHBhc3MKKyAgICAgICAgIHJldHVybiBhbnMKKyAKK0BAIC0xNjg2LDcgKzE2ODYsNyBAQCBj ZGVmIGNsYXNzIHBBZGljQ29udmVydF9DQV9mcmFjX2ZpZWxkKE1vcnBoaXNtKToKKyAgICAgICAg ICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgICAgICMgVGhlIGJh c2UgcmluZyBpcyB3cm9uZywgc28gd2UgZml4IGl0LgorICAgICAgICAgICAgICAgICBSID0gYW5z LnZhbHVlLmJhc2VfcmluZygpCistICAgICAgICAgICAgICAgIGFucy52YWx1ZS5fX2NvZWZmcyA9 IFtSKGMpIGZvciBjIGluIGFucy52YWx1ZS5fX2NvZWZmc10KKysgICAgICAgICAgICAgICAgYW5z LnZhbHVlLl9jb2VmZnMgPSBbUihjKSBmb3IgYyBpbiBhbnMudmFsdWUuX2NvZWZmc10KKyAgICAg ICAgIHJldHVybiBhbnMKKyAKKyAgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2Vs ZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pOgorQEAgLTE3NDEsNyArMTc0MSw3IEBAIGNkZWYgY2xh c3MgcEFkaWNDb252ZXJ0X0NBX2ZyYWNfZmllbGQoTW9ycGhpc20pOgorICAgICAgICAgICAgIElG IENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5n IGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgICAgIFIgPSBhbnMudmFsdWUu YmFzZV9yaW5nKCkKKy0gICAgICAgICAgICAgICAgYW5zLnZhbHVlLl9fY29lZmZzID0gW1IoYykg Zm9yIGMgaW4gYW5zLnZhbHVlLl9fY29lZmZzXQorKyAgICAgICAgICAgICAgICBhbnMudmFsdWUu X2NvZWZmcyA9IFtSKGMpIGZvciBjIGluIGFucy52YWx1ZS5fY29lZmZzXQorICAgICAgICAgcmV0 dXJuIGFucworIAorICAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9DUl90ZW1wbGF0ZS5weGkgYi9zcmMvc2FnZS9yaW5n cy9wYWRpY3MvQ1JfdGVtcGxhdGUucHhpCitpbmRleCBjYjU3YmIyY2I0OC4uODYzYzYxMjU4N2Mg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvQ1JfdGVtcGxhdGUucHhpCisrKysg Yi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvQ1JfdGVtcGxhdGUucHhpCitAQCAtMjE4NCw3ICsyMTg0 LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX0NSX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3Jw aGlzbSk6CisgICAgICAgICBJRiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAg IyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgSyA9 IGFucy51bml0LmJhc2VfcmluZygpCistICAgICAgICAgICAgYW5zLnVuaXQuX19jb2VmZnMgPSBb SyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fX2NvZWZmc10KKysgICAgICAgICAgICBhbnMudW5pdC5f Y29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVy biBhbnMKKyAKKyAgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFy Z3M9KCksIGt3ZHM9e30pOgorQEAgLTIyNDEsNyArMjI0MSw3IEBAIGNkZWYgY2xhc3MgcEFkaWND b2VyY2lvbl9DUl9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgICAgIElG IENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5n IGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgICAgIEsgPSBhbnMudW5pdC5i YXNlX3JpbmcoKQorLSAgICAgICAgICAgICAgICBhbnMudW5pdC5fX2NvZWZmcyA9IFtLKGMpIGZv ciBjIGluIGFucy51bml0Ll9fY29lZmZzXQorKyAgICAgICAgICAgICAgICBhbnMudW5pdC5fY29l ZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBh bnMKKyAKKyAgICAgZGVmIHNlY3Rpb24oc2VsZik6CitAQCAtMjQwNCw3ICsyNDA0LDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY0NvbnZlcnRfQ1JfZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICBJ RiBDRUxFTUVOVF9JU19QWV9PQkpFQ1Q6CisgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlz IHdyb25nLCBzbyB3ZSBmaXggaXQuCisgICAgICAgICAgICAgSyA9IGFucy51bml0LmJhc2Vfcmlu ZygpCistICAgICAgICAgICAgYW5zLnVuaXQuX19jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMu dW5pdC5fX2NvZWZmc10KKysgICAgICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9y IGMgaW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgY3Bk ZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pOgor QEAgLTI0NjMsNyArMjQ2Myw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0NSX2ZyYWNfZmll bGQoTW9ycGhpc20pOgorICAgICAgICAgICAgIElGIENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAg ICAgICAgICAgICAgICAgIyBUaGUgYmFzZSByaW5nIGlzIHdyb25nLCBzbyB3ZSBmaXggaXQuCisg ICAgICAgICAgICAgICAgIEsgPSBhbnMudW5pdC5iYXNlX3JpbmcoKQorLSAgICAgICAgICAgICAg ICBhbnMudW5pdC5fX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9fY29lZmZzXQor KyAgICAgICAgICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVu aXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgY2RlZiBkaWN0IF9leHRy YV9zbG90cyhzZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRk1fdGVt cGxhdGUucHhpIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0ZNX3RlbXBsYXRlLnB4aQoraW5kZXgg ZWE3ZDQwNTU2NjAuLmY0NzIwMDA3NGVhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFk aWNzL0ZNX3RlbXBsYXRlLnB4aQorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0ZNX3RlbXBs YXRlLnB4aQorQEAgLTEyMjcsNyArMTIyNyw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9G TV9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgSUYgQ0VMRU1FTlRfSVNf UFlfT0JKRUNUOgorICAgICAgICAgICAgICMgVGhlIGJhc2UgcmluZyBpcyB3cm9uZywgc28gd2Ug Zml4IGl0LgorICAgICAgICAgICAgIEsgPSBhbnMudW5pdC5iYXNlX3JpbmcoKQorLSAgICAgICAg ICAgIGFucy51bml0Ll9fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX19jb2VmZnNd CisrICAgICAgICAgICAgYW5zLnVuaXQuX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0 Ll9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGNwZGVmIEVsZW1lbnQgX2Nh bGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KToKK0BAIC0xMjc3LDcgKzEy NzcsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fRk1fZnJhY19maWVsZChSaW5nSG9tb21v cnBoaXNtKToKKyAgICAgICAgIElGIENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAgICAg ICAjIFRoZSBiYXNlIHJpbmcgaXMgd3JvbmcsIHNvIHdlIGZpeCBpdC4KKyAgICAgICAgICAgICBL ID0gYW5zLnVuaXQuYmFzZV9yaW5nKCkKKy0gICAgICAgICAgICBhbnMudW5pdC5fX2NvZWZmcyA9 IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9fY29lZmZzXQorKyAgICAgICAgICAgIGFucy51bml0 Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29lZmZzXQorICAgICAgICAgcmV0 dXJuIGFucworIAorICAgICBkZWYgc2VjdGlvbihzZWxmKToKK0BAIC0xNDM1LDcgKzE0MzUsNyBA QCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9GTV9mcmFjX2ZpZWxkKE1vcnBoaXNtKToKKyAgICAg ICAgIElGIENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAgICAgICAjIFRoZSBiYXNlIHJp bmcgaXMgd3JvbmcsIHNvIHdlIGZpeCBpdC4KKyAgICAgICAgICAgICBSID0gYW5zLnZhbHVlLmJh c2VfcmluZygpCistICAgICAgICAgICAgYW5zLnZhbHVlLl9fY29lZmZzID0gW1IoYykgZm9yIGMg aW4gYW5zLnZhbHVlLl9fY29lZmZzXQorKyAgICAgICAgICAgIGFucy52YWx1ZS5fY29lZmZzID0g W1IoYykgZm9yIGMgaW4gYW5zLnZhbHVlLl9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisg CisgICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBr d2RzPXt9KToKK0BAIC0xNDgzLDcgKzE0ODMsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9G TV9mcmFjX2ZpZWxkKE1vcnBoaXNtKToKKyAgICAgICAgIElGIENFTEVNRU5UX0lTX1BZX09CSkVD VDoKKyAgICAgICAgICAgICAjIFRoZSBiYXNlIHJpbmcgaXMgd3JvbmcsIHNvIHdlIGZpeCBpdC4K KyAgICAgICAgICAgICBSID0gYW5zLnZhbHVlLmJhc2VfcmluZygpCistICAgICAgICAgICAgYW5z LnZhbHVlLl9fY29lZmZzID0gW1IoYykgZm9yIGMgaW4gYW5zLnZhbHVlLl9fY29lZmZzXQorKyAg ICAgICAgICAgIGFucy52YWx1ZS5fY29lZmZzID0gW1IoYykgZm9yIGMgaW4gYW5zLnZhbHVlLl9j b2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCisgICAgIGNkZWYgZGljdCBfZXh0cmFfc2xv dHMoc2VsZik6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0ZQX3RlbXBsYXRl LnB4aSBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9GUF90ZW1wbGF0ZS5weGkKK2luZGV4IDU3ZWM2 MTliMjc4Li5jNzE4YzBhNWY4ZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9G UF90ZW1wbGF0ZS5weGkKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9GUF90ZW1wbGF0ZS5w eGkKK0BAIC0xODQ5LDcgKzE4NDksNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fRlBfZnJh Y19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIElGIENFTEVNRU5UX0lTX1BZX09C SkVDVDoKKyAgICAgICAgICAgICAjIFRoZSBiYXNlIHJpbmcgaXMgd3JvbmcsIHNvIHdlIGZpeCBp dC4KKyAgICAgICAgICAgICBLID0gYW5zLnVuaXQuYmFzZV9yaW5nKCkKKy0gICAgICAgICAgICBh bnMudW5pdC5fX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9fY29lZmZzXQorKyAg ICAgICAgICAgIGFucy51bml0Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29l ZmZzXQorICAgICAgICAgcmV0dXJuIGFucworIAorICAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dp dGhfYXJncyhzZWxmLCBfeCwgYXJncz0oKSwga3dkcz17fSk6CitAQCAtMTkwMyw3ICsxOTAzLDcg QEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX0ZQX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3JwaGlz bSk6CisgICAgICAgICAgICAgSUYgQ0VMRU1FTlRfSVNfUFlfT0JKRUNUOgorICAgICAgICAgICAg ICAgICAjIFRoZSBiYXNlIHJpbmcgaXMgd3JvbmcsIHNvIHdlIGZpeCBpdC4KKyAgICAgICAgICAg ICAgICAgSyA9IGFucy51bml0LmJhc2VfcmluZygpCistICAgICAgICAgICAgICAgIGFucy51bml0 Ll9fY29lZmZzID0gW0soYykgZm9yIGMgaW4gYW5zLnVuaXQuX19jb2VmZnNdCisrICAgICAgICAg ICAgICAgIGFucy51bml0Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29lZmZz XQorICAgICAgICAgcmV0dXJuIGFucworIAorICAgICBkZWYgc2VjdGlvbihzZWxmKToKK0BAIC0y MDI1LDcgKzIwMjUsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9GUF9mcmFjX2ZpZWxkKE1v cnBoaXNtKToKKyAgICAgICAgIElGIENFTEVNRU5UX0lTX1BZX09CSkVDVDoKKyAgICAgICAgICAg ICAjIFRoZSBiYXNlIHJpbmcgaXMgd3JvbmcsIHNvIHdlIGZpeCBpdC4KKyAgICAgICAgICAgICBL ID0gYW5zLnVuaXQuYmFzZV9yaW5nKCkKKy0gICAgICAgICAgICBhbnMudW5pdC5fX2NvZWZmcyA9 IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9fY29lZmZzXQorKyAgICAgICAgICAgIGFucy51bml0 Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29lZmZzXQorICAgICAgICAgcmV0 dXJuIGFucworIAorICAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwg YXJncz0oKSwga3dkcz17fSk6CitAQCAtMjA4MSw3ICsyMDgxLDcgQEAgY2RlZiBjbGFzcyBwQWRp Y0NvbnZlcnRfRlBfZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICAgICAgSUYgQ0VMRU1F TlRfSVNfUFlfT0JKRUNUOgorICAgICAgICAgICAgICAgICAjIFRoZSBiYXNlIHJpbmcgaXMgd3Jv bmcsIHNvIHdlIGZpeCBpdC4KKyAgICAgICAgICAgICAgICAgSyA9IGFucy51bml0LmJhc2Vfcmlu ZygpCistICAgICAgICAgICAgICAgIGFucy51bml0Ll9fY29lZmZzID0gW0soYykgZm9yIGMgaW4g YW5zLnVuaXQuX19jb2VmZnNdCisrICAgICAgICAgICAgICAgIGFucy51bml0Ll9jb2VmZnMgPSBb SyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29lZmZzXQorICAgICAgICAgcmV0dXJuIGFucworIAor ICAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXIucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bv d19jb21wdXRlci5weGQKK2luZGV4IDJhOTNlNDIyNTRlLi44NzY2NzI1ODgyZSAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXIucHhkCisrKysgYi9zcmMvc2Fn ZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyLnB4ZAorQEAgLTYsNyArNiw3IEBAIGNkZWYgY2xh c3MgUG93Q29tcHV0ZXJfY2xhc3MoU2FnZU9iamVjdCk6CisgICAgIGNkZWYgSW50ZWdlciBwcmlt ZQorICAgICBjZGVmIEludGVnZXIgcDIgIyBmbG9vcihwLzIpCisgICAgIGNkZWYgYmludCBpbl9m aWVsZAorLSAgICBjZGVmIGludCBfX2FsbG9jYXRlZAorKyAgICBjZGVmIGludCBfYWxsb2NhdGVk CisgICAgIGNkZWYgcHVibGljIG9iamVjdCBfcHJlY190eXBlCisgCisgICAgIGNkZWYgbG9uZyBy YW1fcHJlY19jYXAgIyA9IHByZWNfY2FwICogZQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Jpbmdz L3BhZGljcy9wb3dfY29tcHV0ZXIucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21w dXRlci5weXgKK2luZGV4IGMyZmE4MDMxMDg2Li4xYzViZGY4Njg5NyAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXIucHl4CisrKysgYi9zcmMvc2FnZS9yaW5n cy9wYWRpY3MvcG93X2NvbXB1dGVyLnB5eAorQEAgLTY1LDcgKzY1LDcgQEAgY2RlZiBjbGFzcyBQ b3dDb21wdXRlcl9jbGFzcyhTYWdlT2JqZWN0KToKKyAgICAgICAgIHNpZ19vbigpCisgICAgICAg ICBtcHpfaW5pdChzZWxmLnRlbXBfbSkKKyAgICAgICAgIHNpZ19vZmYoKQorLSAgICAgICAgc2Vs Zi5fX2FsbG9jYXRlZCA9IDEKKysgICAgICAgIHNlbGYuX2FsbG9jYXRlZCA9IDEKKyAKKyAgICAg ZGVmIF9faW5pdF9fKHNlbGYsIEludGVnZXIgcHJpbWUsIGxvbmcgY2FjaGVfbGltaXQsIGxvbmcg cHJlY19jYXAsIGxvbmcgcmFtX3ByZWNfY2FwLCBiaW50IGluX2ZpZWxkLCBwb2x5PU5vbmUsIHNo aWZ0X3NlZWQ9Tm9uZSk6CisgICAgICAgICAiIiIKK0BAIC00ODUsNyArNDg1LDcgQEAgY2RlZiBj bGFzcyBQb3dDb21wdXRlcl9iYXNlKFBvd0NvbXB1dGVyX2NsYXNzKToKKyAgICAgICAgIGZpbmFs bHk6CisgICAgICAgICAgICAgc2lnX29mZigpCisgCistICAgICAgICBzZWxmLl9fYWxsb2NhdGVk ID0gMgorKyAgICAgICAgc2VsZi5fYWxsb2NhdGVkID0gMgorIAorICAgICBkZWYgX19pbml0X18o c2VsZiwgSW50ZWdlciBwcmltZSwgbG9uZyBjYWNoZV9saW1pdCwgbG9uZyBwcmVjX2NhcCwgbG9u ZyByYW1fcHJlY19jYXAsIGJpbnQgaW5fZmllbGQsIHBvbHk9Tm9uZSwgc2hpZnRfc2VlZD1Ob25l KToKKyAgICAgICAgICIiIgorQEAgLTUyOSw3ICs1MjksNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1 dGVyX2Jhc2UoUG93Q29tcHV0ZXJfY2xhc3MpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVm IFB5X3NzaXplX3QgaQorIAorLSAgICAgICAgaWYgc2VsZi5fX2FsbG9jYXRlZCA+PSAyOgorKyAg ICAgICAgaWYgc2VsZi5fYWxsb2NhdGVkID49IDI6CisgICAgICAgICAgICAgZm9yIGkgaW4gcmFu Z2Uoc2VsZi5jYWNoZV9saW1pdCArIDEpOgorICAgICAgICAgICAgICAgICBtcHpfY2xlYXIoc2Vs Zi5zbWFsbF9wb3dlcnNbaV0pCisgICAgICAgICAgICAgbXB6X2NsZWFyKHNlbGYudG9wX3Bvd2Vy KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfZmxpbnQu cHl4IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9mbGludC5weXgKK2luZGV4 IDlmOTE0ZGVmY2M2Li5lNTIxZWE2ZTA3OCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3Bh ZGljcy9wb3dfY29tcHV0ZXJfZmxpbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3Mv cG93X2NvbXB1dGVyX2ZsaW50LnB5eAorQEAgLTU5LDcgKzU5LDcgQEAgY2RlZiBjbGFzcyBQb3dD b21wdXRlcl9mbGludChQb3dDb21wdXRlcl9jbGFzcyk6CisgICAgICAgICBmaW5hbGx5OgorICAg ICAgICAgICAgIHNpZ19vZmYoKQorIAorLSAgICAgICAgc2VsZi5fX2FsbG9jYXRlZCA9IDQKKysg ICAgICAgIHNlbGYuX2FsbG9jYXRlZCA9IDQKKyAKKyAgICAgZGVmIF9faW5pdF9fKHNlbGYsIElu dGVnZXIgcHJpbWUsIGxvbmcgY2FjaGVfbGltaXQsIGxvbmcgcHJlY19jYXAsIGxvbmcgcmFtX3By ZWNfY2FwLCBiaW50IGluX2ZpZWxkLCBwb2x5PU5vbmUsIHNoaWZ0X3NlZWQ9Tm9uZSk6CisgICAg ICAgICAiIiIKK0BAIC04Nyw3ICs4Nyw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnQo UG93Q29tcHV0ZXJfY2xhc3MpOgorICAgICAgICAgICAgIHNhZ2U6IEEgPSBQb3dDb21wdXRlcl9m bGludCg1LCAyMCwgMjAsIDIwLCBGYWxzZSkKKyAgICAgICAgICAgICBzYWdlOiBkZWwgQQorICAg ICAgICAgIiIiCistICAgICAgICBpZiBzZWxmLl9fYWxsb2NhdGVkID49IDQ6CisrICAgICAgICBp ZiBzZWxmLl9hbGxvY2F0ZWQgPj0gNDoKKyAgICAgICAgICAgICBmbXB6X2NsZWFyKHNlbGYuZnBy aW1lKQorICAgICAgICAgICAgIGZtcHpfY2xlYXIoc2VsZi5oYWxmX3ByaW1lKQorICAgICAgICAg ICAgIGZtcHpfY2xlYXIoc2VsZi5fZnBvd192YXJpYWJsZSkKK0BAIC0yMDgsNyArMjA4LDcgQEAg Y2RlZiBjbGFzcyBQb3dDb21wdXRlcl9mbGludF8xc3RlcChQb3dDb21wdXRlcl9mbGludCk6Cisg CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2Zs aW50IHBvbHkgPSBfcG9seQorLSAgICAgICAgY2RlZiBsb25nIGxlbmd0aCA9IGZtcHpfcG9seV9s ZW5ndGgocG9seS5fX3BvbHkpCisrICAgICAgICBjZGVmIGxvbmcgbGVuZ3RoID0gZm1wel9wb2x5 X2xlbmd0aChwb2x5Ll9wb2x5KQorIAorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGkKKyAKK0BA IC0yNTEsNyArMjUxLDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9mbGludF8xc3RlcChQb3dD b21wdXRlcl9mbGludCk6CisgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgIHNpZ19vZmYo KQorIAorLSAgICAgICAgc2VsZi5fX2FsbG9jYXRlZCA9IDgKKysgICAgICAgIHNlbGYuX2FsbG9j YXRlZCA9IDgKKyAKKyAgICAgZGVmIF9faW5pdF9fKHNlbGYsIEludGVnZXIgcHJpbWUsIGxvbmcg Y2FjaGVfbGltaXQsIGxvbmcgcHJlY19jYXAsIGxvbmcgcmFtX3ByZWNfY2FwLCBiaW50IGluX2Zp ZWxkLCBfcG9seSwgc2hpZnRfc2VlZD1Ob25lKToKKyAgICAgICAgICIiIgorQEAgLTI2OCwxMCAr MjY4LDEwIEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRfMXN0ZXAoUG93Q29tcHV0ZXJf ZmxpbnQpOgorICAgICAgICAgUG93Q29tcHV0ZXJfZmxpbnQuX19pbml0X18oc2VsZiwgcHJpbWUs IGNhY2hlX2xpbWl0LCBwcmVjX2NhcCwgcmFtX3ByZWNfY2FwLCBpbl9maWVsZCwgX3BvbHksIHNo aWZ0X3NlZWQpCisgCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dCBwb2x5ID0gX3BvbHkKKy0gICAgICAgIGNkZWYgbG9uZyBsZW5ndGggPSBmbXB6X3BvbHlfbGVu Z3RoKHBvbHkuX19wb2x5KQorKyAgICAgICAgY2RlZiBsb25nIGxlbmd0aCA9IGZtcHpfcG9seV9s ZW5ndGgocG9seS5fcG9seSkKKyAgICAgICAgIHNlbGYuZGVnID0gbGVuZ3RoIC0gMQorIAorLSAg ICAgICAgZm1wel9wb2x5X3NldChzZWxmLm1vZHVsdXMsIHBvbHkuX19wb2x5KQorKyAgICAgICAg Zm1wel9wb2x5X3NldChzZWxmLm1vZHVsdXMsIHBvbHkuX3BvbHkpCisgCisgICAgICAgICBjZGVm IFB5X3NzaXplX3QgaQorICAgICAgICAgY2RlZiBmbXB6KiBjb2VmZnMgPSBzZWxmLm1vZHVsdXMu Y29lZmZzCitAQCAtMjk2LDcgKzI5Niw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRf MXN0ZXAoUG93Q29tcHV0ZXJfZmxpbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFB5 X3NzaXplX3QgaQorIAorLSAgICAgICAgaWYgc2VsZi5fX2FsbG9jYXRlZCA+PSA4OgorKyAgICAg ICAgaWYgc2VsZi5fYWxsb2NhdGVkID49IDg6CisgICAgICAgICAgICAgZm1wel9jbGVhcihzZWxm LnEpCisgICAgICAgICAgICAgZm1wel9wb2x5X2NsZWFyKHNlbGYubW9kdWx1cykKKyAgICAgICAg ICAgICBmbXB6X3BvbHlfY2xlYXIoc2VsZi5wb3doZWxwZXJfb25ldW5pdCkKK0BAIC00MjcsOSAr NDI3LDkgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9mbGludF8xc3RlcChQb3dDb21wdXRlcl9m bGludCk6CisgICAgICAgICB4ID0gUi5nZW4oKQorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2lu dGVnZXJfZGVuc2VfZmxpbnQgYW5zID0gKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ/ PngpLl9uZXcoKQorICAgICAgICAgaWYgX24gaXMgTm9uZToKKy0gICAgICAgICAgICBmbXB6X3Bv bHlfc2V0KGFucy5fX3BvbHksIHNlbGYubW9kdWx1cykKKysgICAgICAgICAgICBmbXB6X3BvbHlf c2V0KGFucy5fcG9seSwgc2VsZi5tb2R1bHVzKQorICAgICAgICAgZWxzZToKKy0gICAgICAgICAg ICBmbXB6X3BvbHlfc2V0KGFucy5fX3BvbHksIHNlbGYuZ2V0X21vZHVsdXMoX24pWzBdKQorKyAg ICAgICAgICAgIGZtcHpfcG9seV9zZXQoYW5zLl9wb2x5LCBzZWxmLmdldF9tb2R1bHVzKF9uKVsw XSkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKyAgICAgY2RlZiBfbmV3X2ZtcHpfcG9seShzZWxm LCBmbXB6X3BvbHlfdCB2YWx1ZSwgdmFyPSd4Jyk6CitAQCAtNDQwLDcgKzQ0MCw3IEBAIGNkZWYg Y2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRfMXN0ZXAoUG93Q29tcHV0ZXJfZmxpbnQpOgorICAgICAg ICAgUiA9IFpaW3Zhcl0KKyAgICAgICAgIHggPSBSLmdlbigpCisgICAgICAgICBjZGVmIFBvbHlu b21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCBhbnMgPSAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5z ZV9mbGludD8+eCkuX25ldygpCistICAgICAgICBmbXB6X3BvbHlfc2V0KGFucy5fX3BvbHksIHZh bHVlKQorKyAgICAgICAgZm1wel9wb2x5X3NldChhbnMuX3BvbHksIHZhbHVlKQorICAgICAgICAg cmV0dXJuIGFucworIAorIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRfdW5yYW0oUG93Q29t cHV0ZXJfZmxpbnRfMXN0ZXApOgorQEAgLTUwMSw3ICs1MDEsNyBAQCBjZGVmIGNsYXNzIFBvd0Nv bXB1dGVyX2ZsaW50X3VucmFtKFBvd0NvbXB1dGVyX2ZsaW50XzFzdGVwKToKKyAgICAgICAgIG1w el9pbml0KHNlbGYubXB6X21hdG1vZCkKKyAgICAgICAgIHNpZ19vZmYoKQorIAorLSAgICAgICAg c2VsZi5fX2FsbG9jYXRlZCA9IDE2CisrICAgICAgICBzZWxmLl9hbGxvY2F0ZWQgPSAxNgorIAor ICAgICBkZWYgX19kZWFsbG9jX18oc2VsZik6CisgICAgICAgICAiIiIKK0BAIC01MTUsNyArNTE1 LDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9mbGludF91bnJhbShQb3dDb21wdXRlcl9mbGlu dF8xc3RlcCk6CisgICAgICAgICAgICAgc2FnZTogZGVsIEEKKyAKKyAgICAgICAgICIiIgorLSAg ICAgICAgaWYgc2VsZi5fX2FsbG9jYXRlZCA+PSAxNjoKKysgICAgICAgIGlmIHNlbGYuX2FsbG9j YXRlZCA+PSAxNjoKKyAgICAgICAgICAgICBmbXB6X2NsZWFyKHNlbGYuZm1wel9jY21wKQorICAg ICAgICAgICAgIGZtcHpfY2xlYXIoc2VsZi5mbXB6X2N2YWwpCisgICAgICAgICAgICAgZm1wel9j bGVhcihzZWxmLmZtcHpfY2ludikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3Mv cG93X2NvbXB1dGVyX3JlbGF0aXZlLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29t cHV0ZXJfcmVsYXRpdmUucHhkCitpbmRleCBmYzdkNWIyMWY0Mi4uZTBlNWFhNTYwMGUgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX3JlbGF0aXZlLnB4ZAor KysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9yZWxhdGl2ZS5weGQKK0BA IC0xOCw3ICsxOCw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfcmVsYXRpdmUoUG93Q29tcHV0 ZXJfY2xhc3MpOgorICAgICBjZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSBzaGlmdF9yZW0K KyAgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgYWxpYXNpbmcKKyAgICAgIyBhbGxv dyBjYWNoZWQgbWV0aG9kcworLSAgICBjZGVmIHB1YmxpYyBkaWN0IF9fY2FjaGVkX21ldGhvZHMK KysgICAgY2RlZiBwdWJsaWMgZGljdCBfY2FjaGVkX21ldGhvZHMKKyAKKyAgICAgY2RlZiB1bnNp Z25lZCBsb25nIGNhcGRpdihzZWxmLCB1bnNpZ25lZCBsb25nIG4pCisgCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9yZWxhdGl2ZS5weXggYi9zcmMvc2Fn ZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX3JlbGF0aXZlLnB5eAoraW5kZXggMzkwNTFhNjgx ZGUuLjIyNTMyODFiZDM1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19j b21wdXRlcl9yZWxhdGl2ZS5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29t cHV0ZXJfcmVsYXRpdmUucHl4CitAQCAtNjksNyArNjksNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1 dGVyX3JlbGF0aXZlKFBvd0NvbXB1dGVyX2NsYXNzKToKKyAgICAgICAgICAgICBzYWdlOiBQQyA9 IFBvd0NvbXB1dGVyX3JlbGF0aXZlX21ha2VyKDMsIDIwLCAyMCwgNjAsIEZhbHNlLCBmLCBzaGlm dF9zZWVkLCAnZml4ZWQtbW9kJykKKyAKKyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX2Fs bG9jYXRlZCA9IDQKKysgICAgICAgIHNlbGYuX2FsbG9jYXRlZCA9IDQKKyAKKyAgICAgZGVmIF9f aW5pdF9fKHNlbGYsIEludGVnZXIgcHJpbWUsIGxvbmcgY2FjaGVfbGltaXQsIGxvbmcgcHJlY19j YXAsIGxvbmcgcmFtX3ByZWNfY2FwLCBiaW50IGluX2ZpZWxkLCBwb2x5LCBzaGlmdF9zZWVkKToK KyAgICAgICAgIHIiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2hp bGJlcnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9oaWxiZXJ0LnB5eAoraW5kZXgg YTFmNzBlMGM5ODMuLmQyYWJmMzI1ZmQ4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9oaWxiZXJ0LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9oaWxi ZXJ0LnB5eAorQEAgLTE3MCw3ICsxNzAsNyBAQCBjZGVmIGJpbnQgSGlsYmVydEJhc2VDYXNlKFBv bHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCBmaHMsIE5vZGUgRCwgdHVwbGUgdyk6CisgICAg IGNkZWYgaW50IGUKKyAgICAgIyBGaXJzdCwgdGhlIGVhc2llc3QgY2FzZXM6CisgICAgIGlmIG5v dCBELklkOiAjIFRoZSB6ZXJvIGlkZWFsCistICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3Np KGZocy5fX3BvbHksIDAsIDEpICMgPSBQUigxKQorKyAgICAgICAgZm1wel9wb2x5X3NldF9jb2Vm Zl9zaShmaHMuX3BvbHksIDAsIDEpICMgPSBQUigxKQorICAgICAgICAgcmV0dXJuIFRydWUKKyAg ICAgY2RlZiBFVHVwbGUgbSA9IDxFVHVwbGU+UHlMaXN0X0dFVF9JVEVNKEQuSWQsIGxlbihELklk KS0xKQorICAgICBpZiBtLl9ub256ZXJvID09IDA6ICMgVGhlIG9uZSBpZGVhbAorQEAgLTE4Mywx OCArMTgzLDE4IEBAIGNkZWYgYmludCBIaWxiZXJ0QmFzZUNhc2UoUG9seW5vbWlhbF9pbnRlZ2Vy X2RlbnNlX2ZsaW50IGZocywgTm9kZSBELCB0dXBsZSB3KToKKyAgICAgaWYgbS5fbm9uemVybyA9 PSAxIGFuZCBtLl9kYXRhWzFdID09IDE6CisgICAgICAgICBmbXB6X3BvbHlfaW5pdChwb2x5X3Rt cCkKKyAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2kocG9seV90bXAsIDAsIDEpCistICAg ICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKGZocy5fX3BvbHksIDAsIDEpICMgPSBQUigxKQor KyAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShmaHMuX3BvbHksIDAsIDEpICMgPSBQUigx KQorICAgICAgICAgaWYgdyBpcyBOb25lOgorICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxl bihELklkKSk6CisgICAgICAgICAgICAgICAgIGV4cCA9ICg8RVR1cGxlPlB5TGlzdF9HRVRfSVRF TShELklkLCBpKSkudW53ZWlnaHRlZF9kZWdyZWUoKQorICAgICAgICAgICAgICAgICBmbXB6X3Bv bHlfc2V0X2NvZWZmX3NpKHBvbHlfdG1wLCBleHAsIC0xKQorLSAgICAgICAgICAgICAgICBmbXB6 X3BvbHlfbXVsKGZocy5fX3BvbHksIGZocy5fX3BvbHksIHBvbHlfdG1wKQorKyAgICAgICAgICAg ICAgICBmbXB6X3BvbHlfbXVsKGZocy5fcG9seSwgZmhzLl9wb2x5LCBwb2x5X3RtcCkKKyAgICAg ICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShwb2x5X3RtcCwgZXhwLCAwKQorICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oRC5JZCkpOgorICAg ICAgICAgICAgICAgICBleHAgPSAoPEVUdXBsZT5QeUxpc3RfR0VUX0lURU0oRC5JZCwgaSkpLndl aWdodGVkX2RlZ3JlZSh3KQorICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3Np KHBvbHlfdG1wLCBleHAsIC0xKQorLSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfbXVsKGZocy5f X3BvbHksIGZocy5fX3BvbHksIHBvbHlfdG1wKQorKyAgICAgICAgICAgICAgICBmbXB6X3BvbHlf bXVsKGZocy5fcG9seSwgZmhzLl9wb2x5LCBwb2x5X3RtcCkKKyAgICAgICAgICAgICAgICAgZm1w el9wb2x5X3NldF9jb2VmZl9zaShwb2x5X3RtcCwgZXhwLCAwKQorICAgICAgICAgZm1wel9wb2x5 X2NsZWFyKHBvbHlfdG1wKQorICAgICAgICAgcmV0dXJuIFRydWUgIyBQUi5wcm9kKFsoMS10Kipk ZWdyZWUobSx3KSkgZm9yIG0gaW4gRC5JZF0pCitAQCAtMjEwLDE4ICsyMTAsMTggQEAgY2RlZiBi aW50IEhpbGJlcnRCYXNlQ2FzZShQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgZmhzLCBO b2RlIEQsIHR1cGxlIHcpOgorICAgICAgICAgIyBUaGUgaWRlYWwgaXMgZ2VuZXJhdGVkIGJ5IHNv bWUgcG93ZXJzIG9mIHNpbmdsZSB2YXJpYWJsZXMsIGkuZS4sIGl0IHNwbGl0cy4KKyAgICAgICAg IGZtcHpfcG9seV9pbml0KHBvbHlfdG1wKQorICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9z aShwb2x5X3RtcCwgMCwgMSkKKy0gICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2koZmhzLl9f cG9seSwgMCwgMSkgIyA9IFBSKDEpCisrICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKGZo cy5fcG9seSwgMCwgMSkgIyA9IFBSKDEpCisgICAgICAgICBpZiB3IGlzIE5vbmU6CisgICAgICAg ICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKEQuSWQpKToKKyAgICAgICAgICAgICAgICAgZXhwID0g KDxFVHVwbGU+UHlMaXN0X0dFVF9JVEVNKEQuSWQsIGkpKS51bndlaWdodGVkX2RlZ3JlZSgpCisg ICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2kocG9seV90bXAsIGV4cCwgLTEp CistICAgICAgICAgICAgICAgIGZtcHpfcG9seV9tdWwoZmhzLl9fcG9seSwgZmhzLl9fcG9seSwg cG9seV90bXApCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9tdWwoZmhzLl9wb2x5LCBmaHMu X3BvbHksIHBvbHlfdG1wKQorICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3Np KHBvbHlfdG1wLCBleHAsIDApCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIGZvciBpIGlu IHJhbmdlKGxlbihELklkKSk6CisgICAgICAgICAgICAgICAgIGV4cCA9ICg8RVR1cGxlPlB5TGlz dF9HRVRfSVRFTShELklkLCBpKSkud2VpZ2h0ZWRfZGVncmVlKHcpCisgICAgICAgICAgICAgICAg IGZtcHpfcG9seV9zZXRfY29lZmZfc2kocG9seV90bXAsIGV4cCwgLTEpCistICAgICAgICAgICAg ICAgIGZtcHpfcG9seV9tdWwoZmhzLl9fcG9seSwgZmhzLl9fcG9seSwgcG9seV90bXApCisrICAg ICAgICAgICAgICAgIGZtcHpfcG9seV9tdWwoZmhzLl9wb2x5LCBmaHMuX3BvbHksIHBvbHlfdG1w KQorICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHBvbHlfdG1wLCBleHAs IDApCisgICAgICAgICBmbXB6X3BvbHlfY2xlYXIocG9seV90bXApCisgICAgICAgICByZXR1cm4g VHJ1ZSAjIFBSLnByb2QoWygxLXQqKmRlZ3JlZShtLHcpKSBmb3IgbSBpbiBELklkXSkKK0BAIC0y NzgsOCArMjc4LDggQEAgY2RlZiBiaW50IEhpbGJlcnRCYXNlQ2FzZShQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQgZmhzLCBOb2RlIEQsIHR1cGxlIHcpOgorICAgICAgICAgICAgICAgICAg ICAgZm1wel9wb2x5X211bChTZWNvbmRTdW1tYW5kLCBTZWNvbmRTdW1tYW5kLCBwb2x5X3RtcCkK KyAgICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2kocG9seV90bXAsIGV4 cCwgMCkKKyAgICAgICAgIGZtcHpfcG9seV9jbGVhcihwb2x5X3RtcCkKKy0gICAgICAgIGZtcHpf cG9seV9hZGQoZmhzLl9fcG9seSwgZmhzLl9fcG9seSwgRmlyc3RTdW1tYW5kKQorLSAgICAgICAg Zm1wel9wb2x5X2FkZChmaHMuX19wb2x5LCBmaHMuX19wb2x5LCBTZWNvbmRTdW1tYW5kKQorKyAg ICAgICAgZm1wel9wb2x5X2FkZChmaHMuX3BvbHksIGZocy5fcG9seSwgRmlyc3RTdW1tYW5kKQor KyAgICAgICAgZm1wel9wb2x5X2FkZChmaHMuX3BvbHksIGZocy5fcG9seSwgU2Vjb25kU3VtbWFu ZCkKKyAgICAgICAgIGZtcHpfcG9seV9jbGVhcihGaXJzdFN1bW1hbmQpCisgICAgICAgICBmbXB6 X3BvbHlfY2xlYXIoU2Vjb25kU3VtbWFuZCkKKyAgICAgICAgIHJldHVybiBUcnVlCitAQCAtNTMy LDExICs1MzIsMTEgQEAgZGVmIGZpcnN0X2hpbGJlcnRfc2VyaWVzKEksIGdyYWRpbmc9Tm9uZSwg cmV0dXJuX2dyYWRpbmc9RmFsc2UpOgorICAgICAgICAgICAgICAgICBpZiBBTi5CYWNrLlJpZ2h0 IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgICBBTiA9IEFOLkJhY2sKKyAgICAgICAgICAg ICAgICAgICAgICN+IGZocyAqPSBBTi5MTXVsdAorLSAgICAgICAgICAgICAgICAgICAgZm1wel9w b2x5X211bChmaHMuX19wb2x5LCBmaHMuX19wb2x5LCBBTi5MTXVsdCkKKysgICAgICAgICAgICAg ICAgICAgIGZtcHpfcG9seV9tdWwoZmhzLl9wb2x5LCBmaHMuX3BvbHksIEFOLkxNdWx0KQorICAg ICAgICAgICAgICAgICAgICAgZ290X3Jlc3VsdCA9IFRydWUKKyAgICAgICAgICAgICAgICAgZWxz ZToKKy0gICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXQoQU4uQmFjay5MZWZ0RkhTLCBm aHMuX19wb2x5KQorLSAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9zaShmaHMuX19w b2x5LCAwKQorKyAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldChBTi5CYWNrLkxlZnRG SFMsIGZocy5fcG9seSkKKysgICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfc2koZmhz Ll9wb2x5LCAwKQorICAgICAgICAgICAgICAgICAgICAgQU4gPSBBTi5CYWNrLlJpZ2h0CisgICAg ICAgICAgICAgICAgICAgICBBTi5CYWNrLkxlZnQgPSBOb25lCisgICAgICAgICAgICAgICAgICAg ICBnb3RfcmVzdWx0ID0gSGlsYmVydEJhc2VDYXNlKGZocywgQU4sIHcpCitAQCAtNTQ1LDggKzU0 NSw4IEBAIGRlZiBmaXJzdF9oaWxiZXJ0X3NlcmllcyhJLCBncmFkaW5nPU5vbmUsIHJldHVybl9n cmFkaW5nPUZhbHNlKToKKyAgICAgICAgICAgICAgICAgQU4uUmlnaHQgPSBOb25lCisgICAgICAg ICAgICAgICAgICN+IGZocyA9IEFOLkxNdWx0KkFOLkxlZnRGSFMgKyBBTi5STXVsdCpmaHMKKyAg ICAgICAgICAgICAgICAgZm1wel9wb2x5X211bChBTi5MTXVsdCwgQU4uTE11bHQsIEFOLkxlZnRG SFMpCistICAgICAgICAgICAgICAgIGZtcHpfcG9seV9tdWwoQU4uUk11bHQsIEFOLlJNdWx0LCBm aHMuX19wb2x5KQorLSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfYWRkKGZocy5fX3BvbHksIEFO LkxNdWx0LCBBTi5STXVsdCkKKysgICAgICAgICAgICAgICAgZm1wel9wb2x5X211bChBTi5STXVs dCwgQU4uUk11bHQsIGZocy5fcG9seSkKKysgICAgICAgICAgICAgICAgZm1wel9wb2x5X2FkZChm aHMuX3BvbHksIEFOLkxNdWx0LCBBTi5STXVsdCkKKyAgICAgICAgICAgICAgICAgZ290X3Jlc3Vs dCA9IFRydWUKKyAKKyBkZWYgaGlsYmVydF9wb2luY2FyZV9zZXJpZXMoSSwgZ3JhZGluZz1Ob25l KToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5v bWlhbC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlhbC5w eGQKK2luZGV4IDM2NDhkNmQxZWQxLi44ZTkxMDdhZWI0NyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvbGF1cmVudF9wb2x5bm9taWFsLnB4ZAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9sYXVyZW50X3BvbHlub21pYWwucHhkCitAQCAtMTIsNiArMTIsNiBA QCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsKENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQp OgorIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5v bWlhbCk6CisgICAgIGNkZWYgTW9kdWxlRWxlbWVudCBfX3UKKyAgICAgY2RlZiBsb25nIF9fbgor LSAgICBjcGRlZiBfX25vcm1hbGl6ZShzZWxmKQorKyAgICBjcGRlZiBfbm9ybWFsaXplKHNlbGYp CisgICAgIGNwZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIGksIHZhbHVlKQorIAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbGF1cmVudF9wb2x5bm9taWFsLnB5eCBiL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbGF1cmVudF9wb2x5bm9taWFsLnB5eAoraW5kZXggNGJl MjQ2YzY2ODguLmNkNzk5OTZlZWQ3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9sYXVyZW50X3BvbHlub21pYWwucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL2xhdXJlbnRfcG9seW5vbWlhbC5weXgKK0BAIC0zNjYsNyArMzY2LDcgQEAgY2RlZiBjbGFz cyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAg ICAgICMgc2VsZiBpcyB0aGF0IHRebiAqIHU6CisgICAgICAgICBzZWxmLl9fdSA9IGYKKyAgICAg ICAgIHNlbGYuX19uID0gbgorLSAgICAgICAgc2VsZi5fX25vcm1hbGl6ZSgpCisrICAgICAgICBz ZWxmLl9ub3JtYWxpemUoKQorIAorICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKKyAgICAgICAg ICIiIgorQEAgLTUzMSw3ICs1MzEsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3Vu aXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHUgPSB1Lm1hcF9jb2Vm ZmljaWVudHMoYmFzZV9tYXApCisgICAgICAgICByZXR1cm4gY29kb21haW4odSh4KSAqIHgqKnNl bGYuX19uKQorIAorLSAgICBjcGRlZiBfX25vcm1hbGl6ZShzZWxmKToKKysgICAgY3BkZWYgX25v cm1hbGl6ZShzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEEgTGF1cmVudCBzZXJpZXMg aXMgYSBwYWlyIGAodSh0KSwgbilgLCB3aGVyZSBlaXRoZXIgYHUgPSAwYAorICAgICAgICAgKHRv IHNvbWUgcHJlY2lzaW9uKSBvciBgdWAgaXMgYSB1bml0LiBUaGlzIHBhaXIgY29ycmVzcG9uZHMg dG8KK0BAIC03NjMsNyArNzYzLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2 YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgICAgICByZXQgPSA8TGF1cmVudFBv bHlub21pYWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAgICAgICAgIHJldC5fX3Ug PSBmCisgICAgICAgICAgICAgcmV0Ll9fbiA9IHNlbGYuX19uCistICAgICAgICAgICAgcmV0Ll9f bm9ybWFsaXplKCkKKysgICAgICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAgICAgICAgICAg cmV0dXJuIHJldAorIAorICAgICAgICAgcmV0dXJuIHNlbGYuX191W2kgLSBzZWxmLl9fbl0KK0BA IC05MTksNyArOTE5LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRl KExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgUiA9IHNlbGYuX3BhcmVudC5i YXNlX3JpbmcoKQorICAgICAgICAgICAgICAgICBjb2VmZnMgPSBbdmFsdWVdICsgW1IuemVybygp IGZvciBfIGluIHJhbmdlKDEsLWopXSArIHNlbGYuX191Lmxpc3QoKQorICAgICAgICAgICAgICAg ICBzZWxmLl9fdSA9IHNlbGYuX191Ll9wYXJlbnQoY29lZmZzKQorLSAgICAgICAgc2VsZi5fX25v cm1hbGl6ZSgpCisrICAgICAgICBzZWxmLl9ub3JtYWxpemUoKQorIAorICAgICBjcGRlZiBfYWRk XyhzZWxmLCByaWdodF9tKToKKyAgICAgICAgICIiIgorQEAgLTk3Miw3ICs5NzIsNyBAQCBjZGVm IGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgor ICAgICAgICAgcmV0ID0gPExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGU+IHNlbGYuX25ld19j KCkKKyAgICAgICAgIHJldC5fX3UgPSA8TW9kdWxlRWxlbWVudD4gKGYxICsgZjIpCisgICAgICAg ICByZXQuX19uID0gbQorLSAgICAgICAgcmV0Ll9fbm9ybWFsaXplKCkKKysgICAgICAgIHJldC5f bm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiByZXQKKyAKKyAgICAgY3BkZWYgX3N1Yl8oc2Vs ZiwgcmlnaHRfbSk6CitAQCAtMTAxMiw3ICsxMDEyLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9s eW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9IDxM YXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICByZXQu X191ID0gPE1vZHVsZUVsZW1lbnQ+IChmMSAtIGYyKQorICAgICAgICAgcmV0Ll9fbiA9IG0KKy0g ICAgICAgIHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAg ICAgICByZXR1cm4gcmV0CisgCisgICAgIGRlZiBkZWdyZWUoc2VsZik6CitAQCAtMTA2Myw3ICsx MDYzLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQ b2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRl PiBzZWxmLl9uZXdfYygpCisgICAgICAgICByZXQuX191ID0gPE1vZHVsZUVsZW1lbnQ+IChzZWxm Ll9fdSAqIHJpZ2h0Ll9fdSkKKyAgICAgICAgIHJldC5fX24gPSBzZWxmLl9fbiArIHJpZ2h0Ll9f bgorLSAgICAgICAgcmV0Ll9fbm9ybWFsaXplKCkKKysgICAgICAgIHJldC5fbm9ybWFsaXplKCkK KyAgICAgICAgIHJldHVybiByZXQKKyAKKyAgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQg Yyk6CitAQCAtMTA3OSw3ICsxMDc5LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91 bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9IDxMYXVyZW50UG9s eW5vbWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICByZXQuX191ID0gPE1v ZHVsZUVsZW1lbnQ+IHNlbGYuX191Ll9ybXVsXyhjKQorICAgICAgICAgcmV0Ll9fbiA9IHNlbGYu X19uCistICAgICAgICByZXQuX19ub3JtYWxpemUoKQorKyAgICAgICAgcmV0Ll9ub3JtYWxpemUo KQorICAgICAgICAgcmV0dXJuIHJldAorIAorICAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVu dCBjKToKK0BAIC0xMDk1LDcgKzEwOTUsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFs X3VuaXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAgcmV0ID0gPExhdXJlbnRQ b2x5bm9taWFsX3VuaXZhcmlhdGU+IHNlbGYuX25ld19jKCkKKyAgICAgICAgIHJldC5fX3UgPSA8 TW9kdWxlRWxlbWVudD4gc2VsZi5fX3UuX2xtdWxfKGMpCisgICAgICAgICByZXQuX19uID0gc2Vs Zi5fX24KKy0gICAgICAgIHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICByZXQuX25vcm1hbGl6 ZSgpCisgICAgICAgICByZXR1cm4gcmV0CisgCisgICAgIGRlZiBpc19tb25vbWlhbChzZWxmKToK K0BAIC0xMTc1LDcgKzExNzUsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZh cmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAgcmV0ID0gPExhdXJlbnRQb2x5bm9t aWFsX3VuaXZhcmlhdGU+IHNlbGYuX25ld19jKCkKKyAgICAgICAgIHJldC5fX3UgPSA8TW9kdWxl RWxlbWVudD4gKHNlbGYuX191IC8vIHJpZ2h0Ll9fdSkKKyAgICAgICAgIHJldC5fX24gPSBzZWxm Ll9fbiAtIHJpZ2h0Ll9fbgorLSAgICAgICAgcmV0Ll9fbm9ybWFsaXplKCkKKysgICAgICAgIHJl dC5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiByZXQKKyAKKyAgICAgZGVmIHNoaWZ0KHNl bGYsIGspOgorQEAgLTEyODcsNyArMTI4Nyw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21p YWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgaWYgc2VsZi5f X3UuaXNfdW5pdCgpOgorICAgICAgICAgICAgICAgICByZXQuX191ID0gc2VsZi5fX3UuaW52ZXJz ZV9vZl91bml0KCkKKyAgICAgICAgICAgICAgICAgcmV0Ll9fbiA9IC1zZWxmLl9fbgorLSAgICAg ICAgICAgICAgICByZXQuX19ub3JtYWxpemUoKQorKyAgICAgICAgICAgICAgICByZXQuX25vcm1h bGl6ZSgpCisgICAgICAgICAgICAgICAgIHJldHVybiByZXQKKyAgICAgICAgICAgICAjIEVubGFy Z2UgdGhlIHJpbmcgc28gd2UgY2FuIGRpdmlkZSBieSB0aGUgY29lZmZpY2llbnQKKyAgICAgICAg ICAgICBSID0gc2VsZi5fcGFyZW50LmJhc2VfcmluZygpLmZyYWN0aW9uX2ZpZWxkKCkKK0BAIC0x MzYyLDcgKzEzNjIsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGUo TGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAgcmV0ID0gPExhdXJlbnRQb2x5bm9taWFsX3Vu aXZhcmlhdGU+IHNlbGYuX25ld19jKCkKKyAgICAgICAgIHJldC5fX3UgPSBzZWxmLl9fdS5nY2Qo Yi5fX3UpCisgICAgICAgICByZXQuX19uID0gbWluKHNlbGYuX19uLCBiLl9fbikKKy0gICAgICAg IHJldC5fX25vcm1hbGl6ZSgpCisrICAgICAgICByZXQuX25vcm1hbGl6ZSgpCisgICAgICAgICBy ZXR1cm4gcmV0CisgCisgICAgIEBjb2VyY2VfYmlub3AKK0BAIC0xNDA4LDExICsxNDA4LDExIEBA IGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlh bCk6CisgICAgICAgICBxbCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBzZWxmLl9u ZXdfYygpCisgICAgICAgICBxbC5fX3UgPSA8TW9kdWxlRWxlbWVudD4gcQorICAgICAgICAgcWwu X19uID0gc2VsZi5fX24gLSByaWdodC5fX24KKy0gICAgICAgIHFsLl9fbm9ybWFsaXplKCkKKysg ICAgICAgIHFsLl9ub3JtYWxpemUoKQorICAgICAgICAgcXIgPSA8TGF1cmVudFBvbHlub21pYWxf dW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAgICAgcXIuX191ID0gPE1vZHVsZUVsZW1l bnQ+IHIKKyAgICAgICAgIHFyLl9fbiA9IHNlbGYuX19uCistICAgICAgICBxci5fX25vcm1hbGl6 ZSgpCisrICAgICAgICBxci5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiBxbCwgcXIKKyAK KyAgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0X3IsIGludCBvcCk6CitAQCAtMTUxOSw3 ICsxNTE5LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJl bnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJp YXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICByZXQuX191ID0gPE1vZHVsZUVsZW1lbnQ+IHNl bGYuX191LnRydW5jYXRlKG4gLSBzZWxmLl9fbikKKyAgICAgICAgIHJldC5fX24gPSBzZWxmLl9f bgorLSAgICAgICAgcmV0Ll9fbm9ybWFsaXplKCkKKysgICAgICAgIHJldC5fbm9ybWFsaXplKCkK KyAgICAgICAgIHJldHVybiByZXQKKyAKKyAgICAgZGVmIHZhcmlhYmxlX25hbWUoc2VsZik6CitA QCAtMTc3Nyw3ICsxNzc3LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJp YXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgcmV0ID0gPExhdXJlbnRQ b2x5bm9taWFsX3VuaXZhcmlhdGU+IHNlbGYuX25ld19jKCkKKyAgICAgICAgICAgICAgICAgcmV0 Ll9fdSA9IDxNb2R1bGVFbGVtZW50PiBzZWxmLl9wYXJlbnQuX1IodSkKKyAgICAgICAgICAgICAg ICAgcmV0Ll9fbiA9IHNlbGYuX19uCistICAgICAgICAgICAgICAgIHJldC5fX25vcm1hbGl6ZSgp CisrICAgICAgICAgICAgICAgIHJldC5fbm9ybWFsaXplKCkKKyAgICAgICAgICAgICAgICAgcmV0 dXJuIHJldAorICAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAg ICAgICAgcmFpc2UgVmFsdWVFcnJvcignY2Fubm90IGRpZmZlcmVudGlhdGUgd2l0aCByZXNwZWN0 IHRvIHt9Jy5mb3JtYXQodmFyKSkKK0BAIC0xNzkyLDcgKzE3OTIsNyBAQCBjZGVmIGNsYXNzIExh dXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAg cmV0ID0gPExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGU+IHNlbGYuX25ld19jKCkKKyAgICAg ICAgIHJldC5fX3UgPSA8TW9kdWxlRWxlbWVudD4gc2VsZi5fcGFyZW50Ll9SKGEpCisgICAgICAg ICByZXQuX19uID0gc2VsZi5fX24gLSAxCistICAgICAgICByZXQuX19ub3JtYWxpemUoKQorKyAg ICAgICAgcmV0Ll9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJldAorIAorICAgICBkZWYg aW50ZWdyYWwoc2VsZik6CitAQCAtMTg1Nyw3ICsxODU3LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50 UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldCA9 IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBzZWxmLl9uZXdfYygpCisgICAgICAgICBy ZXQuX191ID0gPE1vZHVsZUVsZW1lbnQ+IHUKKyAgICAgICAgIHJldC5fX24gPSBuICsgMQorLSAg ICAgICAgcmV0Ll9fbm9ybWFsaXplKCkKKysgICAgICAgIHJldC5fbm9ybWFsaXplKCkKKyAgICAg ICAgIHJldHVybiByZXQKKyAKKyAgICAgZGVmIF9fY2FsbF9fKHNlbGYsICp4LCAqKmt3ZHMpOgor QEAgLTE5MTksMTQgKzE5MTksMTQgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2 YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHUgPSA8TGF1cmVudFBvbHlub21p YWxfdW5pdmFyaWF0ZT4gc2VsZi5fbmV3X2MoKQorICAgICAgICAgdS5fX3UgPSBwZi51bml0KCkK KyAgICAgICAgIHUuX19uID0gc2VsZi5fX24KKy0gICAgICAgIHUuX19ub3JtYWxpemUoKQorKyAg ICAgICAgdS5fbm9ybWFsaXplKCkKKyAKKyAgICAgICAgIGYgPSBbXQorICAgICAgICAgZm9yIHQg aW4gcGY6CisgICAgICAgICAgICAgZCA9IDxMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlPiBz ZWxmLl9uZXdfYygpCisgICAgICAgICAgICAgZC5fX3UgPSB0WzBdCisgICAgICAgICAgICAgZC5f X24gPSAwCistICAgICAgICAgICAgZC5fX25vcm1hbGl6ZSgpCisrICAgICAgICAgICAgZC5fbm9y bWFsaXplKCkKKyAgICAgICAgICAgICBpZiBkLmlzX3VuaXQoKToKKyAgICAgICAgICAgICAgICAg dSAqPSBkICoqIHRbMV0KKyAgICAgICAgICAgICBlbHNlOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9saWJzaW5ndWxhci5weXggYi9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfbGlic2luZ3VsYXIucHl4Citp bmRleCBkNzk2YjdmODE2OS4uODNjNzljMzk4NDMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5n cy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfbGlic2luZ3VsYXIucHl4CisrKysgYi9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfbGlic2luZ3VsYXIucHl4CitA QCAtMzc1LDcgKzM3NSw3IEBAIGNkZWYgY2xhc3MgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFy KE1Qb2x5bm9taWFsUmluZ19iYXNlKToKKyAgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICBO b3RJbXBsZW1lbnRlZEVycm9yOiBwb2x5bm9taWFscyBpbiAtMSB2YXJpYWJsZXMgYXJlIG5vdCBz dXBwb3J0ZWQgaW4gU2luZ3VsYXIKKyAgICAgICAgICIiIgorLSAgICAgICAgc2VsZi5fX25nZW5z ID0gbgorKyAgICAgICAgc2VsZi5fbmdlbnMgPSBuCisgICAgICAgICBzZWxmLl9yaW5nID0gc2lu Z3VsYXJfcmluZ19uZXcoYmFzZV9yaW5nLCBuLCBuYW1lcywgb3JkZXIpCisgICAgICAgICBzZWxm Ll96ZXJvX2VsZW1lbnQgPSBuZXdfTVAoc2VsZiwgTlVMTCkKKyAgICAgICAgIGNkZWYgTVBvbHlu b21pYWxfbGlic2luZ3VsYXIgb25lID0gbmV3X01QKHNlbGYsIHBfSVNldCgxLCBzZWxmLl9yaW5n KSkKK0BAIC0xMDE5LDcgKzEwMTksNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmluZ19saWJz aW5ndWxhcihNUG9seW5vbWlhbFJpbmdfYmFzZSk6CisgICAgICAgICAgICAgTXVsdGl2YXJpYXRl IFBvbHlub21pYWwgUmluZyBpbiB4LCB5IG92ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIi IgorICAgICAgICAgdmFyc3RyID0gIiwgIi5qb2luKGNoYXJfdG9fc3RyKHJSaW5nVmFyKGksc2Vs Zi5fcmluZykpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2Vs Zi5fX25nZW5zKSkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShz ZWxmLl9uZ2VucykpCisgICAgICAgICByZXR1cm4gIk11bHRpdmFyaWF0ZSBQb2x5bm9taWFsIFJp bmcgaW4gJXMgb3ZlciAlcyIgJSAodmFyc3RyLCBzZWxmLmJhc2VfcmluZygpKQorIAorICAgICBk ZWYgbmdlbnMoc2VsZik6CitAQCAtMTAzNyw3ICsxMDM3LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5v bWlhbFJpbmdfbGlic2luZ3VsYXIoTVBvbHlub21pYWxSaW5nX2Jhc2UpOgorICAgICAgICAgICAg IHNhZ2U6IFAubmdlbnMoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNhZ2UucmluZ3MuZmluaXRlX3JpbmdzCisgICAg ICAgICAgICAgMTAwMAorICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gaW50KHNlbGYuX19u Z2VucykKKysgICAgICAgIHJldHVybiBpbnQoc2VsZi5fbmdlbnMpCisgCisgICAgIGRlZiBnZW4o c2VsZiwgaW50IG49MCk6CisgICAgICAgICAiIiIKK0BAIC0xMDY1LDcgKzEwNjUsNyBAQCBjZGVm IGNsYXNzIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhcihNUG9seW5vbWlhbFJpbmdfYmFzZSk6 CisgICAgICAgICBjZGVmIHBvbHkgKl9wCisgICAgICAgICBjZGVmIHJpbmcgKl9yaW5nID0gc2Vs Zi5fcmluZworIAorLSAgICAgICAgaWYgbiA8IDAgb3IgbiA+PSBzZWxmLl9fbmdlbnM6CisrICAg ICAgICBpZiBuIDwgMCBvciBuID49IHNlbGYuX25nZW5zOgorICAgICAgICAgICAgIHJhaXNlIFZh bHVlRXJyb3IoIkdlbmVyYXRvciBub3QgZGVmaW5lZC4iKQorIAorICAgICAgICAgckNoYW5nZUN1 cnJSaW5nKF9yaW5nKQorQEAgLTE0OTQsNyArMTQ5NCw3IEBAIGNkZWYgY2xhc3MgTVBvbHlub21p YWxSaW5nX2xpYnNpbmd1bGFyKE1Qb2x5bm9taWFsUmluZ19iYXNlKToKKyAgICAgICAgIHJldHVy biB1bnBpY2tsZV9NUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIsIFwKKyAgICAgICAgICAgICAo c2VsZi5iYXNlX3JpbmcoKSwgc2VsZi52YXJpYWJsZV9uYW1lcygpLCBzZWxmLnRlcm1fb3JkZXIo KSkKKyAKKy0gICAgZGVmIF9fdGVtcG9yYXJpbHlfY2hhbmdlX25hbWVzKHNlbGYsIG5hbWVzLCBs YXRleF9uYW1lcyk6CisrICAgIGRlZiBfdGVtcG9yYXJpbHlfY2hhbmdlX25hbWVzKHNlbGYsIG5h bWVzLCBsYXRleF9uYW1lcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgaXMgdXNlZCBi eSB0aGUgdmFyaWFibGUgbmFtZXMgY29udGV4dCBtYW5hZ2VyLgorIAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHhkIGIv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX3JpbmdfYmFzZS5weGQK K2luZGV4IGZjODFjZjZkMjk4Li5lYjZmOGI3MDkxNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jp bmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHhkCisrKysgYi9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfcmluZ19iYXNlLnB4ZAorQEAg LTIsOCArMiw4IEBAIGNpbXBvcnQgc2FnZS5yaW5ncy5yaW5nCisgZnJvbSBzYWdlLnN0cnVjdHVy ZS5wYXJlbnQgY2ltcG9ydCBQYXJlbnQKKyAKKyBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmluZ19i YXNlKHNhZ2UucmluZ3MucmluZy5Db21tdXRhdGl2ZVJpbmcpOgorLSAgICBjZGVmIG9iamVjdCBf X25nZW5zCistICAgIGNkZWYgb2JqZWN0IF9fdGVybV9vcmRlcgorKyAgICBjZGVmIG9iamVjdCBf bmdlbnMKKysgICAgY2RlZiBvYmplY3QgX3Rlcm1fb3JkZXIKKyAgICAgY2RlZiBwdWJsaWMgb2Jq ZWN0IF9oYXNfc2luZ3VsYXIKKyAgICAgY2RlZiBwdWJsaWMgb2JqZWN0IF9tYWdtYV9nZW5zCisg ICAgIGNkZWYgcHVibGljIGRpY3QgX21hZ21hX2NhY2hlCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX3JpbmdfYmFzZS5weXggYi9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfcmluZ19iYXNlLnB5eAoraW5kZXgg MWQzZmJjNjA5NDQuLmM4ZjY2NTA4Y2MyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX3JpbmdfYmFzZS5weXgKKysrKyBiL3NyYy9zYWdlL3Jp bmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHl4CitAQCAtODAsOCAr ODAsOCBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmluZ19iYXNlKHNhZ2UucmluZ3MucmluZy5D b21tdXRhdGl2ZVJpbmcpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11bHRpdmFy aWF0ZSBQb2x5bm9taWFsIFJpbmdzIG11c3QgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImhhdmUgbW9yZSB0aGFuIDAgdmFyaWFibGVzLiIpCisgICAgICAgICBvcmRlciA9IFRlcm1P cmRlcihvcmRlciwgbikKKy0gICAgICAgIHNlbGYuX19uZ2VucyA9IG4KKy0gICAgICAgIHNlbGYu X190ZXJtX29yZGVyID0gb3JkZXIKKysgICAgICAgIHNlbGYuX25nZW5zID0gbgorKyAgICAgICAg c2VsZi5fdGVybV9vcmRlciA9IG9yZGVyCisgICAgICAgICBzZWxmLl9oYXNfc2luZ3VsYXIgPSBG YWxzZSAgIyBjYW5ub3QgY29udmVydCB0byBTaW5ndWxhciBieSBkZWZhdWx0CisgICAgICAgICBz ZWxmLl9tYWdtYV9jYWNoZSA9IHt9CisgICAgICAgICAjIFJpbmcuX19pbml0X18gYWxyZWFkeSBk b2VzIGFzc2lnbiB0aGUgbmFtZXMuCitAQCAtNjM5LDEyICs2MzksMTIgQEAgY2RlZiBjbGFzcyBN UG9seW5vbWlhbFJpbmdfYmFzZShzYWdlLnJpbmdzLnJpbmcuQ29tbXV0YXRpdmVSaW5nKToKKyAg ICAgICAgIGxmdCA9IDxNUG9seW5vbWlhbFJpbmdfYmFzZT5sZWZ0CisgICAgICAgICBvdGhlciA9 IDxNUG9seW5vbWlhbFJpbmdfYmFzZT5yaWdodAorIAorLSAgICAgICAgbHggPSAobGZ0LmJhc2Vf cmluZygpLCBsZnQuX19uZ2VucywKKysgICAgICAgIGx4ID0gKGxmdC5iYXNlX3JpbmcoKSwgbGZ0 Ll9uZ2VucywKKyAgICAgICAgICAgICAgIGxmdC52YXJpYWJsZV9uYW1lcygpLAorLSAgICAgICAg ICAgICAgbGZ0Ll9fdGVybV9vcmRlcikKKy0gICAgICAgIHJ4ID0gKG90aGVyLmJhc2VfcmluZygp LCBvdGhlci5fX25nZW5zLAorKyAgICAgICAgICAgICAgbGZ0Ll90ZXJtX29yZGVyKQorKyAgICAg ICAgcnggPSAob3RoZXIuYmFzZV9yaW5nKCksIG90aGVyLl9uZ2VucywKKyAgICAgICAgICAgICAg IG90aGVyLnZhcmlhYmxlX25hbWVzKCksCistICAgICAgICAgICAgICBvdGhlci5fX3Rlcm1fb3Jk ZXIpCisrICAgICAgICAgICAgICBvdGhlci5fdGVybV9vcmRlcikKKyAgICAgICAgIHJldHVybiBy aWNoY21wKGx4LCByeCwgb3ApCisgCisgICAgIGRlZiBfcmVwcl8oc2VsZik6CitAQCAtODQ5LDcg Kzg0OSw3IEBAIGNkZWYgY2xhc3MgTVBvbHlub21pYWxSaW5nX2Jhc2Uoc2FnZS5yaW5ncy5yaW5n LkNvbW11dGF0aXZlUmluZyk6CisgICAgICAgICByZXR1cm4gRmFsc2UKKyAKKyAgICAgZGVmIHRl cm1fb3JkZXIoc2VsZik6CistICAgICAgICByZXR1cm4gc2VsZi5fX3Rlcm1fb3JkZXIKKysgICAg ICAgIHJldHVybiBzZWxmLl90ZXJtX29yZGVyCisgCisgICAgIGRlZiBjaGFyYWN0ZXJpc3RpYyhz ZWxmKToKKyAgICAgICAgICIiIgorQEAgLTg2Nyw3ICs4NjcsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5 bm9taWFsUmluZ19iYXNlKHNhZ2UucmluZ3MucmluZy5Db21tdXRhdGl2ZVJpbmcpOgorICAgICAg ICAgcmV0dXJuIHNlbGYuYmFzZV9yaW5nKCkuY2hhcmFjdGVyaXN0aWMoKQorIAorICAgICBkZWYg Z2VuKHNlbGYsIG49MCk6CistICAgICAgICBpZiBuIDwgMCBvciBuID49IHNlbGYuX19uZ2VuczoK KysgICAgICAgIGlmIG4gPCAwIG9yIG4gPj0gc2VsZi5fbmdlbnM6CisgICAgICAgICAgICAgcmFp c2UgVmFsdWVFcnJvcigiR2VuZXJhdG9yIG5vdCBkZWZpbmVkLiIpCisgICAgICAgICByZXR1cm4g c2VsZi5fZ2Vuc1tpbnQobildCisgCitAQCAtOTI3LDcgKzkyNyw3IEBAIGNkZWYgY2xhc3MgTVBv bHlub21pYWxSaW5nX2Jhc2Uoc2FnZS5yaW5ncy5yaW5nLkNvbW11dGF0aXZlUmluZyk6CisgICAg ICAgICByZXR1cm4gc2VsZi5iYXNlX3JpbmcoKS5rcnVsbF9kaW1lbnNpb24oKSArIHNlbGYubmdl bnMoKQorIAorICAgICBkZWYgbmdlbnMoc2VsZik6CistICAgICAgICByZXR1cm4gc2VsZi5fX25n ZW5zCisrICAgICAgICByZXR1cm4gc2VsZi5fbmdlbnMKKyAKKyAgICAgZGVmIF9tb25vbWlhbF9v cmRlcl9mdW5jdGlvbihzZWxmKToKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL29yZV9wb2x5bm9taWFsX2Vs ZW1lbnQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9vcmVfcG9seW5vbWlhbF9lbGVt ZW50LnB4ZAoraW5kZXggM2EzZmUwYTBkNTQuLmFhMzYxMTJhYjkwIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9vcmVfcG9seW5vbWlhbF9lbGVtZW50LnB4ZAorKysrIGIv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9vcmVfcG9seW5vbWlhbF9lbGVtZW50LnB4ZAorQEAg LTMzLDcgKzMzLDcgQEAgY2RlZiB2b2lkIGxtdWxfZ2VuKGxpc3QgQSwgTW9ycGhpc20gbSwgZCkK KyBjZGVmIGNsYXNzIE9yZVBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsKToK KyAgICAgY2RlZiBsaXN0IF9jb2VmZnMKKyAKKy0gICAgY2RlZiB2b2lkIF9fbm9ybWFsaXplKHNl bGYpCisrICAgIGNkZWYgdm9pZCBfbm9ybWFsaXplKHNlbGYpCisgICAgIGNwZGVmIF9hZGRfKHNl bGYsIG90aGVyKQorICAgICBjZGVmIGxpc3QgX211bF9saXN0KHNlbGYsIGxpc3QgQSkKKyAgICAg Y3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9vcmVfcG9seW5vbWlhbF9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5weXgKK2luZGV4IGQ2N2M2M2I2YmU4Li5iZTE1 NGJhOGIxYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvb3JlX3BvbHlu b21pYWxfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvb3JlX3Bv bHlub21pYWxfZWxlbWVudC5weXgKK0BAIC0yMjY5LDcgKzIyNjksNyBAQCBjZGVmIGNsYXNzIE9y ZVBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIGlz aW5zdGFuY2UoeCwgbGlzdCk6CisgICAgICAgICAgICAgaWYgY2hlY2s6CisgICAgICAgICAgICAg ICAgIHNlbGYuX2NvZWZmcyA9IFtSKHQpIGZvciB0IGluIHhdCistICAgICAgICAgICAgICAgIHNl bGYuX19ub3JtYWxpemUoKQorKyAgICAgICAgICAgICAgICBzZWxmLl9ub3JtYWxpemUoKQorICAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IHgKKyAgICAg ICAgICAgICByZXR1cm4KK0BAIC0yMjg4LDcgKzIyODgsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlu b21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgICAgICBzZWxmLl9jb2VmZnMgPSBbUihhLCAqKmt3ZHMpIGZvciBhIGluIHgu bGlzdCgpXQorICAgICAgICAgICAgICAgICBpZiBjaGVjazoKKy0gICAgICAgICAgICAgICAgICAg IHNlbGYuX19ub3JtYWxpemUoKQorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbm9ybWFsaXpl KCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2Uo eCwgaW50KSBhbmQgeCA9PSAwOgorQEAgLTIzMDIsNyArMjMwMiw3IEBAIGNkZWYgY2xhc3MgT3Jl UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKE9yZVBvbHlub21pYWwpOgorICAgICAgICAgICAgIHgg PSBbeF0KKyAgICAgICAgIGlmIGNoZWNrOgorICAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IFtS KHosICoqa3dkcykgZm9yIHogaW4geF0KKy0gICAgICAgICAgICBzZWxmLl9fbm9ybWFsaXplKCkK KysgICAgICAgICAgICBzZWxmLl9ub3JtYWxpemUoKQorICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICBzZWxmLl9jb2VmZnMgPSB4CisgCitAQCAtMjM3NywxMCArMjM3NywxMCBAQCBjZGVmIGNs YXNzIE9yZVBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsKToKKyAgICAgICAg IGYuX3BhcmVudCA9IFAKKyAgICAgICAgIGYuX2NvZWZmcyA9IGNvZWZmcworICAgICAgICAgaWYg Y2hlY2s6CistICAgICAgICAgICAgZi5fX25vcm1hbGl6ZSgpCisrICAgICAgICAgICAgZi5fbm9y bWFsaXplKCkKKyAgICAgICAgIHJldHVybiBmCisgCistICAgIGNkZWYgdm9pZCBfX25vcm1hbGl6 ZShzZWxmKToKKysgICAgY2RlZiB2b2lkIF9ub3JtYWxpemUoc2VsZik6CisgICAgICAgICByIiIi CisgICAgICAgICBSZW1vdmUgaGlnaGVyIG9yZGVyIGAwYC1jb2VmZmljaWVudHMgZnJvbSB0aGUg cmVwcmVzZW50YXRpb24gb2YgYGBzZWxmYGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvcmlu Z3MvcG9seW5vbWlhbC9wYm9yaS9wYm9yaS5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3Bib3JpL3Bib3JpLnB5eAoraW5kZXggMDdjYzY5NjQ3N2EuLjMxNDE5NmZhYTE0IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wYm9yaS9wYm9yaS5weXgKKysrKyBiL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGJvcmkvcGJvcmkucHl4CitAQCAtNTQ3LDcgKzU0Nyw3 IEBAIGNkZWYgY2xhc3MgQm9vbGVhblBvbHlub21pYWxSaW5nKEJvb2xlYW5Qb2x5bm9taWFsUmlu Z19iYXNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHR1cGxlKG5ld19CUF9mcm9t X1BCVmFyKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fcGJyaW5nLnZhcmlhYmxlKHNlbGYucGJpbmRbaV0pKQorLSAgICAgICAgICAgICAgICAgICAg IGZvciBpIGluIHJhbmdlKHNlbGYuX19uZ2VucykpCisrICAgICAgICAgICAgICAgICAgICAgZm9y IGkgaW4gcmFuZ2Uoc2VsZi5fbmdlbnMpKQorIAorICAgICBkZWYgY2hhbmdlX3Jpbmcoc2VsZiwg YmFzZV9yaW5nPU5vbmUsIG5hbWVzPU5vbmUsIG9yZGVyPU5vbmUpOgorICAgICAgICAgIiIiCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHhkIGIvc3JjL3Nh Z2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHhkCitpbmRleCA0MWRiMmExNDRlNy4uZDNhNDZm NmFhMGQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BsdXJhbC5weGQK KysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB4ZAorQEAgLTEzLDEwICsx MywxMCBAQCBjZGVmIGV4dGVybiBmcm9tICo6CisgICAgIGN0eXBlZGVmIGxvbmcgUHlfaGFzaF90 CisgCisgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbChSaW5nKToKKy0gICAgY2Rl ZiBvYmplY3QgX19uZ2VucworKyAgICBjZGVmIG9iamVjdCBfbmdlbnMKKyAgICAgY2RlZiBvYmpl Y3QgX2MKKyAgICAgY2RlZiBvYmplY3QgX2QKKy0gICAgY2RlZiBvYmplY3QgX190ZXJtX29yZGVy CisrICAgIGNkZWYgb2JqZWN0IF90ZXJtX29yZGVyCisgICAgIGNkZWYgcHVibGljIG9iamVjdCBf aGFzX3Npbmd1bGFyCisgICAgIGNkZWYgcHVibGljIG9iamVjdCBfbWFnbWFfZ2VucywgX21hZ21h X2NhY2hlCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwu cHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHl4CitpbmRleCBhNjQ3ZDY4 ZTA4ZC4uYmM0MzI2MTFjODkgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BsdXJhbC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB5eAor QEAgLTMzNiw4ICszMzYsOCBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsKFJp bmcpOgorICAgICAgICAgc2VsZi5fcmluZyA9IHNpbmd1bGFyX3JpbmdfcmVmZXJlbmNlKHJ3Ll9y aW5nKQorICAgICAgICAgc2VsZi5fcmluZy5TaG9ydE91dCA9IDAKKyAKKy0gICAgICAgIHNlbGYu X19uZ2VucyA9IG4KKy0gICAgICAgIHNlbGYuX190ZXJtX29yZGVyID0gb3JkZXIKKysgICAgICAg IHNlbGYuX25nZW5zID0gbgorKyAgICAgICAgc2VsZi5fdGVybV9vcmRlciA9IG9yZGVyCisgCisg ICAgICAgICBSaW5nLl9faW5pdF9fKHNlbGYsIGJhc2VfcmluZywgbmFtZXMsIGNhdGVnb3J5PWNh dGVnb3J5KQorICAgICAgICAgc2VsZi5fcG9wdWxhdGVfY29lcmNpb25fbGlzdHNfKCkKK0BAIC02 NzMsNyArNjczLDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbChSaW5nKToK KyAgICAgICAgICAgICBzYWdlOiBQLnRlcm1fb3JkZXIoKQorICAgICAgICAgICAgIERlZ3JlZSBy ZXZlcnNlIGxleGljb2dyYXBoaWMgdGVybSBvcmRlcgorICAgICAgICAgIiIiCistICAgICAgICBy ZXR1cm4gc2VsZi5fX3Rlcm1fb3JkZXIKKysgICAgICAgIHJldHVybiBzZWxmLl90ZXJtX29yZGVy CisgCisgICAgIGRlZiBpc19jb21tdXRhdGl2ZShzZWxmKToKKyAgICAgICAgICIiIgorQEAgLTcy Nyw3ICs3MjcsNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsKFJpbmcpOgor ICAgICAgICAgZnJvbSBzYWdlLnJlcGwucmljaF9vdXRwdXQuYmFja2VuZF9iYXNlIGltcG9ydCBC YWNrZW5kQmFzZQorICAgICAgICAgZnJvbSBzYWdlLnJlcGwuZGlzcGxheS5wcmV0dHlfcHJpbnQg aW1wb3J0IFNhZ2VQcmV0dHlQcmludGVyCisgICAgICAgICB2YXJzdHIgPSAiLCAiLmpvaW4oY2hh cl90b19zdHIoclJpbmdWYXIoaSwgc2VsZi5fcmluZykpCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fX25nZW5zKSkKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICBmb3IgaSBpbiByYW5nZShzZWxmLl9uZ2VucykpCisgICAgICAgICBiYWNrZW5kID0g QmFja2VuZEJhc2UoKQorICAgICAgICAgcmVsYXRpb25zID0gYmFja2VuZC5fYXBwbHlfcHJldHR5 X3ByaW50ZXIoU2FnZVByZXR0eVByaW50ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbGF0aW9ucygpKQorQEAgLTgzMCw3ICs4MzAs NyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsKFJpbmcpOgorICAgICAgICAg ICAgIHNhZ2U6IFAubmdlbnMoKQorICAgICAgICAgICAgIDMKKyAgICAgICAgICIiIgorLSAgICAg ICAgcmV0dXJuIGludChzZWxmLl9fbmdlbnMpCisrICAgICAgICByZXR1cm4gaW50KHNlbGYuX25n ZW5zKQorIAorICAgICBkZWYgZ2VuKHNlbGYsIGludCBuPTApOgorICAgICAgICAgIiIiCitAQCAt ODU3LDcgKzg1Nyw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsUmluZ19wbHVyYWwoUmluZyk6 CisgICAgICAgICBjZGVmIHBvbHkgKl9wCisgICAgICAgICBjZGVmIHJpbmcgKl9yaW5nID0gc2Vs Zi5fcmluZworIAorLSAgICAgICAgaWYgbiA8IDAgb3IgbiA+PSBzZWxmLl9fbmdlbnM6CisrICAg ICAgICBpZiBuIDwgMCBvciBuID49IHNlbGYuX25nZW5zOgorICAgICAgICAgICAgIHJhaXNlIFZh bHVlRXJyb3IoIkdlbmVyYXRvciBub3QgZGVmaW5lZC4iKQorIAorICAgICAgICAgckNoYW5nZUN1 cnJSaW5nKF9yaW5nKQorQEAgLTIzNTIsNyArMjM1Miw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9t aWFsX3BsdXJhbChSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoK KyAgICAgICAgICAgICAgICAgeCA9ICh4LCkKKyAKKy0gICAgICAgIGlmIGxlbih4KSAhPSAoPE5D UG9seW5vbWlhbFJpbmdfcGx1cmFsPnNlbGYuX3BhcmVudCkuX19uZ2VuczoKKysgICAgICAgIGlm IGxlbih4KSAhPSAoPE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsPnNlbGYuX3BhcmVudCkuX25nZW5z OgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigieCBtdXN0IGhhdmUgbGVuZ3RoIHNlbGYu bmdlbnMoKSIpCisgCisgICAgICAgICBtID0gcF9JU2V0KDEscikKK0BAIC0yODkwLDggKzI4OTAs OCBAQCBjcGRlZiBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgbmV3X0NSaW5nKFJpbmdXcmFw IHJ3LCBiYXNlX3JpbmcpOgorIAorICAgICBzZWxmLl9yaW5nLlNob3J0T3V0ID0gMAorIAorLSAg ICBzZWxmLl9fbmdlbnMgPSBydy5uZ2VucygpCistICAgIHNlbGYuX190ZXJtX29yZGVyID0gIFRl cm1PcmRlcihydy5vcmRlcmluZ19zdHJpbmcoKSwgZm9yY2U9VHJ1ZSkKKysgICAgc2VsZi5fbmdl bnMgPSBydy5uZ2VucygpCisrICAgIHNlbGYuX3Rlcm1fb3JkZXIgPSAgVGVybU9yZGVyKHJ3Lm9y ZGVyaW5nX3N0cmluZygpLCBmb3JjZT1UcnVlKQorIAorICAgICBQYXJlbnRXaXRoR2Vucy5fX2lu aXRfXyhzZWxmLCBiYXNlX3JpbmcsIHR1cGxlKHJ3LnZhcl9uYW1lcygpKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbm9ybWFsaXplPUZhbHNlKQorQEAgLTI5NjIsOCArMjk2Miw4IEBA IGNwZGVmIE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsIG5ld19OUmluZyhSaW5nV3JhcCBydywgYmFz ZV9yaW5nKToKKyAKKyAgICAgc2VsZi5fcmluZy5TaG9ydE91dCA9IDAKKyAKKy0gICAgc2VsZi5f X25nZW5zID0gcncubmdlbnMoKQorLSAgICBzZWxmLl9fdGVybV9vcmRlciA9ICBUZXJtT3JkZXIo cncub3JkZXJpbmdfc3RyaW5nKCksIGZvcmNlPVRydWUpCisrICAgIHNlbGYuX25nZW5zID0gcncu bmdlbnMoKQorKyAgICBzZWxmLl90ZXJtX29yZGVyID0gIFRlcm1PcmRlcihydy5vcmRlcmluZ19z dHJpbmcoKSwgZm9yY2U9VHJ1ZSkKKyAKKyAgICAgUGFyZW50V2l0aEdlbnMuX19pbml0X18oc2Vs ZiwgYmFzZV9yaW5nLCBydy52YXJfbmFtZXMoKSkKKyAjICAgIHNlbGYuX3BvcHVsYXRlX2NvZXJj aW9uX2xpc3RzXygpICAjID8/PworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21p YWwvcG9seW5vbWlhbF9jb21wbGV4X2FyYi5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BvbHlub21pYWxfY29tcGxleF9hcmIucHhkCitpbmRleCBhYTRlMmExYzBkYy4uZTU0ZDg1ZTk2 MWIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfY29t cGxleF9hcmIucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxf Y29tcGxleF9hcmIucHhkCitAQCAtMiw1ICsyLDUgQEAgZnJvbSBzYWdlLmxpYnMuYXJiLmFjYl9w b2x5IGNpbXBvcnQgKgorIGZyb20gc2FnZS5yaW5ncy5wb2x5bm9taWFsLnBvbHlub21pYWxfZWxl bWVudCBjaW1wb3J0IFBvbHlub21pYWwKKyAKKyBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxl eF9hcmIoUG9seW5vbWlhbCk6CistICAgIGNkZWYgYWNiX3BvbHlfc3RydWN0WzFdIF9fcG9seSAj IGh0dHBzOi8vZ2l0aHViLmNvbS9jeXRob24vY3l0aG9uL2lzc3Vlcy8xOTg0CisrICAgIGNkZWYg YWNiX3BvbHlfc3RydWN0WzFdIF9wb2x5ICMgaHR0cHM6Ly9naXRodWIuY29tL2N5dGhvbi9jeXRo b24vaXNzdWVzLzE5ODQKKyAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIF9uZXcoc2Vs ZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfY29t cGxleF9hcmIucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBs ZXhfYXJiLnB5eAoraW5kZXggZTUxMjY4YjRiNTQuLjU3YzFhNTJlZGU0IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBsZXhfYXJiLnB5eAorKysr IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBsZXhfYXJiLnB5eAor QEAgLTc1LDcgKzc1LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlu b21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IENvbXBsZXhCYWxsRmllbGQoMilbJ3knXSgpCisg ICAgICAgICAgICAgMAorICAgICAgICAgIiIiCistICAgICAgICBhY2JfcG9seV9pbml0KHNlbGYu X19wb2x5KQorKyAgICAgICAgYWNiX3BvbHlfaW5pdChzZWxmLl9wb2x5KQorIAorICAgICBkZWYg X19kZWFsbG9jX18oc2VsZik6CisgICAgICAgICByIiIiCitAQCAtODQsNyArODQsNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg c2FnZTogcG9sID0gQ0JGWyd4J10oKQorICAgICAgICAgICAgIHNhZ2U6IGRlbCBwb2wKKyAgICAg ICAgICIiIgorLSAgICAgICAgYWNiX3BvbHlfY2xlYXIoc2VsZi5fX3BvbHkpCisrICAgICAgICBh Y2JfcG9seV9jbGVhcihzZWxmLl9wb2x5KQorIAorICAgICBjZGVmIFBvbHlub21pYWxfY29tcGxl eF9hcmIgX25ldyhzZWxmKToKKyAgICAgICAgIHIiIiIKK0BAIC0xNDAsNDkgKzE0MCw0OSBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBQ b2x5bm9taWFsLl9faW5pdF9fKHNlbGYsIHBhcmVudCwgaXNfZ2VuPWlzX2dlbikKKyAKKyAgICAg ICAgIGlmIGlzX2dlbjoKKy0gICAgICAgICAgICBhY2JfcG9seV9zZXRfY29lZmZfc2koc2VsZi5f X3BvbHksIDEsIDEpCisrICAgICAgICAgICAgYWNiX3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX3Bv bHksIDEsIDEpCisgICAgICAgICBlbGlmIHggaXMgTm9uZToKKy0gICAgICAgICAgICBhY2JfcG9s eV96ZXJvKHNlbGYuX19wb2x5KQorKyAgICAgICAgICAgIGFjYl9wb2x5X3plcm8oc2VsZi5fcG9s eSkKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKToK Ky0gICAgICAgICAgICBhY2JfcG9seV9zZXQoc2VsZi5fX3BvbHksICg8UG9seW5vbWlhbF9jb21w bGV4X2FyYj4geCkuX19wb2x5KQorKyAgICAgICAgICAgIGFjYl9wb2x5X3NldChzZWxmLl9wb2x5 LCAoPFBvbHlub21pYWxfY29tcGxleF9hcmI+IHgpLl9wb2x5KQorICAgICAgICAgZWxpZiBpc2lu c3RhbmNlKHgsIENvbXBsZXhCYWxsKToKKy0gICAgICAgICAgICBhY2JfcG9seV9zZXRfY29lZmZf YWNiKHNlbGYuX19wb2x5LCAwLCAoPENvbXBsZXhCYWxsPiB4KS52YWx1ZSkKKysgICAgICAgICAg ICBhY2JfcG9seV9zZXRfY29lZmZfYWNiKHNlbGYuX3BvbHksIDAsICg8Q29tcGxleEJhbGw+IHgp LnZhbHVlKQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBDb2VmZiA9IHBhcmVudC5iYXNl X3JpbmcoKQorICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoeCwgbGlzdCk6CisgICAgICAgICAg ICAgICAgIGxzdCA9IDxsaXN0PiB4CisgICAgICAgICAgICAgICAgIGxlbmd0aCA9IGxlbihsc3Qp CistICAgICAgICAgICAgICAgIHNpZ19vbigpOyBhY2JfcG9seV9maXRfbGVuZ3RoKHNlbGYuX19w b2x5LCBsZW5ndGgpOyBzaWdfb2ZmKCkKKysgICAgICAgICAgICAgICAgc2lnX29uKCk7IGFjYl9w b2x5X2ZpdF9sZW5ndGgoc2VsZi5fcG9seSwgbGVuZ3RoKTsgc2lnX29mZigpCisgICAgICAgICAg ICAgICAgIGZvciBpIGluIHJhbmdlKGxlbmd0aCk6CisgICAgICAgICAgICAgICAgICAgICBiYWxs ID0gQ29lZmYobHN0W2ldKQorLSAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfc2V0X2NvZWZm X2FjYihzZWxmLl9fcG9seSwgaSwgYmFsbC52YWx1ZSkKKysgICAgICAgICAgICAgICAgICAgIGFj Yl9wb2x5X3NldF9jb2VmZl9hY2Ioc2VsZi5fcG9seSwgaSwgYmFsbC52YWx1ZSkKKyAgICAgICAg ICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgdHVwbGUpOgorICAgICAgICAgICAgICAgICB0cGwgPSA8 dHVwbGU+IHgKKyAgICAgICAgICAgICAgICAgbGVuZ3RoID0gbGVuKHRwbCkKKy0gICAgICAgICAg ICAgICAgc2lnX29uKCk7IGFjYl9wb2x5X2ZpdF9sZW5ndGgoc2VsZi5fX3BvbHksIGxlbmd0aCk7 IHNpZ19vZmYoKQorKyAgICAgICAgICAgICAgICBzaWdfb24oKTsgYWNiX3BvbHlfZml0X2xlbmd0 aChzZWxmLl9wb2x5LCBsZW5ndGgpOyBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAgZm9yIGkg aW4gcmFuZ2UobGVuZ3RoKToKKyAgICAgICAgICAgICAgICAgICAgIGJhbGwgPSBDb2VmZih0cGxb aV0pCistICAgICAgICAgICAgICAgICAgICBhY2JfcG9seV9zZXRfY29lZmZfYWNiKHNlbGYuX19w b2x5LCBpLCBiYWxsLnZhbHVlKQorKyAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfc2V0X2Nv ZWZmX2FjYihzZWxmLl9wb2x5LCBpLCBiYWxsLnZhbHVlKQorICAgICAgICAgICAgIGVsaWYgaXNp bnN0YW5jZSh4LCBQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgcG9sID0gPFBvbHlub21p YWw+IHgKKyAgICAgICAgICAgICAgICAgbGVuZ3RoID0gcG9sLmRlZ3JlZSgpICsgMQorLSAgICAg ICAgICAgICAgICBzaWdfb24oKTsgYWNiX3BvbHlfZml0X2xlbmd0aChzZWxmLl9fcG9seSwgbGVu Z3RoKTsgc2lnX29mZigpCisrICAgICAgICAgICAgICAgIHNpZ19vbigpOyBhY2JfcG9seV9maXRf bGVuZ3RoKHNlbGYuX3BvbHksIGxlbmd0aCk7IHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICBm b3IgaSBpbiByYW5nZShsZW5ndGgpOgorICAgICAgICAgICAgICAgICAgICAgYmFsbCA9IENvZWZm KHBvbC5nZXRfdW5zYWZlKGkpKQorLSAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfc2V0X2Nv ZWZmX2FjYihzZWxmLl9fcG9seSwgaSwgYmFsbC52YWx1ZSkKKysgICAgICAgICAgICAgICAgICAg IGFjYl9wb2x5X3NldF9jb2VmZl9hY2Ioc2VsZi5fcG9seSwgaSwgYmFsbC52YWx1ZSkKKyAgICAg ICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgZGljdCk6CisgICAgICAgICAgICAgICAgIGRjdCA9 IDxkaWN0PiB4CisgICAgICAgICAgICAgICAgIGlmIGxlbihkY3QpID09IDA6CistICAgICAgICAg ICAgICAgICAgICBhY2JfcG9seV96ZXJvKHNlbGYuX19wb2x5KQorKyAgICAgICAgICAgICAgICAg ICAgYWNiX3BvbHlfemVybyhzZWxmLl9wb2x5KQorICAgICAgICAgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gbWF4KGludChpKSBmb3IgaSBpbiBkY3QpICsgMQor LSAgICAgICAgICAgICAgICAgICAgc2lnX29uKCk7IGFjYl9wb2x5X2ZpdF9sZW5ndGgoc2VsZi5f X3BvbHksIGxlbmd0aCk7IHNpZ19vZmYoKQorKyAgICAgICAgICAgICAgICAgICAgc2lnX29uKCk7 IGFjYl9wb2x5X2ZpdF9sZW5ndGgoc2VsZi5fcG9seSwgbGVuZ3RoKTsgc2lnX29mZigpCisgICAg ICAgICAgICAgICAgICAgICBmb3IgaSwgYyBpbiBkY3QuaXRlcml0ZW1zKCk6CisgICAgICAgICAg ICAgICAgICAgICAgICAgYmFsbCA9IENvZWZmKGMpCistICAgICAgICAgICAgICAgICAgICAgICAg YWNiX3BvbHlfc2V0X2NvZWZmX2FjYihzZWxmLl9fcG9seSwgaSwgYmFsbC52YWx1ZSkKKysgICAg ICAgICAgICAgICAgICAgICAgICBhY2JfcG9seV9zZXRfY29lZmZfYWNiKHNlbGYuX3BvbHksIGks IGJhbGwudmFsdWUpCisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgYmFsbCA9 IENvZWZmKHgpCistICAgICAgICAgICAgICAgIGFjYl9wb2x5X3NldF9jb2VmZl9hY2Ioc2VsZi5f X3BvbHksIDAsIGJhbGwudmFsdWUpCisrICAgICAgICAgICAgICAgIGFjYl9wb2x5X3NldF9jb2Vm Zl9hY2Ioc2VsZi5fcG9seSwgMCwgYmFsbC52YWx1ZSkKKyAKKyAgICAgZGVmIF9fcmVkdWNlX18o c2VsZik6CisgICAgICAgICByIiIiCitAQCAtMjE5LDEyICsyMTksMTIgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IFBv bChbMSwgMCwgMCwgMF0pLmRlZ3JlZSgpCisgICAgICAgICAgICAgMAorICAgICAgICAgIiIiCist ICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKGFjYl9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkp CisrICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKGFjYl9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5 KSkKKyAKKyAgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qgbik6CisgICAgICAg ICBjZGVmIENvbXBsZXhCYWxsIHJlcyA9IENvbXBsZXhCYWxsLl9fbmV3X18oQ29tcGxleEJhbGwp CisgICAgICAgICByZXMuX3BhcmVudCA9IHNlbGYuX3BhcmVudC5fYmFzZQorLSAgICAgICAgYWNi X3BvbHlfZ2V0X2NvZWZmX2FjYihyZXMudmFsdWUsIHNlbGYuX19wb2x5LCBuKQorKyAgICAgICAg YWNiX3BvbHlfZ2V0X2NvZWZmX2FjYihyZXMudmFsdWUsIHNlbGYuX3BvbHksIG4pCisgICAgICAg ICByZXR1cm4gcmVzCisgCisgICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNvcHk9VHJ1 ZSk6CitAQCAtMjQxLDcgKzI0MSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2Fy YihQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBQb2woWzAsIDEsIFJCRigwLCByYWQ9 LjEpLCAwXSkubGlzdCgpCisgICAgICAgICAgICAgWzAsIDEuMDAwMDAwMDAwMDAwMDAwLCBbKy8t IDAuMTAxXV0KKyAgICAgICAgICIiIgorLSAgICAgICAgY2RlZiB1bnNpZ25lZCBsb25nIGxlbmd0 aCA9IGFjYl9wb2x5X2xlbmd0aChzZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgdW5zaWduZWQg bG9uZyBsZW5ndGggPSBhY2JfcG9seV9sZW5ndGgoc2VsZi5fcG9seSkKKyAgICAgICAgIHJldHVy biBbc2VsZi5nZXRfdW5zYWZlKG4pIGZvciBuIGluIHJhbmdlKGxlbmd0aCldCisgCisgICAgIGRl ZiBfX2Jvb2xfXyhzZWxmKToKK0BAIC0yNTcsNyArMjU3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IGJvb2woeikK KyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBhY2JfcG9s eV9sZW5ndGgoc2VsZi5fX3BvbHkpCisrICAgICAgICByZXR1cm4gYWNiX3BvbHlfbGVuZ3RoKHNl bGYuX3BvbHkpCisgCisgICAgICMgUmluZyBhbmQgRXVjbGlkZWFuIGFyaXRobWV0aWMKKyAKK0BA IC0yNzQsOSArMjc0LDkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlu b21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHJlcyA9IHNlbGYu X25ldygpCisgICAgICAgICBzaWdfb24oKQorICAgICAgICAgYWNiX3BvbHlfYWRkKAorLSAgICAg ICAgICAgICAgICByZXMuX19wb2x5LAorLSAgICAgICAgICAgICAgICBzZWxmLl9fcG9seSwKKy0g ICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2NvbXBsZXhfYXJiPiBvdGhlcikuX19wb2x5LAor KyAgICAgICAgICAgICAgICByZXMuX3BvbHksCisrICAgICAgICAgICAgICAgIHNlbGYuX3BvbHks CisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9jb21wbGV4X2FyYj4gb3RoZXIpLl9wb2x5 LAorICAgICAgICAgICAgICAgICBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisgICAg ICAgICByZXR1cm4gcmVzCitAQCAtMjkzLDcgKzI5Myw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQ b2x5bm9taWFsX2NvbXBsZXhfYXJiIHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24o KQorLSAgICAgICAgYWNiX3BvbHlfbmVnKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5KQorKyAgICAg ICAgYWNiX3BvbHlfbmVnKHJlcy5fcG9seSwgc2VsZi5fcG9seSkKKyAgICAgICAgIHNpZ19vZmYo KQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTMxMCw5ICszMTAsOSBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIFBvbHlu b21pYWxfY29tcGxleF9hcmIgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCisg ICAgICAgICBhY2JfcG9seV9zdWIoCistICAgICAgICAgICAgICAgIHJlcy5fX3BvbHksCistICAg ICAgICAgICAgICAgIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxf Y29tcGxleF9hcmI+IG90aGVyKS5fX3BvbHksCisrICAgICAgICAgICAgICAgIHJlcy5fcG9seSwK KysgICAgICAgICAgICAgICAgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgKDxQb2x5bm9t aWFsX2NvbXBsZXhfYXJiPiBvdGhlcikuX3BvbHksCisgICAgICAgICAgICAgICAgIHByZWMoc2Vs ZikpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKK0BAIC0zMzEsOSAr MzMxLDkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgor ICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHJlcyA9IHNlbGYuX25ldygpCisg ICAgICAgICBzaWdfb24oKQorICAgICAgICAgYWNiX3BvbHlfbXVsKAorLSAgICAgICAgICAgICAg ICByZXMuX19wb2x5LAorLSAgICAgICAgICAgICAgICBzZWxmLl9fcG9seSwKKy0gICAgICAgICAg ICAgICAgKDxQb2x5bm9taWFsX2NvbXBsZXhfYXJiPiBvdGhlcikuX19wb2x5LAorKyAgICAgICAg ICAgICAgICByZXMuX3BvbHksCisrICAgICAgICAgICAgICAgIHNlbGYuX3BvbHksCisrICAgICAg ICAgICAgICAgICg8UG9seW5vbWlhbF9jb21wbGV4X2FyYj4gb3RoZXIpLl9wb2x5LAorICAgICAg ICAgICAgICAgICBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1 cm4gcmVzCitAQCAtMzU0LDcgKzM1NCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4 X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFs X2NvbXBsZXhfYXJiIHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAg ICAgYWNiX3BvbHlfc2NhbGFyX211bChyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgKDxDb21wbGV4 QmFsbD4gYSkudmFsdWUsIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9zY2FsYXJfbXVs KHJlcy5fcG9seSwgc2VsZi5fcG9seSwgKDxDb21wbGV4QmFsbD4gYSkudmFsdWUsIHByZWMoc2Vs ZikpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC00MDks OCArNDA5LDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwp OgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHF1byA9IHNlbGYuX25ldygp CisgICAgICAgICBjZGVmIFBvbHlub21pYWxfY29tcGxleF9hcmIgcmVtID0gc2VsZi5fbmV3KCkK KyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBjZGVmIGJpbnQgc3VjY2VzcyA9IGFjYl9wb2x5 X2RpdnJlbShxdW8uX19wb2x5LCByZW0uX19wb2x5LCBzZWxmLl9fcG9seSwKKy0gICAgICAgICAg ICAgICAgZGl2Ll9fcG9seSwgcHJlYyhzZWxmKSkKKysgICAgICAgIGNkZWYgYmludCBzdWNjZXNz ID0gYWNiX3BvbHlfZGl2cmVtKHF1by5fcG9seSwgcmVtLl9wb2x5LCBzZWxmLl9wb2x5LAorKyAg ICAgICAgICAgICAgICBkaXYuX3BvbHksIHByZWMoc2VsZikpCisgICAgICAgICBzaWdfb2ZmKCkK KyAgICAgICAgIGlmIHN1Y2Nlc3M6CisgICAgICAgICAgICAgcmV0dXJuIHF1bywgcmVtCitAQCAt NDQ1LDE1ICs0NDUsMTUgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlu b21pYWwpOgorICAgICAgICAgaWYgbiA8IDA6CisgICAgICAgICAgICAgbiA9IDAKKyAgICAgICAg IHNpZ19vbigpCistICAgICAgICBhY2JfcG9seV9zZXQocmVzLl9fcG9seSwgc2VsZi5fX3BvbHkp CistICAgICAgICBhY2JfcG9seV90cnVuY2F0ZShyZXMuX19wb2x5LCBuKQorKyAgICAgICAgYWNi X3BvbHlfc2V0KHJlcy5fcG9seSwgc2VsZi5fcG9seSkKKysgICAgICAgIGFjYl9wb2x5X3RydW5j YXRlKHJlcy5fcG9seSwgbikKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJl cworIAorICAgICBjZGVmIF9pbnBsYWNlX3RydW5jYXRlKHNlbGYsIGxvbmcgbik6CisgICAgICAg ICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorLSAgICAgICAgYWNiX3BvbHlfdHJ1bmNh dGUoc2VsZi5fX3BvbHksIG4pCisrICAgICAgICBhY2JfcG9seV90cnVuY2F0ZShzZWxmLl9wb2x5 LCBuKQorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKyAgICAgZGVmIF9fbHNoaWZ0X18odmFsLCBu KToKK0BAIC00ODUsNyArNDg1LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJi KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHNlbGYg PSAoPFBvbHlub21pYWxfY29tcGxleF9hcmI+IHZhbCkKKyAgICAgICAgIGNkZWYgUG9seW5vbWlh bF9jb21wbGV4X2FyYiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAg ICAgIGFjYl9wb2x5X3NoaWZ0X2xlZnQocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG4pCisrICAg ICAgICBhY2JfcG9seV9zaGlmdF9sZWZ0KHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbikKKyAgICAg ICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTUxOCw3ICs1MTgsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAg ICBjZGVmIFBvbHlub21pYWxfY29tcGxleF9hcmIgc2VsZiA9ICg8UG9seW5vbWlhbF9jb21wbGV4 X2FyYj4gdmFsKQorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHJlcyA9IHNl bGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNiX3BvbHlfc2hpZnRfcmln aHQocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG4pCisrICAgICAgICBhY2JfcG9seV9zaGlmdF9y aWdodChyZXMuX3BvbHksIHNlbGYuX3BvbHksIG4pCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIHJldHVybiByZXMKKyAKK0BAIC01NDgsNyArNTQ4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgaWYgbiA8IDA6CisgICAgICAg ICAgICAgbiA9IDAKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBhY2JfcG9seV9tdWxsb3co cmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG15X290aGVyLl9fcG9seSwgbiwgcHJlYyhzZWxmKSkK KysgICAgICAgIGFjYl9wb2x5X211bGxvdyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIG15X290aGVy Ll9wb2x5LCBuLCBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1 cm4gcmVzCisgCitAQCAtNTc2LDcgKzU3Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21w bGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAgICAgICAgIG4g PSAwCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNiX3BvbHlfaW52X3NlcmllcyhyZXMu X19wb2x5LCBzZWxmLl9fcG9seSwgbiwgcHJlYyhzZWxmKSkKKysgICAgICAgIGFjYl9wb2x5X2lu dl9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBuLCBwcmVjKHNlbGYpKQorICAgICAgICAg c2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtNjEyLDcgKzYxMiw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGlm IG4gPCAwOgorICAgICAgICAgICAgIG4gPSAwCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAg YWNiX3BvbHlfcG93X3VpX3RydW5jX2JpbmV4cChyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgZXhw bywgbiwgcHJlYyhzZWxmKSkKKysgICAgICAgIGFjYl9wb2x5X3Bvd191aV90cnVuY19iaW5leHAo cmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBleHBvLCBuLCBwcmVjKHNlbGYpKQorICAgICAgICAgc2ln X29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtNjQ4LDcgKzY0OCw3IEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIG4g PCAwOgorICAgICAgICAgICAgIG4gPSAwCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNi X3BvbHlfbG9nX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgbiwgcHJlYyhzZWxmKSkK KysgICAgICAgIGFjYl9wb2x5X2xvZ19zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBuLCBw cmVjKHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitA QCAtNjcyLDcgKzY3Miw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5 bm9taWFsKToKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAgICAgICAgIG4gPSAwCisgICAgICAg ICBzaWdfb24oKQorLSAgICAgICAgYWNiX3BvbHlfZXhwX3NlcmllcyhyZXMuX19wb2x5LCBzZWxm Ll9fcG9seSwgbiwgcHJlYyhzZWxmKSkKKysgICAgICAgIGFjYl9wb2x5X2V4cF9zZXJpZXMocmVz Ll9wb2x5LCBzZWxmLl9wb2x5LCBuLCBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisg ICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtNjk3LDcgKzY5Nyw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIG4gPCAwOgorICAg ICAgICAgICAgIG4gPSAwCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNiX3BvbHlfc3Fy dF9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIG4sIHByZWMoc2VsZikpCisrICAgICAg ICBhY2JfcG9seV9zcXJ0X3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIG4sIHByZWMoc2Vs ZikpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC03MTYs NyArNzE2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwp OgorICAgICAgICAgaWYgbiA8IDA6CisgICAgICAgICAgICAgbiA9IDAKKyAgICAgICAgIHNpZ19v bigpCistICAgICAgICBhY2JfcG9seV9nYW1tYV9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3Bv bHksIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9nYW1tYV9zZXJpZXMocmVzLl9w b2x5LCBzZWxmLl9wb2x5LCBuLCBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisgICAg ICAgICByZXR1cm4gcmVzCisgCitAQCAtNzM1LDcgKzczNSw3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAg ICAgICAgIG4gPSAwCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNiX3BvbHlfbGdhbW1h X3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgbiwgcHJlYyhzZWxmKSkKKysgICAgICAg IGFjYl9wb2x5X2xnYW1tYV9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBuLCBwcmVjKHNl bGYpKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtNzU0 LDcgKzc1NCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFs KToKKyAgICAgICAgIGlmIG4gPCAwOgorICAgICAgICAgICAgIG4gPSAwCisgICAgICAgICBzaWdf b24oKQorLSAgICAgICAgYWNiX3BvbHlfcmdhbW1hX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9f cG9seSwgbiwgcHJlYyhzZWxmKSkKKysgICAgICAgIGFjYl9wb2x5X3JnYW1tYV9zZXJpZXMocmVz Ll9wb2x5LCBzZWxmLl9wb2x5LCBuLCBwcmVjKHNlbGYpKQorICAgICAgICAgc2lnX29mZigpCisg ICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtNzg0LDcgKzc4NCw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIG4gPCAwOgorICAg ICAgICAgICAgIG4gPSAwCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgYWNiX3BvbHlfbGFt YmVydHdfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBfYnJhbmNoLCAwLCBuLCBwcmVj KHNlbGYpKQorKyAgICAgICAgYWNiX3BvbHlfbGFtYmVydHdfc2VyaWVzKHJlcy5fcG9seSwgc2Vs Zi5fcG9seSwgX2JyYW5jaCwgMCwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAgIHNpZ19vZmYoKQor ICAgICAgICAgZm1wel9jbGVhcihfYnJhbmNoKQorICAgICAgICAgcmV0dXJuIHJlcworQEAgLTgx NCw3ICs4MTQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlh bCk6CisgICAgICAgICBjZGVmIENvbXBsZXhCYWxsIF9hID0gPENvbXBsZXhCYWxsPiAoc2VsZi5f cGFyZW50Ll9iYXNlLmNvZXJjZShhKSkKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9jb21wbGV4 X2FyYiByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9w b2x5X3pldGFfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBfYS52YWx1ZSwgZGVmbGF0 ZSwgbiwgcHJlYyhzZWxmKSkKKysgICAgICAgIGFjYl9wb2x5X3pldGFfc2VyaWVzKHJlcy5fcG9s eSwgc2VsZi5fcG9seSwgX2EudmFsdWUsIGRlZmxhdGUsIG4sIHByZWMoc2VsZikpCisgICAgICAg ICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC04NDYsMjQgKzg0NiwyNCBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAg ICBjZGVmIFBvbHlub21pYWxfY29tcGxleF9hcmIgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAg IGNkZWYgYWNiX3BvbHlfdCBzZWxmX3RzLCBvdGhlcl90cworICAgICAgICAgY2RlZiBhY2JfcHRy IGNjCistICAgICAgICBpZiBhY2JfcG9seV9sZW5ndGgob3RoZXIxLl9fcG9seSkgPiAwOgorLSAg ICAgICAgICAgIGNjID0gYWNiX3BvbHlfZ2V0X2NvZWZmX3B0cihvdGhlcjEuX19wb2x5LCAwKQor KyAgICAgICAgaWYgYWNiX3BvbHlfbGVuZ3RoKG90aGVyMS5fcG9seSkgPiAwOgorKyAgICAgICAg ICAgIGNjID0gYWNiX3BvbHlfZ2V0X2NvZWZmX3B0cihvdGhlcjEuX3BvbHksIDApCisgICAgICAg ICAgICAgaWYgbm90IGFjYl9pc196ZXJvKGNjKToKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkK KyAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfaW5p dChzZWxmX3RzKQorICAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfaW5pdChvdGhlcl90cykK Ky0gICAgICAgICAgICAgICAgICAgIGFjYl9wb2x5X3RheWxvcl9zaGlmdChzZWxmX3RzLCBzZWxm Ll9fcG9seSwgY2MsIHByZWMoc2VsZikpCistICAgICAgICAgICAgICAgICAgICBhY2JfcG9seV9z ZXQob3RoZXJfdHMsIG90aGVyMS5fX3BvbHkpCisrICAgICAgICAgICAgICAgICAgICBhY2JfcG9s eV90YXlsb3Jfc2hpZnQoc2VsZl90cywgc2VsZi5fcG9seSwgY2MsIHByZWMoc2VsZikpCisrICAg ICAgICAgICAgICAgICAgICBhY2JfcG9seV9zZXQob3RoZXJfdHMsIG90aGVyMS5fcG9seSkKKyAg ICAgICAgICAgICAgICAgICAgIGFjYl96ZXJvKGFjYl9wb2x5X2dldF9jb2VmZl9wdHIob3RoZXJf dHMsIDApKQorLSAgICAgICAgICAgICAgICAgICAgYWNiX3BvbHlfY29tcG9zZV9zZXJpZXMocmVz Ll9fcG9seSwgc2VsZl90cywgb3RoZXJfdHMsIG4sIHByZWMoc2VsZikpCisrICAgICAgICAgICAg ICAgICAgICBhY2JfcG9seV9jb21wb3NlX3NlcmllcyhyZXMuX3BvbHksIHNlbGZfdHMsIG90aGVy X3RzLCBuLCBwcmVjKHNlbGYpKQorICAgICAgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAg ICAgICAgICAgICAgYWNiX3BvbHlfY2xlYXIob3RoZXJfdHMpCisgICAgICAgICAgICAgICAgICAg ICBhY2JfcG9seV9jbGVhcihzZWxmX3RzKQorICAgICAgICAgICAgICAgICAgICAgc2lnX29mZigp CisgICAgICAgICAgICAgICAgIHJldHVybiByZXMKKyAgICAgICAgIHNpZ19vbigpCistICAgICAg ICBhY2JfcG9seV9jb21wb3NlX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgb3RoZXIx Ll9fcG9seSwgbiwgcHJlYyhzZWxmKSkKKysgICAgICAgIGFjYl9wb2x5X2NvbXBvc2Vfc2VyaWVz KHJlcy5fcG9seSwgc2VsZi5fcG9seSwgb3RoZXIxLl9wb2x5LCBuLCBwcmVjKHNlbGYpKQorICAg ICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtODk1LDEyICs4OTUs MTIgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAg ICAgICAgY2RlZiBQb2x5bm9taWFsX2NvbXBsZXhfYXJiIHJlcyA9IHNlbGYuX25ldygpCisgICAg ICAgICBpZiBuIDwgMDoKKyAgICAgICAgICAgICBuID0gMAorLSAgICAgICAgaWYgbm90IGFjYl9p c196ZXJvKGFjYl9wb2x5X2dldF9jb2VmZl9wdHIoc2VsZi5fX3BvbHksIDApKToKKysgICAgICAg IGlmIG5vdCBhY2JfaXNfemVybyhhY2JfcG9seV9nZXRfY29lZmZfcHRyKHNlbGYuX3BvbHksIDAp KToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ0aGUgY29uc3RhbnQgY29lZmZpY2ll bnQgbXVzdCBiZSB6ZXJvIikKKy0gICAgICAgIGlmIGFjYl9jb250YWluc196ZXJvKGFjYl9wb2x5 X2dldF9jb2VmZl9wdHIoc2VsZi5fX3BvbHksIDEpKToKKysgICAgICAgIGlmIGFjYl9jb250YWlu c196ZXJvKGFjYl9wb2x5X2dldF9jb2VmZl9wdHIoc2VsZi5fcG9seSwgMSkpOgorICAgICAgICAg ICAgIHJhaXNlIFZhbHVlRXJyb3IoInRoZSBsaW5lYXIgdGVybSBtdXN0IGJlIG5vbnplcm8iKQor ICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGFjYl9wb2x5X3JldmVydF9zZXJpZXMocmVzLl9f cG9seSwgc2VsZi5fX3BvbHksIG4sIHByZWMoc2VsZikpCisrICAgICAgICBhY2JfcG9seV9yZXZl cnRfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbiwgcHJlYyhzZWxmKSkKKyAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTkzOCwxNSArOTM4LDE1IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAg ICAgICAgICAgYmFsbCA9IENvbXBsZXhCYWxsLl9fbmV3X18oQ29tcGxleEJhbGwpCisgICAgICAg ICAgICAgICAgIGJhbGwuX3BhcmVudCA9IHNlbGYuX3BhcmVudC5fYmFzZQorICAgICAgICAgICAg ICAgICBzaWdfb24oKQorLSAgICAgICAgICAgICAgICBhY2JfcG9seV9ldmFsdWF0ZShiYWxsLnZh bHVlLCBzZWxmLl9fcG9seSwKKysgICAgICAgICAgICAgICAgYWNiX3BvbHlfZXZhbHVhdGUoYmFs bC52YWx1ZSwgc2VsZi5fcG9seSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoPENvbXBsZXhC YWxsPiBwb2ludCkudmFsdWUsIHByZWMoc2VsZikpCisgICAgICAgICAgICAgICAgIHNpZ19vZmYo KQorICAgICAgICAgICAgICAgICByZXR1cm4gYmFsbAorICAgICAgICAgICAgIGVsaWYgaXNpbnN0 YW5jZShwb2ludCwgUG9seW5vbWlhbF9jb21wbGV4X2FyYik6CisgICAgICAgICAgICAgICAgIHBv bHkgPSAoPFBvbHlub21pYWxfY29tcGxleF9hcmI+IHBvaW50KS5fbmV3KCkKKyAgICAgICAgICAg ICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgYWNiX3BvbHlfY29tcG9zZShwb2x5Ll9f cG9seSwgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFs X2NvbXBsZXhfYXJiPiBwb2ludCkuX19wb2x5LCBwcmVjKHNlbGYpKQorKyAgICAgICAgICAgICAg ICBhY2JfcG9seV9jb21wb3NlKHBvbHkuX3BvbHksIHNlbGYuX3BvbHksCisrICAgICAgICAgICAg ICAgICAgICAgICAgKDxQb2x5bm9taWFsX2NvbXBsZXhfYXJiPiBwb2ludCkuX3BvbHksIHByZWMo c2VsZikpCisgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICByZXR1 cm4gcG9seQorICAgICAgICAgICAgICMgVE9ETzogcGVyaGFwcyBhZGQgbW9yZSBzcGVjaWFsIGNh c2VzLCBlLmcuIGZvciByZWFsIGJhbGwsCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9wb2x5bm9taWFsX2VsZW1lbnQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9wb2x5bm9taWFsX2VsZW1lbnQucHhkCitpbmRleCAwODNmNTA2YjIyMi4uNWRjYmY0NTk3ZDAg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfZWxlbWVu dC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9lbGVtZW50 LnB4ZAorQEAgLTQ1LDEyICs0NSwxMiBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29tbXV0YXRp dmVQb2x5bm9taWFsKToKKyAgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpCisgICAgIGNwZGVm IF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQpCisgCistICAgIGNkZWYgcHVibGljIGRpY3QgX19jYWNo ZWRfbWV0aG9kcworKyAgICBjZGVmIHB1YmxpYyBkaWN0IF9jYWNoZWRfbWV0aG9kcworIAorIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICBjZGVm IFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSBfbmV3X2Moc2VsZiwgbGlzdCBjb2VmZnMsIFBhcmVu dCBQKQorLSAgICBjZGVmIGxpc3QgX19jb2VmZnMKKy0gICAgY2RlZiBpbnQgX19ub3JtYWxpemUo c2VsZikgZXhjZXB0IC0xCisrICAgIGNkZWYgbGlzdCBfY29lZmZzCisrICAgIGNkZWYgaW50IF9u b3JtYWxpemUoc2VsZikgZXhjZXB0IC0xCisgICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50 IGNvcHk9KikKKyAKKyBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZV9pbmV4YWN0 KFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSk6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3Mv cG9seW5vbWlhbC9wb2x5bm9taWFsX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9wb2x5bm9taWFsX2VsZW1lbnQucHl4CitpbmRleCA0ZDRiOWRkMTBmNS4uZDFjODAyODM1 YWUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfZWxl bWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9lbGVt ZW50LnB5eAorQEAgLTk4MDAsNyArOTgwMCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbChDb21t dXRhdGl2ZVBvbHlub21pYWwpOgorICAgICAgICAgICAgIDAKKyAgICAgICAgICIiIgorICAgICAg ICAgIyBfX2dldGl0ZW1fXyBhbHJlYWR5IHJldHVybnMgYSBwb2x5bm9taWFsISEKKy0gICAgICAg ICMgV2UgbXVzdCBub3QgaGF2ZSBjaGVjaz1GYWxzZSwgc2luY2UgMCBtdXN0IG5vdCBoYXZlIF9f Y29lZmZzID0gWzBdLgorKyAgICAgICAgIyBXZSBtdXN0IG5vdCBoYXZlIGNoZWNrPUZhbHNlLCBz aW5jZSAwIG11c3Qgbm90IGhhdmUgX2NvZWZmcyA9IFswXS4KKyAgICAgICAgIHJldHVybiA8UG9s eW5vbWlhbD5zZWxmLl9wYXJlbnQoc2VsZls6bl0pIywgY2hlY2s9RmFsc2UpCisgCisgICAgIGNk ZWYgX2lucGxhY2VfdHJ1bmNhdGUoc2VsZiwgbG9uZyBwcmVjKToKK0BAIC0xMTU0MSwxNiArMTE1 NDEsMTYgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6 CisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIHg9Tm9uZSwgaW50IGNoZWNrPTEsIGlz X2dlbj1GYWxzZSwgaW50IGNvbnN0cnVjdD0wLCAqKmt3ZHMpOgorICAgICAgICAgUG9seW5vbWlh bC5fX2luaXRfXyhzZWxmLCBwYXJlbnQsIGlzX2dlbj1pc19nZW4pCisgICAgICAgICBpZiB4IGlz IE5vbmU6CistICAgICAgICAgICAgc2VsZi5fX2NvZWZmcyA9IFtdCisrICAgICAgICAgICAgc2Vs Zi5fY29lZmZzID0gW10KKyAgICAgICAgICAgICByZXR1cm4KKyAKKyAgICAgICAgIFIgPSBwYXJl bnQuYmFzZV9yaW5nKCkKKyAgICAgICAgIGlmIGlzaW5zdGFuY2UoeCwgKGxpc3QsIHR1cGxlKSk6 CisgICAgICAgICAgICAgaWYgY2hlY2s6CistICAgICAgICAgICAgICAgIHNlbGYuX19jb2VmZnMg PSBbUih0KSBmb3IgdCBpbiB4XQorLSAgICAgICAgICAgICAgICBzZWxmLl9fbm9ybWFsaXplKCkK KysgICAgICAgICAgICAgICAgc2VsZi5fY29lZmZzID0gW1IodCkgZm9yIHQgaW4geF0KKysgICAg ICAgICAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKKyAgICAgICAgICAgICBlbHNlOgorLSAgICAg ICAgICAgICAgICBzZWxmLl9fY29lZmZzID0geAorKyAgICAgICAgICAgICAgICBzZWxmLl9jb2Vm ZnMgPSB4CisgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBpZiBzYWdlLnJpbmdzLmZy YWN0aW9uX2ZpZWxkX2VsZW1lbnQuaXNfRnJhY3Rpb25GaWVsZEVsZW1lbnQoeCk6CitAQCAtMTE1 NjUsMTkgKzExNTY1LDE5IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBv bHlub21pYWwpOgorICAgICAgICAgICAgIGVsaWYgUi5oYXNfY29lcmNlX21hcF9mcm9tKCg8RWxl bWVudD54KS5fcGFyZW50KTojIGlzIFIgb3IgKDxFbGVtZW50PngpLl9wYXJlbnQgPT0gUjoKKyAg ICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgaWYgeC5pc196ZXJvKCk6 CistICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2NvZWZmcyA9IFtdCisrICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5fY29lZmZzID0gW10KKyAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4KKyAgICAgICAgICAgICAgICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgVHlwZUVy cm9yKToKKyAgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICAgeCA9IFt4 XQorICAgICAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgICAgIHNlbGYuX19jb2VmZnMgPSBb UihhLCAqKmt3ZHMpIGZvciBhIGluIHgubGlzdChjb3B5PUZhbHNlKV0KKysgICAgICAgICAgICAg ICAgc2VsZi5fY29lZmZzID0gW1IoYSwgKiprd2RzKSBmb3IgYSBpbiB4Lmxpc3QoY29weT1GYWxz ZSldCisgICAgICAgICAgICAgICAgIGlmIGNoZWNrOgorLSAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fX25vcm1hbGl6ZSgpCisrICAgICAgICAgICAgICAgICAgICBzZWxmLl9ub3JtYWxpemUoKQor ICAgICAgICAgICAgICAgICByZXR1cm4KKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBp bnQpIGFuZCB4ID09IDA6CistICAgICAgICAgICAgc2VsZi5fX2NvZWZmcyA9IFtdCisrICAgICAg ICAgICAgc2VsZi5fY29lZmZzID0gW10KKyAgICAgICAgICAgICByZXR1cm4KKyAKKyAgICAgICAg IGVsaWYgaXNpbnN0YW5jZSh4LCBkaWN0KToKK0BAIC0xMTU5MywxNiArMTE1OTMsMTYgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgIyAgICAgICAg ICAgIGVsc2U6CisgIyAgICAgICAgICAgICAgICB4ID0gW10gICAgIyB6ZXJvIHBvbHlub21pYWwK KyAgICAgICAgIGlmIGNoZWNrOgorLSAgICAgICAgICAgIHNlbGYuX19jb2VmZnMgPSBbUih6LCAq Kmt3ZHMpIGZvciB6IGluIHhdCistICAgICAgICAgICAgc2VsZi5fX25vcm1hbGl6ZSgpCisrICAg ICAgICAgICAgc2VsZi5fY29lZmZzID0gW1IoeiwgKiprd2RzKSBmb3IgeiBpbiB4XQorKyAgICAg ICAgICAgIHNlbGYuX25vcm1hbGl6ZSgpCisgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgIHNl bGYuX19jb2VmZnMgPSB4CisrICAgICAgICAgICAgc2VsZi5fY29lZmZzID0geAorIAorICAgICBj ZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSBfbmV3X2Moc2VsZiwgbGlzdCBjb2VmZnMsIFBh cmVudCBQKToKKyAgICAgICAgIGNkZWYgdHlwZSB0ID0gdHlwZShzZWxmKQorICAgICAgICAgY2Rl ZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgZiA9IDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+ dC5fX25ld19fKHQpCisgICAgICAgICBmLl9wYXJlbnQgPSBQCistICAgICAgICBmLl9fY29lZmZz ID0gY29lZmZzCisrICAgICAgICBmLl9jb2VmZnMgPSBjb2VmZnMKKyAgICAgICAgIHJldHVybiBm CisgCisgICAgIGNwZGVmIFBvbHlub21pYWwgX25ld19jb25zdGFudF9wb2x5KHNlbGYsIGEsIFBh cmVudCBQKToKK0BAIC0xMTY0NCwxMCArMTE2NDQsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogdHlwZShmKQor ICAgICAgICAgICAgIDxjbGFzcyAnc2FnZS5yaW5ncy5wb2x5bm9taWFsLnBvbHlub21pYWxfZWxl bWVudC5Qb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UnPgorICAgICAgICAgIiIiCistICAgICAgICBy ZXR1cm4gbWFrZV9nZW5lcmljX3BvbHlub21pYWwsIChzZWxmLl9wYXJlbnQsIHNlbGYuX19jb2Vm ZnMpCisrICAgICAgICByZXR1cm4gbWFrZV9nZW5lcmljX3BvbHlub21pYWwsIChzZWxmLl9wYXJl bnQsIHNlbGYuX2NvZWZmcykKKyAKKyAgICAgZGVmIF9fYm9vbF9fKHNlbGYpOgorLSAgICAgICAg cmV0dXJuIGJvb2woc2VsZi5fX2NvZWZmcykKKysgICAgICAgIHJldHVybiBib29sKHNlbGYuX2Nv ZWZmcykKKyAKKyAgICAgY3BkZWYgYmludCBpc190ZXJtKHNlbGYpIGV4Y2VwdCAtMToKKyAgICAg ICAgICIiIgorQEAgLTExNjY3LDEwICsxMTY2NywxMCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf Z2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiAoMSArIDMqeF41 KS5pc190ZXJtKCkKKyAgICAgICAgICAgICBGYWxzZQorICAgICAgICAgIiIiCistICAgICAgICBp ZiBub3Qgc2VsZi5fX2NvZWZmczoKKysgICAgICAgIGlmIG5vdCBzZWxmLl9jb2VmZnM6CisgICAg ICAgICAgICAgcmV0dXJuIEZhbHNlCisgCistICAgICAgICBmb3IgYyBpbiBzZWxmLl9fY29lZmZz WzotMV06CisrICAgICAgICBmb3IgYyBpbiBzZWxmLl9jb2VmZnNbOi0xXToKKyAgICAgICAgICAg ICBpZiBjOgorICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBU cnVlCitAQCAtMTE2ODIsOSArMTE2ODIsOSBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJp Y19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBgYHNlbGYg KiB0ZXJtYGAsIHdoZXJlIGBgdGVybWBgIGlzIGEgcG9seW5vbWlhbAorICAgICAgICAgd2l0aCBh IHNpbmdsZSB0ZXJtLgorICAgICAgICAgIiIiCistICAgICAgICBjZGVmIFB5X3NzaXplX3QgZCA9 IGxlbiggKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+IHRlcm0pLl9fY29lZmZzICkgLSAxCisr ICAgICAgICBjZGVmIFB5X3NzaXplX3QgZCA9IGxlbiggKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVu c2U+IHRlcm0pLl9jb2VmZnMgKSAtIDEKKyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBpCistICAg ICAgICBjZGVmIGxpc3QgeCA9IHNlbGYuX19jb2VmZnMKKysgICAgICAgIGNkZWYgbGlzdCB4ID0g c2VsZi5fY29lZmZzCisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgZWxsID0gbGVuKHgpCisgICAg ICAgICBjID0gdGVybS5nZXRfdW5zYWZlKGQpCisgICAgICAgICBjZGVmIGxpc3QgdiA9IFtzZWxm LmJhc2VfcmluZygpLnplcm8oKV0gKiAoZCArIGVsbCkKK0BAIC0xMTY5NywxMCArMTE2OTcsMTAg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAg ICAgICBjZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSByZXMgPSBzZWxmLl9uZXdfYyh2LCBz ZWxmLl9wYXJlbnQpCisgICAgICAgICAjaWYgbm90IHZbbGVuKHYpLTFdOgorICAgICAgICAgIyAi bm9ybWFsaXplIiBjaGVja3MgdGhpcyBhbnl3YXkuLi4KKy0gICAgICAgIHJlcy5fX25vcm1hbGl6 ZSgpCisrICAgICAgICByZXMuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcmVzCisgCist ICAgIGNkZWYgaW50IF9fbm9ybWFsaXplKHNlbGYpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBpbnQg X25vcm1hbGl6ZShzZWxmKSBleGNlcHQgLTE6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RT OgorIAorQEAgLTExNzE4LDcgKzExNzE4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVy aWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgTm90 SW1wbGVtZW50ZWRFcnJvcjogY2Fubm90IGNoZWNrIHdoZXRoZXIgbnVtYmVyIGlzIG5vbi16ZXJv CisgICAgICAgICAiIiIKKy0gICAgICAgIGNkZWYgbGlzdCB4ID0gc2VsZi5fX2NvZWZmcworKyAg ICAgICAgY2RlZiBsaXN0IHggPSBzZWxmLl9jb2VmZnMKKyAgICAgICAgIGNkZWYgUHlfc3NpemVf dCBuID0gbGVuKHgpIC0gMQorICAgICAgICAgd2hpbGUgbiA+PSAwIGFuZCBub3QgeFtuXToKKyAg ICAgICAgICAgICBkZWwgeFtuXQorQEAgLTExNzQ3LDcgKzExNzQ3LDcgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTog Zls6M10KKyAgICAgICAgICAgICA0MC4wKnheMiArIDEwLjAqeCArIDEuMAorICAgICAgICAgIiIi CistICAgICAgICByZXR1cm4gc2VsZi5fX2NvZWZmc1tuXQorKyAgICAgICAgcmV0dXJuIHNlbGYu X2NvZWZmc1tuXQorIAorICAgICBkZWYgX3Vuc2FmZV9tdXRhdGUoc2VsZiwgbiwgdmFsdWUpOgor ICAgICAgICAgIiIiCitAQCAtMTE3NzAsMTcgKzExNzcwLDE3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBu ID0gaW50KG4pCisgICAgICAgICB2YWx1ZSA9IHNlbGYuYmFzZV9yaW5nKCkodmFsdWUpCistICAg ICAgICBpZiBuID49IDAgYW5kIG4gPCBsZW4oc2VsZi5fX2NvZWZmcyk6CistICAgICAgICAgICAg c2VsZi5fX2NvZWZmc1tuXSA9IHZhbHVlCistICAgICAgICAgICAgaWYgbiA9PSBsZW4oc2VsZi5f X2NvZWZmcykgYW5kIHZhbHVlID09IDA6CistICAgICAgICAgICAgICAgIHNlbGYuX19ub3JtYWxp emUoKQorKyAgICAgICAgaWYgbiA+PSAwIGFuZCBuIDwgbGVuKHNlbGYuX2NvZWZmcyk6CisrICAg ICAgICAgICAgc2VsZi5fY29lZmZzW25dID0gdmFsdWUKKysgICAgICAgICAgICBpZiBuID09IGxl bihzZWxmLl9jb2VmZnMpIGFuZCB2YWx1ZSA9PSAwOgorKyAgICAgICAgICAgICAgICBzZWxmLl9u b3JtYWxpemUoKQorICAgICAgICAgZWxpZiBuIDwgMDoKKyAgICAgICAgICAgICByYWlzZSBJbmRl eEVycm9yKCJwb2x5bm9taWFsIGNvZWZmaWNpZW50IGluZGV4IG11c3QgYmUgbm9ubmVnYXRpdmUi KQorICAgICAgICAgZWxpZiB2YWx1ZSAhPSAwOgorICAgICAgICAgICAgIHplcm8gPSBzZWxmLmJh c2VfcmluZygpLnplcm8oKQorLSAgICAgICAgICAgIGZvciBfIGluIHJhbmdlKGxlbihzZWxmLl9f Y29lZmZzKSwgbik6CistICAgICAgICAgICAgICAgIHNlbGYuX19jb2VmZnMuYXBwZW5kKHplcm8p CistICAgICAgICAgICAgc2VsZi5fX2NvZWZmcy5hcHBlbmQodmFsdWUpCisrICAgICAgICAgICAg Zm9yIF8gaW4gcmFuZ2UobGVuKHNlbGYuX2NvZWZmcyksIG4pOgorKyAgICAgICAgICAgICAgICBz ZWxmLl9jb2VmZnMuYXBwZW5kKHplcm8pCisrICAgICAgICAgICAgc2VsZi5fY29lZmZzLmFwcGVu ZCh2YWx1ZSkKKyAKKyAgICAgZGVmIF9fZmxvb3JkaXZfXyhzZWxmLCByaWdodCk6CisgICAgICAg ICAiIiIKK0BAIC0xMTgyMiw4ICsxMTgyMiw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5l cmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHJldHVybiAoPFBvbHlub21pYWxf Z2VuZXJpY19kZW5zZT5zZWxmKS5fZmxvb3JkaXZfKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+ cmlnaHQpCisgICAgICAgICBQID0gcGFyZW50KHNlbGYpCisgICAgICAgICBkID0gUC5iYXNlX3Jp bmcoKShyaWdodCkKKy0gICAgICAgIGNkZWYgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIHJlcyA9 ICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnNlbGYpLl9uZXdfYyhbYyAvLyBkIGZvciBjIGlu ICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnNlbGYpLl9fY29lZmZzXSwgUCkKKy0gICAgICAg IHJlcy5fX25vcm1hbGl6ZSgpCisrICAgICAgICBjZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5z ZSByZXMgPSAoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5zZWxmKS5fbmV3X2MoW2MgLy8gZCBm b3IgYyBpbiAoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5zZWxmKS5fY29lZmZzXSwgUCkKKysg ICAgICAgIHJlcy5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKyAgICAgY3Bk ZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorQEAgLTExODM5LDggKzExODM5LDggQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIGNkZWYgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIHJlcworICAgICAgICAgY2RlZiBQ eV9zc2l6ZV90IGNoZWNrPTAsIGksIG1pbgorLSAgICAgICAgeCA9ICg8UG9seW5vbWlhbF9nZW5l cmljX2RlbnNlPnNlbGYpLl9fY29lZmZzCistICAgICAgICB5ID0gKDxQb2x5bm9taWFsX2dlbmVy aWNfZGVuc2U+cmlnaHQpLl9fY29lZmZzCisrICAgICAgICB4ID0gKDxQb2x5bm9taWFsX2dlbmVy aWNfZGVuc2U+c2VsZikuX2NvZWZmcworKyAgICAgICAgeSA9ICg8UG9seW5vbWlhbF9nZW5lcmlj X2RlbnNlPnJpZ2h0KS5fY29lZmZzCisgICAgICAgICBpZiBsZW4oeCkgPiBsZW4oeSk6CisgICAg ICAgICAgICAgbWluID0gbGVuKHkpCisgICAgICAgICAgICAgaGlnaCA9IHhbbWluOl0KK0BAIC0x MTg1Miw3ICsxMTg1Miw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBv bHlub21pYWwpOgorICAgICAgICAgY2RlZiBsaXN0IGxvdyA9IFt4W2ldICsgeVtpXSBmb3IgaSBm cm9tIDAgPD0gaSA8IG1pbl0KKyAgICAgICAgIGlmIGxlbih4KSA9PSBsZW4oeSk6CisgICAgICAg ICAgICAgcmVzID0gc2VsZi5fbmV3X2MobG93LCBzZWxmLl9wYXJlbnQpCistICAgICAgICAgICAg cmVzLl9fbm9ybWFsaXplKCkKKysgICAgICAgICAgICByZXMuX25vcm1hbGl6ZSgpCisgICAgICAg ICAgICAgcmV0dXJuIHJlcworICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5fbmV3X2MobG93ICsgaGlnaCwgc2VsZi5fcGFyZW50KQorQEAgLTExODYwLDggKzExODYwLDgg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAg IGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9nZW5l cmljX2RlbnNlIHJlcworICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGNoZWNrPTAsIGksIG1pbgor LSAgICAgICAgeCA9ICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnNlbGYpLl9fY29lZmZzCist ICAgICAgICB5ID0gKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+cmlnaHQpLl9fY29lZmZzCisr ICAgICAgICB4ID0gKDxQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2U+c2VsZikuX2NvZWZmcworKyAg ICAgICAgeSA9ICg8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnJpZ2h0KS5fY29lZmZzCisgICAg ICAgICBpZiBsZW4oeCkgPiBsZW4oeSk6CisgICAgICAgICAgICAgbWluID0gbGVuKHkpCisgICAg ICAgICAgICAgaGlnaCA9IHhbbWluOl0KK0BAIC0xMTg3MywzMyArMTE4NzMsMzMgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICBsb3cg PSBbeFtpXSAtIHlbaV0gZm9yIGkgZnJvbSAwIDw9IGkgPCBtaW5dCisgICAgICAgICBpZiBsZW4o eCkgPT0gbGVuKHkpOgorICAgICAgICAgICAgIHJlcyA9IHNlbGYuX25ld19jKGxvdywgc2VsZi5f cGFyZW50KQorLSAgICAgICAgICAgIHJlcy5fX25vcm1hbGl6ZSgpCisrICAgICAgICAgICAgcmVz Ll9ub3JtYWxpemUoKQorICAgICAgICAgICAgIHJldHVybiByZXMKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKGxvdyArIGhpZ2gsIHNlbGYuX3BhcmVudCkK KyAKKyAgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgYyk6CistICAgICAgICBpZiBub3Qg c2VsZi5fX2NvZWZmczoKKysgICAgICAgIGlmIG5vdCBzZWxmLl9jb2VmZnM6CisgICAgICAgICAg ICAgcmV0dXJuIHNlbGYKKy0gICAgICAgIGlmIGMuX3BhcmVudCBpcyBub3QgKDxFbGVtZW50PnNl bGYuX19jb2VmZnNbMF0pLl9wYXJlbnQ6CistICAgICAgICAgICAgYyA9ICg8RWxlbWVudD5zZWxm Ll9fY29lZmZzWzBdKS5fcGFyZW50LmNvZXJjZShjKQorLSAgICAgICAgdiA9IFtjICogYSBmb3Ig YSBpbiBzZWxmLl9fY29lZmZzXQorKyAgICAgICAgaWYgYy5fcGFyZW50IGlzIG5vdCAoPEVsZW1l bnQ+c2VsZi5fY29lZmZzWzBdKS5fcGFyZW50OgorKyAgICAgICAgICAgIGMgPSAoPEVsZW1lbnQ+ c2VsZi5fY29lZmZzWzBdKS5fcGFyZW50LmNvZXJjZShjKQorKyAgICAgICAgdiA9IFtjICogYSBm b3IgYSBpbiBzZWxmLl9jb2VmZnNdCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfZ2VuZXJpY19k ZW5zZSByZXMgPSBzZWxmLl9uZXdfYyh2LCBzZWxmLl9wYXJlbnQpCisgICAgICAgICAjaWYgbm90 IHZbbGVuKHYpLTFdOgorICAgICAgICAgIyAibm9ybWFsaXplIiBjaGVja3MgdGhpcyBhbnl3YXku Li4KKy0gICAgICAgIHJlcy5fX25vcm1hbGl6ZSgpCisrICAgICAgICByZXMuX25vcm1hbGl6ZSgp CisgICAgICAgICByZXR1cm4gcmVzCisgCisgICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50 IGMpOgorLSAgICAgICAgaWYgbm90IHNlbGYuX19jb2VmZnM6CisrICAgICAgICBpZiBub3Qgc2Vs Zi5fY29lZmZzOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCistICAgICAgICBpZiBjLl9wYXJl bnQgaXMgbm90ICg8RWxlbWVudD5zZWxmLl9fY29lZmZzWzBdKS5fcGFyZW50OgorLSAgICAgICAg ICAgIGMgPSAoPEVsZW1lbnQ+c2VsZi5fX2NvZWZmc1swXSkuX3BhcmVudC5jb2VyY2UoYykKKy0g ICAgICAgIHYgPSBbYSAqIGMgZm9yIGEgaW4gc2VsZi5fX2NvZWZmc10KKysgICAgICAgIGlmIGMu X3BhcmVudCBpcyBub3QgKDxFbGVtZW50PnNlbGYuX2NvZWZmc1swXSkuX3BhcmVudDoKKysgICAg ICAgICAgICBjID0gKDxFbGVtZW50PnNlbGYuX2NvZWZmc1swXSkuX3BhcmVudC5jb2VyY2UoYykK KysgICAgICAgIHYgPSBbYSAqIGMgZm9yIGEgaW4gc2VsZi5fY29lZmZzXQorICAgICAgICAgY2Rl ZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgcmVzID0gc2VsZi5fbmV3X2Modiwgc2VsZi5fcGFy ZW50KQorICAgICAgICAgI2lmIG5vdCB2W2xlbih2KS0xXToKKyAgICAgICAgICMgIm5vcm1hbGl6 ZSIgY2hlY2tzIHRoaXMgYW55d2F5Li4uCistICAgICAgICByZXMuX19ub3JtYWxpemUoKQorKyAg ICAgICAgcmVzLl9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorICAgICBjcGRl ZiBjb25zdGFudF9jb2VmZmljaWVudChzZWxmKToKK0BAIC0xMTkxNiwxMCArMTE5MTYsMTAgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAg ICAgICAgc2FnZTogZi5jb25zdGFudF9jb2VmZmljaWVudCgpCisgICAgICAgICAgICAgdAorICAg ICAgICAgIiIiCistICAgICAgICBpZiBub3Qgc2VsZi5fX2NvZWZmczoKKysgICAgICAgIGlmIG5v dCBzZWxmLl9jb2VmZnM6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuYmFzZV9yaW5nKCkuemVy bygpCisgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9fY29lZmZzWzBd CisrICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NvZWZmc1swXQorIAorICAgICBjcGRlZiBsaXN0 IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUpOgorICAgICAgICAgIiIiCitAQCAtMTE5MzQsOSAr MTE5MzQsOSBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFs KToKKyAgICAgICAgICAgICBbMSwgOSwgMTIsIDhdCisgICAgICAgICAiIiIKKyAgICAgICAgIGlm IGNvcHk6CistICAgICAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5fX2NvZWZmcykKKysgICAgICAg ICAgICByZXR1cm4gbGlzdChzZWxmLl9jb2VmZnMpCisgICAgICAgICBlbHNlOgorLSAgICAgICAg ICAgIHJldHVybiBzZWxmLl9fY29lZmZzCisrICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NvZWZm cworIAorICAgICBkZWYgZGVncmVlKHNlbGYsIGdlbj1Ob25lKToKKyAgICAgICAgICIiIgorQEAg LTExOTU1LDcgKzExOTU1LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2Uo UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgPGNsYXNzICdzYWdlLnJpbmdzLmludGVnZXIuSW50 ZWdlcic+CisgCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzbWFsbEludGVnZXIobGVu KHNlbGYuX19jb2VmZnMpIC0gMSkKKysgICAgICAgIHJldHVybiBzbWFsbEludGVnZXIobGVuKHNl bGYuX2NvZWZmcykgLSAxKQorIAorICAgICBkZWYgc2hpZnQoc2VsZiwgUHlfc3NpemVfdCBuKToK KyAgICAgICAgIHIiIiIKK0BAIC0xMTk5MywxMyArMTE5OTMsMTMgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgcmV0dXJuIHNl bGYKKyAgICAgICAgIGlmIG4gPiAwOgorICAgICAgICAgICAgIG91dHB1dCA9IFtzZWxmLmJhc2Vf cmluZygpLnplcm8oKV0gKiBuCistICAgICAgICAgICAgb3V0cHV0LmV4dGVuZChzZWxmLl9fY29l ZmZzKQorKyAgICAgICAgICAgIG91dHB1dC5leHRlbmQoc2VsZi5fY29lZmZzKQorICAgICAgICAg ICAgIHJldHVybiBzZWxmLl9uZXdfYyhvdXRwdXQsIHNlbGYuX3BhcmVudCkKKyAgICAgICAgIGlm IG4gPCAwOgorLSAgICAgICAgICAgIGlmIG4gPiBsZW4oc2VsZi5fX2NvZWZmcykgLSAxOgorKyAg ICAgICAgICAgIGlmIG4gPiBsZW4oc2VsZi5fY29lZmZzKSAtIDE6CisgICAgICAgICAgICAgICAg IHJldHVybiBzZWxmLl9wYXJlbnQoW10pCisgICAgICAgICAgICAgZWxzZToKKy0gICAgICAgICAg ICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuX19jb2VmZnNbLWludChuKTpdLCBzZWxmLl9w YXJlbnQpCisrICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhzZWxmLl9jb2VmZnNb LWludChuKTpdLCBzZWxmLl9wYXJlbnQpCisgCisgICAgIEBjb2VyY2VfYmlub3AKKyAgICAgZGVm IHF1b19yZW0oc2VsZiwgb3RoZXIpOgorQEAgLTEyMDczLDggKzEyMDczLDggQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgcmV0 dXJuIHNlbGYsIHNlbGYKKyAKKyAgICAgICAgIFIgPSBzZWxmLl9wYXJlbnQuYmFzZV9yaW5nKCkK Ky0gICAgICAgIGNkZWYgbGlzdCB4ID0gbGlzdCgoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5z ZWxmKS5fX2NvZWZmcykgIyBtYWtlIGEgY29weQorLSAgICAgICAgY2RlZiBsaXN0IHkgPSAoPFBv bHlub21pYWxfZ2VuZXJpY19kZW5zZT5vdGhlcikuX19jb2VmZnMKKysgICAgICAgIGNkZWYgbGlz dCB4ID0gbGlzdCgoPFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZT5zZWxmKS5fY29lZmZzKSAjIG1h a2UgYSBjb3B5CisrICAgICAgICBjZGVmIGxpc3QgeSA9ICg8UG9seW5vbWlhbF9nZW5lcmljX2Rl bnNlPm90aGVyKS5fY29lZmZzCisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgbSA9IGxlbih4KSAg IyBkZWcoc2VsZik9bS0xCisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgbiA9IGxlbih5KSAgIyBk ZWcob3RoZXIpPW4tMQorICAgICAgICAgaWYgbSA8IG46CitAQCAtMTIxMzUsMTggKzEyMTM1LDE4 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAg ICAgICAgICAgIHNhZ2U6IHR5cGUoZikKKyAgICAgICAgICAgICA8Y2xhc3MgJ3NhZ2UucmluZ3Mu cG9seW5vbWlhbC5wb2x5bm9taWFsX2VsZW1lbnQuUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlJz4K KyAgICAgICAgICIiIgorLSAgICAgICAgbCA9IGxlbihzZWxmLl9fY29lZmZzKQorKyAgICAgICAg bCA9IGxlbihzZWxmLl9jb2VmZnMpCisgICAgICAgICBpZiBuID4gbDoKKyAgICAgICAgICAgICBu ID0gbAorLSAgICAgICAgd2hpbGUgbiA+IDAgYW5kIG5vdCBzZWxmLl9fY29lZmZzW24tMV06Cisr ICAgICAgICB3aGlsZSBuID4gMCBhbmQgbm90IHNlbGYuX2NvZWZmc1tuLTFdOgorICAgICAgICAg ICAgIG4gLT0gMQorLSAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHNlbGYuX19jb2VmZnNbOm5d LCBzZWxmLl9wYXJlbnQpCisrICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5fY29lZmZz WzpuXSwgc2VsZi5fcGFyZW50KQorIAorICAgICBjZGVmIF9pbnBsYWNlX3RydW5jYXRlKHNlbGYs IGxvbmcgbik6CistICAgICAgICBpZiBuIDwgbGVuKHNlbGYuX19jb2VmZnMpOgorLSAgICAgICAg ICAgIHdoaWxlIG4gPiAwIGFuZCBub3Qgc2VsZi5fX2NvZWZmc1tuLTFdOgorKyAgICAgICAgaWYg biA8IGxlbihzZWxmLl9jb2VmZnMpOgorKyAgICAgICAgICAgIHdoaWxlIG4gPiAwIGFuZCBub3Qg c2VsZi5fY29lZmZzW24tMV06CisgICAgICAgICAgICAgICAgIG4gLT0gMQorLSAgICAgICAgc2Vs Zi5fX2NvZWZmcyA9IHNlbGYuX19jb2VmZnNbOm5dCisrICAgICAgICBzZWxmLl9jb2VmZnMgPSBz ZWxmLl9jb2VmZnNbOm5dCisgICAgICAgICByZXR1cm4gc2VsZgorIAorIGRlZiBtYWtlX2dlbmVy aWNfcG9seW5vbWlhbChwYXJlbnQsIGNvZWZmcyk6CitAQCAtMTIzMDUsNyArMTIzMDUsNyBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZV9pbmV4YWN0KFBvbHlub21pYWxfZ2Vu ZXJpY19kZW5zZSk6CisgCisgICAgIC0gWGF2aWVyIENhcnVzbyAoMjAxMy0wMykKKyAgICAgIiIi CistICAgIGNkZWYgaW50IF9fbm9ybWFsaXplKHNlbGYpIGV4Y2VwdCAtMToKKysgICAgY2RlZiBp bnQgX25vcm1hbGl6ZShzZWxmKSBleGNlcHQgLTE6CisgICAgICAgICByIiIiCisgICAgICAgICBU RVNUUzo6CisgCitAQCAtMTIzMTYsNyArMTIzMTYsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf Z2VuZXJpY19kZW5zZV9pbmV4YWN0KFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSk6CisgICAgICAg ICAgICAgc2FnZTogUyhbMSwgUigwLCAyMCldKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgbmVlZHMgc2FnZS5yaW5ncy5wYWRpY3MKKyAgICAg ICAgICAgICBPKDVeMjApKnggKyAxICsgTyg1XjIwKQorICAgICAgICAgIiIiCistICAgICAgICBj ZGVmIGxpc3QgeCA9IHNlbGYuX19jb2VmZnMKKysgICAgICAgIGNkZWYgbGlzdCB4ID0gc2VsZi5f Y29lZmZzCisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgbiA9IGxlbih4KSAtIDEKKyAgICAgICAg IGNkZWYgUmluZ0VsZW1lbnQgYworICAgICAgICAgd2hpbGUgbiA+PSAwOgorQEAgLTEyMzc2LDcg KzEyMzc2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2VfaW5leGFjdChQ b2x5bm9taWFsX2dlbmVyaWNfZGVuc2UpOgorIAorICAgICAgICAgLSBYYXZpZXIgQ2FydXNvICgy MDEzLTAzKQorICAgICAgICAgIiIiCistICAgICAgICBjb2VmZnMgPSBzZWxmLl9fY29lZmZzCisr ICAgICAgICBjb2VmZnMgPSBzZWxmLl9jb2VmZnMKKyAgICAgICAgIGQgPSBsZW4oY29lZmZzKSAt IDEKKyAgICAgICAgIHdoaWxlIGQgPj0gMDoKKyAgICAgICAgICAgICBjID0gY29lZmZzW2RdCitA QCAtMTI0MjAsNyArMTI0MjAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5z ZV9pbmV4YWN0KFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSk6CisgCisgICAgICAgICAtIFhhdmll ciBDYXJ1c28gKDIwMTMtMDMpCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBsZW4oc2Vs Zi5fX2NvZWZmcykgLSAxCisrICAgICAgICByZXR1cm4gbGVuKHNlbGYuX2NvZWZmcykgLSAxCisg CisgCisgY2RlZiBjbGFzcyBDb25zdGFudFBvbHlub21pYWxTZWN0aW9uKE1hcCk6CitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf ZmxpbnQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfZmxpbnQucHhkCitpbmRleCAwM2M1Y2ViYmYwOS4uYjFiNTkzZDZhMjYgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9m bGludC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX2ZsaW50LnB4ZAorQEAgLTUsNyArNSw3IEBAIGZyb20gc2FnZS5yaW5ncy5pbnRl Z2VyIGNpbXBvcnQgSW50ZWdlcgorIGZyb20gc2FnZS5zdHJ1Y3R1cmUucGFyZW50IGNpbXBvcnQg UGFyZW50CisgCisgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9s eW5vbWlhbCk6CistICAgIGNkZWYgZm1wel9wb2x5X3QgX19wb2x5CisrICAgIGNkZWYgZm1wel9w b2x5X3QgX3BvbHkKKyAKKyAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQg X25ldyhzZWxmKQorICAgICBjcGRlZiBfdW5zYWZlX211dGF0ZShzZWxmLCBsb25nIG4sIHZhbHVl KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX2ZsaW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX2ZsaW50LnB5eAoraW5kZXggZTIwMWFjODQzYWQuLjE5NGViOTI2M2Iy IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlu b21pYWxfaW50ZWdlcl9kZW5zZV9mbGludC5weXgKK0BAIC05OSwxNCArOTksMTQgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAg ICByIiIiCisgICAgICAgICBUaGlzIGNhbGxzIHRoZSB1bmRlcmx5aW5nIEZMSU5UIGZtcHpfcG9s eSBjb25zdHJ1Y3RvcgorICAgICAgICAgIiIiCistICAgICAgICBmbXB6X3BvbHlfaW5pdChzZWxm Ll9fcG9seSkKKysgICAgICAgIGZtcHpfcG9seV9pbml0KHNlbGYuX3BvbHkpCisgCisgCisgICAg IGRlZiBfX2RlYWxsb2NfXyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIGNhbGxzIHRo ZSB1bmRlcmx5aW5nIEZMSU5UIGZtcHpfcG9seSBkZXN0cnVjdG9yCisgICAgICAgICAiIiIKKy0g ICAgICAgIGZtcHpfcG9seV9jbGVhcihzZWxmLl9fcG9seSkKKysgICAgICAgIGZtcHpfcG9seV9j bGVhcihzZWxmLl9wb2x5KQorIAorICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9m bGludCBfbmV3KHNlbGYpOgorICAgICAgICAgciIiIgorQEAgLTEzOSw3ICsxMzksNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAg ICAgIHguX2lzX2dlbiA9IDAKKyAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGEsIEludGVnZXIp OgorICAgICAgICAgICAgIGEgPSBaWihhKQorLSAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9t cHooeC5fX3BvbHksIDAsICg8SW50ZWdlcj5hKS52YWx1ZSkKKysgICAgICAgIGZtcHpfcG9seV9z ZXRfY29lZmZfbXB6KHguX3BvbHksIDAsICg8SW50ZWdlcj5hKS52YWx1ZSkKKyAgICAgICAgIHJl dHVybiB4CisgCisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIHg9Tm9uZSwgY2hlY2s9 VHJ1ZSwgaXNfZ2VuPUZhbHNlLAorQEAgLTIyNCw4ICsyMjQsOCBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIGlzaW5z dGFuY2UoeCwgUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgaWYgeC5wYXJlbnQoKSBpcyBzZWxm LnBhcmVudCgpOgorICAgICAgICAgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgICAgICAgICBm bXB6X3BvbHlfc2V0KHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PngpLl9fcG9seSkKKysgICAgICAgICAg ICAgICAgZm1wel9wb2x5X3NldChzZWxmLl9wb2x5LAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PngpLl9wb2x5KQorICAgICAg ICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAg ICAgZWxzZToKK0BAIC0yNDYsNyArMjQ2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgICAgICBkZWdyZWUg PSBpCisgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICBzaWdfb24oKQorLSAgICAg ICAgICAgICAgICBmbXB6X3BvbHlfcmVhbGxvYyhzZWxmLl9fcG9seSwgZGVncmVlICsgMSkKKysg ICAgICAgICAgICAgICAgZm1wel9wb2x5X3JlYWxsb2Moc2VsZi5fcG9seSwgZGVncmVlICsgMSkK KyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgZXhjZXB0IFJ1bnRpbWVF cnJvcjoKKyAgICAgICAgICAgICAgICAgcmFpc2UgT3ZlcmZsb3dFcnJvcigiQ2Fubm90IGFsbG9j YXRlIG1lbW9yeSEiKQorQEAgLTI1NSwxMyArMjU1LDEzIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICBpID0g aWlbMF0gaWYgdHlwZShpaSkgaXMgdHVwbGUgZWxzZSBpaQorICAgICAgICAgICAgICAgICBpZiBp c19zbWFsbF9weXRob25faW50KGEpOgorICAgICAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0g ICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZfc2koc2VsZi5fX3BvbHksIGks IGEpCisrICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX3Bv bHksIGksIGEpCisgICAgICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGEsIEludGVn ZXIpOgorICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBaWihhKQorICAgICAgICAgICAgICAg ICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRfY29lZmZf bXB6KHNlbGYuX19wb2x5LCBpLCAoPEludGVnZXI+YSkudmFsdWUpCisrICAgICAgICAgICAgICAg ICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX21weihzZWxmLl9wb2x5LCBpLCAoPEludGVnZXI+YSku dmFsdWUpCisgICAgICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICByZXR1 cm4KKyAKK0BAIC0yNzAsNyArMjcwLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgY2hlY2sgPSBGYWxzZQorIAor ICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIG50bF9aWlgpOiAgICAjIGNvZXJjaW9uIGZyb20g bnRsLnB5eCBvYmplY3QKKy0gICAgICAgICAgICBmbXB6X3BvbHlfc2V0X1paWChzZWxmLl9fcG9s eSwgKDxudGxfWlpYPngpLngpCisrICAgICAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoc2VsZi5f cG9seSwgKDxudGxfWlpYPngpLngpCisgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBl bGlmIGlzaW5zdGFuY2UoeCwgRnJhY3Rpb25GaWVsZEVsZW1lbnQpIGFuZCBcCitAQCAtMjc4LDgg KzI3OCw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlu b21pYWwpOgorICAgICAgICAgICAgIGlmIHguZGVub21pbmF0b3IoKSA9PSAxOgorICAgICAgICAg ICAgICAgICAjIGZyYWN0aW9uIG9mIHRoZSBmb3JtIGYoeCkvMQorICAgICAgICAgICAgICAgICBz aWdfb24oKQorLSAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2V0KHNlbGYuX19wb2x5LAorLSAg ICAgICAgICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50Pngu bnVtZXJhdG9yKCkpLl9fcG9seSkKKysgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldChzZWxm Ll9wb2x5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX2ZsaW50PngubnVtZXJhdG9yKCkpLl9wb2x5KQorICAgICAgICAgICAgICAgICBzaWdfb2Zm KCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuCisgCitAQCAtMjg3LDE5ICsyODcsMTkgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgeCA9IFt4XSAgICMgY29uc3RhbnQgcG9seW5vbWlhbHMKKyAKKyAgICAgICAgIHNp Z19vbigpCistICAgICAgICBmbXB6X3BvbHlfcmVhbGxvYyhzZWxmLl9fcG9seSwgbGVuKHgpKQor KyAgICAgICAgZm1wel9wb2x5X3JlYWxsb2Moc2VsZi5fcG9seSwgbGVuKHgpKQorICAgICAgICAg c2lnX29mZigpCisgICAgICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8IGxlbih4KToKKyAgICAgICAg ICAgICBhID0geFtpXQorICAgICAgICAgICAgIGlmIGlzX3NtYWxsX3B5dGhvbl9pbnQoYSk6Cisg ICAgICAgICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRf Y29lZmZfc2koc2VsZi5fX3BvbHksIGksIGEpCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9z ZXRfY29lZmZfc2koc2VsZi5fcG9seSwgaSwgYSkKKyAgICAgICAgICAgICAgICAgc2lnX29mZigp CisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uo YSwgSW50ZWdlcik6CisgICAgICAgICAgICAgICAgICAgICBhID0gWlooYSkKKyAgICAgICAgICAg ICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9tcHoo c2VsZi5fX3BvbHksIGksICg8SW50ZWdlcj5hKS52YWx1ZSkKKysgICAgICAgICAgICAgICAgZm1w el9wb2x5X3NldF9jb2VmZl9tcHooc2VsZi5fcG9seSwgaSwgKDxJbnRlZ2VyPmEpLnZhbHVlKQor ICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAKKyAgICAgZGVmIF9ldmFsX21wZnJfKHNlbGYs IFJlYWxOdW1iZXIgYSk6CitAQCAtMzI3LDcgKzMyNyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAg ICBjZGVmIFJlYWxOdW1iZXIgcmVzID0gYS5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAg ICAgICBmbXB6X3BvbHlfZXZhbHVhdGlvbl9tcGZyKHJlcy52YWx1ZSwgc2VsZi5fX3BvbHksIGEu dmFsdWUpCisrICAgICAgICBmbXB6X3BvbHlfZXZhbHVhdGlvbl9tcGZyKHJlcy52YWx1ZSwgc2Vs Zi5fcG9seSwgYS52YWx1ZSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJl cworIAorQEAgLTM1Nyw3ICszNTcsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBSZWFs SW50ZXJ2YWxGaWVsZEVsZW1lbnQgcmVzID0gYS5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCist ICAgICAgICBmbXB6X3BvbHlfZXZhbHVhdGlvbl9tcGZpKHJlcy52YWx1ZSwgc2VsZi5fX3BvbHks IGEudmFsdWUpCisrICAgICAgICBmbXB6X3BvbHlfZXZhbHVhdGlvbl9tcGZpKHJlcy52YWx1ZSwg c2VsZi5fcG9seSwgYS52YWx1ZSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJu IHJlcworIAorQEAgLTQxMiw4ICs0MTIsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdl cl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHgs IFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCk6CisgICAgICAgICAgICAgICAgIGYgPSBz ZWxmLl9uZXcoKQorICAgICAgICAgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgICAgICAgICBm bXB6X3BvbHlfY29tcG9zZShmLl9fcG9seSwgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PiB4MCku X19wb2x5KQorKyAgICAgICAgICAgICAgICBmbXB6X3BvbHlfY29tcG9zZShmLl9wb2x5LCBzZWxm Ll9wb2x5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9mbGludD4geDApLl9wb2x5KQorICAgICAgICAgICAgICAgICBzaWdfb2Zm KCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGYKKyAgICAgICAgICAgICBpZiBpc19zbWFsbF9w eXRob25faW50KHgwKToKK0BAIC00MjIsNyArNDIyLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgIGZtcHpf aW5pdChhX2ZtcHopCisgICAgICAgICAgICAgICAgIGZtcHpfaW5pdCh6X2ZtcHopCisgICAgICAg ICAgICAgICAgIGZtcHpfc2V0X3NpKGFfZm1weiwgUHlJbnRfQVNfTE9ORyh4MCkpCistICAgICAg ICAgICAgICAgIGZtcHpfcG9seV9ldmFsdWF0ZV9mbXB6KHpfZm1weiwgc2VsZi5fX3BvbHksIGFf Zm1weikKKysgICAgICAgICAgICAgICAgZm1wel9wb2x5X2V2YWx1YXRlX2ZtcHooel9mbXB6LCBz ZWxmLl9wb2x5LCBhX2ZtcHopCisgICAgICAgICAgICAgICAgIGZtcHpfZ2V0X21weih6LnZhbHVl LCB6X2ZtcHopCisgICAgICAgICAgICAgICAgIGZtcHpfY2xlYXIoYV9mbXB6KQorICAgICAgICAg ICAgICAgICBmbXB6X2NsZWFyKHpfZm1weikKK0BAIC00MzMsNyArNDMzLDcgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAg ICAgaWYgaXNpbnN0YW5jZSh4MCwgSW50ZWdlcik6CisgICAgICAgICAgICAgICAgIGEgPSA8SW50 ZWdlcj4geDAKKyAKKy0gICAgICAgICAgICAgICAgaWYgZm1wel9wb2x5X2xlbmd0aChzZWxmLl9f cG9seSkgPT0gMDoKKysgICAgICAgICAgICAgICAgaWYgZm1wel9wb2x5X2xlbmd0aChzZWxmLl9w b2x5KSA9PSAwOgorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFpaLnplcm8oKQorICAgICAg ICAgICAgICAgICBpZiBtcHpfc2duKGEudmFsdWUpID09IDA6CisgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gc2VsZlswXQorQEAgLTQ0NCw3ICs0NDQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgZm1w el9pbml0KGFfZm1weikKKyAgICAgICAgICAgICAgICAgZm1wel9pbml0KHpfZm1weikKKyAgICAg ICAgICAgICAgICAgZm1wel9zZXRfbXB6KGFfZm1weiwgYS52YWx1ZSkKKy0gICAgICAgICAgICAg ICAgZm1wel9wb2x5X2V2YWx1YXRlX2ZtcHooel9mbXB6LCBzZWxmLl9fcG9seSwgYV9mbXB6KQor KyAgICAgICAgICAgICAgICBmbXB6X3BvbHlfZXZhbHVhdGVfZm1weih6X2ZtcHosIHNlbGYuX3Bv bHksIGFfZm1weikKKyAgICAgICAgICAgICAgICAgZm1wel9nZXRfbXB6KHoudmFsdWUsIHpfZm1w eikKKyAgICAgICAgICAgICAgICAgZm1wel9jbGVhcihhX2ZtcHopCisgICAgICAgICAgICAgICAg IGZtcHpfY2xlYXIoel9mbXB6KQorQEAgLTQ2MCwxNCArNDYwLDE0IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAg ICBhcmJfYSA9IDxSZWFsQmFsbD4geDAKKyAgICAgICAgICAgICAgICAgYXJiX3ogPSBhcmJfYS5f bmV3KCkKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICAgICAgYXJiX2Zt cHpfcG9seV9ldmFsdWF0ZV9hcmIoYXJiX3oudmFsdWUsIHNlbGYuX19wb2x5LCBhcmJfYS52YWx1 ZSwgYXJiX2EuX3BhcmVudC5fcHJlYykKKysgICAgICAgICAgICAgICAgYXJiX2ZtcHpfcG9seV9l dmFsdWF0ZV9hcmIoYXJiX3oudmFsdWUsIHNlbGYuX3BvbHksIGFyYl9hLnZhbHVlLCBhcmJfYS5f cGFyZW50Ll9wcmVjKQorICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAg ICAgcmV0dXJuIGFyYl96CisgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh4MCwgQ29tcGxleEJh bGwpOgorICAgICAgICAgICAgICAgICBhY2JfYSA9IDxDb21wbGV4QmFsbD4geDAKKyAgICAgICAg ICAgICAgICAgYWNiX3ogPSBhY2JfYS5fbmV3KCkKKyAgICAgICAgICAgICAgICAgc2lnX29uKCkK Ky0gICAgICAgICAgICAgICAgYXJiX2ZtcHpfcG9seV9ldmFsdWF0ZV9hY2IoYWNiX3oudmFsdWUs IHNlbGYuX19wb2x5LCBhY2JfYS52YWx1ZSwgYWNiX2EuX3BhcmVudC5fcHJlYykKKysgICAgICAg ICAgICAgICAgYXJiX2ZtcHpfcG9seV9ldmFsdWF0ZV9hY2IoYWNiX3oudmFsdWUsIHNlbGYuX3Bv bHksIGFjYl9hLnZhbHVlLCBhY2JfYS5fcGFyZW50Ll9wcmVjKQorICAgICAgICAgICAgICAgICBz aWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYl96CisgCitAQCAtNTEwLDEwICs1 MTAsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5v bWlhbCk6CisgCisgICAgICAgICBjZGVmIGZtcHpfdCBjCisgICAgICAgICBmbXB6X2luaXQoYykK Ky0gICAgICAgIGZtcHpfcG9seV9nZXRfY29lZmZfZm1weihjLCBzZWxmLl9fcG9seSwgZm1wel9w b2x5X2RlZ3JlZShzZWxmLl9fcG9seSkpCisrICAgICAgICBmbXB6X3BvbHlfZ2V0X2NvZWZmX2Zt cHooYywgc2VsZi5fcG9seSwgZm1wel9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSkKKyAgICAgICAg IGNkZWYgaW50IHNpZ24gPSBmbXB6X3NnbihjKQorIAorLSAgICAgICAgZm1wel9wb2x5X2NvbnRl bnQoYywgc2VsZi5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfY29udGVudChjLCBzZWxmLl9w b2x5KQorIAorICAgICAgICAgY2RlZiBJbnRlZ2VyIHogPSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdl cikKKyAgICAgICAgIGZtcHpfZ2V0X21weih6LnZhbHVlLCBjKQorQEAgLTU2MSw3ICs1NjEsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToK KyAgICAgICAgICAgICA1KnheNSArIDQqeF40ICsgMyp4XjMgKyAyKnheMiArIHggKyAxCisgICAg ICAgICAiIiIKKyAgICAgICAgIGNkZWYgSW50ZWdlciB6ID0gSW50ZWdlci5fX25ld19fKEludGVn ZXIpCistICAgICAgICBmbXB6X3BvbHlfZ2V0X2NvZWZmX21weih6LnZhbHVlLCBzZWxmLl9fcG9s eSwgbikKKysgICAgICAgIGZtcHpfcG9seV9nZXRfY29lZmZfbXB6KHoudmFsdWUsIHNlbGYuX3Bv bHksIG4pCisgICAgICAgICByZXR1cm4gegorIAorICAgICBkZWYgX3JlcHIoc2VsZiwgbmFtZT1O b25lLCBiaW50IGxhdGV4PUZhbHNlKToKK0BAIC01ODMsOCArNTgzLDggQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVm IGxvbmcgaQorICAgICAgICAgY2RlZiBJbnRlZ2VyIGNvZWYgPSBJbnRlZ2VyLl9fbmV3X18oSW50 ZWdlcikKKyAgICAgICAgIGNkZWYgbGlzdCBhbGwgPSBbXQorLSAgICAgICAgZm9yIGkgZnJvbSBm bXB6X3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA+PSBpID49IDA6CistICAgICAgICAgICAgZm1w el9wb2x5X2dldF9jb2VmZl9tcHooY29lZi52YWx1ZSwgc2VsZi5fX3BvbHksIGkpCisrICAgICAg ICBmb3IgaSBmcm9tIGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPj0gaSA+PSAwOgorKyAg ICAgICAgICAgIGZtcHpfcG9seV9nZXRfY29lZmZfbXB6KGNvZWYudmFsdWUsIHNlbGYuX3BvbHks IGkpCisgICAgICAgICAgICAgaWYgY29lZjoKKyAgICAgICAgICAgICAgICAgaWYgY29lZiA+IDA6 CisgICAgICAgICAgICAgICAgICAgICBzaWduX3N0ciA9ICcrJworQEAgLTY0OSw4ICs2NDksOCBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToK KyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxp bnQgeCA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5 X2FkZCh4Ll9fcG9seSwgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICg8UG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX2ZsaW50PnJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlf YWRkKHguX3BvbHksIHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50PnJpZ2h0KS5fcG9seSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAg ICAgICAgcmV0dXJuIHgKKyAKK0BAIC02NjksOCArNjY5LDggQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IHggPSBzZWxmLl9uZXcoKQor ICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHpfcG9seV9zdWIoeC5fX3BvbHksIHNlbGYu X19wb2x5LAorLSAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dD5yaWdodCkuX19wb2x5KQorKyAgICAgICAgZm1wel9wb2x5X3N1Yih4Ll9wb2x5LCBzZWxmLl9w b2x5LAorKyAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD5y aWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCitA QCAtNjg4LDcgKzY4OCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2Zs aW50KFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9mbGludCB4ID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCist ICAgICAgICBmbXB6X3BvbHlfbmVnKHguX19wb2x5LCBzZWxmLl9fcG9seSkKKysgICAgICAgIGZt cHpfcG9seV9uZWcoeC5fcG9seSwgc2VsZi5fcG9seSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAg ICAgICAgcmV0dXJuIHgKKyAKK0BAIC03NTgsNyArNzU4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIFBvbHlu b21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCByciA9IHNlbGYuX25ldygpCisgCisgICAgICAgICBz aWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X2RpdnJlbShxcS5fX3BvbHksIHJyLl9fcG9seSwg c2VsZi5fX3BvbHksIHJpZ2h0Ll9fcG9seSkKKysgICAgICAgIGZtcHpfcG9seV9kaXZyZW0ocXEu X3BvbHksIHJyLl9wb2x5LCBzZWxmLl9wb2x5LCByaWdodC5fcG9seSkKKyAgICAgICAgIHNpZ19v ZmYoKQorICAgICAgICAgcmV0dXJuIHFxLCBycgorIAorQEAgLTc3Niw3ICs3NzYsNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAg ICAgICAgICBzYWdlOiB4LmlzX3plcm8oKQorICAgICAgICAgICAgIEZhbHNlCisgICAgICAgICAi IiIKKy0gICAgICAgIHJldHVybiAoZm1wel9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkgPT0gLTEp CisrICAgICAgICByZXR1cm4gKGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPT0gLTEpCisg CisgICAgIGNwZGVmIGJpbnQgaXNfb25lKHNlbGYpIGV4Y2VwdCAtMToKKyAgICAgICAgICIiIgor QEAgLTc5Miw3ICs3OTIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9m bGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiB4LmlzX29uZSgpCisgICAgICAg ICAgICAgRmFsc2UKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIGZtcHpfcG9seV9pc19v bmUoc2VsZi5fX3BvbHkpCisrICAgICAgICByZXR1cm4gZm1wel9wb2x5X2lzX29uZShzZWxmLl9w b2x5KQorIAorICAgICBkZWYgX19ib29sX18oc2VsZik6CisgICAgICAgICAiIiIKK0BAIC04MDgs NyArODA4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9s eW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogYm9vbCh4KQorICAgICAgICAgICAgIFRydWUK KyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIG5vdCAoZm1wel9wb2x5X2RlZ3JlZShzZWxm Ll9fcG9seSkgPT0gLTEpCisrICAgICAgICByZXR1cm4gbm90IChmbXB6X3BvbHlfZGVncmVlKHNl bGYuX3BvbHkpID09IC0xKQorIAorICAgICBAY29lcmNlX2Jpbm9wCisgICAgIGRlZiBnY2Qoc2Vs ZiwgcmlnaHQpOgorQEAgLTgzMSw4ICs4MzEsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50 ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZgor ICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgeCA9IHNlbGYuX25l dygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X2djZCh4Ll9fcG9seSwg c2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X2ZsaW50PnJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfZ2NkKHguX3BvbHksIHNl bGYuX3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2Zs aW50PnJpZ2h0KS5fcG9seSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHgK KyAKK0BAIC05NDEsOCArOTQxLDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVu c2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBmbXB6X2luaXQocikKKyAKKyAgICAgICAg IHNpZ19vbigpCistICAgICAgICBmbXB6X3BvbHlfeGdjZChyLCBzcy5fX3BvbHksIHR0Ll9fcG9s eSwgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX2ZsaW50PnJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfeGdjZChyLCBzcy5f cG9seSwgdHQuX3BvbHksIHNlbGYuX3BvbHksCisrICAgICAgICAgICAgICAgICg8UG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX2ZsaW50PnJpZ2h0KS5fcG9seSkKKyAgICAgICAgIHNpZ19vZmYoKQor ICAgICAgICAgY2RlZiBJbnRlZ2VyIHJyID0gSW50ZWdlci5fX25ld19fKEludGVnZXIpCisgICAg ICAgICBmbXB6X2dldF9tcHoocnIudmFsdWUsIHIpCitAQCAtOTcwLDggKzk3MCw4IEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAg ICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCB4ID0g c2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXB6X3BvbHlfbXVsKHgu X19wb2x5LCBzZWxmLl9fcG9seSwKKy0gICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQ+cmlnaHQpLl9fcG9seSkKKysgICAgICAgIGZtcHpfcG9seV9tdWwoeC5f cG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfZmxpbnQ+cmlnaHQpLl9wb2x5KQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICBy ZXR1cm4geAorIAorQEAgLTEwMDAsOCArMTAwMCw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorIAorICAgICAgICAgY2RlZiBQb2x5bm9t aWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgeCA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24o KQorLSAgICAgICAgZm1wel9wb2x5X211bGxvdyh4Ll9fcG9seSwgc2VsZi5fX3BvbHksCistICAg ICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD5yaWdodCku X19wb2x5LAorKyAgICAgICAgZm1wel9wb2x5X211bGxvdyh4Ll9wb2x5LCBzZWxmLl9wb2x5LAor KyAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+cmln aHQpLl9wb2x5LAorICAgICAgICAgICAgICAgICAgICAgbikKKyAgICAgICAgIHNpZ19vZmYoKQor ICAgICAgICAgcmV0dXJuIHgKK0BAIC0xMDIwLDcgKzEwMjAsNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAg ICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgeCA9IHNlbGYuX25ldygp CisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wel9wb2x5X3NjYWxhcl9tdWxfbXB6KHgu X19wb2x5LCBzZWxmLl9fcG9seSwgKDxJbnRlZ2VyPnJpZ2h0KS52YWx1ZSkKKysgICAgICAgIGZt cHpfcG9seV9zY2FsYXJfbXVsX21weih4Ll9wb2x5LCBzZWxmLl9wb2x5LCAoPEludGVnZXI+cmln aHQpLnZhbHVlKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4geAorIAorQEAg LTEwMzgsNyArMTAzOCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2Zs aW50KFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9mbGludCB4ID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCist ICAgICAgICBmbXB6X3BvbHlfc2NhbGFyX211bF9tcHooeC5fX3BvbHksIHNlbGYuX19wb2x5LCAo PEludGVnZXI+cmlnaHQpLnZhbHVlKQorKyAgICAgICAgZm1wel9wb2x5X3NjYWxhcl9tdWxfbXB6 KHguX3BvbHksIHNlbGYuX3BvbHksICg8SW50ZWdlcj5yaWdodCkudmFsdWUpCisgICAgICAgICBz aWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCitAQCAtMTEzMiw3ICsxMTMyLDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgbnVtID0gbi5udW1lcmF0b3IoKQorICAgICAgICAgICAgIGRlbiA9IG4uZGVub21p bmF0b3IoKQorIAorLSAgICAgICAgICAgIGlmIGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkp ID09IDA6CisrICAgICAgICAgICAgaWYgZm1wel9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAw OgorICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShzZWxmWzBdLm50aF9yb290 KGRlbikgKiogbnVtKQorIAorICAgICAgICAgICAgIHJldHVybiBzZWxmLm50aF9yb290KGRlbikg KiogbnVtCitAQCAtMTE0Miw3ICsxMTQyLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgCisgICAgICAgICAgICAgaWYgc2VsZi5pc196 ZXJvKCk6CisgICAgICAgICAgICAgICAgIGlmIG5uID09IDA6CistICAgICAgICAgICAgICAgICAg ICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHJlcy5fX3BvbHksIDAsIDEpCisrICAgICAgICAgICAg ICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX3NpKHJlcy5fcG9seSwgMCwgMSkKKyAgICAgICAg ICAgICAgICAgICAgIHJldHVybiByZXMKKyAgICAgICAgICAgICAgICAgZWxpZiBubiA8IDA6Cisg ICAgICAgICAgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcigibmVnYXRpdmUgZXhw b25lbnQgaW4gcG93ZXIgb2YgemVybyIpCitAQCAtMTE1MCwxNyArMTE1MCwxNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAg ICAgICAgICAgICAgIHJldHVybiByZXMKKyAgICAgICAgICAgICBpZiBubiA8IDA6CisgICAgICAg ICAgICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgIGZtcHpfcG9seV9wb3cocmVzLl9f cG9seSwgc2VsZi5fX3BvbHksIC1ubikKKysgICAgICAgICAgICAgICAgZm1wel9wb2x5X3Bvdyhy ZXMuX3BvbHksIHNlbGYuX3BvbHksIC1ubikKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisg ICAgICAgICAgICAgICAgIHJldHVybiB+cmVzCisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICAgICAgaWYgc2VsZiBpcyBzZWxmLl9wYXJlbnQuZ2VuKCk6CisgICAgICAgICAgICAgICAg ICAgICBzaWdfb24oKQorLSAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl91 aShyZXMuX19wb2x5LCBubiwgMSkKKysgICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zZXRf Y29lZmZfdWkocmVzLl9wb2x5LCBubiwgMSkKKyAgICAgICAgICAgICAgICAgICAgIHNpZ19vZmYo KQorICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgc2lnX29uKCkK Ky0gICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9wb3cocmVzLl9fcG9seSwgc2VsZi5fX3Bv bHksIG5uKQorKyAgICAgICAgICAgICAgICAgICAgZm1wel9wb2x5X3BvdyhyZXMuX3BvbHksIHNl bGYuX3BvbHksIG5uKQorICAgICAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAg ICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0xMTg3LDcgKzExODcsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAKKyAgICAgICAgIGNk ZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IHJlcworICAgICAgICAgcmVzID0gc2Vs Zi5fbmV3KCkKKy0gICAgICAgIGZtcHpfcG9seV9wb3dfdHJ1bmMocmVzLl9fcG9seSwgc2VsZi5f X3BvbHksIG4sIHByZWMpCisrICAgICAgICBmbXB6X3BvbHlfcG93X3RydW5jKHJlcy5fcG9seSwg c2VsZi5fcG9seSwgbiwgcHJlYykKKyAgICAgICAgIHJldHVybiByZXMKKyAKKyAgICAgZGVmIF9f Zmxvb3JkaXZfXyhQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgc2VsZiwgcmlnaHQpOgor QEAgLTEyMjYsMTQgKzEyMjYsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVu c2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgICAgICAgICByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgICAgICAgICAgICAgc2lnX29u KCkKKy0gICAgICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zY2FsYXJfZmRpdl9tcHoocmVzLl9f cG9seSwgc2VsZi5fX3BvbHksCisrICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfc2NhbGFy X2ZkaXZfbXB6KHJlcy5fcG9seSwgc2VsZi5fcG9seSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKDxJbnRlZ2VyPiByaWdodCkudmFsdWUpCisgICAgICAgICAgICAgICAgICAgICBzaWdf b2ZmKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcworICAgICAgICAgICAgIGVsaWYgcmln aHQgaW4gWlo6CisgICAgICAgICAgICAgICAgIHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICAg ICAgICAgIHNpZ19vbigpCistICAgICAgICAgICAgICAgIGZtcHpfcG9seV9zY2FsYXJfZmRpdl9t cHoocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksCisrICAgICAgICAgICAgICAgIGZtcHpfcG9seV9z Y2FsYXJfZmRpdl9tcHoocmVzLl9wb2x5LCBzZWxmLl9wb2x5LAorICAgICAgICAgICAgICAgICAg ICAgICAgICg8SW50ZWdlcj5aWihyaWdodCkpLnZhbHVlKQorICAgICAgICAgICAgICAgICBzaWdf b2ZmKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcworQEAgLTEyNDgsNyArMTI0OCw3IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgor ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAg ICAgIHNpZ19vbigpCistICAgICAgICAgICAgZm1wel9wb2x5X2RpdihyZXMuX19wb2x5LCBzZWxm Ll9fcG9seSwgX3JpZ2h0Ll9fcG9seSkKKysgICAgICAgICAgICBmbXB6X3BvbHlfZGl2KHJlcy5f cG9seSwgc2VsZi5fcG9seSwgX3JpZ2h0Ll9wb2x5KQorICAgICAgICAgICAgIHNpZ19vZmYoKQor ICAgICAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0xMjkzLDkgKzEyOTMsOSBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAg IGlmIHByZWMgPD0gMDoKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ0aGUgcHJlY2lz aW9uIG11c3QgYmUgcG9zaXRpdmUsIGdvdCB7fSIuZm9ybWF0KHByZWMpKQorIAorLSAgICAgICAg aWYgZm1wel9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkgPT0gLTE6CisrICAgICAgICBpZiBmbXB6 X3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID09IC0xOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVl RXJyb3IoImNvbnN0YW50IHRlcm0gaXMgemVybyIpCistICAgICAgICBjZGVmIGZtcHpfdCBjID0g Zm1wel9wb2x5X2dldF9jb2VmZl9wdHIoc2VsZi5fX3BvbHksIDApCisrICAgICAgICBjZGVmIGZt cHpfdCBjID0gZm1wel9wb2x5X2dldF9jb2VmZl9wdHIoc2VsZi5fcG9seSwgMCkKKyAgICAgICAg IGlmIGZtcHpfY21wX3NpKGMsIDEpIGFuZCBmbXB6X2NtcF9zaShjLCAtMSk6CisgICAgICAgICAg ICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVybSB7fSBpcyBub3QgYSB1bml0Ii5mb3Jt YXQoc2VsZlswXSkpCisgCitAQCAtMTMwMyw3ICsxMzAzLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBwcmVjIDw9 IDA6CisgICAgICAgICAgICAgcmV0dXJuIHJlcworICAgICAgICAgc2lnX29uKCkKKy0gICAgICAg IGZtcHpfcG9seV9pbnZfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBwcmVjKQorKyAg ICAgICAgZm1wel9wb2x5X2ludl9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBwcmVjKQor ICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTMzMSwxNiAr MTMzMSwxNiBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5 bm9taWFsKToKKyAgICAgICAgICAgICByYWlzZSBJbmRleEVycm9yKCJuIG11c3QgYmUgPj0gMCIp CisgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBpbnQpOgorICAgICAgICAgICAgIHNpZ19v bigpCistICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShzZWxmLl9fcG9seSwgbiwg dmFsdWUpCisrICAgICAgICAgICAgZm1wel9wb2x5X3NldF9jb2VmZl9zaShzZWxmLl9wb2x5LCBu LCB2YWx1ZSkKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5j ZSh2YWx1ZSwgSW50ZWdlcik6CisgICAgICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgICAgICBm bXB6X3BvbHlfc2V0X2NvZWZmX21weihzZWxmLl9fcG9seSwgbiwgKDxJbnRlZ2VyPnZhbHVlKS52 YWx1ZSkKKysgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX21weihzZWxmLl9wb2x5LCBu LCAoPEludGVnZXI+dmFsdWUpLnZhbHVlKQorICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICB2YWx1ZSA9IEludGVnZXIodmFsdWUpCisgICAgICAgICAg ICAgc2lnX29uKCkKKy0gICAgICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX21weihzZWxmLl9f cG9seSwgbiwgKDxJbnRlZ2VyPnZhbHVlKS52YWx1ZSkKKysgICAgICAgICAgICBmbXB6X3BvbHlf c2V0X2NvZWZmX21weihzZWxmLl9wb2x5LCBuLCAoPEludGVnZXI+dmFsdWUpLnZhbHVlKQorICAg ICAgICAgICAgIHNpZ19vZmYoKQorIAorICAgICBkZWYgcmVhbF9yb290X2ludGVydmFscyhzZWxm KToKK0BAIC0xMzY0LDcgKzEzNjQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAKKyAjIyAgICAgZGVmIF9fY29weV9fKHNlbGYpOgor ICMjICAgICAgICAgZiA9IFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZShzZWxmLnBhcmVudCgpKQor LSMjICAgICAgICAgZi5fX3BvbHkgPSBzZWxmLl9fcG9seS5jb3B5KCkKKysjIyAgICAgICAgIGYu X3BvbHkgPSBzZWxmLl9wb2x5LmNvcHkoKQorICMjICAgICAgICAgcmV0dXJuIGYKKyAKKyAKK0BA IC0xMzkxLDcgKzEzOTEsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9m bGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiB0eXBlKHguZGVncmVlKCkpCisg ICAgICAgICAgICAgPGNsYXNzICdzYWdlLnJpbmdzLmludGVnZXIuSW50ZWdlcic+CisgICAgICAg ICAiIiIKKy0gICAgICAgIHJldHVybiBzbWFsbEludGVnZXIoZm1wel9wb2x5X2RlZ3JlZShzZWxm Ll9fcG9seSkpCisrICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKGZtcHpfcG9seV9kZWdyZWUo c2VsZi5fcG9seSkpCisgCisgICAgIGRlZiBwc2V1ZG9fZGl2cmVtKHNlbGYsIEIpOgorICAgICAg ICAgciIiIgorQEAgLTE0MjYsNyArMTQyNiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVm IFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCBRID0gc2VsZi5fbmV3KCksIFIgPSBzZWxm Ll9uZXcoKSwgX0IgPSBCCisgICAgICAgICBjZGVmIHVsb25nIGQKKy0gICAgICAgIGZtcHpfcG9s eV9wc2V1ZG9fZGl2cmVtKFEuX19wb2x5LCBSLl9fcG9seSwgJmQsIHNlbGYuX19wb2x5LCBfQi5f X3BvbHkpCisrICAgICAgICBmbXB6X3BvbHlfcHNldWRvX2RpdnJlbShRLl9wb2x5LCBSLl9wb2x5 LCAmZCwgc2VsZi5fcG9seSwgX0IuX3BvbHkpCisgICAgICAgICByZXR1cm4gUSwgUiwgSW50ZWdl cihkKQorIAorICAgICBkZWYgZGlzY3JpbWluYW50KHNlbGYsIHByb29mPVRydWUpOgorQEAgLTE0 NjAsNyArMTQ2MCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50 KFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFpaWF9jIG50bF9wb2x5 CisgICAgICAgICBjZGVmIFpaX2MqIHRlbXAKKy0gICAgICAgIGZtcHpfcG9seV9nZXRfWlpYKG50 bF9wb2x5LCBzZWxmLl9fcG9seSkKKysgICAgICAgIGZtcHpfcG9seV9nZXRfWlpYKG50bF9wb2x5 LCBzZWxmLl9wb2x5KQorIAorICAgICAgICAgdGVtcCA9IFpaWF9kaXNjcmltaW5hbnQoJm50bF9w b2x5LCBwcm9vZikKKyAgICAgICAgIGNkZWYgSW50ZWdlciB4ID0gSW50ZWdlci5fX25ld19fKElu dGVnZXIpCitAQCAtMTUzMSwxMiArMTUzMSwxMiBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50 ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAKKyAgICAgICAgICAgICAjIHRoZSBwcmlt aXRpdmUgcGFydCByZXR1cm5lZCBieSBGTElOVCBoYXMgcG9zaXRpdmUgbGVhZGluZworICAgICAg ICAgICAgICMgY29lZmZpY2llbnQKKy0gICAgICAgICAgICBmbXB6X3BvbHlfcHJpbWl0aXZlX3Bh cnQocHBhcnQsIHNlbGYuX19wb2x5KQorKyAgICAgICAgICAgIGZtcHpfcG9seV9wcmltaXRpdmVf cGFydChwcGFydCwgc2VsZi5fcG9seSkKKyAKKyAgICAgICAgICAgICBmbXB6X3BvbHlfZ2V0X1pa WChudGxfcG9seSwgcHBhcnQpCisgICAgICAgICAgICAgZm1wel9wb2x5X2NsZWFyKHBwYXJ0KQor ICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBmbXB6X3BvbHlfZ2V0X1paWChudGxfcG9seSwg c2VsZi5fX3BvbHkpCisrICAgICAgICAgICAgZm1wel9wb2x5X2dldF9aWlgobnRsX3BvbHksIHNl bGYuX3BvbHkpCisgCisgICAgICAgICAjIGlucHV0IGlzIHByaW1pdGl2ZSwgd2l0aCBwb3NpdGl2 ZSBsZWFkaW5nIGNvZWZmaWNpZW50CisgICAgICAgICBaWlhfc3F1YXJlZnJlZV9kZWNvbXBvc2l0 aW9uKCZ2LCAmZSwgJm4sICZudGxfcG9seSkKK0BAIC0xNTQ0LDcgKzE1NDQsNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAg IEYgPSBbXQorICAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPCBuOgorICAgICAgICAgICAgIGZh YyA9IHNlbGYuX25ldygpCistICAgICAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoZmFjLl9fcG9s eSwgdltpXVswXSkKKysgICAgICAgICAgICBmbXB6X3BvbHlfc2V0X1paWChmYWMuX3BvbHksIHZb aV1bMF0pCisgICAgICAgICAgICAgRi5hcHBlbmQoIChmYWMsZVtpXSkgKQorICAgICAgICAgICAg IGRlbCB2W2ldCisgICAgICAgICBzaWdfZnJlZSh2KQorQEAgLTE1ODIsOSArMTU4Miw5IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAg ICAgICAgY2RlZiBaWl9jIGNvbnRlbnQKKyAgICAgICAgIGNkZWYgdmVjX3BhaXJfWlpYX2xvbmdf YyBmYWN0b3JzCisgICAgICAgICBjZGVmIGxvbmcgaQorLSAgICAgICAgY2RlZiBpbnQgc2lnX21l ID0gZm1wel9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgaW50IHNpZ19t ZSA9IGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkKKyAKKy0gICAgICAgIGZtcHpfcG9seV9n ZXRfWlpYKG50bF9wb2x5LCBzZWxmLl9fcG9seSkKKysgICAgICAgIGZtcHpfcG9seV9nZXRfWlpY KG50bF9wb2x5LCBzZWxmLl9wb2x5KQorIAorICAgICAgICAgaWYgc2lnX21lID4gMTA6CisgICAg ICAgICAgICAgc2lnX29uKCkKK0BAIC0xNjAzLDEzICsxNjAzLDEzIEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIGZh Y19weSA9IHNlbGYuX25ldygpCisgICAgICAgICAgICAgZm1wel9pbml0KHRjb250ZW50KQorICAg ICAgICAgICAgIGZtcHpfc2V0X1paKHRjb250ZW50LCBjb250ZW50KQorLSAgICAgICAgICAgIGZt cHpfcG9seV9zZXRfY29lZmZfZm1weihmYWNfcHkuX19wb2x5LCAwLCB0Y29udGVudCkKKysgICAg ICAgICAgICBmbXB6X3BvbHlfc2V0X2NvZWZmX2ZtcHooZmFjX3B5Ll9wb2x5LCAwLCB0Y29udGVu dCkKKyAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZCggKGZhY19weSwxKSApCisgICAgICAgICAg ICAgZm1wel9jbGVhcih0Y29udGVudCkKKyAKKyAgICAgICAgIGZvciBpIGZyb20gMCA8PSBpIDwg ZmFjdG9ycy5sZW5ndGgoKToKKyAgICAgICAgICAgICBmYWNfcHkgPSBzZWxmLl9uZXcoKQorLSAg ICAgICAgICAgIGZtcHpfcG9seV9zZXRfWlpYKGZhY19weS5fX3BvbHksIGZhY3RvcnMuUmF3R2V0 KGkpLmEpCisrICAgICAgICAgICAgZm1wel9wb2x5X3NldF9aWlgoZmFjX3B5Ll9wb2x5LCBmYWN0 b3JzLlJhd0dldChpKS5hKQorICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKCAoZmFjX3B5LGZh Y3RvcnMuUmF3R2V0KGkpLmIpICkKKyAgICAgICAgIHJldHVybiBGYWN0b3JpemF0aW9uKHJlc3Vs dHMsIHVuaXQgPSB1bml0KQorIAorQEAgLTE2MzksNyArMTYzOSw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICgt MSkgKiAyICogMyAqIDUgKiB4CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgaW50IGkKKy0g ICAgICAgIGNkZWYgbG9uZyBkZWcgPSBmbXB6X3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KQorKyAg ICAgICAgY2RlZiBsb25nIGRlZyA9IGZtcHpfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkKKyAgICAg ICAgICMgaXQgYXBwZWFycyB0aGF0IHBhcmkgaGFzIGEgd2luZG93IGZyb20gYWJvdXQgZGVncmVl cyAzMCBhbmQgMzAwCisgICAgICAgICAjIGluIHdoaWNoIGl0IGJlYXRzIE5UTC4KKyAgICAgICAg IGMgPSBzZWxmLmNvbnRlbnQoKQorQEAgLTE3ODMsOCArMTc4Myw4IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBJ bnRlZ2VyIHggPSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdlcikKKyAKKyAgICAgICAgIHNpZ19vbigp CistICAgICAgICBmbXB6X3BvbHlfcmVzdWx0YW50KHJlcywgc2VsZi5fX3BvbHksCistICAgICAg ICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50Pm90aGVyKS5fX3BvbHkp CisrICAgICAgICBmbXB6X3BvbHlfcmVzdWx0YW50KHJlcywgc2VsZi5fcG9seSwKKysgICAgICAg ICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQ+b3RoZXIpLl9wb2x5KQor ICAgICAgICAgc2lnX29mZigpCisgICAgICAgICBmbXB6X2dldF9tcHooeC52YWx1ZSwgcmVzKQor ICAgICAgICAgZm1wel9jbGVhcihyZXMpCitAQCAtMTgzMCwxMCArMTgzMCwxMCBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAg ICAgICBpZiBkICE9IGRlZ3JlZToKKyAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi ZGVncmVlIGFyZ3VtZW50IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlciwgZ290ICVzIiAl IGRlZ3JlZSkKKyAgICAgICAgICAgICAjIEZMSU5UIGV4cGVjdHMgbGVuZ3RoCistICAgICAgICAg ICAgZm1wel9wb2x5X3JldmVyc2UocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIGQrMSkKKysgICAg ICAgICAgICBmbXB6X3BvbHlfcmV2ZXJzZShyZXMuX3BvbHksIHNlbGYuX3BvbHksIGQrMSkKKyAg ICAgICAgIGVsc2U6CistICAgICAgICAgICAgZm1wel9wb2x5X3JldmVyc2UocmVzLl9fcG9seSwg c2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfbGVuZ3RoKHNlbGYu X19wb2x5KSkKKysgICAgICAgICAgICBmbXB6X3BvbHlfcmV2ZXJzZShyZXMuX3BvbHksIHNlbGYu X3BvbHksCisrICAgICAgICAgICAgICAgICAgICBmbXB6X3BvbHlfbGVuZ3RoKHNlbGYuX3BvbHkp KQorICAgICAgICAgcmV0dXJuIHJlcworIAorICAgICBkZWYgcmV2ZXJ0X3NlcmllcyhzZWxmLCBu KToKK0BAIC0xODY3LDcgKzE4NjcsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJz ZWxmIG11c3QgaGF2ZSBjb25zdGFudCBjb2VmZmljaWVudCAwIGFuZCBhIHVuaXQgZm9yIGNvZWZm aWNpZW50IHt9XjEiLmZvcm1hdChzZWxmLnBhcmVudCgpLmdlbigpKSkKKyAKKyAgICAgICAgIHNp Z19vbigpCistICAgICAgICBmbXB6X3BvbHlfcmV2ZXJ0X3NlcmllcyhyZXMuX19wb2x5LCBzZWxm Ll9fcG9seSwgbSkKKysgICAgICAgIGZtcHpfcG9seV9yZXZlcnRfc2VyaWVzKHJlcy5fcG9seSwg c2VsZi5fcG9seSwgbSkKKyAgICAgICAgIHNpZ19vZmYoKQorIAorICAgICAgICAgcmV0dXJuIHJl cworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX250bC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9udGwucHhkCitpbmRleCBhN2MzODBiNDlhMi4uZmNkOTA3ZTFhYmUgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9k ZW5zZV9udGwucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9udGwucHhkCitAQCAtMiw2ICsyLDYgQEAgZnJvbSBzYWdlLmxpYnMubnRs LnR5cGVzIGNpbXBvcnQgWlpYX2MKKyBmcm9tIHNhZ2UucmluZ3MucG9seW5vbWlhbC5wb2x5bm9t aWFsX2VsZW1lbnQgY2ltcG9ydCBQb2x5bm9taWFsCisgCisgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorLSAgICBjZGVmIFpaWF9jIF9fcG9seQor KyAgICBjZGVmIFpaWF9jIF9wb2x5CisgCisgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX250bCBfbmV3KHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bC5weXgKK2luZGV4IGU3YjcwOGJiYzUx Li44MGExNzI2YmI0ZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bC5weXgKK0BAIC0xNzIsNyArMTcyLDcg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgor ICAgICAgICAgaWYgaXNpbnN0YW5jZSh4LCBQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBpZiB4 LnBhcmVudCgpIGlzIHNlbGYucGFyZW50KCk6CisgICAgICAgICAgICAgICAgICMgY29weSB3aXRo IE5UTCBhc3NpZ25tZW50IG9wZXJhdG9yCistICAgICAgICAgICAgICAgIHNlbGYuX19wb2x5ID0g KDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPngpLl9fcG9seQorKyAgICAgICAgICAgICAg ICBzZWxmLl9wb2x5ID0gKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPngpLl9wb2x5Cisg ICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg ICAgICMgY29lcmNlIGNvZWZmaWNpZW50cyBpbnRvIFNhZ2UgaW50ZWdlcnMKK0BAIC0xOTEsMTcg KzE5MSwxNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5v bWlhbCk6CisgICAgICAgICAgICAgICAgICAgICBkZWdyZWUgPSBpCisgICAgICAgICAgICAgaWYg ZGVncmVlID49IE5UTF9PVkZCTkQ6CisgICAgICAgICAgICAgICAgIHJhaXNlIE92ZXJmbG93RXJy b3IoIkRlbnNlIE5UTCBpbnRlZ2VyIHBvbHlub21pYWxzIGhhdmUgYSBtYXhpbXVtIGRlZ3JlZSBv ZiAlcyIgJSAoTlRMX09WRkJORC0xKSkKKy0gICAgICAgICAgICBaWlhfU2V0Q29lZmZfbG9uZyhz ZWxmLl9fcG9seSwgZGVncmVlLCAxKQorKyAgICAgICAgICAgIFpaWF9TZXRDb2VmZl9sb25nKHNl bGYuX3BvbHksIGRlZ3JlZSwgMSkKKyAgICAgICAgICAgICAjIG5vdyBmaWxsIHRoZW0gaW4KKyAg ICAgICAgICAgICBmb3IgaWksIGEgaW4geDoKKyAgICAgICAgICAgICAgICAgaSA9IGlpWzBdIGlm IHR5cGUoaWkpIGlzIHR1cGxlIGVsc2UgaWkKKyAgICAgICAgICAgICAgICAgaWYgdHlwZShhKSBp cyBpbnQ6CistICAgICAgICAgICAgICAgICAgICBaWlhfU2V0Q29lZmZfbG9uZyhzZWxmLl9fcG9s eSwgaSwgYSkKKysgICAgICAgICAgICAgICAgICAgIFpaWF9TZXRDb2VmZl9sb25nKHNlbGYuX3Bv bHksIGksIGEpCisgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICBp ZiBub3QgaXNpbnN0YW5jZShhLCBJbnRlZ2VyKToKKyAgICAgICAgICAgICAgICAgICAgICAgICBh ID0gWlooYSkKKyAgICAgICAgICAgICAgICAgICAgIG1wel90b19aWigmeSwgKDxJbnRlZ2VyPmEp LnZhbHVlKQorLSAgICAgICAgICAgICAgICAgICAgWlpYX1NldENvZWZmKHNlbGYuX19wb2x5LCBp LCB5KQorKyAgICAgICAgICAgICAgICAgICAgWlpYX1NldENvZWZmKHNlbGYuX3BvbHksIGksIHkp CisgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgcGFy aV9nZW4pOgorQEAgLTIxMCwxNCArMjEwLDE0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4 LCBudGxfWlpYKTogICAgIyBjb2VyY2lvbiBmcm9tIG50bC5weXggb2JqZWN0CisgICAgICAgICAg ICAgIyBjb3B5IHdpdGggTlRMIGFzc2lnbm1lbnQgb3BlcmF0b3IKKy0gICAgICAgICAgICBzZWxm Ll9fcG9seSA9ICg8bnRsX1paWD54KS54CisrICAgICAgICAgICAgc2VsZi5fcG9seSA9ICg8bnRs X1paWD54KS54CisgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFu Y2UoeCwgRnJhY3Rpb25GaWVsZEVsZW1lbnQpIGFuZCBcCisgICAgICAgICAgICAgICAgICBpc2lu c3RhbmNlKHgubnVtZXJhdG9yKCksIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwpOgorICAg ICAgICAgICAgIGlmIHguZGVub21pbmF0b3IoKSA9PSAxOgorICAgICAgICAgICAgICAgICAjIGZy YWN0aW9uIG9mIHRoZSBmb3JtIGYoeCkvMQorLSAgICAgICAgICAgICAgICBzZWxmLl9fcG9seSA9 ICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD54Lm51bWVyYXRvcigpKS5fX3BvbHkKKysg ICAgICAgICAgICAgICAgc2VsZi5fcG9seSA9ICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250 bD54Lm51bWVyYXRvcigpKS5fcG9seQorICAgICAgICAgICAgICAgICByZXR1cm4KKyAKKyAgICAg ICAgIGVsaWYgbm90IGlzaW5zdGFuY2UoeCwgKGxpc3QsIHR1cGxlKSk6CitAQCAtMjI5LDEyICsy MjksMTIgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21p YWwpOgorICAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPCBsZW4oeCk6CisgICAgICAgICAgICAg YSA9IHhbaV0KKyAgICAgICAgICAgICBpZiB0eXBlKGEpIGlzIGludDoKKy0gICAgICAgICAgICAg ICAgWlpYX1NldENvZWZmX2xvbmcoc2VsZi5fX3BvbHksIGksIGEpCisrICAgICAgICAgICAgICAg IFpaWF9TZXRDb2VmZl9sb25nKHNlbGYuX3BvbHksIGksIGEpCisgICAgICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYSwgSW50ZWdlcik6CisgICAgICAg ICAgICAgICAgICAgICBhID0gWlooYSkKKyAgICAgICAgICAgICAgICAgbXB6X3RvX1paKCZ5LCAo PEludGVnZXI+YSkudmFsdWUpCistICAgICAgICAgICAgICAgIFpaWF9TZXRDb2VmZihzZWxmLl9f cG9seSwgaSwgeSkKKysgICAgICAgICAgICAgICAgWlpYX1NldENvZWZmKHNlbGYuX3BvbHksIGks IHkpCisgCisgCisgICAgIGRlZiBjb250ZW50KHNlbGYpOgorQEAgLTI1OSw3ICsyNTksNyBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIGNkZWYgWlpfYyB5CisgICAgICAgICBjZGVmIEludGVnZXIgeiA9 IEludGVnZXIuX19uZXdfXyhJbnRlZ2VyKQorLSAgICAgICAgWlpYX2NvbnRlbnQoeSwgc2VsZi5f X3BvbHkpCisrICAgICAgICBaWlhfY29udGVudCh5LCBzZWxmLl9wb2x5KQorICAgICAgICAgWlpf dG9fbXB6KHoudmFsdWUsICZ5KQorICAgICAgICAgcmV0dXJuIHoKKyAKK0BAIC0yODgsNyArMjg4 LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwp OgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgcmVzID0gYS5fbmV3KCkK KyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZyKHJlcy52YWx1 ZSwgc2VsZi5fX3BvbHksIGEudmFsdWUpCisrICAgICAgICBaWlhfZXZhbHVhdGlvbl9tcGZyKHJl cy52YWx1ZSwgc2VsZi5fcG9seSwgYS52YWx1ZSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAg ICAgcmV0dXJuIHJlcworIAorQEAgLTMxOCw3ICszMTgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IGNkZWYgUmVhbEludGVydmFsRmllbGRFbGVtZW50IHJlcyA9IGEuX25ldygpCisgICAgICAgICBz aWdfb24oKQorLSAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmaShyZXMudmFsdWUsIHNlbGYuX19w b2x5LCBhLnZhbHVlKQorKyAgICAgICAgWlpYX2V2YWx1YXRpb25fbXBmaShyZXMudmFsdWUsIHNl bGYuX3BvbHksIGEudmFsdWUpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBy ZXMKKyAKK0BAIC0zNjMsNyArMzYzLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIDUqeF41ICsgNCp4XjQgKyAzKnhe MyArIDIqeF4yICsgeCArIDEKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBJbnRlZ2VyIHog PSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdlcikKKy0gICAgICAgIFpaX3RvX21weih6LnZhbHVlLCAm c2VsZi5fX3BvbHkucmVwLmVsdHMoKVtuXSkKKysgICAgICAgIFpaX3RvX21weih6LnZhbHVlLCAm c2VsZi5fcG9seS5yZXAuZWx0cygpW25dKQorICAgICAgICAgcmV0dXJuIHoKKyAKKyAgICAgZGVm IF9yZXByKHNlbGYsIG5hbWU9Tm9uZSwgYmludCBsYXRleD1GYWxzZSk6CitAQCAtMzgwLDE1ICsz ODAsMTUgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21p YWwpOgorICAgICAgICAgICAgIG5hbWUgPSBzZWxmLnBhcmVudCgpLnZhcmlhYmxlX25hbWUoKQor ICAgICAgICAgY2RlZiBsb25nIGkKKyAgICAgICAgIGNkZWYgbGlzdCBhbGwgPSBbXQorLSAgICAg ICAgZm9yIGkgZnJvbSBaWlhfZGVnKHNlbGYuX19wb2x5KSA+PSBpID49IDA6CistICAgICAgICAg ICAgc2lnbiA9IFpaX3NpZ24oWlpYX2NvZWZmKHNlbGYuX19wb2x5LCBpKSkKKysgICAgICAgIGZv ciBpIGZyb20gWlpYX2RlZyhzZWxmLl9wb2x5KSA+PSBpID49IDA6CisrICAgICAgICAgICAgc2ln biA9IFpaX3NpZ24oWlpYX2NvZWZmKHNlbGYuX3BvbHksIGkpKQorICAgICAgICAgICAgIGlmIHNp Z246CisgICAgICAgICAgICAgICAgIGlmIHNpZ24gPiAwOgorICAgICAgICAgICAgICAgICAgICAg c2lnbl9zdHIgPSAnKycKKy0gICAgICAgICAgICAgICAgICAgIGNvZWZmX3N0ciA9IGNjcmVwcihz ZWxmLl9fcG9seS5yZXAuZWx0cygpW2ldKQorKyAgICAgICAgICAgICAgICAgICAgY29lZmZfc3Ry ID0gY2NyZXByKHNlbGYuX3BvbHkucmVwLmVsdHMoKVtpXSkKKyAgICAgICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICAgICAgIHNpZ25fc3RyID0gJy0nCistICAgICAgICAgICAgICAg ICAgICBjb2VmZl9zdHIgPSBjY3JlcHIoc2VsZi5fX3BvbHkucmVwLmVsdHMoKVtpXSlbMTpdCisr ICAgICAgICAgICAgICAgICAgICBjb2VmZl9zdHIgPSBjY3JlcHIoc2VsZi5fcG9seS5yZXAuZWx0 cygpW2ldKVsxOl0KKyAgICAgICAgICAgICAgICAgaWYgaSA+IDA6CisgICAgICAgICAgICAgICAg ICAgICBpZiBjb2VmZl9zdHIgPT0gJzEnOgorICAgICAgICAgICAgICAgICAgICAgICAgIGNvZWZm X3N0ciA9ICcnCitAQCAtNDQxLDggKzQ0MSw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAtMyp4XjIgKyAyKnggKyA3 CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250 bCB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIFpaWF9hZGQoeC5fX3BvbHksIHNlbGYuX19wb2x5 LAorLSAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+cmlnaHQp Ll9fcG9seSkKKysgICAgICAgIFpaWF9hZGQoeC5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAg ICAgICAgICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPnJpZ2h0KS5fcG9seSkKKyAg ICAgICAgIHJldHVybiB4CisgCisgCitAQCAtNDU5LDggKzQ1OSw4IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAzKnhe MiArIDIqeCAtIDUKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfbnRsIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAgWlpYX3N1Yih4Ll9fcG9seSwg c2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X250bD5yaWdodCkuX19wb2x5KQorKyAgICAgICAgWlpYX3N1Yih4Ll9wb2x5LCBzZWxmLl9wb2x5 LAorKyAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+cmlnaHQp Ll9wb2x5KQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAKK0BAIC00NzYsNyArNDc2LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAg ICAgICAgIC0yKnggKyAxCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX250bCB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIFpaWF9uZWdhdGUoeC5f X3BvbHksIHNlbGYuX19wb2x5KQorKyAgICAgICAgWlpYX25lZ2F0ZSh4Ll9wb2x5LCBzZWxmLl9w b2x5KQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAKK0BAIC01MzMsMTAgKzUzMywxMCBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCBfcmlnaHQg PSA8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD4gcmlnaHQKKyAKKy0gICAgICAgIGlmIFpa WF9Jc1plcm8oX3JpZ2h0Ll9fcG9seSk6CisrICAgICAgICBpZiBaWlhfSXNaZXJvKF9yaWdodC5f cG9seSk6CisgICAgICAgICAgICAgcmFpc2UgQXJpdGhtZXRpY0Vycm9yKCJkaXZpc2lvbiBieSB6 ZXJvIHBvbHlub21pYWwiKQorIAorLSAgICAgICAgaWYgWlpYX0lzWmVybyhzZWxmLl9fcG9seSk6 CisrICAgICAgICBpZiBaWlhfSXNaZXJvKHNlbGYuX3BvbHkpOgorICAgICAgICAgICAgIHJldHVy biBzZWxmLCBzZWxmCisgCisgICAgICAgICBjZGVmIFpaWF9jICpxCitAQCAtNTQ1LDE5ICs1NDUs MTkgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwp OgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsIHJyID0gc2VsZi5f bmV3KCkKKyAgICAgICAgIGNkZWYgaW50IGRpdmlzaWJsZQorIAorLSAgICAgICAgaWYgWlpfSXNP bmUoWlpYX0xlYWRDb2VmZihfcmlnaHQuX19wb2x5KSk6CisrICAgICAgICBpZiBaWl9Jc09uZSha WlhfTGVhZENvZWZmKF9yaWdodC5fcG9seSkpOgorICAgICAgICAgICAgICMgZGl2aXNvciBpcyBt b25pYy4gSnVzdCBkbyB0aGUgZGl2aXNpb24gYW5kIHJlbWFpbmRlcgorLSAgICAgICAgICAgIFpa WF9xdW9fcmVtKCZzZWxmLl9fcG9seSwgJl9yaWdodC5fX3BvbHksICZyLCAmcSkKKy0gICAgICAg ICAgICBaWlhfc3dhcChxcS5fX3BvbHksIHFbMF0pCistICAgICAgICAgICAgWlpYX3N3YXAocnIu X19wb2x5LCByWzBdKQorKyAgICAgICAgICAgIFpaWF9xdW9fcmVtKCZzZWxmLl9wb2x5LCAmX3Jp Z2h0Ll9wb2x5LCAmciwgJnEpCisrICAgICAgICAgICAgWlpYX3N3YXAocXEuX3BvbHksIHFbMF0p CisrICAgICAgICAgICAgWlpYX3N3YXAocnIuX3BvbHksIHJbMF0pCisgICAgICAgICAgICAgZGVs IHEKKyAgICAgICAgICAgICBkZWwgcgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAjIE5v bi1tb25pYyBkaXZpc29yLiBDaGVjayB3aGV0aGVyIGl0IGRpdmlkZXMgZXhhY3RseS4KKy0gICAg ICAgICAgICBxID0gWlpYX2Rpdigmc2VsZi5fX3BvbHksICZfcmlnaHQuX19wb2x5LCAmZGl2aXNp YmxlKQorKyAgICAgICAgICAgIHEgPSBaWlhfZGl2KCZzZWxmLl9wb2x5LCAmX3JpZ2h0Ll9wb2x5 LCAmZGl2aXNpYmxlKQorICAgICAgICAgICAgIGlmIGRpdmlzaWJsZToKKyAgICAgICAgICAgICAg ICAgIyBleGFjdGx5IGRpdmlzaWJsZQorLSAgICAgICAgICAgICAgICBaWlhfc3dhcChxWzBdLCBx cS5fX3BvbHkpCisrICAgICAgICAgICAgICAgIFpaWF9zd2FwKHFbMF0sIHFxLl9wb2x5KQorICAg ICAgICAgICAgICAgICBkZWwgcQorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg ICMgZGl2aXNpb24gZmFpbGVkOiBjbGVhbiB1cCBhbmQgcmFpc2UgZXhjZXB0aW9uCitAQCAtNTg0 LDggKzU4NCw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5 bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgIyB0b2RvOiB3ZSdyZSBkb2luZyBhbiB1 bm5lY2Vzc2FyeSBjb3B5IGhlcmUKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX250bCB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGNkZWYgWlpYX2MqIHRlbXAgPSBaWlhf Z2NkKCZzZWxmLl9fcG9seSwgJig8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bD5yaWdodCku X19wb2x5KQorLSAgICAgICAgeC5fX3BvbHkgPSB0ZW1wWzBdCisrICAgICAgICBjZGVmIFpaWF9j KiB0ZW1wID0gWlpYX2djZCgmc2VsZi5fcG9seSwgJig8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X250bD5yaWdodCkuX3BvbHkpCisrICAgICAgICB4Ll9wb2x5ID0gdGVtcFswXQorICAgICAgICAg ZGVsIHRlbXAKKyAgICAgICAgIHJldHVybiB4CisgCitAQCAtNjU4LDEzICs2NTgsMTMgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAg ICAgY2RlZiBaWlhfYyAqdAorICAgICAgICAgY2RlZiBaWl9jICpyCisgCistICAgICAgICBaWlhf eGdjZCgmc2VsZi5fX3BvbHksICYoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+cmlnaHQp Ll9fcG9seSwgJnIsICZzLCAmdCwgMSkgICAgIyBwcm9vZiA9IDEKKysgICAgICAgIFpaWF94Z2Nk KCZzZWxmLl9wb2x5LCAmKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPnJpZ2h0KS5fcG9s eSwgJnIsICZzLCAmdCwgMSkgICAgIyBwcm9vZiA9IDEKKyAgICAgICAgIGNkZWYgSW50ZWdlciBy ciA9IEludGVnZXIuX19uZXdfXyhJbnRlZ2VyKQorICAgICAgICAgWlpfdG9fbXB6KHJyLnZhbHVl LCByKQorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsIHNzID0gc2Vs Zi5fbmV3KCkKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCB0dCA9 IHNlbGYuX25ldygpCistICAgICAgICBzcy5fX3BvbHkgPSBzWzBdCistICAgICAgICB0dC5fX3Bv bHkgPSB0WzBdCisrICAgICAgICBzcy5fcG9seSA9IHNbMF0KKysgICAgICAgIHR0Ll9wb2x5ID0g dFswXQorICAgICAgICAgZGVsIHIKKyAgICAgICAgIGRlbCBzCisgICAgICAgICBkZWwgdAorQEAg LTY5MSw4ICs2OTEsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwo UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgeF4zIC0gMTAqeF4yICsgMzIqeCAtIDMyCisgICAg ICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCB4ID0g c2VsZi5fbmV3KCkKKy0gICAgICAgIFpaWF9tdWwoeC5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAg ICAgICAgICAgICAgICAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGw+cmlnaHQpLl9fcG9s eSkKKysgICAgICAgIFpaWF9tdWwoeC5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAg ICAgKDxQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPnJpZ2h0KS5fcG9seSkKKyAgICAgICAg IHJldHVybiB4CisgCisgICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKK0BA IC03MTEsNyArNzExLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRs KFBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBaWl9jIF9yaWdodAorIAorICAgICAgICAgbXB6 X3RvX1paKCZfcmlnaHQsICg8SW50ZWdlcj5yaWdodCkudmFsdWUpCistICAgICAgICBaWlhfbXVs X1paKHguX19wb2x5LCBzZWxmLl9fcG9seSwgX3JpZ2h0KQorKyAgICAgICAgWlpYX211bF9aWih4 Ll9wb2x5LCBzZWxmLl9wb2x5LCBfcmlnaHQpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBj cGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCByaWdodCk6CitAQCAtNzMwLDcgKzczMCw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAg ICAgIGNkZWYgWlpfYyBfcmlnaHQKKyAKKyAgICAgICAgIG1wel90b19aWigmX3JpZ2h0LCAoPElu dGVnZXI+cmlnaHQpLnZhbHVlKQorLSAgICAgICAgWlpYX211bF9aWih4Ll9fcG9seSwgc2VsZi5f X3BvbHksIF9yaWdodCkKKysgICAgICAgIFpaWF9tdWxfWlooeC5fcG9seSwgc2VsZi5fcG9seSwg X3JpZ2h0KQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAKK0BAIC03ODMsNyArNzgzLDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAg ICAgdmFsdWUgPSBJbnRlZ2VyKHZhbHVlKQorICAgICAgICAgY2RlZiBaWl9jIHkKKyAgICAgICAg IG1wel90b19aWigmeSwgKDxJbnRlZ2VyPnZhbHVlKS52YWx1ZSkKKy0gICAgICAgIFpaWF9TZXRD b2VmZihzZWxmLl9fcG9seSwgbiwgeSkKKysgICAgICAgIFpaWF9TZXRDb2VmZihzZWxmLl9wb2x5 LCBuLCB5KQorIAorIAorICAgICBkZWYgcmVhbF9yb290X2ludGVydmFscyhzZWxmKToKK0BAIC04 MDUsNyArODA1LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBv bHlub21pYWwpOgorIAorICMjICAgICBkZWYgX19jb3B5X18oc2VsZik6CisgIyMgICAgICAgICBm ID0gUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlKHNlbGYucGFyZW50KCkpCistIyMgICAgICAgICBm Ll9fcG9seSA9IHNlbGYuX19wb2x5LmNvcHkoKQorKyMjICAgICAgICAgZi5fcG9seSA9IHNlbGYu X3BvbHkuY29weSgpCisgIyMgICAgICAgICByZXR1cm4gZgorIAorIAorQEAgLTgyNiw3ICs4MjYs NyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6 CisgICAgICAgICAgICAgc2FnZTogUigwKS5kZWdyZWUoKQorICAgICAgICAgICAgIC0xCisgICAg ICAgICAiIiIKKy0gICAgICAgIHJldHVybiBaWlhfZGVnKHNlbGYuX19wb2x5KQorKyAgICAgICAg cmV0dXJuIFpaWF9kZWcoc2VsZi5fcG9seSkKKyAKKyAgICAgZGVmIGRpc2NyaW1pbmFudChzZWxm LCBwcm9vZj1UcnVlKToKKyAgICAgICAgIHIiIiIKK0BAIC04NDksNyArODQ5LDcgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAg ICAgIHNhZ2U6IGYuZGlzY3JpbWluYW50KHByb29mPUZhbHNlKQorICAgICAgICAgICAgIC0zMzkK KyAgICAgICAgICIiIgorLSAgICAgICAgY2RlZiBaWl9jKiB0ZW1wID0gWlpYX2Rpc2NyaW1pbmFu dCgmc2VsZi5fX3BvbHksIHByb29mKQorKyAgICAgICAgY2RlZiBaWl9jKiB0ZW1wID0gWlpYX2Rp c2NyaW1pbmFudCgmc2VsZi5fcG9seSwgcHJvb2YpCisgICAgICAgICBjZGVmIEludGVnZXIgeCA9 IEludGVnZXIuX19uZXdfXyhJbnRlZ2VyKQorICAgICAgICAgWlpfdG9fbXB6KHgudmFsdWUsIHRl bXApCisgICAgICAgICBkZWwgdGVtcAorQEAgLTkwNCwxMSArOTA0LDExIEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYg bG9uZyogZQorICAgICAgICAgY2RlZiBsb25nIGksIG4KKyAgICAgICAgIGNkZWYgUG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX250bCB6CistICAgICAgICBaWlhfc3F1YXJlZnJlZV9kZWNvbXBvc2l0 aW9uKCZ2LCAmZSwgJm4sICZwLl9fcG9seSkKKysgICAgICAgIFpaWF9zcXVhcmVmcmVlX2RlY29t cG9zaXRpb24oJnYsICZlLCAmbiwgJnAuX3BvbHkpCisgICAgICAgICBGID0gW10KKyAgICAgICAg IGZvciBpIGZyb20gMCA8PSBpIDwgbjoKKyAgICAgICAgICAgICB6ID0gc2VsZi5fbmV3KCkKKy0g ICAgICAgICAgICB6Ll9fcG9seSA9IHZbaV1bMF0KKysgICAgICAgICAgICB6Ll9wb2x5ID0gdltp XVswXQorICAgICAgICAgICAgIEYuYXBwZW5kKCh6LCBlW2ldKSkKKyAgICAgICAgICAgICBkZWwg dltpXQorICAgICAgICAgc2lnX2ZyZWUodikKK0BAIC05NTAsMjQgKzk1MCwyNCBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6CisgICAgICAgICBj ZGVmIFpaX2MgY29udGVudAorICAgICAgICAgY2RlZiB2ZWNfcGFpcl9aWlhfbG9uZ19jIGZhY3Rv cnMKKyAgICAgICAgIGNkZWYgbG9uZyBpCistICAgICAgICBjZGVmIGludCBzaWdfbWUgPSBaWlhf ZGVnKHNlbGYuX19wb2x5KQorKyAgICAgICAgY2RlZiBpbnQgc2lnX21lID0gWlpYX2RlZyhzZWxm Ll9wb2x5KQorICAgICAgICAgaWYgc2lnX21lID4gMTA6CisgICAgICAgICAgICAgc2lnX29uKCkK Ky0gICAgICAgIFpaWF9mYWN0b3IoY29udGVudCwgZmFjdG9ycywgc2VsZi5fX3BvbHksIDAsIDAp CisrICAgICAgICBaWlhfZmFjdG9yKGNvbnRlbnQsIGZhY3RvcnMsIHNlbGYuX3BvbHksIDAsIDAp CisgICAgICAgICBpZiBzaWdfbWUgPiAxMDoKKyAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIHJlc3VsdHMgPSBbXQorICAgICAgICAgdW5pdCA9IE5vbmUKKyAgICAgICAgIGlmIG5vdCBa Wl9Jc09uZShjb250ZW50KToKKyAgICAgICAgICAgICBmYWNfcHkgPSBzZWxmLl9uZXcoKQorLSAg ICAgICAgICAgIFpaWF9TZXRDb2VmZihmYWNfcHkuX19wb2x5LCAwLCBjb250ZW50KQorLSAgICAg ICAgICAgIGlmIFpaWF9kZWcoZmFjX3B5Ll9fcG9seSkgPT0gMCBhbmQgWlpfdG9faW50KGZhY19w eS5fX3BvbHkucmVwLmVsdHMoKSk9PS0xOgorKyAgICAgICAgICAgIFpaWF9TZXRDb2VmZihmYWNf cHkuX3BvbHksIDAsIGNvbnRlbnQpCisrICAgICAgICAgICAgaWYgWlpYX2RlZyhmYWNfcHkuX3Bv bHkpID09IDAgYW5kIFpaX3RvX2ludChmYWNfcHkuX3BvbHkucmVwLmVsdHMoKSk9PS0xOgorICAg ICAgICAgICAgICAgICB1bml0ID0gZmFjX3B5CisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICAgICAgcmVzdWx0cy5hcHBlbmQoIChmYWNfcHksMSkgKQorICAgICAgICAgZm9yIGkgZnJv bSAwIDw9IGkgPCBmYWN0b3JzLmxlbmd0aCgpOgorICAgICAgICAgICAgIGZhY19weSA9IHNlbGYu X25ldygpCistICAgICAgICAgICAgZmFjX3B5Ll9fcG9seSA9IGZhY3RvcnMuUmF3R2V0KGkpLmEK KysgICAgICAgICAgICBmYWNfcHkuX3BvbHkgPSBmYWN0b3JzLlJhd0dldChpKS5hCisgICAgICAg ICAgICAgcmVzdWx0cy5hcHBlbmQoIChmYWNfcHksZmFjdG9ycy5SYXdHZXQoaSkuYikgKQorICAg ICAgICAgcmV0dXJuIEZhY3Rvcml6YXRpb24ocmVzdWx0cywgdW5pdCA9IHVuaXQpCisgCitAQCAt OTk2LDcgKzk5Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bChQ b2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBmID0gLTMwKng7IGYuZmFjdG9yKCkKKyAg ICAgICAgICAgICAoLTEpICogMiAqIDMgKiA1ICogeAorICAgICAgICAgIiIiCistICAgICAgICBj ZGVmIGludCBkZWcgPSBaWlhfZGVnKHNlbGYuX19wb2x5KQorKyAgICAgICAgY2RlZiBpbnQgZGVn ID0gWlpYX2RlZyhzZWxmLl9wb2x5KQorICAgICAgICAgIyBpdCBhcHBlYXJzIHRoYXQgcGFyaSBo YXMgYSB3aW5kb3cgZnJvbSBhYm91dCBkZWdyZWVzIDMwIGFuZCAzMDAKKyAgICAgICAgICMgaW4g d2hpY2ggaXQgYmVhdHMgTlRMLgorICAgICAgICAgYyA9IHNlbGYuY29udGVudCgpCitAQCAtMTEz MSw3ICsxMTMxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBv bHlub21pYWwpOgorICAgICAgICAgICAgIFRydWUKKyAgICAgICAgICIiIgorICAgICAgICAgY2Rl ZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsIF9vdGhlciA9IDxQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfbnRsPihzZWxmLnBhcmVudCgpLmNvZXJjZShvdGhlcikpCistICAgICAgICBjZGVm IFpaX2MqIHRlbXAgPSBaWlhfcmVzdWx0YW50KCZzZWxmLl9fcG9seSwgJl9vdGhlci5fX3BvbHks IHByb29mKQorKyAgICAgICAgY2RlZiBaWl9jKiB0ZW1wID0gWlpYX3Jlc3VsdGFudCgmc2VsZi5f cG9seSwgJl9vdGhlci5fcG9seSwgcHJvb2YpCisgICAgICAgICBjZGVmIEludGVnZXIgeCA9IElu dGVnZXIuX19uZXdfXyhJbnRlZ2VyKQorICAgICAgICAgWlpfdG9fbXB6KHgudmFsdWUsIHRlbXAp CisgICAgICAgICBkZWwgdGVtcAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21p YWwvcG9seW5vbWlhbF9tb2RuX2RlbnNlX250bC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL3BvbHlub21pYWxfbW9kbl9kZW5zZV9udGwucHhkCitpbmRleCAyNjRmMDVmM2MwZC4uNjkz NGFjZmVlOGQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21p YWxfbW9kbl9kZW5zZV9udGwucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bv bHlub21pYWxfbW9kbl9kZW5zZV9udGwucHhkCitAQCAtMTYsNyArMTYsNyBAQCBmcm9tIHNhZ2Uu bGlicy5udGwubHp6X3BYIGNpbXBvcnQgKgorIAorIAorIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9k ZW5zZV9tb2RfbihQb2x5bm9taWFsKToKKy0gICAgY2RlZiBvYmplY3QgX19wb2x5CisrICAgIGNk ZWYgb2JqZWN0IF9wb2x5CisgICAgIGNkZWYgb2JqZWN0IF9fc2luZ3VsYXIKKyAKKyBjZGVmIGNs YXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfenooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6 CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX21vZG5f ZGVuc2VfbnRsLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9tb2Ru X2RlbnNlX250bC5weXgKK2luZGV4IDU3NDY4ZTM1MTBmLi5kNjlkNWUwOTAxOCAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9tb2RuX2RlbnNlX250bC5w eXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9tb2RuX2RlbnNl X250bC5weXgKK0BAIC0xMDUsMTkgKzEwNSwxOSBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVu c2VfbW9kX24oUG9seW5vbWlhbCk6CisgCisgICAgICAgICBpZiBjb25zdHJ1Y3Q6CisgICAgICAg ICAgICAgaWYgaXNpbnN0YW5jZSh4LCBaWl9wWCk6CistICAgICAgICAgICAgICAgIHNlbGYuX19w b2x5ID0geAorKyAgICAgICAgICAgICAgICBzZWxmLl9wb2x5ID0geAorICAgICAgICAgICAgICAg ICByZXR1cm4KKy0gICAgICAgICAgICBzZWxmLl9fcG9seSA9IFpaX3BYKHgsIHBhcmVudC5tb2R1 bHVzKCkpCisrICAgICAgICAgICAgc2VsZi5fcG9seSA9IFpaX3BYKHgsIHBhcmVudC5tb2R1bHVz KCkpCisgICAgICAgICAgICAgcmV0dXJuCisgCistICAgICAgICBzZWxmLl9fcG9seSA9IFpaX3BY KFtdLCBwYXJlbnQubW9kdWx1cygpKQorKyAgICAgICAgc2VsZi5fcG9seSA9IFpaX3BYKFtdLCBw YXJlbnQubW9kdWx1cygpKQorIAorICAgICAgICAgaWYgeCBpcyBOb25lOgorICAgICAgICAgICAg IHJldHVybiAgICAgICAgICMgbGVhdmUgaW5pdGlhbGl6ZWQgdG8gMCBwb2x5bm9taWFsLgorIAor ICAgICAgICAgaWYgaXNpbnN0YW5jZSh4LCBQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBpZiB4 LnBhcmVudCgpID09IHNlbGYucGFyZW50KCk6CistICAgICAgICAgICAgICAgIHNlbGYuX19wb2x5 ID0gKDxQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6PngpLl9fcG9seS5fX2NvcHlfXygpCisr ICAgICAgICAgICAgICAgIHNlbGYuX3BvbHkgPSAoPFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxf eno+eCkuX3BvbHkuX19jb3B5X18oKQorICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgICAgICBSID0gcGFyZW50LmJhc2VfcmluZygpCitAQCAt MTMwLDcgKzEzMCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5bm9t aWFsKToKKyAKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBaWlgpOgorLSAgICAgICAg ICAgIHNlbGYuX19wb2x5ID0geC5jb3B5KCkKKysgICAgICAgICAgICBzZWxmLl9wb2x5ID0geC5j b3B5KCkKKyAgICAgICAgICAgICByZXR1cm4KKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4 LCBwYXJpX2dlbik6CitAQCAtMTQyLDcgKzE0Miw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9k ZW5zZV9tb2RfbihQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBpZiB4LmRlbm9taW5hdG9yKCku aXNfdW5pdCgpOgorICAgICAgICAgICAgICAgICBudW1lciA9IHgubnVtZXJhdG9yKCkKKyAgICAg ICAgICAgICAgICAgZGVub20gPSB4LmRlbm9taW5hdG9yKCkuaW52ZXJzZV9vZl91bml0KCkKKy0g ICAgICAgICAgICAgICAgeCA9IG51bWVyLl9fcG9seSAqIGRlbm9tLl9fcG9seQorKyAgICAgICAg ICAgICAgICB4ID0gbnVtZXIuX3BvbHkgKiBkZW5vbS5fcG9seQorICAgICAgICAgICAgICAgICBj aGVjayA9IEZhbHNlCisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgcmFpc2Ug VHlwZUVycm9yKCJEZW5vbWluYXRvciBub3QgYSB1bml0LiIpCitAQCAtMTU0LDEzICsxNTQsMTMg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBvbHlub21pYWwpOgorICAgICAg ICAgICAgIFIgPSBwYXJlbnQuYmFzZV9yaW5nKCkKKyAgICAgICAgICAgICB4ID0gW1paKFIoYSkp IGZvciBhIGluIHhdCisgCistICAgICAgICBzZWxmLl9fcG9seSA9IFpaX3BYKHgsIHBhcmVudC5t b2R1bHVzKCkpCisrICAgICAgICBzZWxmLl9wb2x5ID0gWlpfcFgoeCwgcGFyZW50Lm1vZHVsdXMo KSkKKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CisgICAgICAgICByZXR1cm4gbWFrZV9l bGVtZW50LCAoc2VsZi5wYXJlbnQoKSwgKHNlbGYubGlzdCgpLCBGYWxzZSwgc2VsZi5pc19nZW4o KSkpCisgCisgICAgIGRlZiBpbnRfbGlzdChzZWxmKToKKy0gICAgICAgIHJldHVybiBldmFsKHN0 cihzZWxmLl9fcG9seSkucmVwbGFjZSgnICcsJywnKSkKKysgICAgICAgIHJldHVybiBldmFsKHN0 cihzZWxmLl9wb2x5KS5yZXBsYWNlKCcgJywnLCcpKQorIAorICAgICBkZWYgX19wYXJpX18oc2Vs ZiwgdmFyaWFibGU9Tm9uZSk6CisgICAgICAgICAiIiIKK0BAIC0xODYsNyArMTg2LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBvbHlub21pYWwpOgorICAgICAgICAgICAg IFlvdSBtdXN0IGNhbGwgYGBudGwuc2V0X21vZHVsdXMobnRsLlpaKG4pKWBgIGJlZm9yZSBkb2lu ZworICAgICAgICAgICAgIGFyaXRobWV0aWMgd2l0aCB0aGlzIG9iamVjdCEKKyAgICAgICAgICIi IgorLSAgICAgICAgcmV0dXJuIHNlbGYuX19wb2x5CisrICAgICAgICByZXR1cm4gc2VsZi5fcG9s eQorIAorICAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBuKToKKyAgICAgICAg ICIiIgorQEAgLTIwMywxMyArMjAzLDEzIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9t b2RfbihQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiBmWzozXQorICAgICAgICAgICAg IDEzKnheMiArIDEwKnggKyA1CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzZWxmLl9w YXJlbnQuX2Jhc2UoKDxudGxfWlpfcFg+IHNlbGYuX19wb2x5KVtuXS5faW50ZWdlcl8oKSkKKysg ICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuX2Jhc2UoKDxudGxfWlpfcFg+IHNlbGYuX3BvbHkp W25dLl9pbnRlZ2VyXygpKQorIAorICAgICBkZWYgX3Vuc2FmZV9tdXRhdGUoc2VsZiwgbiwgdmFs dWUpOgorICAgICAgICAgbiA9IGludChuKQorICAgICAgICAgaWYgbiA8IDA6CisgICAgICAgICAg ICAgcmFpc2UgSW5kZXhFcnJvcigibiBtdXN0IGJlID49IDAiKQorLSAgICAgICAgc2VsZi5fX3Bv bHlbbl0gPSBpbnQodmFsdWUpCisrICAgICAgICBzZWxmLl9wb2x5W25dID0gaW50KHZhbHVlKQor IAorICAgICBkZWYgX3BvdyhzZWxmLCBuKToKKyAgICAgICAgIG4gPSBpbnQobikKK0BAIC0yMTgs MTAgKzIxOCwxMCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlh bCk6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZlswXSoqbikKKyAgICAg ICAgIGlmIG4gPCAwOgorICAgICAgICAgICAgIHJldHVybiAofnNlbGYpKiooLW4pCistICAgICAg ICByZXR1cm4gc2VsZi5wYXJlbnQoKShzZWxmLl9fcG9seSoqbiwgY29uc3RydWN0PVRydWUpCisr ICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShzZWxmLl9wb2x5KipuLCBjb25zdHJ1Y3Q9VHJ1 ZSkKKyAKKyAgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorLSAgICAgICAgcmV0dXJuIHNl bGYucGFyZW50KCkoc2VsZi5fX3BvbHkgKyAoPFBvbHlub21pYWxfZGVuc2VfbW9kX24+cmlnaHQp Ll9fcG9seSwgY29uc3RydWN0PVRydWUpCisrICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShz ZWxmLl9wb2x5ICsgKDxQb2x5bm9taWFsX2RlbnNlX21vZF9uPnJpZ2h0KS5fcG9seSwgY29uc3Ry dWN0PVRydWUpCisgCisgICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIi IgorQEAgLTIzMSwxMSArMjMxLDExIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2Rf bihQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBzYWdlOiAoeCAtIDIpKih4XjIgLSA4KnggKyAx NikKKyAgICAgICAgICAgICB4XjMgKyA5MCp4XjIgKyAzMip4ICsgNjgKKyAgICAgICAgICIiIgor LSAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fX3BvbHkgKiAoPFBvbHlub21pYWxf ZGVuc2VfbW9kX24+cmlnaHQpLl9fcG9seSwgY29uc3RydWN0PVRydWUpCisrICAgICAgICByZXR1 cm4gc2VsZi5wYXJlbnQoKShzZWxmLl9wb2x5ICogKDxQb2x5bm9taWFsX2RlbnNlX21vZF9uPnJp Z2h0KS5fcG9seSwgY29uc3RydWN0PVRydWUpCisgCisgICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBF bGVtZW50IGMpOgorICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgIHJldHVybiBzZWxmLnBhcmVu dCgpKFpaX3BYKFtjXSwgc2VsZi5wYXJlbnQoKS5tb2R1bHVzKCkpICogc2VsZi5fX3BvbHksIGNv bnN0cnVjdD1UcnVlKQorKyAgICAgICAgICAgIHJldHVybiBzZWxmLnBhcmVudCgpKFpaX3BYKFtj XSwgc2VsZi5wYXJlbnQoKS5tb2R1bHVzKCkpICogc2VsZi5fcG9seSwgY29uc3RydWN0PVRydWUp CisgICAgICAgICBleGNlcHQgUnVudGltZUVycm9yIGFzIG1zZzogIyBzaG91bGQgdGhpcyByZWFs bHkgYmUgYSBUeXBlRXJyb3IKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnKQorIAor QEAgLTI0NSw3ICsyNDUsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9s eW5vbWlhbCk6CisgICAgICAgICBSZXR1cm4gYSB0dXBsZSBgYChxdW90aWVudCwgcmVtYWluZGVy KWBgIHdoZXJlIGBgc2VsZiA9IHF1b3RpZW50Km90aGVyICsKKyAgICAgICAgIHJlbWFpbmRlcmBg LgorICAgICAgICAgIiIiCistICAgICAgICB2ID0gc2VsZi5fX3BvbHkucXVvX3JlbSgoPFBvbHlu b21pYWxfZGVuc2VfbW9kX24+cmlnaHQpLl9fcG9seSkKKysgICAgICAgIHYgPSBzZWxmLl9wb2x5 LnF1b19yZW0oKDxQb2x5bm9taWFsX2RlbnNlX21vZF9uPnJpZ2h0KS5fcG9seSkKKyAgICAgICAg IFAgPSBzZWxmLnBhcmVudCgpCisgICAgICAgICByZXR1cm4gKFAodlswXSwgY29uc3RydWN0PVRy dWUpLCBQKHZbMV0sIGNvbnN0cnVjdD1UcnVlKSApCisgCitAQCAtMjgxLDExICsyODEsMTEgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBvbHlub21pYWwpOgorICAgICAgICAg IiIiCisgICAgICAgICBpZiBuID09IDAgb3Igc2VsZi5kZWdyZWUoKSA8IDA6CisgICAgICAgICAg ICAgcmV0dXJuIHNlbGYKKy0gICAgICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNlbGYuX19wb2x5 LmxlZnRfc2hpZnQobiksCisrICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShzZWxmLl9wb2x5 LmxlZnRfc2hpZnQobiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdHJ1Y3Q9 VHJ1ZSkKKyAKKyAgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorLSAgICAgICAgcmV0dXJu IHNlbGYucGFyZW50KCkoc2VsZi5fX3BvbHkgLSAoPFBvbHlub21pYWxfZGVuc2VfbW9kX24+cmln aHQpLl9fcG9seSwgY29uc3RydWN0PVRydWUpCisrICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQo KShzZWxmLl9wb2x5IC0gKDxQb2x5bm9taWFsX2RlbnNlX21vZF9uPnJpZ2h0KS5fcG9seSwgY29u c3RydWN0PVRydWUpCisgCisgICAgIGRlZiBfX2Zsb29yZGl2X18oc2VsZiwgcmlnaHQpOgorICAg ICAgICAgcSwgXyA9IHNlbGYucXVvX3JlbShyaWdodCkKK0BAIC0zMTQsNyArMzE0LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBvbHlub21pYWwpOgorICAgICAgICAgICAg IHNhZ2U6IGlzaW5zdGFuY2UoeC5kZWdyZWUoKSwgSW50ZWdlcikKKyAgICAgICAgICAgICBUcnVl CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzbWFsbEludGVnZXIobWF4KHNlbGYuX19w b2x5LmRlZ3JlZSgpLCAtMSkpCisrICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKG1heChzZWxm Ll9wb2x5LmRlZ3JlZSgpLCAtMSkpCisgCisgICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50 IGNvcHk9VHJ1ZSk6CisgICAgICAgICAiIiIKK0BAIC0zNTgsNyArMzU4LDcgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAg ICAgICBpZiBzZWxmLmlzX2dlbigpOgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiQ2Fu bm90IGNoYW5nZSB0aGUgdmFsdWUgb2YgdGhlIGdlbmVyYXRvci4iKQorLSAgICAgICAgc2VsZi5f X3BvbHkgPSBaWl9wWCh2LCBzZWxmLnBhcmVudCgpLm1vZHVsdXMoKSkKKysgICAgICAgIHNlbGYu X3BvbHkgPSBaWl9wWCh2LCBzZWxmLnBhcmVudCgpLm1vZHVsdXMoKSkKKyAKKyAgICAgIyBQb2x5 bm9taWFsX3Npbmd1bGFyX3JlcHIgc3R1ZmYsIGNvcGllZCBkdWUgdG8gbGFjayBvZiBtdWx0aXBs ZSBpbmhlcml0YW5jZQorICAgICBkZWYgX3Npbmd1bGFyXyhzZWxmLCBzaW5ndWxhcj1zaW5ndWxh cl9kZWZhdWx0LCBmb3JjZT1GYWxzZSk6CitAQCAtNjU0LDggKzY1NCw4IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF96eihQb2x5bm9taWFsX2RlbnNlX21vZF9uKToKKyAg ICAgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBQb2x5bm9taWFsX2RlbnNlX21vZF9u Ll9faW5pdF9fKHNlbGYsIHBhcmVudCwgdiwgY2hlY2s9Y2hlY2ssIGlzX2dlbj1pc19nZW4sIGNv bnN0cnVjdD1jb25zdHJ1Y3QpCistICAgICAgICB2ID0gW2EgZm9yIGEgaW4gc2VsZi5fX3BvbHku bGlzdCgpXQorLSAgICAgICAgc2VsZi5fX3BvbHkgPSBOb25lICMgdGhpcyB3aWxsIGV2ZW50dWFs bHkgZ28gYXdheQorKyAgICAgICAgdiA9IFthIGZvciBhIGluIHNlbGYuX3BvbHkubGlzdCgpXQor KyAgICAgICAgc2VsZi5fcG9seSA9IE5vbmUgIyB0aGlzIHdpbGwgZXZlbnR1YWxseSBnbyBhd2F5 CisgICAgICAgICBjZGVmIG50bF96el9wWCBudGwgPSBudGxfenpfcFgodiwgcGFyZW50Lm1vZHVs dXMoKSkgIyBsZXQgaXQgaGFuZGxlIHRoZSBoYXJkIHdvcmsKKyAgICAgICAgIHNlbGYueCA9IG50 bC54CisgICAgICAgICBzZWxmLmMgPSBudGwuYworQEAgLTY2OCw4ICs2NjgsOCBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfenooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6 CisgICAgICAgICAjIFRPRE86IEdldCByaWQgb2YgdGhpcworICAgICAgICAgUG9seW5vbWlhbF9k ZW5zZV9tb2Rfbi5udGxfc2V0X2RpcmVjdGx5KHNlbGYsIHYpCisgICAgICAgICAjIHZlcmJhdGlt IGZyb20gX19pbml0X18KKy0gICAgICAgIHYgPSBbaW50KGEpIGZvciBhIGluIHNlbGYuX19wb2x5 Lmxpc3QoKV0KKy0gICAgICAgIHNlbGYuX19wb2x5ID0gTm9uZSAjIHRoaXMgd2lsbCBldmVudHVh bGx5IGdvIGF3YXkKKysgICAgICAgIHYgPSBbaW50KGEpIGZvciBhIGluIHNlbGYuX3BvbHkubGlz dCgpXQorKyAgICAgICAgc2VsZi5fcG9seSA9IE5vbmUgIyB0aGlzIHdpbGwgZXZlbnR1YWxseSBn byBhd2F5CisgICAgICAgICBjZGVmIG50bF96el9wWCBudGwgPSBudGxfenpfcFgodiwgc2VsZi5f cGFyZW50Lm1vZHVsdXMoKSkgIyBsZXQgaXQgaGFuZGxlIHRoZSBoYXJkIHdvcmsKKyAgICAgICAg IHNlbGYueCA9IG50bC54CisgICAgICAgICBzZWxmLmMgPSBudGwuYworQEAgLTEyNDEsOCArMTI0 MSw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9aWihQb2x5bm9taWFs X2RlbnNlX21vZF9uKToKKyAgICAgICAgICAgICAgICAgcmV0dXJuCisgCisgICAgICAgICBQb2x5 bm9taWFsX2RlbnNlX21vZF9uLl9faW5pdF9fKHNlbGYsIHBhcmVudCwgdiwgY2hlY2s9Y2hlY2ss IGlzX2dlbj1pc19nZW4sIGNvbnN0cnVjdD1jb25zdHJ1Y3QpCistICAgICAgICBjZGVmIG50bF9a Wl9wWCBudGwgPSBzZWxmLl9fcG9seQorLSAgICAgICAgc2VsZi5fX3BvbHkgPSBOb25lICMgdGhp cyB3aWxsIGV2ZW50dWFsbHkgZ28gYXdheQorKyAgICAgICAgY2RlZiBudGxfWlpfcFggbnRsID0g c2VsZi5fcG9seQorKyAgICAgICAgc2VsZi5fcG9seSA9IE5vbmUgIyB0aGlzIHdpbGwgZXZlbnR1 YWxseSBnbyBhd2F5CisgICAgICAgICBzZWxmLnggPSBudGwueAorICAgICAgICAgc2VsZi5jID0g bnRsLmMKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9t aWFsX3JhdGlvbmFsX2ZsaW50LnB4ZAoraW5kZXggMDU1ZDc4NDI2NjguLmY0NjQ0ZjE5ZDA0IDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3Jh dGlvbmFsX2ZsaW50LnB4ZAorQEAgLTExLDcgKzExLDcgQEAgZnJvbSBzYWdlLmxpYnMuZmxpbnQu dHlwZXMgY2ltcG9ydCBmbXBxX3BvbHlfdAorIGZyb20gc2FnZS5yaW5ncy5wb2x5bm9taWFsLnBv bHlub21pYWxfZWxlbWVudCBjaW1wb3J0IFBvbHlub21pYWwKKyAKKyBjZGVmIGNsYXNzIFBvbHlu b21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CistICAgIGNkZWYgZm1wcV9wb2x5X3Qg X19wb2x5CisrICAgIGNkZWYgZm1wcV9wb2x5X3QgX3BvbHkKKyAKKyAgICAgY2RlZiBQb2x5bm9t aWFsX3JhdGlvbmFsX2ZsaW50IF9uZXcoc2VsZikKKyAgICAgY3BkZWYgX21vZF8oc2VsZiwgcmln aHQpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3Jh dGlvbmFsX2ZsaW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9y YXRpb25hbF9mbGludC5weXgKK2luZGV4IGQwZGQxNTUyMmU5Li4yNmQwNzBhYzc3ZiAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25h bF9mbGludC5weXgKK0BAIC0xNTUsMTYgKzE1NSwxNiBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf cmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICByZXMuX3BhcmVudCA9IFAKKyAg ICAgICAgIHJlcy5faXNfZ2VuID0gPGNoYXI+MAorICAgICAgICAgaWYgaXNpbnN0YW5jZSh4LCBp bnQpOgorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfc2kocmVzLl9fcG9seSwgPGludD4geCkK KysgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X3NpKHJlcy5fcG9seSwgPGludD4geCkKKyAKKyAg ICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBJbnRlZ2VyKToKKy0gICAgICAgICAgICBmbXBxX3Bv bHlfc2V0X21weihyZXMuX19wb2x5LCAoPEludGVnZXI+IHgpLnZhbHVlKQorKyAgICAgICAgICAg IGZtcHFfcG9seV9zZXRfbXB6KHJlcy5fcG9seSwgKDxJbnRlZ2VyPiB4KS52YWx1ZSkKKyAKKyAg ICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBSYXRpb25hbCk6CistICAgICAgICAgICAgZm1wcV9w b2x5X3NldF9tcHEocmVzLl9fcG9seSwgKDxSYXRpb25hbD4geCkudmFsdWUpCisrICAgICAgICAg ICAgZm1wcV9wb2x5X3NldF9tcHEocmVzLl9wb2x5LCAoPFJhdGlvbmFsPiB4KS52YWx1ZSkKKyAK KyAgICAgICAgIGVsc2U6CistICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9zaShyZXMuX19wb2x5 LCBpbnQoeCkpCisrICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9zaShyZXMuX3BvbHksIGludCh4 KSkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKyAKK0BAIC0xNzcsNyArMTc3LDcgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAg IHNhZ2U6IFIuPHQ+ID0gUVFbXQorICAgICAgICAgICAgIHNhZ2U6IGYgPSAyLzMgKiB0IC0gNyAg I2luZGlyZWN0IGRvY3Rlc3QKKyAgICAgICAgICIiIgorLSAgICAgICAgZm1wcV9wb2x5X2luaXQo c2VsZi5fX3BvbHkpCisrICAgICAgICBmbXBxX3BvbHlfaW5pdChzZWxmLl9wb2x5KQorIAorICAg ICBkZWYgX19kZWFsbG9jX18oc2VsZik6CisgICAgICAgICAiIiIKK0BAIC0xODksNyArMTg5LDcg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAg ICAgICAgICAgIHNhZ2U6IGYgPSAxLzMgKiB0CisgICAgICAgICAgICAgc2FnZTogZGVsIGYKKyAg ICAgICAgICIiIgorLSAgICAgICAgZm1wcV9wb2x5X2NsZWFyKHNlbGYuX19wb2x5KQorKyAgICAg ICAgZm1wcV9wb2x5X2NsZWFyKHNlbGYuX3BvbHkpCisgCisgICAgIGRlZiBfX2luaXRfXyhzZWxm LCBwYXJlbnQsIHg9Tm9uZSwgY2hlY2s9VHJ1ZSwgaXNfZ2VuPUZhbHNlLCBjb25zdHJ1Y3Q9RmFs c2UpOgorICAgICAgICAgIiIiCitAQCAtMjI3LDE5ICsyMjcsMTkgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgUG9seW5vbWlhbC5f X2luaXRfXyhzZWxmLCBwYXJlbnQsIGlzX2dlbj1pc19nZW4pCisgCisgICAgICAgICBpZiBpc19n ZW46CistICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9jb2VmZl9zaShzZWxmLl9fcG9seSwgMSwg MSkKKysgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2NvZWZmX3NpKHNlbGYuX3BvbHksIDEsIDEp CisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgUG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dCk6CistICAgICAgICAgICAgZm1wcV9wb2x5X3NldChzZWxmLl9fcG9seSwgKDxQb2x5bm9taWFs X3JhdGlvbmFsX2ZsaW50PiB4KS5fX3BvbHkpCisrICAgICAgICAgICAgZm1wcV9wb2x5X3NldChz ZWxmLl9wb2x5LCAoPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+IHgpLl9wb2x5KQorIAorICAg ICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIGludCk6CistICAgICAgICAgICAgZm1wcV9wb2x5X3Nl dF9zaShzZWxmLl9fcG9seSwgPGludD4geCkKKysgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X3Np KHNlbGYuX3BvbHksIDxpbnQ+IHgpCisgCisgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgSW50 ZWdlcik6CistICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9tcHooc2VsZi5fX3BvbHksICg8SW50 ZWdlcj4geCkudmFsdWUpCisrICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9tcHooc2VsZi5fcG9s eSwgKDxJbnRlZ2VyPiB4KS52YWx1ZSkKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBS YXRpb25hbCk6CistICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9tcHEoc2VsZi5fX3BvbHksICg8 UmF0aW9uYWw+IHgpLnZhbHVlKQorKyAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfbXBxKHNlbGYu X3BvbHksICg8UmF0aW9uYWw+IHgpLnZhbHVlKQorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNl KHgsIGxpc3QpIG9yIGlzaW5zdGFuY2UoeCwgdHVwbGUpOgorIAorQEAgLTI1Nyw3ICsyNTcsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgZm9yIGRlZyBmcm9tIDAgPD0gZGVnIDwgbjoKKyAgICAgICAgICAgICAgICAgbXBx X2luaXQoTDJbZGVnXSkKKyAgICAgICAgICAgICAgICAgbXBxX3NldChMMltkZWddLCAoPFJhdGlv bmFsPiBMMVtkZWddKS52YWx1ZSkKKy0gICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2FycmF5X21w cShzZWxmLl9fcG9seSwgTDIsIG4pCisrICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9hcnJheV9t cHEoc2VsZi5fcG9seSwgTDIsIG4pCisgICAgICAgICAgICAgZm9yIGRlZyBmcm9tIDAgPD0gZGVn IDwgbjoKKyAgICAgICAgICAgICAgICAgbXBxX2NsZWFyKEwyW2RlZ10pCisgICAgICAgICAgICAg c2lnX2ZyZWUoTDIpCitAQCAtMjY2LDEzICsyNjYsMTMgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICMgICAgICAgICAgIGRlZyA9IDAKKyAjICAg ICAgICAgICBmb3IgZSBpbiB4OgorICMgICAgICAgICAgICAgICBjID0gUmF0aW9uYWwoZSkKKy0j ICAgICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9jb2VmZl9tcHEoc2VsZi5fX3BvbHksIGRlZywg Yy52YWx1ZSkKKysjICAgICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9jb2VmZl9tcHEoc2VsZi5f cG9seSwgZGVnLCBjLnZhbHVlKQorICMgICAgICAgICAgICAgICBkZWcgKz0gMQorIAorICAgICAg ICAgZWxpZiBpc2luc3RhbmNlKHgsIGRpY3QpOgorICAgICAgICAgICAgIGZvciBkZWcsIGUgaW4g eC5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgICAgICAgYyA9IFJhdGlvbmFsKGUpCistICAgICAg ICAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfbXBxKHNlbGYuX19wb2x5LCBkZWcsIGMudmFs dWUpCisrICAgICAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfbXBxKHNlbGYuX3BvbHks IGRlZywgYy52YWx1ZSkKKyAKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBwYXJpX2dlbik6 CisgICAgICAgICAgICAgayA9IHNlbGYuX3BhcmVudC5iYXNlX3JpbmcoKQorQEAgLTI4MSw3ICsy ODEsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfZ2VuPUZh bHNlLCBjb25zdHJ1Y3Q9Y29uc3RydWN0KQorIAorICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgs IFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludCk6CistICAgICAgICAgICAgZm1wcV9wb2x5 X3NldF9mbXB6X3BvbHkoc2VsZi5fX3BvbHksICg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2Zs aW50PngpLl9fcG9seSkKKysgICAgICAgICAgICBmbXBxX3BvbHlfc2V0X2ZtcHpfcG9seShzZWxm Ll9wb2x5LCAoPFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludD54KS5fcG9seSkKKyAKKyAg ICAgICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBrID0g c2VsZi5fcGFyZW50LmJhc2VfcmluZygpCitAQCAtMzI5LDcgKzMyOSw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBUcnVl CisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCBy ZXMgPSBzZWxmLl9uZXcoKQorLSAgICAgICAgZm1wcV9wb2x5X3NldChyZXMuX19wb2x5LCBzZWxm Ll9fcG9seSkKKysgICAgICAgIGZtcHFfcG9seV9zZXQocmVzLl9wb2x5LCBzZWxmLl9wb2x5KQor ICAgICAgICAgcmV0dXJuIHJlcworIAorICAgICBkZWYgX3Npbmd1bGFyXyhzZWxmLCBzaW5ndWxh cj1zaW5ndWxhcl9kZWZhdWx0KToKK0BAIC0zNjQsNyArMzY0LDcgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IGcu bGlzdCgpCisgICAgICAgICAgICAgW10KKyAgICAgICAgICIiIgorLSAgICAgICAgY2RlZiB1bnNp Z25lZCBsb25nIGxlbmd0aCA9IGZtcHFfcG9seV9sZW5ndGgoc2VsZi5fX3BvbHkpCisrICAgICAg ICBjZGVmIHVuc2lnbmVkIGxvbmcgbGVuZ3RoID0gZm1wcV9wb2x5X2xlbmd0aChzZWxmLl9wb2x5 KQorICAgICAgICAgcmV0dXJuIFtzZWxmLmdldF91bnNhZmUobikgZm9yIG4gaW4gcmFuZ2UobGVu Z3RoKV0KKyAKKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitAQCAtMzkyLDcgKzM5Miw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAg ICAgICBzYWdlOiB0eXBlKGYuZGVncmVlKCkpCisgICAgICAgICAgICAgPGNsYXNzICdzYWdlLnJp bmdzLmludGVnZXIuSW50ZWdlcic+CisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBzbWFs bEludGVnZXIoZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkpCisrICAgICAgICByZXR1cm4g c21hbGxJbnRlZ2VyKGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkpCisgCisgICAgIGNkZWYg Z2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IG4pOgorICAgICAgICAgIiIiCitAQCAtNDEzLDcg KzQxMyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFs KToKKyAgICAgICAgICAgICAxLzIqdF4yICsgdCArIDEKKyAgICAgICAgICIiIgorICAgICAgICAg Y2RlZiBSYXRpb25hbCB6ID0gUmF0aW9uYWwuX19uZXdfXyhSYXRpb25hbCkKKy0gICAgICAgIGZt cHFfcG9seV9nZXRfY29lZmZfbXBxKHoudmFsdWUsIHNlbGYuX19wb2x5LCBuKQorKyAgICAgICAg Zm1wcV9wb2x5X2dldF9jb2VmZl9tcHEoei52YWx1ZSwgc2VsZi5fcG9seSwgbikKKyAgICAgICAg IHJldHVybiB6CisgCisgICAgIGNwZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIHVuc2lnbmVkIGxv bmcgbiwgdmFsdWUpOgorQEAgLTQzNCwyNCArNDM0LDI0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIHJlbHkgb24gdGhpcyBjb252 ZW50aW9uLiAgVGhpcyBtZXRob2Qgc2hvdWxkIGJlIHVzZWQgb25seSB3aXRoIHRoZQorICAgICAg ICAgdXRtb3N0IGNhcmUuCisgICAgICAgICAiIiIKKy0gICAgICAgIGNkZWYgYmludCBkb19zaWcg PSBfZG9fc2lnKHNlbGYuX19wb2x5KQorKyAgICAgICAgY2RlZiBiaW50IGRvX3NpZyA9IF9kb19z aWcoc2VsZi5fcG9seSkKKyAKKyAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGludCk6Cisg ICAgICAgICAgICAgaWYgZG9fc2lnOiBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAg ICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfc2koc2VsZi5fX3BvbHksIG4sIHZhbHVlKQorKyAg ICAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfc2koc2VsZi5fcG9seSwgbiwgdmFsdWUpCisg ICAgICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIGVsaWYgaXNpbnN0YW5j ZSh2YWx1ZSwgSW50ZWdlcik6CisgICAgICAgICAgICAgaWYgZG9fc2lnOiBzaWdfc3RyKCJGTElO VCBleGNlcHRpb24iKQorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfbXB6KHNlbGYu X19wb2x5LCBuLCAoPEludGVnZXI+IHZhbHVlKS52YWx1ZSkKKysgICAgICAgICAgICBmbXBxX3Bv bHlfc2V0X2NvZWZmX21weihzZWxmLl9wb2x5LCBuLCAoPEludGVnZXI+IHZhbHVlKS52YWx1ZSkK KyAgICAgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgZWxpZiBpc2luc3Rh bmNlKHZhbHVlLCBSYXRpb25hbCk6CisgICAgICAgICAgICAgaWYgZG9fc2lnOiBzaWdfc3RyKCJG TElOVCBleGNlcHRpb24iKQorLSAgICAgICAgICAgIGZtcHFfcG9seV9zZXRfY29lZmZfbXBxKHNl bGYuX19wb2x5LCBuLCAoPFJhdGlvbmFsPiB2YWx1ZSkudmFsdWUpCisrICAgICAgICAgICAgZm1w cV9wb2x5X3NldF9jb2VmZl9tcHEoc2VsZi5fcG9seSwgbiwgKDxSYXRpb25hbD4gdmFsdWUpLnZh bHVlKQorICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgIHZhbHVlID0gUmF0aW9uYWwodmFsdWUpCisgICAgICAgICAgICAgaWYgZG9f c2lnOiBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgICAgIGZtcHFfcG9seV9z ZXRfY29lZmZfbXBxKHNlbGYuX19wb2x5LCBuLCAoPFJhdGlvbmFsPiB2YWx1ZSkudmFsdWUpCisr ICAgICAgICAgICAgZm1wcV9wb2x5X3NldF9jb2VmZl9tcHEoc2VsZi5fcG9seSwgbiwgKDxSYXRp b25hbD4gdmFsdWUpLnZhbHVlKQorICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisg CisgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqeCwgKiprd2RzKToKK0BAIC01MDEsMjAgKzUwMSwy MCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6Cisg ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShhLCBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KToK KyAgICAgICAgICAgICAgICAgZiA9ICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD4gYSkuX25l dygpCisgICAgICAgICAgICAgICAgIHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAg ICAgICAgICAgIGZtcHFfcG9seV9jb21wb3NlKGYuX19wb2x5LCBzZWxmLl9fcG9seSwKKy0gICAg ICAgICAgICAgICAgICAgICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD4gYSkuX19wb2x5KQor KyAgICAgICAgICAgICAgICBmbXBxX3BvbHlfY29tcG9zZShmLl9wb2x5LCBzZWxmLl9wb2x5LAor KyAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PiBhKS5fcG9s eSkKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAgICAgICAgICAgIHJldHVybiBm CisgICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGEsIFJhdGlvbmFsKToKKyAgICAgICAgICAg ICAgICAgciA9IFJhdGlvbmFsLl9fbmV3X18oUmF0aW9uYWwpCisgICAgICAgICAgICAgICAgIHNp Z19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICAgICAgICAgIGZtcHFfcG9seV9ldmFs dWF0ZV9tcHEoci52YWx1ZSwgc2VsZi5fX3BvbHksICg8UmF0aW9uYWw+IGEpLnZhbHVlKQorKyAg ICAgICAgICAgICAgICBmbXBxX3BvbHlfZXZhbHVhdGVfbXBxKHIudmFsdWUsIHNlbGYuX3BvbHks ICg8UmF0aW9uYWw+IGEpLnZhbHVlKQorICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgICAgICAgICAgcmV0dXJuIHIKKyAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoYSwgSW50 ZWdlcik6CisgICAgICAgICAgICAgICAgIHIgPSBSYXRpb25hbC5fX25ld19fKFJhdGlvbmFsKQor ICAgICAgICAgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgICAg ICAgICBmbXBxX3BvbHlfZXZhbHVhdGVfbXB6KHIudmFsdWUsIHNlbGYuX19wb2x5LCAoPEludGVn ZXI+IGEpLnZhbHVlKQorKyAgICAgICAgICAgICAgICBmbXBxX3BvbHlfZXZhbHVhdGVfbXB6KHIu dmFsdWUsIHNlbGYuX3BvbHksICg8SW50ZWdlcj4gYSkudmFsdWUpCisgICAgICAgICAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICByZXR1cm4gcgorICAgICAgICAgICAgIGVsaWYg aXNpbnN0YW5jZShhLCBpbnQpOgorQEAgLTUyMyw3ICs1MjMsNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgIGZtcHpf aW5pdCh0bXBmeikKKyAgICAgICAgICAgICAgICAgZm1wcV9pbml0KHRtcGZxKQorICAgICAgICAg ICAgICAgICBmbXB6X3NldF9zaSh0bXBmeiwgUHlJbnRfQVNfTE9ORyhhKSkKKy0gICAgICAgICAg ICAgICAgZm1wcV9wb2x5X2V2YWx1YXRlX2ZtcHoodG1wZnEsIHNlbGYuX19wb2x5LCB0bXBmeikK KysgICAgICAgICAgICAgICAgZm1wcV9wb2x5X2V2YWx1YXRlX2ZtcHoodG1wZnEsIHNlbGYuX3Bv bHksIHRtcGZ6KQorICAgICAgICAgICAgICAgICBmbXBxX2dldF9tcHEoci52YWx1ZSwgdG1wZnEp CisgICAgICAgICAgICAgICAgIGZtcHFfY2xlYXIodG1wZnEpCisgICAgICAgICAgICAgICAgIGZt cHpfY2xlYXIodG1wZnopCitAQCAtNTMzLDE4ICs1MzMsMTggQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICBhcmJfYSA9 IDxSZWFsQmFsbD4gYQorICAgICAgICAgICAgICAgICBhcmJfeiA9IGFyYl9hLl9uZXcoKQorICAg ICAgICAgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgICAgICAgICBfYXJiX2ZtcHpfcG9seV9l dmFsdWF0ZV9hcmIoYXJiX3oudmFsdWUsIGZtcHFfcG9seV9udW1yZWYoc2VsZi5fX3BvbHkpLAor LSAgICAgICAgICAgICAgICAgICAgICAgIGZtcHFfcG9seV9sZW5ndGgoc2VsZi5fX3BvbHkpLCBh cmJfYS52YWx1ZSwgYXJiX2EuX3BhcmVudC5fcHJlYykKKy0gICAgICAgICAgICAgICAgYXJiX2Rp dl9mbXB6KGFyYl96LnZhbHVlLCBhcmJfei52YWx1ZSwgZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9f cG9seSksIGFyYl9hLl9wYXJlbnQuX3ByZWMpCisrICAgICAgICAgICAgICAgIF9hcmJfZm1wel9w b2x5X2V2YWx1YXRlX2FyYihhcmJfei52YWx1ZSwgZm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5 KSwKKysgICAgICAgICAgICAgICAgICAgICAgICBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYuX3BvbHkp LCBhcmJfYS52YWx1ZSwgYXJiX2EuX3BhcmVudC5fcHJlYykKKysgICAgICAgICAgICAgICAgYXJi X2Rpdl9mbXB6KGFyYl96LnZhbHVlLCBhcmJfei52YWx1ZSwgZm1wcV9wb2x5X2RlbnJlZihzZWxm Ll9wb2x5KSwgYXJiX2EuX3BhcmVudC5fcHJlYykKKyAgICAgICAgICAgICAgICAgc2lnX29mZigp CisgICAgICAgICAgICAgICAgIHJldHVybiBhcmJfegorICAgICAgICAgICAgIGlmIGlzaW5zdGFu Y2UoYSwgQ29tcGxleEJhbGwpOgorICAgICAgICAgICAgICAgICBhY2JfYSA9IDxDb21wbGV4QmFs bD4gYQorICAgICAgICAgICAgICAgICBhY2JfeiA9IGFjYl9hLl9uZXcoKQorICAgICAgICAgICAg ICAgICBzaWdfb24oKQorLSAgICAgICAgICAgICAgICBfYXJiX2ZtcHpfcG9seV9ldmFsdWF0ZV9h Y2IoYWNiX3oudmFsdWUsIGZtcHFfcG9seV9udW1yZWYoc2VsZi5fX3BvbHkpLAorLSAgICAgICAg ICAgICAgICAgICAgICAgIGZtcHFfcG9seV9sZW5ndGgoc2VsZi5fX3BvbHkpLCBhY2JfYS52YWx1 ZSwgYWNiX2EuX3BhcmVudC5fcHJlYykKKy0gICAgICAgICAgICAgICAgYWNiX2Rpdl9mbXB6KGFj Yl96LnZhbHVlLCBhY2Jfei52YWx1ZSwgZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9fcG9seSksIGFj Yl9hLl9wYXJlbnQuX3ByZWMpCisrICAgICAgICAgICAgICAgIF9hcmJfZm1wel9wb2x5X2V2YWx1 YXRlX2FjYihhY2Jfei52YWx1ZSwgZm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5KSwKKysgICAg ICAgICAgICAgICAgICAgICAgICBmbXBxX3BvbHlfbGVuZ3RoKHNlbGYuX3BvbHkpLCBhY2JfYS52 YWx1ZSwgYWNiX2EuX3BhcmVudC5fcHJlYykKKysgICAgICAgICAgICAgICAgYWNiX2Rpdl9mbXB6 KGFjYl96LnZhbHVlLCBhY2Jfei52YWx1ZSwgZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9wb2x5KSwg YWNiX2EuX3BhcmVudC5fcHJlYykKKyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgICAgICAg ICAgICAgICAgIHJldHVybiBhY2JfegorIAorQEAgLTU3MCwxNCArNTcwLDE0IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYg UG9seW5vbWlhbF9yYXRpb25hbF9mbGludCByZXMKKyAgICAgICAgIGNkZWYgYmludCBkb19zaWcK KyAKKy0gICAgICAgIGlmIChuID49IGZtcHFfcG9seV9sZW5ndGgoc2VsZi5fX3BvbHkpKToKKysg ICAgICAgIGlmIChuID49IGZtcHFfcG9seV9sZW5ndGgoc2VsZi5fcG9seSkpOgorICAgICAgICAg ICAgIHJldHVybiBzZWxmCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJlcyA9IHNlbGYu X25ldygpCisgICAgICAgICAgICAgaWYgbiA+IDA6CistICAgICAgICAgICAgICAgIGRvX3NpZyA9 IF9kb19zaWcoc2VsZi5fX3BvbHkpCisrICAgICAgICAgICAgICAgIGRvX3NpZyA9IF9kb19zaWco c2VsZi5fcG9seSkKKyAgICAgICAgICAgICAgICAgaWYgZG9fc2lnOiBzaWdfc3RyKCJGTElOVCBl eGNlcHRpb24iKQorLSAgICAgICAgICAgICAgICBmbXBxX3BvbHlfZ2V0X3NsaWNlKHJlcy5fX3Bv bHksIHNlbGYuX19wb2x5LCAwLCBuKQorKyAgICAgICAgICAgICAgICBmbXBxX3BvbHlfZ2V0X3Ns aWNlKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgMCwgbikKKyAgICAgICAgICAgICAgICAgaWYgZG9f c2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtNjY0LDcgKzY2 NCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToK KyAgICAgICAgIGNkZWYgYmludCBkb19zaWcKKyAKKyAgICAgICAgIGlmIGRlZ3JlZSBpcyBOb25l OgorLSAgICAgICAgICAgIGxlbiA9IGZtcHFfcG9seV9sZW5ndGgoc2VsZi5fX3BvbHkpCisrICAg ICAgICAgICAgbGVuID0gZm1wcV9wb2x5X2xlbmd0aChzZWxmLl9wb2x5KQorICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIGxlbiA9IDx1bnNpZ25lZCBs b25nPiAoZGVncmVlICsgMSkKK0BAIC02NzIsOSArNjcyLDkgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICByYWlzZSBW YWx1ZUVycm9yKCdkZWdyZWUgbXVzdCBiZSBjb252ZXJ0aWJsZSB0byBsb25nJykKKyAKKyAgICAg ICAgIHJlcyA9IHNlbGYuX25ldygpCistICAgICAgICBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX19w b2x5KQorKyAgICAgICAgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9wb2x5KQorICAgICAgICAgaWYg ZG9fc2lnOiBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9wb2x5X3Jl dmVyc2UocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIGxlbikKKysgICAgICAgIGZtcHFfcG9seV9y ZXZlcnNlKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgbGVuKQorICAgICAgICAgaWYgZG9fc2lnOiBz aWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC03MDksNyArNzA5LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAg ICAgIHJhaXNlIFZhbHVlRXJyb3IoInNlbGYgbXVzdCBoYXZlIGNvbnN0YW50IGNvZWZmaWNpZW50 IDAgYW5kIGEgdW5pdCBmb3IgY29lZmZpY2llbnQge31eMSIuZm9ybWF0KHNlbGYucGFyZW50KCku Z2VuKCkpKQorIAorICAgICAgICAgc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAg IGZtcHFfcG9seV9yZXZlcnRfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBtKQorKyAg ICAgICAgZm1wcV9wb2x5X3JldmVydF9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBtKQor ICAgICAgICAgc2lnX29mZigpCisgCisgICAgICAgICByZXR1cm4gcmVzCitAQCAtNzMxLDcgKzcz MSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToK KyAgICAgICAgICAgICBzYWdlOiBSKDApLmlzX3plcm8oKQorICAgICAgICAgICAgIFRydWUKKyAg ICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIGZtcHFfcG9seV9pc196ZXJvKHNlbGYuX19wb2x5 KQorKyAgICAgICAgcmV0dXJuIGZtcHFfcG9seV9pc196ZXJvKHNlbGYuX3BvbHkpCisgCisgICAg IGNwZGVmIGJpbnQgaXNfb25lKHNlbGYpIGV4Y2VwdCAtMToKKyAgICAgICAgIHIiIiIKK0BAIC03 NTEsNyArNzUxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlu b21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IFIoWzEsMV0pLmlzX29uZSgpCisgICAgICAgICAg ICAgRmFsc2UKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIGZtcHFfcG9seV9pc19vbmUo c2VsZi5fX3BvbHkpCisrICAgICAgICByZXR1cm4gZm1wcV9wb2x5X2lzX29uZShzZWxmLl9wb2x5 KQorIAorICAgICBkZWYgX19ib29sX18oc2VsZik6CisgICAgICAgICAiIiIKK0BAIC03NjYsNyAr NzY2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwp OgorICAgICAgICAgICAgIHNhZ2U6IGJvb2woUigwKSkKKyAgICAgICAgICAgICBGYWxzZQorICAg ICAgICAgIiIiCistICAgICAgICByZXR1cm4gbm90IGZtcHFfcG9seV9pc196ZXJvKHNlbGYuX19w b2x5KQorKyAgICAgICAgcmV0dXJuIG5vdCBmbXBxX3BvbHlfaXNfemVybyhzZWxmLl9wb2x5KQor IAorICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAgICAgIyBTaGlmdGluZyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCitAQCAt Nzk0LDE0ICs3OTQsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBv bHlub21pYWwpOgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcwor ICAgICAgICAgY2RlZiBiaW50IGRvX3NpZworIAorLSAgICAgICAgaWYgayA9PSAwIG9yIGZtcHFf cG9seV9pc196ZXJvKGYuX19wb2x5KToKKysgICAgICAgIGlmIGsgPT0gMCBvciBmbXBxX3BvbHlf aXNfemVybyhmLl9wb2x5KToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICByZXMgPSBmLl9uZXcoKQorLSAgICAgICAgICAgIGRvX3NpZyA9IGZt cHFfcG9seV9sZW5ndGgoZi5fX3BvbHkpID4gNTAwMCBvciBuID4gNTAwMAorKyAgICAgICAgICAg IGRvX3NpZyA9IGZtcHFfcG9seV9sZW5ndGgoZi5fcG9seSkgPiA1MDAwIG9yIG4gPiA1MDAwCisg CisgICAgICAgICAgICAgaWYgZG9fc2lnOiBzaWdfc3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAg ICAgICAgICAgIGZtcHFfcG9seV9zaGlmdF9sZWZ0KHJlcy5fX3BvbHksIGYuX19wb2x5LCBrKQor KyAgICAgICAgICAgIGZtcHFfcG9seV9zaGlmdF9sZWZ0KHJlcy5fcG9seSwgZi5fcG9seSwgaykK KyAgICAgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgICAgIHJldHVybiBy ZXMKKyAKK0BAIC04MjIsMTQgKzgyMiwxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9u YWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxf ZmxpbnQgcmVzCisgICAgICAgICBjZGVmIGJpbnQgZG9fc2lnCisgCistICAgICAgICBpZiBrID09 IDAgb3IgZm1wcV9wb2x5X2lzX3plcm8oZi5fX3BvbHkpOgorKyAgICAgICAgaWYgayA9PSAwIG9y IGZtcHFfcG9seV9pc196ZXJvKGYuX3BvbHkpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCisg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJlcyA9IGYuX25ldygpCistICAgICAgICAgICAg ZG9fc2lnID0gX2RvX3NpZyhmLl9fcG9seSkKKysgICAgICAgICAgICBkb19zaWcgPSBfZG9fc2ln KGYuX3BvbHkpCisgCisgICAgICAgICAgICAgaWYgZG9fc2lnOiBzaWdfc3RyKCJGTElOVCBleGNl cHRpb24iKQorLSAgICAgICAgICAgIGZtcHFfcG9seV9zaGlmdF9yaWdodChyZXMuX19wb2x5LCBm Ll9fcG9seSwgaykKKysgICAgICAgICAgICBmbXBxX3BvbHlfc2hpZnRfcmlnaHQocmVzLl9wb2x5 LCBmLl9wb2x5LCBrKQorICAgICAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAg ICAgICAgcmV0dXJuIHJlcworIAorQEAgLTg1OCwxMCArODU4LDEwIEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAg ICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IG9wMiA9IDxQb2x5bm9taWFsX3JhdGlv bmFsX2ZsaW50PiByaWdodAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50 IHJlcyA9IHNlbGYuX25ldygpCistICAgICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2RvX3NpZyhz ZWxmLl9fcG9seSkgb3IgX2RvX3NpZyhvcDIuX19wb2x5KQorKyAgICAgICAgY2RlZiBiaW50IGRv X3NpZyA9IF9kb19zaWcoc2VsZi5fcG9seSkgb3IgX2RvX3NpZyhvcDIuX3BvbHkpCisgCisgICAg ICAgICBpZiBkb19zaWc6IHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBx X3BvbHlfYWRkKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBvcDIuX19wb2x5KQorKyAgICAgICAg Zm1wcV9wb2x5X2FkZChyZXMuX3BvbHksIHNlbGYuX3BvbHksIG9wMi5fcG9seSkKKyAgICAgICAg IGlmIGRvX3NpZzogc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtODg2LDEw ICs4ODYsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21p YWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxp bnQgb3AyID0gPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+IHJpZ2h0CisgICAgICAgICBjZGVm IFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGNk ZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX19wb2x5KSBvciBfZG9fc2lnKG9wMi5fX3Bv bHkpCisrICAgICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9wb2x5KSBvciBf ZG9fc2lnKG9wMi5fcG9seSkKKyAKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQg ZXhjZXB0aW9uIikKKy0gICAgICAgIGZtcHFfcG9seV9zdWIocmVzLl9fcG9seSwgc2VsZi5fX3Bv bHksIG9wMi5fX3BvbHkpCisrICAgICAgICBmbXBxX3BvbHlfc3ViKHJlcy5fcG9seSwgc2VsZi5f cG9seSwgb3AyLl9wb2x5KQorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAg IHJldHVybiByZXMKKyAKK0BAIC05MTIsMTAgKzkxMiwxMCBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgVHJ1ZQorICAgICAg ICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2Vs Zi5fbmV3KCkKKy0gICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX19wb2x5 KQorKyAgICAgICAgY2RlZiBiaW50IGRvX3NpZyA9IF9kb19zaWcoc2VsZi5fcG9seSkKKyAKKyAg ICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgIGZt cHFfcG9seV9uZWcocmVzLl9fcG9seSwgc2VsZi5fX3BvbHkpCisrICAgICAgICBmbXBxX3BvbHlf bmVnKHJlcy5fcG9seSwgc2VsZi5fcG9seSkKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigp CisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtOTQ1LDggKzk0NSw4IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgUG9s eW5vbWlhbF9yYXRpb25hbF9mbGludCByciA9IHNlbGYuX25ldygpCisgCisgICAgICAgICBzaWdf c3RyKCJGTElOVCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9wb2x5X2RpdnJlbShxcS5fX3Bv bHksIHJyLl9fcG9seSwgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAgICAgICAgICAgICg8 UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD4gcmlnaHQpLl9fcG9seSkKKysgICAgICAgIGZtcHFf cG9seV9kaXZyZW0ocXEuX3BvbHksIHJyLl9wb2x5LCBzZWxmLl9wb2x5LAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAoPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+IHJpZ2h0KS5fcG9seSkK KyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHFxLCBycgorIAorQEAgLTk3NCw4 ICs5NzQsOCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlh bCk6CisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5f bmV3KCkKKyAKKyAgICAgICAgIHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBm bXBxX3BvbHlfZ2NkKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAo PFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+IHJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBmbXBx X3BvbHlfZ2NkKHJlcy5fcG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgKDxQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50PiByaWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkK KyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0xMDAxLDggKzEwMDEsOCBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIFBv bHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkKKyAKKyAgICAgICAgIHNp Z19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfbGNtKHJlcy5fX3Bv bHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfcmF0 aW9uYWxfZmxpbnQ+IHJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBmbXBxX3BvbHlfbGNtKHJlcy5f cG9seSwgc2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX3Jh dGlvbmFsX2ZsaW50PiByaWdodCkuX3BvbHkpCisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAg IHJldHVybiByZXMKKyAKK0BAIC0xMDQzLDcgKzEwNDMsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIFBvbHlub21pYWxf cmF0aW9uYWxfZmxpbnQgdCA9IHNlbGYuX25ldygpCisgCisgICAgICAgICBzaWdfc3RyKCJGTElO VCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9wb2x5X3hnY2QoZC5fX3BvbHksIHMuX19wb2x5 LCB0Ll9fcG9seSwgc2VsZi5fX3BvbHksICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD5yaWdo dCkuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X3hnY2QoZC5fcG9seSwgcy5fcG9seSwgdC5f cG9seSwgc2VsZi5fcG9seSwgKDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PnJpZ2h0KS5fcG9s eSkKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIGQsIHMsIHQKKyAKK0BAIC0x MDY5LDEwICsxMDY5LDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQ b2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlv bmFsX2ZsaW50IG9wMiA9IDxQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50PiByaWdodAorICAgICAg ICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCistICAg ICAgICBjZGVmIGJpbnQgZG9fc2lnID0gX2RvX3NpZyhzZWxmLl9fcG9seSkgb3IgX2RvX3NpZyhv cDIuX19wb2x5KQorKyAgICAgICAgY2RlZiBiaW50IGRvX3NpZyA9IF9kb19zaWcoc2VsZi5fcG9s eSkgb3IgX2RvX3NpZyhvcDIuX3BvbHkpCisgCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19zdHIo IkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfbXVsKHJlcy5fX3BvbHksIHNl bGYuX19wb2x5LCBvcDIuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X211bChyZXMuX3BvbHks IHNlbGYuX3BvbHksIG9wMi5fcG9seSkKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisg ICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTEwMywxMyArMTEwMywxMyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCBvcDIgPSA8UG9seW5vbWlhbF9y YXRpb25hbF9mbGludD4gcmlnaHQKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9m bGludCByZXMgPSBzZWxmLl9uZXcoKQorLSAgICAgICAgY2RlZiBiaW50IGRvX3NpZyA9IF9kb19z aWcoc2VsZi5fX3BvbHkpIG9yIF9kb19zaWcob3AyLl9fcG9seSkKKysgICAgICAgIGNkZWYgYmlu dCBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpIG9yIF9kb19zaWcob3AyLl9wb2x5KQorIAor ICAgICAgICAgaWYgbiA8PSAwOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm4gbXVz dCBiZSA+IDAiKQorIAorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfc3RyKCJGTElOVCBleGNlcHRp b24iKQorLSAgICAgICAgZm1wcV9wb2x5X211bGxvdyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwg b3AyLl9fcG9seSwgbikKKysgICAgICAgIGZtcHFfcG9seV9tdWxsb3cocmVzLl9wb2x5LCBzZWxm Ll9wb2x5LCBvcDIuX3BvbHksIG4pCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAg ICAgICAgcmV0dXJuIHJlcworIAorQEAgLTExMjUsMTAgKzExMjUsMTAgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIDkqdF4z IC0gNip0ICsgMgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9u YWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBf ZG9fc2lnKHNlbGYuX19wb2x5KQorKyAgICAgICAgY2RlZiBiaW50IGRvX3NpZyA9IF9kb19zaWco c2VsZi5fcG9seSkKKyAKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0 aW9uIikKKy0gICAgICAgIGZtcHFfcG9seV9zY2FsYXJfbXVsX21wcShyZXMuX19wb2x5LCBzZWxm Ll9fcG9seSwKKysgICAgICAgIGZtcHFfcG9seV9zY2FsYXJfbXVsX21wcShyZXMuX3BvbHksIHNl bGYuX3BvbHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxSYXRpb25hbD4g bGVmdCkudmFsdWUpCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0 dXJuIHJlcworQEAgLTExNDUsMTAgKzExNDUsMTAgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3Jh dGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIDkqdF4zIC0gNip0ICsgMgor ICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVz ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGNkZWYgYmludCBkb19zaWcgPSBfZG9fc2lnKHNlbGYu X19wb2x5KQorKyAgICAgICAgY2RlZiBiaW50IGRvX3NpZyA9IF9kb19zaWcoc2VsZi5fcG9seSkK KyAKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAg ICAgIGZtcHFfcG9seV9zY2FsYXJfbXVsX21wcShyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwKKysg ICAgICAgIGZtcHFfcG9seV9zY2FsYXJfbXVsX21wcShyZXMuX3BvbHksIHNlbGYuX3BvbHksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxSYXRpb25hbD4gcmlnaHQpLnZhbHVl KQorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKK0BA IC0xMjcyLDI3ICsxMjcyLDI3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBudW0gPSByLm51bWVyYXRvcigpCisgICAgICAg ICAgICAgZGVuID0gci5kZW5vbWluYXRvcigpCisgCistICAgICAgICAgICAgaWYgZm1wcV9wb2x5 X2RlZ3JlZShzZWxmLl9fcG9seSkgPT0gMDoKKysgICAgICAgICAgICBpZiBmbXBxX3BvbHlfZGVn cmVlKHNlbGYuX3BvbHkpID09IDA6CisgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnBhcmVu dCgpKHNlbGZbMF0ubnRoX3Jvb3QoZGVuKSAqKiBudW0pCisgCisgICAgICAgICAgICAgcmV0dXJu IHNlbGYubnRoX3Jvb3QoZGVuKSAqKiBudW0KKyAKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgaWYgbiA8IDA6CistICAgICAgICAgICAgICAgIGlmIGZtcHFfcG9seV9pc196ZXJvKHNlbGYu X19wb2x5KToKKysgICAgICAgICAgICAgICAgaWYgZm1wcV9wb2x5X2lzX3plcm8oc2VsZi5fcG9s eSk6CisgICAgICAgICAgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcigibmVnYXRp dmUgZXhwb25lbnQgaW4gcG93ZXIgb2YgemVybyIpCisgICAgICAgICAgICAgICAgIHJlcyA9IHNl bGYuX25ldygpCisgICAgICAgICAgICAgICAgIHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCist ICAgICAgICAgICAgICAgIGZtcHFfcG9seV9wb3cocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIC1u KQorKyAgICAgICAgICAgICAgICBmbXBxX3BvbHlfcG93KHJlcy5fcG9seSwgc2VsZi5fcG9seSwg LW4pCisgICAgICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgICAgICByZXR1cm4g fnJlcworICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIHJlcyA9IHNlbGYuX25l dygpCisgICAgICAgICAgICAgICAgIHNpZ19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCisgICAgICAg ICAgICAgICAgIGlmIHNlbGYuX2lzX2dlbjoKKy0gICAgICAgICAgICAgICAgICAgIGZtcHFfcG9s eV9zZXRfY29lZmZfc2kocmVzLl9fcG9seSwgbiwgMSkKKysgICAgICAgICAgICAgICAgICAgIGZt cHFfcG9seV9zZXRfY29lZmZfc2kocmVzLl9wb2x5LCBuLCAxKQorICAgICAgICAgICAgICAgICBl bHNlOgorLSAgICAgICAgICAgICAgICAgICAgZm1wcV9wb2x5X3BvdyhyZXMuX19wb2x5LCBzZWxm Ll9fcG9seSwgbikKKysgICAgICAgICAgICAgICAgICAgIGZtcHFfcG9seV9wb3cocmVzLl9wb2x5 LCBzZWxmLl9wb2x5LCBuKQorICAgICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAg ICAgICAgcmV0dXJuIHJlcworIAorQEAgLTEzMjgsMTAgKzEzMjgsMTAgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgaWYgbm90IGlz aW5zdGFuY2UocmlnaHQsIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQpOgorICAgICAgICAgICAg IGlmIHJpZ2h0IGluIFFROgorICAgICAgICAgICAgICAgICByZXMgPSBzZWxmLl9uZXcoKQorLSAg ICAgICAgICAgICAgICBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX19wb2x5KQorKyAgICAgICAgICAg ICAgICBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX3BvbHkpCisgCisgICAgICAgICAgICAgICAgIGlm IGRvX3NpZzogc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgICAgICAgICAgZm1w cV9wb2x5X3NjYWxhcl9kaXZfbXBxKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LAorKyAgICAgICAg ICAgICAgICBmbXBxX3BvbHlfc2NhbGFyX2Rpdl9tcHEocmVzLl9wb2x5LCBzZWxmLl9wb2x5LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxSYXRp b25hbD4gUVEocmlnaHQpKS52YWx1ZSkKKyAgICAgICAgICAgICAgICAgaWYgZG9fc2lnOiBzaWdf b2ZmKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcworQEAgLTEzNDAsOCArMTM0MCw4IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAKKyAg ICAgICAgIHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfc3RyKCJGTElOVCBleGNlcHRp b24iKQorLSAgICAgICAgZm1wcV9wb2x5X2RpdihyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxQb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50PnJpZ2h0KS5fX3BvbHkpCisrICAgICAgICBmbXBxX3BvbHlfZGl2KHJlcy5fcG9seSwg c2VsZi5fcG9seSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxQb2x5 bm9taWFsX3JhdGlvbmFsX2ZsaW50PnJpZ2h0KS5fcG9seSkKKyAgICAgICAgIHNpZ19vZmYoKQor ICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTEzODEsMTUgKzEzODEsMTUgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisg ICAgICAgICBpZiBwcmVjIDw9IDA6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGhl IHByZWNpc2lvbiBtdXN0IGJlIHBvc2l0aXZlLCBnb3Qge30iLmZvcm1hdChwcmVjKSkKKy0gICAg ICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xIG9yIFwKKy0gICAgICAg ICAgIGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSk6CisrICAgICAg ICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID09IC0xIG9yIFwKKysgICAgICAgICAg IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX3BvbHkpKToKKyAgICAgICAgICAg ICByYWlzZSBWYWx1ZUVycm9yKCJjb25zdGFudCB0ZXJtIGlzIHplcm8iKQorIAorICAgICAgICAg Y2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgICAgICAg ICBpZiBwcmVjIDw9IDA6CisgICAgICAgICAgICAgcmV0dXJuIHJlcworICAgICAgICAgc2lnX29u KCkKKy0gICAgICAgIGZtcHFfcG9seV9pbnZfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5 LCBwcmVjKQorKyAgICAgICAgZm1wcV9wb2x5X2ludl9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9w b2x5LCBwcmVjKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitA QCAtMTQyMyw4ICsxNDIzLDggQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50 KFBvbHlub21pYWwpOgorIAorICAgICAgICAgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNp Z19zdHIoIkZMSU5UIGV4Y2VwdGlvbiIpCistICAgICAgICBmbXBxX3BvbHlfcmVtKHJlcy5fX3Bv bHksIHNlbGYuX19wb2x5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo PFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+cmlnaHQpLl9fcG9seSkKKysgICAgICAgIGZtcHFf cG9seV9yZW0ocmVzLl9wb2x5LCBzZWxmLl9wb2x5LAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+cmlnaHQpLl9wb2x5KQor ICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTQ1Myw3ICsx NDUzLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwp OgorICAgICAgICAgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50Ll9faW5pdF9fKG51bSwg cGFyZW50LCB4PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hl Y2s9RmFsc2UsIGlzX2dlbj1GYWxzZSwgY29uc3RydWN0PUZhbHNlKQorICAgICAgICAgc2lnX3N0 cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAgIGZtcHFfcG9seV9nZXRfbnVtZXJhdG9yKG51 bS5fX3BvbHksIHNlbGYuX19wb2x5KQorKyAgICAgICAgZm1wcV9wb2x5X2dldF9udW1lcmF0b3Io bnVtLl9wb2x5LCBzZWxmLl9wb2x5KQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1 cm4gbnVtCisgCitAQCAtMTQ2OSwxMCArMTQ2OSwxMCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf cmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgMworICAgICAgICAgIiIi CisgICAgICAgICBjZGVmIEludGVnZXIgZGVuID0gSW50ZWdlci5fX25ld19fKEludGVnZXIpCist ICAgICAgICBpZiBmbXBxX3BvbHlfZGVucmVmKHNlbGYuX19wb2x5KSBpcyBOVUxMOgorKyAgICAg ICAgaWYgZm1wcV9wb2x5X2RlbnJlZihzZWxmLl9wb2x5KSBpcyBOVUxMOgorICAgICAgICAgICAg IG1wel9zZXRfdWkoZGVuLnZhbHVlLCAxKQorICAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBm bXB6X2dldF9tcHooZGVuLnZhbHVlLCA8Zm1weiAqPiBmbXBxX3BvbHlfZGVucmVmKHNlbGYuX19w b2x5KSkKKysgICAgICAgICAgICBmbXB6X2dldF9tcHooZGVuLnZhbHVlLCA8Zm1weiAqPiBmbXBx X3BvbHlfZGVucmVmKHNlbGYuX3BvbHkpKQorICAgICAgICAgcmV0dXJuIGRlbgorIAorICAgICBk ZWYgX2Rlcml2YXRpdmUoc2VsZiwgdmFyID0gTm9uZSk6CitAQCAtMTUxNywxMCArMTUxNywxMCBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY2Fubm90IGRpZmZlcmVudGlhdGUgd2l0aCByZXNw ZWN0IHRvIHt9Ii5mb3JtYXQodmFyKSkKKyAKKyAgICAgICAgIGRlciA9IHNlbGYuX25ldygpCist ICAgICAgICBkb19zaWcgPSBfZG9fc2lnKHNlbGYuX19wb2x5KQorKyAgICAgICAgZG9fc2lnID0g X2RvX3NpZyhzZWxmLl9wb2x5KQorIAorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfc3RyKCJGTElO VCBleGNlcHRpb24iKQorLSAgICAgICAgZm1wcV9wb2x5X2Rlcml2YXRpdmUoZGVyLl9fcG9seSwg c2VsZi5fX3BvbHkpCisrICAgICAgICBmbXBxX3BvbHlfZGVyaXZhdGl2ZShkZXIuX3BvbHksIHNl bGYuX3BvbHkpCisgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJu IGRlcgorIAorQEAgLTE1NzQsOCArMTU3NCw4IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRp b25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIGNkZWYgZm1wcV90IHQKKyAgICAgICAg IGZtcHFfaW5pdCh0KQorICAgICAgICAgc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAg ICAgIGZtcHFfcG9seV9yZXN1bHRhbnQodCwgc2VsZi5fX3BvbHksCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICg8UG9seW5vbWlhbF9yYXRpb25hbF9mbGludD5yaWdodCkuX19wb2x5KQor KyAgICAgICAgZm1wcV9wb2x5X3Jlc3VsdGFudCh0LCBzZWxmLl9wb2x5LAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoPFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQ+cmlnaHQpLl9wb2x5 KQorICAgICAgICAgZm1wcV9nZXRfbXBxKHJlcy52YWx1ZSwgdCkKKyAgICAgICAgIHNpZ19vZmYo KQorICAgICAgICAgZm1wcV9jbGVhcih0KQorQEAgLTE2MjMsNyArMTYyMyw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAKKyAgICAgICAgICIi IgorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgcHJpbWl0aXZl CistICAgICAgICBjZGVmIHVuc2lnbmVkIGxvbmcgbGVuZ3RoID0gZm1wcV9wb2x5X2xlbmd0aChz ZWxmLl9fcG9seSkKKysgICAgICAgIGNkZWYgdW5zaWduZWQgbG9uZyBsZW5ndGggPSBmbXBxX3Bv bHlfbGVuZ3RoKHNlbGYuX3BvbHkpCisgCisgICAgICAgICBpZiBsZW5ndGggPCAyOgorICAgICAg ICAgICAgIHJldHVybiBGYWxzZQorQEAgLTE2MzYsOCArMTYzNiw4IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHg9Tm9uZSwgY2hlY2s9VHJ1ZSwgaXNfZ2VuPUZhbHNlLCBjb25zdHJ1Y3Q9RmFs c2UpCisgCisgICAgICAgICAgICAgc2lnX3N0cigiRkxJTlQgZXhjZXB0aW9uIikKKy0gICAgICAg ICAgICBmbXBxX3BvbHlfZ2V0X251bWVyYXRvcihwcmltaXRpdmUuX19wb2x5LCBzZWxmLl9fcG9s eSkKKy0gICAgICAgICAgICBmbXB6X3BvbHlfcHJpbWl0aXZlX3BhcnQocHJpbWl0aXZlLl9fcG9s eSwgcHJpbWl0aXZlLl9fcG9seSkKKysgICAgICAgICAgICBmbXBxX3BvbHlfZ2V0X251bWVyYXRv cihwcmltaXRpdmUuX3BvbHksIHNlbGYuX3BvbHkpCisrICAgICAgICAgICAgZm1wel9wb2x5X3By aW1pdGl2ZV9wYXJ0KHByaW1pdGl2ZS5fcG9seSwgcHJpbWl0aXZlLl9wb2x5KQorICAgICAgICAg ICAgIHNpZ19vZmYoKQorICAgICAgICAgICAgIHJldHVybiBwcmltaXRpdmUuaXNfaXJyZWR1Y2li bGUoKQorIAorQEAgLTE2NjksMTQgKzE2NjksMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3Jh dGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAg IFZhbHVlRXJyb3I6IGNvbnN0YW50IHRlcm0gc2hvdWxkIGJlIDEgaW4gb3JkZXIgdG8gdGFrZSBs b2dhcml0aG0KKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxm Ll9fcG9seSkgPT0gLTEgb3IgXAorLSAgICAgICAgICAgZm1wel9jbXAoZm1wcV9wb2x5X251bXJl ZihzZWxmLl9fcG9seSksCistICAgICAgICAgICAgICAgICAgICBmbXBxX3BvbHlfZGVucmVmKHNl bGYuX19wb2x5KSk6CisrICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID09 IC0xIG9yIFwKKysgICAgICAgICAgIGZtcHpfY21wKGZtcHFfcG9seV9udW1yZWYoc2VsZi5fcG9s eSksCisrICAgICAgICAgICAgICAgICAgICBmbXBxX3BvbHlfZGVucmVmKHNlbGYuX3BvbHkpKToK KyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjb25zdGFudCB0ZXJtIHNob3VsZCBiZSAx IGluIG9yZGVyIHRvIHRha2UgbG9nYXJpdGhtIikKKyAKKyAgICAgICAgIGNkZWYgUG9seW5vbWlh bF9yYXRpb25hbF9mbGludCByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0g ICAgICAgIGZtcHFfcG9seV9sb2dfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBwcmVj KQorKyAgICAgICAgZm1wcV9wb2x5X2xvZ19zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBw cmVjKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTcw MywxNCArMTcwMywxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9s eW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogXy5wYXJlbnQoKQorICAgICAgICAgICAgIFVu aXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGluIHggb3ZlciBSYXRpb25hbCBGaWVsZAorICAgICAg ICAgIiIiCistICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAtMToK KysgICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPT0gLTE6CisgICAgICAg ICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5vbmUoKQorLSAgICAgICAgZWxpZiBub3QgZm1wel9p c196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2VsZi5fX3BvbHkpKToKKysgICAgICAgIGVsaWYgbm90 IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX3BvbHkpKToKKyAgICAgICAgICAg ICByYWlzZSBWYWx1ZUVycm9yKCJjb25zdGFudCB0ZXJtIHNob3VsZCBiZSAwIGluIG9yZGVyIHRv IHRha2UgZXhwb25lbnRpYWwiKQorIAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFs X2ZsaW50IHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1w cV9wb2x5X2V4cF9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIHByZWMpCisrICAgICAg ICBmbXBxX3BvbHlfZXhwX3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIHByZWMpCisgICAg ICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0xNzM3LDE0ICsxNzM3 LDE0IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToK KyAgICAgICAgICAgICBzYWdlOiBfLnBhcmVudCgpCisgICAgICAgICAgICAgVW5pdmFyaWF0ZSBQ b2x5bm9taWFsIFJpbmcgaW4geCBvdmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0g ICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xOgorKyAgICAgICAg aWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMToKKyAgICAgICAgICAgICByZXR1 cm4gc2VsZi5fcGFyZW50Lnplcm8oKQorLSAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZt cHFfcG9seV9udW1yZWYoc2VsZi5fX3BvbHkpKToKKysgICAgICAgIGVsaWYgbm90IGZtcHpfaXNf emVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX3BvbHkpKToKKyAgICAgICAgICAgICByYWlzZSBW YWx1ZUVycm9yKCJjb25zdGFudCB0ZXJtIHNob3VsZCBiZSAwIGluIG9yZGVyIHRvIHRha2UgYXJj dGFuZ2VudCIpCisgCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVz ID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3BvbHlfYXRh bl9zZXJpZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIHByZWMpCisrICAgICAgICBmbXBxX3Bv bHlfYXRhbl9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBwcmVjKQorICAgICAgICAgc2ln X29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTc2OCwxNCArMTc2OCwxNCBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAg ICAgICAgc2FnZTogXy5wYXJlbnQoKQorICAgICAgICAgICAgIFVuaXZhcmlhdGUgUG9seW5vbWlh bCBSaW5nIGluIHggb3ZlciBSYXRpb25hbCBGaWVsZAorICAgICAgICAgIiIiCistICAgICAgICBp ZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAtMToKKysgICAgICAgIGlmIGZtcHFf cG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPT0gLTE6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYu X3BhcmVudC56ZXJvKCkKKy0gICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlf bnVtcmVmKHNlbGYuX19wb2x5KSk6CisrICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1w cV9wb2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv cigiY29uc3RhbnQgdGVybSBzaG91bGQgYmUgMCBpbiBvcmRlciB0byB0YWtlIGh5cGVyYm9saWMg YXJjdGFuZ2VudCIpCisgCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQg cmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3BvbHlf YXRhbmhfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBwcmVjKQorKyAgICAgICAgZm1w cV9wb2x5X2F0YW5oX3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIHByZWMpCisgICAgICAg ICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0xODAyLDE0ICsxODAyLDE0 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAg ICAgICAgICAgICBzYWdlOiBfLnBhcmVudCgpCisgICAgICAgICAgICAgVW5pdmFyaWF0ZSBQb2x5 bm9taWFsIFJpbmcgaW4geCBvdmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0gICAg ICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xOgorKyAgICAgICAgaWYg Zm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMToKKyAgICAgICAgICAgICByZXR1cm4g c2VsZi5fcGFyZW50Lnplcm8oKQorLSAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFf cG9seV9udW1yZWYoc2VsZi5fX3BvbHkpKToKKysgICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVy byhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX3BvbHkpKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1 ZUVycm9yKCJjb25zdGFudCB0ZXJtIHNob3VsZCBiZSAwIGluIG9yZGVyIHRvIHRha2UgYXJjc2lu ZSIpCisgCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2Vs Zi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3BvbHlfYXNpbl9zZXJp ZXMocmVzLl9fcG9seSwgc2VsZi5fX3BvbHksIHByZWMpCisrICAgICAgICBmbXBxX3BvbHlfYXNp bl9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9wb2x5LCBwcmVjKQorICAgICAgICAgc2lnX29mZigp CisgICAgICAgICByZXR1cm4gcmVzCisgCitAQCAtMTgzNywxNCArMTgzNywxNCBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg c2FnZTogXy5wYXJlbnQoKQorICAgICAgICAgICAgIFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5n IGluIHggb3ZlciBSYXRpb25hbCBGaWVsZAorICAgICAgICAgIiIiCistICAgICAgICBpZiBmbXBx X3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9PSAtMToKKysgICAgICAgIGlmIGZtcHFfcG9seV9k ZWdyZWUoc2VsZi5fcG9seSkgPT0gLTE6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVu dC56ZXJvKCkKKy0gICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVm KHNlbGYuX19wb2x5KSk6CisrICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5 X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29u c3RhbnQgdGVybSBzaG91bGQgYmUgMCBpbiBvcmRlciB0byB0YWtlIGh5cGVyYm9saWMgYXJjc2lu ZSIpCisgCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2Vs Zi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3BvbHlfYXNpbmhfc2Vy aWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBwcmVjKQorKyAgICAgICAgZm1wcV9wb2x5X2Fz aW5oX3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIHByZWMpCisgICAgICAgICBzaWdfb2Zm KCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0xODcxLDE0ICsxODcxLDE0IEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAg ICBzYWdlOiBfLnBhcmVudCgpCisgICAgICAgICAgICAgVW5pdmFyaWF0ZSBQb2x5bm9taWFsIFJp bmcgaW4geCBvdmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIGZt cHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xOgorKyAgICAgICAgaWYgZm1wcV9wb2x5 X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFy ZW50Lnplcm8oKQorLSAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFfcG9seV9udW1y ZWYoc2VsZi5fX3BvbHkpKToKKysgICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBxX3Bv bHlfbnVtcmVmKHNlbGYuX3BvbHkpKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJj b25zdGFudCB0ZXJtIHNob3VsZCBiZSAwIGluIG9yZGVyIHRvIHRha2UgdGFuZ2VudCIpCisgCisg ICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkK KyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBmbXBxX3BvbHlfdGFuX3NlcmllcyhyZXMuX19w b2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZtcHFfcG9seV90YW5fc2VyaWVzKHJl cy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIHJlcworIAorQEAgLTE5MDUsMTQgKzE5MDUsMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNhZ2U6IF8ucGFy ZW50KCkKKyAgICAgICAgICAgICBVbml2YXJpYXRlIFBvbHlub21pYWwgUmluZyBpbiB4IG92ZXIg UmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3Jl ZShzZWxmLl9fcG9seSkgPT0gLTE6CisrICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYu X3BvbHkpID09IC0xOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuemVybygpCist ICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9fcG9s eSkpOgorKyAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2Vs Zi5fcG9seSkpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNvbnN0YW50IHRlcm0g c2hvdWxkIGJlIDAgaW4gb3JkZXIgdG8gdGFrZSBzaW5lIikKKyAKKyAgICAgICAgIGNkZWYgUG9s eW5vbWlhbF9yYXRpb25hbF9mbGludCByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29u KCkKKy0gICAgICAgIGZtcHFfcG9seV9zaW5fc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5 LCBwcmVjKQorKyAgICAgICAgZm1wcV9wb2x5X3Npbl9zZXJpZXMocmVzLl9wb2x5LCBzZWxmLl9w b2x5LCBwcmVjKQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCitA QCAtMTkzNywxNCArMTkzNywxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxp bnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgc2FnZTogXy5wYXJlbnQoKQorICAgICAgICAg ICAgIFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGluIHggb3ZlciBSYXRpb25hbCBGaWVsZAor ICAgICAgICAgIiIiCistICAgICAgICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX19wb2x5KSA9 PSAtMToKKysgICAgICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fcG9seSkgPT0gLTE6Cisg ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC56ZXJvKCkKKy0gICAgICAgIGVsaWYgbm90 IGZtcHpfaXNfemVybyhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSk6CisrICAgICAgICBl bGlmIG5vdCBmbXB6X2lzX3plcm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAg ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29uc3RhbnQgdGVybSBzaG91bGQgYmUgMCBpbiBv cmRlciB0byB0YWtlIGNvc2luZSIpCisgCisgICAgICAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9u YWxfZmxpbnQgcmVzID0gc2VsZi5fbmV3KCkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBm bXBxX3BvbHlfY29zX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAg ICAgIGZtcHFfcG9seV9jb3Nfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAg ICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTE5NjksMTQgKzE5 NjksMTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwp OgorICAgICAgICAgICAgIHNhZ2U6IF8ucGFyZW50KCkKKyAgICAgICAgICAgICBVbml2YXJpYXRl IFBvbHlub21pYWwgUmluZyBpbiB4IG92ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgor LSAgICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkgPT0gLTE6CisrICAgICAg ICBpZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID09IC0xOgorICAgICAgICAgICAgIHJl dHVybiBzZWxmLl9wYXJlbnQuemVybygpCistICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3plcm8o Zm1wcV9wb2x5X251bXJlZihzZWxmLl9fcG9seSkpOgorKyAgICAgICAgZWxpZiBub3QgZm1wel9p c196ZXJvKGZtcHFfcG9seV9udW1yZWYoc2VsZi5fcG9seSkpOgorICAgICAgICAgICAgIHJhaXNl IFZhbHVlRXJyb3IoImNvbnN0YW50IHRlcm0gc2hvdWxkIGJlIDAgaW4gb3JkZXIgdG8gdGFrZSBo eXBlcmJvbGljIHNpbmUiKQorIAorICAgICAgICAgY2RlZiBQb2x5bm9taWFsX3JhdGlvbmFsX2Zs aW50IHJlcyA9IHNlbGYuX25ldygpCisgICAgICAgICBzaWdfb24oKQorLSAgICAgICAgZm1wcV9w b2x5X3Npbmhfc2VyaWVzKHJlcy5fX3BvbHksIHNlbGYuX19wb2x5LCBwcmVjKQorKyAgICAgICAg Zm1wcV9wb2x5X3Npbmhfc2VyaWVzKHJlcy5fcG9seSwgc2VsZi5fcG9seSwgcHJlYykKKyAgICAg ICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorQEAgLTIwMDcsMTQgKzIwMDcs MTQgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgor ICAgICAgICAgICAgIHNhZ2U6IF8ucGFyZW50KCkKKyAgICAgICAgICAgICBVbml2YXJpYXRlIFBv bHlub21pYWwgUmluZyBpbiB4IG92ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgorLSAg ICAgICAgaWYgZm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9fcG9seSkgPT0gLTE6CisrICAgICAgICBp ZiBmbXBxX3BvbHlfZGVncmVlKHNlbGYuX3BvbHkpID09IC0xOgorICAgICAgICAgICAgIHJldHVy biBzZWxmLl9wYXJlbnQub25lKCkKKy0gICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVybyhmbXBx X3BvbHlfbnVtcmVmKHNlbGYuX19wb2x5KSk6CisrICAgICAgICBlbGlmIG5vdCBmbXB6X2lzX3pl cm8oZm1wcV9wb2x5X251bXJlZihzZWxmLl9wb2x5KSk6CisgICAgICAgICAgICAgcmFpc2UgVmFs dWVFcnJvcigiY29uc3RhbnQgdGVybSBzaG91bGQgYmUgMCBpbiBvcmRlciB0byB0YWtlIGh5cGVy Ym9saWMgY29zaW5lIikKKyAKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dCByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHFfcG9s eV9jb3NoX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZt cHFfcG9seV9jb3NoX3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIHByZWMpCisgICAgICAg ICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK0BAIC0yMDQwLDE0ICsyMDQwLDE0 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAg ICAgICAgICAgICBzYWdlOiBfLnBhcmVudCgpCisgICAgICAgICAgICAgVW5pdmFyaWF0ZSBQb2x5 bm9taWFsIFJpbmcgaW4geCBvdmVyIFJhdGlvbmFsIEZpZWxkCisgICAgICAgICAiIiIKKy0gICAg ICAgIGlmIGZtcHFfcG9seV9kZWdyZWUoc2VsZi5fX3BvbHkpID09IC0xOgorKyAgICAgICAgaWYg Zm1wcV9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSA9PSAtMToKKyAgICAgICAgICAgICByZXR1cm4g c2VsZi5fcGFyZW50Lnplcm8oKQorLSAgICAgICAgZWxpZiBub3QgZm1wel9pc196ZXJvKGZtcHFf cG9seV9udW1yZWYoc2VsZi5fX3BvbHkpKToKKysgICAgICAgIGVsaWYgbm90IGZtcHpfaXNfemVy byhmbXBxX3BvbHlfbnVtcmVmKHNlbGYuX3BvbHkpKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1 ZUVycm9yKCJjb25zdGFudCB0ZXJtIHNob3VsZCBiZSAwIGluIG9yZGVyIHRvIHRha2UgaHlwZXJi b2xpYyB0YW5nZW50IikKKyAKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGlu dCByZXMgPSBzZWxmLl9uZXcoKQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIGZtcHFfcG9s eV90YW5oX3NlcmllcyhyZXMuX19wb2x5LCBzZWxmLl9fcG9seSwgcHJlYykKKysgICAgICAgIGZt cHFfcG9seV90YW5oX3NlcmllcyhyZXMuX3BvbHksIHNlbGYuX3BvbHksIHByZWMpCisgICAgICAg ICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmVhbF9tcGZyX2RlbnNlLnB5eCBiL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yZWFsX21wZnJfZGVuc2UucHl4CitpbmRl eCBmYmU5NmQxODZjNS4uOTU1ZjgzNDY4ZTQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9w b2x5bm9taWFsL3BvbHlub21pYWxfcmVhbF9tcGZyX2RlbnNlLnB5eAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3JlYWxfbXBmcl9kZW5zZS5weXgKK0BAIC0xMTYs NyArMTE2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsUmVhbERlbnNlKFBvbHlub21pYWwpOgor ICAgICAgICAgUG9seW5vbWlhbC5fX2luaXRfXyhzZWxmLCBwYXJlbnQsIGlzX2dlbj1pc19nZW4p CisgICAgICAgICBzZWxmLl9iYXNlX3JpbmcgPSBwYXJlbnQuX2Jhc2UKKyAgICAgICAgIGNkZWYg UHlfc3NpemVfdCBpLCBkZWdyZWUKKy0gICAgICAgIGNkZWYgaW50IHByZWMgPSBzZWxmLl9iYXNl X3JpbmcuX19wcmVjCisrICAgICAgICBjZGVmIGludCBwcmVjID0gc2VsZi5fYmFzZV9yaW5nLl9w cmVjCisgICAgICAgICBjZGVmIG1wZnJfcm5kX3Qgcm5kID0gc2VsZi5fYmFzZV9yaW5nLnJuZAor ICAgICAgICAgaWYgeCBpcyBOb25lOgorICAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IDxtcGZy X3QqPmNoZWNrX2FsbG9jYXJyYXkoMSwgc2l6ZW9mKG1wZnJfdCkpICMgZGVncmVlIHplcm8KK0BA IC0yMjcsNyArMjI3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsUmVhbERlbnNlKFBvbHlub21p YWwpOgorIAorICAgICBjZGVmIFBvbHlub21pYWxSZWFsRGVuc2UgX25ldyhzZWxmLCBQeV9zc2l6 ZV90IGRlZ3JlZSk6CisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaQorLSAgICAgICAgY2RlZiBp bnQgcHJlYyA9IHNlbGYuX2Jhc2VfcmluZy5fX3ByZWMKKysgICAgICAgIGNkZWYgaW50IHByZWMg PSBzZWxmLl9iYXNlX3JpbmcuX3ByZWMKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbFJlYWxEZW5z ZSBmID0gPFBvbHlub21pYWxSZWFsRGVuc2U+UG9seW5vbWlhbFJlYWxEZW5zZS5fX25ld19fKFBv bHlub21pYWxSZWFsRGVuc2UpCisgICAgICAgICBmLl9wYXJlbnQgPSBzZWxmLl9wYXJlbnQKKyAg ICAgICAgIGYuX2Jhc2VfcmluZyA9IHNlbGYuX2Jhc2VfcmluZworQEAgLTUwMSw3ICs1MDEsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxSZWFsRGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICBl bHNlOgorICAgICAgICAgICAgIGYgPSBsZWZ0Ll9uZXcobGVmdC5fZGVncmVlICsgcmlnaHQuX2Rl Z3JlZSkKKyAgICAgICAgIHNpZ19vbigpCistICAgICAgICBtcGZyX2luaXQyKHRtcCwgbGVmdC5f YmFzZV9yaW5nLl9fcHJlYykKKysgICAgICAgIG1wZnJfaW5pdDIodG1wLCBsZWZ0Ll9iYXNlX3Jp bmcuX3ByZWMpCisgICAgICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8PSBmLl9kZWdyZWU6CisgICAg ICAgICAgICAgIyBZZXMsIHdlIGNvdWxkIG1ha2UgdGhpcyBtb3JlIGVmZmljaWVudCBieSBpbml0 aWFsaXppbmcgd2l0aAorICAgICAgICAgICAgICMgYSBtdWx0aXBsZSBvZiBsZWZ0IHJhdGhlciB0 aGFuIGFsbCB6ZXJvcy4uLgorQEAgLTY2MSw3ICs2NjEsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxSZWFsRGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICBxID0gc2VsZi5fbmV3KHNlbGYuX2Rl Z3JlZSAtIG90aGVyLl9kZWdyZWUpCisgICAgICAgICAjIFRoaXMgaXMgdGhlIHN0YW5kYXJkIGRp dmlzaW9uIGFsZ29yaXRobQorICAgICAgICAgc2lnX29uKCkKKy0gICAgICAgIG1wZnJfaW5pdDIo dG1wLCBzZWxmLl9iYXNlX3JpbmcuX19wcmVjKQorKyAgICAgICAgbXBmcl9pbml0Mih0bXAsIHNl bGYuX2Jhc2VfcmluZy5fcHJlYykKKyAgICAgICAgIGZvciBpIGZyb20gc2VsZi5fZGVncmVlID49 IGkgPj0gb3RoZXIuX2RlZ3JlZToKKyAgICAgICAgICAgICBtcGZyX3NldChxLl9jb2VmZnNbaS1v dGhlci5fZGVncmVlXSwgci5fY29lZmZzW2ldLCBybmQpCisgICAgICAgICAgICAgZm9yIGogZnJv bSAwIDw9IGogPCBvdGhlci5fZGVncmVlOgorQEAgLTcyNSw3ICs3MjUsNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxSZWFsRGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIFJlYWxOdW1i ZXIgeCA9IDxSZWFsTnVtYmVyPnh4CisgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgcmVzCisgCist ICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz54Ll9wYXJlbnQpLl9fcHJlYyA8IHNlbGYuX2Jh c2VfcmluZy5fX3ByZWM6CisrICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz54Ll9wYXJlbnQp Ll9wcmVjIDwgc2VsZi5fYmFzZV9yaW5nLl9wcmVjOgorICAgICAgICAgICAgIHJlcyA9IFJlYWxO dW1iZXIoeC5fcGFyZW50KQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXMgPSBSZWFs TnVtYmVyKHNlbGYuX2Jhc2VfcmluZykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5 bm9taWFsL3BvbHlub21pYWxfem1vZF9mbGludC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL3BvbHlub21pYWxfem1vZF9mbGludC5weXgKK2luZGV4IDI1M2FiOTQ5ZmNjLi40YzQ4MDY3 Mzg2MSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF96 bW9kX2ZsaW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFs X3ptb2RfZmxpbnQucHl4CitAQCAtMTEwLDcgKzExMCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF96bW9kX2ZsaW50KFBvbHlub21pYWxfdGVtcGxhdGUpOgorICAgICAgICAgICAgIHJldHVybgor ICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHgsIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dCk6CisgICAgICAgICAgICAgUG9seW5vbWlhbF90ZW1wbGF0ZS5fX2luaXRfXyhzZWxmLCBwYXJl bnQsIDAsIGNoZWNrLCBpc19nZW4sIGNvbnN0cnVjdCkKKy0gICAgICAgICAgICBzZWxmLl9zZXRf Zm1wel9wb2x5KCg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50PngpLl9fcG9seSkKKysg ICAgICAgICAgICBzZWxmLl9zZXRfZm1wel9wb2x5KCg8UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNl X2ZsaW50PngpLl9wb2x5KQorICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICBpZiBpc2luc3RhbmNlKHgsIG50bF96el9wWCk6CitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX21wb2x5LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3Bvd2Vy X3Nlcmllc19tcG9seS5weGQKK2luZGV4IGY4MjJlY2MxMjI3Li5kMzU4YWRhMTM1NiAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19tcG9seS5weGQKKysrKyBiL3NyYy9z YWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19tcG9seS5weGQKK0BAIC0zLDYgKzMsNiBAQCBmcm9tIC5w b3dlcl9zZXJpZXNfcmluZ19lbGVtZW50IGNpbXBvcnQgUG93ZXJTZXJpZXMKKyAKKyBjZGVmIGNs YXNzIFBvd2VyU2VyaWVzX21wb2x5KFBvd2VyU2VyaWVzKToKKyAgICAgY2RlZiBNb2R1bGVFbGVt ZW50IF9fZgorLSAgICBjZGVmIG9iamVjdCBfX3BvbHkKKysgICAgY2RlZiBvYmplY3QgX3BvbHkK KyAgICAgY2RlZiBvYmplY3QgX19saXN0CisgICAgIGNkZWYgYmludCBfdHJ1bmNhdGVkCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX21wb2x5LnB5eCBiL3NyYy9zYWdl L3JpbmdzL3Bvd2VyX3Nlcmllc19tcG9seS5weXgKK2luZGV4IDBjOTAxYTM1NTdiLi5iZTU5Mjk0 ZTc1YiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19tcG9seS5weXgK KysrKyBiL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19tcG9seS5weXgKK0BAIC02NSw3ICs2 NSw3IEBAIGNkZWYgY2xhc3MgUG93ZXJTZXJpZXNfbXBvbHkoUG93ZXJTZXJpZXMpOgorIAorICAg ICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKKyAgICAgICAgICMgZG8gKm5vdCogZGVsZXRlIG9sZCB2 ZXJzaW9ucy4KKy0gICAgICAgIHJldHVybiBtYWtlX3Bvd2Vyc2VyaWVzX21wb2x5X3YwLCAoc2Vs Zi5fcGFyZW50LCBzZWxmLl9fZiwgc2VsZi5fcHJlYywgc2VsZi5fX2lzX2dlbikKKysgICAgICAg IHJldHVybiBtYWtlX3Bvd2Vyc2VyaWVzX21wb2x5X3YwLCAoc2VsZi5fcGFyZW50LCBzZWxmLl9f Ziwgc2VsZi5fcHJlYywgc2VsZi5faXNfZ2VuKQorIAorICAgICBkZWYgX19jYWxsX18oc2VsZiwg KmFyZ3MsICoqa3dkcyk6CisgICAgICAgICBpZiBsZW4oa3dkcykgPT0gMCBhbmQgbGVuKGFyZ3Mp ID09IDE6CitAQCAtOTIsMTAgKzkyLDEwIEBAIGNkZWYgY2xhc3MgUG93ZXJTZXJpZXNfbXBvbHko UG93ZXJTZXJpZXMpOgorICAgICAgICAgcmV0dXJuIHNlbGYuX19saXN0CisgCisgICAgIGRlZiBw b2x5bm9taWFsKHNlbGYpOgorLSAgICAgICAgaWYgc2VsZi5fX3BvbHkgaXMgTm9uZToKKysgICAg ICAgIGlmIHNlbGYuX3BvbHkgaXMgTm9uZToKKyAgICAgICAgICAgICBTID0gc2VsZi5wYXJlbnQo KS5fbXBvbHlfcmluZygpCistICAgICAgICAgICAgc2VsZi5fX3BvbHkgPSBzZWxmLl9fZi5wb2x5 bm9taWFsKFMuZ2VucygpWy0xXSkKKy0gICAgICAgIHJldHVybiBzZWxmLl9fcG9seQorKyAgICAg ICAgICAgIHNlbGYuX3BvbHkgPSBzZWxmLl9fZi5wb2x5bm9taWFsKFMuZ2VucygpWy0xXSkKKysg ICAgICAgIHJldHVybiBzZWxmLl9wb2x5CisgCisgICAgIGRlZiBfbXBvbHkoc2VsZik6CisgICAg ICAgICByZXR1cm4gc2VsZi5fX2YKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9z ZXJpZXNfcG9seS5weXggYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcG9seS5weXgKK2lu ZGV4IDdjOTMxNjhkNGIxLi42Y2FjYWIxZjBjOCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jpbmdz L3Bvd2VyX3Nlcmllc19wb2x5LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVz X3BvbHkucHl4CitAQCAtOTcsNyArOTcsNyBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzX3BvbHko UG93ZXJTZXJpZXMpOgorICAgICAgICAgICAgIHNhZ2U6IGYgPT0gbG9hZHMoZHVtcHMoZikpICMg aW5kaXJlY3QgZG9jdGVzdAorICAgICAgICAgICAgIFRydWUKKyAgICAgICAgICIiIgorLSAgICAg ICAgcmV0dXJuIHNlbGYuX19jbGFzc19fLCAoc2VsZi5fcGFyZW50LCBzZWxmLl9fZiwgc2VsZi5f cHJlYywgc2VsZi5fX2lzX2dlbikKKysgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXywgKHNl bGYuX3BhcmVudCwgc2VsZi5fX2YsIHNlbGYuX3ByZWMsIHNlbGYuX2lzX2dlbikKKyAKKyAgICAg ZGVmIHBvbHlub21pYWwoc2VsZik6CisgICAgICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wb3dlcl9zZXJpZXNfcmluZ19lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3Bv d2VyX3Nlcmllc19yaW5nX2VsZW1lbnQucHhkCitpbmRleCAwNjdjNGYzYzZkNC4uZTVjMDMxZWUx NDcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcmluZ19lbGVtZW50 LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3JpbmdfZWxlbWVudC5weGQK K0BAIC0xLDcgKzEsNyBAQAorIGZyb20gc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudCBjaW1wb3J0IEFs Z2VicmFFbGVtZW50LCBSaW5nRWxlbWVudAorIAorIGNkZWYgY2xhc3MgUG93ZXJTZXJpZXMoQWxn ZWJyYUVsZW1lbnQpOgorLSAgICBjZGVmIGNoYXIgX19pc19nZW4KKysgICAgY2RlZiBjaGFyIF9p c19nZW4KKyAgICAgY2RlZiBfcHJlYworICAgICBjZGVmIGNvbW1vbl9wcmVjX2Moc2VsZiwgUG93 ZXJTZXJpZXMgb3RoZXIpCisgICAgICNfcHJlYyhzZWxmLCBSaW5nRWxlbWVudCByaWdodF9yKQor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19yaW5nX2VsZW1lbnQucHl4 IGIvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3JpbmdfZWxlbWVudC5weXgKK2luZGV4IDU0 MzE0ZDUzOGVkLi5lNWUyZGY3OWUxYiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3Bvd2Vy X3Nlcmllc19yaW5nX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJp ZXNfcmluZ19lbGVtZW50LnB5eAorQEAgLTE1OSw3ICsxNTksNyBAQCBjZGVmIGNsYXNzIFBvd2Vy U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICAgICAgb3ZlciBGaW5pdGUgRmllbGQg b2Ygc2l6ZSAzCisgICAgICAgICAiIiIKKyAgICAgICAgIEFsZ2VicmFFbGVtZW50Ll9faW5pdF9f KHNlbGYsIHBhcmVudCkKKy0gICAgICAgIHNlbGYuX19pc19nZW4gPSBpc19nZW4KKysgICAgICAg IHNlbGYuX2lzX2dlbiA9IGlzX2dlbgorICAgICAgICAgc2VsZi5fcHJlYyA9IHByZWMKKyAKKyAg ICAgZGVmIF9faGFzaF9fKHNlbGYpOgorQEAgLTIzNCw3ICsyMzQsNyBAQCBjZGVmIGNsYXNzIFBv d2VyU2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiAxKnQgPT0gdAor ICAgICAgICAgICAgIFRydWUKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIGJvb2woc2Vs Zi5fX2lzX2dlbikKKysgICAgICAgIHJldHVybiBib29sKHNlbGYuX2lzX2dlbikKKyAKKyAgICAg ZGVmIF9pbV9nZW5zXyhzZWxmLCBjb2RvbWFpbiwgaW1fZ2VucywgYmFzZV9tYXA9Tm9uZSk6Cisg ICAgICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZmkucHhkIGIv c3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB4ZAoraW5kZXggOTU5YTY1MGFhZmMuLjQyMDE3ODhk MTk4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB4ZAorKysrIGIvc3Jj L3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB4ZAorQEAgLTExLDcgKzExLDcgQEAgZnJvbSAucmVhbF9t cGZyIGNpbXBvcnQgUmVhbEZpZWxkX2NsYXNzCisgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxGaWVs ZEVsZW1lbnQoUmluZ0VsZW1lbnQpICAjIGZvcndhcmQgZGVjbAorIAorIGNkZWYgY2xhc3MgUmVh bEludGVydmFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEludGVydmFsRmllbGQpOgor LSAgICBjZGVmIG1wZnJfcHJlY190IF9fcHJlYworKyAgICBjZGVmIG1wZnJfcHJlY190IF9wcmVj CisgICAgIGNkZWYgYmludCBzY2lfbm90CisgICAgICMgQ2FjaGUgUmVhbEZpZWxkIGluc3RhbmNl cyBmb3IgdGhlIGxvd2VyLCB1cHBlciwgYW5kIG1pZGRsZSBib3VuZHMuCisgICAgICMgVGhlc2Ug aGF2ZSB0aGUgc2FtZSBwcmVjaXNpb24gYXMgdGhlIGludGVydmFsIGZpZWxkOworZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmaS5weXggYi9zcmMvc2FnZS9yaW5ncy9yZWFsX21w ZmkucHl4CitpbmRleCAxMTkzYTE0YmFmZi4uNTA5ZjZmNjNkYTAgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9yaW5ncy9yZWFsX21wZmkucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZmku cHl4CitAQCAtNTI2LDcgKzUyNiw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRfY2xh c3Moc2FnZS5yaW5ncy5hYmMuUmVhbEludGVydmFsRmllbGQpOgorICAgICAgICAgaWYgcHJlYyA8 IE1QRlJfUFJFQ19NSU4gb3IgcHJlYyA+IE1QRlJfUFJFQ19NQVg6CisgICAgICAgICAgICAgcmFp c2UgVmFsdWVFcnJvcigicHJlYyAoPSVzKSBtdXN0IGJlID49ICVzIGFuZCA8PSAlcy4iICUgKAor ICAgICAgICAgICAgICAgICBwcmVjLCBNUEZSX1BSRUNfTUlOLCBNUEZSX1BSRUNfTUFYKSkKKy0g ICAgICAgIHNlbGYuX19wcmVjID0gcHJlYworKyAgICAgICAgc2VsZi5fcHJlYyA9IHByZWMKKyAg ICAgICAgIHNlbGYuc2NpX25vdCA9IHNjaV9ub3QKKyAgICAgICAgIHNlbGYuX19sb3dlcl9maWVs ZCA9IFJlYWxGaWVsZChwcmVjLCBzY2lfbm90LCAiUk5ERCIpCisgICAgICAgICBzZWxmLl9fbWlk ZGxlX2ZpZWxkID0gUmVhbEZpZWxkKHByZWMsIHNjaV9ub3QsICJSTkROIikKK0BAIC01OTgsNyAr NTk4LDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFi Yy5SZWFsSW50ZXJ2YWxGaWVsZCk6CisgICAgICAgICBlbGlmIHJuZCA9PSAiUk5EVSI6CisgICAg ICAgICAgICAgcmV0dXJuIHNlbGYudXBwZXJfZmllbGQoKQorICAgICAgICAgZWxzZToKKy0gICAg ICAgICAgICByZXR1cm4gUmVhbEZpZWxkKHNlbGYuX19wcmVjLCBzZWxmLnNjaV9ub3QsIHJuZCkK KysgICAgICAgICAgICByZXR1cm4gUmVhbEZpZWxkKHNlbGYuX3ByZWMsIHNlbGYuc2NpX25vdCwg cm5kKQorIAorICAgICBkZWYgX3JlcHJfKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtNjExLDcg KzYxMSw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5h YmMuUmVhbEludGVydmFsRmllbGQpOgorICAgICAgICAgICAgIHNhZ2U6IFJlYWxJbnRlcnZhbEZp ZWxkKDIwMCkgIyBpbmRpcmVjdCBkb2N0ZXN0CisgICAgICAgICAgICAgUmVhbCBJbnRlcnZhbCBG aWVsZCB3aXRoIDIwMCBiaXRzIG9mIHByZWNpc2lvbgorICAgICAgICAgIiIiCistICAgICAgICBz ID0gIlJlYWwgSW50ZXJ2YWwgRmllbGQgd2l0aCAlcyBiaXRzIG9mIHByZWNpc2lvbiIlc2VsZi5f X3ByZWMKKysgICAgICAgIHMgPSAiUmVhbCBJbnRlcnZhbCBGaWVsZCB3aXRoICVzIGJpdHMgb2Yg cHJlY2lzaW9uIiVzZWxmLl9wcmVjCisgICAgICAgICByZXR1cm4gcworIAorICAgICBkZWYgX2xh dGV4XyhzZWxmKToKK0BAIC04MDIsNyArODAyLDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxG aWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsSW50ZXJ2YWxGaWVsZCk6CisgICAgICAgICAg ICAgc2FnZTogUklGLmhhc19jb2VyY2VfbWFwX2Zyb20oZmxvYXQpCisgICAgICAgICAgICAgRmFs c2UKKyAgICAgICAgICIiIgorLSAgICAgICAgcHJlYyA9IHNlbGYuX19wcmVjCisrICAgICAgICBw cmVjID0gc2VsZi5fcHJlYworIAorICAgICAgICAgIyBEaXJlY3QgYW5kIGVmZmljaWVudCBjb252 ZXJzaW9ucworICAgICAgICAgaWYgUyBpcyBaWiBvciBTIGlzIFFROgorQEAgLTgxMCw3ICs4MTAs NyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJl YWxJbnRlcnZhbEZpZWxkKToKKyAgICAgICAgIGlmIFMgaXMgaW50IG9yIFMgaXMgbG9uZzoKKyAg ICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgaWYgaXNpbnN0YW5jZShTLCBSZWFsSW50 ZXJ2YWxGaWVsZF9jbGFzcyk6CistICAgICAgICAgICAgcmV0dXJuICg8UmVhbEludGVydmFsRmll bGRfY2xhc3M+UykuX19wcmVjID49IHByZWMKKysgICAgICAgICAgICByZXR1cm4gKDxSZWFsSW50 ZXJ2YWxGaWVsZF9jbGFzcz5TKS5fcHJlYyA+PSBwcmVjCisgICAgICAgICBpZiBpc2luc3RhbmNl KFMsIHNhZ2UucmluZ3MuYWJjLk51bWJlckZpZWxkX3F1YWRyYXRpYyk6CisgICAgICAgICAgICAg cmV0dXJuIFMuZGlzY3JpbWluYW50KCkgPiAwCisgCitAQCAtODQ0LDcgKzg0NCw3IEBAIGNkZWYg Y2xhc3MgUmVhbEludGVydmFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEludGVydmFs RmllbGQpOgorICAgICAgICAgY2RlZiBSZWFsSW50ZXJ2YWxGaWVsZF9jbGFzcyByaWdodAorICAg ICAgICAgbGVmdCA9IHNlbGYKKyAgICAgICAgIHJpZ2h0ID0gb3RoZXIgICMgdG8gYWNjZXNzIEMg c3RydWN0dXJlCistICAgICAgICByZXR1cm4gcmljaGNtcChsZWZ0Ll9fcHJlYywgcmlnaHQuX19w cmVjLCBvcCkKKysgICAgICAgIHJldHVybiByaWNoY21wKGxlZnQuX3ByZWMsIHJpZ2h0Ll9wcmVj LCBvcCkKKyAKKyAgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CisgICAgICAgICAiIiIKK0BAIC04 NTYsNyArODU2LDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxGaWVsZF9jbGFzcyhzYWdlLnJp bmdzLmFiYy5SZWFsSW50ZXJ2YWxGaWVsZCk6CisgICAgICAgICAgICAgc2FnZTogbG9hZHMoZHVt cHMoUikpID09IFIKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKy0gICAgICAgIHJl dHVybiBfX2NyZWF0ZV9fUmVhbEludGVydmFsRmllbGRfdmVyc2lvbjAsIChzZWxmLl9fcHJlYywg c2VsZi5zY2lfbm90KQorKyAgICAgICAgcmV0dXJuIF9fY3JlYXRlX19SZWFsSW50ZXJ2YWxGaWVs ZF92ZXJzaW9uMCwgKHNlbGYuX3ByZWMsIHNlbGYuc2NpX25vdCkKKyAKKyAgICAgZGVmIHJhbmRv bV9lbGVtZW50KHNlbGYsICphcmdzLCAqKmt3ZHMpOgorICAgICAgICAgIiIiCitAQCAtOTk3LDcg Kzk5Nyw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5h YmMuUmVhbEludGVydmFsRmllbGQpOgorICAgICAgICAgICAgIHNhZ2U6IFJlYWxJbnRlcnZhbEZp ZWxkKDIwMCkubmFtZSgpCisgICAgICAgICAgICAgJ0ludGVydmFsUmVhbEludGVydmFsRmllbGQy MDAnCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiAiSW50ZXJ2YWxSZWFsSW50ZXJ2YWxG aWVsZCVzIiUoc2VsZi5fX3ByZWMpCisrICAgICAgICByZXR1cm4gIkludGVydmFsUmVhbEludGVy dmFsRmllbGQlcyIlKHNlbGYuX3ByZWMpCisgCisgICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAg ICAgICAgICIiIgorQEAgLTEwMjMsNyArMTAyMyw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFs RmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEludGVydmFsRmllbGQpOgorICAgICAgICAg ICAgIHNhZ2U6IFJlYWxJbnRlcnZhbEZpZWxkKDIwMCkucHJlY2lzaW9uKCkKKyAgICAgICAgICAg ICAyMDAKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJuIHNlbGYuX19wcmVjCisrICAgICAg ICByZXR1cm4gc2VsZi5fcHJlYworIAorICAgICBwcmVjID0gcHJlY2lzaW9uCisgCitAQCAtMTE4 Nyw3ICsxMTg3LDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQoUmluZ0Vs ZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IFRlc3RTdWl0ZSh4KS5ydW4oc2tpcD1bIl90ZXN0 X2VxIiwgIl90ZXN0X3BpY2tsaW5nIl0pCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVh bEludGVydmFsRmllbGRfY2xhc3MgcCA9IDxSZWFsSW50ZXJ2YWxGaWVsZF9jbGFzcz8+cGFyZW50 CistICAgICAgICBtcGZpX2luaXQyKHNlbGYudmFsdWUsIHAuX19wcmVjKQorKyAgICAgICAgbXBm aV9pbml0MihzZWxmLnZhbHVlLCBwLl9wcmVjKQorICAgICAgICAgc2VsZi5fcGFyZW50ID0gcAor IAorICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCB4LCBpbnQgYmFzZT0xMCk6CitAQCAt MTg2NCw3ICsxODY0LDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQoUmlu Z0VsZW1lbnQpOgorIAorICAgICAgICAgY2RlZiBtcF9leHBfdCBzZWxmX2V4cAorICAgICAgICAg Y2RlZiBtcHpfdCBzZWxmX3p6CistICAgICAgICBjZGVmIG1wZnJfcHJlY190IHByZWMgPSAoPFJl YWxJbnRlcnZhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjCisrICAgICAgICBjZGVm IG1wZnJfcHJlY190IHByZWMgPSAoPFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVu dCkuX3ByZWMKKyAgICAgICAgIGNkZWYgY2hhciAqenpfc3RyCisgICAgICAgICBjZGVmIHNpemVf dCB6el9zdHJfbWF4bGVuCisgCitAQCAtMjk3Nyw3ICsyOTc3LDcgQEAgY2RlZiBjbGFzcyBSZWFs SW50ZXJ2YWxGaWVsZEVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIHNhZ2U6IFJl YWxJbnRlcnZhbEZpZWxkKDIwMCkoMi4xKS5wcmVjaXNpb24oKQorICAgICAgICAgICAgIDIwMAor ICAgICAgICAgIiIiCistICAgICAgICByZXR1cm4gKDxSZWFsSW50ZXJ2YWxGaWVsZF9jbGFzcz5z ZWxmLl9wYXJlbnQpLl9fcHJlYworKyAgICAgICAgcmV0dXJuICg8UmVhbEludGVydmFsRmllbGRf Y2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYworIAorICAgICBwcmVjID0gcHJlY2lzaW9uCisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZyLnB4ZCBiL3NyYy9zYWdlL3Jpbmdz L3JlYWxfbXBmci5weGQKK2luZGV4IDM1NDllY2NmZDAzLi5kZDE4ZTg3NzE1YiAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3Jl YWxfbXBmci5weGQKK0BAIC05LDcgKzksNyBAQCBmcm9tIHNhZ2UubGlicy5tcGZyLnR5cGVzIGNp bXBvcnQgbXBmcl9wcmVjX3QKKyBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUu ZWxlbWVudC5SaW5nRWxlbWVudCkgICMgZm9yd2FyZCBkZWNsCisgCisgY2RlZiBjbGFzcyBSZWFs RmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKy0gICAgY2RlZiBtcGZyX3By ZWNfdCBfX3ByZWMKKysgICAgY2RlZiBtcGZyX3ByZWNfdCBfcHJlYworICAgICBjZGVmIGJpbnQg c2NpX25vdAorICAgICBjZGVmIG1wZnJfcm5kX3Qgcm5kCisgICAgIGNkZWYgb2JqZWN0IHJuZF9z dHIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZnIucHl4IGIvc3JjL3NhZ2Uv cmluZ3MvcmVhbF9tcGZyLnB5eAoraW5kZXggZWE3ZmYwN2EyMTYuLjc0NDBmYWRkMjY1IDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZyLnB5eAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvcmVhbF9tcGZyLnB5eAorQEAgLTUyNCw3ICs1MjQsNyBAQCBjZGVmIGNsYXNzIFJlYWxGaWVs ZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsRmllbGQpOgorICAgICAgICAgaWYgcHJlYyA8IE1Q RlJfUFJFQ19NSU4gb3IgcHJlYyA+IE1QRlJfUFJFQ19NQVg6CisgICAgICAgICAgICAgcmFpc2Ug VmFsdWVFcnJvcigicHJlYyAoPSVzKSBtdXN0IGJlID49ICVzIGFuZCA8PSAlcyIgJSAoCisgICAg ICAgICAgICAgICAgIHByZWMsIE1QRlJfUFJFQ19NSU4sIE1QRlJfUFJFQ19NQVgpKQorLSAgICAg ICAgc2VsZi5fX3ByZWMgPSBwcmVjCisrICAgICAgICBzZWxmLl9wcmVjID0gcHJlYworICAgICAg ICAgc2VsZi5zY2lfbm90ID0gc2NpX25vdAorIAorICAgICAgICAgc2VsZi5ybmQgPSA8bXBmcl9y bmRfdD5ybmQKK0BAIC01NjEsNyArNTYxLDcgQEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Mo c2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAgICAgICAgICBzYWdlOiBSZWFsRmllbGQo MTcscm5kPSdSTkREJykgIyBpbmRpcmVjdCBkb2N0ZXN0CisgICAgICAgICAgICAgUmVhbCBGaWVs ZCB3aXRoIDE3IGJpdHMgb2YgcHJlY2lzaW9uIGFuZCByb3VuZGluZyBSTkRECisgICAgICAgICAi IiIKKy0gICAgICAgIHMgPSAiUmVhbCBGaWVsZCB3aXRoICVzIGJpdHMgb2YgcHJlY2lzaW9uIiVz ZWxmLl9fcHJlYworKyAgICAgICAgcyA9ICJSZWFsIEZpZWxkIHdpdGggJXMgYml0cyBvZiBwcmVj aXNpb24iJXNlbGYuX3ByZWMKKyAgICAgICAgIGlmIHNlbGYucm5kICE9IE1QRlJfUk5ETjoKKyAg ICAgICAgICAgICBzID0gcyArICIgYW5kIHJvdW5kaW5nICVzIiUoc2VsZi5ybmRfc3RyKQorICAg ICAgICAgcmV0dXJuIHMKK0BAIC03MzMsMTMgKzczMywxMyBAQCBjZGVmIGNsYXNzIFJlYWxGaWVs ZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsRmllbGQpOgorICAgICAgICAgICAgIHJldHVybiBa WnRvUlIoWlosIHNlbGYpCisgICAgICAgICBlbGlmIFMgaXMgUVE6CisgICAgICAgICAgICAgcmV0 dXJuIFFRdG9SUihRUSwgc2VsZikKKy0gICAgICAgIGVsaWYgKFMgaXMgUkRGIG9yIFMgaXMgZmxv YXQpIGFuZCBzZWxmLl9fcHJlYyA8PSA1MzoKKysgICAgICAgIGVsaWYgKFMgaXMgUkRGIG9yIFMg aXMgZmxvYXQpIGFuZCBzZWxmLl9wcmVjIDw9IDUzOgorICAgICAgICAgICAgIHJldHVybiBkb3Vi bGVfdG9SUihTLCBzZWxmKQorICAgICAgICAgZWxpZiBTIGlzIGxvbmc6CisgICAgICAgICAgICAg cmV0dXJuIGludF90b1JSKGxvbmcsIHNlbGYpCisgICAgICAgICBlbGlmIFMgaXMgaW50OgorICAg ICAgICAgICAgIHJldHVybiBpbnRfdG9SUihpbnQsIHNlbGYpCistICAgICAgICBlbGlmIGlzaW5z dGFuY2UoUywgUmVhbEZpZWxkX2NsYXNzKSBhbmQgUy5wcmVjKCkgPj0gc2VsZi5fX3ByZWM6Cisr ICAgICAgICBlbGlmIGlzaW5zdGFuY2UoUywgUmVhbEZpZWxkX2NsYXNzKSBhbmQgUy5wcmVjKCkg Pj0gc2VsZi5fcHJlYzoKKyAgICAgICAgICAgICByZXR1cm4gUlJ0b1JSKFMsIHNlbGYpCisgICAg ICAgICBlbGlmIFFRLmhhc19jb2VyY2VfbWFwX2Zyb20oUyk6CisgICAgICAgICAgICAgcmV0dXJu IFFRdG9SUihRUSwgc2VsZikgKiBRUS5faW50ZXJuYWxfY29lcmNlX21hcF9mcm9tKFMpCitAQCAt Nzg2LDcgKzc4Niw3IEBAIGNkZWYgY2xhc3MgUmVhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJj LlJlYWxGaWVsZCk6CisgICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgCisgICAg ICAgICBfb3RoZXIgPSA8UmVhbEZpZWxkX2NsYXNzPm90aGVyICAjIHRvIGFjY2VzcyBDIHN0cnVj dHVyZQorLSAgICAgICAgcmV0dXJuIChzZWxmLl9fcHJlYyA9PSBfb3RoZXIuX19wcmVjIGFuZAor KyAgICAgICAgcmV0dXJuIChzZWxmLl9wcmVjID09IF9vdGhlci5fcHJlYyBhbmQKKyAgICAgICAg ICAgICAgICAgc2VsZi5ybmQgPT0gX290aGVyLnJuZCkgPT0gKG9wID09IFB5X0VRKQorIAorICAg ICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKK0BAIC03OTksNyArNzk5LDcgQEAgY2RlZiBjbGFzcyBS ZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToKKyAgICAgICAgICAgICBz YWdlOiBsb2FkcyhkdW1wcyhSKSkgPT0gUgorICAgICAgICAgICAgIFRydWUKKyAgICAgICAgICIi IgorLSAgICAgICAgcmV0dXJuIF9fY3JlYXRlX19SZWFsRmllbGRfdmVyc2lvbjAsIChzZWxmLl9f cHJlYywgc2VsZi5zY2lfbm90LCBzZWxmLnJuZF9zdHIpCisrICAgICAgICByZXR1cm4gX19jcmVh dGVfX1JlYWxGaWVsZF92ZXJzaW9uMCwgKHNlbGYuX3ByZWMsIHNlbGYuc2NpX25vdCwgc2VsZi5y bmRfc3RyKQorIAorICAgICBkZWYgY29uc3RydWN0aW9uKHNlbGYpOgorICAgICAgICAgciIiIgor QEAgLTk2OCw3ICs5NjgsNyBAQCBjZGVmIGNsYXNzIFJlYWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdz LmFiYy5SZWFsRmllbGQpOgorICAgICAgICAgICAgIHNhZ2U6IFJlYWxGaWVsZCgxMDAscm5kPSdS TkRVJykubmFtZSgpCisgICAgICAgICAgICAgJ1JlYWxGaWVsZDEwMF8yJworICAgICAgICAgIiIi CistICAgICAgICByZXR1cm4gIlJlYWxGaWVsZCVzXyVzIiUoc2VsZi5fX3ByZWMsc2VsZi5ybmQp CisrICAgICAgICByZXR1cm4gIlJlYWxGaWVsZCVzXyVzIiUoc2VsZi5fcHJlYyxzZWxmLnJuZCkK KyAKKyAgICAgZGVmIF9faGFzaF9fKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtOTk1LDcgKzk5 NSw3IEBAIGNkZWYgY2xhc3MgUmVhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxGaWVs ZCk6CisgICAgICAgICAgICAgc2FnZTogUmVhbEZpZWxkKDIwKS5wcmVjaXNpb24oKQorICAgICAg ICAgICAgIDIwCisgICAgICAgICAiIiIKKy0gICAgICAgIHJldHVybiBJbnRlZ2VyKHNlbGYuX19w cmVjKQorKyAgICAgICAgcmV0dXJuIEludGVnZXIoc2VsZi5fcHJlYykKKyAKKyAgICAgcHJlYz1w cmVjaXNpb24gIyBhbiBhbGlhcworIAorQEAgLTEwMzEsNyArMTAzMSw3IEBAIGNkZWYgY2xhc3Mg UmVhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxGaWVsZCk6CisgICAgICAgICAgICAg c2FnZTogUi50b19wcmVjKDMwMCkKKyAgICAgICAgICAgICBSZWFsIEZpZWxkIHdpdGggMzAwIGJp dHMgb2YgcHJlY2lzaW9uIGFuZCByb3VuZGluZyBSTkRaCisgICAgICAgICAiIiIKKy0gICAgICAg IGlmIHByZWMgPT0gc2VsZi5fX3ByZWM6CisrICAgICAgICBpZiBwcmVjID09IHNlbGYuX3ByZWM6 CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg cmV0dXJuIFJlYWxGaWVsZChwcmVjLCBzZWxmLnNjaV9ub3QsIHNlbGYucm5kKQorQEAgLTEwNTIs NyArMTA1Miw3IEBAIGNkZWYgY2xhc3MgUmVhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJl YWxGaWVsZCk6CisgICAgICAgICAgICAgMC44ODYyMjY5MjU0NTI3NTgwMTM2NDkwODM3NDE2NzA1 NzI1OTEzOTg3NzQ3MworICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgeCA9 IHNlbGYuX25ldygpCistICAgICAgICBpZiBzZWxmLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9M RDogc2lnX29uKCkKKysgICAgICAgIGlmIHNlbGYuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6 IHNpZ19vbigpCisgICAgICAgICAjIFRoZSBkb2NzIGZvciBtcGZyX2ZyZWVfY2FjaGUgc2F5ICJG cmVlIHRoZSBjYWNoZSB1c2VkIGJ5CisgICAgICAgICAjIHRoZSBmdW5jdGlvbnMgY29tcHV0aW5n IGNvbnN0YW50cyBpZiBuZWVkZWQgKGN1cnJlbnRseQorICAgICAgICAgIyBtcGZyX2NvbnN0X2xv ZzIsIG1wZnJfY29uc3RfcGkgYW5kIG1wZnJfY29uc3RfZXVsZXIpIiwgc28KK0BAIC0xMDYyLDcg KzEwNjIsNyBAQCBjZGVmIGNsYXNzIFJlYWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFs RmllbGQpOgorICAgICAgICAgIyBmdW5jdGlvbnMsIGJ1dCB0aGlzIGZyZWUgaXMgbmVlZGVkIGZv ciB0aGVtIHRvbyEKKyAgICAgICAgIG1wZnJfZnJlZV9jYWNoZSgpCisgICAgICAgICBtcGZyX2Nv bnN0X3BpKHgudmFsdWUsIHNlbGYucm5kKQorLSAgICAgICAgaWYgc2VsZi5fX3ByZWMgPiBTSUdf UFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorKyAgICAgICAgaWYgc2VsZi5fcHJlYyA+IFNJR19Q UkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYg ZXVsZXJfY29uc3RhbnQoc2VsZik6CitAQCAtMTA5MSwxMCArMTA5MSwxMCBAQCBjZGVmIGNsYXNz IFJlYWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsRmllbGQpOgorICAgICAgICAgICAg IDAuOTE1OTY1NTk0MTc3MjE5MDE1MDU0NjAzNTE0OTMKKyAgICAgICAgICIiIgorICAgICAgICAg Y2RlZiBSZWFsTnVtYmVyIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAgaWYgc2VsZi5fX3ByZWMg PiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisrICAgICAgICBpZiBzZWxmLl9wcmVjID4g U0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorICAgICAgICAgbXBmcl9mcmVlX2NhY2hlKCkK KyAgICAgICAgIG1wZnJfY29uc3RfY2F0YWxhbih4LnZhbHVlLCBzZWxmLnJuZCkKKy0gICAgICAg IGlmIHNlbGYuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKysgICAgICAg IGlmIHNlbGYuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIHgKKyAKKyAgICAgZGVmIGxvZzIoc2VsZik6CitAQCAtMTExMSwxMCArMTExMSwxMCBA QCBjZGVmIGNsYXNzIFJlYWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsRmllbGQpOgor ICAgICAgICAgICAgIDAuNjkzMTQ3MTgwNTU5OTQ1MzA5NDE3MjMyMTIxNDYKKyAgICAgICAgICIi IgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAgaWYg c2VsZi5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisrICAgICAgICBpZiBz ZWxmLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorICAgICAgICAgbXBmcl9m cmVlX2NhY2hlKCkKKyAgICAgICAgIG1wZnJfY29uc3RfbG9nMih4LnZhbHVlLCBzZWxmLnJuZCkK Ky0gICAgICAgIGlmIHNlbGYuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkK KysgICAgICAgIGlmIHNlbGYuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQor ICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgZGVmIHJhbmRvbV9lbGVtZW50KHNlbGYsIG1pbj0t MSwgbWF4PTEsIGRpc3RyaWJ1dGlvbj1Ob25lKToKK0BAIC0xMTgxLDkgKzExODEsOSBAQCBjZGVm IGNsYXNzIFJlYWxGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5SZWFsRmllbGQpOgorICAgICAg ICAgaWYgbiA8IDA6CisgICAgICAgICAgICAgcmFpc2UgQXJpdGhtZXRpY0Vycm9yKCJuIG11c3Qg YmUgbm9ubmVnYXRpdmUiKQorICAgICAgICAgeCA9IHNlbGYuX25ldygpCistICAgICAgICBpZiBz ZWxmLl9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRCBhbmQgbiA8IFNJR19QUkVDX1RIUkVTSE9M RDogc2lnX29uKCkKKysgICAgICAgIGlmIHNlbGYuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQg YW5kIG4gPCBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisgICAgICAgICBtcGZyX2ZhY191 aSh4LnZhbHVlLCBuLCBzZWxmLnJuZCkKKy0gICAgICAgIGlmIHNlbGYuX19wcmVjID4gU0lHX1BS RUNfVEhSRVNIT0xEIGFuZCBuIDwgU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKysgICAg ICAgIGlmIHNlbGYuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQgYW5kIG4gPCBTSUdfUFJFQ19U SFJFU0hPTEQ6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgZGVmIHJvdW5k aW5nX21vZGUoc2VsZik6CitAQCAtMTM0Niw3ICsxMzQ2LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVt YmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIE5h TgorICAgICAgICAgIiIiCisgICAgICAgICBjZGVmIFJlYWxGaWVsZF9jbGFzcyBwID0gPFJlYWxG aWVsZF9jbGFzcz8+cGFyZW50CistICAgICAgICBtcGZyX2luaXQyKHNlbGYudmFsdWUsIHAuX19w cmVjKQorKyAgICAgICAgbXBmcl9pbml0MihzZWxmLnZhbHVlLCBwLl9wcmVjKQorICAgICAgICAg c2VsZi5fcGFyZW50ID0gcAorIAorICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCB4PTAs IGludCBiYXNlPTEwKToKK0BAIC0xNDQ2LDcgKzE0NDYsNyBAQCBjZGVmIGNsYXNzIFJlYWxOdW1i ZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgc2Fn ZTogbnVtcHkuYXJyYXkoWzEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXSku ZHR5cGUgICAgICAgICAgICMgb3B0aW9uYWwgLSBudW1weQorICAgICAgICAgICAgIGR0eXBlKCdP JykKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFy ZW50KS5fX3ByZWMgPD0gNTM6CisrICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9w YXJlbnQpLl9wcmVjIDw9IDUzOgorICAgICAgICAgICAgIHJldHVybiBudW1weV9kb3VibGVfaW50 ZXJmYWNlCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBudW1weV9vYmplY3Rf aW50ZXJmYWNlCitAQCAtMjA3NSw3ICsyMDc1LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNh Z2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgICMgVGhpcyBh dm9pZHMgdGhlIGNvbmZ1c2lvbiBhIGxvdCBvZiBwZW9wbGUgaGF2ZSB3aXRoIHRoZSBsYXN0Cisg ICAgICAgICAgICAgIyAxLTIgYmluYXJ5IGRpZ2l0cyBiZWluZyB3cm9uZyBkdWUgdG8gcm91bmRp bmcgY29taW5nIGZyb20KKyAgICAgICAgICAgICAjIHJlcHJlc2VudGluZyBudW1iZXJzIGluIGJp bmFyeS4KKy0gICAgICAgICAgICBkaWdpdHMgPSA8c2l6ZV90PigoKDxSZWFsRmllbGRfY2xhc3M+ c2VsZi5fcGFyZW50KS5fX3ByZWMgLSAxKSAqIE1fTE4yX0xOMTApCisrICAgICAgICAgICAgZGln aXRzID0gPHNpemVfdD4oKCg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgLSAx KSAqIE1fTE4yX0xOMTApCisgICAgICAgICAgICAgaWYgZGlnaXRzIDwgMjoKKyAgICAgICAgICAg ICAgICAgZGlnaXRzID0gMgorIAorQEAgLTIzMDMsNyArMjMwMyw3IEBAIGNkZWYgY2xhc3MgUmVh bE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgIGlm IHNnbiA9PSAwOgorICAgICAgICAgICAgIHJldHVybiB6CisgCistICAgICAgICBjZGVmIG1wZnJf cHJlY190IHByZWMgPSAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYworKyAg ICAgICAgY2RlZiBtcGZyX3ByZWNfdCBwcmVjID0gKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFy ZW50KS5fcHJlYworIAorICAgICAgICAgaWYgbXBmcl9pbmZfcChzZWxmLnZhbHVlKToKKyAgICAg ICAgICAgICBtcHpfc2V0X3VpKHoudmFsdWUsIEVYUF9NQVgrMS1FWFBfTUlOKQorQEAgLTI3NTcs NyArMjc1Nyw3IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50 LlJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICBzYWdlOiBSZWFsRmllbGQoMTAxKSgtMSkucHJl Y2lzaW9uKCkKKyAgICAgICAgICAgICAxMDEKKyAgICAgICAgICIiIgorLSAgICAgICAgcmV0dXJu IEludGVnZXIoKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMpCisrICAgICAg ICByZXR1cm4gSW50ZWdlcigoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjKQor IAorICAgICBwcmVjID0gcHJlY2lzaW9uICMgYWxpYXMKKyAKK0BAIC0zMzY0LDcgKzMzNjQsNyBA QCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVu dCk6CisgICAgICAgICBjZGVmIHVuc2lnbmVkIGxvbmcgd29yZHNpemUgPSBzaXplb2YobG9uZykq OAorIAorICAgICAgICAgY2RlZiBtcGZyX3ByZWNfdCBwcmVjCistICAgICAgICBwcmVjID0gKDxS ZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMKKysgICAgICAgIHByZWMgPSAoPFJl YWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjCisgCisgICAgICAgICAjIFdlIHJvdW5k IHVwIHRoZSBwcmVjaXNpb24gdG8gdGhlIG5lYXJlc3QgbXVsdGlwbGUgb2Ygd29yZHNpemUuCisg ICAgICAgICBjZGVmIGludCByb3VuZGVkX3ByZWMKK0BAIC0zNjk5LDcgKzM2OTksNyBAQCBjZGVm IGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6Cisg ICAgICAgICBmcm9tIC5yZWFsX21wZmkgaW1wb3J0IFJlYWxJbnRlcnZhbEZpZWxkCisgCisgICAg ICAgICBjZGVmIG1wZnJfcm5kX3Qgcm5kID0gKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50 KS5ybmQKKy0gICAgICAgIGNkZWYgbXBmcl9wcmVjX3QgcHJlYyA9ICg8UmVhbEZpZWxkX2NsYXNz PnNlbGYuX3BhcmVudCkuX19wcmVjCisrICAgICAgICBjZGVmIG1wZnJfcHJlY190IHByZWMgPSAo PFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjCisgCisgICAgICAgICBjZGVmIFJl YWxOdW1iZXIgbG93LCBoaWdoCisgICAgICAgICBjZGVmIGludCBvZGQKK0BAIC00MjQ5LDkgKzQy NDksOSBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5n RWxlbWVudCk6CisgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgeAorICAgICAgICAgaWYgbXBmcl9j bXBfdWkoc2VsZi52YWx1ZSwgMCkgPj0gMDoKKyAgICAgICAgICAgICB4ID0gc2VsZi5fbmV3KCkK Ky0gICAgICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+ IDEwKlNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKysgICAgICAgICAgICBpZiAoPFJlYWxG aWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjID4gMTAqU0lHX1BSRUNfVEhSRVNIT0xEOiBz aWdfb24oKQorICAgICAgICAgICAgIG1wZnJfc3FydCh4LnZhbHVlLCBzZWxmLnZhbHVlLCAoPFJl YWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLnJuZCkKKy0gICAgICAgICAgICBpZiAoPFJlYWxG aWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IDEwKlNJR19QUkVDX1RIUkVTSE9MRDog c2lnX29mZigpCisrICAgICAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50 KS5fcHJlYyA+IDEwKlNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisgICAgICAgICAgICAg aWYgYWxsOgorICAgICAgICAgICAgICAgICBpZiB4LmlzX3plcm8oKToKKyAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBbeF0KK0BAIC00Mjk1LDEyICs0Mjk1LDEyIEBAIGNkZWYgY2xhc3MgUmVh bE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgICAg ICAtMS40MjEwODU0NzE1MjAyMGUtMTQKKyAgICAgICAgICIiIgorICAgICAgICAgY2RlZiBSZWFs TnVtYmVyIHggPSBzZWxmLl9uZXcoKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2Vs Zi5fcGFyZW50KS5fX3ByZWMgPiAxMCpTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisrICAg ICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjID4gMTAqU0lHX1BS RUNfVEhSRVNIT0xEOiBzaWdfb24oKQorICAgICAgICAgbXBmcl9jYnJ0KHgudmFsdWUsIHNlbGYu dmFsdWUsICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkucm5kKQorLSAgICAgICAgaWYg KDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiAxMCpTSUdfUFJFQ19USFJF U0hPTEQ6IHNpZ19vZmYoKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFy ZW50KS5fcHJlYyA+IDEwKlNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisgICAgICAgICBy ZXR1cm4geAorIAorLSAgICBkZWYgX19wb3coc2VsZiwgUmVhbE51bWJlciBleHBvbmVudCk6Cisr ICAgIGRlZiBfcG93KHNlbGYsIFJlYWxOdW1iZXIgZXhwb25lbnQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBDb21wdXRlIGBgc2VsZmBgIHJhaXNlZCB0byB0aGUgcG93ZXIgb2YgZXhwb25lbnQs IHJvdW5kZWQgaW4gdGhlCisgICAgICAgICBkaXJlY3Rpb24gc3BlY2lmaWVkIGJ5IHRoZSBwYXJl bnQgb2YgYGBzZWxmYGAuCitAQCAtNDMwOSw3ICs0MzA5LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVt YmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorIAorICAgICAgICAgICAg IHNhZ2U6IFIgPSBSZWFsRmllbGQoMzApCisgICAgICAgICAgICAgc2FnZTogYSA9IFIoJzEuMjM0 NTYnKQorLSAgICAgICAgICAgIHNhZ2U6IGEuX19wb3coMjAuMCkKKysgICAgICAgICAgICBzYWdl OiBhLl9wb3coMjAuMCkKKyAgICAgICAgICAgICA2Ny42NDYyOTcKKyAgICAgICAgICIiIgorICAg ICAgICAgY2RlZiBSZWFsTnVtYmVyIHgKK0BAIC00NDM1LDkgKzQ0MzUsOSBAQCBjZGVmIGNsYXNz IFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAg ICAgICAgICAgIHJldHVybiBzZWxmLl9jb21wbGV4X251bWJlcl8oKS5sb2coYmFzZSkKKyAgICAg ICAgIGlmIGJhc2UgaXMgTm9uZSBvciBiYXNlID09ICdlJzoKKyAgICAgICAgICAgICB4ID0gc2Vs Zi5fbmV3KCkKKy0gICAgICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQp Ll9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKysgICAgICAgICAgICBpZiAo PFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xE OiBzaWdfb24oKQorICAgICAgICAgICAgIG1wZnJfbG9nKHgudmFsdWUsIHNlbGYudmFsdWUsICg8 UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkucm5kKQorLSAgICAgICAgICAgIGlmICg8UmVh bEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBz aWdfb2ZmKCkKKysgICAgICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQp Ll9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKyAgICAgICAgICAgICByZXR1 cm4geAorICAgICAgICAgZWxpZiBiYXNlID09IDEwOgorICAgICAgICAgICAgIHJldHVybiBzZWxm LmxvZzEwKCkKK0BAIC00NDc2LDkgKzQ0NzYsOSBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2Fn ZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICBpZiBzZWxmIDwgMDoK KyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29tcGxleF9udW1iZXJfKCkubG9nKDIpCisgICAg ICAgICB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYu X3BhcmVudCkuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAg aWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVT SE9MRDogc2lnX29uKCkKKyAgICAgICAgIG1wZnJfbG9nMih4LnZhbHVlLCBzZWxmLnZhbHVlLCAo PFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLnJuZCkKKy0gICAgICAgIGlmICg8UmVhbEZp ZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdf b2ZmKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMg PiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAg ICAgZGVmIGxvZzEwKHNlbGYpOgorQEAgLTQ1MTMsOSArNDUxMyw5IEBAIGNkZWYgY2xhc3MgUmVh bE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgIGlm IHNlbGYgPCAwOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9jb21wbGV4X251bWJlcl8oKS5s b2coMTApCisgICAgICAgICB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxk X2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24o KQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJ R19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIG1wZnJfbG9nMTAoeC52YWx1ZSwg c2VsZi52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5ybmQpCistICAgICAg ICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVDX1RI UkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9w YXJlbnQpLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJl dHVybiB4CisgCisgICAgIGRlZiBsb2cxcChzZWxmKToKK0BAIC00NTYyLDkgKzQ1NjIsOSBAQCBj ZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6 CisgICAgICAgICBpZiBzZWxmIDwgLTE6CisgICAgICAgICAgICAgcmV0dXJuIChzZWxmKzEuMCku X2NvbXBsZXhfbnVtYmVyXygpLmxvZygpCisgICAgICAgICB4ID0gc2VsZi5fbmV3KCkKKy0gICAg ICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gU0lHX1BSRUNf VEhSRVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5f cGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIG1w ZnJfbG9nMXAoeC52YWx1ZSwgc2VsZi52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFy ZW50KS5ybmQpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9f cHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICBpZiAoPFJlYWxG aWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdf b2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiBleHAoc2VsZik6CitAQCAtNDYy MCw5ICs0NjIwLDkgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1l bnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIDEuODkxMTcyNDgyNTMwMjFlLTEwCisgICAg ICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB4ID0gc2VsZi5fbmV3KCkKKy0gICAg ICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gU0lHX1BSRUNf VEhSRVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5f cGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIG1w ZnJfZXhwMih4LnZhbHVlLCBzZWxmLnZhbHVlLCAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJl bnQpLnJuZCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19w cmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkKKysgICAgICAgIGlmICg8UmVhbEZp ZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19v ZmYoKQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgZGVmIGV4cDEwKHNlbGYpOgorQEAgLTQ2 NDgsOSArNDY0OCw5IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVt ZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICA1LjAxMTg3MjMzNjI3Mjc2ZS0zMworICAg ICAgICAgIiIiCisgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgeCA9IHNlbGYuX25ldygpCistICAg ICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IFNJR19QUkVD X1RIUkVTSE9MRDogc2lnX29uKCkKKysgICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYu X3BhcmVudCkuX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisgICAgICAgICBt cGZyX2V4cDEwKHgudmFsdWUsIHNlbGYudmFsdWUsICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3Bh cmVudCkucm5kKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5f X3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vZmYoKQorKyAgICAgICAgaWYgKDxSZWFs RmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2ln X29mZigpCisgICAgICAgICByZXR1cm4geAorIAorICAgICBkZWYgZXhwbTEoc2VsZik6CitAQCAt NDY3Miw5ICs0NjcyLDkgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIDEuMDAwMDAwMDAwMDAwMDBlLTE2Cisg ICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB4ID0gc2VsZi5fbmV3KCkKKy0g ICAgICAgIGlmICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gU0lHX1BS RUNfVEhSRVNIT0xEOiBzaWdfb24oKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2Vs Zi5fcGFyZW50KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAg IG1wZnJfZXhwbTEoeC52YWx1ZSwgc2VsZi52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5f cGFyZW50KS5ybmQpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQp Ll9fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICBpZiAoPFJl YWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBz aWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiBlaW50KHNlbGYpOgorQEAg LTQ2OTQsOSArNDY5NCw5IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5l bGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAtMC4yMTkzODM5MzQzOTU1MjAKKyAg ICAgICAgICIiIgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHggPSBzZWxmLl9uZXcoKQorLSAg ICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3ByZWMgPiBTSUdfUFJF Q19USFJFU0hPTEQ6IHNpZ19vbigpCisrICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxm Ll9wYXJlbnQpLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb24oKQorICAgICAgICAg bXBmcl9laW50KHgudmFsdWUsIHNlbGYudmFsdWUsICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3Bh cmVudCkucm5kKQorLSAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5f X3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6IHNpZ19vbigpCisrICAgICAgICBpZiAoPFJlYWxG aWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdf b24oKQorICAgICAgICAgcmV0dXJuIHgKKyAKKyAgICAgZGVmIGNvcyhzZWxmKToKK0BAIC01MTI1 LDkgKzUxMjUsOSBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVu dC5SaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgX290aGVyID0gc2VsZi5fcGFyZW50KG90aGVy KQorIAorICAgICAgICAgeCA9IHNlbGYuX25ldygpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9j bGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+IDEwMDAwOiBzaWdfb24oKQorKyAgICAgICAgaWYg KDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IDEwMDAwOiBzaWdfb24oKQor ICAgICAgICAgbXBmcl9hZ20oeC52YWx1ZSwgc2VsZi52YWx1ZSwgX290aGVyLnZhbHVlLCAoPFJl YWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLnJuZCkKKy0gICAgICAgIGlmICg8UmVhbEZpZWxk X2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gMTAwMDA6IHNpZ19vZmYoKQorKyAgICAgICAg aWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fcHJlYyA+IDEwMDAwOiBzaWdfb2Zm KCkKKyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiBlcmYoc2VsZik6CitAQCAtNTI4MCw5 ICs1MjgwLDkgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQu UmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIDAuODg2MjI2OTI1NDUyNzU4CisgICAgICAgICAi IiIKKyAgICAgICAgIGNkZWYgUmVhbE51bWJlciB4ID0gc2VsZi5fbmV3KCkKKy0gICAgICAgIGlm ICg8UmVhbEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19wcmVjID4gU0lHX1BSRUNfVEhSRVNI T0xEOiBzaWdfb24oKQorKyAgICAgICAgaWYgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50 KS5fcHJlYyA+IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29uKCkKKyAgICAgICAgIG1wZnJfZ2Ft bWEoeC52YWx1ZSwgc2VsZi52YWx1ZSwgKDxSZWFsRmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5y bmQpCistICAgICAgICBpZiAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLl9fcHJlYyA+ IFNJR19QUkVDX1RIUkVTSE9MRDogc2lnX29mZigpCisrICAgICAgICBpZiAoPFJlYWxGaWVsZF9j bGFzcz5zZWxmLl9wYXJlbnQpLl9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOiBzaWdfb2ZmKCkK KyAgICAgICAgIHJldHVybiB4CisgCisgICAgIGRlZiBsb2dfZ2FtbWEoc2VsZik6CitAQCAtNTMw NiwxMCArNTMwNiwxMCBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxl bWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgeCA9IHNlbGYuX25l dygpCisgICAgICAgICBwYXJlbnQgPSAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpCisg ICAgICAgICBpZiBub3QgbXBmcl9zZ24oc2VsZi52YWx1ZSkgPCAwOgorLSAgICAgICAgICAgIGlm IHBhcmVudC5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6CisrICAgICAgICAgICAgaWYgcGFy ZW50Ll9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOgorICAgICAgICAgICAgICAgICBzaWdfb24o KQorICAgICAgICAgICAgIG1wZnJfbG5nYW1tYSh4LnZhbHVlLCBzZWxmLnZhbHVlLCBwYXJlbnQu cm5kKQorLSAgICAgICAgICAgIGlmIHBhcmVudC5fX3ByZWMgPiBTSUdfUFJFQ19USFJFU0hPTEQ6 CisrICAgICAgICAgICAgaWYgcGFyZW50Ll9wcmVjID4gU0lHX1BSRUNfVEhSRVNIT0xEOgorICAg ICAgICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICByZXR1cm4geAorICAgICAgICAg ZnJvbSBzYWdlLmxpYnMubXBtYXRoLnV0aWxzIGltcG9ydCBjYWxsCitAQCAtNTUzNCw3ICs1NTM0 LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0Vs ZW1lbnQpOgorIAorICAgICAgICAgY2RlZiBSZWFsRmllbGRfY2xhc3MgZmxkID0gPFJlYWxGaWVs ZF9jbGFzcz5zZWxmLl9wYXJlbnQKKyAKKy0gICAgICAgIGlmIGFsZ29yaXRobSA9PSAwIGFuZCBu IDw9IDEwMDAwIC8gZmxkLl9fcHJlYzoKKysgICAgICAgIGlmIGFsZ29yaXRobSA9PSAwIGFuZCBu IDw9IDEwMDAwIC8gZmxkLl9wcmVjOgorICAgICAgICAgICAgICMgVGhpcyBpcyBhIHJvdWdoIGVz dGltYXRlIGZvciB3aGVuIGl0IGlzIHByb2JhYmx5CisgICAgICAgICAgICAgIyBmYXN0ZXIgdG8g Y2FsbCBtcGZyIGRpcmVjdGx5LiAgKFRoaXMgaXMgYSBwcmV0dHkKKyAgICAgICAgICAgICAjIGdv b2QgZXN0aW1hdGUgb24gb25lIHBhcnRpY3VsYXIgbWFjaGluZSwgYQorQEAgLTU2MzksNyArNTYz OSw3IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdF bGVtZW50KToKKyAKKyAgICAgICAgIGZyb20gLnJlYWxfbXBmaSBpbXBvcnQgUmVhbEludGVydmFs RmllbGQKKyAKKy0gICAgICAgIGNkZWYgbXBmcl9wcmVjX3QgcHJlYyA9IGZsZC5fX3ByZWMgKyAx MAorKyAgICAgICAgY2RlZiBtcGZyX3ByZWNfdCBwcmVjID0gZmxkLl9wcmVjICsgMTAKKyAKKyAg ICAgICAgIGNkZWYgUmVhbE51bWJlciBsb3dlcgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHVw cGVyCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmluZy5weGQgYi9zcmMvc2FnZS9yaW5n cy9yaW5nLnB4ZAoraW5kZXggOTM4NGYzOWYyNTguLjEzMjI2OTc2ODhmIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvcmluZ3MvcmluZy5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3JpbmcucHhkCitA QCAtNyw3ICs3LDcgQEAgY2RlZiBjbGFzcyBSaW5nKFBhcmVudFdpdGhHZW5zKToKKyAgICAgY2Rl ZiBwdWJsaWMgb2JqZWN0IF9vbmVfZWxlbWVudAorICAgICBjZGVmIHB1YmxpYyBvYmplY3QgX3pl cm9faWRlYWwKKyAgICAgY2RlZiBwdWJsaWMgb2JqZWN0IF91bml0X2lkZWFsCistICAgIGNkZWYg cHVibGljIG9iamVjdCBfX2lkZWFsX21vbm9pZAorKyAgICBjZGVmIHB1YmxpYyBvYmplY3QgX2lk ZWFsX21vbm9pZAorIAorIAorIGNkZWYgY2xhc3MgQ29tbXV0YXRpdmVSaW5nKFJpbmcpOgorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3JpbmcucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcmluZy5w eXgKK2luZGV4IDRjYmEyYzliYTdmLi44YWNmNDM4MzI3MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL3JpbmcucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9yaW5nLnB5eAorQEAgLTMyNSwx MiArMzI1LDEyIEBAIGNkZWYgY2xhc3MgUmluZyhQYXJlbnRXaXRoR2Vucyk6CisgICAgICAgICAg ICAgIGJ5IHRoZSBpZGVhbCAoeCp5ICsgeSp6LCB4KnggKyB4KnkgLSB5KnggLSB5KnkpCisgCisg ICAgICAgICAiIiIKKy0gICAgICAgIGlmIHNlbGYuX19pZGVhbF9tb25vaWQgaXMgbm90IE5vbmU6 CistICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19pZGVhbF9tb25vaWQKKysgICAgICAgIGlmIHNl bGYuX2lkZWFsX21vbm9pZCBpcyBub3QgTm9uZToKKysgICAgICAgICAgICByZXR1cm4gc2VsZi5f aWRlYWxfbW9ub2lkCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIGZyb20gc2FnZS5yaW5n cy5ub25jb21tdXRhdGl2ZV9pZGVhbHMgaW1wb3J0IElkZWFsTW9ub2lkX25jCisgICAgICAgICAg ICAgTSA9IElkZWFsTW9ub2lkX25jKHNlbGYpCistICAgICAgICAgICAgc2VsZi5fX2lkZWFsX21v bm9pZCA9IE0KKysgICAgICAgICAgICBzZWxmLl9pZGVhbF9tb25vaWQgPSBNCisgICAgICAgICAg ICAgcmV0dXJuIE0KKyAKKyAgICAgZGVmIGlkZWFsKHNlbGYsICphcmdzLCAqKmt3ZHMpOgorQEAg LTExMDYsMTIgKzExMDYsMTIgQEAgY2RlZiBjbGFzcyBSaW5nKFBhcmVudFdpdGhHZW5zKToKKyAg ICAgICAgICAgICBzYWdlOiBSLjx4Pj1RUVtdOyBSLmlkZWFsX21vbm9pZCgpCisgICAgICAgICAg ICAgTW9ub2lkIG9mIGlkZWFscyBvZiBVbml2YXJpYXRlIFBvbHlub21pYWwgUmluZyBpbiB4IG92 ZXIgUmF0aW9uYWwgRmllbGQKKyAgICAgICAgICIiIgorLSAgICAgICAgaWYgc2VsZi5fX2lkZWFs X21vbm9pZCBpcyBub3QgTm9uZToKKy0gICAgICAgICAgICByZXR1cm4gc2VsZi5fX2lkZWFsX21v bm9pZAorKyAgICAgICAgaWYgc2VsZi5faWRlYWxfbW9ub2lkIGlzIG5vdCBOb25lOgorKyAgICAg ICAgICAgIHJldHVybiBzZWxmLl9pZGVhbF9tb25vaWQKKyAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgZnJvbSBzYWdlLnJpbmdzLmlkZWFsX21vbm9pZCBpbXBvcnQgSWRlYWxNb25vaWQKKyAg ICAgICAgICAgICBNID0gSWRlYWxNb25vaWQoc2VsZikKKy0gICAgICAgICAgICBzZWxmLl9faWRl YWxfbW9ub2lkID0gTQorKyAgICAgICAgICAgIHNlbGYuX2lkZWFsX21vbm9pZCA9IE0KKyAgICAg ICAgICAgICByZXR1cm4gTQorIAorICAgICBAY2FjaGVkX21ldGhvZAorQEAgLTEzNDUsMTIgKzEz NDUsMTIgQEAgY2RlZiBjbGFzcyBDb21tdXRhdGl2ZVJpbmcoUmluZyk6CisgICAgICAgICAgICAg c2FnZTogUi48eD49UVFbXTsgUi5pZGVhbF9tb25vaWQoKQorICAgICAgICAgICAgIE1vbm9pZCBv ZiBpZGVhbHMgb2YgVW5pdmFyaWF0ZSBQb2x5bm9taWFsIFJpbmcgaW4geCBvdmVyIFJhdGlvbmFs IEZpZWxkCisgICAgICAgICAiIiIKKy0gICAgICAgIGlmIHNlbGYuX19pZGVhbF9tb25vaWQgaXMg bm90IE5vbmU6CistICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19pZGVhbF9tb25vaWQKKysgICAg ICAgIGlmIHNlbGYuX2lkZWFsX21vbm9pZCBpcyBub3QgTm9uZToKKysgICAgICAgICAgICByZXR1 cm4gc2VsZi5faWRlYWxfbW9ub2lkCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIGZyb20g c2FnZS5yaW5ncy5pZGVhbF9tb25vaWQgaW1wb3J0IElkZWFsTW9ub2lkCisgICAgICAgICAgICAg TSA9IElkZWFsTW9ub2lkKHNlbGYpCistICAgICAgICAgICAgc2VsZi5fX2lkZWFsX21vbm9pZCA9 IE0KKysgICAgICAgICAgICBzZWxmLl9pZGVhbF9tb25vaWQgPSBNCisgICAgICAgICAgICAgcmV0 dXJuIE0KKyAKKyAgICAgZGVmIGV4dGVuc2lvbihzZWxmLCBwb2x5LCBuYW1lPU5vbmUsIG5hbWVz PU5vbmUsICoqa3dkcyk6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc2NoZW1lcy9lbGxpcHRpY19j dXJ2ZXMvbW9kX3N5bV9udW0ucHl4IGIvc3JjL3NhZ2Uvc2NoZW1lcy9lbGxpcHRpY19jdXJ2ZXMv bW9kX3N5bV9udW0ucHl4CitpbmRleCA2NTc0MmYyOGQ3Mi4uMjk2YTZiNWQwNzUgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9zY2hlbWVzL2VsbGlwdGljX2N1cnZlcy9tb2Rfc3ltX251bS5weXgKKysr KyBiL3NyYy9zYWdlL3NjaGVtZXMvZWxsaXB0aWNfY3VydmVzL21vZF9zeW1fbnVtLnB5eAorQEAg LTczMCw3ICs3MzAsNyBAQCBjZGVmIGNsYXNzIE1vZHVsYXJTeW1ib2xOdW1lcmljYWw6CisgICAg ICAgICBkb3VibGUgX2Vwc19wbHVzLCBfZXBzX21pbnVzLCBfZXBzX3VuaXRhcnlfcGx1cywgX2Vw c191bml0YXJ5X21pbnVzCisgICAgICAgICBwdWJsaWMgUmVhbE51bWJlciBfb20xLCBfb20yCisg ICAgICAgICBvYmplY3QgX0UsIF9lcHNRcywgX010LCBfRXBhcmkKKy0gICAgICAgIHB1YmxpYyBk aWN0IF9fY2FjaGVkX21ldGhvZHMKKysgICAgICAgIHB1YmxpYyBkaWN0IF9jYWNoZWRfbWV0aG9k cworICAgICAgICAgUmF0aW9uYWwgX3R3aXN0X3EKKyAgICAgICAgIEludGVnZXIgX0QKKyAgICAg ICAgIGludCBfZ2xvYmFsX3NpZ24KK0BAIC03ODUsNyArNzg1LDcgQEAgY2RlZiBjbGFzcyBNb2R1 bGFyU3ltYm9sTnVtZXJpY2FsOgorICAgICAgICAgc2VsZi5fc2V0X2Vwc1FzKCkKKyAgICAgICAg IHNlbGYuX2luaXRpYWxpc2VfYW5fY29lZmZpY2llbnRzKCkKKyAgICAgICAgIHNlbGYuX3NldF9k ZW5fYm91bmRzKCkKKy0gICAgICAgIHNlbGYuX19jYWNoZWRfbWV0aG9kcyA9IHt9CisrICAgICAg ICBzZWxmLl9jYWNoZWRfbWV0aG9kcyA9IHt9CisgCisgICAgICAgICAjIHNlbGYubmNfc3VtcyA9 IEludGVnZXIoMCkKKyAgICAgICAgICMgc2VsZi5uY19kaXJlY3QgPSBJbnRlZ2VyKDApCitAQCAt MTM1Nyw3ICsxMzU3LDcgQEAgY2RlZiBjbGFzcyBNb2R1bGFyU3ltYm9sTnVtZXJpY2FsOgorICAg ICAgICAgICAgIHNhZ2U6IE0oMCkKKyAgICAgICAgICAgICAxLzUKKyAgICAgICAgICIiIgorLSAg ICAgICAgY2FkaSA9IHNlbGYuX19jYWNoZWRfbWV0aG9kcworKyAgICAgICAgY2FkaSA9IHNlbGYu X2NhY2hlZF9tZXRob2RzCisgICAgICAgICBmb3IgbWUgaW4gY2FkaToKKyAgICAgICAgICAgICBj YWRpW21lXS5jbGVhcl9jYWNoZSgpCisgCitAQCAtMTgzMyw3ICsxODMzLDcgQEAgY2RlZiBjbGFz cyBNb2R1bGFyU3ltYm9sTnVtZXJpY2FsOgorIAorICAgICAgICAgIyBpZiBjYWxsZWQgd2l0aCBh IHByZXZpb3VzIChtLHosZXBzKSBidXQgYSBsYXJnZXIgZXBzLAorICAgICAgICAgIyByZXR1cm4g dGhlIGNhY2hlZCB2YWx1ZQorLSAgICAgICAgY2FjID0gc2VsZi5fX2NhY2hlZF9tZXRob2RzWydf a2FwcGEnXS5jYWNoZQorKyAgICAgICAgY2FjID0gc2VsZi5fY2FjaGVkX21ldGhvZHNbJ19rYXBw YSddLmNhY2hlCisgICAgICAgICBmb3Iga2UgaW4gY2FjOgorICAgICAgICAgICAgIG1tLCB6eiwg ZWVwcyA9IGtlWzBdCisgICAgICAgICAgICAgaWYgbW0gPT0gbSBhbmQgenogPT0gejoKK0BAIC0y NzQ2LDE2ICsyNzQ2LDE2IEBAIGNkZWYgY2xhc3MgTW9kdWxhclN5bWJvbE51bWVyaWNhbDoKKyAg ICAgICAgICAgICBzYWdlOiBtcyA9IE1vZHVsYXJTeW1ib2xOdW1lcmljYWwoRSkKKyAgICAgICAg ICAgICBzYWdlOiBtcy5tYW5pbl9zeW1ib2woNCwxNykKKyAgICAgICAgICAgICAxCistICAgICAg ICAgICAgc2FnZTogbXMuX19jYWNoZWRfbWV0aG9kc1siX21hbmluX3N5bWJvbF93aXRoX2NhY2hl Il0uY2FjaGUgIyByYW5kb20KKysgICAgICAgICAgICBzYWdlOiBtcy5fY2FjaGVkX21ldGhvZHNb Il9tYW5pbl9zeW1ib2xfd2l0aF9jYWNoZSJdLmNhY2hlICMgcmFuZG9tCisgICAgICAgICAgICAg eygoMSwgNSwgMSksICgpKTogMSwKKyAgICAgICAgICAgICAoKDEsIDE1LCAxKSwgKCkpOiAtMSwK KyAgICAgICAgICAgICAoKDEsIDIyLCAxKSwgKCkpOiAtMSwKKyAgICAgICAgICAgICAoKDEsIDMy LCAxKSwgKCkpOiAxfQorLSAgICAgICAgICAgIHNhZ2U6IG1zLl9fY2FjaGVkX21ldGhvZHNbIl9t YW5pbl9zeW1ib2xfd2l0aF9jYWNoZSJdLmNhY2hlWygxLDE1LDEpLCgpXQorKyAgICAgICAgICAg IHNhZ2U6IG1zLl9jYWNoZWRfbWV0aG9kc1siX21hbmluX3N5bWJvbF93aXRoX2NhY2hlIl0uY2Fj aGVbKDEsMTUsMSksKCldCisgICAgICAgICAgICAgLTEKKyAgICAgICAgICAgICBzYWdlOiBtcy5t YW5pbl9zeW1ib2woNCsxNywtNCkKKyAgICAgICAgICAgICAwCistICAgICAgICAgICAgc2FnZTog bXMuX19jYWNoZWRfbWV0aG9kc1siX21hbmluX3N5bWJvbF93aXRoX2NhY2hlIl0uY2FjaGUgIyBy YW5kb20KKysgICAgICAgICAgICBzYWdlOiBtcy5fY2FjaGVkX21ldGhvZHNbIl9tYW5pbl9zeW1i b2xfd2l0aF9jYWNoZSJdLmNhY2hlICMgcmFuZG9tCisgICAgICAgICAgICAgeygoMSwgNCwgMSks ICgpKTogMCwKKyAgICAgICAgICAgICAoKDEsIDUsIDEpLCAoKSk6IDEsCisgICAgICAgICAgICAg KCgxLCA4LCAxKSwgKCkpOiAxLAorQEAgLTI3NjgsNyArMjc2OCw3IEBAIGNkZWYgY2xhc3MgTW9k dWxhclN5bWJvbE51bWVyaWNhbDoKKyAgICAgICAgICAgICAoKDEsIDI5LCAxKSwgKCkpOiAxLAor ICAgICAgICAgICAgICgoMSwgMzIsIDEpLCAoKSk6IDEsCisgICAgICAgICAgICAgKCgxLCAzMywg MSksICgpKTogMH0KKy0gICAgICAgICAgICBzYWdlOiBtcy5fX2NhY2hlZF9tZXRob2RzWyJfbWFu aW5fc3ltYm9sX3dpdGhfY2FjaGUiXS5jYWNoZVsgKDEsMjMsMSksICgpIF0KKysgICAgICAgICAg ICBzYWdlOiBtcy5fY2FjaGVkX21ldGhvZHNbIl9tYW5pbl9zeW1ib2xfd2l0aF9jYWNoZSJdLmNh Y2hlWyAoMSwyMywxKSwgKCkgXQorICAgICAgICAgICAgIC0xCisgICAgICAgICAiIiIKKyAgICAg ICAgIGNkZWY6CitAQCAtMjkwMyw3ICsyOTAzLDcgQEAgY2RlZiBjbGFzcyBNb2R1bGFyU3ltYm9s TnVtZXJpY2FsOgorICAgICAgICAgIyAgICAgICAgIiglcyA6JXMpIiUodW4sIHZuKSwgbGV2ZWw9 MykKKyAKKyAgICAgICAgICMgaXMgaXQgYWxyZWFkeSBpbiB0aGUgY2FjaGUgPworLSAgICAgICAg YyA9IHNlbGYuX19jYWNoZWRfbWV0aG9kcworKyAgICAgICAgYyA9IHNlbGYuX2NhY2hlZF9tZXRo b2RzCisgICAgICAgICBpZiAiX21hbmluX3N5bWJvbF93aXRoX2NhY2hlIiBpbiBjOgorICAgICAg ICAgICAgIGMgPSBjWyJfbWFuaW5fc3ltYm9sX3dpdGhfY2FjaGUiXQorICAgICAgICAgICAgIGlm IGMuaXNfaW5fY2FjaGUodW4sdm4sc2lnbik6CitAQCAtMjkxOSw3ICsyOTE5LDcgQEAgY2RlZiBj bGFzcyBNb2R1bGFyU3ltYm9sTnVtZXJpY2FsOgorICAgICAgICAgIyB3ZSBnZXQgZm9yIGZyZWUg YWRkaXRpb25hbCB2YWx1ZXMgb2YgTWFuaW4KKyAgICAgICAgICMgc3ltYm9scyB0aGF0IHdlIGNh Y2hlLCB0b28uCisgICAgICAgICAjIFRoaXMgc2V0cyA2IHZhbHVlcyBpbiBhdmVyYWdlCistICAg ICAgICBjID0gc2VsZi5fX2NhY2hlZF9tZXRob2RzWyJfbWFuaW5fc3ltYm9sX3dpdGhfY2FjaGUi XQorKyAgICAgICAgYyA9IHNlbGYuX2NhY2hlZF9tZXRob2RzWyJfbWFuaW5fc3ltYm9sX3dpdGhf Y2FjaGUiXQorIAorICAgICAgICAgIyAoLXY6dSkgPSAtICh1OnYpCisgICAgICAgICBvaSA9IHBy b2pfbm9ybWFsaXNlKHNlbGYuX05fRSwgLXYsIHUsICZ1biwgJnZuKQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3NldHMvc2V0X2Zyb21faXRlcmF0b3IucHkgYi9zcmMvc2FnZS9zZXRzL3NldF9mcm9t X2l0ZXJhdG9yLnB5CitpbmRleCBjNDdiYjc2OTIwYi4uMTFmMTJlNmQ1ZWEgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9zZXRzL3NldF9mcm9tX2l0ZXJhdG9yLnB5CisrKysgYi9zcmMvc2FnZS9zZXRz L3NldF9mcm9tX2l0ZXJhdG9yLnB5CitAQCAtMjE0LDEyICsyMTQsMTIgQEAgZGVmIF9fcmVkdWNl X18oc2VsZik6CisgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgIiIiCisgICAgICAgICByZXR1 cm4gKEVudW1lcmF0ZWRTZXRGcm9tSXRlcmF0b3IsCistICAgICAgICAgICAgICAgIChzZWxmLl9m dW5jLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZ1bmMKKy0gICAgICAgICAgICAgICAg IGdldGF0dHIoc2VsZiwgJ19hcmdzJywgTm9uZSksICAgICAgICAgICMgYXJncworLSAgICAgICAg ICAgICAgICAgZ2V0YXR0cihzZWxmLCAnX2t3ZHMnLCBOb25lKSwgICAgICAgICAgIyBrd2RzCist ICAgICAgICAgICAgICAgICBnZXRhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJywgTm9uZSksICAj IG5hbWUKKy0gICAgICAgICAgICAgICAgIHNlbGYuY2F0ZWdvcnkoKSwgICAgICAgICAgICAgICAg ICAgICAgICMgY2F0ZWdvcnkKKy0gICAgICAgICAgICAgICAgIGhhc2F0dHIoc2VsZiwgJ19jYWNo ZScpKSAgICAgICAgICAgICAgICMgY2FjaGUKKysgICAgICAgICAgICAgICAgKHNlbGYuX2Z1bmMs ICAgICAgICAgICAgICAgICAgICAjIGZ1bmMKKysgICAgICAgICAgICAgICAgIGdldGF0dHIoc2Vs ZiwgJ19hcmdzJywgTm9uZSksICAjIGFyZ3MKKysgICAgICAgICAgICAgICAgIGdldGF0dHIoc2Vs ZiwgJ19rd2RzJywgTm9uZSksICAjIGt3ZHMKKysgICAgICAgICAgICAgICAgIHNlbGYuZ2V0X2N1 c3RvbV9uYW1lKCksICAgICAgICAjIG5hbWUKKysgICAgICAgICAgICAgICAgIHNlbGYuY2F0ZWdv cnkoKSwgICAgICAgICAgICAgICAjIGNhdGVnb3J5CisrICAgICAgICAgICAgICAgICBoYXNhdHRy KHNlbGYsICdfY2FjaGUnKSkgICAgICAgIyBjYWNoZQorICAgICAgICAgICAgICAgICApCisgCisg ICAgIGRlZiBfcmVwcl8oc2VsZik6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2Nh dGVnb3J5X29iamVjdC5weGQgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY2F0ZWdvcnlfb2JqZWN0LnB4 ZAoraW5kZXggZmYzMDg4YWU5YjYuLjgzZDNkNDk2N2Q0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv c3RydWN0dXJlL2NhdGVnb3J5X29iamVjdC5weGQKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9j YXRlZ29yeV9vYmplY3QucHhkCitAQCAtMTMsNyArMTMsNyBAQCBmcm9tIHNhZ2Uuc3RydWN0dXJl LnNhZ2Vfb2JqZWN0IGNpbXBvcnQgU2FnZU9iamVjdAorIGNwZGVmIGNoZWNrX2RlZmF1bHRfY2F0 ZWdvcnkoZGVmYXVsdF9jYXRlZ29yeSwgY2F0ZWdvcnkpCisgCisgY2RlZiBjbGFzcyBDYXRlZ29y eU9iamVjdChTYWdlT2JqZWN0KToKKy0gICAgY2RlZiBwdWJsaWMgZGljdCBfX2NhY2hlZF9tZXRo b2RzCisrICAgIGNkZWYgcHVibGljIGRpY3QgX2NhY2hlZF9tZXRob2RzCisgICAgIGNkZWYgX2Nh dGVnb3J5CisgICAgIGNkZWYgcHVibGljIF9iYXNlCisgICAgIGNkZWYgcHVibGljIF9uYW1lcwor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jYXRlZ29yeV9vYmplY3QucHl4IGIvc3Jj L3NhZ2Uvc3RydWN0dXJlL2NhdGVnb3J5X29iamVjdC5weXgKK2luZGV4IDM4NTlmMjQwOTVhLi5i NmE3ZWFlY2I1YiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jYXRlZ29yeV9vYmpl Y3QucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY2F0ZWdvcnlfb2JqZWN0LnB5eAorQEAg LTExMyw3ICsxMTMsNyBAQCBjZGVmIGNsYXNzIENhdGVnb3J5T2JqZWN0KFNhZ2VPYmplY3QpOgor ICAgICAgICAgICAgIHNlbGYuX2luaXRfY2F0ZWdvcnlfKGNhdGVnb3J5KQorIAorICAgICBkZWYg X19jaW5pdF9fKHNlbGYpOgorLSAgICAgICAgc2VsZi5fX2NhY2hlZF9tZXRob2RzID0ge30KKysg ICAgICAgIHNlbGYuX2NhY2hlZF9tZXRob2RzID0ge30KKyAgICAgICAgIHNlbGYuX2hhc2hfdmFs dWUgPSAtMQorIAorICAgICBkZWYgX2luaXRfY2F0ZWdvcnlfKHNlbGYsIGNhdGVnb3J5KToKK0BA IC00OTEsNyArNDkxLDcgQEAgY2RlZiBjbGFzcyBDYXRlZ29yeU9iamVjdChTYWdlT2JqZWN0KToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYudmFyaWFibGVfbmFtZXMoKVswXQor IAorLSAgICBkZWYgX190ZW1wb3JhcmlseV9jaGFuZ2VfbmFtZXMoc2VsZiwgbmFtZXMsIGxhdGV4 X25hbWVzKToKKysgICAgZGVmIF90ZW1wb3JhcmlseV9jaGFuZ2VfbmFtZXMoc2VsZiwgbmFtZXMs IGxhdGV4X25hbWVzKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBpcyB1c2VkIGJ5IHRo ZSB2YXJpYWJsZSBuYW1lcyBjb250ZXh0IG1hbmFnZXIuCisgCitAQCAtODQ0LDcgKzg0NCw3IEBA IGNkZWYgY2xhc3MgQ2F0ZWdvcnlPYmplY3QoU2FnZU9iamVjdCk6CisgICAgICAgICAjIExvb2t1 cCBhIG1ldGhvZCBvciBhdHRyaWJ1dGUgZnJvbSB0aGUgY2F0ZWdvcnkgYWJzdHJhY3QgY2xhc3Nl cy4KKyAgICAgICAgICMgU2VlIF9fZ2V0YXR0cl9fIGFib3ZlIGZvciBkb2N1bWVudGF0aW9uLgor ICAgICAgICAgdHJ5OgorLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9fY2FjaGVkX21ldGhvZHNb bmFtZV0KKysgICAgICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGVkX21ldGhvZHNbbmFtZV0KKyAg ICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICBpZiBzZWxmLl9jYXRlZ29yeSBp cyBOb25lOgorICAgICAgICAgICAgICAgICAjIFVzdWFsbHksIHRoaXMgd2lsbCBqdXN0IHJhaXNl IEF0dHJpYnV0ZUVycm9yIGluCitAQCAtODU0LDcgKzg1NCw3IEBAIGNkZWYgY2xhc3MgQ2F0ZWdv cnlPYmplY3QoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgICAgIGNscyA9IHNlbGYuX2NhdGVn b3J5LnBhcmVudF9jbGFzcworIAorICAgICAgICAgICAgIGF0dHIgPSBnZXRhdHRyX2Zyb21fb3Ro ZXJfY2xhc3Moc2VsZiwgY2xzLCBuYW1lKQorLSAgICAgICAgICAgIHNlbGYuX19jYWNoZWRfbWV0 aG9kc1tuYW1lXSA9IGF0dHIKKysgICAgICAgICAgICBzZWxmLl9jYWNoZWRfbWV0aG9kc1tuYW1l XSA9IGF0dHIKKyAgICAgICAgICAgICByZXR1cm4gYXR0cgorIAorICAgICBkZWYgX19kaXJfXyhz ZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvZWxlbWVudC5weGQgYi9zcmMv c2FnZS9zdHJ1Y3R1cmUvZWxlbWVudC5weGQKK2luZGV4IDc5ZTg2ZDhhNWMzLi4yMGM1NTZiOTg1 ZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9lbGVtZW50LnB4ZAorKysrIGIvc3Jj L3NhZ2Uvc3RydWN0dXJlL2VsZW1lbnQucHhkCitAQCAtMTc2LDcgKzE3Niw3IEBAIGNkZWYgY2xh c3MgRWxlbWVudChTYWdlT2JqZWN0KToKKyAKKyAKKyBjZGVmIGNsYXNzIEVsZW1lbnRXaXRoQ2Fj aGVkTWV0aG9kKEVsZW1lbnQpOgorLSAgICBjZGVmIHB1YmxpYyBkaWN0IF9fY2FjaGVkX21ldGhv ZHMKKysgICAgY2RlZiBwdWJsaWMgZGljdCBfY2FjaGVkX21ldGhvZHMKKyAKKyBjZGVmIGNsYXNz IE1vZHVsZUVsZW1lbnQoRWxlbWVudCkgICAgICAgIyBmb3J3YXJkIGRlY2xhcmF0aW9uCisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2VsZW1lbnQucHl4IGIvc3JjL3NhZ2Uvc3Ry dWN0dXJlL2VsZW1lbnQucHl4CitpbmRleCBhYjZlZTE1N2E5NC4uMzZkYTFjMGNjMTIgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3N0 cnVjdHVyZS9lbGVtZW50LnB5eAorQEAgLTM3OSw2ICszNzksNyBAQCBjZGVmIGNsYXNzIEVsZW1l bnQoU2FnZU9iamVjdCk6CisgICAgIC4uIGF1dG9tZXRob2Q6OiBfX21vZF9fCisgICAgICIiIgor ICAgICBAY3l0aG9uLmJpbmRpbmcoRmFsc2UpCisrICAgIEBjeXRob24uYWx3YXlzX2FsbG93X2tl eXdvcmRzKEZhbHNlKQorICAgICBkZWYgX19nZXRtZXRhY2xhc3NfXyhfKToKKyAgICAgICAgIGZy b20gc2FnZS5taXNjLmluaGVyaXRfY29tcGFyaXNvbiBpbXBvcnQgSW5oZXJpdENvbXBhcmlzb25N ZXRhY2xhc3MKKyAgICAgICAgIHJldHVybiBJbmhlcml0Q29tcGFyaXNvbk1ldGFjbGFzcworQEAg LTIzNTYsMTggKzIzNTcsMTggQEAgY2RlZiBjbGFzcyBFbGVtZW50V2l0aENhY2hlZE1ldGhvZChF bGVtZW50KToKKyAgICAgICAgICAgICBUcnVlCisgICAgICAgICAiIiIKKyAgICAgICAgIHRyeToK Ky0gICAgICAgICAgICByZXR1cm4gc2VsZi5fX2NhY2hlZF9tZXRob2RzW25hbWVdCisrICAgICAg ICAgICAgcmV0dXJuIHNlbGYuX2NhY2hlZF9tZXRob2RzW25hbWVdCisgICAgICAgICBleGNlcHQg S2V5RXJyb3I6CisgICAgICAgICAgICAgYXR0ciA9IGdldGF0dHJfZnJvbV9vdGhlcl9jbGFzcyhz ZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYXJl bnQuY2F0ZWdvcnkoKS5lbGVtZW50X2NsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuYW1lKQorLSAgICAgICAgICAgIHNlbGYuX19jYWNoZWRfbWV0aG9kc1tu YW1lXSA9IGF0dHIKKysgICAgICAgICAgICBzZWxmLl9jYWNoZWRfbWV0aG9kc1tuYW1lXSA9IGF0 dHIKKyAgICAgICAgICAgICByZXR1cm4gYXR0cgorICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoK KyAgICAgICAgICAgICBhdHRyID0gZ2V0YXR0cl9mcm9tX290aGVyX2NsYXNzKHNlbGYsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudC5jYXRlZ29y eSgpLmVsZW1lbnRfY2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5hbWUpCistICAgICAgICAgICAgc2VsZi5fX2NhY2hlZF9tZXRob2RzID0ge25hbWUgOiBh dHRyfQorKyAgICAgICAgICAgIHNlbGYuX2NhY2hlZF9tZXRob2RzID0ge25hbWUgOiBhdHRyfQor ICAgICAgICAgICAgIHJldHVybiBhdHRyCisgCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3Ry dWN0dXJlL3BhcmVudF9nZW5zLnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnRfZ2Vucy5w eXgKK2luZGV4IGFiNTMxMzE0NDU4Li5jYzZmZmFhY2UyMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3N0cnVjdHVyZS9wYXJlbnRfZ2Vucy5weXgKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJl bnRfZ2Vucy5weXgKK0BAIC0zNzEsNyArMzcxLDcgQEAgY2RlZiBjbGFzcyBsb2NhbHZhcnM6Cisg ICAgICAgICAgICAgc2VsZi5fbGF0ZXhfbmFtZXMgPSBsYXRleF9uYW1lcworIAorICAgICBkZWYg X19lbnRlcl9fKHNlbGYpOgorLSAgICAgICAgc2VsZi5fb3JpZyA9IHNlbGYuX29iai5fX3RlbXBv cmFyaWx5X2NoYW5nZV9uYW1lcyhzZWxmLl9uYW1lcywgc2VsZi5fbGF0ZXhfbmFtZXMpCisrICAg ICAgICBzZWxmLl9vcmlnID0gc2VsZi5fb2JqLl90ZW1wb3JhcmlseV9jaGFuZ2VfbmFtZXMoc2Vs Zi5fbmFtZXMsIHNlbGYuX2xhdGV4X25hbWVzKQorIAorICAgICBkZWYgX19leGl0X18oc2VsZiwg dHlwZSwgdmFsdWUsIHRyYWNlYmFjayk6CistICAgICAgICBzZWxmLl9vYmouX190ZW1wb3Jhcmls eV9jaGFuZ2VfbmFtZXMoc2VsZi5fb3JpZ1swXSwgc2VsZi5fb3JpZ1sxXSkKKysgICAgICAgIHNl bGYuX29iai5fdGVtcG9yYXJpbHlfY2hhbmdlX25hbWVzKHNlbGYuX29yaWdbMF0sIHNlbGYuX29y aWdbMV0pCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL3NhZ2Vfb2JqZWN0LnB5eCBi L3NyYy9zYWdlL3N0cnVjdHVyZS9zYWdlX29iamVjdC5weXgKK2luZGV4IDg0NzQxNDJlYWExLi4x MDAwMGFlZjM5NCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9zYWdlX29iamVjdC5w eXgKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9zYWdlX29iamVjdC5weXgKK0BAIC02OSw2ICs2 OSw4IEBAIGNkZWYgY2xhc3MgU2FnZU9iamVjdDoKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENo YW5nZSBzZWxmIHNvIGl0IHByaW50cyBhcyB4LCB3aGVyZSB4IGlzIGEgc3RyaW5nLgorIAorKyAg ICAgICAgSWYgeCBpcyBgYE5vbmVgYCwgdGhlIGV4aXN0aW5nIGN1c3RvbSBuYW1lIGlzIHJlbW92 ZWQuCisrCisgICAgICAgICAuLiBOT1RFOjoKKyAKKyAgICAgICAgICAgIFRoaXMgaXMgKm9ubHkq IHN1cHBvcnRlZCBmb3IgUHl0aG9uIGNsYXNzZXMgdGhhdCBkZXJpdmUKK0BAIC05MSw2ICs5Myw5 IEBAIGNkZWYgY2xhc3MgU2FnZU9iamVjdDoKKyAgICAgICAgICAgICBzYWdlOiBoLnJlbmFtZSgn eF4zMDAgKyAuLi4nKQorICAgICAgICAgICAgIHNhZ2U6IGgKKyAgICAgICAgICAgICB4XjMwMCAr IC4uLgorKyAgICAgICAgICAgIHNhZ2U6IGcucmVuYW1lKE5vbmUpCisrICAgICAgICAgICAgc2Fn ZTogZworKyAgICAgICAgICAgIHheMyArIHggLSA1CisgCisgICAgICAgICBSZWFsIG51bWJlcnMg YXJlIG5vdCBQeXRob24gY2xhc3Nlcywgc28gcmVuYW1lIGlzIG5vdCBzdXBwb3J0ZWQ6OgorIAor QEAgLTExMCwxNSArMTE1LDE2IEBAIGNkZWYgY2xhc3MgU2FnZU9iamVjdDoKKyAgICAgICAgICAg IGEgbG90IG9mIG1lbW9yeS4KKyAKKyAgICAgICAgICAgIFRvIHN1cHBvcnQgdGhlbSBmb3IgYSBz cGVjaWZpYyBjbGFzcywgYWRkIGEKKy0gICAgICAgICAgIGBgY2RlZiBwdWJsaWMgX19jdXN0b21f bmFtZWBgIGF0dHJpYnV0ZS4KKysgICAgICAgICAgIGBgY2RlZiBwdWJsaWMgX1NhZ2VPYmplY3Rf X2N1c3RvbV9uYW1lYGAgYXR0cmlidXRlLgorICAgICAgICAgIiIiCisgICAgICAgICBpZiB4IGlz IE5vbmU6CistICAgICAgICAgICAgI2lmIGhhc2F0dHIoc2VsZiwgJ19fY3VzdG9tX25hbWUnKToK Ky0gICAgICAgICAgICAjIHRoYXQncyB0ZXN0ZWQgaW4gcmVzZXRfbmFtZSBhbnl3YXkuLi4KKyAg ICAgICAgICAgICBzZWxmLnJlc2V0X25hbWUoKQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICB0cnk6CistICAgICAgICAgICAgICAgIHNlbGYuX19jdXN0b21fbmFtZSA9IHN0cih4KQorKyAg ICAgICAgICAgICAgICAjIFRPRE86IGFmdGVyIGRyb3BwaW5nIHN1cHBvcnQgZm9yIEN5dGhvbiA8 IDMuMC4wLCBhbGwKKysgICAgICAgICAgICAgICAgIyB0aGUgc2VsZi5fU2FnZU9iamVjdF9fY3Vz dG9tX25hbWUgaW4gdGhpcyBjbGFzcyBjYW4gYmUKKysgICAgICAgICAgICAgICAgIyBjaGFuZ2Vk IHRvIHNlbGYuX19jdXN0b21fbmFtZQorKyAgICAgICAgICAgICAgICBzZWxmLl9TYWdlT2JqZWN0 X19jdXN0b21fbmFtZSA9IHN0cih4KQorICAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJv cjoKKyAgICAgICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigib2JqZWN0IGRv ZXMgbm90IHN1cHBvcnQgcmVuYW1pbmc6ICVzIiAlIHNlbGYpCisgCitAQCAtMTM4LDggKzE0NCwz MCBAQCBjZGVmIGNsYXNzIFNhZ2VPYmplY3Q6CisgICAgICAgICAgICAgc2FnZTogUAorICAgICAg ICAgICAgIFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGluIHggb3ZlciBSYXRpb25hbCBGaWVs ZAorICAgICAgICAgIiIiCistICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1l Jyk6CistICAgICAgICAgICAgZGVsIHNlbGYuX19jdXN0b21fbmFtZQorKyAgICAgICAgaWYgaGFz YXR0cihzZWxmLCAnX1NhZ2VPYmplY3RfX2N1c3RvbV9uYW1lJyk6CisrICAgICAgICAgICAgZGVs IHNlbGYuX1NhZ2VPYmplY3RfX2N1c3RvbV9uYW1lCisrCisrICAgIGRlZiBnZXRfY3VzdG9tX25h bWUoc2VsZik6CisrICAgICAgICAiIiIKKysgICAgICAgIFJldHVybiB0aGUgY3VzdG9tIG5hbWUg b2YgdGhpcyBvYmplY3QsIG9yIGBgTm9uZWBgIGlmIGl0IGlzIG5vdAorKyAgICAgICAgcmVuYW1l ZC4KKysKKysgICAgICAgIEVYQU1QTEVTOjoKKysKKysgICAgICAgICAgICBzYWdlOiBQLjx4PiA9 IFFRW10KKysgICAgICAgICAgICBzYWdlOiBQLmdldF9jdXN0b21fbmFtZSgpIGlzIE5vbmUKKysg ICAgICAgICAgICBUcnVlCisrICAgICAgICAgICAgc2FnZTogUC5yZW5hbWUoJ0EgcG9seW5vbWlh bCByaW5nJykKKysgICAgICAgICAgICBzYWdlOiBQLmdldF9jdXN0b21fbmFtZSgpCisrICAgICAg ICAgICAgJ0EgcG9seW5vbWlhbCByaW5nJworKyAgICAgICAgICAgIHNhZ2U6IFAucmVzZXRfbmFt ZSgpCisrICAgICAgICAgICAgc2FnZTogUC5nZXRfY3VzdG9tX25hbWUoKSBpcyBOb25lCisrICAg ICAgICAgICAgVHJ1ZQorKyAgICAgICAgIiIiCisrICAgICAgICB0cnk6CisrICAgICAgICAgICAg cmV0dXJuIHNlbGYuX1NhZ2VPYmplY3RfX2N1c3RvbV9uYW1lCisrICAgICAgICBleGNlcHQgQXR0 cmlidXRlRXJyb3I6CisrICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAKKyAgICAgZGVmIF9fcmVw cl9fKHNlbGYpOgorICAgICAgICAgIiIiCitAQCAtMTgxLDcgKzIwOSw3IEBAIGNkZWYgY2xhc3Mg U2FnZU9iamVjdDoKKyAgICAgICAgICAgICA8c2FnZS5zdHJ1Y3R1cmUuc2FnZV9vYmplY3QuU2Fn ZU9iamVjdCBvYmplY3QgYXQgLi4uPgorICAgICAgICAgIiIiCisgICAgICAgICB0cnk6CistICAg ICAgICAgICAgbmFtZSA9IHNlbGYuX19jdXN0b21fbmFtZQorKyAgICAgICAgICAgIG5hbWUgPSBz ZWxmLl9TYWdlT2JqZWN0X19jdXN0b21fbmFtZQorICAgICAgICAgICAgIGlmIG5hbWUgaXMgbm90 IE5vbmU6CisgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lCisgICAgICAgICBleGNlcHQgQXR0 cmlidXRlRXJyb3I6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvdG9wb2xvZ3kvc2ltcGxpY2lhbF9z ZXQucHkgYi9zcmMvc2FnZS90b3BvbG9neS9zaW1wbGljaWFsX3NldC5weQoraW5kZXggNDJjYzNm Nzc3ODAuLjNlZTE0YWUyZGE4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvdG9wb2xvZ3kvc2ltcGxp Y2lhbF9zZXQucHkKKysrKyBiL3NyYy9zYWdlL3RvcG9sb2d5L3NpbXBsaWNpYWxfc2V0LnB5CitA QCAtNTcwLDEzICs1NzAsMTIgQEAgZGVmIF9fbHRfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAg ICAgcmV0dXJuIFRydWUKKyAgICAgICAgIGlmIHNlbGYuZGVnZW5lcmFjaWVzKCkgYW5kIG90aGVy LmRlZ2VuZXJhY2llcygpIGFuZCBzZWxmLmRlZ2VuZXJhY2llcygpICE9IG90aGVyLmRlZ2VuZXJh Y2llcygpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLmRlZ2VuZXJhY2llcygpIDwgb3RoZXIu ZGVnZW5lcmFjaWVzKCkKKy0gICAgICAgIGlmIGhhc2F0dHIoc2VsZi5ub25kZWdlbmVyYXRlKCks ICdfX2N1c3RvbV9uYW1lJyk6CistICAgICAgICAgICAgaWYgaGFzYXR0cihvdGhlci5ub25kZWdl bmVyYXRlKCksICdfX2N1c3RvbV9uYW1lJyk6CistICAgICAgICAgICAgICAgIHJldHVybiBzdHIo c2VsZikgPCBzdHIob3RoZXIpCisrICAgICAgICBpZiBzZWxmLm5vbmRlZ2VuZXJhdGUoKS5nZXRf Y3VzdG9tX25hbWUoKSBpcyBub3QgTm9uZToKKysgICAgICAgICAgICBpZiBvdGhlci5ub25kZWdl bmVyYXRlKCkuZ2V0X2N1c3RvbV9uYW1lKCkgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgICAg IHJldHVybiBzZWxmLm5vbmRlZ2VuZXJhdGUoKS5nZXRfY3VzdG9tX25hbWUoKSA8IG90aGVyLm5v bmRlZ2VuZXJhdGUoKS5nZXRfY3VzdG9tX25hbWUoKQorICAgICAgICAgICAgIHJldHVybiBUcnVl CisgCistICAgICAgICBpZiAoaGFzYXR0cihvdGhlciwgJ19fY3VzdG9tX25hbWUnKQorLSAgICAg ICAgICAgICAgICBvciBoYXNhdHRyKG90aGVyLm5vbmRlZ2VuZXJhdGUoKSwgJ19fY3VzdG9tX25h bWUnKSk6CisrICAgICAgICBpZiBvdGhlci5ub25kZWdlbmVyYXRlKCkuZ2V0X2N1c3RvbV9uYW1l KCkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1 cm4gaWQoc2VsZikgPCBpZChvdGhlcikKKyAKK0BAIC03OTMsOCArNzkyLDggQEAgZGVmIF9fY29w eV9fKHNlbGYpOgorICAgICAgICAgIyBkaW1lbnNpb24sIHRoZSBkZWdlbmVyYWNpZXMsIGFuZCB0 aGUgbmFtZSAod2l0aCBhIHByaW1lCisgICAgICAgICAjIGFkZGVkKS4KKyAgICAgICAgIHNpZ21h ID0gQWJzdHJhY3RTaW1wbGV4KHNlbGYuX2RpbSwgZGVnZW5lcmFjaWVzPXNlbGYuZGVnZW5lcmFj aWVzKCkpCistICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfX2N1c3RvbV9uYW1lJyk6CistICAg ICAgICAgICAgc2lnbWEucmVuYW1lKHN0cihzZWxmKSArICInIikKKysgICAgICAgIGlmIHNlbGYu Z2V0X2N1c3RvbV9uYW1lKCkgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgc2lnbWEucmVuYW1l KHNlbGYuZ2V0X2N1c3RvbV9uYW1lKCkgKyAiJyIpCisgICAgICAgICByZXR1cm4gc2lnbWEKKyAK KyAgICAgZGVmIF9fZGVlcGNvcHlfXyhzZWxmLCBtZW1vKToKK0BAIC04MzksOCArODM4LDggQEAg ZGVmIF9fZGVlcGNvcHlfXyhzZWxmLCBtZW1vKToKKyAgICAgICAgICAgICByZXR1cm4gbWVtb1t1 bmRlcmx5aW5nXS5hcHBseV9kZWdlbmVyYWNpZXMoKmRlZ2VucykKKyAgICAgICAgIGV4Y2VwdCBL ZXlFcnJvcjoKKyAgICAgICAgICAgICBzaWdtYSA9IEFic3RyYWN0U2ltcGxleCh1bmRlcmx5aW5n Ll9kaW0pCistICAgICAgICAgICAgaWYgaGFzYXR0cih1bmRlcmx5aW5nLCAnX19jdXN0b21fbmFt ZScpOgorLSAgICAgICAgICAgICAgICBzaWdtYS5yZW5hbWUoc3RyKHNlbGYpICsgIiciKQorKyAg ICAgICAgICAgIGlmIHVuZGVybHlpbmcuZ2V0X2N1c3RvbV9uYW1lKCkgaXMgbm90IE5vbmU6Cisr ICAgICAgICAgICAgICAgIHNpZ21hLnJlbmFtZSh1bmRlcmx5aW5nLmdldF9jdXN0b21fbmFtZSgp ICsgIiciKQorICAgICAgICAgICAgIG1lbW9bdW5kZXJseWluZ10gPSBzaWdtYQorICAgICAgICAg ICAgIHJldHVybiBzaWdtYS5hcHBseV9kZWdlbmVyYWNpZXMoKmRlZ2VucykKKyAKK0BAIC04OTYs MTIgKzg5NSwxMiBAQCBkZWYgX2xhdGV4XyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAg aWYgc2VsZi5fbGF0ZXhfbmFtZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5fbGF0ZXhfbmFtZQorLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX19jdXN0b21fbmFtZScp OgorLSAgICAgICAgICAgIHJldHVybiBzdHIoc2VsZikKKysgICAgICAgIGlmIHNlbGYuZ2V0X2N1 c3RvbV9uYW1lKCkgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X2N1 c3RvbV9uYW1lKCkKKyAgICAgICAgIGlmIHNlbGYubm9uZGVnZW5lcmF0ZSgpLl9sYXRleF9uYW1l IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIHNpbXBsZXggPSBzZWxmLm5vbmRlZ2VuZXJhdGUo KS5fbGF0ZXhfbmFtZQorLSAgICAgICAgZWxpZiBoYXNhdHRyKHNlbGYubm9uZGVnZW5lcmF0ZSgp LCAnX19jdXN0b21fbmFtZScpOgorLSAgICAgICAgICAgIHNpbXBsZXggPSBzdHIoc2VsZi5ub25k ZWdlbmVyYXRlKCkpCisrICAgICAgICBlbGlmIHNlbGYubm9uZGVnZW5lcmF0ZSgpLmdldF9jdXN0 b21fbmFtZSgpIGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIHNpbXBsZXggPSBzZWxmLm5vbmRl Z2VuZXJhdGUoKS5nZXRfY3VzdG9tX25hbWUoKQorICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICBzaW1wbGV4ID0gIlxcRGVsdGFee3t7fX19Ii5mb3JtYXQoc2VsZi5fZGltKQorICAgICAgICAg aWYgc2VsZi5kZWdlbmVyYWNpZXMoKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS90b3BvbG9neS9z aW1wbGljaWFsX3NldF9jb25zdHJ1Y3Rpb25zLnB5IGIvc3JjL3NhZ2UvdG9wb2xvZ3kvc2ltcGxp Y2lhbF9zZXRfY29uc3RydWN0aW9ucy5weQoraW5kZXggYWU5ODgyMWRmOGEuLjNhMjE3Mjg2YWM1 IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvdG9wb2xvZ3kvc2ltcGxpY2lhbF9zZXRfY29uc3RydWN0 aW9ucy5weQorKysrIGIvc3JjL3NhZ2UvdG9wb2xvZ3kvc2ltcGxpY2lhbF9zZXRfY29uc3RydWN0 aW9ucy5weQorQEAgLTE3Niw4ICsxNzYsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgZGF0YSwgYW1i aWVudD1Ob25lKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgU2ltcGxpY2lhbFNldF9m aW5pdGUuX19pbml0X18oc2VsZiwgZGF0YSkKKyAgICAgICAgIGlmIHNlbGYgPT0gYW1iaWVudDoK Ky0gICAgICAgICAgICBpZiBoYXNhdHRyKGFtYmllbnQsICdfX2N1c3RvbV9uYW1lJyk6CistICAg ICAgICAgICAgICAgIHNlbGYucmVuYW1lKHN0cihhbWJpZW50KSkKKysgICAgICAgICAgICBzZWxm LnJlbmFtZShhbWJpZW50LmdldF9jdXN0b21fbmFtZSgpKQorICAgICAgICAgICAgIHNlbGYuX2xh dGV4X25hbWUgPSBsYXRleChhbWJpZW50KQorICAgICAgICAgIyBXaGVuIGNvbnN0cnVjdGluZyB0 aGUgaW5jbHVzaW9uIG1hcCwgd2UgZG8gbm90IG5lZWQgdG8gY2hlY2sKKyAgICAgICAgICMgdGhl IHZhbGlkaXR5IG9mIHRoZSBtb3JwaGlzbSwgYW5kIG1vcmUgaW1wb3J0YW50bHksIHdlCmRpZmYg LS1naXQgYS9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvYnVpbGQtY3l0aG9uMy5wYXRjaCBiL3Ny Y3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9idWlsZC1jeXRob24zLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjU3ZDFhZGU4OWZjNzcKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvYnVpbGQtY3l0aG9uMy5wYXRjaApAQCAtMCww ICsxLDQ0IEBACitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZXh0L3N0ZHNhZ2UucHhkIGIvc3JjL3Nh Z2UvZXh0L3N0ZHNhZ2UucHhkCitpbmRleCAxNWFiZTEzYjdjZC4uZTJiZjc0MzRmMzUgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9leHQvc3Rkc2FnZS5weGQKKysrKyBiL3NyYy9zYWdlL2V4dC9zdGRz YWdlLnB4ZAorQEAgLTEwLDcgKzEwLDcgQEAgU3RhbmRhcmQgQyBoZWxwZXIgY29kZSBmb3IgQ3l0 aG9uIG1vZHVsZXMKKyAjICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLworICMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIAorLWZyb20gY3B5dGhvbi5vYmplY3QgY2lt cG9ydCBQeV9UWVBFLCBQeVR5cGVPYmplY3QKKytmcm9tIGNweXRob24ub2JqZWN0IGNpbXBvcnQg UHlfVFlQRSwgUHlUeXBlT2JqZWN0LCBQeU9iamVjdAorIAorIAorIGNkZWYgaW5saW5lIFBZX05F Vyh0eXBlIHQpOgorQEAgLTE5LDcgKzE5LDcgQEAgY2RlZiBpbmxpbmUgUFlfTkVXKHR5cGUgdCk6 CisgICAgIDpjbGFzczpgSW50ZWdlcmAgd2hlcmUgd2UgY2hhbmdlIGBgdHBfbmV3YGAgYXQgcnVu dGltZSAoQ3l0aG9uCisgICAgIG9wdGltaXphdGlvbnMgYXNzdW1lIHRoYXQgYGB0cF9uZXdgYCBk b2Vzbid0IGNoYW5nZSkuCisgICAgICIiIgorLSAgICByZXR1cm4gKDxQeVR5cGVPYmplY3QqPnQp LnRwX25ldyh0LCA8b2JqZWN0Pk5VTEwsIDxvYmplY3Q+TlVMTCkKKysgICAgcmV0dXJuICg8UHlU eXBlT2JqZWN0Kj50KS50cF9uZXcodCwgPFB5T2JqZWN0Kj5OVUxMLCA8UHlPYmplY3QqPk5VTEwp CisgCisgCisgY2RlZiBpbmxpbmUgdm9pZCBQWV9TRVRfVFBfTkVXKHR5cGUgZHN0LCB0eXBlIHNy Yyk6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Vfc2V0dXAvY3l0aG9uX29wdGlvbnMucHkgYi9zcmMv c2FnZV9zZXR1cC9jeXRob25fb3B0aW9ucy5weQoraW5kZXggMDg2YWEwNzBjYTkuLjk3MjVjZTBl MWFmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Vfc2V0dXAvY3l0aG9uX29wdGlvbnMucHkKKysrKyBi L3NyYy9zYWdlX3NldHVwL2N5dGhvbl9vcHRpb25zLnB5CitAQCAtMTAsMTMgKzEwLDE3IEBAIGRl ZiBjb21waWxlcl9kaXJlY3RpdmVzKHByb2ZpbGU6IGJvb2wpOgorICAgICAgICAgYXV0b19waWNr bGU9RmFsc2UsCisgICAgICAgICAjIERvIG5vdCBjcmVhdGUgX190ZXN0X18gZGljdGlvbmFyeSBh dXRvbWF0aWNhbGx5IGZyb20gZG9jc3RyaW5ncworICAgICAgICAgYXV0b3Rlc3RkaWN0PUZhbHNl LAorKyAgICAgICAgYmluZGluZz1GYWxzZSwKKysgICAgICAgIGNfYXBpX2Jpbm9wX21ldGhvZHM9 VHJ1ZSwKKyAgICAgICAgICMgRG8gbm90IGNoZWNrIGZvciBkaXZpc2lvbiBieSAwICh0aGlzIGlz IGFib3V0IDM1JSBxdWlja2VyIHRoYW4gd2l0aCBjaGVjaykKKyAgICAgICAgIGNkaXZpc2lvbj1U cnVlLAorKyAgICAgICAgY3Bvdz1UcnVlLAorICAgICAgICAgIyBFbWJlZCBhIHRleHR1YWwgY29w eSBvZiB0aGUgY2FsbCBzaWduYXR1cmUgaW4gdGhlIGRvY3N0cmluZyAodG8gc3VwcG9ydCB0b29s cyBsaWtlIElQeXRob24pCisgICAgICAgICBlbWJlZHNpZ25hdHVyZT1UcnVlLAorICAgICAgICAg ZmFzdF9nZXRhdHRyPVRydWUsCisgICAgICAgICAjIFVzZSBQeXRob24gMyAoaW5jbHVkaW5nIHNv dXJjZSBjb2RlIHNlbWFudGljcykgZm9yIG1vZHVsZSBjb21waWxhdGlvbgorICAgICAgICAgbGFu Z3VhZ2VfbGV2ZWw9IjMiLAorKyAgICAgICAgbGVnYWN5X2ltcGxpY2l0X25vZXhjZXB0PVRydWUs CisgICAgICAgICAjIEVuYWJsZSBzdXBwb3J0IGZvciBsYXRlIGluY2x1ZGVzIChtYWtlIGRlY2xh cmF0aW9ucyBpbiBDeXRob24gY29kZSBhdmFpbGFibGUgdG8gQyBpbmNsdWRlIGZpbGVzKQorICAg ICAgICAgcHJlbGltaW5hcnlfbGF0ZV9pbmNsdWRlc19jeTI4PVRydWUsCisgICAgICAgICAjIEFk ZCBob29rcyBmb3IgUHl0aG9uIHByb2ZpbGVycyBpbnRvIHRoZSBjb21waWxlZCBDIGNvZGUKZGlm ZiAtLWdpdCBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtZG9jdGVzdC1jeXRob24zLnBh dGNoIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2ZpeC1kb2N0ZXN0LWN5dGhvbjMucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMC4uNGNmZjFmYjE4MjhkYgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtZG9jdGVzdC1j eXRob24zLnBhdGNoCkBAIC0wLDAgKzEsMjA3IEBACitkaWZmIC0tZ2l0IGEvc3JjL2RvYy9lbi90 aGVtYXRpY190dXRvcmlhbHMvY29lcmNpb25fYW5kX2NhdGVnb3JpZXMucnN0IGIvc3JjL2RvYy9l bi90aGVtYXRpY190dXRvcmlhbHMvY29lcmNpb25fYW5kX2NhdGVnb3JpZXMucnN0CitpbmRleCBk ZTIzNDlhOWEzZi4uYmIyMzMzMWMxNTEgMTAwNjQ0CistLS0gYS9zcmMvZG9jL2VuL3RoZW1hdGlj X3R1dG9yaWFscy9jb2VyY2lvbl9hbmRfY2F0ZWdvcmllcy5yc3QKKysrKyBiL3NyYy9kb2MvZW4v dGhlbWF0aWNfdHV0b3JpYWxzL2NvZXJjaW9uX2FuZF9jYXRlZ29yaWVzLnJzdAorQEAgLTEwNSw3 ICsxMDUsNyBAQCBpdCBtYWtlcyBzZW5zZSB0byBidWlsZCBvbiB0b3Agb2YgdGhlIGJhc2UgY2xh c3MKKyBUaGlzIGJhc2UgY2xhc3MgcHJvdmlkZXMgYSBsb3QgbW9yZSBtZXRob2RzIHRoYW4gYSBn ZW5lcmFsIHBhcmVudDo6CisgCisgICAgIHNhZ2U6IFtwIGZvciBwIGluIGRpcihGaWVsZCkgaWYg cCBub3QgaW4gZGlyKFBhcmVudCldCistICAgIFsnX19mcmFjdGlvbl9maWVsZCcsCisrICAgIFsn X0NvbW11dGF0aXZlUmluZ19fZnJhY3Rpb25fZmllbGQnLAorICAgICAgJ19faXRlcl9fJywKKyAg ICAgICdfX2xlbl9fJywKKyAgICAgICdfX3J4b3JfXycsCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv YXJpdGgvc3JhbmdlLnB5eCBiL3NyYy9zYWdlL2FyaXRoL3NyYW5nZS5weXgKK2luZGV4IDE1NmU1 NDhhMTFhLi4xMzJjZjkzZDA4NSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FyaXRoL3NyYW5nZS5w eXgKKysrKyBiL3NyYy9zYWdlL2FyaXRoL3NyYW5nZS5weXgKK0BAIC04NCw3ICs4NCw3IEBAIGRl ZiB4c3JhbmdlKHN0YXJ0LCBlbmQ9Tm9uZSwgc3RlcD0xLCB1bml2ZXJzZT1Ob25lLCAqLCBjb2Vy Y2U9VHJ1ZSwgYmludCBpbmNsdWRlCisgICAgIEVYQU1QTEVTOjoKKyAKKyAgICAgICAgIHNhZ2U6 IHhzcmFuZ2UoMTApCistICAgICAgICA8Z2VuZXJhdG9yIG9iamVjdCBhdCAweC4uLj4KKysgICAg ICAgIDwuLi5nZW5lcmF0b3Igb2JqZWN0IGF0IDB4Li4uPgorICAgICAgICAgc2FnZTogZm9yIGkg aW4geHNyYW5nZSgxLDUpOgorICAgICAgICAgLi4uLjogICAgIHByaW50KGkpCisgICAgICAgICAx CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY29tYmluYXQvc2xvYW5lX2Z1bmN0aW9ucy5weSBiL3Ny Yy9zYWdlL2NvbWJpbmF0L3Nsb2FuZV9mdW5jdGlvbnMucHkKK2luZGV4IGMzY2Y5Mjk5MDkzLi5l NWM5OWI3MWZlNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L3Nsb2FuZV9mdW5jdGlv bnMucHkKKysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L3Nsb2FuZV9mdW5jdGlvbnMucHkKK0BAIC05 MTY5LDcgKzkxNjksNyBAQCBjbGFzcyBTbG9hbmUoU2FnZU9iamVjdCk6CisgICAgICAgICA6Ogor IAorICAgICAgICAgICAgIHNhZ2U6IHNsb2FuZS5fX3JlcHJfXworLSAgICAgICAgICAgIDxtZXRo b2Qtd3JhcHBlciAnX19yZXByX18nIG9mIFNsb2FuZSBvYmplY3QgYXQgMHguLi4+CisrICAgICAg ICAgICAgPGJ1aWx0LWluIG1ldGhvZCBfX3JlcHJfXyBvZiBTbG9hbmUgb2JqZWN0IGF0IDB4Li4u PgorICAgICAgICAgICAgIHNhZ2U6IHNsb2FuZS5fX25hbWVfXworICAgICAgICAgICAgIFRyYWNl YmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgICAuLi4KK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5weXggYi9zcmMvc2FnZS9taXNjL2NhY2hlZnVu Yy5weXgKK2luZGV4IDhhYTMwYTg1MjcyLi4yYjFkMzhjMTJiOSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL21pc2MvY2FjaGVmdW5jLnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHl4 CitAQCAtNTAsNyArNTAsNyBAQCBiZSB1c2VkOjoKKyAgICAgc2FnZTogY3l0aG9uKCcnJ2NwZGVm IHRlc3RfZnVuY3QoeCk6IHJldHVybiAteCcnJykgICAgICAgICAgICAgICAgICAgICAgICAgICMg b3B0aW9uYWwgLSBzYWdlLm1pc2MuY3l0aG9uCisgICAgIHNhZ2U6IHdyYXBwZWRfZnVuY3QgPSBj YWNoZWRfZnVuY3Rpb24odGVzdF9mdW5jdCwgbmFtZT0nd3JhcHBlZF9mdW5jdCcpICAgICAjIG9w dGlvbmFsIC0gc2FnZS5taXNjLmN5dGhvbgorICAgICBzYWdlOiB3cmFwcGVkX2Z1bmN0ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRp b25hbCAtIHNhZ2UubWlzYy5jeXRob24KKy0gICAgQ2FjaGVkIHZlcnNpb24gb2YgPGJ1aWx0LWlu IGZ1bmN0aW9uIHRlc3RfZnVuY3Q+CisrICAgIENhY2hlZCB2ZXJzaW9uIG9mIDxjeWZ1bmN0aW9u IHRlc3RfZnVuY3QgYXQgLi4uPgorICAgICBzYWdlOiB3cmFwcGVkX2Z1bmN0Ll9fbmFtZV9fICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAt IHNhZ2UubWlzYy5jeXRob24KKyAgICAgJ3dyYXBwZWRfZnVuY3QnCisgICAgIHNhZ2U6IHdyYXBw ZWRfZnVuY3QoNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5taXNjLmN5dGhvbgorQEAgLTgyLDkgKzgyLDkgQEAg YXBwcm9hY2ggaXMgc3RpbGwgbmVlZGVkIGZvciBjcGRlZiBtZXRob2RzOjoKKyAgICAgc2FnZTog Y3l0aG9uKG9zLmxpbmVzZXAuam9pbihjeXRob25fY29kZSkpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgb3B0aW9uYWwgLSBzYWdlLm1pc2MuY3l0aG9uCisgICAgIHNhZ2U6IE8g PSBNeUNsYXNzKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5taXNjLmN5dGhvbgorICAgICBzYWdlOiBPLmRp cmVjdF9tZXRob2QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UubWlzYy5jeXRob24KKy0gICAgQ2FjaGVkIHZlcnNp b24gb2YgPG1ldGhvZCAnZGlyZWN0X21ldGhvZCcgb2YgJy4uLk15Q2xhc3MnIG9iamVjdHM+Cisr ICAgIENhY2hlZCB2ZXJzaW9uIG9mIDxjeWZ1bmN0aW9uIE15Q2xhc3MuZGlyZWN0X21ldGhvZCBh dCAuLi4+CisgICAgIHNhZ2U6IE8ud3JhcHBlZF9tZXRob2QgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2FnZS5taXNjLmN5 dGhvbgorLSAgICBDYWNoZWQgdmVyc2lvbiBvZiA8YnVpbHQtaW4gZnVuY3Rpb24gdGVzdF9tZXRo PgorKyAgICBDYWNoZWQgdmVyc2lvbiBvZiA8Y3lmdW5jdGlvbiB0ZXN0X21ldGggYXQgLi4uPgor ICAgICBzYWdlOiBPLndyYXBwZWRfbWV0aG9kLl9fbmFtZV9fICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAtIHNhZ2UubWlzYy5jeXRob24KKyAg ICAgJ3dyYXBwZWRfbWV0aG9kJworICAgICBzYWdlOiBPLndyYXBwZWRfbWV0aG9kKDUpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCAt IHNhZ2UubWlzYy5jeXRob24KK0BAIC0yNzAsNiArMjcwLDcgQEAgSW50cm9zcGVjdGlvbiB3b3Jr czo6CisgICAgICAgICAic29tZSBkb2MgZm9yIGEgd3JhcHBlZCBjeXRob24gbWV0aG9kIgorICAg ICAgICAgcmV0dXJuIC14CisgICAgIHNhZ2U6IHByaW50KHNhZ2VfZ2V0c291cmNlKE8uZGlyZWN0 X21ldGhvZCkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsIC0gc2Fn ZS5taXNjLmN5dGhvbgorKyAgICBAY2FjaGVkX21ldGhvZAorICAgICBkZWYgZGlyZWN0X21ldGhv ZChzZWxmLCB4KToKKyAgICAgICAgICJTb21lIGRvYyBmb3IgZGlyZWN0IG1ldGhvZCIKKyAgICAg ICAgIHJldHVybiAyKngKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2xhenlfaW1wb3J0LnB5 eCBiL3NyYy9zYWdlL21pc2MvbGF6eV9pbXBvcnQucHl4CitpbmRleCBjMzNhMWU3NGVmZC4uN2Zj NzM0MDdhY2UgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2xhenlfaW1wb3J0LnB5eAorKysr IGIvc3JjL3NhZ2UvbWlzYy9sYXp5X2ltcG9ydC5weXgKK0BAIC0xMDk1LDcgKzEwOTUsNyBAQCBk ZWYgbGF6eV9pbXBvcnQobW9kdWxlLCBuYW1lcywgYXNfPU5vbmUsICosCisgICAgICAgICBzYWdl OiBmcm9tIHNhZ2UuZmVhdHVyZXMgaW1wb3J0IFB5dGhvbk1vZHVsZQorICAgICAgICAgc2FnZTog bGF6eV9pbXBvcnQoJ3BwbCcsICdlcXVhdGlvbicsIGZlYXR1cmU9UHl0aG9uTW9kdWxlKCdwcGwn LCBzcGtnPSdwcGxweScsIHR5cGU9J3N0YW5kYXJkJykpCisgICAgICAgICBzYWdlOiBlcXVhdGlv bgorLSAgICAgICAgPGJ1aWx0LWluIGZ1bmN0aW9uIGVxdWF0aW9uPgorKyAgICAgICAgPGN5ZnVu Y3Rpb24gZXF1YXRpb24gYXQgLi4uPgorICAgICAgICAgc2FnZTogbGF6eV9pbXBvcnQoJ1B5Tm9y bWFsaXonLCAnTm16TGlzdENvbmVQcm9wZXJ0aWVzJywgZmVhdHVyZT1QeXRob25Nb2R1bGUoJ1B5 Tm9ybWFsaXonLCBzcGtnPSdweW5vcm1hbGl6JykpICAjIG9wdGlvbmFsIC0gcHlub3JtYWxpegor ICAgICAgICAgc2FnZTogTm16TGlzdENvbmVQcm9wZXJ0aWVzICAjIG9wdGlvbmFsIC0gcHlub3Jt YWxpegorICAgICAgICAgPGJ1aWx0LWluIGZ1bmN0aW9uIE5tekxpc3RDb25lUHJvcGVydGllcz4K K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2xhenlfbGlzdC5weXggYi9zcmMvc2FnZS9taXNj L2xhenlfbGlzdC5weXgKK2luZGV4IGJhNjJjNDQ2YjY5Li5jZDc1MDkzMzg2MCAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL21pc2MvbGF6eV9saXN0LnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9sYXp5 X2xpc3QucHl4CitAQCAtNjc4LDcgKzY3OCw3IEBAIGNkZWYgY2xhc3MgbGF6eV9saXN0X2dlbmVy aWMoKToKKyAgICAgICAgICAgICBzYWdlOiBmcm9tIGl0ZXJ0b29scyBpbXBvcnQgY291bnQKKyAg ICAgICAgICAgICBzYWdlOiBmcm9tIHNhZ2UubWlzYy5sYXp5X2xpc3QgaW1wb3J0IGxhenlfbGlz dAorICAgICAgICAgICAgIHNhZ2U6IGl0ZXIobGF6eV9saXN0KGNvdW50KCkpKQorLSAgICAgICAg ICAgIDxnZW5lcmF0b3Igb2JqZWN0IGF0IDB4Li4uPgorKyAgICAgICAgICAgIDwuLi5nZW5lcmF0 b3Igb2JqZWN0IGF0IDB4Li4uPgorIAorICAgICAgICAgOjoKKyAKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9taXNjL3NhZ2VpbnNwZWN0LnB5IGIvc3JjL3NhZ2UvbWlzYy9zYWdlaW5zcGVjdC5weQor aW5kZXggY2U1ZTk5ODcwMjcuLmRmOGU2YmY4OWFjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlz Yy9zYWdlaW5zcGVjdC5weQorKysrIGIvc3JjL3NhZ2UvbWlzYy9zYWdlaW5zcGVjdC5weQorQEAg LTc2LDggKzc2LDggQEAgQ3l0aG9uIGZ1bmN0aW9uczo6CisgICAgIHNhZ2U6IHNhZ2VfZ2V0ZG9j KHNhZ2UucmluZ3MucmF0aW9uYWwubWFrZV9yYXRpb25hbCkubHN0cmlwKCkKKyAgICAgJ01ha2Ug YSByYXRpb25hbCBudW1iZXIgLi4uJworIAorLSAgICBzYWdlOiBzYWdlX2dldHNvdXJjZShzYWdl LnJpbmdzLnJhdGlvbmFsLm1ha2VfcmF0aW9uYWwpWzQ6XQorLSAgICAnbWFrZV9yYXRpb25hbChz KTouLi4nCisrICAgIHNhZ2U6IHNhZ2VfZ2V0c291cmNlKHNhZ2UucmluZ3MucmF0aW9uYWwubWFr ZV9yYXRpb25hbCkKKysgICAgJ0BjeXRob24uYmluZGluZyhUcnVlKVxuZGVmIG1ha2VfcmF0aW9u YWwocyk6Li4uJworIAorIFB5dGhvbiBmdW5jdGlvbnM6OgorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL21vZHVsZXMvZnJlZV9tb2R1bGVfZWxlbWVudC5weXggYi9zcmMvc2FnZS9tb2R1bGVzL2Zy ZWVfbW9kdWxlX2VsZW1lbnQucHl4CitpbmRleCBkNWU4MjU2YjY4Yy4uYzlhZjliY2JkZjcgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1bGVzL2ZyZWVfbW9kdWxlX2VsZW1lbnQucHl4CisrKysg Yi9zcmMvc2FnZS9tb2R1bGVzL2ZyZWVfbW9kdWxlX2VsZW1lbnQucHl4CitAQCAtMTYzNCw3ICsx NjM0LDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudChWZWN0b3IpOiAgICMgYWJzdHJh Y3QgYmFzZSBjbGFzcworIAorICAgICAgICAgICAgIHNhZ2U6IHYgPSB2ZWN0b3IoWzEsMi8zLHBp XSkKKyAgICAgICAgICAgICBzYWdlOiB2Lml0ZW1zKCkKKy0gICAgICAgICAgICA8Z2VuZXJhdG9y IG9iamVjdCBhdCAuLi4+CisrICAgICAgICAgICAgPC4uLmdlbmVyYXRvciBvYmplY3QgYXQgLi4u PgorICAgICAgICAgICAgIHNhZ2U6IGxpc3Qodi5pdGVtcygpKQorICAgICAgICAgICAgIFsoMCwg MSksICgxLCAyLzMpLCAoMiwgcGkpXQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2Zp bml0ZV9yaW5ncy9maW5pdGVfZmllbGRfYmFzZS5weXggYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVf cmluZ3MvZmluaXRlX2ZpZWxkX2Jhc2UucHl4CitpbmRleCA3ZTJlZWQ5MTE1My4uM2E2ZGI4OTk1 YzYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmluaXRlX2ZpZWxk X2Jhc2UucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmluaXRlX2ZpZWxk X2Jhc2UucHl4CitAQCAtMzI4LDcgKzMyOCw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRmllbGQoRmll bGQpOgorICAgICAgICAgICAgIHNhZ2U6IHAgPSBuZXh0X3ByaW1lKDJeNjQpCisgICAgICAgICAg ICAgc2FnZTogay48YT4gPSBGaW5pdGVGaWVsZChwXjIsIGltcGw9InBhcmkiKQorICAgICAgICAg ICAgIHNhZ2U6IGl0ID0gaXRlcihrKTsgaXQKKy0gICAgICAgICAgICA8Z2VuZXJhdG9yIG9iamVj dCBhdCAuLi4+CisrICAgICAgICAgICAgPC4uLmdlbmVyYXRvciBvYmplY3QgYXQgLi4uPgorICAg ICAgICAgICAgIHNhZ2U6IFtuZXh0KGl0KSBmb3IgaSBpbiByYW5nZSgxMCldCisgICAgICAgICAg ICAgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDldCisgCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvcmluZ3MvcG9seW5vbWlhbC9za2V3X3BvbHlub21pYWxfZmluaXRlX2ZpZWxkLnB5eCBiL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2Zpbml0ZV9maWVsZC5weXgK K2luZGV4IDQxOTUxNjg3OTM5Li5jNmI2N2NiYTVmYiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jp bmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2Zpbml0ZV9maWVsZC5weXgKKysrKyBiL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2Zpbml0ZV9maWVsZC5weXgK K0BAIC02MjksNyArNjI5LDcgQEAgY2RlZiBjbGFzcyBTa2V3UG9seW5vbWlhbF9maW5pdGVfZmll bGRfZGVuc2UoU2tld1BvbHlub21pYWxfZmluaXRlX29yZGVyX2RlbnNlKToKKyAgICAgICAgICAg ICBzYWdlOiBTLjx4PiA9IGtbJ3gnLEZyb2JdCisgICAgICAgICAgICAgc2FnZTogYSA9IHheNCAr IDIqdCp4XjMgKyAzKnReMip4XjIgKyAodF4yICsgdCArIDEpKnggKyA0KnQgKyAzCisgICAgICAg ICAgICAgc2FnZTogaXRlciA9IGEucmlnaHRfaXJyZWR1Y2libGVfZGl2aXNvcnMoKTsgaXRlcgor LSAgICAgICAgICAgIDxnZW5lcmF0b3Igb2JqZWN0IGF0IDB4Li4uPgorKyAgICAgICAgICAgIDwu Li5nZW5lcmF0b3Igb2JqZWN0IGF0IDB4Li4uPgorICAgICAgICAgICAgIHNhZ2U6IG5leHQoaXRl cikgICAjIHJhbmRvbQorICAgICAgICAgICAgIHggKyAyKnReMiArIDQqdCArIDQKKyAgICAgICAg ICAgICBzYWdlOiBuZXh0KGl0ZXIpICAgIyByYW5kb20KK0BAIC02NjQsNyArNjY0LDcgQEAgY2Rl ZiBjbGFzcyBTa2V3UG9seW5vbWlhbF9maW5pdGVfZmllbGRfZGVuc2UoU2tld1BvbHlub21pYWxf ZmluaXRlX29yZGVyX2RlbnNlKToKKyAgICAgICAgICAgICBzYWdlOiBTLjx4PiA9IGtbJ3gnLEZy b2JdCisgICAgICAgICAgICAgc2FnZTogYSA9IHheNCArIDIqdCp4XjMgKyAzKnReMip4XjIgKyAo dF4yICsgdCArIDEpKnggKyA0KnQgKyAzCisgICAgICAgICAgICAgc2FnZTogaXRlciA9IGEubGVm dF9pcnJlZHVjaWJsZV9kaXZpc29ycygpOyBpdGVyCistICAgICAgICAgICAgPGdlbmVyYXRvciBv YmplY3QgYXQgMHguLi4+CisrICAgICAgICAgICAgPC4uLmdlbmVyYXRvciBvYmplY3QgYXQgMHgu Li4+CisgICAgICAgICAgICAgc2FnZTogbmV4dChpdGVyKSAgIyByYW5kb20KKyAgICAgICAgICAg ICB4ICsgMyp0ICsgMworICAgICAgICAgICAgIHNhZ2U6IG5leHQoaXRlcikgICMgcmFuZG9tCitA QCAtMTA1Miw3ICsxMDUyLDcgQEAgY2RlZiBjbGFzcyBTa2V3UG9seW5vbWlhbF9maW5pdGVfZmll bGRfZGVuc2UoU2tld1BvbHlub21pYWxfZmluaXRlX29yZGVyX2RlbnNlKToKKyAgICAgICAgICAg ICBzYWdlOiBTLjx4PiA9IGtbJ3gnLEZyb2JdCisgICAgICAgICAgICAgc2FnZTogYSA9IHheMyAr ICh0XjIgKyAxKSp4XjIgKyAoMip0ICsgMykqeCArIHReMiArIHQgKyAyCisgICAgICAgICAgICAg c2FnZTogaXRlciA9IGEuZmFjdG9yaXphdGlvbnMoKTsgaXRlcgorLSAgICAgICAgICAgIDxnZW5l cmF0b3Igb2JqZWN0IGF0IDB4Li4uPgorKyAgICAgICAgICAgIDwuLi5nZW5lcmF0b3Igb2JqZWN0 IGF0IDB4Li4uPgorICAgICAgICAgICAgIHNhZ2U6IG5leHQoaXRlcikgICAjIHJhbmRvbQorICAg ICAgICAgICAgICh4ICsgMyp0XjIgKyA0KnQpICogKHggKyAyKnReMikgKiAoeCArIDQqdF4yICsg NCp0ICsgMikKKyAgICAgICAgICAgICBzYWdlOiBuZXh0KGl0ZXIpICAgIyByYW5kb20KK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNlX2RpY3QucHl4IGIvc3JjL3NhZ2Uvc3Ry dWN0dXJlL2NvZXJjZV9kaWN0LnB5eAoraW5kZXggYTJlODQ0MzA4NGMuLmVmODZjNmFmMzVjIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2NvZXJjZV9kaWN0LnB5eAorKysrIGIvc3Jj L3NhZ2Uvc3RydWN0dXJlL2NvZXJjZV9kaWN0LnB5eAorQEAgLTc3Nyw3ICs3NzcsNyBAQCBjZGVm IGNsYXNzIE1vbm9EaWN0OgorICAgICAgICAgICAgIHNhZ2U6IExbMV0gPSBOb25lCisgICAgICAg ICAgICAgc2FnZTogTFsyXSA9IFRydWUKKyAgICAgICAgICAgICBzYWdlOiBMLml0ZW1zKCkKKy0g ICAgICAgICAgICA8Z2VuZXJhdG9yIG9iamVjdCBhdCAuLi4+CisrICAgICAgICAgICAgPC4uLmdl bmVyYXRvciBvYmplY3QgYXQgLi4uPgorICAgICAgICAgICAgIHNhZ2U6IHNvcnRlZChMLml0ZW1z KCkpCisgICAgICAgICAgICAgWygxLCBOb25lKSwgKDIsIFRydWUpXQorICAgICAgICAgIiIiCitA QCAtMTQ1Miw3ICsxNDUyLDcgQEAgY2RlZiBjbGFzcyBUcmlwbGVEaWN0OgorICAgICAgICAgICAg IHNhZ2U6IEwgPSBUcmlwbGVEaWN0KCkKKyAgICAgICAgICAgICBzYWdlOiBMWzEsMiwzXSA9IE5v bmUKKyAgICAgICAgICAgICBzYWdlOiBMLml0ZW1zKCkKKy0gICAgICAgICAgICA8Z2VuZXJhdG9y IG9iamVjdCBhdCAuLi4+CisrICAgICAgICAgICAgPC4uLmdlbmVyYXRvciBvYmplY3QgYXQgLi4u PgorICAgICAgICAgICAgIHNhZ2U6IGxpc3QoTC5pdGVtcygpKQorICAgICAgICAgICAgIFsoKDEs IDIsIDMpLCBOb25lKV0KKyAgICAgICAgICIiIgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Rlc3Rz L2NtZGxpbmUucHkgYi9zcmMvc2FnZS90ZXN0cy9jbWRsaW5lLnB5CitpbmRleCBhZDBjNDRhYTI3 NC4uZjE0Y2QyZGI3NjggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS90ZXN0cy9jbWRsaW5lLnB5Cisr KysgYi9zcmMvc2FnZS90ZXN0cy9jbWRsaW5lLnB5CitAQCAtNDkxLDkgKzQ5MSw4IEBAIGRlZiB0 ZXN0X2V4ZWN1dGFibGUoYXJncywgaW5wdXQ9IiIsIHRpbWVvdXQ9MTAwLjAsIHB5ZGVidWdfaWdu b3JlX3dhcm5pbmdzPUZhbHNlCisgCisgICAgICAgICBzYWdlOiAob3V0LCBlcnIsIHJldCkgPSB0 ZXN0X2V4ZWN1dGFibGUoWyJzYWdlIiwgIi0tY3l0aG9uIl0pCisgICAgICAgICBzYWdlOiBwcmlu dChlcnIpCistICAgICAgICBDeXRob24gKGh0dHA6Ly9jeXRob24ub3JnKSBpcyBhIGNvbXBpbGVy IGZvciBjb2RlIHdyaXR0ZW4gaW4gdGhlCistICAgICAgICBDeXRob24gbGFuZ3VhZ2UuICBDeXRo b24gaXMgYmFzZWQgb24gUHlyZXggYnkgR3JlZyBFd2luZy4KKyAgICAgICAgIC4uLgorKyAgICAg ICAgY3l0aG9uOiBlcnJvcjogY3l0aG9uOiBOZWVkIGF0IGxlYXN0IG9uZSBzb3VyY2UgZmlsZQor IAorICAgICAgICAgc2FnZTogZGVmIGhhc190dHkoKToKKyAgICAgICAgIC4uLi46ICAgICB0cnk6 CmRpZmYgLS1naXQgYS9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZ2V0X3BhdGNoZXMgYi9zcmNw a2dzL3NhZ2VtYXRoL3BhdGNoZXMvZ2V0X3BhdGNoZXMKaW5kZXggYzJjNWFhMWM3ZWNjZC4uOGQ1 MGY5YTNjZDNiMyAxMDA3NTUKLS0tIGEvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2dldF9wYXRj aGVzCisrKyBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9nZXRfcGF0Y2hlcwpAQCAtMTIsNyAr MTIsNyBAQCBlc2FjCiAjIGdldF9wciA8UFIgbnVtYmVyPiA8ZGVzY3JpcHRpb24+IFtleHRdCiBn ZXRfcHIoKSB7CiAJcHI9JDEKLQlkZXNjPSQoZWNobyAiJDIiIHwgc2VkIC1lICdzLyAvXy9nJykK KwlkZXNjPSQoZWNobyAiJDIiIHwgdHIgJyAvJyAnXy0nKQogCWV4dD0kezMtZGlmZn0KIAkkRE8g d2dldCAiJFVSTF9CQVNFX1BSJHByLiRleHQiIC1PICIkcHItJGRlc2MucGF0Y2giCiB9CkBAIC0y NCw2ICsyNCw5IEBAIGNkICQoZGlybmFtZSAiJDAiKQogI2dldF9wciAgMzYwMTggICAic2luZ3Vs YXIgNC4zLjJwNCIgIyBpbmNsdWRlZCBpbiAjMzU5MzQKIGdldF9wciAgMzYwNDYgICAiZml4IG1l bW9yeSBsZWFrIgogCi0jIHBvc2l0aXZlIHJldmlldworIyBtZXJnZWQgaW4gMTAuMi5iZXRhMQog Z2V0X3ByICAzNTkzNCAgICJzaW5ndWxhciA0LjMuMnA3IgorZ2V0X3ByICAzNjEwOSAgICJwcmVw YXJlIGZvciBjeXRob24gMy4wIiAjIGluY2x1ZGVkIGluICMzNjExMAorCisjIHBvc2l0aXZlIHJl dmlldwogZ2V0X3ByICAzNjAwNiAgICJnbXAgNi4zLjAiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Nh Z2VtYXRoL3RlbXBsYXRlIGIvc3JjcGtncy9zYWdlbWF0aC90ZW1wbGF0ZQppbmRleCAwMTlhZDM3 Y2IzYTcwLi41ZDMwYmIwYmZjMTYzIDEwMDY0NAotLS0gYS9zcmNwa2dzL3NhZ2VtYXRoL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3Mvc2FnZW1hdGgvdGVtcGxhdGUKQEAgLTEsMTIgKzEsMTIgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ3NhZ2VtYXRoJwogcGtnbmFtZT1zYWdlbWF0aAogdmVyc2lvbj0x MC4xCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF93cmtzcmM9cGtncy9zYWdlbWF0aC1z dGFuZGFyZAogYnVpbGRfc3R5bGU9cHl0aG9uMy1tb2R1bGUKIF9iaW5kaXI9L3Vzci9saWIvc2Fn ZW1hdGgvJHZlcnNpb24vYmluCiBtYWtlX2luc3RhbGxfYXJncz0iLS1pbnN0YWxsLXNjcmlwdHM9 JF9iaW5kaXIiCi1ob3N0bWFrZWRlcGVuZHM9Im00IHBrZy1jb25maWcgcHl0aG9uMy1DeXRob24w LjI5IHB5dGhvbjMtSmluamEyCitob3N0bWFrZWRlcGVuZHM9Im00IHBrZy1jb25maWcgcHl0aG9u My1DeXRob24gcHl0aG9uMy1KaW5qYTIKICBweXRob24zLXBrZ2NvbmZpZyBweXRob24zLXNldHVw dG9vbHMiCiBtYWtlZGVwZW5kcz0iYXJiLWRldmVsIGJvb3N0LWRldmVsIGJyaWFsLWRldmVsIGNs aXF1ZXItZGV2ZWwgZWNsIGVjbGliLWRldmVsCiAgZWNtLWRldmVsIGZmbGFzLWZmcGFjayBmbGlu dGxpYi1kZXZlbCBnYXAtZGV2ZWwgZ2QtZGV2ZWwgZ2lhYy1kZXZlbCBnbHBrLWRldmVsCkBAIC0x OCw3ICsxOCw3IEBAIG1ha2VkZXBlbmRzPSJhcmItZGV2ZWwgYm9vc3QtZGV2ZWwgYnJpYWwtZGV2 ZWwgY2xpcXVlci1kZXZlbCBlY2wgZWNsaWItZGV2ZWwKIGRlcGVuZHM9ImVjbGliLWRldmVsIGZm bGFzLWZmcGFjayBmbGludGxpYi1kZXZlbCBnY2MtZm9ydHJhbiBnZC1kZXZlbAogIGdmYW4gZ2lh YyBnc2wtZGV2ZWwgZ3ppcCBsaWJwbmctZGV2ZWwgbGluYm94LWRldmVsIG00cmktZGV2ZWwgbWF4 aW1hLWVjbAogIG1wZnItZGV2ZWwgbmF1dHkgbnRsLWRldmVsIHBhbHAgcGFyaS1kZXZlbCBwYXJp LWVsbGRhdGEtc21hbGwgcGFyaS1nYWxkYXRhCi0gcGFyaS1nYWxwb2wtc21hbGwgcGFyaS1zZWFk YXRhLXNtYWxsIHBrZy1jb25maWcgcHl0aG9uMy1DeXRob24wLjI5IHB5dGhvbjMtY3lwYXJpMgor IHBhcmktZ2FscG9sLXNtYWxsIHBhcmktc2VhZGF0YS1zbWFsbCBwa2ctY29uZmlnIHB5dGhvbjMt Q3l0aG9uIHB5dGhvbjMtY3lwYXJpMgogIHB5dGhvbjMtY3lzaWduYWxzIHB5dGhvbjMtZGV2ZWwg cHl0aG9uMy1mcHlsbGwgcHl0aG9uMy1pcHl0aG9uIHB5dGhvbjMtbHJjYWxjCiAgcHl0aG9uMy1p cHl0aG9uX2lweWtlcm5lbCBweXRob24zLWp1cHl0ZXJfaXB5d2lkZ2V0cyBweXRob24zLW1hdHBs b3RsaWIKICBweXRob24zLW1lbW9yeV9hbGxvY2F0b3IgcHl0aG9uMy1uZXR3b3JreCBweXRob24z LXBpcCBweXRob24zLXBrZ2NvbmZpZwo= --===============8588024153071885812==--