From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 19090 invoked from network); 17 Sep 2020 22:41:17 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 17 Sep 2020 22:41:17 -0000 Content-Type: multipart/mixed; boundary="===============3208514976090085758==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_gnome_3=2E38?= To: ml@inbox.vuxu.org From: q66 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 18 Sep 2020 00:41:14 +0200 List-Id: Message-ID: <20200917224114.d8jtDxssM5RfckJTgZPMpFez64p9Rc-KgCCZhudES94@z> GitHub notification mails are now in MIME to allow UTF8. --===============3208514976090085758== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBnbm9tZTMzOApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL3B1bGwvMjQyNjAKCmdub21lIDMuMzgKVGhpcyBzaG91bGQgbm93IGJlIG1vcmUgb3Ig bGVzcyByZWFkeS4gVGVzdGVkIG9uIGBhYXJjaDY0YCBhbmQgb24gYHBwYzY0bGUtbXVzbGAuIFNl dmVyYWwgInVuc3RhYmxlIiB2ZXJzaW9ucyB3ZXJlIHVzZWQsIHNpbmNlIDMuMzggc2hpcHBlZCB3 aXRoIHRoZW0gKGUuZy4gYGdub21lLW9ubGluZS1hY2NvdW50c2AsIGBnbm9tZS1jb250YWN0c2Ag YW5kIHRoZSBgZ25vbWUtZmxhc2hiYWNrYCBjb21wb25lbnRzKSwgc2hvdWxkbid0IGJlIGEgcHJh Y3RpY2FsIHByb2JsZW0gYW5kIHdlIGNhbiB1cGRhdGUgdGhlbSBsYXRlciBvbmNlIHRhZ2dlZC4N Cg0KIyBUT0RPDQoNCi0gW3hdIGNsZWFuIGl0IHVwDQotIFt4XSBiZXR0ZXIgdGVzdGluZywgbWFr ZSBzdXJlIHRlc3RzdWl0ZSBwYXNzZXMNCi0gW3hdIGltcG9ydCB0aGUgdXNlZnVsIGJpdHMgZnJv bSAjMjEzODIsIG9yIHJlYmFzZSBpZiBpdCBnZXRzIG1lcmdlZA0KLSBbIF0gbWFrZSBzdXJlIGNy b3NzYnVpbGRzIHdvcmsNCi0gW3hdIHRlc3Qgb24gbW9yZSBwbGF0Zm9ybXMNCi0gW3hdIGZpeCB0 aGUgbWV0YXBhY2thZ2VzICh0aGV5IGhhdmVuJ3QgYmVlbiB0b3VjaGVkLCBwb3NzaWJseSBpbiBo dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjI5MzYpDQot IH5+ZHJvcCB0aGUgYHZhbGFgIG9wdGlvbiBpbiB0aGUgcmVzdCBvZiB0aGUgcGFja2FnZXN+fiBw cm9iYWJseSBnb25uYSBkbyB0aGF0IG9uY2UgdGhpcyBQUiBpcyBtZXJnZWQNCg0KIyBTdGFibGUg dXBkYXRlcw0KDQotIFt4XSB5ZWxwLXhzbCAtPiAzLjM4LjANCi0gW3hdIHllbHAtdG9vbHMgLT4g My4zOC4wDQotIFt4XSB5ZWxwIC0+IDMuMzguMA0KLSBbeF0gdmFsYSAtPiAwLjUwLjANCi0gW3hd IHZhbGFkb2MgLT4gMC41MC4wIA0KLSBbeF0gdmFsYWJpbmQgLT4gKHJldmJ1bXApIA0KLSBbeF0g ZGV2aGVscCAtPiAzLjM4LjANCi0gW3hdIGdkbCAtPiAzLjM0LjANCi0gW3hdIGxpYnNvdXAgLT4g Mi43Mi4wDQotIFt4XSBncmlsbyAtPiAwLjMuMTMNCi0gW3hdIGdyaWxvLXBsdWdpbnMgLT4gMC4z LjEyDQotIFt4XSBndGtzb3VyY2V2aWV3NCAtPiA0LjguMA0KLSBbeF0gdGVwbCAtPiA1LjAuMA0K LSBbeF0gZ2xhZGUzIC0+IDMuMzguMA0KLSBbeF0gbGliaGFuZHkgLT4gKHJldmJ1bXApDQotIFt4 XSBsaWJoYW5keTEgLT4gMS4wLjANCi0gW3hdIGxpYnhmY2U0dWkgLT4gKHJldmJ1bXApDQotIFt4 XSBsaWJkYXp6bGUgLT4gMy4zOC4wDQotIFt4XSBhbmp1dGEgLT4gKHJldmJ1bXApDQotIFt4XSBz eXNwcm9mIC0+IDMuMzguMA0KLSBbeF0gdHJhY2tlciAtPiAyLjMuNg0KLSBbeF0gdHJhY2tlci1t aW5lcnMgLT4gMi4zLjUNCi0gW3hdIHRyYWNrZXIzIC0+IDMuMC4wICoqKG5ldykqKg0KLSBbeF0g dHJhY2tlcjMtbWluZXJzIC0+IDMuMC4wICoqKG5ldykqKg0KLSBbeF0gYmlqaWJlbiAtPiAzLjM2 LjMNCi0gW3hdIGdyYXBoZW5lIC0+IDEuMTAuMg0KLSBbeF0gYW10ayAtPiA1LjIuMA0KLSBbeF0g aW8uZWxlbWVudGFyeS5jb2RlIC0+IChyZXZidW1wKQ0KLSBbeF0gcGhvZGF2IC0+IDIuNQ0KLSBb eF0gZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyAtPiAzLjM4LjANCi0gW3hdIGdsaWItbmV0d29y a2luZyAtPiAyLjY2LjANCi0gW3hdIGF0LXNwaTItY29yZSAtPiAyLjM4LjANCi0gW3hdIGF0LXNw aTItYXRrIC0+IDIuMzguMA0KLSBbeF0gbGliZ3dlYXRoZXIgLT4gMy4zNi4xDQotIFt4XSBnbm9t ZS1tZW51cyAtPiAzLjM2LjANCi0gW3hdIGdub21lLWRlc2t0b3AgLT4gMy4zOC4wDQotIFt4XSBn bm9tZS1zZXR0aW5ncy1kYWVtb24gLT4gMy4zOC4wDQotIFt4XSBtdXR0ZXIgLT4gMy4zOC4wDQot IFt4XSBjaGVlc2UgLT4gMy4zOC4wDQotIFt4XSBldm9sdXRpb24tZGF0YS1zZXJ2ZXIgLT4gMy4z OC4wDQotIFt4XSBmb2xrcyAtPiAwLjE0LjANCi0gW3hdIGdub21lLW9ubGluZS1hY2NvdW50cyAt PiAzLjM3LjkwDQotIFt4XSBndmZzIC0+IDEuNDYuMA0KLSBbeF0gZ25vbWUtY29udHJvbC1jZW50 ZXIgLT4gMy4zOC4wDQotIFt4XSBkY29uZi1lZGl0b3IgLT4gMy4zOC4wDQotIFt4XSBnanMgLT4g MS42Ni4wDQotIFt4XSBnbm9tZS1zaGVsbCAtPiAzLjM4LjANCi0gW3hdIGdub21lLXNoZWxsLWV4 dGVuc2lvbnMgLT4gMy4zOC4wDQotIFt4XSBnZG0gLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1zZXNz aW9uIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtaW5pdGlhbC1zZXR1cCAtPiAzLjM4LjANCi0gW3hd IHhkZy1kZXNrdG9wLXBvcnRhbC1ndGsgLT4gMS44LjANCi0gW3hdIG5hdXRpbHVzIC0+IDMuMzgu MA0KLSBbeF0gZ25vbWUtbWFwcyAtPiAzLjM4LjANCi0gW3hdIGV2b2x1dGlvbiAtPiAzLjM4LjAN Ci0gW3hdIGV2b2x1dGlvbi1ld3MgLT4gMy4zOC4wDQotIFt4XSBweXRob24zLWF0c3BpIC0+IDIu MzguMA0KLSBbeF0gcHl0aG9uLWF0c3BpIC0+IDIuMzguMA0KLSBbeF0gb3JjYSAtPiAzLjM4LjAN Ci0gW3hdIGdub21lLXdlYXRoZXIgLT4gKHJldmJ1bXApDQotIFt4XSB2dGUzIC0+IDAuNjIuMA0K LSBbeF0gZ25vbWUtdGVybWluYWwgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1nZXR0aW5nLXN0YXJ0 ZWQtZG9jcyAtPiAzLjM2LjINCi0gW3hdIGdub21lLXVzZXItZG9jcyAtPiAzLjM4LjANCi0gW3hd IGdub21lLWVwdWItdGh1bWJuYWlsZXIgLT4gMS42DQotIFt4XSBnbm9tZS1ib29rcyAtPiAocmV2 YnVtcCkNCi0gW3hdIGdub21lLWNoYXJhY3RlcnMgLT4gKHJldmJ1bXApDQotIFt4XSBnbm9tZS1k b2N1bWVudHMgLT4gKHJldmJ1bXApDQotIFt4XSBnbm9tZS1mb250LXZpZXdlciAtPiAocmV2YnVt cCkNCi0gW3hdIHRvdGVtIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtc2NyZWVuc2F2ZXIgLT4gKHJl dmJ1bXAgKyBidWlsZCBmaXgpDQotIFt4XSBnbm9tZS1jbG9ja3MgLT4gMy4zOC4wDQotIFt4XSBl cGlwaGFueSAtPiAzLjM4LjANCi0gW3hdIGdub21lLWNvbnRhY3RzIC0+IDMuMzcuMg0KLSBbeF0g Z25vbWUtcGhvdG9zIC0+IDMuMzcuOTEuMQ0KLSBbeF0gZW9nIC0+IDMuMzguMA0KLSBbeF0gZXZp bmNlIC0+IDMuMzguMA0KLSBbeF0gZmlsZS1yb2xsZXIgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1j YWxlbmRhciAtPiAzLjM4LjANCi0gW3hdIGdub21lLW11c2ljIC0+IDMuMzguMA0KLSBbeF0gZ2Vk aXQgLT4gMy4zOC4wDQotIFt4XSBnZWRpdC1wbHVnaW5zIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUt bGF0ZXggLT4gMy4zOC4wDQotIFt4XSBiYW9iYWIgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1ib3hl cyAtPiAzLjM4LjANCi0gW3hdIGdub21lLWNhbGN1bGF0b3IgLT4gMy4zOC4wDQotIFt4XSBnbm9t ZS1kaXNrLXV0aWxpdHkgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1zY3JlZW5zaG90IC0+IDMuMzgu MA0KLSBbeF0gZ25vbWUtc3lzdGVtLW1vbml0b3IgLT4gMy4zOC4wDQotIFt4XSBhZHdhaXRhLWlj b24tdGhlbWUgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1iYWNrZ3JvdW5kcyAtPiAzLjM4LjANCi0g W3hdIHNpbXBsZS1zY2FuIC0+IDMuMzguMA0KLSBbeF0gcnlnZWwgLT4gMC40MC4wDQotIFt4XSBn bm9tZS1idWlsZGVyIC0+IDMuMzguMA0KLSBbeF0gcmV0cm8tZ3RrIC0+IDEuMC4wDQotIFt4XSBn bm9tZS1nYW1lcyAtPiAzLjM4LjANCi0gW3hdIGdub21lLXBhbmVsIC0+IDMuMzcuMQ0KLSBbeF0g bWV0YWNpdHkgLT4gMy4zNy4xDQotIFt4XSBnbm9tZS1mbGFzaGJhY2sgLT4gMy4zNy4zDQotIFt4 XSBidWRnaWUtZGVza3RvcCAtPiAocmVidWlsZCkNCg0KIyMgTWVyZ2VkDQoNCi0gW3hdIGxpYnNp Z2MrKzMgLT4gMy4wLjMgKG5ldykNCi0gW3hdIG1tLWNvbW1vbiAtPiAxLjAuMQ0KLSBbeF0gZ2xp Ym1tIC0+IDIuNjQuMg0KLSBbeF0gcGFuZ29tbSAtPiAyLjQyLjENCi0gW3hdIGxpYm5vdGlmeSAt PiAwLjcuOQ0KLSBbeF0gYXRrIC0+IDIuMzYuMA0KLSBbeF0gZ3RrKzMgLT4gMy4yNC4yMg0KLSBb eF0gbGlicG9ydGFsIC0+IDAuMyAobmV3KQ0KLSBbeF0gY29nbCAtPiAxLjIyLjI4DQotIFt4XSBn ZW9jb2RlLWdsaWIgLT4gMy4yNi4yDQotIFt4XSBnZmJncmFwaCAtPiAwLjIuNA0KLSBbeF0gbGli Z3NmIC0+IDEuMTQuNDcNCi0gW3hdIGxpYnNlY3JldCAtPiAwLjIwLjMNCi0gW3hdIGxpYmNoYW1w bGFpbiAtPiAwLjEyLjIwDQotIFt4XSBnb20gLT4gMC40DQotIFt4XSBnc3NkcCAtPiAxLjIuMw0K LSBbeF0gZ3RrLXZuYyAtPiAxLjAuMCAoZHJvcHMgdW51c2VkIGd0azIgc3VwcG9ydCkNCi0gW3hd IGd1cG5wIC0+IDEuMi40DQotIFt4XSBnbm9tZS12aWRlby1lZmZlY3RzIC0+IDAuNS4wDQotIFt4 XSBnbGliIC0+IDIuNjYuMA0KLSBbeF0gd2Via2l0Mmd0ayAtPiAyLjMwLjANCi0gW3hdIG1vempz NzggLT4gNzguMi4wIChuZXcpDQoNCiMjIE5vIHVwZGF0ZXMNCg0KLSBwb2xhcmkgKG5vIG5ld2Vy IHN0YWJsZSB2ZXJzaW9uKQ0KLSBndGs0IChubyBzdGFibGUgdmVyc2lvbiB5ZXQpCgpBIHBhdGNo IGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1 bGwvMjQyNjAucGF0Y2ggaXMgYXR0YWNoZWQ= --===============3208514976090085758== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gnome338-24260.patch" RnJvbSAzMTQ5ZmJmMjAyMTg1Nzk5OTE4NjU5ZGM1ODE3ZTI2ZDk2ZThmNTlmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMTo1NDoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDAx LzEwMl0geWVscC14c2w6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy95ZWxwLXhzbC90 ZW1wbGF0ZSB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZSBiL3NyY3Br Z3MveWVscC14c2wvdGVtcGxhdGUKaW5kZXggZjc0YTdmYmE2N2MuLjI2MDc5MmI1YmY1IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3llbHAteHNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVscC14c2wv dGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd5ZWxwLXhzbCcK IHBrZ25hbWU9eWVscC14c2wKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNp b249MQotYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRl cGVuZHM9InBrZy1jb25maWcgaW50bHRvb2wgaXRzdG9vbCBsaWJ4c2x0IgogbWFrZWRlcGVuZHM9 ImxpYnhzbHQtZGV2ZWwiCkBAIC0xMSw0ICsxMCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5k IDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9ZZWxwL1hzbCIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTRmZTUxYzAyMzNiNzlhNGMyMDRjNjg0OThkNDVmMDliMzQy YzMwZWQwMmM0ZTQxODUwNmMwZTM1ZjA5MDRlYzMKK2NoZWNrc3VtPTEzYmNjMjAxMWM0YzU1Mzg0 MTc0ZDE4YzdiMmYwMDE1YTk2YjA0ZWZkMjRmM2Y2NDZhZjJlNzE2N2U3YWIwZDcKCkZyb20gODY1 MTRjMmMzYmNkZDZjMTc5NjZjZTlkMTM5ZjNjNWJjOGIwYmI3OCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTcgU2VwIDIwMjAgMDE6NTU6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAwMi8xMDJdIHll bHAtdG9vbHM6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy95ZWxwLXRvb2xzL3RlbXBs YXRlIHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUgYi9zcmNwa2dz L3llbHAtdG9vbHMvdGVtcGxhdGUKaW5kZXggOWU4YTY3MGU2YjAuLjM1MDYxMGUzMzk3IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy95ZWxwLXRv b2xzL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAneWVscC10 b29scycKIHBrZ25hbWU9eWVscC10b29scwotdmVyc2lvbj0zLjMyLjIKK3ZlcnNpb249My4zOC4w CiByZXZpc2lvbj0xCi1hcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhv c3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpdHN0b29sIGxpYnhzbHQiCiBtYWtlZGVwZW5kcz0i eWVscC14c2wiCkBAIC0xMiw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHA6Ly93d3cuZ25vbWUub3JnIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 MTgzODU2YjVlZDBiMGJiMmMwNWRkMTIwNGFmMDIzOTQ2ZWQ0MzY5NDNlMzVlNzg5YWZiMDI5NWU1 ZTcxZThmOQorY2hlY2tzdW09NjA3Y2U0YjNlZTg1MTdjNDJkYjkyNGEwMWE3ODY2MGEwMzMxNzU5 NWM3NTgyNTczMWVhODZhOTIwZTJiMDRiMAoKRnJvbSA3YjkzOWZjMGVkNGQxZjAyY2M3ZTdkZDc3 ZTUxN2EyYTAzOGI2MzRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMTo1Mzow NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDAzLzEwMl0geWVscDogdXBkYXRlIHRvIDMuMzguMAoK LS0tCiBzcmNwa2dzL3llbHAvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwL3Rl bXBsYXRlIGIvc3JjcGtncy95ZWxwL3RlbXBsYXRlCmluZGV4IDYzY2E3YzIyNWM4Li5kMTQxZDgw ZDQzNiAxMDA2NDQKLS0tIGEvc3JjcGtncy95ZWxwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVs cC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3llbHAnCiBw a2duYW1lPXllbHAKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQog YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zY2hl bWFzLWNvbXBpbGUgLS1kaXNhYmxlLXN0YXRpYyIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1llbHAiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mZDRiM2UyM2QzMWFkMmJlYmU0MmFjOGY4 MDI0MmIyZDliZWY1MTQxOGJmNjJiNTlhY2RmMjQ0MGJkOTRlZDI0CitjaGVja3N1bT1kN2NkY2Uw ZTZkYmE1MTNiNGRmMTA5YzFmYTdlZmZjYmYwOGJiM2Y0ZDAwZDllNzkyYzdlZGYzNDU0NGY5NjU4 CiAKIHllbHAtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJ5ZWxwLSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCgpGcm9tIGU2YTZkOTAzMzhmZjVhMWQyZmRkMzY1MDcwODg3MjVmYTY2NmI2Njcg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjI5OjIxICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwMDQvMTAyXSB2YWxhOiB1cGRhdGUgdG8gMC41MC4wCgotLS0KIGNvbW1vbi9zaGxp YnMgICAgICAgICB8ICAyICstCiBzcmNwa2dzL3ZhbGEvdGVtcGxhdGUgfCAxMCArKysrKy0tLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBkZjgyMWVmYjE1MS4u ZWVkNjU0NTk1MGUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGli cwpAQCAtMzE1Nyw3ICszMTU3LDcgQEAgbGlic3lzcHJvZi0zLnNvIHN5c3Byb2YtMy4zNC4wXzEK IGxpYnN5c3Byb2YtdWktMy5zbyBzeXNwcm9mLTMuMzQuMF8xCiBsaWJtb3pqcy01Mi5zbyBtb3pq czUyLTUyLjMuMF8xCiBsaWJtb3pqcy01Mi5zby4wIG1vempzNTItNTIuMy4wXzEKLWxpYnZhbGEt MC40OC5zby4wIGxpYnZhbGEtMC40OC4wXzEKK2xpYnZhbGEtMC41MC5zby4wIGxpYnZhbGEtMC41 MC4wXzEKIGxpYnZhbGFkb2MtMC40OC5zby4wIGxpYnZhbGFkb2MtMC40OC4wXzEKIGxpYnZhbGFj Y29kZWdlbi5zbyBsaWJ2YWxhLTAuNDQuMF8xCiBsaWJwaG9kYXYtMi4wLnNvLjAgcGhvZGF2LTIu Ml8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3ZhbGEvdGVtcGxhdGUgYi9zcmNwa2dzL3ZhbGEvdGVt cGxhdGUKaW5kZXggZTk1ODgyNWYxOTYuLjYzMTBiZjQzY2NmIDEwMDY0NAotLS0gYS9zcmNwa2dz L3ZhbGEvdGVtcGxhdGUKKysrIGIvc3JjcGtncy92YWxhL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndmFsYScKIHBrZ25hbWU9dmFsYQogIyBTaG91bGQgYmUg a2VwdCBpbiBzeW5jIHdpdGggJ3ZhbGFkb2MnIChzaGFyZWQgZGlzdGZpbGVzKQotdmVyc2lvbj0w LjQ4LjkKK3ZlcnNpb249MC41MC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmln dXJlCiBjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXZhbGFkb2MiCkBAIC0xMiw5ICsxMiw5IEBA IHNob3J0X2Rlc2M9IkNvbXBpbGVyIGZvciB0aGUgR09iamVjdCB0eXBlIHN5c3RlbSIKIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BM LTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3Rz L1ZhbGEiCi1jaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jh dy8wLjQ4L05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS92 YWxhL3Jhdy8wLjUwL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdmFsYS8ke3ZlcnNp b24lLip9L3ZhbGEtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT05Y2VhMTZkM2JiM2RhZGRi ZmUwNTU2Yjk5ZmJmYTA4MTQ2MjMwZGI3NjUxZTFlNjc0Y2QwOGI0ZGY1Y2VmZWE5CitjaGVja3N1 bT04MzhhZGM1MGFjMDg4ODFlMDZjZjIzM2ZlZmQ5Mzc0MGRlYzE1MzAzMTJjYzFjZjEyYzM2ZDRl MGU4N2QzMDcxCiBzaGxpYl9wcm92aWRlcz0ibGlidmFsYWNjb2RlZ2VuLnNvIgogCiBwb3N0X2lu c3RhbGwoKSB7CkBAIC0yMiw4ICsyMiw4IEBAIHBvc3RfaW5zdGFsbCgpIHsKIAkjIHNvIHRoZSBw YWNrYWdlIHRoYXQgdXNlIGl0IGZhbGwgaW50byBvdXIgd3JhcHBlci4KIAkjIGtlZXAgdGhlIGJp bmFyeSB2ZXJzaW9uZWQsIHdlIGRvbid0IGtub3cgdGhlIHBvdGVudGlhbAogCSMgZmFsbG91dCBm cm9tIHVzaW5nIHRoZSB1bnZlcnNpb25lZCBvbmUKLQl2c2VkIC1lICdzfF52YXBpZ2VuPS4qfHZh cGlnZW49dmFwaWdlbi0wLjQ4fGcnIFwKLQkJIC1pICR7REVTVERJUn0vdXNyL2xpYi9wa2djb25m aWcvdmFwaWdlbi0wLjQ4LnBjCisJdnNlZCAtZSAnc3xedmFwaWdlbj0uKnx2YXBpZ2VuPXZhcGln ZW4tMC41MHxnJyBcCisJCSAtaSAke0RFU1RESVJ9L3Vzci9saWIvcGtnY29uZmlnL3ZhcGlnZW4t MC41MC5wYwogfQogCiBsaWJ2YWxhX3BhY2thZ2UoKSB7CgpGcm9tIDAxMWZhNGFiYmQzOTZiZGQx ZTRmMmNlYzM2OTdiZGI4OTQ5MjhlYmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIw IDIwOjMwOjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMDUvMTAyXSB2YWxhZG9jOiB1cGRhdGUg dG8gMC41MC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICB8IDIgKy0KIHNyY3BrZ3Mv dmFsYWRvYy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9u L3NobGlicwppbmRleCBlZWQ2NTQ1OTUwZS4uMjg0YTVkZGUxZDIgMTAwNjQ0Ci0tLSBhL2NvbW1v bi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzE1OCw3ICszMTU4LDcgQEAgbGlic3lz cHJvZi11aS0zLnNvIHN5c3Byb2YtMy4zNC4wXzEKIGxpYm1vempzLTUyLnNvIG1vempzNTItNTIu My4wXzEKIGxpYm1vempzLTUyLnNvLjAgbW96anM1Mi01Mi4zLjBfMQogbGlidmFsYS0wLjUwLnNv LjAgbGlidmFsYS0wLjUwLjBfMQotbGlidmFsYWRvYy0wLjQ4LnNvLjAgbGlidmFsYWRvYy0wLjQ4 LjBfMQorbGlidmFsYWRvYy0wLjUwLnNvLjAgbGlidmFsYWRvYy0wLjUwLjBfMQogbGlidmFsYWNj b2RlZ2VuLnNvIGxpYnZhbGEtMC40NC4wXzEKIGxpYnBob2Rhdi0yLjAuc28uMCBwaG9kYXYtMi4y XzEKIGxpYmdmc2hhcmUuc28uMiBsaWJnZnNoYXJlLTIuMC4wXzEKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvdmFsYWRvYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmFsYWRvYy90ZW1wbGF0ZQppbmRleCAyNGNh MDI4MzY1NS4uY2U1YTFkN2E1NGYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdmFsYWRvYy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3ZhbGFkb2MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICd2YWxhZG9jJwogcGtnbmFtZT12YWxhZG9jCiAjIFNob3VsZCBiZSBrZXB0 IGluIHN5bmMgd2l0aCAndmFsYScgKHNoYXJlZCBkaXN0ZmlsZXMpCi12ZXJzaW9uPTAuNDguOQor dmVyc2lvbj0wLjUwLjAKIHJldmlzaW9uPTEKIHdya3NyYz0idmFsYS0ke3ZlcnNpb259IgogYnVp bGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTMsOSArMTMsOSBAQCBzaG9ydF9kZXNjPSJWYWxh IERvY3VtZW50YXRpb24gVG9vbCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL1ZhbGEiCi1jaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0 bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8wLjQyL05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8wLjUwL05FV1MiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vdmFsYS8ke3ZlcnNpb24lLip9L3ZhbGEtJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT05Y2VhMTZkM2JiM2RhZGRiZmUwNTU2Yjk5ZmJmYTA4MTQ2MjMwZGI3NjUxZTFl Njc0Y2QwOGI0ZGY1Y2VmZWE5CitjaGVja3N1bT04MzhhZGM1MGFjMDg4ODFlMDZjZjIzM2ZlZmQ5 Mzc0MGRlYzE1MzAzMTJjYzFjZjEyYzM2ZDRlMGU4N2QzMDcxCiAKIHByZV9jb25maWd1cmUoKSB7 CiAJYXV0b3JlY29uZiAtaWYKCkZyb20gNzA3YjY0NjdhOTQ0YjQ0OWJmM2M4MzAzNmYyZThiOWIw MDdiMjY4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6MzI6MTMgKzAyMDAK U3ViamVjdDogW1BBVENIIDAwNi8xMDJdIHZhbGFiaW5kOiByZWJ1aWxkIGZvciB2YWxhLTAuNTAK Ci0tLQogc3JjcGtncy92YWxhYmluZC9wYXRjaGVzL3ZhbGEtMDUwLnBhdGNoIHwgMjUgKysrKysr KysrKysrKysrKysrKysrKysrKwogc3JjcGtncy92YWxhYmluZC90ZW1wbGF0ZSAgICAgICAgICAg ICAgIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1 MC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1MC5w YXRjaCBiL3NyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1MC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmQ3YzZhNzQzNDUKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL3ZhbGFiaW5kL3BhdGNoZXMvdmFsYS0wNTAucGF0Y2gKQEAgLTAsMCArMSwy NSBAQAorRnJvbSBmOTQyMzE1NDAyZTNmYzM4ZGVmMTRhOTc0ZGQ1YjIxMGU1ZDJjMzhkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CitEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjM5OjI5ICswMjAwCitTdWJqZWN0OiBb UEFUQ0hdIGZpeCB3aXRoIHZhbGEtMC41MAorCistLS0KKyB2YWxhYmluZHdyaXRlci52YWxhIHwg MiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitk aWZmIC0tZ2l0IHZhbGFiaW5kd3JpdGVyLnZhbGEgdmFsYWJpbmR3cml0ZXIudmFsYQoraW5kZXgg MTY1Y2RmNS4uYzc5M2M5ZiAxMDA2NDQKKy0tLSB2YWxhYmluZHdyaXRlci52YWxhCisrKysgdmFs YWJpbmR3cml0ZXIudmFsYQorQEAgLTMzLDcgKzMzLDcgQEAgcHVibGljIGNsYXNzIFZhbGFiaW5k V3JpdGVyIDogQ29kZVZpc2l0b3IgeworIAkJaWYgKGdsaWJtb2RlKQorIAkJCWNvbnRleHQuYWRk X2RlZmluZSAoIkdPQkpFQ1QiKTsKKyAJCS8vIHJlcXVpcmVkIHRvIGF2b2lkIHVnbHkgcnVudGlt ZSBlcnJvcnMKKy0JCWNvbnRleHQucHJvZmlsZSA9IFByb2ZpbGUuR09CSkVDVDsKKysJCWNvbnRl eHQuc2V0X3RhcmdldF9wcm9maWxlKFByb2ZpbGUuR09CSkVDVCk7CisgCX0KKyAKKyAJcHVibGlj IHZvaWQgcGFyc2UgKCkgeworLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy92YWxh YmluZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmFsYWJpbmQvdGVtcGxhdGUKaW5kZXggZjZmOTMxYzMw MzMuLjJiZjBkZjMzNmUzIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZhbGFiaW5kL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvdmFsYWJpbmQvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICd2YWxhYmluZCcKIHBrZ25hbWU9dmFsYWJpbmQKIHZlcnNpb249MS43LjEKLXJl dmlzaW9uPTUKK3JldmlzaW9uPTYKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWcgdmFsYS1kZXZlbCBnaXQiCiBtYWtlZGVwZW5kcz0idmFsYS1kZXZlbCBnbGli LWRldmVsIgoKRnJvbSAzYjhlMmNkYjgwZjEzMmZlZDk0ZDQ3ZTBjOWVhNWU5MGQzZmMwMjRmIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDA3LzEwMl0gZGV2aGVscDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2Rl dmhlbHAvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlIGIv c3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlCmluZGV4IGExYzJkY2JiNzYyLi44NmIzNzc2YWRmZCAx MDA2NDQKLS0tIGEvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZGV2aGVs cC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2RldmhlbHAn CiBwa2duYW1lPWRldmhlbHAKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNp b249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAtMTEsNyArMTEs NyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L0FwcHMvRGV2aGVscCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRjZjhlYzkz MDJiYzRhNzllMDFhYzUzYmQ5YzhiOTVhNTk2ZjcxZjM1MzUxZjQ4YjYzMjYzMjI3ZjA5YThhM2QK K2NoZWNrc3VtPTkxOGVmYjE3MzEyMmIyNmQ0NWZhNTFjMTk0YTBiNjU5ZTYzZmVlNzcwNWY2NzIy ZGIyNTM0ZmFiYzM0NTIzNjkKIAogZGV2aGVscC1kZXZlbF9wYWNrYWdlKCkgewogCXNob3J0X2Rl c2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKCkZyb20gNTAxYzNmOTlhNzk0YWY0ZmFhYWM2Mzhm ZGFmMzAyZGY1NTUxZWJjNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x Pz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29u Z2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTQgU2VwIDIwMjAgMjA6MjI6NDMgKzA3MDAK U3ViamVjdDogW1BBVENIIDAwOC8xMDJdIGdkbDogdXBkYXRlIHRvIDMuMzQuMC4KCi0tLQogc3Jj cGtncy9nZGwvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dkbC90ZW1wbGF0ZSBi L3NyY3BrZ3MvZ2RsL3RlbXBsYXRlCmluZGV4IGQ1YjE4MGJkNDNiLi4zNWJlZTgwM2Y5NiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nZGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZGwvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZGwnCiBwa2duYW1lPWdkbAot dmVyc2lvbj0zLjI4LjAKLXJldmlzaW9uPTMKK3ZlcnNpb249My4zNC4wCityZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9h cmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKSIKQEAgLTEyLDcgKzEyLDcgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkxHUEwtMi4xLW9yLWxhdGVyLCBMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L2RldmVsb3Blci5nbm9tZS5vcmcvZ2RsLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTUyY2M5OGVjYzEwNTE0ODQ2N2IzYjJiNGUwZDI3YWU0ODRiMWI2NzEwZDUzNDEzZjc3MWVk MDdlZjFiNzM3YjYKK2NoZWNrc3VtPTg1OGIzMGYwY2RjZTRjNGNiM2U4MzY1YTdkNTRjZTU3YzM4 OGJlZmYzOGVhNTgzYmU1NDQ5YmM3OGRkYThkMDIKIAogIyBQYWNrYWdlIGJ1aWxkIG9wdGlvbnMK IGJ1aWxkX29wdGlvbnM9ImdpciIKCkZyb20gYjFkMjhjNzljNGI4MzRmNTJhMDk2NTczZWMxNjY3 YTY3ODA5YzI4NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MTY6NDUgKzAy MDAKU3ViamVjdDogW1BBVENIIDAwOS8xMDJdIGxpYnNvdXA6IHVwZGF0ZSB0byAyLjcyLjAKCi0t LQogc3JjcGtncy9saWJzb3VwL3RlbXBsYXRlIHwgMjUgKysrKysrKysrKysrKystLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGlic291cC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlic291cC90ZW1w bGF0ZQppbmRleCBmN2E5ODM3M2FjOC4uMWJhOGY4YTU4MjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv bGlic291cC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUKQEAgLTEsMTYg KzEsMTYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYnNvdXAnCiBwa2duYW1lPWxpYnNvdXAK LXZlcnNpb249Mi43MC4wCit2ZXJzaW9uPTIuNzIuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBpPWRpc2Fi bGVkIC1EbnRsbT1kaXNhYmxlZAotIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIGVuYWJs ZWQgZGlzYWJsZWQpCi0gLUR2YXBpPSQodm9wdF9pZiB2YWxhIGVuYWJsZWQgZGlzYWJsZWQpIC1E dGxzX2NoZWNrPWZhbHNlIgorY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBpPWRpc2FibGVkIC1EbnRs bT1kaXNhYmxlZCAtRHN5c3Byb2Y9ZGlzYWJsZWQKKyAtRHRsc19jaGVjaz1mYWxzZSAtRGludHJv c3BlY3Rpb249JCh2b3B0X2lmIGdpciBlbmFibGVkIGRpc2FibGVkKQorIC1EdmFwaT0kKHZvcHRf aWYgZ2lyIGVuYWJsZWQgZGlzYWJsZWQpIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0LWRldmVs IGdsaWItZGV2ZWwgcGtnLWNvbmZpZyBnZXR0ZXh0Ci0gJCh2b3B0X2lmIHZhbGEgJ3ZhbGEnKSIK KyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9ImxpYmdsaWItZGV2ZWwgbGlieG1s Mi1kZXZlbCBzcWxpdGUtZGV2ZWwgbGlicHNsLWRldmVsCi0gYnJvdGxpLWRldmVsICQodm9wdF9p ZiB2YWxhICd2YWxhLWRldmVsJykiCisgYnJvdGxpLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYS1k ZXZlbCkiCiBkZXBlbmRzPSJnbGliLW5ldHdvcmtpbmciCiBzaG9ydF9kZXNjPSJIVFRQIGxpYnJh cnkgaW1wbGVtZW50YXRpb24gaW4gQyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCkBAIC0xOCwxMSArMTgsMTYgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9saWJzb3Vw IgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvbGli c291cC9nbm9tZS0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01 NGIwMjBmNzRhZWZhNDM4OTE4ZDhlNTNjZmY2MmUyYjFlNTllZmUyZGU1M2UwNmIxOWE0YjA3YjFm NGQ1MzQyCitjaGVja3N1bT0xNzBjM2Y4NDQ2YjBmNjVmOGU0YjkzNjAzMzQ5MTcyYjEwODVmYjg5 MTdjMTgxZDEwOTYyZjAyYmI4NWY1Mzg3CiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCi1idWls ZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCiti dWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKKworIyBnaW8g dGVzdHMgY2FuJ3QgcnVuIGluIGNocm9vdAorZG9fY2hlY2soKSB7CisJOgorfQogCiBsaWJzb3Vw LWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gbGlic291cD49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKQEAgLTMxLDggKzM2LDYgQEAgbGlic291cC1kZXZlbF9wYWNr YWdlKCkgewogCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZy9saWJzb3VwLTIuNC5wYwogCQlpZiBb ICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAv U291cC0yLjQuZ2lyCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgog CQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAkJdm1vdmUgdXNyL2luY2x1ZGUvbGlic291 cC0yLjQKCkZyb20gOGFmODZjZDQ1NWU3MDQ5ZWQwYzc4NmJmNzI5OWE3MDVhZTc2NDEyNiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMDE6MTA6MjIgKzAyMDAKU3ViamVjdDogW1BB VENIIDAxMC8xMDJdIGdyaWxvOiB1cGRhdGUgdG8gMC4zLjEzLCBkcm9wIHZhbGEgb3B0aW9uCgot LS0KIHNyY3BrZ3MvZ3JpbG8vdGVtcGxhdGUgfCAxNiArKysrKysrLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ3JpbG8vdGVtcGxhdGUgYi9zcmNwa2dzL2dyaWxvL3RlbXBsYXRlCmluZGV4IDRhNmFi NGNhYmUzLi42NGJhZTliZDRlMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ncmlsby90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2dyaWxvL3RlbXBsYXRlCkBAIC0xLDEyICsxLDEyIEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdncmlsbycKIHBrZ25hbWU9Z3JpbG8KLXZlcnNpb249MC4zLjEyCit2ZXJzaW9u PTAuMy4xMwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2ly IgotY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlLWludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0 cnVlIGZhbHNlKQotIC1EZW5hYmxlLXZhbGE9JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSAtRGVu YWJsZS1ndGstZG9jPWZhbHNlIgotaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcg Z2xpYi1kZXZlbCAkKHZvcHRfaWYgdmFsYSB2YWxhKSIKK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRf Ym9vbCBnaXIgZW5hYmxlLWludHJvc3BlY3Rpb24pICQodm9wdF9ib29sIGdpciB2YWxhKQorIC1E ZW5hYmxlLWd0ay1kb2M9ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZp ZyBnbGliLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ3RrKzMtZGV2 ZWwgbGlieG1sMi1kZXZlbCBsaWJzb3VwLWRldmVsIGxpYm9hdXRoLWRldmVsCiAgdG90ZW0tcGwt cGFyc2VyLWRldmVsIgogc2hvcnRfZGVzYz0iRnJhbWV3b3JrIGZvY3VzZWQgb24gbWFraW5nIG1l ZGlhIGRpc2NvdmVyeSBhbmQgYnJvd3NpbmcgZWFzeSIKQEAgLTE0LDExICsxNCwxMSBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQ TC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL2xpdmUuZ25vbWUub3JnL0dyaWxvIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZGJmYmQ2MDgyMTAzMjg4NTkyYWY5NzU2 ODE4MGI5Y2M4MWEzMzZhMjc0ZWQ1MTYwNDEyZjg3Njc1ZWMxMWE3MQorY2hlY2tzdW09ZDE0ODM3 ZjIyMzQxOTQzZWQ4YTE4OWQ5ZjA4MjdhMTcwMTZiODAyZDE4ZDBlZDA4MGUxNDEzZGUwZmRjOTI3 YgogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEiCi1i dWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgorYnVp bGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGdyaWxvLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVw ZW5kcz0iJHttYWtlZGVwZW5kc30gZ3JpbG8+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0y Nyw4ICsyNyw2IEBAIGdyaWxvLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRl CiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUv Z2lyLTEuMAotCQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZt b3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCgpGcm9t IDg3NmMzNmJjMTZjNDkwMjYwYzIyYWE0ZGYzYmI1M2I4MTNhMmEwMTIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBUaHUsIDE3IFNlcCAyMDIwIDAxOjE1OjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMTEvMTAy XSBncmlsby1wbHVnaW5zOiB1cGRhdGUgdG8gMC4zLjEyCgotLS0KIHNyY3BrZ3MvZ3JpbG8tcGx1 Z2lucy90ZW1wbGF0ZSB8IDEyICsrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dyaWxvLXBsdWdp bnMvdGVtcGxhdGUgYi9zcmNwa2dzL2dyaWxvLXBsdWdpbnMvdGVtcGxhdGUKaW5kZXggOGJmNjUx MzY2ZGEuLjU1YmNjZjFmZmI3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dyaWxvLXBsdWdpbnMvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9ncmlsby1wbHVnaW5zL3RlbXBsYXRlCkBAIC0xLDEwICsxLDkg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dyaWxvLXBsdWdpbnMnCiBwa2duYW1lPWdyaWxvLXBs dWdpbnMKLXZlcnNpb249MC4zLjExCit2ZXJzaW9uPTAuMy4xMgogcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBpdHN0b29s IGdsaWItZGV2ZWwgZ3BlcmYKLQlnbm9tZS1kb2MtdXRpbHMiCitob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgaW50bHRvb2wgaXRzdG9vbCBnbGliLWRldmVsIGdwZXJmIGdub21lLWRvYy11dGls cyIKICMgWFhYIG1pc3NpbmcgcGx1Z2luczogZmFrZW1ldGFkYXRhLgogbWFrZWRlcGVuZHM9Imdy aWxvLWRldmVsIGdvbS1kZXZlbCBndXBucC1hdi1kZXZlbCBqc29uLWdsaWItZGV2ZWwKICBsaWJx dXZpLWRldmVsIHJlc3QtZGV2ZWwgc3FsaXRlLWRldmVsIGxpYmdjcnlwdC1kZXZlbCBnbWltZS1k ZXZlbApAQCAtMTYsNCArMTUsOSBAQCBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDov L2xpdmUuZ25vbWUub3JnL0dyaWxvIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 ZGRlMmU2MDViMTk5NDM0MWM2YmYwMTI0OTNlMDU2YjQwNmIwODU3MTgzNGRlYTNiM2M2NzFkNWI4 YjFkY2Q3MworY2hlY2tzdW09YzZiNmRmMDg2YTE2NGQ2NWMyMDZkNzAxMzljZTgwNTkxZjhmZWNh MzU0NTYxMmU0NWI4MjNmYjRmZTRiMjU3NworCisjIGZlZWwgZnJlZSB0byBmaXgKK2RvX2NoZWNr KCkgeworCToKK30KCkZyb20gMjFjYTM3Y2JjNDA0MGIwZmY2ZjBjMmMyMGQxOWE2YTc2ZDg0NWZl MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NTY6MzQgKzAyMDAKU3ViamVj dDogW1BBVENIIDAxMi8xMDJdIGd0a3NvdXJjZXZpZXc0OiB1cGRhdGUgdG8gNC44LjAKCi0tLQog c3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZSB8IDMxICsrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRlIGIvc3Jj cGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZQppbmRleCA2ODQ4NzE2NzczYy4uNDRlMmVlODY5 ZjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Rrc291cmNldmlldzQvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZQpAQCAtMSwzMiArMSwzNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ3Rrc291cmNldmlldzQnCiBwa2duYW1lPWd0a3NvdXJjZXZpZXc0Ci12ZXJz aW9uPTQuMi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTQuOC4wCityZXZpc2lvbj0xCiB3cmtzcmM9 Imd0a3NvdXJjZXZpZXctJHt2ZXJzaW9ufSIKLWJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2J1 aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItLWVu YWJsZS1nbGFkZS1jYXRhbG9nICQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pCi0gJCh2 b3B0X2VuYWJsZSB2YWxhKSAkKHZvcHRfZW5hYmxlIGd0a19kb2MgZ3RrLWRvYykiCitjb25maWd1 cmVfYXJncz0iLURnbGFkZV9jYXRhbG9nPXRydWUgJCh2b3B0X2Jvb2wgZ2lyIGdpcikKKyAkKHZv cHRfYm9vbCBnaXIgdmFwaSkgJCh2b3B0X2Jvb2wgZ3RrX2RvYyBndGtfZG9jKSIKIGhvc3RtYWtl ZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIGxpYnhzbHQgcGtnLWNvbmZp ZwotICQodm9wdF9pZiB2YWxhIHZhbGEpICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2MpIgorICQo dm9wdF9pZiBnaXIgdmFsYSkgJCh2b3B0X2lmIGd0a19kb2MgZ3RrLWRvYykiCiBtYWtlZGVwZW5k cz0iZ2xhZGUzLWRldmVsIGd0ayszLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlieG1sMi1kZXZlbAot ICQodm9wdF9pZiB2YWxhIHZhbGEpIgorICQodm9wdF9pZiBnaXIgdmFsYSkiCiBzaG9ydF9kZXNj PSJUZXh0IHdpZGdldCB0aGF0IGV4dGVuZHMgR1RLKyBHdGtUZXh0VmlldyB3aWRnZXQiCiBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3Rz L0d0a1NvdXJjZVZpZXciCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ3Rrc291cmNldmlldy8k e3ZlcnNpb24lLip9L2d0a3NvdXJjZXZpZXctJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1j NDMxZWIyMzRkYzgzYzc4MTllNThmNzdkZDJhZjk3MzI1MmM3NzUwZGExYzlkMTI1ZGRjOTQyNjhm OTRmNjc1CitjaGVja3N1bT0wMGExOTEyMTUwMGNlZGYxYmFlOTdmMzVhZjg2NWQ4Mzk4NDFmZDc4 NWQ5ZmFjZjE4ODQ5OGUxMzk3NWI0ZTFhCiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCi1idWls ZF9vcHRpb25zPSJnaXIgdmFsYSBndGtfZG9jIgorYnVpbGRfb3B0aW9ucz0iZ2lyIGd0a19kb2Mi CiBkZXNjX29wdGlvbl9ndGtfZG9jPSJCdWlsZCBBUEkgZG9jcyB2aWEgZ3RrLWRvYyIKLWJ1aWxk X29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIK IAogaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJYnVpbGRfb3B0aW9uc19kZWZhdWx0 Kz0iIGd0a19kb2MiCiBmaQogCisjIE5lZWRzIFgKK2RvX2NoZWNrKCkgeworCToKK30KKwogZ3Rr c291cmNldmlldzQtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJndGsrMy1kZXZlbCBsaWJn bGliLWRldmVsIGxpYnhtbDItZGV2ZWwgJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNp b259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKQEAgLTM1LDEyICs0MCwx MiBAQCBndGtzb3VyY2V2aWV3NC1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvbGliL3Br Z2NvbmZpZwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSB1c3Ivc2hhcmUvZ2xhZGUK LQkJdm1vdmUgdXNyL3NoYXJlL2d0ay1kb2MKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBd OyB0aGVuCi0JCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQorCQlpZiBbICIkYnVpbGRfb3B0aW9uX2d0 a19kb2MiIF07IHRoZW4KKwkJCXZtb3ZlIHVzci9zaGFyZS9ndGstZG9jCiAJCWZpCiAJCWlmIFsg IiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAor CQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CiB9CgpGcm9tIDJlNzliMWI4YmRjMDc3 ZTExMWUxZDU1M2MxNjZjZmMzNTQ3NzA3OGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDE1IEF1ZyAy MDIwIDAwOjEyOjE2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMTMvMTAyXSB0ZXBsOiB1cGRhdGUg dG8gNS4wLjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IHNyY3BrZ3MvdGVwbC9wYXRjaGVzL25vLWdpci5wYXRjaCB8IDQ1ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIHNyY3BrZ3MvdGVwbC90ZW1wbGF0ZSAgICAgICAgICAgICB8IDEwICsr Ky0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2gKCmRp ZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAyODRhNWRkZTFk Mi4uMTRmZDNjOTM1MWYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3No bGlicwpAQCAtMzU1NCw3ICszNTU0LDcgQEAgbGlid3hfZ3RrM3VfbWVkaWEtMy4wLnNvLjAgd3hX aWRnZXRzLWd0azMtMy4wLjRfMQogbGlid3hfZ3RrM3VfcmliYm9uLTMuMC5zby4wIHd4V2lkZ2V0 cy1ndGszLTMuMC40XzEKIGxpYnd4X2d0azN1X2dsLTMuMC5zby4wIHd4V2lkZ2V0cy1ndGszLTMu MC40XzEKIGxpYnd4X2d0azN1X3N0Yy0zLjAuc28uMCB3eFdpZGdldHMtZ3RrMy0zLjAuNF8xCi1s aWJ0ZXBsLTQuc28uMCB0ZXBsLTQuMi4wXzEKK2xpYnRlcGwtNS5zby4wIHRlcGwtNC4yLjBfMQog bGlibm9tYWNzQ29yZS5zby4zIG5vbWFjcy0zLjEwLjJfNAogbGliYXVkaXQuc28uMSBsaWJhdWRp dC0yLjguNF8xCiBsaWJhdXBhcnNlLnNvLjAgbGliYXVwYXJzZS0yLjguNF8xCmRpZmYgLS1naXQg YS9zcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2ggYi9zcmNwa2dzL3RlcGwvcGF0Y2hl cy9uby1naXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUz NDAwMjdiN2YxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90ZXBsL3BhdGNoZXMvbm8tZ2ly LnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK0Zyb20gMTdlNTdlZDE1NjQ1MGZlNTkwMDFjYjBhMTRm OGQ4N2M0MGQ2YmY3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAwMDowOTox NSArMDIwMAorU3ViamVjdDogW1BBVENIXSBBbGxvdyBkaXNhYmxpbmcgZ2lyCisKKy0tLQorIG1l c29uX29wdGlvbnMudHh0IHwgNSArKysrKworIHRlcGwvbWVzb24uYnVpbGQgIHwgNCArKysrCisg MiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBtZXNvbl9vcHRp b25zLnR4dCBtZXNvbl9vcHRpb25zLnR4dAoraW5kZXggY2FkOTdkZC4uNWU5OTA4NCAxMDA2NDQK Ky0tLSBtZXNvbl9vcHRpb25zLnR4dAorKysrIG1lc29uX29wdGlvbnMudHh0CitAQCAtMywzICsz LDggQEAgb3B0aW9uKAorICAgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogZmFsc2UsCisgICBkZXNj cmlwdGlvbjogJ0J1aWxkIEFQSSByZWZlcmVuY2UgKHJlcXVpcmVzIGd0ay1kb2MpJworICkKKytv cHRpb24oCisrICAnZ2lyJywKKysgIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IHRydWUsCisrICBk ZXNjcmlwdGlvbjogJ0J1aWxkIGdvYmplY3QtaW50cm9zcGVjdGlvbicKKyspCitkaWZmIC0tZ2l0 IHRlcGwvbWVzb24uYnVpbGQgdGVwbC9tZXNvbi5idWlsZAoraW5kZXggMjI2ZDkxMy4uYjM1ZGQz YSAxMDA2NDQKKy0tLSB0ZXBsL21lc29uLmJ1aWxkCisrKysgdGVwbC9tZXNvbi5idWlsZAorQEAg LTE2NCw2ICsxNjQsOCBAQCBQS0dfQ09ORklHLmdlbmVyYXRlKHRlcGxfbGliLAorICAgbGlicmFy aWVzOiBURVBMX1BVQkxJQ19ERVBTLAorICkKKyAKKytpZiBnZXRfb3B0aW9uKCdnaXInKQorKwor IEdOT01FLmdlbmVyYXRlX2dpcigKKyAgIHRlcGxfbGliLAorICAgZXhwb3J0X3BhY2thZ2VzOiAn dGVwbC1AMEAnLmZvcm1hdChURVBMX0FQSV9WRVJTSU9OKSwKK0BAIC0xODIsMyArMTg0LDUgQEAg R05PTUUuZ2VuZXJhdGVfZ2lyKAorICAgIyBTdXBwb3J0IGZvciBkZXBzIGJlaW5nIGJ1aWx0IGFz IHN1YnByb2plY3RzOgorICAgZGVwZW5kZW5jaWVzOiBURVBMX0RFUFMsCisgKQorKworK2VuZGlm CistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RlcGwvdGVtcGxhdGUgYi9zcmNw a2dzL3RlcGwvdGVtcGxhdGUKaW5kZXggZjRkMzcxZDYwM2QuLjc5OGQ1Y2QwMDc3IDEwMDY0NAot LS0gYS9zcmNwa2dzL3RlcGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy90ZXBsL3RlbXBsYXRlCkBA IC0xLDEwICsxLDEwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0ZXBsJwogcGtnbmFtZT10ZXBs Ci12ZXJzaW9uPTQuNC4wCit2ZXJzaW9uPTUuMC4wCiByZXZpc2lvbj0xCi1idWlsZF9zdHlsZT1n bnUtY29uZmlndXJlCi1idWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRf ZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKSIKK2J1aWxkX3N0eWxlPW1lc29uCitidWlsZF9oZWxw ZXI9Z2lyCitjb25maWd1cmVfYXJncz0iJCh2b3B0X2Jvb2wgZ2lyIGdpcikiCiBob3N0bWFrZWRl cGVuZHM9ImdsaWItZGV2ZWwgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJhbXRrLWRldmVsIGxp YmdsaWItZGV2ZWwgZ3Rrc291cmNldmlldzQtZGV2ZWwgZ3RrKzMtZGV2ZWwKICBsaWJ4bWwyLWRl dmVsIHVjaGFyZGV0LWRldmVsIgpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJv bGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL1RlcGwiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lNmY2NjczYThhMjdlOGYyODA3MjVkYjhmYmFjZWM3 OWIyMDY3NmFlMDU1ODc1NTIzOWQxNWE5ODA4ZmFhMjU2CitjaGVja3N1bT1jNmJkMjkwNGY1MzA0 OGI3ZDAxNDkyMzY2MTBiMzhmNTAyZjI2MzRkMzk1ZDhiOWIzYzY1OTU1M2Y0MDQ1YTc0CiAKIGJ1 aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSBmYTg4 NzY3MmNmOTE4MzRjZTQxYTI0ZjJiYjA0OWUxOGI2ZTdmMzdlIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMz PUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxNCBTZXAg MjAyMCAyMDoyNzoyMiArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDE0LzEwMl0gZ2xhZGUzOiB1cGRh dGUgdG8gMy4zOC4wLgoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgMiArLQogc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9hdXRvZ2VuLWF1dG9jb25m LnBhdGNoIHwgOTggLS0tLS0tLS0tLS0tLS0tLS0tLQogLi4uL3BhdGNoZXMvY29uZmlndXJlLXNo ZWxsLXF1b3RlLnBhdGNoICAgICAgIHwgMTEgLS0tCiBzcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2Ny b3NzLnBhdGNoICAgICAgICAgICAgfCA0MCAtLS0tLS0tLQogc3JjcGtncy9nbGFkZTMvdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgICAgIHwgMTcgKystLQogNSBmaWxlcyBjaGFuZ2VkLCA3IGlu c2VydGlvbnMoKyksIDE2MSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2dsYWRlMy9wYXRjaGVzL2F1dG9nZW4tYXV0b2NvbmYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2NvbmZpZ3VyZS1zaGVsbC1xdW90ZS5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2xhZGUzL3BhdGNoZXMvY3Jvc3MucGF0Y2gKCmRpZmYg LS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAxNGZkM2M5MzUxZi4u NGI3Njc5YmY4YWMgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGli cwpAQCAtNzcwLDcgKzc3MCw3IEBAIGxpYm9yYy10ZXN0LTAuNC5zby4wIG9yYy0wLjQuMTFfMQog bGliZ21pbWUtMi42LnNvLjAgZ21pbWUtMi42LjRfMQogbGlidG90ZW0tcGxwYXJzZXIuc28uMTgg dG90ZW0tcGwtcGFyc2VyLTMuMjYuMV8xCiBsaWJ0b3RlbS1wbHBhcnNlci1taW5pLnNvLjE4IGxp YnRvdGVtLXBscGFyc2VyLW1pbmktMy4yNi4xXzEKLWxpYmdsYWRldWktMi5zby42IGxpYmdsYWRl dWkzLTMuMTAuMF8xCitsaWJnbGFkZXVpLTIuc28uMTMgbGliZ2xhZGV1aTMtMy4zOC4wXzEKIGxp YnRkYi5zby4xIGxpYnRkYi0xLjIuMl8xCiBsaWJnc3NkcC0xLjIuc28uMCBnc3NkcC0xLjIuMF8x CiBsaWJndXBucC0xLjIuc28uMCBndXBucC0xLjIuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ds YWRlMy9wYXRjaGVzL2F1dG9nZW4tYXV0b2NvbmYucGF0Y2ggYi9zcmNwa2dzL2dsYWRlMy9wYXRj aGVzL2F1dG9nZW4tYXV0b2NvbmYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGYxZGZjMzQyYjQ3Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2F1 dG9nZW4tYXV0b2NvbmYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi1Gcm9t IDgzNDFjZjc4YmM2ODc5Y2IyZDUwZTEyYjU4ODZlZTdkY2EzZDA5ZjIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/SmF2aWVyPTIwSmFyZD1DMz1CM24/PSA8amphcmRv bkBnbm9tZS5vcmc+Ci1EYXRlOiBTYXQsIDkgRmViIDIwMTkgMTM6MTU6MTcgKzAwMDAKLVN1Ympl Y3Q6IFtQQVRDSF0gVXNlIGF1dG9yZWNvbmYgaW5zdGVhZCBkZXByZWNhdGVkIGdub21lLWNvbW1v bgotCi1TZWUgaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Hbm9tZUNvbW1vbi9NaWdy YXRpb24KLS0tLQotIGF1dG9nZW4uc2ggICB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tCi0gY29uZmlndXJlLmFjIHwgIDYgKystLS0tCi0gMiBmaWxl cyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdp dCBhdXRvZ2VuLnNoIGF1dG9nZW4uc2gKLWluZGV4IDFkOGNkODQwLi5mZDM1NjYzYiAxMDA3NTUK LS0tLSBhdXRvZ2VuLnNoCi0rKysgYXV0b2dlbi5zaAotQEAgLTEsMjIgKzEsNDEgQEAKLSAjIS9i aW4vc2gKLSAjIFJ1biB0aGlzIHRvIGdlbmVyYXRlIGFsbCB0aGUgaW5pdGlhbCBtYWtlZmlsZXMs IGV0Yy4KLSt0ZXN0IC1uICIkc3JjZGlyIiB8fCBzcmNkaXI9JChkaXJuYW1lICIkMCIpCi0rdGVz dCAtbiAiJHNyY2RpciIgfHwgc3JjZGlyPS4KLSAKLS1zcmNkaXI9YGRpcm5hbWUgJDBgCi0tdGVz dCAteiAiJHNyY2RpciIgJiYgc3JjZGlyPS4KLStvbGRkaXI9JChwd2QpCi0gCi0tUEtHX05BTUU9 ImdsYWRlIgotK2NkICRzcmNkaXIKLSAKLS0odGVzdCAtZiAkc3JjZGlyL2NvbmZpZ3VyZS5hYyBc Ci0tICAmJiB0ZXN0IC1mICRzcmNkaXIvYXV0b2dlbi5zaCkgfHwgewotLSAgICBlY2hvIC1uICIq KkVycm9yKio6IERpcmVjdG9yeSAiXGAkc3JjZGlyXCciIGRvZXMgbm90IGxvb2sgbGlrZSB0aGUi Ci0tICAgIGVjaG8gIiB0b3AtbGV2ZWwgJFBLR19OQU1FIGRpcmVjdG9yeSIKLS0gICAgZXhpdCAx Ci0rKHRlc3QgLWYgY29uZmlndXJlLmFjKSB8fCB7Ci0rICAgICAgICBlY2hvICIqKiogRVJST1I6 IERpcmVjdG9yeSAnJHNyY2RpcicgZG9lcyBub3QgbG9vayBsaWtlIHRoZSB0b3AtbGV2ZWwgcHJv amVjdCBkaXJlY3RvcnkgKioqIgotKyAgICAgICAgZXhpdCAxCi0gfQotIAotLXdoaWNoIGdub21l LWF1dG9nZW4uc2ggfHwgewotLSAgICBlY2hvICJZb3UgbmVlZCB0byBpbnN0YWxsIGdub21lLWNv bW1vbiBtb2R1bGUgYW5kIG1ha2UiCi0tICAgIGVjaG8gInN1cmUgdGhlIGdub21lLWF1dG9nZW4u c2ggc2NyaXB0IGlzIGluIHlvdXIgXCRQQVRILiIKLS0gICAgZXhpdCAxCi0tfQotKyMgc2hlbGxj aGVjayBkaXNhYmxlPVNDMjAxNgotK1BLR19OQU1FPSQoYXV0b2NvbmYgLS10cmFjZSAnQUNfSU5J VDokMScgY29uZmlndXJlLmFjKQotKwotK2lmIFsgIiQjIiA9IDAgLWEgIngkTk9DT05GSUdVUkUi ID0gIngiIF07IHRoZW4KLSsgICAgICAgIGVjaG8gIioqKiBXQVJOSU5HOiBJIGFtIGdvaW5nIHRv IHJ1biAnY29uZmlndXJlJyB3aXRoIG5vIGFyZ3VtZW50cy4iID4mMgotKyAgICAgICAgZWNobyAi KioqIElmIHlvdSB3aXNoIHRvIHBhc3MgYW55IHRvIGl0LCBwbGVhc2Ugc3BlY2lmeSB0aGVtIG9u IHRoZSIgPiYyCi0rICAgICAgICBlY2hvICIqKiogJyQwJyBjb21tYW5kIGxpbmUuIiA+JjIKLSsg ICAgICAgIGVjaG8gIiIgPiYyCi0rZmkKLSsKLSthY2xvY2FsIC0taW5zdGFsbCB8fCBleGl0IDEK LStndGtkb2NpemUgLS1jb3B5IHx8IGV4aXQgMQotK2ludGx0b29saXplIC0tZm9yY2UgLS1jb3B5 IC0tYXV0b21ha2UgfHwgZXhpdCAxCi0rYXV0b3JlY29uZiAtLXZlcmJvc2UgLS1mb3JjZSAtLWlu c3RhbGwgfHwgZXhpdCAxCi0rCi0rY2QgIiRvbGRkaXIiCi0raWYgWyAiJE5PQ09ORklHVVJFIiA9 ICIiIF07IHRoZW4KLSsgICAgICAgICRzcmNkaXIvY29uZmlndXJlICIkQCIgfHwgZXhpdCAxCi0g Ci0tLiBnbm9tZS1hdXRvZ2VuLnNoCi0rICAgICAgICBpZiBbICIkMSIgPSAiLS1oZWxwIiBdOyB0 aGVuCi0rICAgICAgICAgICAgICAgIGV4aXQgMAotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAg ICAgICBlY2hvICJOb3cgdHlwZSAnbWFrZScgdG8gY29tcGlsZSAkUEtHX05BTUUiIHx8IGV4aXQg MQotKyAgICAgICAgZmkKLStlbHNlCi0rICAgICAgICBlY2hvICJTa2lwcGluZyBjb25maWd1cmUg cHJvY2Vzcy4iCi0rZmkKLWRpZmYgLS1naXQgY29uZmlndXJlLmFjIGNvbmZpZ3VyZS5hYwotaW5k ZXggYTM1MjQ2NTYuLjYzOGU3ODAxIDEwMDY0NAotLS0tIGNvbmZpZ3VyZS5hYwotKysrIGNvbmZp Z3VyZS5hYwotQEAgLTMzLDYgKzMzLDggQEAgQU1fTUFJTlRBSU5FUl9NT0RFKFtlbmFibGVdKQot ICMgdG8gbWFrZQotIEFNX1NJTEVOVF9SVUxFUyhbeWVzXSkKLSAKLStBWF9DSEVDS19FTkFCTEVf REVCVUcoW3llc10sW0dOT01FX0VOQUJMRV9ERUJVR10pCi0rCi0gIyBDaGVja3MgZm9yIHByb2dy YW1zCi0gQUNfUFJPR19DQwotIEFDX1BST0dfSU5TVEFMTAotQEAgLTc5LDEwICs4MSw2IEBAIEFN X0NPTkRJVElPTkFMKEdMQURFX1VOU1RBQkxFLCB0ZXN0ICJ4JEdMQURFX1VOU1RBQkxFIiA9ICJ4 eWVzIikKLSAKLSAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLSAKLS1HTk9NRV9ERUJVR19DSEVDSwotLUdOT01FX0NPTVBJ TEVfV0FSTklOR1MoW21heGltdW1dKQotLUdOT01FX01BSU5UQUlORVJfTU9ERV9ERUZJTkVTCi0t Ci0gIyBGb3IgdGhlIHBsdWdpbnMsIHdlIGRvbid0IHVzZSB0aGUgd2FybmluZyBmbGFncyBkZWZp bmVkIGJ5IEdOT01FX0NPTVBJTEVfV0FSTklOR1MuCi0gIyBUaGVzZSBmbGFncyBpbmNsdWRlIC1X bWlzc2luZy1wcm90b3R5cGVzLCB3aGljaCB3ZSBwcmVmZXIgbm90IHRvIHVzZS4KLSBpZiB0ZXN0 ICJ4JEdDQyIgPSAieHllcyI7IHRoZW4KLS0tIAotMi4yNC4xCi0KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ2xhZGUzL3BhdGNoZXMvY29uZmlndXJlLXNoZWxsLXF1b3RlLnBhdGNoIGIvc3JjcGtncy9n bGFkZTMvcGF0Y2hlcy9jb25maWd1cmUtc2hlbGwtcXVvdGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGIzYzYwY2NmMzY1Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ds YWRlMy9wYXRjaGVzL2NvbmZpZ3VyZS1zaGVsbC1xdW90ZS5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDExICswLDAgQEAKLS0tLSBjb25maWd1cmUuYWMKLSsrKyBjb25maWd1cmUuYWMKLUBAIC0y NzksNyArMjc5LDcgQEAKLSBkbmwgQ2hlY2sgZm9yIEdESyBRdWFydHogYW5kIE1hY09TWCBpbnRl Z3JhdGlvbiBwYWNrYWdlIAotIGRubCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gX2dka190Z3Q9YCRQS0dfQ09ORklHIC0t dmFyaWFibGU9dGFyZ2V0cyBnZGstMy4wYAotLUFNX0NPTkRJVElPTkFMKFtHREtfVEFSR0VUX1FV QVJUWl0sIFt0ZXN0IHgkX2dka190Z3QgPSB4cXVhcnR6XSkKLStBTV9DT05ESVRJT05BTChbR0RL X1RBUkdFVF9RVUFSVFpdLCBbdGVzdCAieCRfZ2RrX3RndCIgPSB4cXVhcnR6XSkKLSBpZiB0ZXN0 ICJ4JF9nZGtfdGd0IiA9IHhxdWFydHo7IHRoZW4gCi0gICAgUEtHX0NIRUNLX01PRFVMRVMoR1RL X01BQywgZ3RrLW1hYy1pbnRlZ3JhdGlvbi1ndGszKQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9n bGFkZTMvcGF0Y2hlcy9jcm9zcy5wYXRjaCBiL3NyY3BrZ3MvZ2xhZGUzL3BhdGNoZXMvY3Jvc3Mu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzYjFkN2U4NDZlLi4wMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2Nyb3NzLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNDAgKzAsMCBAQAotLS0tIG00L3B5dGhvbi5tNAotKysrIG00L3B5dGhvbi5tNAot QEAgLTQzLDE3ICs0Myw5IEBACi0gW0FDX1JFUVVJUkUoW0FNX1BBVEhfUFlUSE9OXSkKLSBBQ19N U0dfQ0hFQ0tJTkcoZm9yIGhlYWRlcnMgcmVxdWlyZWQgdG8gY29tcGlsZSBweXRob24gZXh0ZW5z aW9ucykKLSBkbmwgZGVkdWNlIFBZVEhPTl9JTkNMVURFUwotLWFtX3B5dGhvbl9wcmludF9pbmNs dWRlcz0iXAotLWZyb20gZGlzdHV0aWxzIGltcG9ydCBzeXNjb25maWcgYXMgc2MKLS1pbmNsZGly cyA9IFtbXV0KLS0KLS1mb3IgZCBpbiBzYy5nZXRfY29uZmlnX3ZhcignSU5DTERJUlNUT01BS0Un KS5zcGxpdCgpOgotLSAgICBpbmNsZGlycy5hcHBlbmQoJy1JJyArIGQpCi0tCi0tcHJpbnQoJyAn LmpvaW4oaW5jbGRpcnMpKQotLSIKLSt4YnBzX3N5c3Jvb3Q9YCRDQyAtLXByaW50LXN5c3Jvb3Rg Ci0gaWYgdGVzdCAieCRQWVRIT05fSU5DTFVERVMiID09IHg7IHRoZW4KLS0gIFBZVEhPTl9JTkNM VURFUz1gJFBZVEhPTiAtYyAiJGFtX3B5dGhvbl9wcmludF9pbmNsdWRlcyJgCi0rICBQWVRIT05f SU5DTFVERVM9YCIkeGJwc19zeXNyb290LyRQWVRIT04tY29uZmlnIiAtLWluY2x1ZGVzYAotIGZp Ci0gQUNfU1VCU1QoUFlUSE9OX0lOQ0xVREVTKQotIGRubCBjaGVjayBpZiB0aGUgaGVhZGVycyBl eGlzdDoKLUBAIC03NCwxNiArNjYsMTEgQEAKLSBbQUNfUkVRVUlSRShbQU1fQ0hFQ0tfUFlUSE9O X0hFQURFUlNdKQotIEFDX01TR19DSEVDS0lORyhmb3IgbGlicmFyaWVzIHJlcXVpcmVkIHRvIGVt YmVkIHB5dGhvbikKLSBkbmwgZGVkdWNlIFBZVEhPTl9MSUJTCi0tYW1fcHl0aG9uX3ByaW50X2xp YnM9IlwKLS1mcm9tIGRpc3R1dGlscyBpbXBvcnQgc3lzY29uZmlnIGFzIHNjCi0tbGlicyA9ICct TCcgKyBzYy5nZXRfY29uZmlnX3ZhcignTElCRElSJykuc3RyaXAoKQotLWxpYnMgKz0gJyAnICsg c2MuZ2V0X2NvbmZpZ192YXIoJ0JMRExJQlJBUlknKQotLXByaW50KGxpYnMpIgotIGFtX3B5dGhv bl9wcmludF9saWJfbG9jPSJcCi0gZnJvbSBkaXN0dXRpbHMgaW1wb3J0IHN5c2NvbmZpZyBhcyBz YwotIHByaW50KHNjLmdldF9jb25maWdfdmFyKCdMSUJESVInKSkiCi0gaWYgdGVzdCAieCRQWVRI T05fTElCUyIgPT0geDsgdGhlbgotLQlQWVRIT05fTElCUz1gJFBZVEhPTiAtYyAiJGFtX3B5dGhv bl9wcmludF9saWJzImAKLSsJUFlUSE9OX0xJQlM9YCIkeGJwc19zeXNyb290LyRQWVRIT04tY29u ZmlnIiAtLWxkZmxhZ3MgLS1lbWJlZGAKLSBmaQotIGlmIHRlc3QgIngkUFlUSE9OX0xJQl9MT0Mi ID09IHg7IHRoZW4KLSAJUFlUSE9OX0xJQl9MT0M9YCRQWVRIT04gLWMgIiRhbV9weXRob25fcHJp bnRfbGliX2xvYyJgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsYWRlMy90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ2xhZGUzL3RlbXBsYXRlCmluZGV4IDkxMGMxMzhkZjZhLi5kM2Q4ZTBkNWRjZiAxMDA2NDQK LS0tIGEvc3JjcGtncy9nbGFkZTMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbGFkZTMvdGVtcGxh dGUKQEAgLTEsMzIgKzEsMjcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dsYWRlMycKIHBrZ25h bWU9Z2xhZGUzCi12ZXJzaW9uPTMuMjIuMgordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIHdy a3NyYz0iZ2xhZGUtJHt2ZXJzaW9ufSIKLWJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2J1aWxk X3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItLWRpc2Fi bGUtc3RhdGljIC0tZW5hYmxlLWRlYnVnPWluZm8gUFlUSE9OPS91c3IvYmluL3B5dGhvbjMKLSAt LWVuYWJsZS1nbGFkZXVpICQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pIgorY29uZmln dXJlX2FyZ3M9Ii1EZ3RrX2RvYz10cnVlIC1EbWFuPXRydWUgJCh2b3B0X2Jvb2wgZ2lyIGludHJv c3BlY3Rpb24pIgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGdub21lLWRvYy11dGlscyBp bnRsdG9vbCBpdHN0b29sIHBrZy1jb25maWcKLSBhdXRvbWFrZSBhdXRvY29uZi1hcmNoaXZlIGxp YnRvb2wgeWVscC10b29scyBnZXR0ZXh0LWRldmVsIGd0ay1kb2MiCi1tYWtlZGVwZW5kcz0iZ3Rr KzMtZGV2ZWwgcHl0aG9uMy1nb2JqZWN0LWRldmVsIHdlYmtpdDJndGstZGV2ZWwiCisgZ2pzLWRl dmVsIHllbHAtdG9vbHMgZ2V0dGV4dC1kZXZlbCBndGstZG9jIgorbWFrZWRlcGVuZHM9Imd0aysz LWRldmVsIHB5dGhvbjMtZ29iamVjdC1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIGdqcy1kZXZlbCIK IGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUiCiBzaG9ydF9k ZXNjPSJVc2VyIEludGVyZmFjZSBEZXNpZ25lciBmb3IgR1RLKzMiCiBtYWludGFpbmVyPSJPcnBo YW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwg TEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL2dsYWRlLmdub21lLm9yZy8iCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ2xhZGUvJHt2ZXJzaW9uJS4qfS9nbGFkZS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPWVkZWZhNmViMjRiNGQxNWJkNTI1ODkxMjFkYzEwOWJjMDhj Mjg2MTU3YzQxMjg4ZGViNzRkZDljYzNmMjZhMjEKK2NoZWNrc3VtPTRhOTE0YzVjMGIxOWMyZTUy ZmQ0YWQxNTA3N2Q0MDZkYmZkNmFkMDI0NWUyMzlkNzM5MGJmODdmMjdkOTEwM2MKIGxpYjMyZGlz YWJsZWQ9eWVzCiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCiBidWlsZF9vcHRpb25zPSJnaXIi CiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAotcHJlX2NvbmZpZ3VyZSgpIHsKLQlOT0NP TkZJR1VSRT0xIC4vYXV0b2dlbi5zaAotfQotCiBkb19jaGVjaygpIHsKIAkjIFJlcXVpcmUgcnVu bmluZyB4c2VydmVyCiAJOgoKRnJvbSA5MzhlYmMwOWQ2NWZjODdlMjYwOTA3YjBkYWUzYjRjZmNj NGJmZTUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1D Mz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdt YWlsLmNvbT4KRGF0ZTogVHVlLCAxNSBTZXAgMjAyMCAwNTozODo1NSArMDcwMApTdWJqZWN0OiBb UEFUQ0ggMDE1LzEwMl0gbGliaGFuZHk6IHJlYnVpbGQgZm9yIGdsYWRlMy0zLjM4LjAsIG1vdmVk IHRvIEdOT01FCgotLS0KIHNyY3BrZ3MvbGliaGFuZHkvdGVtcGxhdGUgfCAxNCArKysrKysrKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9saWJoYW5keS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGliaGFuZHkv dGVtcGxhdGUKaW5kZXggMzg2NzJmMWZiNmUuLmMxOWMzODk3ZWZhIDEwMDY0NAotLS0gYS9zcmNw a2dzL2xpYmhhbmR5L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGliaGFuZHkvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJoYW5keScKIHBrZ25hbWU9bGli aGFuZHkKIHZlcnNpb249MC4wLjEzCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9Imxp YmhhbmR5LXYke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2ly IgpAQCAtMTQsMTQgKzE0LDIwIEBAIG1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBsaWJnbGliLWRl dmVsICQodm9wdF9pZiBnbGFkZSBnbGFkZTMtZGV2ZWwpIgogc2hvcnRfZGVzYz0iTGlicmFyeSBm dWxsIG9mIEdUSysgd2lkZ2V0cyBmb3IgbW9iaWxlIHBob25lcyIKIG1haW50YWluZXI9Ik9ycGhh bmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIK LWhvbWVwYWdlPSJodHRwczovL3NvdXJjZS5wdXJpLnNtL0xpYnJlbTUvbGliaGFuZHkiCi1kaXN0 ZmlsZXM9Imh0dHBzOi8vc291cmNlLnB1cmkuc20vTGlicmVtNS9saWJoYW5keS8tL2FyY2hpdmUv diR7dmVyc2lvbn0vbGliaGFuZHktdiR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09MTM4YmVj OTRlNjZkMTVhN2ExOTM1MGI2NTg0NWQ0NTI5YmNkOTY5ZWE5MTNhYjNlYjQzOGY1NmZlNDdkNWQz NworaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJoYW5keSIKK2Rp c3RmaWxlcz0iJGhvbWVwYWdlLy0vYXJjaGl2ZS92JHt2ZXJzaW9ufS9saWJoYW5keS12JHt2ZXJz aW9ufS50YXIuZ3oiCitjaGVja3N1bT02NDUzNTVhMDA5ZjIzZjI1NGVhZWM3NzUyYjk0ODljM2My ZjU4MzIzOTdmY2VjNzU0MzNhN2UwMGVmYmZlNTJmCiAKIGJ1aWxkX29wdGlvbnM9ImdpciB2YWxh IGdsYWRlIgogZGVzY19vcHRpb25fZ2xhZGU9IkdlbmVyYXRlIGdsYWRlIG1vZHVsZXMgYW5kIGNh dGFsb2cgZmlsZXMiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIGdsYWRlIgogCisj IGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJoYW5keS8tL21lcmdlX3JlcXVlc3Rz LzU1OQorQ0ZMQUdTPSItREdQQ19PQkpFQ1RfREVMSU1JVEVSPUdMQURFX1BST1BFUlRZX0RFRl9P QkpFQ1RfREVMSU1JVEVSIgorQ0ZMQUdTKz0iIC1EZ2xhZGVfd2lkZ2V0X2FjdGlvbl9nZXRfY2xh c3M9Z2xhZGVfd2lkZ2V0X2FjdGlvbl9nZXRfZGVmIgorIyBodHRwczovL2dpdGxhYi5nbm9tZS5v cmcvR05PTUUvZ2xhZGUvLS9jb21taXQvYmI2MjZkZAorQ0ZMQUdTKz0iIC1ER1dBX0dFVF9DTEFT Uz1HTEFERV9XSURHRVRfQURBUFRPUl9HRVRfQURBUFRPUl9DTEFTUyIKKwogbGliaGFuZHktZGV2 ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0gZ3RrKzMtZGV2ZWwiCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgoK RnJvbSBlNzc3YWUyZWM1MGRiNmQ4YTVhYTdkMTc3MjljMDE1ZTlmMDE5MGFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9u LCAxNCBTZXAgMjAyMCAyMDozNDo0NiArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDE2LzEwMl0gbGli aGFuZHkxOiB1cGRhdGUgdG8gMS4wLjAKCi0tLQogc3JjcGtncy9saWJoYW5keTEvdGVtcGxhdGUg fCA3ICsrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJoYW5keTEvdGVtcGxhdGUgYi9zcmNwa2dzL2xp YmhhbmR5MS90ZW1wbGF0ZQppbmRleCAxOTFlNjk4YjBkNi4uNTQ3YWZjY2FhMTEgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvbGliaGFuZHkxL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGliaGFuZHkxL3Rl bXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliaGFuZHkxJwog cGtnbmFtZT1saWJoYW5keTEKLXZlcnNpb249MC45MC4wCit2ZXJzaW9uPTEuMC4wCiByZXZpc2lv bj0xCiB3cmtzcmM9ImxpYmhhbmR5LSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAt MTYsMTIgKzE2LDE1IEBAIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9y Zz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3NvdXJj ZS5wdXJpLnNtL0xpYnJlbTUvbGliaGFuZHkiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vbGli aGFuZHkvJHt2ZXJzaW9uJS4qfS9saWJoYW5keS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTZhYjA4NjlhM2FhNDgzMjk4ZWEyMGVjODlkNGMxNGMzOGJhNGRlNDE2YjMzMTgxZDIxZTE1YTYw MzlkZjU5ODUKK2NoZWNrc3VtPWE5Mzk4NTgyZjQ3YjdkNzI5MjA1ZDZlYWMwYzA2OGZlZjM1YWFm MjQ5ZmRkNTdlZWEzNzI0Zjg1MThkMjY2OTkKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIGdsYWRlIgog ZGVzY19vcHRpb25fZ2xhZGU9IkdlbmVyYXRlIGdsYWRlIG1vZHVsZXMgYW5kIGNhdGFsb2cgZmls ZXMiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciBnbGFkZSIKIAorIyBodHRwczovL2dpdGxh Yi5nbm9tZS5vcmcvR05PTUUvZ2xhZGUvLS9jb21taXQvYmI2MjZkZAorQ0ZMQUdTPSItREdXQV9H RVRfQ0xBU1M9R0xBREVfV0lER0VUX0FEQVBUT1JfR0VUX0FEQVBUT1JfQ0xBU1MiCisKIGxpYmhh bmR5MS1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSBndGsrMy1kZXZlbCIKIAljb25mbGljdHM9ImxpYmhhbmR5LWRldmVsPj0w IgoKRnJvbSBmNWFhZTRjMTVjYzk2NDI5OTBiMDFhYmNmZGEyOTQ0YjE5OTYzMWZmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1C QT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTog VHVlLCAxNSBTZXAgMjAyMCAwNTo0MTowMSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDE3LzEwMl0g bGlieGZjZTR1aTogcmVidWlsZCBmb3IgZ2xhZGUzLTMuMzguMAoKLS0tCiBzcmNwa2dzL2xpYnhm Y2U0dWkvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUgYi9z cmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUKaW5kZXggMjVhNWM0Nzk5NTUuLjBhNjJhZDE4MmI0 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9s aWJ4ZmNlNHVpL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn bGlieGZjZTR1aScKIHBrZ25hbWU9bGlieGZjZTR1aQogdmVyc2lvbj00LjE0LjEKLXJldmlzaW9u PTQKK3JldmlzaW9uPTUKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0i Z2lyIgogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMiCgpGcm9tIDFiNzc1MGUyOGJl MjBmYTFiM2NkZDMwZWRjMzgzYWRlMmIyOWIwYWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMTgvMTAyXSBsaWJkYXp6bGU6 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9saWJkYXp6bGUvdGVtcGxhdGUgfCAyNCAr KysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCsp LCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmRhenpsZS90ZW1wbGF0 ZSBiL3NyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlCmluZGV4IDVhYzA5ZmVlZmM5Li45YjgwN2Jl OTQ3NCAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJkYXp6bGUvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9saWJkYXp6bGUvdGVtcGxhdGUKQEAgLTEsMjMgKzEsMjkgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2xpYmRhenpsZScKIHBrZ25hbWU9bGliZGF6emxlCi12ZXJzaW9uPTMuMzYuMAordmVyc2lv bj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9Imdp ciIKLWNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZV9ndGtfZG9jPWZhbHNlIC1Ed2l0aF92YXBpPSQo dm9wdF9pZiB2YWxhIHRydWUgZmFsc2UpCi0gLUR3aXRoX2ludHJvc3BlY3Rpb249JCh2b3B0X2lm IGdpciB0cnVlIGZhbHNlKSIKLWhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBwa2ctY29uZmln ICQodm9wdF9pZiB2YWxhICd2YWxhJykiCitjb25maWd1cmVfYXJncz0iLURlbmFibGVfZ3RrX2Rv Yz1mYWxzZQorICQodm9wdF9ib29sIGdpciB3aXRoX3ZhcGkpCisgJCh2b3B0X2Jvb2wgZ2lyIHdp dGhfaW50cm9zcGVjdGlvbikiCitob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtnLWNvbmZp ZyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9Imd0ayszLWRldmVsIGxpYmdsaWIt ZGV2ZWwiCiBzaG9ydF9kZXNjPSJMaWJyYXJ5IHRvIGRlbGlnaHQgeW91ciB1c2VycyB3aXRoIGZh bmN5IGZlYXR1cmVzIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgu b3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRs YWIuZ25vbWUub3JnL0dOT01FL2xpYmRhenpsZSIKLWNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0 aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2xpYmRhenpsZS9saWJkYXp6bGUtMy0zMi9ORVdTIgor Y2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGliZGF6emxlLy0vcmF3 LyR7dmVyc2lvbn0vTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9saWJkYXp6bGUvJHt2 ZXJzaW9uJS4qfS9saWJkYXp6bGUtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT04MmIzMWJi ZjU1MGZjNjI5NzBjNzhiZjdmOWQ1NWU1ZmFlNWI4ZWExM2IyNGZlMmQxM2M4YzYwMzk0MDlkOTU4 CitjaGVja3N1bT1lMThhZjI4MjE3OTQzYmNlYzEwNjU4NTI5OGE5MWVjM2RhNDhhYTNhZDYyZmQw OTkyZjIzZjBjNzBjZDE2NzhmCiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0 aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlv bnNfZGVmYXVsdD0iZ2lyIgorCisjIG5lZWRzIFgKK2RvX2NoZWNrKCkgeworCToKK30KIAogbGli ZGF6emxlLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9LSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0gZ3RrKzMtZGV2ZWwiCkBAIC0yOCw4ICszNCw2IEBAIGxpYmRhenpsZS1k ZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQlpZiBbICIkYnVpbGRf b3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKLQkJZmkKLQkJ aWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFs YQogCQlmaQogCX0KCkZyb20gNDI0M2IyZmUwOWNkMmVlYWJiNjkzNTE5ZDMyY2RmMWE5YzU1YmMz YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBu PTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5j b20+CkRhdGU6IFR1ZSwgMTUgU2VwIDIwMjAgMDU6NDM6MTMgKzA3MDAKU3ViamVjdDogW1BBVENI IDAxOS8xMDJdIGFuanV0YTogcmVidWlsZCBmb3IgZ2xhZGUzLTMuMzguMCwgdmFsYS0wLjUwCgot LS0KIHNyY3BrZ3MvYW5qdXRhL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hbmp1dGEvdGVt cGxhdGUgYi9zcmNwa2dzL2FuanV0YS90ZW1wbGF0ZQppbmRleCBjMjFjOTI3Y2QxMi4uYjQ2ZDU4 YWVhZmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYW5qdXRhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv YW5qdXRhL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYW5q dXRhJwogcGtnbmFtZT1hbmp1dGEKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0zCityZXZpc2lv bj00CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciBxZW11Igog Y29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1jb21waWxlLXdhcm5pbmdzIC0tZGlzYWJsZS1zY2hl bWFzLWNvbXBpbGUKCkZyb20gNGI3YWY5ZTM2MDZmOWQ1MzM1MmM4OTQ1Y2Q4NzNjNzIxNjI0MGQ5 ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDU6Mjg6MTQgKzAyMDAKU3ViamVj dDogW1BBVENIIDAyMC8xMDJdIHN5c3Byb2Y6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogY29tbW9u L3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiAuLi4vcGF0 Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6ZS1mb3JtYXQucGF0Y2ggfCAgMTIgLS0KIHNyY3BrZ3Mv c3lzcHJvZi9wYXRjaGVzL2J1aWxkLnBhdGNoICAgICAgICAgICB8ICAxMCArKwogc3JjcGtncy9z eXNwcm9mL3BhdGNoZXMvbXVzbC5wYXRjaCAgICAgICAgICAgIHwgMTI1ICsrKysrKysrKysrKysr KysrKwogc3JjcGtncy9zeXNwcm9mL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICA0 ICstCiA1IGZpbGVzIGNoYW5nZWQsIDEzOSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnktc2l6 ZS1nc2l6ZS1mb3JtYXQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3N5c3Byb2Yv cGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc3lzcHJvZi9w YXRjaGVzL211c2wucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3No bGlicwppbmRleCA0Yjc2NzliZjhhYy4uZTM4ZWM4NWRlYzEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9z aGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzE1Myw4ICszMTUzLDggQEAgbGlibWlyYWdl LnNvLjExIGxpYm1pcmFnZS0zLjEuMF8xCiBsaWJ3a2h0bWx0b3guc28uMCBsaWJ3a2h0bWx0b3Bk Zi0wLjEyLjVfMQogbGliaXhtbC5zby4xMCBsaWJ1cG5wMS44LTEuOC4yXzEKIGxpYnVwbnAuc28u MTMgbGlidXBucDEuOC0xLjguNF8xCi1saWJzeXNwcm9mLTMuc28gc3lzcHJvZi0zLjM0LjBfMQot bGlic3lzcHJvZi11aS0zLnNvIHN5c3Byb2YtMy4zNC4wXzEKK2xpYnN5c3Byb2YtNC5zbyBzeXNw cm9mLTMuMzcuOTBfMQorbGlic3lzcHJvZi11aS00LnNvIHN5c3Byb2YtMy4zNy45MF8xCiBsaWJt b3pqcy01Mi5zbyBtb3pqczUyLTUyLjMuMF8xCiBsaWJtb3pqcy01Mi5zby4wIG1vempzNTItNTIu My4wXzEKIGxpYnZhbGEtMC41MC5zby4wIGxpYnZhbGEtMC41MC4wXzEKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2FsbG9jcy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRjaCBi L3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2FsbG9jcy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWZlZTA3ZWJiYzIuLjAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2FsbG9jcy1ieS1zaXplLWdzaXplLWZvcm1h dC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLWRpZmYgLXJhdU4gc3JjL3Rl c3RzL2FsbG9jcy1ieS1zaXplLmMgc3JjL3Rlc3RzL2FsbG9jcy1ieS1zaXplLmMKLS0tLSBzcmMv dGVzdHMvYWxsb2NzLWJ5LXNpemUuYwkyMDIwLTAzLTIyIDIwOjAwOjEyLjY3NzA0ODgyMiArMDEw MAotKysrIHNyYy90ZXN0cy9hbGxvY3MtYnktc2l6ZS5jCTIwMjAtMDMtMjIgMjA6MDE6MDcuMDAw NDE4MzYxICswMTAwCi1AQCAtMTA5LDcgKzEwOSw3IEBACi0gICAgIHsKLSAgICAgICBjb25zdCBJ dGVtICppdGVtID0gJmdfYXJyYXlfaW5kZXggKGFyLCBJdGVtLCBpKTsKLSAKLS0gICAgICBnX3By aW50ICgiJSJHX0dVSU5UNjRfRk9STUFUIiwlIkdfR1VJTlQ2NF9GT1JNQVQiLCUiR19HVUlOVDY0 X0ZPUk1BVCJcbiIsCi0rICAgICAgZ19wcmludCAoIiUiR19HU0laRV9GT1JNQVQiLCUiR19HU0la RV9GT1JNQVQiLCUiR19HU0laRV9GT1JNQVQiXG4iLAotICAgICAgICAgICAgICAgIGl0ZW0tPnNp emUsIGl0ZW0tPmNtcCwgaXRlbS0+Y291bnQpOwotICAgICB9Ci0gfQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9zeXNwcm9mL3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hl cy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWI3 YzJjMWMxNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWls ZC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNw cm9mLWNhcHR1cmUtY29uZGl0aW9uLmMKKysrKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3By b2YtY2FwdHVyZS1jb25kaXRpb24uYworQEAgLTI2OSw2ICsyNjksNyBAQCBzeXNwcm9mX2NhcHR1 cmVfY29uZGl0aW9uX2NvcHkgKGNvbnN0IFN5c3Byb2ZDYXB0dXJlQ29uZGl0aW9uICpzZWxmKQor ICAgICB9CisgCisgICBzeXNwcm9mX2Fzc2VydF9ub3RfcmVhY2hlZCAoKTsKKysgIHJldHVybiBO VUxMOworIH0KKyAKKyBzdGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEvc3JjcGtncy9zeXNwcm9mL3Bh dGNoZXMvbXVzbC5wYXRjaCBiL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL211c2wucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUxZjQyMTI4ODkxCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvbXVzbC5wYXRjaApAQCAtMCwwICsx LDEyNSBAQAorRnJvbSAxZDJkZTMyZTk3YmY1NTY5Y2MzM2VlOWE5MGM4NzNlMWJiZDJiMWU2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K K0RhdGU6IFN1biwgNiBTZXAgMjAyMCAxODoyMTozNyArMDIwMAorU3ViamVjdDogW1BBVENIXSBm aXggYnVpbGQgb24gbXVzbAorCistLS0KKyAuLi4vc3lzcHJvZi1jYXB0dXJlLWN1cnNvci5jICAg ICAgICAgICAgICAgICAgfCAgMSArCisgLi4uL3N5c3Byb2YtY2FwdHVyZS1yZWFkZXIuYyAgICAg ICAgICAgICAgICAgIHwgIDEgKworIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0 dXJlLXV0aWwuYyB8ICAxICsKKyAuLi4vc3lzcHJvZi1jYXB0dXJlLXdyaXRlci1jYXQuYyAgICAg ICAgICAgICAgfCAgMSArCisgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNvbGxlY3Rv ci5jICAgIHwgIDEgKworIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jb21wYXQuaCAg ICAgICB8IDI4ICsrKysrKysrKysrKysrKysrKysKKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5 c3Byb2YtcGxhdGZvcm0uYyAgICAgfCAgMSArCisgNyBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRp b25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJv Zi1jb21wYXQuaAorCitkaWZmIC0tZ2l0IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1j YXB0dXJlLWN1cnNvci5jIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWN1 cnNvci5jCitpbmRleCAyNDU2M2YwLi5iYjc3YTYwIDEwMDY0NAorLS0tIHNyYy9saWJzeXNwcm9m LWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWN1cnNvci5jCisrKysgc3JjL2xpYnN5c3Byb2YtY2Fw dHVyZS9zeXNwcm9mLWNhcHR1cmUtY3Vyc29yLmMKK0BAIC01OSw2ICs1OSw3IEBACisgI2luY2x1 ZGUgPGFzc2VydC5oPgorICNpbmNsdWRlIDxzdGRsaWIuaD4KKyAKKysjaW5jbHVkZSAic3lzcHJv Zi1jb21wYXQuaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1jYXB0dXJlLWNvbmRpdGlvbi5oIgorICNp bmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtY3Vyc29yLmgiCisgI2luY2x1ZGUgInN5c3Byb2YtY2Fw dHVyZS1yZWFkZXIuaCIKK2RpZmYgLS1naXQgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9m LWNhcHR1cmUtcmVhZGVyLmMgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUt cmVhZGVyLmMKK2luZGV4IDY3YzZiMjguLjI1MmQwMDYgMTAwNjQ0CistLS0gc3JjL2xpYnN5c3By b2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmMKKysrKyBzcmMvbGlic3lzcHJvZi1j YXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1yZWFkZXIuYworQEAgLTY4LDYgKzY4LDcgQEAKKyAjaW5j bHVkZSA8c3lzL3R5cGVzLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorIAorKyNpbmNsdWRlICJz eXNwcm9mLWNvbXBhdC5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmgiCisg I2luY2x1ZGUgInN5c3Byb2YtY2FwdHVyZS11dGlsLXByaXZhdGUuaCIKKyAjaW5jbHVkZSAic3lz cHJvZi1jYXB0dXJlLXdyaXRlci5oIgorZGlmZiAtLWdpdCBzcmMvbGlic3lzcHJvZi1jYXB0dXJl L3N5c3Byb2YtY2FwdHVyZS11dGlsLmMgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNh cHR1cmUtdXRpbC5jCitpbmRleCAwYmJlYTA2Li4wZTVmN2U3IDEwMDY0NAorLS0tIHNyYy9saWJz eXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXV0aWwuYworKysrIHNyYy9saWJzeXNwcm9m LWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXV0aWwuYworQEAgLTU2LDYgKzU2LDcgQEAKKyAKKyAj aW5jbHVkZSAiY29uZmlnLmgiCisgCisrI2luY2x1ZGUgPHN0ZGludC5oPgorICNpbmNsdWRlIDxh c3NlcnQuaD4KKyAjaW5jbHVkZSA8ZXJybm8uaD4KKyAjaW5jbHVkZSA8dW5pc3RkLmg+CitkaWZm IC0tZ2l0IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXdyaXRlci1jYXQu YyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS13cml0ZXItY2F0LmMKK2lu ZGV4IDY2MTcxYjkuLjlmZWJiYmIgMTAwNjQ0CistLS0gc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9z eXNwcm9mLWNhcHR1cmUtd3JpdGVyLWNhdC5jCisrKysgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9z eXNwcm9mLWNhcHR1cmUtd3JpdGVyLWNhdC5jCitAQCAtNjMsNiArNjMsNyBAQAorICNpbmNsdWRl IDxzdGRsaWIuaD4KKyAjaW5jbHVkZSA8dW5pc3RkLmg+CisgCisrI2luY2x1ZGUgInN5c3Byb2Yt Y29tcGF0LmgiCisgI2luY2x1ZGUgInN5c3Byb2YtY2FwdHVyZS5oIgorICNpbmNsdWRlICJzeXNw cm9mLW1hY3Jvcy1pbnRlcm5hbC5oIgorIAorZGlmZiAtLWdpdCBzcmMvbGlic3lzcHJvZi1jYXB0 dXJlL3N5c3Byb2YtY29sbGVjdG9yLmMgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNv bGxlY3Rvci5jCitpbmRleCAxZDdhMGQ2Li43YWY2Yzk2IDEwMDY0NAorLS0tIHNyYy9saWJzeXNw cm9mLWNhcHR1cmUvc3lzcHJvZi1jb2xsZWN0b3IuYworKysrIHNyYy9saWJzeXNwcm9mLWNhcHR1 cmUvc3lzcHJvZi1jb2xsZWN0b3IuYworQEAgLTczLDYgKzczLDcgQEAKKyAKKyAjaW5jbHVkZSAi bWFwcGVkLXJpbmctYnVmZmVyLmgiCisgCisrI2luY2x1ZGUgInN5c3Byb2YtY29tcGF0LmgiCisg I2luY2x1ZGUgInN5c3Byb2YtY2FwdHVyZS11dGlsLXByaXZhdGUuaCIKKyAjaW5jbHVkZSAic3lz cHJvZi1jb2xsZWN0b3IuaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1tYWNyb3MtaW50ZXJuYWwuaCIK K2RpZmYgLS1naXQgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNvbXBhdC5oIHNyYy9s aWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jb21wYXQuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAuLmFlOWJmMTAKKy0tLSAvZGV2L251bGwKKysrKyBzcmMvbGlic3lzcHJv Zi1jYXB0dXJlL3N5c3Byb2YtY29tcGF0LmgKK0BAIC0wLDAgKzEsMjggQEAKKysvKiBhZGRlZCBi eSBxNjYgQCB2b2lkIHRvIGZpeCBidWlsZCBvbiBtdXNsICovCisrCisrI3ByYWdtYSBvbmNlCisr CisrI2lmbmRlZiBfX0dMSUJDX18KKysKKysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUg PGVycm5vLmg+CisrCisrLyogZnJvbSBnbGliYyAqLworKyNpZm5kZWYgVEVNUF9GQUlMVVJFX1JF VFJZCisrIyBkZWZpbmUgVEVNUF9GQUlMVVJFX1JFVFJZKGV4cHJlc3Npb24pIFwKKysgIChfX2V4 dGVuc2lvbl9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICAgICh7IGxvbmcgaW50IF9fcmVzdWx0OyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICBkbyBfX3Jl c3VsdCA9IChsb25nIGludCkgKGV4cHJlc3Npb24pOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKysgICAgICAgd2hpbGUgKF9fcmVzdWx0ID09IC0xTCAmJiBlcnJubyA9PSBFSU5U Uik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgIF9fcmVzdWx0OyB9KSkK KysjZW5kaWYKKysKKytzdGF0aWMgaW5saW5lIHZvaWQgKnJlYWxsb2NhcnJheSh2b2lkICpwLCBz aXplX3Qgbm1lbWIsIHNpemVfdCBzeikgeworKyAgICBpZiAoc3ogJiYgKG5tZW1iID4gKChzaXpl X3QpLTEgLyBzeikpKSB7CisrICAgICAgICBlcnJubyA9IEVOT01FTTsKKysgICAgICAgIHJldHVy biBOVUxMOworKyAgICB9CisrICAgIHJldHVybiByZWFsbG9jKHAsIG5tZW1iICogc3opOworK30K KysKKysjZW5kaWYKK2RpZmYgLS1naXQgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLXBs YXRmb3JtLmMgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLXBsYXRmb3JtLmMKK2luZGV4 IGE4MGFiODkuLjA1YmQ1OTAgMTAwNjQ0CistLS0gc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNw cm9mLXBsYXRmb3JtLmMKKysrKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtcGxhdGZv cm0uYworQEAgLTYwLDYgKzYwLDcgQEAKKyAjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyAjaW5j bHVkZSA8dW5pc3RkLmg+CisgCisrI2luY2x1ZGUgInN5c3Byb2YtY29tcGF0LmgiCisgI2luY2x1 ZGUgInN5c3Byb2YtY2FwdHVyZS11dGlsLXByaXZhdGUuaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1w bGF0Zm9ybS5oIgorIAorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zeXNwcm9m L3RlbXBsYXRlIGIvc3JjcGtncy9zeXNwcm9mL3RlbXBsYXRlCmluZGV4IDY4YmNhNjAyNTUzLi5l YWU1MWVhNzM1NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9zeXNwcm9mL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ3N5c3Byb2YnCiBwa2duYW1lPXN5c3Byb2YKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMu MzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGVu YWJsZV9ndGs9dHJ1ZSAtRHN5c3RlbWR1bml0ZGlyPWRlbGV0ZW1lIgpAQCAtMTEsNyArMTEsNyBA QCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwOi8v c3lzcHJvZi5jb20vIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODY3MGRiNGRh Y2Y3YjIxOWQzMGM1NzVjNDY1YjE3YzhlZDY3MjRkYmFkZTM0N2YyY2RlOTU0OGJmZjAzOTEwOAor Y2hlY2tzdW09OGJjZDcyOGRjMmY3NGU2ZjU4OTQxMDM3MGRmYjFiODgwMTQ2OGJiM2NjMTgwM2Fh MjQwNzM1YTdjZmYyNDFjZQogCiAjIGZvciBJVFMgcnVsZXMKIGlmIFsgIiRDUk9TU19CVUlMRCIg XTsgdGhlbgoKRnJvbSBlMzEwZjljNjNhYTc3M2IyYjAxMzNkOTM1MzYxOTUxODI5YTU4MDRkIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDIxLzEwMl0gdHJhY2tlcjogdXBkYXRlIHRvIDIuMy42CgotLS0KIC4uLi90cmFja2Vy L3BhdGNoZXMvZmFpbGluZy10ZXN0LW11c2wucGF0Y2ggICB8IDI0ICsrKysrKysrKysrKysrKysr KysKIHNyY3BrZ3MvdHJhY2tlci90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICA5ICsr Ky0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RyYWNrZXIvcGF0Y2hlcy9mYWlsaW5nLXRlc3Qt bXVzbC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlci9wYXRjaGVzL2ZhaWxpbmct dGVzdC1tdXNsLnBhdGNoIGIvc3JjcGtncy90cmFja2VyL3BhdGNoZXMvZmFpbGluZy10ZXN0LW11 c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZmMThmMDZk ZTliCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90cmFja2VyL3BhdGNoZXMvZmFpbGluZy10 ZXN0LW11c2wucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorRnJvbSA1ZWU3ZDU4ZjE5NTQyZDFkYWM4 NzJiYWRkNzI2NjllZTI4OGJkMzE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBXZWQsIDE2IFNlcCAyMDIw IDIyOjExOjUwICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGRyb3AgdGVzdCB0aGF0IGZhaWxzIG9u IG11c2wKKworLS0tCisgdGVzdHMvbGlidHJhY2tlci1jb21tb24vbWVzb24uYnVpbGQgfCAxIC0K KyAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IHRlc3RzL2xpYnRy YWNrZXItY29tbW9uL21lc29uLmJ1aWxkIHRlc3RzL2xpYnRyYWNrZXItY29tbW9uL21lc29uLmJ1 aWxkCitpbmRleCA1NWI3YWRhLi42OTY4OGUwIDEwMDY0NAorLS0tIHRlc3RzL2xpYnRyYWNrZXIt Y29tbW9uL21lc29uLmJ1aWxkCisrKysgdGVzdHMvbGlidHJhY2tlci1jb21tb24vbWVzb24uYnVp bGQKK0BAIC0yLDcgKzIsNiBAQCBsaWJ0cmFja2VyX2NvbW1vbl90ZXN0cyA9IFsKKyAgICAgJ2Rh dGUtdGltZScsCisgICAgICdkYnVzJywKKyAgICAgJ2ZpbGUtdXRpbHMnLAorLSAgICAnc2NoZWQn LAorICAgICAndHlwZS11dGlscycsCisgICAgICd1dGlscycsCisgXQorLS0gCisyLjI4LjAKKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2VyL3RlbXBsYXRlIGIvc3JjcGtncy90cmFja2VyL3Rl bXBsYXRlCmluZGV4IDM3MDc0Y2IzNDhkLi44MTA2NzU2NzdmZSAxMDA2NDQKLS0tIGEvc3JjcGtn cy90cmFja2VyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdHJhY2tlci90ZW1wbGF0ZQpAQCAtMSwy MiArMSwyMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndHJhY2tlcicKIHBrZ25hbWU9dHJhY2tl cgotdmVyc2lvbj0yLjMuMQotcmV2aXNpb249MgordmVyc2lvbj0yLjMuNgorcmV2aXNpb249MQog YnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1E ZG9jcz1mYWxzZSAtRGZ0cz10cnVlIC1EZnVuY3Rpb25hbF90ZXN0cz1mYWxzZQogIC1Eam91cm5h bD10cnVlIC1EbWFuPXRydWUgLURuZXR3b3JrX21hbmFnZXI9ZW5hYmxlZCAtRHN0ZW1tZXI9ZGlz YWJsZWQKICAtRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1ubyIKLWhvc3RtYWtlZGVwZW5kcz0icGtn LWNvbmZpZyBnbGliLWRldmVsIHZhbGEiCitob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNv bmZpZyBnbGliLWRldmVsIHZhbGEiCiBtYWtlZGVwZW5kcz0iZGJ1cy1kZXZlbCBsaWJnbGliLWRl dmVsIGljdS1kZXZlbCBqc29uLWdsaWItZGV2ZWwKICBsaWJzb3VwLWRldmVsIGxpYnhtbDItZGV2 ZWwgc3FsaXRlLWRldmVsIE5ldHdvcmtNYW5hZ2VyLWRldmVsCiAgYmFzaC1jb21wbGV0aW9uIgor Y2hlY2tkZXBlbmRzPSJ0YXIiCiBzaG9ydF9kZXNjPSJQZXJzb25hbCBzZWFyY2ggdG9vbCBhbmQg c3RvcmFnZSBzeXN0ZW0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2xpdmUu Z25vbWUub3JnL1RyYWNrZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdHJhY2tlci8ke3Zl cnNpb24lLip9L3RyYWNrZXItJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iNjc0ODcyNmU0 NjVhZDJmNGQ5OTE1NjA2MzRiMWZkMGRmODg0MWYzZDk4MWIzYjgzN2M0MTYyYWJlZGYwOGExCitj aGVja3N1bT1iZDFlYjQxMjIxMzUyOTZmYTdiNTdiMWMzZmEwZWQ2MDJjZjdkMDZjMGI4ZTUzNGQw YmQxN2ZmNWY5N2ZlZWYyCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWhvc3RtYWtl ZGVwZW5kcys9IiBkYnVzIgoKRnJvbSBjYjgwNDM1OTY3OTE2ODAwYzc5ODIyYjAyYTUzMzQyMzQ1 ZjBjYjUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMDoyMjoxMSArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDIyLzEwMl0gdHJhY2tlci1taW5lcnM6IHVwZGF0ZSB0byAyLjMuNQoK LS0tCiBzcmNwa2dzL3RyYWNrZXItbWluZXJzL3RlbXBsYXRlIHwgMTcgKysrKysrKysrLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdHJhY2tl ci1taW5lcnMvdGVtcGxhdGUKaW5kZXggMDIwYzEyNGYzMjIuLjYwMGQxNDQyMThjIDEwMDY0NAot LS0gYS9zcmNwa2dzL3RyYWNrZXItbWluZXJzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdHJhY2tl ci1taW5lcnMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0 cmFja2VyLW1pbmVycycKIHBrZ25hbWU9dHJhY2tlci1taW5lcnMKLXZlcnNpb249Mi4zLjEKLXJl dmlzaW9uPTMKK3ZlcnNpb249Mi4zLjUKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBj b25maWd1cmVfYXJncz0iLUR0cmFja2VyX2NvcmU9c3lzdGVtIC1EZG9jcz1mYWxzZSAtRGV4dHJh Y3Q9dHJ1ZQogIC1EZnVuY3Rpb25hbF90ZXN0cz1mYWxzZSAtRGN1ZT1lbmFibGVkIC1EZXhpZj1l bmFibGVkIC1EZmxhYz1lbmFibGVkCkBAIC0xMCwyMSArMTAsMjIgQEAgY29uZmlndXJlX2FyZ3M9 Ii1EdHJhY2tlcl9jb3JlPXN5c3RlbSAtRGRvY3M9ZmFsc2UgLURleHRyYWN0PXRydWUKICAtRHRp ZmY9ZW5hYmxlZCAtRHZvcmJpcz1lbmFibGVkIC1EeG1sPWVuYWJsZWQgLUR4bXA9ZW5hYmxlZCAt RHhwcz1lbmFibGVkCiAgLURiYXR0ZXJ5X2RldGVjdGlvbj11cG93ZXIgLURjaGFyc2V0X2RldGVj dGlvbj1pY3UKICAtRGdlbmVyaWNfbWVkaWFfZXh0cmFjdG9yPWdzdHJlYW1lciAtRGdzdHJlYW1l cl9iYWNrZW5kPWRpc2NvdmVyZXIKLSAtRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1ubyIKKyAtRHN5 c3RlbWRfdXNlcl9zZXJ2aWNlcz1ubyAtRG1pbmVyX3Jzcz1mYWxzZSIKIGhvc3RtYWtlZGVwZW5k cz0icGtnLWNvbmZpZyBnbGliLWRldmVsIGludGx0b29sIgogbWFrZWRlcGVuZHM9InRyYWNrZXIt ZGV2ZWwgZmZtcGVnLWRldmVsIGRidXMtZGV2ZWwgZXhlbXBpLWRldmVsIGxpYmZsYWMtZGV2ZWwK ICBsaWJnbGliLWRldmVsIGxpYmdleGl2Mi1kZXZlbCBnc3RyZWFtZXIxLWRldmVsIGljdS1kZXZl bCBsaWJjdWUtZGV2ZWwKICBsaWJleGlmLWRldmVsIGxpYmdzZi1kZXZlbCBsaWJneHBzLWRldmVs IGxpYmlwdGNkYXRhLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwKICBsaWJvc2luZm8tZGV2ZWwg bGlicG5nLWRldmVsIGxpYnNlY2NvbXAtZGV2ZWwgdGlmZi1kZXZlbCBsaWJ4bWwyLWRldmVsCiAg bGlidm9yYmlzLWRldmVsIHBvcHBsZXItZ2xpYi1kZXZlbCB0YWdsaWItZGV2ZWwgdG90ZW0tcGwt cGFyc2VyLWRldmVsCi0gdXBvd2VyLWRldmVsIHpsaWItZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEt ZGV2ZWwgZ2lmbGliLWRldmVsIgorIHVwb3dlci1kZXZlbCB6bGliLWRldmVsIGdzdC1wbHVnaW5z LWJhc2UxLWRldmVsIGdpZmxpYi1kZXZlbCBsaWJoYXJmYnV6eiIKIHNob3J0X2Rlc2M9IkRhdGEg bWluZXJzIGZvciB0cmFja2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9kZXZlbG9wZXIuZ25vbWUub3JnL2xpYnRyYWNrZXItbWluZXIvc3RhYmxlIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9L3RyYWNrZXItbWluZXJzLyR7dmVyc2lvbiUuKn0vdHJhY2tlci1taW5l cnMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03YjFkZTA2YTdhNzllYTFjNzgxM2M4YTIx ZjhjZDFjNTVmMmI5NWY3OTljZjlmNDdmMDIwNGYzYmU4YTU5MGUwCitjaGVja3N1bT05NTA5ZDM3 ZmIyOWFjZDIzMzA1OGY0ZGY1YmQxMjM0YjY5MmFjNmY5NDZiYzJlNWY3YjhkYmY1MWRmZTViOWZh CiAKLSMgTWlzc2luZyBsaWJncnNzCi1jb25maWd1cmVfYXJncys9IiAtRG1pbmVyX3Jzcz1mYWxz ZSIKLW1ha2VkZXBlbmRzKz0iIGxpYmhhcmZidXp6IgorIyByZWxpZXMgb24gdW5zdXBwb3J0ZWQg b3BzIGluIGNocm9vdAorZG9fY2hlY2soKSB7CisJOgorfQoKRnJvbSBjNzE2NjMwZWUwYWM4MDc1 MzM0MmM2ZGY1MjUyMzk5YzM4NWViNWEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAy MCAwMDoxNTo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIzLzEwMl0gTmV3IHBhY2thZ2U6IHRy YWNrZXIzLTMuMC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgfCAgMyArKy0KIHNy Y3BrZ3MvbGlidHJhY2tlcjMgICAgICAgfCAgMSArCiBzcmNwa2dzL3RyYWNrZXIzLWRldmVsICAg IHwgIDEgKwogc3JjcGtncy90cmFja2VyMy90ZW1wbGF0ZSB8IDU3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy90cmFja2VyMy91cGRhdGUgICB8ICAxICsK IDUgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRl IG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGlidHJhY2tlcjMKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNw a2dzL3RyYWNrZXIzLWRldmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90cmFja2VyMy90 ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdHJhY2tlcjMvdXBkYXRlCgpkaWZm IC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggZTM4ZWM4NWRlYzEu LmQ3N2MxMzc2Yjk4IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxp YnMKQEAgLTMxNDQsNiArMzE0NCw4IEBAIGxpYmNwcGNtcy5zby4xIGNwcGNtcy0xLjAuNV8xCiBs aWJjcHBkYi5zby4wIGNwcGRiLTAuMy4xXzEKIGxpYnRyYWNrZXItY29udHJvbC0yLjAuc28uMCBs aWJ0cmFja2VyLTIuMC4wXzEKIGxpYnRyYWNrZXItc3BhcnFsLTIuMC5zby4wIGxpYnRyYWNrZXIt Mi4wLjBfMQorbGlidHJhY2tlci1taW5lci0yLjAuc28uMCBsaWJ0cmFja2VyLTIuMC4xXzEKK2xp YnRyYWNrZXItc3BhcnFsLTMuMC5zby4wIGxpYnRyYWNrZXIzLTMuMC4wXzEKIGxpYmRvY2thcHAu c28uMyBsaWJkb2NrYXBwLTAuNy4yXzEKIGxpYmtyZGNjb3JlLnNvLjUga3JkYy0xNy4wNC4zXzEK IGxpYkFyY3VzLnNvLjMgbGliQXJjdXMtMy4xLjBfMQpAQCAtMzE2Miw3ICszMTY0LDYgQEAgbGli dmFsYWRvYy0wLjUwLnNvLjAgbGlidmFsYWRvYy0wLjUwLjBfMQogbGlidmFsYWNjb2RlZ2VuLnNv IGxpYnZhbGEtMC40NC4wXzEKIGxpYnBob2Rhdi0yLjAuc28uMCBwaG9kYXYtMi4yXzEKIGxpYmdm c2hhcmUuc28uMiBsaWJnZnNoYXJlLTIuMC4wXzEKLWxpYnRyYWNrZXItbWluZXItMi4wLnNvLjAg bGlidHJhY2tlci0yLjAuMV8xCiBsaWJ0YWNhY3Muc28uMSB0YWNhY3MtNC4wLjQuMjhfMQogbGli ZmZtczIuc28uNCBsaWJmZm1zMi0yLjIzLjFfMQogbGliZGRjdXRpbC5zby4zIGRkY3V0aWwtMC45 LjlfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJ0cmFja2VyMyBiL3NyY3BrZ3MvbGlidHJhY2tl cjMKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAuLjU5ZGQ2OTExYjNiCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJ0cmFja2VyMwpAQCAtMCwwICsxIEBACit0cmFj a2VyMwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJh Y2tlcjMtZGV2ZWwgYi9zcmNwa2dzL3RyYWNrZXIzLWRldmVsCm5ldyBmaWxlIG1vZGUgMTIwMDAw CmluZGV4IDAwMDAwMDAwMDAwLi41OWRkNjkxMWIzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvdHJhY2tlcjMtZGV2ZWwKQEAgLTAsMCArMSBAQAordHJhY2tlcjMKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RyYWNrZXIzL3RlbXBsYXRlIGIvc3Jj cGtncy90cmFja2VyMy90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uMWMyMTAwZjI2Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3RyYWNrZXIzL3Rl bXBsYXRlCkBAIC0wLDAgKzEsNTcgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RyYWNrZXIzJwor cGtnbmFtZT10cmFja2VyMwordmVyc2lvbj0zLjAuMAorcmV2aXNpb249MQord3Jrc3JjPXRyYWNr ZXItJHt2ZXJzaW9ufQorYnVpbGRfc3R5bGU9bWVzb24KK2J1aWxkX2hlbHBlcj0iZ2lyIgorY29u ZmlndXJlX2FyZ3M9Ii1EZG9jcz1mYWxzZSAtRG1hbj10cnVlIC1EbmV0d29ya19tYW5hZ2VyPWVu YWJsZWQKKyAtRHN0ZW1tZXI9ZGlzYWJsZWQgLURzeXN0ZW1kX3VzZXJfc2VydmljZXM9ZmFsc2Ui Citob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBnbGliLWRldmVsIHZhbGEgYXNj aWlkb2MiCittYWtlZGVwZW5kcz0iZGJ1cy1kZXZlbCBsaWJnbGliLWRldmVsIGljdS1kZXZlbCBq c29uLWdsaWItZGV2ZWwKKyBsaWJzb3VwLWRldmVsIGxpYnhtbDItZGV2ZWwgc3FsaXRlLWRldmVs IE5ldHdvcmtNYW5hZ2VyLWRldmVsCisgYmFzaC1jb21wbGV0aW9uIgorY2hlY2tkZXBlbmRzPSJ0 YXIgcHl0aG9uMy1nb2JqZWN0Igorc2hvcnRfZGVzYz0iUGVyc29uYWwgc2VhcmNoIHRvb2wgYW5k IHN0b3JhZ2Ugc3lzdGVtIgorbWFpbnRhaW5lcj0icTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4i CitsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKK2hvbWVwYWdl PSJodHRwczovL2xpdmUuZ25vbWUub3JnL1RyYWNrZXIiCitkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vdHJhY2tlci8ke3ZlcnNpb24lLip9L3RyYWNrZXItJHt2ZXJzaW9ufS50YXIueHoiCitjaGVj a3N1bT03MDg2NDUxNWY1NzUyYjA1OTZmOWM0NDJkN2U4NjU4NTczNGY0MmI4MmE5MjMzZTU1ZGFl NmFjMmIwZDMzODM3CisKK2lmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCWhvc3RtYWtlZGVw ZW5kcys9IiBkYnVzIgorZmkKKworIyBuZWVkcyBhIGRidXMgc2V0dXAKK2RvX2NoZWNrKCkgewor CToKK30KKworcG9zdF9wYXRjaCgpIHsKKwlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJ IyBUZWxsIHRoZSBidWlsZCBzeXN0ZW0gdGhhdCB3ZSBoYXZlIGludGVybmFsIGZ0czUgaW4gc3Fs aXRlMworCQl2c2VkIC1pICIvXFtwcm9wZXJ0aWVzXF0vYSBzcWxpdGUzX2hhc19mdHM1ID0gJ3Ry dWUnIiB4YnBzX21lc29uLmNyb3NzCisJZmkKK30KKwordHJhY2tlcjMtZGV2ZWxfcGFja2FnZSgp IHsKKwlkZXBlbmRzPSJsaWJ0cmFja2VyMz49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBsaWJnbGli LWRldmVsIGpzb24tZ2xpYi1kZXZlbAorCSBsaWJzb3VwLWRldmVsIgorCXNob3J0X2Rlc2MrPSIg LSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1 ZGUKKwkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKKwkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKKwkJ dm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwl9Cit9CisK K2xpYnRyYWNrZXIzX3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYys9IiAtIHNoYXJlZCBsaWJyYXJp ZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliLyouc28uKiIKKwkJdm1vdmUg dXNyL2xpYi9naXJlcG9zaXRvcnktMS4wCisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFj a2VyMy91cGRhdGUgYi9zcmNwa2dzL3RyYWNrZXIzL3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uZTk4NDdlMjViNTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3RyYWNrZXIzL3VwZGF0ZQpAQCAtMCwwICsxIEBACitwYXR0ZXJuPSJcUXRyYWNrZXJcRS1c S1swLTldK1wuWzAtOV0qXC5bMC05Ll0qWzAtOV0oPz0pIgoKRnJvbSBiZDdiNTQ1MDRlNjQ1MzFk ZDhjZTE1ODNiMmQ4MGU4MDA1ZGIxMTljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAy MCAwMDoxNjowNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDI0LzEwMl0gTmV3IHBhY2thZ2U6IHRy YWNrZXIzLW1pbmVycy0zLjAuMAoKLS0tCiBzcmNwa2dzL3RyYWNrZXIzLW1pbmVycy9wYXRjaGVz L2J1aWxkLnBhdGNoICAgfCAgMjUgKysrKysKIC4uLi9wYXRjaGVzL2RvbnQtdXNlLW1hbGxvYy10 cmltLnBhdGNoICAgICAgICB8IDEwNCArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvdHJhY2tl cjMtbWluZXJzL3RlbXBsYXRlICAgICAgICAgICAgICB8ICAzNCArKysrKysKIDMgZmlsZXMgY2hh bmdlZCwgMTYzIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RyYWNr ZXIzLW1pbmVycy9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9kb250LXVzZS1tYWxsb2MtdHJpbS5wYXRjaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3RlbXBsYXRlCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9idWlsZC5wYXRjaCBiL3NyY3Br Z3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ1OGEwZDhjMGY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDI1IEBA CitGcm9tIDhkNzA5YzNiNTVkYzkyNjIxZDU4NzFmYjQyOWEwMmM3OGNjNGIyZDggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KK0RhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjM6NTc6MzIgKzAyMDAKK1N1YmplY3Q6IFtQQVRD SF0gZml4IGJ1aWxkCisKKy0tLQorIHNyYy9saWJ0cmFja2VyLW1pbmVyL21lc29uLmJ1aWxkIHwg MiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitk aWZmIC0tZ2l0IHNyYy9saWJ0cmFja2VyLW1pbmVyL21lc29uLmJ1aWxkIHNyYy9saWJ0cmFja2Vy LW1pbmVyL21lc29uLmJ1aWxkCitpbmRleCBhMjI2NjIzLi45ZWFjZWUzIDEwMDY0NAorLS0tIHNy Yy9saWJ0cmFja2VyLW1pbmVyL21lc29uLmJ1aWxkCisrKysgc3JjL2xpYnRyYWNrZXItbWluZXIv bWVzb24uYnVpbGQKK0BAIC00MCw3ICs0MCw3IEBAIGVuZGlmCisgCisgbGlidHJhY2tlcl9taW5l ciA9IGxpYnJhcnkoCisgICAgICd0cmFja2VyLW1pbmVyLScgKyB0cmFja2VyX2FwaV92ZXJzaW9u LAorLSAgICBtaW5lcl9lbnVtc1swXSwgbWluZXJfZW51bXNbMV0sIG1pbmVyX3NvdXJjZXMsCisr ICAgIG1pbmVyX2VudW1zWzBdLCBtaW5lcl9lbnVtc1sxXSwgdHJhY2tlcl9taW5lcnNfY29tbW9u X2VudW1faGVhZGVyLCBtaW5lcl9zb3VyY2VzLAorICAgICBjX2FyZ3M6IHRyYWNrZXJfY19hcmdz LAorICAgICBpbnN0YWxsOiB0cnVlLAorICAgICBpbnN0YWxsX2RpcjogdHJhY2tlcl9pbnRlcm5h bF9saWJzX2RpciwKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlcjMt bWluZXJzL3BhdGNoZXMvZG9udC11c2UtbWFsbG9jLXRyaW0ucGF0Y2ggYi9zcmNwa2dzL3RyYWNr ZXIzLW1pbmVycy9wYXRjaGVzL2RvbnQtdXNlLW1hbGxvYy10cmltLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZjQyYTkxMjA5NwotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvZG9udC11c2UtbWFsbG9jLXRyaW0u cGF0Y2gKQEAgLTAsMCArMSwxMDQgQEAKK1JlYXNvbjogVGhpcyByZXZlcnRzIDE5MWNjNTIxOGI1 M2ZiYTg1YmFlYzFjOGMxN2JiMjQ2YTc0MDQ0YzAgYW5kCitjY2IwYjRlYmJmZjRkZmFjZjE3ZWE2 N2NlNTZiYjI3YzM5NzQxODExLiBtYWxsb2NfdHJpbSBpcyBnbGliYyBzcGVjaWZpYworQVBJLCBz byB0aGlzIGNhdXNlcyB0aGUgYnVpbGQgdG8gZmFpbCBvbiBtdXNsLgorVXBzdHJlYW06IGh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS90cmFja2VyLW1pbmVycy8tL2lzc3Vlcy8xMzUKK2Rp ZmYgLS1naXQgYS9zcmMvbWluZXJzL2ZzL3RyYWNrZXItbWFpbi5jIGIvc3JjL21pbmVycy9mcy90 cmFja2VyLW1haW4uYworaW5kZXggYzYwMDcwZC4uMjIwOTE2ZCAxMDA2NDQKKy0tLSBzcmMvbWlu ZXJzL2ZzL3RyYWNrZXItbWFpbi5jCisrKysgc3JjL21pbmVycy9mcy90cmFja2VyLW1haW4uYwor QEAgLTU3LDcgKzU3LDYgQEAKKyBzdGF0aWMgR01haW5Mb29wICptYWluX2xvb3A7Cisgc3RhdGlj IEdEQnVzUHJveHkgKmluZGV4X3Byb3h5OworIHN0YXRpYyBHUHRyQXJyYXkgKnByb3h5X2ZvbGRl cnM7Cistc3RhdGljIGd1aW50IGNsZWFudXBfaWQ7CisgCisgc3RhdGljIGdpbnQgaW5pdGlhbF9z bGVlcCA9IC0xOworIHN0YXRpYyBnYm9vbGVhbiBub19kYWVtb247CitAQCAtNDMzLDM3ICs0MzIs NiBAQCBtaW5lcl9zdGFydCAoVHJhY2tlck1pbmVyICAqbWluZXIsCisgCSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5lcik7CisgfQorIAorLXN0YXRpYyBnYm9v bGVhbgorLWNsZWFudXBfY2IgKGdwb2ludGVyIHVzZXJfZGF0YSkKKy17CistCS8qIFJlY2xhaW0g YXMgbXVjaCBtZW1vcnkgYXMgcG9zc2libGUgKi8KKy0JbWFsbG9jX3RyaW0gKDApOworLQorLQlj bGVhbnVwX2lkID0gMDsKKy0KKy0JcmV0dXJuIEdfU09VUkNFX1JFTU9WRTsKKy19CistCistI2lm IEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwgNjQsIDApCistc3RhdGljIHZvaWQKKy1vbl9sb3dfbWVt b3J5IChHTWVtb3J5TW9uaXRvciAgICAgICAgICAgICptb25pdG9yLAorLSAgICAgICAgICAgICAg IEdNZW1vcnlNb25pdG9yV2FybmluZ0xldmVsIGxldmVsLAorLSAgICAgICAgICAgICAgIGdwb2lu dGVyICAgICAgICAgICAgICAgICAgIHVzZXJfZGF0YSkKKy17CistCWlmIChsZXZlbCA+IEdfTUVN T1JZX01PTklUT1JfV0FSTklOR19MRVZFTF9MT1cpCistCQltYWxsb2NfdHJpbSAoMCk7CistfQor LSNlbmRpZgorLQorLXN0YXRpYyB2b2lkCistbWluZXJfc3RhcnRlZF9jYiAoVHJhY2tlck1pbmVy RlMgKmZzKQorLXsKKy0JaWYgKGNsZWFudXBfaWQpIHsKKy0JCWdfc291cmNlX3JlbW92ZSAoY2xl YW51cF9pZCk7CistCQljbGVhbnVwX2lkID0gMDsKKy0JfQorLX0KKy0KKyBzdGF0aWMgdm9pZAor IG1pbmVyX2ZpbmlzaGVkX2NiIChUcmFja2VyTWluZXJGUyAqZnMsCisgICAgICAgICAgICAgICAg ICAgIGdkb3VibGUgICAgICAgICBzZWNvbmRzX2VsYXBzZWQsCitAQCAtNDgzLDggKzQ1MSw2IEBA IG1pbmVyX2ZpbmlzaGVkX2NiIChUcmFja2VyTWluZXJGUyAqZnMsCisgCQkJCQkJCSBUUlVFKTsK KyAJfQorIAorLQljbGVhbnVwX2lkID0gZ190aW1lb3V0X2FkZF9zZWNvbmRzICgzMCwgY2xlYW51 cF9jYiwgTlVMTCk7CistCisgCS8qIFdlJ3JlIG5vdCBzdGlja2luZyBhcm91bmQgZm9yIGZpbGUg dXBkYXRlcywgc28gc3RvcAorIAkgKiB0aGUgbWFpbmxvb3AgYW5kIGV4aXQuCisgCSAqLworQEAg LTk0MSw5ICs5MDcsNiBAQCBtYWluIChnaW50IGFyZ2MsIGdjaGFyICphcmd2W10pCisgCVRyYWNr ZXJFbmRwb2ludERCdXMgKmVuZHBvaW50OworIAlUcmFja2VyRG9tYWluT250b2xvZ3kgKmRvbWFp bl9vbnRvbG9neTsKKyAJR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZTsKKy0jaWYgR0xJQl9DSEVD S19WRVJTSU9OICgyLCA2NCwgMCkKKy0JR01lbW9yeU1vbml0b3IgKm1lbW9yeV9tb25pdG9yOwor LSNlbmRpZgorIAlnY2hhciAqZG9tYWluX25hbWUsICpkYnVzX25hbWU7CisgCisgCW1haW5fbG9v cCA9IE5VTEw7CitAQCAtMTEyOSwxOCArMTA5MiwxMCBAQCBtYWluIChnaW50IGFyZ2MsIGdjaGFy ICphcmd2W10pCisgCQl0cmFja2VyX21pbmVyX2ZpbGVzX3NldF9tdGltZV9jaGVja2luZyAoVFJB Q0tFUl9NSU5FUl9GSUxFUyAobWluZXJfZmlsZXMpLCBkb19tdGltZV9jaGVja2luZyk7CisgCX0K KyAKKy0JZ19zaWduYWxfY29ubmVjdCAobWluZXJfZmlsZXMsICJzdGFydGVkIiwKKy0JCQkgIEdf Q0FMTEJBQ0sgKG1pbmVyX3N0YXJ0ZWRfY2IpLAorLQkJCSAgTlVMTCk7CisgCWdfc2lnbmFsX2Nv bm5lY3QgKG1pbmVyX2ZpbGVzLCAiZmluaXNoZWQiLAorIAkJCSAgR19DQUxMQkFDSyAobWluZXJf ZmluaXNoZWRfY2IpLAorIAkJCSAgTlVMTCk7CisgCistI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTiAo MiwgNjQsIDApCistCW1lbW9yeV9tb25pdG9yID0gZ19tZW1vcnlfbW9uaXRvcl9kdXBfZGVmYXVs dCAoKTsKKy0JZ19zaWduYWxfY29ubmVjdCAobWVtb3J5X21vbml0b3IsICJsb3ctbWVtb3J5LXdh cm5pbmciLCBvbl9sb3dfbWVtb3J5LCBOVUxMKTsKKy0jZW5kaWYKKy0KKyAJLyogUHJlZW1wdCBj cmVhdGlvbiBvZiBncmFwaHMgKi8KKyAJdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl91cGRhdGVf YXN5bmMgKHRyYWNrZXJfbWluZXJfZ2V0X2Nvbm5lY3Rpb24gKG1pbmVyX2ZpbGVzKSwKKyAJICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDUkVBVEUgU0lMRU5UIEdSQVBI IHRyYWNrZXI6RmlsZVN5c3RlbTsgIgorQEAgLTExODMsMTEgKzExMzgsNiBAQCBtYWluIChnaW50 IGFyZ2MsIGdjaGFyICphcmd2W10pCisgCXRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fY2xvc2Ug KHNwYXJxbF9jb25uKTsKKyAJZ19vYmplY3RfdW5yZWYgKHNwYXJxbF9jb25uKTsKKyAKKy0jaWYg R0xJQl9DSEVDS19WRVJTSU9OICgyLCA2NCwgMCkKKy0JZ19zaWduYWxfaGFuZGxlcnNfZGlzY29u bmVjdF9ieV9mdW5jIChtZW1vcnlfbW9uaXRvciwgb25fbG93X21lbW9yeSwgTlVMTCk7CistCWdf b2JqZWN0X3VucmVmIChtZW1vcnlfbW9uaXRvcik7CistI2VuZGlmCistCisgCWdfcHJpbnQgKCJc bk9LXG5cbiIpOworIAorIAlyZXR1cm4gRVhJVF9TVUNDRVNTOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy90cmFja2VyMy1taW5lcnMvdGVtcGxhdGUgYi9zcmNwa2dzL3RyYWNrZXIzLW1pbmVycy90ZW1w bGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGJmMTRiNDg0NzkK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3RyYWNrZXIzLW1pbmVycy90ZW1wbGF0ZQpAQCAt MCwwICsxLDM0IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICd0cmFja2VyMy1taW5lcnMnCitwa2du YW1lPXRyYWNrZXIzLW1pbmVycwordmVyc2lvbj0zLjAuMAorcmV2aXNpb249MQord3Jrc3JjPXRy YWNrZXItbWluZXJzLSR7dmVyc2lvbn0KK2J1aWxkX3N0eWxlPW1lc29uCisjIG1pc3NpbmcgbGli Z3JzcyBmb3IgbWluZXJfcnNzCitjb25maWd1cmVfYXJncz0iLUR0cmFja2VyX2NvcmU9c3lzdGVt IC1EZG9jcz1mYWxzZSAtRGV4dHJhY3Q9dHJ1ZQorIC1EZnVuY3Rpb25hbF90ZXN0cz1mYWxzZSAt RGN1ZT1lbmFibGVkIC1EZXhpZj1lbmFibGVkIC1EZmxhYz1lbmFibGVkCisgLURnaWY9ZW5hYmxl ZCAtRGdzZj1lbmFibGVkIC1EaXB0Yz1lbmFibGVkIC1EaXNvPWVuYWJsZWQgLURqcGVnPWVuYWJs ZWQKKyAtRHBkZj1lbmFibGVkIC1EcGxheWxpc3Q9ZW5hYmxlZCAtRHBuZz1lbmFibGVkIC1EcmF3 PWVuYWJsZWQgLUR0YWdsaWI9ZW5hYmxlZAorIC1EdGlmZj1lbmFibGVkIC1Edm9yYmlzPWVuYWJs ZWQgLUR4bWw9ZW5hYmxlZCAtRHhtcD1lbmFibGVkIC1EeHBzPWVuYWJsZWQKKyAtRG1pbmVyX3Jz cz1mYWxzZSAtRGJhdHRlcnlfZGV0ZWN0aW9uPXVwb3dlciAtRGNoYXJzZXRfZGV0ZWN0aW9uPWlj dQorIC1EZ2VuZXJpY19tZWRpYV9leHRyYWN0b3I9Z3N0cmVhbWVyIC1EZ3N0cmVhbWVyX2JhY2tl bmQ9ZGlzY292ZXJlcgorIC1Ec3lzdGVtZF91c2VyX3NlcnZpY2VzPWZhbHNlIC1EbmV0d29ya19t YW5hZ2VyPWVuYWJsZWQiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCBp bnRsdG9vbCBhc2NpaWRvYyIKK21ha2VkZXBlbmRzPSJ0cmFja2VyMy1kZXZlbCBmZm1wZWctZGV2 ZWwgZGJ1cy1kZXZlbCBleGVtcGktZGV2ZWwgbGliZmxhYy1kZXZlbAorIGxpYmdsaWItZGV2ZWwg bGliZ2V4aXYyLWRldmVsIGdzdHJlYW1lcjEtZGV2ZWwgaWN1LWRldmVsIGxpYmN1ZS1kZXZlbAor IGxpYmV4aWYtZGV2ZWwgbGliZ3NmLWRldmVsIGxpYmd4cHMtZGV2ZWwgbGliaXB0Y2RhdGEtZGV2 ZWwgbGlianBlZy10dXJiby1kZXZlbAorIGxpYm9zaW5mby1kZXZlbCBsaWJwbmctZGV2ZWwgbGli c2VjY29tcC1kZXZlbCB0aWZmLWRldmVsIGxpYnhtbDItZGV2ZWwKKyBsaWJ2b3JiaXMtZGV2ZWwg cG9wcGxlci1nbGliLWRldmVsIHRhZ2xpYi1kZXZlbCB0b3RlbS1wbC1wYXJzZXItZGV2ZWwKKyB1 cG93ZXItZGV2ZWwgemxpYi1kZXZlbCBnc3QtcGx1Z2lucy1iYXNlMS1kZXZlbCBnaWZsaWItZGV2 ZWwKKyBOZXR3b3JrTWFuYWdlci1kZXZlbCBsaWJoYXJmYnV6eiIKK3Nob3J0X2Rlc2M9IkRhdGEg bWluZXJzIGZvciB0cmFja2VyMyIKK21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL2RldmVs b3Blci5nbm9tZS5vcmcvbGlidHJhY2tlci1taW5lci9zdGFibGUiCitkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vdHJhY2tlci1taW5lcnMvJHt2ZXJzaW9uJS4qfS90cmFja2VyLW1pbmVycy0ke3Zl cnNpb259LnRhci54eiIKK2NoZWNrc3VtPWJiNDgxYTdjMjNjNWRlZjRmMjE1NjI3YTA2MzBmYmU5 ZDFjNjRmMzMxOTgyNTg1OWQ3YTczNjQ1NzM4ZjQwNDIKKworIyByZWxpZXMgb24gdW5zdXBwb3J0 ZWQgb3BzIGluIGNocm9vdAorZG9fY2hlY2soKSB7CisJOgorfQoKRnJvbSBjM2U0Nzk1ZjVkNzBj NjQ1ODNiY2E0ZmViZWM5YTE5NzU0MTBjOThhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBE YW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAxNSBTZXAgMjAyMCAwNjo0 Nzo1NiArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDI1LzEwMl0gYmlqaWJlbjogdXBkYXRlIHRvIDMu MzYuMy4KCi0tLQogc3JjcGtncy9iaWppYmVuL3RlbXBsYXRlIHwgOSArKysrKysrLS0KIDEgZmls ZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9iaWppYmVuL3RlbXBsYXRlIGIvc3JjcGtncy9iaWppYmVuL3RlbXBsYXRlCmluZGV4 IDczMDA1M2I1ZDFjLi4wYmZhNmYyNzVhYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9iaWppYmVuL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvYmlqaWJlbi90ZW1wbGF0ZQpAQCAtMSw5ICsxLDEwIEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdiaWppYmVuJwogcGtnbmFtZT1iaWppYmVuCi12ZXJzaW9uPTMu MzYuMQordmVyc2lvbj0zLjM2LjMKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVp bGRfc3R5bGU9bWVzb24KK2NvbmZpZ3VyZV9hcmdzPSItRHplaXRnZWlzdD10cnVlIgogaG9zdG1h a2VkZXBlbmRzPSJpdHN0b29sIHBrZy1jb25maWcgZ2V0dGV4dCIKIG1ha2VkZXBlbmRzPSJjbHV0 dGVyLWd0ay1kZXZlbCBldm9sdXRpb24tZGV2ZWwgdHJhY2tlci1kZXZlbCB3ZWJraXQyZ3RrLWRl dmVsCiAgemVpdGdlaXN0LWRldmVsIGxpYmhhbmR5LWRldmVsIgpAQCAtMTQsNSArMTUsOSBAQCBs aWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvQXBwcy9Ob3RlcyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQu Y29tL0dOT01FL2JpamliZW4vZ25vbWUtJHt2ZXJzaW9uJS4qfS9ORVdTIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09MjEyZjY2YTNkMmM3MTdkZmIzZDM3MjIwNDI2MTc4MDg5Mzk1 ZGEyM2VmOWYzZDA1MTcxM2FhZjY1OTdhNDExMAorY2hlY2tzdW09NzBlOWI2MjFlMTFiZjdhZjZj NjI0OGY4Yzk5ODMwZjZmZmJmZjYwNWZiNDNhODQ4ZDI2ODgwZTdlMWI1MmRkNgogbm9jcm9zcz0i ZXZvbHV0aW9uLWRhdGEtc2VydmVyIGNyb3NzIgorCitwcmVfYnVpbGQoKSB7CisJbmluamEgLUMg YnVpbGQgc3JjL2xpYmJpamkvYmlqaS1tYXJzaGFsZXJzLmgKK30KCkZyb20gZGJiMDkyNTFmMGQ2 N2JiZDZjMGNlYTVkNzNkYWJmM2JjMDJlNzA2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2Vw IDIwMjAgMjA6MjA6NTAgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyNi8xMDJdIGdyYXBoZW5lOiB1 cGRhdGUgdG8gMS4xMC4yCgotLS0KIHNyY3BrZ3MvZ3JhcGhlbmUvdGVtcGxhdGUgfCA0ICsrLS0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9ncmFwaGVuZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3JhcGhlbmUvdGVtcGxh dGUKaW5kZXggZjVjYzk5YjQxMjguLmU4NjgyMzliZmEwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dy YXBoZW5lL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ3JhcGhlbmUvdGVtcGxhdGUKQEAgLTEsNiAr MSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdncmFwaGVuZScKIHBrZ25hbWU9Z3JhcGhlbmUK LXZlcnNpb249MS4xMC4wCit2ZXJzaW9uPTEuMTAuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTUlUIgogaG9tZXBh Z2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9lYmFzc2kvZ3JhcGhlbmUiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vZ3JhcGhlbmUvJHt2ZXJzaW9uJS4qfS9ncmFwaGVuZS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTQwNmQ5N2Y1MWRkNGNhNjFlOTFmODQ2NjZhMDBjM2U5NzZkM2U2NjdjZDI0 OGI3NmQ5MmZkYjM1Y2U4NzY0OTkKK2NoZWNrc3VtPWU5N2RlODIwOGYxYWFjNGY5MTNkNGZhNzFh YjczYTcwMzRlODA3MTg2ZmViMmFiZTU1ODc2ZTUxYzQyNWE3ZjYKIAogY2FzZSAiJFhCUFNfVEFS R0VUX01BQ0hJTkUiIGluCiAJYXJtKikgY29uZmlndXJlX2FyZ3MrPSIgLURhcm1fbmVvbj1mYWxz ZSIgOzsKCkZyb20gODQwZTkzYzBmMzRjMmY3NDUzYThkZjY2Mjk4NGJkYTFkZTZlZTQwYiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6MjI6NDAgKzAyMDAKU3ViamVjdDogW1BB VENIIDAyNy8xMDJdIGFtdGs6IHVwZGF0ZSB0byA1LjIuMAoKLS0tCiBzcmNwa2dzL2FtdGsvdGVt cGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hbXRrL3RlbXBsYXRlIGIvc3JjcGtncy9hbXRr L3RlbXBsYXRlCmluZGV4IDQ0OWM1N2UwN2U2Li40MzNiZTJiOWM1NCAxMDA2NDQKLS0tIGEvc3Jj cGtncy9hbXRrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYW10ay90ZW1wbGF0ZQpAQCAtMSw2ICsx LDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2FtdGsnCiBwa2duYW1lPWFtdGsKLXZlcnNpb249 NS4xLjEKK3ZlcnNpb249NS4yLjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKIGJ1aWxkX2hlbHBlcj0iZ2lyIgpAQCAtMTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJPcnBo YW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9BbXRrIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9L2FtdGsvJHt2ZXJzaW9uJS4qfS9hbXRrLSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09Zjk2NTZiZGQ0Mjc4YWFiZmI4NTU0ZjAyOTA0OWI5ZmZhZjUxYjUzZmFh NDYzNDgzYTg0MDM2NTQ2MzM1NWRmMQorY2hlY2tzdW09ODIwNTQ1YmI0Y2Y4N2VjZWJjMmMzNjM4 ZDZiNmU1OGI4ZGJkNjBhNDE5YTliNDNjZjAyMDEyNGU1ZGFkNzA3OAogCiBidWlsZF9vcHRpb25z PSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gNjhmYTU1OTMwMmJkY2I0 ZDIyZTIyNTQxMjYyNmMzZWNhNjI1NWY1ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIw MjAgMjA6NDQ6NTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyOC8xMDJdIGlvLmVsZW1lbnRhcnku Y29kZTogcmVidWlsZCBmb3IgdmFsYS0wLjUwCgotLS0KIC4uLi9pby5lbGVtZW50YXJ5LmNvZGUv cGF0Y2hlcy92YWxhMDUwLnBhdGNoICB8IDI1ICsrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mv aW8uZWxlbWVudGFyeS5jb2RlL3RlbXBsYXRlICAgICAgICAgICB8ICAyICstCiAyIGZpbGVzIGNo YW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2lvLmVsZW1lbnRhcnkuY29kZS9wYXRjaGVzL3ZhbGEwNTAucGF0Y2gKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2lvLmVsZW1lbnRhcnkuY29kZS9wYXRjaGVzL3ZhbGEwNTAucGF0Y2gg Yi9zcmNwa2dzL2lvLmVsZW1lbnRhcnkuY29kZS9wYXRjaGVzL3ZhbGEwNTAucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjllZWVlMWZiNjY0Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxhMDUwLnBhdGNo CkBAIC0wLDAgKzEsMjUgQEAKK0Zyb20gYTE4NWRlMGU3NzE2YWEyZGUyYmYyMWRlOTZlNmM5YWYx ZGNhODFhYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogV2VkLCAxNiBTZXAgMjAyMCAyMDo0MzowNyArMDIw MAorU3ViamVjdDogW1BBVENIXSBmaXggd2l0aCB2YWxhLTAuNTAKKworLS0tCisgcGx1Z2lucy9v dXRsaW5lL1ZhbGEvVmFsYVN5bWJvbE91dGxpbmUudmFsYSB8IDIgKy0KKyAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBwbHVnaW5zL291 dGxpbmUvVmFsYS9WYWxhU3ltYm9sT3V0bGluZS52YWxhIHBsdWdpbnMvb3V0bGluZS9WYWxhL1Zh bGFTeW1ib2xPdXRsaW5lLnZhbGEKK2luZGV4IGM4ZGIzMzkuLjMxMzg2YTYgMTAwNjQ0CistLS0g cGx1Z2lucy9vdXRsaW5lL1ZhbGEvVmFsYVN5bWJvbE91dGxpbmUudmFsYQorKysrIHBsdWdpbnMv b3V0bGluZS9WYWxhL1ZhbGFTeW1ib2xPdXRsaW5lLnZhbGEKK0BAIC02MSw3ICs2MSw3IEBAIHB1 YmxpYyBjbGFzcyBDb2RlLlBsdWdpbnMuVmFsYVN5bWJvbE91dGxpbmUgOiBPYmplY3QsIENvZGUu UGx1Z2lucy5TeW1ib2xPdXRsaW5lCisgCisgICAgIHB1YmxpYyB2b2lkIHBhcnNlX3N5bWJvbHMg KCkgeworICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgVmFsYS5Db2RlQ29udGV4dCAoKTsKKy0g ICAgICAgIGNvbnRleHQucHJvZmlsZSA9IFZhbGEuUHJvZmlsZS5HT0JKRUNUOworKyAgICAgICAg Y29udGV4dC5zZXRfdGFyZ2V0X3Byb2ZpbGUoVmFsYS5Qcm9maWxlLkdPQkpFQ1QpOworICAgICAg ICAgY29udGV4dC5hZGRfc291cmNlX2ZpbGVuYW1lIChkb2MuZmlsZS5nZXRfcGF0aCAoKSk7Cisg ICAgICAgICBjb250ZXh0LnJlcG9ydCA9IG5ldyBSZXBvcnQgKCk7CisgICAgICAgICBpZiAoY2Fu Y2VsbGFibGUgIT0gbnVsbCkKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvaW8u ZWxlbWVudGFyeS5jb2RlL3RlbXBsYXRlIGIvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvdGVt cGxhdGUKaW5kZXggNDQ3ZTdlNWY2MGEuLjhkNDNhZDQxMzBkIDEwMDY0NAotLS0gYS9zcmNwa2dz L2lvLmVsZW1lbnRhcnkuY29kZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2lvLmVsZW1lbnRhcnku Y29kZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2lvLmVs ZW1lbnRhcnkuY29kZScKIHBrZ25hbWU9aW8uZWxlbWVudGFyeS5jb2RlCiB2ZXJzaW9uPTMuNC4x Ci1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiB3cmtzcmM9ImNvZGUtJHt2ZXJzaW9ufSIKIGJ1aWxk X3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgdmFsYSBpbnRsdG9vbCBn bGliLWRldmVsIgoKRnJvbSA4ZmE3ZTA1MTAyZGMyZGFkNWJiYTE5NTM0M2MwNTFlZjU5NDI0NzI0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogV2VkLCAxNiBTZXAgMjAyMCAyMDo1MjoyNiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDI5LzEwMl0gcGhvZGF2OiB1cGRhdGUgdG8gMi41CgotLS0KIHNyY3BrZ3MvcGhv ZGF2L3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcGhvZGF2L3RlbXBsYXRlIGIvc3Jj cGtncy9waG9kYXYvdGVtcGxhdGUKaW5kZXggMWE5MGExYTBlNTguLjEzMDkyODk2ODk5IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3Bob2Rhdi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3Bob2Rhdi90ZW1w bGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3Bob2RhdicKIHBrZ25h bWU9cGhvZGF2Ci12ZXJzaW9uPTIuNAordmVyc2lvbj0yLjUKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1kPWRpc2FibGVkIC1EYXZhaGk9ZW5h YmxlZCAtRGd0a19kb2M9ZGlzYWJsZWQKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvcGhvZGF2IgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09N2RkZGMyYjc1ZTA0ZDA4NjZiYjljOWE4MzAyOGE1OTdlYmQ3 M2VmNGMzN2JkNmViZTEwMzJhODcwYjQzYjhjMworY2hlY2tzdW09NzFmMGE5Y2Q3MGFmZDRkZDE0 MTJhMDI5ODMzMWRiYjhhYzcxYzAzNzdmNTIxMTdhZmMxNWViODhkYzZmYjkxMAogCiBwaG9kYXYt ZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJsaWJnbGliLWRldmVsIGxpYnNvdXAtZGV2ZWwg bGlieG1sMi1kZXZlbAoKRnJvbSAyNTVhZjc1M2RlY2MzMDU3ZTM2M2I3YTQ2YzkwMGUwMDdjYjFj ZmViIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDMwLzEwMl0gZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hczogdXBkYXRlIHRv IDMuMzguMAoKLS0tCiAuLi4vcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoICAgICAgICAgICAg ICAgICAgICAgfCAxMyAtLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNj aGVtYXMvdGVtcGxhdGUgICAgICAgICAgfCAgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4 LWNyb3NzLWdpci5wYXRjaCBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy9wYXRj aGVzL2ZpeC1jcm9zcy1naXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIy OTlkNWM5Y2QwLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNj aGVtYXMvcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMg KzAsMCBAQAotZGlmZiAtLWdpdCBhL2hlYWRlcnMvbWVzb24uYnVpbGQgYi9oZWFkZXJzL21lc29u LmJ1aWxkCi1pbmRleCAzY2U4YjYxLi4xMTMyNjk1IDEwMDY0NAotLS0tIGhlYWRlcnMvbWVzb24u YnVpbGQKLSsrKyBoZWFkZXJzL21lc29uLmJ1aWxkCi1AQCAtMTksNyArMTksNyBAQCBlbnVtc194 bWwgPSBjdXN0b21fdGFyZ2V0KAotICAgaW5zdGFsbDogdHJ1ZSwKLSAgIGluc3RhbGxfZGlyOiBz Y2hlbWFzZGlyKQotIAotLWlmIG5vdCBtZXNvbi5pc19jcm9zc19idWlsZCgpIGFuZCBnZXRfb3B0 aW9uKCdpbnRyb3NwZWN0aW9uJykKLStpZiBnZXRfb3B0aW9uKCdpbnRyb3NwZWN0aW9uJykKLSAg IG5vaW5zdF9saWIgPSBzaGFyZWRfbGlicmFyeSgnbm9pbnN0JywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBoZWFkZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu c3RhbGw6IGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hl bWFzL3RlbXBsYXRlIGIvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBsYXRl CmluZGV4IDQ5YzY0Y2NhNzM4Li43NmM0YjBlMDgxMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nc2V0 dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRl c2t0b3Atc2NoZW1hcy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMnCiBwa2duYW1lPWdzZXR0aW5ncy1kZXNrdG9w LXNjaGVtYXMKLXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2 aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJl X2FyZ3M9Ii1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgpAQCAtMTIs NyArMTIsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIu Z25vbWUub3JnL0dOT01FL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMiCiBkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT03NjRhYjY4MzI4NjUzNjMyNDUzM2E1OGQ0ZTk1ZmM1N2Y4MWFk YWJhN2Q4ODBkZDBlYmJiY2VkNjNlOTYwZWE2CitjaGVja3N1bT01NzA0YzgyNjYwMDRiMjk2MDM2 NjcxZjIyM2M3MDVkYzA0NmFhNjk0YTFiMWFiYjg3YzY3ZTdkMjc0N2E4YzY3CiAKICMgUGFja2Fn ZSBidWlsZCBvcHRpb25zCiBidWlsZF9vcHRpb25zPSJnaXIiCgpGcm9tIGE4MWE1NjM3ZGQ4ODEy OGY5MGQ4NDg3ZmYwYzg1M2JlMjVlMjI1MWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAy MDIwIDA1OjIwOjI2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMzEvMTAyXSBnbGliLW5ldHdvcmtp bmc6IHVwZGF0ZSB0byAyLjY2LjAKCi0tLQogc3JjcGtncy9nbGliLW5ldHdvcmtpbmcvdGVtcGxh dGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWItbmV0d29ya2luZy90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlCmluZGV4IDVlYWZmYTgyZTY0Li45NmYzMTJj ZmY0ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbGliLW5ldHdvcmtpbmcvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nbGliLW5ldHdvcmtpbmcvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdnbGliLW5ldHdvcmtpbmcnCiBwa2duYW1lPWdsaWItbmV0d29ya2luZwot dmVyc2lvbj0yLjY0LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249Mi42Ni4wCityZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EaW5zdGFsbGVkX3Rlc3RzPWZhbHNl IC1EZ251dGxzPWVuYWJsZWQgLURsaWJwcm94eT1lbmFibGVkCiAgLURnbm9tZV9wcm94eT1lbmFi bGVkIgpAQCAtMTQsNyArMTQsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dsaWItbmV0d29ya2luZy8iCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1hNGMzNDZkZWY3ZDgxNzQ2N2Q3OWE5NWMyM2IzY2NmMjJl NGRmMTU0ODg3MDcyNmI2MzM5NjQwMDg1MmRhZjcyCitjaGVja3N1bT1jNWQ3YmUyNDM3ZmRkMTk2 ZWViZmI3MGM0NTE3Yjk2ZDNiYTdlYzEzYmQ0OTYzMThiOGYwMmRlYTM4M2UwMDk5CiBsaWIzMmRp c2FibGVkPXllcwogCiBwb3N0X2luc3RhbGwoKSB7CgpGcm9tIDMyNGY5N2ZjZjY1ZTI5NTE5Zjhi NDAwNmJhZjk1YmIxZGMwMzM3NDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMzIvMTAyXSBhdC1zcGkyLWNvcmU6IHVwZGF0 ZSB0byAyLjM4LjAKCi0tLQogc3JjcGtncy9hdC1zcGkyLWNvcmUvdGVtcGxhdGUgfCAxNCArKysr KysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2F0LXNwaTItY29yZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mv YXQtc3BpMi1jb3JlL3RlbXBsYXRlCmluZGV4IGIzODNmZTk5YmVkLi43NGU2MDcwMTIwMSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9hdC1zcGkyLWNvcmUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hdC1z cGkyLWNvcmUvdGVtcGxhdGUKQEAgLTEsMjMgKzEsMjcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2F0LXNwaTItY29yZScKIHBrZ25hbWU9YXQtc3BpMi1jb3JlCi12ZXJzaW9uPTIuMzQuMAordmVy c2lvbj0yLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9 ImdpciIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBkYnVzIGdsaWItZGV2ZWwiCi1tYWtl ZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCBsaWJYZXh0LWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3Qt ZGV2ZWwKLSBsaWJYZXZpZS1kZXZlbCBkYnVzLWRldmVsIgoraG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIGRidXMgZ2xpYi1kZXZlbCBnZXR0ZXh0IgorbWFrZWRlcGVuZHM9ImxpYmdsaWItZGV2 ZWwgbGliWGV4dC1kZXZlbCBsaWJTTS1kZXZlbCBsaWJYdHN0LWRldmVsIGRidXMtZGV2ZWwiCiBz aG9ydF9kZXNjPSJBc3Npc3RpdmUgVGVjaG5vbG9neSBTZXJ2aWNlIFByb3ZpZGVyIEludGVyZmFj ZSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9y Zy9HTk9NRS9hdC1zcGkyLWNvcmUiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1k NjI5Y2RiZDY3NGU1MzlmODkxMjAyODUxMmFmNTgzOTkwOTM4YzdiNDllMjUxODRjMTI2YjAwMTIx ZWYxMWM2CitjaGVja3N1bT04NGUzNmMzZmU2Njg2MjEzM2Y1ZmUyMjk3NzJiNzZhYTI1MjZlMTBk ZTUwMTRhMzc3OGYyZmE0NmNlNTUwZGE1CiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCiBidWls ZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAorIyBub24tdHJp dmlhbCBkYnVzIHNldHVwCitkb19jaGVjaygpIHsKKwk6Cit9CisKIHBvc3RfaW5zdGFsbCgpIHsK IAlybSAtcmYgJHtERVNURElSfS91c3IvbGliL3N5c3RlbWQKIH0KCkZyb20gMDY0MTFhYzk1YTQw ODc0NDc2OTM5YmQ3NDRiNDEyMGM1NDdkMjJjMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzMy8xMDJdIGF0LXNwaTItYXRr OiB1cGRhdGUgdG8gMi4zOC4wCgotLS0KIHNyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUgfCA5 ICsrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBsYXRlIGIvc3JjcGtncy9h dC1zcGkyLWF0ay90ZW1wbGF0ZQppbmRleCA0MzUxYjc5OTZmMy4uY2Y5NDVkZmZiMjYgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hdC1zcGky LWF0ay90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2F0LXNw aTItYXRrJwogcGtnbmFtZT1hdC1zcGkyLWF0awotdmVyc2lvbj0yLjM0LjEKK3ZlcnNpb249Mi4z OC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJsaWJ0 b29sIHBrZy1jb25maWcgaW50bHRvb2wgZ2xpYi1kZXZlbCIKQEAgLTEwLDcgKzEwLDEyIEBAIG1h aW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJM R1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwOi8vd3d3Lmdub21lLm9yZyIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTc3NmRmOTMwNzQ4ZmRlNzFjMTI4YmU2YzM2NmE5 ODdiOThiNmVlNjZkNTA4ZWQ5YzhkYjIzNTViZjRiOWNjMTYKK2NoZWNrc3VtPWNmYTAwOGE1YWY4 MjJiMzZhZTYyODdmMTgxODJjNDBjOTFkZDY5OWM1NWZhYTM4NjA1ODgxZWQxNzVjYTQ2NGYKKwor IyBub24tdHJpdmlhbCBkYnVzIHNldHVwCitkb19jaGVjaygpIHsKKwk6Cit9CiAKIGF0LXNwaTIt YXRrLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gJHtzb3VyY2Vw a2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgoKRnJvbSA0NWVjNzdhODYyYzk1M2MzNzM5YzI5 ZDgxMTY1Y2Y5OGU2ZTMxNmZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0 ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDM0LzEwMl0gbGliZ3dlYXRoZXI6IHVwZGF0ZSB0 byAzLjM2LjEKCi0tLQogc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZSB8IDE1ICsrKysrKy0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmd3ZWF0aGVyL3RlbXBsYXRlIGIvc3JjcGtncy9saWJn d2VhdGhlci90ZW1wbGF0ZQppbmRleCAzNGM2NGQ2ZTNhMS4uZmNkYjU4Nzk1MDEgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvbGliZ3dlYXRoZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJnd2VhdGhl ci90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliZ3dl YXRoZXInCiBwa2duYW1lPWxpYmd3ZWF0aGVyCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM2 LjEKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNv bmZpZ3VyZV9hcmdzPSItRGVuYWJsZV92YWxhPSQodm9wdF9pZiB2YWxhIHRydWUgZmFsc2UpCi0g LURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkKK2NvbmZpZ3VyZV9hcmdz PSIkKHZvcHRfYm9vbCBnaXIgZW5hYmxlX3ZhbGEpICQodm9wdF9ib29sIGdpciBpbnRyb3NwZWN0 aW9uKQogIC1Eem9uZWluZm9fZGlyPS91c3Ivc2hhcmUvem9uZWluZm8iCi1ob3N0bWFrZWRlcGVu ZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZpZyAkKHZvcHRfaWYgdmFsYSB2YWxhKSIK K2hvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnICQodm9wdF9p ZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ2VvY29kZS1nbGliLWRldmVsIGd0ayszLWRldmVs IGxpYnNvdXAtZ25vbWUtZGV2ZWwiCiBjaGVja2RlcGVuZHM9InR6ZGF0YSIKIHNob3J0X2Rlc2M9 IkdOT01FIFdlYXRoZXIgaW5mb3JtYXRpb24gYWNjZXNzIGxpYnJhcnkiCkBAIC0xNSwxMCArMTQs MTAgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvUHJvamVjdHMvTGliR1dlYXRoZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT1kMmZmZWVjMDE3ODhkMDNkMWJiZjM1MTEzZmMyZjA1NGM2YzM2MDA3MjEwODhmODI3YmNjMzFl NWM2MDNhMzJkCitjaGVja3N1bT1kZTI3MDlmMGVlMjMzYjIwMTE2ZDVmYTk4NjFkNDA2MDcxNzk4 YzRhYTM3ODMwY2EyNWY1ZWYyYzAwODNlNDUwCiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgot YnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1 aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBwb3N0X3BhdGNoKCkgewogCSMgVGhpcyB0ZXN0 IHJlcXVpcmVzIExDX0lERU5USUZJQ0FUSU9OLCB3aGljaCBpcyBhIEdMSUJDJ3MgZXh0ZW5zaW9u CkBAIC0zNSw4ICszNCw2IEBAIGxpYmd3ZWF0aGVyLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3Zl ICJ1c3IvbGliLyouc28iCiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2 bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAotCQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEi IF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJfQoKRnJvbSA2OTEzNGRl OGU4NmI3ZGE0NDA4YjQ4MTAwNDY3ZGIzNjdlNTZkNGQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAx MyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDM1LzEwMl0gZ25vbWUt bWVudXM6IHVwZGF0ZSB0byAzLjM2LjAKCi0tLQogc3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0 ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxhdGUgYi9zcmNwa2dz L2dub21lLW1lbnVzL3RlbXBsYXRlCmluZGV4IDI5MTAyMTI5YzM4Li5lNzg3ZmI4ZGU2YiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21l LW1lbnVzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25v bWUtbWVudXMnCiBwa2duYW1lPWdub21lLW1lbnVzCi12ZXJzaW9uPTMuMzIuMAotcmV2aXNpb249 MgordmVyc2lvbj0zLjM2LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUK IGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMiCkBA IC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtbWVudXMiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jODUwYzY0YjIwNzQyNjVmZTU5ZTA5OWEzNDBi ODY4OWNmM2RkNDY1OGRjOWZlZGRkMmFiNWU5NWYxYTc0Yjc0CitjaGVja3N1bT1kOTM0OGYzOGJk ZTk1NmZjMzI3NTNiMjhjMWNkZTE5YzE3NWJmZGJmMWY0ZDViMDYwMDNiM2FhMDkxNTNiYjFmCiAK IGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSBi YjIxZWM2YTliZGMzMmM1OWNhYzJmZjBiMzBlYTM2YzM1ZjcxZDg3IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDM2LzEwMl0g Z25vbWUtZGVza3RvcDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmNwa2dzL2dub21lLWRlc2t0b3AvcGF0 Y2hlcy9idWlsZC5wYXRjaCB8IDE4ICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1k ZXNrdG9wL3RlbXBsYXRlICAgICAgICAgICAgfCAxMSArKysrKysrKy0tLQogMyBmaWxlcyBjaGFu Z2VkLCAyNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZ25vbWUtZGVza3RvcC9wYXRjaGVzL2J1aWxkLnBhdGNoCgpkaWZmIC0tZ2l0IGEv Y29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggZDc3YzEzNzZiOTguLmQ4ZGFmNjRl MmEyIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTEx NzYsNyArMTE3Niw3IEBAIGxpYmdzdGJhc2VjYW1lcmFiaW5zcmMtMS4wLnNvLjAgZ3N0LXBsdWdp bnMtYmFkMS0xLjAuMF8xCiBsaWJnc3Rjb2RlY3BhcnNlcnMtMS4wLnNvLjAgZ3N0LXBsdWdpbnMt YmFkMS0xLjAuMF8xCiBsaWJnc3RwbGF5ZXItMS4wLnNvLjAgZ3N0LXBsdWdpbnMtYmFkMS0xLjAu MF8xCiBsaWJnc3RnbC0xLjAuc28uMCBnc3QtcGx1Z2lucy1iYXNlMS0xLjE0LjBfMQotbGliZ25v bWUtZGVza3RvcC0zLnNvLjE4IGdub21lLWRlc2t0b3AtMy4zNC4wXzEKK2xpYmdub21lLWRlc2t0 b3AtMy5zby4xOSBnbm9tZS1kZXNrdG9wLTMuMzcuOTAuMV8xCiBsaWJzZWNyZXQtMS5zby4wIGxp YnNlY3JldC0wLjEwXzEKIGxpYmd3ZWF0aGVyLTMuc28uMTYgbGliZ3dlYXRoZXItMy4zNC4wXzEK IGxpYmdub21la2JkLnNvLjggbGliZ25vbWVrYmQtMy42LjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nbm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL2dub21lLWRlc2t0 b3AvcGF0Y2hlcy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uZWZlZDAwYTI1ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLWRlc2t0 b3AvcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDE4IEBACitjb21taXQgNGY1NWZmMDc4 NDExOTkzYjc4MmU3NGVhMThjNWM2YWIzNWFkZjY4NQorQXV0aG9yOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6ICAgV2VkIEF1ZyAxMiAwNToyNjowMCAyMDIwICsw MjAwCisKKyAgICBibGEKKworZGlmZiAtLWdpdCBsaWJnbm9tZS1kZXNrdG9wL2dub21lLXJyLmgg bGliZ25vbWUtZGVza3RvcC9nbm9tZS1yci5oCitpbmRleCAxMTFiYWIzLi43Njk4NjcyIDEwMDY0 NAorLS0tIGxpYmdub21lLWRlc2t0b3AvZ25vbWUtcnIuaAorKysrIGxpYmdub21lLWRlc2t0b3Av Z25vbWUtcnIuaAorQEAgLTI4LDYgKzI4LDcgQEAKKyAjZXJyb3IgICAgR25vbWVSUiBpcyB1bnN0 YWJsZSBBUEkuIFlvdSBtdXN0IGRlZmluZSBHTk9NRV9ERVNLVE9QX1VTRV9VTlNUQUJMRV9BUEkg YmVmb3JlIGluY2x1ZGluZyBnbm9tZXJyLmgKKyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8c3RkaW50 Lmg+CisgI2luY2x1ZGUgPGdsaWIuaD4KKyAjaW5jbHVkZSA8Z2RrL2dkay5oPgorIApkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1kZXNr dG9wL3RlbXBsYXRlCmluZGV4IDk5MmNiMWZmMTZhLi5iZDBiMmY1YzFkOSAxMDA2NDQKLS0tIGEv c3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZGVza3Rv cC90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUt ZGVza3RvcCcKIHBrZ25hbWU9Z25vbWUtZGVza3RvcAotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249 My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIi Ci1jb25maWd1cmVfYXJncz0iLURnbm9tZS1kaXN0cmlidXRvcj1Wb2lkTGludXggLUR1ZGV2PWVu YWJsZWQKK2NvbmZpZ3VyZV9hcmdzPSItRGdub21lX2Rpc3RyaWJ1dG9yPVZvaWRMaW51eCAtRHVk ZXY9ZW5hYmxlZCAtRHN5c3RlbWQ9ZGlzYWJsZWQKICAtRGludHJvc3BlY3Rpb249JCh2b3B0X2lm IGdpciB0cnVlIGZhbHNlKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBpdHN0b29sIHBrZy1j b25maWcgZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRzPSJldWRldi1saWJ1ZGV2LWRldmVsIGdzZXR0 aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwgZ3RrKzMtZGV2ZWwKQEAgLTE2LDExICsxNiwxNiBA QCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWRlc2t0b3AiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1jMWRiZWI1NjY2ZGFkMjcxNjZjNzY5ZTQ4ZTJhYjQxZGQ1ZWQ3NDcx OGVhMzVlYjU3Yzg0ODg3OTA2NjJkYzVhCitjaGVja3N1bT0wODlkYmJlM2M2NmZlNTU3NTY1OWE0 YTM4NWQ1ZDRiYmQ5OWNmNjM3MDM0ZGYzMTdmMjFjZjU4NmI1ZGQ2YjkwCiAKIGJ1aWxkX29wdGlv bnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCisjIG5lZWRzIFgKK2RvX2No ZWNrKCkgeworCToKK30KKwogZ25vbWUtZGVza3RvcC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVu ZHM9Imd0ayszLWRldmVsIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWw+PTMuMTIKIAkg Z2RrLXBpeGJ1Zi1kZXZlbCBpc28tY29kZXMgbGliWDExLWRldmVsIGxpYmdsaWItZGV2ZWwgbGli c2VjY29tcC1kZXZlbAoKRnJvbSAyYzJjOGRlMTE0ZWRmZjU5OTE3NzQyMWIxZWFiNWJmM2M0NWNm YjVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDM3LzEwMl0gZ25vbWUtc2V0dGluZ3MtZGFlbW9uOiB1cGRhdGUgdG8gMy4z OC4wCgotLS0KIC4uLi9wYXRjaGVzL2xvZ2luZC1iYWNrbGlnaHQucGF0Y2ggICAgICAgICAgICB8 IDEzNiArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3Rl bXBsYXRlICAgICAgICB8ICAxMSArLQogMiBmaWxlcyBjaGFuZ2VkLCAxNDIgaW5zZXJ0aW9ucygr KSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLXNldHRp bmdzLWRhZW1vbi9wYXRjaGVzL2xvZ2luZC1iYWNrbGlnaHQucGF0Y2gKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi9wYXRjaGVzL2xvZ2luZC1iYWNrbGlnaHQucGF0 Y2ggYi9zcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi9wYXRjaGVzL2xvZ2luZC1iYWNrbGln aHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU1Y2E2YmQ0 M2RkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0 Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoCkBAIC0wLDAgKzEsMTM2IEBACitGcm9tIDM4NDVi M2E3YjU4ZjI2ZWM2OGRiYzFjNDU3ZWFkMDZmNDg4MTE4MGIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IEZy aSwgMTQgQXVnIDIwMjAgMTc6NDg6MjEgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gVGhlIG5ldyBs b2dpbmQgYnJpZ2h0bmVzcyBjb2RlIGRvZXNuJ3Qgd29yayB3aXRoIGVsb2dpbmQuCisKK2h0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zZXR0aW5ncy1kYWVtb24vLS9jb21taXQv Y2QwNTFlNmM3Y2NmYjdlN2IwZWM0NDA0MDljNTU5YjJlNTEyODRlOAorLS0tCisgcGx1Z2lucy9w b3dlci9nc2QtYmFja2xpZ2h0LmMgfCA3NyArKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQor CitkaWZmIC0tZ2l0IHBsdWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jIHBsdWdpbnMvcG93ZXIv Z3NkLWJhY2tsaWdodC5jCitpbmRleCBjYTVmMjcyLi40YWNjMmU1IDEwMDY0NAorLS0tIHBsdWdp bnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jCisrKysgcGx1Z2lucy9wb3dlci9nc2QtYmFja2xpZ2h0 LmMKK0BAIC00MCw4ICs0MCw2IEBAIHN0cnVjdCBfR3NkQmFja2xpZ2h0CisgICAgICAgICBnaW50 IGJyaWdodG5lc3Nfc3RlcDsKKyAKKyAjaWZkZWYgX19saW51eF9fCistICAgICAgICBHREJ1c1By b3h5ICpsb2dpbmRfcHJveHk7CistCisgICAgICAgICBHVWRldkNsaWVudCAqdWRldjsKKyAgICAg ICAgIEdVZGV2RGV2aWNlICp1ZGV2X2RldmljZTsKKyAKK0BAIC02MSwxMCArNTksNiBAQCBlbnVt IHsKKyAgICAgICAgIFBST1BfTEFTVCwKKyB9OworIAorLSNkZWZpbmUgU1lTVEVNRF9EQlVTX05B TUUgICAgICAgICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AubG9naW4xIgorLSNkZWZp bmUgU1lTVEVNRF9EQlVTX1BBVEggICAgICAgICAgICAgICAgICAgICAgICIvb3JnL2ZyZWVkZXNr dG9wL2xvZ2luMS9zZXNzaW9uL2F1dG8iCistI2RlZmluZSBTWVNURU1EX0RCVVNfSU5URVJGQUNF ICAgICAgICAgICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5sb2dpbjEuU2Vzc2lvbiIKKy0KKyBz dGF0aWMgR1BhcmFtU3BlYyAqcHJvcHNbUFJPUF9MQVNUXTsKKyAKKyBzdGF0aWMgdm9pZCAgICAg Z3NkX2JhY2tsaWdodF9pbml0YWJsZV9pZmFjZV9pbml0IChHSW5pdGFibGVJZmFjZSAgKmlmYWNl KTsKK0BAIC00ODIsMzAgKzQ3NiwxMyBAQCBnc2RfYmFja2xpZ2h0X3NldF9icmlnaHRuZXNzX3Zh bF9hc3luYyAoR3NkQmFja2xpZ2h0ICpiYWNrbGlnaHQsCisgICAgICAgICBpZiAoYmFja2xpZ2h0 LT51ZGV2X2RldmljZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgIEJhY2tsaWdodEhlbHBl ckRhdGEgKnRhc2tfZGF0YTsKKyAKKy0gICAgICAgICAgICAgICAgaWYgKGJhY2tsaWdodC0+bG9n aW5kX3Byb3h5KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgZ19kYnVzX3Byb3h5X2NhbGwg KGJhY2tsaWdodC0+bG9naW5kX3Byb3h5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiU2V0QnJpZ2h0bmVzcyIsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIoc3N1KSIsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiYWNrbGlnaHQi LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnX3VkZXZfZGV2aWNlX2dldF9uYW1lIChiYWNrbGlnaHQtPnVkZXZfZGV2aWNlKSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YmFja2xpZ2h0LT5icmlnaHRuZXNzX3RhcmdldCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCBOVUxMLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBwZXJjZW50ID0gQUJTX1RPX1BFUkNFTlRBR0UgKGJhY2tsaWdodC0+YnJp Z2h0bmVzc19taW4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBiYWNrbGlnaHQtPmJyaWdodG5lc3NfbWF4LAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2xpZ2h0LT5icmlnaHRuZXNz X3RhcmdldCk7CistICAgICAgICAgICAgICAgICAgICAgICAgZ190YXNrX3JldHVybl9pbnQgKHRh c2ssIHBlcmNlbnQpOworLSAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAg ICAgICAgICAgIHRhc2tfZGF0YSA9IGdfbmV3MCAoQmFja2xpZ2h0SGVscGVyRGF0YSwgMSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgdGFza19kYXRhLT52YWx1ZSA9IGJhY2tsaWdodC0+YnJp Z2h0bmVzc190YXJnZXQ7CistICAgICAgICAgICAgICAgICAgICAgICAgZ190YXNrX3NldF90YXNr X2RhdGEgKHRhc2ssIHRhc2tfZGF0YSwgYmFja2xpZ2h0X3Rhc2tfZGF0YV9kZXN0cm95KTsKKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICAvKiBUYXNrIGlzIHNldCB1cCBub3cuIFF1ZXVlIGl0 IGFuZCBlbnN1cmUgd2UgYXJlIHdvcmtpbmcgc29tZXRoaW5nLiAqLworLSAgICAgICAgICAgICAg ICAgICAgICAgIGdfcXVldWVfcHVzaF90YWlsICgmYmFja2xpZ2h0LT50YXNrcywgdGFzayk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgZ3NkX2JhY2tsaWdodF9wcm9jZXNzX3Rhc2txdWV1ZSAo YmFja2xpZ2h0KTsKKy0gICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICB0YXNrX2Rh dGEgPSBnX25ldzAgKEJhY2tsaWdodEhlbHBlckRhdGEsIDEpOworKyAgICAgICAgICAgICAgICB0 YXNrX2RhdGEtPnZhbHVlID0gYmFja2xpZ2h0LT5icmlnaHRuZXNzX3RhcmdldDsKKysgICAgICAg ICAgICAgICAgZ190YXNrX3NldF90YXNrX2RhdGEgKHRhc2ssIHRhc2tfZGF0YSwgYmFja2xpZ2h0 X3Rhc2tfZGF0YV9kZXN0cm95KTsKKysKKysgICAgICAgICAgICAgICAgLyogVGFzayBpcyBzZXQg dXAgbm93LiBRdWV1ZSBpdCBhbmQgZW5zdXJlIHdlIGFyZSB3b3JraW5nIHNvbWV0aGluZy4gKi8K KysgICAgICAgICAgICAgICAgZ19xdWV1ZV9wdXNoX3RhaWwgKCZiYWNrbGlnaHQtPnRhc2tzLCB0 YXNrKTsKKysgICAgICAgICAgICAgICAgZ3NkX2JhY2tsaWdodF9wcm9jZXNzX3Rhc2txdWV1ZSAo YmFja2xpZ2h0KTsKKyAKKyAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorQEAg LTgyMyw3ICs4MDAsNiBAQCBnc2RfYmFja2xpZ2h0X2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAg ICAgICAqaW5pdGFibGUsCisgeworICAgICAgICAgR3NkQmFja2xpZ2h0ICpiYWNrbGlnaHQgPSBH U0RfQkFDS0xJR0hUIChpbml0YWJsZSk7CisgICAgICAgICBHbm9tZVJST3V0cHV0KiBvdXRwdXQg PSBOVUxMOworLSAgICAgICAgR0Vycm9yICpsb2dpbmRfZXJyb3IgPSBOVUxMOworIAorICAgICAg ICAgaWYgKGNhbmNlbGxhYmxlICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgZ19zZXRfZXJy b3JfbGl0ZXJhbCAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfTk9UX1NVUFBPUlRFRCwK K0BAIC04MzIsNDQgKzgwOCw2IEBAIGdzZF9iYWNrbGlnaHRfaW5pdGFibGVfaW5pdCAoR0luaXRh YmxlICAgICAgICppbml0YWJsZSwKKyAgICAgICAgIH0KKyAKKyAjaWZkZWYgX19saW51eF9fCist ICAgICAgICBiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSA9CistICAgICAgICAgICAgICAgIGdfZGJ1 c19wcm94eV9uZXdfZm9yX2J1c19zeW5jIChHX0JVU19UWVBFX1NZU1RFTSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1lTVEVNRF9EQlVTX05BTUUsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTWVNURU1EX0RCVVNfUEFU SCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZU1RF TURfREJVU19JTlRFUkZBQ0UsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLCAmbG9naW5kX2Vycm9yKTsKKy0gICAgICAgIGlmIChiYWNrbGlnaHQt PmxvZ2luZF9wcm94eSkgeworLSAgICAgICAgICAgICAgICAvKiBDaGVjayB0aGF0IHRoZSBTZXRC cmlnaHRuZXNzIG1ldGhvZCBkb2VzIGV4aXN0ICovCistICAgICAgICAgICAgICAgIGdfZGJ1c19w cm94eV9jYWxsX3N5bmMgKGJhY2tsaWdodC0+bG9naW5kX3Byb3h5LAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0QnJpZ2h0bmVzcyIsIE5VTEwsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUs IC0xLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAmbG9n aW5kX2Vycm9yKTsKKy0KKy0gICAgICAgICAgICAgICAgaWYgKGdfZXJyb3JfbWF0Y2hlcyAobG9n aW5kX2Vycm9yLCBHX0RCVVNfRVJST1IsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdfREJVU19FUlJPUl9JTlZBTElEX0FSR1MpKSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgLyogV2UgYXJlIGNhbGxpbmcgdGhlIG1ldGhvZCB3aXRoIG5vIGFyZ3VtZW50cywgc28K Ky0gICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGlzIGlzIGV4cGVjdGVkLgorLSAgICAgICAg ICAgICAgICAgICAgICAgICAqLworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfY2xlYXJfZXJy b3IgKCZsb2dpbmRfZXJyb3IpOworLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGdfZXJyb3Jf bWF0Y2hlcyAobG9naW5kX2Vycm9yLCBHX0RCVVNfRVJST1IsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfRVJST1JfVU5LTk9XTl9NRVRIT0QpKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgLyogc3lzdGVtZCB2ZXJzaW9uIGlzIHRvbyBvbGQs IHNvIGlnbm9yZS4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy0gICAgICAgICAgICAg ICAgICAgICAgICBnX2NsZWFyX2Vycm9yICgmbG9naW5kX2Vycm9yKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBnX2NsZWFyX29iamVjdCAoJmJhY2tsaWdodC0+bG9naW5kX3Byb3h5KTsKKy0g ICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvKiBGYWls IG9uIGFueXRoaW5nIGVsc2UgKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICBnX2NsZWFyX29i amVjdCAoJmJhY2tsaWdodC0+bG9naW5kX3Byb3h5KTsKKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLQorLSAgICAgICAgaWYgKGxvZ2luZF9lcnJvcikgeworLSAgICAgICAgICAgICAg ICBnX3dhcm5pbmcgKCJObyBsb2dpbmQgZm91bmQ6ICVzIiwgbG9naW5kX2Vycm9yLT5tZXNzYWdl KTsKKy0gICAgICAgICAgICAgICAgZ19lcnJvcl9mcmVlIChsb2dpbmRfZXJyb3IpOworLSAgICAg ICAgfQorLQorICAgICAgICAgLyogVHJ5IGZpbmRpbmcgYSB1ZGV2IGRldmljZS4gKi8KKyAgICAg ICAgIGlmIChnc2RfYmFja2xpZ2h0X3VkZXZfaW5pdCAoYmFja2xpZ2h0KSkKKyAgICAgICAgICAg ICAgICAgZ290byBmb3VuZDsKK0BAIC05MTEsNyArODQ5LDYgQEAgZ3NkX2JhY2tsaWdodF9maW5h bGl6ZSAoR09iamVjdCAqb2JqZWN0KQorICNpZmRlZiBfX2xpbnV4X18KKyAgICAgICAgIGdfYXNz ZXJ0IChiYWNrbGlnaHQtPmFjdGl2ZV90YXNrID09IE5VTEwpOworICAgICAgICAgZ19hc3NlcnQg KGdfcXVldWVfaXNfZW1wdHkgKCZiYWNrbGlnaHQtPnRhc2tzKSk7CistICAgICAgICBnX2NsZWFy X29iamVjdCAoJmJhY2tsaWdodC0+bG9naW5kX3Byb3h5KTsKKyAgICAgICAgIGdfY2xlYXJfb2Jq ZWN0ICgmYmFja2xpZ2h0LT51ZGV2KTsKKyAgICAgICAgIGdfY2xlYXJfb2JqZWN0ICgmYmFja2xp Z2h0LT51ZGV2X2RldmljZSk7CisgICAgICAgICBpZiAoYmFja2xpZ2h0LT5pZGxlX3VwZGF0ZSkg eworLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVt b24vdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQppbmRl eCBhNzBlMjhiZTVmYS4uYjZkYTI4ZTI1NTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2V0 dGluZ3MtZGFlbW9uL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9u L3RlbXBsYXRlCkBAIC0xLDEwICsxLDExIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1z ZXR0aW5ncy1kYWVtb24nCiBwa2duYW1lPWdub21lLXNldHRpbmdzLWRhZW1vbgotdmVyc2lvbj0z LjM0LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgogY29uZmlndXJlX2FyZ3MrPSItRHN5c3RlbWQ9ZmFsc2UiCi1ob3N0bWFrZWRlcGVu ZHM9ImNtYWtlIGRvY2Jvb2steHNsIGdsaWItZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJ4c2x0IHBl cmwgcGtnLWNvbmZpZyIKK2hvc3RtYWtlZGVwZW5kcz0iY21ha2UgZG9jYm9vay14c2wgZ2V0dGV4 dCBnbGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlieHNsdAorIHBlcmwgcGtnLWNvbmZpZyIKIG1h a2VkZXBlbmRzPSJOZXR3b3JrTWFuYWdlci1kZXZlbCBhbHNhLWxpYi1kZXZlbCBjb2xvcmQtZGV2 ZWwgY3Vwcy1kZXZlbCBnY3ItZGV2ZWwKICBnZW9jbHVlMi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRl dmVsIGlidXMtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGliZ25vbWVrYmQtZGV2ZWwKICBsaWJn d2VhdGhlci1kZXZlbCBsaWJub3RpZnktZGV2ZWwgbGlicnN2Zy1kZXZlbCBsaWJ3YWNvbS1kZXZl bCBuc3MtZGV2ZWwKQEAgLTEyLDEzICsxMywxMyBAQCBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFn ZXItZGV2ZWwgYWxzYS1saWItZGV2ZWwgY29sb3JkLWRldmVsIGN1cHMtZGV2ZWwgZ2NyLWRldgog IHhmODYtaW5wdXQtd2Fjb20tZGV2ZWwiCiBkZXBlbmRzPSJoaWNvbG9yLWljb24tdGhlbWUgcHVs c2VhdWRpbyIKIGNoZWNrZGVwZW5kcz0iZWxvZ2luZCBsaWJub3RpZnkgcHl0aG9uMy1kYnVzbW9j ayBweXRob24zLWdvYmplY3QKLSBweXRob24zLXB5Y29kZXN0eWxlIgorIHB5dGhvbjMtcHljb2Rl c3R5bGUgd2hpY2ggaHdpZHMgZXVkZXYiCiBzaG9ydF9kZXNjPSJHTk9NRSBzZXR0aW5ncyBkYWVt b24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5v cmcvR05PTUUvZ25vbWUtc2V0dGluZ3MtZGFlbW9uIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09OTk4MWEyMGJhYmY4ZGE3NzQ0YjdmYmUxNzViOWUzNjA3OGJmMDhmM2JmNjVmZTVh ZWRlYjgyY2ZlMjdhYzExZgorY2hlY2tzdW09YjdlZDViNWZhYjlhYWQxOTJjZWVkNmE5NWJlMjgw NTEyNGUzYzYzYzQ2ODkxYmJhZTA3NmY3ZWMzZmQ2NzkyZQogCiBpZiBbICIkQ1JPU1NfQlVJTEQi IF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMrPSIgcG9sa2l0IgoKRnJvbSBiY2NmY2VjZjk5Mjdk MDM4MmZiMGFhYTJmMTIxN2VhZWEwYmUwODgxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcg MjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDM4LzEwMl0gbXV0dGVyOiB1cGRh dGUgdG8gMy4zOC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAxOCArLQogLi4uL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNo ICAgICAgIHwgIDExIC0KIHNyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNo ICAgICB8IDUyMSAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvbXV0dGVyL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgICB8ICAzNCArLQogNCBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRp b25zKCspLCA1NTUgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXR0 ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaAoKZGlmZiAtLWdpdCBh L2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGQ4ZGFmNjRlMmEyLi42N2YyODI1 MWMyMiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0z MDAyLDE1ICszMDAyLDE1IEBAIGxpYmRlY29yYXRpb24uc28uMCBjb21waXotY29yZS0wLjguMTRf MQogbGliY29tcGl6Y29uZmlnLnNvLjAgbGliY29tcGl6Y29uZmlnLTAuOC4xNF8xCiBsaWJlbWVy YWxkZW5naW5lLnNvLjAgZW1lcmFsZC0wLjguMTRfMQogbGliaGFuZ3VsLnNvLjEgbGliaGFuZ3Vs LTAuMS4wXzEKLWxpYm11dHRlci01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY2x1 dHRlci01LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNsdXR0ZXItNS5zby4wIG11dHRl ci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtcGF0aC01LnNvIG11dHRlci0zLjM0LjFfMQotbGli bXV0dGVyLWNvZ2wtcGF0aC01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY29nbC01 LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtNS5zby4wIG11dHRlci0zLjM0LjFf MQotbGlibXV0dGVyLWNvZ2wtcGFuZ28tNS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1j b2dsLXBhbmdvLTUuc28uMCBtdXR0ZXItMy4zNC4xXzEKK2xpYm11dHRlci03LnNvLjAgbXV0dGVy LTMuMzcuOTBfMQorbGlibXV0dGVyLWNsdXR0ZXItNy5zbyBtdXR0ZXItMy4zNy45MF8xCitsaWJt dXR0ZXItY2x1dHRlci03LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtcGF0 aC03LnNvIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhdGgtNy5zby4wIG11dHRl ci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLTcuc28gbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0 dGVyLWNvZ2wtNy5zby4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhbmdvLTcu c28gbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5zby4wIG11dHRlci0z LjM3LjkwXzEKIGxpYmdlb2NsdWUtMi5zby4wIGdlb2NsdWUyLTIuNC40XzEKIGxpYmdlcHViLnNv LjAgbGliZ2VwdWItMC40XzEKIGxpYnNsb3B5LnNvLjcuNSBzbG9wLTcuNV8xCmRpZmYgLS1naXQg YS9zcmNwa2dzL211dHRlci9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRlcy5wYXRjaCBiL3Ny Y3BrZ3MvbXV0dGVyL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTA5ODg4ODdjMy4uMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gY29nbC9jb2dsL21lc29uLmJ1aWxkCTIwMTktMTAt MDggMTk6MTU6MTAuMDAwMDAwMDAwICswMjAwCi0rKysgY29nbC9jb2dsL21lc29uLmJ1aWxkCTIw MTktMTItMTYgMTU6NDU6NDQuMDM3NjQwNTQ4ICswMTAwCi1AQCAtNDgsNyArNDgsNyBAQAotIGJ1 aWx0X2hlYWRlcnMgKz0gW2NvZ2xfZ2xfaGVhZGVyX2hdCi0gCi0gaWYgaGF2ZV9lZ2wKLS0gIGNv Z2xfZWdsX2luY2x1ZGVzX3N0cmluZyA9ICcjaW5jbHVkZSA8RUdML2VnbC5oPlxuI2luY2x1ZGUg PEVHTC9lZ2xleHQuaD4nCi0rICBjb2dsX2VnbF9pbmNsdWRlc19zdHJpbmcgPSAnI2luY2x1ZGUg PEVHTC9lZ2wuaD5cbiNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+XG4jaW5jbHVkZSA8RUdML2VnbG1l c2FleHQuaD4nCi0gZWxzZQotICAgY29nbF9lZ2xfaW5jbHVkZXNfc3RyaW5nID0gJycKLSBlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2gg Yi9zcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggZWJmZjY1ZmJhODUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv bXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTIx ICswLDAgQEAKLUJ1aWxkIG11dHRlciBhZ2FpbnN0IHBpcGV3aXJlLTAuMywgYmFzZWQgb24gYSBw YXRjaCBhdDoKLWh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9tdXR0ZXIvLS9tZXJnZV9y ZXF1ZXN0cy8xMDYyCi0tLS0gbWVzb24uYnVpbGQKLSsrKyBtZXNvbi5idWlsZAotQEAgLTUwLDcg KzUwLDcgQEAgbGliaW5wdXRfcmVxID0gJz49IDEuNycKLSBnYm1fcmVxID0gJz49IDEwLjMnCi0K LSAjIHNjcmVlbiBjYXN0IHZlcnNpb24gcmVxdWlyZW1lbnRzCi0tbGlicGlwZXdpcmVfcmVxID0g Jz49IDAuMi41JwotK2xpYnBpcGV3aXJlX3JlcSA9ICc+PSAwLjMuMCcKLQotIGdub21lID0gaW1w b3J0KCdnbm9tZScpCi0gcGtnID0gaW1wb3J0KCdwa2djb25maWcnKQotQEAgLTI0MSw3ICsyNDEs NyBAQCBlbmRpZgotCi0gaGF2ZV9yZW1vdGVfZGVza3RvcCA9IGdldF9vcHRpb24oJ3JlbW90ZV9k ZXNrdG9wJykKLSBpZiBoYXZlX3JlbW90ZV9kZXNrdG9wCi0tICBsaWJwaXBld2lyZV9kZXAgPSBk ZXBlbmRlbmN5KCdsaWJwaXBld2lyZS0wLjInLCB2ZXJzaW9uOiBsaWJwaXBld2lyZV9yZXEpCi0r ICBsaWJwaXBld2lyZV9kZXAgPSBkZXBlbmRlbmN5KCdsaWJwaXBld2lyZS0wLjMnLCB2ZXJzaW9u OiBsaWJwaXBld2lyZV9yZXEpCi0gZW5kaWYKLQotIGhhdmVfaW50cm9zcGVjdGlvbiA9IGdldF9v cHRpb24oJ2ludHJvc3BlY3Rpb24nKQotZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kcy9tZXRhLXNj cmVlbi1jYXN0LXN0cmVhbS1zcmMuYyBiL3NyYy9iYWNrZW5kcy9tZXRhLXNjcmVlbi1jYXN0LXN0 cmVhbS1zcmMuYwotaW5kZXggODJjNWNiYTQzNi4uYmExY2U5NGE3ZSAxMDA2NDQKLS0tLSBzcmMv YmFja2VuZHMvbWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMKLSsrKyBzcmMvYmFja2VuZHMv bWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMKLUBAIC0yOSw2ICsyOSw3IEBACi0gI2luY2x1 ZGUgPHNwYS9wYXJhbS9wcm9wcy5oPgotICNpbmNsdWRlIDxzcGEvcGFyYW0vZm9ybWF0LXV0aWxz Lmg+Ci0gI2luY2x1ZGUgPHNwYS9wYXJhbS92aWRlby9mb3JtYXQtdXRpbHMuaD4KLSsjaW5jbHVk ZSA8c3BhL3V0aWxzL3Jlc3VsdC5oPgotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAjaW5jbHVkZSA8 c3lzL21tYW4uaD4KLQotQEAgLTYyLDE1ICs2Myw2IEBAIGVudW0KLQotIHN0YXRpYyBndWludCBz aWduYWxzW05fU0lHTkFMU107Ci0KLS10eXBlZGVmIHN0cnVjdCBfTWV0YVNwYVR5cGUKLS17Ci0t ICBzdHJ1Y3Qgc3BhX3R5cGVfbWVkaWFfdHlwZSBtZWRpYV90eXBlOwotLSAgc3RydWN0IHNwYV90 eXBlX21lZGlhX3N1YnR5cGUgbWVkaWFfc3VidHlwZTsKLS0gIHN0cnVjdCBzcGFfdHlwZV9mb3Jt YXRfdmlkZW8gZm9ybWF0X3ZpZGVvOwotLSAgc3RydWN0IHNwYV90eXBlX3ZpZGVvX2Zvcm1hdCB2 aWRlb19mb3JtYXQ7Ci0tICB1aW50MzJfdCBtZXRhX2N1cnNvcjsKLS19IE1ldGFTcGFUeXBlOwot LQotIHR5cGVkZWYgc3RydWN0IF9NZXRhUGlwZVdpcmVTb3VyY2UKLSB7Ci0gICBHU291cmNlIGJh c2U7Ci1AQCAtODIsMTkgKzc0LDE5IEBAIHR5cGVkZWYgc3RydWN0IF9NZXRhU2NyZWVuQ2FzdFN0 cmVhbVNyY1ByaXZhdGUKLSB7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbSAqc3RyZWFtOwotCi0r ICBzdHJ1Y3QgcHdfY29udGV4dCAqcGlwZXdpcmVfY29udGV4dDsKLSAgIHN0cnVjdCBwd19jb3Jl ICpwaXBld2lyZV9jb3JlOwotLSAgc3RydWN0IHB3X3JlbW90ZSAqcGlwZXdpcmVfcmVtb3RlOwot LSAgc3RydWN0IHB3X3R5cGUgKnBpcGV3aXJlX3R5cGU7Ci0gICBNZXRhUGlwZVdpcmVTb3VyY2Ug KnBpcGV3aXJlX3NvdXJjZTsKLS0gIHN0cnVjdCBzcGFfaG9vayBwaXBld2lyZV9yZW1vdGVfbGlz dGVuZXI7Ci0rICBzdHJ1Y3Qgc3BhX2hvb2sgcGlwZXdpcmVfY29yZV9saXN0ZW5lcjsKLQotICAg Z2Jvb2xlYW4gaXNfZW5hYmxlZDsKLQotICAgc3RydWN0IHB3X3N0cmVhbSAqcGlwZXdpcmVfc3Ry ZWFtOwotICAgc3RydWN0IHNwYV9ob29rIHBpcGV3aXJlX3N0cmVhbV9saXN0ZW5lcjsKLSsgIHVp bnQzMl90IG5vZGVfaWQ7Ci0KLS0gIE1ldGFTcGFUeXBlIHNwYV90eXBlOwotICAgc3RydWN0IHNw YV92aWRlb19pbmZvX3JhdyB2aWRlb19mb3JtYXQ7Ci0rICBpbnQgdmlkZW9fc3RyaWRlOwotCi0g ICB1aW50NjRfdCBsYXN0X2ZyYW1lX3RpbWVzdGFtcF91czsKLQotQEAgLTExMiw4ICsxMDQsNiBA QCBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YV9zY3JlZW5f Y2FzdF9zdHJlYW1fc3JjX2luaXRfaW5pdGFibGVfaWZhY2UpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgIEdfQUREX1BSSVZBVEUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjKSkKLQotLSNkZWZp bmUgUFJPUF9SQU5HRShtaW4sIG1heCkgMiwgKG1pbiksIChtYXgpCi0tCi0gc3RhdGljIHZvaWQK LSBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X3NwZWNzIChNZXRhU2NyZWVuQ2FzdFN0 cmVhbVNyYyAqc3JjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCAgICAgICAgICAgICAgICAgICAgICp3aWR0aCwKLUBAIC0yODYsOSArMjc2LDYgQEAgbWV0YV9z Y3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3ByaXRlX21ldGFkYXRhIChN ZXRhU2NyZWVuQ2FzdFN0cmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICB4LAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50ICAgICAgICAgICAgICAgICAgICAgIHkpCi0gewotLSAgTWV0YVNjcmVlbkNhc3RTdHJl YW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dl dF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnBy aXYtPnNwYV90eXBlOwotICAgc3RydWN0IHNwYV9tZXRhX2JpdG1hcCAqc3BhX21ldGFfYml0bWFw OwotCi0gICBzcGFfbWV0YV9jdXJzb3ItPmlkID0gMTsKLUBAIC0zMDAsNyArMjg3LDcgQEAgbWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3ByaXRlX21ldGFkYXRh IChNZXRhU2NyZWVuQ2FzdFN0cmUKLSAgIHNwYV9tZXRhX2JpdG1hcCA9IFNQQV9NRU1CRVIgKHNw YV9tZXRhX2N1cnNvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYV9tZXRh X2N1cnNvci0+Yml0bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBzcGFfbWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0bWFwLT5mb3JtYXQgPSBz cGFfdHlwZS0+dmlkZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9iaXRtYXAtPmZvcm1hdCA9 IFNQQV9WSURFT19GT1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1hcC0+b2Zmc2V0ID0gc2l6 ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLQotICAgc3BhX21ldGFfY3Vyc29yLT5ob3Rz cG90LnggPSAwOwotQEAgLTMxNyw5ICszMDQsNiBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9z cmNfc2V0X2N1cnNvcl9zcHJpdGVfbWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgICAgICAgICAgICAgICAgICAgICAgeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0ICAgICAgICAgICAgICAgICAgICBzY2Fs ZSkKLSB7Ci0tICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotLSAgICBt ZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0t ICBNZXRhU3BhVHlwZSAqc3BhX3R5cGUgPSAmcHJpdi0+c3BhX3R5cGU7Ci0gICBDb2dsVGV4dHVy ZSAqY3Vyc29yX3RleHR1cmU7Ci0gICBzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwICpzcGFfbWV0YV9i aXRtYXA7Ci0gICBpbnQgaG90c3BvdF94LCBob3RzcG90X3k7Ci1AQCAtMzQ2LDcgKzMzMCw3IEBA IG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfY3Vyc29yX3Nwcml0ZV9tZXRhZGF0YSAo TWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMKLSAgIHNwYV9tZXRhX2JpdG1hcCA9IFNQQV9NRU1CRVIg KHNwYV9tZXRhX2N1cnNvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYV9t ZXRhX2N1cnNvci0+Yml0bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0bWFwLT5mb3JtYXQg PSBzcGFfdHlwZS0+dmlkZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9iaXRtYXAtPmZvcm1h dCA9IFNQQV9WSURFT19GT1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1hcC0+b2Zmc2V0ID0g c2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLQotICAgbWV0YV9jdXJzb3Jfc3ByaXRl X2dldF9ob3RzcG90IChjdXJzb3Jfc3ByaXRlLCAmaG90c3BvdF94LCAmaG90c3BvdF95KTsKLUBA IC0zODIsMTIgKzM2NiwxMCBAQCBzdGF0aWMgdm9pZAotIGFkZF9jdXJzb3JfbWV0YWRhdGEgKE1l dGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMsCi0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHNwYV9idWZmZXIgICAgICAgKnNwYV9idWZmZXIpCi0gewotLSAgTWV0YVNjcmVlbkNhc3RTdHJl YW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dl dF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnBy aXYtPnNwYV90eXBlOwotICAgc3RydWN0IHNwYV9tZXRhX2N1cnNvciAqc3BhX21ldGFfY3Vyc29y OwotCi0tICBzcGFfbWV0YV9jdXJzb3IgPSBzcGFfYnVmZmVyX2ZpbmRfbWV0YSAoc3BhX2J1ZmZl ciwgc3BhX3R5cGUtPm1ldGFfY3Vyc29yKTsKLSsgIHNwYV9tZXRhX2N1cnNvciA9IHNwYV9idWZm ZXJfZmluZF9tZXRhX2RhdGEgKHNwYV9idWZmZXIsIFNQQV9NRVRBX0N1cnNvciwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoKnNwYV9tZXRh X2N1cnNvcikpOwotICAgaWYgKHNwYV9tZXRhX2N1cnNvcikKLSAgICAgbWV0YV9zY3JlZW5fY2Fz dF9zdHJlYW1fc3JjX3NldF9jdXJzb3JfbWV0YWRhdGEgKHNyYywgc3BhX21ldGFfY3Vyc29yKTsK LSB9Ci1AQCAtNDQ3LDE0ICs0MjksMTQgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX21h eWJlX3JlY29yZF9mcmFtZSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYykKLSAgICAgewot ICAgICAgIGRhdGEgPSBzcGFfYnVmZmVyLT5kYXRhc1swXS5kYXRhOwotICAgICB9Ci0tICBlbHNl IGlmIChzcGFfYnVmZmVyLT5kYXRhc1swXS50eXBlID09IHByaXYtPnBpcGV3aXJlX3R5cGUtPmRh dGEuTWVtRmQpCi0rICBlbHNlIGlmIChzcGFfYnVmZmVyLT5kYXRhc1swXS50eXBlID09IFNQQV9E QVRBX01lbUZkKQotICAgICB7Ci0gICAgICAgbWFwID0gbW1hcCAoTlVMTCwgc3BhX2J1ZmZlci0+ ZGF0YXNbMF0ubWF4c2l6ZSArIHNwYV9idWZmZXItPmRhdGFzWzBdLm1hcG9mZnNldCwKLSAgICAg ICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELAotICAgICAg ICAgICAgICAgICAgIHNwYV9idWZmZXItPmRhdGFzWzBdLmZkLCAwKTsKLSAgICAgICBpZiAobWFw ID09IE1BUF9GQUlMRUQpCi0gICAgICAgICB7Ci0tICAgICAgICAgIGdfd2FybmluZyAoIkZhaWxl ZCB0byBtbWFwIHBpcGV3aXJlIHN0cmVhbSBidWZmZXI6ICVzXG4iLAotKyAgICAgICAgICBnX3dh cm5pbmcgKCJGYWlsZWQgdG8gbW1hcCBwaXBld2lyZSBzdHJlYW0gYnVmZmVyOiAlcyIsCi0gICAg ICAgICAgICAgICAgICAgICAgc3RyZXJyb3IgKGVycm5vKSk7Ci0gICAgICAgICAgIHJldHVybjsK LSAgICAgICAgIH0KLUBAIC00NjksMjggKzQ1MSwzMCBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVh bV9zcmNfbWF5YmVfcmVjb3JkX2ZyYW1lIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3JjKQot Ci0gICBpZiAobWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3JlY29yZF9mcmFtZSAoc3JjLCBk YXRhKSkKLSAgICAgewotLSAgICAgIHN0cnVjdCBzcGFfbWV0YV92aWRlb19jcm9wICpzcGFfbWV0 YV92aWRlb19jcm9wOwotKyAgICAgIHN0cnVjdCBzcGFfbWV0YV9yZWdpb24gKnNwYV9tZXRhX3Zp ZGVvX2Nyb3A7Ci0KLSAgICAgICBzcGFfYnVmZmVyLT5kYXRhc1swXS5jaHVuay0+c2l6ZSA9IHNw YV9idWZmZXItPmRhdGFzWzBdLm1heHNpemU7Ci0rICAgICAgc3BhX2J1ZmZlci0+ZGF0YXNbMF0u Y2h1bmstPnN0cmlkZSA9IHByaXYtPnZpZGVvX3N0cmlkZTsKLQotICAgICAgIC8qIFVwZGF0ZSBW aWRlb0Nyb3AgaWYgbmVlZGVkICovCi0gICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcCA9Ci0tICAg ICAgICBzcGFfYnVmZmVyX2ZpbmRfbWV0YSAoc3BhX2J1ZmZlciwgcHJpdi0+cGlwZXdpcmVfdHlw ZS0+bWV0YS5WaWRlb0Nyb3ApOwotKyAgICAgICAgc3BhX2J1ZmZlcl9maW5kX21ldGFfZGF0YSAo c3BhX2J1ZmZlciwgU1BBX01FVEFfVmlkZW9Dcm9wLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZW9mICgqc3BhX21ldGFfdmlkZW9fY3JvcCkpOwotICAgICAgIGlmIChz cGFfbWV0YV92aWRlb19jcm9wKQotICAgICAgICAgewotICAgICAgICAgICBpZiAobWV0YV9zY3Jl ZW5fY2FzdF9zdHJlYW1fc3JjX2dldF92aWRlb2Nyb3AgKHNyYywgJmNyb3BfcmVjdCkpCi0gICAg ICAgICAgICAgewotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eCA9IGNyb3Bf cmVjdC54OwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eSA9IGNyb3BfcmVj dC55OwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+d2lkdGggPSBjcm9wX3Jl Y3Qud2lkdGg7Ci0tICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5oZWlnaHQgPSBj cm9wX3JlY3QuaGVpZ2h0OwotKyAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+cmVn aW9uLnBvc2l0aW9uLnggPSBjcm9wX3JlY3QueDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3Zp ZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi55ID0gY3JvcF9yZWN0Lnk7Ci0rICAgICAgICAgICAg ICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24uc2l6ZS53aWR0aCA9IGNyb3BfcmVjdC53aWR0 aDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLmhlaWdo dCA9IGNyb3BfcmVjdC5oZWlnaHQ7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICBlbHNlCi0g ICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eCA9IDA7 Ci0tICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT55ID0gMDsKLS0gICAgICAgICAg ICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPndpZHRoID0gcHJpdi0+c3RyZWFtX3dpZHRoOwotLSAg ICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+aGVpZ2h0ID0gcHJpdi0+c3RyZWFtX2hl aWdodDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlv bi54ID0gMDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3Np dGlvbi55ID0gMDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5z aXplLndpZHRoID0gcHJpdi0+c3RyZWFtX3dpZHRoOwotKyAgICAgICAgICAgICAgc3BhX21ldGFf dmlkZW9fY3JvcC0+cmVnaW9uLnNpemUuaGVpZ2h0ID0gcHJpdi0+c3RyZWFtX2hlaWdodDsKLSAg ICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0KLUBAIC01NTUsNyArNTM5LDYgQEAgb25f c3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgTWV0 YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVh bVNyY1ByaXZhdGUgKnByaXYgPQotICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0 X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICB1aW50MzJfdCBub2RlX2lkOwotCi0gICBzd2l0 Y2ggKHN0YXRlKQotICAgICB7Ci1AQCAtNTYzLDE0ICs1NDYsMTIgQEAgb25fc3RyZWFtX3N0YXRl X2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgICAgIGdfd2FybmluZyAo InBpcGV3aXJlIHN0cmVhbSBlcnJvcjogJXMiLCBlcnJvcl9tZXNzYWdlKTsKLSAgICAgICBtZXRh X3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsKLSAgICAgICBicmVh azsKLS0gICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfQ09ORklHVVJFOgotLSAgICAgIG5vZGVfaWQg PSBwd19zdHJlYW1fZ2V0X25vZGVfaWQgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSk7Ci0tICAgICAg Z19zaWduYWxfZW1pdCAoc3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2lnbmVkIGludCkgbm9k ZV9pZCk7Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX1VOQ09OTkVD VEVEOgotLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9DT05ORUNUSU5HOgotLSAgICBjYXNlIFBX X1NUUkVBTV9TVEFURV9SRUFEWToKLSAgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfUEFVU0VEOgot KyAgICAgIGlmIChwcml2LT5ub2RlX2lkID09IFNQQV9JRF9JTlZBTElEICYmIHByaXYtPnBpcGV3 aXJlX3N0cmVhbSkKLSsgICAgICAgIHsKLSsgICAgICAgICAgcHJpdi0+bm9kZV9pZCA9IHB3X3N0 cmVhbV9nZXRfbm9kZV9pZCAocHJpdi0+cGlwZXdpcmVfc3RyZWFtKTsKLSsgICAgICAgICAgZ19z aWduYWxfZW1pdCAoc3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2lnbmVkIGludCkgcHJpdi0+ bm9kZV9pZCk7Ci0rICAgICAgICB9Ci0gICAgICAgaWYgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFt X3NyY19pc19lbmFibGVkIChzcmMpKQotICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1f c3JjX2Rpc2FibGUgKHNyYyk7Ci0gICAgICAgYnJlYWs7Ci1AQCAtNTc4LDY4ICs1NTksNjkgQEAg b25fc3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAg ICAgIGlmICghbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2lzX2VuYWJsZWQgKHNyYykpCi0g ICAgICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZW5hYmxlIChzcmMpOwotICAgICAg IGJyZWFrOwotKyAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9VTkNPTk5FQ1RFRDoKLSsgICAgY2Fz ZSBQV19TVFJFQU1fU1RBVEVfQ09OTkVDVElORzoKLSsgICAgICBicmVhazsKLSAgICAgfQotIH0K LQotIHN0YXRpYyB2b2lkCi0tb25fc3RyZWFtX2Zvcm1hdF9jaGFuZ2VkICh2b2lkICAgICAgICAg ICAgICAgICAqZGF0YSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBz cGFfcG9kICpmb3JtYXQpCi0rb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQgKHZvaWQgICAgICAgICAg ICAgICAgICpkYXRhLAotKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAg ICAgICAgaWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzcGFfcG9k ICpmb3JtYXQpCi0gewotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0g ICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotICAgICBtZXRhX3NjcmVl bl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBzdHJ1Y3Qg cHdfdHlwZSAqcGlwZXdpcmVfdHlwZSA9IHByaXYtPnBpcGV3aXJlX3R5cGU7Ci0gICB1aW50OF90 IHBhcmFtc19idWZmZXJbMTAyNF07Ci0gICBpbnQzMl90IHdpZHRoLCBoZWlnaHQsIHN0cmlkZSwg c2l6ZTsKLSAgIHN0cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1aWxkZXI7Ci0gICBjb25zdCBz dHJ1Y3Qgc3BhX3BvZCAqcGFyYW1zWzNdOwotICAgY29uc3QgaW50IGJwcCA9IDQ7Ci0KLS0gIGlm ICghZm9ybWF0KQotLSAgICB7Ci0tICAgICAgcHdfc3RyZWFtX2ZpbmlzaF9mb3JtYXQgKHByaXYt PnBpcGV3aXJlX3N0cmVhbSwgMCwgTlVMTCwgMCk7Ci0tICAgICAgcmV0dXJuOwotLSAgICB9Ci0r ICBpZiAoIWZvcm1hdCB8fCBpZCAhPSBTUEFfUEFSQU1fRm9ybWF0KQotKyAgICByZXR1cm47Ci0K LSAgIHNwYV9mb3JtYXRfdmlkZW9fcmF3X3BhcnNlIChmb3JtYXQsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnByaXYtPnZpZGVvX2Zvcm1hdCwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmcHJpdi0+c3BhX3R5cGUuZm9ybWF0X3ZpZGVvKTsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmcHJpdi0+dmlkZW9fZm9ybWF0KTsKLQotICAgd2lkdGggPSBwcml2 LT52aWRlb19mb3JtYXQuc2l6ZS53aWR0aDsKLSAgIGhlaWdodCA9IHByaXYtPnZpZGVvX2Zvcm1h dC5zaXplLmhlaWdodDsKLSAgIHN0cmlkZSA9IFNQQV9ST1VORF9VUF9OICh3aWR0aCAqIGJwcCwg NCk7Ci0gICBzaXplID0gaGVpZ2h0ICogc3RyaWRlOwotCi0rICBwcml2LT52aWRlb19zdHJpZGUg PSBzdHJpZGU7Ci0rCi0gICBwb2RfYnVpbGRlciA9IFNQQV9QT0RfQlVJTERFUl9JTklUIChwYXJh bXNfYnVmZmVyLCBzaXplb2YgKHBhcmFtc19idWZmZXIpKTsKLQotLSAgcGFyYW1zWzBdID0gc3Bh X3BvZF9idWlsZGVyX29iamVjdCAoCi0rICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfYWRk X29iamVjdCAoCi0gICAgICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0u aWRCdWZmZXJzLCBwaXBld2lyZV90eXBlLT5wYXJhbV9idWZmZXJzLkJ1ZmZlcnMsCi0tICAgICI6 IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5zaXplLCAiaSIsIHNpemUsCi0tICAgICI6 IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5zdHJpZGUsICJpIiwgc3RyaWRlLAotLSAg ICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuYnVmZmVycywgImlydSIsIDE2LCBQ Uk9QX1JBTkdFICgyLCAxNiksCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVy cy5hbGlnbiwgImkiLCAxNik7Ci0tCi0tICBwYXJhbXNbMV0gPSBzcGFfcG9kX2J1aWxkZXJfb2Jq ZWN0ICgKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtQnVmZmVycywgU1BBX1BBUkFNX0J1ZmZl cnMsCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX2J1ZmZlcnMsIFNQQV9QT0RfQ0hPSUNFX1JBTkdF X0ludCAoMTYsIDIsIDE2KSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfYmxvY2tzLCBTUEFfUE9E X0ludCAoMSksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX3NpemUsIFNQQV9QT0RfSW50IChzaXpl KSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfc3RyaWRlLCBTUEFfUE9EX0ludCAoc3RyaWRlKSwK LSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfYWxpZ24sIFNQQV9QT0RfSW50ICgxNikpOwotKwotKyAg cGFyYW1zWzFdID0gc3BhX3BvZF9idWlsZGVyX2FkZF9vYmplY3QgKAotICAgICAmcG9kX2J1aWxk ZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUtPnBhcmFtLmlkTWV0YSwgcGlwZXdpcmVfdHlwZS0+cGFy YW1fbWV0YS5NZXRhLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX21ldGEudHlwZSwg IkkiLCBwaXBld2lyZV90eXBlLT5tZXRhLlZpZGVvQ3JvcCwKLS0gICAgIjoiLCBwaXBld2lyZV90 eXBlLT5wYXJhbV9tZXRhLnNpemUsICJpIiwgc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfdmlkZW9f Y3JvcCkpOwotKyAgICBTUEFfVFlQRV9PQkpFQ1RfUGFyYW1NZXRhLCBTUEFfUEFSQU1fTWV0YSwK LSsgICAgU1BBX1BBUkFNX01FVEFfdHlwZSwgU1BBX1BPRF9JZCAoU1BBX01FVEFfVmlkZW9Dcm9w KSwKLSsgICAgU1BBX1BBUkFNX01FVEFfc2l6ZSwgU1BBX1BPRF9JbnQgKHNpemVvZiAoc3RydWN0 IHNwYV9tZXRhX3JlZ2lvbikpKTsKLQotLSAgcGFyYW1zWzJdID0gc3BhX3BvZF9idWlsZGVyX29i amVjdCAoCi0rICBwYXJhbXNbMl0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVjdCAoCi0gICAg ICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRNZXRhLCBwaXBld2ly ZV90eXBlLT5wYXJhbV9tZXRhLk1ldGEsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1f bWV0YS50eXBlLCAiSSIsIHByaXYtPnNwYV90eXBlLm1ldGFfY3Vyc29yLAotLSAgICAiOiIsIHBp cGV3aXJlX3R5cGUtPnBhcmFtX21ldGEuc2l6ZSwgImkiLCBDVVJTT1JfTUVUQV9TSVpFICg2NCwg NjQpKTsKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtTWV0YSwgU1BBX1BBUkFNX01ldGEsCi0r ICAgIFNQQV9QQVJBTV9NRVRBX3R5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRVRBX0N1cnNvciksCi0r ICAgIFNQQV9QQVJBTV9NRVRBX3NpemUsIFNQQV9QT0RfSW50IChDVVJTT1JfTUVUQV9TSVpFICg2 NCwgNjQpKSk7Ci0KLS0gIHB3X3N0cmVhbV9maW5pc2hfZm9ybWF0IChwcml2LT5waXBld2lyZV9z dHJlYW0sIDAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCBHX05fRUxFTUVO VFMgKHBhcmFtcykpOwotKyAgcHdfc3RyZWFtX3VwZGF0ZV9wYXJhbXMgKHByaXYtPnBpcGV3aXJl X3N0cmVhbSwgcGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotIH0KLQotIHN0YXRpYyBj b25zdCBzdHJ1Y3QgcHdfc3RyZWFtX2V2ZW50cyBzdHJlYW1fZXZlbnRzID0gewotICAgUFdfVkVS U0lPTl9TVFJFQU1fRVZFTlRTLAotICAgLnN0YXRlX2NoYW5nZWQgPSBvbl9zdHJlYW1fc3RhdGVf Y2hhbmdlZCwKLS0gIC5mb3JtYXRfY2hhbmdlZCA9IG9uX3N0cmVhbV9mb3JtYXRfY2hhbmdlZCwK LSsgIC5wYXJhbV9jaGFuZ2VkID0gb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQsCi0gfTsKLQotIHN0 YXRpYyBzdHJ1Y3QgcHdfc3RyZWFtICoKLUBAIC02NTIsOCArNjM0LDYgQEAgY3JlYXRlX3BpcGV3 aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0gICB1aW50OF90IGJ1 ZmZlclsxMDI0XTsKLSAgIHN0cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1aWxkZXIgPQotICAg ICBTUEFfUE9EX0JVSUxERVJfSU5JVCAoYnVmZmVyLCBzaXplb2YgKGJ1ZmZlcikpOwotLSAgTWV0 YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotLSAgc3RydWN0IHB3X3R5cGUg KnBpcGV3aXJlX3R5cGUgPSBwcml2LT5waXBld2lyZV90eXBlOwotICAgZmxvYXQgZnJhbWVfcmF0 ZTsKLSAgIE1ldGFGcmFjdGlvbiBmcmFtZV9yYXRlX2ZyYWN0aW9uOwotICAgc3RydWN0IHNwYV9m cmFjdGlvbiBtYXhfZnJhbWVyYXRlOwotQEAgLTY2MSw3ICs2NDEsOSBAQCBjcmVhdGVfcGlwZXdp cmVfc3RyZWFtIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAgKnNyYywKLSAgIGNvbnN0IHN0cnVj dCBzcGFfcG9kICpwYXJhbXNbMV07Ci0gICBpbnQgcmVzdWx0OwotCi0tICBwaXBld2lyZV9zdHJl YW0gPSBwd19zdHJlYW1fbmV3IChwcml2LT5waXBld2lyZV9yZW1vdGUsCi0rICBwcml2LT5ub2Rl X2lkID0gU1BBX0lEX0lOVkFMSUQ7Ci0rCi0rICBwaXBld2lyZV9zdHJlYW0gPSBwd19zdHJlYW1f bmV3IChwcml2LT5waXBld2lyZV9jb3JlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIm1ldGEtc2NyZWVuLWNhc3Qtc3JjIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5VTEwpOwotICAgaWYgKCFwaXBld2lyZV9zdHJlYW0pCi1AQCAtNjgyLDE3ICs2 NjQsMTcgQEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMg ICpzcmMsCi0gICBtYXhfZnJhbWVyYXRlID0gU1BBX0ZSQUNUSU9OIChmcmFtZV9yYXRlX2ZyYWN0 aW9uLm51bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX3JhdGVfZnJh Y3Rpb24uZGVub20pOwotCi0tICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfb2JqZWN0ICgK LSsgIHBhcmFtc1swXSA9IHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0ICgKLSAgICAgJnBvZF9i dWlsZGVyLAotLSAgICBwaXBld2lyZV90eXBlLT5wYXJhbS5pZEVudW1Gb3JtYXQsIHBpcGV3aXJl X3R5cGUtPnNwYV9mb3JtYXQsCi0tICAgICJJIiwgc3BhX3R5cGUtPm1lZGlhX3R5cGUudmlkZW8s Ci0tICAgICJJIiwgc3BhX3R5cGUtPm1lZGlhX3N1YnR5cGUucmF3LAotLSAgICAiOiIsIHNwYV90 eXBlLT5mb3JtYXRfdmlkZW8uZm9ybWF0LCAiSSIsIHNwYV90eXBlLT52aWRlb19mb3JtYXQuQkdS eCwKLS0gICAgIjoiLCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLnNpemUsICJSIiwgJlNQQV9SRUNU QU5HTEUgKHByaXYtPnN0cmVhbV93aWR0aCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPnN0cmVhbV9oZWlnaHQpLAotLSAg ICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8uZnJhbWVyYXRlLCAiRiIsICZTUEFfRlJBQ1RJ T04gKDAsIDEpLAotLSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8ubWF4X2ZyYW1lcmF0 ZSwgIkZydSIsICZtYXhfZnJhbWVyYXRlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfUkFOR0UgKCZtaW5fZnJhbWVyYXRlLAotKyAg ICBTUEFfVFlQRV9PQkpFQ1RfRm9ybWF0LCBTUEFfUEFSQU1fRW51bUZvcm1hdCwKLSsgICAgU1BB X0ZPUk1BVF9tZWRpYVR5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRURJQV9UWVBFX3ZpZGVvKSwKLSsg ICAgU1BBX0ZPUk1BVF9tZWRpYVN1YnR5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRURJQV9TVUJUWVBF X3JhdyksCi0rICAgIFNQQV9GT1JNQVRfVklERU9fZm9ybWF0LCBTUEFfUE9EX0lkIChTUEFfVklE RU9fRk9STUFUX0JHUngpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX3NpemUsIFNQQV9QT0RfUmVj dGFuZ2xlICgmU1BBX1JFQ1RBTkdMRSAocHJpdi0+c3RyZWFtX3dpZHRoLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+ c3RyZWFtX2hlaWdodCkpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX2ZyYW1lcmF0ZSwgU1BBX1BP RF9GcmFjdGlvbiAoJlNQQV9GUkFDVElPTiAoMCwgMSkpLAotKyAgICBTUEFfRk9STUFUX1ZJREVP X21heEZyYW1lcmF0ZSwgU1BBX1BPRF9DSE9JQ0VfUkFOR0VfRnJhY3Rpb24gKCZtYXhfZnJhbWVy YXRlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZtaW5fZnJhbWVyYXRlLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYXhfZnJhbWVyYXRl KSk7Ci0KLSAgIHB3X3N0cmVhbV9hZGRfbGlzdGVuZXIgKHBpcGV3aXJlX3N0cmVhbSwKLUBAIC03 MDIsNyArNjg0LDcgQEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJl YW1TcmMgICpzcmMsCi0KLSAgIHJlc3VsdCA9IHB3X3N0cmVhbV9jb25uZWN0IChwaXBld2lyZV9z dHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFdfRElSRUNUSU9OX09VVFBV VCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNQQV9JRF9JTlZBTElELAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChQV19TVFJFQU1fRkxBR19EUklWRVIgfAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQV19TVFJFQU1fRkxBR19NQVBfQlVGRkVSUyksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotQEAgLTcxNyw0MCAr Njk5LDE4IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3Jj ICAqc3JjLAotIH0KLQotIHN0YXRpYyB2b2lkCi0tb25fc3RhdGVfY2hhbmdlZCAodm9pZCAgICAg ICAgICAgICAgICAgKmRhdGEsCi0tICAgICAgICAgICAgICAgICAgZW51bSBwd19yZW1vdGVfc3Rh dGUgIG9sZCwKLS0gICAgICAgICAgICAgICAgICBlbnVtIHB3X3JlbW90ZV9zdGF0ZSAgc3RhdGUs Ci0tICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgKmVycm9yX21lc3NhZ2Up Ci0rb25fY29yZV9lcnJvciAodm9pZCAgICAgICAqZGF0YSwKLSsgICAgICAgICAgICAgICB1aW50 MzJfdCAgICBpZCwKLSsJICAgICAgIGludCAgICAgICAgIHNlcSwKLSsJICAgICAgIGludCAgICAg ICAgIHJlcywKLSsJICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCi0gewotICAgTWV0YVNjcmVl bkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0tICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1By aXZhdGUgKnByaXYgPQotLSAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3Rh bmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBzdHJ1Y3QgcHdfc3RyZWFtICpwaXBld2lyZV9zdHJlYW07 Ci0tICBHRXJyb3IgKmVycm9yID0gTlVMTDsKLQotLSAgc3dpdGNoIChzdGF0ZSkKLS0gICAgewot LSAgICBjYXNlIFBXX1JFTU9URV9TVEFURV9FUlJPUjoKLS0gICAgICBnX3dhcm5pbmcgKCJwaXBl d2lyZSByZW1vdGUgZXJyb3I6ICVzXG4iLCBlcnJvcl9tZXNzYWdlKTsKLS0gICAgICBtZXRhX3Nj cmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsKLS0gICAgICBicmVhazsK LS0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfQ09OTkVDVEVEOgotLSAgICAgIHBpcGV3aXJlX3N0 cmVhbSA9IGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgJmVycm9yKTsKLS0gICAgICBpZiAo IXBpcGV3aXJlX3N0cmVhbSkKLS0gICAgICAgIHsKLS0gICAgICAgICAgZ193YXJuaW5nICgiQ291 bGQgbm90IGNyZWF0ZSBwaXBld2lyZSBzdHJlYW06ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOwotLSAg ICAgICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKLS0gICAgICAgICAgbWV0YV9zY3JlZW5fY2Fz dF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0tICAgICAgICB9Ci0tICAgICAgZWxz ZQotLSAgICAgICAgewotLSAgICAgICAgICBwcml2LT5waXBld2lyZV9zdHJlYW0gPSBwaXBld2ly ZV9zdHJlYW07Ci0tICAgICAgICB9Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfUkVNT1RF X1NUQVRFX1VOQ09OTkVDVEVEOgotLSAgICBjYXNlIFBXX1JFTU9URV9TVEFURV9DT05ORUNUSU5H OgotLSAgICAgIGJyZWFrOwotLSAgICB9Ci0rICBnX3dhcm5pbmcgKCJwaXBld2lyZSByZW1vdGUg ZXJyb3I6IGlkOiV1ICVzIiwgaWQsIG1lc3NhZ2UpOwotKwotKyAgaWYgKGlkID09IFBXX0lEX0NP UkUgJiYgcmVzID09IC1FUElQRSkKLSsgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX25v dGlmeV9jbG9zZWQgKHNyYyk7Ci0gfQotCi0gc3RhdGljIGdib29sZWFuCi1AQCAtNzkzLDE3ICs3 NTMsNiBAQCBzdGF0aWMgR1NvdXJjZUZ1bmNzIHBpcGV3aXJlX3NvdXJjZV9mdW5jcyA9Ci0gICBw aXBld2lyZV9sb29wX3NvdXJjZV9maW5hbGl6ZQotIH07Ci0KLS1zdGF0aWMgdm9pZAotLWluaXRf c3BhX3R5cGUgKE1ldGFTcGFUeXBlICAgICAgICAgKnR5cGUsCi0tICAgICAgICAgICAgICAgc3Ry dWN0IHNwYV90eXBlX21hcCAqbWFwKQotLXsKLS0gIHNwYV90eXBlX21lZGlhX3R5cGVfbWFwICht YXAsICZ0eXBlLT5tZWRpYV90eXBlKTsKLS0gIHNwYV90eXBlX21lZGlhX3N1YnR5cGVfbWFwICht YXAsICZ0eXBlLT5tZWRpYV9zdWJ0eXBlKTsKLS0gIHNwYV90eXBlX2Zvcm1hdF92aWRlb19tYXAg KG1hcCwgJnR5cGUtPmZvcm1hdF92aWRlbyk7Ci0tICBzcGFfdHlwZV92aWRlb19mb3JtYXRfbWFw IChtYXAsICZ0eXBlLT52aWRlb19mb3JtYXQpOwotLSAgdHlwZS0+bWV0YV9jdXJzb3IgPSBzcGFf dHlwZV9tYXBfZ2V0X2lkKG1hcCwgU1BBX1RZUEVfTUVUQV9fQ3Vyc29yKTsKLS19Ci0tCi0gc3Rh dGljIE1ldGFQaXBlV2lyZVNvdXJjZSAqCi0gY3JlYXRlX3BpcGV3aXJlX3NvdXJjZSAodm9pZCkK LSB7Ci1AQCAtODI5LDkgKzc3OCw5IEBAIGNyZWF0ZV9waXBld2lyZV9zb3VyY2UgKHZvaWQpCi0g ICByZXR1cm4gcGlwZXdpcmVfc291cmNlOwotIH0KLQotLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcHdf cmVtb3RlX2V2ZW50cyByZW1vdGVfZXZlbnRzID0gewotLSAgUFdfVkVSU0lPTl9SRU1PVEVfRVZF TlRTLAotLSAgLnN0YXRlX2NoYW5nZWQgPSBvbl9zdGF0ZV9jaGFuZ2VkLAotK3N0YXRpYyBjb25z dCBzdHJ1Y3QgcHdfY29yZV9ldmVudHMgY29yZV9ldmVudHMgPSB7Ci0rICBQV19WRVJTSU9OX0NP UkVfRVZFTlRTLAotKyAgLmVycm9yID0gb25fY29yZV9lcnJvciwKLSB9OwotCi0gc3RhdGljIGdi b29sZWFuCi1AQCAtODUxLDM3ICs4MDAsMzEgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3Jj X2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAgICAgKmluaXRhYmxlLAotICAgICAgIHJldHVybiBG QUxTRTsKLSAgICAgfQotCi0tICBwcml2LT5waXBld2lyZV9jb3JlID0gcHdfY29yZV9uZXcgKHBy aXYtPnBpcGV3aXJlX3NvdXJjZS0+cGlwZXdpcmVfbG9vcCwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0tICBpZiAoIXByaXYtPnBpcGV3aXJlX2NvcmUpCi0r ICBwcml2LT5waXBld2lyZV9jb250ZXh0ID0gcHdfY29udGV4dF9uZXcgKHByaXYtPnBpcGV3aXJl X3NvdXJjZS0+cGlwZXdpcmVfbG9vcCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCwgMCk7Ci0rICBpZiAoIXByaXYtPnBpcGV3aXJlX2NvbnRleHQpCi0g ICAgIHsKLSAgICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1Jf RkFJTEVELAotLSAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSBwaXBld2lyZSBj b3JlIik7Ci0rICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gY3JlYXRlIHBpcGV3aXJlIGNv bnRleHQiKTsKLSAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgIH0KLQotLSAgcHJpdi0+cGlwZXdp cmVfcmVtb3RlID0gcHdfcmVtb3RlX25ldyAocHJpdi0+cGlwZXdpcmVfY29yZSwgTlVMTCwgMCk7 Ci0tICBpZiAoIXByaXYtPnBpcGV3aXJlX3JlbW90ZSkKLSsgIHByaXYtPnBpcGV3aXJlX2NvcmUg PSBwd19jb250ZXh0X2Nvbm5lY3QgKHByaXYtPnBpcGV3aXJlX2NvbnRleHQsIE5VTEwsIDApOwot KyAgaWYgKCFwcml2LT5waXBld2lyZV9jb3JlKQotICAgICB7Ci0gICAgICAgZ19zZXRfZXJyb3Ig KGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0ZBSUxFRCwKLS0gICAgICAgICAgICAgICAg ICAgIkNvdWxkbid0IGNyZWF0IHBpcGV3aXJlIHJlbW90ZSIpOwotKyAgICAgICAgICAgICAgICAg ICAiQ291bGRuJ3QgY29ubmVjdCBwaXBld2lyZSBjb250ZXh0Iik7Ci0gICAgICAgcmV0dXJuIEZB TFNFOwotICAgICB9Ci0KLS0gIHB3X3JlbW90ZV9hZGRfbGlzdGVuZXIgKHByaXYtPnBpcGV3aXJl X3JlbW90ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICZwcml2LT5waXBld2lyZV9yZW1v dGVfbGlzdGVuZXIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVtb3RlX2V2ZW50cywK LS0gICAgICAgICAgICAgICAgICAgICAgICAgIHNyYyk7Ci0rICBwd19jb3JlX2FkZF9saXN0ZW5l ciAocHJpdi0+cGlwZXdpcmVfY29yZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+ cGlwZXdpcmVfY29yZV9saXN0ZW5lciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAmY29yZV9l dmVudHMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgc3JjKTsKLQotLSAgcHJpdi0+cGlwZXdp cmVfdHlwZSA9IHB3X2NvcmVfZ2V0X3R5cGUgKHByaXYtPnBpcGV3aXJlX2NvcmUpOwotLSAgaW5p dF9zcGFfdHlwZSAoJnByaXYtPnNwYV90eXBlLCBwcml2LT5waXBld2lyZV90eXBlLT5tYXApOwot LQotLSAgaWYgKHB3X3JlbW90ZV9jb25uZWN0IChwcml2LT5waXBld2lyZV9yZW1vdGUpICE9IDAp Ci0tICAgIHsKLS0gICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJS T1JfRkFJTEVELAotLSAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgY29ubmVjdCBwaXBld2ly ZSByZW1vdGUiKTsKLS0gICAgICByZXR1cm4gRkFMU0U7Ci0tICAgIH0KLSsgIHByaXYtPnBpcGV3 aXJlX3N0cmVhbSA9IGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgZXJyb3IpOwotKyAgaWYg KCFwcml2LT5waXBld2lyZV9zdHJlYW0pCi0rICAgIHJldHVybiBGQUxTRTsKLQotICAgcmV0dXJu IFRSVUU7Ci0gfQotQEAgLTkxMiw4ICs4NTUsOCBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9z cmNfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKLSAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJl YW1fc3JjX2Rpc2FibGUgKHNyYyk7Ci0KLSAgIGdfY2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3 aXJlX3N0cmVhbSwgcHdfc3RyZWFtX2Rlc3Ryb3kpOwotLSAgZ19jbGVhcl9wb2ludGVyICgmcHJp di0+cGlwZXdpcmVfcmVtb3RlLCBwd19yZW1vdGVfZGVzdHJveSk7Ci0tICBnX2NsZWFyX3BvaW50 ZXIgKCZwcml2LT5waXBld2lyZV9jb3JlLCBwd19jb3JlX2Rlc3Ryb3kpOwotKyAgZ19jbGVhcl9w b2ludGVyICgmcHJpdi0+cGlwZXdpcmVfY29yZSwgcHdfY29yZV9kaXNjb25uZWN0KTsKLSsgIGdf Y2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3aXJlX2NvbnRleHQsIHB3X2NvbnRleHRfZGVzdHJv eSk7Ci0gICBnX3NvdXJjZV9kZXN0cm95ICgmcHJpdi0+cGlwZXdpcmVfc291cmNlLT5iYXNlKTsK LQotICAgR19PQkpFQ1RfQ0xBU1MgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19wYXJlbnRf Y2xhc3MpLT5maW5hbGl6ZSAob2JqZWN0KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXV0dGVyL3Rl bXBsYXRlIGIvc3JjcGtncy9tdXR0ZXIvdGVtcGxhdGUKaW5kZXggODA2YTNiZWY5ZjAuLjQ3OTI4 NDAzNGVhIDEwMDY0NAotLS0gYS9zcmNwa2dzL211dHRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L211dHRlci90ZW1wbGF0ZQpAQCAtMSwzNCArMSw0MCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn bXV0dGVyJwogcGtnbmFtZT1tdXR0ZXIKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0zCit2ZXJz aW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1t ZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZWdsX2RldmljZT10cnVlIC1EdWRldj10cnVlIC1EbmF0 aXZlX2JhY2tlbmQ9dHJ1ZQotIC1EcHJvZmlsZXI9ZmFsc2UgLURpbnRyb3NwZWN0aW9uPXRydWUg LUR4d2F5bGFuZF9wYXRoPS91c3IvYmluL1h3YXlsYW5kIgorIC1EcHJvZmlsZXI9ZmFsc2UgLURp bnRyb3NwZWN0aW9uPXRydWUgLUR4d2F5bGFuZF9wYXRoPS91c3IvYmluL1h3YXlsYW5kCisgLUR4 d2F5bGFuZF9pbml0ZmQ9ZGlzYWJsZWQiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1k ZXZlbCBwa2ctY29uZmlnIHplbml0eSB3YXlsYW5kLWRldmVsIHhvcmctc2VydmVyIgotbWFrZWRl cGVuZHM9ImVsb2dpbmQtZGV2ZWwgZ2xpYi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGpzb24t Z2xpYi1kZXZlbAotIGxpYmdsaWItZGV2ZWwgbGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJj YW5iZXJyYS1kZXZlbCBsaWJpbnB1dC1kZXZlbAotIE1lc2FMaWItZGV2ZWwgcGlwZXdpcmUtZGV2 ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwgd2F5bGFuZC1wcm90b2NvbHMKLSBnbm9tZS1z ZXR0aW5ncy1kYWVtb24tZGV2ZWwiCi1kZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgemVuaXR5 IgorbWFrZWRlcGVuZHM9ImVsb2dpbmQtZGV2ZWwgZ2xpYi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRl dmVsIGdyYXBoZW5lLWRldmVsCisganNvbi1nbGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGliU00t ZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbAorIGxpYmlucHV0LWRldmVsIE1l c2FMaWItZGV2ZWwgcGlwZXdpcmUtZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwKKyB3 YXlsYW5kLXByb3RvY29scyBnbm9tZS1zZXR0aW5ncy1kYWVtb24tZGV2ZWwiCitkZXBlbmRzPSJn c2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGRlc2t0b3AtZmlsZS11dGlscyB6ZW5pdHkiCiBzaG9y dF9kZXNjPSJMaWdodHdlaWdodCBHVEsrMyB3aW5kb3cgbWFuYWdlciIKIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvTXV0dGVyLyIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWJhMTgyNmNmODhiZGI4MWU2Mzk0M2Nh YzAxNGE4ZThiY2YzNWVjMTc4YzUzMjY0NDAxZjljNzJmZGVhYjc1OGUKLXNobGliX3Byb3ZpZGVz PSJsaWJtdXR0ZXItY2x1dHRlci01LnNvIGxpYm11dHRlci1jb2dsLTUuc28KLSBsaWJtdXR0ZXIt Y29nbC1wYW5nby01LnNvIGxpYm11dHRlci1jb2dsLXBhdGgtNS5zbyIKK2NoZWNrc3VtPTA1OGVk MTNkMTAyMDg1ZDNlOWI2ZmE1NTY0YzY2MDUwYTQ3OGMzNjRhMGNjNTViYzg0NGZlYTNkZGNkOTBl YWIKK3NobGliX3Byb3ZpZGVzPSJsaWJtdXR0ZXItY2x1dHRlci03LnNvIGxpYm11dHRlci1jb2ds LTcuc28KKyBsaWJtdXR0ZXItY29nbC1wYW5nby03LnNvIGxpYm11dHRlci1jb2dsLXBhdGgtNy5z byIKKworIyBuZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CiAKIG11dHRlci1kZXZlbF9wYWNr YWdlKCkgewotCWRlcGVuZHM9ImdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgZ3RrKzMtZGV2ZWwg Y2x1dHRlci1kZXZlbCBsaWJYMTEtZGV2ZWwKLQkgbGliWHRzdC1kZXZlbCBtdXR0ZXItJHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKKwlkZXBlbmRzPSJndGsrMy1kZXZlbCBncmFwaGVuZS1kZXZlbCBj bHV0dGVyLWRldmVsCisJIGxpYlgxMS1kZXZlbCBsaWJYdHN0LWRldmVsIG11dHRlci0ke3ZlcnNp b259XyR7cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlw a2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2dj b25maWcKLQkJdm1vdmUgInVzci9saWIvbXV0dGVyLTUvKi5naXIiCisJCXZtb3ZlICJ1c3IvbGli L211dHRlci03LyouZ2lyIgogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCX0KIH0KCkZyb20gNGIy NGM5NjkyMGY4ZWY4ZDlkNjkzN2RlZDQwMTVmNDhjNDZhNWI5ZiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzOS8xMDJdIGNo ZWVzZTogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZSB8IDE0 ICsrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA5IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hlZXNlL3RlbXBsYXRlIGIvc3JjcGtncy9j aGVlc2UvdGVtcGxhdGUKaW5kZXggN2E1NmJhMDM5ZmIuLmZhYTMyOWVlMGU0IDEwMDY0NAotLS0g YS9zcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZQpA QCAtMSwxMSArMSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2hlZXNlJwogcGtnbmFtZT1j aGVlc2UKLXZlcnNpb249My4zNC4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ3RrX2Rv Yz0kKHZvcHRfaWYgZ3RrX2RvYyAndHJ1ZScgJ2ZhbHNlJykKLSAtRG1hbj0kKHZvcHRfaWYgZ3Rr X2RvYyAndHJ1ZScgJ2ZhbHNlJykiCitjb25maWd1cmVfYXJncz0iJCh2b3B0X2Jvb2wgZ3RrX2Rv YyBndGtfZG9jKSAkKHZvcHRfYm9vbCBndGtfZG9jIG1hbikiCiBob3N0bWFrZWRlcGVuZHM9Imdl dHRleHQgZ2RrLXBpeGJ1ZiBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB2YWxhIGxpYnJz dmcKICAkKHZvcHRfaWYgZ3RrX2RvYyAnZ3RrLWRvYycpICQodm9wdF9pZiBnaXIgJ2dvYmplY3Qt aW50cm9zcGVjdGlvbicpIgogbWFrZWRlcGVuZHM9ImNsdXR0ZXItZ3N0My1kZXZlbCBjbHV0dGVy LWd0ay1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsCkBAIC0xNyw3ICsxNiw3IEBAIG1haW50YWlu ZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9DaGVlc2Ui CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kMTg2NTYwMGFjODgwMTJlMTM2YjFl YzNkYjcyYTQ2MzRmNTdiYzIwMzU4OTUyNzdiZTc5MmJiMDc4NjI3ZTczCitjaGVja3N1bT04OGQy NzMyYjQyMWI5MDMxMTBhMjYyOGRiMjVjMGQ2MWUyMTljNDJiZGZiNTk3MTE1MTAzM2ZiYTk1YThk MTZmCiAKIGJ1aWxkX29wdGlvbnM9ImdpciBndGtfZG9jIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0 PSJnaXIiCkBAIC0zNywxMSArMzYsOCBAQCBsaWJjaGVlc2VfcGFja2FnZSgpIHsKIH0KIAogY2hl ZXNlLWRldmVsX3BhY2thZ2UoKSB7Ci0JZGVwZW5kcz0iZ3N0LXBsdWdpbnMtYmFkMS1kZXZlbAot CQkgY2x1dHRlci1nc3QzLWRldmVsCi0JCSBjbHV0dGVyLWd0ay1kZXZlbAotCQkgbGliY2FuYmVy cmEtZGV2ZWwKLQkJIGxpYmNoZWVzZT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlkZXBlbmRz PSJnc3QtcGx1Z2lucy1iYWQxLWRldmVsIGNsdXR0ZXItZ3N0My1kZXZlbCBjbHV0dGVyLWd0ay1k ZXZlbAorCSBsaWJjYW5iZXJyYS1kZXZlbCBsaWJjaGVlc2U+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0iCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkg ewogCQl2bW92ZSB1c3IvaW5jbHVkZQoKRnJvbSAzNjYyYjhlYWM0NThiODliYjcyNGIxMDI2ZjAy MDcwMWI3ZGIyZDVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQwLzEwMl0gZXZvbHV0aW9uLWRhdGEtc2VydmVyOiB1cGRh dGUgdG8gMy4zOC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIHNyY3BrZ3MvZXZvbHV0aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlIHwgMjUgKysr KysrKysrKysrKysrLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCsp LCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3No bGlicwppbmRleCA2N2YyODI1MWMyMi4uZjkxMTdhNGViZGEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9z aGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtNjI2LDcgKzYyNiw3IEBAIGxpYmljYWxzc19j eHguc28uMyBsaWJpY2FsLTMuMC40XzEKIGxpYmljYWx2Y2FsLnNvLjMgbGliaWNhbC0zLjAuNF8x CiBsaWJpY2FsLWdsaWIuc28uMyBsaWJpY2FsLTMuMC40XzEKIGxpYmNhbWVsLTEuMi5zby42MiBl dm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zMC4wXzEKLWxpYmVkYXRhc2VydmVyLTEuMi5zby4yNCBl dm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zMi4wXzEKK2xpYmVkYXRhc2VydmVyLTEuMi5zby4yNSBl dm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zNy45MF8xCiBsaWJlYmFja2VuZC0xLjIuc28uMTAgZXZv bHV0aW9uLWRhdGEtc2VydmVyLTMuMTcuOTBfMQogbGliZWRhdGFzZXJ2ZXJ1aS0xLjIuc28uMiBl dm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yOC4wXzEKIGxpYmVib29rLWNvbnRhY3RzLTEuMi5zby4z IGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjM0LjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9s dXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZl ci90ZW1wbGF0ZQppbmRleCBlNTAyOTJhNDNlYS4uOGNjZjljYjZlYjAgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZXZvbHV0aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0 aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlCkBAIC0xLDI5ICsxLDM0IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdldm9sdXRpb24tZGF0YS1zZXJ2ZXInCiBwa2duYW1lPWV2b2x1dGlvbi1kYXRhLXNl cnZlcgotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTMKK3ZlcnNpb249My4zOC4wCityZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1jbWFrZQotYnVpbGRfaGVscGVyPWdpcgorYnVpbGRfaGVscGVyPSJn aXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSItREVOQUJMRV9VT0E9T0ZGCi0gJCh2b3B0X2lmIGdp ciAnLURFTkFCTEVfSU5UUk9TUEVDVElPTj1PTiAtREVOQUJMRV9WQUxBX0JJTkRJTkdTPU9OJyAn LURFTkFCTEVfV0VBVEhFUj1PRkYnKSIKLWhvc3RtYWtlZGVwZW5kcz0iZmxleCBnbGliLWRldmVs IGdwZXJmIGludGx0b29sIHBrZy1jb25maWcgbGliZ2xpYi1kZXZlbAotICQodm9wdF9pZiBnaXIg J2dvYmplY3QtaW50cm9zcGVjdGlvbicpIgotbWFrZWRlcGVuZHM9ImJvb3N0LWRldmVsIGxpYmNh bmJlcnJhLWRldmVsIGxpYmdkYXRhLWRldmVsICQodm9wdF9pZiBnaXIgbGliZ3dlYXRoZXItZGV2 ZWwpCi0gbGliaWNhbC1kZXZlbCBsaWJzZWNyZXQtZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgJCh2b3B0 X2lmIGdpciAndmFsYS1kZXZlbCcpIHdlYmtpdDJndGstZGV2ZWwiCi1kZXBlbmRzPSIkKHZvcHRf aWYgZ2lyIGxpYmd3ZWF0aGVyKSBsaWJzb3VwLWdub21lIgorICQodm9wdF9pZiBnaXIgJy1ERU5B QkxFX0lOVFJPU1BFQ1RJT049T04gLURFTkFCTEVfVkFMQV9CSU5ESU5HUz1PTicpIgoraG9zdG1h a2VkZXBlbmRzPSJmbGV4IGdsaWItZGV2ZWwgZ3BlcmYgaW50bHRvb2wgcGtnLWNvbmZpZyBsaWJn bGliLWRldmVsIgorbWFrZWRlcGVuZHM9ImJvb3N0LWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxp YmdkYXRhLWRldmVsIGxpYmljYWwtZGV2ZWwKKyBsaWJzZWNyZXQtZGV2ZWwgbWl0LWtyYjUtZGV2 ZWwgd2Via2l0Mmd0ay1kZXZlbCBsaWJnd2VhdGhlci1kZXZlbAorICQodm9wdF9pZiBnaXIgdmFs YS1kZXZlbCkiCitkZXBlbmRzPSJsaWJnd2VhdGhlciBsaWJzb3VwLWdub21lIgogc2hvcnRfZGVz Yz0iQ2VudHJhbGl6ZWQgYWNjZXNzIHRvIGFwcG9pbnRtZW50cyBhbmQgY29udGFjdHMiCiBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQ TC0yLjEtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXZvbHV0 aW9uIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUv ZXZvbHV0aW9uLWRhdGEtc2VydmVyL2dub21lLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPTEzMTIyYjJlZGRkYjk4MzA2MjA3ZDJhMzVkNWNjYWUyNWE5MDcwMjc2 OWNhMGEwYjUxNjUzYjU5ODQ5ODY3OTYKK2NoZWNrc3VtPTEzNjg5YTdiNTU3NjU4MDZjNGQ1ZjNi MDVlZjZjMjRiMGJmOTk1N2I5ZWQ5MjQwYzJkZDA5YTJjZGIxM2IwYWYKIAogYnVpbGRfb3B0aW9u cz0iZ2lyIgogaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJYnVpbGRfb3B0aW9uc19k ZWZhdWx0PSJnaXIiCiBmaQogCisjIHByb2JsZW1hdGljCitkb19jaGVjaygpIHsKKwk6Cit9CisK ICMgY21ha2UgcGVyZm9tcm1zIDIgY2hlY2tzIHVzaW5nIGJpbmFyeSBydW50aW1lLCBhYm91dCBp Y29udiBhbmQgc2ZydGltZS4KICMgbXVzbCAoMS4xLjE2KSBkb2VzIG5vdCBzdXBwb3J0ICJJU08t MjAyMi1KUCIgZW5jb2RpbmcgKHNlZSBpdHMgcm9hZG1hcCksCiAjIGFsdGhvdWdoIGV2b2x1dGlv bi1kYXRhLXNlcnZlciBpcyBmaW5lIHdpdGggbXVzbC4KCkZyb20gMWUyYjEwZmQzYWM3MTgzYWI5 M2FmZjgxNzliMDZmYjAwZGU4Y2JlMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAg MTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0MS8xMDJdIGZvbGtzOiB1cGRhdGUgdG8g MC4xNC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgfCAgNyArKysrLS0tCiBzcmNwa2dz L2ZvbGtzL3RlbXBsYXRlIHwgMjggKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMiBmaWxl cyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBmOTExN2E0ZWJkYS4uZTY5ODZh ODI3MjggMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAt ODMxLDkgKzgzMSwxMCBAQCBsaWJkbXIuc28uMC4xIGRlZXBpbi1tb3ZpZS1yZWJvcm4tMy4yLjVf MQogbGliZ2pzLnNvLjAgZ2pzLTEuNjUuMl8xCiBsaWJ0ZWxlcGF0aHktZ2xpYi5zby4wIHRlbGVw YXRoeS1nbGliLTAuMTUuNV8xCiBsaWJhY2NvdW50c3NlcnZpY2Uuc28uMCBhY2NvdW50c3NlcnZp Y2UtMC42LjRfMQotbGliZm9sa3Muc28uMjUgZm9sa3MtMC45LjVfMQotbGliZm9sa3MtdGVsZXBh dGh5LnNvLjI1IGZvbGtzLTAuOS41XzEKLWxpYmZvbGtzLWVkcy5zby4yNSBmb2xrcy0wLjkuNV8x CitsaWJmb2xrcy5zby4yNSBmb2xrcy0wLjE0LjBfMQorbGliZm9sa3MtZHVtbXkuc28uMjUgZm9s a3MtMC4xNC4wXzEKK2xpYmZvbGtzLXRlbGVwYXRoeS5zby4yNSBmb2xrcy0wLjE0LjBfMQorbGli Zm9sa3MtZWRzLnNvLjI1IGZvbGtzLTAuMTQuMF8xCiBsaWJuaWNlLnNvLjEwIGxpYm5pY2UtMC4x LjBfMQogbGliZ3VwbnAtaWdkLTEuMC5zby40IGd1cG5wLWlnZC0wLjIuMF8xCiBsaWJ0ZWxlcGF0 aHktbG9nZ2VyLnNvLjMgdGVsZXBhdGh5LWxvZ2dlci0wLjYuMF8xCmRpZmYgLS1naXQgYS9zcmNw a2dzL2ZvbGtzL3RlbXBsYXRlIGIvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZQppbmRleCAzMzEwYzU0 ZmFkZC4uYjA3NmI5NGJlYTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZQpAQCAtMSwyMSArMSwyNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZm9sa3MnCiBwa2duYW1lPWZvbGtzCi12ZXJzaW9uPTAuMTMuMQotcmV2aXNpb249 MgordmVyc2lvbj0wLjE0LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1idWlsZF9o ZWxwZXI9Z2lyCi1jb25maWd1cmVfYXJncz0iLURiX2x0bz1mYWxzZSAtRGxpYnNvY2lhbHdlYi1i YWNrZW5kPWZhbHNlIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGdsaWIt ZGV2ZWwgdmFsYSBweXRob24gZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0gZXZvbHV0aW9uLWRhdGEt c2VydmVyLWRldmVsIgorYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKK2NvbmZpZ3VyZV9hcmdzPSIt RGJfbHRvPWZhbHNlIgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGdsaWIt ZGV2ZWwgcHl0aG9uMyBweXRob24zLWRidXNtb2NrCisgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRl dmVsICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0icmVhZGxpbmUtZGV2ZWwgdGVs ZXBhdGh5LWdsaWItZGV2ZWwgemVpdGdlaXN0LWRldmVsCi0gbGliZ2VlMDgtZGV2ZWwgZXZvbHV0 aW9uLWRhdGEtc2VydmVyLWRldmVsIHRyYWNrZXItZGV2ZWwiCisgbGliZ2VlMDgtZGV2ZWwgZXZv bHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIHRyYWNrZXItZGV2ZWwKKyAkKHZvcHRfaWYgZ2lyIHZh bGEtZGV2ZWwpIgogZGVwZW5kcz0iemVpdGdlaXN0Igogc2hvcnRfZGVzYz0iR09iamVjdCBMaWJy YXJ5IHRvIGFnZ3JlZ2F0ZSBwZW9wbGUgaW50byBtZXRhY29udGFjdHMiCiBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Gb2xrcyIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTNkZjFjNjYzYjgyZmUyMTFhZWFkMmIz MWNhZTFmYzQxZDEyNGU4NTQzNjM3NTc2MmY2NzQ1YzQ1YmE0NmFhNWQKK2NoZWNrc3VtPWQ2ZTc3 OGRhNjM3ZDNiMzNmZDlhNmI0NTExNWU4MTU3ZDg4NjgyMTFkYzA4Yjk0M2QxMDc1YjVlYjcyODJi YjkKKworYnVpbGRfb3B0aW9ucz0iZ2lyIgoraWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVu CisJYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCitmaQogCiBmb2xrcy1kZXZlbF9wYWNrYWdl KCkgewogCWRlcGVuZHM9IiR7bWFrZWRlcGVuZHN9ICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKQEAgLTI0LDcgKzMwLDkgQEAgZm9sa3MtZGV2ZWxfcGFja2FnZSgpIHsKIAkJ dm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgInVz ci9saWIvKi5zbyIKLQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKLQkJdm1vdmUgdXNyL3NoYXJlL2dp ci0xLjAKKwkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KKwkJCXZtb3ZlIHVzci9z aGFyZS9naXItMS4wCisJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQorCQlmaQogCX0KIH0KCkZyb20g MTQ5Yjg3YWIyYTI3YTNiNzgzMTk2NDNhMmVjZjkzZDRkMGI2ZmU1ZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0Mi8xMDJd IGdub21lLW9ubGluZS1hY2NvdW50czogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9n bm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUgfCAxNCArKysrKystLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLW9ubGluZS1hY2NvdW50cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtb25s aW5lLWFjY291bnRzL3RlbXBsYXRlCmluZGV4IDE5M2E3ZjliNDNmLi4yOTk4MGQ0MzQyNCAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdnbm9tZS1vbmxpbmUtYWNjb3VudHMnCiBwa2duYW1lPWdub21lLW9u bGluZS1hY2NvdW50cwotdmVyc2lvbj0zLjM2LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy45 MAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogYnVpbGRfaGVscGVyPSJn aXIiCiBjb25maWd1cmVfYXJncz0iJCh2b3B0X2VuYWJsZSBnaXIgaW50cm9zcGVjdGlvbikKQEAg LTExLDcgKzExLDcgQEAgY29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3Bl Y3Rpb24pCiAgLS1lbmFibGUtb3duY2xvdWQgLS1lbmFibGUtd2luZG93cy1saXZlIC0tZW5hYmxl LXBvY2tldAogIC0tZW5hYmxlLWxhc3RmbSAtLWVuYWJsZS1tZWRpYS1zZXJ2ZXIiCiBob3N0bWFr ZWRlcGVuZHM9ImRvY2Jvb2steHNsIGdldHRleHQtZGV2ZWwgZ2xpYi1kZXZlbCBnbm9tZS1jb21t b24KLSBsaWJ4c2x0IHBrZy1jb25maWcgJCh2b3B0X2lmIHZhbGEgdmFsYSkiCisgbGlieHNsdCBw a2ctY29uZmlnICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ2NyLWRldmVsIGd0 ayszLWRldmVsIGpzb24tZ2xpYi1kZXZlbCBsaWJub3RpZnktZGV2ZWwgbGlic2VjcmV0LWRldmVs CiAgbGlic291cC1kZXZlbCBtaXQta3JiNS1kZXZlbCByZXN0LWRldmVsIHRlbGVwYXRoeS1nbGli LWRldmVsIHdlYmtpdDJndGstZGV2ZWwiCiBkZXBlbmRzPSJoaWNvbG9yLWljb24tdGhlbWUiCkBA IC0yMCwxMCArMjAsMTAgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v d2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVPbmxpbmVBY2NvdW50cyIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTFjOGY2Mjk5MDgzM2NhNDExODhkYmI4MGM1ZTk5ZDk5YjU3 YTYyNjA4Y2E2NzViYmNkMzdiYzIyNDQ3NDJmMmUKK2NoZWNrc3VtPTlmNjk4MmM4OTZlNjIzNWEy ZTg1YjhhNDk3YzdiZjYzYTRhMjg4YjU2NzhkYjQwZGMzNzM1MTVlZmJlZGIxYmIKIAotYnVpbGRf b3B0aW9ucz0iZ2lyIHZhbGEiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVp bGRfb3B0aW9ucz0iZ2lyIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGdub21lLW9u bGluZS1hY2NvdW50cy1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9Imd0ayszLWRldmVsICR7 c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKQEAgLTM1LDggKzM1LDYgQEAgZ25v bWUtb25saW5lLWFjY291bnRzLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvZ29h LTEuMAogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3No YXJlL2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJ CQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCX0KCkZyb20gNzNlMjY0NTVjZTU5OTU4ZWQ3 MTMwYTI5NjFlNDM2ZDg3NzNhNGQzOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAg MjE6MTA6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA0My8xMDJdIGd2ZnM6IHVwZGF0ZSB0byAx LjQ2LjAKCi0tLQogc3JjcGtncy9ndmZzL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z3Zmcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZQppbmRleCAxMjdhMDU3NzkwMS4u NjEwNzAyM2MyMWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2d2ZnMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn dmZzJwogcGtnbmFtZT1ndmZzCi12ZXJzaW9uPTEuNDQuMQordmVyc2lvbj0xLjQ2LjAKIHJldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1kdXNlcnVu aXRkaXI9bm8gLUR0bXBmaWxlc2Rpcj1ubyAtRGxvZ2luZD1mYWxzZQpAQCAtMjAsNyArMjAsNyBA QCBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25v bWUub3JnL1Byb2plY3RzL2d2ZnMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9y Zy9HTk9NRS9ndmZzL3Jhdy9nbm9tZS0zLTM0L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT01MGVmMzI0NWQxYjAzNjY2YTQwNDU1MTA5MTY5YTJhMWJkNTE0MTlmZDJkNTFm OWZhNmNmZDRmODlmMDRmYjQ2CitjaGVja3N1bT03OGJhNzNhNmRhMDlhMjFjZTNhY2M3NzZiNDZj MjZkZDViZWEyMTY0NjNhNjVkNjViNDA1MmE1N2Y1ZDk3MGU5CiAKICMgTWFudWFsbHkgZGVjbGFy ZSBzaGxpYnMgdXNlZCBieSB0aGUgc3VicGtncy4KIHNobGliX3Byb3ZpZGVzPSJsaWJndmZzY29t bW9uLnNvIGxpYmd2ZnNkYWVtb24uc28iCgpGcm9tIGUyNjYzZGNjZjc1OTBkYTQ5MzQwYWMyZjBj MzNiMTVjMTQ1OTFiZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDQvMTAyXSBnbm9tZS1jb250cm9sLWNlbnRlcjogdXBk YXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL05ldHdvcmtNYW5hZ2VyL3RlbXBsYXRlICAgICAg ICAgICAgICAgfCAgMiArCiAuLi4vZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5w YXRjaCAgfCAzOCArKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLWNvbnRyb2wtY2Vu dGVyL3RlbXBsYXRlICAgICAgICAgfCAyNCArKysrKysrLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwg NTQgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9nbm9tZS1jb250cm9sLWNlbnRlci9wYXRjaGVzL25tMTIyLnBhdGNoCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9OZXR3b3JrTWFuYWdlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvTmV0d29ya01hbmFn ZXIvdGVtcGxhdGUKaW5kZXggZWRlYjgyNzg1NzkuLmU0ODJiYmE5OGRlIDEwMDY0NAotLS0gYS9z cmNwa2dzL05ldHdvcmtNYW5hZ2VyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvTmV0d29ya01hbmFn ZXIvdGVtcGxhdGUKQEAgLTEsNCArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdOZXR3b3Jr TWFuYWdlcicKKyMgd2hlbiB1cGRhdGluZyB0byAxLjI0IG9yIG5ld2VyLCBkcm9wIHRoZSBjb21w YXQKKyMgcGF0Y2ggaW4gZ25vbWUtY29udHJvbC1jZW50ZXIgYW5kIHJlYnVpbGQgaXQKIHBrZ25h bWU9TmV0d29ya01hbmFnZXIKIHZlcnNpb249MS4yMi4xMAogcmV2aXNpb249MgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci9wYXRjaGVzL25tMTIyLnBhdGNoIGIvc3Jj cGtncy9nbm9tZS1jb250cm9sLWNlbnRlci9wYXRjaGVzL25tMTIyLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44MzNmZWQzOTY4ZQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5wYXRjaApAQCAt MCwwICsxLDM4IEBACitGcm9tIDQxNTlmOTg0YmQzNTFjYWY2ZjBlMWFkYmQ5MGZlZWI4NWFiMjUy ZjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KK0RhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjI6MDI6MDQgKzAyMDAKK1N1 YmplY3Q6IFtQQVRDSF0gcmVzdG9yZSBjb21wYXRpYmlsaXR5IHdpdGggbmV0d29ya21hbmFnZXIg MS4yMgorCitkcm9wIHRoaXMgcGF0Y2ggYW5kIHJlYnVpbGQgZ25vbWUtY29udHJvbC1jZW50ZXIg d2hlbiB1cGRhdGluZyBubQorLS0tCisgcGFuZWxzL25ldHdvcmsvbmV0LWRldmljZS13aWZpLmMg fCA3IC0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBwYW5lbHMvbmV0d29yay9uZXQtZGV2aWNlLXdpZmkuYyBwYW5lbHMvbmV0d29yay9uZXQtZGV2 aWNlLXdpZmkuYworaW5kZXggY2I4NmU1Yi4uZDYzYzU3YyAxMDA2NDQKKy0tLSBwYW5lbHMvbmV0 d29yay9uZXQtZGV2aWNlLXdpZmkuYworKysrIHBhbmVscy9uZXR3b3JrL25ldC1kZXZpY2Utd2lm aS5jCitAQCAtMTE4MCwxMSArMTE4MCw2IEBAIG5tX2NsaWVudF9vbl9wZXJtaXNzaW9uX2NoYW5n ZSAoTmV0RGV2aWNlV2lmaSAqc2VsZikgeworICAgICAgICAgTk1DbGllbnRQZXJtaXNzaW9uUmVz dWx0IHBlcm07CisgICAgICAgICBOTURldmljZVdpZmlDYXBhYmlsaXRpZXMgY2FwczsKKyAKKy0g ICAgICAgIGlmIChubV9jbGllbnRfZ2V0X3Blcm1pc3Npb25zX3N0YXRlIChzZWxmLT5jbGllbnQp ICE9IE5NX1RFUk5BUllfVFJVRSkgeworLSAgICAgICAgICAgICAgICAvKiBwZXJtaXNzaW9ucyBh cmVuJ3QgcmVhZHkgeWV0ICovCistICAgICAgICAgICAgICAgIHJldHVybjsKKy0gICAgICAgIH0K Ky0KKyAgICAgICAgIC8qIG9ubHkgZW5hYmxlIHRoZSBidXR0b24gaWYgdGhlIHVzZXIgY2FuIGNy ZWF0ZSBhIGhvdHNwb3QgKi8KKyAgICAgICAgIHBlcm0gPSBubV9jbGllbnRfZ2V0X3Blcm1pc3Np b25fcmVzdWx0IChzZWxmLT5jbGllbnQsIE5NX0NMSUVOVF9QRVJNSVNTSU9OX1dJRklfU0hBUkVf T1BFTik7CisgICAgICAgICBjYXBzID0gbm1fZGV2aWNlX3dpZmlfZ2V0X2NhcGFiaWxpdGllcyAo Tk1fREVWSUNFX1dJRkkgKHNlbGYtPmRldmljZSkpOworQEAgLTEyMjcsOCArMTIyMiw2IEBAIG5l dF9kZXZpY2Vfd2lmaV9uZXcgKENjUGFuZWwgKnBhbmVsLCBOTUNsaWVudCAqY2xpZW50LCBOTURl dmljZSAqZGV2aWNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJB Q0sgKGFwX2FjdGl2YXRlZCksIHNlbGYsIEdfQ09OTkVDVF9TV0FQUEVEKTsKKyAgICAgICAgIGdf c2lnbmFsX2Nvbm5lY3Rfb2JqZWN0IChsaXN0LCAiY29uZmlndXJlIiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChzaG93X2RldGFpbHNfZm9yX3JvdyksIHNl bGYsIEdfQ09OTkVDVF9TV0FQUEVEKTsKKy0gICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0 IChjbGllbnQsICJub3RpZnkiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdf Q0FMTEJBQ0sobm1fY2xpZW50X29uX3Blcm1pc3Npb25fY2hhbmdlKSwgc2VsZiwgR19DT05ORUNU X1NXQVBQRUQpOworIAorICAgICAgICAgbm1fY2xpZW50X29uX3Blcm1pc3Npb25fY2hhbmdlKHNl bGYpOworIAorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jb250cm9s LWNlbnRlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvdGVtcGxhdGUK aW5kZXggOWZkYjg1M2FmYmYuLjE5MTEwMWFmYWFkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21l LWNvbnRyb2wtY2VudGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50 ZXIvdGVtcGxhdGUKQEAgLTEsMjIgKzEsMjIgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21l LWNvbnRyb2wtY2VudGVyJwogcGtnbmFtZT1nbm9tZS1jb250cm9sLWNlbnRlcgotdmVyc2lvbj0z LjM0LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iLURjaGVlc2U9JCh2 b3B0X2lmIGNoZWVzZSB0cnVlIGZhbHNlKSIKLWhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBn c2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGludGx0b29sIHBrZy1jb25maWcgcG9sa2l0 Ci0gcHl0aG9uMyIKK2hvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBnc2V0dGluZ3MtZGVza3Rv cC1zY2hlbWFzLWRldmVsIGludGx0b29sIHBrZy1jb25maWcKKyBwb2xraXQgcHl0aG9uMyIKIG1h a2VkZXBlbmRzPSJNb2RlbU1hbmFnZXItZGV2ZWwgYWNjb3VudHNzZXJ2aWNlLWRldmVsIGFsc2Et cGx1Z2lucwogIGNvbG9yZC1ndGstZGV2ZWwgZ25vbWUtYmx1ZXRvb3RoLWRldmVsIGdub21lLWRl c2t0b3AtZGV2ZWwgZ25vbWUtbWVudXMtZGV2ZWwKICBnbm9tZS1vbmxpbmUtYWNjb3VudHMtZGV2 ZWwgZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIGdyaWxvLWRldmVsIGlidXMtZGV2ZWwKLSBs aWJTTS1kZXZlbCBsaWJYeGY4Nm1pc2MtZGV2ZWwgbGliZ25vbWVrYmQtZGV2ZWwgbGliZ3RvcC1k ZXZlbAorIGxpYlNNLWRldmVsIGxpYlh4Zjg2bWlzYy1kZXZlbCBsaWJnbm9tZWtiZC1kZXZlbCBs aWJndG9wLWRldmVsIGxpYmhhbmR5MS1kZXZlbAogIGxpYnB3cXVhbGl0eS1kZXZlbCBtaXQta3Ji NS1kZXZlbCBuZXR3b3JrLW1hbmFnZXItYXBwbGV0LWRldmVsIHBvbGtpdC1kZXZlbAogIHB1bHNl YXVkaW8tZGV2ZWwgc2FtYmEtZGV2ZWwgdHpkYXRhIHVwb3dlci1kZXZlbCB2YWxhLWRldmVsIGNs dXR0ZXItZ3RrLWRldmVsCiAgbGlieG1sMi1kZXZlbCBsaWJYMTEtZGV2ZWwgZ3RrKzMtZGV2ZWwg Y3Vwcy1kZXZlbCBsaWJndWRldi1kZXZlbCBsaWJ3YWNvbS1kZXZlbAogIGNsdXR0ZXItZGV2ZWwg bGlic2VjcmV0LWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIHVkaXNrczItZGV2ZWwgZ3NvdW5kLWRl dmVsCiAgJCh2b3B0X2lmIGNoZWVzZSBjaGVlc2UtZGV2ZWwpIgotZGVwZW5kcz0iYWxzYS1wbHVn aW5zLXB1bHNlYXVkaW8gZGVza3RvcC1maWxlLXV0aWxzCitkZXBlbmRzPSJhbHNhLXBsdWdpbnMt cHVsc2VhdWRpbyBkZXNrdG9wLWZpbGUtdXRpbHMgdXBvd2VyIGNvbG9yZCBjdXBzLXBrLWhlbHBl cgogIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgaGljb2xvci1pY29uLXRoZW1lIGlzby1jb2Rl cyBzb3VuZC10aGVtZS1mcmVlZGVza3RvcAogIGNyYWNrbGliIgogc2hvcnRfZGVzYz0iR05PTUUg Y29udHJvbCBjZW50ZXIiCkBAIC0yNCwxMyArMjQsMTcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWNvbnRyb2wtY2Vu dGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NWY4MmVjZDU1NTQxMzZjNDYy MjQ4ZWM1MzYzYjgyZDk1MzU4YjM5ZGZkNjc4NzAwNmQ4MzA3YjQ1MDRlNTE1ZQorY2hlY2tzdW09 ZjZiNmI1YjhlZjljMzhkODk1YmE1YWY4N2YzMWFkYWUwMjE5NGFkODZjOWFhNmNmZjJkMmI5NzU1 YzJkYjFkYQogCiBidWlsZF9vcHRpb25zPSJjaGVlc2UiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9 ImNoZWVzZSIKKwogZGVzY19vcHRpb25fY2hlZXNlPSJBZGQgc3VwcG9ydCBmb3IgYWRkaW5nIHVz ZXIgYWNjb3VudCBpbWFnZXMgd2l0aCB5b3VyIHdlYmNhbSIKLWlmIFsgLXogIiRDUk9TU19CVUlM RCIgXTsgdGhlbgotCWJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiBjaGVlc2UiCi1maQorCisjIG5l ZWRzIFgxMSBhbmQgcmVxdWlyZXMgYWx0ZXJlZCBmaWxlc3lzdGVtCitkb19jaGVjaygpIHsKKwk6 Cit9CiAKIENGTEFHUz0iLWZjb21tb24iCiAKCkZyb20gNDE1MTE4NmZmYjk5YzZmMmNiODExZGIw OTBkYjY3YWFlYjgxMDNmYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6 MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0NS8xMDJdIGRjb25mLWVkaXRvcjogdXBkYXRlIHRv IDMuMzguMAoKLS0tCiBzcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZSB8IDYgKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZGNvbmYtZWRpdG9yL3RlbXBsYXRlIGIvc3JjcGtncy9kY29uZi1lZGl0b3Iv dGVtcGxhdGUKaW5kZXggZGUyNTBiYmM4YTkuLjIzMjUyYjlmNzRlIDEwMDY0NAotLS0gYS9zcmNw a2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1w bGF0ZQpAQCAtMSwxMyArMSwxMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZGNvbmYtZWRpdG9y JwogcGtnbmFtZT1kY29uZi1lZGl0b3IKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAog cmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14 c2wgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSIKK2hvc3RtYWtlZGVwZW5kcz0i ZG9jYm9vay14c2wgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSBnZXR0ZXh0Igog bWFrZWRlcGVuZHM9ImRjb25mLWRldmVsIGd0ayszLWRldmVsIgogc2hvcnRfZGVzYz0iTG93LWxl dmVsIGNvbmZpZ3VyYXRpb24gc3lzdGVtIC0gR1RLKyBlZGl0b3IiCiBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL2Rjb25mIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NzJlZWQwNTY3MDkxN2Y4ZTQzMjAwZTQwY2Nj NmJlNjAyMTFmMGE4N2IwMTc1MzRlYWMxZmQ2YzcxNzNhMDY5MworY2hlY2tzdW09NmQ4OTI0OWEz NzkwODJkZTZhOGU5NWEyYTIwMmQwY2E1ZmUxYzk3NzZiYzBkNWQzZWYwNjU1NjdkODE4M2ViNAoK RnJvbSAzODZlMTM5YmI3ZGQxMjQzNThlMDBlOTk0Y2E4NzMwNmM1Mjg1ZjExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNjo0MjowMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQ2 LzEwMl0gZ2pzOiB1cGRhdGUgdG8gMS42Ni4wCgotLS0KIHNyY3BrZ3MvZ2pzL3RlbXBsYXRlIHwg OCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dqcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2pzL3RlbXBs YXRlCmluZGV4IGVjNDhiYWRkZjExLi44YTEzM2RkODA0OCAxMDA2NDQKLS0tIGEvc3JjcGtncy9n anMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nanMvdGVtcGxhdGUKQEAgLTEsMjcgKzEsMjcgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dqcycKIHBrZ25hbWU9Z2pzCi12ZXJzaW9uPTEuNjUuMgor dmVyc2lvbj0xLjY2LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxw ZXI9ImdpciBxZW11IgogY29uZmlndXJlX2FyZ3M9Ii1Ec2tpcF9kYnVzX3Rlc3RzPXRydWUgLURz a2lwX2d0a190ZXN0cz10cnVlCiAgLURwcm9maWxlcj1kaXNhYmxlZCAtRGluc3RhbGxlZF90ZXN0 cz1mYWxzZSIgIyBEaXNhYmxlIHRlc3RzIGJlY2F1c2UgdGhleSBuZWVkIGRidXMsIFggYW5kIEdU Sy4KIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBwa2ctY29uZmlnIgotbWFrZWRlcGVuZHM9 ImRidXMtZ2xpYi1kZXZlbCBtb3pqczY4LWRldmVsIHJlYWRsaW5lLWRldmVsIHN5c3Byb2YtZGV2 ZWwiCittYWtlZGVwZW5kcz0iZGJ1cy1nbGliLWRldmVsIG1vempzNzgtZGV2ZWwgcmVhZGxpbmUt ZGV2ZWwgc3lzcHJvZi1kZXZlbCIKIHNob3J0X2Rlc2M9Ik1vemlsbGEtYmFzZWQgamF2YXNjcmlw dCBiaW5kaW5ncyBmb3IgdGhlIEdOT01FIHBsYXRmb3JtIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCwgTEdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9hY3Rpb24vc2hvdy9Qcm9qZWN0 cy9HanMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nanMvYmxv Yi9nbm9tZS0zLTMwL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1hNjZl ZGFkOGE1ZjEwMDI3ZjliMTgyZDg4YWY4NGI4MWYxM2U1YWQ1ODQwMzE5Y2ZhNzQ3ZDY2ZTc3ZTAy MTRmCitjaGVja3N1bT1mMzBjZjkwZTAxNmRiNmM4ZmRkMDA1OTc0OTU1OTYxMTc2MGYwNzIxZjM3 NWIyYjYxZTBiNzIzOWI0M2FiNWY4CiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bGljZW5zZSBDT1BZ SU5HCiB9CiAKIGdqcy1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImxpYmdpcmVwb3NpdG9y eS1kZXZlbCBtb3pqczY4LWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKKwlkZXBlbmRzPSJsaWJnaXJlcG9zaXRvcnktZGV2ZWwgbW96anM3OC1kZXZlbCAke3NvdXJj ZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3Bt ZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQoKRnJvbSBk YzNlYjU0NWRlM2I4NjgwYmM0MWRkMDYxMWEzNTIyYTFjYTBmZWEzIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQ3LzEwMl0g Z25vbWUtc2hlbGw6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1zaGVsbC90 ZW1wbGF0ZSB8IDExICsrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLXNoZWxsL3RlbXBsYXRlCmluZGV4IDk2YzViODBhMTk0Li5mMjc3 OTU1NzJlZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dub21lLXNoZWxsL3RlbXBsYXRlCkBAIC0xLDEyICsxLDEyIEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZS1zaGVsbCcKIHBrZ25hbWU9Z25vbWUtc2hlbGwKLXZlcnNpb249My4z NC4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxk X2hlbHBlcj1naXIKIGNvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWQ9ZmFsc2UiCiBob3N0bWFrZWRl cGVuZHM9ImdvYmplY3QtaW50cm9zcGVjdGlvbiBndGstZG9jIGxpYnhzbHQgcGtnLWNvbmZpZyBw eXRob24zIHNhc3NjCi0gYXNjaWlkb2MgcGVybCBnbGliLWRldmVsIG11dHRlci1kZXZlbCIKKyBh c2NpaWRvYyBwZXJsIGdsaWItZGV2ZWwgbXV0dGVyLWRldmVsIGdldHRleHQgZ2pzLWRldmVsIgog bWFrZWRlcGVuZHM9ImF0LXNwaTItYXRrIGNhcmlib3UtZGV2ZWwgZXZvbHV0aW9uLWRhdGEtc2Vy dmVyLWRldmVsIGZvbGtzLWRldmVsCiAgZ2NyLWRldmVsIGdqcy1kZXZlbCBnbm9tZS1ibHVldG9v dGgtZGV2ZWwgZ25vbWUtY29udHJvbC1jZW50ZXItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbAog IGdub21lLW1lbnVzLWRldmVsIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwgZ3N0cmVh bWVyMS1kZXZlbCBndGsrMy1kZXZlbApAQCAtMjEsNCArMjEsOSBAQCBsaWNlbnNlPSJHUEwtMi4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25v bWVTaGVsbCIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dO T01FL2dub21lLXNoZWxsL2dub21lLTMtMzAvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRF fS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPWNjZDg2NTU5YjljODk3YzIxOWQyZDJlYmZkYjg0MTNlZmE0YzFiZWU4NDY0Mjdj NzUwY2I4YTMwMWIzZjZkMWUKK2NoZWNrc3VtPWM2MjY0MDNiYzA4NzVlZTZkYThjN2E2MmFjMGNl ZTMxMmJhZGI1MjNhZjA3M2NiMTY2MTI1MDE1YTc1YTBhOTcKKworIyBuZWVkcyBYCitkb19jaGVj aygpIHsKKwk6Cit9CgpGcm9tIDFmNjc5YjljNjI3MTc0ZWU0ZWJkODQ0YTlhYWFlYTMzMzUxZDUz YTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwNDgvMTAyXSBnbm9tZS1zaGVsbC1leHRlbnNpb25zOiB1cGRhdGUgdG8gMy4z OC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZSB8IDYgKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZQppbmRleCA5NzE2OGI0MGY2Ni4uZTQ5 MzAzODRmZDQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUKQEAgLTEs MTUgKzEsMTUgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXNoZWxsLWV4dGVuc2lvbnMn CiBwa2duYW1lPWdub21lLXNoZWxsLWV4dGVuc2lvbnMKLXZlcnNpb249My4zNC4xCit2ZXJzaW9u PTMuMzguMAogcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1tZXNvbgogY29u ZmlndXJlX2FyZ3M9Ii1EZXh0ZW5zaW9uX3NldD1hbGwiCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWciCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2V0dGV4dCIKIGRlcGVuZHM9Imdu b21lLXNoZWxsPj0ke3ZlcnNpb259IG5hdXRpbHVzIHVuemlwIgogc2hvcnRfZGVzYz0iRXh0ZW5z aW9ucyBmb3IgR05PTUUgc2hlbGwsIGluY2x1ZGluZyBjbGFzc2ljIG1vZGUiCiBtYWludGFpbmVy PSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21l U2hlbGwvRXh0ZW5zaW9ucyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWIwYWQ1 MTE0M2IxYmY0MGRlZjRhMTBmOGZkMGFiMGZmYjQ3MjE4MzA0ODAwNzk0ZTYyY2FkZDI5ZDBhY2M3 NWIKK2NoZWNrc3VtPWY3MjZmODViYjM5OGIwODJhZDA5YTdkZWQzMDZmMjJiZDI1ZDI1ODk4Yzdm MThiZDc3NWRmNjY0MDBkMzkxOWYKCkZyb20gOGE0MmM0NTY4ZGQ2MTkwZDA2OTg2NTY2MTEyZGZm ZDMzODc5OGIyMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAy MDAKU3ViamVjdDogW1BBVENIIDA0OS8xMDJdIGdkbTogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBz cmNwa2dzL2dkbS9wYXRjaGVzL3Rha2Utb3V0LXRoZS10cmFzaC5wYXRjaCB8IDIzICsrKysrKysr KysrKysrKysrCiBzcmNwa2dzL2dkbS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8 IDI2ICsrKysrKysrKysrLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMo KyksIDEyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2RtL3BhdGNo ZXMvdGFrZS1vdXQtdGhlLXRyYXNoLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nZG0vcGF0 Y2hlcy90YWtlLW91dC10aGUtdHJhc2gucGF0Y2ggYi9zcmNwa2dzL2dkbS9wYXRjaGVzL3Rha2Ut b3V0LXRoZS10cmFzaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uNjkyN2M3Mjc3YjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dkbS9wYXRjaGVzL3Rh a2Utb3V0LXRoZS10cmFzaC5wYXRjaApAQCAtMCwwICsxLDIzIEBACistLS0gbWVzb24uYnVpbGQK KysrKyBtZXNvbi5idWlsZAorQEAgLTk0LDE5ICs5NCw4IEBAIGlmIHhkbWNwX2RlcC5mb3VuZCgp IGFuZCBnZXRfb3B0aW9uKCd0Y3Atd3JhcHBlcnMnKQorICAgbGlid3JhcF9kZXAgPSBjYy5maW5k X2xpYnJhcnkoJ2xpYndyYXAnKQorIGVuZGlmCisgIyBzeXN0ZW1kCistc3lzdGVtZF9kZXAgPSBk ZXBlbmRlbmN5KCdzeXN0ZW1kJykKKyBsaWJzeXN0ZW1kX2RlcCA9IGRlcGVuZGVuY3koJ2xpYnN5 c3RlbWQnKQorLWlmIG1lc29uLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49IDAuNTMnKQor LSAgc3lzdGVtZF9tdWx0aXNlYXRfeCA9IGZpbmRfcHJvZ3JhbSgnc3lzdGVtZC1tdWx0aS1zZWF0 LXgnLAorLSAgICByZXF1aXJlZDogZmFsc2UsCistICAgIGRpcnM6IFsKKy0gICAgICBzeXN0ZW1k X2RlcC5nZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCdzeXN0ZW1kdXRpbGRpcicpLAorLSAgICAgICcv bGliL3N5c3RlbWQnLAorLSAgICAgICcvdXNyL2xpYi9zeXN0ZW1kJywKKy0gICAgXSkKKy1lbHNl CistICBzeXN0ZW1kX211bHRpc2VhdF94ID0gZmluZF9wcm9ncmFtKCdzeXN0ZW1kLW11bHRpLXNl YXQteCcsIHJlcXVpcmVkOiBmYWxzZSkKKy1lbmRpZgorK3N5c3RlbWRfbXVsdGlzZWF0X3ggPSBm aW5kX3Byb2dyYW0oJ3N5c3RlbWQtbXVsdGktc2VhdC14JywgcmVxdWlyZWQ6IGZhbHNlKQorIHN5 c3RlbWRfeF9zZXJ2ZXIgPSBzeXN0ZW1kX211bHRpc2VhdF94LmZvdW5kKCk/IHN5c3RlbWRfbXVs dGlzZWF0X3gucGF0aCgpIDogJy9saWIvc3lzdGVtZC9zeXN0ZW1kLW11bHRpLXNlYXQteCcKKyAj IFBseW1vdXRoCisgcGx5bW91dGhfZGVwID0gZGVwZW5kZW5jeSgncGx5LWJvb3QtY2xpZW50Jywg cmVxdWlyZWQ6IGdldF9vcHRpb24oJ3BseW1vdXRoJykpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dk bS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2RtL3RlbXBsYXRlCmluZGV4IGJiNWI0ODY5MmQ0Li4xMTg4 ODFlNGM0YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nZG0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n ZG0vdGVtcGxhdGUKQEAgLTEsMjcgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dkbScK IHBrZ25hbWU9Z2RtCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEK IGJ1aWxkX2hlbHBlcj0iZ2lyIgotYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJl X2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pCi0gLS1kaXNhYmxlLXNjaGVt YXMtY29tcGlsZSAtLWRpc2FibGUtc3RhdGljIC0td2l0aC1kZWZhdWx0LXBhbS1jb25maWc9YXJj aAotIC0td2l0aC1hdC1zcGktcmVnaXN0cnlkLWRpcmVjdG9yeT0vdXNyL2xpYmV4ZWMgLS13aXRo b3V0LXRjcC13cmFwcGVycwotIC0td2l0aC1zY3JlZW5zaG90LWRpcj0vdmFyL2xpYi9nZG0vZ3Jl ZXRlciAtLXNiaW5kaXI9L3Vzci9iaW4gLS13aXRob3V0LXBseW1vdXRoCi0gLS13aXRoLXhhdXRo LWRpcj0vcnVuL2dkbSAtLXdpdGgtcGlkLWZpbGU9L3J1bi9nZG0vZ2RtLnBpZAotIC0tZGlzYWJs ZS1zeXN0ZW1kLWpvdXJuYWwgLS13aXRoLWluaXRpYWwtdnQ9NyAtLWVuYWJsZS13YXlsYW5kLXN1 cHBvcnQiCitidWlsZF9zdHlsZT1tZXNvbgorY29uZmlndXJlX2FyZ3M9IgorIC1EZGVmYXVsdC1w YW0tY29uZmlnPWFyY2ggLURhdC1zcGktcmVnaXN0cnlkLWRpcj0vdXNyL2xpYmV4ZWMKKyAtRHRj cC13cmFwcGVycz1mYWxzZSAtRHNjcmVlbnNob3QtZGlyPS92YXIvbGliL2dkbS9ncmVldGVyCisg LURwbHltb3V0aD1kaXNhYmxlZCAtRHhhdXRoLWRpcj0vcnVuL2dkbSAtRHBpZC1maWxlPS9ydW4v Z2RtL2dkbS5waWQKKyAtRHN5c3RlbWQtam91cm5hbD1mYWxzZSAtRGluaXRpYWwtdnQ9NyAtRHdh eWxhbmQtc3VwcG9ydD10cnVlCisgLURzZWxpbnV4PWRpc2FibGVkIC1EbGliYXVkaXQ9ZGlzYWJs ZWQKKyAtRHN5c3RlbWRzeXN0ZW11bml0ZGlyPS90bXAgLURzeXN0ZW1kdXNlcnVuaXRkaXI9L3Rt cCIKIGhvc3RtYWtlZGVwZW5kcz0iZGNvbmYgZ2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWciCiBt YWtlZGVwZW5kcz0iYWNjb3VudHNzZXJ2aWNlLWRldmVsIGVsb2dpbmQtZGV2ZWwgZ2V0dGV4dC1k ZXZlbCBnbGliLWRldmVsCiAgaXNvLWNvZGVzIGxpYlNNLWRldmVsIGxpYmNhbmJlcnJhLWRldmVs IG5zcy1kZXZlbCBwYW0tZGV2ZWwgdXBvd2VyLWRldmVsIgotZGVwZW5kcz0iZ25vbWUtc2V0dGlu Z3MtZGFlbW9uIGdub21lLXNoZWxsIHhvcmctc2VydmVyIHhvcmctc2VydmVyLXh3YXlsYW5kCi0g eHJkYiIKK2RlcGVuZHM9Imdub21lLXNldHRpbmdzLWRhZW1vbiBnbm9tZS1zaGVsbCBnbm9tZS1z ZXNzaW9uIGdub21lLXRoZW1lcy1leHRyYQorIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgeG9y Zy1zZXJ2ZXIgeG9yZy1zZXJ2ZXIteHdheWxhbmQgeHJkYiIKIGNoZWNrZGVwZW5kcz0iY2hlY2st ZGV2ZWwiCiBzaG9ydF9kZXNjPSJHTk9NRSBEaXNwbGF5IE1hbmFnZXIiCiBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dETSIKIGRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWU4NWRmNjU3YWE4ZDkzNjFhZjRmYjEyMjAx NGQ4ZjEyM2E5M2JmZTQ1YTc2NjJmYmEyYjM3M2Q4MzlkYmQ4ZDMKK2NoZWNrc3VtPTQ2ZDQ0MTVj MzljOTRjY2VlODFmYmFjMjExMDJlMmViY2QyODRkMzk4NThjODkzZTc1OTkwMGIxZTg4NDM1YmEK IAogY29uZl9maWxlcz0iCiAJL2V0Yy9nZG0vY3VzdG9tLmNvbmYKQEAgLTQ3LDYgKzQ4LDcgQEAg cG9zdF9pbnN0YWxsKCkgewogCXZpbnN0YWxsICRGSUxFU0RJUi9Yc2Vzc2lvbiA3NTUgZXRjL2dk bQogCiAJdnNlZCAtaSAicy9wYW1fc3lzdGVtZFwuc28vcGFtX2Vsb2dpbmQuc28vIiAkREVTVERJ Ui9ldGMvcGFtLmQvKgorCXJtIC1yZiAke0RFU1RESVJ9L3RtcAogCiAJIyBydW5pdCBzZXJ2aWNl CiAJdnN2IGdkbQpAQCAtNjAsNyArNjIsNyBAQCBsaWJnZG1fcGFja2FnZSgpIHsKIH0KIAogZ2Rt LWRldmVsX3BhY2thZ2UoKSB7Ci0JZGVwZW5kcz0ibGliZ2RtPj0ke3ZlcnNpb259XyR7cmV2aXNp b259IgorCWRlcGVuZHM9ImxpYmdkbT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBlbG9naW5kLWRl dmVsIgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgp IHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKCkZyb20gY2ExMWJhNjkwMmQxNTkyMjY5MGZkMTkwNGUw Y2ZjNTQyMGFiYTM4YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDA1MC8xMDJdIGdub21lLXNlc3Npb246IHVwZGF0ZSB0byAz LjM4LjAKCi0tLQogLi4uLWFwcC1TdHJpcC1ibGFja2xpc3RlZC12YXJpYWJsZXMtZnJvLnBhdGNo IHwgNjcgKysrKysrKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0 Y2ggICAgICAgICAgICAgIHwgMTQgKysrKwogc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRl ICAgICAgICAgICAgICAgIHwgMTAgKystCiAzIGZpbGVzIGNoYW5nZWQsIDg4IGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1zZXNz aW9uL3BhdGNoZXMvMDAwMS1yZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJpcC1ibGFja2xpc3RlZC12 YXJpYWJsZXMtZnJvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1zZXNz aW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLXNlc3Npb24vcGF0Y2hlcy8wMDAxLXJldmVydC1hdXRvc3RhcnQtYXBwLVN0cmlwLWJsYWNr bGlzdGVkLXZhcmlhYmxlcy1mcm8ucGF0Y2ggYi9zcmNwa2dzL2dub21lLXNlc3Npb24vcGF0Y2hl cy8wMDAxLXJldmVydC1hdXRvc3RhcnQtYXBwLVN0cmlwLWJsYWNrbGlzdGVkLXZhcmlhYmxlcy1m cm8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNmZDlmNGJh NmNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvMDAw MS1yZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJpcC1ibGFja2xpc3RlZC12YXJpYWJsZXMtZnJvLnBh dGNoCkBAIC0wLDAgKzEsNjcgQEAKK0Zyb20gMWRlMzU3NWExZWE5Y2RiMzU3OWFkNTM4MTA4YzUx ODE4ODQ3Nzk3YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJhc211cyBUaG9tc2Vu IDxvc3NAY29naXRyaS5kZXY+CitEYXRlOiBGcmksIDYgRGVjIDIwMTkgMTE6NDg6MDIgKzAxMDAK K1N1YmplY3Q6IFtQQVRDSF0gcmV2ZXJ0OiBhdXRvc3RhcnQtYXBwOiBTdHJpcCBibGFja2xpc3Rl ZCB2YXJpYWJsZXMgZnJvbQorIGF1dG9zdGFydCBlbnZpcm9ubWVudAorCitUaGlzIGJyZWFrcyBn bm9tZS1zZXNzaW9uIG9uIG5vbi1zeXN0ZW1kIHN5c3RlbXMuCisKK2h0dHBzOi8vZ2l0bGFiLmdu b21lLm9yZy9HTk9NRS9nbm9tZS1zZXNzaW9uL2lzc3Vlcy80NAorLS0tCisgZ25vbWUtc2Vzc2lv bi9nc20tYXV0b3N0YXJ0LWFwcC5jIHwgNSAtLS0tLQorIGdub21lLXNlc3Npb24vZ3NtLXV0aWwu YyAgICAgICAgICB8IDYgLS0tLS0tCisgZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5oICAgICAgICAg IHwgMSAtCisgMyBmaWxlcyBjaGFuZ2VkLCAxMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L2dub21lLXNlc3Npb24vZ3NtLWF1dG9zdGFydC1hcHAuYyBiL2dub21lLXNlc3Npb24vZ3NtLWF1 dG9zdGFydC1hcHAuYworaW5kZXggNmZkNTkxNS4uMDFiYTVmOSAxMDA2NDQKKy0tLSBnbm9tZS1z ZXNzaW9uL2dzbS1hdXRvc3RhcnQtYXBwLmMKKysrKyBnbm9tZS1zZXNzaW9uL2dzbS1hdXRvc3Rh cnQtYXBwLmMKK0BAIC05OTcsNyArOTk3LDYgQEAgYXV0b3N0YXJ0X2FwcF9zdGFydF9zcGF3biAo R3NtQXV0b3N0YXJ0QXBwICphcHAsCisgICAgICAgICBnYm9vbGVhbiAgICAgICAgIHN1Y2Nlc3M7 CisgICAgICAgICBHRXJyb3IgICAgICAgICAgKmxvY2FsX2Vycm9yOworICAgICAgICAgY29uc3Qg Y2hhciAgICAgICpzdGFydHVwX2lkOworLSAgICAgICAgY29uc3QgY2hhciAqIGNvbnN0ICp2YXJp YWJsZV9ibGFja2xpc3Q7CisgICAgICAgICBjb25zdCBjaGFyICogY29uc3QgKmNoaWxkX2Vudmly b25tZW50OworICAgICAgICAgaW50IGk7CisgICAgICAgICBHQXBwTGF1bmNoQ29udGV4dCAqY3R4 OworQEAgLTEwMTQsMTAgKzEwMTMsNiBAQCBhdXRvc3RhcnRfYXBwX3N0YXJ0X3NwYXduIChHc21B dXRvc3RhcnRBcHAgKmFwcCwKKyAgICAgICAgIGxvY2FsX2Vycm9yID0gTlVMTDsKKyAgICAgICAg IGN0eCA9IGdfYXBwX2xhdW5jaF9jb250ZXh0X25ldyAoKTsKKyAKKy0gICAgICAgIHZhcmlhYmxl X2JsYWNrbGlzdCA9IGdzbV91dGlsX2dldF92YXJpYWJsZV9ibGFja2xpc3QgKCk7CistICAgICAg ICBmb3IgKGkgPSAwOyB2YXJpYWJsZV9ibGFja2xpc3RbaV0gIT0gTlVMTDsgaSsrKQorLSAgICAg ICAgICAgICAgICBnX2FwcF9sYXVuY2hfY29udGV4dF91bnNldGVudiAoY3R4LCB2YXJpYWJsZV9i bGFja2xpc3RbaV0pOworLQorICAgICAgICAgY2hpbGRfZW52aXJvbm1lbnQgPSBnc21fdXRpbF9s aXN0ZW52ICgpOworICAgICAgICAgZm9yIChpID0gMDsgY2hpbGRfZW52aXJvbm1lbnRbaV0gIT0g TlVMTDsgaSsrKSB7CisgICAgICAgICAgICAgICAgIGNoYXIgKiplbnZpcm9ubWVudF90dXBsZTsK K2RpZmYgLS1naXQgYS9nbm9tZS1zZXNzaW9uL2dzbS11dGlsLmMgYi9nbm9tZS1zZXNzaW9uL2dz bS11dGlsLmMKK2luZGV4IDAyYmM0YTUuLmFkYTEyMjUgMTAwNjQ0CistLS0gZ25vbWUtc2Vzc2lv bi9nc20tdXRpbC5jCisrKysgZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5jCitAQCAtODA4LDkgKzgw OCwzIEBAIGdzbV91dGlsX2xpc3RlbnYgKHZvaWQpCisgICAgICAgICByZXR1cm4gKGNvbnN0IGNo YXIgKiBjb25zdCAqKSBjaGlsZF9lbnZpcm9ubWVudDsKKyAKKyB9CistCistY29uc3QgY2hhciAq IGNvbnN0ICoKKy1nc21fdXRpbF9nZXRfdmFyaWFibGVfYmxhY2tsaXN0ICh2b2lkKQorLXsKKy0g ICAgICAgIHJldHVybiB2YXJpYWJsZV9ibGFja2xpc3Q7CistfQorZGlmZiAtLWdpdCBhL2dub21l LXNlc3Npb24vZ3NtLXV0aWwuaCBiL2dub21lLXNlc3Npb24vZ3NtLXV0aWwuaAoraW5kZXggYmQ3 YjY5OC4uOGJjYTVmNCAxMDA2NDQKKy0tLSBnbm9tZS1zZXNzaW9uL2dzbS11dGlsLmgKKysrKyBn bm9tZS1zZXNzaW9uL2dzbS11dGlsLmgKK0BAIC01MCw3ICs1MCw2IEBAIGNoYXIgKiAgICAgIGdz bV91dGlsX2dlbmVyYXRlX3N0YXJ0dXBfaWQgICAgICAgICAgICAodm9pZCk7Cisgdm9pZCAgICAg ICAgZ3NtX3V0aWxfc2V0ZW52ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICp2 YXJpYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKnZhbHVlKTsKKyBjb25zdCBjaGFyICogY29uc3QgKiBnc21fdXRp bF9saXN0ZW52ICAgICAgICAgICAgICAgKHZvaWQpOworLWNvbnN0IGNoYXIgKiBjb25zdCAqIGdz bV91dGlsX2dldF92YXJpYWJsZV9ibGFja2xpc3Qodm9pZCk7CisgCisgZ2Jvb2xlYW4gICAgZ3Nt X3V0aWxfZXhwb3J0X2FjdGl2YXRpb25fZW52aXJvbm1lbnQgIChHRXJyb3IgICAgICoqZXJyb3Ip OworICNpZmRlZiBIQVZFX1NZU1RFTUQKKy0tIAorMi4yNC4wCisKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoIGIvc3JjcGtncy9n bm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhlNTVhMGY3OTg3Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2gKQEAgLTAs MCArMSwxNCBAQAorLS0tIG1lc29uLmJ1aWxkCisrKysgbWVzb24uYnVpbGQKK0BAIC0xMzAsMTAg KzEzMCw3IEBAIGlmIGVuYWJsZV9zeXN0ZW1kIG9yIGVuYWJsZV9jb25zb2xla2l0CisgCisgICAj IENoZWNrIGZvciBzeXN0ZW1kCisgICBpZiBlbmFibGVfc3lzdGVtZAorLSAgICBzeXN0ZW1kX2Rl cCA9IGRlcGVuZGVuY3koJ3N5c3RlbWQnLCB2ZXJzaW9uOiAnPj0gMjQyJywgcmVxdWlyZWQ6IHRy dWUpCistICAgIHN5c3RlbWRfdXNlcnVuaXRkaXIgPSBzeXN0ZW1kX2RlcC5nZXRfcGtnY29uZmln X3ZhcmlhYmxlKCdzeXN0ZW1kdXNlcnVuaXRkaXInLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVfdmFyaWFibGU6IFsn cHJlZml4JywgcHJlZml4XSkKKy0KKysgICAgc3lzdGVtZF91c2VydW5pdGRpciA9ICcvdG1wJwor ICAgICBsaWJzeXN0ZW1kX2RlcCA9IGRlcGVuZGVuY3koJ2xpYnN5c3RlbWQnLCB2ZXJzaW9uOiAn Pj0gMjA5JywgcmVxdWlyZWQ6IGZhbHNlKQorICAgICBzZXNzaW9uX2Jpbl9kZXBzICs9IGxpYnN5 c3RlbWRfZGVwCisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNlc3Npb24vdGVtcGxhdGUg Yi9zcmNwa2dzL2dub21lLXNlc3Npb24vdGVtcGxhdGUKaW5kZXggNDQ0NGYxNjJiZjEuLmM5YmM0 OTMwYzM5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNlc3Npb24vdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlCkBAIC0xLDkgKzEsOSBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtc2Vzc2lvbicKIHBrZ25hbWU9Z25vbWUtc2Vzc2lvbgotdmVyc2lv bj0zLjM0LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgot Y29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZF9qb3VybmFsPWZhbHNlIgorY29uZmlndXJlX2FyZ3M9 Ii1Ec3lzdGVtZF9qb3VybmFsPWZhbHNlIC1Ec3lzdGVtZF9zZXNzaW9uPWRpc2FibGUiCiBob3N0 bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZpZyB4bWx0byIKIG1ha2Vk ZXBlbmRzPSJlbG9naW5kLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgZ3RrKzMtZGV2ZWwganNv bi1nbGliLWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJJQ0UtZGV2ZWwgbGliU00tZGV2ZWwgbGli WHRzdC1kZXZlbCBzdGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbApAQCAtMTUsNCArMTUsOCBAQCBt YWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9n aXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNlc3Npb24iCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT1kNzgwMWZlMmQ1YTc1MWIxOWNiNTgwODE3NzEzMTZhNzZhYWJkNWM1NTBj ZDU4ZDRlNGM2YTVhNGVkMzU2NjYwCitjaGVja3N1bT03YmNjMGViMmNkYmE0YjNmNmQxYjQ1OWIz YTMwODczYjdiYjY1YjM4M2MxZjZhNWY2M2MzZTNiNWM3OTQzZDY3CisKK3Bvc3RfaW5zdGFsbCgp IHsKKwlybSAtcmYgJHtERVNURElSfS90bXAKK30KCkZyb20gMjc3YTBlYjlmNjIxYzFiYTBlZDdh MGJmZGU0ZjYzNWVkOTZiOWY4YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1MS8xMDJdIGdub21lLWluaXRpYWwtc2V0dXA6 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3RlbXBs YXRlIHwgMTEgKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3Rl bXBsYXRlIGIvc3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3RlbXBsYXRlCmluZGV4IDU1ZGYy ZjUzYzFkLi42M2FiZDNjNWM4MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1pbml0aWFsLXNl dHVwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1cC90ZW1wbGF0ZQpA QCAtMSwxMCArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtaW5pdGlhbC1zZXR1 cCcKIHBrZ25hbWU9Z25vbWUtaW5pdGlhbC1zZXR1cAotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9u PTMKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgotY29uZmln dXJlX2FyZ3M9Ii1Ec29mdHdhcmUtc291cmNlcz1kaXNhYmxlZCAtRHN5c3RlbWQ9ZmFsc2UiCi1o b3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCIKK2NvbmZpZ3VyZV9hcmdzPSIt RHNvZnR3YXJlLXNvdXJjZXM9ZGlzYWJsZWQgLURwYXJlbnRhbF9jb250cm9scz1kaXNhYmxlZAor IC1Ec3lzdGVtZD1mYWxzZSIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnbGliLWRldmVs IGdldHRleHQiCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYWNjb3VudHNzZXJ2 aWNlLWRldmVsIGxpYmdsaWItZGV2ZWwKICBnbm9tZS1kZXNrdG9wLWRldmVsIGNoZWVzZS1kZXZl bCBsaWJnd2VhdGhlci1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsCiAgZ25vbWUtb25saW5lLWFjY291 bnRzLWRldmVsIGdkbS1kZXZlbCBsaWJwd3F1YWxpdHktZGV2ZWwKQEAgLTE3LDQgKzE4LDQgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9EZXNp Z24vT1MvSW5pdGlhbFNldHVwIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0v JHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTcx ZjEwZWY2YjYzMWNkOTJmZmRlNzc0ZTQxMzBiMzJiMjQ5NGI0ZGY1ZWYyODgzNzVkOGIxOTU3ZWVh YmZhMQorY2hlY2tzdW09M2E4NTdhZWY1ZWZiNjg5ZjQwODYzMmRiODQ2OWFkMjc2MjBmNzYyZDk3 NzA3MGEzNjAzNWM1MjJjNmY4Mjc1OQoKRnJvbSA3YzNiNGJiMDlhMGM5YTc5OWRhNTUyMDQ1NWQy MGY3OTY0NDhmOTBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUyLzEwMl0geGRnLWRlc2t0b3AtcG9ydGFsLWd0azogdXBk YXRlIHRvIDEuOC4wCgotLS0KIHNyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1wbGF0 ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUg Yi9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUKaW5kZXggZGVlMGU0NjMz ODYuLjc1MTdkMWIzMmQ4IDEwMDY0NAotLS0gYS9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1n dGsvdGVtcGxhdGUKKysrIGIvc3JjcGtncy94ZGctZGVza3RvcC1wb3J0YWwtZ3RrL3RlbXBsYXRl CkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAneGRnLWRlc2t0b3AtcG9ydGFs LWd0aycKIHBrZ25hbWU9eGRnLWRlc2t0b3AtcG9ydGFsLWd0awotdmVyc2lvbj0xLjYuMAordmVy c2lvbj0xLjguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1h a2VkZXBlbmRzPSJwa2ctY29uZmlnIGxpYnhzbHQgZ2xpYi1kZXZlbCB4ZGctZGVza3RvcC1wb3J0 YWwgZ2V0dGV4dCIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iRHVuY2FlbiA8ZHVuY2Fl bkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vZ2l0aHViLmNvbS9mbGF0cGFrL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsiCiBkaXN0 ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9mbGF0cGFrLyR7cGtnbmFtZX0vcmVsZWFzZXMvZG93 bmxvYWQvJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 OTU2ZmQxNjYwODI0N2U3MTE5ZDRjNmQ5NWE2ZGM2NTc4ZGNlMjU3ZDJmMjcyZDAzYjM0OTg1NzIy NTdlMmY3NgorY2hlY2tzdW09YTUyNTI5ZWQzMjFlMDQ0Y2E5YWRjYTVlOTcxOGQ5YmE1N2M0MTRh MjYzNGRkNDEwOWRmMzQ0YzViOWVlZDc3ZgogCiBwb3N0X2luc3RhbGwoKSB7CiAJcm0gLXJmICIk e0RFU1RESVJ9L3Vzci9saWIvc3lzdGVtZCIKCkZyb20gZWEzODM4ZGRkMWQ4ODEwYTMxMTg3NzNh ZmEwYTFkZWQwNWNmNGRhZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6 MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1My8xMDJdIG5hdXRpbHVzOiB1cGRhdGUgdG8gMy4z OC4wCgotLS0KIHNyY3BrZ3MvbmF1dGlsdXMvdGVtcGxhdGUgfCAxMCArKysrKy0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbmF1dGlsdXMvdGVtcGxhdGUgYi9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlCmlu ZGV4IDUzN2E4NTE5NzNmLi5kZTk2OGYwMWQ3YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9uYXV0aWx1 cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbmF1dGlsdXMnCiBwa2duYW1lPW5hdXRpbHVzCi12ZXJz aW9uPTMuMzYuMS4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVz b24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgpAQCAtOCwxNiArOCwxNiBAQCBjb25maWd1cmVfYXJncz0i LUR0ZXN0cz1oZWFkbGVzcyAtRGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNl KSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGxpYnhzbHQgcGtnLWNvbmZp ZyIKIG1ha2VkZXBlbmRzPSJleGVtcGktZGV2ZWwgZ25vbWUtYXV0b2FyLWRldmVsIGdub21lLWRl c2t0b3AtZGV2ZWwgZ3RrKzMtZGV2ZWwKICBsaWJleGlmLWRldmVsIGxpYmdleGl2Mi1kZXZlbCBs aWJnbGliLWRldmVsIGxpYm5vdGlmeS1kZXZlbCBsaWJzZWNjb21wLWRldmVsCi0gbGliWDExLWRl dmVsIGxpYnhtbDItZGV2ZWwgdHJhY2tlci1kZXZlbCBnc3QtcGx1Z2lucy1iYXNlMS1kZXZlbCIK KyBsaWJYMTEtZGV2ZWwgbGlieG1sMi1kZXZlbCB0cmFja2VyMy1kZXZlbCBnc3QtcGx1Z2lucy1i YXNlMS1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBnc2V0dGluZ3MtZGVza3Rv cC1zY2hlbWFzIGhpY29sb3ItaWNvbi10aGVtZQotIHRyYWNrZXItbWluZXJzIHRyYWNrZXIiCi1j aGVja2RlcGVuZHM9InRyYWNrZXIiCisgdHJhY2tlcjMtbWluZXJzIHRyYWNrZXIzIgorY2hlY2tk ZXBlbmRzPSJ0cmFja2VyMyB0cmFja2VyMy1taW5lcnMgcHl0aG9uMy1nb2JqZWN0IGRidXMiCiBz aG9ydF9kZXNjPSJHTk9NRSBmaWxlIG1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0y LjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9OYXV0aWx1cyIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbjo6NH0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWY5MjUyZjUwODIxMWQ5ZjM2OGE0OWRi Njk3ODkwZjg5NWQwODBmMDk1OTBhZWNhZjMzODAzYTUxOWRlZjdiZGUKK2NoZWNrc3VtPWM2ZjMz MGY5ZjNmN2RiZjM1YWZiNmVjMjA5NGI3NDZlZTc1ZDVlOTI4YzhmNjc4MGRhYjI2NjcyMDg2Y2Nh YzAKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpG cm9tIGVkMWE5MjRjN2RhMzBkZTYzYmU3YTNmOTE5ZjJlZjg2MWFhMDIzZjUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTQv MTAyXSBnbm9tZS1tYXBzOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtbWFw cy90ZW1wbGF0ZSB8IDEwICsrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1tYXBzL3RlbXBs YXRlIGIvc3JjcGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlCmluZGV4IDAzMDBiZTYwNTk5Li4zMjg1 ZmFmMTdlNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZ25vbWUtbWFwcy90ZW1wbGF0ZQpAQCAtMSwxNiArMSwxNiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ25vbWUtbWFwcycKIHBrZ25hbWU9Z25vbWUtbWFwcwotdmVyc2lvbj0zLjM2LjEK K3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgotaG9zdG1ha2Vk ZXBlbmRzPSJnbGliLWRldmVsIGdvYmplY3QtaW50cm9zcGVjdGlvbiBpbnRsdG9vbCBwa2ctY29u ZmlnIEFwcFN0cmVhbSIKK2J1aWxkX2hlbHBlcj0iZ2lyIgoraG9zdG1ha2VkZXBlbmRzPSJnbGli LWRldmVsIGludGx0b29sIHBrZy1jb25maWcgQXBwU3RyZWFtIgogbWFrZWRlcGVuZHM9ImZvbGtz LWRldmVsIGdlb2NsdWUyLWRldmVsIGdlb2NvZGUtZ2xpYi1kZXZlbCBnanMtZGV2ZWwKLSBnbm9t ZS1kZXNrdG9wLWRldmVsIGxpYmNoYW1wbGFpbi1kZXZlbCByZXN0LWRldmVsIgorIGdub21lLWRl c2t0b3AtZGV2ZWwgbGliY2hhbXBsYWluLWRldmVsIHJlc3QtZGV2ZWwgbGliaGFuZHkxLWRldmVs IgogZGVwZW5kcz0iZ2VvY2x1ZTIgZ2ZiZ3JhcGggZ2pzIgogc2hvcnRfZGVzYz0iR05PTUUgbWFw cyBhcHBsaWNhdGlvbiIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvQXBwcy9NYXBzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 MWEzMmVmZDk2YWQ4OThmNzdhNjM2ZDJkMDQ2M2Q3NTcwMDliNGI4MTIyNTljODlmZmRjYjkxZDZh ZmMwNTJmOQotbm9jcm9zcz0iZXZvbHV0aW9uLWRhdGFzZXJ2ZXIgY3Jvc3MgZ2lyIGRvZXNuJ3Qg d29yayIKK2NoZWNrc3VtPTU1NzU4MzQwZWJkMDg0NjEwMjgzYmYxZjZmZWM2YzA0MjU1OWExODZl Yjg2OTljMDU2YTIyZGZlZjFkOTdmOTkKCkZyb20gOTRkOTQ3ODRmZjRhYjBkZWJhM2YyOWQzNDU3 N2FkOTAxNzBkMGM5ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDA1NS8xMDJdIGV2b2x1dGlvbjogdXBkYXRlIHRvIDMuMzgu MAoKLS0tCiAuLi4vZXZvbHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UgfCA0 NSAtLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRl Y3QuaCAgICAgICAgfCAgNSAtLS0KIHNyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRlICAgICAgICAg ICAgICAgICAgICB8IDM1ICsrKy0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2Vy dGlvbnMoKyksIDc4IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZXZv bHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaAoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UgYi9zcmNwa2dz L2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA4YmU1NWI0MjA3MC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9l dm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZQorKysgL2Rldi9udWxsCkBA IC0xLDQ1ICswLDAgQEAKLSMgVGhpcyBmaWxlIHdhcyBnZW5lcmF0ZWQgYnkgQ01ha2UgYmVjYXVz ZSBpdCBkZXRlY3RlZCBUUllfUlVOKCkgY29tbWFuZHMKLSMgaW4gY3Jvc3Njb21waWxpbmcgbW9k ZS4gSXQgd2lsbCBiZSBvdmVyd3JpdHRlbiBieSB0aGUgbmV4dCBDTWFrZSBydW4uCi0jIENvcHkg aXQgdG8gYSBzYWZlIGxvY2F0aW9uLCBzZXQgdGhlIHZhcmlhYmxlcyB0byBhcHByb3ByaWF0ZSB2 YWx1ZXMKLSMgYW5kIHVzZSBpdCB0aGVuIHRvIHByZXNldCB0aGUgQ01ha2UgY2FjaGUgKHVzaW5n IC1DKS4KLQotCi0jIF9jb3JyZWN0X2ljb252X0VYSVRDT0RFCi0jICAgIGluZGljYXRlcyB3aGV0 aGVyIHRoZSBleGVjdXRhYmxlIHdvdWxkIGhhdmUgYmVlbiBhYmxlIHRvIHJ1biBvbiBpdHMKLSMg ICAgdGFyZ2V0IHBsYXRmb3JtLiBJZiBzbywgc2V0IF9jb3JyZWN0X2ljb252X0VYSVRDT0RFIHRv Ci0jICAgIHRoZSBleGl0IGNvZGUgKGluIG1hbnkgY2FzZXMgMCBmb3Igc3VjY2VzcyksIG90aGVy d2lzZSBlbnRlciAiRkFJTEVEX1RPX1JVTiIuCi0jIFRoZSBfY29ycmVjdF9pY29udl9DT01QSUxF RCB2YXJpYWJsZSBob2xkcyB0aGUgYnVpbGQgcmVzdWx0IGZvciB0aGlzIFRSWV9SVU4oKS4KLSMg Ci0jIFNvdXJjZSBmaWxlICAgOiAvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYu MC9idWlsZC9DTWFrZUZpbGVzL0NNYWtlVG1wL3NyYy5jCi0jIEV4ZWN1dGFibGUgICAgOiAvYnVp bGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9DTWFrZUZpbGVzL2NtVENf MzE1ZWUtX2NvcnJlY3RfaWNvbnZfRVhJVENPREUKLSMgUnVuIGFyZ3VtZW50cyA6IAotIyAgICBD YWxsZWQgZnJvbTogWzJdCS91c3Ivc2hhcmUvY21ha2UtMy45L01vZHVsZXMvQ2hlY2tDU291cmNl UnVucy5jbWFrZQotIyAgICAgICAgICAgICAgICAgWzFdCS9idWlsZGRpci9ldm9sdXRpb24tZGF0 YS1zZXJ2ZXItMy4yNi4wL0NNYWtlTGlzdHMudHh0Ci0KLXNldCggX2NvcnJlY3RfaWNvbnZfRVhJ VENPREUgCi0gICAgIDAKLSAgICAgQ0FDSEUgSU5URVJOQUwgIlJlc3VsdCBmcm9tIFRSWV9SVU4i IEZPUkNFKQotc2V0KF9jb3JyZWN0X2ljb252X0VYSVRDT0RFX19UUllSVU5fT1VUUFVUCi0gICAg IDAKLSAgICAgQ0FDSEUgSU5URVJOQUwgIlJlc3VsdCBmcm9tIFRSWV9SVU4iIEZPUkNFKQotCi0K LSMgSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RFCi0jICAgIGluZGljYXRlcyB3aGV0aGVyIHRoZSBl eGVjdXRhYmxlIHdvdWxkIGhhdmUgYmVlbiBhYmxlIHRvIHJ1biBvbiBpdHMKLSMgICAgdGFyZ2V0 IHBsYXRmb3JtLiBJZiBzbywgc2V0IEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERSB0bwotIyAgICB0 aGUgZXhpdCBjb2RlIChpbiBtYW55IGNhc2VzIDAgZm9yIHN1Y2Nlc3MpLCBvdGhlcndpc2UgZW50 ZXIgIkZBSUxFRF9UT19SVU4iLgotIyBUaGUgSEFWRV9MS1NUUkZUSU1FX0NPTVBJTEVEIHZhcmlh YmxlIGhvbGRzIHRoZSBidWlsZCByZXN1bHQgZm9yIHRoaXMgVFJZX1JVTigpLgotIyAKLSMgU291 cmNlIGZpbGUgICA6IC9idWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL2J1aWxk L0NNYWtlRmlsZXMvQ01ha2VUbXAvc3JjLmMKLSMgRXhlY3V0YWJsZSAgICA6IC9idWlsZGRpci9l dm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL2J1aWxkL0NNYWtlRmlsZXMvY21UQ19kMjg5Ny1I QVZFX0xLU1RSRlRJTUVfRVhJVENPREUKLSMgUnVuIGFyZ3VtZW50cyA6IAotIyAgICBDYWxsZWQg ZnJvbTogWzJdCS91c3Ivc2hhcmUvY21ha2UtMy45L01vZHVsZXMvQ2hlY2tDU291cmNlUnVucy5j bWFrZQotIyAgICAgICAgICAgICAgICAgWzFdCS9idWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2 ZXItMy4yNi4wL0NNYWtlTGlzdHMudHh0Ci0KLXNldCggSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RF IAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JD RSkKLXNldCggSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RFX19UUllSVU5fT1VUUFVUCi0gICAgIDAK LSAgICAgQ0FDSEUgSU5URVJOQUwgIlJlc3VsdCBmcm9tIFRSWV9SVU4iIEZPUkNFKQotCmRpZmYg LS1naXQgYS9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaCBiL3NyY3BrZ3Mv ZXZvbHV0aW9uL2ZpbGVzL2ljb252LWRldGVjdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA0NmY0NzZkNWJjOS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9ldm9sdXRpb24vZmls ZXMvaWNvbnYtZGV0ZWN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS8qIFRoaXMg aXMgYW4gYXV0by1nZW5lcmF0ZWQgaGVhZGVyLCBETyBOT1QgRURJVCEgKi8KLQotI2RlZmluZSBJ Q09OVl9JU09fRF9GT1JNQVQgImlzby0lZC0lZCIKLSNkZWZpbmUgSUNPTlZfSVNPX1NfRk9STUFU ICJpc28tJWQtJXMiCi0jZGVmaW5lIElDT05WXzEwNjQ2ICJpc28tMTA2NDYiCmRpZmYgLS1naXQg YS9zcmNwa2dzL2V2b2x1dGlvbi90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRl CmluZGV4IDU2MGVkOTNkYTAyLi5hYTNmYTM0YmM0YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9ldm9s dXRpb24vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUKQEAgLTEsNTQg KzEsMzMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2b2x1dGlvbicKIHBrZ25hbWU9ZXZvbHV0 aW9uCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPWNtYWtlCitidWlsZF9oZWxwZXI9ImdpciBxZW11IgogY29uZmlndXJlX2FyZ3M9Ii1ERU5B QkxFX0FVVE9BUj1PRkYgLURFTkFCTEVfTElCQ1JZUFRVST1PRkYgLURFTkFCTEVfR1RLU1BFTEw9 T0ZGCi0gLURFTkFCTEVfVEVYVF9ISUdITElHSFQ9T0ZGIC1ERU5BQkxFX1BTVF9JTVBPUlQ9T0ZG Ci0gLURFTkFCTEVfV0VBVEhFUj0kKHZvcHRfaWYgZ2lyIE9OIE9GRikiCisgLURFTkFCTEVfVEVY VF9ISUdITElHSFQ9T0ZGIC1ERU5BQkxFX1BTVF9JTVBPUlQ9T0ZGIC1ERU5BQkxFX1dFQVRIRVI9 T04iCiBob3N0bWFrZWRlcGVuZHM9Imdub21lLWRvYy11dGlscyBnb2JqZWN0LWludHJvc3BlY3Rp b24gaW50bHRvb2wgaXRzdG9vbAotIHBrZy1jb25maWciCisgcGtnLWNvbmZpZyBnbGliLWRldmVs IgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGNsdXR0ZXItZ3RrLWRldmVsIGVu Y2hhbnQyLWRldmVsCiAgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIGdzcGVsbC1kZXZlbCBn dGtodG1sLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsCi0gJCh2b3B0X2lmIGdpciBsaWJnd2VhdGhl ci1kZXZlbCkgbGlibm90aWZ5LWRldmVsIHdlYmtpdDJndGstZGV2ZWwgeXRuZWYtZGV2ZWwKKyBs aWJnd2VhdGhlci1kZXZlbCBsaWJub3RpZnktZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB5dG5lZi1k ZXZlbAogIGdub21lLWRlc2t0b3AtZGV2ZWwiCiBkZXBlbmRzPSJnbm9tZS1rZXlyaW5nIgogc2hv cnRfZGVzYz0iSW50ZWdyYXRlZCBtYWlsLCBhZGRyZXNzYm9vayBhbmQgY2FsZW5kYXJpbmcgZm9y IEdOT01FIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyLCBMR1BMLTMuMC1vci1sYXRlciwgR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXZvbHV0aW9u IgotY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvZXZv bHV0aW9uL2dub21lLTMtMzYvTkVXUyIKK2NoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNl cmNvbnRlbnQuY29tL0dOT01FL2V2b2x1dGlvbi9nbm9tZS0zLTM4L05FV1MiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT04NzNhY2YxZGJlYzM4ZTY3ZTE2OTA2NDY0NWFjM2E5Yjlh OTQ0YmQyYjYzMzE2MWRmNmU1ZjA1NzAwZTM2Y2I4CitjaGVja3N1bT1mODFjYzQwZjU0YWEyZDA1 OWRhNGYzYTk0ZWIwOTM2MmU4MTUxMzMwNmM5NzRhNDFjYTc4OTViOWM4OTU3YzVkCiBzaGxpYl9w cm92aWRlcz0ibGliZXZvbHV0aW9uLWNhbGVuZGFyLnNvIGxpYmV2b2x1dGlvbi11dGlsLnNvIGxp YmVtYWlsLWVuZ2luZS5zbwogIGxpYmV2b2x1dGlvbi1tYWlsLnNvIGxpYmV2b2x1dGlvbi1zaGVs bC5zbyIKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0 aGVuCiAJYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCi1lbHNlCi0JaG9zdG1ha2VkZXBlbmRz Kz0iIGdsaWItZGV2ZWwiCiBmaQogCi0jIGNtYWtlIHBlcmZvbXJtcyAyIGNoZWNrcyB1c2luZyBi aW5hcnkgcnVudGltZSwgYWJvdXQgaWNvbnYgYW5kIHNmcnRpbWUuCi0jIG11c2wgKDEuMS4xNikg ZG9lcyBub3Qgc3VwcG9ydCAiSVNPLTIwMjItSlAiIGVuY29kaW5nIChzZWUgaXRzIHJvYWRtYXAp LAotIyBhbHRob3VnaCBldm9sdXRpb24tZGF0YS1zZXJ2ZXIgaXMgZmluZSB3aXRoIG11c2wuCi0j IElmIGNyb3NzYnVpbGQsIGNtYWtlIGxldCBkaXNhYmxpbmcgcnVudGltZSBjaGVja3MgdmlhIHNw ZWNpZmljIGRpcmVjdGl2ZXMuCi0jIHRlc3QgaWNvbnYtZGV0ZWN0LmMgYWxzbyBnZW5lcmF0ZXMg aWNvbnYtZGV0ZWN0LmggdGhhdCBpcyByZXF1aXJlZCBmb3IgYnVpbGQuCi0jIFNvIGNvbXBsZXRs eSBkaXNhYmxlIHRlc3QgZnJvbSBpY29udi1kZXRlY3QuYyAoY21ha2UucGF0Y2ggZmlsZSkgYW5k Ci0jIHVzZSBhIGNtYWtlIGNhY2hlIGZpbGUgb24gY3Jvc3NidWlsZCB0byBkaXNhYmxlIHNmcnRp bWUgcnVubmluZyB0ZXN0LgotaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCi0JY29uZmlndXJl X2FyZ3MrPSIgLUMgZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZSIKLWZpCi0KLXByZV9jb25maWd1 cmUoKSB7Ci0JbWtkaXIgLXAgYnVpbGQKLQljcCAke0ZJTEVTRElSfS9pY29udi1kZXRlY3QuaCAk e3dya3NyY30vYnVpbGQvLgotCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCQljcCAke0ZJ TEVTRElSfS9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlICR7d3Jrc3JjfS9idWlsZC8uCi0JZmkK LX0KLQogZXZvbHV0aW9uLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0id2Via2l0Mmd0ay1k ZXZlbCBndGsrMy1kZXZlbCBsaWJnbGliLWRldmVsIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZl bAogCSBndGtodG1sLWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK CkZyb20gMGFjNzI3ODk2NTA0YjA1YjE1YTkyZGU5MjM2YjYyMjNhYTMwOTI2OCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1 Ni8xMDJdIGV2b2x1dGlvbi1ld3M6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9ldm9s dXRpb24tZXdzL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24tZXdz L3RlbXBsYXRlIGIvc3JjcGtncy9ldm9sdXRpb24tZXdzL3RlbXBsYXRlCmluZGV4IDRmZjgxMTY0 NjZjLi45OGVlM2E3N2ZlNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9ldm9sdXRpb24tZXdzL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2b2x1dGlvbi1ld3MnCiBwa2duYW1lPWV2b2x1dGlvbi1l d3MKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRExJQkVYRUNfSU5TVEFMTF9ESVI9L3Vzci9saWIv ZXZvbHV0aW9uIgpAQCAtMTAsNiArMTAsNiBAQCBzaG9ydF9kZXNjPSJNUyBFeGNoYW5nZSBpbnRl Z3JhdGlvbiB0aHJvdWdoIEV4Y2hhbmdlIFdlYiBTZXJ2aWNlcyIKIG1haW50YWluZXI9IlBldGVy IEt1Y2hhciA8bWFzYWpAZ214LmNvbT4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXZvbHV0aW9uIgotY2hhbmdlbG9n PSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvZXZvbHV0aW9uLWV3cy9n bm9tZS0zLTM2L05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50 LmNvbS9HTk9NRS9ldm9sdXRpb24tZXdzL2dub21lLTMtMzgvTkVXUyIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPWQwODgzYzdkMjI3ODI3Y2M1YzQ0NjhiN2UzMWEzZWUzNzBiY2Q3 ZDQxYTRkYmI5NTBhYjVkYjM2Yzk1NTFhYzEKK2NoZWNrc3VtPTU5YmY1OWNhYmI5ZDE5M2Q5MTA3 Njk3MmRkOGE2ZTcxZWJmMzRjN2JmYWQwMWNkNjk1NDI5NzM0N2EzMDc3YjMKCkZyb20gZjhiNzY3 N2NjNTlkM2VjMWY3NjE3ZWE5MzQ3YjdhNWJiMTFlYTUxNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1Ny8xMDJdIHB5dGhv bjMtYXRzcGk6IHVwZGF0ZSB0byAyLjM4LjAKCi0tLQogc3JjcGtncy9weXRob24zLWF0c3BpL3Rl bXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24zLWF0c3BpL3RlbXBsYXRlIGIv c3JjcGtncy9weXRob24zLWF0c3BpL3RlbXBsYXRlCmluZGV4IGEzM2EzNzRmZTE4Li4yM2ZhOTg5 MzRlNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24zLWF0c3BpL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3B5dGhvbjMtYXRzcGknCiBwa2duYW1lPXB5dGhvbjMtYXRzcGkKLXZlcnNpb249 Mi4zMi4xCi1yZXZpc2lvbj00Cit2ZXJzaW9uPTIuMzguMAorcmV2aXNpb249MQogYXJjaHM9bm9h cmNoCiB3cmtzcmM9InB5YXRzcGktJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKQEAgLTEzLDQgKzEzLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3B5YXRzcGkyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9L3B5YXRzcGkvJHt2ZXJzaW9uJS4qfS9weWF0c3BpLSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09ODQ5NTRhNWJiZWFjYzgzNjQzZjA1Nzc4ZDhiZWFmY2FiODIwOGUxMWIzOWIyNDYzN2I0 YzRkZDFmODYyMDM4OQorY2hlY2tzdW09ZmY4MDkzMTJmZDBjMmY2MWUxOTFjMTgxYTFhNjM4YTMw YjU3OWI5MWI2ODJjZmI1YTA1NTM1YTU1MjY1YjQzZAoKRnJvbSA1MWI3MzhlMDA0MGNlNDAwYzAy NGMwOGY0OTEyYjJmM2IxNGIxNTU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAx ODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDU4LzEwMl0gcHl0aG9uLWF0c3BpOiB1cGRh dGUgdG8gMi4zOC4wCgotLS0KIHNyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlIHwgNiArKyst LS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9weXRob24tYXRzcGkvdGVtcGxhdGUgYi9zcmNwa2dzL3B5dGhvbi1h dHNwaS90ZW1wbGF0ZQppbmRleCAwMTQxZDk3Zjg1ZC4uNzUwNWMzMmFkNjAgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uLWF0c3Bp L3RlbXBsYXRlCkBAIC0xLDggKzEsOCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncHl0aG9uLWF0 c3BpJwogIyBLZWVwIHB5dGhvbjMtYXRzcGkgaW4gc3luYwogcGtnbmFtZT1weXRob24tYXRzcGkK LXZlcnNpb249Mi4zMi4xCi1yZXZpc2lvbj00Cit2ZXJzaW9uPTIuMzguMAorcmV2aXNpb249MQog YXJjaHM9bm9hcmNoCiB3cmtzcmM9InB5YXRzcGktJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKQEAgLTE0LDQgKzE0LDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3B5YXRzcGkyIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9L3B5YXRzcGkvJHt2ZXJzaW9uJS4qfS9weWF0c3BpLSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09ODQ5NTRhNWJiZWFjYzgzNjQzZjA1Nzc4ZDhiZWFmY2FiODIwOGUxMWIz OWIyNDYzN2I0YzRkZDFmODYyMDM4OQorY2hlY2tzdW09ZmY4MDkzMTJmZDBjMmY2MWUxOTFjMTgx YTFhNjM4YTMwYjU3OWI5MWI2ODJjZmI1YTA1NTM1YTU1MjY1YjQzZAoKRnJvbSBlZmQ5MTZlOGU1 MTFmZWFiMWQ1NGFkMjQ5NjU3MmFlOGRhOTY4MzgwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBB dWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDU5LzEwMl0gb3JjYTogdXBk YXRlIHRvIDMuMzguMCwgZHJvcCBub2FyY2gKCi0tLQogc3JjcGtncy9vcmNhL3RlbXBsYXRlIHwg NSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL29yY2EvdGVtcGxhdGUgYi9zcmNwa2dzL29yY2EvdGVtcGxh dGUKaW5kZXggZjcwMjAyZTZkNzYuLjM4ZTkyMzQ2Yjg2IDEwMDY0NAotLS0gYS9zcmNwa2dzL29y Y2EvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vcmNhL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnb3JjYScKIHBrZ25hbWU9b3JjYQotdmVyc2lvbj0zLjM2LjEK K3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCi1hcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0iaW50bHRvb2wgaXRzdG9vbCBwa2ctY29uZmln IgogbWFrZWRlcGVuZHM9ImF0LXNwaTItYXRrLWRldmVsIGxpYmxvdWlzLWRldmVsIHB5dGhvbjMt Z29iamVjdC1kZXZlbCIKQEAgLTEzLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQg PGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9PcmNhIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09YzFhYzY0OGI2YmUzMTQ4OGMyNmZmOTU5MTE0Mjg3ODY5ZGY5 Y2UzY2EyMTk5OWU0MGRlZDg3NzQxYzk4ODMxZgorY2hlY2tzdW09MWMzMjc5ZDc5ODk4ZGIxMGEx MDViY2I3MDViNWE0MDQyYjFiNTFhOWMwNTdhNmJkMGZmZDY1ZGFjMjM1NmZlZQogCiBpZiBbICIk Q1JPU1NfQlVJTEQiIF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMrPSIgcHl0aG9uMy1nb2JqZWN0 LWRldmVsIgoKRnJvbSBlMWFlMDQ0NGFmNzczZDI3Yjc3OWRlNDQ4NzI4ZjM5NmM2M2YwZTU2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDYwLzEwMl0gZ25vbWUtd2VhdGhlcjogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21lLXdl YXRoZXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUg Yi9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUKaW5kZXggZDMwYmU5YmYxOTIuLmMwMjhl NDZiYTY1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtd2VhdGhlcicKIHBrZ25hbWU9Z25vbWUtd2VhdGhlcgogdmVyc2lv bj0zLjM2LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVp bGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIGl0c3Rv b2wgZ2xpYi1kZXZlbCBnanMiCgpGcm9tIGM2YmM1NjZmN2MxOWQyM2YzZWFlODQxZjdhMjdjYWEw N2ZjNWRhYmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAw ClN1YmplY3Q6IFtQQVRDSCAwNjEvMTAyXSB2dGUzOiB1cGRhdGUgdG8gMC42Mi4wCgotLS0KIHNy Y3BrZ3MvdnRlMy90ZW1wbGF0ZSB8IDE5ICsrKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvdnRlMy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdnRlMy90ZW1wbGF0ZQppbmRleCA2MTE2YjNjYzYy MS4uNDFmOWY0ZTdlOWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdnRlMy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL3Z0ZTMvdGVtcGxhdGUKQEAgLTEsMjkgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ3Z0ZTMnCiBwa2duYW1lPXZ0ZTMKLXZlcnNpb249MC42MC4zCit2ZXJzaW9uPTAuNjIuMAog cmV2aXNpb249MQogd3Jrc3JjPSJ2dGUtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPW1lc29uCiBi dWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGJfbmRlYnVnPWZhbHNlIC1EZ2ly PSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkKLSAtRHZhcGk9JCh2b3B0X2lmIHZhbGEgdHJ1ZSBm YWxzZSkgLURiX2x0bz1mYWxzZSAtRF9zeXN0ZW1kPWZhbHNlIgorY29uZmlndXJlX2FyZ3M9Ii1E Yl9uZGVidWc9ZmFsc2UgLURiX2x0bz1mYWxzZSAtRF9zeXN0ZW1kPWZhbHNlCisgJCh2b3B0X2Jv b2wgZ2lyIGdpcikgJCh2b3B0X2Jvb2wgZ2lyIHZhcGkpIgogaG9zdG1ha2VkZXBlbmRzPSJnbGli LWRldmVsIGdub21lLWRvYy11dGlscyBncGVyZiBpbnRsdG9vbCBwa2ctY29uZmlnCi0gJCh2b3B0 X2lmIHZhbGEgdmFsYSkiCi1tYWtlZGVwZW5kcz0iZ251dGxzLWRldmVsIGd0ayszLWRldmVsIHBj cmUyLWRldmVsICQodm9wdF9pZiB2YWxhIHZhbGEtZGV2ZWwpIgotZGVwZW5kcz0idnRlIgorICQo dm9wdF9pZiBnaXIgdmFsYSkiCittYWtlZGVwZW5kcz0iZ251dGxzLWRldmVsIGd0ayszLWRldmVs IHBjcmUyLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYS1kZXZlbCkiCiBzaG9ydF9kZXNjPSJUZXJt aW5hbCB3aWRnZXQgd2l0aCBpbXByb3ZlZCBhY2Nlc3NpYmlsaXR5IGFuZCBJMThOIHN1cHBvcnQi CiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIsIExHUEwtMy4wLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9UZXJtaW5hbC9WVEUiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdnRlLyR7dmVyc2lvbiUuKn0vdnRlLSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09ZmViNzZlMTE4MWEzNTdkODYxMTJkNDQ3YTA4ZDEyN2UyMDgxNDM4 ZGY3NmVjZTgzMjQzYjE4NjA5ZGQ5ODIyYQorY2hlY2tzdW09NGQyZDI0NmVkNDdmMDhjYzczZjY0 NzFhYThlOWYzNzg5OThiN2QwZjdkY2IwYzQzM2YyOWRhNTgzOWRiYjAxNgogCiAjIFN1cHByZXNz IHdhcm5pbmdzIGFzIGVycm9ycyBmb3IgTlVMTCBmb3JtYXQgc3RyaW5ncyAobXVzbCBsaWJjKQog Q1hYRkxBR1M9Ii1Xbm8tZXJyb3I9Zm9ybWF0PSIKIAogIyBQYWNrYWdlIGJ1aWxkIG9wdGlvbnMK LWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFs YSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBw cmVfYnVpbGQoKSB7CiAJZXhwb3J0IEdJUl9FWFRSQV9MSUJTX1BBVEg9IiR7d3Jrc3JjfS9zcmMv LmxpYnMiCkBAIC0zOCw4ICszNyw2IEBAIHZ0ZTMtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUg InVzci9saWIvKi5zbyIKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZt b3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIg XTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDNmY2U0NzA0 MjA5MGJkMzdkOGUxOTNjNTA0MWRkMmIyNjJmZWFhNzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEz IEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNjIvMTAyXSBnbm9tZS10 ZXJtaW5hbDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLXRlcm1pbmFsL3Rl bXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXRlcm1pbmFsL3RlbXBsYXRl IGIvc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0ZQppbmRleCBiZjNkNWJjZGQ0Mi4uMTI2 YmE1OTU2ZmQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtdGVybWluYWwnCiBwa2duYW1lPWdub21lLXRlcm1pbmFs Ci12ZXJzaW9uPTMuMzYuMS4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMgLS13aXRo LW5hdXRpbHVzLWV4dGVuc2lvbiIKIGhvc3RtYWtlZGVwZW5kcz0iYXBwZGF0YS10b29scyBnbGli LWRldmVsIGludGx0b29sIGl0c3Rvb2wKLSBwa2ctY29uZmlnIgorIHBrZy1jb25maWcgZG9jYm9v ay14c2wiCiBtYWtlZGVwZW5kcz0iZGNvbmYtZGV2ZWwgZ25vbWUtc2hlbGwgZ3NldHRpbmdzLWRl c2t0b3Atc2NoZW1hcy1kZXZlbAogIG5hdXRpbHVzLWRldmVsIHZ0ZTMtZGV2ZWwiCiBkZXBlbmRz PSJkZXNrdG9wLWZpbGUtdXRpbHMiCkBAIC0xMyw4ICsxMyw4IEBAIHNob3J0X2Rlc2M9IkdOT01F IHRlcm1pbmFsIGVtdWxhdG9yIGFwcGxpY2F0aW9uIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQg PGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdGREwt MS4zLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1Rlcm1pbmFs IgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uOjA6NH0vJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWYzZDcwOGExZTc2ZDc3YzFjODVi MTI2ZjZlMDAzMjIwYTE1ZDRhNDZhNTBmZDgwNzBlMWEzYWFiZTY3OGEzNzYKK2Rpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKK2NoZWNrc3VtPTBhMGZjN2E4YjM4M2M2ZmZkNjE0NjliZTFkZWE1YmE2M2Nm ZmFkODEyOTIxNzgwZTdmYWQ0MGMyZTJhZTU0ZjUKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKIGlmIFsg IiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJvbSAxYmY0NGJhYWVjZDc5OTMyYWU5MTY2MzIyNDAz YzE2NGJhNjU5MTE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDYzLzEwMl0gZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3M6 IHVwZGF0ZSB0byAzLjM2LjIKCi0tLQogc3JjcGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9j cy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWdldHRpbmctc3RhcnRlZC1k b2NzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0 ZQppbmRleCA1YmVjOTM0OTBiYS4uYmVkOWI2OTYxNjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25v bWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1nZXR0 aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzJwogcGtnbmFtZT1nbm9tZS1nZXR0aW5n LXN0YXJ0ZWQtZG9jcwotdmVyc2lvbj0zLjM0LjAKK3ZlcnNpb249My4zNi4yCiByZXZpc2lvbj0x CiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTExLDQgKzExLDQg QEAgbGljZW5zZT0iQ0MtQlktU0EtMy4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21l Lm9yZy9HTk9NRS9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcyIKICNjaGFuZ2Vsb2c9Imh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy9yYXcv bWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mNzBjZTJjYTIz YWQ3ODYyMTVmM2M5MmVjODU3ODNlM2FhYmVkMDdlNGY3ODcwMGZhMjdmOWIyY2Y3NmUwM2RiCitj aGVja3N1bT0wNDk0Yjg5MTNhOTQ2YjY0NTA1MzZlMTIwYzE1NGFiZDI5MjM4ZWJiYTJmNTI3MzQ1 OTJiMWY2NDVlNTIxZGM2CgpGcm9tIGE5NzMyYmRiYmFlOTFlYmIzODczYzcxZDJiMzJlZWYzOWVi NTBiNzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwNjQvMTAyXSBnbm9tZS11c2VyLWRvY3M6IHVwZGF0ZSB0byAzLjM4LjAs IGRyb3Agbm9hcmNoCgotLS0KIHNyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlIHwgNSAr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25v bWUtdXNlci1kb2NzL3RlbXBsYXRlCmluZGV4IDRjYjU1Mzk2ZTM3Li5mOTk0MmUyNDg0MyAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nbm9tZS11c2VyLWRvY3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n bm9tZS11c2VyLWRvY3MvdGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdnbm9tZS11c2VyLWRvY3MnCiBwa2duYW1lPWdub21lLXVzZXItZG9jcwotdmVyc2lvbj0z LjM0LjAKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCi1hcmNocz1ub2FyY2gKIGJ1aWxkX3N0 eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIGl0 c3Rvb2wgZ25vbWUtZG9jLXV0aWxzIgogbWFrZWRlcGVuZHM9InllbHAiCkBAIC0xMyw0ICsxMiw0 IEBAIGxpY2Vuc2U9IkNDLUJZLTMuMCIKIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vR05P TUUvZ25vbWUtdXNlci1kb2NzIgogI2NoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNv bnRlbnQuY29tL0dOT01FL2dub21lLXVzZXItZG9jcy9tYXN0ZXIvTkVXUyIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPThmOTkwN2ZmMTVmZmY5N2RhNzVlY2U2NDVjYzg2NzY2NzAz YWM1NGQ3MTZkMjU1NjNiYTY3ZmZlZDFhZjI0ZWQKK2NoZWNrc3VtPTM4ZDNkYjViNWRjNTkxMjgx MmEyYzZjYjI5NzY1YmZiMzkyNDJjZWRjZDdlZTM0N2RmOThmY2E3NzdkY2VlOGEKCkZyb20gYmZi NzUyNWMwNTVlNDBhMDMwYWYzMmM2MjI3YjcwYjFlY2NlNDlmOSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA2NS8xMDJdIGdu b21lLWVwdWItdGh1bWJuYWlsZXI6IHVwZGF0ZSB0byAxLjYKCi0tLQogc3JjcGtncy9nbm9tZS1l cHViLXRodW1ibmFpbGVyL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZXB1 Yi10aHVtYm5haWxlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90 ZW1wbGF0ZQppbmRleCBiMTZlNzA1NDc1Zi4uYzZlMWMwMmI5ZDMgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWVw dWItdGh1bWJuYWlsZXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdnbm9tZS1lcHViLXRodW1ibmFpbGVyJwogcGtnbmFtZT1nbm9tZS1lcHViLXRodW1ibmFp bGVyCi12ZXJzaW9uPTEuNQordmVyc2lvbj0xLjYKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKQEAgLTEwLDQgKzEwLDQg QEAgbWFpbnRhaW5lcj0iQWxpZiBSYWNobWF3YWRpIDxhcmNoQHN1Ym9zaXRvLmNvbT4iCiBsaWNl bnNlPSJHUEwtMyIKIGhvbWVwYWdlPSJodHRwczovL2dpdC5nbm9tZS5vcmcvYnJvd3NlL2dub21l LWVwdWItdGh1bWJuYWlsZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zMDgyMTBm NTgwMDIxOWY2NGNhZTQ4MjhlNTliYjhlNmU0YzUzYjg4ODA0OGNmNDg3MjIxYWViNDMzN2Q3OTFh CitjaGVja3N1bT1iNTAyNDIwZDliMDJlYTBiMGZjNzk4NmVmNWEwOTFhMTJiMjI4NmJlMTRmZWQ5 ZTQ3NTk0ZmU5ZmEwYzU4OThlCgpGcm9tIDczMDRhOTExYzI1ZWY5MzdlZWI2NDRhYWNmMTdiMzg5 YmJhMjQyMzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAw ClN1YmplY3Q6IFtQQVRDSCAwNjYvMTAyXSBnbm9tZS1ib29rczogYnVtcAoKLS0tCiBzcmNwa2dz L2dub21lLWJvb2tzL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1ib29rcy90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYm9va3MvdGVtcGxhdGUKaW5kZXggMTE0YjllMDM0YzIuLjFk NDk3NGZlMTgzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ25vbWUtYm9va3MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZS1ib29rcycKIHBrZ25hbWU9Z25vbWUtYm9va3MKIHZlcnNpb249My4z NC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0 eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgdmFsYSBnbGliLWRldmVsIGxp YnJzdmcgZG9jYm9vay14c2wgbGlieHNsdAoKRnJvbSA4ZTBjM2EwNDhjNGVmNDk5MzI5NGU2ZGM4 NTg3ZThiZTgzNmY2M2Y1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODow OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDY3LzEwMl0gZ25vbWUtY2hhcmFjdGVyczogYnVtcAoK LS0tCiBzcmNwa2dzL2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNoYXJhY3RlcnMvdGVt cGxhdGUKaW5kZXggODk4NjhmNGJjMDQuLmFjMjY0ZTUxYTZhIDEwMDY0NAotLS0gYS9zcmNwa2dz L2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJz L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtY2hh cmFjdGVycycKIHBrZ25hbWU9Z25vbWUtY2hhcmFjdGVycwogdmVyc2lvbj0zLjM0LjAKLXJldmlz aW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIK IGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnanMgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25m aWciCgpGcm9tIDA4NDQwM2UzYThhNDMwY2NmOTQ1YjEwNGE4OWZiNjYxNzZlMTUxMTIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRD SCAwNjgvMTAyXSBnbm9tZS1kb2N1bWVudHM6IGJ1bXAKCi0tLQogc3JjcGtncy9nbm9tZS1kb2N1 bWVudHMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ25vbWUtZG9jdW1lbnRzL3RlbXBsYXRlCmluZGV4IDk3YjUzZDYzNWQ3Li43 ZTQ1YjgyNWU3MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1kb2N1bWVudHMnCiBwa2duYW1lPWdub21lLWRvY3Vt ZW50cwogdmVyc2lvbj0zLjM0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX2hlbHBl cj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14c2wg Z2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWcgZ2xpYi1kZXZlbCBsaWJ4c2x0IGdkay1waXhidWYK CkZyb20gYTU2NGFmZWJmOTAwYTdiMjlmMDRhZWM3NzIwMjAwYTQxNjkzMjM4ZCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA2 OS8xMDJdIGdub21lLWZvbnQtdmlld2VyOiBidW1wCgotLS0KIHNyY3BrZ3MvZ25vbWUtZm9udC12 aWV3ZXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWZvbnQtdmlld2VyL3RlbXBs YXRlIGIvc3JjcGtncy9nbm9tZS1mb250LXZpZXdlci90ZW1wbGF0ZQppbmRleCA2ZDAzNTM2NmQ0 NC4uZjc0ZmNiY2IwMDAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1mb250LXZpZXdlci90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWZvbnQtdmlld2VyJwogcGtnbmFtZT1n bm9tZS1mb250LXZpZXdlcgogdmVyc2lvbj0zLjM0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIK IGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZl bCIKIG1ha2VkZXBlbmRzPSJmb250Y29uZmlnLWRldmVsIGZyZWV0eXBlLWRldmVsIGdsaWItZGV2 ZWwgZ3RrKzMtZGV2ZWwKCkZyb20gOWEyOThiOGM5ZGQyN2U4NjNkMjM5YjFkNGY3NjhhMzM2M2My ZjRkMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3Vi amVjdDogW1BBVENIIDA3MC8xMDJdIHRvdGVtOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3Br Z3MvdG90ZW0vdGVtcGxhdGUgfCAxNiArKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg OSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdG90 ZW0vdGVtcGxhdGUgYi9zcmNwa2dzL3RvdGVtL3RlbXBsYXRlCmluZGV4IDgxNTIyYjMxNDg4Li41 NmZiMTUyNzBmYiAxMDA2NDQKLS0tIGEvc3JjcGtncy90b3RlbS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3RvdGVtL3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICd0b3RlbScKIHBrZ25hbWU9dG90ZW0KLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzguMAog cmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmln dXJlX2FyZ3M9Ii1EZW5hYmxlLXB5dGhvbj1ubyAtRGVuYWJsZS1uYXV0aWx1cz15ZXMKICAtRGVu YWJsZS1pbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgeWVzIG5vKQotIC1EZW5hYmxlLXZhbGE9 JCh2b3B0X2lmIHZhbGEgeWVzIG5vKSIKKyAtRGVuYWJsZS12YWxhPSQodm9wdF9pZiBnaXIgeWVz IG5vKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ25vbWUtZG9jLXV0aWxzIGludGx0b29sIGl0c3Rvb2wg cGtnLWNvbmZpZwotICQodm9wdF9pZiB2YWxhIHZhbGEpIGdzdHJlYW1lcjEgZ3N0LXBsdWdpbnMt YmFzZTEgZ3N0LXBsdWdpbnMtZ29vZDEKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpIGdzdHJlYW1lcjEg Z3N0LXBsdWdpbnMtYmFzZTEgZ3N0LXBsdWdpbnMtZ29vZDEKICBnbGliLWRldmVsIgogIyBYWFgg bWlzc2luZyBsaXJjIHBsdWdpbi4KIG1ha2VkZXBlbmRzPSJjbHV0dGVyLWdzdDMtZGV2ZWwgY2x1 dHRlci1ndGstZGV2ZWwgZGJ1cy1nbGliLWRldmVsCkBAIC0yMSwxNiArMjEsMTggQEAgbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwt Mi4wLW9yLWxhdGVyLCBHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5n bm9tZS5vcmcvQXBwcy9WaWRlb3MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02 YmY4OWFiMDk2ZGZjNTY0ZjI2MDk3NmU0ODQxNjVmMDliZDg4NjQzNGQxODQ0MTBkMmY5NDRiZmJh NjExYTA5CitjaGVja3N1bT1hODI5ZjJiNWFhMDQzNWFhNDMxODE2MTUzMTkzZDU1NDdmYWRlOWVi OGQ0ODlmNTZiZTIyYWZiZTY1MWM0MzJmCiAKICMgWFhYIHh1bHJ1bm5lciBwbHVnaW4uCiAjIFhY WCByZWVuYWJsZSBweXRob24gcGx1Z2luIGlmIHB5bGludCBwa2cgZXhpc3RzLgogI3B5Y29tcGls ZV9kaXJzPSJ1c3IvbGliL3RvdGVtL3BsdWdpbnMiCiAKLWRpc2FibGVfcGFyYWxsZWxfYnVpbGQ9 eWVzCitkb19jaGVjaygpIHsKKwk6Cit9CiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVp bGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxk X29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBsaWJ0b3RlbV9wYWNrYWdlKCkgewogCXNob3J0X2Rl c2MrPSIgLSBydW50aW1lIGxpYnJhcnkiCgpGcm9tIGY2MDFkNmMyYTQwYzcyOWRjMTg1ZWFhNTQ3 ZGIwMTAxNzYwNzkwYTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzEvMTAyXSBnbm9tZS1zY3JlZW5zYXZlcjogYnVtcCAr IGZpeCBidWlsZAoKLS0tCiBzcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQu cGF0Y2ggfCAxMiArKysrKysrKysrKysKIHNyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxh dGUgICAgICAgICAgICB8ICAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLXNjcmVlbnNh dmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNjcmVl bnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3Bh dGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjZkY2RiZTdkZDdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZl ci9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKKy0tLSBzcmMvZ3MtbWFuYWdl ci5jCisrKysgc3JjL2dzLW1hbmFnZXIuYworQEAgLTgyMCw4ICs4MjAsNyBAQCBhcHBseV9iYWNr Z3JvdW5kX3RvX3dpbmRvdyAoR1NNYW5hZ2VyICptYW5hZ2VyLAorICAgICAgICAgc3VyZmFjZSA9 IGdub21lX2JnX2NyZWF0ZV9zdXJmYWNlIChtYW5hZ2VyLT5wcml2LT5iZywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RrX3dpbmRvdywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UpOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBoZWlnaHQpOworICAgICAgICAgZ3Nfd2luZG93X3NldF9iYWNr Z3JvdW5kX3N1cmZhY2UgKHdpbmRvdywgc3VyZmFjZSk7CisgICAgICAgICBjYWlyb19zdXJmYWNl X2Rlc3Ryb3kgKHN1cmZhY2UpOworIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2NyZWVu c2F2ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3RlbXBsYXRlCmluZGV4 IDM2M2ZjZjEyZTEwLi5jM2E3MGNmZWY3YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zY3Jl ZW5zYXZlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2NyZWVuc2F2ZXIn CiBwa2duYW1lPWdub21lLXNjcmVlbnNhdmVyCiB2ZXJzaW9uPTMuNi4xCi1yZXZpc2lvbj0yCity ZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1l bmFibGUtY29tcGlsZS13YXJuaW5ncz1taW5pbXVtIgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29u ZmlnIGF1dG9tYWtlIGludGx0b29sIGdsaWItZGV2ZWwiCgpGcm9tIGY1ODkxNWE5MDY5MzMwN2Mz NjI0MmNkOTEzMzJlYWMxYTA4OTczODAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIw IDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzIvMTAyXSBnbm9tZS1jbG9ja3M6IHVw ZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUgfCA2ICsr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUt Y2xvY2tzL3RlbXBsYXRlCmluZGV4IDNlMDQ5YjQyZmIxLi43MmY3MWY5MjY4YyAxMDA2NDQKLS0t IGEvc3JjcGtncy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1jbG9j a3MvdGVtcGxhdGUKQEAgLTEsMTIgKzEsMTIgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21l LWNsb2NrcycKIHBrZ25hbWU9Z25vbWUtY2xvY2tzCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0z LjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24K IGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBpdHN0b29sIGdsaWItZGV2ZWwg dmFsYSIKIG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHZhbGEtZGV2ZWwgZ25vbWUtZGVza3RvcC1k ZXZlbAotIGxpYmd3ZWF0aGVyLWRldmVsIGxpYmhhbmR5LWRldmVsIGxpYm5vdGlmeS1kZXZlbCBn c291bmQtZGV2ZWwKKyBsaWJnd2VhdGhlci1kZXZlbCBsaWJoYW5keTEtZGV2ZWwgbGlibm90aWZ5 LWRldmVsIGdzb3VuZC1kZXZlbAogIGdlb2NvZGUtZ2xpYi1kZXZlbCBkZXNrdG9wLWZpbGUtdXRp bHMgaGljb2xvci1pY29uLXRoZW1lCiAgZ2VvY2x1ZTItZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9w LWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIgpAQCAtMTUsNCArMTUsNCBAQCBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQ2xvY2tz IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3Br Z25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NGM5NzhiMGM3ZjdiOWRhZWJkMjcy ZDAxNzVmOGE1NDQxNWUyMDc4ZjEzNGY0OGFkZDVjZjI0MzYyZWVmNDljNgorY2hlY2tzdW09ZDk1 NmNiMDUwZjFjYTQ2YjQ0MzUxOWU0ZjU5YWIyMDQyOTBkNjI3MGRlYzkxYzc0YjUzODk1YWVjYzc5 NDQzOAoKRnJvbSBhNmNhYTE3MWRjZWM2MmNiY2ZjZjA4ODIxOTNhZjBlNjQ4NDU3MmE2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDczLzEwMl0gZXBpcGhhbnk6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9lcGlw aGFueS90ZW1wbGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lcGlwaGFueS90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUKaW5kZXggNWQ2YWM2YTYzN2QuLmYyM2IyM2M2 ZmJlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2VwaXBoYW55L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv ZXBpcGhhbnkvdGVtcGxhdGUKQEAgLTEsMTkgKzEsMTkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2VwaXBoYW55JwogcGtnbmFtZT1lcGlwaGFueQotdmVyc2lvbj0zLjM2LjIKK3ZlcnNpb249My4z OC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBj b25maWd1cmVfYXJncz0iLURkaXN0cmlidXRvcl9uYW1lPVZvaWRMaW51eCAtRHVuaXRfdGVzdHM9 ZGlzYWJsZWQiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBr Zy1jb25maWciCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYXZhaGktZ2xpYi1s aWJzLWRldmVsIGdjci1kZXZlbAotIGdub21lLWRlc2t0b3AtZGV2ZWwganNvbi1nbGliLWRldmVs IGxpYmRhenpsZS1kZXZlbCBsaWJoYW5keS1kZXZlbAorIGdub21lLWRlc2t0b3AtZGV2ZWwganNv bi1nbGliLWRldmVsIGxpYmRhenpsZS1kZXZlbCBsaWJoYW5keTEtZGV2ZWwKICBsaWJub3RpZnkt ZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYnNvdXAtZ25vbWUtZGV2ZWwgbGlid25jay1kZXZlbCBs aWJ4c2x0LWRldmVsCi0gbmV0dGxlLWRldmVsIG5zcy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIgor IG5ldHRsZS1kZXZlbCBuc3MtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCBsaWJwb3J0YWwtZGV2ZWwi CiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIGlzby1jb2Rl cyB3ZWJraXQyZ3RrIgogc2hvcnRfZGVzYz0iSW50dWl0aXZlIEdOT01FIHdlYiBicm93c2VyIgog bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBz L1dlYiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWMyZTY3NmFhMGZlMjExODA5 YTVlN2U4YTdlNDYxZDE4Mjg5MGYyNTNjNTNmNDYxMGYyNjEwMDk0YjZmYmZiNWUKK2NoZWNrc3Vt PTIyOGU4MjBkN2M3Zjg1NDFlNGRiNWVjYzZjODFiNWE4OGJkZTliMWVhMTdjYWU0YTVmMzg0NDZm Nzk4OWM1NTIKCkZyb20gZmFmMDMyYTViOGQ5Nzk1ZjVkYzhmYzVkOTRhMWI2MDI3YzQ5Njk2NSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDog W1BBVENIIDA3NC8xMDJdIGdub21lLWNvbnRhY3RzOiB1cGRhdGUgdG8gMy4zNy4yCgotLS0KIHNy Y3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUgfCAxMyArKysrKystLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNvbnRhY3RzL3Rl bXBsYXRlCmluZGV4IDJhODIxM2E3MjQwLi5hYTRlZjk0MDEzNiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbm9tZS1jb250YWN0cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWNvbnRhY3RzL3Rl bXBsYXRlCkBAIC0xLDE2ICsxLDE1IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1jb250 YWN0cycKIHBrZ25hbWU9Z25vbWUtY29udGFjdHMKLXZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0y Ci13cmtzcmM9Imdub21lLWNvbnRhY3RzLSR7dmVyc2lvbiUuKn0iCit2ZXJzaW9uPTMuMzcuMgor cmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14 c2wgZ2V0dGV4dCBnbGliLWRldmVsIGxpYnhzbHQgcGtnLWNvbmZpZyB2YWxhIgoraG9zdG1ha2Vk ZXBlbmRzPSJkb2Nib29rLXhzbCBmb2xrcy1kZXZlbCBnZXR0ZXh0IGdsaWItZGV2ZWwgbGlieHNs dCBwa2ctY29uZmlnIHZhbGEiCiBtYWtlZGVwZW5kcz0iY2hlZXNlLWRldmVsIGZvbGtzLWRldmVs IGdlb2NvZGUtZ2xpYi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsCi0gbGliY2hhbXBsYWluLWRl dmVsIGxpYm5vdGlmeS1kZXZlbCB2YWxhLWRldmVsIGxpYmhhbmR5LWRldmVsIgorIGxpYmNoYW1w bGFpbi1kZXZlbCBsaWJub3RpZnktZGV2ZWwgdmFsYS1kZXZlbCBsaWJoYW5keTEtZGV2ZWwiCiBk ZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCiBzaG9ydF9kZXNjPSJHTk9NRSBjb250YWN0cyBt YW5hZ2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21l Lm9yZy9BcHBzL0NvbnRhY3RzIgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0v JHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbiUuKn0udGFyLnh6IgotY2hlY2tzdW09 OTk2MDJlYzhkNjYwYzFmM2M5MmNhZTYzNTZmNjRmNzJmYjZkYjU4ZTU1YmNlMjdhNTk5MzMwYmY3 YjYyMmYxMgorZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09MWQzNDY5ZDVlOTBmMjNk MTI5ZDEyNzZiMmY5Yjg4NTQ1OWYzZDdiNDMwNTRjZDA5NzU5Yjg1YWM3NmM5MThiNAoKRnJvbSA0 MjM2ZTYzMDEzNmMwMWNkMzYyMTc5N2U1ZmQ0ODNmMjYwODMzNWM3IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDc1LzEwMl0g Z25vbWUtcGhvdG9zOiB1cGRhdGUgdG8gMy4zNy45MS4xLCB1c2UgdHJhY2tlcjMKCi0tLQogc3Jj cGtncy9nbm9tZS1waG90b3MvcGF0Y2hlcy90cmFja2VyMy5wYXRjaCB8IDQyNTQgKysrKysrKysr KysrKysrKysrKwogc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUgICAgICAgICAgICAgICB8 ICAgMTEgKy0KIDIgZmlsZXMgY2hhbmdlZCwgNDI2MCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtcGhvdG9zL3BhdGNoZXMvdHJh Y2tlcjMucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXBob3Rvcy9wYXRjaGVzL3Ry YWNrZXIzLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1waG90b3MvcGF0Y2hlcy90cmFja2VyMy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDA2ZGNhMzBmZDQKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLXBob3Rvcy9wYXRjaGVzL3RyYWNrZXIzLnBh dGNoCkBAIC0wLDAgKzEsNDI1NCBAQAorRnJvbSBiNGE4ZGUxZWY3OWM5NGMxYzExYjczMDc4NzEw OGYzMDVjOTYyZTM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2FtIFRodXJzZmll bGQgPHNhbUBhZnVlcmEubWUudWs+CitEYXRlOiBXZWQsIDI2IEF1ZyAyMDIwIDAxOjU3OjQ2ICsw MjAwCitTdWJqZWN0OiBbUEFUQ0ggMS80XSBwaG90b3MtdHJhY2tlci1jb250cm9sbGVyOiBMYWJl bCB1bml0IG9mIHRpbWluZworIG1lYXN1cmVtZW50cworCitPdGhlcndpc2UsIGl0J3Mgbm90IGNs ZWFyIGlmIHRoZXNlIGFyZSB0aW1pbmdzIG9yIHNvbWUga2luZCBvZiBJRAorbnVtYmVyLgorLS0t Cisgc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYyB8IDQgKystLQorIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMv cGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5jIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xs ZXIuYworaW5kZXggYTAyZGIwNzcuLjNhNjJjZjJkIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy10 cmFja2VyLWNvbnRyb2xsZXIuYworKysrIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIu YworQEAgLTIzNyw3ICsyMzcsNyBAQCBwaG90b3NfdHJhY2tlcl9jb250cm9sbGVyX2N1cnNvcl9u ZXh0IChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcworICAgICB9Cisg CisgICBub3cgPSBnX2dldF9tb25vdG9uaWNfdGltZSAoKTsKKy0gIHBob3Rvc19kZWJ1ZyAoUEhP VE9TX0RFQlVHX1RSQUNLRVIsICJRdWVyeSBDdXJzb3I6ICUiIEdfR0lOVDY0X0ZPUk1BVCwgKG5v dyAtIHByaXYtPmxhc3RfcXVlcnlfdGltZSkgLyAxMDAwMDAwKTsKKysgIHBob3Rvc19kZWJ1ZyAo UEhPVE9TX0RFQlVHX1RSQUNLRVIsICJRdWVyeSBDdXJzb3I6ICUiIEdfR0lOVDY0X0ZPUk1BVCAi IHNlY29uZHMiLCAobm93IC0gcHJpdi0+bGFzdF9xdWVyeV90aW1lKSAvIDEwMDAwMDApOworIAor ICAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9hZGRfaXRlbV9mb3JfbW9kZSAoUEhPVE9TX0lURU1fTUFO QUdFUiAocHJpdi0+aXRlbV9tbmdyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBIT1RPU19UUkFDS0VSX0NPTlRST0xMRVJfR0VUX0NMQVNTIChzZWxmKS0+YmFz ZV9pdGVtX3R5cGUsCitAQCAtMzQ2LDcgKzM0Niw3IEBAIHBob3Rvc190cmFja2VyX2NvbnRyb2xs ZXJfc2V0X3F1ZXJ5X3N0YXR1cyAoUGhvdG9zVHJhY2tlckNvbnRyb2xsZXIgKnNlbGYsIGdib29s CisgICBlbHNlCisgICAgIHsKKyAgICAgICBwaG90b3NfZGVidWcgKFBIT1RPU19ERUJVR19UUkFD S0VSLAorLSAgICAgICAgICAgICAgICAgICAgIlF1ZXJ5IEVsYXBzZWQ6ICUiIEdfR0lOVDY0X0ZP Uk1BVCwKKysgICAgICAgICAgICAgICAgICAgICJRdWVyeSBFbGFwc2VkOiAlIiBHX0dJTlQ2NF9G T1JNQVQgIiBzZWNvbmRzIiwKKyAgICAgICAgICAgICAgICAgICAgIChub3cgLSBwcml2LT5sYXN0 X3F1ZXJ5X3RpbWUpIC8gMTAwMDAwMCk7CisgICAgICAgcHJpdi0+bGFzdF9xdWVyeV90aW1lID0g MDsKKyAgICAgfQorLS0gCitHaXRMYWIKKworCitGcm9tIDdjOThhODg0YmE2YTI2Nzk1ZWEyNWE4 NzgwMDAyYWMxMDEwMzY4ODcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTYW0gVGh1 cnNmaWVsZCA8c2FtQGFmdWVyYS5tZS51az4KK0RhdGU6IFdlZCwgMjcgTWF5IDIwMjAgMTM6MDc6 NTggKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzRdIEZpeCBidWlsZCBmYWlsdXJlIGR1ZSB0byB1 bmRlZmluZWQgTV9QSSBjb25zdGFudAorCitUaGUgPG1hdGguaD4gaGVhZGVyIG5lZWRzIHRvIGJl IGluY2x1ZGVkLgorCitQcmV2aW91c2x5IEkgc3VwcG9zZSBsaWJ0cmFja2VyLXNwYXJxbC5oIHB1 bGxlZCB0aGlzIGluLgorLS0tCisgc3JjL3Bob3Rvcy11dGlscy5jIHwgMSArCisgMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXV0aWxzLmMg Yi9zcmMvcGhvdG9zLXV0aWxzLmMKK2luZGV4IDQwMWY1MmJhLi5jNjM4Mjk3YiAxMDA2NDQKKy0t LSBhL3NyYy9waG90b3MtdXRpbHMuYworKysrIGIvc3JjL3Bob3Rvcy11dGlscy5jCitAQCAtMzAs NiArMzAsNyBAQAorICNpbmNsdWRlIDxnbGliLmg+CisgI2luY2x1ZGUgPHRyYWNrZXItc3BhcnFs Lmg+CisgI2luY2x1ZGUgPGxpYmdkL2dkLmg+CisrI2luY2x1ZGUgPG1hdGguaD4KKyAKKyAjaW5j bHVkZSAicGhvdG9zLWFwcGxpY2F0aW9uLmgiCisgI2luY2x1ZGUgInBob3Rvcy1kZXZpY2UtaXRl bS5oIgorLS0gCitHaXRMYWIKKworCitGcm9tIDBlNGJkN2JiYzgwNTY3NDNhOGVhMDdhYjM3MTNh ZDU0M2MwMGQ0NzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTYW0gVGh1cnNmaWVs ZCA8c2FtQGFmdWVyYS5tZS51az4KK0RhdGU6IFN1biwgNyBKdW4gMjAyMCAyMTo1MzoyMCArMDIw MAorU3ViamVjdDogW1BBVENIIDMvNF0gR2VuZXJhdGUgcXVlcmllcyB1c2luZyBTUEFSUUwgdGVt cGxhdGVzCisKK1RoZSBjb2RlIHRvIGdlbmVyYXRlIFNQQVJRTCBxdWVyaWVzIHdhcyBzcGxpdCBh Y3Jvc3MgbWFueSBkaWZmZXJlbnQKK3NvdXJjZSBmaWxlcywgbWFraW5nIGl0IGRpZmZpY3VsdCB0 byBtYWtlIGJpZyBjaGFuZ2VzLiBOb3cgdGhlCitxdWVyaWVzIGFyZSB3cml0dGVuIG91dCBhcyB0 ZW1wbGF0ZXMgYW5kIHdlIHVzZSB0ZW1wbGF0ZSBzdWJzdGl0dXRpb24KK3RvIGJ1aWxkIHRoZSBT UEFSUUwgdGhhdCB3ZSBzZW5kIHRvIFRyYWNrZXIuCistLS0KKyBzcmMvbWVzb24uYnVpbGQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKKyBzcmMvcGhvdG9zLWJhc2UtbWFuYWdl ci5jICAgICAgICAgICAgICAgICAgIHwgIDE1ICsrCisgc3JjL3Bob3Rvcy1iYXNlLW1hbmFnZXIu aCAgICAgICAgICAgICAgICAgICB8ICAgNCArCisgc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmMgICAg ICAgICAgICAgICAgICAgICB8ICAgOCAtCisgc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmggICAgICAg ICAgICAgICAgICAgICB8ICAgMyAtCisgc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMgICAgICAg ICAgICAgICAgICB8IDIwNyArKysrKysrKystLS0tLS0tLS0tLQorIHNyYy9waG90b3Mtc2VhcmNo LXR5cGUtbWFuYWdlci5jICAgICAgICAgICAgfCAgNTkgKy0tLS0tCisgc3JjL3Bob3Rvcy1zZWFy Y2gtdHlwZS5jICAgICAgICAgICAgICAgICAgICB8ICA2NyArKystLS0tCisgc3JjL3Bob3Rvcy1z ZWFyY2gtdHlwZS5oICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQorIHNyYy9waG90b3Mtc3Bh cnFsLXRlbXBsYXRlLmMgICAgICAgICAgICAgICAgfCAxODcgKysrKysrKysrKysrKysrKysrCisg c3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuaCAgICAgICAgICAgICAgICB8ICAzOCArKysrCisg c3JjL3Bob3Rvcy5ncmVzb3VyY2UueG1sICAgICAgICAgICAgICAgICAgICB8ICAgNCArCisgc3Jj L3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZSAgICAgICAgICAgICB8ICAzMSArKysKKyBzcmMv cXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUgICAgIHwgIDE0ICsrCisgc3JjL3F1 ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSB8ICAxMiArKworIHNyYy9xdWVy aWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUgICAgICAgICAgfCAgMTEgKysKKyAxNiBmaWxlcyBj aGFuZ2VkLCA0NDYgaW5zZXJ0aW9ucygrKSwgMjI1IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9waG90b3Mtc3BhcnFsLXRlbXBsYXRlLmgKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3F1 ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcXVlcmll cy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3F1 ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlCisKK2RpZmYgLS1naXQgYS9zcmMv bWVzb24uYnVpbGQgYi9zcmMvbWVzb24uYnVpbGQKK2luZGV4IDk5MTlmMGNmLi5iNWIyNzU5YyAx MDA2NDQKKy0tLSBhL3NyYy9tZXNvbi5idWlsZAorKysrIGIvc3JjL21lc29uLmJ1aWxkCitAQCAt MTk1LDYgKzE5NSw3IEBAIHNvdXJjZXMgPSBjb21tb25fc291cmNlcyArIGZpbGVzKAorICAgJ3Bo b3Rvcy1zb3VyY2UuYycsCisgICAncGhvdG9zLXNvdXJjZS1tYW5hZ2VyLmMnLAorICAgJ3Bob3Rv cy1zb3VyY2Utbm90aWZpY2F0aW9uLmMnLAorKyAgJ3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuYycs CisgICAncGhvdG9zLXNwaW5uZXItYm94LmMnLAorICAgJ3Bob3Rvcy10aHVtYm5haWwtZmFjdG9y eS5jJywKKyAgICdwaG90b3MtdG9vbC5jJywKK0BAIC0yOTAsNiArMjkxLDEwIEBAIHJlc291cmNl X2RhdGEgPSBmaWxlcygKKyAgICdwaG90b3Mtc2VsZWN0aW9uLXRvb2xiYXIudWknLAorICAgJ3Bo b3Rvcy1zaGFyZS1kaWFsb2cudWknLAorICAgJ3Bob3Rvcy16b29tLWNvbnRyb2xzLnVpJywKKysg ICdxdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUnLAorKyAgJ3F1ZXJpZXMvY29sbGVjdGlvbnMu c3BhcnFsLnRlbXBsYXRlJywKKysgICdxdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVt cGxhdGUnLAorKyAgJ3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZScsCisgKQorIAorIHNv dXJjZXMgKz0gZ25vbWUuY29tcGlsZV9yZXNvdXJjZXMoCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rv cy1iYXNlLW1hbmFnZXIuYyBiL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmMKK2luZGV4IGQ0OWQx OWE1Li4wNTI2MzhkNSAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmMKKysr KyBiL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmMKK0BAIC0yNTAsNiArMjUwLDEyIEBAIHBob3Rv c19iYXNlX21hbmFnZXJfZGVmYXVsdF9nZXRfd2hlcmUgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxm LCBnaW50IGZsYWdzKQorIH0KKyAKKyAKKytzdGF0aWMgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKgor K3Bob3Rvc19iYXNlX21hbmFnZXJfZGVmYXVsdF9nZXRfc3BhcnFsX3RlbXBsYXRlIChQaG90b3NC YXNlTWFuYWdlciAqc2VsZiwgZ2ludCBmbGFncykKKyt7CisrICByZXR1cm4gTlVMTDsKKyt9Cisr Cisgc3RhdGljIHZvaWQKKyBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfcmVtb3ZlX29iamVj dF9ieV9pZCAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGNvbnN0IGdjaGFyICppZCkKKyB7CitA QCAtNDM4LDYgKzQ0NCw3IEBAIHBob3Rvc19iYXNlX21hbmFnZXJfY2xhc3NfaW5pdCAoUGhvdG9z QmFzZU1hbmFnZXJDbGFzcyAqY2xhc3MpCisgICBjbGFzcy0+Z2V0X29iamVjdF9ieV9pZCA9IHBo b3Rvc19iYXNlX21hbmFnZXJfZGVmYXVsdF9nZXRfb2JqZWN0X2J5X2lkOworICAgY2xhc3MtPmdl dF9wcmV2aW91c19vYmplY3QgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X3ByZXZp b3VzX29iamVjdDsKKyAgIGNsYXNzLT5nZXRfd2hlcmUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2Rl ZmF1bHRfZ2V0X3doZXJlOworKyAgY2xhc3MtPmdldF9zcGFycWxfdGVtcGxhdGUgPSBwaG90b3Nf YmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X3NwYXJxbF90ZW1wbGF0ZTsKKyAgIGNsYXNzLT5yZW1v dmVfb2JqZWN0X2J5X2lkID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9kZWZhdWx0X3JlbW92ZV9vYmpl Y3RfYnlfaWQ7CisgICBjbGFzcy0+c2V0X2FjdGl2ZV9vYmplY3QgPSBwaG90b3NfYmFzZV9tYW5h Z2VyX2RlZmF1bHRfc2V0X2FjdGl2ZV9vYmplY3Q7CisgCitAQCAtNzE0LDYgKzcyMSwxNCBAQCBw aG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGdp bnQgZmxhZ3MpCisgfQorIAorIAorK1Bob3Rvc1NwYXJxbFRlbXBsYXRlICoKKytwaG90b3NfYmFz ZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVtcGxhdGUgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBn aW50IGZsYWdzKQorK3sKKysgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChQSE9UT1NfSVNfQkFTRV9N QU5BR0VSIChzZWxmKSwgTlVMTCk7CisrICByZXR1cm4gUEhPVE9TX0JBU0VfTUFOQUdFUl9HRVRf Q0xBU1MgKHNlbGYpLT5nZXRfc3BhcnFsX3RlbXBsYXRlIChzZWxmLCBmbGFncyk7CisrfQorKwor KworIHZvaWQKKyBwaG90b3NfYmFzZV9tYW5hZ2VyX3Byb2Nlc3NfbmV3X29iamVjdHMgKFBob3Rv c0Jhc2VNYW5hZ2VyICpzZWxmLCBHSGFzaFRhYmxlICpuZXdfb2JqZWN0cykKKyB7CitkaWZmIC0t Z2l0IGEvc3JjL3Bob3Rvcy1iYXNlLW1hbmFnZXIuaCBiL3NyYy9waG90b3MtYmFzZS1tYW5hZ2Vy LmgKK2luZGV4IDk5ZDIwM2U5Li4wNGNmYTdkYiAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtYmFz ZS1tYW5hZ2VyLmgKKysrKyBiL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmgKK0BAIC0yNCw2ICsy NCw3IEBACisgI2RlZmluZSBQSE9UT1NfQkFTRV9NQU5BR0VSX0gKKyAKKyAjaW5jbHVkZSA8Z2xp Yi1vYmplY3QuaD4KKysjaW5jbHVkZSAicGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oIgorIAorIEdf QkVHSU5fREVDTFMKKyAKK0BAIC00Niw2ICs0Nyw3IEBAIHN0cnVjdCBfUGhvdG9zQmFzZU1hbmFn ZXJDbGFzcworICAgZ2NoYXIgICAgICAgICAqKCpnZXRfd2hlcmUpICAgICAgICAgICAgICAoUGhv dG9zQmFzZU1hbmFnZXIgKnNlbGYsIGdpbnQgZmxhZ3MpOworICAgdm9pZCAgICAgICAgICAgKCpy ZW1vdmVfb2JqZWN0X2J5X2lkKSAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGNvbnN0IGdj aGFyICppZCk7CisgICBnYm9vbGVhbiAgICAgICAoKnNldF9hY3RpdmVfb2JqZWN0KSAgICAgIChQ aG90b3NCYXNlTWFuYWdlciAqc2VsZiwgR09iamVjdCAqb2JqZWN0KTsKKysgIFBob3Rvc1NwYXJx bFRlbXBsYXRlICooKmdldF9zcGFycWxfdGVtcGxhdGUpIChQaG90b3NCYXNlTWFuYWdlciAqc2Vs ZiwgZ2ludCBmbGFncyk7CisgCisgICAvKiBzaWduYWxzICovCisgICB2b2lkICAgICAgICAgICAo KmFjdGl2ZV9jaGFuZ2VkKSAgICAgICAgIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgR09iamVj dCAqb2JqZWN0KTsKK0BAIC04MCw2ICs4Miw4IEBAIGNvbnN0IGdjaGFyICAgICAgICAqcGhvdG9z X2Jhc2VfbWFuYWdlcl9nZXRfdGl0bGUgICAgICAgICAgICAgICAgKFBob3Rvc0Jhc2VNYW5hCisg CisgZ2NoYXIgICAgICAgICAgICAgICpwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAgICAg ICAgICAgICAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGdpbnQgZmxhZ3MpOworIAorK1Bo b3Rvc1NwYXJxbFRlbXBsYXRlICpwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVtcGxh dGUgICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBnaW50IGZsYWdzKTsKKysKKyB2b2lkICAg ICAgICAgICAgICAgIHBob3Rvc19iYXNlX21hbmFnZXJfcHJvY2Vzc19uZXdfb2JqZWN0cyAgICAg IChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgR0hhc2hUYWJsZSAqbmV3X29iamVjdHMpOworIAor IHZvaWQgICAgICAgICAgICAgICAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9yZW1vdmVfb2JqZWN0ICAg ICAgICAgICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBHT2JqZWN0ICpvYmplY3QpOworZGlm ZiAtLWdpdCBhL3NyYy9waG90b3MtZmlsdGVyYWJsZS5jIGIvc3JjL3Bob3Rvcy1maWx0ZXJhYmxl LmMKK2luZGV4IDM2MWIxYzI5Li5hYWE0MTA5YyAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtZmls dGVyYWJsZS5jCisrKysgYi9zcmMvcGhvdG9zLWZpbHRlcmFibGUuYworQEAgLTY5LDE0ICs2OSw2 IEBAIHBob3Rvc19maWx0ZXJhYmxlX2dldF9pZCAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZikKKyB9 CisgCisgCistZ2NoYXIgKgorLXBob3Rvc19maWx0ZXJhYmxlX2dldF93aGVyZSAoUGhvdG9zRmls dGVyYWJsZSAqc2VsZikKKy17CistICBnX3JldHVybl92YWxfaWZfZmFpbCAoUEhPVE9TX0lTX0ZJ TFRFUkFCTEUgKHNlbGYpLCBOVUxMKTsKKy0gIHJldHVybiBQSE9UT1NfRklMVEVSQUJMRV9HRVRf SUZBQ0UgKHNlbGYpLT5nZXRfd2hlcmUgKHNlbGYpOworLX0KKy0KKy0KKyBnYm9vbGVhbgorIHBo b3Rvc19maWx0ZXJhYmxlX2lzX3NlYXJjaF9jcml0ZXJpb24gKFBob3Rvc0ZpbHRlcmFibGUgKnNl bGYpCisgeworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtZmlsdGVyYWJsZS5oIGIvc3JjL3Bob3Rv cy1maWx0ZXJhYmxlLmgKK2luZGV4IGU3NjhiY2EwLi44YTM0MTVmYyAxMDA2NDQKKy0tLSBhL3Ny Yy9waG90b3MtZmlsdGVyYWJsZS5oCisrKysgYi9zcmMvcGhvdG9zLWZpbHRlcmFibGUuaAorQEAg LTM3LDcgKzM3LDYgQEAgc3RydWN0IF9QaG90b3NGaWx0ZXJhYmxlSW50ZXJmYWNlCisgICBnYm9v bGVhbiAoKmdldF9idWlsdGluKSAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7CisgICBnY2hhciAq KCpnZXRfZmlsdGVyKSAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7CisgICBjb25zdCBnY2hhciAq KCpnZXRfaWQpIChQaG90b3NGaWx0ZXJhYmxlICpzZWxmKTsKKy0gIGdjaGFyICooKmdldF93aGVy ZSkgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpOworICAgZ2Jvb2xlYW4gKCppc19zZWFyY2hfY3Jp dGVyaW9uKSAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7CisgfTsKKyAKK0BAIC00Nyw4ICs0Niw2 IEBAIGdjaGFyICAgICAgICAgICAgICAqcGhvdG9zX2ZpbHRlcmFibGVfZ2V0X2ZpbHRlciAgICAg ICAgIChQaG90b3NGaWx0ZXJhYmxlICpzZWxmCisgCisgY29uc3QgZ2NoYXIgICAgICAgICpwaG90 b3NfZmlsdGVyYWJsZV9nZXRfaWQgICAgICAgICAgICAgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYp OworIAorLWdjaGFyICAgICAgICAgICAgICAqcGhvdG9zX2ZpbHRlcmFibGVfZ2V0X3doZXJlICAg ICAgICAgIChQaG90b3NGaWx0ZXJhYmxlICpzZWxmKTsKKy0KKyBnYm9vbGVhbiAgICAgICAgICAg IHBob3Rvc19maWx0ZXJhYmxlX2lzX3NlYXJjaF9jcml0ZXJpb24gIChQaG90b3NGaWx0ZXJhYmxl ICpzZWxmKTsKKyAKKyBHX0VORF9ERUNMUworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtcXVlcnkt YnVpbGRlci5jIGIvc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMKK2luZGV4IDZiOTk2ODExLi5l MDczNWJkZSAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtcXVlcnktYnVpbGRlci5jCisrKysgYi9z cmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuYworQEAgLTI2LDExMiArMjYsNzYgQEAKKyAjaW5jbHVk ZSA8c3RyaW5nLmg+CisgCisgI2luY2x1ZGUgInBob3Rvcy1iYXNlLW1hbmFnZXIuaCIKKysjaW5j bHVkZSAicGhvdG9zLXF1ZXJ5LmgiCisgI2luY2x1ZGUgInBob3Rvcy1xdWVyeS1idWlsZGVyLmgi CisgI2luY2x1ZGUgInBob3Rvcy1zZWFyY2gtdHlwZS5oIgorICNpbmNsdWRlICJwaG90b3Mtc291 cmNlLW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmgi CisgI2luY2x1ZGUgInBob3Rvcy1zZWFyY2gtdHlwZS1tYW5hZ2VyLmgiCisgCisrI2RlZmluZSBQ SE9UT1NfUVVFUllfQ09MTEVDVElPTlNfSURFTlRJRklFUiAicGhvdG9zOmNvbGxlY3Rpb246Igor KyNkZWZpbmUgUEhPVE9TX1FVRVJZX0xPQ0FMX0NPTExFQ1RJT05TX0lERU5USUZJRVIgInBob3Rv czpjb2xsZWN0aW9uOmxvY2FsOiIKKyAKKy1zdGF0aWMgZ2NoYXIgKgorLXBob3Rvc19xdWVyeV9i dWlsZGVyX2ZpbHRlciAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgZ2ludCBmbGFn cykKKy17CistICBnY2hhciAqc3BhcnFsOworLSAgZ19hdXRvZnJlZSBnY2hhciAqc3JjX21uZ3Jf ZmlsdGVyID0gTlVMTDsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKnNyY2hfbXRjaF9tbmdyX2ZpbHRl ciA9IE5VTEw7CistICBnX2F1dG9mcmVlIGdjaGFyICpzcmNoX3R5cF9tbmdyX2ZpbHRlciA9IE5V TEw7CisrY29uc3QgZ2NoYXIgKmNvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyID0gXAorKyAgIihm bjpzdGFydHMtd2l0aCAobmFvOmlkZW50aWZpZXIgKD91cm4pLCAnIiBQSE9UT1NfUVVFUllfQ09M TEVDVElPTlNfSURFTlRJRklFUiAiJykiCisrICAiICAgfHwgKD91cm4gPSBuZm86aW1hZ2UtY2F0 ZWdvcnktc2NyZWVuc2hvdCkpIjsKKyAKKy0gIHNyY19tbmdyX2ZpbHRlciA9IHBob3Rvc19iYXNl X21hbmFnZXJfZ2V0X2ZpbHRlciAoc3RhdGUtPnNyY19tbmdyLCBmbGFncyk7CistICBzcmNoX210 Y2hfbW5ncl9maWx0ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5z cmNoX210Y2hfbW5nciwgZmxhZ3MpOworLSAgc3JjaF90eXBfbW5ncl9maWx0ZXIgPSBwaG90b3Nf YmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNoX3R5cF9tbmdyLCBmbGFncyk7Cisg CistICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJGSUxURVIgKCVzICYmICVzICYmICVzKSIs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY19tbmdyX2ZpbHRlciwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3JjaF9tdGNoX21uZ3JfZmlsdGVyLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzcmNoX3R5cF9tbmdyX2ZpbHRlcik7CistCistICByZXR1cm4gc3Bh cnFsOworLX0KKysvKiBUaGlzIGluY2x1ZGVzIG1pbWV0eXBlIGJsb2NrbGlzdCAqLworK2NvbnN0 IGdjaGFyICpwaG90b3NfZGVmYXVsdF9maWx0ZXIgPSBcCisrICAiKG5pZTptaW1lVHlwZSg/dXJu KSAhPSAnaW1hZ2UvZ2lmJyAmJiBuaWU6bWltZVR5cGUoP3VybikgIT0gJ2ltYWdlL3gtZXBzJyki OworIAorIAorIHN0YXRpYyBnY2hhciAqCistcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfb3B0aW9uYWwg KHZvaWQpCisteworLSAgcmV0dXJuIGdfc3RyZHVwICgiT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVh dG9yID9jcmVhdG9yIC4gfSAiCistICAgICAgICAgICAgICAgICAgICJPUFRJT05BTCB7ID91cm4g bmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfSIpOworLX0KKy0KKy0KKy1zdGF0aWMgZ2NoYXIg KgorLXBob3Rvc19xdWVyeV9idWlsZGVyX2lubmVyX3doZXJlIChQaG90b3NTZWFyY2hDb250ZXh0 U3RhdGUgKnN0YXRlLCBnYm9vbGVhbiBnbG9iYWwsIGdpbnQgZmxhZ3MpCisrcGhvdG9zX3F1ZXJ5 X2J1aWxkZXJfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGdsb2JhbCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ2ludCBmbGFncywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhv dG9zT2Zmc2V0Q29udHJvbGxlciAqb2Zmc2V0X2NudHJscikKKyB7CistICBnX2F1dG9mcmVlIGdj aGFyICppdGVtX21uZ3Jfd2hlcmUgPSBOVUxMOworKyAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnRl bXBsYXRlOworKyAgY29uc3QgZ2NoYXIgKnByb2plY3Rpb24gPSBOVUxMOworKyAgZ19hdXRvZnJl ZSBnY2hhciAqaXRlbV9wYXR0ZXJuID0gTlVMTDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNlYXJj aF9maWx0ZXIgPSBOVUxMOworKyAgZ19hdXRvZnJlZSBnY2hhciAqc291cmNlX2ZpbHRlciA9IE5V TEw7CisrICBjb25zdCBnY2hhciAqb3JkZXIgPSBOVUxMOworKyAgZ19hdXRvZnJlZSBnY2hhciAq b2Zmc2V0X2xpbWl0ID0gTlVMTDsKKyAgIGdjaGFyICpzcGFycWw7CistICBnX2F1dG9mcmVlIGdj aGFyICpzcmNoX3R5cF9tbmdyX3doZXJlID0gTlVMTDsKKyAKKy0gIHNyY2hfdHlwX21uZ3Jfd2hl cmUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAoc3RhdGUtPnNyY2hfdHlwX21uZ3Is IGZsYWdzKTsKKysgIHRlbXBsYXRlID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFsX3Rl bXBsYXRlIChzdGF0ZS0+c3JjaF90eXBfbW5nciwgZmxhZ3MpOworKworKyAgcHJvamVjdGlvbiA9 ICI/dXJuICIKKysgICAgICAgICAgICAgICAibmllOnVybCAoP3VybikgIgorKyAgICAgICAgICAg ICAgICJuZm86ZmlsZU5hbWUgKD91cm4pICIKKysgICAgICAgICAgICAgICAibmllOm1pbWVUeXBl ICg/dXJuKSAiCisrICAgICAgICAgICAgICAgIm5pZTp0aXRsZSAoP3VybikgIgorKyAgICAgICAg ICAgICAgICJ0cmFja2VyOmNvYWxlc2NlIChuY286ZnVsbG5hbWUgKD9jcmVhdG9yKSwgbmNvOmZ1 bGxuYW1lICg/cHVibGlzaGVyKSwgJycpICIKKysgICAgICAgICAgICAgICAidHJhY2tlcjpjb2Fs ZXNjZSAobmZvOmZpbGVMYXN0TW9kaWZpZWQgKD91cm4pLCBuaWU6Y29udGVudExhc3RNb2RpZmll ZCAoP3VybikpIEFTID9tdGltZSAiCisrICAgICAgICAgICAgICAgIm5hbzppZGVudGlmaWVyICg/ dXJuKSAiCisrICAgICAgICAgICAgICAgInJkZjp0eXBlICg/dXJuKSAiCisrICAgICAgICAgICAg ICAgIm5pZTpkYXRhU291cmNlKD91cm4pICIKKysgICAgICAgICAgICAgICAiKCBFWElTVFMgeyA/ dXJuIG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlIH0gKSAiCisrICAgICAg ICAgICAgICAgIiggRVhJU1RTIHsgP3VybiBuY286Y29udHJpYnV0b3IgP2NvbnRyaWJ1dG9yIEZJ TFRFUiAoID9jb250cmlidXRvciAhPSA/Y3JlYXRvciApIH0gKSAiCisrICAgICAgICAgICAgICAg InRyYWNrZXI6Y29hbGVzY2UobmZvOmZpbGVDcmVhdGVkICg/dXJuKSwgbmllOmNvbnRlbnRDcmVh dGVkICg/dXJuKSkgIgorKyAgICAgICAgICAgICAgICJuZm86d2lkdGggKD91cm4pICIKKysgICAg ICAgICAgICAgICAibmZvOmhlaWdodCAoP3VybikgIgorKyAgICAgICAgICAgICAgICJuZm86ZXF1 aXBtZW50ICg/dXJuKSAiCisrICAgICAgICAgICAgICAgIm5mbzpvcmllbnRhdGlvbiAoP3Vybikg IgorKyAgICAgICAgICAgICAgICJubW06ZXhwb3N1cmVUaW1lICg/dXJuKSAiCisrICAgICAgICAg ICAgICAgIm5tbTpmbnVtYmVyICg/dXJuKSAiCisrICAgICAgICAgICAgICAgIm5tbTpmb2NhbExl bmd0aCAoP3VybikgIgorKyAgICAgICAgICAgICAgICJubW06aXNvU3BlZWQgKD91cm4pICIKKysg ICAgICAgICAgICAgICAibm1tOmZsYXNoICg/dXJuKSAiCisrICAgICAgICAgICAgICAgInNsbzps b2NhdGlvbiAoP3VybikgIjsKKysKKysgIGl0ZW1fcGF0dGVybiA9IHBob3Rvc19iYXNlX21hbmFn ZXJfZ2V0X3doZXJlIChzdGF0ZS0+aXRlbV9tbmdyLCBmbGFncyk7CisgCisgICBpZiAoIShmbGFn cyAmIFBIT1RPU19RVUVSWV9GTEFHU19VTkZJTFRFUkVEKSkKKyAgICAgeworLSAgICAgIGlmIChn bG9iYWwpCistICAgICAgICB7CistICAgICAgICAgIC8qIFRPRE86IFNlYXJjaENhdGVnb3J5TWFu YWdlciAqLworLQorLSAgICAgICAgICBpdGVtX21uZ3Jfd2hlcmUgPSBwaG90b3NfYmFzZV9tYW5h Z2VyX2dldF93aGVyZSAoc3RhdGUtPml0ZW1fbW5nciwgZmxhZ3MpOworLSAgICAgICAgfQorKyAg ICAgIHNvdXJjZV9maWx0ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRl LT5zcmNfbW5nciwgZmxhZ3MpOworKyAgICAgIHNlYXJjaF9maWx0ZXIgPSBwaG90b3NfYmFzZV9t YW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNoX210Y2hfbW5nciwgZmxhZ3MpOworICAgICB9 CisgCistICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJXSEVSRSB7ICVzICVzIH0iLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNoX3R5cF9tbmdyX3doZXJlLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoaXRlbV9tbmdyX3doZXJlICE9IE5VTEwpID8gaXRlbV9tbmdy X3doZXJlIDogIiIpOworLQorLSAgcmV0dXJuIHNwYXJxbDsKKy19CistCistCistc3RhdGljIGdj aGFyICoKKy1waG90b3NfcXVlcnlfYnVpbGRlcl93aGVyZSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0 YXRlICpzdGF0ZSwgZ2Jvb2xlYW4gZ2xvYmFsLCBnaW50IGZsYWdzKQorLXsKKy0gIGNvbnN0IGdj aGFyICpjb3VudF9pdGVtcyA9ICJDT1VOVCAoP2l0ZW0pIEFTID9jb3VudCI7CistICBnYm9vbGVh biBpdGVtX2RlZmluZWQ7CistICBnX2F1dG9mcmVlIGdjaGFyICpmaWx0ZXIgPSBOVUxMOworLSAg Z19hdXRvZnJlZSBnY2hhciAqb3B0aW9uYWwgPSBOVUxMOworLSAgZ2NoYXIgKnNwYXJxbDsKKy0g IGdfYXV0b2ZyZWUgZ2NoYXIgKndoZXJlX3NwYXJxbCA9IE5VTEw7CistCistICB3aGVyZV9zcGFy cWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9pbm5lcl93aGVyZSAoc3RhdGUsIGdsb2JhbCwgZmxh Z3MpOworLSAgaXRlbV9kZWZpbmVkID0gc3Ryc3RyICh3aGVyZV9zcGFycWwsICI/aXRlbSIpICE9 IE5VTEw7CistCistICBvcHRpb25hbCA9IHBob3Rvc19xdWVyeV9idWlsZGVyX29wdGlvbmFsICgp OworLQorLSAgaWYgKCEoZmxhZ3MgJiBQSE9UT1NfUVVFUllfRkxBR1NfVU5GSUxURVJFRCkpCist ICAgIGZpbHRlciA9IHBob3Rvc19xdWVyeV9idWlsZGVyX2ZpbHRlciAoc3RhdGUsIGZsYWdzKTsK Ky0KKy0gIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIldIRVJFIHt7IgorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiICAgIFNFTEVDVCA/dXJuIHJkZjp0eXBlICg/dXJuKSBBUyA/dHlw ZSAlcyAlcyBHUk9VUCBCWSAoP3VybikiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICIg IH0iCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICVzICVzIgorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAifSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1f ZGVmaW5lZCA/IGNvdW50X2l0ZW1zIDogIiIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IHdoZXJlX3NwYXJxbCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWx0ZXIgIT0gTlVMTCkgPyBmaWx0ZXIgOiAi Iik7CistCistICByZXR1cm4gc3BhcnFsOworLX0KKy0KKy0KKy1zdGF0aWMgZ2NoYXIgKgorLXBo b3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRl LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBnbG9iYWwsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdpbnQgZmxhZ3MsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBob3Rvc09mZnNldENvbnRyb2xsZXIgKm9mZnNldF9jbnRybHIpCisteworLSAgZ2No YXIgKnNwYXJxbDsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKnRhaWxfc3BhcnFsID0gTlVMTDsKKy0g IGdfYXV0b2ZyZWUgZ2NoYXIgKndoZXJlX3NwYXJxbCA9IE5VTEw7CistCistICB3aGVyZV9zcGFy cWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl93aGVyZSAoc3RhdGUsIGdsb2JhbCwgZmxhZ3MpOwor KyAgb3JkZXIgPSAiT1JERVIgQlkgREVTQyAoP210aW1lKSI7CisgCisgICBpZiAoZ2xvYmFsICYm IChmbGFncyAmIFBIT1RPU19RVUVSWV9GTEFHU19VTkxJTUlURUQpID09IDApCisgICAgIHsKK0BA IC0xNDQsMzUgKzEwOCwxOSBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoUGhvdG9zU2Vh cmNoQ29udGV4dFN0YXRlICpzdGF0ZSwKKyAgICAgICAgICAgc3RlcCA9IHBob3Rvc19vZmZzZXRf Y29udHJvbGxlcl9nZXRfc3RlcCAob2Zmc2V0X2NudHJscik7CisgICAgICAgICB9CisgCistICAg ICAgdGFpbF9zcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJPUkRFUiBCWSBERVNDICg/bXRpbWUp IExJTUlUICVkIE9GRlNFVCAlZCIsIHN0ZXAsIG9mZnNldCk7CisrICAgICAgb2Zmc2V0X2xpbWl0 ID0gZ19zdHJkdXBfcHJpbnRmICgiTElNSVQgJWQgT0ZGU0VUICVkIiwgc3RlcCwgb2Zmc2V0KTsK KyAgICAgfQorIAorLSAgc3BhcnFsID0gZ19zdHJjb25jYXQgKCJTRUxFQ1QgP3VybiAiCistICAg ICAgICAgICAgICAgICAgICAgICAgIm5pZTp1cmwgKD91cm4pICIKKy0gICAgICAgICAgICAgICAg ICAgICAgICAibmZvOmZpbGVOYW1lICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAg Im5pZTptaW1lVHlwZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJuaWU6dGl0 bGUgKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNjZSAo bmNvOmZ1bGxuYW1lICg/Y3JlYXRvciksIG5jbzpmdWxsbmFtZSAoP3B1Ymxpc2hlciksICcnKSAi CistICAgICAgICAgICAgICAgICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UgKG5mbzpmaWxlTGFz dE1vZGlmaWVkICg/dXJuKSwgbmllOmNvbnRlbnRMYXN0TW9kaWZpZWQgKD91cm4pKSBBUyA/bXRp bWUgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJuYW86aWRlbnRpZmllciAoP3VybikgIgor LSAgICAgICAgICAgICAgICAgICAgICAgICJyZGY6dHlwZSAoP3VybikgIgorLSAgICAgICAgICAg ICAgICAgICAgICAgICJuaWU6ZGF0YVNvdXJjZSg/dXJuKSAiCistICAgICAgICAgICAgICAgICAg ICAgICAgIiggRVhJU1RTIHsgP3VybiBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZv cml0ZSB9ICkgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4gbmNv OmNvbnRyaWJ1dG9yID9jb250cmlidXRvciBGSUxURVIgKCA/Y29udHJpYnV0b3IgIT0gP2NyZWF0 b3IgKSB9ICkgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2NlKG5m bzpmaWxlQ3JlYXRlZCAoP3VybiksIG5pZTpjb250ZW50Q3JlYXRlZCAoP3VybikpICIKKy0gICAg ICAgICAgICAgICAgICAgICAgICAibmZvOndpZHRoICg/dXJuKSAiCistICAgICAgICAgICAgICAg ICAgICAgICAgIm5mbzpoZWlnaHQgKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAi bmZvOmVxdWlwbWVudCAoP3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJuZm86b3Jp ZW50YXRpb24gKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAibm1tOmV4cG9zdXJl VGltZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJubW06Zm51bWJlciAoP3Vy bikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJubW06Zm9jYWxMZW5ndGggKD91cm4pICIK Ky0gICAgICAgICAgICAgICAgICAgICAgICAibm1tOmlzb1NwZWVkICg/dXJuKSAiCistICAgICAg ICAgICAgICAgICAgICAgICAgIm5tbTpmbGFzaCAoP3VybikgIgorLSAgICAgICAgICAgICAgICAg ICAgICAgICJzbG86bG9jYXRpb24gKD91cm4pICIsCistICAgICAgICAgICAgICAgICAgICAgICAg d2hlcmVfc3BhcnFsLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRhaWxfc3BhcnFsLAorLSAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworKyAgc3BhcnFsID0gcGhvdG9zX3NwYXJxbF90 ZW1wbGF0ZV9nZXRfc3BhcnFsICh0ZW1wbGF0ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgInByb2plY3Rpb24iLCBwcm9qZWN0aW9uLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29sbGVjdGlvbnNfZGVmYXVs dF9maWx0ZXIiLCBjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIml0ZW1fcGF0dGVybiIsIGl0ZW1fcGF0dGVy biwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBob3Rv c19kZWZhdWx0X2ZpbHRlciIsIHBob3Rvc19kZWZhdWx0X2ZpbHRlciwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvdXJjZV9maWx0ZXIiLCBzb3VyY2Vf ZmlsdGVyID8gc291cmNlX2ZpbHRlciA6ICIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAic2VhcmNoX2ZpbHRlciIsIHNlYXJjaF9maWx0ZXIgPyBzZWFy Y2hfZmlsdGVyIDogIiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJvcmRlciIsIG9yZGVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAib2Zmc2V0X2xpbWl0Iiwgb2Zmc2V0X2xpbWl0ID8gb2Zmc2V0X2xpbWl0 IDogIiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwpOworIAorICAgcmV0dXJuIHNwYXJxbDsKKyB9CitAQCAtMjMxLDEyICsxNzksMzcgQEAgcGhv dG9zX3F1ZXJ5X2J1aWxkZXJfY29sbGVjdGlvbl9pY29uX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250 ZXh0U3RhdGUgKnN0YXRlLCBjb24KKyBQaG90b3NRdWVyeSAqCisgcGhvdG9zX3F1ZXJ5X2J1aWxk ZXJfY291bnRfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGdpbnQgZmxh Z3MpCisgeworLSAgUGhvdG9zUXVlcnkgKnF1ZXJ5OworKyAgUGhvdG9zU3BhcnFsVGVtcGxhdGUg KnRlbXBsYXRlOworKyAgY29uc3QgZ2NoYXIgKnByb2plY3Rpb24gPSBOVUxMOworKyAgZ19hdXRv ZnJlZSBnY2hhciAqaXRlbV9wYXR0ZXJuID0gTlVMTDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNl YXJjaF9maWx0ZXIgPSBOVUxMOworKyAgZ19hdXRvZnJlZSBnY2hhciAqc291cmNlX2ZpbHRlciA9 IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxMOworLSAgZ19hdXRvZnJl ZSBnY2hhciAqd2hlcmVfc3BhcnFsID0gTlVMTDsKKysgIFBob3Rvc1F1ZXJ5ICpxdWVyeTsKKysK KysgIHRlbXBsYXRlID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBsYXRlIChz dGF0ZS0+c3JjaF90eXBfbW5nciwgZmxhZ3MpOworKworKyAgcHJvamVjdGlvbiA9ICJDT1VOVCg/ dXJuKSAiOworKworKyAgaXRlbV9wYXR0ZXJuID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfd2hl cmUgKHN0YXRlLT5pdGVtX21uZ3IsIGZsYWdzKTsKKysKKysgIGlmICghIChmbGFncyAmIFBIT1RP U19RVUVSWV9GTEFHU19VTkZJTFRFUkVEKSkKKysgICAgeworKyAgICAgIHNvdXJjZV9maWx0ZXIg PSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNfbW5nciwgZmxhZ3Mp OworKyAgICAgIHNlYXJjaF9maWx0ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIg KHN0YXRlLT5zcmNoX210Y2hfbW5nciwgZmxhZ3MpOworKyAgICB9CisrCisrICBzcGFycWwgPSBw aG90b3Nfc3BhcnFsX3RlbXBsYXRlX2dldF9zcGFycWwgKHRlbXBsYXRlLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvamVjdGlvbiIsIHByb2plY3Rp b24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb2xs ZWN0aW9uc19kZWZhdWx0X2ZpbHRlciIsIGNvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXRlbV9wYXR0ZXJu IiwgaXRlbV9wYXR0ZXJuLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAicGhvdG9zX2RlZmF1bHRfZmlsdGVyIiwgcGhvdG9zX2RlZmF1bHRfZmlsdGVyLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic291cmNlX2Zp bHRlciIsIHNvdXJjZV9maWx0ZXIgPyBzb3VyY2VfZmlsdGVyIDogIiIsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWFyY2hfZmlsdGVyIiwgc2VhcmNo X2ZpbHRlciA/IHNlYXJjaF9maWx0ZXIgOiAiIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIm9yZGVyIiwgIiIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJvZmZzZXRfbGltaXQiLCAiIiwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgCistICB3aGVyZV9z cGFycWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl93aGVyZSAoc3RhdGUsIFRSVUUsIGZsYWdzKTsK Ky0gIHNwYXJxbCA9IGdfc3RyY29uY2F0ICgiU0VMRUNUIERJU1RJTkNUIENPVU5UKD91cm4pICIs IHdoZXJlX3NwYXJxbCwgTlVMTCk7CisgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9uZXcgKHN0YXRl LCBzcGFycWwpOworIAorICAgcmV0dXJuIHF1ZXJ5OworZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mt c2VhcmNoLXR5cGUtbWFuYWdlci5jIGIvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS1tYW5hZ2VyLmMK K2luZGV4IDg3ZjQ0MWVkLi41Yzg3ZDRhNCAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mtc2VhcmNo LXR5cGUtbWFuYWdlci5jCisrKysgYi9zcmMvcGhvdG9zLXNlYXJjaC10eXBlLW1hbmFnZXIuYwor QEAgLTQxLDEzICs0MSw2IEBAIHN0cnVjdCBfUGhvdG9zU2VhcmNoVHlwZU1hbmFnZXIKKyBHX0RF RklORV9UWVBFIChQaG90b3NTZWFyY2hUeXBlTWFuYWdlciwgcGhvdG9zX3NlYXJjaF90eXBlX21h bmFnZXIsIFBIT1RPU19UWVBFX0JBU0VfTUFOQUdFUik7CisgCisgCistc3RhdGljIGNvbnN0IGdj aGFyICpCTEFDS0xJU1RFRF9NSU1FX1RZUEVTW10gPQorLXsKKy0gICJpbWFnZS9naWYiLAorLSAg ImltYWdlL3gtZXBzIgorLX07CistCistCisgc3RhdGljIGdjaGFyICoKKyBwaG90b3Nfc2VhcmNo X3R5cGVfbWFuYWdlcl9nZXRfZmlsdGVyIChQaG90b3NCYXNlTWFuYWdlciAqbW5nciwgZ2ludCBm bGFncykKKyB7CitAQCAtNjksOSArNjIsOCBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfbWFuYWdlcl9n ZXRfZmlsdGVyIChQaG90b3NCYXNlTWFuYWdlciAqbW5nciwgZ2ludCBmbGFncykKKyAgIHJldHVy biBmaWx0ZXI7CisgfQorIAorLQorLXN0YXRpYyBnY2hhciAqCistcGhvdG9zX3NlYXJjaF90eXBl X21hbmFnZXJfZ2V0X3doZXJlIChQaG90b3NCYXNlTWFuYWdlciAqbW5nciwgZ2ludCBmbGFncykK KytzdGF0aWMgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKgorK3Bob3Rvc19zZWFyY2hfdHlwZV9tYW5h Z2VyX2dldF9zcGFycWxfdGVtcGxhdGUgKFBob3Rvc0Jhc2VNYW5hZ2VyICptbmdyLCBnaW50IGZs YWdzKQorIHsKKyAgIEdPYmplY3QgKnNlYXJjaF90eXBlOworIAorQEAgLTg2LDc0ICs3OCwzOSBA QCBwaG90b3Nfc2VhcmNoX3R5cGVfbWFuYWdlcl9nZXRfd2hlcmUgKFBob3Rvc0Jhc2VNYW5hZ2Vy ICptbmdyLCBnaW50IGZsYWdzKQorICAgZWxzZQorICAgICBzZWFyY2hfdHlwZSA9IHBob3Rvc19i YXNlX21hbmFnZXJfZ2V0X29iamVjdF9ieV9pZCAobW5nciwgUEhPVE9TX1NFQVJDSF9UWVBFX1NU T0NLX0FMTCk7CisgCistICByZXR1cm4gcGhvdG9zX2ZpbHRlcmFibGVfZ2V0X3doZXJlIChQSE9U T1NfRklMVEVSQUJMRSAoc2VhcmNoX3R5cGUpKTsKKysgIHJldHVybiBwaG90b3Nfc2VhcmNoX3R5 cGVfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAoUEhPVE9TX1NFQVJDSF9UWVBFIChzZWFyY2hfdHlwZSkp OworIH0KKyAKKy0KKyBzdGF0aWMgdm9pZAorIHBob3Rvc19zZWFyY2hfdHlwZV9tYW5hZ2VyX2lu aXQgKFBob3Rvc1NlYXJjaFR5cGVNYW5hZ2VyICpzZWxmKQorIHsKKyAgIFBob3Rvc1NlYXJjaFR5 cGUgKnNlYXJjaF90eXBlOworLSAgZ2NoYXIgKml0ZW1fZmlsdGVyOworLSAgZ2NoYXIgKmFsbF9m aWx0ZXI7CistICBnY2hhciAqYmxhY2tsaXN0ZWRfbWltZV90eXBlc19maWx0ZXI7CistICBnY2hh ciAqY29sX2ZpbHRlcjsKKy0gIGdjaGFyICoqc3RydjsKKy0gIGd1aW50IGk7CistICBndWludCBu X2VsZW1lbnRzOworLQorLSAgbl9lbGVtZW50cyA9IEdfTl9FTEVNRU5UUyAoQkxBQ0tMSVNURURf TUlNRV9UWVBFUyk7CistICBzdHJ2ID0gKGdjaGFyICoqKSBnX21hbGxvYzBfbiAobl9lbGVtZW50 cyArIDEsIHNpemVvZiAoZ2NoYXIgKikpOworLSAgZm9yIChpID0gMDsgaSA8IG5fZWxlbWVudHM7 IGkrKykKKy0gICAgc3RydltpXSA9IGdfc3RyZHVwX3ByaW50ZiAoIm5pZTptaW1lVHlwZSg/dXJu KSAhPSAnJXMnIiwgQkxBQ0tMSVNURURfTUlNRV9UWVBFU1tpXSk7CistCistICBibGFja2xpc3Rl ZF9taW1lX3R5cGVzX2ZpbHRlciA9IGdfc3Ryam9pbnYgKCIgJiYgIiwgc3Rydik7CistCistICBp dGVtX2ZpbHRlciA9IGdfc3RyZHVwX3ByaW50ZiAoIihmbjpjb250YWlucyAoP3R5cGUsICdubW0j UGhvdG8nKSAmJiAlcykiLCBibGFja2xpc3RlZF9taW1lX3R5cGVzX2ZpbHRlcik7CistICBjb2xf ZmlsdGVyID0gZ19zdHJkdXBfcHJpbnRmICgiKGZuOmNvbnRhaW5zICg/dHlwZSwgJ25mbyNEYXRh Q29udGFpbmVyJykiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICYmID9jb3Vu dCA+IDAiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICYmIChmbjpzdGFydHMt d2l0aCAobmFvOmlkZW50aWZpZXIgKD91cm4pLCAnJXMnKSIKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICIgICAgIHx8ICg/dXJuID0gbmZvOmltYWdlLWNhdGVnb3J5LXNjcmVlbnNo b3QpKSkiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhPVE9TX1FVRVJZX0NP TExFQ1RJT05TX0lERU5USUZJRVIpOworLSAgYWxsX2ZpbHRlciA9IGdfc3RyZHVwX3ByaW50ZiAo IiglcyB8fCAlcykiLCBjb2xfZmlsdGVyLCBpdGVtX2ZpbHRlcik7CisgCisgICBzZWFyY2hfdHlw ZSA9IHBob3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVsbCAoUEhPVE9TX1NFQVJDSF9UWVBFX1NUT0NL X0FMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJB bGwiKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiP3Vy biBhIHJkZnM6UmVzb3VyY2UuICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiT1BUSU9OQUwgez9pdGVtIGEgbm1tOlBob3RvOyBuaWU6aXNQYXJ0T2YgP3Vy bn0iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbF9m aWx0ZXIpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy ZXNvdXJjZTovLy9vcmcvZ25vbWUvUGhvdG9zL2FsbC5zcGFycWwudGVtcGxhdGUiKTsKKyAgIHBo b3Rvc19iYXNlX21hbmFnZXJfYWRkX29iamVjdCAoUEhPVE9TX0JBU0VfTUFOQUdFUiAoc2VsZiks IEdfT0JKRUNUIChzZWFyY2hfdHlwZSkpOworICAgZ19vYmplY3RfdW5yZWYgKHNlYXJjaF90eXBl KTsKKyAKKyAgIHNlYXJjaF90eXBlID0gcGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxsIChQSE9U T1NfU0VBUkNIX1RZUEVfU1RPQ0tfQ09MTEVDVElPTlMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXygiQWxidW1zIiksCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIj91cm4gYSBuZm86RGF0YUNvbnRhaW5lci4gIgor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI/aXRlbSBhIG5t bTpQaG90bzsgbmllOmlzUGFydE9mID91cm4uIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb2xfZmlsdGVyKTsKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAicmVzb3VyY2U6Ly8vb3JnL2dub21lL1Bob3Rvcy9jb2xs ZWN0aW9ucy5zcGFycWwudGVtcGxhdGUiKTsKKyAgIHBob3Rvc19iYXNlX21hbmFnZXJfYWRkX29i amVjdCAoUEhPVE9TX0JBU0VfTUFOQUdFUiAoc2VsZiksIEdfT0JKRUNUIChzZWFyY2hfdHlwZSkp OworICAgZ19vYmplY3RfdW5yZWYgKHNlYXJjaF90eXBlKTsKKyAKKyAgIHNlYXJjaF90eXBlID0g cGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxsIChQSE9UT1NfU0VBUkNIX1RZUEVfU1RPQ0tfRkFW T1JJVEVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8o IkZhdm9yaXRlcyIpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICI/dXJuIGEgbm1tOlBob3RvOyBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZv cml0ZS4gIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi bGFja2xpc3RlZF9taW1lX3R5cGVzX2ZpbHRlcik7CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgInJlc291cmNlOi8vL29yZy9nbm9tZS9QaG90b3MvZmF2b3Jp dGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSIpOworICAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9hZGRf b2JqZWN0IChQSE9UT1NfQkFTRV9NQU5BR0VSIChzZWxmKSwgR19PQkpFQ1QgKHNlYXJjaF90eXBl KSk7CisgICBnX29iamVjdF91bnJlZiAoc2VhcmNoX3R5cGUpOworIAorICAgc2VhcmNoX3R5cGUg PSBwaG90b3Nfc2VhcmNoX3R5cGVfbmV3X2Z1bGwgKFBIT1RPU19TRUFSQ0hfVFlQRV9TVE9DS19Q SE9UT1MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygi UGhvdG9zIiksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ij91cm4gYSBubW06UGhvdG8iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJsYWNrbGlzdGVkX21pbWVfdHlwZXNfZmlsdGVyKTsKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzb3VyY2U6Ly8vb3JnL2dub21lL1Bo b3Rvcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlIik7CisgICBwaG90b3NfYmFzZV9tYW5hZ2VyX2Fk ZF9vYmplY3QgKFBIT1RPU19CQVNFX01BTkFHRVIgKHNlbGYpLCBHX09CSkVDVCAoc2VhcmNoX3R5 cGUpKTsKKyAgIGdfb2JqZWN0X3VucmVmIChzZWFyY2hfdHlwZSk7CisgCisgICBwaG90b3NfYmFz ZV9tYW5hZ2VyX3NldF9hY3RpdmVfb2JqZWN0X2J5X2lkIChQSE9UT1NfQkFTRV9NQU5BR0VSIChz ZWxmKSwgUEhPVE9TX1NFQVJDSF9UWVBFX1NUT0NLX0FMTCk7CistCistICBnX2ZyZWUgKGl0ZW1f ZmlsdGVyKTsKKy0gIGdfZnJlZSAoYWxsX2ZpbHRlcik7CistICBnX2ZyZWUgKGJsYWNrbGlzdGVk X21pbWVfdHlwZXNfZmlsdGVyKTsKKy0gIGdfZnJlZSAoY29sX2ZpbHRlcik7CistICBnX3N0cmZy ZWV2IChzdHJ2KTsKKyB9CisgCisgCitAQCAtMTYzLDcgKzEyMCw3IEBAIHBob3Rvc19zZWFyY2hf dHlwZV9tYW5hZ2VyX2NsYXNzX2luaXQgKFBob3Rvc1NlYXJjaFR5cGVNYW5hZ2VyQ2xhc3MgKmNs YXNzKQorICAgUGhvdG9zQmFzZU1hbmFnZXJDbGFzcyAqYmFzZV9tYW5hZ2VyX2NsYXNzID0gUEhP VE9TX0JBU0VfTUFOQUdFUl9DTEFTUyAoY2xhc3MpOworIAorICAgYmFzZV9tYW5hZ2VyX2NsYXNz LT5nZXRfZmlsdGVyID0gcGhvdG9zX3NlYXJjaF90eXBlX21hbmFnZXJfZ2V0X2ZpbHRlcjsKKy0g IGJhc2VfbWFuYWdlcl9jbGFzcy0+Z2V0X3doZXJlID0gcGhvdG9zX3NlYXJjaF90eXBlX21hbmFn ZXJfZ2V0X3doZXJlOworKyAgYmFzZV9tYW5hZ2VyX2NsYXNzLT5nZXRfc3BhcnFsX3RlbXBsYXRl ID0gcGhvdG9zX3NlYXJjaF90eXBlX21hbmFnZXJfZ2V0X3NwYXJxbF90ZW1wbGF0ZTsKKyB9Cisg CisgCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5jIGIvc3JjL3Bob3Rvcy1z ZWFyY2gtdHlwZS5jCitpbmRleCA0NGRjNjBlYi4uZjNiYmFlMTUgMTAwNjQ0CistLS0gYS9zcmMv cGhvdG9zLXNlYXJjaC10eXBlLmMKKysrKyBiL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUuYworQEAg LTI1LDI0ICsyNSwyMyBAQAorIAorICNpbmNsdWRlICJwaG90b3MtZmlsdGVyYWJsZS5oIgorICNp bmNsdWRlICJwaG90b3Mtc2VhcmNoLXR5cGUuaCIKKysjaW5jbHVkZSAicGhvdG9zLXNwYXJxbC10 ZW1wbGF0ZS5oIgorIAorIAorIHN0cnVjdCBfUGhvdG9zU2VhcmNoVHlwZQorIHsKKyAgIEdPYmpl Y3QgcGFyZW50X2luc3RhbmNlOworLSAgZ2NoYXIgKmZpbHRlcjsKKyAgIGdjaGFyICppZDsKKyAg IGdjaGFyICpuYW1lOworLSAgZ2NoYXIgKndoZXJlOworKyAgUGhvdG9zU3BhcnFsVGVtcGxhdGUg KnNwYXJxbF90ZW1wbGF0ZTsKKyB9OworIAorIGVudW0KKyB7CisgICBQUk9QXzAsCistICBQUk9Q X0ZJTFRFUiwKKyAgIFBST1BfSUQsCisgICBQUk9QX05BTUUsCistICBQUk9QX1dIRVJFLAorKyAg UFJPUF9TUEFSUUxfVEVNUExBVEUsCisgfTsKKyAKKyBzdGF0aWMgdm9pZCBwaG90b3Nfc2VhcmNo X3R5cGVfZmlsdGVyYWJsZV9pZmFjZV9pbml0IChQaG90b3NGaWx0ZXJhYmxlSW50ZXJmYWNlICpp ZmFjZSk7CitAQCAtNTMsMTQgKzUyLDYgQEAgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKFBob3Rv c1NlYXJjaFR5cGUsIHBob3Rvc19zZWFyY2hfdHlwZSwgR19UWVBFX09CSkVDVCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3Nfc2VhcmNoX3R5 cGVfZmlsdGVyYWJsZV9pZmFjZV9pbml0KSk7CisgCisgCistc3RhdGljIGdjaGFyICoKKy1waG90 b3Nfc2VhcmNoX3R5cGVfZ2V0X2ZpbHRlciAoUGhvdG9zRmlsdGVyYWJsZSAqaWZhY2UpCistewor LSAgUGhvdG9zU2VhcmNoVHlwZSAqc2VsZiA9IFBIT1RPU19TRUFSQ0hfVFlQRSAoaWZhY2UpOwor LSAgcmV0dXJuIGdfc3RyZHVwIChzZWxmLT5maWx0ZXIpOworLX0KKy0KKy0KKyBzdGF0aWMgY29u c3QgZ2NoYXIgKgorIHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfaWQgKFBob3Rvc0ZpbHRlcmFibGUg KmZpbHRlcmFibGUpCisgeworQEAgLTY5LDE0ICs2MCw2IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9n ZXRfaWQgKFBob3Rvc0ZpbHRlcmFibGUgKmZpbHRlcmFibGUpCisgfQorIAorIAorLXN0YXRpYyBn Y2hhciAqCistcGhvdG9zX3NlYXJjaF90eXBlX2dldF93aGVyZSAoUGhvdG9zRmlsdGVyYWJsZSAq aWZhY2UpCisteworLSAgUGhvdG9zU2VhcmNoVHlwZSAqc2VsZiA9IFBIT1RPU19TRUFSQ0hfVFlQ RSAoaWZhY2UpOworLSAgcmV0dXJuIGdfc3RyZHVwIChzZWxmLT53aGVyZSk7CistfQorLQorLQor IHN0YXRpYyBnYm9vbGVhbgorIHBob3Rvc19zZWFyY2hfdHlwZV9pc19zZWFyY2hfY3JpdGVyaW9u IChQaG90b3NGaWx0ZXJhYmxlICppZmFjZSkKKyB7CitAQCAtODQsMTUgKzY3LDIwIEBAIHBob3Rv c19zZWFyY2hfdHlwZV9pc19zZWFyY2hfY3JpdGVyaW9uIChQaG90b3NGaWx0ZXJhYmxlICppZmFj ZSkKKyB9CisgCisgCisrUGhvdG9zU3BhcnFsVGVtcGxhdGUgKgorK3Bob3Rvc19zZWFyY2hfdHlw ZV9nZXRfc3BhcnFsX3RlbXBsYXRlIChQaG90b3NTZWFyY2hUeXBlICpzZWxmKQorK3sKKysgIHJl dHVybiBzZWxmLT5zcGFycWxfdGVtcGxhdGU7CisrfQorKworIHN0YXRpYyB2b2lkCisgcGhvdG9z X3NlYXJjaF90eXBlX2ZpbmFsaXplIChHT2JqZWN0ICpvYmplY3QpCisgeworICAgUGhvdG9zU2Vh cmNoVHlwZSAqc2VsZiA9IFBIT1RPU19TRUFSQ0hfVFlQRSAob2JqZWN0KTsKKyAKKy0gIGdfZnJl ZSAoc2VsZi0+ZmlsdGVyKTsKKyAgIGdfZnJlZSAoc2VsZi0+aWQpOworICAgZ19mcmVlIChzZWxm LT5uYW1lKTsKKy0gIGdfZnJlZSAoc2VsZi0+d2hlcmUpOworKyAgZ19jbGVhcl9vYmplY3QgKCZz ZWxmLT5zcGFycWxfdGVtcGxhdGUpOworIAorICAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc19zZWFy Y2hfdHlwZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAob2JqZWN0KTsKKyB9CitAQCAtMTEzLDYg KzEwMSwxMCBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICpvYmpl Y3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSAqdmFsdWUsCisgICAgICAgZ192YWx1ZV9zZXRfc3Ry aW5nICh2YWx1ZSwgc2VsZi0+bmFtZSk7CisgICAgICAgYnJlYWs7CisgCisrICAgIGNhc2UgUFJP UF9TUEFSUUxfVEVNUExBVEU6CisrICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0ICh2YWx1ZSwgc2Vs Zi0+c3BhcnFsX3RlbXBsYXRlKTsKKysgICAgICBicmVhazsKKysKKyAgICAgZGVmYXVsdDoKKyAg ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwg cHNwZWMpOworICAgICAgIGJyZWFrOworQEAgLTEyNywxMCArMTE5LDYgQEAgcGhvdG9zX3NlYXJj aF90eXBlX3NldF9wcm9wZXJ0eSAoR09iamVjdCAqb2JqZWN0LCBndWludCBwcm9wX2lkLCBjb25z dCBHVmFsdWUgKnYKKyAKKyAgIHN3aXRjaCAocHJvcF9pZCkKKyAgICAgeworLSAgICBjYXNlIFBS T1BfRklMVEVSOgorLSAgICAgIHNlbGYtPmZpbHRlciA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFs dWUpOworLSAgICAgIGJyZWFrOworLQorICAgICBjYXNlIFBST1BfSUQ6CisgICAgICAgc2VsZi0+ aWQgPSBnX3ZhbHVlX2R1cF9zdHJpbmcgKHZhbHVlKTsKKyAgICAgICBicmVhazsKK0BAIC0xMzks OCArMTI3LDggQEAgcGhvdG9zX3NlYXJjaF90eXBlX3NldF9wcm9wZXJ0eSAoR09iamVjdCAqb2Jq ZWN0LCBndWludCBwcm9wX2lkLCBjb25zdCBHVmFsdWUgKnYKKyAgICAgICBzZWxmLT5uYW1lID0g Z192YWx1ZV9kdXBfc3RyaW5nICh2YWx1ZSk7CisgICAgICAgYnJlYWs7CisgCistICAgIGNhc2Ug UFJPUF9XSEVSRToKKy0gICAgICBzZWxmLT53aGVyZSA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFs dWUpOworKyAgICBjYXNlIFBST1BfU1BBUlFMX1RFTVBMQVRFOgorKyAgICAgIHNlbGYtPnNwYXJx bF90ZW1wbGF0ZSA9IGdfb2JqZWN0X3JlZiAoZ192YWx1ZV9nZXRfb2JqZWN0ICh2YWx1ZSkpOwor ICAgICAgIGJyZWFrOworIAorICAgICBkZWZhdWx0OgorQEAgLTE2NSwxNCArMTUzLDYgQEAgcGhv dG9zX3NlYXJjaF90eXBlX2NsYXNzX2luaXQgKFBob3Rvc1NlYXJjaFR5cGVDbGFzcyAqY2xhc3Mp CisgICBvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IHBob3Rvc19zZWFyY2hfdHlwZV9nZXRf cHJvcGVydHk7CisgICBvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IHBob3Rvc19zZWFyY2hf dHlwZV9zZXRfcHJvcGVydHk7CisgCistICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5 IChvYmplY3RfY2xhc3MsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9Q X0ZJTFRFUiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3Bl Y19zdHJpbmcgKCJmaWx0ZXIiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIiIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIodHJ1ZSkiLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9DT05TVFJV Q1RfT05MWSB8IEdfUEFSQU1fV1JJVEFCTEUpKTsKKy0KKyAgIGdfb2JqZWN0X2NsYXNzX2luc3Rh bGxfcHJvcGVydHkgKG9iamVjdF9jbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBST1BfSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3Bh cmFtX3NwZWNfc3RyaW5nICgiaWQiLAorQEAgLTE5MCwxMSArMTcwLDExIEBAIHBob3Rvc19zZWFy Y2hfdHlwZV9jbGFzc19pbml0IChQaG90b3NTZWFyY2hUeXBlQ2xhc3MgKmNsYXNzKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJB TV9DT05TVFJVQ1RfT05MWSB8IEdfUEFSQU1fUkVBRFdSSVRFKSk7CisgCisgICBnX29iamVjdF9j bGFzc19pbnN0YWxsX3Byb3BlcnR5IChvYmplY3RfY2xhc3MsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQUk9QX1dIRVJFLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZyAoIndoZXJlIiwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9TUEFSUUxfVEVNUExBVEUsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0ICgic3BhcnFsLXRl bXBsYXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQSE9UT1NfVFlQRV9TUEFSUUxfVEVNUExBVEUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BBUkFN X0NPTlNUUlVDVF9PTkxZIHwgR19QQVJBTV9XUklUQUJMRSkpOworIH0KKyAKK0BAIC0yMDIsOSAr MTgyLDcgQEAgcGhvdG9zX3NlYXJjaF90eXBlX2NsYXNzX2luaXQgKFBob3Rvc1NlYXJjaFR5cGVD bGFzcyAqY2xhc3MpCisgc3RhdGljIHZvaWQKKyBwaG90b3Nfc2VhcmNoX3R5cGVfZmlsdGVyYWJs ZV9pZmFjZV9pbml0IChQaG90b3NGaWx0ZXJhYmxlSW50ZXJmYWNlICppZmFjZSkKKyB7CistICBp ZmFjZS0+Z2V0X2ZpbHRlciA9IHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfZmlsdGVyOworICAgaWZh Y2UtPmdldF9pZCA9IHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfaWQ7CistICBpZmFjZS0+Z2V0X3do ZXJlID0gcGhvdG9zX3NlYXJjaF90eXBlX2dldF93aGVyZTsKKyAgIGlmYWNlLT5pc19zZWFyY2hf Y3JpdGVyaW9uID0gcGhvdG9zX3NlYXJjaF90eXBlX2lzX3NlYXJjaF9jcml0ZXJpb247CisgfQor IAorQEAgLTIxNywxMiArMTk1LDEzIEBAIHBob3Rvc19zZWFyY2hfdHlwZV9uZXcgKGNvbnN0IGdj aGFyICppZCwgY29uc3QgZ2NoYXIgKm5hbWUpCisgCisgCisgUGhvdG9zU2VhcmNoVHlwZSAqCist cGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxsIChjb25zdCBnY2hhciAqaWQsIGNvbnN0IGdjaGFy ICpuYW1lLCBjb25zdCBnY2hhciAqd2hlcmUsIGNvbnN0IGdjaGFyICpmaWx0ZXIpCisrcGhvdG9z X3NlYXJjaF90eXBlX25ld19mdWxsIChjb25zdCBnY2hhciAqaWQsIGNvbnN0IGdjaGFyICpuYW1l LCBjb25zdCBnY2hhciAqdGVtcGxhdGVfcGF0aCkKKyB7CisrICBnX2F1dG9wdHIgKFBob3Rvc1Nw YXJxbFRlbXBsYXRlKSB0ZW1wbGF0ZSA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfbmV3ICh0ZW1w bGF0ZV9wYXRoKTsKKysKKyAgIHJldHVybiBnX29iamVjdF9uZXcgKFBIT1RPU19UWVBFX1NFQVJD SF9UWVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgImlkIiwgaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAibmFtZSIsIG5hbWUsCistICAgICAgICAgICAgICAgICAgICAgICAiZmlsdGVy IiwgZmlsdGVyLAorLSAgICAgICAgICAgICAgICAgICAgICAgIndoZXJlIiwgd2hlcmUsCisrICAg ICAgICAgICAgICAgICAgICAgICAic3BhcnFsLXRlbXBsYXRlIiwgdGVtcGxhdGUsCisgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMKTsKKyB9CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zZWFy Y2gtdHlwZS5oIGIvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5oCitpbmRleCAyZjcxMzViZC4uN2Q2 OTlkZDQgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXNlYXJjaC10eXBlLmgKKysrKyBiL3NyYy9w aG90b3Mtc2VhcmNoLXR5cGUuaAorQEAgLTI0LDYgKzI0LDcgQEAKKyAjZGVmaW5lIFBIT1RPU19T RUFSQ0hfVFlQRV9ICisgCisgI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisrI2luY2x1ZGUgInBo b3Rvcy1zcGFycWwtdGVtcGxhdGUuaCIKKyAKKyBHX0JFR0lOX0RFQ0xTCisgCitAQCAtMzksOCAr NDAsOSBAQCBQaG90b3NTZWFyY2hUeXBlICAgICpwaG90b3Nfc2VhcmNoX3R5cGVfbmV3ICAgICAg ICAgICAgICAgIChjb25zdCBnY2hhciAqaWQsIGNvbgorIAorIFBob3Rvc1NlYXJjaFR5cGUgICAg KnBob3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVsbCAgICAgICAgICAgKGNvbnN0IGdjaGFyICppZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBnY2hhciAqbmFtZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqd2hlcmUsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgZ2NoYXIgKmZpbHRlcik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnRlbXBsYXRlX3BhdGgpOworKwor K1Bob3Rvc1NwYXJxbFRlbXBsYXRlICpwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0X3NwYXJxbF90ZW1w bGF0ZSAoUGhvdG9zU2VhcmNoVHlwZSAqc2VsZik7CisgCisgR19FTkRfREVDTFMKKyAKK2RpZmYg LS1naXQgYS9zcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5jIGIvc3JjL3Bob3Rvcy1zcGFycWwt dGVtcGxhdGUuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi5iMzI0Mzdj MAorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuYworQEAg LTAsMCArMSwxODcgQEAKKysvKgorKyAqIFBob3RvcyAtIGFjY2Vzcywgb3JnYW5pemUgYW5kIHNo YXJlIHlvdXIgcGhvdG9zIG9uIEdOT01FCisrICogQ29weXJpZ2h0IMKpIDIwMjAgU2FtIFRodXJz ZmllbGQgPHNhbUBhZnVlcmEubWUudWs+CisrICoKKysgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAqIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CisrICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKysgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorKyAqCisrICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICogR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysgKgorKyAqIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisr ICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisrICovCisrCisrI2luY2x1ZGUgPGdpby9naW8uaD4KKysKKysjaW5j bHVkZSAicGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oIgorKworKyNkZWZpbmUgTUFYX1NQQVJRTF9U RU1QTEFURV9TSVpFICgxMDI0ICogMTApCisrCisrc3RydWN0IF9QaG90b3NTcGFycWxUZW1wbGF0 ZSB7CisrICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKysgIGdjaGFyICp0ZW1wbGF0ZV9wYXRo OworKyAgZ2NoYXIgKnRlbXBsYXRlX3RleHQ7CisrfTsKKysKKytHX0RFRklORV9UWVBFIChQaG90 b3NTcGFycWxUZW1wbGF0ZSwgcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZSwgR19UWVBFX09CSkVDVCkK KysKKytlbnVtIHsKKysgIFBST1BfMCwKKysgIFBST1BfVEVNUExBVEVfUEFUSCwKKysgIE5fUFJP UFMKKyt9OworKworK1Bob3Rvc1NwYXJxbFRlbXBsYXRlICoKKytwaG90b3Nfc3BhcnFsX3RlbXBs YXRlX25ldyAoY29uc3QgZ2NoYXIgKnRlbXBsYXRlX3BhdGgpCisreworKyAgcmV0dXJuIGdfb2Jq ZWN0X25ldyAoUEhPVE9TX1RZUEVfU1BBUlFMX1RFTVBMQVRFLCAidGVtcGxhdGUtcGF0aCIsIHRl bXBsYXRlX3BhdGgsIE5VTEwpOworK30KKysKKytzdGF0aWMgdm9pZAorK3Bob3Rvc19zcGFycWxf dGVtcGxhdGVfY29uc3RydWN0ZWQgKEdPYmplY3QgKm9iamVjdCkKKyt7CisrICBQaG90b3NTcGFy cWxUZW1wbGF0ZSAqc2VsZiA9IFBIT1RPU19TUEFSUUxfVEVNUExBVEUgKG9iamVjdCk7CisrICBn X2F1dG9wdHIgKEdGaWxlKSBmaWxlID0gTlVMTDsKKysgIGdfYXV0b3B0ciAoR0ZpbGVJbnB1dFN0 cmVhbSkgc3RyZWFtID0gTlVMTDsKKysgIGdjaGFyIGJ1ZmZlcltNQVhfU1BBUlFMX1RFTVBMQVRF X1NJWkUgKyAxXTsKKysgIGdzaXplIGJ5dGVzX3JlYWQ7CisrICBnX2F1dG9wdHIgKEdFcnJvcikg ZXJyb3IgPSBOVUxMOworKworKyAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc19zcGFycWxfdGVtcGxh dGVfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0ZWQgKG9iamVjdCk7CisrCisrICBmaWxlID0gZ19m aWxlX25ld19mb3JfdXJpIChzZWxmLT50ZW1wbGF0ZV9wYXRoKTsKKysKKysgIHN0cmVhbSA9IGdf ZmlsZV9yZWFkIChmaWxlLCBOVUxMLCAmZXJyb3IpOworKworKyAgaWYgKCFzdHJlYW0pCisrICAg IHsKKysgICAgICBnX2NyaXRpY2FsICgiRmFpbGVkIHRvIG9wZW4gdGVtcGxhdGUgJXM6ICVzIiwg c2VsZi0+dGVtcGxhdGVfcGF0aCwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICB9CisrCisrICBnX2lu cHV0X3N0cmVhbV9yZWFkX2FsbCAoR19JTlBVVF9TVFJFQU0gKHN0cmVhbSksIGJ1ZmZlciwgTUFY X1NQQVJRTF9URU1QTEFURV9TSVpFLCAmYnl0ZXNfcmVhZCwgTlVMTCwgJmVycm9yKTsKKysKKysg IGlmIChlcnJvcikKKysgICAgeworKyAgICAgIGdfY3JpdGljYWwgKCJGYWlsZWQgdG8gcmVhZCB0 ZW1wbGF0ZSAlczogJXMiLCBzZWxmLT50ZW1wbGF0ZV9wYXRoLCBlcnJvci0+bWVzc2FnZSk7Cisr ICAgIH0KKysKKysgIGJ1ZmZlcltieXRlc19yZWFkXSA9ICdcMCc7CisrCisrICBzZWxmLT50ZW1w bGF0ZV90ZXh0ICA9IGdfc3RyZHVwIChidWZmZXIpOworK30KKysKKytzdGF0aWMgdm9pZAorK3Bo b3Rvc19zcGFycWxfdGVtcGxhdGVfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKKyt7CisrICBH X09CSkVDVF9DTEFTUyAocGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9wYXJlbnRfY2xhc3MpLT5maW5h bGl6ZSAob2JqZWN0KTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytwaG90b3Nfc3BhcnFsX3RlbXBs YXRlX2dldF9wcm9wZXJ0eSAoR09iamVjdCAgICAqb2JqZWN0LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICBwcm9wX2lkLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHVmFsdWUgICAgICp2YWx1ZSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAqcHNwZWMpCisreworKyAgUGhvdG9z U3BhcnFsVGVtcGxhdGUgKnNlbGYgPSBQSE9UT1NfU1BBUlFMX1RFTVBMQVRFIChvYmplY3QpOwor KworKyAgc3dpdGNoIChwcm9wX2lkKQorKyAgICB7CisrICAgIGNhc2UgUFJPUF9URU1QTEFURV9Q QVRIOgorKyAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyAodmFsdWUsIHNlbGYtPnRlbXBsYXRlX3Bh dGgpOworKyAgICAgIGJyZWFrOworKworKyAgICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dB Uk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgIH0K Kyt9CisrCisrc3RhdGljIHZvaWQKKytwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX3NldF9wcm9wZXJ0 eSAoR09iamVjdCAgICAgICpvYmplY3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGd1aW50ICAgICAgICAgcHJvcF9pZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgR1ZhbHVlICp2YWx1ZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAgICpwc3BlYykKKyt7CisrICBQaG90b3NTcGFycWxU ZW1wbGF0ZSAqc2VsZiA9IFBIT1RPU19TUEFSUUxfVEVNUExBVEUgKG9iamVjdCk7CisrCisrICBz d2l0Y2ggKHByb3BfaWQpCisrICAgIHsKKysgICAgY2FzZSBQUk9QX1RFTVBMQVRFX1BBVEg6Cisr ICAgICAgc2VsZi0+dGVtcGxhdGVfcGF0aCA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFsdWUpOwor KyAgICAgIGJyZWFrOworKworKyAgICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5W QUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgIH0KKyt9Cisr Cisrc3RhdGljIHZvaWQKKytwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2NsYXNzX2luaXQgKFBob3Rv c1NwYXJxbFRlbXBsYXRlQ2xhc3MgKmtsYXNzKQorK3sKKysgIEdPYmplY3RDbGFzcyAqb2JqZWN0 X2NsYXNzID0gR19PQkpFQ1RfQ0xBU1MgKGtsYXNzKTsKKysKKysgIG9iamVjdF9jbGFzcy0+Y29u c3RydWN0ZWQgPSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2NvbnN0cnVjdGVkOworKyAgb2JqZWN0 X2NsYXNzLT5maW5hbGl6ZSA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZmluYWxpemU7CisrICBv YmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZ2V0X3By b3BlcnR5OworKyAgb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkgPSBwaG90b3Nfc3BhcnFsX3Rl bXBsYXRlX3NldF9wcm9wZXJ0eTsKKysKKysgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy dHkgKG9iamVjdF9jbGFzcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBS T1BfVEVNUExBVEVfUEFUSCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdf cGFyYW1fc3BlY19zdHJpbmcgKCJ0ZW1wbGF0ZS1wYXRoIiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZW1wbGF0ZSBwYXRoIiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQ YXRoIHRvIHRoZSB0ZW1wbGF0ZSBmaWxlLiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9DT05TVFJVQ1RfT05M WSB8IEdfUEFSQU1fUkVBRFdSSVRFKSk7CisrfQorKworK3N0YXRpYyB2b2lkCisrcGhvdG9zX3Nw YXJxbF90ZW1wbGF0ZV9pbml0IChQaG90b3NTcGFycWxUZW1wbGF0ZSAqc2VsZikKKyt7CisrfQor KworKworK2djaGFyICoKKytwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2dldF9zcGFycWwgKFBob3Rv c1NwYXJxbFRlbXBsYXRlICpzZWxmLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgZ2NoYXIgICAgICAgICAgKmZpcnN0X2JpbmRpbmdfbmFtZSwgLi4uKQorK3sKKysg IHZhX2xpc3QgdmE7CisrICBnY2hhciAqc3BhcnFsOworKworKyAgc3BhcnFsID0gc2VsZi0+dGVt cGxhdGVfdGV4dDsKKysKKysgIC8qIEZJWE1FOiB0aGlzIGlzIGFuIGluZWZmaWNlbnQgd2F5IHRv IGRvIHRlbXBsYXRlIHN1YnN0aXR1dGlvbnMKKysgICAqIGJlY2F1c2Ugd2UgYWxsb2NhdGUgYW5k IGZyZWUgYSBjb3B5IG9mIHRoZSBzdHJpbmcgZm9yIGVhY2ggYmluZGluZy4KKysgICAqIFdlIHNo b3VsZCBjaGVjayBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdGVtcGxhdGUtZ2xpYi8K KysgICAqLworKyAgaWYgKGZpcnN0X2JpbmRpbmdfbmFtZSkKKysgICAgeworKyAgICAgIEdSZWdl eCAqcmVnZXg7CisrICAgICAgZ2NoYXIgKm5hbWVfcmVnZXg7CisrICAgICAgY29uc3QgZ2NoYXIg Km5hbWU7CisrICAgICAgY29uc3QgZ2NoYXIgKnZhbHVlOworKworKyAgICAgIHZhX3N0YXJ0ICh2 YSwgZmlyc3RfYmluZGluZ19uYW1lKTsKKysgICAgICBuYW1lID0gZmlyc3RfYmluZGluZ19uYW1l OworKyAgICAgIGRvIHsKKysgICAgICAgIHZhbHVlID0gdmFfYXJnICh2YSwgY29uc3QgZ2NoYXIg Kik7CisrCisrICAgICAgICBpZiAodmFsdWUgPT0gTlVMTCkKKysgICAgICAgICAgeworKyAgICAg ICAgICAgIGdfY3JpdGljYWwgKCJNaXNzaW5nIHZhbHVlIGZvciBhcmd1bWVudCBcIiVzXCIiLCBu YW1lKTsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgfQorKworKyAgICAgICAgbmFt ZV9yZWdleCA9IGdfc3RyZHVwX3ByaW50ZiAoInt7XFxzPyVzXFxzP319IiwgbmFtZSk7CisrICAg ICAgICByZWdleCA9IGdfcmVnZXhfbmV3IChuYW1lX3JlZ2V4LCAwLCAwLCBOVUxMKTsKKysgICAg ICAgIHNwYXJxbCA9IGdfcmVnZXhfcmVwbGFjZV9saXRlcmFsIChyZWdleCwgc3BhcnFsLCAtMSwg MCwgdmFsdWUsIDAsIE5VTEwpIDsKKysgICAgICB9IHdoaWxlICgobmFtZSA9IHZhX2FyZyAodmEs IGNvbnN0IGdjaGFyICopKSk7CisrCisrICAgICAgdmFfZW5kICh2YSk7CisrICAgIH0KKysKKysg IHJldHVybiBzcGFycWw7CisrfQorZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mtc3BhcnFsLXRlbXBs YXRlLmggYi9zcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oCituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMDAuLjY2MzUxYjM4CistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvcGhv dG9zLXNwYXJxbC10ZW1wbGF0ZS5oCitAQCAtMCwwICsxLDM4IEBACisrLyoKKysgKiBQaG90b3Mg LSBhY2Nlc3MsIG9yZ2FuaXplIGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRQorKyAqIENv cHlyaWdodCDCqSAyMDIwIFNhbSBUaHVyc2ZpZWxkIDxzYW1AYWZ1ZXJhLm1lLnVrPgorKyAqCisr ICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKysgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICogKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisrICoKKysgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKyAqLworKworKyNwcmFn bWEgb25jZQorKworKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorKworK0dfQkVHSU5fREVDTFMK KysKKysjZGVmaW5lIFBIT1RPU19UWVBFX1NQQVJRTF9URU1QTEFURSAocGhvdG9zX3NwYXJxbF90 ZW1wbGF0ZV9nZXRfdHlwZSgpKQorKworK0dfREVDTEFSRV9GSU5BTF9UWVBFIChQaG90b3NTcGFy cWxUZW1wbGF0ZSwgcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZSwgUEhPVE9TLCBTUEFSUUxfVEVNUExB VEUsIEdPYmplY3QpCisrCisrc3RydWN0IF9QaG90b3NTcGFycWxUZW1wbGF0ZUNsYXNzCisrewor KyAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKKyt9OworKworK1Bob3Rvc1NwYXJxbFRlbXBs YXRlICpwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX25ldyAoY29uc3QgZ2NoYXIgKnRlbXBsYXRlX3Bh dGgpOworKworK2djaGFyICpwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2dldF9zcGFycWwgKFBob3Rv c1NwYXJxbFRlbXBsYXRlICpzZWxmLCBjb25zdCBnY2hhciAqZmlyc3RfYmluZGluZ19uYW1lLCAu Li4pICBHX0dOVUNfTlVMTF9URVJNSU5BVEVEOworKworK0dfRU5EX0RFQ0xTCitkaWZmIC0tZ2l0 IGEvc3JjL3Bob3Rvcy5ncmVzb3VyY2UueG1sIGIvc3JjL3Bob3Rvcy5ncmVzb3VyY2UueG1sCitp bmRleCAxMDE1YjExZC4uMzllNmQ4NDIgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLmdyZXNvdXJj ZS54bWwKKysrKyBiL3NyYy9waG90b3MuZ3Jlc291cmNlLnhtbAorQEAgLTM1LDYgKzM1LDEwIEBA CisgICAgIDxmaWxlIGFsaWFzPSJzZWxlY3Rpb24tdG9vbGJhci51aSIgcHJlcHJvY2Vzcz0ieG1s LXN0cmlwYmxhbmtzIiBjb21wcmVzc2VkPSJ0cnVlIj5waG90b3Mtc2VsZWN0aW9uLXRvb2xiYXIu dWk8L2ZpbGU+CisgICAgIDxmaWxlIGFsaWFzPSJzaGFyZS1kaWFsb2cudWkiIHByZXByb2Nlc3M9 InhtbC1zdHJpcGJsYW5rcyIgY29tcHJlc3NlZD0idHJ1ZSI+cGhvdG9zLXNoYXJlLWRpYWxvZy51 aTwvZmlsZT4KKyAgICAgPGZpbGUgYWxpYXM9Inpvb20tY29udHJvbHMudWkiIHByZXByb2Nlc3M9 InhtbC1zdHJpcGJsYW5rcyIgY29tcHJlc3NlZD0idHJ1ZSI+cGhvdG9zLXpvb20tY29udHJvbHMu dWk8L2ZpbGU+CisrICAgIDxmaWxlIGFsaWFzPSJhbGwuc3BhcnFsLnRlbXBsYXRlIj5xdWVyaWVz L2FsbC5zcGFycWwudGVtcGxhdGU8L2ZpbGU+CisrICAgIDxmaWxlIGFsaWFzPSJjb2xsZWN0aW9u cy5zcGFycWwudGVtcGxhdGUiPnF1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlPC9m aWxlPgorKyAgICA8ZmlsZSBhbGlhcz0iZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSI+ cXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlPC9maWxlPgorKyAgICA8Zmls ZSBhbGlhcz0icGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSI+cXVlcmllcy9waG90b3Muc3BhcnFsLnRl bXBsYXRlPC9maWxlPgorICAgPC9ncmVzb3VyY2U+CisgCisgICA8Z3Jlc291cmNlIHByZWZpeD0i L29yZy9nbm9tZS9QaG90b3MvZ3RrIj4KK2RpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9hbGwuc3Bh cnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQorbmV3IGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4xY2VmOThlOAorLS0tIC9kZXYvbnVsbAorKysr IGIvc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQorQEAgLTAsMCArMSwzMSBAQAorK1NF TEVDVCB7e3Byb2plY3Rpb259fQorK3sKKysgICAgeworKyAgICAgICAgU0VMRUNUIHt7cHJvamVj dGlvbn19CisrICAgICAgICB7CisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICBTRUxF Q1QgP3VybiBDT1VOVCg/aXRlbSkgQVMgP2NvdW50CisrICAgICAgICAgICAgICAgIHsKKysgICAg ICAgICAgICAgICAgICAgID91cm4gYSBuZm86RGF0YUNvbnRhaW5lci4KKysgICAgICAgICAgICAg ICAgICAgID9pdGVtIGEgbm1tOlBob3RvOyBuaWU6aXNQYXJ0T2YgP3Vybi4KKysgICAgICAgICAg ICAgICAgfSBHUk9VUCBCWSA/dXJuCisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIEZJTFRF UiAoP2NvdW50ID4gMCAmJiB7e2NvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzZWFy Y2hfZmlsdGVyfX0pCisrICAgICAgICB9CisrICAgICAgICBHUk9VUCBCWSA/dXJuCisrICAgIH0K KysgICAgVU5JT04KKysgICAgeworKyAgICAgICAgU0VMRUNUIHt7cHJvamVjdGlvbn19CisrICAg ICAgICB7CisrICAgICAgICAgICAgP3VybiBhIG5tbTpQaG90byAuCisrICAgICAgICAgICAgT1BU SU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9yID9jcmVhdG9yIC4gfQorKyAgICAgICAgICAgIE9QVElP TkFMIHsgP3VybiBuY286cHVibGlzaGVyID9wdWJsaXNoZXIgLiB9CisrICAgICAgICAgICAge3tp dGVtX3BhdHRlcm59fQorKyAgICAgICAgICAgIEZJTFRFUiAoe3twaG90b3NfZGVmYXVsdF9maWx0 ZXJ9fSAmJiB7e3NvdXJjZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKysgICAgICAg IH0KKysgICAgICAgIEdST1VQIEJZID91cm4KKysgICAgfQorK30KKyt7e29yZGVyfX0KKyt7e29m ZnNldF9saW1pdH19CitkaWZmIC0tZ2l0IGEvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFs LnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlCituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjIwYjM1Y2Q2CistLS0gL2Rldi9udWxs CisrKysgYi9zcmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUKK0BAIC0wLDAg KzEsMTQgQEAKKytTRUxFQ1Qge3twcm9qZWN0aW9ufX0KKyt7CisrICAgIHsKKysgICAgICAgIFNF TEVDVCA/dXJuIENPVU5UKD9pdGVtKSBBUyA/Y291bnQKKysgICAgICAgIHsKKysgICAgICAgICAg ICA/dXJuIGEgbmZvOkRhdGFDb250YWluZXIuCisrICAgICAgICAgICAgP2l0ZW0gYSBubW06UGhv dG87IG5pZTppc1BhcnRPZiA/dXJuLgorKyAgICAgICAgfSBHUk9VUCBCWSA/dXJuCisrICAgIH0K KysgICAgRklMVEVSICg/Y291bnQgPiAwICYmIHt7Y29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXJ9 fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKyt9CisrR1JPVVAgQlkgP3VybgorK3t7b3JkZXJ9fQor K3t7b2Zmc2V0X2xpbWl0fX0KK2RpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9mYXZvcml0ZS1waG90 b3Muc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50 ZW1wbGF0ZQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4wODg1YTA4YQor LS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50 ZW1wbGF0ZQorQEAgLTAsMCArMSwxMiBAQAorK1NFTEVDVCB7e3Byb2plY3Rpb259fQorK3sKKysg ICAgP3VybiBhIG5tbTpQaG90byAuCisrICAgID91cm4gYSBubW06UGhvdG87IG5hbzpoYXNUYWcg bmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlIC4KKysgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpj cmVhdG9yID9jcmVhdG9yIC4gfQorKyAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/ cHVibGlzaGVyIC4gfQorKyAgICB7e2l0ZW1fcGF0dGVybn19CisrICAgIEZJTFRFUiAoe3twaG90 b3NfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NvdXJjZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0 ZXJ9fSkKKyt9CisrR1JPVVAgQlkgP3VybgorK3t7b3JkZXJ9fQorK3t7b2Zmc2V0X2xpbWl0fX0K K2RpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1 ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDAwMDAwMDAwLi40ZWIxMGI3NAorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL3F1ZXJpZXMvcGhv dG9zLnNwYXJxbC50ZW1wbGF0ZQorQEAgLTAsMCArMSwxMSBAQAorK1NFTEVDVCB7e3Byb2plY3Rp b259fQorK3sKKysgICAgP3VybiBhIG5tbTpQaG90byAuCisrICAgIE9QVElPTkFMIHsgP3VybiBu Y286Y3JlYXRvciA/Y3JlYXRvciAuIH0KKysgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJsaXNo ZXIgP3B1Ymxpc2hlciAuIH0KKysgICAge3tpdGVtX3BhdHRlcm59fQorKyAgICBGSUxURVIgKHt7 cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hf ZmlsdGVyfX0pCisrfQorK0dST1VQIEJZID91cm4KKyt7e29yZGVyfX0KKyt7e29mZnNldF9saW1p dH19CistLSAKK0dpdExhYgorCisKK0Zyb20gZDYxZDQ0MGVmZTM0MGJkYTRlMTk1ZDY0MDA2NmZi MjkyMjBkMGNiNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNhbSBUaHVyc2ZpZWxk IDxzYW1AYWZ1ZXJhLm1lLnVrPgorRGF0ZTogU2F0LCAyMyBNYXkgMjAyMCAxMzozNjoyNSArMDIw MAorU3ViamVjdDogW1BBVENIIDQvNF0gUG9ydCB0byBUcmFja2VyIDMKKworTm90YWJsZSBjaGFu Z2VzOgorCisgICogVXNlciBkYXRhIChmYXZvdXJpdGVzLCBhbGJ1bXMpIGlzIG5vdyBzdG9yZWQg aW4gYSBwcml2YXRlIGRhdGFiYXNlIGluCisgICAgfi8ubG9jYWwvc2hhcmUvZ25vbWUtcGhvdG9z LiBUaGlzIGlzIGNvbWJpbmVkIHdpdGggdGhlIFRyYWNrZXIgTWluZXIKKyAgICBGUyBpbmRleCBv ZiBwaG90b3MgYXQgcXVlcnkgdGltZS4KKyAgKiBJbnNpZGUgRmxhdHBhaywgdGhlIGFwcCBjb25u ZWN0cyB0byBUcmFja2VyIHZpYSB0aGUgbmV3CisgICAgeGRnLXRyYWNrZXItcG9ydGFsIGluc3Rl YWQgb2YgdGFsa2luZyBkaXJlY3RseSBvdmVyIEQtQnVzLiBBY2Nlc3MgaXMKKyAgICBsaW1pdGVk IGJ5IHRoZSBwb3J0YWwgc28gdGhlIGFwcCBjYW4gb25seSBzZWUgdGhlIFBpY3R1cmVzIGdyYXBo LgorICAqIFRoZSBGbGF0cGFrIGJ1aWxkIGNhbiB1c2UgYSBidW5kbGVkIHZlcnNpb24gb2YgVHJh Y2tlciBNaW5lcnMsIGlmIGEKKyAgICBzdWl0YWJsZSB2ZXJzaW9uIGlzIG5vdCBhdmFpbGFibGUg b24gdGhlIGhvc3QuCisgICogQ2hhbmdlIGRldGVjdGlvbiBpcyBkb25lIHVzaW5nIFRyYWNrZXJO b3RpZmllciBpbnN0ZWFkIG9mIHdhdGNoaW5nCisgICAgdGhlIEdyYXBoVXBkYXRlZCBELUJ1cyBz aWduYWwgZGlyZWN0bHkuCisKK0Nsb3NlcyBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUv Z25vbWUtcGhvdG9zLy0vaXNzdWVzLzU5CitDbG9zZXMgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3Jn L0dOT01FL2dub21lLXBob3Rvcy8tL2lzc3Vlcy8xNTIKKy0tLQorIGRhdGEvbWVzb24uYnVpbGQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCisgZGF0YS90cmFja2VyL21lc29u LmJ1aWxkICAgICAgICAgICAgICAgICAgICAgIHwgIDMzICsrCisgLi4uZS5QaG90b3MuVHJhY2tl cjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlLmluIHwgICA3ICsKKyAuLi5vbWUuUGhvdG9zLlRyYWNr ZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UuaW4gfCAgIDcgKworIGRhdGEvdHJhY2tlci9vcmcuZ25v bWUuUGhvdG9zLmRvbWFpbi5ydWxlLmluICB8ICAyMCArCisgZmxhdHBhay9vcmcuZ25vbWUuUGhv dG9zLmpzb24gICAgICAgICAgICAgICAgIHwgIDU1ICstCisgbWVzb24uYnVpbGQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICstCisgc3JjL21lc29uLmJ1aWxkICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE5ICstCisgLi4uZnJlZWRlc2t0b3AuVHJhY2tl cjMuTWluZXIuRmlsZXMuSW5kZXgueG1sIHwgIDExICsKKyBzcmMvb3JnLmZyZWVkZXNrdG9wLlRy YWNrZXIzLk1pbmVyLnhtbCAgICAgICAgfCAgNTYgKysrCisgc3JjL3Bob3Rvcy1hcHBsaWNhdGlv bi5jICAgICAgICAgICAgICAgICAgICAgIHwgMTg0ICsrKy0tLS0KKyBzcmMvcGhvdG9zLWJhc2Ut aXRlbS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTggKy0KKyBzcmMvcGhvdG9zLWluZGV4 aW5nLW5vdGlmaWNhdGlvbi5jICAgICAgICAgICAgfCAgNTMgKy0KKyBzcmMvcGhvdG9zLWl0ZW0t bWFuYWdlci5jICAgICAgICAgICAgICAgICAgICAgfCAgNjkgKy0tCisgc3JjL3Bob3Rvcy1xdWFy a3MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIwICstCisgc3JjL3Bob3Rvcy1xdWVy eS1idWlsZGVyLmMgICAgICAgICAgICAgICAgICAgIHwgMTQ4ICsrKystLQorIHNyYy9waG90b3Mt c2VhcmNoLWNvbnRleHQuYyAgICAgICAgICAgICAgICAgICB8ICAgMyArCisgc3JjL3Bob3Rvcy1z ZWFyY2gtY29udGV4dC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKKyBzcmMvcGhvdG9zLXNl YXJjaC1tYXRjaC1tYW5hZ2VyLmMgICAgICAgICAgICAgfCAgIDIgKy0KKyBzcmMvcGhvdG9zLXNv dXJjZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KKyBzcmMvcGhvdG9zLXRy YWNrZXItY2hhbmdlLWV2ZW50LmMgICAgICAgICAgICAgfCAxMzYgLS0tLS0KKyBzcmMvcGhvdG9z LXRyYWNrZXItY2hhbmdlLWV2ZW50LmggICAgICAgICAgICAgfCAgNjQgLS0tCisgc3JjL3Bob3Rv cy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmMgICAgICAgICAgIHwgNDY4IC0tLS0tLS0tLS0tLS0t LS0tLQorIHNyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5oICAgICAgICAgICB8ICA0 MiAtLQorIHNyYy9waG90b3MtdHJhY2tlci1jb250cm9sbGVyLmMgICAgICAgICAgICAgICB8ICAx MiArLQorIHNyYy9waG90b3MtdHJhY2tlci1leHRyYWN0LXByaW9yaXR5LnhtbCAgICAgICB8ICAg MiArLQorIHNyYy9waG90b3MtdHJhY2tlci1pbXBvcnQtY29udHJvbGxlci5jICAgICAgICB8ICA4 NSArKy0tCisgc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmMgICAgICAgICAgICAgICAgICAgIHwg MjA2ICsrKysrKystCisgc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmggICAgICAgICAgICAgICAg ICAgIHwgICA3ICsKKyBzcmMvcGhvdG9zLXRyYWNrZXItcmVzb3VyY2VzLnhtbCAgICAgICAgICAg ICAgfCAgMzEgLS0KKyBzcmMvcGhvdG9zLXV0aWxzLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMjQgKy0KKyBzcmMvcGhvdG9zLXV0aWxzLmggICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KKyBzcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlICAgICAgICAgICAg ICAgfCAgMzQgKy0KKyBzcmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUgICAg ICAgfCAgMjAgKy0KKyBzcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRl ICAgfCAgMjAgKy0KKyBzcmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlICAgICAgICAg ICAgfCAgMjIgKy0KKyAzNiBmaWxlcyBjaGFuZ2VkLCA3NTQgaW5zZXJ0aW9ucygrKSwgMTE0NiBk ZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZGF0YS90cmFja2VyL21lc29uLmJ1aWxk CisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLlRyYWNr ZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZS5pbgorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkYXRhL3Ry YWNrZXIvb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5GaWxlcy5zZXJ2aWNlLmluCisg Y3JlYXRlIG1vZGUgMTAwNjQ0IGRhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLmRvbWFpbi5y dWxlLmluCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMu TWluZXIuRmlsZXMuSW5kZXgueG1sCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9vcmcuZnJlZWRl c2t0b3AuVHJhY2tlcjMuTWluZXIueG1sCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9waG90b3Mt dHJhY2tlci1jaGFuZ2UtZXZlbnQuYworIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvcGhvdG9zLXRy YWNrZXItY2hhbmdlLWV2ZW50LmgKKyBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3Bob3Rvcy10cmFj a2VyLWNoYW5nZS1tb25pdG9yLmMKKyBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3Bob3Rvcy10cmFj a2VyLWNoYW5nZS1tb25pdG9yLmgKKyBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3Bob3Rvcy10cmFj a2VyLXJlc291cmNlcy54bWwKKworZGlmZiAtLWdpdCBhL2RhdGEvbWVzb24uYnVpbGQgYi9kYXRh L21lc29uLmJ1aWxkCitpbmRleCA3ODk4YjBjYy4uZjBkODVkNGIgMTAwNjQ0CistLS0gYS9kYXRh L21lc29uLmJ1aWxkCisrKysgYi9kYXRhL21lc29uLmJ1aWxkCitAQCAtNTQsMyArNTQsNSBAQCBp bnN0YWxsX2RhdGEoCisgICBwaG90b3NfbmFtZXNwYWNlLnRvX2xvd2VyKCkgKyAnLmdzY2hlbWEu eG1sJywKKyAgIGluc3RhbGxfZGlyOiBqb2luX3BhdGhzKHBob3Rvc19kYXRhZGlyLCAnZ2xpYi0y LjAnLCAnc2NoZW1hcycpLAorICkKKysKKytzdWJkaXIoJ3RyYWNrZXInKQorZGlmZiAtLWdpdCBh L2RhdGEvdHJhY2tlci9tZXNvbi5idWlsZCBiL2RhdGEvdHJhY2tlci9tZXNvbi5idWlsZAorbmV3 IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi5hY2NjOTljMgorLS0tIC9kZXYvbnVs bAorKysrIGIvZGF0YS90cmFja2VyL21lc29uLmJ1aWxkCitAQCAtMCwwICsxLDMzIEBACisrIyBG aWxlcyBuZWVkZWQgZm9yIHJ1bm5pbmcgVHJhY2tlciBpbnNpZGUgdGhlIEZsYXRwYWsgc2FuZGJv eCwgZm9yIHN5c3RlbXMKKysjIHdoaWNoIGRvbid0IGhhdmUgYSBzdWl0YWJsZSB2ZXJzaW9uIG9m IFRyYWNrZXIgaW4gdGhlIGhvc3QgT1MuCisrIworKyMgV2UgbXVzdCBleHBvcnQgdGhlIC5zZXJ2 aWNlIGZpbGVzIGZyb20gdGhlIHNhbmRib3ggc28gdGhleSB3b3JrIG9uIHRoZQorKyMgc2Vzc2lv biBidXMuIFRoaXMgbWVhbnMgdGhlIFRyYWNrZXIgZG9tYWluIG5hbWUgbXVzdCBjb3JyZXNwb25k IHdpdGggdGhlCisrIyBhcHBsaWNhdGlvbiBJRC4KKysKKysKKytkb21haW5fb250b2xvZ2llc19k aXIgPSBnZXRfb3B0aW9uKCdkYXRhZGlyJykgLyAndHJhY2tlcjMnIC8gJ2RvbWFpbi1vbnRvbG9n aWVzJworK2RidXNfc2VydmljZXNfZGlyID0gZ2V0X29wdGlvbignZGF0YWRpcicpIC8gJ2RidXMt MScgLyAnc2VydmljZXMnCisrCisrdHJhY2tlcl9kb21haW5fY29uZmlnID0gY29uZmlndXJhdGlv bl9kYXRhKCkKKyt0cmFja2VyX2RvbWFpbl9jb25maWcuc2V0KCdhcHBsaWNhdGlvbl9pZCcsIHBo b3Rvc19uYW1lc3BhY2UpCisrdHJhY2tlcl9kb21haW5fY29uZmlnLnNldCgnZG9tYWluX3J1bGUn LCBnZXRfb3B0aW9uKCdwcmVmaXgnKSAvIGRvbWFpbl9vbnRvbG9naWVzX2RpciAvIHBob3Rvc19u YW1lc3BhY2UgKyAnLmRvbWFpbi5ydWxlJykKKysKKytjb25maWd1cmVfZmlsZSgKKysgIGlucHV0 OiAnb3JnLmdub21lLlBob3Rvcy5kb21haW4ucnVsZS5pbicsCisrICBvdXRwdXQ6IHBob3Rvc19u YW1lc3BhY2UgKyAnLmRvbWFpbi5ydWxlJywKKysgIGNvbmZpZ3VyYXRpb246IHRyYWNrZXJfZG9t YWluX2NvbmZpZywKKysgIGluc3RhbGxfZGlyOiBkb21haW5fb250b2xvZ2llc19kaXIpCisrCisr Y29uZmlndXJlX2ZpbGUoCisrICBpbnB1dDogJ29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWlu ZXIuRXh0cmFjdC5zZXJ2aWNlLmluJywKKysgIG91dHB1dDogcGhvdG9zX25hbWVzcGFjZSArICcu VHJhY2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlJywKKysgIGNvbmZpZ3VyYXRpb246IHRyYWNr ZXJfZG9tYWluX2NvbmZpZywKKysgIGluc3RhbGxfZGlyOiBkYnVzX3NlcnZpY2VzX2RpcikKKysK Kytjb25maWd1cmVfZmlsZSgKKysgIGlucHV0OiAnb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5N aW5lci5GaWxlcy5zZXJ2aWNlLmluJywKKysgIG91dHB1dDogcGhvdG9zX25hbWVzcGFjZSArICcu VHJhY2tlcjMuTWluZXIuRmlsZXMuc2VydmljZScsCisrICBjb25maWd1cmF0aW9uOiB0cmFja2Vy X2RvbWFpbl9jb25maWcsCisrICBpbnN0YWxsX2RpcjogZGJ1c19zZXJ2aWNlc19kaXIpCisrCitk aWZmIC0tZ2l0IGEvZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIu RXh0cmFjdC5zZXJ2aWNlLmluIGIvZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuVHJhY2tl cjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlLmluCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXgg MDAwMDAwMDAuLmViN2E4N2FhCistLS0gL2Rldi9udWxsCisrKysgYi9kYXRhL3RyYWNrZXIvb3Jn Lmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5FeHRyYWN0LnNlcnZpY2UuaW4KK0BAIC0wLDAg KzEsNyBAQAorK1tELUJVUyBTZXJ2aWNlXQorK05hbWU9QGFwcGxpY2F0aW9uX2lkQC5UcmFja2Vy My5NaW5lci5FeHRyYWN0CisrRXhlYz0vYXBwL2xpYmV4ZWMvdHJhY2tlci1leHRyYWN0LTMgLS1k b21haW4tb250b2xvZ3kgQGRvbWFpbl9ydWxlQAorKworKyMgTWluZXIgZGV0YWlscyBuZWVkZWQg Zm9yIHRyYWNrZXItY29udHJvbAorK1BhdGg9L29yZy9mcmVlZGVza3RvcC9UcmFja2VyMy9NaW5l ci9FeHRyYWN0CisrTmFtZVN1ZmZpeD1NaW5lci5GaWxlcworZGlmZiAtLWdpdCBhL2RhdGEvdHJh Y2tlci9vcmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UuaW4gYi9k YXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5GaWxlcy5zZXJ2aWNl LmluCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjRmYTczNzFkCistLS0g L2Rldi9udWxsCisrKysgYi9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5N aW5lci5GaWxlcy5zZXJ2aWNlLmluCitAQCAtMCwwICsxLDcgQEAKKytbRC1CVVMgU2VydmljZV0K KytOYW1lPUBhcHBsaWNhdGlvbl9pZEAuVHJhY2tlcjMuTWluZXIuRmlsZXMKKytFeGVjPS9hcHAv bGliZXhlYy90cmFja2VyLW1pbmVyLWZzLTMgLS1kb21haW4tb250b2xvZ3kgQGRvbWFpbl9ydWxl QCAtLWluaXRpYWwtc2xlZXAgMAorKworKyMgTWluZXIgZGV0YWlscyBuZWVkZWQgZm9yIHRyYWNr ZXItY29udHJvbAorK1BhdGg9L29yZy9mcmVlZGVza3RvcC9UcmFja2VyMy9NaW5lci9GaWxlcwor K05hbWVTdWZmaXg9TWluZXIuRmlsZXMKK2RpZmYgLS1naXQgYS9kYXRhL3RyYWNrZXIvb3JnLmdu b21lLlBob3Rvcy5kb21haW4ucnVsZS5pbiBiL2RhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9z LmRvbWFpbi5ydWxlLmluCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjhm NWZjNGExCistLS0gL2Rldi9udWxsCisrKysgYi9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rv cy5kb21haW4ucnVsZS5pbgorQEAgLTAsMCArMSwyMCBAQAorKyMgVGhpcyBkZWZpbmVzIGEgcHJp dmF0ZSBUcmFja2VyIGRvbWFpbiBmb3IgR05PTUUgUGhvdG9zLgorKyMKKysjIEl0J3MgdXNlZCB0 byBydW4gdGhlIFRyYWNrZXIgaW5kZXhlciBpbnNpZGUgYSBGbGF0cGFrIHNhbmRib3gsIHdoZW4g UGhvdG9zIGlzCisrIyBydW5uaW5nIG9uIGEgaG9zdCB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHN1aXRh YmxlIHZlcnNpb24gb2YgVHJhY2tlciBpbnN0YWxsZWQuCisrCisrW0RvbWFpbk9udG9sb2d5XQor KyMgTG9jYXRpb24gZm9yIHRoZSBUcmFja2VyIGRhdGFiYXNlCisrQ2FjaGVMb2NhdGlvbj0kWERH X0NBQ0hFX0hPTUUvZ25vbWUtcGhvdG9zL21pbmVyL2ZpbGVzCisrCisrIyBOYW1lIG9mIHRoZSBv bnRvbG9neSB0byB1c2UsIG11c3QgYmUgb25lIGxvY2F0ZWQgaW4KKysjICQoc2hhcmVkaXIpL3Ry YWNrZXIvb250b2xvZ2llcworK09udG9sb2d5TmFtZT1uZXBvbXVrCisrCisrIyBEQnVzIG5hbWUg Zm9yIHRoZSBvd25lciAobm90IG9wdGlvbmFsKS4gVHJhY2tlciB3aWxsIHVzZQorKyMgdGhlIGRv bWFpbiBhcyB0aGUgcHJlZml4IG9mIHRoZSBEQnVzIG5hbWUgZm9yIGFsbCB0aGUKKysjIHNlcnZp Y2VzIHJlbGF0ZWQgdG8gdGhpcyBkb21haW4gb250b2xvZ3kuCisrRG9tYWluPUBhcHBsaWNhdGlv bl9pZEAKKysKKysjIExpc3Qgb2YgbWluZXJzIHdlIGV4cGVjdCB0byBydW4gaW4gdGhpcyBkb21h aW4uCisrTWluZXJzPU1pbmVyLkZpbGVzO01pbmVyLkV4dHJhY3QKK2RpZmYgLS1naXQgYS9mbGF0 cGFrL29yZy5nbm9tZS5QaG90b3MuanNvbiBiL2ZsYXRwYWsvb3JnLmdub21lLlBob3Rvcy5qc29u CitpbmRleCA1ZDE2Njg5Yy4uYWRmZGFmMzQgMTAwNjQ0CistLS0gYS9mbGF0cGFrL29yZy5nbm9t ZS5QaG90b3MuanNvbgorKysrIGIvZmxhdHBhay9vcmcuZ25vbWUuUGhvdG9zLmpzb24KK0BAIC03 LDcgKzcsNyBAQAorICAgICAidGFncyI6IFsgIm5pZ2h0bHkiIF0sCisgICAgICJkZXNrdG9wLWZp bGUtbmFtZS1wcmVmaXgiOiAiKE5pZ2h0bHkpICIsCisgICAgICJmaW5pc2gtYXJncyI6IFsKKy0g ICAgICAgICItLWVudj1UUkFDS0VSX1NQQVJRTF9CQUNLRU5EPWJ1cyIsCisrICAgICAgICAiLS1h ZGQtcG9saWN5PVRyYWNrZXIzLmRidXM6b3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZp bGVzPXRyYWNrZXI6UGljdHVyZXMiLAorICAgICAgICAgIi0tZmlsZXN5c3RlbT14ZGctZG93bmxv YWQiLAorICAgICAgICAgIi0tZmlsZXN5c3RlbT14ZGctcGljdHVyZXMiLAorICAgICAgICAgIi0t bWV0YWRhdGE9WC1EQ29uZj1taWdyYXRlLXBhdGg9L29yZy9nbm9tZS9waG90b3MvIiwKK0BAIC0x Nyw4ICsxNyw4IEBACisgICAgICAgICAiLS1zb2NrZXQ9d2F5bGFuZCIsCisgICAgICAgICAiLS1z b2NrZXQ9eDExIiwKKyAgICAgICAgICItLXRhbGstbmFtZT1vcmcuZnJlZWRlc2t0b3AuRmlsZU1h bmFnZXIxIiwKKy0gICAgICAgICItLXRhbGstbmFtZT1vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEi LAorLSAgICAgICAgIi0tdGFsay1uYW1lPW9yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5NaW5lci5F eHRyYWN0IiwKKysgICAgICAgICItLXRhbGstbmFtZT1vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMu TWluZXIuRmlsZXMiLAorKyAgICAgICAgIi0tdGFsay1uYW1lPW9yZy5mcmVlZGVza3RvcC5UcmFj a2VyMy5NaW5lci5GaWxlcy5JbmRleCIsCisgICAgICAgICAiLS10YWxrLW5hbWU9Y29tLmludGVs LmRsZXluYS1yZW5kZXJlciIsCisgICAgICAgICAiLS10YWxrLW5hbWU9b3JnLmdub21lLkNvbnRy b2xDZW50ZXIiLAorICAgICAgICAgIi0tdGFsay1uYW1lPW9yZy5nbm9tZS5TZXR0aW5nc0RhZW1v biIsCitAQCAtMjQ4LDU2ICsyNDgsMjIgQEAKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgIF0KKyAgICAgICAgIH0sCistICAgICAgICB7CistICAgICAgICAgICAgIm5hbWUiOiAidHJh Y2tlciIsCistICAgICAgICAgICAgImJ1aWxkc3lzdGVtIjogIm1lc29uIiwKKy0gICAgICAgICAg ICAiY2xlYW51cCI6IFsgIi9iaW4iLCAiL2V0YyIsICIvbGliL2dpcmVwb3NpdG9yeS0xLjAiLCAi L2xpYmV4ZWMiLCAiL3NoYXJlL2RidXMtMSIsICIvc2hhcmUvZ2lyLTEuMCIgXSwKKy0gICAgICAg ICAgICAiY29uZmlnLW9wdHMiOiBbICItRGJhc2hfY29tcGxldGlvbj1ubyIsICItRGRvY3M9ZmFs c2UiLCAiLURzeXN0ZW1kX3VzZXJfc2VydmljZXM9bm8iIF0sCistICAgICAgICAgICAgInNvdXJj ZXMiOiBbCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICJ0eXBlIjog ImdpdCIsCistICAgICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21l Lm9yZy9HTk9NRS90cmFja2VyLmdpdCIsCistICAgICAgICAgICAgICAgICAgICAiYnJhbmNoIjog InRyYWNrZXItMi4zIgorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgXQorLSAgICAg ICAgfSwKKy0gICAgICAgIHsKKy0gICAgICAgICAgICAibmFtZSI6ICJpbnRsdG9vbCIsCistICAg ICAgICAgICAgImNsZWFudXAiOiBbICIqIiBdLAorLSAgICAgICAgICAgICJzb3VyY2VzIjogWwor LSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJhcmNoaXZl IiwKKy0gICAgICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9sYXVuY2hwYWQubmV0L2lu dGx0b29sL3RydW5rLzAuNTEuMC8rZG93bmxvYWQvaW50bHRvb2wtMC41MS4wLnRhci5neiIsCist ICAgICAgICAgICAgICAgICAgICAic2hhMjU2IjogIjY3Yzc0ZDk0MTk2YjE1M2I3NzRhYjlmODli MmZhNmM2YmE3OTM1MjQwNzAzN2M4YzE0ZDVhZWIzMzRlOTU5Y2QiCistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICBdCistICAgICAgICB9LAorICAgICAgICAgeworICAgICAgICAgICAg ICJuYW1lIjogInRyYWNrZXItbWluZXJzIiwKKyAgICAgICAgICAgICAiYnVpbGRzeXN0ZW0iOiAi bWVzb24iLAorLSAgICAgICAgICAgICJjbGVhbnVwIjogWyAiL2V0YyIsCistICAgICAgICAgICAg ICAgICAgICAgICAgICIvbGliIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIi9saWJleGVj IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFyZS9kYnVzLTEvc2VydmljZXMvb3Jn LmZyZWVkZXNrdG9wLlRyYWNrZXIxLk1pbmVyLkV4dHJhY3Quc2VydmljZSIsCistICAgICAgICAg ICAgICAgICAgICAgICAgICIvc2hhcmUvZGJ1cy0xL3NlcnZpY2VzL29yZy5mcmVlZGVza3RvcC5U cmFja2VyMS5Xcml0ZWJhY2suc2VydmljZSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICIv c2hhcmUvdHJhY2tlci9taW5lcnMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLk1pbmVyLkFwcGxp Y2F0aW9ucy5zZXJ2aWNlIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFyZS90cmFj a2VyL21pbmVycy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuTWluZXIuRXh0cmFjdC5zZXJ2aWNl IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFyZS90cmFja2VyL21pbmVycy9vcmcu ZnJlZWRlc2t0b3AuVHJhY2tlcjEuTWluZXIuUlNTLnNlcnZpY2UiLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAiL3NoYXJlL3RyYWNrZXItbWluZXJzIiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgIi9zaGFyZS9nbGliLTIuMC9zY2hlbWFzL29yZy5mcmVlZGVza3RvcC5UcmFja2VyLkV4 dHJhY3QuZ3NjaGVtYS54bWwiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAiL3NoYXJlL2ds aWItMi4wL3NjaGVtYXMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIuV3JpdGViYWNrLmdzY2hlbWEu eG1sIiBdLAorLSAgICAgICAgICAgICJjb25maWctb3B0cyI6IFsgIi1EZXh0cmFjdD1mYWxzZSIs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLURnZW5lcmljX21lZGlhX2V4dHJhY3Rv cj1ub25lIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRG1pbmVyX2FwcHM9ZmFs c2UiLAorKyAgICAgICAgICAgICJjbGVhbnVwIjogWyAiL3NoYXJlL2RidXMtMS9zZXJ2aWNlcy9v cmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlIiwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgIi9zaGFyZS9kYnVzLTEvc2VydmljZXMvb3JnLmZyZWVkZXNrdG9w LlRyYWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UiLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAiL3NoYXJlL2RidXMtMS9zZXJ2aWNlcy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuV3JpdGVi YWNrLnNlcnZpY2UiIF0sCisrICAgICAgICAgICAgImNvbmZpZy1vcHRzIjogWyAiLURtYW49ZmFs c2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1EbWluZXJfZnM9dHJ1ZSIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLURtaW5lcl9yc3M9ZmFsc2UiLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIi1Ec3lzdGVtZF91c2VyX3NlcnZpY2VzPW5vIiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1mYWxz ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUR3cml0ZWJhY2s9ZmFsc2UiIF0s CisgICAgICAgICAgICAgInNvdXJjZXMiOiBbCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgICAgICAidXJsIjog Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS90cmFja2VyLW1pbmVycy5naXQiLAorLSAg ICAgICAgICAgICAgICAgICAgImJyYW5jaCI6ICJ0cmFja2VyLW1pbmVycy0yLjMiCisrICAgICAg ICAgICAgICAgICAgICAiYnJhbmNoIjogIm1hc3RlciIKKyAgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgIF0KKyAgICAgICAgIH0sCitAQCAtMzA5LDcgKzI3NSw4IEBACisgICAgICAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAg ICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1w aG90b3MuZ2l0IiwKKy0gICAgICAgICAgICAgICAgICAgICJkaXNhYmxlLXNoYWxsb3ctY2xvbmUi OiAidHJ1ZSIKKysgICAgICAgICAgICAgICAgICAgICJkaXNhYmxlLXNoYWxsb3ctY2xvbmUiOiAi dHJ1ZSIsCisrICAgICAgICAgICAgICAgICAgICAiYnJhbmNoIjogInNhbS90cmFja2VyMyIKKyAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIF0KKyAgICAgICAgIH0KK2RpZmYgLS1naXQg YS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCitpbmRleCA3MDgxNmQyNC4uMWM2ZjI5MDYgMTAw NjQ0CistLS0gYS9tZXNvbi5idWlsZAorKysrIGIvbWVzb24uYnVpbGQKK0BAIC0xNzIsOCArMTcy LDcgQEAgbGliZ2RhdGFfZGVwID0gZGVwZW5kZW5jeSgnbGliZ2RhdGEnLCB2ZXJzaW9uOiAnPj0g MC4xNy4xMCcpCisgbGliZ2ZncmFwaF9kZXAgPSBkZXBlbmRlbmN5KCdsaWJnZmJncmFwaC0wLjIn LCB2ZXJzaW9uOiAnPj0gMC4yLjEnKQorIGxpYmpwZWdfZGVwID0gZGVwZW5kZW5jeSgnbGlianBl ZycpCisgbGlicG5nX2RlcCA9IGRlcGVuZGVuY3koJ2xpYnBuZzE2JykKKy10cmFja2VyX2NvbnRy b2xfZGVwID0gZGVwZW5kZW5jeSgndHJhY2tlci1jb250cm9sLTIuMCcpCistdHJhY2tlcl9zcGFy cWxfZGVwID0gZGVwZW5kZW5jeSgndHJhY2tlci1zcGFycWwtMi4wJykKKyt0cmFja2VyX3NwYXJx bF9kZXAgPSBkZXBlbmRlbmN5KCd0cmFja2VyLXNwYXJxbC0zLjAnKQorIAorIGRidXNfZGVwID0g ZGVwZW5kZW5jeSgnZGJ1cy0xJykKKyBkYnVzX3NlcnZpY2VfZGlyID0gZGJ1c19kZXAuZ2V0X3Br Z2NvbmZpZ192YXJpYWJsZSgKK2RpZmYgLS1naXQgYS9zcmMvbWVzb24uYnVpbGQgYi9zcmMvbWVz b24uYnVpbGQKK2luZGV4IGI1YjI3NTljLi42YjNiN2YwMSAxMDA2NDQKKy0tLSBhL3NyYy9tZXNv bi5idWlsZAorKysrIGIvc3JjL21lc29uLmJ1aWxkCitAQCAtMjA1LDggKzIwNSw2IEBAIHNvdXJj ZXMgPSBjb21tb25fc291cmNlcyArIGZpbGVzKAorICAgJ3Bob3Rvcy10b29sLWVuaGFuY2UuYycs CisgICAncGhvdG9zLXRvb2wtZmlsdGVyLWJ1dHRvbi5jJywKKyAgICdwaG90b3MtdG9vbC1maWx0 ZXJzLmMnLAorLSAgJ3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5jJywKKy0gICdwaG90b3Mt dHJhY2tlci1jaGFuZ2UtbW9uaXRvci5jJywKKyAgICdwaG90b3MtdHJhY2tlci1jb2xsZWN0aW9u LXZpZXctY29udHJvbGxlci5jJywKKyAgICdwaG90b3MtdHJhY2tlci1jb2xsZWN0aW9ucy1jb250 cm9sbGVyLmMnLAorICAgJ3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYycsCitAQCAtMzY3LDIy ICszNjUsMTggQEAgc291cmNlcyArPSBnbm9tZS5nZGJ1c19jb2RlZ2VuKAorICAgYXV0b2NsZWFu dXA6ICdhbGwnLAorICkKKyAKKy10cmFja2VyX2V4dHJhY3RfcHJpb3JpdHkgPSAncGhvdG9zLXRy YWNrZXItZXh0cmFjdC1wcmlvcml0eScKKy0KKyBzb3VyY2VzICs9IGdub21lLmdkYnVzX2NvZGVn ZW4oCistICB0cmFja2VyX2V4dHJhY3RfcHJpb3JpdHksCistICB0cmFja2VyX2V4dHJhY3RfcHJp b3JpdHkgKyAnLnhtbCcsCistICBpbnRlcmZhY2VfcHJlZml4OiAnb3JnLmZyZWVkZXNrdG9wLlRy YWNrZXIxLicsCisrICAncGhvdG9zLXRyYWNrZXItbWluZXInLAorKyAgJ29yZy5mcmVlZGVza3Rv cC5UcmFja2VyMy5NaW5lci54bWwnLAorKyAgaW50ZXJmYWNlX3ByZWZpeDogJ29yZy5mcmVlZGVz a3RvcC5UcmFja2VyMy4nLAorICAgbmFtZXNwYWNlOiAnVHJhY2tlcicsCisgICBhdXRvY2xlYW51 cDogJ2FsbCcsCisgKQorIAorLXRyYWNrZXJfcmVzb3VyY2VzID0gJ3Bob3Rvcy10cmFja2VyLXJl c291cmNlcycKKy0KKyBzb3VyY2VzICs9IGdub21lLmdkYnVzX2NvZGVnZW4oCistICB0cmFja2Vy X3Jlc291cmNlcywKKy0gIHRyYWNrZXJfcmVzb3VyY2VzICsgJy54bWwnLAorLSAgaW50ZXJmYWNl X3ByZWZpeDogJ29yZy5mcmVlZGVza3RvcC5UcmFja2VyMS4nLAorKyAgJ3Bob3Rvcy10cmFja2Vy LW1pbmVyLWluZGV4JywKKysgICdvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMu SW5kZXgueG1sJywKKysgIGludGVyZmFjZV9wcmVmaXg6ICdvcmcuZnJlZWRlc2t0b3AuVHJhY2tl cjMuJywKKyAgIG5hbWVzcGFjZTogJ1RyYWNrZXInLAorICAgYXV0b2NsZWFudXA6ICdhbGwnLAor ICkKK0BAIC00MDEsNyArMzk1LDYgQEAgZGVwcyA9IGNvbW1vbl9kZXBzICsgWworICAgbGliZ2Rh dGFfZGVwLAorICAgbGliZ2ZncmFwaF9kZXAsCisgICBtX2RlcCwKKy0gIHRyYWNrZXJfY29udHJv bF9kZXAsCisgICB0cmFja2VyX3NwYXJxbF9kZXAsCisgXQorIAorZGlmZiAtLWdpdCBhL3NyYy9v cmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuSW5kZXgueG1sIGIvc3JjL29yZy5m cmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcy5JbmRleC54bWwKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uZTM2OGYxZTIKKy0tLSAvZGV2L251bGwKKysrKyBiL3Ny Yy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuSW5kZXgueG1sCitAQCAtMCww ICsxLDExIEBACisrPG5vZGU+CisrICA8aW50ZXJmYWNlIG5hbWU9J29yZy5mcmVlZGVza3RvcC5U cmFja2VyMy5NaW5lci5GaWxlcy5JbmRleCc+CisrICAgIDxtZXRob2QgbmFtZT0nSW5kZXhMb2Nh dGlvbic+CisrICAgICAgPGFyZyB0eXBlPSdzJyBuYW1lPSdmaWxlX3VyaScgZGlyZWN0aW9uPSdp bicgLz4KKysgICAgICA8YXJnIHR5cGU9J2FzJyBuYW1lPSdncmFwaHMnIGRpcmVjdGlvbj0naW4n IC8+CisrICAgICAgPGFyZyB0eXBlPSdhcycgbmFtZT0nZmxhZ3MnIGRpcmVjdGlvbj0naW4nPiIK KysgICAgICAgIDxkb2M6ZG9jPjxkb2M6c3VtbWFyeT5FeHRlbnNpb24gZmxhZ3MsIG5vIGFsbG93 ZWQgdmFsdWVzIGF0IHRoZSBtb21lbnQ8L2RvYzpzdW1tYXJ5PjwvZG9jOmRvYz4KKysgICAgICA8 L2FyZz4KKysgICAgPC9tZXRob2Q+CisrICA8L2ludGVyZmFjZT4KKys8L25vZGU+CitkaWZmIC0t Z2l0IGEvc3JjL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci54bWwgYi9zcmMvb3JnLmZy ZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLnhtbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDAwMDAwMDAwLi42ZmUwOWM4NAorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL29yZy5mcmVlZGVz a3RvcC5UcmFja2VyMy5NaW5lci54bWwKK0BAIC0wLDAgKzEsNTYgQEAKKys8P3htbCB2ZXJzaW9u PSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorKworKzxub2RlIG5hbWU9Ii8iPgorKyAgPGludGVy ZmFjZSBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIiPgorKyAgICA8YW5ub3Rh dGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuREJ1cy5HTGliLkNTeW1ib2wiIHZhbHVlPSJfdHJh Y2tlcl9taW5lcl9kYnVzIi8+CisrICAgIDxtZXRob2QgbmFtZT0iU3RhcnQiPgorKyAgICAgIDxh bm5vdGF0aW9uIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5EQnVzLkdMaWIuQXN5bmMiICB2YWx1ZT0i dHJ1ZSIvPgorKyAgICA8L21ldGhvZD4KKysgICAgPG1ldGhvZCBuYW1lPSJHZXRTdGF0dXMiPgor KyAgICAgIDxhbm5vdGF0aW9uIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5EQnVzLkdMaWIuQXN5bmMi IHZhbHVlPSJ0cnVlIi8+CisrICAgICAgPGFyZyB0eXBlPSJzIiBuYW1lPSJzdGF0dXMiIGRpcmVj dGlvbj0ib3V0IiAvPgorKyAgICA8L21ldGhvZD4KKysgICAgPG1ldGhvZCBuYW1lPSJHZXRQcm9n cmVzcyI+CisrICAgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xp Yi5Bc3luYyIgdmFsdWU9InRydWUiLz4KKysgICAgICA8YXJnIHR5cGU9ImQiIG5hbWU9InByb2dy ZXNzIiBkaXJlY3Rpb249Im91dCIgLz4KKysgICAgPC9tZXRob2Q+CisrICAgIDxtZXRob2QgbmFt ZT0iR2V0UmVtYWluaW5nVGltZSI+CisrICAgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVk ZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIgdmFsdWU9InRydWUiLz4KKysgICAgICA8YXJnIHR5cGU9 ImkiIG5hbWU9InJlbWFpbmluZ190aW1lIiBkaXJlY3Rpb249Im91dCIgLz4KKysgICAgPC9tZXRo b2Q+CisrICAgIDxtZXRob2QgbmFtZT0iR2V0UGF1c2VEZXRhaWxzIj4KKysgICAgICA8YW5ub3Rh dGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuREJ1cy5HTGliLkFzeW5jIiB2YWx1ZT0idHJ1ZSIv PgorKyAgICAgIDxhcmcgdHlwZT0iYXMiIG5hbWU9InBhdXNlX2FwcGxpY2F0aW9ucyIgZGlyZWN0 aW9uPSJvdXQiIC8+CisrICAgICAgPGFyZyB0eXBlPSJhcyIgbmFtZT0icGF1c2VfcmVhc29ucyIg ZGlyZWN0aW9uPSJvdXQiIC8+CisrICAgIDwvbWV0aG9kPgorKyAgICA8bWV0aG9kIG5hbWU9IlBh dXNlIj4KKysgICAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuREJ1cy5HTGli LkFzeW5jIiAgdmFsdWU9InRydWUiLz4KKysgICAgICA8YXJnIHR5cGU9InMiIG5hbWU9ImFwcGxp Y2F0aW9uIiBkaXJlY3Rpb249ImluIiAvPgorKyAgICAgIDxhcmcgdHlwZT0icyIgbmFtZT0icmVh c29uIiBkaXJlY3Rpb249ImluIiAvPgorKyAgICAgIDxhcmcgdHlwZT0iaSIgbmFtZT0iY29va2ll IiBkaXJlY3Rpb249Im91dCIgLz4KKysgICAgPC9tZXRob2Q+CisrICAgIDxtZXRob2QgbmFtZT0i UGF1c2VGb3JQcm9jZXNzIj4KKysgICAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0 b3AuREJ1cy5HTGliLkFzeW5jIiAgdmFsdWU9InRydWUiLz4KKysgICAgICA8YXJnIHR5cGU9InMi IG5hbWU9ImFwcGxpY2F0aW9uIiBkaXJlY3Rpb249ImluIiAvPgorKyAgICAgIDxhcmcgdHlwZT0i cyIgbmFtZT0icmVhc29uIiBkaXJlY3Rpb249ImluIiAvPgorKyAgICAgIDxhcmcgdHlwZT0iaSIg bmFtZT0iY29va2llIiBkaXJlY3Rpb249Im91dCIgLz4KKysgICAgPC9tZXRob2Q+CisrICAgIDxt ZXRob2QgbmFtZT0iUmVzdW1lIj4KKysgICAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRl c2t0b3AuREJ1cy5HTGliLkFzeW5jIiB2YWx1ZT0idHJ1ZSIvPgorKyAgICAgIDxhcmcgdHlwZT0i aSIgbmFtZT0iY29va2llIiBkaXJlY3Rpb249ImluIiAvPgorKyAgICA8L21ldGhvZD4KKysKKysg ICAgPCEtLSBTaWduYWxzIC0tPgorKyAgICA8c2lnbmFsIG5hbWU9IlN0YXJ0ZWQiIC8+CisrICAg IDxzaWduYWwgbmFtZT0iU3RvcHBlZCI+CisrICAgICAgPGFyZyB0eXBlPSJiIiBuYW1lPSJpbnRl cnJ1cHRlZCIgLz4KKysgICAgPC9zaWduYWw+CisrICAgIDxzaWduYWwgbmFtZT0iUGF1c2VkIiAv PgorKyAgICA8c2lnbmFsIG5hbWU9IlJlc3VtZWQiIC8+CisrICAgIDxzaWduYWwgbmFtZT0iUHJv Z3Jlc3MiPgorKyAgICAgIDxhcmcgdHlwZT0icyIgbmFtZT0ic3RhdHVzIiAvPgorKyAgICAgIDxh cmcgdHlwZT0iZCIgbmFtZT0icHJvZ3Jlc3MiIC8+CisrICAgICAgPGFyZyB0eXBlPSJpIiBuYW1l PSJyZW1haW5pbmdfdGltZSIgLz4KKysgICAgPC9zaWduYWw+CisrICA8L2ludGVyZmFjZT4KKys8 L25vZGU+CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1hcHBsaWNhdGlvbi5jIGIvc3JjL3Bob3Rv cy1hcHBsaWNhdGlvbi5jCitpbmRleCBjYjExNGZkYS4uNWZiYmJlZjIgMTAwNjQ0CistLS0gYS9z cmMvcGhvdG9zLWFwcGxpY2F0aW9uLmMKKysrKyBiL3NyYy9waG90b3MtYXBwbGljYXRpb24uYwor QEAgLTM2LDcgKzM2LDYgQEAKKyAjaW5jbHVkZSA8Z2xpYi5oPgorICNpbmNsdWRlIDxnbGliL2dp MThuLmg+CisgI2luY2x1ZGUgPGdyaWxvLmg+CistI2luY2x1ZGUgPGxpYnRyYWNrZXItY29udHJv bC90cmFja2VyLWNvbnRyb2wuaD4KKyAKKyAjaW5jbHVkZSAicGhvdG9zLWFwcGxpY2F0aW9uLmgi CisgI2luY2x1ZGUgInBob3Rvcy1iYXNlLWl0ZW0uaCIKK0BAIC02OCw3ICs2Nyw4IEBACisgI2lu Y2x1ZGUgInBob3Rvcy1zaGFyZS1ub3RpZmljYXRpb24uaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNo YXJlLXBvaW50LW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXRodW1ibmFpbC1mYWN0b3J5 LmgiCistI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHkuaCIKKysjaW5j bHVkZSAicGhvdG9zLXRyYWNrZXItbWluZXItaW5kZXguaCIKKysjaW5jbHVkZSAicGhvdG9zLXRy YWNrZXItcXVldWUuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXV0aWxzLmgiCisgCisgCitAQCAtMTI3 LDcgKzEyNyw3IEBAIHN0cnVjdCBfUGhvdG9zQXBwbGljYXRpb24KKyAgIFBob3Rvc1NlYXJjaFBy b3ZpZGVyICpzZWFyY2hfcHJvdmlkZXI7CisgICBQaG90b3NTZWxlY3Rpb25Db250cm9sbGVyICpz ZWxfY250cmxyOworICAgUGhvdG9zVGh1bWJuYWlsRmFjdG9yeSAqZmFjdG9yeTsKKy0gIFRyYWNr ZXJFeHRyYWN0UHJpb3JpdHkgKmV4dHJhY3RfcHJpb3JpdHk7CisrICBUcmFja2VyTWluZXJGaWxl c0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5OworICAgZ2Jvb2xlYW4gZW1wdHlfcmVzdWx0czsK KyAgIGdib29sZWFuIG1haW5fd2luZG93X2RlbGV0ZWQ7CisgICBndWludCBjcmVhdGVfbWluZXJz X2NvdW50OworQEAgLTE0OCw3ICsxNDgsNiBAQCBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJ R05BTF0gPSB7IDAgfTsKKyAKKyBzdGF0aWMgdm9pZCBwaG90b3NfYXBwbGljYXRpb25fc2VhcmNo X2NvbnRleHRfaWZhY2VfaW5pdCAoUGhvdG9zU2VhcmNoQ29udGV4dEludGVyZmFjZSAqaWZhY2Up OworIAorLQorIEdfREVGSU5FX1RZUEVfV0lUSF9DT0RFIChQaG90b3NBcHBsaWNhdGlvbiwgcGhv dG9zX2FwcGxpY2F0aW9uLCBHVEtfVFlQRV9BUFBMSUNBVElPTiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFIChQSE9UT1NfVFlQRV9TRUFSQ0hfQ09OVEVY VCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90 b3NfYXBwbGljYXRpb25fc2VhcmNoX2NvbnRleHRfaWZhY2VfaW5pdCkpOworQEAgLTE5MSwxMSAr MTkwLDExIEBAIHN0cnVjdCBfUGhvdG9zQXBwbGljYXRpb25DcmVhdGVEYXRhCisgc3RydWN0IF9Q aG90b3NBcHBsaWNhdGlvbkltcG9ydERhdGEKKyB7CisgICBQaG90b3NBcHBsaWNhdGlvbiAqYXBw bGljYXRpb247CisrICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5 OworICAgR0ZpbGUgKmRlc3RpbmF0aW9uOworICAgR0ZpbGUgKmltcG9ydF9zdWJfZGlyOworICAg R0xpc3QgKmZpbGVzOworICAgUGhvdG9zQmFzZUl0ZW0gKmNvbGxlY3Rpb247CistICBUcmFja2Vy TWluZXJNYW5hZ2VyICptYW5hZ2VyOworICAgZ2NoYXIgKmNvbGxlY3Rpb25fdXJuOworICAgZ2lu dDY0IGN0aW1lX2xhdGVzdDsKKyB9OworQEAgLTI0OCw3ICsyNDcsNyBAQCBwaG90b3NfYXBwbGlj YXRpb25fY3JlYXRlX2RhdGFfZnJlZSAoUGhvdG9zQXBwbGljYXRpb25DcmVhdGVEYXRhICpkYXRh KQorIAorIHN0YXRpYyBQaG90b3NBcHBsaWNhdGlvbkltcG9ydERhdGEgKgorIHBob3Rvc19hcHBs aWNhdGlvbl9pbXBvcnRfZGF0YV9uZXcgKFBob3Rvc0FwcGxpY2F0aW9uICphcHBsaWNhdGlvbiwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFja2VyTWluZXJNYW5hZ2Vy ICptYW5hZ2VyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYWNrZXJN aW5lckZpbGVzSW5kZXggKm1pbmVyX2NvbnRyb2xfcHJveHksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR0xpc3QgKmZpbGVzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdpbnQ2NCBjdGltZV9sYXRlc3QpCisgeworQEAgLTI1Nyw3ICsyNTYsNyBA QCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2RhdGFfbmV3IChQaG90b3NBcHBsaWNhdGlvbiAq YXBwbGljYXRpb24sCisgICBkYXRhID0gZ19zbGljZV9uZXcwIChQaG90b3NBcHBsaWNhdGlvbklt cG9ydERhdGEpOworICAgZ19hcHBsaWNhdGlvbl9ob2xkIChHX0FQUExJQ0FUSU9OIChhcHBsaWNh dGlvbikpOworICAgZGF0YS0+YXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbjsKKy0gIGRhdGEtPm1h bmFnZXIgPSBnX29iamVjdF9yZWYgKG1hbmFnZXIpOworKyAgZGF0YS0+bWluZXJfY29udHJvbF9w cm94eSA9IG1pbmVyX2NvbnRyb2xfcHJveHk7CisgICBkYXRhLT5maWxlcyA9IGdfbGlzdF9jb3B5 X2RlZXAgKGZpbGVzLCAoR0NvcHlGdW5jKSBnX29iamVjdF9yZWYsIE5VTEwpOworICAgZGF0YS0+ Y3RpbWVfbGF0ZXN0ID0gY3RpbWVfbGF0ZXN0OworICAgcmV0dXJuIGRhdGE7CitAQCAtMjc3LDgg KzI3Niw4IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfZGF0YV9mcmVlIChQaG90b3NBcHBs aWNhdGlvbkltcG9ydERhdGEgKmRhdGEpCisgCisgICBnX2NsZWFyX29iamVjdCAoJmRhdGEtPmRl c3RpbmF0aW9uKTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmZGF0YS0+aW1wb3J0X3N1Yl9kaXIpOwor KyAgZ19jbGVhcl9vYmplY3QgKCZkYXRhLT5taW5lcl9jb250cm9sX3Byb3h5KTsKKyAgIGdfbGlz dF9mcmVlX2Z1bGwgKGRhdGEtPmZpbGVzLCBnX29iamVjdF91bnJlZik7CistICBnX2NsZWFyX29i amVjdCAoJmRhdGEtPm1hbmFnZXIpOworICAgZ19mcmVlIChkYXRhLT5jb2xsZWN0aW9uX3Vybik7 CisgICBnX3NsaWNlX2ZyZWUgKFBob3Rvc0FwcGxpY2F0aW9uSW1wb3J0RGF0YSwgZGF0YSk7Cisg fQorQEAgLTU4NCwyNyArNTgzLDYgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2FjdGlvbnNfdXBkYXRl IChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyB9CisgCisgCistc3RhdGljIHZvaWQKKy1waG90 b3NfYXBwbGljYXRpb25fdHJhY2tlcl9jbGVhcl9yZGZfdHlwZXMgKEdPYmplY3QgKnNvdXJjZV9v YmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCisteworLSAgUGhv dG9zQXBwbGljYXRpb24gKnNlbGYgPSBQSE9UT1NfQVBQTElDQVRJT04gKHVzZXJfZGF0YSk7Cist ICBUcmFja2VyRXh0cmFjdFByaW9yaXR5ICpleHRyYWN0X3ByaW9yaXR5ID0gVFJBQ0tFUl9FWFRS QUNUX1BSSU9SSVRZIChzb3VyY2Vfb2JqZWN0KTsKKy0KKy0gIHsKKy0gICAgZ19hdXRvcHRyIChH RXJyb3IpIGVycm9yID0gTlVMTDsKKy0KKy0gICAgaWYgKCF0cmFja2VyX2V4dHJhY3RfcHJpb3Jp dHlfY2FsbF9jbGVhcl9yZGZfdHlwZXNfZmluaXNoIChleHRyYWN0X3ByaW9yaXR5LCByZXMsICZl cnJvcikpCistICAgICAgeworLSAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNhbGwgQ2xl YXJSZGZUeXBlczogJXMiLCBlcnJvci0+bWVzc2FnZSk7CistICAgICAgICBnb3RvIG91dDsKKy0g ICAgICB9CistICB9CistCistIG91dDoKKy0gIGdfYXBwbGljYXRpb25fcmVsZWFzZSAoR19BUFBM SUNBVElPTiAoc2VsZikpOworLX0KKy0KKy0KKyBzdGF0aWMgZ2Jvb2xlYW4KKyBwaG90b3NfYXBw bGljYXRpb25fZGVsZXRlX2V2ZW50IChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyB7CitAQCAt NjQxLDE2ICs2MTksNiBAQCBwaG90b3NfYXBwbGljYXRpb25fZGVzdHJveSAoUGhvdG9zQXBwbGlj YXRpb24gKnNlbGYpCisgICBzZWxmLT5jcmVhdGVfd2luZG93X2NhbmNlbGxhYmxlID0gZ19jYW5j ZWxsYWJsZV9uZXcgKCk7CisgCisgICBwaG90b3NfYXBwbGljYXRpb25fc3RvcF9taW5lcnMgKHNl bGYpOworLQorLSAgaWYgKHNlbGYtPmV4dHJhY3RfcHJpb3JpdHkgIT0gTlVMTCkKKy0gICAgewor LSAgICAgIGdfYXBwbGljYXRpb25faG9sZCAoR19BUFBMSUNBVElPTiAoc2VsZikpOworLSAgICAg IHRyYWNrZXJfZXh0cmFjdF9wcmlvcml0eV9jYWxsX2NsZWFyX3JkZl90eXBlcyAoc2VsZi0+ZXh0 cmFjdF9wcmlvcml0eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwaG90b3NfYXBwbGljYXRpb25fdHJhY2tlcl9jbGVhcl9yZGZfdHlw ZXMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmKTsKKy0gICAgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmV4dHJhY3RfcHJpb3JpdHkp OworLSAgICB9CisgfQorIAorIAorQEAgLTc0MCw2MCArNzA4LDYgQEAgcGhvdG9zX2FwcGxpY2F0 aW9uX2dlZ2xfaW5pdF9maXNoZXNfaWRsZSAoZ3BvaW50ZXIgdXNlcl9kYXRhKQorIH0KKyAKKyAK Ky1zdGF0aWMgdm9pZAorLXBob3Rvc19hcHBsaWNhdGlvbl90cmFja2VyX3NldF9yZGZfdHlwZXMg KEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2Vy X2RhdGEpCisteworLSAgUGhvdG9zQXBwbGljYXRpb24gKnNlbGYgPSBQSE9UT1NfQVBQTElDQVRJ T04gKHVzZXJfZGF0YSk7CistICBUcmFja2VyRXh0cmFjdFByaW9yaXR5ICpleHRyYWN0X3ByaW9y aXR5ID0gVFJBQ0tFUl9FWFRSQUNUX1BSSU9SSVRZIChzb3VyY2Vfb2JqZWN0KTsKKy0KKy0gIHsK Ky0gICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKKy0KKy0gICAgaWYgKCF0cmFj a2VyX2V4dHJhY3RfcHJpb3JpdHlfY2FsbF9zZXRfcmRmX3R5cGVzX2ZpbmlzaCAoZXh0cmFjdF9w cmlvcml0eSwgcmVzLCAmZXJyb3IpKQorLSAgICAgIHsKKy0gICAgICAgIGlmICghZ19lcnJvcl9t YXRjaGVzIChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9DQU5DRUxMRUQpKQorLSAgICAg ICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gY2FsbCBTZXRSZGZUeXBlczogJXMiLCBlcnJvci0+ bWVzc2FnZSk7CistCistICAgICAgICBnb3RvIG91dDsKKy0gICAgICB9CistICB9CistCistIG91 dDoKKy0gIGdfYXBwbGljYXRpb25fcmVsZWFzZSAoR19BUFBMSUNBVElPTiAoc2VsZikpOworLX0K Ky0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc19hcHBsaWNhdGlvbl90cmFja2VyX2V4dHJhY3Rf cHJpb3JpdHkgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9p bnRlciB1c2VyX2RhdGEpCisteworLSAgUGhvdG9zQXBwbGljYXRpb24gKnNlbGYgPSBQSE9UT1Nf QVBQTElDQVRJT04gKHVzZXJfZGF0YSk7CistICBjb25zdCBnY2hhciAqY29uc3QgcmRmX3R5cGVz W10gPSB7Im5mbzpJbWFnZSIsIE5VTEx9OworLQorLSAgeworLSAgICBnX2F1dG9wdHIgKEdFcnJv cikgZXJyb3IgPSBOVUxMOworLQorLSAgICBzZWxmLT5leHRyYWN0X3ByaW9yaXR5ID0gdHJhY2tl cl9leHRyYWN0X3ByaW9yaXR5X3Byb3h5X25ld19mb3JfYnVzX2ZpbmlzaCAocmVzLCAmZXJyb3Ip OworLSAgICBpZiAoZXJyb3IgIT0gTlVMTCkKKy0gICAgICB7CistICAgICAgICBpZiAoIWdfZXJy b3JfbWF0Y2hlcyAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0FOQ0VMTEVEKSkKKy0g ICAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNyZWF0ZSBUcmFja2VyRXh0cmFjdFByaW9y aXR5IHByb3h5OiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKKy0KKy0gICAgICAgIGdvdG8gb3V0Owor LSAgICAgIH0KKy0gIH0KKy0KKy0gIGdfYXBwbGljYXRpb25faG9sZCAoR19BUFBMSUNBVElPTiAo c2VsZikpOworLSAgdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5X2NhbGxfc2V0X3JkZl90eXBlcyAo c2VsZi0+ZXh0cmFjdF9wcmlvcml0eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJkZl90eXBlcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYtPmNyZWF0ZV93aW5kb3dfY2FuY2VsbGFibGUsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfYXBwbGlj YXRpb25fdHJhY2tlcl9zZXRfcmRmX3R5cGVzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZik7CistCistIG91dDoKKy0gIGdfYXBwbGljYXRpb25f cmVsZWFzZSAoR19BUFBMSUNBVElPTiAoc2VsZikpOworLX0KKy0KKy0KKyBzdGF0aWMgZ2Jvb2xl YW4KKyBwaG90b3NfYXBwbGljYXRpb25fY3JlYXRlX3dpbmRvdyAoUGhvdG9zQXBwbGljYXRpb24g KnNlbGYpCisgeworQEAgLTgyOCwxMyArNzQyLDYgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2NyZWF0 ZV93aW5kb3cgKFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorICAgICBzZWxmLT5pbml0X2Zpc2hl c19pZCA9IGdfaWRsZV9hZGQgKHBob3Rvc19hcHBsaWNhdGlvbl9nZWdsX2luaXRfZmlzaGVzX2lk bGUsIHNlbGYpOworIAorICAgZ19hcHBsaWNhdGlvbl9ob2xkIChHX0FQUExJQ0FUSU9OIChzZWxm KSk7CistICB0cmFja2VyX2V4dHJhY3RfcHJpb3JpdHlfcHJveHlfbmV3X2Zvcl9idXMgKEdfQlVT X1RZUEVfU0VTU0lPTiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR19EQlVTX1BST1hZX0ZMQUdTX05PTkUsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuTWluZXIuRXh0 cmFjdCIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIv b3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIxL0V4dHJhY3QvUHJpb3JpdHkiLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5jcmVhdGVfd2luZG93X2Nh bmNlbGxhYmxlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwaG90b3NfYXBwbGljYXRpb25fdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5LAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmKTsKKyAKKyAgIHBob3Rv c19hcHBsaWNhdGlvbl9zdGFydF9taW5lcnMgKHNlbGYpOworICAgcmV0dXJuIFRSVUU7CitAQCAt MTExMywxOCArMTAyMCwxOCBAQCBwaG90b3NfYXBwbGljYXRpb25fZ2V0X3N0YXRlIChQaG90b3NT ZWFyY2hDb250ZXh0ICpjb250ZXh0KQorIAorIAorIHN0YXRpYyB2b2lkCistcGhvdG9zX2FwcGxp Y2F0aW9uX2ltcG9ydF9pbmRleF9maWxlIChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNS ZXN1bHQgKnJlcywgZ3BvaW50ZXIgdXNlcl9kYXRhKQorK3Bob3Rvc19hcHBsaWNhdGlvbl9pbXBv cnRfaW5kZXhfbG9jYXRpb24gKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAq cmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCisgeworICAgUGhvdG9zQXBwbGljYXRpb24gKnNlbGY7 CisgICBnX2F1dG9wdHIgKEdGaWxlKSBmaWxlID0gR19GSUxFICh1c2VyX2RhdGEpOworLSAgVHJh Y2tlck1pbmVyTWFuYWdlciAqbWFuYWdlciA9IFRSQUNLRVJfTUlORVJfTUFOQUdFUiAoc291cmNl X29iamVjdCk7CisrICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5 ID0gVFJBQ0tFUl9NSU5FUl9GSUxFU19JTkRFWCAoc291cmNlX29iamVjdCk7CisgCisgICBzZWxm ID0gUEhPVE9TX0FQUExJQ0FUSU9OIChnX2FwcGxpY2F0aW9uX2dldF9kZWZhdWx0ICgpKTsKKyAK KyAgIHsKKyAgICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKKyAKKy0gICAgaWYg KCF0cmFja2VyX21pbmVyX21hbmFnZXJfaW5kZXhfZmlsZV9mb3JfcHJvY2Vzc19maW5pc2ggKG1h bmFnZXIsIHJlcywgJmVycm9yKSkKKysgICAgaWYgKCF0cmFja2VyX21pbmVyX2ZpbGVzX2luZGV4 X2NhbGxfaW5kZXhfbG9jYXRpb25fZmluaXNoIChtaW5lcl9jb250cm9sX3Byb3h5LCByZXMsICZl cnJvcikpCisgICAgICAgeworICAgICAgICAgZ19hdXRvZnJlZSBnY2hhciAqdXJpID0gTlVMTDsK KyAKK0BAIC0xMzIzLDcgKzEyMzAsNiBAQCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2ZpbGVf Y29weSAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpyZXMsCisgICBQaG90 b3NBcHBsaWNhdGlvbiAqc2VsZiA9IGRhdGEtPmFwcGxpY2F0aW9uOworICAgZ19hdXRvcHRyIChH RmlsZSkgZGVzdGluYXRpb24gPSBOVUxMOworICAgR0ZpbGUgKnNvdXJjZSA9IEdfRklMRSAoc291 cmNlX29iamVjdCk7CistICBUcmFja2VyTWluZXJNYW5hZ2VyICptYW5hZ2VyID0gZGF0YS0+bWFu YWdlcjsKKyAKKyAgIHsKKyAgICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKK0BA IC0xMzQ4LDYgKzEyNTQsOCBAQCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2ZpbGVfY29weSAo R09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpyZXMsCisgICBlbHNlCisgICAg IHsKKyAgICAgICBnX2F1dG9mcmVlIGdjaGFyICpkZXN0aW5hdGlvbl91cmkgPSBOVUxMOworKyAg ICAgIGNvbnN0IGdjaGFyICp0cmFja2VyX3ByaW9yaXR5X2dyYXBoc1tdID0geyBUUkFDS0VSX1BJ Q1RVUkVTX0dSQVBIIH07CisrICAgICAgY29uc3QgZ2NoYXIgKnRyYWNrZXJfaW5kZXhfbG9jYXRp b25fZmxhZ3NbXSA9IHsgImZvci1wcm9jZXNzIiB9OworIAorICAgICAgIGdfYXNzZXJ0X3RydWUg KEdfSVNfRklMRSAoZGVzdGluYXRpb24pKTsKKyAgICAgICBnX3NldF9vYmplY3QgKCZkYXRhLT5k ZXN0aW5hdGlvbiwgZGVzdGluYXRpb24pOworQEAgLTEzNjQsMTEgKzEyNzIsMTMgQEAgcGhvdG9z X2FwcGxpY2F0aW9uX2ltcG9ydF9maWxlX2NvcHkgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdB c3luY1Jlc3VsdCAqcmVzLAorIAorICAgICAgIGdfYXBwbGljYXRpb25faG9sZCAoR19BUFBMSUNB VElPTiAoc2VsZikpOworICAgICAgIGdfYXBwbGljYXRpb25fbWFya19idXN5IChHX0FQUExJQ0FU SU9OIChzZWxmKSk7CistICAgICAgdHJhY2tlcl9taW5lcl9tYW5hZ2VyX2luZGV4X2ZpbGVfZm9y X3Byb2Nlc3NfYXN5bmMgKG1hbmFnZXIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90 b3NfYXBwbGljYXRpb25faW1wb3J0X2luZGV4X2ZpbGUsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfb2JqZWN0X3JlZiAoZGVzdGlu YXRpb24pKTsKKysgICAgICB0cmFja2VyX21pbmVyX2ZpbGVzX2luZGV4X2NhbGxfaW5kZXhfbG9j YXRpb24gKHNlbGYtPm1pbmVyX2NvbnRyb2xfcHJveHksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl91cmksCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2VyX3By aW9yaXR5X2dyYXBocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRyYWNrZXJfaW5kZXhfbG9jYXRpb25fZmxhZ3MsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX2FwcGxp Y2F0aW9uX2ltcG9ydF9pbmRleF9sb2NhdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfb2JqZWN0X3JlZiAoZGVzdGluYXRpb24pKTsK KyAgICAgfQorIAorICBvdXQ6CitAQCAtMTUwOSw2ICsxNDE5LDM3IEBAIHBob3Rvc19hcHBsaWNh dGlvbl9pbXBvcnRfcmVzcG9uc2UgKEd0a0RpYWxvZyAqZGlhbG9nLCBnaW50IHJlc3BvbnNlX2lk LCBncG9pbnRlCisgfQorIAorIAorK3N0YXRpYyBUcmFja2VyTWluZXJGaWxlc0luZGV4ICoKKytw aG90b3NfYXBwbGljYXRpb25fZ2V0X21pbmVyX2ZzX2NvbnRyb2xfcHJveHkgKEdDYW5jZWxsYWJs ZSAqY2FuY2VsbGFibGUpCisreworKyAgZ19hdXRvcHRyIChQaG90b3NUcmFja2VyUXVldWUpIHRy YWNrZXJfcXVldWUgPSBOVUxMOworKyAgY29uc3QgZ2NoYXIgKm1pbmVyX2ZzX2NvbnRyb2xfYnVz bmFtZTsKKysgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7CisrICBUcmFja2VyTWlu ZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5OworKworKyAgdHJhY2tlcl9xdWV1ZSA9 IHBob3Rvc190cmFja2VyX3F1ZXVlX2R1cF9zaW5nbGV0b24gKGNhbmNlbGxhYmxlLCAmZXJyb3Ip OworKworKyAgaWYgKCF0cmFja2VyX3F1ZXVlKSB7CisrICAgIGdfd2FybmluZyAoIkVycm9yIGdl dHRpbmcgVHJhY2tlciBxdWV1ZTogJXMuIEltcG9ydCB3aWxsIG5vdCB3b3JrLiIsIGVycm9yLT5t ZXNzYWdlKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrCisrICBtaW5lcl9mc19jb250cm9s X2J1c25hbWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNfY29udHJvbF9idXNu YW1lICh0cmFja2VyX3F1ZXVlKTsKKysgIG1pbmVyX2NvbnRyb2xfcHJveHkgPSB0cmFja2VyX21p bmVyX2ZpbGVzX2luZGV4X3Byb3h5X25ld19mb3JfYnVzX3N5bmMgKEdfQlVTX1RZUEVfU0VTU0lP TiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19QUk9YWV9GTEFHU19OT05FLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWluZXJfZnNfY29udHJvbF9idXNuYW1lLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi9v cmcvZnJlZWRlc2t0b3AvVHJhY2tlcjMvTWluZXIvRmlsZXMvQ29udHJvbCIsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVycm9yKTsKKysgIGlmICghbWluZXJf Y29udHJvbF9wcm94eSkgeworKyAgICBnX3dhcm5pbmcgKCJFcnJvciBnZXR0aW5nIFRyYWNrZXIg TWluZXIgRlMgY29udHJvbCBwcm94eTogJXMuIEltcG9ydCB3aWxsIG5vdCB3b3JrIiwgZXJyb3It Pm1lc3NhZ2UpOworKyAgICByZXR1cm4gTlVMTDsKKysgIH0KKysKKysgIHJldHVybiBtaW5lcl9j b250cm9sX3Byb3h5OworK30KKysKKysKKyBzdGF0aWMgdm9pZAorIHBob3Rvc19hcHBsaWNhdGlv bl9pbXBvcnQgKFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorIHsKK0BAIC0xNTE5LDggKzE0NjAs OCBAQCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0IChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikK KyAgIEd0a1dpZGdldCAqZGlhbG9nOworICAgZ19hdXRvcHRyIChQaG90b3NBcHBsaWNhdGlvbklt cG9ydERhdGEpIGRhdGEgPSBOVUxMOworICAgUGhvdG9zU291cmNlICpzb3VyY2U7CistICBUcmFj a2VyTWluZXJNYW5hZ2VyICptYW5hZ2VyID0gTlVMTDsgLyogVE9ETzogdXNlIGdfYXV0b3B0ciAq LworICAgZ2ludDY0IGN0aW1lX2xhdGVzdCA9IC0xOworKyAgVHJhY2tlck1pbmVyRmlsZXNJbmRl eCAqbWluZXJfY29udHJvbF9wcm94eTsKKyAKKyAgIHNvdXJjZSA9IFBIT1RPU19TT1VSQ0UgKHBo b3Rvc19iYXNlX21hbmFnZXJfZ2V0X2FjdGl2ZV9vYmplY3QgKHNlbGYtPnN0YXRlLT5zcmNfbW5n cikpOworICAgZ19yZXR1cm5faWZfZmFpbCAoUEhPVE9TX0lTX1NPVVJDRSAoc291cmNlKSk7CitA QCAtMTUzMywxNyArMTQ3NCw5IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnQgKFBob3Rvc0Fw cGxpY2F0aW9uICpzZWxmKQorICAgc2VsZWN0aW9uID0gcGhvdG9zX3NlbGVjdGlvbl9jb250cm9s bGVyX2dldF9zZWxlY3Rpb24gKHNlbGYtPnNlbF9jbnRybHIpOworICAgZ19yZXR1cm5faWZfZmFp bCAoc2VsZWN0aW9uICE9IE5VTEwpOworIAorLSAgeworLSAgICBnX2F1dG9wdHIgKEdFcnJvcikg ZXJyb3IgPSBOVUxMOworLQorLSAgICBtYW5hZ2VyID0gdHJhY2tlcl9taW5lcl9tYW5hZ2VyX25l d19mdWxsIChGQUxTRSwgJmVycm9yKTsKKy0gICAgaWYgKGVycm9yICE9IE5VTEwpCistICAgICAg eworLSAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNyZWF0ZSBhIFRyYWNrZXJNaW5lck1h bmFnZXIsIGltcG9ydGluZyBmcm9tIGF0dGFjaGVkIGRldmljZXMgd29uJ3Qgd29yazogJXMiLAor LSAgICAgICAgICAgICAgICAgICBlcnJvci0+bWVzc2FnZSk7CistICAgICAgICBnb3RvIG91dDsK Ky0gICAgICB9CistICB9CisrICBtaW5lcl9jb250cm9sX3Byb3h5ID0gcGhvdG9zX2FwcGxpY2F0 aW9uX2dldF9taW5lcl9mc19jb250cm9sX3Byb3h5IChOVUxMKTsKKysgIGlmICghbWluZXJfY29u dHJvbF9wcm94eSkKKysgICAgZ290byBvdXQ7CisgCisgICBmb3IgKGwgPSBzZWxlY3Rpb247IGwg IT0gTlVMTDsgbCA9IGwtPm5leHQpCisgICAgIHsKK0BAIC0xNTcyLDE0ICsxNTA1LDE0IEBAIHBo b3Rvc19hcHBsaWNhdGlvbl9pbXBvcnQgKFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorICAgZGlh bG9nID0gcGhvdG9zX2ltcG9ydF9kaWFsb2dfbmV3IChHVEtfV0lORE9XIChzZWxmLT5tYWluX3dp bmRvdyksIGN0aW1lX2xhdGVzdCk7CisgICBndGtfd2lkZ2V0X3Nob3dfYWxsIChkaWFsb2cpOwor IAorLSAgZGF0YSA9IHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfZGF0YV9uZXcgKHNlbGYsIG1h bmFnZXIsIGZpbGVzLCBjdGltZV9sYXRlc3QpOworKyAgZGF0YSA9IHBob3Rvc19hcHBsaWNhdGlv bl9pbXBvcnRfZGF0YV9uZXcgKHNlbGYsIG1pbmVyX2NvbnRyb2xfcHJveHksIGZpbGVzLCBjdGlt ZV9sYXRlc3QpOworKworICAgZ19zaWduYWxfY29ubmVjdCAoZGlhbG9nLAorICAgICAgICAgICAg ICAgICAgICAgInJlc3BvbnNlIiwKKyAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKHBo b3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfcmVzcG9uc2UpLAorICAgICAgICAgICAgICAgICAgICAg Z19zdGVhbF9wb2ludGVyICgmZGF0YSkpOworIAorICBvdXQ6CistICBnX2NsZWFyX29iamVjdCAo Jm1hbmFnZXIpOworICAgZ19saXN0X2ZyZWVfZnVsbCAoZmlsZXMsIGdfb2JqZWN0X3VucmVmKTsK KyB9CisgCitAQCAtMjk3NCw2ICsyOTA3LDcgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2Rpc3Bvc2Ug KEdPYmplY3QgKm9iamVjdCkKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+aW5zdGFfYWN0aW9u KTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bG9hZF9uZXh0X2FjdGlvbik7CisgICBnX2Ns ZWFyX29iamVjdCAoJnNlbGYtPmxvYWRfcHJldmlvdXNfYWN0aW9uKTsKKysgIGdfY2xlYXJfb2Jq ZWN0ICgmc2VsZi0+bWluZXJfY29udHJvbF9wcm94eSk7CisgICBnX2NsZWFyX29iamVjdCAoJnNl bGYtPm9wZW5fYWN0aW9uKTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+cHJldmlld19tZW51 X2FjdGlvbik7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPnByaW1hcnlfbWVudV9hY3Rpb24p OworQEAgLTMwMDIsNyArMjkzNiw2IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9kaXNwb3NlIChHT2Jq ZWN0ICpvYmplY3QpCisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmNhbWVyYV9jYWNoZSk7Cisg ICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPnNlbF9jbnRybHIpOworICAgZ19jbGVhcl9vYmplY3Qg KCZzZWxmLT5mYWN0b3J5KTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+ZXh0cmFjdF9wcmlv cml0eSk7CisgCisgICBpZiAoc2VsZi0+c3RhdGUgIT0gTlVMTCkKKyAgICAgeworQEAgLTMxMzAs OCArMzA2Myw3IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9nZXRfbWluZXJzX3J1bm5pbmcgKFBob3Rv c0FwcGxpY2F0aW9uICpzZWxmKQorICAgcmV0dXJuIHNlbGYtPm1pbmVyc19ydW5uaW5nOworIH0K KyAKKy0KKy1naW50CisraW50CisgcGhvdG9zX2FwcGxpY2F0aW9uX2dldF9zY2FsZV9mYWN0b3Ig KFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorIHsKKyAgIEdMaXN0ICp3aW5kb3dzOworZGlmZiAt LWdpdCBhL3NyYy9waG90b3MtYmFzZS1pdGVtLmMgYi9zcmMvcGhvdG9zLWJhc2UtaXRlbS5jCitp bmRleCAxNDM0MzFmOS4uYjM0NzA2ZjIgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLWJhc2UtaXRl bS5jCisrKysgYi9zcmMvcGhvdG9zLWJhc2UtaXRlbS5jCitAQCAtMjc1Niw2ICsyNzU2LDE2IEBA IHBob3Rvc19iYXNlX2l0ZW1fdXBkYXRlX2luZm9fZnJvbV90eXBlIChQaG90b3NCYXNlSXRlbSAq c2VsZikKKyB9CisgCisgCisrc3RhdGljIGdkb3VibGUKKytnZXRfZG91YmxlX3dpdGhfZGVmYXVs dCAoVHJhY2tlclNwYXJxbEN1cnNvciAqY3Vyc29yLCBQaG90b3NRdWVyeUNvbHVtbnMgY29sdW1u LCBnZG91YmxlIGRlZmF1bHRfdmFsdWUpCisreworKyAgaWYgKHRyYWNrZXJfc3BhcnFsX2N1cnNv cl9pc19ib3VuZCAoY3Vyc29yLCBjb2x1bW4pKSB7CisrICAgIHJldHVybiB0cmFja2VyX3NwYXJx bF9jdXJzb3JfZ2V0X2RvdWJsZSAoY3Vyc29yLCBjb2x1bW4pOworKyAgfSBlbHNlIHsKKysgICAg cmV0dXJuIGRlZmF1bHRfdmFsdWU7CisrICB9CisrfQorKworIHN0YXRpYyB2b2lkCisgcGhvdG9z X2Jhc2VfaXRlbV9wb3B1bGF0ZV9mcm9tX2N1cnNvciAoUGhvdG9zQmFzZUl0ZW0gKnNlbGYsIFRy YWNrZXJTcGFycWxDdXJzb3IgKmN1cnNvcikKKyB7CitAQCAtMjg5MSwxMCArMjkwMSwxMCBAQCBw aG90b3NfYmFzZV9pdGVtX3BvcHVsYXRlX2Zyb21fY3Vyc29yIChQaG90b3NCYXNlSXRlbSAqc2Vs ZiwgVHJhY2tlclNwYXJxbEN1cnNvcgorICAgICAgIHByaXYtPndpZHRoID0gaGVpZ2h0OworICAg ICB9CisgCistICBwcml2LT5leHBvc3VyZV90aW1lID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dl dF9kb3VibGUgKGN1cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfRVhQT1NVUkVfVElNRSk7Cist ICBwcml2LT5mbnVtYmVyID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dldF9kb3VibGUgKGN1cnNv ciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfRk5VTUJFUik7CistICBwcml2LT5mb2NhbF9sZW5ndGgg PSB0cmFja2VyX3NwYXJxbF9jdXJzb3JfZ2V0X2RvdWJsZSAoY3Vyc29yLCBQSE9UT1NfUVVFUllf Q09MVU1OU19GT0NBTF9MRU5HVEgpOworLSAgcHJpdi0+aXNvX3NwZWVkID0gdHJhY2tlcl9zcGFy cWxfY3Vyc29yX2dldF9kb3VibGUgKGN1cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfSVNPX1NQ RUVEKTsKKysgIHByaXYtPmV4cG9zdXJlX3RpbWUgPSBnZXRfZG91YmxlX3dpdGhfZGVmYXVsdCAo Y3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1OU19FWFBPU1VSRV9USU1FLCAwLjApOworKyAgcHJp di0+Zm51bWJlciA9IGdldF9kb3VibGVfd2l0aF9kZWZhdWx0IChjdXJzb3IsIFBIT1RPU19RVUVS WV9DT0xVTU5TX0ZOVU1CRVIsIDAuMCk7CisrICBwcml2LT5mb2NhbF9sZW5ndGggPSBnZXRfZG91 YmxlX3dpdGhfZGVmYXVsdCAoY3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1OU19GT0NBTF9MRU5H VEgsIDAuMCk7CisrICBwcml2LT5pc29fc3BlZWQgPSBnZXRfZG91YmxlX3dpdGhfZGVmYXVsdCAo Y3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1OU19JU09fU1BFRUQsIDAuMCk7CisgCisgICBmbGFz aCA9IHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9nZXRfc3RyaW5nIChjdXJzb3IsIFBIT1RPU19RVUVS WV9DT0xVTU5TX0ZMQVNILCBOVUxMKTsKKyAgIHByaXYtPmZsYXNoID0gZ19xdWFya19mcm9tX3N0 cmluZyAoZmxhc2gpOworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtaW5kZXhpbmctbm90aWZpY2F0 aW9uLmMgYi9zcmMvcGhvdG9zLWluZGV4aW5nLW5vdGlmaWNhdGlvbi5jCitpbmRleCA3YjJlYTdk ZC4uMTIyZDBkOTEgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLWluZGV4aW5nLW5vdGlmaWNhdGlv bi5jCisrKysgYi9zcmMvcGhvdG9zLWluZGV4aW5nLW5vdGlmaWNhdGlvbi5jCitAQCAtMjYsMTIg KzI2LDEzIEBACisgI2luY2x1ZGUgPGdpby9naW8uaD4KKyAjaW5jbHVkZSA8Z2xpYi5oPgorICNp bmNsdWRlIDxnbGliL2dpMThuLmg+CistI2luY2x1ZGUgPGxpYnRyYWNrZXItY29udHJvbC90cmFj a2VyLWNvbnRyb2wuaD4KKyAKKyAjaW5jbHVkZSAicGhvdG9zLWFwcGxpY2F0aW9uLmgiCisgI2lu Y2x1ZGUgInBob3Rvcy1nb20tbWluZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLWluZGV4aW5nLW5v dGlmaWNhdGlvbi5oIgorICNpbmNsdWRlICJwaG90b3Mtbm90aWZpY2F0aW9uLW1hbmFnZXIuaCIK KysjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItcXVldWUuaCIKKysjaW5jbHVkZSAicGhvdG9zLXRy YWNrZXItbWluZXIuaCIKKyAKKyAKKyBzdHJ1Y3QgX1Bob3Rvc0luZGV4aW5nTm90aWZpY2F0aW9u CitAQCAtNDEsNyArNDIsNyBAQCBzdHJ1Y3QgX1Bob3Rvc0luZGV4aW5nTm90aWZpY2F0aW9uCisg ICBHdGtXaWRnZXQgKnByaW1hcnlfbGFiZWw7CisgICBHdGtXaWRnZXQgKnNlY29uZGFyeV9sYWJl bDsKKyAgIEd0a1dpZGdldCAqc3Bpbm5lcjsKKy0gIFRyYWNrZXJNaW5lck1hbmFnZXIgKm1hbmFn ZXI7CisrICBUcmFja2VyTWluZXIgKm1pbmVyX2ZzX3Byb3h5OworICAgZ2Jvb2xlYW4gY2xvc2Vk OworICAgZ2Jvb2xlYW4gb25fZGlzcGxheTsKKyAgIGd1aW50IHRpbWVvdXRfaWQ7CitAQCAtNTYs OCArNTcsNiBAQCBlbnVtCisgICBSRU1PVEVfTUlORVJfVElNRU9VVCA9IDEwIC8qIHMgKi8KKyB9 OworIAorLXN0YXRpYyBjb25zdCBnY2hhciAqTUlORVJfRklMRVMgPSAib3JnLmZyZWVkZXNrdG9w LlRyYWNrZXIxLk1pbmVyLkZpbGVzIjsKKy0KKyAKKyBzdGF0aWMgdm9pZAorIHBob3Rvc19pbmRl eGluZ19ub3RpZmljYXRpb25fcmVtb3ZlX3RpbWVvdXQgKFBob3Rvc0luZGV4aW5nTm90aWZpY2F0 aW9uICpzZWxmKQorQEAgLTE4MCwxNiArMTc5LDE4IEBAIHBob3Rvc19pbmRleGluZ19ub3RpZmlj YXRpb25fY2hlY2tfbm90aWZpY2F0aW9uIChQaG90b3NJbmRleGluZ05vdGlmaWNhdGlvbiAqc2Vs CisgICBHU0xpc3QgKnJ1bm5pbmcgPSBOVUxMOworICAgZ2Jvb2xlYW4gaXNfaW5kZXhpbmdfbG9j YWwgPSBGQUxTRTsKKyAgIGdib29sZWFuIGlzX2luZGV4aW5nX3JlbW90ZSA9IEZBTFNFOworKyAg R0Vycm9yICplcnJvciA9IE5VTEw7CisrICBnZG91YmxlIHByb2dyZXNzOworIAorLSAgcnVubmlu ZyA9IHRyYWNrZXJfbWluZXJfbWFuYWdlcl9nZXRfcnVubmluZyAoc2VsZi0+bWFuYWdlcik7Cist ICBpZiAoZ19zbGlzdF9maW5kX2N1c3RvbSAocnVubmluZywgKGdjb25zdHBvaW50ZXIpIE1JTkVS X0ZJTEVTLCAoR0NvbXBhcmVGdW5jKSBnX3N0cmNtcDApICE9IE5VTEwpCistICAgIHsKKy0gICAg ICBnZG91YmxlIHByb2dyZXNzOworKyAgdHJhY2tlcl9taW5lcl9jYWxsX2dldF9wcm9ncmVzc19z eW5jIChzZWxmLT5taW5lcl9mc19wcm94eSwgJnByb2dyZXNzLCBOVUxMLCAmZXJyb3IpOworKyAg aWYgKGVycm9yKSB7CisrICAgIGdfd2FybmluZyAoIkNvdWxkbid0IGdldCBpbmRleGluZyBwcm9n cmVzcyBmcm9tIFRyYWNrZXIgTWluZXIgRlM6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworIAorLSAg ICAgIHRyYWNrZXJfbWluZXJfbWFuYWdlcl9nZXRfc3RhdHVzIChzZWxmLT5tYW5hZ2VyLCBNSU5F Ul9GSUxFUywgTlVMTCwgJnByb2dyZXNzLCBOVUxMKTsKKy0gICAgICBpZiAocHJvZ3Jlc3MgPCAx KQorLSAgICAgICAgaXNfaW5kZXhpbmdfbG9jYWwgPSBUUlVFOworLSAgICB9CisrICAgIGdfY2xl YXJfZXJyb3IgKCZlcnJvcik7CisrICB9IGVsc2UgeworKyAgICBpZiAocHJvZ3Jlc3MgPCAxKQor KyAgICAgIGlzX2luZGV4aW5nX2xvY2FsID0gVFJVRTsKKysgIH0KKyAKKyAgIGFwcCA9IGdfYXBw bGljYXRpb25fZ2V0X2RlZmF1bHQgKCk7CisgICBtaW5lcnNfcnVubmluZyA9IHBob3Rvc19hcHBs aWNhdGlvbl9nZXRfbWluZXJzX3J1bm5pbmcgKFBIT1RPU19BUFBMSUNBVElPTiAoYXBwKSk7CitA QCAtMjIyLDcgKzIyMyw2IEBAIHBob3Rvc19pbmRleGluZ19ub3RpZmljYXRpb25fZGlzcG9zZSAo R09iamVjdCAqb2JqZWN0KQorICAgcGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9yZW1vdmVf dGltZW91dCAoc2VsZik7CisgCisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPm50ZmN0bl9tbmdy KTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bWFuYWdlcik7CisgCisgICBHX09CSkVDVF9D TEFTUyAocGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9wYXJlbnRfY2xhc3MpLT5kaXNwb3Nl IChvYmplY3QpOworIH0KK0BAIC0yNDAsMTMgKzI0MCwyNSBAQCBwaG90b3NfaW5kZXhpbmdfbm90 aWZpY2F0aW9uX2luaXQgKFBob3Rvc0luZGV4aW5nTm90aWZpY2F0aW9uICpzZWxmKQorICAgYXBw ID0gZ19hcHBsaWNhdGlvbl9nZXRfZGVmYXVsdCAoKTsKKyAKKyAgIHsKKysgICAgZ19hdXRvcHRy IChQaG90b3NUcmFja2VyUXVldWUpIHRyYWNrZXJfcXVldWU7CisgICAgIGdfYXV0b3B0ciAoR0Vy cm9yKSBlcnJvciA9IE5VTEw7CisrICAgIGNvbnN0IGdjaGFyICptaW5lcl9mc19idXNuYW1lOwor KworKyAgICB0cmFja2VyX3F1ZXVlID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZHVwX3NpbmdsZXRv biAoTlVMTCwgJmVycm9yKTsKKysKKysgICAgaWYgKHRyYWNrZXJfcXVldWUpIHsKKysgICAgICBt aW5lcl9mc19idXNuYW1lID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21pbmVyX2ZzX2J1c25h bWUgKHRyYWNrZXJfcXVldWUpOworKyAgICAgIHNlbGYtPm1pbmVyX2ZzX3Byb3h5ID0gdHJhY2tl cl9taW5lcl9wcm94eV9uZXdfZm9yX2J1c19zeW5jIChHX0JVU19UWVBFX1NFU1NJT04sCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdfREJVU19QUk9YWV9GTEFHU19OT05FLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5lcl9mc19idXNu YW1lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiL29yZy9mcmVlZGVza3RvcC9UcmFja2VyMy9NaW5lci9GaWxlcyIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcik7CisrICAgIH0KKyAKKy0gICAg c2VsZi0+bWFuYWdlciA9IHRyYWNrZXJfbWluZXJfbWFuYWdlcl9uZXdfZnVsbCAoRkFMU0UsICZl cnJvcik7CisgICAgIGlmIChlcnJvciAhPSBOVUxMKQorICAgICAgIHsKKy0gICAgICAgIGdfd2Fy bmluZyAoIlVuYWJsZSB0byBjcmVhdGUgYSBUcmFja2VyTWluZXJNYW5hZ2VyLCBpbmRleGluZyBw cm9ncmVzcyBub3RpZmljYXRpb24gd29uJ3Qgd29yazogJXMiLAorLSAgICAgICAgICAgICAgICAg ICBlcnJvci0+bWVzc2FnZSk7CisrICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gY3JlYXRl IHByb3h5IGZvciBUcmFja2VyIE1pbmVyIEZTLCBpbmRleGluZyBwcm9ncmVzcyBub3RpZmljYXRp b24gd29uJ3Qgd29yayIpOworICAgICAgICAgcmV0dXJuOworICAgICAgIH0KKyAgIH0KK0BAIC0y OTMsMTAgKzMwNSwxMSBAQCBwaG90b3NfaW5kZXhpbmdfbm90aWZpY2F0aW9uX2luaXQgKFBob3Rv c0luZGV4aW5nTm90aWZpY2F0aW9uICpzZWxmKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DT05ORUNUX1NXQVBQRUQpOwor IAorLSAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkIChzZWxmLT5tYW5hZ2VyLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAibWluZXItcHJvZ3Jlc3MiLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHX0NBTExCQUNLIChwaG90b3NfaW5kZXhpbmdfbm90aWZpY2F0aW9uX2NoZWNr X25vdGlmaWNhdGlvbiksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpOworKyAg Z19zaWduYWxfY29ubmVjdF9vYmplY3QgKHNlbGYtPm1pbmVyX2ZzX3Byb3h5LAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICJwcm9ncmVzcyIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgR19DQUxMQkFDSyAocGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9jaGVja19ub3RpZmlj YXRpb24pLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgR19DT05ORUNUX1NXQVBQRUQpOworIH0KKyAKKyAKK2RpZmYgLS1naXQg YS9zcmMvcGhvdG9zLWl0ZW0tbWFuYWdlci5jIGIvc3JjL3Bob3Rvcy1pdGVtLW1hbmFnZXIuYwor aW5kZXggYzQ0ZmJiZmMuLmU0NTExYmIxIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1pdGVtLW1h bmFnZXIuYworKysrIGIvc3JjL3Bob3Rvcy1pdGVtLW1hbmFnZXIuYworQEAgLTQxLDEyICs0MSw5 IEBACisgI2luY2x1ZGUgInBob3Rvcy1xdWVyeS5oIgorICNpbmNsdWRlICJwaG90b3Mtc2VhcmNo LWNvbnRleHQuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNpbmdsZS1pdGVtLWpvYi5oIgorLSNpbmNs dWRlICJwaG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuaCIKKy0jaW5jbHVkZSAicGhvdG9zLXRy YWNrZXItY2hhbmdlLW1vbml0b3IuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItcXVldWUu aCIKKyAjaW5jbHVkZSAicGhvdG9zLXV0aWxzLmgiCisgCistCisgc3RydWN0IF9QaG90b3NJdGVt TWFuYWdlcgorIHsKKyAgIFBob3Rvc0Jhc2VNYW5hZ2VyIHBhcmVudF9pbnN0YW5jZTsKK0BAIC02 MCw3ICs1Nyw3IEBAIHN0cnVjdCBfUGhvdG9zSXRlbU1hbmFnZXIKKyAgIFBob3Rvc0Jhc2VJdGVt ICphY3RpdmVfY29sbGVjdGlvbjsKKyAgIFBob3Rvc0Jhc2VNYW5hZ2VyICoqaXRlbV9tbmdyX2No bGRybjsKKyAgIFBob3Rvc0xvYWRTdGF0ZSBsb2FkX3N0YXRlOworLSAgUGhvdG9zVHJhY2tlckNo YW5nZU1vbml0b3IgKm1vbml0b3I7CisrICBUcmFja2VyTm90aWZpZXIgKm5vdGlmaWVyOworICAg UGhvdG9zVHJhY2tlclF1ZXVlICpxdWV1ZTsKKyAgIFBob3Rvc1dpbmRvd01vZGUgbW9kZTsKKyAg IGdib29sZWFuIGZ1bGxzY3JlZW47CitAQCAtMzExLDcgKzMwOCw3IEBAIHBob3Rvc19pdGVtX21h bmFnZXJfYWRkX2N1cnNvcl9mb3JfbW9kZSAoUGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYsCisgICBn X3JldHVybl9pZl9mYWlsIChiYXNlX2l0ZW1fdHlwZSA9PSBHX1RZUEVfTk9ORQorICAgICAgICAg ICAgICAgICAgICAgfHwgKGJhc2VfaXRlbV90eXBlICE9IFBIT1RPU19UWVBFX0JBU0VfSVRFTQor ICAgICAgICAgICAgICAgICAgICAgICAgICYmIGdfdHlwZV9pc19hIChiYXNlX2l0ZW1fdHlwZSwg UEhPVE9TX1RZUEVfQkFTRV9JVEVNKSkpOworLSAgZ19yZXR1cm5faWZfZmFpbCAoVFJBQ0tFUl9T UEFSUUxfSVNfQ1VSU09SIChjdXJzb3IpKTsKKysgIGdfcmV0dXJuX2lmX2ZhaWwgKFRSQUNLRVJf SVNfU1BBUlFMX0NVUlNPUiAoY3Vyc29yKSk7CisgICBnX3JldHVybl9pZl9mYWlsIChtb2RlICE9 IFBIT1RPU19XSU5ET1dfTU9ERV9OT05FKTsKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKG1vZGUgIT0g UEhPVE9TX1dJTkRPV19NT0RFX0VESVQpOworICAgZ19yZXR1cm5faWZfZmFpbCAobW9kZSAhPSBQ SE9UT1NfV0lORE9XX01PREVfUFJFVklFVyk7CitAQCAtNTI5LDIxICs1MjYsMjMgQEAgcGhvdG9z X2l0ZW1fbWFuYWdlcl9pdGVtX2NyZWF0ZWQgKFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxmLCBjb25z dCBnY2hhciAqdXJuKQorIAorIAorIHN0YXRpYyB2b2lkCistcGhvdG9zX2l0ZW1fbWFuYWdlcl9j aGFuZ2VzX3BlbmRpbmdfZm9yZWFjaCAoZ3BvaW50ZXIga2V5LCBncG9pbnRlciB2YWx1ZSwgZ3Bv aW50ZXIgdXNlcl9kYXRhKQorK3Bob3Rvc19pdGVtX21hbmFnZXJfY2hhbmdlc19wZW5kaW5nX2Zv cmVhY2ggKGdwb2ludGVyIGRhdGEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9kYXRhKQorIHsKKyAgIFBob3Rvc0l0ZW1NYW5hZ2Vy ICpzZWxmID0gUEhPVE9TX0lURU1fTUFOQUdFUiAodXNlcl9kYXRhKTsKKy0gIFBob3Rvc1RyYWNr ZXJDaGFuZ2VFdmVudCAqY2hhbmdlX2V2ZW50ID0gKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAq KSB2YWx1ZTsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudFR5cGUgY2hhbmdlX3R5cGU7Cisr ICBUcmFja2VyTm90aWZpZXJFdmVudCAqZXZlbnQgPSAoVHJhY2tlck5vdGlmaWVyRXZlbnQgKikg ZGF0YTsKKysgIFRyYWNrZXJOb3RpZmllckV2ZW50VHlwZSBjaGFuZ2VfdHlwZTsKKyAgIGNvbnN0 IGdjaGFyICpjaGFuZ2VfdXJuOworIAorLSAgY2hhbmdlX3R5cGUgPSBwaG90b3NfdHJhY2tlcl9j aGFuZ2VfZXZlbnRfZ2V0X3R5cGUgKGNoYW5nZV9ldmVudCk7CistICBjaGFuZ2VfdXJuID0gcGhv dG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF91cm4gKGNoYW5nZV9ldmVudCk7CisrICBjaGFu Z2VfdHlwZSA9IHRyYWNrZXJfbm90aWZpZXJfZXZlbnRfZ2V0X2V2ZW50X3R5cGUgKGV2ZW50KTsK KysgIGNoYW5nZV91cm4gPSB0cmFja2VyX25vdGlmaWVyX2V2ZW50X2dldF91cm4gKGV2ZW50KTsK KyAKKy0gIGlmIChjaGFuZ2VfdHlwZSA9PSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfQ0hB TkdFRCkKKysgIGlmIChjaGFuZ2VfdHlwZSA9PSBUUkFDS0VSX05PVElGSUVSX0VWRU5UX1VQREFU RSkKKyAgICAgeworICAgICAgIEdPYmplY3QgKm9iamVjdDsKKyAKKyAgICAgICBvYmplY3QgPSBw aG90b3NfYmFzZV9tYW5hZ2VyX2dldF9vYmplY3RfYnlfaWQgKFBIT1RPU19CQVNFX01BTkFHRVIg KHNlbGYpLCBjaGFuZ2VfdXJuKTsKKysgICAgICBnX21lc3NhZ2UgKCJVUERBVEUgZXZlbnQgZm9y ICVzLCBvYmplY3QgJXAiLCBjaGFuZ2VfdXJuLCBvYmplY3QpOworICAgICAgIGlmIChvYmplY3Qg IT0gTlVMTCkKKyAgICAgICAgIHsKKyAgICAgICAgICAgcGhvdG9zX2Jhc2VfaXRlbV9yZWZyZXNo IChQSE9UT1NfQkFTRV9JVEVNIChvYmplY3QpKTsKK0BAIC01NTcsMTUgKzU1NiwxNyBAQCBwaG90 b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVuZGluZ19mb3JlYWNoIChncG9pbnRlciBrZXksIGdw b2ludGVyIHZhbHVlLCBncG9pbgorICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfQor LSAgZWxzZSBpZiAoY2hhbmdlX3R5cGUgPT0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NS RUFURUQpCisrICBlbHNlIGlmIChjaGFuZ2VfdHlwZSA9PSBUUkFDS0VSX05PVElGSUVSX0VWRU5U X0NSRUFURSkKKyAgICAgeworKyAgICAgIGdfbWVzc2FnZSAoIkNSRUFURSBldmVudCBmb3IgJXMi LCBjaGFuZ2VfdXJuKTsKKyAgICAgICBwaG90b3NfaXRlbV9tYW5hZ2VyX2l0ZW1fY3JlYXRlZCAo c2VsZiwgY2hhbmdlX3Vybik7CisgICAgIH0KKy0gIGVsc2UgaWYgKGNoYW5nZV90eXBlID09IFBI T1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9ERUxFVEVEKQorKyAgZWxzZSBpZiAoY2hhbmdlX3R5 cGUgPT0gVFJBQ0tFUl9OT1RJRklFUl9FVkVOVF9ERUxFVEUpCisgICAgIHsKKyAgICAgICBHT2Jq ZWN0ICpvYmplY3Q7CisgCisgICAgICAgb2JqZWN0ID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRf b2JqZWN0X2J5X2lkIChQSE9UT1NfQkFTRV9NQU5BR0VSIChzZWxmKSwgY2hhbmdlX3Vybik7Cisr ICAgICAgZ19tZXNzYWdlICgiREVMRVRFIGV2ZW50IGZvciAlcywgb2JqZWN0ICVwIiwgY2hhbmdl X3Vybiwgb2JqZWN0KTsKKyAgICAgICBpZiAob2JqZWN0ICE9IE5VTEwpCisgICAgICAgICB7Cisg ICAgICAgICAgIHBob3Rvc19iYXNlX2l0ZW1fZGVzdHJveSAoUEhPVE9TX0JBU0VfSVRFTSAob2Jq ZWN0KSk7CitAQCAtNTc3LDkgKzU3OCwxNSBAQCBwaG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNf cGVuZGluZ19mb3JlYWNoIChncG9pbnRlciBrZXksIGdwb2ludGVyIHZhbHVlLCBncG9pbgorIAor IAorIHN0YXRpYyB2b2lkCistcGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmcgKFBo b3Rvc0l0ZW1NYW5hZ2VyICpzZWxmLCBHSGFzaFRhYmxlICpjaGFuZ2VzKQorLXsKKy0gIGdfaGFz aF90YWJsZV9mb3JlYWNoIChjaGFuZ2VzLCBwaG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVu ZGluZ19mb3JlYWNoLCBzZWxmKTsKKytwaG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVuZGlu ZyAoUGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICpzZXJ2aWNlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAqZ3JhcGgsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdQdHJBcnJheSAgICAgICAgICpldmVudHMsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAgICB1 c2VyX2RhdGEpCisreworKyAgaWYgKGdfc3RyX2VxdWFsIChncmFwaCwgVFJBQ0tFUl9QSUNUVVJF U19HUkFQSCkpIHsKKysgICAgZ19wdHJfYXJyYXlfZm9yZWFjaCAoZXZlbnRzLCBwaG90b3NfaXRl bV9tYW5hZ2VyX2NoYW5nZXNfcGVuZGluZ19mb3JlYWNoLCBzZWxmKTsKKysgIH0KKyB9CisgCisg CitAQCAtNzE3LDcgKzcyNCw3IEBAIHBob3Rvc19pdGVtX21hbmFnZXJfd2FpdF9mb3JfY2hhbmdl c190aW1lb3V0IChncG9pbnRlciB1c2VyX2RhdGEpCisgICAgICAgZ19hdXRvcHRyIChQaG90b3NR dWVyeSkgcXVlcnkgPSBOVUxMOworICAgICAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9IE5V TEw7CisgCistICAgICAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiU0VMRUNUID91cm4gbmll OnVybCAoP3VybikgV0hFUkUgeyA/dXJuIG5pZTp1cmwgJyVzJyB9IiwgdXJpKTsKKysgICAgICBz cGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJTRUxFQ1QgP3VybiBuaWU6aXNTdG9yZWRBcyAoP3Vy bikgV0hFUkUgeyA/dXJuIG5pZTppc1N0b3JlZEFzICclcycgfSIsIHVyaSk7CisgICAgICAgcXVl cnkgPSBwaG90b3NfcXVlcnlfbmV3IChOVUxMLCBzcGFycWwpOworICAgICAgIHBob3Rvc190cmFj a2VyX3F1ZXVlX3NlbGVjdCAoc2VsZi0+cXVldWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBxdWVyeSwKK0BAIC0xMDM4LDcgKzEwNDUsNyBAQCBwaG90b3NfaXRlbV9tYW5h Z2VyX2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+ YWN0aXZlX29iamVjdCk7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmxvYWRlcl9jYW5jZWxs YWJsZSk7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmFjdGl2ZV9jb2xsZWN0aW9uKTsKKy0g IGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bW9uaXRvcik7CisrICBnX2NsZWFyX29iamVjdCAoJnNl bGYtPm5vdGlmaWVyKTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+cXVldWUpOworIAorICAg R19PQkpFQ1RfQ0xBU1MgKHBob3Rvc19pdGVtX21hbmFnZXJfcGFyZW50X2NsYXNzKS0+ZGlzcG9z ZSAob2JqZWN0KTsKK0BAIC0xMDkzLDIwICsxMTAwLDI0IEBAIHBob3Rvc19pdGVtX21hbmFnZXJf aW5pdCAoUGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYpCisgCisgICBzZWxmLT5tb2RlID0gUEhPVE9T X1dJTkRPV19NT0RFX05PTkU7CisgCistICBzZWxmLT5tb25pdG9yID0gcGhvdG9zX3RyYWNrZXJf Y2hhbmdlX21vbml0b3JfZHVwX3NpbmdsZXRvbiAoTlVMTCwgTlVMTCk7CistICBpZiAoR19MSUtF TFkgKHNlbGYtPm1vbml0b3IgIT0gTlVMTCkpCistICAgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0 IChzZWxmLT5tb25pdG9yLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNoYW5nZXMt cGVuZGluZyIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChwaG90 b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVuZGluZyksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DT05ORUNUX1NX QVBQRUQpOworLQorICAgeworICAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOwor IAorICAgICBzZWxmLT5xdWV1ZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2R1cF9zaW5nbGV0b24g KE5VTEwsICZlcnJvcik7CisgICAgIGlmIChHX1VOTElLRUxZIChlcnJvciAhPSBOVUxMKSkKKy0g ICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gY3JlYXRlIFBob3Rvc1RyYWNrZXJRdWV1ZTogJXMi LCBlcnJvci0+bWVzc2FnZSk7CisrICAgICAgeworKyAgICAgICAgZ193YXJuaW5nICgiVW5hYmxl IHRvIGNyZWF0ZSBQaG90b3NUcmFja2VyUXVldWU6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworKyAg ICAgICAgc2VsZi0+bm90aWZpZXIgPSBOVUxMOworKyAgICAgIH0KKysgICAgZWxzZQorKyAgICAg IHsKKysgICAgICAgIHNlbGYtPm5vdGlmaWVyID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X25v dGlmaWVyIChzZWxmLT5xdWV1ZSk7CisrICAgICAgICBnX3NpZ25hbF9jb25uZWN0X29iamVjdCAo c2VsZi0+bm90aWZpZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV2ZW50 cyIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAocGhvdG9z X2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmcpLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DT05O RUNUX1NXQVBQRUQpOworKyAgICAgIH0KKyAgIH0KKyAKKyAgIHNlbGYtPmZ1bGxzY3JlZW4gPSBG QUxTRTsKK0BAIC0xMjQxLDcgKzEyNTIsNyBAQCBwaG90b3NfaXRlbV9tYW5hZ2VyX2FkZF9pdGVt IChQaG90b3NJdGVtTWFuYWdlciAqc2VsZiwKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKGJhc2VfaXRl bV90eXBlID09IEdfVFlQRV9OT05FCisgICAgICAgICAgICAgICAgICAgICB8fCAoYmFzZV9pdGVt X3R5cGUgIT0gUEhPVE9TX1RZUEVfQkFTRV9JVEVNCisgICAgICAgICAgICAgICAgICAgICAgICAg JiYgZ190eXBlX2lzX2EgKGJhc2VfaXRlbV90eXBlLCBQSE9UT1NfVFlQRV9CQVNFX0lURU0pKSk7 CistICBnX3JldHVybl9pZl9mYWlsIChUUkFDS0VSX1NQQVJRTF9JU19DVVJTT1IgKGN1cnNvcikp OworKyAgZ19yZXR1cm5faWZfZmFpbCAoVFJBQ0tFUl9JU19TUEFSUUxfQ1VSU09SIChjdXJzb3Ip KTsKKyAKKyAgIGlkID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dldF9zdHJpbmcgKGN1cnNvciwg UEhPVE9TX1FVRVJZX0NPTFVNTlNfVVJOLCBOVUxMKTsKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKGlk ICE9IE5VTEwgJiYgaWRbMF0gIT0gJ1wwJyk7CitAQCAtMTM3MCw3ICsxMzgxLDcgQEAgcGhvdG9z X2l0ZW1fbWFuYWdlcl9jcmVhdGVfaXRlbSAoUGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYsCisgICBn X3JldHVybl92YWxfaWZfZmFpbCAoYmFzZV9pdGVtX3R5cGUgPT0gR19UWVBFX05PTkUKKyAgICAg ICAgICAgICAgICAgICAgICAgICB8fCAoYmFzZV9pdGVtX3R5cGUgIT0gUEhPVE9TX1RZUEVfQkFT RV9JVEVNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGdfdHlwZV9pc19hIChiYXNl X2l0ZW1fdHlwZSwgUEhPVE9TX1RZUEVfQkFTRV9JVEVNKSksIE5VTEwpOworLSAgZ19yZXR1cm5f dmFsX2lmX2ZhaWwgKFRSQUNLRVJfU1BBUlFMX0lTX0NVUlNPUiAoY3Vyc29yKSwgTlVMTCk7Cisr ICBnX3JldHVybl92YWxfaWZfZmFpbCAoVFJBQ0tFUl9JU19TUEFSUUxfQ1VSU09SIChjdXJzb3Ip LCBOVUxMKTsKKyAKKyAgIGlkID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dldF9zdHJpbmcgKGN1 cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfVVJOLCBOVUxMKTsKKyAgIGl0ZW0gPSBQSE9UT1Nf QkFTRV9JVEVNIChwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9vYmplY3RfYnlfaWQgKFBIT1RPU19C QVNFX01BTkFHRVIgKHNlbGYpLCBpZCkpOworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtcXVhcmtz LmMgYi9zcmMvcGhvdG9zLXF1YXJrcy5jCitpbmRleCAwODcwZWY2Mi4uNWVlMjU3NDUgMTAwNjQ0 CistLS0gYS9zcmMvcGhvdG9zLXF1YXJrcy5jCisrKysgYi9zcmMvcGhvdG9zLXF1YXJrcy5jCitA QCAtMjUsNjggKzI1LDY4IEBACisgR1F1YXJrCisgcGhvdG9zX3F1YXJrc19mbGFzaF9vZmZfcXVh cmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0 cDovL3d3dy50cmFja2VyLXByb2plY3Qub3JnL3RlbXAvbm1tI2ZsYXNoLW9mZiIpOworKyAgcmV0 dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21l Lm9yZy9vbnRvbG9neS92My9ubW0jZmxhc2gtb2ZmIik7CisgfQorIAorIAorIEdRdWFyaworIHBo b3Rvc19xdWFya3NfZmxhc2hfb25fcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtf ZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy50cmFja2VyLXByb2plY3Qub3JnL3RlbXAv bm1tI2ZsYXNoLW9uIik7CisrICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJo dHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25tbSNmbGFzaC1vbiIpOwor IH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9uX2JvdHRvbV9xdWFy ayAodm9pZCkKKyB7CistICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRw Oi8vd3d3LnNlbWFudGljZGVza3RvcC5vcmcvb250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNvcmll bnRhdGlvbi1ib3R0b20iKTsKKysgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAo Imh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9u LWJvdHRvbSIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9u X2JvdHRvbV9taXJyb3JfcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9z dGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rlc2t0b3Aub3JnL29udG9sb2dpZXMv MjAwNy8wMy8yMi9uZm8jb3JpZW50YXRpb24tYm90dG9tLW1pcnJvciIpOworKyAgcmV0dXJuIGdf cXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9v bnRvbG9neS92My9uZm8jb3JpZW50YXRpb24tYm90dG9tLW1pcnJvciIpOworIH0KKyAKKyAKKyBH UXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9uX2xlZnRfcXVhcmsgKHZvaWQpCisgewor LSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy5zZW1hbnRp Y2Rlc2t0b3Aub3JnL29udG9sb2dpZXMvMjAwNy8wMy8yMi9uZm8jb3JpZW50YXRpb24tbGVmdCIp OworKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIu YXBpLmdub21lLm9yZy9vbnRvbG9neS92My9uZm8jb3JpZW50YXRpb24tbGVmdCIpOworIH0KKyAK KyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9uX2xlZnRfbWlycm9yX3F1YXJr ICh2b2lkKQorIHsKKy0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6 Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVzLzIwMDcvMDMvMjIvbmZvI29yaWVu dGF0aW9uLWxlZnQtbWlycm9yIik7CisrICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJp bmcgKCJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25mbyNvcmllbnRh dGlvbi1sZWZ0LW1pcnJvciIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29y aWVudGF0aW9uX3JpZ2h0X3F1YXJrICh2b2lkKQorIHsKKy0gIHJldHVybiBnX3F1YXJrX2Zyb21f c3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVz LzIwMDcvMDMvMjIvbmZvI29yaWVudGF0aW9uLXJpZ2h0Iik7CisrICByZXR1cm4gZ19xdWFya19m cm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5 L3YzL25mbyNvcmllbnRhdGlvbi1yaWdodCIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3Nf cXVhcmtzX29yaWVudGF0aW9uX3JpZ2h0X21pcnJvcl9xdWFyayAodm9pZCkKKyB7CistICByZXR1 cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vd3d3LnNlbWFudGljZGVza3Rv cC5vcmcvb250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNvcmllbnRhdGlvbi1yaWdodC1taXJyb3Ii KTsKKysgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly90cmFja2Vy LmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9uLXJpZ2h0LW1pcnJvciIp OworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9uX3RvcF9xdWFy ayAodm9pZCkKKyB7CistICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRw Oi8vd3d3LnNlbWFudGljZGVza3RvcC5vcmcvb250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNvcmll bnRhdGlvbi10b3AiKTsKKysgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0 dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9uLXRv cCIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9uX3RvcF9t aXJyb3JfcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3Ry aW5nICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rlc2t0b3Aub3JnL29udG9sb2dpZXMvMjAwNy8wMy8y Mi9uZm8jb3JpZW50YXRpb24tdG9wLW1pcnJvciIpOworKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9z dGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9u Zm8jb3JpZW50YXRpb24tdG9wLW1pcnJvciIpOworIH0KK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9z LXF1ZXJ5LWJ1aWxkZXIuYyBiL3NyYy9waG90b3MtcXVlcnktYnVpbGRlci5jCitpbmRleCBlMDcz NWJkZS4uNDZkNjVlOGYgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuYwor KysrIGIvc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMKK0BAIC0yNSw2ICsyNSw3IEBACisgCisg I2luY2x1ZGUgPHN0cmluZy5oPgorIAorKyNpbmNsdWRlICJwaG90b3MtYXBwbGljYXRpb24uaCIK KyAjaW5jbHVkZSAicGhvdG9zLWJhc2UtbWFuYWdlci5oIgorICNpbmNsdWRlICJwaG90b3MtcXVl cnkuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuaCIKK0BAIC0zMiw2ICszMyw3 IEBACisgI2luY2x1ZGUgInBob3Rvcy1zb3VyY2UtbWFuYWdlci5oIgorICNpbmNsdWRlICJwaG90 b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC10eXBl LW1hbmFnZXIuaCIKKysjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItcXVldWUuaCIKKyAKKyAjZGVm aW5lIFBIT1RPU19RVUVSWV9DT0xMRUNUSU9OU19JREVOVElGSUVSICJwaG90b3M6Y29sbGVjdGlv bjoiCisgI2RlZmluZSBQSE9UT1NfUVVFUllfTE9DQUxfQ09MTEVDVElPTlNfSURFTlRJRklFUiAi cGhvdG9zOmNvbGxlY3Rpb246bG9jYWw6IgorQEAgLTQ4LDEyICs1MCwxNCBAQCBjb25zdCBnY2hh ciAqcGhvdG9zX2RlZmF1bHRfZmlsdGVyID0gXAorIAorIHN0YXRpYyBnY2hhciAqCisgcGhvdG9z X3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGdsb2JhbCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnZhbHVlcywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ2ludCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhv dG9zT2Zmc2V0Q29udHJvbGxlciAqb2Zmc2V0X2NudHJscikKKyB7CisgICBQaG90b3NTcGFycWxU ZW1wbGF0ZSAqdGVtcGxhdGU7CistICBjb25zdCBnY2hhciAqcHJvamVjdGlvbiA9IE5VTEw7Cisr ICBjb25zdCBnY2hhciAqbWluZXJfZnNfYnVzbmFtZSA9IE5VTEw7CisrICBjb25zdCBnY2hhciAq bWFpbl9wcm9qZWN0aW9uID0gTlVMTDsKKysgIGNvbnN0IGdjaGFyICpzZWNvbmRfcHJvamVjdGlv biA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICppdGVtX3BhdHRlcm4gPSBOVUxMOworICAg Z19hdXRvZnJlZSBnY2hhciAqc2VhcmNoX2ZpbHRlciA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdj aGFyICpzb3VyY2VfZmlsdGVyID0gTlVMTDsKK0BAIC02MywyOSArNjcsMzUgQEAgcGhvdG9zX3F1 ZXJ5X2J1aWxkZXJfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisgCisg ICB0ZW1wbGF0ZSA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAoc3Rh dGUtPnNyY2hfdHlwX21uZ3IsIGZsYWdzKTsKKyAKKy0gIHByb2plY3Rpb24gPSAiP3VybiAiCist ICAgICAgICAgICAgICAgIm5pZTp1cmwgKD91cm4pICIKKy0gICAgICAgICAgICAgICAibmZvOmZp bGVOYW1lICg/dXJuKSAiCistICAgICAgICAgICAgICAgIm5pZTptaW1lVHlwZSAoP3VybikgIgor LSAgICAgICAgICAgICAgICJuaWU6dGl0bGUgKD91cm4pICIKKy0gICAgICAgICAgICAgICAidHJh Y2tlcjpjb2FsZXNjZSAobmNvOmZ1bGxuYW1lICg/Y3JlYXRvciksIG5jbzpmdWxsbmFtZSAoP3B1 Ymxpc2hlciksICcnKSAiCistICAgICAgICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UgKG5mbzpm aWxlTGFzdE1vZGlmaWVkICg/dXJuKSwgbmllOmNvbnRlbnRMYXN0TW9kaWZpZWQgKD91cm4pKSBB UyA/bXRpbWUgIgorLSAgICAgICAgICAgICAgICJuYW86aWRlbnRpZmllciAoP3VybikgIgorLSAg ICAgICAgICAgICAgICJyZGY6dHlwZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICJuaWU6ZGF0 YVNvdXJjZSg/dXJuKSAiCistICAgICAgICAgICAgICAgIiggRVhJU1RTIHsgP3VybiBuYW86aGFz VGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSB9ICkgIgorLSAgICAgICAgICAgICAgICIo IEVYSVNUUyB7ID91cm4gbmNvOmNvbnRyaWJ1dG9yID9jb250cmlidXRvciBGSUxURVIgKCA/Y29u dHJpYnV0b3IgIT0gP2NyZWF0b3IgKSB9ICkgIgorLSAgICAgICAgICAgICAgICJ0cmFja2VyOmNv YWxlc2NlKG5mbzpmaWxlQ3JlYXRlZCAoP3VybiksIG5pZTpjb250ZW50Q3JlYXRlZCAoP3Vybikp ICIKKy0gICAgICAgICAgICAgICAibmZvOndpZHRoICg/dXJuKSAiCistICAgICAgICAgICAgICAg Im5mbzpoZWlnaHQgKD91cm4pICIKKy0gICAgICAgICAgICAgICAibmZvOmVxdWlwbWVudCAoP3Vy bikgIgorLSAgICAgICAgICAgICAgICJuZm86b3JpZW50YXRpb24gKD91cm4pICIKKy0gICAgICAg ICAgICAgICAibm1tOmV4cG9zdXJlVGltZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICJubW06 Zm51bWJlciAoP3VybikgIgorLSAgICAgICAgICAgICAgICJubW06Zm9jYWxMZW5ndGggKD91cm4p ICIKKy0gICAgICAgICAgICAgICAibm1tOmlzb1NwZWVkICg/dXJuKSAiCistICAgICAgICAgICAg ICAgIm5tbTpmbGFzaCAoP3VybikgIgorLSAgICAgICAgICAgICAgICJzbG86bG9jYXRpb24gKD91 cm4pICI7CisrICBtaW5lcl9mc19idXNuYW1lID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21p bmVyX2ZzX2J1c25hbWUgKHN0YXRlLT5xdWV1ZSk7CisrCisrICBtYWluX3Byb2plY3Rpb24gPSAi P3VybiAiCisrICAgICAgICAgICAgICAgICAgICAiP2ZpbGUgIgorKyAgICAgICAgICAgICAgICAg ICAgIm5mbzpmaWxlTmFtZSAoP2ZpbGUpIEFTID9maWxlbmFtZSAiCisrICAgICAgICAgICAgICAg ICAgICAibmllOm1pbWVUeXBlICg/dXJuKSBBUyA/bWltZXR5cGUgIgorKyAgICAgICAgICAgICAg ICAgICAgIm5pZTp0aXRsZSAoP3VybikgQVMgP3RpdGxlICIKKysgICAgICAgICAgICAgICAgICAg ICJ0cmFja2VyOmNvYWxlc2NlIChuY286ZnVsbG5hbWUgKD9jcmVhdG9yKSwgbmNvOmZ1bGxuYW1l ICg/cHVibGlzaGVyKSwgJycpIEFTID9hdXRob3JfbmFtZSAiCisrICAgICAgICAgICAgICAgICAg ICAidHJhY2tlcjpjb2FsZXNjZSAobmZvOmZpbGVMYXN0TW9kaWZpZWQgKD9maWxlKSwgbmllOmNv bnRlbnRMYXN0TW9kaWZpZWQgKD91cm4pKSBBUyA/bXRpbWUgIgorKyAgICAgICAgICAgICAgICAg ICAgIm5hbzppZGVudGlmaWVyICg/dXJuKSBBUyA/aWRlbnRpZmllciAiCisrICAgICAgICAgICAg ICAgICAgICAicmRmOnR5cGUgKD91cm4pIEFTID90eXBlICIKKysgICAgICAgICAgICAgICAgICAg ICJuaWU6ZGF0YVNvdXJjZSg/dXJuKSBBUyA/ZGF0YXNvdXJjZSAiCisrICAgICAgICAgICAgICAg ICAgICAiKCBFWElTVFMgeyA/dXJuIG5jbzpjb250cmlidXRvciA/Y29udHJpYnV0b3IgRklMVEVS ICggP2NvbnRyaWJ1dG9yICE9ID9jcmVhdG9yICkgfSApIEFTID9oYXNfY29udHJpYnV0b3IgIgor KyAgICAgICAgICAgICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UobmZvOmZpbGVDcmVhdGVkICg/ ZmlsZSksIG5pZTpjb250ZW50Q3JlYXRlZCAoP3VybikpIEFTID9jdGltZSAiCisrICAgICAgICAg ICAgICAgICAgICAibmZvOndpZHRoICg/dXJuKSBBUyA/d2lkdGggIgorKyAgICAgICAgICAgICAg ICAgICAgIm5mbzpoZWlnaHQgKD91cm4pIEFTID9oZWlnaHQgIgorKyAgICAgICAgICAgICAgICAg ICAgIm5mbzplcXVpcG1lbnQgKD91cm4pIEFTID9lcXVpcG1lbnQgIgorKyAgICAgICAgICAgICAg ICAgICAgIm5mbzpvcmllbnRhdGlvbiAoP3VybikgQVMgP29yaWVudGF0aW9uICIKKysgICAgICAg ICAgICAgICAgICAgICJubW06ZXhwb3N1cmVUaW1lICg/dXJuKSBBUyA/ZXhwb3N1cmVfdGltZSAi CisrICAgICAgICAgICAgICAgICAgICAibm1tOmZudW1iZXIgKD91cm4pIEFTID9mbnVtYmVyICIK KysgICAgICAgICAgICAgICAgICAgICJubW06Zm9jYWxMZW5ndGggKD91cm4pIEFTID9mb2NhbF9s ZW5ndGggIgorKyAgICAgICAgICAgICAgICAgICAgIm5tbTppc29TcGVlZCAoP3VybikgQVMgP2lz b3NwZWVkICIKKysgICAgICAgICAgICAgICAgICAgICJubW06Zmxhc2ggKD91cm4pIEFTID9mbGFz aCAiCisrICAgICAgICAgICAgICAgICAgICAic2xvOmxvY2F0aW9uICg/dXJuKSBBUyA/bG9jYXRp b24gIjsKKysKKysgIHNlY29uZF9wcm9qZWN0aW9uID0gIj91cm4gP2ZpbGUgP2ZpbGVuYW1lID9t aW1ldHlwZSA/dGl0bGUgP2F1dGhvcl9uYW1lID9tdGltZSA/aWRlbnRpZmllciA/dHlwZSA/ZGF0 YXNvdXJjZSAiCisrICAgICAgICAgICAgICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4gbmFvOmhh c1RhZyBuYW86cHJlZGVmaW5lZC10YWctZmF2b3JpdGUgfSApIEFTID9pc19mYXZvcml0ZSAiCisr ICAgICAgICAgICAgICAgICAgICAgICI/aGFzX2NvbnRyaWJ1dG9yID9jdGltZSA/d2lkdGggP2hl aWdodCA/ZXF1aXBtZW50ID9vcmllbnRhdGlvbiA/ZXhwb3N1cmVfdGltZSA/Zm51bWJlciAiCisr ICAgICAgICAgICAgICAgICAgICAgICI/Zm9jYWxfbGVuZ3RoID9pc29zcGVlZCA/Zmxhc2ggP2xv Y2F0aW9uICI7CisgCisgICBpdGVtX3BhdHRlcm4gPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF93 aGVyZSAoc3RhdGUtPml0ZW1fbW5nciwgZmxhZ3MpOworIAorQEAgLTk3LDcgKzEwNyw3IEBAIHBo b3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRl LAorIAorICAgb3JkZXIgPSAiT1JERVIgQlkgREVTQyAoP210aW1lKSI7CisgCistICBpZiAoZ2xv YmFsICYmIChmbGFncyAmIFBIT1RPU19RVUVSWV9GTEFHU19VTkxJTUlURUQpID09IDApCisrICBp ZiAodmFsdWVzID09IE5VTEwgJiYgKGZsYWdzICYgUEhPVE9TX1FVRVJZX0ZMQUdTX1VOTElNSVRF RCkgPT0gMCkKKyAgICAgeworICAgICAgIGdpbnQgb2Zmc2V0ID0gMDsKKyAgICAgICBnaW50IHN0 ZXAgPSA2MDsKK0BAIC0xMTIsMTIgKzEyMiwxNiBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVy eSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwKKyAgICAgfQorIAorICAgc3BhcnFs ID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9nZXRfc3BhcnFsICh0ZW1wbGF0ZSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2plY3Rpb24iLCBwcm9q ZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi bWluZXJfZnNfYnVzbmFtZSIsIG1pbmVyX2ZzX2J1c25hbWUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYWluX3Byb2plY3Rpb24iLCBtYWluX3Byb2pl Y3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz ZWNvbmRfcHJvamVjdGlvbiIsIHNlY29uZF9wcm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmluYWxfcHJvamVjdGlvbiIsIHNlY29uZF9w cm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAidmFsdWVzIiwgdmFsdWVzID8gdmFsdWVzIDogIiIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciIsIGNv bGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiaXRlbV9wYXR0ZXJuIiwgaXRlbV9wYXR0ZXJuLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGhvdG9zX2RlZmF1bHRfZmls dGVyIiwgcGhvdG9zX2RlZmF1bHRfZmlsdGVyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAic291cmNlX2ZpbHRlciIsIHNvdXJjZV9maWx0ZXIgPyBzb3Vy Y2VfZmlsdGVyIDogIiIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJzZWFyY2hfZmlsdGVyIiwgc2VhcmNoX2ZpbHRlciA/IHNlYXJjaF9maWx0ZXIgOiAi IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvdXJj ZV9maWx0ZXIiLCBzb3VyY2VfZmlsdGVyID8gc291cmNlX2ZpbHRlciA6ICIodHJ1ZSkiLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VhcmNoX2ZpbHRl ciIsIHNlYXJjaF9maWx0ZXIgPyBzZWFyY2hfZmlsdGVyIDogIih0cnVlKSIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmRlciIsIG9yZGVyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2Zmc2V0X2xpbWl0 Iiwgb2Zmc2V0X2xpbWl0ID8gb2Zmc2V0X2xpbWl0IDogIiIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworQEAgLTEzMyw2ICsxNDcsNyBAQCBw aG90b3NfcXVlcnlfYnVpbGRlcl9jcmVhdGVfY29sbGVjdGlvbl9xdWVyeSAoUGhvdG9zU2VhcmNo Q29udGV4dFN0YXRlICpzdGF0ZSwKKyB7CisgICBnX2F1dG9wdHIgKEdEYXRlVGltZSkgbm93ID0g TlVMTDsKKyAgIFBob3Rvc1F1ZXJ5ICpxdWVyeTsKKysgIGdfYXV0b3B0ciAoVHJhY2tlclJlc291 cmNlKSBjb2xsZWN0aW9uID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKmlkZW50aWZpZXIg PSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqc3BhcnFsID0gTlVMTDsKKyAgIGdfYXV0b2Zy ZWUgZ2NoYXIgKnRpbWUgPSBOVUxMOworQEAgLTE0NCwxMyArMTU5LDE0IEBAIHBob3Rvc19xdWVy eV9idWlsZGVyX2NyZWF0ZV9jb2xsZWN0aW9uX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3Rh dGUgKnN0YXRlLAorICAgbm93ID0gZ19kYXRlX3RpbWVfbmV3X25vd191dGMgKCk7CisgICB0aW1l ID0gZ19kYXRlX3RpbWVfZm9ybWF0X2lzbzg2MDEgKG5vdyk7CisgCistICBzcGFycWwgPSBnX3N0 cmR1cF9wcmludGYgKCJJTlNFUlQgeyBfOnJlcyBhIG5mbzpEYXRhQ29udGFpbmVyIDsgYSBuaWU6 RGF0YU9iamVjdCA7ICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5pZTpjb250ZW50 TGFzdE1vZGlmaWVkICclcycgOyAiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuaWU6 dGl0bGUgJyVzJyA7ICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbzppZGVudGlm aWVyICclcycgfSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5hbWUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlkZW50aWZpZXIpOworKyAgY29sbGVjdGlvbiA9IHRyYWNrZXJfcmVzb3VyY2VfbmV3ICgiXzpy ZXMiKTsKKysgIHRyYWNrZXJfcmVzb3VyY2VfYWRkX3VyaSAoY29sbGVjdGlvbiwgInJkZjp0eXBl IiwgIm5mbzpEYXRhQ29udGFpbmVyIik7CisrICB0cmFja2VyX3Jlc291cmNlX2FkZF91cmkgKGNv bGxlY3Rpb24sICJyZGY6dHlwZSIsICJuaWU6RGF0YU9iamVjdCIpOworKyAgdHJhY2tlcl9yZXNv dXJjZV9zZXRfc3RyaW5nIChjb2xsZWN0aW9uLCAibmllOmNvbnRlbnRMYXN0TW9kaWZpZWQiLCB0 aW1lKTsKKysgIHRyYWNrZXJfcmVzb3VyY2Vfc2V0X3N0cmluZyAoY29sbGVjdGlvbiwgIm5pZTp0 aXRsZSIsIG5hbWUpOworKyAgdHJhY2tlcl9yZXNvdXJjZV9zZXRfc3RyaW5nIChjb2xsZWN0aW9u LCAibmFvOmlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKKysKKysgIHNwYXJxbCA9IHRyYWNrZXJf cmVzb3VyY2VfcHJpbnRfc3BhcnFsX3VwZGF0ZSAoY29sbGVjdGlvbiwgTlVMTCwgInRyYWNrZXI6 UGljdHVyZXMiKTsKKyAKKyAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoc3RhdGUsIHNwYXJx bCk7CisgCitAQCAtMTgwLDcgKzE5Niw5IEBAIFBob3Rvc1F1ZXJ5ICoKKyBwaG90b3NfcXVlcnlf YnVpbGRlcl9jb3VudF9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgZ2lu dCBmbGFncykKKyB7CisgICBQaG90b3NTcGFycWxUZW1wbGF0ZSAqdGVtcGxhdGU7CistICBjb25z dCBnY2hhciAqcHJvamVjdGlvbiA9IE5VTEw7CisrICBjb25zdCBnY2hhciAqbWluZXJfZnNfYnVz bmFtZSA9IE5VTEw7CisrICBjb25zdCBnY2hhciAqY291bnRfcHJvamVjdGlvbiA9IE5VTEw7Cisr ICBjb25zdCBnY2hhciAqdmFsdWVfcHJvamVjdGlvbiA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdj aGFyICppdGVtX3BhdHRlcm4gPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqc2VhcmNoX2Zp bHRlciA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICpzb3VyY2VfZmlsdGVyID0gTlVMTDsK K0BAIC0xODksNyArMjA3LDEwIEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX2NvdW50X3F1ZXJ5IChQ aG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLCBnaW50IGZsYWdzKQorIAorICAgdGVtcGxh dGUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVtcGxhdGUgKHN0YXRlLT5zcmNo X3R5cF9tbmdyLCBmbGFncyk7CisgCistICBwcm9qZWN0aW9uID0gIkNPVU5UKD91cm4pICI7Cisr ICBtaW5lcl9mc19idXNuYW1lID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21pbmVyX2ZzX2J1 c25hbWUgKHN0YXRlLT5xdWV1ZSk7CisrCisrICB2YWx1ZV9wcm9qZWN0aW9uID0gIj91cm4gIjsK KysgIGNvdW50X3Byb2plY3Rpb24gPSAiQ09VTlQoP3VybikgIjsKKyAKKyAgIGl0ZW1fcGF0dGVy biA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3doZXJlIChzdGF0ZS0+aXRlbV9tbmdyLCBmbGFn cyk7CisgCitAQCAtMjAwLDEyICsyMjEsMTYgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfY291bnRf cXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGdpbnQgZmxhZ3MpCisgICAg IH0KKyAKKyAgIHNwYXJxbCA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZ2V0X3NwYXJxbCAodGVt cGxhdGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw cm9qZWN0aW9uIiwgcHJvamVjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIm1pbmVyX2ZzX2J1c25hbWUiLCBtaW5lcl9mc19idXNuYW1lLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWFpbl9wcm9qZWN0 aW9uIiwgdmFsdWVfcHJvamVjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInNlY29uZF9wcm9qZWN0aW9uIiwgdmFsdWVfcHJvamVjdGlvbiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbmFsX3Byb2pl Y3Rpb24iLCBjb3VudF9wcm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAidmFsdWVzIiwgIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciIsIGNvbGxl Y3Rpb25zX2RlZmF1bHRfZmlsdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiaXRlbV9wYXR0ZXJuIiwgaXRlbV9wYXR0ZXJuLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGhvdG9zX2RlZmF1bHRfZmlsdGVy IiwgcGhvdG9zX2RlZmF1bHRfZmlsdGVyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAic291cmNlX2ZpbHRlciIsIHNvdXJjZV9maWx0ZXIgPyBzb3VyY2Vf ZmlsdGVyIDogIiIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJzZWFyY2hfZmlsdGVyIiwgc2VhcmNoX2ZpbHRlciA/IHNlYXJjaF9maWx0ZXIgOiAiIiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvdXJjZV9m aWx0ZXIiLCBzb3VyY2VfZmlsdGVyID8gc291cmNlX2ZpbHRlciA6ICIodHJ1ZSkiLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VhcmNoX2ZpbHRlciIs IHNlYXJjaF9maWx0ZXIgPyBzZWFyY2hfZmlsdGVyIDogIih0cnVlKSIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmRlciIsICIiLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2Zmc2V0X2xpbWl0IiwgIiIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwor QEAgLTI2NCw3ICsyODksNyBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9mZXRjaF9jb2xsZWN0aW9u c19sb2NhbCAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSkKKyAgIGdfYXV0b2ZyZWUg Z2NoYXIgKnNwYXJxbCA9IE5VTEw7CisgCisgICBzcGFycWwgPSBwaG90b3NfcXVlcnlfYnVpbGRl cl9xdWVyeSAoc3RhdGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VFJVRSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBIT1RPU19RVUVSWV9GTEFHU19D T0xMRUNUSU9OUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUEhP VE9TX1FVRVJZX0ZMQUdTX0xPQ0FMCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBQSE9UT1NfUVVFUllfRkxBR1NfVU5MSU1JVEVELAorQEAgLTI4NCw3ICszMDksNyBA QCBwaG90b3NfcXVlcnlfYnVpbGRlcl9nbG9iYWxfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRT dGF0ZSAqc3RhdGUsCisgICBQaG90b3NRdWVyeSAqcXVlcnk7CisgICBnX2F1dG9mcmVlIGdjaGFy ICpzcGFycWwgPSBOVUxMOworIAorLSAgc3BhcnFsID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfcXVl cnkgKHN0YXRlLCBUUlVFLCBmbGFncywgb2Zmc2V0X2NudHJscik7CisrICBzcGFycWwgPSBwaG90 b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoc3RhdGUsIE5VTEwsIGZsYWdzLCBvZmZzZXRfY250cmxy KTsKKyAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoc3RhdGUsIHNwYXJxbCk7CisgCisgICBy ZXR1cm4gcXVlcnk7CitAQCAtMzEzLDEwICszMzgsMTkgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJf c2V0X2NvbGxlY3Rpb25fcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisg ICBQaG90b3NRdWVyeSAqcXVlcnk7CisgICBnX2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxM OworIAorLSAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiJXMgeyA8JXM+IG5pZTppc1BhcnRP ZiA8JXM+IH0iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nID8gIklOU0VS VCIgOiAiREVMRVRFIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbV91cm4sCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25fdXJuKTsKKysgIGlmIChzZXR0 aW5nKQorKyAgICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJJTlNFUlQgREFUQSB7ICIKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBHUkFQSCB0cmFja2VyOlBpY3R1cmVzIHsi CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICA8JXM+IGEgbmllOkRhdGFPYmpl Y3QgLCBubW06UGhvdG8gOyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAg IG5pZTppc1BhcnRPZiA8JXM+ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICB9 IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ9IiwgaXRlbV91cm4sIGNvbGxlY3Rp b25fdXJuKTsKKysgIGVsc2UKKysgICAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiREVMRVRF IERBVEEgeyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgR1JBUEggdHJhY2tl cjpQaWN0dXJlcyB7IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPCVzPiBu aWU6aXNQYXJ0T2YgPCVzPiAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgfSIK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifSIsIGl0ZW1fdXJuLCBjb2xsZWN0aW9u X3Vybik7CisgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9uZXcgKHN0YXRlLCBzcGFycWwpOworIAor ICAgcmV0dXJuIHF1ZXJ5OworQEAgLTMyNiwxNyArMzYwLDE0IEBAIHBob3Rvc19xdWVyeV9idWls ZGVyX3NldF9jb2xsZWN0aW9uX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRl LAorIFBob3Rvc1F1ZXJ5ICoKKyBwaG90b3NfcXVlcnlfYnVpbGRlcl9zaW5nbGVfcXVlcnkgKFBo b3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGdpbnQgZmxhZ3MsIGNvbnN0IGdjaGFyICpy ZXNvdXJjZSkKKyB7CistICBnX2F1dG9wdHIgKEdSZWdleCkgcmVnZXggPSBOVUxMOworICAgUGhv dG9zUXVlcnkgKnF1ZXJ5OworLSAgZ19hdXRvZnJlZSBnY2hhciAqcmVwbGFjZW1lbnQgPSBOVUxM OworICAgZ19hdXRvZnJlZSBnY2hhciAqc3BhcnFsID0gTlVMTDsKKy0gIGdfYXV0b2ZyZWUgZ2No YXIgKnRtcCA9IE5VTEw7CisrICBnX2F1dG9mcmVlIGdjaGFyICp2YWx1ZXMgPSBOVUxMOworKwor KyAgdmFsdWVzID0gZ19zdHJkdXBfcHJpbnRmICgiVkFMVUVTID91cm4geyA8JXM+IH0iLCByZXNv dXJjZSk7CisgCistICB0bXAgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoc3RhdGUsIEZB TFNFLCBmbGFncywgTlVMTCk7CisrICBzcGFycWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVy eSAoc3RhdGUsIHZhbHVlcywgZmxhZ3MsIE5VTEwpOworIAorLSAgcmVnZXggPSBnX3JlZ2V4X25l dyAoIlxcP3VybiIsIDAsIDAsIE5VTEwpOworLSAgcmVwbGFjZW1lbnQgPSBnX3N0cmNvbmNhdCAo IjwiLCByZXNvdXJjZSwgIj4iLCBOVUxMKTsKKy0gIHNwYXJxbCA9IGdfcmVnZXhfcmVwbGFjZSAo cmVnZXgsIHRtcCwgLTEsIDAsIHJlcGxhY2VtZW50LCAwLCBOVUxMKTsKKyAgIHF1ZXJ5ID0gcGhv dG9zX3F1ZXJ5X25ldyAoc3RhdGUsIHNwYXJxbCk7CisgCisgICByZXR1cm4gcXVlcnk7CitAQCAt MzU0LDcgKzM4NSwxNCBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl91cGRhdGVfbXRpbWVfcXVlcnkg KFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGNvbnN0CisgICBub3cgPSBnX2RhdGVf dGltZV9uZXdfbm93X3V0YyAoKTsKKyAgIHRpbWUgPSBnX2RhdGVfdGltZV9mb3JtYXRfaXNvODYw MSAobm93KTsKKyAKKy0gIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIklOU0VSVCBPUiBSRVBM QUNFIHsgPCVzPiBuaWU6Y29udGVudExhc3RNb2RpZmllZCAnJXMnIH0iLCByZXNvdXJjZSwgdGlt ZSk7CisrICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJXSVRIIHRyYWNrZXI6UGljdHVyZXMg IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiREVMRVRFIHsgPCVzPiBuaWU6Y29udGVu dExhc3RNb2RpZmllZCA/dGltZSB9ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklO U0VSVCB7ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgPCVzPiBhIG5tbTpQaG90 byA7ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBuaWU6Y29udGVudExhc3RN b2RpZmllZCAnJXMnICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIn0iCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJXSEVSRSB7IDwlcz4gbmllOmNvbnRlbnRMYXN0TW9kaWZp ZWQgP3RpbWUgfSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlLCByZXNv dXJjZSwgdGltZSwgcmVzb3VyY2UpOworICAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChzdGF0 ZSwgc3BhcnFsKTsKKyAKKyAgIHJldHVybiBxdWVyeTsKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9z LXNlYXJjaC1jb250ZXh0LmMgYi9zcmMvcGhvdG9zLXNlYXJjaC1jb250ZXh0LmMKK2luZGV4IDRi NTAzNzk4Li42Zjg2OTRiYyAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mtc2VhcmNoLWNvbnRleHQu YworKysrIGIvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4dC5jCitAQCAtMzEsNiArMzEsNyBAQAor ICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAicGhv dG9zLXNlYXJjaC10eXBlLW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNvdXJjZS1tYW5h Z2VyLmgiCisrI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLXF1ZXVlLmgiCisgCisgCisgR19ERUZJ TkVfSU5URVJGQUNFIChQaG90b3NTZWFyY2hDb250ZXh0LCBwaG90b3Nfc2VhcmNoX2NvbnRleHQs IEdfVFlQRV9PQkpFQ1QpOworQEAgLTU0LDYgKzU1LDcgQEAgcGhvdG9zX3NlYXJjaF9jb250ZXh0 X3N0YXRlX25ldyAoUGhvdG9zU2VhcmNoQ29udGV4dCAqc2VsZikKKyAgIHN0YXRlLT5zcmNoX2Nu dHJsciA9IHBob3Rvc19zZWFyY2hfY29udHJvbGxlcl9uZXcgKCk7CisgICBzdGF0ZS0+c3JjaF9t dGNoX21uZ3IgPSBwaG90b3Nfc2VhcmNoX21hdGNoX21hbmFnZXJfbmV3IChzdGF0ZS0+c3JjaF9j bnRybHIpOworICAgc3RhdGUtPnNyY2hfdHlwX21uZ3IgPSBwaG90b3Nfc2VhcmNoX3R5cGVfbWFu YWdlcl9uZXcgKCk7CisrICBzdGF0ZS0+cXVldWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBf c2luZ2xldG9uIChOVUxMLCBOVUxMKTsKKyAKKyAgIHJldHVybiBzdGF0ZTsKKyB9CitAQCAtNjgs NiArNzAsNyBAQCBwaG90b3Nfc2VhcmNoX2NvbnRleHRfc3RhdGVfZnJlZSAoUGhvdG9zU2VhcmNo Q29udGV4dFN0YXRlICpzdGF0ZSkKKyAgIGdfb2JqZWN0X3VucmVmIChzdGF0ZS0+c3JjaF9tdGNo X21uZ3IpOworICAgZ19vYmplY3RfdW5yZWYgKHN0YXRlLT5zcmNoX3R5cF9tbmdyKTsKKyAgIGdf b2JqZWN0X3VucmVmIChzdGF0ZS0+c3JjaF9jbnRybHIpOworKyAgZ19jbGVhcl9vYmplY3QgKCZz dGF0ZS0+cXVldWUpOworICAgZ19zbGljZV9mcmVlIChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUs IHN0YXRlKTsKKyB9CisgCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4dC5o IGIvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4dC5oCitpbmRleCAyYWY2Y2Y5Ni4uNWExOGQzODYg MTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXNlYXJjaC1jb250ZXh0LmgKKysrKyBiL3NyYy9waG90 b3Mtc2VhcmNoLWNvbnRleHQuaAorQEAgLTQxLDYgKzQxLDcgQEAgc3RydWN0IF9QaG90b3NTZWFy Y2hDb250ZXh0U3RhdGUKKyAgIGdwb2ludGVyIHNyY2hfdHlwX21uZ3I7CisgICBncG9pbnRlciBv ZmZzZXRfY250cmxyOworICAgZ3BvaW50ZXIgc3JjaF9jbnRybHI7CisrICBncG9pbnRlciBxdWV1 ZTsKKyB9OworIAorIFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAgICAgICpwaG90b3Nfc2VhcmNo X2NvbnRleHRfc3RhdGVfbmV3ICAgICAgKFBob3Rvc1NlYXJjaENvbnRleHQgKnNlbGYpOworZGlm ZiAtLWdpdCBhL3NyYy9waG90b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuYyBiL3NyYy9waG90b3Mt c2VhcmNoLW1hdGNoLW1hbmFnZXIuYworaW5kZXggZTZkYzQyOWEuLjJiYTFmZDBmIDEwMDY0NAor LS0tIGEvc3JjL3Bob3Rvcy1zZWFyY2gtbWF0Y2gtbWFuYWdlci5jCisrKysgYi9zcmMvcGhvdG9z LXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmMKK0BAIC0xNDgsNyArMTQ4LDcgQEAgcGhvdG9zX3NlYXJj aF9tYXRjaF9tYW5hZ2VyX2luaXQgKFBob3Rvc1NlYXJjaE1hdGNoTWFuYWdlciAqc2VsZikKKyAg ICAgICAgICAgICAgICAgICAiICB0cmFja2VyOmNhc2UtZm9sZCAodHJhY2tlcjpjb2FsZXNjZSAo bmNvOmZ1bGxuYW1lICg/Y3JlYXRvciksIG5jbzpmdWxsbmFtZSg/cHVibGlzaGVyKSkpLCIKKyAg ICAgICAgICAgICAgICAgICAiICBcIiVzXCIpIjsKKyAgIHRpdGxlX2ZpbHRlciA9ICJmbjpjb250 YWlucyAoIgorLSAgICAgICAgICAgICAgICAgIiAgdHJhY2tlcjpjYXNlLWZvbGQgKHRyYWNrZXI6 Y29hbGVzY2UgKG5pZTp0aXRsZSAoP3VybiksIG5mbzpmaWxlTmFtZSg/dXJuKSkpLCIKKysgICAg ICAgICAgICAgICAgICIgIHRyYWNrZXI6Y2FzZS1mb2xkICh0cmFja2VyOmNvYWxlc2NlIChuaWU6 dGl0bGUgKD91cm4pLCBuZm86ZmlsZU5hbWUoP2ZpbGUpKSksIgorICAgICAgICAgICAgICAgICAg IiAgXCIlc1wiKSI7CisgCisgICBzZWFyY2hfbWF0Y2ggPSBwaG90b3Nfc2VhcmNoX21hdGNoX25l dyAoUEhPVE9TX1NFQVJDSF9NQVRDSF9TVE9DS19BTEwsCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rv cy1zb3VyY2UuYyBiL3NyYy9waG90b3Mtc291cmNlLmMKK2luZGV4IGRiNmYyZGU5Li41MjE5NjUy YyAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mtc291cmNlLmMKKysrKyBiL3NyYy9waG90b3Mtc291 cmNlLmMKK0BAIC02Miw3ICs2Miw3IEBAIEdfREVGSU5FX1RZUEVfV0lUSF9DT0RFIChQaG90b3NT b3VyY2UsIHBob3Rvc19zb3VyY2UsIEdfVFlQRV9PQkpFQ1QsCisgRFpMX0RFRklORV9DT1VOVEVS IChpbnN0YW5jZXMsICJQaG90b3NTb3VyY2UiLCAiSW5zdGFuY2VzIiwgIk51bWJlciBvZiBQaG90 b3NTb3VyY2UgaW5zdGFuY2VzIikKKyAKKyAKKy1zdGF0aWMgY29uc3QgZ2NoYXIgKlRSQUNLRVJf U0NIRU1BID0gIm9yZy5mcmVlZGVza3RvcC5UcmFja2VyLk1pbmVyLkZpbGVzIjsKKytzdGF0aWMg Y29uc3QgZ2NoYXIgKlRSQUNLRVJfU0NIRU1BID0gIm9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5N aW5lci5GaWxlcyI7Cisgc3RhdGljIGNvbnN0IGdjaGFyICpUUkFDS0VSX0tFWV9SRUNVUlNJVkVf RElSRUNUT1JJRVMgPSAiaW5kZXgtcmVjdXJzaXZlLWRpcmVjdG9yaWVzIjsKKyAKKyAKK0BAIC05 NCw3ICs5NCw3IEBAIHBob3Rvc19zb3VyY2VfYnVpbGRfZmlsdGVyX2xvY2FsICh2b2lkKQorICAg ICAgICAgY29udGludWU7CisgCisgICAgICAgdHJhY2tlcl91cmkgPSBwaG90b3NfdXRpbHNfY29u dmVydF9wYXRoX3RvX3VyaSAodHJhY2tlcl9kaXJzW2ldKTsKKy0gICAgICBnX3N0cmluZ19hcHBl bmRfcHJpbnRmICh0cmFja2VyX2ZpbHRlciwgIiB8fCBmbjpjb250YWlucyAobmllOnVybCAoP3Vy biksICclcycpIiwgdHJhY2tlcl91cmkpOworKyAgICAgIGdfc3RyaW5nX2FwcGVuZF9wcmludGYg KHRyYWNrZXJfZmlsdGVyLCAiIHx8IGZuOmNvbnRhaW5zIChuaWU6aXNTdG9yZWRBcyAoP3Vybiks ICclcycpIiwgdHJhY2tlcl91cmkpOworICAgICB9CisgCisgICBwYXRoID0gZ19nZXRfdXNlcl9z cGVjaWFsX2RpciAoR19VU0VSX0RJUkVDVE9SWV9ERVNLVE9QKTsKK0BAIC0xMDksMTEgKzEwOSwx MSBAQCBwaG90b3Nfc291cmNlX2J1aWxkX2ZpbHRlcl9sb2NhbCAodm9pZCkKKyAgIGV4cG9ydF9w YXRoID0gZ19idWlsZF9maWxlbmFtZSAocGF0aCwgUEhPVE9TX0VYUE9SVF9TVUJQQVRILCBOVUxM KTsKKyAgIGV4cG9ydF91cmkgPSBwaG90b3NfdXRpbHNfY29udmVydF9wYXRoX3RvX3VyaSAoZXhw b3J0X3BhdGgpOworIAorLSAgZmlsdGVyID0gZ19zdHJkdXBfcHJpbnRmICgiKCgoZm46Y29udGFp bnMgKG5pZTp1cmwgKD91cm4pLCAnJXMnKSIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IiAgIHx8IGZuOmNvbnRhaW5zIChuaWU6dXJsICg/dXJuKSwgJyVzJykiCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIgICB8fCBmbjpjb250YWlucyAobmllOnVybCAoP3VybiksICclcycp IgorKyAgZmlsdGVyID0gZ19zdHJkdXBfcHJpbnRmICgiKCgoZm46Y29udGFpbnMgKG5pZTppc1N0 b3JlZEFzICg/dXJuKSwgJyVzJykiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICB8 fCBmbjpjb250YWlucyAobmllOmlzU3RvcmVkQXMgKD91cm4pLCAnJXMnKSIKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIiAgIHx8IGZuOmNvbnRhaW5zIChuaWU6aXNTdG9yZWRBcyAoP3Vy biksICclcycpIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgJXMpIgorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiICAmJiAhZm46Y29udGFpbnMgKG5pZTp1cmwgKD91cm4p LCAnJXMnKSkiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICYmICFmbjpjb250YWlu cyAobmllOmlzU3RvcmVkQXMgKD91cm4pLCAnJXMnKSkiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIgfHwgZm46c3RhcnRzLXdpdGggKG5hbzppZGVudGlmaWVyICg/dXJuKSwgJyVzJyki CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgfHwgKD91cm4gPSBuZm86aW1hZ2UtY2F0 ZWdvcnktc2NyZWVuc2hvdCkpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVza3Rv cF91cmksCitAQCAtMTQ2LDcgKzE0Niw3IEBAIHBob3Rvc19zb3VyY2VfYnVpbGRfZmlsdGVyX3Jl c291cmNlIChQaG90b3NTb3VyY2UgKnNlbGYpCisgCisgICAgICAgcm9vdCA9IGdfbW91bnRfZ2V0 X3Jvb3QgKHNlbGYtPm1vdW50KTsKKyAgICAgICB1cmkgPSBnX2ZpbGVfZ2V0X3VyaSAocm9vdCk7 CistICAgICAgZmlsdGVyID0gZ19zdHJkdXBfcHJpbnRmICgiKGZuOnN0YXJ0cy13aXRoIChuaWU6 dXJsICg/dXJuKSwgJyVzJykpIiwgdXJpKTsKKysgICAgICBmaWx0ZXIgPSBnX3N0cmR1cF9wcmlu dGYgKCIoZm46c3RhcnRzLXdpdGggKG5pZTppc1N0b3JlZEFzICg/dXJuKSwgJyVzJykpIiwgdXJp KTsKKyAgICAgfQorICAgZWxzZQorICAgICB7CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFj a2VyLWNoYW5nZS1ldmVudC5jIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5jCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IGQ1Yzc0ZWJjLi4wMDAwMDAwMAorLS0tIGEv c3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5jCisrKysgL2Rldi9udWxsCitAQCAtMSwx MzYgKzAsMCBAQAorLS8qCistICogUGhvdG9zIC0gYWNjZXNzLCBvcmdhbml6ZSBhbmQgc2hhcmUg eW91ciBwaG90b3Mgb24gR05PTUUKKy0gKiBDb3B5cmlnaHQgwqkgMjAxMiDigJMgMjAxOSBSZWQg SGF0LCBJbmMuCistICoKKy0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CistICogdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKKy0gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorLSAqCistICog VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCistICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKy0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCistICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKy0gKgorLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCistICogYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CistICovCistCistLyogQmFzZWQgb24gY29kZSBmcm9tOgorLSAqICAgKyBEb2N1bWVudHMKKy0g Ki8KKy0KKy0KKy0jaW5jbHVkZSAiY29uZmlnLmgiCistCistI2luY2x1ZGUgInBob3Rvcy10cmFj a2VyLWNoYW5nZS1ldmVudC5oIgorLQorLQorLXN0cnVjdCBfUGhvdG9zVHJhY2tlckNoYW5nZUV2 ZW50CisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50VHlwZSB0eXBlOworLSAgZ2NoYXIg KnByZWRpY2F0ZTsKKy0gIGdjaGFyICp1cm47CistICBnaW50MzIgcHJlZGljYXRlX2lkOworLSAg Z2ludDMyIHVybl9pZDsKKy19OworLQorLQorLXN0YXRpYyBjb25zdCBnY2hhciAqUkRGX1RZUEUg PSAiaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zI3R5cGUiOworLQor LQorLXZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZnJlZSAoUGhvdG9zVHJhY2tl ckNoYW5nZUV2ZW50ICpzZWxmKQorLXsKKy0gIGdfZnJlZSAoc2VsZi0+cHJlZGljYXRlKTsKKy0g IGdfZnJlZSAoc2VsZi0+dXJuKTsKKy0gIGdfc2xpY2VfZnJlZSAoUGhvdG9zVHJhY2tlckNoYW5n ZUV2ZW50LCBzZWxmKTsKKy19CistCistCistUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICoKKy1w aG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfbmV3IChnaW50MzIgdXJuX2lkLCBnaW50MzIgcHJl ZGljYXRlX2lkLCBnYm9vbGVhbiBpc19kZWxldGUpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5n ZUV2ZW50ICpzZWxmOworLQorLSAgc2VsZiA9IGdfc2xpY2VfbmV3MCAoUGhvdG9zVHJhY2tlckNo YW5nZUV2ZW50KTsKKy0gIHNlbGYtPnVybl9pZCA9IHVybl9pZDsKKy0gIHNlbGYtPnByZWRpY2F0 ZV9pZCA9IHByZWRpY2F0ZV9pZDsKKy0KKy0gIGlmIChpc19kZWxldGUpCistICAgIHNlbGYtPnR5 cGUgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfREVMRVRFRDsKKy0gIGVsc2UKKy0gICAg c2VsZi0+dHlwZSA9IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9DUkVBVEVEOworLQorLSAg cmV0dXJuIHNlbGY7CistfQorLQorLQorLVBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqCistcGhv dG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2NvcHkgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAq ZXZlbnQpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmOworLQorLSAgc2Vs ZiA9IGdfc2xpY2VfbmV3MCAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50KTsKKy0gIHNlbGYtPnR5 cGUgPSBldmVudC0+dHlwZTsKKy0gIHNlbGYtPnByZWRpY2F0ZSA9IGdfc3RyZHVwIChldmVudC0+ cHJlZGljYXRlKTsKKy0gIHNlbGYtPnVybiA9IGdfc3RyZHVwIChldmVudC0+dXJuKTsKKy0gIHNl bGYtPnByZWRpY2F0ZV9pZCA9IGV2ZW50LT5wcmVkaWNhdGVfaWQ7CistICBzZWxmLT51cm5faWQg PSBldmVudC0+dXJuX2lkOworLQorLSAgcmV0dXJuIHNlbGY7CistfQorLQorLQorLVBob3Rvc1Ry YWNrZXJDaGFuZ2VFdmVudFR5cGUKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3R5 cGUgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZikKKy17CistICByZXR1cm4gc2VsZi0+ dHlwZTsKKy19CistCistCistZ2ludDMyCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dl dF9wcmVkaWNhdGVfaWQgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZikKKy17CistICBy ZXR1cm4gc2VsZi0+cHJlZGljYXRlX2lkOworLX0KKy0KKy0KKy1jb25zdCBnY2hhciAqCistcGhv dG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF91cm4gKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVu dCAqc2VsZikKKy17CistICByZXR1cm4gc2VsZi0+dXJuOworLX0KKy0KKy0KKy1naW50MzIKKy1w aG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3Vybl9pZCAoUGhvdG9zVHJhY2tlckNoYW5n ZUV2ZW50ICpzZWxmKQorLXsKKy0gIHJldHVybiBzZWxmLT51cm5faWQ7CistfQorLQorLQorLXZv aWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfbWVyZ2UgKFBob3Rvc1RyYWNrZXJDaGFu Z2VFdmVudCAqc2VsZiwgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpldmVudCkKKy17CistICBn X3JldHVybl9pZl9mYWlsIChnX3N0cmNtcDAgKHNlbGYtPnVybiwgZXZlbnQtPnVybikgPT0gMCk7 CistCistICBpZiAoZXZlbnQtPnR5cGUgPT0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0RF TEVURUQgfHwgZXZlbnQtPnR5cGUgPT0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NSRUFU RUQpCistICAgIHNlbGYtPnR5cGUgPSBldmVudC0+dHlwZTsKKy19CistCistCistdm9pZAorLXBo b3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9zZXRfcmVzb2x2ZWRfdmFsdWVzIChQaG90b3NUcmFj a2VyQ2hhbmdlRXZlbnQgKnNlbGYsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICp1cm4sCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpwcmVkaWNhdGUpCistewor LSAgZ19yZXR1cm5faWZfZmFpbCAoc2VsZi0+cHJlZGljYXRlID09IE5VTEwpOworLSAgZ19yZXR1 cm5faWZfZmFpbCAoc2VsZi0+dXJuID09IE5VTEwpOworLQorLSAgc2VsZi0+dXJuID0gZ19zdHJk dXAgKHVybik7CistICBzZWxmLT5wcmVkaWNhdGUgPSBnX3N0cmR1cCAocHJlZGljYXRlKTsKKy0K Ky0gIGlmIChnX3N0cmNtcDAgKHByZWRpY2F0ZSwgUkRGX1RZUEUpICE9IDApCistICAgIHNlbGYt PnR5cGUgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfQ0hBTkdFRDsKKy19CitkaWZmIC0t Z2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oIGIvc3JjL3Bob3Rvcy10cmFj a2VyLWNoYW5nZS1ldmVudC5oCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IGVlZTRm NDBjLi4wMDAwMDAwMAorLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oCisr KysgL2Rldi9udWxsCitAQCAtMSw2NCArMCwwIEBACistLyoKKy0gKiBQaG90b3MgLSBhY2Nlc3Ms IG9yZ2FuaXplIGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRQorLSAqIENvcHlyaWdodCDC qSAyMDEyIOKAkyAyMDE5IFJlZCBIYXQsIEluYy4KKy0gKgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CistICog aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKy0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCistICoKKy0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLSAqIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy0gKiBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLSAqCistICogWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKy0gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKy0gKi8KKy0KKy0vKiBCYXNlZCBvbiBjb2RlIGZyb206Cist ICogICArIERvY3VtZW50cworLSAqLworLQorLSNpZm5kZWYgUEhPVE9TX1RSQUNLRVJfQ0hBTkdF X0VWRU5UX0gKKy0jZGVmaW5lIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9ICistCistI2lu Y2x1ZGUgPGdsaWIuaD4KKy0KKy1HX0JFR0lOX0RFQ0xTCistCistdHlwZWRlZiBlbnVtCistewor LSAgUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NIQU5HRUQsCistICBQSE9UT1NfVFJBQ0tF Ul9DSEFOR0VfRVZFTlRfQ1JFQVRFRCwKKy0gIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9E RUxFVEVECistfSBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnRUeXBlOworLQorLXR5cGVkZWYgc3Ry dWN0IF9QaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50Owor LQorLVBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAgKnBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVu dF9uZXcgICAgICAgIChnaW50MzIgdXJuX2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50MzIgcHJlZGljYXRl X2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnYm9vbGVhbiBpc19kZWxldGUpOworLQorLVBob3Rvc1RyYWNrZXJD aGFuZ2VFdmVudCAgKnBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9jb3B5ICAgICAgIChQaG90 b3NUcmFja2VyQ2hhbmdlRXZlbnQgKmV2ZW50KTsKKy0KKy12b2lkICAgICAgICAgICAgICAgICAg ICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZnJlZSAgICAgICAoUGhvdG9zVHJhY2tl ckNoYW5nZUV2ZW50ICpzZWxmKTsKKy0KKy1QaG90b3NUcmFja2VyQ2hhbmdlRXZlbnRUeXBlIHBo b3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9nZXRfdHlwZSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2 ZW50ICpzZWxmKTsKKy0KKy1naW50MzIgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tl cl9jaGFuZ2VfZXZlbnRfZ2V0X3ByZWRpY2F0ZV9pZCAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50 ICpzZWxmKTsKKy0KKy1jb25zdCBnY2hhciAgICAgICAgICAgICAgICpwaG90b3NfdHJhY2tlcl9j aGFuZ2VfZXZlbnRfZ2V0X3VybiAgICAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKTsK Ky0KKy1naW50MzIgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZl bnRfZ2V0X3Vybl9pZCAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKTsKKy0KKy12b2lk ICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfbWVyZ2Ug ICAgICAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaG90b3NU cmFja2VyQ2hhbmdlRXZlbnQgKmV2ZW50KTsKKy0KKy12b2lkICAgICAgICAgICAgICAgICAgICAg ICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfc2V0X3Jlc29sdmVkX3ZhbHVlcyAoUGhvdG9z VHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hh ciAqdXJuLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqcHJlZGljYXRlKTsKKy0K Ky1HX0VORF9ERUNMUworLQorLSNlbmRpZiAvKiBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRf SCAqLworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5jIGIv c3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMmU5ODEwYWEuLjAwMDAwMDAwCistLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXIt Y2hhbmdlLW1vbml0b3IuYworKysrIC9kZXYvbnVsbAorQEAgLTEsNDY4ICswLDAgQEAKKy0vKgor LSAqIFBob3RvcyAtIGFjY2Vzcywgb3JnYW5pemUgYW5kIHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdO T01FCistICogQ29weXJpZ2h0IMKpIDIwMTIg4oCTIDIwMTkgUmVkIEhhdCwgSW5jLgorLSAqCist ICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKy0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCistICogKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy0gKgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorLSAqIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CistICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorLSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCistICoKKy0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLSAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorLSAqLworLQorLS8qIEJh c2VkIG9uIGNvZGUgZnJvbToKKy0gKiAgICsgRG9jdW1lbnRzCistICovCistCistCistI2luY2x1 ZGUgImNvbmZpZy5oIgorLQorLSNpbmNsdWRlIDxnbGliLmg+CistI2luY2x1ZGUgPHRyYWNrZXIt c3BhcnFsLmg+CistCistI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oIgor LSNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5oIgorLSNpbmNsdWRlICJw aG90b3MtdHJhY2tlci1xdWV1ZS5oIgorLSNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1yZXNvdXJj ZXMuaCIKKy0jaW5jbHVkZSAicGhvdG9zLXF1ZXJ5LmgiCistCistCistc3RydWN0IF9QaG90b3NU cmFja2VyQ2hhbmdlTW9uaXRvcgorLXsKKy0gIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworLSAg R0hhc2hUYWJsZSAqcGVuZGluZ19jaGFuZ2VzOworLSAgR0hhc2hUYWJsZSAqdW5yZXNvbHZlZF9p ZHM7CistICBHUXVldWUgKnBlbmRpbmdfZXZlbnRzOworLSAgUGhvdG9zVHJhY2tlclF1ZXVlICpx dWV1ZTsKKy0gIFRyYWNrZXJSZXNvdXJjZXMgKnJlc291cmNlX3NlcnZpY2U7CistICBndWludCBv dXRzdGFuZGluZ19vcHM7CistICBndWludCBwZW5kaW5nX2V2ZW50c19pZDsKKy19OworLQorLWVu dW0KKy17CistICBDSEFOR0VTX1BFTkRJTkcsCistICBMQVNUX1NJR05BTAorLX07CistCistc3Rh dGljIGd1aW50IHNpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwIH07CistCistc3RhdGljIHZvaWQg cGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRh YmxlSWZhY2UgKmlmYWNlKTsKKy0KKy0KKy1HX0RFRklORV9UWVBFX0VYVEVOREVEIChQaG90b3NU cmFja2VyQ2hhbmdlTW9uaXRvciwgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3IsIEdfVFlQ RV9PQkpFQ1QsIDAsCistICAgICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJG QUNFIChHX1RZUEVfSU5JVEFCTEUsIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2luaXRh YmxlX2lmYWNlX2luaXQpKTsKKy0KKy0KKy1lbnVtCisteworLSAgQ0hBTkdFX01PTklUT1JfVElN RU9VVCA9IDUwMCwgLyogbXMgKi8KKy0gIENIQU5HRV9NT05JVE9SX01BWF9JVEVNUyA9IDUwMAor LX07CistCistCistdHlwZWRlZiBzdHJ1Y3QgX1Bob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVl cnlEYXRhIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhOworLXR5cGVkZWYgc3Ry dWN0IF9UcmFja2VyUmVzb3VyY2VzRXZlbnQgVHJhY2tlclJlc291cmNlc0V2ZW50OworLQorLXN0 cnVjdCBfUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEKKy17CistICBQaG90b3NU cmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZjsKKy0gIEdIYXNoVGFibGUgKmlkX3RhYmxlOworLSAg R1F1ZXVlICpldmVudHM7CistfTsKKy0KKy1zdHJ1Y3QgX1RyYWNrZXJSZXNvdXJjZXNFdmVudAor LXsKKy0gIGdpbnQzMiBncmFwaDsKKy0gIGdpbnQzMiBzdWJqZWN0OworLSAgZ2ludDMyIHByZWRp Y2F0ZTsKKy0gIGdpbnQzMiBvYmplY3Q7CistfTsKKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rv c190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5X2RhdGFfZnJlZSAoUGhvdG9zVHJhY2tlckNo YW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGEpCisteworLSAgZ19jbGVhcl9vYmplY3QgKCZkYXRh LT5zZWxmKTsKKy0KKy0gIGlmIChkYXRhLT5pZF90YWJsZSAhPSBOVUxMKQorLSAgICBnX2hhc2hf dGFibGVfdW5yZWYgKGRhdGEtPmlkX3RhYmxlKTsKKy0KKy0gIGlmIChkYXRhLT5ldmVudHMgIT0g TlVMTCkKKy0gICAgZ19xdWV1ZV9mcmVlX2Z1bGwgKGRhdGEtPmV2ZW50cywgKEdEZXN0cm95Tm90 aWZ5KSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZnJlZSk7CistCistICBnX3NsaWNlX2Zy ZWUgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhLCBkYXRhKTsKKy19CistCist Cistc3RhdGljIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICoKKy1waG90b3Nf dHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9xdWVyeV9kYXRhX25ldyAoUGhvdG9zVHJhY2tlckNoYW5n ZU1vbml0b3IgKnNlbGYsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdIYXNoVGFibGUgKmlkX3RhYmxlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHUXVldWUgKmV2ZW50cykKKy17CistICBQaG90b3NUcmFja2Vy Q2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSAqZGF0YTsKKy0KKy0gIGRhdGEgPSBnX3NsaWNlX25ldzAg KFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhKTsKKy0gIGRhdGEtPnNlbGYgPSBn X29iamVjdF9yZWYgKHNlbGYpOworLSAgZGF0YS0+aWRfdGFibGUgPSBpZF90YWJsZTsKKy0gIGRh dGEtPmV2ZW50cyA9IGV2ZW50czsKKy0KKy0gIHJldHVybiBkYXRhOworLX0KKy0KKy0KKy1zdGF0 aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2FkZF9ldmVudCAoUGhvdG9z VHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYsIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqY2hh bmdlX2V2ZW50KQorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqb2xkX2NoYW5nZV9l dmVudDsKKy0gIGNvbnN0IGdjaGFyICp1cm47CistCistICB1cm4gPSBwaG90b3NfdHJhY2tlcl9j aGFuZ2VfZXZlbnRfZ2V0X3VybiAoY2hhbmdlX2V2ZW50KTsKKy0gIG9sZF9jaGFuZ2VfZXZlbnQg PSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICopIGdfaGFzaF90YWJsZV9sb29rdXAgKHNlbGYt PnBlbmRpbmdfY2hhbmdlcywgdXJuKTsKKy0KKy0gIGlmIChvbGRfY2hhbmdlX2V2ZW50ICE9IE5V TEwpCistICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9tZXJnZSAob2xkX2NoYW5nZV9l dmVudCwgY2hhbmdlX2V2ZW50KTsKKy0gIGVsc2UKKy0gICAgZ19oYXNoX3RhYmxlX2luc2VydCAo c2VsZi0+cGVuZGluZ19jaGFuZ2VzLCBnX3N0cmR1cCAodXJuKSwgcGhvdG9zX3RyYWNrZXJfY2hh bmdlX2V2ZW50X2NvcHkgKGNoYW5nZV9ldmVudCkpOworLX0KKy0KKy0KKy1zdGF0aWMgdm9pZAor LXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3JlbW92ZV90aW1lb3V0IChQaG90b3NUcmFj a2VyQ2hhbmdlTW9uaXRvciAqc2VsZikKKy17CistICBpZiAoc2VsZi0+cGVuZGluZ19ldmVudHNf aWQgIT0gMCkKKy0gICAgeworLSAgICAgIGdfc291cmNlX3JlbW92ZSAoc2VsZi0+cGVuZGluZ19l dmVudHNfaWQpOworLSAgICAgIHNlbGYtPnBlbmRpbmdfZXZlbnRzX2lkID0gMDsKKy0gICAgfQor LX0KKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3Nl bmRfZXZlbnRzIChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZiwgR0hhc2hUYWJsZSAq aWRfdGFibGUsIEdRdWV1ZSAqZXZlbnRzKQorLXsKKy0gIEdMaXN0ICpsOworLQorLSAgZm9yIChs ID0gZXZlbnRzLT5oZWFkOyBsICE9IE5VTEw7IGwgPSBsLT5uZXh0KQorLSAgICB7CistICAgICAg UGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpjaGFuZ2VfZXZlbnQgPSAoUGhvdG9zVHJhY2tlckNo YW5nZUV2ZW50ICopIGwtPmRhdGE7CistICAgICAgY29uc3QgZ2NoYXIgKnByZWRpY2F0ZTsKKy0g ICAgICBjb25zdCBnY2hhciAqdXJuOworLSAgICAgIGdpbnQzMiBwcmVkaWNhdGVfaWQ7CistICAg ICAgZ2ludDMyIHVybl9pZDsKKy0KKy0gICAgICBwcmVkaWNhdGVfaWQgPSBwaG90b3NfdHJhY2tl cl9jaGFuZ2VfZXZlbnRfZ2V0X3ByZWRpY2F0ZV9pZCAoY2hhbmdlX2V2ZW50KTsKKy0gICAgICB1 cm5faWQgPSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3Vybl9pZCAoY2hhbmdlX2V2 ZW50KTsKKy0KKy0gICAgICBwcmVkaWNhdGUgPSAoZ2NoYXIgKikgZ19oYXNoX3RhYmxlX2xvb2t1 cCAoaWRfdGFibGUsIEdJTlRfVE9fUE9JTlRFUiAocHJlZGljYXRlX2lkKSk7CistICAgICAgaWYg KEdfVU5MSUtFTFkgKHByZWRpY2F0ZSA9PSBOVUxMKSkKKy0gICAgICAgIGNvbnRpbnVlOworLQor LSAgICAgIHVybiA9IChnY2hhciAqKSBnX2hhc2hfdGFibGVfbG9va3VwIChpZF90YWJsZSwgR0lO VF9UT19QT0lOVEVSICh1cm5faWQpKTsKKy0gICAgICBpZiAoR19VTkxJS0VMWSAodXJuID09IE5V TEwpKQorLSAgICAgICAgY29udGludWU7CistCistICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdl X2V2ZW50X3NldF9yZXNvbHZlZF92YWx1ZXMgKGNoYW5nZV9ldmVudCwgdXJuLCBwcmVkaWNhdGUp OworLSAgICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2FkZF9ldmVudCAoc2VsZiwg Y2hhbmdlX2V2ZW50KTsKKy0gICAgfQorLQorLSAgZ19zaWduYWxfZW1pdCAoc2VsZiwgc2lnbmFs c1tDSEFOR0VTX1BFTkRJTkddLCAwLCBzZWxmLT5wZW5kaW5nX2NoYW5nZXMpOworLSAgZ19oYXNo X3RhYmxlX3JlbW92ZV9hbGwgKHNlbGYtPnBlbmRpbmdfY2hhbmdlcyk7CistfQorLQorLQorLXN0 YXRpYyB2b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfY3Vyc29yX25leHQgKEdP YmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2Rh dGEpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGEgPSAo UGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKikgdXNlcl9kYXRhOworLSAgUGhv dG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYgPSBkYXRhLT5zZWxmOworLSAgVHJhY2tlclNw YXJxbEN1cnNvciAqY3Vyc29yID0gVFJBQ0tFUl9TUEFSUUxfQ1VSU09SIChzb3VyY2Vfb2JqZWN0 KTsKKy0gIEdIYXNoVGFibGVJdGVyIGl0ZXI7CistICBnYm9vbGVhbiB2YWxpZDsKKy0KKy0gIHsK Ky0gICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKKy0KKy0gICAgdmFsaWQgPSB0 cmFja2VyX3NwYXJxbF9jdXJzb3JfbmV4dF9maW5pc2ggKGN1cnNvciwgcmVzLCAmZXJyb3IpOwor LSAgICBpZiAoZXJyb3IgIT0gTlVMTCkKKy0gICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gcmVz b2x2ZSBpdGVtIFVSTnMgZm9yIGdyYXBoIGNoYW5nZXM6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOwor LSAgfQorLQorLSAgaWYgKHZhbGlkKQorLSAgICB7CistICAgICAgZ3VpbnQgaWR4OworLQorLSAg ICAgIGlkeCA9IDA7CistICAgICAgZ19oYXNoX3RhYmxlX2l0ZXJfaW5pdCAoJml0ZXIsIGRhdGEt PmlkX3RhYmxlKTsKKy0gICAgICB3aGlsZSAoZ19oYXNoX3RhYmxlX2l0ZXJfbmV4dCAoJml0ZXIs IE5VTEwsIE5VTEwpKQorLSAgICAgICAgeworLSAgICAgICAgICBjb25zdCBnY2hhciAqc3RyOwor LQorLSAgICAgICAgICBzdHIgPSB0cmFja2VyX3NwYXJxbF9jdXJzb3JfZ2V0X3N0cmluZyAoY3Vy c29yLCBpZHgsIE5VTEwpOworLSAgICAgICAgICBnX2hhc2hfdGFibGVfaXRlcl9yZXBsYWNlICgm aXRlciwgZ19zdHJkdXAgKHN0cikpOworLSAgICAgICAgICBpZHgrKzsKKy0gICAgICAgIH0KKy0K Ky0gICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9zZW5kX2V2ZW50cyAoc2VsZiwg ZGF0YS0+aWRfdGFibGUsIGRhdGEtPmV2ZW50cyk7CistICAgIH0KKy0KKy0gIHRyYWNrZXJfc3Bh cnFsX2N1cnNvcl9jbG9zZSAoY3Vyc29yKTsKKy0gIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25p dG9yX3F1ZXJ5X2RhdGFfZnJlZSAoZGF0YSk7CistfQorLQorLQorLXN0YXRpYyB2b2lkCistcGhv dG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcXVlcnlfZXhlY3V0ZWQgKEdPYmplY3QgKnNvdXJj ZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCisteworLSAg UGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGEgPSAoUGhvdG9zVHJhY2tl ckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKikgdXNlcl9kYXRhOworLSAgVHJhY2tlclNwYXJxbENv bm5lY3Rpb24gKmNvbm5lY3Rpb24gPSBUUkFDS0VSX1NQQVJRTF9DT05ORUNUSU9OIChzb3VyY2Vf b2JqZWN0KTsKKy0gIFRyYWNrZXJTcGFycWxDdXJzb3IgKmN1cnNvcjsgLyogVE9ETzogVXNlIGdf YXV0b3B0ciAqLworLQorLSAgeworLSAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxM OworLQorLSAgICBjdXJzb3IgPSB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX3F1ZXJ5X2Zpbmlz aCAoY29ubmVjdGlvbiwgcmVzLCAmZXJyb3IpOworLSAgICBpZiAoZXJyb3IgIT0gTlVMTCkKKy0g ICAgICB7CistICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gcmVzb2x2ZSBpdGVtIFVSTnMg Zm9yIGdyYXBoIGNoYW5nZXM6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworLSAgICAgICAgcGhvdG9z X3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcXVlcnlfZGF0YV9mcmVlIChkYXRhKTsKKy0gICAgICAg IHJldHVybjsKKy0gICAgICB9CistICB9CistCistICB0cmFja2VyX3NwYXJxbF9jdXJzb3JfbmV4 dF9hc3luYyAoY3Vyc29yLCBOVUxMLCBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9jdXJz b3JfbmV4dCwgZGF0YSk7CistICBnX29iamVjdF91bnJlZiAoY3Vyc29yKTsKKy19CistCistCist c3RhdGljIGdib29sZWFuCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcHJvY2Vzc19l dmVudHMgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmKQorLXsKKy0gIEdIYXNoVGFi bGUgKmlkX3RhYmxlOworLSAgR0hhc2hUYWJsZUl0ZXIgaXRlcjsKKy0gIEdRdWV1ZSAqZXZlbnRz OworLSAgZ19hdXRvcHRyIChHU3RyaW5nKSBzcGFycWwgPSBOVUxMOworLSAgUGhvdG9zVHJhY2tl ckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGE7CistICBnX2F1dG9wdHIgKFBob3Rvc1F1ZXJ5 KSBxdWVyeSA9IE5VTEw7CistICBncG9pbnRlciBpZDsKKy0KKy0gIGV2ZW50cyA9IHNlbGYtPnBl bmRpbmdfZXZlbnRzOworLSAgc2VsZi0+cGVuZGluZ19ldmVudHMgPSBnX3F1ZXVlX25ldyAoKTsK Ky0KKy0gIGlkX3RhYmxlID0gc2VsZi0+dW5yZXNvbHZlZF9pZHM7CistICBzZWxmLT51bnJlc29s dmVkX2lkcyA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbCAoZ19kaXJlY3RfaGFzaCwgZ19kaXJlY3Rf ZXF1YWwsIE5VTEwsIGdfZnJlZSk7CistCistICBzZWxmLT5wZW5kaW5nX2V2ZW50c19pZCA9IDA7 CistCistICBzcGFycWwgPSBnX3N0cmluZ19uZXcgKCJTRUxFQ1QiKTsKKy0KKy0gIGdfaGFzaF90 YWJsZV9pdGVyX2luaXQgKCZpdGVyLCBpZF90YWJsZSk7CistICB3aGlsZSAoZ19oYXNoX3RhYmxl X2l0ZXJfbmV4dCAoJml0ZXIsICZpZCwgTlVMTCkpCistICAgIGdfc3RyaW5nX2FwcGVuZF9wcmlu dGYgKHNwYXJxbCwgIiB0cmFja2VyOnVyaSglZCkiLCBHUE9JTlRFUl9UT19JTlQgKGlkKSk7Cist CistICBnX3N0cmluZ19hcHBlbmQgKHNwYXJxbCwgIiB7fSIpOworLQorLSAgcXVlcnkgPSBwaG90 b3NfcXVlcnlfbmV3IChOVUxMLCBzcGFycWwtPnN0cik7CistCistICBkYXRhID0gcGhvdG9zX3Ry YWNrZXJfY2hhbmdlX21vbml0b3JfcXVlcnlfZGF0YV9uZXcgKHNlbGYsIGlkX3RhYmxlLCBldmVu dHMpOworLSAgcGhvdG9zX3RyYWNrZXJfcXVldWVfc2VsZWN0IChzZWxmLT5xdWV1ZSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5VTEwsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190 cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5X2V4ZWN1dGVkLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM KTsKKy0KKy0gIHJldHVybiBHX1NPVVJDRV9SRU1PVkU7CistfQorLQorLQorLXN0YXRpYyB2b2lk CistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfYWRkX3BlbmRpbmdfZXZlbnQgKFBob3Rv c1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUcmFja2VyUmVzb3VyY2VzRXZlbnQgKmV2ZW50 LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9v bGVhbiBpc19kZWxldGUpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpjaGFuZ2Vf ZXZlbnQ7CistCistICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9yZW1vdmVfdGltZW91 dCAoc2VsZik7CistCistICBnX2hhc2hfdGFibGVfaW5zZXJ0IChzZWxmLT51bnJlc29sdmVkX2lk cywgR0lOVF9UT19QT0lOVEVSIChldmVudC0+c3ViamVjdCksIE5VTEwpOworLSAgZ19oYXNoX3Rh YmxlX2luc2VydCAoc2VsZi0+dW5yZXNvbHZlZF9pZHMsIEdJTlRfVE9fUE9JTlRFUiAoZXZlbnQt PnByZWRpY2F0ZSksIE5VTEwpOworLQorLSAgY2hhbmdlX2V2ZW50ID0gcGhvdG9zX3RyYWNrZXJf Y2hhbmdlX2V2ZW50X25ldyAoZXZlbnQtPnN1YmplY3QsIGV2ZW50LT5wcmVkaWNhdGUsIGlzX2Rl bGV0ZSk7CistICBnX3F1ZXVlX3B1c2hfdGFpbCAoc2VsZi0+cGVuZGluZ19ldmVudHMsIGNoYW5n ZV9ldmVudCk7CistCistICBpZiAoc2VsZi0+cGVuZGluZ19ldmVudHMtPmxlbmd0aCA+PSBDSEFO R0VfTU9OSVRPUl9NQVhfSVRFTVMpCistICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9y X3Byb2Nlc3NfZXZlbnRzIChzZWxmKTsKKy0gIGVsc2UKKy0gICAgc2VsZi0+cGVuZGluZ19ldmVu dHNfaWQgPSBnX3RpbWVvdXRfYWRkIChDSEFOR0VfTU9OSVRPUl9USU1FT1VULAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHU291cmNlRnVuYykgcGhvdG9z X3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcHJvY2Vzc19ldmVudHMsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZik7CistfQorLQorLQorLXN0YXRpYyB2 b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfZ3JhcGhfdXBkYXRlZCAoVHJhY2tl clJlc291cmNlcyAqcmVzb3VyY2Vfc2VydmljZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqY2xhc3NfbmFtZSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAqZGVsZXRlX2V2ZW50 cywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFu dCAqaW5zZXJ0X2V2ZW50cywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1v bml0b3IgKnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiAodXNlcl9kYXRhKTsK Ky0gIGNvbnN0IFRyYWNrZXJSZXNvdXJjZXNFdmVudCAqZXZlbnRzOworLSAgZ3NpemUgaTsKKy0g IGdzaXplIG5fZWxlbWVudHM7CistCistICBldmVudHMgPSAoY29uc3QgVHJhY2tlclJlc291cmNl c0V2ZW50ICopIGdfdmFyaWFudF9nZXRfZml4ZWRfYXJyYXkgKGRlbGV0ZV9ldmVudHMsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZuX2VsZW1lbnRzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKFRyYWNrZXJSZXNv dXJjZXNFdmVudCkpOworLSAgZm9yIChpID0gMDsgaSA8IG5fZWxlbWVudHM7IGkrKykKKy0gICAg cGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfYWRkX3BlbmRpbmdfZXZlbnQgKHNlbGYsICZl dmVudHNbaV0sIFRSVUUpOworLQorLSAgZXZlbnRzID0gKGNvbnN0IFRyYWNrZXJSZXNvdXJjZXNF dmVudCAqKSBnX3ZhcmlhbnRfZ2V0X2ZpeGVkX2FycmF5IChpbnNlcnRfZXZlbnRzLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmbl9lbGVtZW50cywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChUcmFja2VyUmVzb3Vy Y2VzRXZlbnQpKTsKKy0gIGZvciAoaSA9IDA7IGkgPCBuX2VsZW1lbnRzOyBpKyspCistICAgIHBo b3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2FkZF9wZW5kaW5nX2V2ZW50IChzZWxmLCAmZXZl bnRzW2ldLCBGQUxTRSk7CistfQorLQorLQorLXN0YXRpYyBHT2JqZWN0ICoKKy1waG90b3NfdHJh Y2tlcl9jaGFuZ2VfbW9uaXRvcl9jb25zdHJ1Y3RvciAoR1R5cGUgdHlwZSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgbl9jb25zdHJ1Y3RfcGFyYW1z LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHT2JqZWN0Q29u c3RydWN0UGFyYW0gKmNvbnN0cnVjdF9wYXJhbXMpCisteworLSAgc3RhdGljIEdPYmplY3QgKnNl bGYgPSBOVUxMOworLQorLSAgaWYgKHNlbGYgPT0gTlVMTCkKKy0gICAgeworLSAgICAgIHNlbGYg PSBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcGFyZW50X2Ns YXNzKS0+Y29uc3RydWN0b3IgKHR5cGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bl9jb25zdHJ1Y3RfcGFyYW1zLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 cnVjdF9wYXJhbXMpOworLSAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIgKHNlbGYsIChn cG9pbnRlcikgJnNlbGYpOworLSAgICAgIHJldHVybiBzZWxmOworLSAgICB9CistCistICByZXR1 cm4gZ19vYmplY3RfcmVmIChzZWxmKTsKKy19CistCistCistc3RhdGljIHZvaWQKKy1waG90b3Nf dHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9kaXNwb3NlIChHT2JqZWN0ICpvYmplY3QpCisteworLSAg UGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0Vf TU9OSVRPUiAob2JqZWN0KTsKKy0KKy0gIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3Jl bW92ZV90aW1lb3V0IChzZWxmKTsKKy0KKy0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+cXVldWUp OworLSAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5yZXNvdXJjZV9zZXJ2aWNlKTsKKy0KKy0gIEdf T0JKRUNUX0NMQVNTIChwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9wYXJlbnRfY2xhc3Mp LT5kaXNwb3NlIChvYmplY3QpOworLX0KKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc190cmFj a2VyX2NoYW5nZV9tb25pdG9yX2ZpbmFsaXplIChHT2JqZWN0ICpvYmplY3QpCisteworLSAgUGhv dG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfTU9O SVRPUiAob2JqZWN0KTsKKy0KKy0gIGdfaGFzaF90YWJsZV91bnJlZiAoc2VsZi0+cGVuZGluZ19j aGFuZ2VzKTsKKy0gIGdfaGFzaF90YWJsZV91bnJlZiAoc2VsZi0+dW5yZXNvbHZlZF9pZHMpOwor LQorLSAgZ19xdWV1ZV9mcmVlX2Z1bGwgKHNlbGYtPnBlbmRpbmdfZXZlbnRzLCAoR0Rlc3Ryb3lO b3RpZnkpIHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9mcmVlKTsKKy0KKy0gIEdfT0JKRUNU X0NMQVNTIChwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9wYXJlbnRfY2xhc3MpLT5maW5h bGl6ZSAob2JqZWN0KTsKKy19CistCistCistc3RhdGljIHZvaWQKKy1waG90b3NfdHJhY2tlcl9j aGFuZ2VfbW9uaXRvcl9pbml0IChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZikKKy17 CistICBzZWxmLT5wZW5kaW5nX2NoYW5nZXMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwgKGdfc3Ry X2hhc2gsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdfc3RyX2VxdWFsLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnX2ZyZWUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChHRGVzdHJveU5vdGlmeSkgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2Zy ZWUpOworLQorLSAgc2VsZi0+dW5yZXNvbHZlZF9pZHMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwg KGdfZGlyZWN0X2hhc2gsIGdfZGlyZWN0X2VxdWFsLCBOVUxMLCBnX2ZyZWUpOworLQorLSAgc2Vs Zi0+cGVuZGluZ19ldmVudHMgPSBnX3F1ZXVlX25ldyAoKTsKKy19CistCistCistc3RhdGljIHZv aWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9jbGFzc19pbml0IChQaG90b3NUcmFj a2VyQ2hhbmdlTW9uaXRvckNsYXNzICpjbGFzcykKKy17CistICBHT2JqZWN0Q2xhc3MgKm9iamVj dF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChjbGFzcyk7CistCistICBvYmplY3RfY2xhc3MtPmNv bnN0cnVjdG9yID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfY29uc3RydWN0b3I7Cist ICBvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9k aXNwb3NlOworLSAgb2JqZWN0X2NsYXNzLT5maW5hbGl6ZSA9IHBob3Rvc190cmFja2VyX2NoYW5n ZV9tb25pdG9yX2ZpbmFsaXplOworLQorLSAgc2lnbmFsc1tDSEFOR0VTX1BFTkRJTkddID0gZ19z aWduYWxfbmV3ICgiY2hhbmdlcy1wZW5kaW5nIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MgKGNsYXNzKSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIC8qYWNjdW11bGF0b3IgKi8KKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgLyphY2N1X2Rh dGEgKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19jY2xv c3VyZV9tYXJzaGFsX1ZPSURfX0JPWEVELAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHX1RZUEVfTk9ORSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR19UWVBFX0hBU0hfVEFCTEUpOworLX0KKy0KKy0KKy1zdGF0aWMgZ2Jvb2xlYW4KKy1w aG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9pbml0YWJsZV9pbml0IChHSW5pdGFibGUgKmlu aXRhYmxlLCBHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLCBHRXJyb3IgKiplcnJvcikKKy17Cist ICBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZiA9IFBIT1RPU19UUkFDS0VSX0NIQU5H RV9NT05JVE9SIChpbml0YWJsZSk7CistICBnYm9vbGVhbiByZXRfdmFsID0gVFJVRTsKKy0KKy0g IGlmIChHX0xJS0VMWSAoc2VsZi0+cXVldWUgIT0gTlVMTCAmJiBzZWxmLT5yZXNvdXJjZV9zZXJ2 aWNlICE9IE5VTEwpKQorLSAgICBnb3RvIG91dDsKKy0KKy0gIHNlbGYtPnF1ZXVlID0gcGhvdG9z X3RyYWNrZXJfcXVldWVfZHVwX3NpbmdsZXRvbiAoY2FuY2VsbGFibGUsIGVycm9yKTsKKy0gIGlm IChHX1VOTElLRUxZIChzZWxmLT5xdWV1ZSA9PSBOVUxMKSkKKy0gICAgeworLSAgICAgIHJldF92 YWwgPSBGQUxTRTsKKy0gICAgICBnb3RvIG91dDsKKy0gICAgfQorLQorLSAgc2VsZi0+cmVzb3Vy Y2Vfc2VydmljZSA9IHRyYWNrZXJfcmVzb3VyY2VzX3Byb3h5X25ld19mb3JfYnVzX3N5bmMgKEdf QlVTX1RZUEVfU0VTU0lPTiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfUFJPWFlfRkxBR1NfTk9ORSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxIiwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi L29yZy9mcmVlZGVza3RvcC9UcmFja2VyMS9SZXNvdXJjZXMiLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmNl bGxhYmxlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVycm9yKTsKKy0gIGlmIChHX1VOTElLRUxZIChzZWxmLT5y ZXNvdXJjZV9zZXJ2aWNlID09IE5VTEwpKQorLSAgICB7CistICAgICAgcmV0X3ZhbCA9IEZBTFNF OworLSAgICAgIGdvdG8gb3V0OworLSAgICB9CistCistICBnX3NpZ25hbF9jb25uZWN0IChzZWxm LT5yZXNvdXJjZV9zZXJ2aWNlLAorLSAgICAgICAgICAgICAgICAgICAgImdyYXBoLXVwZGF0ZWQi LAorLSAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAocGhvdG9zX3RyYWNrZXJfY2hhbmdl X21vbml0b3JfZ3JhcGhfdXBkYXRlZCksCistICAgICAgICAgICAgICAgICAgICBzZWxmKTsKKy0K Ky0gb3V0OgorLSAgcmV0dXJuIHJldF92YWw7CistfQorLQorLQorLXN0YXRpYyB2b2lkCistcGhv dG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxl SWZhY2UgKmlmYWNlKQorLXsKKy0gIGlmYWNlLT5pbml0ID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdl X21vbml0b3JfaW5pdGFibGVfaW5pdDsKKy19CistCistCistUGhvdG9zVHJhY2tlckNoYW5nZU1v bml0b3IgKgorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2R1cF9zaW5nbGV0b24gKEdD YW5jZWxsYWJsZSAqY2FuY2VsbGFibGUsIEdFcnJvciAqKmVycm9yKQorLXsKKy0gIHJldHVybiBn X2luaXRhYmxlX25ldyAoUEhPVE9TX1RZUEVfVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiwgY2FuY2Vs bGFibGUsIGVycm9yLCBOVUxMKTsKKy19CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2Vy LWNoYW5nZS1tb25pdG9yLmggYi9zcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuaAor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCA5NzQwYjA0Ni4uMDAwMDAwMDAKKy0tLSBh L3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5oCisrKysgL2Rldi9udWxsCitAQCAt MSw0MiArMCwwIEBACistLyoKKy0gKiBQaG90b3MgLSBhY2Nlc3MsIG9yZ2FuaXplIGFuZCBzaGFy ZSB5b3VyIHBob3RvcyBvbiBHTk9NRQorLSAqIENvcHlyaWdodCDCqSAyMDEyIOKAkyAyMDE5IFJl ZCBIYXQsIEluYy4KKy0gKgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CistICogaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKy0gKiB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCistICoKKy0g KiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKy0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy0gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLSAqCistICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy0gKiBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KKy0gKi8KKy0KKy0vKiBCYXNlZCBvbiBjb2RlIGZyb206CistICogICArIERvY3VtZW50cwor LSAqLworLQorLSNpZm5kZWYgUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX01PTklUT1JfSAorLSNkZWZp bmUgUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX01PTklUT1JfSAorLQorLSNpbmNsdWRlIDxnaW8vZ2lv Lmg+CistCistR19CRUdJTl9ERUNMUworLQorLSNkZWZpbmUgUEhPVE9TX1RZUEVfVFJBQ0tFUl9D SEFOR0VfTU9OSVRPUiAocGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfZ2V0X3R5cGUgKCkp CistR19ERUNMQVJFX0ZJTkFMX1RZUEUgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yLAorLSAg ICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvciwKKy0gICAg ICAgICAgICAgICAgICAgICAgUEhPVE9TLAorLSAgICAgICAgICAgICAgICAgICAgICBUUkFDS0VS X0NIQU5HRV9NT05JVE9SLAorLSAgICAgICAgICAgICAgICAgICAgICBHT2JqZWN0KTsKKy0KKy1Q aG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAgKnBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9y X2R1cF9zaW5nbGV0b24gICAgKEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHRXJyb3IgKiplcnJvcik7CistCistR19FTkRfREVDTFMKKy0KKy0jZW5kaWYg LyogUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX01PTklUT1JfSCAqLworZGlmZiAtLWdpdCBhL3NyYy9w aG90b3MtdHJhY2tlci1jb250cm9sbGVyLmMgYi9zcmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxl ci5jCitpbmRleCAzYTYyY2YyZC4uZjBiODFlMDIgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXRy YWNrZXItY29udHJvbGxlci5jCisrKysgYi9zcmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5j CitAQCAtMjkyLDYgKzI5MiwxMiBAQCBwaG90b3NfdHJhY2tlcl9jb250cm9sbGVyX3BlcmZvcm1f Y3VycmVudF9xdWVyeSAoUGhvdG9zVHJhY2tlckNvbnRyb2xsZXIgKnNlbGYpCisgCisgICBwcml2 ID0gcGhvdG9zX3RyYWNrZXJfY29udHJvbGxlcl9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAoc2VsZik7 CisgCisrICBpZiAoR19VTkxJS0VMWSAocHJpdi0+cXVldWUgPT0gTlVMTCkpCisrICAgIHsKKysg ICAgICBwaG90b3NfdHJhY2tlcl9jb250cm9sbGVyX3F1ZXJ5X2Vycm9yIChzZWxmLCBwcml2LT5x dWV1ZV9lcnJvcik7CisrICAgICAgZ290byBvdXQ7CisrICAgIH0KKysKKyAgIGdfY2xlYXJfb2Jq ZWN0ICgmcHJpdi0+Y3VycmVudF9xdWVyeSk7CisgICBwcml2LT5jdXJyZW50X3F1ZXJ5ID0gUEhP VE9TX1RSQUNLRVJfQ09OVFJPTExFUl9HRVRfQ0xBU1MgKHNlbGYpLT5nZXRfcXVlcnkgKHNlbGYp OworICAgZ19yZXR1cm5faWZfZmFpbCAocHJpdi0+Y3VycmVudF9xdWVyeSAhPSBOVUxMKTsKK0BA IC0zMDMsMTIgKzMwOSw2IEBAIHBob3Rvc190cmFja2VyX2NvbnRyb2xsZXJfcGVyZm9ybV9jdXJy ZW50X3F1ZXJ5IChQaG90b3NUcmFja2VyQ29udHJvbGxlciAqc2VsZikKKyAgIGdfb2JqZWN0X3Vu cmVmIChwcml2LT5jYW5jZWxsYWJsZSk7CisgICBwcml2LT5jYW5jZWxsYWJsZSA9IGdfY2FuY2Vs bGFibGVfbmV3ICgpOworIAorLSAgaWYgKEdfVU5MSUtFTFkgKHByaXYtPnF1ZXVlID09IE5VTEwp KQorLSAgICB7CistICAgICAgcGhvdG9zX3RyYWNrZXJfY29udHJvbGxlcl9xdWVyeV9lcnJvciAo c2VsZiwgcHJpdi0+cXVldWVfZXJyb3IpOworLSAgICAgIGdvdG8gb3V0OworLSAgICB9CistCisg ICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zZWxlY3QgKHByaXYtPnF1ZXVlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwcml2LT5jdXJyZW50X3F1ZXJ5LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwcml2LT5jYW5jZWxsYWJsZSwKK2RpZmYgLS1naXQgYS9zcmMvcGhv dG9zLXRyYWNrZXItZXh0cmFjdC1wcmlvcml0eS54bWwgYi9zcmMvcGhvdG9zLXRyYWNrZXItZXh0 cmFjdC1wcmlvcml0eS54bWwKK2luZGV4IDdlM2I5YjBjLi4yYjU2MjI5OSAxMDA2NDQKKy0tLSBh L3NyYy9waG90b3MtdHJhY2tlci1leHRyYWN0LXByaW9yaXR5LnhtbAorKysrIGIvc3JjL3Bob3Rv cy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHkueG1sCitAQCAtMjEsNyArMjEsNyBAQAorIC0tPgor IAorIDxub2RlIG5hbWU9Ii8iIHhtbG5zOmRvYz0iaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcv ZGJ1cy8xLjAvZG9jLmR0ZCI+CistICA8aW50ZXJmYWNlIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5U cmFja2VyMS5FeHRyYWN0LlByaW9yaXR5Ij4KKysgIDxpbnRlcmZhY2UgbmFtZT0ib3JnLmZyZWVk ZXNrdG9wLlRyYWNrZXIzLkV4dHJhY3QuUHJpb3JpdHkiPgorICAgICA8bWV0aG9kIG5hbWU9IkNs ZWFyUmRmVHlwZXMiIC8+CisgICAgIDxtZXRob2QgbmFtZT0iU2V0UmRmVHlwZXMiPgorICAgICAg IDxhcmcgbmFtZT0icmRmX3R5cGVzIiB0eXBlPSJhcyIgZGlyZWN0aW9uPSJpbiIgLz4KK2RpZmYg LS1naXQgYS9zcmMvcGhvdG9zLXRyYWNrZXItaW1wb3J0LWNvbnRyb2xsZXIuYyBiL3NyYy9waG90 b3MtdHJhY2tlci1pbXBvcnQtY29udHJvbGxlci5jCitpbmRleCAwODVhY2UzYS4uZDdlZDliMjAg MTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItaW1wb3J0LWNvbnRyb2xsZXIuYworKysr IGIvc3JjL3Bob3Rvcy10cmFja2VyLWltcG9ydC1jb250cm9sbGVyLmMKK0BAIC0yNCw3ICsyNCw2 IEBACisgI2luY2x1ZGUgImNvbmZpZy5oIgorIAorICNpbmNsdWRlIDxnaW8vZ2lvLmg+CistI2lu Y2x1ZGUgPGxpYnRyYWNrZXItY29udHJvbC90cmFja2VyLWNvbnRyb2wuaD4KKyAKKyAjaW5jbHVk ZSAicGhvdG9zLWJhc2UtbWFuYWdlci5oIgorICNpbmNsdWRlICJwaG90b3MtZGVidWcuaCIKK0BA IC0zNCw2ICszMyw4IEBACisgI2luY2x1ZGUgInBob3Rvcy1xdWVyeS1idWlsZGVyLmgiCisgI2lu Y2x1ZGUgInBob3Rvcy1zZWFyY2gtY29udGV4dC5oIgorICNpbmNsdWRlICJwaG90b3MtdHJhY2tl ci1pbXBvcnQtY29udHJvbGxlci5oIgorKyNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1taW5lci1p bmRleC5oIgorKyNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1xdWV1ZS5oIgorICNpbmNsdWRlICJw aG90b3MtdXRpbHMuaCIKKyAKKyAKK0BAIC00NSw3ICs0Niw3IEBAIHN0cnVjdCBfUGhvdG9zVHJh Y2tlckltcG9ydENvbnRyb2xsZXIKKyAgIFBob3Rvc0Jhc2VNYW5hZ2VyICppdGVtX21uZ3I7Cisg ICBQaG90b3NCYXNlTWFuYWdlciAqc3JjX21uZ3I7CisgICBQaG90b3NPZmZzZXRDb250cm9sbGVy ICpvZmZzZXRfY250cmxyOworLSAgVHJhY2tlck1pbmVyTWFuYWdlciAqbWFuYWdlcjsKKysgIFRy YWNrZXJNaW5lckZpbGVzSW5kZXggKm1pbmVyX2NvbnRyb2xfcHJveHk7CisgfTsKKyAKKyAKK0BA IC03NiwxMiArNzcsMTIgQEAgc3RhdGljIHZvaWQKKyBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29u dHJvbGxlcl9pbmRleCAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpyZXMs IGdwb2ludGVyIHVzZXJfZGF0YSkKKyB7CisgICBnX2F1dG9wdHIgKEdGaWxlKSBmaWxlID0gR19G SUxFICh1c2VyX2RhdGEpOworLSAgVHJhY2tlck1pbmVyTWFuYWdlciAqbWFuYWdlciA9IFRSQUNL RVJfTUlORVJfTUFOQUdFUiAoc291cmNlX29iamVjdCk7CisrICBUcmFja2VyTWluZXJGaWxlc0lu ZGV4ICptaW5lcl9jb250cm9sX3Byb3h5ID0gVFJBQ0tFUl9NSU5FUl9GSUxFU19JTkRFWCAoc291 cmNlX29iamVjdCk7CisgCisgICB7CisgICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5V TEw7CisgCistICAgIGlmICghdHJhY2tlcl9taW5lcl9tYW5hZ2VyX2luZGV4X2ZpbGVfZm9yX3By b2Nlc3NfZmluaXNoIChtYW5hZ2VyLCByZXMsICZlcnJvcikpCisrICAgIGlmICghdHJhY2tlcl9t aW5lcl9maWxlc19pbmRleF9jYWxsX2luZGV4X2xvY2F0aW9uX2ZpbmlzaCAobWluZXJfY29udHJv bF9wcm94eSwgcmVzLCAmZXJyb3IpKQorICAgICAgIHsKKyAgICAgICAgIGlmICghZ19lcnJvcl9t YXRjaGVzIChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9DQU5DRUxMRUQpKQorICAgICAg ICAgICB7CitAQCAtMTAyLDYgKzEwMyw4IEBAIHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9s bGVyX25leHRfZmlsZXMgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsCisgICBH RmlsZUVudW1lcmF0b3IgKmVudW1lcmF0b3IgPSBHX0ZJTEVfRU5VTUVSQVRPUiAoc291cmNlX29i amVjdCk7CisgICBHTGlzdCAqaW5mb3MgPSBOVUxMOworICAgR0xpc3QgKmw7CisrICBjb25zdCBn Y2hhciAqdHJhY2tlcl9wcmlvcml0eV9ncmFwaHNbXSA9IHsgVFJBQ0tFUl9QSUNUVVJFU19HUkFQ SCB9OworKyAgY29uc3QgZ2NoYXIgKnRyYWNrZXJfaW5kZXhfbG9jYXRpb25fZmxhZ3NbXSA9IHsg ImZvci1wcm9jZXNzIiB9OworIAorICAgeworICAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3Ig PSBOVUxMOworQEAgLTE4NywxMSArMTkwLDEzIEBAIHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250 cm9sbGVyX25leHRfZmlsZXMgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsCisg ICAgICAgICAgICAgICAgICAgICBpZiAoZ19jb250ZW50X3R5cGVfZXF1YWxzIChtaW1lX3R5cGUs IElNUE9SVEFCTEVfTUlNRV9UWVBFU1tpXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICB8fCBn X2NvbnRlbnRfdHlwZV9pc19hIChtaW1lX3R5cGUsIElNUE9SVEFCTEVfTUlNRV9UWVBFU1tpXSkp CisgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFj a2VyX21pbmVyX21hbmFnZXJfaW5kZXhfZmlsZV9mb3JfcHJvY2Vzc19hc3luYyAoc2VsZi0+bWFu YWdlciwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi0+Y2FuY2VsbGFibGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX2ltcG9y dF9jb250cm9sbGVyX2luZGV4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX29iamVjdF9yZWYgKGZp bGUpKTsKKysgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2VyX21pbmVyX2ZpbGVzX2luZGV4 X2NhbGxfaW5kZXhfbG9jYXRpb24gKHNlbGYtPm1pbmVyX2NvbnRyb2xfcHJveHksCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1cmksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2VyX3ByaW9yaXR5X2dyYXBocywKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRyYWNrZXJfaW5kZXhfbG9jYXRpb25fZmxhZ3MsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLT5jYW5jZWxsYWJsZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX2ltcG9y dF9jb250cm9sbGVyX2luZGV4LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19vYmplY3RfcmVmIChmaWxlKSk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhpbmcgPSBUUlVFOworICAgICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgfQorQEAgLTI5MSwyOCArMjk2LDYgQEAg cGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfc291cmNlX2FjdGl2ZV9jaGFuZ2VkIChQ aG90b3NUcmFja2VySW1wb3J0Q29udHIKKyAgICAgeworICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwg KGdfcXVldWVfaXNfZW1wdHkgKHNlbGYtPnBlbmRpbmdfZGlyZWN0b3JpZXMpKTsKKyAKKy0gICAg ICBpZiAoR19MSUtFTFkgKHNlbGYtPm1hbmFnZXIgIT0gTlVMTCkpCistICAgICAgICB7CistICAg ICAgICAgIGdfYXV0b3B0ciAoR0ZpbGUpIHJvb3QgPSBOVUxMOworLSAgICAgICAgICBnX2F1dG9m cmVlIGdjaGFyICp1cmkgPSBOVUxMOworLQorLSAgICAgICAgICByb290ID0gZ19tb3VudF9nZXRf cm9vdCAobW91bnQpOworLSAgICAgICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoc2VsZi0+cGVuZGlu Z19kaXJlY3RvcmllcywgZ19vYmplY3RfcmVmIChyb290KSk7CistCistICAgICAgICAgIHVyaSA9 IGdfZmlsZV9nZXRfdXJpIChyb290KTsKKy0gICAgICAgICAgcGhvdG9zX2RlYnVnIChQSE9UT1Nf REVCVUdfSU1QT1JULCAiRW51bWVyYXRpbmcgZGV2aWNlIGRpcmVjdG9yeSAlcyIsIHVyaSk7Cist CistICAgICAgICAgIGdfZmlsZV9lbnVtZXJhdGVfY2hpbGRyZW5fYXN5bmMgKHJvb3QsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJVVEVf U1RBTkRBUkRfQ09OVEVOVF9UWVBFIiwiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfTkFNRSIsIgorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklCVVRFX1NUQU5E QVJEX1RZUEUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdf RklMRV9RVUVSWV9JTkZPX05PRk9MTE9XX1NZTUxJTktTLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHX1BSSU9SSVRZX0RFRkFVTFQsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPmNhbmNlbGxhYmxlLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9pbXBv cnRfY29udHJvbGxlcl9lbnVtZXJhdGVfY2hpbGRyZW4sCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYpOworLSAgICAgICAgfQorLQorICAgICAgIHBob3Rv c190cmFja2VyX2NvbnRyb2xsZXJfcmVmcmVzaF9mb3Jfb2JqZWN0IChQSE9UT1NfVFJBQ0tFUl9D T05UUk9MTEVSIChzZWxmKSk7CisgICAgIH0KKyB9CitAQCAtMzc5LDcgKzM2Miw2IEBAIHBob3Rv c190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkKKyAK KyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+c3JjX21uZ3IpOworICAgZ19jbGVhcl9vYmplY3Qg KCZzZWxmLT5vZmZzZXRfY250cmxyKTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bWFuYWdl cik7CisgCisgICBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xs ZXJfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZSAob2JqZWN0KTsKKyB9CitAQCAtMzk3LDYgKzM3OSwz NyBAQCBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9maW5hbGl6ZSAoR09iamVjdCAq b2JqZWN0KQorIH0KKyAKKyAKKytzdGF0aWMgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAqCisrcGhv dG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfZ2V0X21pbmVyX2ZzX2NvbnRyb2xfcHJveHkg KEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUpCisreworKyAgZ19hdXRvcHRyIChQaG90b3NUcmFj a2VyUXVldWUpIHRyYWNrZXJfcXVldWUgPSBOVUxMOworKyAgY29uc3QgZ2NoYXIgKm1pbmVyX2Zz X2NvbnRyb2xfYnVzbmFtZTsKKysgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7Cisr ICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5OworKworKyAgdHJh Y2tlcl9xdWV1ZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2R1cF9zaW5nbGV0b24gKGNhbmNlbGxh YmxlLCAmZXJyb3IpOworKworKyAgaWYgKCF0cmFja2VyX3F1ZXVlKSB7CisrICAgIGdfd2Fybmlu ZyAoIkVycm9yIGdldHRpbmcgVHJhY2tlciBxdWV1ZTogJXMuIEltcG9ydCB3aWxsIG5vdCB3b3Jr LiIsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrCisrICBtaW5l cl9mc19jb250cm9sX2J1c25hbWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNf Y29udHJvbF9idXNuYW1lICh0cmFja2VyX3F1ZXVlKTsKKysgIG1pbmVyX2NvbnRyb2xfcHJveHkg PSB0cmFja2VyX21pbmVyX2ZpbGVzX2luZGV4X3Byb3h5X25ld19mb3JfYnVzX3N5bmMgKEdfQlVT X1RZUEVfU0VTU0lPTiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19QUk9YWV9GTEFHU19OT05F LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbWluZXJfZnNfY29udHJvbF9idXNuYW1lLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIi9vcmcvZnJlZWRlc2t0b3AvVHJhY2tlcjMvTWluZXIvRmlsZXMvQ29udHJvbCIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVycm9yKTsKKysg IGlmICghbWluZXJfY29udHJvbF9wcm94eSkgeworKyAgICBnX3dhcm5pbmcgKCJFcnJvciBnZXR0 aW5nIFRyYWNrZXIgTWluZXIgRlMgY29udHJvbCBwcm94eTogJXMuIEltcG9ydCB3aWxsIG5vdCB3 b3JrIiwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICByZXR1cm4gTlVMTDsKKysgIH0KKysKKysgIHJl dHVybiBtaW5lcl9jb250cm9sX3Byb3h5OworK30KKysKKysKKyBzdGF0aWMgdm9pZAorIHBob3Rv c190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX2luaXQgKFBob3Rvc1RyYWNrZXJJbXBvcnRDb250 cm9sbGVyICpzZWxmKQorIHsKK0BAIC00MjEsMTMgKzQzNCw3IEBAIHBob3Rvc190cmFja2VyX2lt cG9ydF9jb250cm9sbGVyX2luaXQgKFBob3Rvc1RyYWNrZXJJbXBvcnRDb250cm9sbGVyICpzZWxm KQorIAorICAgc2VsZi0+b2Zmc2V0X2NudHJsciA9IHBob3Rvc19vZmZzZXRfaW1wb3J0X2NvbnRy b2xsZXJfZHVwX3NpbmdsZXRvbiAoKTsKKyAKKy0gIHsKKy0gICAgZ19hdXRvcHRyIChHRXJyb3Ip IGVycm9yID0gTlVMTDsKKy0KKy0gICAgc2VsZi0+bWFuYWdlciA9IHRyYWNrZXJfbWluZXJfbWFu YWdlcl9uZXdfZnVsbCAoRkFMU0UsICZlcnJvcik7CistICAgIGlmIChlcnJvciAhPSBOVUxMKQor LSAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0byBjcmVhdGUgYSBUcmFja2VyTWluZXJNYW5hZ2Vy LCBpbmRleGluZyBhdHRhY2hlZCBkZXZpY2VzIHdvbid0IHdvcms6ICVzIiwgZXJyb3ItPm1lc3Nh Z2UpOworLSAgfQorKyAgc2VsZi0+bWluZXJfY29udHJvbF9wcm94eSA9IHBob3Rvc190cmFja2Vy X2ltcG9ydF9jb250cm9sbGVyX2dldF9taW5lcl9mc19jb250cm9sX3Byb3h5IChOVUxMKTsKKyB9 CisgCisgCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmMgYi9zcmMvcGhv dG9zLXRyYWNrZXItcXVldWUuYworaW5kZXggNmFjODI5Y2QuLmE1ZjRjOTFhIDEwMDY0NAorLS0t IGEvc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmMKKysrKyBiL3NyYy9waG90b3MtdHJhY2tlci1x dWV1ZS5jCitAQCAtMzcsOSArMzcsMjAgQEAgc3RydWN0IF9QaG90b3NUcmFja2VyUXVldWUKKyAg IEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworICAgR0Vycm9yICppbml0aWFsaXphdGlvbl9lcnJv cjsKKyAgIEdRdWV1ZSAqcXVldWU7CistICBUcmFja2VyU3BhcnFsQ29ubmVjdGlvbiAqY29ubmVj dGlvbjsKKysgIFRyYWNrZXJTcGFycWxDb25uZWN0aW9uICpsb2NhbF9jb25uZWN0aW9uOworKyAg VHJhY2tlclNwYXJxbENvbm5lY3Rpb24gKm1pbmVyX2ZzX2Nvbm5lY3Rpb247CisgICBnYm9vbGVh biBpc19pbml0aWFsaXplZDsKKyAgIGdib29sZWFuIHJ1bm5pbmc7CisrICBnYm9vbGVhbiBtaW5l cl9mc19yZWFkeTsKKysgIGNvbnN0IGdjaGFyICptaW5lcl9mc19idXNuYW1lOworKyAgY29uc3Qg Z2NoYXIgKm1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZTsKKyt9OworKworK2VudW0KKyt7CisrICBQ Uk9QXzAsCisrICBQUk9QX01JTkVSX0ZTX1JFQURZLAorKyAgUFJPUF9NSU5FUl9GU19CVVNOQU1F CisgfTsKKyAKKyBzdGF0aWMgdm9pZCBwaG90b3NfdHJhY2tlcl9xdWV1ZV9pbml0YWJsZV9pZmFj ZV9pbml0IChHSW5pdGFibGVJZmFjZSAqaWZhY2UpOworQEAgLTkwLDcgKzEwMSw2IEBAIHBob3Rv c190cmFja2VyX3F1ZXVlX2RhdGFfZnJlZSAoUGhvdG9zVHJhY2tlclF1ZXVlRGF0YSAqZGF0YSkK KyAKKyBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoUGhvdG9zVHJhY2tlclF1ZXVlRGF0 YSwgcGhvdG9zX3RyYWNrZXJfcXVldWVfZGF0YV9mcmVlKTsKKyAKKy0KKyBzdGF0aWMgUGhvdG9z VHJhY2tlclF1ZXVlRGF0YSAqCisgcGhvdG9zX3RyYWNrZXJfcXVldWVfZGF0YV9uZXcgKFBob3Rv c1F1ZXJ5ICpxdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhvdG9zVHJh Y2tlclF1ZXJ5VHlwZSBxdWVyeV90eXBlLAorQEAgLTE3OSw3ICsxODksNyBAQCBwaG90b3NfdHJh Y2tlcl9xdWV1ZV9jaGVjayAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKQorICAgc3dpdGNoIChk YXRhLT5xdWVyeV90eXBlKQorICAgICB7CisgICAgIGNhc2UgUEhPVE9TX1RSQUNLRVJfUVVFUllf U0VMRUNUOgorLSAgICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fcXVlcnlfYXN5bmMgKHNl bGYtPmNvbm5lY3Rpb24sCisrICAgICAgdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl9xdWVyeV9h c3luYyAoc2VsZi0+bG9jYWxfY29ubmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzcGFycWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YS0+Y2FuY2VsbGFibGUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX3RyYWNrZXJfcXVldWVfY29sbGVjdG9y LAorQEAgLTE4NywxOCArMTk3LDE2IEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX2NoZWNrIChQaG90 b3NUcmFja2VyUXVldWUgKnNlbGYpCisgICAgICAgYnJlYWs7CisgCisgICAgIGNhc2UgUEhPVE9T X1RSQUNLRVJfUVVFUllfVVBEQVRFOgorLSAgICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25f dXBkYXRlX2FzeW5jIChzZWxmLT5jb25uZWN0aW9uLAorKyAgICAgIHRyYWNrZXJfc3BhcnFsX2Nv bm5lY3Rpb25fdXBkYXRlX2FzeW5jIChzZWxmLT5sb2NhbF9jb25uZWN0aW9uLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFycWwsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+Y2Fu Y2VsbGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBob3Rvc190cmFja2VyX3F1ZXVlX2NvbGxlY3RvciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ19vYmplY3RfcmVmIChzZWxmKSk7CisgICAgICAgYnJl YWs7CisgCisgICAgIGNhc2UgUEhPVE9TX1RSQUNLRVJfUVVFUllfVVBEQVRFX0JMQU5LOgorLSAg ICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fdXBkYXRlX2JsYW5rX2FzeW5jIChzZWxmLT5j b25uZWN0aW9uLAorKyAgICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fdXBkYXRlX2JsYW5r X2FzeW5jIChzZWxmLT5sb2NhbF9jb25uZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFycWwsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+ Y2FuY2VsbGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBob3Rvc190cmFja2VyX3F1ZXVlX2NvbGxlY3RvciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19vYmplY3RfcmVmIChzZWxm KSk7CitAQCAtMjExLDYgKzIxOSw1MyBAQCBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jaGVjayAoUGhv dG9zVHJhY2tlclF1ZXVlICpzZWxmKQorIH0KKyAKKyAKKytzdGF0aWMgZ2Jvb2xlYW4KKytwaG90 b3NfdHJhY2tlcl9xdWV1ZV9zdGFydF9zZXNzaW9uX21pbmVyX2ZzIChQaG90b3NUcmFja2VyUXVl dWUgKnNlbGYsIEdFcnJvciAqKmVycm9yKQorK3sKKysgIGNvbnN0IGdjaGFyICpidXNuYW1lID0g Im9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcyI7CisrICBjb25zdCBnY2hhciAq Y29udHJvbF9idXNuYW1lID0gIm9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcy5D b250cm9sIjsKKysKKysgIHBob3Rvc19kZWJ1ZyAoUEhPVE9TX0RFQlVHX1RSQUNLRVIsICJDb25u ZWN0aW5nIHRvICVzIiwgYnVzbmFtZSk7CisrICBzZWxmLT5taW5lcl9mc19jb25uZWN0aW9uID0g dHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl9idXNfbmV3IChidXNuYW1lLCBOVUxMLCBOVUxMLCBl cnJvcik7CisrICBpZiAoKmVycm9yKQorKyAgICB7CisrICAgICAgZ193YXJuaW5nICgiVW5hYmxl IHRvIGNyZWF0ZSBjb25uZWN0aW9uIGZvciBzZXNzaW9uLXdpZGUgVHJhY2tlciBpbmRleGVyIGF0 ICVzOiAlcyIsIGJ1c25hbWUsICgqZXJyb3IpLT5tZXNzYWdlKTsKKysgICAgICByZXR1cm4gRkFM U0U7CisrICAgIH0KKysKKysgIHNlbGYtPm1pbmVyX2ZzX2J1c25hbWUgPSBidXNuYW1lOworKyAg c2VsZi0+bWluZXJfZnNfY29udHJvbF9idXNuYW1lID0gY29udHJvbF9idXNuYW1lOworKworKyAg cmV0dXJuIFRSVUU7CisrfQorKworKworK3N0YXRpYyBnYm9vbGVhbgorK3Bob3Rvc190cmFja2Vy X3F1ZXVlX3N0YXJ0X2xvY2FsX21pbmVyX2ZzIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYsIEdF cnJvciAqKmVycm9yKQorK3sKKysgIGNvbnN0IGdjaGFyICpidXNuYW1lID0gIm9yZy5nbm9tZS5Q aG90b3MuVHJhY2tlcjMuTWluZXIuRmlsZXMiOworKyAgY29uc3QgZ2NoYXIgKmNvbnRyb2xfYnVz bmFtZSA9ICJvcmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkZpbGVzLkNvbnRyb2wiOwor KworKyAgcGhvdG9zX2RlYnVnIChQSE9UT1NfREVCVUdfVFJBQ0tFUiwgIkNvbm5lY3RpbmcgdG8g JXMiLCBidXNuYW1lKTsKKysgIHNlbGYtPm1pbmVyX2ZzX2Nvbm5lY3Rpb24gPSB0cmFja2VyX3Nw YXJxbF9jb25uZWN0aW9uX2J1c19uZXcgKGJ1c25hbWUsIE5VTEwsIE5VTEwsIGVycm9yKTsKKysg IGlmICgqZXJyb3IpCisrICAgIHsKKysgICAgICBnX2NyaXRpY2FsICgiQ291bGQgbm90IHN0YXJ0 IGxvY2FsIFRyYWNrZXIgaW5kZXhlciBhdCAlczogJXMiLCBidXNuYW1lLCAoKmVycm9yKS0+bWVz c2FnZSk7CisrICAgICAgcmV0dXJuIEZBTFNFOworKyAgICB9CisrCisrICBzZWxmLT5taW5lcl9m c19idXNuYW1lID0gYnVzbmFtZTsKKysgIHNlbGYtPm1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSA9 IGNvbnRyb2xfYnVzbmFtZTsKKysKKysgIHJldHVybiBUUlVFOworK30KKysKKytzdGF0aWMgZ2Jv b2xlYW4KKytpbnNpZGVfZmxhdHBhayAodm9pZCkKKyt7CisrICAgIHJldHVybiBnX2ZpbGVfdGVz dCAoIi8uZmxhdHBhay1pbmZvIiwgR19GSUxFX1RFU1RfRVhJU1RTKTsKKyt9CisrCisgc3RhdGlj IEdPYmplY3QgKgorIHBob3Rvc190cmFja2VyX3F1ZXVlX2NvbnN0cnVjdG9yIChHVHlwZSB0eXBl LCBndWludCBuX2NvbnN0cnVjdF9wYXJhbXMsIEdPYmplY3RDb25zdHJ1Y3RQYXJhbSAqY29uc3Ry dWN0X3BhcmFtcykKKyB7CitAQCAtMjM0LDcgKzI4OSw4IEBAIHBob3Rvc190cmFja2VyX3F1ZXVl X2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkKKyB7CisgICBQaG90b3NUcmFja2VyUXVldWUgKnNl bGYgPSBQSE9UT1NfVFJBQ0tFUl9RVUVVRSAob2JqZWN0KTsKKyAKKy0gIGdfY2xlYXJfb2JqZWN0 ICgmc2VsZi0+Y29ubmVjdGlvbik7CisrICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmxvY2FsX2Nv bm5lY3Rpb24pOworKyAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5taW5lcl9mc19jb25uZWN0aW9u KTsKKyAKKyAgIEdfT0JKRUNUX0NMQVNTIChwaG90b3NfdHJhY2tlcl9xdWV1ZV9wYXJlbnRfY2xh c3MpLT5kaXNwb3NlIChvYmplY3QpOworIH0KK0BAIC0yNTgsNiArMzE0LDM4IEBAIHBob3Rvc190 cmFja2VyX3F1ZXVlX2luaXQgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZikKKyAgIHNlbGYtPnF1 ZXVlID0gZ19xdWV1ZV9uZXcgKCk7CisgfQorIAorK3N0YXRpYyB2b2lkCisrcGhvdG9zX3RyYWNr ZXJfcXVldWVfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICpvYmplY3QsIGd1aW50IHByb3BfaWQsIEdW YWx1ZSAqdmFsdWUsIEdQYXJhbVNwZWMgKnBzcGVjKQorK3sKKysgIFBob3Rvc1RyYWNrZXJRdWV1 ZSAqc2VsZiA9IFBIT1RPU19UUkFDS0VSX1FVRVVFIChvYmplY3QpOworKworKyAgc3dpdGNoIChw cm9wX2lkKQorKyAgICB7CisrICAgIGNhc2UgUFJPUF9NSU5FUl9GU19SRUFEWToKKysgICAgICBn X3ZhbHVlX3NldF9ib29sZWFuICh2YWx1ZSwgc2VsZi0+bWluZXJfZnNfcmVhZHkpOworKyAgICAg IGJyZWFrOworKworKyAgICBjYXNlIFBST1BfTUlORVJfRlNfQlVTTkFNRToKKysgICAgICBnX3Zh bHVlX3NldF9zdHJpbmcgKHZhbHVlLCBzZWxmLT5taW5lcl9mc19idXNuYW1lKTsKKysgICAgICBi cmVhazsKKysKKysgICAgZGVmYXVsdDoKKysgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJP UEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgICB9 CisrfQorKworK3N0YXRpYyB2b2lkCisrcGhvdG9zX3RyYWNrZXJfcXVldWVfc2V0X3Byb3BlcnR5 IChHT2JqZWN0ICpvYmplY3QsIGd1aW50IHByb3BfaWQsIGNvbnN0IEdWYWx1ZSAqdmFsdWUsIEdQ YXJhbVNwZWMgKnBzcGVjKQorK3sKKysgIHN3aXRjaCAocHJvcF9pZCkKKysgICAgeworKyAgICAv KiBBbGwgcHJvcGVydGllcyBhcmUgcmVhZCBvbmx5ICovCisrICAgIGRlZmF1bHQ6CisrICAgICAg R19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVj KTsKKysgICAgICBicmVhazsKKysgICAgfQorK30KKyAKKyBzdGF0aWMgdm9pZAorIHBob3Rvc190 cmFja2VyX3F1ZXVlX2NsYXNzX2luaXQgKFBob3Rvc1RyYWNrZXJRdWV1ZUNsYXNzICpjbGFzcykK K0BAIC0yNjcsNiArMzU1LDI0IEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX2NsYXNzX2luaXQgKFBo b3Rvc1RyYWNrZXJRdWV1ZUNsYXNzICpjbGFzcykKKyAgIG9iamVjdF9jbGFzcy0+Y29uc3RydWN0 b3IgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jb25zdHJ1Y3RvcjsKKyAgIG9iamVjdF9jbGFzcy0+ ZGlzcG9zZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2Rpc3Bvc2U7CisgICBvYmplY3RfY2xhc3Mt PmZpbmFsaXplID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZmluYWxpemU7CisrICBvYmplY3RfY2xh c3MtPmdldF9wcm9wZXJ0eSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF9wcm9wZXJ0eTsKKysg IG9iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfc2V0X3By b3BlcnR5OworKworKyAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAob2JqZWN0X2Ns YXNzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9NSU5FUl9GU19S RUFEWSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19i b29sZWFuICgidHJhY2tlci1taW5lci1mcy1yZWFkeSIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRyYWNrZXIgTWluZXIgRlMgcmVh ZHkiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJUUlVFIGlmIGl0IGlzIHBvc3NpYmxlIHRvIHF1ZXJ5IFRyYWNrZXIgaW5kZXhlciIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRkFMU0UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgR19QQVJBTV9SRUFEQUJMRSkpOworKworKyAgZ19vYmplY3RfY2xhc3NfaW5z dGFsbF9wcm9wZXJ0eSAob2JqZWN0X2NsYXNzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUFJPUF9NSU5FUl9GU19CVVNOQU1FLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZyAoInRyYWNrZXItbWluZXItZnMtYnVzbmFt ZSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiVHJhY2tlciBNaW5lciBGUyBidXNuYW1lIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJELUJ1cyBuYW1lIG9mIHRoZSBUcmFj a2VyIGluZGV4ZXIgZGFlbW9uIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9SRUFEQUJMRSkpOworIH0KKyAKKyAK K0BAIC0yNzQsMTMgKzM4MCwxNiBAQCBzdGF0aWMgZ2Jvb2xlYW4KKyBwaG90b3NfdHJhY2tlcl9x dWV1ZV9pbml0YWJsZV9pbml0IChHSW5pdGFibGUgKmluaXRhYmxlLCBHQ2FuY2VsbGFibGUgKmNh bmNlbGxhYmxlLCBHRXJyb3IgKiplcnJvcikKKyB7CisgICBQaG90b3NUcmFja2VyUXVldWUgKnNl bGYgPSBQSE9UT1NfVFJBQ0tFUl9RVUVVRSAoaW5pdGFibGUpOworKyAgVHJhY2tlclNwYXJxbENv bm5lY3Rpb25GbGFncyB0cmFja2VyX2ZsYWdzOworKyAgZ19hdXRvcHRyIChHRmlsZSkgc3RvcmUg PSBOVUxMOworICAgZ2Jvb2xlYW4gcmV0X3ZhbCA9IEZBTFNFOworKyAgZ2Jvb2xlYW4gbWluZXJf b2sgPSBGQUxTRTsKKyAKKyAgIEdfTE9DSyAoaW5pdF9sb2NrKTsKKyAKKyAgIGlmIChzZWxmLT5p c19pbml0aWFsaXplZCkKKyAgICAgeworLSAgICAgIGlmIChzZWxmLT5jb25uZWN0aW9uICE9IE5V TEwpCisrICAgICAgaWYgKHNlbGYtPmxvY2FsX2Nvbm5lY3Rpb24gIT0gTlVMTCAmJiBzZWxmLT5t aW5lcl9mc19jb25uZWN0aW9uICE9IE5VTEwpCisgICAgICAgICByZXRfdmFsID0gVFJVRTsKKyAg ICAgICBlbHNlCisgICAgICAgICBnX2Fzc2VydF9ub25udWxsIChzZWxmLT5pbml0aWFsaXphdGlv bl9lcnJvcik7CitAQCAtMjkwLDExICszOTksNDkgQEAgcGhvdG9zX3RyYWNrZXJfcXVldWVfaW5p dGFibGVfaW5pdCAoR0luaXRhYmxlICppbml0YWJsZSwgR0NhbmNlbGxhYmxlICpjYW5jZWxsYWIK KyAKKyAgIGdfYXNzZXJ0X25vX2Vycm9yIChzZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvcik7Cisg CistICBzZWxmLT5jb25uZWN0aW9uID0gdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl9nZXQgKGNh bmNlbGxhYmxlLCAmc2VsZi0+aW5pdGlhbGl6YXRpb25fZXJyb3IpOworKyAgLyogQ29ubmVjdCB0 byB0aGUgbG9jYWwgZGF0YWJhc2Ugd2hpY2ggc3RvcmVzIHVzZXIgZGF0YS4KKysgICAqCisrICAg KiBTYW1lIGZsYWdzIHRoYXQgdHJhY2tlci1taW5lci1mcyB1c2VzIGJ5IGRlZmF1bHQuIFNlZToK KysgICAqIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS90cmFja2VyLW1pbmVycy8tL2Js b2IvbWFzdGVyL3NyYy9taW5lcnMvZnMvdHJhY2tlci1tYWluLmMjTDczNSBhbmQKKysgICAqIGh0 dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS90cmFja2VyLW1pbmVycy8tL2Jsb2IvbWFzdGVy L2RhdGEvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIuRlRTLmdzY2hlbWEueG1sICovCisrICB0cmFj a2VyX2ZsYWdzID0gVFJBQ0tFUl9TUEFSUUxfQ09OTkVDVElPTl9GTEFHU19GVFNfRU5BQkxFX1VO QUNDRU5UIHwKKysgICAgICAgICAgICAgICAgICBUUkFDS0VSX1NQQVJRTF9DT05ORUNUSU9OX0ZM QUdTX0ZUU19FTkFCTEVfU1RPUF9XT1JEUyB8CisrICAgICAgICAgICAgICAgICAgVFJBQ0tFUl9T UEFSUUxfQ09OTkVDVElPTl9GTEFHU19GVFNfSUdOT1JFX05VTUJFUlM7CisrCisrICBzdG9yZSA9 IGdfZmlsZV9uZXdfYnVpbGRfZmlsZW5hbWUgKGdfZ2V0X3VzZXJfZGF0YV9kaXIgKCksICJnbm9t ZS1waG90b3MiLCBOVUxMKTsKKysKKysgIHBob3Rvc19kZWJ1ZyAoUEhPVE9TX0RFQlVHX1RSQUNL RVIsICJPcGVuaW5nIGxvY2FsIGRhdGFiYXNlIGF0ICVzIiwgZ19maWxlX3BlZWtfcGF0aCAoc3Rv cmUpKTsKKysgIHNlbGYtPmxvY2FsX2Nvbm5lY3Rpb24gPSB0cmFja2VyX3NwYXJxbF9jb25uZWN0 aW9uX25ldyAodHJhY2tlcl9mbGFncywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrZXJfc3BhcnFsX2dldF9v bnRvbG9neV9uZXBvbXVrICgpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxsYWJsZSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNlbGYtPmluaXRpYWxpemF0 aW9uX2Vycm9yKTsKKysKKyAgIGlmIChHX1VOTElLRUxZIChzZWxmLT5pbml0aWFsaXphdGlvbl9l cnJvciAhPSBOVUxMKSkKKyAgICAgZ290byBvdXQ7CisgCistICByZXRfdmFsID0gVFJVRTsKKysg IC8qIENvbm5lY3QgdG8gZmlsZXN5c3RlbSBpbmRleGVyLiAqLworKyAgbWluZXJfb2sgPSBwaG90 b3NfdHJhY2tlcl9xdWV1ZV9zdGFydF9zZXNzaW9uX21pbmVyX2ZzIChzZWxmLCAmc2VsZi0+aW5p dGlhbGl6YXRpb25fZXJyb3IpOworKworKyAgaWYgKCFtaW5lcl9vayAmJiBpbnNpZGVfZmxhdHBh ayAoKSkKKysgICAgeworKyAgICAgIGdfY2xlYXJfZXJyb3IgKCZzZWxmLT5pbml0aWFsaXphdGlv bl9lcnJvcik7CisrICAgICAgbWluZXJfb2sgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zdGFydF9s b2NhbF9taW5lcl9mcyAoc2VsZiwgJnNlbGYtPmluaXRpYWxpemF0aW9uX2Vycm9yKTsKKysgICAg fQorKworKyAgaWYgKG1pbmVyX29rKQorKyAgICB7CisrICAgICAgcGhvdG9zX2RlYnVnIChQSE9U T1NfREVCVUdfVFJBQ0tFUiwgIlVzaW5nICVzIGFzIHRyYWNrZXItbWluZXItZnMiLCBzZWxmLT5t aW5lcl9mc19idXNuYW1lKTsKKysgICAgICByZXRfdmFsID0gVFJVRTsKKysgICAgfQorKyAgZWxz ZQorKyAgICB7CisrICAgICAgcGhvdG9zX2RlYnVnIChQSE9UT1NfREVCVUdfVFJBQ0tFUiwgIklu aXRpYWxpemF0aW9uIGZhaWxlZCBkdWUgdG8gJXMiLCBzZWxmLT5pbml0aWFsaXphdGlvbl9lcnJv ci0+bWVzc2FnZSk7CisrICAgICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5taW5lcl9mc19jb25u ZWN0aW9uKTsKKysgICAgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmxvY2FsX2Nvbm5lY3Rpb24p OworKyAgICAgIHJldF92YWwgPSBGQUxTRTsKKysgICAgfQorKworIAorICBvdXQ6CisgICBzZWxm LT5pc19pbml0aWFsaXplZCA9IFRSVUU7CitAQCAtMzE5LDEwICs0NjYsNDQgQEAgcGhvdG9zX3Ry YWNrZXJfcXVldWVfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxlSWZhY2UgKmlmYWNlKQor IFBob3Rvc1RyYWNrZXJRdWV1ZSAqCisgcGhvdG9zX3RyYWNrZXJfcXVldWVfZHVwX3NpbmdsZXRv biAoR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZSwgR0Vycm9yICoqZXJyb3IpCisgeworKyAgR09i amVjdCAqc2luZ2xldG9uOworKworICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGNhbmNlbGxhYmxl ID09IE5VTEwgfHwgR19JU19DQU5DRUxMQUJMRSAoY2FuY2VsbGFibGUpLCBOVUxMKTsKKyAgIGdf cmV0dXJuX3ZhbF9pZl9mYWlsIChlcnJvciA9PSBOVUxMIHx8ICplcnJvciA9PSBOVUxMLCBOVUxM KTsKKyAKKy0gIHJldHVybiBnX2luaXRhYmxlX25ldyAoUEhPVE9TX1RZUEVfVFJBQ0tFUl9RVUVV RSwgY2FuY2VsbGFibGUsIGVycm9yLCBOVUxMKTsKKysgIHNpbmdsZXRvbiA9IGdfb2JqZWN0X25l dyAoUEhPVE9TX1RZUEVfVFJBQ0tFUl9RVUVVRSwgTlVMTCk7CisrCisrICBpZiAoZ19pbml0YWJs ZV9pbml0IChHX0lOSVRBQkxFIChzaW5nbGV0b24pLCBjYW5jZWxsYWJsZSwgZXJyb3IpKQorKyAg ICAgIHJldHVybiBQSE9UT1NfVFJBQ0tFUl9RVUVVRSAoc2luZ2xldG9uKTsKKysKKysgIC8qIE9u IGVycm9yIHdlIGRlbGliZXJhdGVseSBkb24ndCB1bnJlZiB0aGUgb2JqZWN0IHNvIHRoYXQgd2Ug d29uJ3QgdHJ5CisrICAgKiBhbmQgcmUtaW5pdGlhbGl6ZSBUcmFja2VyIHdoZW4gY2FsbGVkIGFn YWluLgorKyAgICovCisrICByZXR1cm4gTlVMTDsKKyt9CisrCisrCisrY29uc3QgZ2NoYXIgKgor K3Bob3Rvc190cmFja2VyX3F1ZXVlX2dldF9taW5lcl9mc19idXNuYW1lIChQaG90b3NUcmFja2Vy UXVldWUgKnNlbGYpCisreworKyAgcmV0dXJuIHNlbGYtPm1pbmVyX2ZzX2J1c25hbWU7CisrfQor KworKworK2NvbnN0IGdjaGFyICoKKytwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNf Y29udHJvbF9idXNuYW1lIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpCisreworKyAgcmV0dXJu IHNlbGYtPm1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZTsKKyt9CisrCisrCisrVHJhY2tlck5vdGlm aWVyICoKKytwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbm90aWZpZXIgKFBob3Rvc1RyYWNrZXJR dWV1ZSAqc2VsZikKKyt7CisrICAvKiBXZSB3YW50IG5vdGlmaWNhdGlvbnMgb24gZmlsZXN5c3Rl bSBjaGFuZ2VzLCB3ZSBkb24ndCBuZWVkIHRoZW0gZm9yIHRoZQorKyAgICogbG9jYWwgZGF0YWJh c2Ugd2hpY2ggd2UgbWFuYWdlIG91cnNlbHZlcy4KKysgICAqLworKyAgcmV0dXJuIHRyYWNrZXJf c3BhcnFsX2Nvbm5lY3Rpb25fY3JlYXRlX25vdGlmaWVyIChzZWxmLT5taW5lcl9mc19jb25uZWN0 aW9uKTsKKyB9CisgCisgCitAQCAtMzUxLDYgKzUzMiw3IEBAIHBob3Rvc190cmFja2VyX3F1ZXVl X3NlbGVjdCAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmLAorIH0KKyAKKyAKKysKKyB2b2lkCisg cGhvdG9zX3RyYWNrZXJfcXVldWVfdXBkYXRlIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaG90b3NRdWVyeSAqcXVlcnksCitkaWZmIC0t Z2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmggYi9zcmMvcGhvdG9zLXRyYWNrZXItcXVl dWUuaAoraW5kZXggOTNkOTczMDYuLjZlMzFlY2Y2IDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy10 cmFja2VyLXF1ZXVlLmgKKysrKyBiL3NyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5oCitAQCAtMjQs MTYgKzI0LDIzIEBACisgI2RlZmluZSBQSE9UT1NfVFJBQ0tFUl9RVUVVRV9ICisgCisgI2luY2x1 ZGUgPGdpby9naW8uaD4KKysjaW5jbHVkZSA8bGlidHJhY2tlci1zcGFycWwvdHJhY2tlci1zcGFy cWwuaD4KKyAKKyAjaW5jbHVkZSAicGhvdG9zLXF1ZXJ5LmgiCisgCisgR19CRUdJTl9ERUNMUwor IAorKyNkZWZpbmUgVFJBQ0tFUl9QSUNUVVJFU19HUkFQSCAiaHR0cDovL3RyYWNrZXIuYXBpLmdu b21lLm9yZy9vbnRvbG9neS92My90cmFja2VyI1BpY3R1cmVzIgorKworICNkZWZpbmUgUEhPVE9T X1RZUEVfVFJBQ0tFUl9RVUVVRSAocGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X3R5cGUgKCkpCisg R19ERUNMQVJFX0ZJTkFMX1RZUEUgKFBob3Rvc1RyYWNrZXJRdWV1ZSwgcGhvdG9zX3RyYWNrZXJf cXVldWUsIFBIT1RPUywgVFJBQ0tFUl9RVUVVRSwgR09iamVjdCk7CisgCisgUGhvdG9zVHJhY2tl clF1ZXVlICAgICpwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBfc2luZ2xldG9uICAgICAgICAgIChH Q2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLCBHRXJyb3IgKiplcnJvcik7CisgCisrY29uc3QgZ2No YXIgKiAgICAgICAgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNfYnVzbmFtZSAg ICAgICAgIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpOworK2NvbnN0IGdjaGFyICogICAgICAg ICAgcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSAoUGhv dG9zVHJhY2tlclF1ZXVlICpzZWxmKTsKKytUcmFja2VyTm90aWZpZXIgKiAgICAgIHBob3Rvc190 cmFja2VyX3F1ZXVlX2dldF9ub3RpZmllciAgICAgICAgICAgICAgICAgKFBob3Rvc1RyYWNrZXJR dWV1ZSAqc2VsZik7CisrCisgdm9pZCAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9x dWV1ZV9zZWxlY3QgICAgICAgICAgICAgICAgIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQaG90b3NRdWVyeSAqcXVlcnksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2FuY2VsbGFibGUg KmNhbmNlbGxhYmxlLAorZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1yZXNvdXJjZXMu eG1sIGIvc3JjL3Bob3Rvcy10cmFja2VyLXJlc291cmNlcy54bWwKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMTgxNzdhYTAuLjAwMDAwMDAwCistLS0gYS9zcmMvcGhvdG9zLXRyYWNr ZXItcmVzb3VyY2VzLnhtbAorKysrIC9kZXYvbnVsbAorQEAgLTEsMzEgKzAsMCBAQAorLTwhRE9D VFlQRSBub2RlIFBVQkxJQworLSItLy9mcmVlZGVza3RvcC8vRFREIEQtQlVTIE9iamVjdCBJbnRy b3NwZWN0aW9uIDEuMC8vRU4iCistImh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3N0YW5kYXJk cy9kYnVzLzEuMC9pbnRyb3NwZWN0LmR0ZCI+CistCistPCEtLQorLSBQaG90b3MgLSBhY2Nlc3Ms IG9yZ2FuaXplIGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRQorLSBDb3B5cmlnaHQgwqkg MjAxMiDigJMgMjAxOSBSZWQgSGF0LCBJbmMuCistCistIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CistIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5CistIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCistIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCist CistIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCistIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCistCistIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCistIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorLS0tPgor LQorLTxub2RlIG5hbWU9Ii8iIHhtbG5zOmRvYz0iaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcv ZGJ1cy8xLjAvZG9jLmR0ZCI+CistICA8aW50ZXJmYWNlIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5U cmFja2VyMS5SZXNvdXJjZXMiPgorLSAgICA8c2lnbmFsIG5hbWU9IkdyYXBoVXBkYXRlZCI+Cist ICAgICAgPGFyZyBuYW1lPSJjbGFzc05hbWUiIHR5cGU9InMiIC8+CistICAgICAgPGFyZyBuYW1l PSJkZWxldGVFdmVudHMiIHR5cGU9ImEoaWlpaSkiIC8+CistICAgICAgPGFyZyBuYW1lPSJpbnNl cnRFdmVudHMiIHR5cGU9ImEoaWlpaSkiIC8+CistICAgIDwvc2lnbmFsPgorLSAgPC9pbnRlcmZh Y2U+CistPC9ub2RlPgorZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdXRpbHMuYyBiL3NyYy9waG90 b3MtdXRpbHMuYworaW5kZXggYzYzODI5N2IuLmNjODU5M2Q4IDEwMDY0NAorLS0tIGEvc3JjL3Bo b3Rvcy11dGlscy5jCisrKysgYi9zcmMvcGhvdG9zLXV0aWxzLmMKK0BAIC0xMjYxLDcgKzEyNjEs MTMgQEAgcGhvdG9zX3V0aWxzX3NldF9lZGl0ZWRfbmFtZSAoY29uc3QgZ2NoYXIgKnVybiwgY29u c3QgZ2NoYXIgKnRpdGxlKQorICAgZ19hdXRvcHRyIChQaG90b3NUcmFja2VyUXVldWUpIHF1ZXVl ID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7CisgCistICBzcGFy cWwgPSBnX3N0cmR1cF9wcmludGYgKCJJTlNFUlQgT1IgUkVQTEFDRSB7IDwlcz4gbmllOnRpdGxl IFwiJXNcIiB9IiwgdXJuLCB0aXRsZSk7CisrICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJX SVRIIHRyYWNrZXI6UGljdHVyZXMgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiREVM RVRFIHsgPCVzPiBuaWU6dGl0bGUgP3RpdGxlIH0gIgorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiSU5TRVJUIHsgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICA8JXM+IGEg bm1tOlBob3RvIDsgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIG5pZTp0aXRs ZSBcIiVzXCIgLiAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ9IgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiV0hFUkUgeyA8JXM+IG5pZTp0aXRsZSA/dGl0bGUgfSIsIHVy biwgdXJuLCB0aXRsZSwgdXJuKTsKKyAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoTlVMTCwg c3BhcnFsKTsKKyAKKyAgIHsKK0BAIC0xMjg5LDkgKzEyOTUsMTkgQEAgcGhvdG9zX3V0aWxzX3Nl dF9mYXZvcml0ZSAoY29uc3QgZ2NoYXIgKnVybiwgZ2Jvb2xlYW4gaXNfZmF2b3JpdGUpCisgICBn X2F1dG9wdHIgKFBob3Rvc1RyYWNrZXJRdWV1ZSkgcXVldWUgPSBOVUxMOworICAgZ19hdXRvZnJl ZSBnY2hhciAqc3BhcnFsID0gTlVMTDsKKyAKKy0gIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAo IiVzIHsgPCVzPiBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSB9IiwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlzX2Zhdm9yaXRlKSA/ICJJTlNFUlQgT1IgUkVQ TEFDRSIgOiAiREVMRVRFIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJuKTsKKysg IGlmIChpc19mYXZvcml0ZSkKKysgICAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiSU5TRVJU IERBVEEgeyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgR1JBUEggdHJhY2tl cjpQaWN0dXJlcyB7IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPCVzPiBh IG5tbTpQaG90byA7ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgbmFv Omhhc1RhZyBuYW86cHJlZGVmaW5lZC10YWctZmF2b3JpdGUgIgorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICIgIH0gIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ9Iiwg dXJuKTsKKysgIGVsc2UKKysgICAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiREVMRVRFIERB VEEgeyIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBHUkFQSCB0cmFja2VyOlBp Y3R1cmVzIHsiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICA8JXM+IG5hbzpo YXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlICIKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiICB9ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifSIsIHVy bik7CisgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9uZXcgKE5VTEwsIHNwYXJxbCk7CisgCisgICB7 CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy11dGlscy5oIGIvc3JjL3Bob3Rvcy11dGlscy5oCitp bmRleCA3OGVjMzY2OC4uZjE0NTBmN2QgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXV0aWxzLmgK KysrKyBiL3NyYy9waG90b3MtdXRpbHMuaAorQEAgLTQ2LDcgKzQ2LDcgQEAgR19CRUdJTl9ERUNM UworICNkZWZpbmUgUEhPVE9TX1RSQUNLRVJfQ09OVFJPTExFUl9FWFRFTlNJT05fUE9JTlRfTkFN RSAicGhvdG9zLXRyYWNrZXItY29udHJvbGxlciIKKyAKKyAjZGVmaW5lIFBIT1RPU19DT0xMRUNU SU9OX1NDUkVFTlNIT1QgXAorLSAgImh0dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRv bG9naWVzLzIwMDcvMDMvMjIvbmZvI2ltYWdlLWNhdGVnb3J5LXNjcmVlbnNob3QiCisrICAiaHR0 cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9uZm8jaW1hZ2UtY2F0ZWdvcnkt c2NyZWVuc2hvdCIKKyAjZGVmaW5lIFBIT1RPU19FWFBPUlRfU1VCUEFUSCAiRXhwb3J0cyIKKyAK KyB0eXBlZGVmIGVudW0KK2RpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRlbXBs YXRlIGIvc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQoraW5kZXggMWNlZjk4ZTguLjE0 ZTA4MDI3IDEwMDY0NAorLS0tIGEvc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQorKysr IGIvc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQorQEAgLTEsMzAgKzEsNDIgQEAKKy1T RUxFQ1Qge3twcm9qZWN0aW9ufX0KKytTRUxFQ1Qge3tmaW5hbF9wcm9qZWN0aW9ufX0KKytGUk9N IE5BTUVEIHRyYWNrZXI6UGljdHVyZXMKKyB7CisgICAgIHsKKy0gICAgICAgIFNFTEVDVCB7e3By b2plY3Rpb259fQorKyAgICAgICAgU0VMRUNUIHt7bWFpbl9wcm9qZWN0aW9ufX0KKyAgICAgICAg IHsKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIFNFTEVDVCA/dXJuIENPVU5UKD9p dGVtKSBBUyA/Y291bnQKKyAgICAgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICAgICAg e3t2YWx1ZXN9fQorKyAgICAgICAgICAgICAgICAgICAgVkFMVUVTICg/ZmlsZSA/ZmlsZW5hbWUg P2NyZWF0b3IgP3B1Ymxpc2hlcikgeyAoIiIgIiIgIiIgIiIpIH0KKyAgICAgICAgICAgICAgICAg ICAgID91cm4gYSBuZm86RGF0YUNvbnRhaW5lci4KKy0gICAgICAgICAgICAgICAgICAgID9pdGVt IGEgbm1tOlBob3RvOyBuaWU6aXNQYXJ0T2YgP3Vybi4KKy0gICAgICAgICAgICAgICAgfSBHUk9V UCBCWSA/dXJuCisrICAgICAgICAgICAgICAgICAgICA/aXRlbSBhIG5tbTpQaG90byA7CisrICAg ICAgICAgICAgICAgICAgICAgICBuaWU6aXNQYXJ0T2YgP3VybiAuCisrICAgICAgICAgICAgICAg ICAgICB7e2l0ZW1fcGF0dGVybn19CisrICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAg ICAgR1JPVVAgQlkgP3VybgorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBGSUxURVIgKD9j b3VudCA+IDAgJiYge3tjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c2VhcmNoX2Zp bHRlcn19KQorICAgICAgICAgfQorLSAgICAgICAgR1JPVVAgQlkgP3VybgorICAgICB9CisgICAg IFVOSU9OCisgICAgIHsKKy0gICAgICAgIFNFTEVDVCB7e3Byb2plY3Rpb259fQorKyAgICAgICAg U0VMRUNUIHt7c2Vjb25kX3Byb2plY3Rpb259fQorICAgICAgICAgeworLSAgICAgICAgICAgID91 cm4gYSBubW06UGhvdG8gLgorLSAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRv ciA/Y3JlYXRvciAuIH0KKy0gICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hl ciA/cHVibGlzaGVyIC4gfQorICAgICAgICAgICAgIHt7aXRlbV9wYXR0ZXJufX0KKy0gICAgICAg ICAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVy fX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisrICAgICAgICAgICAgU0VSVklDRSA8ZGJ1czp7e21p bmVyX2ZzX2J1c25hbWV9fT4KKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgIFNFTEVD VCB7e21haW5fcHJvamVjdGlvbn19CisrICAgICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAg ICAgICAgIHt7dmFsdWVzfX0KKysgICAgICAgICAgICAgICAgICAgID91cm4gYSBubW06UGhvdG8g OworKyAgICAgICAgICAgICAgICAgICAgICAgIG5pZTppc1N0b3JlZEFzID9maWxlIC4KKysgICAg ICAgICAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0K KysgICAgICAgICAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286cHVibGlzaGVyID9wdWJs aXNoZXIgLiB9CisrICAgICAgICAgICAgICAgICAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1bHRf ZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisrICAg ICAgICAgICAgICAgIH0KKysgICAgICAgICAgICB9CisgICAgICAgICB9CistICAgICAgICBHUk9V UCBCWSA/dXJuCisgICAgIH0KKyB9Cisge3tvcmRlcn19CitkaWZmIC0tZ2l0IGEvc3JjL3F1ZXJp ZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMu c3BhcnFsLnRlbXBsYXRlCitpbmRleCAyMGIzNWNkNi4uNGRmYjM0NWEgMTAwNjQ0CistLS0gYS9z cmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUKKysrKyBiL3NyYy9xdWVyaWVz L2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZQorQEAgLTEsMTQgKzEsMjAgQEAKKy1TRUxFQ1Qg e3twcm9qZWN0aW9ufX0KKytTRUxFQ1Qge3tmaW5hbF9wcm9qZWN0aW9ufX0KKyB7CisrICAgIFNF TEVDVCB7e21haW5fcHJvamVjdGlvbn19CisgICAgIHsKKy0gICAgICAgIFNFTEVDVCA/dXJuIENP VU5UKD9pdGVtKSBBUyA/Y291bnQKKyAgICAgICAgIHsKKy0gICAgICAgICAgICA/dXJuIGEgbmZv OkRhdGFDb250YWluZXIuCistICAgICAgICAgICAgP2l0ZW0gYSBubW06UGhvdG87IG5pZTppc1Bh cnRPZiA/dXJuLgorLSAgICAgICAgfSBHUk9VUCBCWSA/dXJuCisrICAgICAgICAgICAgU0VMRUNU ID91cm4gQ09VTlQoP2l0ZW0pIEFTID9jb3VudAorKyAgICAgICAgICAgIHsKKysgICAgICAgICAg ICAgICAge3t2YWx1ZXN9fQorKyAgICAgICAgICAgICAgICBWQUxVRVMgKD9maWxlID9maWxlbmFt ZSA/Y3JlYXRvciA/cHVibGlzaGVyKSB7ICgiIiAiIiAiIiAiIikgfQorKyAgICAgICAgICAgICAg ICA/dXJuIGEgbmZvOkRhdGFDb250YWluZXIgLgorKyAgICAgICAgICAgICAgICA/aXRlbSBhIG5t bTpQaG90byA7CisrICAgICAgICAgICAgICAgICAgIG5pZTppc1BhcnRPZiA/dXJuIC4KKysgICAg ICAgICAgICB9CisrICAgICAgICAgICAgR1JPVVAgQlkgP3VybgorKyAgICAgICAgfQorKyAgICAg ICAgRklMVEVSICg/Y291bnQgPiAwICYmIHt7Y29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXJ9fSAm JiB7e3NlYXJjaF9maWx0ZXJ9fSkKKyAgICAgfQorLSAgICBGSUxURVIgKD9jb3VudCA+IDAgJiYg e3tjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorIH0K Ky1HUk9VUCBCWSA/dXJuCisge3tvcmRlcn19Cisge3tvZmZzZXRfbGltaXR9fQorZGlmZiAtLWdp dCBhL3NyYy9xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUgYi9zcmMvcXVl cmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlCitpbmRleCAwODg1YTA4YS4uOWEw ZDc4MDYgMTAwNjQ0CistLS0gYS9zcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRl bXBsYXRlCisrKysgYi9zcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRl CitAQCAtMSwxMiArMSwyMCBAQAorLVNFTEVDVCB7e3Byb2plY3Rpb259fQorK1NFTEVDVCB7e2Zp bmFsX3Byb2plY3Rpb259fQorK0ZST00gdHJhY2tlcjpQaWN0dXJlcworIHsKKyAgICAgP3VybiBh IG5tbTpQaG90byAuCisgICAgID91cm4gYSBubW06UGhvdG87IG5hbzpoYXNUYWcgbmFvOnByZWRl ZmluZWQtdGFnLWZhdm9yaXRlIC4KKy0gICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9yID9j cmVhdG9yIC4gfQorLSAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVy IC4gfQorLSAgICB7e2l0ZW1fcGF0dGVybn19CistICAgIEZJTFRFUiAoe3twaG90b3NfZGVmYXVs dF9maWx0ZXJ9fSAmJiB7e3NvdXJjZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKysg ICAgU0VSVklDRSA8ZGJ1czp7e21pbmVyX2ZzX2J1c25hbWV9fT4KKysgICAgeworKyAgICAgICAg U0VMRUNUIHt7bWFpbl9wcm9qZWN0aW9ufX0KKysgICAgICAgIHsKKysgICAgICAgICAgICA/dXJu IGEgbm1tOlBob3RvIDsKKysgICAgICAgICAgICAgICAgbmllOmlzU3RvcmVkQXMgP2ZpbGUgLgor KyAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KKysg ICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQor KyAgICAgICAgICAgIHt7aXRlbV9wYXR0ZXJufX0KKysgICAgICAgICAgICBGSUxURVIgKHt7cGhv dG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmls dGVyfX0pCisrICAgICAgICB9CisrICAgIH0KKyB9CistR1JPVVAgQlkgP3VybgorIHt7b3JkZXJ9 fQorIHt7b2Zmc2V0X2xpbWl0fX0KK2RpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9waG90b3Muc3Bh cnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQoraW5kZXgg NGViMTBiNzQuLjZhZGUzNWUyIDEwMDY0NAorLS0tIGEvc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJx bC50ZW1wbGF0ZQorKysrIGIvc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorQEAg LTEsMTEgKzEsMTkgQEAKKy1TRUxFQ1Qge3twcm9qZWN0aW9ufX0KKytTRUxFQ1Qge3tmaW5hbF9w cm9qZWN0aW9ufX0KKytGUk9NIHRyYWNrZXI6UGljdHVyZXMKKyB7CistICAgID91cm4gYSBubW06 UGhvdG8gLgorLSAgICBPUFRJT05BTCB7ID91cm4gbmNvOmNyZWF0b3IgP2NyZWF0b3IgLiB9Cist ICAgIE9QVElPTkFMIHsgP3VybiBuY286cHVibGlzaGVyID9wdWJsaXNoZXIgLiB9CistICAgIHt7 aXRlbV9wYXR0ZXJufX0KKy0gICAgRklMVEVSICh7e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19ICYm IHt7c291cmNlX2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorKyAgICBTRVJWSUNFIDxk YnVzOnt7bWluZXJfZnNfYnVzbmFtZX19PgorKyAgICB7CisrICAgICAgICBTRUxFQ1Qge3ttYWlu X3Byb2plY3Rpb259fQorKyAgICAgICAgeworKyAgICAgICAgICAgIHt7dmFsdWVzfX0KKysgICAg ICAgICAgICA/dXJuIGEgbm1tOlBob3RvIDsKKysgICAgICAgICAgICAgICAgbmllOmlzU3RvcmVk QXMgP2ZpbGUgLgorKyAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3Jl YXRvciAuIH0KKysgICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVi bGlzaGVyIC4gfQorKyAgICAgICAgICAgIHt7aXRlbV9wYXR0ZXJufX0KKysgICAgICAgICAgICBG SUxURVIgKHt7cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYg e3tzZWFyY2hfZmlsdGVyfX0pCisrICAgICAgICB9CisrICAgIH0KKyB9CistR1JPVVAgQlkgP3Vy bgorIHt7b3JkZXJ9fQorIHt7b2Zmc2V0X2xpbWl0fX0KKy0tIAorR2l0TGFiCisKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1waG90b3Mv dGVtcGxhdGUKaW5kZXggMWVkOGI5ODYxZWMuLjdjODNhMmU3NWQ0IDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXBob3Rvcy90ZW1w bGF0ZQpAQCAtMSwyMiArMSwyMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtcGhvdG9z JwogcGtnbmFtZT1nbm9tZS1waG90b3MKLXZlcnNpb249My4zNC4yCit2ZXJzaW9uPTMuMzcuOTEu MQogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogY29u ZmlndXJlX2FyZ3M9Ii1EZG9ndGFpbD1mYWxzZSIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyBnZXR0ZXh0IGl0c3Rvb2wgZ2xpYi1kZXZlbCBnZGstcGl4YnVmIGxpYnJzdmciCiBtYWtlZGVw ZW5kcz0iZ3RrKzMtZGV2ZWwgYmFibC1kZXZlbCBleGVtcGktZGV2ZWwgbGNtczItZGV2ZWwKLSBn ZmJncmFwaC1kZXZlbCB0cmFja2VyLWRldmVsIGxpYmV4aWYtZGV2ZWwgbGlicnN2Zy1kZXZlbCBn cmlsby1kZXZlbAorIGdmYmdyYXBoLWRldmVsIHRyYWNrZXIzLWRldmVsIGxpYmV4aWYtZGV2ZWwg bGlicnN2Zy1kZXZlbCBncmlsby1kZXZlbAogIGxpYmdleGl2Mi1kZXZlbCBnbm9tZS1vbmxpbmUt YWNjb3VudHMtZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJnZGF0YS1kZXZlbAogIGdlb2Nv ZGUtZ2xpYi1kZXZlbCBsaWJkYXp6bGUtZGV2ZWwgZ2VnbC1kZXZlbCIKLWRlcGVuZHM9ImRlc2t0 b3AtZmlsZS11dGlscyB0cmFja2VyIHRyYWNrZXItbWluZXJzIgorZGVwZW5kcz0iZGVza3RvcC1m aWxlLXV0aWxzIHRyYWNrZXIzIHRyYWNrZXIzLW1pbmVycyIKIHNob3J0X2Rlc2M9IkFjY2Vzcywg b3JnYW5pemUsIGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRSIKIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9QaG90b3MiCi1kaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vZ25vbWUtcGhvdG9zLyR7dmVyc2lvbiUuKn0vZ25vbWUtcGhv dG9zLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09M2M1OWM3NmVmMjg2MThlYzA1NWExNzk5 ZDEwNDAyODdiOTBhMGIwMjFmZWIwYTAyYjFlYWMyOGU5YzJlYjQxYQorZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9L2dub21lLXBob3Rvcy8ke3ZlcnNpb24lLiouKn0vZ25vbWUtcGhvdG9zLSR7dmVy c2lvbn0udGFyLnh6IgorY2hlY2tzdW09Mjc4ZGEyMzIzNGUyN2M1NDMwMjBkYWU5NDNhZDUyMDg2 YjllY2FhNWVlM2FhZDBiMDMxYjg2ZWUwNGQzOTRhYQorcGF0Y2hfYXJncz0iLU5wMSIKIAogYnVp bGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIDIwMWJj N2E2Mzc1M2YzMjFhMjkyOGYyMWYzNGIzNTRjZTgyZmYyYTUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzYvMTAyXSBlb2c6 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9lb2cvdGVtcGxhdGUgfCA2ICsrKy0tLQog MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2VvZy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZW9nL3RlbXBsYXRlCmluZGV4IGU0 Y2FjYjcwNzllLi4yNzU5MjczODcyZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9lb2cvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9lb2cvdGVtcGxhdGUKQEAgLTEsMjAgKzEsMjAgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2VvZycKIHBrZ25hbWU9ZW9nCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM4 LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGNv bmZpZ3VyZV9hcmdzPSItRGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIK IGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIK IG1ha2VkZXBlbmRzPSJleGVtcGktZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJleGlmLWRl dmVsIGxpYnBlYXMtZGV2ZWwKLSBsaWJyc3ZnLWRldmVsIGxjbXMyLWRldmVsIgorIGxpYnJzdmct ZGV2ZWwgbGNtczItZGV2ZWwgbGlicG9ydGFsLWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxl LXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSBzaGFyZWQtbWltZS1pbmZvIgogc2hvcnRfZGVzYz0i RXllIG9mIEdOT01FIGdyYXBoaWNzIHZpZXdlciBwcm9ncmFtIgogbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V5ZU9mR25vbWUiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vZW9nLyR7dmVyc2lvbiUuKn0vZW9nLSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09ZTQ1NGExYTdhYTVlM2EzMzIxZWFiMDExNjc3ODExMGU1YTdhN2I2M2Jj ZjIxNjc2ZWRhMWE3YmUxODdjOWM5NQorY2hlY2tzdW09ZTFhM2E0N2MzODY4OGNkNTM4ZGVkYTYy N2MwZWZmMTEzZDA1YzMxNmIxZGRlNjI0MzE1MDQzNzI1OWQyZDk2Mwogc2hsaWJfcHJvdmlkZXM9 ImxpYmVvZy5zbyIKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKCkZyb20gOWQ5ODc5YzdlODQ5OTM4NmJj YzFiYTg3MGFlMTE4ZTQ5OTNlNmU0NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAg MTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3Ny8xMDJdIGV2aW5jZTogdXBkYXRlIHRv IDMuMzguMAoKLS0tCiBzcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZSB8IDE0ICsrKysrKystLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZXZpbmNlL3RlbXBsYXRlIGIvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUK aW5kZXggNDAzNWYxNWM2OTAuLjBlYjgwNzUwMjUzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2V2aW5j ZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZXZpbmNlJwogcGtnbmFtZT1ldmluY2UKLXZlcnNpb249 My4zNi43Cit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCi1i dWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCi1jb25maWd1cmVfYXJncz0iJCh2b3B0X2VuYWJsZSBn aXIgaW50cm9zcGVjdGlvbikgLS1kaXNhYmxlLXNjaGVtYXMtY29tcGlsZQotIC0tZW5hYmxlLWNv bWljcyAtLWRpc2FibGUtc3RhdGljIC0tZW5hYmxlLXhwcyAtLWRpc2FibGUtdDFsaWIKLSAtLWRp c2FibGUtYnJvd3Nlci1wbHVnaW4gLS1lbmFibGUtcHMiCi1ob3N0bWFrZWRlcGVuZHM9ImFkd2Fp dGEtaWNvbi10aGVtZSBnZXR0ZXh0IGdsaWItZGV2ZWwgZ25vbWUtZG9jLXV0aWxzCitidWlsZF9z dHlsZT1tZXNvbgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29sIGdpciBpbnRyb3NwZWN0aW9u KQorIC1EY29taWNzPWVuYWJsZWQgLURwcz1lbmFibGVkIC1EeHBzPWVuYWJsZWQgLURkdmk9ZGlz YWJsZWQKKyAtRHQxbGliPWRpc2FibGVkIC1EYnJvd3Nlcl9wbHVnaW49ZmFsc2UiCitob3N0bWFr ZWRlcGVuZHM9ImFkd2FpdGEtaWNvbi10aGVtZSBnZXR0ZXh0IGd0ay1kb2MgZ2xpYi1kZXZlbCBn bm9tZS1kb2MtdXRpbHMKICBpdHN0b29sIHBrZy1jb25maWcgcGVybC1YTUwtUGFyc2VyIGFwcHN0 cmVhbS1nbGliIgogIyBYWFggbWlzc2luZyBwYWNrYWdlcyBmb3IgRFZJIGJhY2tlbmQuCiBtYWtl ZGVwZW5kcz0iYWR3YWl0YS1pY29uLXRoZW1lIGRqdnVsaWJyZS1kZXZlbCBnbm9tZS1kZXNrdG9w LWRldmVsIGxpYlNNLWRldmVsCkBAIC0xOSw3ICsxOSw3IEBAIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9FdmluY2UiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT02NWQ2MWE0MjNlM2ZiYmUwNzAwMWY2NWU4NzQyMmRmYjdk MmU0MmI5ZWRmMGNhNmExZDQyN2FmOWEwNGI4ZjMyCitjaGVja3N1bT0yNmRmODk3YTQxNzU0NWI0 NzZkMjYwNmIxNDczMTEyMmU4NDI3OGFlOTk0YmQ2NGVhNTM1NDQ5YzNjZjAxOTQ4CiAKIGJ1aWxk X29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSBlZDJlZjFm ZDI2MWI3MDc1YzExNjM5NmNkNzhlNTE5Nzk0MzUxZmJkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAx MyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDc4LzEwMl0gZmlsZS1y b2xsZXI6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0 ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZpbGUtcm9sbGVyL3RlbXBsYXRlIGIvc3JjcGtncy9m aWxlLXJvbGxlci90ZW1wbGF0ZQppbmRleCAwMzYyMmEyMjMxMy4uZjg1NmMzMjQyMjkgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvZmlsZS1yb2xsZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9maWxlLXJv bGxlci90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2ZpbGUt cm9sbGVyJwogcGtnbmFtZT1maWxlLXJvbGxlcgotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4z OC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0 ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIgpAQCAtMTIsNiArMTIsNiBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRmls ZVJvbGxlciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWI5MTQ0ZGU4ZjUzNmY1 ODNlYzI5ZDcwM2MyYzE3MGJmMmQwMGM2YzE2NmNkNWUzZjdlZmFiZGE1NTFmMTA0NzgKK2NoZWNr c3VtPTcyM2QxYzZlNTY3ZDM1ZGFkNWVlZWFlYjg2YjhkMTg3MDU2NThlZTczZTBiM2I5N2VhMTZh ZGM3YTRkYzMzMWEKIAogQ0ZMQUdTPSItZmNvbW1vbiIKCkZyb20gMTk2Zjc4MTQ2Y2EyNmM3MzE5 Mjc5NDE3MjIzZmQyNjhlNzg3MjA2NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAg MTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3OS8xMDJdIGdub21lLWNhbGVuZGFyOiB1 cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jYWxlbmRhci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25v bWUtY2FsZW5kYXIvdGVtcGxhdGUKaW5kZXggOWM5MWM4YjVmNGQuLmQzYzc2Yjk3ZjBkIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25v bWUtY2FsZW5kYXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdnbm9tZS1jYWxlbmRhcicKIHBrZ25hbWU9Z25vbWUtY2FsZW5kYXIKLXZlcnNpb249My4zNi4y Cit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtl ZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIHBrZy1jb25maWcgJCh2b3B0X2lmIGdpciAnZ29i amVjdC1pbnRyb3NwZWN0aW9uJykiCkBAIC0xMyw3ICsxMyw3IEBAIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0NhbGVuZGFy IgogY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtY2FsZW5k YXIvcmF3L21hc3Rlci9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0v JHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDBi MDUzNDVjMDU1NWEwODVlNmU1NDI2ZWFiNDk0OTRhYmEyODI2Yzg1NmViMDZmZDdmZGI3NjJlYzBj NGMxZgorY2hlY2tzdW09YzM2ODQyNTJhNzJiYjU5MDg5ZDA3MTUxNDQ1OGE0YWViYTQxN2Y5NTUx ZmY1ZDU0OGUxYTU5ODRlNDdiNDczMwogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRp b25zX2RlZmF1bHQ9ImdpciIKCkZyb20gMTc0MjdjYjQwOTdjNjhmYjE4Yzc4NGM4ZTU0MTk4NDk3 ODczMTY4YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQgQXVnIDIwMjAgMTY6NTE6NTUgKzAyMDAK U3ViamVjdDogW1BBVENIIDA4MC8xMDJdIGdub21lLW11c2ljOiB1cGRhdGUgdG8gMy4zOC4wCgot LS0KIHNyY3BrZ3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUgfCA5ICsrKysrLS0tLQogMSBmaWxlIGNo YW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2dub21lLW11c2ljL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1tdXNpYy90ZW1wbGF0ZQpp bmRleCAxMjUxMTczNjQwNy4uODVhNzU2MTA1OWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUt bXVzaWMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1tdXNpYy90ZW1wbGF0ZQpAQCAtMSwx OSArMSwyMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtbXVzaWMnCiBwa2duYW1lPWdu b21lLW11c2ljCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1 aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0 dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJnbm9tZS1k ZXNrdG9wLWRldmVsIGdyaWxvLWRldmVsIGxpYm1lZGlhYXJ0LWRldmVsCi0gcHl0aG9uMy1nb2Jq ZWN0LWRldmVsIHB5dGhvbjMtZGJ1cyB0cmFja2VyLWRldmVsIGdub21lLW9ubGluZS1hY2NvdW50 cy1kZXZlbAorIHB5dGhvbjMtZ29iamVjdC1kZXZlbCBweXRob24zLWRidXMgdHJhY2tlcjMtZGV2 ZWwgZ25vbWUtb25saW5lLWFjY291bnRzLWRldmVsCiAgbGliZGF6emxlLWRldmVsIGdyaWxvLXBs dWdpbnMgcHl0aG9uMy1jYWlyby1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBw eXRob24zLWRidXMgcHl0aG9uMy1nb2JqZWN0IHB5dGhvbjMtcmVxdWVzdHMKLSB0cmFja2VyIHRy YWNrZXItbWluZXJzIGdzdC1wbHVnaW5zLWdvb2QxIGdyaWxvLXBsdWdpbnMgbGliZGF6emxlIgor IHRyYWNrZXIzIHRyYWNrZXIzLW1pbmVycyBnc3QtcGx1Z2lucy1nb29kMSBncmlsby1wbHVnaW5z IGxpYmRhenpsZQorIGxpYm1lZGlhYXJ0Igogc2hvcnRfZGVzYz0iR05PTUUgbXVzaWMgcGxheWlu ZyBhcHBsaWNhdGlvbiIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvQXBwcy9NdXNpYyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25h bWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTdiODBmNjMwZDE1ODMzNDkzNWE4NzYwMjk2NTUwY2M5MWI1MGQ2MDRmYTY4YjQwMmZlNTE2NWIx NTMxZWMzMzIKK2NoZWNrc3VtPTM3MGFhOTdlZTQ2MTBkMTFiNGI4ZjY5MWU1YzljZTMwZmE1NTY2 NTg3MGJmNmQ1ZjIzMTk2NThiZGZhY2Q3MDUKIGxpYjMyZGlzYWJsZWQ9eWVzCgpGcm9tIGFkOTEx NzE2N2Q5ZTNlMjRkOTYxM2RmYTljYjEwYzQ0OTdmMDY2NDQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQs IDE1IEF1ZyAyMDIwIDAwOjE1OjUwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODEvMTAyXSBnZWRp dDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgIHwgIDIgKy0K IHNyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUgfCAyMSArKysrKysrKysrLS0tLS0tLS0tLS0KIDIgZmls ZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggZTY5ODZhODI3MjguLmE2YTQy MTU1NmY1IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAg LTM2ODMsNyArMzY4Myw3IEBAIGxpYnFodHRwZW5naW5lLnNvLjEgcWh0dHBlbmdpbmUtMS4wLjFf MQogbGlicW1kbnNlbmdpbmUuc28uMCBxbWRuc2VuZ2luZS0wLjEuMF8xCiBsaWJ5YW5nLnNvLjEg bGlieWFuZy0xLjByNV8xCiBsaWJodHAuc28uMiBsaWJodHAtMC41LjMwXzEKLWxpYmdlZGl0LTMu MzYuc28gZ2VkaXQtMy4zNi4xXzEKK2xpYmdlZGl0LTMuMzguc28gZ2VkaXQtMy4zNy4zXzEKIGxp YmNoZXdpbmcuc28uMyBsaWJjaGV3aW5nLTAuNS4xXzEKIGxpYmR3YXJ2ZXMuc28uMSBwYWhvbGUt MS4xMl8xCiBsaWJkd2FydmVzX2VtaXQuc28uMSBwYWhvbGUtMS4xMl8xCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dlZGl0L3RlbXBsYXRlIGIvc3JjcGtncy9nZWRpdC90ZW1wbGF0ZQppbmRleCA0ZTI3 M2FhZjE4Mi4uZGMyZGU4YjRjNDggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9nZWRpdC90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNCBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ2VkaXQnCiBwa2duYW1lPWdlZGl0Ci12ZXJzaW9uPTMuMzYuMQordmVyc2lv bj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVz b24KIHB5Y29tcGlsZV9kaXJzPSJ1c3IvbGliL2dlZGl0L3BsdWdpbnMiCi1jb25maWd1cmVfYXJn cz0iLURwbHVnaW5zPXRydWUgLUR2YXBpPSQodm9wdF9pZiB2YWxhIHRydWUgZmFsc2UpCi0gLURp bnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCitjb25maWd1cmVfYXJncz0i LURwbHVnaW5zPXRydWUKKyAkKHZvcHRfYm9vbCBnaXIgdmFwaSkgJCh2b3B0X2Jvb2wgZ2lyIGlu dHJvc3BlY3Rpb24pIgogaG9zdG1ha2VkZXBlbmRzPSJpdHN0b29sIHBrZy1jb25maWcgZ2xpYi1k ZXZlbCBnZGstcGl4YnVmIHBlcmwgZ2V0dGV4dAotICQodm9wdF9pZiB2YWxhIHZhbGEpIgorICQo dm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1h cy1kZXZlbCBnc3BlbGwtZGV2ZWwgZ3Rrc291cmNldmlldzQtZGV2ZWwKICBsaWJwZWFzLWRldmVs IGxpYnNvdXAtZGV2ZWwgdGVwbC1kZXZlbCAkKHZvcHRfaWYgZ2lyICdweXRob24zLWdvYmplY3Qt ZGV2ZWwnKSIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBnc2V0dGluZ3MtZGVza3RvcC1z Y2hlbWFzIGlzby1jb2RlcyIKQEAgLTE3LDIzICsxNywyMiBAQCBtYWludGFpbmVyPSJFbm5vIEJv bGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvR2VkaXQiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT02ZGMzOGVkYTIyN2QxYzM2OGUwMzllOWJmZjQ4NWQwYmVl OWE0OWQ1Zjk1NjBjMzg3ZWUwOGY1ODE4YTRlMzg3Ci1zaGxpYl9wcm92aWRlcz0ibGliZ2VkaXQt My4zNi5zbyIKK2NoZWNrc3VtPTQ2Y2YwNjgwNmRlNThmNmU1ZTk1ZTM0ZmQ5OGFkMGIyYzBjNTBi M2RhZTZkMjNjYTU3ZDE2ZDVjYzQxODU2ZjgKK3NobGliX3Byb3ZpZGVzPSJsaWJnZWRpdC0zLjM4 LnNvIgogcHl0aG9uX3ZlcnNpb249MwogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxk X29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9v cHRpb25zX2RlZmF1bHQ9ImdpciIKIAogZ2VkaXQtZGV2ZWxfcGFja2FnZSgpIHsKLQlkZXBlbmRz PSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gZ3Rrc291cmNldmlldy1kZXZl bCBsaWJwZWFzLWRldmVsIgorCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSBndGtzb3VyY2V2aWV3NC1kZXZlbAorCSBsaWJwZWFzLWRldmVsIHRlcGwtZGV2ZWwi CiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewog CQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQlpZiBbICIk YnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dlZGl0L2dpci0x LjAKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1 c3Ivc2hhcmUvdmFsYQogCQlmaQogCX0KCkZyb20gYWIyNWEwN2YwZmE2ZGE2MDBlM2I2ZmUwZTRl ODc2NjgzODhhNTAwNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMTUgQXVnIDIwMjAgMDA6MTg6NDkg KzAyMDAKU3ViamVjdDogW1BBVENIIDA4Mi8xMDJdIGdlZGl0LXBsdWdpbnM6IHVwZGF0ZSB0byAz LjM4LjAKCi0tLQogc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlIHwgOCArKysrLS0tLQog MSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2dlZGl0LXBsdWdpbnMvdGVtcGxhdGUgYi9zcmNwa2dzL2dlZGl0LXBsdWdp bnMvdGVtcGxhdGUKaW5kZXggZjJmOTRlNjNmNTkuLmI3ODMzZGIxMmRlIDEwMDY0NAotLS0gYS9z cmNwa2dzL2dlZGl0LXBsdWdpbnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZWRpdC1wbHVnaW5z L3RlbXBsYXRlCkBAIC0xLDExICsxLDExIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZWRpdC1w bHVnaW5zJwogcGtnbmFtZT1nZWRpdC1wbHVnaW5zCi12ZXJzaW9uPTMuMzYuMgordmVyc2lvbj0z LjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBweWNvbXBpbGVfZGlycz0idXNy L2xpYi9nZWRpdC9wbHVnaW5zIgotaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwg aXRzdG9vbCBwa2ctY29uZmlnIHZhbGEgYXBwc3RyZWFtLWdsaWIgcHl0aG9uMy1nb2JqZWN0Ci0g Z3VjaGFybWFwLWRldmVsIHZ0ZTMtZGV2ZWwiCitob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xp Yi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSBhcHBzdHJlYW0tZ2xpYgorIHB5dGhvbjMt Z29iamVjdCBndWNoYXJtYXAtZGV2ZWwgdnRlMy1kZXZlbCIKIG1ha2VkZXBlbmRzPSJnZWRpdC1k ZXZlbCBndGtzb3VyY2V2aWV3NC1kZXZlbCBndGsrMy1kZXZlbCBsaWJnaXQyLWdsaWItZGV2ZWwK ICBsaWJnbGliLWRldmVsIGxpYnBlYXMtZGV2ZWwgcHl0aG9uLWRidXMtZGV2ZWwgcHl0aG9uMy1k ZXZlbCB6ZWl0Z2Vpc3QtZGV2ZWwiCiBkZXBlbmRzPSJweXRob24zLWdvYmplY3QgZ3VjaGFybWFw IHZ0ZTMiCkBAIC0xNCw1ICsxNCw1IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5nbm9tZS5vcmcvYWN0aW9uL3Nob3cvQXBwcy9HZWRpdC9QbHVnaW5zTGlzdHMi CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0xMTUxYjk1NTM5M2Y3NWI1ZWU1OWI1 MTE1NGZkYTRmMTkyOGY0OThmZTk4NmE1NTg0ZDNjZDQ0MDg3NmE2YWY2CitjaGVja3N1bT1iZGEy YmQ1YWQ3ZWJkZDUzNWQxY2M2Yzg3MDBjMjk1ZGVjNjRiMjI3YzkxNzNjMGQyYmFlMDA2NzUxNjI1 OWZiCiBweXRob25fdmVyc2lvbj0zCgpGcm9tIGY4ZDdlN2RkZDIwZGY3NjNmMTAyOWQ4NDJlN2Jl N2JiZmI5NmRjY2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDE1IEF1ZyAyMDIwIDAwOjMzOjQ5ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwODMvMTAyXSBnbm9tZS1sYXRleDogdXBkYXRlIHRvIDMuMzgu MAoKLS0tCiBzcmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbm9tZS1sYXRleC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUK aW5kZXggOTBkNjBiZTg2MGEuLjgzYTE2ZjlkNGEyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21l LWxhdGV4L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1sYXRleCcKIHBrZ25hbWU9Z25v bWUtbGF0ZXgKLXZlcnNpb249My4zMi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2 aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBj b25maWd1cmVfYXJncz0iLS1kaXNhYmxlLWFwcHN0cmVhbS11dGlsIC0tZGlzYWJsZS1kY29uZi1t aWdyYXRpb24KQEAgLTE1LDcgKzE1LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRv eEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0i aHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0dOT01FLUxhVGVYIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09MGYwNjljN2I0YzY3NTQyNTVhMWM3ZTNlM2IwNTA5MjVkODA3NmY1 NTQ1ODUyNmEzMGFiNTllMGE3ZDUyYWNjOQorY2hlY2tzdW09YTgyYTlmYzZmMDU2OTI5ZWExOGQ2 ZGZmZDEyMWU3MWIyYzIxNzY4ODA4Yzg2ZWYxZjM0ZGEwZjg2ZTIyMGQ3NwogCiBidWlsZF9vcHRp b25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gNDAyNjFjMGM5Yjgz MWY3NDkxMjEwNGNiYmEwMjM3YzAwMzUwZTBhMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVn IDIwMjAgMDQ6MjM6MzMgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4NC8xMDJdIGJhb2JhYjogdXBk YXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZSB8IDQgKystLQogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmFvYmFiL3RlbXBsYXRlCmluZGV4 IGEwMjhiZTRjZDViLi44ODIxNTUzNTZhNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9iYW9iYWIvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdiYW9iYWInCiBwa2duYW1lPWJhb2JhYgotdmVyc2lvbj0zLjM0LjEK K3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2Vk ZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcgaXRzdG9vbCBnbGliLWRldmVsIHZhbGEiCkBAIC0x MSw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9y Zz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHRkRMLTEuMS1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL2FjdGlvbi9zaG93L0FwcHMvRGlza1VzYWdlQW5h bHl6ZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03Zjk4MWQ0ZjEzNWU0Zjgw ZmJhM2Y2NmU4NmIwZWVlZGM5NGEyNDM0NjQ5MjYyZmYwMWE1ZjBjYjAyN2IyMGM1CitjaGVja3N1 bT0wNDg0NjgxNDc4NjA4MTZiOTdmMTVkNTBiM2M4NGU5YWNmMDUzOWMxNDQxY2ZlYjYzNzAzZDEx MmU4NzI4MzI5CgpGcm9tIDY0Njk2NTFhNGQ2Mjg1ODk1OGI3ODAyOTAzNGQyMWVhMTIyNTg5MTMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjMxOjUzICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwODUvMTAyXSBnbm9tZS1ib3hlczogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNw a2dzL2dub21lLWJveGVzL3RlbXBsYXRlIHwgNyArKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt Ym94ZXMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWJveGVzL3RlbXBsYXRlCmluZGV4IDBmYTJh ZTc2YzcyLi5lNTFkMmQxOWE1ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWJveGVzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtYm94ZXMnCiBwa2duYW1lPWdub21lLWJveGVzCi12 ZXJzaW9uPTMuMzYuNQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0i Z2lyIgogYnVpbGRfc3R5bGU9bWVzb24KQEAgLTgsNyArOCw4IEBAIGhvc3RtYWtlZGVwZW5kcz0i Z2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSBnbGliLWRldmVsIgogbWFrZWRlcGVuZHM9 ImNsdXR0ZXItZ3RrLWRldmVsIGZyZWVyZHAtZGV2ZWwgZ3RrLXZuYy1kZXZlbCBsaWJhcmNoaXZl LWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJndWRldi1kZXZlbCBsaWJvc2luZm8tZGV2ZWwgbGli c2VjcmV0LWRldmVsIGxpYnNvdXAtZGV2ZWwKICBsaWJ1c2ItZGV2ZWwgbGlidmlydC1nbGliLWRl dmVsIGxpYnhtbDItZGV2ZWwgc3BpY2UtZ3RrLWRldmVsIHNwaWNlLXByb3RvY29sCi0gdHJhY2tl ci1kZXZlbCB2YWxhLWRldmVsIHdlYmtpdDJndGstZGV2ZWwgdnRlMy1kZXZlbCIKKyB0cmFja2Vy LWRldmVsIHZhbGEtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB2dGUzLWRldmVsIGd0a3NvdXJjZXZp ZXc0LWRldmVsCisgbGliaGFuZHktZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMg aGljb2xvci1pY29uLXRoZW1lIGxpYm9zaW5mbyBsaWJ2aXJ0LWdsaWIgcWVtdSB0cmFja2VyIgog c2hvcnRfZGVzYz0iR05PTUUgMyBhcHBsaWNhdGlvbiB0byBhY2Nlc3MgcmVtb3RlIG9yIHZpcnR1 YWwgc3lzdGVtcyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9y Zz4iCkBAIC0xNiw0ICsxNyw0IEBAIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Cb3hlcyIKIGNoYW5nZWxvZz0iaHR0cHM6 Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2dub21lLWJveGVzL2dub21lLTMtMzYv TkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRjNTRjYWJlMzU1ZTg3OGQw NDU3NTE3MzQ2ZTQyNDdhODYwYjY4ODM0MTNkM2JmNzc2ODFkY2QxMWVmNDFiY2UKK2NoZWNrc3Vt PTY5NmI1OTlmYzIxYWY5NDE5NzU2NzkyMDVmMmIxMjljZmZhMDM2MzJjNDQ0ODEwZGQ5NGIxNDA5 ZDA0MWEzOGIKCkZyb20gNDRmM2FhYjI1MTgzZmFhMDFlYjc4NjA3OWM0NjQ3NmJkNzQyZWIyNSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6MzU6MjQgKzAyMDAKU3ViamVjdDog W1BBVENIIDA4Ni8xMDJdIGdub21lLWNhbGN1bGF0b3I6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQog c3JjcGtncy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFu Z2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1jYWxjdWxhdG9yL3Rl bXBsYXRlCmluZGV4IDA2MjE0YjA4ZDliLi5kZTgxZTQ4OTY5ZSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY2FsY3VsYXRv ci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWNh bGN1bGF0b3InCiBwa2duYW1lPWdub21lLWNhbGN1bGF0b3IKLXZlcnNpb249My4zNi4wCi1yZXZp c2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1 aWxkX2hlbHBlcj0iZ2lyIgogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBnZXR0ZXh0IGdsaWItZGV2 ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEiCkBAIC0xNCw0ICsxNCw0IEBAIGxpY2Vuc2U9IkdQ TC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0Nh bGN1bGF0b3IiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9H Tk9NRS9nbm9tZS1jYWxjdWxhdG9yL2dub21lLTMtMzIvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPWEyZTgzMGY5Yzk4NTZmYWQ2NWRhZDFkNmMwYWU2YWJhZDBmMGI0OTZj OTk4NGFjMDA1MzE1YzVjYzQyMjBkYjMKK2NoZWNrc3VtPTkwMmUyM2ZmNTUwNjkyYjAyNDU5ZTE0 ZDZlYmJhOGI2NzA2NjNhOWY0YWYwZDk4ZWU1MmZhZGVhODk1YjU3ZmUKCkZyb20gZDViZDM1MjYw MDJiNDhjNzNkOTdkZjkxYzg1NmRjMDE5ZjNlNzVjNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYg QXVnIDIwMjAgMDQ6NDQ6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDA4Ny8xMDJdIGdub21lLWRp c2stdXRpbGl0eTogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLWRpc2stdXRp bGl0eS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZGlzay11dGlsaXR5 L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUKaW5kZXggZGM2 N2JiYmE3ODUuLjZlZjdiZTYxMDNlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWRpc2stdXRp bGl0eS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWRpc2stdXRpbGl0eS90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWRpc2stdXRpbGl0eScK IHBrZ25hbWU9Z25vbWUtZGlzay11dGlsaXR5Ci12ZXJzaW9uPTMuMzYuMQotcmV2aXNpb249Mgor dmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVf YXJncz0iLURsb2dpbmQ9bm9uZSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBndGstZG9j IGludGx0b29sIHBrZy1jb25maWcgbGlieHNsdCIKQEAgLTEzLDUgKzEzLDUgQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0Rpc2tzIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NzkxYjE4ZjIzMWJjYmM2ZDk0MWFmMzgz N2NhNWJlMTRmMjE1N2U1Y2UzZDMyYmRjNWI5ZWI4OTQ3ZTEyYjQxNAorY2hlY2tzdW09NzczNGNl NjY4ZDllYzMxMjg2YWJkNzk0NGY5NTE5MDIxMDI4OGZiYzU0NzA0ZjA1YmM1NWNiZDAzNDBiNTIy MwogbGliMzJkaXNhYmxlZD15ZXMKCkZyb20gNmQyMzMzYWQ2NzdlNzc3MzVkYjJiNTBhMGI1OTc1 NzhiMzY2NGNkYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NDk6MjYgKzAy MDAKU3ViamVjdDogW1BBVENIIDA4OC8xMDJdIGdub21lLXNjcmVlbnNob3Q6IHVwZGF0ZSB0byAz LjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlIHwgOCArKysrLS0t LQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21l LXNjcmVlbnNob3QvdGVtcGxhdGUKaW5kZXggOTljYWI2MmVlZTEuLmEzOTQ4M2JjNDM3IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n bm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdnbm9tZS1zY3JlZW5zaG90JwogcGtnbmFtZT1nbm9tZS1zY3JlZW5zaG90Ci12ZXJz aW9uPTMuMzYuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImFwcGRhdGEtdG9vbHMgZ2V0dGV4dCBnbGli LWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJsaWJjYW5iZXJyYS1kZXZl bCIKK21ha2VkZXBlbmRzPSJsaWJjYW5iZXJyYS1kZXZlbCBsaWJoYW5keTEtZGV2ZWwiCiBkZXBl bmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCiBzaG9ydF9kZXNjPSJTY3JlZW5zaG90IGNhcHR1cmUg dXRpbGl0eSBmb3IgR05PTUUiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2NyZWVuc2hvdCIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPTMzNDk1ZDg5MjcwNzE3OTI1NGI3NDNmOGY3MGM5YTgyY2RlNWM1 ZjJjN2VhM2RiNjM0YTJiYTdlYTczMzEyNjYKK2NoZWNrc3VtPWU1NTZkM2RkMTM0ZDkxMzQ0ZDI4 NTdjMDY2NDM0YmZiNjRmN2M4NWJkZWM3YmMzMzczOTM2NmI5YmNkMjlmYzAKCkZyb20gYjFkMDRi YzMxYTNhYmI3YjVlNTViZjZlNzJmNDQ4MWNjNzRjYzM0NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwg MTYgQXVnIDIwMjAgMDQ6NTE6MDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4OS8xMDJdIGdub21l LXN5c3RlbS1tb25pdG9yOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtc3lz dGVtLW1vbml0b3IvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zeXN0ZW0t bW9uaXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUK aW5kZXggZmYxMWIzNTkwYTQuLjUwNjAzNjY4N2M0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21l LXN5c3RlbS1tb25pdG9yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0 b3IvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1z eXN0ZW0tbW9uaXRvcicKIHBrZ25hbWU9Z25vbWUtc3lzdGVtLW1vbml0b3IKLXZlcnNpb249My4z Ni4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZp Z3VyZV9hcmdzPSItRHN5c3RlbWQ9ZmFsc2UiCkBAIC0xMSw0ICsxMSw0IEBAIG1haW50YWluZXI9 IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9TeXN0ZW1Nb25p dG9yIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODY2YjQ3YWIwZjRjNzViMGVj NTdkNjMwMDMzN2E3MzczNDYzYWFhZDVkZjk1ZWRkZmU1MzU0YzIyYmU3YmNhMQorY2hlY2tzdW09 NzNiZjdhYjRkNTUwM2MyNTY3ZDc2ZjgzMWM5YWUzZmUyN2MzMTQ5NTc2MTg4OWFkM2IzNTFlZjRj MDY4YWZmNAoKRnJvbSBlNjA1MDkzMDFkMTM4YWY1NTE1Y2M2MzgwNGJiY2QzZGYxZjBhNjg2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAxODoyNDowMiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDkwLzEwMl0gYWR3YWl0YS1pY29uLXRoZW1lOiB1cGRhdGUgdG8gMy4zOC4wLCBkcm9w IG5vYXJjaAoKLS0tCiBzcmNwa2dzL2Fkd2FpdGEtaWNvbi10aGVtZS90ZW1wbGF0ZSB8IDcgKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2Fkd2FpdGEtaWNvbi10aGVtZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mv YWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRlCmluZGV4IGZlYmQyOTE1YmU2Li44ZGRjZGU5Yjc4 NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdhZHdhaXRhLWljb24tdGhlbWUnCiBwa2duYW1lPWFkd2FpdGEtaWNv bi10aGVtZQotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTIKLWFyY2hzPW5vYXJjaAordmVyc2lv bj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtl ZGVwZW5kcz0icGtnLWNvbmZpZyIKIGRlcGVuZHM9ImxpYnJzdmciCkBAIC0xMSw0ICsxMCw0IEBA IG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNl PSJMR1BMLTMuMC1vci1sYXRlciwgQ0MtQlktU0EtMy4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0 bGFiLmdub21lLm9yZy9HTk9NRS9hZHdhaXRhLWljb24tdGhlbWUiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1lNDk4NTE4NjI3MDQ0ZGZkN2RiN2Q3OWE1YjNkNDM3ODQ4Y2FmMTk5 MWVmNGVmMDM2YTJkM2EyYWMyYzFmMTRkCitjaGVja3N1bT02NjgzYTFhYWYyNDMwY2NkOWVhNjM4 ZGQ0YmZlMTAwMmJjOTJiNDEyMDUwYzNkYmEyMGU0ODBmOTc5ZmFhZjk3CgpGcm9tIGRjM2YxNDMz Y2I1OTFmY2Y1ZDZmYjJlNGI0MDhhZTNhOTYyNWJlNTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2 IEF1ZyAyMDIwIDE5OjU3OjQzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTEvMTAyXSBnbm9tZS1i YWNrZ3JvdW5kczogdXBkYXRlIHRvIDMuMzguMCwgZHJvcCBub2FyY2gKCi0tLQogc3JjcGtncy9n bm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZSB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LWJhY2tncm91bmRzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0 ZQppbmRleCAwYjFlZTQyNzM1My4uMGZhYzBiYjNiZWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25v bWUtYmFja2dyb3VuZHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90 ZW1wbGF0ZQpAQCAtMSw4ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJhY2tn cm91bmRzJwogcGtnbmFtZT1nbm9tZS1iYWNrZ3JvdW5kcwotdmVyc2lvbj0zLjM2LjAKLXJldmlz aW9uPTIKLWFyY2hzPW5vYXJjaAordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9Z2V0dGV4dAogc2hvcnRfZGVzYz0iU2V0IG9mIGJh Y2tncm91bmQgaW1hZ2VzIGZvciB0aGUgR05PTUUgRGVza3RvcCIKQEAgLTEwLDQgKzksNCBAQCBt YWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciwgQ0MtQlktMi4wLCBDQy1CWS1TQS0yLjAsIENDLUJZLVNBLTMuMCIK IGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtYmFja2dyb3Vu ZHMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iOGNiODFlNGNmOWQwODVmYmIy MzU0MDYzNWI0OTJkNWMxMjRhMWY4NjExYzJhYTlhYzYzODQxMTFkNzdiYjBiCitjaGVja3N1bT1m NzcxMmE4NzNhODBjOWE5ZmNmMzk1MjYxMWVmZmViMmQ5YWVkMjNhM2U4YWJmY2RhOGFmYjE1YzQy N2QxZWUzCgpGcm9tIDBjYzQyZjU0OTZiN2JiNzAzOWJiMzQ1Nzc4MDFjMjg2ZDkwMzA4NDEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjIzOjI0ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwOTIvMTAyXSBzaW1wbGUtc2NhbjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dz L3NpbXBsZS1zY2FuL3RlbXBsYXRlIHwgNyArKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2ltcGxlLXNj YW4vdGVtcGxhdGUgYi9zcmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlCmluZGV4IDRhZTNiODY0 M2ZkLi5jNjE3YzlmMTVkMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlCkBAIC0xLDcgKzEsNiBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnc2ltcGxlLXNjYW4nCiBwa2duYW1lPXNpbXBsZS1zY2FuCi1fZ25v bWVfdmVyc2lvbj0zLjM2Ci12ZXJzaW9uPTMuMzYuNAordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9u PTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZl bCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSIKQEAgLTExLDUgKzEwLDUgQEAgc2hvcnRfZGVzYz0i R1RLIFNpbXBsZSBzY2FubmluZyB1dGlsaXR5IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3NpbXBsZS1zY2FuIgotZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHtfZ25vbWVfdmVyc2lvbn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTU2YWYxODI5MWE3NzYzZjc2M2RhNWYwZWRlZDI0 N2QyZjhlYmY5MTEyYzI4NmVmODkwMTMzNzQ5NjlmZWY1MjUKK2Rpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKK2NoZWNrc3VtPTQzNTZhZmZkMDM1ZjAxYTU3YjE4MjE5OWVmZmQ5ODA4NzAwZWZjY2I0OThi ZGM4MzY3YmYwOWJjZTQwNGMzMTEKCkZyb20gNmQxZmI1MTY5MDM3ZDQyNDA2ZTkzMjgxZDVkMmEw NTI3ZThkZjg0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MjA6NTggKzAy MDAKU3ViamVjdDogW1BBVENIIDA5My8xMDJdIHJ5Z2VsOiB1cGRhdGUgdG8gMC40MC4wCgotLS0K IHNyY3BrZ3MvcnlnZWwvdGVtcGxhdGUgfCAxMCArKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvcnln ZWwvdGVtcGxhdGUgYi9zcmNwa2dzL3J5Z2VsL3RlbXBsYXRlCmluZGV4IGQyOGRiYzJjZTA4Li42 NTE0OTc1MWY1YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9yeWdlbC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3J5Z2VsL3RlbXBsYXRlCkBAIC0xLDIyICsxLDIyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdyeWdlbCcKIHBrZ25hbWU9cnlnZWwKLXZlcnNpb249MC4zOC4zCi1yZXZpc2lvbj0yCit2ZXJz aW9uPTAuNDAuMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0i Z2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EZXhhbXBsZXM9ZmFsc2UgLUR0ZXN0cz1mYWxzZQogIC1E c3lzdGVtZC11c2VyLXVuaXRzLWRpcj1ub25lIgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmln IGdsaWItZGV2ZWwgdmFsYSIKIG1ha2VkZXBlbmRzPSJzcWxpdGUtZGV2ZWwgZ3RrKzMtZGV2ZWwg bGlic291cC1kZXZlbCBsaWJnZWUwOC1kZXZlbAotIGd1cG5wLWF2LWRldmVsIGd1cG5wLWRsbmEt ZGV2ZWwgdHJhY2tlci1kZXZlbCBsaWJtZWRpYWFydC1kZXZlbAotIGdzc2RwLWRldmVsIgorIGd1 cG5wLWF2LWRldmVsIGd1cG5wLWRsbmEtZGV2ZWwgdHJhY2tlci1kZXZlbCB0cmFja2VyMy1kZXZl bAorIGxpYm1lZGlhYXJ0LWRldmVsIGdzc2RwLWRldmVsIGdzdDEtZWRpdGluZy1zZXJ2aWNlcy1k ZXZlbCIKIGRlcGVuZHM9ImhpY29sb3ItaWNvbi10aGVtZSBkZXNrdG9wLWZpbGUtdXRpbHMiCiBz aG9ydF9kZXNjPSJHTk9NRSBob21lIG1lZGlhIHNvbHV0aW9uIgogbWFpbnRhaW5lcj0iT3JwaGFu ZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvUnlnZWwiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wOGMyMWE1NzdmN2JkYWQyNjQ0NmE3NWZmYTMyNzc4 YjI2ODQyYzNiMTE4ODE2NWYwYjE5ODE4NTU5NzQ3ZDAwCitjaGVja3N1bT1kNjdlY2M4MzRlZDA2 MDMzN2U4ZmFiOGNiNTVhNGYzZDBjMGNjZTQ0NTdlMGNkMzA3OTAzYTI1MzlmNmUyYjc3CiAKIGNv bmZfZmlsZXM9Ii9ldGMvcnlnZWwuY29uZiIKIAoKRnJvbSA5MjM1YzlhZDM1NDI4N2RmZWQ5M2Qy NDgyZDNlZTk5YjMzODgwNTQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNToy MzozOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDk0LzEwMl0gZ25vbWUtYnVpbGRlcjogdXBkYXRl IHRvIDMuMzguMAoKLS0tCiAuLi4vZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAu cGF0Y2ggfCAgMjIgLS0KIHNyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL21lc29uMDUyLnBh dGNoICB8IDMzNCAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1w bGF0ZSAgICAgICAgICAgICAgICB8ICAxNSArLQogMyBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRp b25zKCspLCAzNjEgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9t ZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL21lc29uMDUyLnBhdGNoCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaCBiL3Ny Y3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiOWI0YTJiZjFhLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMjIgKzAsMCBAQAotY29tbWl0IDQ0MTM2YTJlNWM1MjYyM2IwZTYyYzM4ODQ2ZjUx MWYzMDc2MTVjZTIKLUF1dGhvcjogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KLURhdGU6ICAg U3VuIE1heSAzIDE5OjUyOjA5IDIwMjAgKzAyMDAKLQotICAgIGZpeCBidWlsZCB3aXRoIGxpYmdp dDItMS4wLjAKLQotZGlmZiAtLWdpdCBhL3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1y ZXBvc2l0b3J5LWltcGwuYyBiL3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBvc2l0 b3J5LWltcGwuYwotaW5kZXggN2YwMTA0Mi4uMmNjYzRkZiAxMDA2NDQKLS0tLSBhL3NyYy9wbHVn aW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBvc2l0b3J5LWltcGwuYwotKysrIGIvc3JjL3BsdWdp bnMvZ2l0L2RhZW1vbi9pcGMtZ2l0LXJlcG9zaXRvcnktaW1wbC5jCi1AQCAtMzMsMTEgKzMzLDcg QEAKLSAjaW5jbHVkZSAiaXBjLWdpdC10eXBlcy5oIgotICNpbmNsdWRlICJpcGMtZ2l0LXV0aWwu aCIKLSAKLS0jaWYgTElCR0lUMl9TT1ZFUlNJT04gPj0gMjgKLSBHX0RFRklORV9BVVRPX0NMRUFO VVBfQ0xFQVJfRlVOQyAoZ2l0X2J1ZiwgZ2l0X2J1Zl9kaXNwb3NlKQotLSNlbHNlCi0tR19ERUZJ TkVfQVVUT19DTEVBTlVQX0NMRUFSX0ZVTkMgKGdpdF9idWYsIGdpdF9idWZfZnJlZSkKLS0jZW5k aWYKLSAKLSB0eXBlZGVmIGVudW0KLSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJ1aWxk ZXIvcGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVz L21lc29uMDUyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OGMyOGU4MmMx ZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbWVzb24w NTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMzQgKzAsMCBAQAotRnJvbSBjOGI4NjJiNDkx Y2ZiYmI0Zjc5YjI0ZDdjZDkwZTRmYjFmMzdjYjlmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogRGllZ28gRXNjYWxhbnRlIFVycmVsbyA8ZGllZ29lQGdub21lLm9yZz4KLURhdGU6IEZy aSwgMjUgT2N0IDIwMTkgMDQ6NDk6MTUgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gV0lQOiBidWls ZDogRml4IGxpbmtfd2hvbGUgdXNhZ2UgZm9yIG1lc29uIDAuNTIuMAotCi1NZXNvbiAwLjUyLjAg Y2hhbmdlZCBob3cgbGlua193aG9sZSBiZWhhdmVzIGFuZCBpbiBkb2luZyBzbyBicm9rZSBvdXIK LXVzYWdlIG9mIGxpbmtfd2hvbGUgaW50ZXJuYWxseS4KLQotQSBxdWljayBnbGFuY2Ugb3ZlciBt ZXNvbmJ1aWxkL2JhY2tlbmQvbmluamFiYWNrZW5kLnB5IHNlZW1zIHRvIGNvbmZpcm0KLUNocmlz dGlhbidzIHN1c3BpY2lvbiB0aGF0IGxpbmtfd2l0aCBpcyB3aGF0IHdlIHdhbnQgZm9yIGludGVy bmFsIHVzZSwKLWFuZCBsaW5rX3dob2xlIGZvciB0aGUgZmluYWwgYmluYXJ5LgotCi1Zb3UgY2Fu IHNlZSBzb21lIG1vcmUgcmVmZXJlbmNlcyB0byB0aGlzIGFuZCBzaW1pbGFyIGlzc3VlcyBpbiB0 aGUKLWZvbGxvd2luZyBqaGJ1aWxkIGNvbW1pdDoKLWh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9H Tk9NRS9qaGJ1aWxkL2NvbW1pdC9kYmU2NzkwNDVmZjU5ODI1NzdmMjJlN2FmOGRjOGZkZmJkMWM2 MzExCi0KLUZpeGVzOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtYnVpbGRl ci9pc3N1ZXMvMTA1NwotLS0tCi0gc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkICAgICAgIHwg IDIgKy0KLSBzcmMvbGliaWRlL2NvcmUvbWVzb24uYnVpbGQgICAgICAgfCAgMiArLQotIHNyYy9s aWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQgICB8ICAyICstCi0gc3JjL2xpYmlkZS9lZGl0b3Iv bWVzb24uYnVpbGQgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQg ICAgfCAgMiArLQotIHNyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZCAgICB8ICAyICstCi0g c3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQgICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2lv L21lc29uLmJ1aWxkICAgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvbHNwL21lc29uLmJ1aWxk ICAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9wbHVnaW5zL21lc29uLmJ1aWxkICAgIHwgIDIg Ky0KLSBzcmMvbGliaWRlL3Byb2plY3RzL21lc29uLmJ1aWxkICAgfCAgMiArLQotIHNyYy9saWJp ZGUvc2VhcmNoL21lc29uLmJ1aWxkICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9zb3VyY2V2aWV3 L21lc29uLmJ1aWxkIHwgIDIgKy0KLSBzcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkICAg fCAgMiArLQotIHNyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxkICAgICB8ICAyICstCi0gc3Jj L2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3RyZWUv bWVzb24uYnVpbGQgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvdmNzL21lc29uLmJ1aWxkICAg ICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQgICAgIHwgIDIgKy0K LSBzcmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgfCAyNiArKysrKysrKysrKysrKysr KysrKysrKysrLQotIDIwIGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDIwIGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkIGIvc3Jj L2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkCi1pbmRleCBkZGFjZGMxNjIuLjFhNGZjNWQyNiAxMDA2 NDQKLS0tLSBhL3NyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9j b2RlL21lc29uLmJ1aWxkCi1AQCAtMTc1LDcgKzE3NSw3IEBAIGxpYmlkZV9jb2RlID0gc3RhdGlj X2xpYnJhcnkoJ2lkZS1jb2RlLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX2NvZGVf ZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRl X2NvZGVfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2NvZGVfZ2VuZXJhdGVkX2hlYWRlcnMsCi0g ICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfY29kZV9kZXBzLAotLSAgICAgICAgICAgbGlu a193aG9sZTogbGliaWRlX2NvZGUsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfY29k ZSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAp Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlk ZS9jb3JlL21lc29uLmJ1aWxkCi1pbmRleCAxZmE4MmZhZDkuLmJiNzVjYmYyNiAxMDA2NDQKLS0t LSBhL3NyYy9saWJpZGUvY29yZS9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9jb3JlL21l c29uLmJ1aWxkCi1AQCAtMTE3LDcgKzExNyw3IEBAIGxpYmlkZV9jb3JlID0gc3RhdGljX2xpYnJh cnkoJ2lkZS1jb3JlLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9jb3JlX3NvdXJjCi0g bGliaWRlX2NvcmVfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291 cmNlczogbGliaWRlX2NvcmVfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2NvcmVfZ2VuZXJhdGVk X2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfY29yZV9kZXBzLAotLSAg ICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2NvcmUsCi0rICAgICAgICAgICAgbGlua193aXRo OiBsaWJpZGVfY29yZSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3Jp ZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5i dWlsZCBiL3NyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQKLWluZGV4IGRmZmNhMjBjYS4u YjVlNzJkNWMwIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWlsZAot KysrIGIvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWlsZAotQEAgLTg0LDcgKzg0LDcgQEAg bGliaWRlX2RlYnVnZ2VyID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1kZWJ1Z2dlci0nICsgbGliaWRl X2FwaV92ZXJzaW9uLAotIGxpYmlkZV9kZWJ1Z2dlcl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3ko Ci0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZGVidWdnZXJfcHJpdmF0ZV9oZWFkZXJz ICsgbGliaWRlX2RlYnVnZ2VyX2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVu Y2llczogbGliaWRlX2RlYnVnZ2VyX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJp ZGVfZGVidWdnZXIsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZGVidWdnZXIsCi0g ICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAot ZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9l ZGl0b3IvbWVzb24uYnVpbGQKLWluZGV4IDI4Mzg0MjViNy4uODA4ZWQ3ODRmIDEwMDY0NAotLS0t IGEvc3JjL2xpYmlkZS9lZGl0b3IvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZWRpdG9y L21lc29uLmJ1aWxkCi1AQCAtMTA3LDcgKzEwNyw3IEBAIGxpYmlkZV9lZGl0b3IgPSBzdGF0aWNf bGlicmFyeSgnaWRlLWVkaXRvci0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfZWRpdG9y Ci0gCi0gbGliaWRlX2VkaXRvcl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAg ZGVwZW5kZW5jaWVzOiBsaWJpZGVfZWRpdG9yX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xl OiBsaWJpZGVfZWRpdG9yLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2VkaXRvciwK LSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAgICAg ICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9lZGl0b3JfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gKQot ZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZm91bmRyeS9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUv Zm91bmRyeS9tZXNvbi5idWlsZAotaW5kZXggMjI2Mzk3YzE1Li5kNDg3OGFhMTEgMTAwNjQ0Ci0t LS0gYS9zcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZm91 bmRyeS9tZXNvbi5idWlsZAotQEAgLTE3OCw3ICsxNzgsNyBAQCBsaWJpZGVfZm91bmRyeSA9IHN0 YXRpY19saWJyYXJ5KCdpZGUtZm91bmRyeS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIAotIGxp YmlkZV9mb3VuZHJ5X2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRl bmNpZXM6IGxpYmlkZV9mb3VuZHJ5X2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJp ZGVfZm91bmRyeSwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9mb3VuZHJ5LAotICAg aW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICAgICAgICAg ICAgICAgc291cmNlczogbGliaWRlX2ZvdW5kcnlfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gKQotZGlm ZiAtLWdpdCBhL3NyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvZ3Jl ZXRlci9tZXNvbi5idWlsZAotaW5kZXggMzk2OGNhNDFlLi4xMjFkNDk4ZDAgMTAwNjQ0Ci0tLS0g YS9zcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZ3JlZXRl ci9tZXNvbi5idWlsZAotQEAgLTgzLDcgKzgzLDcgQEAgbGliaWRlX2dyZWV0ZXIgPSBzdGF0aWNf bGlicmFyeSgnaWRlLWdyZWV0ZXItJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfZ3Jl ZXRlcl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBs aWJpZGVfZ3JlZXRlcl9wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVfZ3JlZXRlcl9nZW5lcmF0ZWRf aGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9ncmVldGVyX2RlcHMsCi0t ICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfZ3JlZXRlciwKLSsgICAgICAgICAgICBsaW5r X3dpdGg6IGxpYmlkZV9ncmVldGVyLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9k aXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2d1aS9tZXNv bi5idWlsZCBiL3NyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkCi1pbmRleCA5ZjQ2OWQyZmEuLjk0 MzExMjgyZiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkCi0rKysgYi9z cmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZAotQEAgLTIwNCw3ICsyMDQsNyBAQCBsaWJpZGVfZ3Vp ID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1ndWktJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRl X2d1aV9zb3VyY2VzLAotIGxpYmlkZV9ndWlfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAg ICAgICAgICAgICAgc291cmNlczogbGliaWRlX2d1aV9wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVf Z3VpX2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2d1 aV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2d1aSwKLSsgICAgICAgICAg ICBsaW5rX3dpdGg6IGxpYmlkZV9ndWksCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRl X2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvaW8vbWVz b24uYnVpbGQgYi9zcmMvbGliaWRlL2lvL21lc29uLmJ1aWxkCi1pbmRleCBiNWI2ZjRjNjguLmY0 OGIzYmQ4ZCAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvaW8vbWVzb24uYnVpbGQKLSsrKyBiL3Ny Yy9saWJpZGUvaW8vbWVzb24uYnVpbGQKLUBAIC02Myw3ICs2Myw3IEBAIGxpYmlkZV9pbyA9IHN0 YXRpY19saWJyYXJ5KCdpZGUtaW8tJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX2lvX3Nv dXJjZXMsCi0gCi0gbGliaWRlX2lvX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAg ICBkZXBlbmRlbmNpZXM6IFsgbGliZ2lvX2RlcCwgbGliaWRlX2NvcmVfZGVwLCBsaWJpZGVfdGhy ZWFkaW5nX2RlcCBdLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2lvLAotKyAgICAg ICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2lvLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5j bHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2xz cC9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvbHNwL21lc29uLmJ1aWxkCi1pbmRleCAyM2FiYTc0 ZmEuLmM4MTQwY2EwMyAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvbHNwL21lc29uLmJ1aWxkCi0r KysgYi9zcmMvbGliaWRlL2xzcC9tZXNvbi5idWlsZAotQEAgLTg0LDcgKzg0LDcgQEAgbGliaWRl X2xzcCA9IHN0YXRpY19saWJyYXJ5KCdpZGUtbHNwLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxp YmlkZV9sc3Bfc291cmNlcywKLSBsaWJpZGVfbHNwX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgK LSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9sc3BfcHJpdmF0ZV9oZWFkZXJzLAotICAg ICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2xzcF9kZXBzLAotLSAgICAgICAgICAgbGlua193 aG9sZTogbGliaWRlX2xzcCwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9sc3AsCi0g ICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAot ZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUv cGx1Z2lucy9tZXNvbi5idWlsZAotaW5kZXggYTMzYzUyOGM5Li5mZmY1OTlkYjMgMTAwNjQ0Ci0t LS0gYS9zcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvcGx1 Z2lucy9tZXNvbi5idWlsZAotQEAgLTUxLDcgKzUxLDcgQEAgbGliaWRlX3BsdWdpbnMgPSBzdGF0 aWNfbGlicmFyeSgnaWRlLXBsdWdpbnMtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVf cGx1Z2luc19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2Vz OiBsaWJpZGVfcGx1Z2luc19wcml2YXRlX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVz OiBsaWJpZGVfcGx1Z2luc19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3Bs dWdpbnMsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfcGx1Z2lucywKLSAgIGluY2x1 ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0t Z2l0IGEvc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvcHJvamVj dHMvbWVzb24uYnVpbGQKLWluZGV4IDQ2M2ZmMDZiYy4uM2NjOTcyNWM2IDEwMDY0NAotLS0tIGEv c3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9wcm9qZWN0 cy9tZXNvbi5idWlsZAotQEAgLTc5LDcgKzc5LDcgQEAgbGliaWRlX3Byb2plY3RzID0gc3RhdGlj X2xpYnJhcnkoJ2lkZS1wcm9qZWN0cy0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfcHIK LSBsaWJpZGVfcHJvamVjdHNfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAg ICAgc291cmNlczogbGliaWRlX3Byb2plY3RzX3ByaXZhdGVfaGVhZGVycywKLSAgICAgICAgICBk ZXBlbmRlbmNpZXM6IGxpYmlkZV9wcm9qZWN0c19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9s ZTogbGliaWRlX3Byb2plY3RzLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3Byb2pl Y3RzLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAot ICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZCBiL3NyYy9s aWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkCi1pbmRleCBlNWIzYjQzYWIuLmNmNzNhYTkxZCAxMDA2 NDQKLS0tLSBhL3NyYy9saWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRl L3NlYXJjaC9tZXNvbi5idWlsZAotQEAgLTUxLDcgKzUxLDcgQEAgbGliaWRlX3NlYXJjaCA9IHN0 YXRpY19saWJyYXJ5KCdpZGUtc2VhcmNoLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9z ZWFyY2gKLSAKLSBsaWJpZGVfc2VhcmNoX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAg ICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9zZWFyY2hfZGVwcywKLS0gICAgICAgICAgIGxpbmtf d2hvbGU6IGxpYmlkZV9zZWFyY2gsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfc2Vh cmNoLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAot ICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQgYi9z cmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQKLWluZGV4IGM0YmExMmQxZi4uOTk2NDEy OThiIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkCi0rKysg Yi9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQKLUBAIC0xNTgsNyArMTU4LDcgQEAg bGliaWRlX3NvdXJjZXZpZXcgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXNvdXJjZXZpZXctJyArIGxp YmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfc291cmNldmlld19kZXAgPSBkZWNsYXJlX2RlcGVu ZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfc291cmNldmlld19wcml2YXRl X2hlYWRlcnMgKyBsaWJpZGVfc291cmNldmlld19nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAg ICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9zb3VyY2V2aWV3X2RlcHMsCi0tICAgICAgICAgICBsaW5r X3dob2xlOiBsaWJpZGVfc291cmNldmlldywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlk ZV9zb3VyY2V2aWV3LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rvcmll cygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1 aWxkIGIvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5idWlsZAotaW5kZXggMWQ3YzlmNzI3Li42 YWZmY2FlMTQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkCi0r KysgYi9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkCi1AQCAtOTMsNyArOTMsNyBAQCBs aWJpZGVfdGVybWluYWwgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRlcm1pbmFsLScgKyBsaWJpZGVf YXBpX3ZlcnNpb24sCi0gbGliaWRlX3Rlcm1pbmFsX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgK LSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV90ZXJtaW5hbF9nZW5lcmF0ZWRfaGVhZGVy cywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90ZXJtaW5hbF9kZXBzLAotLSAgICAg ICAgICAgbGlua193aG9sZTogbGliaWRlX3Rlcm1pbmFsLAotKyAgICAgICAgICAgIGxpbmtfd2l0 aDogbGliaWRlX3Rlcm1pbmFsLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJl Y3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3RoZW1lcy9tZXNv bi5idWlsZCBiL3NyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxkCi1pbmRleCA5ZDZjOGUyNDcu LmQ4ODNhNGI4NiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxkCi0r KysgYi9zcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZAotQEAgLTQ2LDcgKzQ2LDcgQEAgbGli aWRlX3RoZW1lcyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtdGhlbWVzLScgKyBsaWJpZGVfYXBpX3Zl cnNpb24sCi0gbGliaWRlX3RoZW1lc19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAg ICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdGhlbWVzX3Jlc291cmNlc1sxXSwKLSAgICAgICAgICBk ZXBlbmRlbmNpZXM6IGxpYmlkZV90aGVtZXNfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6 IGxpYmlkZV90aGVtZXMsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfdGhlbWVzLAot ICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAK LWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZCBiL3NyYy9saWJp ZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkCi1pbmRleCBkMzhkZGZiNjQuLmQ2MjhiZTJmZiAxMDA2 NDQKLS0tLSBhL3NyYy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGli aWRlL3RocmVhZGluZy9tZXNvbi5idWlsZAotQEAgLTY2LDcgKzY2LDcgQEAgbGliaWRlX3RocmVh ZGluZyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtdGhyZWFkaW5nLScgKyBsaWJpZGVfYXBpX3ZlcnNp b24sIGxpYmlkZV8KLSBsaWJpZGVfdGhyZWFkaW5nX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgK LSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV90aHJlYWRpbmdfcHJpdmF0ZV9oZWFkZXJz LAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3RocmVhZGluZ19kZXBzLAotLSAgICAg ICAgICAgbGlua193aG9sZTogbGliaWRlX3RocmVhZGluZywKLSsgICAgICAgICAgICBsaW5rX3dp dGg6IGxpYmlkZV90aHJlYWRpbmcsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2Rp cmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdHJlZS9tZXNv bi5idWlsZCBiL3NyYy9saWJpZGUvdHJlZS9tZXNvbi5idWlsZAotaW5kZXggN2I5OTIyODI4Li41 YTU5MTEwNmMgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQKLSsrKyBi L3NyYy9saWJpZGUvdHJlZS9tZXNvbi5idWlsZAotQEAgLTYxLDcgKzYxLDcgQEAgbGliaWRlX3Ry ZWUgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRyZWUtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGli aWRlX3RyZWVfc291cmMKLSBsaWJpZGVfdHJlZV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0g ICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdHJlZV9wcml2YXRlX2hlYWRlcnMsCi0gICAg ICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdHJlZV9kZXBzLAotLSAgICAgICAgICAgbGlua193 aG9sZTogbGliaWRlX3RyZWUsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfdHJlZSwK LSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0g Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3Zj cy9tZXNvbi5idWlsZAotaW5kZXggNmIwZTE1N2M0Li5jNzYyYWZiNjQgMTAwNjQ0Ci0tLS0gYS9z cmMvbGliaWRlL3Zjcy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVp bGQKLUBAIC04NCw3ICs4NCw3IEBAIGxpYmlkZV92Y3MgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXZj cy0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIAotIGxpYmlkZV92Y3NfZGVwID0gZGVjbGFyZV9k ZXBlbmRlbmN5KAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3Zjc19kZXBzLAotLSAg ICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3ZjcywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6 IGxpYmlkZV92Y3MsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVz KCcuJyksCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdmNzX2dlbmVyYXRlZF9oZWFk ZXJzLAotICkKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZCBiL3Ny Yy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxkCi1pbmRleCBlMTc2N2FlNDYuLmZjZTQ3N2IzNiAx MDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGli aWRlL3dlYmtpdC9tZXNvbi5idWlsZAotQEAgLTM5LDcgKzM5LDcgQEAgbGliaWRlX3dlYmtpdCA9 IHN0YXRpY19saWJyYXJ5KCdpZGUtd2Via2l0LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlk ZV93ZWJraXQKLSAKLSBsaWJpZGVfd2Via2l0X2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAg ICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV93ZWJraXRfZGVwcywKLS0gICAgICAgICAgIGxp bmtfd2hvbGU6IGxpYmlkZV93ZWJraXQsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVf d2Via2l0LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicp LAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3dlYmtpdF9nZW5lcmF0ZWRfaGVhZGVy cywKLSApCi1kaWZmIC0tZ2l0IGEvc3JjL21lc29uLmJ1aWxkIGIvc3JjL21lc29uLmJ1aWxkCi1p bmRleCAzZWI5YmE1MzUuLjExM2ExNDJhZCAxMDA2NDQKLS0tLSBhL3NyYy9tZXNvbi5idWlsZAot KysrIGIvc3JjL21lc29uLmJ1aWxkCi1AQCAtNDgsNiArNDgsMzAgQEAgZ25vbWVfYnVpbGRlcl9k ZXBzID0gWwotICAgbGliaWRlX3RyZWVfZGVwLAotIF0KLSAKLStnbm9tZV9idWlsZGVyX3N0YXRp YyA9IFsKLSsgIGxpYmlkZV9jb2RlLAotKyAgbGliaWRlX2NvcmUsCi0rICBsaWJpZGVfZGVidWdn ZXIsCi0rICBsaWJpZGVfZWRpdG9yLAotKyAgbGliaWRlX2ZvdW5kcnksCi0rICBsaWJpZGVfZ3Jl ZXRlciwKLSsgIGxpYmlkZV9ndWksCi0rICBsaWJpZGVfaW8sCi0rICBsaWJpZGVfbHNwLAotKyAg bGliaWRlX3BsdWdpbnMsCi0rICBsaWJpZGVfcHJvamVjdHMsCi0rICBsaWJpZGVfc2VhcmNoLAot KyAgbGliaWRlX3NvdXJjZXZpZXcsCi0rICBsaWJpZGVfdGVybWluYWwsCi0rICBsaWJpZGVfdGhl bWVzLAotKyAgbGliaWRlX3RocmVhZGluZywKLSsgIGxpYmlkZV90cmVlLAotKyAgbGliaWRlX3Zj cywKLSsgIGxpYmlkZV93ZWJraXQsCi0rCi0rICBwbHVnaW5zLAotK10KLSsKLSBpZiBsaWJzeXNw cm9mX2NhcHR1cmUuZm91bmQoKQotICAgZ25vbWVfYnVpbGRlcl9kZXBzICs9IGxpYnN5c3Byb2Zf Y2FwdHVyZQotIGVuZGlmCi1AQCAtNzcsNyArMTAxLDcgQEAgZ25vbWVfYnVpbGRlciA9IGV4ZWN1 dGFibGUoJ2dub21lLWJ1aWxkZXInLCAnbWFpbi5jJywgJ2J1Zy1idWRkeS5jJywKLSAgICAgICAg ICAgICBjX2FyZ3M6IGxpYmlkZV9hcmdzICsgZXhlX2NfYXJncyArIHJlbGVhc2VfYXJncywKLSAg ICAgICAgICBsaW5rX2FyZ3M6IGV4ZV9saW5rX2FyZ3MsCi0gICAgICAgICAgICAgICAgcGllOiB0 cnVlLAotLSAgICAgICAgbGlua193aG9sZTogcGx1Z2lucywKLSsgICAgICAgIGxpbmtfd2hvbGU6 IGdub21lX2J1aWxkZXJfc3RhdGljLAotICAgICAgaW5zdGFsbF9ycGF0aDogcGtnbGliZGlyX2Fi cywKLSAgICAgICBkZXBlbmRlbmNpZXM6IGdub21lX2J1aWxkZXJfZGVwcywKLSApCi0tLSAKLTIu MjQuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUgYi9zcmNw a2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKaW5kZXggOGM4YzAxNWQ4YTMuLmFkMmQ0YjZkMDNh IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ25vbWUtYnVpbGRlcicKIHBrZ25hbWU9Z25vbWUtYnVpbGRlcgotdmVyc2lvbj0zLjM0 LjEKLXJldmlzaW9uPTYKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1t ZXNvbgogYnVpbGRfaGVscGVyPXFlbXUKIGNvbmZpZ3VyZV9hcmdzPSItRHdpdGhfd2Via2l0PXRy dWUgLUR3aXRoX3N5c3Byb2Y9dHJ1ZSAtRGhlbHA9dHJ1ZSIKQEAgLTExLDE1ICsxMSwxNSBAQCBt YWtlZGVwZW5kcz0iY2Fpcm8tZGV2ZWwgY2xhbmcgZGV2aGVscC1kZXZlbCBlbmNoYW50Mi1kZXZl bCBmbGF0cGFrLWRldmVsCiAgZ3NwZWxsLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsIGd0aysz LWRldmVsIGpzb24tZ2xpYi1kZXZlbCBqc29ucnBjLWdsaWItZGV2ZWwKICBsaWJkYXp6bGUtZGV2 ZWwgbGliZ2l0Mi1nbGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlib3N0cmVlLWRldmVsIGxpYnBl YXMtZGV2ZWwKICBsaWJ4bWwyLWRldmVsIHRlbXBsYXRlLWdsaWItZGV2ZWwgdmFsYS1kZXZlbCB2 dGUzLWRldmVsIHdlYmtpdDJndGstZGV2ZWwKLSBweXRob24zLWdvYmplY3QtZGV2ZWwgc3lzcHJv Zi1kZXZlbCBnbGFkZTMtZGV2ZWwiCisgcHl0aG9uMy1nb2JqZWN0LWRldmVsIHN5c3Byb2YtZGV2 ZWwgZ2xhZGUzLWRldmVsIGxpYnBvcnRhbC1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11 dGlscyBmbGF0cGFrLWJ1aWxkZXIgcHl0aG9uMy1seG1sIGRldmhlbHAgcHl0aG9uMy1nb2JqZWN0 Igogc2hvcnRfZGVzYz0iSURFIGZvciBHTk9NRSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxn b3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9CdWlsZGVyIgotY2hhbmdlbG9nPSJodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtYnVpbGRlci9yYXcvZ25vbWUtYnVpbGRl ci0zLTM0L05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9n bm9tZS1idWlsZGVyL3Jhdy9nbm9tZS1idWlsZGVyLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPTBiNmU0NjEwNTdlYTgxNTFlODA1MjRjMGVhN2VmMWNiOTQ4ZTky YWZkYTlkYzZiZDMzYWUzMzkyZjA0NTAxYTQKK2NoZWNrc3VtPWQ2ODk1MzhiYWY4ZWZiMWFjZjdl YTYwNzI2OGIxYWFhMTQxOGQ1NTE3ZDkyZDRmNjk0NmEzZGJmODE0ZWFlNTUKIHBhdGNoX2FyZ3M9 Ii1OcDEiCiAKIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgpAQCAtMjgsMyArMjgsOCBA QCBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KIAkJTElCUys9IiAtbGV4ZWNpbmZvIgog CQk7OwogZXNhYworCitwcmVfY29uZmlndXJlKCkgeworCSMgdGhpcyB0ZXN0IG5lZWRzIFgKKwl2 c2VkIC1pICJzL3Rlc3QoJ3Rlc3QtdGV4dC1pdGVyJy8jJi8iIHNyYy90ZXN0cy9tZXNvbi5idWls ZAorfQoKRnJvbSBhNzY0ZDYwMjUxMGNjYjVlYWNlNWIzOGViMzE5ZjZmNzAwNTBiOTcwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMToyMTo1MyArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDk1LzEwMl0gcmV0cm8tZ3RrOiB1cGRhdGUgdG8gMS4wLjAKCi0tLQogY29tbW9uL3NobGli cyAgICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9yZXRyby1ndGsvdGVtcGxhdGUgfCAxMiAr KysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBh NmE0MjE1NTZmNS4uZGMwYzU4NzQ5NzYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIv Y29tbW9uL3NobGlicwpAQCAtMzU3NCw3ICszNTc0LDcgQEAgbGlid2xyb290cy5zby42IHdscm9v dHMtMC4xMS4wXzEKIGxpYmJhc2VlbmNvZGUuc28uMSBsaWJiYXNlZW5jb2RlLTEuMC45XzEKIGxp YmNvdHAuc28uMTIgbGliY290cC0xLjIuMV8xCiBsaWJ1bmFyci5zby4xIGxpYnVuYXJyLTEuMC4x XzEKLWxpYnJldHJvLWd0ay0wLjE0LnNvLjAgcmV0cm8tZ3RrLTAuMTYuMF8xCitsaWJyZXRyby1n dGstMS5zby4wIHJldHJvLWd0ay0xLjAuMF8xCiBsaWJtYW5ldHRlLTAuMi5zby4wIGxpYm1hbmV0 dGUtMC4yLjFfMQogbGliZm10LnNvLjYgZm10LTUuMi4xXzEKIGxpYmVsZW1lbnRhcnktY2FsZW5k YXIuc28uMCBsaWJpby5lbGVtZW50YXJ5LmNhbGVuZGFyLTQuMi4zXzEKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcmV0cm8tZ3RrL3RlbXBsYXRlIGIvc3JjcGtncy9yZXRyby1ndGsvdGVtcGxhdGUKaW5k ZXggZGEwYWVjY2QyNDMuLjA0YWQ5Y2YwNTFiIDEwMDY0NAotLS0gYS9zcmNwa2dzL3JldHJvLWd0 ay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3JldHJvLWd0ay90ZW1wbGF0ZQpAQCAtMSwyMiArMSwy OCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncmV0cm8tZ3RrJwogcGtnbmFtZT1yZXRyby1ndGsK LXZlcnNpb249MC4xOC4wCit2ZXJzaW9uPTEuMC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1t ZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iJCh2b3B0X2Jvb2wgZ2ly IGludHJvc3BlY3Rpb24pIgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25maWcg dmFsYSIKLW1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBsaWJlcG94eS1kZXZlbCBsaWJnbGliLWRl dmVsIHB1bHNlYXVkaW8tZGV2ZWwiCittYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGliZXBveHkt ZGV2ZWwgbGliZ2xpYi1kZXZlbCBwdWxzZWF1ZGlvLWRldmVsCisgbGlic2FtcGxlcmF0ZS1kZXZl bCIKIHNob3J0X2Rlc2M9IkdUSysgTGlicmV0cm8gZnJvbnRlbmQgZnJhbWV3b3JrIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0z LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3Jl dHJvLWd0ayIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWNlZGI4ODExNzRjNDJl ODg5NTRlZWNiNWRmYWM3ODk1NGExOTgxYWFlZWJkYzg5MThjODg2MWM2YzA4YTQ1MTIKK2NoZWNr c3VtPTVjNzQzN2E3NjgxMjVhNmY2MjdkMDYzZWQ4OTBlOTMyOGQ0MTA4ZGI1MmE2ZDVhYTEwZTUy ZDJmMjViYjg4ZGIKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0 PSJnaXIiCiAKKyMgbmVlZHMgWAorZG9fY2hlY2soKSB7CisJOgorfQorCiByZXRyby1ndGstZGV2 ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJsaWJnbGliLWRldmVsICR7c291cmNlcGtnfT49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMi CgpGcm9tIGQ0MTkzYzI1MzFiZTdhZTVkOTE1MWVhYzljNTFlYmI5Y2IzNTAxYTMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBUaHUsIDE3IFNlcCAyMDIwIDAxOjI2OjAxICswMjAwClN1YmplY3Q6IFtQQVRDSCAw OTYvMTAyXSBnbm9tZS1nYW1lczogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21l LWdhbWVzL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1nYW1lcy90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZ2FtZXMvdGVtcGxhdGUKaW5kZXggMjczMWRmMGY2ZDkuLjU4 ZjMxMTU2ZDA2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWdhbWVzL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ25vbWUtZ2FtZXMvdGVtcGxhdGUKQEAgLTEsMTUgKzEsMTUgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2dub21lLWdhbWVzJwogcGtnbmFtZT1nbm9tZS1nYW1lcwotdmVyc2lvbj0z LjM0LjAKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9z dG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgcGtnLWNvbmZpZyB2YWxhLWRldmVsIgog bWFrZWRlcGVuZHM9ImxpYmFyY2hpdmUtZGV2ZWwgZ3JpbG8tZGV2ZWwgZ3RrKzMtZGV2ZWwgbGli Z2xpYi1kZXZlbAogIGxpYm1hbmV0dGUtZGV2ZWwgbGlicnN2Zy1kZXZlbCBsaWJzb3VwLWRldmVs IGxpYnhtbDItZGV2ZWwgcmV0cm8tZ3RrLWRldmVsCi0gc3FsaXRlLWRldmVsIHRyYWNrZXItZGV2 ZWwgbGliaGFuZHktZGV2ZWwiCisgc3FsaXRlLWRldmVsIHRyYWNrZXItZGV2ZWwgbGliaGFuZHkx LWRldmVsIgogc2hvcnRfZGVzYz0iQnJvd3NlIGFuZCBwbGF5IHlvdXIgZ2FtZXMiCiBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvR2FtZXMi CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wZmQ3MjQ2ZDYxY2UyMWMwZmMxMjFj NTQ4ODA1MWE1ODY2YzE5ZGUyYzI4MzVhZDdmZTRiMThjMDY2MjdkY2JhCitjaGVja3N1bT01Yzg2 OGZkNmViMGI4ZDIzYjk5NTAzOTYzMzA0M2U5MGQ4ZDkzODU2ZDMxNTgzMmRlM2EzMTVkN2IxZTU0 ZTQ4CgpGcm9tIDA1NzMzMTM1Y2IxM2JlYmM3ODk4MmRjYTlkMmVmMTk3NDg3ZmIyZDAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDIzOjIyOjM0ICswMjAwClN1YmplY3Q6IFtQQVRD SCAwOTcvMTAyXSBnbm9tZS1wYW5lbDogdXBkYXRlIHRvIDMuMzcuMQoKLS0tCiBjb21tb24vc2hs aWJzICAgICAgICAgICAgICAgIHwgMiArLQogc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZSB8 IDYgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBkYzBj NTg3NDk3Ni4uZTYwNjdiOWM1ODkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29t bW9uL3NobGlicwpAQCAtNTY0LDcgKzU2NCw3IEBAIGxpYnBhY2thZ2VraXQtZ2xpYjIuc28uMTgg UGFja2FnZUtpdC0xLjEuMTJfMQogbGlicHNsLnNvLjUgbGlicHNsLTAuMjAuMl8xCiBsaWJzb3Vw LTIuNC5zby4xIGxpYnNvdXAtMi4zNC4wXzEKIGxpYnNvdXAtZ25vbWUtMi40LnNvLjEgbGlic291 cC1nbm9tZS0yLjM0LjBfMQotbGlicGFuZWwtYXBwbGV0LnNvLjMgZ25vbWUtcGFuZWwtMy4zMC4w XzEKK2xpYmdub21lLXBhbmVsLnNvLjAgZ25vbWUtcGFuZWwtMy4zNy4xXzEKIGxpYnVuaW51bS5z by41IGxpYnVuaW51bS0yLjdfMQogbGlidW5pcXVlLTMuMC5zby4wIGxpYnVuaXF1ZS0yLjkxLjRf MQogbGlid2Via2l0Mmd0ay00LjAuc28uMzcgd2Via2l0Mmd0ay0yLjYuMl8xCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1w bGF0ZQppbmRleCA3MGYyM2I4YjU1MS4uMjRkOWQyYjllYjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Z25vbWUtcGFuZWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXBhbmVsJwogcGtnbmFt ZT1nbm9tZS1wYW5lbAotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTMKK3ZlcnNpb249My4zNy4x CityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0i YXhfY3Zfem9uZWluZm9fdHpkaXI9L3Vzci9zaGFyZS96b25laW5mbyIKIGhvc3RtYWtlZGVwZW5k cz0iZ2V0dGV4dC1kZXZlbCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB0emRhdGEgZ2V0 dGV4dCIKQEAgLTE0LDcgKzE0LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdGREwtMS4xLW9yLWxh dGVyLCBMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L1Byb2plY3RzL0dub21lUGFuZWwiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1h NmJjMDI1NTI1MmVlYjRiOTY0YmNiZTU1ZmQ3OTA4YjY5ZjkxNGMwNjJjNWVjOGRmZjVhYzAyNjJk MjliOTBkCitjaGVja3N1bT0xZDU5OGZkNjg5MzNlNzYwMThmMmZiMTE2YTc4NzFjYmMwMDMzYzFm MTA5YmZiZmUwOGExZWNiNTYwNjdkMTUyCiBwYXRjaF9hcmdzPSItTnAxIgogCiBnbm9tZS1wYW5l bC1kZXZlbF9wYWNrYWdlKCkgewoKRnJvbSA5M2VhMTU5ZTI3MWU0Nzk3YzI2ZjJkYjk3ZmRiNWY2 NmQ5Yjg0ZjkxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAxNCBBdWcgMjAyMCAyMzoyNDo1MSArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDk4LzEwMl0gbWV0YWNpdHk6IHVwZGF0ZSB0byAzLjM3LjEKCi0t LQogc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZSB8IDExICsrKysrLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvbWV0YWNpdHkvdGVtcGxhdGUgYi9zcmNwa2dzL21ldGFjaXR5L3RlbXBsYXRlCmluZGV4IDVh YTIzMTQ5MmU3Li5hNTQ5ZGQ3YTU5NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9tZXRhY2l0eS90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL21ldGFjaXR5L3RlbXBsYXRlCkBAIC0xLDE4ICsxLDE3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdtZXRhY2l0eScKIHBrZ25hbWU9bWV0YWNpdHkKLXJldmVydHM9 IjMuMzcuMV8xIgotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTEKK3ZlcnNpb249My4zNy4xCity ZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9Imdl dHRleHQgZ2V0dGV4dC1kZXZlbCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB5ZWxwLXRv b2xzIHplbml0eSIKIG1ha2VkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVs IGd0ayszLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJndG9wLWRl dmVsIGxpYlNNLWRldmVsIGxpYlhjb21wb3NpdGUtZGV2ZWwgbGliWGRhbWFnZS1kZXZlbAotIGxp YlhmaXhlcy1kZXZlbCBsaWJYaW5lcmFtYS1kZXZlbCBsaWJYcmVuZGVyLWRldmVsIGxpYlgxMS1k ZXZlbCBwYW5nby1kZXZlbAotIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsIFZ1bGthbi1IZWFk ZXJzIHZ1bGthbi1sb2FkZXIiCisgbGliWGZpeGVzLWRldmVsIGxpYlhpbmVyYW1hLWRldmVsIGxp YlhyZW5kZXItZGV2ZWwgbGliWDExLWRldmVsIGxpYlhyZXMtZGV2ZWwKKyBwYW5nby1kZXZlbCBz dGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbCBWdWxrYW4tSGVhZGVycyB2dWxrYW4tbG9hZGVyIgog ZGVwZW5kcz0iemVuaXR5Igogc2hvcnRfZGVzYz0iV2luZG93IE1hbmFnZXIgZm9yIHRoZSBHTk9N RSBlbnZpcm9ubWVudCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0 bGFiLmdub21lLm9yZy9HTk9NRS9tZXRhY2l0eSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPTMxYzdkMTA0NWMzOTBhZmIzYmY0MDU3MzViMGIyNmM0NTkxOTdjYmY0M2FmMzdjNDY5 ZWI4OTE4Y2UzYTQ1M2QKK2NoZWNrc3VtPTgwZDZmM2Q5NWE0MzI4ZmIyNmQwYTY0NzFmNTc1Yjc0 MmIzNmI4ZjI3MjFmOGYzYzE4MDcxOTdmYTkwMGExMjYKCkZyb20gOWFlNmRlNzc1N2M4NzU3Y2Qy YjMxODRiYTFmMzMwMzllNWJkMTBiOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQgQXVnIDIwMjAg MjM6NDA6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5OS8xMDJdIGdub21lLWZsYXNoYmFjazog dXBkYXRlIHRvIDMuMzcuMwoKLS0tCiAuLi4vZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZs YXNoYmFjay5wYW0gfCAgNiArKysrCiBzcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZSAg ICAgICAgICAgICAgfCAzNCArKysrKysrKysrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMx IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9nbm9tZS1mbGFzaGJhY2svZmlsZXMvZ25vbWUtZmxhc2hiYWNrLnBhbQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0gYi9zcmNw a2dzL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNzc2ZjBiMzYzMgotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0KQEAg LTAsMCArMSw2IEBACisjJVBBTS0xLjAKK2F1dGggICAgIGluY2x1ZGUgIHN5c3RlbS1hdXRoCith dXRoICAgICBvcHRpb25hbCBwYW1fZ25vbWVfa2V5cmluZy5zbworYWNjb3VudCAgaW5jbHVkZSAg c3lzdGVtLWF1dGgKK3Bhc3N3b3JkIGluY2x1ZGUgIHN5c3RlbS1hdXRoCitzZXNzaW9uICBpbmNs dWRlICBzeXN0ZW0tYXV0aApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svdGVt cGxhdGUgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZQppbmRleCBkMzIxMjBjYWI2 Zi4uYTA1M2E3OGFlYjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3RlbXBsYXRlCkBAIC0xLDIwICsxLDM2 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1mbGFzaGJhY2snCiBwa2duYW1lPWdub21l LWZsYXNoYmFjawotdmVyc2lvbj0zLjM0LjIKK3ZlcnNpb249My4zNy4zCiByZXZpc2lvbj0xCiBi dWlsZF9oZWxwZXI9Z2lyCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCi1jb25maWd1cmVfYXJn cz0iLS1lbmFibGUtY29tcGlsZS13YXJuaW5ncz1taW5pbXVtIgotaG9zdG1ha2VkZXBlbmRzPSJw a2ctY29uZmlnIGF1dG9tYWtlIGdsaWItZGV2ZWwgZ2V0dGV4dCIKLW1ha2VkZXBlbmRzPSJndGsr My1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsCi0gbGliZ2xpYi1kZXZlbCBn ZGstcGl4YnVmLWRldmVsIHVwb3dlci1kZXZlbCBpYnVzLWRldmVsIHBvbGtpdC1kZXZlbAotIHB1 bHNlYXVkaW8tZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGlieGNiLWRldmVsIGxpYlgxMS1kZXZl bCBwYW5nby1kZXZlbAotIGxpYnhrYmZpbGUtZGV2ZWwgZ25vbWUtYmx1ZXRvb3RoLWRldmVsIGdu b21lLWRlc2t0b3AtZGV2ZWwiCitjb25maWd1cmVfYXJncz0iLS13aXRoLWNvbXBpei1zZXNzaW9u IC0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIKK2hvc3RtYWtlZGVwZW5kcz0icGtn LWNvbmZpZyBnZXR0ZXh0IGdldHRleHQtZGV2ZWwgYXV0b21ha2UgbGlidG9vbCBnbGliLWRldmVs IgorbWFrZWRlcGVuZHM9InBhbS1kZXZlbCBlbG9naW5kLWRldmVsIHVwb3dlci1kZXZlbCBpYnVz LWRldmVsIHBvbGtpdC1kZXZlbAorIHB1bHNlYXVkaW8tZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwg bGlieGNiLWRldmVsIGxpYlgxMS1kZXZlbCBsaWJ4a2JmaWxlLWRldmVsCisgbGliY29tcGl6Y29u ZmlnLWRldmVsIGxpYmdsaWItZGV2ZWwgcGFuZ28tZGV2ZWwgZ3RrKzMtZGV2ZWwgZ2RrLXBpeGJ1 Zi1kZXZlbAorIGdkbS1kZXZlbCBnbm9tZS1ibHVldG9vdGgtZGV2ZWwgZ25vbWUtZGVza3RvcC1k ZXZlbCBnbm9tZS1wYW5lbC1kZXZlbAorIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwi CiBkZXBlbmRzPSJnbm9tZS1ibHVldG9vdGggZ25vbWUtc2Vzc2lvbiBnbm9tZS1zZXR0aW5ncy1k YWVtb24KLSBnbm9tZS1wYW5lbCBnbm9tZS10aGVtZXMtc3RhbmRhcmQgbWV0YWNpdHkiCisgZ25v bWUtcGFuZWwgZ25vbWUtdGhlbWVzLWV4dHJhIG1ldGFjaXR5Igogc2hvcnRfZGVzYz0iR05PTUUg MyBzZXNzaW9uIHdpdGggc2ltaWxhciB1c2VyIGV4cGVyaWVuY2UgdG8gdGhlIEdOT01FIDIueCBz ZXJpZXMiCiBtYWludGFpbmVyPSJzaGl6b25pYyA8cmVhbHRpYXpAZ21haWwuY29tPiIKIGxpY2Vu c2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Q cm9qZWN0cy9Hbm9tZUZsYXNoYmFjayIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25h bWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTNiZTY1Mzg4Y2QyYzhmMzk3NDFiY2MwNWRhODdlZjQwMDM1MTgzYTlhMzk1MDJkNjc2OTYyNDJj MmFlYjQ2OWMKK2NoZWNrc3VtPTQ2ZDQ4ZDY4NzQ2NDZkMTJlYzVlYmM2MjIxNTg0NTZkYjFjZWVh ZjQ5MjRiZDFmYzhiZjU5Y2JhYWZhMWUxYzIKKworcG9zdF9leHRyYWN0KCkgeworCXZzZWQgLWkg J3MvbGliY29tcGl6Y29uZmlnID49IDBcLjlcLjE0XC4wL2xpYmNvbXBpemNvbmZpZyA+PSAwLjgu MTYuMC8nIFwKKwkJY29uZmlndXJlLmFjCit9CisKK3ByZV9jb25maWd1cmUoKSB7CisJYXV0b3Jl Y29uZiAtaWYKK30KKworcG9zdF9pbnN0YWxsKCkgeworCXZpbnN0YWxsICR7RklMRVNESVJ9L2du b21lLWZsYXNoYmFjay5wYW0gNjQ0IC9ldGMvcGFtLmQgZ25vbWUtZmxhc2hiYWNrCisJdnNlZCAt aSAtZSAicy8gLS1zeXN0ZW1kLy9nIiBcCisJCSR7REVTVERJUn0vdXNyL2xpYmV4ZWMvZ25vbWUt Zmxhc2hiYWNrLXtjb21waXosbWV0YWNpdHl9Cit9CgpGcm9tIGZmYWIzZjlmMTlkZjA5ZDg0MGY1 MGVmNzM2ZTE2OWQ5MzFhNGYzZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUdWUsIDE4IEF1ZyAyMDIwIDA1 OjM1OjA2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMDAvMTAyXSBidWRnaWUtZGVza3RvcDogcmVi dWlsZCBmb3IgbXV0dGVyLTcKCltjaSBza2lwXQotLS0KIC4uLi9idWRnaWUtZGVza3RvcC9wYXRj aGVzL2FwcHN5cy1idWlsZC5wYXRjaCB8ICAgIDExICsKIC4uLi9idWRnaWUtZGVza3RvcC9wYXRj aGVzL2dub21lLTMzOC5wYXRjaCAgICB8IDEzNDcyICsrKysrKysrKysrKysrKysKIHNyY3BrZ3Mv YnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUgICAgICAgICAgICAgICB8ICAgICAyICstCiAzIGZpbGVz IGNoYW5nZWQsIDEzNDg0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMvYXBwc3lzLWJ1aWxkLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2dub21l LTMzOC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9h cHBzeXMtYnVpbGQucGF0Y2ggYi9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMvYXBwc3lz LWJ1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNjYy NWYwNDZkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hl cy9hcHBzeXMtYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIHNyYy9hcHBzeXMvQXBw U3lzdGVtLnZhbGEKKysrKyBzcmMvYXBwc3lzL0FwcFN5c3RlbS52YWxhCitAQCAtNzAsNyArNzAs NyBAQCBwdWJsaWMgY2xhc3MgQXBwU3lzdGVtIDogR0xpYi5PYmplY3QKKyAgICAgfQorIAorICAg ICBwcml2YXRlIHZvaWQgc2lnbmFsX3JlY2VpdmVkKEdMaWIuREJ1c0Nvbm5lY3Rpb24gY29ubmVj dGlvbiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgc2VuZGVyLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZz8gc2VuZGVyLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBvYmplY3RfcGF0aCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgaW50ZXJmYWNlX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHNpZ25hbF9uYW1lLApkaWZmIC0tZ2l0 IGEvc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2dub21lLTMzOC5wYXRjaCBiL3NyY3Br Z3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkyZmE3NmExN2IwCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2dub21lLTMzOC5wYXRjaApAQCAtMCwwICsx LDEzNDcyIEBACitGcm9tIDMwYmEwYjVhNDk4NmQ2YmUzNjg3YTFkN2ZiNDgyOTA2MTg1ZWE4Yzkg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYXZpZCBNb2hhbW1lZCA8Zm9zc2ZyZWVk b21AdXNlcnMubm9yZXBseS5naXRodWIuY29tPgorRGF0ZTogVHVlLCAxOCBGZWIgMjAyMCAwNjo0 MDoxMiArMDAwMAorU3ViamVjdDogW1BBVENIXSBnbm9tZSAzLjM4IGNvbXBhdGliaWxpdHkKKwor U3F1YXNoZWQgYnkgQHE2NiBmcm9tOgorCitodHRwczovL2dpdGh1Yi5jb20vc29sdXMtcHJvamVj dC9idWRnaWUtZGVza3RvcC9wdWxsLzE5ODcKKworcGx1cyBhbiBhc3NvcnRtZW50IG9mIG9sZGVy IG11dHRlciB1cGRhdGVzIGZyb20gZ2l0IG1hc3RlcgorLS0tCisgbWVzb24uYnVpbGQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArLQorIG1lc29uX29wdGlvbnMudHh0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgLQorIHNyYy9hcHBsZXRzL3N0YXR1 cy9TdGF0dXNBcHBsZXQudmFsYSAgICAgICAgICB8ICAgIDYgLQorIHNyYy9hcHBsZXRzL3N0YXR1 cy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAgMTMgKy0KKyBzcmMvd20vYmFja2dyb3Vu ZC52YWxhICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICstCisgc3JjL3dtL21lc29uLmJ1 aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzMCArLQorIHNyYy93bS9zaGltLnZh bGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKy0KKyBzcmMvd20vd20udmFs YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICstCisgLi4ue0NsdXR0ZXIt NS5tZXRhZGF0YSA9PiBDbHV0dGVyLTYubWV0YWRhdGF9IHwgICAgMAorIC4uLntDbHV0dGVyLTQu bWV0YWRhdGEgPT4gQ2x1dHRlci03Lm1ldGFkYXRhfSB8ICAgNDMgLQorIHZhcGkve0NvZ2wtNC5t ZXRhZGF0YSA9PiBDb2dsLTYubWV0YWRhdGF9ICAgICB8ICAgIDAKKyB2YXBpL3tDb2dsLTUubWV0 YWRhdGEgPT4gQ29nbC03Lm1ldGFkYXRhfSAgICAgfCAgICAyIC0KKyB2YXBpL01ldGEtMy5tZXRh ZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDY2IC0KKyB2YXBpL3tNZXRhLTUubWV0 YWRhdGEgPT4gTWV0YS02Lm1ldGFkYXRhfSAgICAgfCAgICAwCisgdmFwaS97TWV0YS00Lm1ldGFk YXRhID0+IE1ldGEtNy5tZXRhZGF0YX0gICAgIHwgICAyNSArLQorIHZhcGkvZ2VuZXJhdGUtbXV0 dGVyLXZhcGkuc2ggICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KKyB2YXBpL2dyYXBoZW5lLWdv YmplY3QtMS4wLnZhcGkgICAgICAgICAgICAgICAgfCAgNjkxICsrKysrKysKKyB2YXBpL2xpYm11 dHRlci0yLmRlcHMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5IC0KKyB2YXBpL2xpYm11 dHRlci0yLnZhcGkgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMzI1IC0tLS0tLS0tLS0tLS0t CisgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYSAgICAgICAgICAgICAgICAgIHwgICAgNiAt CisgdmFwaS9saWJtdXR0ZXItMy5kZXBzICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSAt CisgdmFwaS9saWJtdXR0ZXItNC5kZXBzICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCAt CisgdmFwaS9saWJtdXR0ZXItNC52YXBpICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQyNSAt LS0tLS0tLS0tLS0tLS0KKyB2YXBpL3tsaWJtdXR0ZXItNS5kZXBzID0+IGxpYm11dHRlci02LmRl cHN9ICAgfCAgICAzICstCisgdmFwaS97bGlibXV0dGVyLTUudmFwaSA9PiBsaWJtdXR0ZXItNi52 YXBpfSAgIHwgICA0NSArLQorIHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZhbGEgICAgICAgICAg ICAgICAgICB8ICAgIDcgKworIHZhcGkvbGlibXV0dGVyLTcuZGVwcyAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgIDYgKworIHZhcGkve2xpYm11dHRlci0zLnZhcGkgPT4gbGlibXV0dGVyLTcu dmFwaX0gICB8ICAzOTAgKystLQorIHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpICAgICAgICAg ICAgICAgICAgICB8IDEyNzIgLS0tLS0tLS0tLS0tLQorIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS1j dXN0b20udmFsYSAgICAgICAgICAgICB8ICAxNTggLS0KKyAuLi5zdG9tLnZhbGEgPT4gbXV0dGVy LWNsdXR0ZXItNi1jdXN0b20udmFsYX0gfCAgIDExIC0KKyAuLi5yLWNsdXR0ZXItNS5kZXBzID0+ IG11dHRlci1jbHV0dGVyLTYuZGVwc30gfCAgICAyICstCisgLi4uci1jbHV0dGVyLTUudmFwaSA9 PiBtdXR0ZXItY2x1dHRlci02LnZhcGl9IHwgIDgwNiArKy0tLS0tLQorIC4uLnItY2x1dHRlci00 LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXItNy5kZXBzfSB8ICAgIDMgKy0KKyAuLi5yLWNsdXR0ZXIt NC52YXBpID0+IG11dHRlci1jbHV0dGVyLTcudmFwaX0gfCAxNjE1ICsrKystLS0tLS0tLS0tLS0t CisgLi4uLWN1c3RvbS52YWxhID0+IG11dHRlci1jb2dsLTYtY3VzdG9tLnZhbGF9IHwgICAgMAor IC4uLnttdXR0ZXItY29nbC00LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNi5kZXBzfSB8ICAgIDAKKyAu Li57bXV0dGVyLWNvZ2wtNS52YXBpID0+IG11dHRlci1jb2dsLTYudmFwaX0gfCAgNDIyICstLS0t CisgLi4uLWN1c3RvbS52YWxhID0+IG11dHRlci1jb2dsLTctY3VzdG9tLnZhbGF9IHwgICAyMCAr LQorIC4uLnttdXR0ZXItY29nbC01LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNy5kZXBzfSB8ICAgIDAK KyAuLi57bXV0dGVyLWNvZ2wtNC52YXBpID0+IG11dHRlci1jb2dsLTcudmFwaX0gfCAgNjcxICsr Ky0tLS0KKyB2YXBpL3BvbGtpdC1nb2JqZWN0LTEudmFwaSAgICAgICAgICAgICAgICAgICAgfCAg IDMxICstCisgNDIgZmlsZXMgY2hhbmdlZCwgMTkyMCBpbnNlcnRpb25zKCspLCA3MjU0IGRlbGV0 aW9ucygtKQorIHJlbmFtZSB2YXBpL3tDbHV0dGVyLTUubWV0YWRhdGEgPT4gQ2x1dHRlci02Lm1l dGFkYXRhfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97Q2x1dHRlci00Lm1ldGFkYXRhID0+IENsdXR0 ZXItNy5tZXRhZGF0YX0gKDc4JSkKKyByZW5hbWUgdmFwaS97Q29nbC00Lm1ldGFkYXRhID0+IENv Z2wtNi5tZXRhZGF0YX0gKDEwMCUpCisgcmVuYW1lIHZhcGkve0NvZ2wtNS5tZXRhZGF0YSA9PiBD b2dsLTcubWV0YWRhdGF9ICg5MSUpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvTWV0YS0zLm1l dGFkYXRhCisgcmVuYW1lIHZhcGkve01ldGEtNS5tZXRhZGF0YSA9PiBNZXRhLTYubWV0YWRhdGF9 ICgxMDAlKQorIHJlbmFtZSB2YXBpL3tNZXRhLTQubWV0YWRhdGEgPT4gTWV0YS03Lm1ldGFkYXRh fSAoNzYlKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB2YXBpL2dyYXBoZW5lLWdvYmplY3QtMS4wLnZh cGkKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItMi5kZXBzCisgZGVsZXRlIG1v ZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTIudmFwaQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBp L2xpYm11dHRlci0zLWN1c3RvbS52YWxhCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0 dGVyLTMuZGVwcworIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci00LmRlcHMKKyBk ZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNC52YXBpCisgcmVuYW1lIHZhcGkve2xp Ym11dHRlci01LmRlcHMgPT4gbGlibXV0dGVyLTYuZGVwc30gKDUwJSkKKyByZW5hbWUgdmFwaS97 bGlibXV0dGVyLTUudmFwaSA9PiBsaWJtdXR0ZXItNi52YXBpfSAoOTclKQorIGNyZWF0ZSBtb2Rl IDEwMDY0NCB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52YWxhCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IHZhcGkvbGlibXV0dGVyLTcuZGVwcworIHJlbmFtZSB2YXBpL3tsaWJtdXR0ZXItMy52YXBpID0+ IGxpYm11dHRlci03LnZhcGl9ICg3NSUpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0 dGVyLWNvZ2wtNC52YXBpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbXV0dGVyLWNsdXR0ZXIt NS1jdXN0b20udmFsYQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci00LWN1c3RvbS52YWxh ID0+IG11dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGF9ICg5MiUpCisgcmVuYW1lIHZhcGkve211 dHRlci1jbHV0dGVyLTUuZGVwcyA9PiBtdXR0ZXItY2x1dHRlci02LmRlcHN9ICg2MyUpCisgcmVu YW1lIHZhcGkve211dHRlci1jbHV0dGVyLTUudmFwaSA9PiBtdXR0ZXItY2x1dHRlci02LnZhcGl9 ICg5MyUpCisgcmVuYW1lIHZhcGkve211dHRlci1jbHV0dGVyLTQuZGVwcyA9PiBtdXR0ZXItY2x1 dHRlci03LmRlcHN9ICg1NCUpCisgcmVuYW1lIHZhcGkve211dHRlci1jbHV0dGVyLTQudmFwaSA9 PiBtdXR0ZXItY2x1dHRlci03LnZhcGl9ICg4NiUpCisgcmVuYW1lIHZhcGkve211dHRlci1jb2ds LTUtY3VzdG9tLnZhbGEgPT4gbXV0dGVyLWNvZ2wtNi1jdXN0b20udmFsYX0gKDEwMCUpCisgcmVu YW1lIHZhcGkve211dHRlci1jb2dsLTQuZGVwcyA9PiBtdXR0ZXItY29nbC02LmRlcHN9ICgxMDAl KQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC01LnZhcGkgPT4gbXV0dGVyLWNvZ2wtNi52YXBp fSAoNjglKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC00LWN1c3RvbS52YWxhID0+IG11dHRl ci1jb2dsLTctY3VzdG9tLnZhbGF9ICg4MSUpCisgcmVuYW1lIHZhcGkve211dHRlci1jb2dsLTUu ZGVwcyA9PiBtdXR0ZXItY29nbC03LmRlcHN9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXIt Y29nbC00LnZhcGkgPT4gbXV0dGVyLWNvZ2wtNy52YXBpfSAoNTklKQorCitkaWZmIC0tZ2l0IG1l c29uLmJ1aWxkIG1lc29uLmJ1aWxkCitpbmRleCAyYTBlMDMxNi4uM2M0YzZhYzEgMTAwNjQ0Cist LS0gbWVzb24uYnVpbGQKKysrKyBtZXNvbi5idWlsZAorQEAgLTMyLDE2ICszMiwxNiBAQCBhbV9j ZmxhZ3MgPSBbCisgYWRkX2dsb2JhbF9hcmd1bWVudHMoYW1fY2ZsYWdzLCBsYW5ndWFnZTogJ2Mn KQorIG1lc29uLmFkZF9pbnN0YWxsX3NjcmlwdCgnbWVzb25fcG9zdF9pbnN0YWxsLnNoJykKKyAK Ky0jIEJ1ZGdpZSBuZWVkcyBhIG1pbmltdW0gMy4yMiBHTk9NRSBzdGFjaworLWdub21lX21pbmlt dW1fdmVyc2lvbiA9ICc+PSAzLjIyLjAnCisrIyBCdWRnaWUgbmVlZHMgYSBtaW5pbXVtIDMuMjQg R05PTUUgc3RhY2sKKytnbm9tZV9taW5pbXVtX3ZlcnNpb24gPSAnPj0gMy4yNC4wJworIAorIGRl cF9ndGszID0gZGVwZW5kZW5jeSgnZ3RrKy0zLjAnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3Zl cnNpb24pCistZGVwX2dsaWIgPSBkZXBlbmRlbmN5KCdnbGliLTIuMCcsIHZlcnNpb246ICc+PSAy LjQ2LjAnKQorLWRlcF9naW91bml4ID0gZGVwZW5kZW5jeSgnZ2lvLXVuaXgtMi4wJywgdmVyc2lv bjogJz49IDIuNDYuMCcpCistZGVwX3BlYXMgPSBkZXBlbmRlbmN5KCdsaWJwZWFzLTEuMCcsIHZl cnNpb246ICc+PSAxLjguMCcpCisrZGVwX2dsaWIgPSBkZXBlbmRlbmN5KCdnbGliLTIuMCcsIHZl cnNpb246ICc+PSAyLjYyLjAnKQorK2RlcF9naW91bml4ID0gZGVwZW5kZW5jeSgnZ2lvLXVuaXgt Mi4wJywgdmVyc2lvbjogJz49IDIuNjIuMCcpCisrZGVwX3BlYXMgPSBkZXBlbmRlbmN5KCdsaWJw ZWFzLTEuMCcsIHZlcnNpb246ICc+PSAxLjI0LjAnKQorIGRlcF9nZGt4MTEgPSBkZXBlbmRlbmN5 KCdnZGsteDExLTMuMCcsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbikKKyBkZXBfbGli dXVpZCA9IGRlcGVuZGVuY3koJ3V1aWQnKQorLWRlcF92YWxhID0gZGVwZW5kZW5jeSgndmFwaWdl bicsIHZlcnNpb246ICc+PSAwLjQwLjAnKQorK2RlcF92YWxhID0gZGVwZW5kZW5jeSgndmFwaWdl bicsIHZlcnNpb246ICc+PSAwLjQ2LjAnKQorIAorICMgTmVlZGVkIGZvciBrZXlib2FyZHkgYml0 cworIGRlcF9pYnVzID0gZGVwZW5kZW5jeSgnaWJ1cy0xLjAnLCB2ZXJzaW9uOiAnPj0gMS41LjEw JykKK0BAIC01MSwxMCArNTEsMTAgQEAgZGVwX2dzZXR0aW5ncyA9IGRlcGVuZGVuY3koJ2dzZXR0 aW5ncy1kZXNrdG9wLXNjaGVtYXMnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3YKKyBkZXBfZ3Nk ID0gZGVwZW5kZW5jeSgnZ25vbWUtc2V0dGluZ3MtZGFlbW9uJywgdmVyc2lvbjogJz49My4yOC4w JykKKyAKKyAjIHduY2sgdXNlZCBhbGwgb3ZlciB0aGUgcGxhY2UuLgorLWRlcF93bmNrID0gZGVw ZW5kZW5jeSgnbGlid25jay0zLjAnLCB2ZXJzaW9uOiAnPj0gMy4xNC4wJykKKytkZXBfd25jayA9 IGRlcGVuZGVuY3koJ2xpYnduY2stMy4wJywgdmVyc2lvbjogJz49IDMuMzIuMCcpCisgCisgIyBh Y2NvdW50c3NlcnZpY2UgaW4gbXVsdGlwbGUgYXBwbGV0cworLWRlcF9hY2NvdW50c3NlcnZpY2Ug PSBkZXBlbmRlbmN5KCdhY2NvdW50c3NlcnZpY2UnLCB2ZXJzaW9uOiAnPj0gMC42LjQwJykKKytk ZXBfYWNjb3VudHNzZXJ2aWNlID0gZGVwZW5kZW5jeSgnYWNjb3VudHNzZXJ2aWNlJywgdmVyc2lv bjogJz49IDAuNi41NScpCisgCisgIyBDcmVhdGUgY29uZmlnLmgKKyBjZGF0YSA9IGNvbmZpZ3Vy YXRpb25fZGF0YSgpCitkaWZmIC0tZ2l0IG1lc29uX29wdGlvbnMudHh0IG1lc29uX29wdGlvbnMu dHh0CitpbmRleCBkNzFiMDliNS4uZGNhOTEyOTYgMTAwNjQ0CistLS0gbWVzb25fb3B0aW9ucy50 eHQKKysrKyBtZXNvbl9vcHRpb25zLnR4dAorQEAgLTEsNSArMSw0IEBACisgb3B0aW9uKCd3aXRo LXN0YXRlbGVzcycsIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IGZhbHNlLCBkZXNjcmlwdGlvbjog J0VuYWJsZSBzdGF0ZWxlc3MgWERHIHBhdGhzJykKKyBvcHRpb24oJ3dpdGgtcG9sa2l0JywgdHlw ZTogJ2Jvb2xlYW4nLCB2YWx1ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdFbmFibGUgUG9sS2l0IHN1 cHBvcnQnKQorLW9wdGlvbignd2l0aC1ibHVldG9vdGgnLCB0eXBlOiAnYm9vbGVhbicsIHZhbHVl OiB0cnVlLCBkZXNjcmlwdGlvbjogJ0VuYWJsZSBnbm9tZS1ibHVldG9vdGggc3VwcG9ydCcpCisg b3B0aW9uKCd3aXRoLWd0ay1kb2MnLCB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiB0cnVlLCBkZXNj cmlwdGlvbjogJ0J1aWxkIGd0ay1kb2MgZG9jdW1lbnRhdGlvbicpCisgb3B0aW9uKCd3aXRoLWRl c2t0b3AtaWNvbnMnLCB0eXBlOiAnY29tYm8nLCBjaG9pY2VzOiBbJ25hdXRpbHVzJywgJ25vbmUn XSwgdmFsdWU6ICduYXV0aWx1cycsIGRlc2NyaXB0aW9uOiAnRGVza3RvcCBpY29uIGhhbmRsaW5n JykKK2RpZmYgLS1naXQgc3JjL2FwcGxldHMvc3RhdHVzL1N0YXR1c0FwcGxldC52YWxhIHNyYy9h cHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYQoraW5kZXggYjk4MjYzOTQuLjcxZjI4N2M5 IDEwMDY0NAorLS0tIHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYQorKysrIHNy Yy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYQorQEAgLTIwLDkgKzIwLDcgQEAgcHVi bGljIGNsYXNzIFN0YXR1c0FwcGxldCA6IEJ1ZGdpZS5BcHBsZXQKKyB7CisgCisgICAgIHByb3Rl Y3RlZCBHdGsuQm94IHdpZGdldDsKKy0jaWYgV0lUSF9CTFVFVE9PVEgKKyAgICAgcHJvdGVjdGVk IEJsdWV0b290aEluZGljYXRvciBibHVlOworLSNlbmRpZgorICAgICBwcm90ZWN0ZWQgU291bmRJ bmRpY2F0b3Igc291bmQ7CisgICAgIHByb3RlY3RlZCBQb3dlckluZGljYXRvciBwb3dlcjsKKyAg ICAgcHJvdGVjdGVkIEd0ay5FdmVudEJveD8gd3JhcDsKK0BAIC02OCwxMiArNjYsMTAgQEAgcHVi bGljIGNsYXNzIFN0YXR1c0FwcGxldCA6IEJ1ZGdpZS5BcHBsZXQKKyAgICAgICAgIHRoaXMuc2V0 dXBfcG9wb3Zlcihwb3dlci5lYm94LCBwb3dlci5wb3BvdmVyKTsKKyAgICAgICAgIHRoaXMuc2V0 dXBfcG9wb3Zlcihzb3VuZC5lYm94LCBzb3VuZC5wb3BvdmVyKTsKKyAKKy0jaWYgV0lUSF9CTFVF VE9PVEgKKyAgICAgICAgIGJsdWUgPSBuZXcgQmx1ZXRvb3RoSW5kaWNhdG9yKCk7CisgICAgICAg ICB3aWRnZXQucGFja19zdGFydChibHVlLCBmYWxzZSwgZmFsc2UsIDIpOworICAgICAgICAgYmx1 ZS5zaG93X2FsbCgpOworICAgICAgICAgdGhpcy5zZXR1cF9wb3BvdmVyKGJsdWUuZWJveCwgYmx1 ZS5wb3BvdmVyKTsKKy0jZW5kaWYKKyAgICAgfQorIAorICAgICBwdWJsaWMgb3ZlcnJpZGUgdm9p ZCBwYW5lbF9wb3NpdGlvbl9jaGFuZ2VkKEJ1ZGdpZS5QYW5lbFBvc2l0aW9uIHBvc2l0aW9uKQor QEAgLTkxLDkgKzg3LDcgQEAgcHVibGljIGNsYXNzIFN0YXR1c0FwcGxldCA6IEJ1ZGdpZS5BcHBs ZXQKKyAgICAgICAgIHRoaXMubWFuYWdlciA9IG1hbmFnZXI7CisgICAgICAgICBtYW5hZ2VyLnJl Z2lzdGVyX3BvcG92ZXIocG93ZXIuZWJveCwgcG93ZXIucG9wb3Zlcik7CisgICAgICAgICBtYW5h Z2VyLnJlZ2lzdGVyX3BvcG92ZXIoc291bmQuZWJveCwgc291bmQucG9wb3Zlcik7CistI2lmIFdJ VEhfQkxVRVRPT1RICisgICAgICAgICBtYW5hZ2VyLnJlZ2lzdGVyX3BvcG92ZXIoYmx1ZS5lYm94 LCBibHVlLnBvcG92ZXIpOworLSNlbmRpZgorICAgICB9CisgfSAvLyBFbmQgY2xhc3MKKyAKK2Rp ZmYgLS1naXQgc3JjL2FwcGxldHMvc3RhdHVzL21lc29uLmJ1aWxkIHNyYy9hcHBsZXRzL3N0YXR1 cy9tZXNvbi5idWlsZAoraW5kZXggNjk5ZmI4ZjQuLmI0ZDI3MDZjIDEwMDY0NAorLS0tIHNyYy9h cHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZAorKysrIHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5i dWlsZAorQEAgLTEwLDYgKzEwLDcgQEAgY3VzdG9tX3RhcmdldCgncGx1Z2luLWZpbGUtc3RhdHVz JywKKyAgICAgaW5zdGFsbF9kaXIgOiBhcHBsZXRfc3RhdHVzX2RpcikKKyAKKyBhcHBsZXRfc3Rh dHVzX3NvdXJjZXMgPSBbCisrICAgICdCbHVldG9vdGhJbmRpY2F0b3IudmFsYScsCisgICAgICdT dGF0dXNBcHBsZXQudmFsYScsCisgICAgICdQb3dlckluZGljYXRvci52YWxhJywKKyAgICAgJ1Nv dW5kSW5kaWNhdG9yLnZhbGEnLAorQEAgLTIwLDIyICsyMSwxMyBAQCBhcHBsZXRfc3RhdHVzX2Rl cHMgPSBbCisgICAgIGRlcF9ndGszLAorICAgICBkZXBfcGVhcywKKyAgICAgZGVwX2FjY291bnRz c2VydmljZSwKKysgICAgZGVwZW5kZW5jeSgnZ25vbWUtYmx1ZXRvb3RoLTEuMCcsIHZlcnNpb246 IGdub21lX21pbmltdW1fdmVyc2lvbiksCisgICAgIGRlcGVuZGVuY3koJ3Vwb3dlci1nbGliJywg dmVyc2lvbjogJz49IDAuOTkuMCcpLAorICAgICBsaW5rX2xpYnBsdWdpbiwKKyAgICAgZ3ZjLmdl dF92YXJpYWJsZSgnbGliZ3ZjX2RlcCcpLAorICAgICBtZXNvbi5nZXRfY29tcGlsZXIoJ2MnKS5m aW5kX2xpYnJhcnkoJ20nLCByZXF1aXJlZDogZmFsc2UpLAorIF0KKyAKKy0jIEJsdWV0b290aCBp cyBvcHRpb25hbCB0byBhbGxvdyBzbWFsbGVyIGJ1aWxkcworLXdpdGhfYmx1ZXRvb3RoID0gZ2V0 X29wdGlvbignd2l0aC1ibHVldG9vdGgnKQorLWFwcGxldF9zdGF0dXNfdmFsYV9hcmdzID0gW10K Ky0KKy1pZiB3aXRoX2JsdWV0b290aCA9PSB0cnVlCistICAgIGFwcGxldF9zdGF0dXNfZGVwcyAr PSBkZXBlbmRlbmN5KCdnbm9tZS1ibHVldG9vdGgtMS4wJywgdmVyc2lvbjogZ25vbWVfbWluaW11 bV92ZXJzaW9uKQorLSAgICBhcHBsZXRfc3RhdHVzX3NvdXJjZXMgKz0gJ0JsdWV0b290aEluZGlj YXRvci52YWxhJworLSAgICBhcHBsZXRfc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ1dJVEhf QkxVRVRPT1RIJ10KKy1lbmRpZgorLQorIHNoYXJlZF9saWJyYXJ5KAorICAgICAnc3RhdHVzYXBw bGV0JywKKyAgICAgYXBwbGV0X3N0YXR1c19zb3VyY2VzLAorQEAgLTUwLDcgKzQyLDYgQEAgc2hh cmVkX2xpYnJhcnkoCisgICAgICAgICAnLS1wa2cnLCAnZ3ZjLTEuMCcsCisgICAgICAgICAnLS1w a2cnLCAnZ2lvLXVuaXgtMi4wJywKKyAgICAgICAgICctLXZhcGlkaXInLCBqb2luX3BhdGhzKG1l c29uLnNvdXJjZV9yb290KCksICd2YXBpJyksCistICAgICAgICBhcHBsZXRfc3RhdHVzX3ZhbGFf YXJncywKKyAgICAgXSwKKyAgICAgaW5zdGFsbDogdHJ1ZSwKKyAgICAgaW5zdGFsbF9kaXI6IGFw cGxldF9zdGF0dXNfZGlyLAorZGlmZiAtLWdpdCBzcmMvd20vYmFja2dyb3VuZC52YWxhIHNyYy93 bS9iYWNrZ3JvdW5kLnZhbGEKK2luZGV4IDA4NGFhOWFiLi5iMzMxZTBjNCAxMDA2NDQKKy0tLSBz cmMvd20vYmFja2dyb3VuZC52YWxhCisrKysgc3JjL3dtL2JhY2tncm91bmQudmFsYQorQEAgLTIw NCw4ICsyMDQsMTMgQEAgcHVibGljIGNsYXNzIEJ1ZGdpZUJhY2tncm91bmQgOiBDbHV0dGVyLkFj dG9yCisgCisgICAgICAgICB2YXIgYWN0b3IgPSBuZXcgTWV0YS5CYWNrZ3JvdW5kQWN0b3IoZGlz cGxheSwgaW5kZXgpOworICAgICAgICAgdmFyIGJhY2tncm91bmQgPSBuZXcgTWV0YS5CYWNrZ3Jv dW5kKGRpc3BsYXkpOworKyNpZiBIQVZFX01VVFRFUl82CisgICAgICAgICBhY3Rvci5zZXRfYmFj a2dyb3VuZChiYWNrZ3JvdW5kKTsKKy0KKysjZWxzZQorKyAgICAgICAgdmFyIGNvbnRlbnQgPSBh Y3Rvci5nZXRfY29udGVudCgpOworKyAgICAgICAgdW5vd25lZCBNZXRhLkJhY2tncm91bmRDb250 ZW50IGJhY2tncm91bmRfY29udGVudCA9IChNZXRhLkJhY2tncm91bmRDb250ZW50KSBjb250ZW50 OworKyAgICAgICAgYmFja2dyb3VuZF9jb250ZW50LnNldF9iYWNrZ3JvdW5kKGJhY2tncm91bmQp OworKyNlbmRpZgorICAgICAgICAgcmVjdCA9IGRpc3BsYXkuZ2V0X21vbml0b3JfZ2VvbWV0cnko aW5kZXgpOworICAgICAgICAgYWN0b3Iuc2V0X3NpemUocmVjdC53aWR0aCwgcmVjdC5oZWlnaHQp OworICAgICAgICAgYWN0b3Iuc2V0KCJvcGFjaXR5IiwgMCk7CitAQCAtMjIxLDEzICsyMjYsMjEg QEAgcHVibGljIGNsYXNzIEJ1ZGdpZUJhY2tncm91bmQgOiBDbHV0dGVyLkFjdG9yCisgICAgICAg ICBzaGFkaW5nX2RpcmVjdGlvbiA9IChHRGVza3RvcC5CYWNrZ3JvdW5kU2hhZGluZylzZXR0aW5n cy5nZXRfZW51bShDT0xPUl9TSEFESU5HX1RZUEVfS0VZKTsKKyAgICAgICAgIHZhciBjb2xvcl9z dHIgPSBzZXR0aW5ncy5nZXRfc3RyaW5nKFBSSU1BUllfQ09MT1JfS0VZKTsKKyAgICAgICAgIGlm IChjb2xvcl9zdHIgIT0gbnVsbCAmJiBjb2xvcl9zdHIgIT0gIiIpIHsKKysjaWYgSEFWRV9NVVRU RVJfNgorICAgICAgICAgICAgIHByaW1hcnlfY29sb3IgPSBDbHV0dGVyLkNvbG9yLmZyb21fc3Ry aW5nKGNvbG9yX3N0cik7CisrI2Vsc2UKKysgICAgICAgICAgICBDbHV0dGVyLkNvbG9yLmZyb21f c3RyaW5nKG91dCBwcmltYXJ5X2NvbG9yLCBjb2xvcl9zdHIpOworKyNlbmRpZgorICAgICAgICAg ICAgIGNvbG9yX3N0ciA9IG51bGw7CisgICAgICAgICB9CisgCisgICAgICAgICBjb2xvcl9zdHIg PSBzZXR0aW5ncy5nZXRfc3RyaW5nKFNFQ09OREFSWV9DT0xPUl9LRVkpOworICAgICAgICAgaWYg KGNvbG9yX3N0ciAhPSBudWxsICYmIGNvbG9yX3N0ciAhPSAiIikgeworKyNpZiBIQVZFX01VVFRF Ul82CisgICAgICAgICAgICAgc2Vjb25kYXJ5X2NvbG9yID0gQ2x1dHRlci5Db2xvci5mcm9tX3N0 cmluZyhjb2xvcl9zdHIpOworKyNlbHNlCisrICAgICAgICAgICAgQ2x1dHRlci5Db2xvci5mcm9t X3N0cmluZyhvdXQgc2Vjb25kYXJ5X2NvbG9yLCBjb2xvcl9zdHIpOworKyNlbmRpZgorICAgICAg ICAgICAgIGNvbG9yX3N0ciA9IG51bGw7CisgICAgICAgICB9CisgCitkaWZmIC0tZ2l0IHNyYy93 bS9tZXNvbi5idWlsZCBzcmMvd20vbWVzb24uYnVpbGQKK2luZGV4IGUzOWI4Njc4Li41ODNjZTc5 MCAxMDA2NDQKKy0tLSBzcmMvd20vbWVzb24uYnVpbGQKKysrKyBzcmMvd20vbWVzb24uYnVpbGQK K0BAIC0xNywyMCArMTcsMTggQEAgYnVkZ2llX3dtX3NvdXJjZXMgPSBbCisgCisgYnVkZ2llX3dt X3N0YXR1c192YWxhX2FyZ3MgPSBbXQorIAorLXZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci0zJwor LWRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItMycsIHZlcnNpb246IGdub21lX21p bmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQorLWlmIG5vdCBkZXBfbXV0dGVyLmZvdW5k KCkKKy0gICAgZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRlci00JywgdmVyc2lvbjog Z25vbWVfbWluaW11bV92ZXJzaW9uLCByZXF1aXJlZDogZmFsc2UpCisrZGVwX2dyYXBoZW5lID0g ZGVwZW5kZW5jeSgnZ3JhcGhlbmUtZ29iamVjdC0xLjAnLCB2ZXJzaW9uOiAnPj0gMS4xMCcpCisr ZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRlci03JywgdmVyc2lvbjogZ25vbWVfbWlu aW11bV92ZXJzaW9uLCByZXF1aXJlZDogZmFsc2UpCisraWYgZGVwX211dHRlci5mb3VuZCgpCisr ICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9IFsnLUQnLCAnSEFWRV9NVVRURVJfNydd CisrICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNyBBQkkgZnJvbSBHTk9NRSAzLjM4 JykKKysgICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVyLTcnCisrZWxzZQorKyAgICBkZXBfbXV0 dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTYnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3Zl cnNpb24pCisrICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9IFsnLUQnLCAnSEFWRV9N VVRURVJfNiddCisgICAgIGlmIGRlcF9tdXR0ZXIuZm91bmQoKQorLSAgICAgICAgbWVzc2FnZSgn VXNpbmcgbmV3IGxpYm11dHRlci00IEFCSSBmcm9tIEdOT01FIDMuMzInKQorLSAgICAgICAgdmFw aV9tdXR0ZXIgPSAnbGlibXV0dGVyLTQnCistICAgIGVsc2UKKy0gICAgICAgIGRlcF9tdXR0ZXIg PSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNScsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lv bikKKy0gICAgICAgIGlmIGRlcF9tdXR0ZXIuZm91bmQoKQorLSAgICAgICAgICAgIG1lc3NhZ2Uo J1VzaW5nIG5ldyBsaWJtdXR0ZXItNSBBQkkgZnJvbSBHTk9NRSAzLjM0JykKKy0gICAgICAgICAg ICB2YXBpX211dHRlciA9ICdsaWJtdXR0ZXItNScKKy0gICAgICAgICAgICBidWRnaWVfd21fc3Rh dHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVfTVVUVEVSXzUnXQorLSAgICAgICAgZW5kaWYK KysgICAgICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNiBBQkkgZnJvbSBHTk9NRSAz LjM2JykKKysgICAgICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci02JworICAgICBlbmRpZgor IGVuZGlmCisgCitAQCAtNDIsOCArNDAsOCBAQCBidWRnaWVfd21fZGVwcyA9IFsKKyAgICAgZGVw X2lidXMsCisgXQorIAorLWlmIGRlcF9nc2QudmVyc2lvbigpLnZlcnNpb25fY29tcGFyZSgnPj0z LjMxLjkxJykKKy0gICAgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZF X0dTRF8zMzInXQorK2lmIGRlcF9nc2QudmVyc2lvbigpLnZlcnNpb25fY29tcGFyZSgnPj0zLjM2 LjAnKQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVfR1NE X1NVUFBPUlRFRCddCisgZW5kaWYKKyAKKyBidWRnaWVfd21fdmFsYV9hcmdzID0gIFsKK0BAIC02 MCw3ICs1OCw3IEBAIGJ1ZGdpZV93bV92YWxhX2FyZ3MgPSAgWworIAorIHJwYXRoID0gJycKKyAK Ky1pZiBkZXBfbXV0dGVyLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49My4yOC4wJykKKytp ZiBkZXBfbXV0dGVyLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49My4zNi4wJykKKyAgICAg cnBhdGggPSBkZXBfbXV0dGVyLmdldF9wa2djb25maWdfdmFyaWFibGUoJ3R5cGVsaWJkaXInKQor ICAgICBidWRnaWVfd21fdmFsYV9hcmdzICs9IFsnLS1naXJkaXInLCBycGF0aF0KKyBlbmRpZgor ZGlmZiAtLWdpdCBzcmMvd20vc2hpbS52YWxhIHNyYy93bS9zaGltLnZhbGEKK2luZGV4IDRjZGZh MGIwLi5mYzI0YjI4OSAxMDA2NDQKKy0tLSBzcmMvd20vc2hpbS52YWxhCisrKysgc3JjL3dtL3No aW0udmFsYQorQEAgLTE0LDcgKzE0LDcgQEAgbmFtZXNwYWNlIEJ1ZGdpZSB7CisgcHVibGljIHN0 cnVjdCBHc2RBY2NlbCB7CisgICAgIHN0cmluZyBhY2NlbGVyYXRvcjsKKyAgICAgdWludCBmbGFn czsKKy0jaWYgSEFWRV9HU0RfMzMyCisrI2lmIEhBVkVfR1NEX1NVUFBPUlRFRAorICAgICBNZXRh LktleUJpbmRpbmdGbGFncyBncmFiX2ZsYWdzOworICNlbmRpZgorIH0KK0BAIC0xOTMsMTEgKzE5 Myw3IEBAIHB1YmxpYyBjbGFzcyBTaGVsbFNoaW0gOiBHTGliLk9iamVjdAorICAgICAgICAgb3Nk X3Byb3h5ID0gbnVsbDsKKyAgICAgfQorIAorLSNpZiBIQVZFX01VVFRFUl81CisgICAgIHByaXZh dGUgdm9pZCBvbl9hY2NlbGVyYXRvcl9hY3RpdmF0ZWQodWludCBhY3Rpb24sIENsdXR0ZXIuSW5w dXREZXZpY2UgZGV2LCB1aW50IGRldmljZV9pZCkKKy0jZWxzZQorLSAgICBwcml2YXRlIHZvaWQg b25fYWNjZWxlcmF0b3JfYWN0aXZhdGVkKHVpbnQgYWN0aW9uLCB1aW50IGRldmljZV9pZCkKKy0j ZW5kaWYKKyAgICAgeworICAgICAgICAgSGFzaFRhYmxlPHN0cmluZyxWYXJpYW50PiBwYXJhbXMg PSBuZXcgSGFzaFRhYmxlPHN0cmluZyxWYXJpYW50PihzdHJfaGFzaCwgc3RyX2VxdWFsKTsKKyAK K0BAIC0yMzAsNyArMjI2LDcgQEAgcHVibGljIGNsYXNzIFNoZWxsU2hpbSA6IEdMaWIuT2JqZWN0 CisgICAgICAgICB9CisgICAgIH0KKyAKKy0jaWYgSEFWRV9HU0RfMzMyCisrI2lmIEhBVkVfR1NE X1NVUFBPUlRFRAorICAgICBwcml2YXRlIHVpbnQgX2dyYWIoc3RyaW5nIHNlbmRlciwgc3RyaW5n IHNlcSwgdWludCBmbGFnLCBNZXRhLktleUJpbmRpbmdGbGFncyBncmFiX2ZsYWdzKQorICAgICB7 CisgICAgICAgICB2YXIgcmV0ID0gZGlzcGxheS5ncmFiX2FjY2VsZXJhdG9yKHNlcSwgZ3JhYl9m bGFncyk7CitAQCAtMjczLDcgKzI2OSw3IEBAIHB1YmxpYyBjbGFzcyBTaGVsbFNoaW0gOiBHTGli Lk9iamVjdAorICAgICAgICAgICAgIG9uX2J1c19hY3F1aXJlZCwgbnVsbCwgbnVsbCk7CisgICAg IH0KKyAKKy0jaWYgSEFWRV9HU0RfMzMyCisrI2lmIEhBVkVfR1NEX1NVUFBPUlRFRAorICAgICBw dWJsaWMgdWludCBHcmFiQWNjZWxlcmF0b3IoQnVzTmFtZSBzZW5kZXIsIHN0cmluZyBhY2NlbGVy YXRvciwgdWludCBmbGFncywgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3JhYl9mbGFncykKKyAgICAg eworICAgICAgICAgcmV0dXJuIF9ncmFiKHNlbmRlciwgYWNjZWxlcmF0b3IsIGZsYWdzLCBncmFi X2ZsYWdzKTsKK2RpZmYgLS1naXQgc3JjL3dtL3dtLnZhbGEgc3JjL3dtL3dtLnZhbGEKK2luZGV4 IGZlZTg5NDQzLi5iY2NmM2I5NSAxMDA2NDQKKy0tLSBzcmMvd20vd20udmFsYQorKysrIHNyYy93 bS93bS52YWxhCitAQCAtMTM3LDggKzEzNyw4IEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVXTSA6IE1l dGEuUGx1Z2luCisgICAgIHB1YmxpYyBzdGF0aWMgc3RyaW5nW10/IG9sZF9hcmdzOworICAgICBw dWJsaWMgc3RhdGljIGJvb2wgd2F5bGFuZCA9IGZhbHNlOworIAorLSAgICBzdGF0aWMgQ2x1dHRl ci5Qb2ludCBQVl9DRU5URVI7CistICAgIHN0YXRpYyBDbHV0dGVyLlBvaW50IFBWX05PUk07Cisr ICAgIHN0YXRpYyBHcmFwaGVuZS5Qb2ludCBQVl9DRU5URVI7CisrICAgIHN0YXRpYyBHcmFwaGVu ZS5Qb2ludCBQVl9OT1JNOworIAorICAgICBwcml2YXRlIE1ldGEuQmFja2dyb3VuZEdyb3VwPyBi YWNrZ3JvdW5kX2dyb3VwOworIAorQEAgLTE3MSwxMCArMTcxLDEwIEBAIHB1YmxpYyBjbGFzcyBC dWRnaWVXTSA6IE1ldGEuUGx1Z2luCisgICAgICAgICAgICAgbGljZW5zZSA9ICJHUEwtMi4wIiwK KyAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJCdWRnaWUgV2luZG93IE1hbmFnZXIiCisgICAg ICAgICB9OworLSAgICAgICAgUFZfQ0VOVEVSID0gQ2x1dHRlci5Qb2ludC5hbGxvYygpOworKyAg ICAgICAgUFZfQ0VOVEVSID0gR3JhcGhlbmUuUG9pbnQoKTsKKysgICAgICAgIFBWX05PUk0gPSBH cmFwaGVuZS5Qb2ludCgpOworICAgICAgICAgUFZfQ0VOVEVSLnggPSAwLjVmOworICAgICAgICAg UFZfQ0VOVEVSLnkgPSAwLjVmOworLSAgICAgICAgUFZfTk9STSA9IENsdXR0ZXIuUG9pbnQuYWxs b2MoKTsKKyAgICAgICAgIFBWX05PUk0ueCA9IDAuMGY7CisgICAgICAgICBQVl9OT1JNLnkgPSAw LjBmOworICAgICB9CitAQCAtMTAwMSw3ICsxMDAxLDcgQEAgcHVibGljIGNsYXNzIEJ1ZGdpZVdN IDogTWV0YS5QbHVnaW4KKyAgICAgICAgIHRpbGVfcHJldmlldy5zZXQoInNjYWxlLXgiLCBOT1RJ RklDQVRJT05fTUFQX1NDQUxFX1gsICJzY2FsZS15IiwgTk9USUZJQ0FUSU9OX01BUF9TQ0FMRV9Z LAorICAgICAgICAgICAgICJwaXZvdC1wb2ludCIsIFBWX0NFTlRFUik7CisgCistICAgICAgICB0 aWxlX3ByZXZpZXcubG93ZXIod2luX2FjdG9yKTsKKysgICAgICAgIC8vdGlsZV9wcmV2aWV3Lmxv d2VyKHdpbl9hY3Rvcik7CisgICAgICAgICB0aWxlX3ByZXZpZXcudGlsZV9yZWN0ID0gdGlsZV9y ZWN0OworIAorICAgICAgICAgdGlsZV9wcmV2aWV3LnNob3coKTsKK2RpZmYgLS1naXQgdmFwaS9D bHV0dGVyLTUubWV0YWRhdGEgdmFwaS9DbHV0dGVyLTYubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5k ZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9DbHV0dGVyLTUubWV0YWRhdGEKK3JlbmFtZSB0byB2 YXBpL0NsdXR0ZXItNi5tZXRhZGF0YQorZGlmZiAtLWdpdCB2YXBpL0NsdXR0ZXItNC5tZXRhZGF0 YSB2YXBpL0NsdXR0ZXItNy5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCA3OCUKK3JlbmFtZSBm cm9tIHZhcGkvQ2x1dHRlci00Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9DbHV0dGVyLTcubWV0 YWRhdGEKK2luZGV4IDVjMjEyZTg1Li4xODU1Mjc0ZCAxMDA2NDQKKy0tLSB2YXBpL0NsdXR0ZXIt NC5tZXRhZGF0YQorKysrIHZhcGkvQ2x1dHRlci03Lm1ldGFkYXRhCitAQCAtMSwxMyArMSwxMCBA QAorIC8vIE5vbiBtaW5pLW9iamVjdAorIEFjdG9yQm94IHN0cnVjdAorIENvbG9yIHN0cnVjdAor LUZvZyBzdHJ1Y3QKKy1HZW9tZXRyeSBzdHJ1Y3QKKyBLbm90IHN0cnVjdAorIFBhdGhOb2RlIHN0 cnVjdAorIFBlcnNwZWN0aXZlIHN0cnVjdAorIFVuaXRzIHN0cnVjdAorLVZlcnRleCBzdHJ1Y3QK KyAKKyAqLnJlZiB1bm93bmVkCisgCitAQCAtMTcsNyArMTQsNiBAQCBpbml0X3dpdGhfYXJncwor IEFjdG9yCisgCS5hcHBseV90cmFuc2Zvcm0ubWF0cml4IHJlZgorIAkuZ2V0X2Fic19hbGxvY2F0 aW9uX3ZlcnRpY2VzLnZlcnRzIG91dD1mYWxzZQorLQkuZ2V0X2FsbG9jYXRpb25fdmVydGljZXMu dmVydHMgb3V0PWZhbHNlCisgQ2FudmFzCisgCS5uZXcgc3ltYm9sX3R5cGU9ImNvbnN0cnVjdG9y IgorIEV2ZW50LnR5cGUjbWV0aG9kIG5hbWU9ImdldF90eXBlIgorQEAgLTI3LDcgKzIzLDYgQEAg SW1hZ2UKKyAvLyA/Pz8KKyBBY3Rvci5oYXNfcG9pbnRlciNtZXRob2QgbmFtZT0iZ2V0X2hhc19w b2ludGVyIgorIEluaXRFcnJvciBlcnJvcmRvbWFpbj1mYWxzZQorLXJlZHJhdyBza2lwCisgCisg Ly8gTm90IGFsbCBiYWNraW5nIHN5bWJvbHMgYXJlIGRlcHJlY2F0ZWQKKyBBY3Rvci5waWNrIGRl cHJlY2F0ZWQ9ZmFsc2UKK0BAIC01NSw3ICs1MCw2IEBAIENvbnRhaW5lcgorIAkubG93ZXIgdmly dHVhbAorIAkucmFpc2UgdmlydHVhbAorIAkuKl9jaGlsZF9tZXRhI3ZpcnR1YWxfbWV0aG9kIHZp cnR1YWwKKy0JLmZvcmVhY2hfd2l0aF9pbnRlcm5hbHMjdmlydHVhbF9tZXRob2QgdmlydHVhbAor IAorIC8vIERlZmF1bHQgdmFsdWVzCisgQ29udGFpbmVyCitAQCAtNzAsMzIgKzY0LDIxIEBAIFRl eHQKKyAvLyBSZXBhcmVudGVkIGZ1bmNzIG1ldGhvZHMgY2FuJ3QgYmUgaW5zdGFuY2UgbWV0aG9k cworIGZlYXR1cmVfYXZhaWxhYmxlIHNraXAKKyBmZWF0dXJlX2dldF9hbGwgc2tpcAorLUZlYXR1 cmVGbGFncy50ZXh0dXJlX25wb3Qgc2tpcAorIAorIC8vIFNraXBwZWQgYnkgZy1pIGZvciB1bmtu b3duIHJlYXNvbnMKKyBMYXlvdXRNYW5hZ2VyCisgCS5jcmVhdGVfY2hpbGRfbWV0YSBza2lwPWZh bHNlCistTW9kZWwKKy0JLmluc2VydF9yb3cgc2tpcD1mYWxzZQorIAorIC8vIFZhcmlhZGljIGFy Z3VtZW50cworLUFjdG9yCistCS5hbmltYXRlIHNraXA9ZmFsc2UKKy0JLmFuaW1hdGVfd2l0aF9h bHBoYSBza2lwPWZhbHNlCistCS5hbmltYXRlX3dpdGhfdGltZWxpbmUgc2tpcD1mYWxzZQorLUFu aW1hdG9yCistCS5zZXQgc2tpcD1mYWxzZQorIEJveAorIAkucGFjayBza2lwPWZhbHNlCisgCS5w YWNrX2FmdGVyIHNraXA9ZmFsc2UKKyAJLnBhY2tfYXQgc2tpcD1mYWxzZQorIAkucGFja19iZWZv cmUgc2tpcD1mYWxzZQorIENvbnRhaW5lcgorLQkuYWRkX3ZhbGlzdCBza2lwPWZhbHNlCisgCS5j aGlsZF9nZXQgc2tpcD1mYWxzZQorIAkuY2hpbGRfc2V0IHNraXA9ZmFsc2UKKyAJLnJlbW92ZSBz a2lwPWZhbHNlCistCS5yZW1vdmVfdmFsaXN0IHNraXA9ZmFsc2UKKyBJbnRlcnZhbAorIAkubmV3 IHNraXA9ZmFsc2UKKyAJLmdldF9pbnRlcnZhbCBza2lwPWZhbHNlCitAQCAtMTA1LDE1ICs4OCw2 IEBAIEludGVydmFsCisgTGF5b3V0TWFuYWdlcgorIAkuY2hpbGRfZ2V0IHNraXA9ZmFsc2UKKyAJ LmNoaWxkX3NldCBza2lwPWZhbHNlCistTGlzdE1vZGVsCistCS5uZXcgc2tpcD1mYWxzZQorLU1v ZGVsCistCS5hcHBlbmQgc2tpcD1mYWxzZQorLQkuaW5zZXJ0IHNraXA9ZmFsc2UKKy0JLnByZXBl bmQgc2tpcD1mYWxzZQorLU1vZGVsSXRlcgorLQkuZ2V0IHNraXA9ZmFsc2UKKy0JLnNldCBza2lw PWZhbHNlCisgU2NyaXB0CisgCS5nZXRfb2JqZWN0cyBza2lwPWZhbHNlCisgCitAQCAtMTIyLDE3 ICs5NiwxMSBAQCBUZXh0dXJlCisgCS5uZXdfZnJvbV9maWxlIHRocm93cz0iQ2x1dHRlci5UZXh0 dXJlRXJyb3IiCisgCisgLy8gU2tpcHBlZCB1cHN0cmVhbSBmb3IgdW5rbm93biByZWFzb25zCist QWxwaGEucmVnaXN0ZXJfZnVuYyBza2lwPWZhbHNlCistVGltZW91dFBvb2wgc2tpcD1mYWxzZQor IEludGVydmFsLnJlZ2lzdGVyX3Byb2dyZXNzX2Z1bmMgc2tpcD1mYWxzZQorLWZyYW1lX3NvdXJj ZV8qIHNraXA9ZmFsc2UKKyBnZXRfb3B0aW9uX2dyb3VwIHNraXA9ZmFsc2UKKyBnZXRfb3B0aW9u X2dyb3VwX3dpdGhvdXRfaW5pdCBza2lwPWZhbHNlCistdGhyZWFkc19hZGRfZnJhbWVfc291cmNl IHNraXA9ZmFsc2UKKy10aHJlYWRzX2FkZF9mcmFtZV9zb3VyY2VfZnVsbCBza2lwPWZhbHNlCisg dGhyZWFkc19hZGRfaWRsZSBza2lwPWZhbHNlCisgdGhyZWFkc19hZGRfaWRsZV9mdWxsIHNraXA9 ZmFsc2UKKy10aHJlYWRzX3NldF9sb2NrX2Z1bmN0aW9ucyBza2lwPWZhbHNlCisgdGhyZWFkc19h ZGRfdGltZW91dCBza2lwPWZhbHNlCisgdGhyZWFkc19hZGRfdGltZW91dF9mdWxsIHNraXA9ZmFs c2UKKyAKK0BAIC0xNDMsMTUgKzExMSwxMiBAQCBBY3RvckJveAorIFVuaXRzLmZyb21fKiBza2lw CisgQ29sb3IKKyAJLm5ldyBza2lwCistVmVydGV4Lm5ldyBza2lwCisgCisgLy8gQ2xhc3MgbWV0 aG9kcworIGNvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxkX3Byb3BlcnR5IHNraXAKKyBjb250YWlu ZXJfY2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIHNraXAKKyAKKyAvLyBNb3ZlIHN5bWJvbHMK Ky1nZXRfYWN0b3JfYnlfZ2lkIHBhcmVudD0iQ2x1dHRlci5BY3RvciIgbmFtZT0iZ2V0X2J5X2dp ZCIKKy1nZXRfaW5wdXRfZGV2aWNlX2Zvcl9pZCBwYXJlbnQ9IkNsdXR0ZXIuSW5wdXREZXZpY2Ui IG5hbWU9ImdldF9mb3JfaWQiCisgdW5pdHNfZnJvbV8qIHNraXAKKyAKKyAvLyBDbGFzc2VzIG1h cmtlZCBhcyBvdXQgYnV0IG5vdCBkb3VibGUgcHRyCitAQCAtMjAyLDIzICsxNjcsMTUgQEAgUEFU SF9SRUxBVElWRSBza2lwPWZhbHNlCisgUFJJT1JJVFlfUkVEUkFXIHNraXA9ZmFsc2UKKyAKKyAv LyBDbHV0dGVyIGRldnMgZG9uJ3QgbGlrZSB1cyBjcmVhdGluZyBuZXN0ZWQgbmFtZXNwYWNlcwor LWZyYW1lX3NvdXJjZV8qIG5hbWU9ImZyYW1lX3NvdXJjZV8oLispIiBwYXJlbnQ9IkNsdXR0ZXIu RnJhbWVTb3VyY2UiCisgdmFsdWVfKiBuYW1lPSJ2YWx1ZV8oLispIiBwYXJlbnQ9IkNsdXR0ZXIu VmFsdWUiCisgdGhyZWFkc18qIG5hbWU9InRocmVhZHNfKC4rKSIgcGFyZW50PSJDbHV0dGVyLlRo cmVhZHMiCistdGhyZWFkc19hZGRfZnJhbWVfc291cmNlIG5hbWU9ImFkZCIgcGFyZW50PSJDbHV0 dGVyLlRocmVhZHMuRnJhbWVTb3VyY2UiCistdGhyZWFkc19hZGRfZnJhbWVfc291cmNlX2Z1bGwg bmFtZT0iYWRkX2Z1bGwiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLkZyYW1lU291cmNlIgorIHRo cmVhZHNfYWRkX2lkbGUgbmFtZT0iYWRkIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5JZGxlIgor IHRocmVhZHNfYWRkX2lkbGVfZnVsbCBuYW1lPSJhZGRfZnVsbCIgcGFyZW50PSJDbHV0dGVyLlRo cmVhZHMuSWRsZSIKKyB0aHJlYWRzX2FkZF90aW1lb3V0IG5hbWU9ImFkZCIgcGFyZW50PSJDbHV0 dGVyLlRocmVhZHMuVGltZW91dCIKKyB0aHJlYWRzX2FkZF90aW1lb3V0X2Z1bGwgbmFtZT0iYWRk X2Z1bGwiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLlRpbWVvdXQiCistdXRpbF9uZXh0X3AyIG5h bWU9Im5leHRfcG93ZXJfb2ZfMiIgcGFyZW50PSJDbHV0dGVyLlV0aWwiCisgCisgLy8gQmFja3dh cmRzIGNvbXBhdGliaWxpdHkKKyBDb2xvci5hbGxvYyBzeW1ib2xfdHlwZT0iZnVuY3Rpb24iCist UG9pbnQuYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorLVJlY3QuYWxsb2Mgc3ltYm9sX3R5 cGU9ImZ1bmN0aW9uIgorLVNpemUuYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorLVZlcnRl eC5hbGxvYyBzeW1ib2xfdHlwZT0iZnVuY3Rpb24iCisgCisgQmluQWxpZ25tZW50IGRlcHJlY2F0 ZWQ9ZmFsc2UgZGVwcmVjYXRlZF9zaW5jZT1udWxsCisgQmluQWxpZ25tZW50LiogZGVwcmVjYXRl ZAorZGlmZiAtLWdpdCB2YXBpL0NvZ2wtNC5tZXRhZGF0YSB2YXBpL0NvZ2wtNi5tZXRhZGF0YQor c2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSB2YXBpL0NvZ2wtNC5tZXRhZGF0YQor cmVuYW1lIHRvIHZhcGkvQ29nbC02Lm1ldGFkYXRhCitkaWZmIC0tZ2l0IHZhcGkvQ29nbC01Lm1l dGFkYXRhIHZhcGkvQ29nbC03Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGluZGV4IDkxJQorcmVuYW1l IGZyb20gdmFwaS9Db2dsLTUubWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL0NvZ2wtNy5tZXRhZGF0 YQoraW5kZXggMDkyYjVlMjkuLmU1MmJmYTM1IDEwMDY0NAorLS0tIHZhcGkvQ29nbC01Lm1ldGFk YXRhCisrKysgdmFwaS9Db2dsLTcubWV0YWRhdGEKK0BAIC05LDEyICs5LDEwIEBAIGNyZWF0ZV9z aGFkZXIgc2tpcAorIAorIAorIGlzX2JpdG1hcCBza2lwCistaXNfbWF0ZXJpYWwgc2tpcAorIGlz X29mZnNjcmVlbiBza2lwCisgaXNfcHJvZ3JhbSBza2lwCisgaXNfc2hhZGVyIHNraXAKKyBpc190 ZXh0dXJlIHNraXAKKy1pc192ZXJ0ZXhfYnVmZmVyIHNraXAKKyAKKyBNYXRyaXggc3RydWN0Cisg ICAuZ2V0X2FycmF5IGFycmF5PXRydWUgYXJyYXlfbGVuZ3RoX2lkeD0tMQorZGlmZiAtLWdpdCB2 YXBpL01ldGEtMy5tZXRhZGF0YSB2YXBpL01ldGEtMy5tZXRhZGF0YQorZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAzNzBkNDk5Ni4uMDAwMDAwMDAKKy0tLSB2YXBpL01ldGEtMy5tZXRh ZGF0YQorKysrIC9kZXYvbnVsbAorQEAgLTEsNjYgKzAsMCBAQAorLUJhY2tlbmQgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tlbmQuaCIKKy1CYWNrZ3JvdW5kIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiCistQmFja2dyb3VuZEFjdG9yIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgiCistQmFja2dyb3VuZEdyb3VwIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgiCistQmFja2dyb3Vu ZEltYWdlQ2FjaGUgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCIKKy1EaXNwbGF5IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvZGlzcGxheS5oIgorLU1ldGEgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS9tYWluLmgiCistTW9uaXRvck1hbmFnZXIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIgorLVJlY3RhbmdsZSBzdHJ1Y3QKKy1Q bHVnaW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgorLVBsdWdpbkluZm8g Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgorLXByZWZzXyogY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9wcmVmcy5oIiBwYXJlbnQ9Ik1ldGEuUHJlZnMiCistYWRkX3ZlcmJvc2Vf dG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor LWJ1ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCist ZGVidWdfc3Bld19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKy1lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXgxMV9lcnJvcl90cmFwX3BvcCBwYXJlbnQ9 Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisteDExX2Vycm9yX3Ry YXBfcHVzaCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CisteDExX2Vycm9yX3RyYXBfcG9wX3dpdGhfcmV0dXJuIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1leHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2Fj dGlvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCist ZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRzIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL3V0aWwuaCIKKy1nX3V0Zjhfc3RybmR1cCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ2V0X2xvY2FsZV9kaXJlY3Rpb24gcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9vdmVybGF5 X3dpbmRvdyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CistZ3Jhdml0eV90b19zdHJpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorLWlzX2RlYnVnZ2luZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistaXNfc3luY2luZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistaXNfdmVyYm9zZSBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistaXNfd2F5bGFuZF9jb21wb3NpdG9y IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1sYXRl cl9hZGQgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor LWxhdGVyX3JlbW92ZSBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCistcG9wX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvdXRpbC5oIgorLXB1c2hfbm9fbXNnX3ByZWZpeCBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistcmVjdCBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistcmVtb3ZlX3ZlcmJvc2VfdG9waWMg cGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNldF9z dGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLXNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL3V0aWwuaCIKKy10b3BpY19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy11bnNpZ25lZF9sb25nX2VxdWFsIHBhcmVudD0iTWV0 YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy11bnNpZ25lZF9sb25nX2hh c2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXZl cmJvc2VfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGls LmgiCistd2FybmluZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCistc2hvd19kaWFsb2cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorLWdldF9zdGFnZV9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9z aXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWdldF93 aW5kb3dfYWN0b3JzIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSBw YXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9y LW11dHRlci5oIgorLWdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0 YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgi CistZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9y IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZGlzYWJsZV91 bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZW5hYmxlX3VucmVkaXJlY3RfZm9y X2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0 YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgi CistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZm9jdXNfc3RhZ2Vfd2lu ZG93IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiCistc3RhZ2VfaXNfZm9jdXNlZCBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRv ciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWtleWJpbmRp bmdzX3NldF9jdXN0b21faGFuZGxlciBwYXJlbnQ9Ik1ldGEuS2V5QmluZGluZyIgbmFtZT0ic2V0 X2N1c3RvbV9oYW5kbGVyIgorLUtleUhhbmRsZXJGdW5jLmV2ZW50IHR5cGU9IkNsdXR0ZXIuS2V5 RXZlbnQ/IgorLWdldF9iYWNrZW5kIHBhcmVudD0iTWV0YS5CYWNrZW5kIgorLVdpbmRvdy5mb2N1 cyNzaWduYWwgc2tpcD10cnVlCistV2luZG93LmdldF94d2luZG93IHNraXA9ZmFsc2UKKy1nZXRf b3B0aW9uX2NvbnRleHQgc2tpcD1mYWxzZQorLXNldF9nbm9tZV93bV9rZXliaW5kaW5ncyBza2lw PWZhbHNlCistc2V0X3dtX25hbWUgc2tpcD1mYWxzZQorLWluaXQgc2tpcD1mYWxzZQorLXJ1biBz a2lwPWZhbHNlCistc2hvd19kaWFsb2cgc2tpcD1mYWxzZQorLWdldF9iYWNrZW5kIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZW5kLmgiCitkaWZmIC0tZ2l0IHZhcGkvTWV0YS01Lm1l dGFkYXRhIHZhcGkvTWV0YS02Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFt ZSBmcm9tIHZhcGkvTWV0YS01Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9NZXRhLTYubWV0YWRh dGEKK2RpZmYgLS1naXQgdmFwaS9NZXRhLTQubWV0YWRhdGEgdmFwaS9NZXRhLTcubWV0YWRhdGEK K3NpbWlsYXJpdHkgaW5kZXggNzYlCityZW5hbWUgZnJvbSB2YXBpL01ldGEtNC5tZXRhZGF0YQor cmVuYW1lIHRvIHZhcGkvTWV0YS03Lm1ldGFkYXRhCitpbmRleCBhZTJhNzgxNy4uNzI2MjlmYmEg MTAwNjQ0CistLS0gdmFwaS9NZXRhLTQubWV0YWRhdGEKKysrKyB2YXBpL01ldGEtNy5tZXRhZGF0 YQorQEAgLTEsMjYgKzEsMjEgQEAKKyBCYWNrZW5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0 YS1iYWNrZW5kLmgiCisgQmFja2dyb3VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFj a2dyb3VuZC5oIgorIEJhY2tncm91bmRBY3RvciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oIgorK0JhY2tncm91bmRDb250ZW50IGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWNvbnRlbnQuaCIKKyBCYWNrZ3JvdW5kR3JvdXAgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCIKKyBCYWNrZ3JvdW5kSW1h Z2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIKKyBCYWNr Z3JvdW5kSW1hZ2VDYWNoZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oIgorIEJhcnJpZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9iYXJyaWVyLmgiCisgQmFy cmllckV2ZW50IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvYmFycmllci5oIgorLUJveGVzIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvYm94ZXMuaCIKKyBDbG9zZURpYWxvZyBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiCistQ29tcG9zaXRvciBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL2NvbXBvc2l0b3IuaCIKKy1Db21wb3NpdG9yTXV0dGVyIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBDdXJzb3JUcmFja2VyIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oIgorIERpc3BsYXkgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9kaXNwbGF5LmgiCisgRG5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1kbmQu aCIKKy1Hcm91cCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2dyb3VwLmgiCisgSWRsZU1vbml0b3Ig Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oIgorIEluaGliaXRTaG9y dGN1dHNEaWFsb2cgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oIgorLUtleWJpbmRpbmdzIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEva2V5YmluZGlu Z3MuaCIKKyBMYXVuY2hDb250ZXh0IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oIgorIE1ldGEgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tYWluLmgiCisgTW9uaXRv ck1hbmFnZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIgor LVBsdWdpbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcGx1Z2luLmgiCisgUHJlZmVyZW5j ZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3ByZWZzLmgiCisgUmVtb3RlQWNjZXNzQ29udHJvbGxl ciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgi CisgUmVtb3RlQWNjZXNzSGFuZGxlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCIKK0BAIC0zMSw5ICsyNiw3IEBAIFNvdW5kUGxheWVyIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCIKKyBTdGFnZSBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL21ldGEtc3RhZ2UuaCIKKyBTdGFydHVwTm90aWZpY2F0aW9uIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oIgorIFRoZW1lIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdGhlbWUuaCIKKy1UeXBlcyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3R5cGVzLmgiCistVXRpbCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1WZXJzaW9u IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS12ZXJzaW9uLmgiCisrV2F5bGFuZENsaWVudCBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtd2F5bGFuZC1jbGllbnQuaCIKKyBXaW5kb3cgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS93aW5kb3cuaCIKKyBXaW5kb3dBY3RvciBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL21ldGEtd2luZG93LWFjdG9yLmgiCisgV2luZG93R3JvdXAgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oIgorQEAgLTQ2LDE3ICszOSwxMSBAQCBQbHVn aW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgorIFBsdWdpbkluZm8gY2hl YWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgorIHByZWZzXyogY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9wcmVmcy5oIiBwYXJlbnQ9Ik1ldGEuUHJlZnMiCisgYWRkX3ZlcmJvc2VfdG9w aWMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWJ1 ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZGVi dWdfc3Bld19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0 aWwuaCIKKy1lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHgxMV9lcnJvcl90cmFwX3BvcCBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgeDExX2Vycm9yX3RyYXBf cHVzaCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisg eDExX2Vycm9yX3RyYXBfcG9wX3dpdGhfcmV0dXJuIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlv biBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZnJl ZV9nc2xpc3RfYW5kX2VsZW1lbnRzIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy1nX3V0Zjhfc3RybmR1cCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgZ2V0X2xvY2FsZV9kaXJlY3Rpb24gcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9vdmVybGF5X3dp bmRvdyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisg Z3Jhdml0eV90b19zdHJpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorIGlzX2RlYnVnZ2luZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCisgaXNfc3luY2luZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCitAQCAtNjgsMTMgKzU1LDggQEAgcG9wX25vX21zZ19w cmVmaXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor IHB1c2hfbm9fbXNnX3ByZWZpeCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCisgcmVjdCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCisgcmVtb3ZlX3ZlcmJvc2VfdG9waWMgcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNldF9zdGFnZV9pbnB1dF9yZWdpb24gcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNob3dfZGlh bG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy10 b3BpY19yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKyB1bnNpZ25lZF9sb25nX2VxdWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL3V0aWwuaCIKKyB1bnNpZ25lZF9sb25nX2hhc2ggcGFyZW50PSJNZXRhLlV0aWwi IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXZlcmJvc2VfcmVhbCBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistd2FybmluZyBwYXJlbnQ9 Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgc2hvd19kaWFsb2cg cGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGdldF9z dGFnZV9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorIGdldF93aW5kb3dfYWN0b3JzIHBhcmVudD0i TWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgiCitAQCAtODMsMTAgKzY1LDcgQEAgZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkg cGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEKKyBnZXRfZmVl ZGJhY2tfZ3JvdXBfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBkaXNhYmxlX3VucmVkaXJlY3Rf Zm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBlbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSBw YXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9y LW11dHRlci5oIgorLXNldF9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLkNvbXBvc2l0 b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1lbXB0eV9z dGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBmb2N1c19zdGFnZV93aW5kb3cgcGFyZW50 PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIKKy1zdGFnZV9pc19mb2N1c2VkIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisga2V5YmluZGluZ3Nfc2V0X2N1 c3RvbV9oYW5kbGVyIHBhcmVudD0iTWV0YS5LZXlCaW5kaW5nIiBuYW1lPSJzZXRfY3VzdG9tX2hh bmRsZXIiCisgS2V5SGFuZGxlckZ1bmMuZXZlbnQgdHlwZT0iQ2x1dHRlci5LZXlFdmVudD8iCisg Z2V0X2JhY2tlbmQgcGFyZW50PSJNZXRhLkJhY2tlbmQiCitkaWZmIC0tZ2l0IHZhcGkvZ2VuZXJh dGUtbXV0dGVyLXZhcGkuc2ggdmFwaS9nZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaAoraW5kZXggNmIw NzAyNDAuLmIyMzNlNTg2IDEwMDc1NQorLS0tIHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGkuc2gK KysrKyB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNoCitAQCAtMSw3ICsxLDcgQEAKKyAjIS9i aW4vYmFzaAorIHNldCAteGUKKyAKKy12ZXJzaW9uPSR7MS00fQorK3ZlcnNpb249JHs2LTd9Cisg Z2lyZGlyPSQocGtnLWNvbmZpZyBsaWJtdXR0ZXItJHZlcnNpb24gLS12YXJpYWJsZT1naXJkaXIp CisgCisgY2QgJChkaXJuYW1lICQwKQorZGlmZiAtLWdpdCB2YXBpL2dyYXBoZW5lLWdvYmplY3Qt MS4wLnZhcGkgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMDAuLjY5ODAxNTM1CistLS0gL2Rldi9udWxsCisrKysgdmFwaS9n cmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpCitAQCAtMCwwICsxLDY5MSBAQAorKy8qIGdyYXBoZW5l LWdvYmplY3QtMS4wLnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICov CisrCisrW0NDb2RlIChjcHJlZml4ID0gIkdyYXBoZW5lIiwgZ2lyX25hbWVzcGFjZSA9ICJHcmFw aGVuZSIsIGdpcl92ZXJzaW9uID0gIjEuMCIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJncmFwaGVu ZV8iKV0KKytuYW1lc3BhY2UgR3JhcGhlbmUgeworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfYm94X3QiLCB0eXBlX2lk ID0gImdyYXBoZW5lX2JveF9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisrCXB1YmxpYyBzdHJ1Y3QgQm94IHsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX2JveCAo R3JhcGhlbmUuQm94IGIpOworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBoZW5l LlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8g ZW1wdHkgKCk7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuQm94IGIpOworKwkJcHVi bGljIEdyYXBoZW5lLkJveCBleHBhbmQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVi bGljIEdyYXBoZW5lLkJveCBleHBhbmRfc2NhbGFyIChmbG9hdCBzY2FsYXIpOworKwkJcHVibGlj IEdyYXBoZW5lLkJveCBleHBhbmRfdmVjMyAoR3JhcGhlbmUuVmVjMyB2ZWMpOworKwkJcHVibGlj IEdyYXBoZW5lLlNwaGVyZSBnZXRfYm91bmRpbmdfc3BoZXJlICgpOworKwkJcHVibGljIEdyYXBo ZW5lLlBvaW50M0QgZ2V0X2NlbnRlciAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfZGVwdGggKCk7 CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2lu dDNEIGdldF9tYXggKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfbWluICgpOwor KwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X3NpemUgKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRf dmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgR3JhcGhlbmUuVmVj MyB2ZXJ0aWNlc1s4XSk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgpOworKwkJcHVibGlj IHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gaW5maW5pdGUgKCk7CisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5Cb3g/IGluaXQgKEdyYXBoZW5lLlBvaW50M0Q/IG1pbiwgR3JhcGhlbmUu UG9pbnQzRD8gbWF4KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gaW5pdF9mcm9t X2JveCAoR3JhcGhlbmUuQm94IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/ IGluaXRfZnJvbV9wb2ludHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcG9pbnRz IiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0g R3JhcGhlbmUuUG9pbnQzRFtdIHBvaW50cyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5C b3g/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyBtaW4sIEdyYXBoZW5lLlZlYzM/IG1h eCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXRfZnJvbV92ZWN0b3JzIChb Q0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3ZlY3RvcnMiLCBhcnJheV9sZW5ndGhfcG9z ID0gMC41LCBhcnJheV9sZW5ndGhfdHlwZSA9ICJndWludCIpXSBHcmFwaGVuZS5WZWMzW10gdmVj dG9ycyk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24gKEdyYXBoZW5lLkJveCBiLCBvdXQg R3JhcGhlbmUuQm94IHJlcyk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuQm94 PyBtaW51c19vbmUgKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBv bmUgKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBvbmVfbWludXNf b25lICgpOworKwkJcHVibGljIEdyYXBoZW5lLkJveCB1bmlvbiAoR3JhcGhlbmUuQm94IGIpOwor KwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gemVybyAoKTsKKysJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAi Z3JhcGhlbmVfZXVsZXJfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfZXVsZXJfZ2V0X3R5cGUgKCki KV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IEV1bGVyIHsK KysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5FdWxlciBiKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfYmV0YSAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X2dhbW1hICgpOwor KwkJcHVibGljIEdyYXBoZW5lLkV1bGVyT3JkZXIgZ2V0X29yZGVyICgpOworKwkJcHVibGljIGZs b2F0IGdldF94ICgpOworKwkJcHVibGljIGZsb2F0IGdldF95ICgpOworKwkJcHVibGljIGZsb2F0 IGdldF96ICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXQgKGZsb2F0 IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/ IGluaXRfZnJvbV9ldWxlciAoR3JhcGhlbmUuRXVsZXI/IHNyYyk7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4PyBtLCBH cmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1 bGVyPyBpbml0X2Zyb21fcXVhdGVybmlvbiAoR3JhcGhlbmUuUXVhdGVybmlvbj8gcSwgR3JhcGhl bmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJvbV9yYWRpYW5zIChmbG9hdCB4 LCBmbG9hdCB5LCBmbG9hdCB6LCBHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMz8g diwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5FdWxlcj8gaW5pdF93aXRoX29yZGVyIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBHcmFw aGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5FdWxlciByZW9yZGVy IChHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVyKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRyaXgg dG9fbWF0cml4ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5RdWF0ZXJuaW9uIHRvX3F1YXRlcm5pb24gKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUu VmVjMyB0b192ZWMzICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFw aGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9mcnVzdHVtX3QiLCB0eXBlX2lkID0g ImdyYXBoZW5lX2ZydXN0dW1fZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorKwlwdWJsaWMgc3RydWN0IEZydXN0dW0geworKwkJcHVibGljIGJvb2wgY29udGFpbnNf cG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLkZydXN0dW0gYik7CisrCQlwdWJs aWMgdm9pZCBnZXRfcGxhbmVzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIEdy YXBoZW5lLlBsYW5lIHBsYW5lc1s2XSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5GcnVz dHVtPyBpbml0IChHcmFwaGVuZS5QbGFuZSBwMCwgR3JhcGhlbmUuUGxhbmUgcDEsIEdyYXBoZW5l LlBsYW5lIHAyLCBHcmFwaGVuZS5QbGFuZSBwMywgR3JhcGhlbmUuUGxhbmUgcDQsIEdyYXBoZW5l LlBsYW5lIHA1KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkZydXN0dW0/IGluaXRfZnJv bV9mcnVzdHVtIChHcmFwaGVuZS5GcnVzdHVtIHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5GcnVzdHVtPyBpbml0X2Zyb21fbWF0cml4IChHcmFwaGVuZS5NYXRyaXggbWF0cml4KTsK KysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfYm94IChHcmFwaGVuZS5Cb3ggYm94KTsKKysJCXB1 YmxpYyBib29sIGludGVyc2VjdHNfc3BoZXJlIChHcmFwaGVuZS5TcGhlcmUgc3BoZXJlKTsKKysJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25h bWUgPSAiZ3JhcGhlbmVfbWF0cml4X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX21hdHJpeF9nZXRf dHlwZSAoKSIpXQorKwlwdWJsaWMgc3RydWN0IE1hdHJpeCB7CisrCQlwdWJsaWMgYm9vbCBkZWNv bXBvc2UgKG91dCBHcmFwaGVuZS5WZWMzIHRyYW5zbGF0ZSwgb3V0IEdyYXBoZW5lLlZlYzMgc2Nh bGUsIG91dCBHcmFwaGVuZS5RdWF0ZXJuaW9uIHJvdGF0ZSwgb3V0IEdyYXBoZW5lLlZlYzMgc2hl YXIsIG91dCBHcmFwaGVuZS5WZWM0IHBlcnNwZWN0aXZlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBkZXRlcm1pbmFudCAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuTWF0cml4IGIp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGVxdWFsX2Zh c3QgKEdyYXBoZW5lLk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF9yb3cgKHVpbnQgaW5kZXhfKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfdmFsdWUgKHVpbnQgcm93LCB1 aW50IGNvbCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQg Z2V0X3hfc2NhbGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGlj IGZsb2F0IGdldF94X3RyYW5zbGF0aW9uICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIGZsb2F0IGdldF95X3NjYWxlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeV90cmFuc2xhdGlvbiAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfel9zY2FsZSAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3pfdHJhbnNs YXRpb24gKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfZnJvbV8yZCAoZG91YmxlIHh4LCBkb3VibGUgeXgsIGRv dWJsZSB4eSwgZG91YmxlIHl5LCBkb3VibGUgeF8wLCBkb3VibGUgeV8wKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5p dF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgdlsxNl0p OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuTWF0cml4PyBpbml0X2Zyb21fbWF0cml4IChHcmFwaGVuZS5NYXRyaXggc3JjKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJp eD8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgdjAsIEdyYXBoZW5lLlZlYzQgdjEsIEdy YXBoZW5lLlZlYzQgdjIsIEdyYXBoZW5lLlZlYzQgdjMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2ZydXN0dW0g KGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQg el9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfaWRlbnRpdHkgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/ IGluaXRfbG9va19hdCAoR3JhcGhlbmUuVmVjMyBleWUsIEdyYXBoZW5lLlZlYzMgY2VudGVyLCBH cmFwaGVuZS5WZWMzIHVwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9vcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQg cmlnaHQsIGZsb2F0IHRvcCwgZmxvYXQgYm90dG9tLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFy KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLk1hdHJpeD8gaW5pdF9wZXJzcGVjdGl2ZSAoZmxvYXQgZm92eSwgZmxvYXQgYXNwZWN0LCBm bG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9yb3RhdGUgKGZsb2F0IGFu Z2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X3NjYWxlIChmbG9hdCB4LCBm bG9hdCB5LCBmbG9hdCB6KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9za2V3IChmbG9hdCB4X3NrZXcsIGZsb2F0 IHlfc2tldyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfdHJhbnNsYXRlIChHcmFwaGVuZS5Qb2ludDNEIHApOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCBp bnRlcnBvbGF0ZSAoR3JhcGhlbmUuTWF0cml4IGIsIGRvdWJsZSBmYWN0b3IpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaW52ZXJzZSAob3V0IEdyYXBoZW5l Lk1hdHJpeCByZXMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJv b2wgaXNfMmQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9v bCBpc19iYWNrZmFjZV92aXNpYmxlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIGJvb2wgaXNfaWRlbnRpdHkgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgYm9vbCBpc19zaW5ndWxhciAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRyaXggbXVsdGlwbHkgKEdyYXBoZW5lLk1h dHJpeCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBu ZWFyIChHcmFwaGVuZS5NYXRyaXggYiwgZmxvYXQgZXBzaWxvbik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IG5vcm1hbGl6ZSAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRyaXggcGVy c3BlY3RpdmUgKGZsb2F0IGRlcHRoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyB2b2lkIHByaW50ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlBvaW50IHByb2plY3RfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHApOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YWQgcHJv amVjdF9yZWN0IChHcmFwaGVuZS5SZWN0IHIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgcHJvamVjdF9yZWN0X2JvdW5kcyAoR3JhcGhlbmUu UmVjdCByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHJv dGF0ZSAoZmxvYXQgYW5nbGUsIEdyYXBoZW5lLlZlYzMgYXhpcyk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKEdyYXBoZW5lLkV1bGVy IGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHZvaWQgcm90YXRl X3F1YXRlcm5pb24gKEdyYXBoZW5lLlF1YXRlcm5pb24gcSk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCByb3RhdGVfeCAoZmxvYXQgYW5nbGUpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX3kgKGZsb2F0IGFu Z2xlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0 ZV96IChmbG9hdCBhbmdsZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgdm9pZCBzY2FsZSAoZmxvYXQgZmFjdG9yX3gsIGZsb2F0IGZhY3Rvcl95LCBmbG9hdCBmYWN0 b3Jfeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBza2V3 X3h5IChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHZvaWQgc2tld194eiAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB2b2lkIHNrZXdfeXogKGZsb2F0IGZhY3Rvcik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCB0b18yZCAob3V0IGRvdWJsZSB4eCwg b3V0IGRvdWJsZSB5eCwgb3V0IGRvdWJsZSB4eSwgb3V0IGRvdWJsZSB5eSwgb3V0IGRvdWJsZSB4 XzAsIG91dCBkb3VibGUgeV8wKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyB2b2lkIHRvX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIGZs b2F0IHZbMTZdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5SZWN0IHRyYW5zZm9ybV9ib3VuZHMgKEdyYXBoZW5lLlJlY3Qgcik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IHRyYW5zZm9ybV9ib3gg KEdyYXBoZW5lLkJveCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5Qb2ludCB0cmFuc2Zvcm1fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHApOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgdHJh bnNmb3JtX3BvaW50M2QgKEdyYXBoZW5lLlBvaW50M0QgcCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5IHRyYW5zZm9ybV9yYXkgKEdyYXBoZW5l LlJheSByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5RdWFkIHRyYW5zZm9ybV9yZWN0IChHcmFwaGVuZS5SZWN0IHIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlNwaGVyZSB0cmFuc2Zvcm1fc3BoZXJl IChHcmFwaGVuZS5TcGhlcmUgcyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgR3JhcGhlbmUuVmVjMyB0cmFuc2Zvcm1fdmVjMyAoR3JhcGhlbmUuVmVjMyB2KTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHRyYW5z Zm9ybV92ZWM0IChHcmFwaGVuZS5WZWM0IHYpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChHcmFwaGVuZS5Qb2ludDNEIHBvcyk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IHRyYW5z cG9zZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5Qb2ludDNEIHVucHJvamVjdF9wb2ludDNkIChHcmFwaGVuZS5NYXRyaXggbW9kZWx2aWV3LCBH cmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5SZWN0IHVudHJhbnNmb3JtX2JvdW5kcyAoR3JhcGhlbmUuUmVjdCBy LCBHcmFwaGVuZS5SZWN0IGJvdW5kcyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgYm9vbCB1bnRyYW5zZm9ybV9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcCwgR3JhcGhl bmUuUmVjdCBib3VuZHMsIG91dCBHcmFwaGVuZS5Qb2ludCByZXMpOworKwl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVu ZV9wbGFuZV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9wbGFuZV9nZXRfdHlwZSAoKSIpXQorKwlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgUGxhbmUgeworKwkJcHVi bGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBi b29sIGVxdWFsIChHcmFwaGVuZS5QbGFuZSBiKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfY29uc3Rh bnQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfbm9ybWFsICgpOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuUGxhbmU/IGluaXQgKEdyYXBoZW5lLlZlYzM/IG5vcm1hbCwgZmxv YXQgY29uc3RhbnQpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUGxhbmU/IGluaXRfZnJv bV9wbGFuZSAoR3JhcGhlbmUuUGxhbmUgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlBsYW5lPyBpbml0X2Zyb21fcG9pbnQgKEdyYXBoZW5lLlZlYzMgbm9ybWFsLCBHcmFwaGVuZS5Q b2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0X2Zy b21fcG9pbnRzIChHcmFwaGVuZS5Qb2ludDNEIGEsIEdyYXBoZW5lLlBvaW50M0QgYiwgR3JhcGhl bmUuUG9pbnQzRCBjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0X2Zy b21fdmVjNCAoR3JhcGhlbmUuVmVjNCBzcmMpOworKwkJcHVibGljIEdyYXBoZW5lLlBsYW5lIG5l Z2F0ZSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5QbGFuZSBub3JtYWxpemUgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlBsYW5lIHRyYW5zZm9y bSAoR3JhcGhlbmUuTWF0cml4IG1hdHJpeCwgR3JhcGhlbmUuTWF0cml4PyBub3JtYWxfbWF0cml4 KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5o IiwgY25hbWUgPSAiZ3JhcGhlbmVfcG9pbnRfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcG9pbnRf Z2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgc3Ry dWN0IFBvaW50IHsKKysJCXB1YmxpYyBmbG9hdCB4OworKwkJcHVibGljIGZsb2F0IHk7CisrCQlw dWJsaWMgZmxvYXQgZGlzdGFuY2UgKEdyYXBoZW5lLlBvaW50IGIsIG91dCBmbG9hdCBkX3gsIG91 dCBmbG9hdCBkX3kpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlBvaW50IGIpOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHkp OworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/IGluaXRfZnJvbV9wb2ludCAoR3Jh cGhlbmUuUG9pbnQgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0X2Zyb21fdmVjMiAoR3JhcGhlbmUuVmVjMiBz cmMpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGludGVycG9sYXRlIChHcmFwaGVuZS5Qb2lu dCBiLCBkb3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLlBvaW50 IGIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlZlYzIgdG9fdmVjMiAoKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5Qb2ludD8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcG9pbnQzZF90IiwgbG93 ZXJfY2FzZV9jc3VmZml4ID0gInBvaW50M2QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3BvaW50M2Rf Z2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgc3Ry dWN0IFBvaW50M0QgeworKwkJcHVibGljIGZsb2F0IHg7CisrCQlwdWJsaWMgZmxvYXQgeTsKKysJ CXB1YmxpYyBmbG9hdCB6OworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgY3Jvc3MgKEdyYXBo ZW5lLlBvaW50M0QgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMg ZmxvYXQgZGlzdGFuY2UgKEdyYXBoZW5lLlBvaW50M0QgYiwgb3V0IEdyYXBoZW5lLlZlYzMgZGVs dGEpOworKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhlbmUuUG9pbnQzRCBiKTsKKysJCXB1Ymxp YyBib29sIGVxdWFsIChHcmFwaGVuZS5Qb2ludDNEIGIpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuUG9pbnQzRD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEPyBpbml0X2Zyb21fcG9pbnQgKEdyYXBoZW5lLlBv aW50M0Qgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IGluaXRfZnJv bV92ZWMzIChHcmFwaGVuZS5WZWMzIHYpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgaW50 ZXJwb2xhdGUgKEdyYXBoZW5lLlBvaW50M0QgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMg ZmxvYXQgbGVuZ3RoICgpOworKwkJcHVibGljIGJvb2wgbmVhciAoR3JhcGhlbmUuUG9pbnQzRCBi LCBmbG9hdCBlcHNpbG9uKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIG5vcm1hbGl6ZSAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2lu dDNEIG5vcm1hbGl6ZV92aWV3cG9ydCAoR3JhcGhlbmUuUmVjdCB2aWV3cG9ydCwgZmxvYXQgel9u ZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBzY2FsZSAoZmxv YXQgZmFjdG9yKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIHRvX3ZlYzMgKCk7CisrCQlwdWJs aWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRD8gemVybyAoKTsKKysJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3Jh cGhlbmVfcXVhZF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9xdWFkX2dldF90eXBlICgpIildCisr CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0cnVjdCBRdWFkIHsKKysJCXB1 YmxpYyBHcmFwaGVuZS5SZWN0IGJvdW5kcyAoKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zIChH cmFwaGVuZS5Qb2ludCBwKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBnZXRf cG9pbnQgKHVpbnQgaW5kZXhfKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YWQ/IGlu aXQgKEdyYXBoZW5lLlBvaW50IHAxLCBHcmFwaGVuZS5Qb2ludCBwMiwgR3JhcGhlbmUuUG9pbnQg cDMsIEdyYXBoZW5lLlBvaW50IHA0KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YWQ/IGluaXRfZnJvbV9wb2ludHMgKFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBHcmFwaGVuZS5Qb2ludCBwb2ludHNbNF0pOworKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuUXVhZD8gaW5pdF9mcm9tX3JlY3QgKEdyYXBoZW5lLlJlY3Qg cik7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3Qu aCIsIGNuYW1lID0gImdyYXBoZW5lX3F1YXRlcm5pb25fdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVf cXVhdGVybmlvbl9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CXB1YmxpYyBzdHJ1Y3QgUXVhdGVybmlvbiB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gYWRkIChHcmFwaGVuZS5RdWF0ZXJuaW9u IGIpOworKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhlbmUuUXVhdGVybmlvbiBiKTsKKysJCXB1 YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5RdWF0ZXJuaW9uIGIpOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwg ZmxvYXQgdyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zy b21fYW5nbGVfdmVjMyAoZmxvYXQgYW5nbGUsIEdyYXBoZW5lLlZlYzMgYXhpcyk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fYW5nbGVzIChmbG9hdCBk ZWdfeCwgZmxvYXQgZGVnX3ksIGZsb2F0IGRlZ196KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRfZnJvbV9l dWxlciAoR3JhcGhlbmUuRXVsZXIgZSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0 ZXJuaW9uPyBpbml0X2Zyb21fbWF0cml4IChHcmFwaGVuZS5NYXRyaXggbSk7CisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fcXVhdGVybmlvbiAoR3JhcGhl bmUuUXVhdGVybmlvbiBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlv bj8gaW5pdF9mcm9tX3JhZGlhbnMgKGZsb2F0IHJhZF94LCBmbG9hdCByYWRfeSwgZmxvYXQgcmFk X3opOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX3Zl YzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRl cm5pb24/IGluaXRfaWRlbnRpdHkgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiBp bnZlcnQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBo ZW5lLlF1YXRlcm5pb24gbXVsdGlwbHkgKEdyYXBoZW5lLlF1YXRlcm5pb24gYik7CisrCQlwdWJs aWMgR3JhcGhlbmUuUXVhdGVybmlvbiBub3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gc2NhbGUgKGZsb2F0IGZh Y3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiBzbGVycCAoR3JhcGhlbmUuUXVh dGVybmlvbiBiLCBmbG9hdCBmYWN0b3IpOworKwkJcHVibGljIHZvaWQgdG9fYW5nbGVfdmVjMyAo b3V0IGZsb2F0IGFuZ2xlLCBvdXQgR3JhcGhlbmUuVmVjMyBheGlzKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHRvX2FuZ2xlcyAob3V0IGZsb2F0IGRlZ194 LCBvdXQgZmxvYXQgZGVnX3ksIG91dCBmbG9hdCBkZWdfeik7CisrCQlwdWJsaWMgR3JhcGhlbmUu TWF0cml4IHRvX21hdHJpeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1 YmxpYyB2b2lkIHRvX3JhZGlhbnMgKG91dCBmbG9hdCByYWRfeCwgb3V0IGZsb2F0IHJhZF95LCBv dXQgZmxvYXQgcmFkX3opOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgdG9fdmVjNCAoKTsKKysJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25h bWUgPSAiZ3JhcGhlbmVfcmF5X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3JheV9nZXRfdHlwZSAo KSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCXB1YmxpYyBzdHJ1Y3QgUmF5IHsK KysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5SYXkgYik7CisrCQlwdWJsaWMgR3JhcGhl bmUuUG9pbnQzRCBnZXRfY2xvc2VzdF9wb2ludF90b19wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBw KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF9kaXJlY3Rpb24gKCk7CisrCQlwdWJsaWMg ZmxvYXQgZ2V0X2Rpc3RhbmNlX3RvX3BsYW5lIChHcmFwaGVuZS5QbGFuZSBwKTsKKysJCXB1Ymxp YyBmbG9hdCBnZXRfZGlzdGFuY2VfdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcCk7CisrCQlw dWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfb3JpZ2luICgpOworKwkJcHVibGljIEdyYXBoZW5l LlBvaW50M0QgZ2V0X3Bvc2l0aW9uX2F0IChmbG9hdCB0KTsKKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLlJheT8gaW5pdCAoR3JhcGhlbmUuUG9pbnQzRD8gb3JpZ2luLCBHcmFwaGVuZS5WZWMz PyBkaXJlY3Rpb24pOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmF5PyBpbml0X2Zyb21f cmF5IChHcmFwaGVuZS5SYXkgc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJheT8g aW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzM/IG9yaWdpbiwgR3JhcGhlbmUuVmVjMz8gZGly ZWN0aW9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhl bmUuUmF5SW50ZXJzZWN0aW9uS2luZCBpbnRlcnNlY3RfYm94IChHcmFwaGVuZS5Cb3ggYiwgb3V0 IGZsb2F0IHRfb3V0KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMg R3JhcGhlbmUuUmF5SW50ZXJzZWN0aW9uS2luZCBpbnRlcnNlY3Rfc3BoZXJlIChHcmFwaGVuZS5T cGhlcmUgcywgb3V0IGZsb2F0IHRfb3V0KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisrCQlwdWJsaWMgR3JhcGhlbmUuUmF5SW50ZXJzZWN0aW9uS2luZCBpbnRlcnNlY3RfdHJpYW5n bGUgKEdyYXBoZW5lLlRyaWFuZ2xlIHQsIG91dCBmbG9hdCB0X291dCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0c19ib3ggKEdyYXBoZW5l LkJveCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBp bnRlcnNlY3RzX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJlIHMpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfdHJpYW5nbGUgKEdyYXBoZW5l LlRyaWFuZ2xlIHQpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVu ZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9yZWN0X3QiLCB0eXBlX2lkID0gImdyYXBo ZW5lX3JlY3RfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlw dWJsaWMgc3RydWN0IFJlY3QgeworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IG9yaWdpbjsKKysJ CXB1YmxpYyBHcmFwaGVuZS5TaXplIHNpemU7CisrCQlwdWJsaWMgc3RhdGljIEdyYXBoZW5lLlJl Y3Q/IGFsbG9jICgpOworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBv aW50IHApOworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcmVjdCAoR3JhcGhlbmUuUmVjdCBiKTsK KysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5SZWN0IGIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgZXhwYW5kIChHcmFwaGVuZS5Q b2ludCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQg Z2V0X2FyZWEgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0X2JvdHRvbV9sZWZ0ICgp OworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9ib3R0b21fcmlnaHQgKCk7CisrCQlwdWJs aWMgR3JhcGhlbmUuUG9pbnQgZ2V0X2NlbnRlciAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfaGVp Z2h0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF90b3BfbGVmdCAoKTsKKysJCXB1 YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfdG9wX3JpZ2h0ICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorKwkJcHVibGljIHZvaWQgZ2V0X3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xl bmd0aCA9IGZhbHNlKV0gcmVmIEdyYXBoZW5lLlZlYzIgdmVydGljZXNbNF0pOworKwkJcHVibGlj IGZsb2F0IGdldF93aWR0aCAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJCXB1Ymxp YyBmbG9hdCBnZXRfeSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IGluaXQg KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuUmVjdD8gaW5pdF9mcm9tX3JlY3QgKEdyYXBoZW5lLlJlY3Qgc3Jj KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IGluc2V0IChmbG9hdCBkX3gsIGZs b2F0IGRfeSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhl bmUuUmVjdCBpbnNldF9yIChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CisrCQlwdWJsaWMgR3JhcGhl bmUuUmVjdCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuUmVjdCBiLCBkb3VibGUgZmFjdG9yKTsKKysJ CXB1YmxpYyBib29sIGludGVyc2VjdGlvbiAoR3JhcGhlbmUuUmVjdCBiLCBvdXQgR3JhcGhlbmUu UmVjdCByZXMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8gbm9ybWFsaXplICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3Qg bm9ybWFsaXplX3IgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBvZmZzZXQg KGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5SZWN0IG9mZnNldF9yIChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7Cisr CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3Qgcm91bmQgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3Qgcm91bmRf ZXh0ZW50cyAoKTsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlJlY3Q/IHJvdW5kX3RvX3BpeGVsICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHNjYWxlIChmbG9hdCBzX2gsIGZsb2F0IHNfdik7Cisr CQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB1bmlvbiAoR3JhcGhlbmUuUmVjdCBiKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5S ZWN0PyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVu ZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zaW1kNGZfdCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0IFNpbWQ0RiB7CisrCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3NpbWQ0 eDRmX3QiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJcHVibGljIHN0cnVjdCBTaW1kNFg0RiB7 CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIs IGNuYW1lID0gImdyYXBoZW5lX3NpemVfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfc2l6ZV9nZXRf dHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3Qg U2l6ZSB7CisrCQlwdWJsaWMgZmxvYXQgd2lkdGg7CisrCQlwdWJsaWMgZmxvYXQgaGVpZ2h0Owor KwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlNpemUgYik7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5TaXplPyBpbml0IChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNpemU/IGluaXRfZnJvbV9zaXplIChHcmFwaGVuZS5TaXpl IHNyYyk7CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuU2l6 ZSBiLCBkb3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5TaXplIHNjYWxlIChmbG9h dCBmYWN0b3IpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlNpemU/IHplcm8g KCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3Qu aCIsIGNuYW1lID0gImdyYXBoZW5lX3NwaGVyZV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9zcGhl cmVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMg c3RydWN0IFNwaGVyZSB7CisrCQlwdWJsaWMgYm9vbCBjb250YWluc19wb2ludCAoR3JhcGhlbmUu UG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKEdyYXBoZW5lLlBvaW50 M0QgcG9pbnQpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlNwaGVyZSBiKTsKKysJ CXB1YmxpYyBHcmFwaGVuZS5Cb3ggZ2V0X2JvdW5kaW5nX2JveCAoKTsKKysJCXB1YmxpYyBHcmFw aGVuZS5Qb2ludDNEIGdldF9jZW50ZXIgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3JhZGl1cyAo KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNwaGVyZT8gaW5pdCAoR3JhcGhlbmUuUG9p bnQzRD8gY2VudGVyLCBmbG9hdCByYWRpdXMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu U3BoZXJlPyBpbml0X2Zyb21fcG9pbnRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJu X3BvaW50cyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1 aW50IildIEdyYXBoZW5lLlBvaW50M0RbXSBwb2ludHMsIEdyYXBoZW5lLlBvaW50M0Q/IGNlbnRl cik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TcGhlcmU/IGluaXRfZnJvbV92ZWN0b3Jz IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3ZlY3RvcnMiLCBhcnJheV9sZW5ndGhf cG9zID0gMC41LCBhcnJheV9sZW5ndGhfdHlwZSA9ICJndWludCIpXSBHcmFwaGVuZS5WZWMzW10g dmVjdG9ycywgR3JhcGhlbmUuUG9pbnQzRD8gY2VudGVyKTsKKysJCXB1YmxpYyBib29sIGlzX2Vt cHR5ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlNwaGVyZSB0cmFuc2xhdGUgKEdyYXBoZW5lLlBv aW50M0QgcG9pbnQpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVu ZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV90cmlhbmdsZV90IiwgdHlwZV9pZCA9ICJn cmFwaGVuZV90cmlhbmdsZV9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisrCXB1YmxpYyBzdHJ1Y3QgVHJpYW5nbGUgeworKwkJcHVibGljIGJvb2wgY29udGFpbnNf cG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcCk7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhl bmUuVHJpYW5nbGUgYik7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2FyZWEgKCk7CisrCQlwdWJsaWMg Ym9vbCBnZXRfYmFyeWNvb3JkcyAoR3JhcGhlbmUuUG9pbnQzRD8gcCwgb3V0IEdyYXBoZW5lLlZl YzIgcmVzKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZ2V0X2JvdW5kaW5nX2JveCAoKTsKKysJ CXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9taWRwb2ludCAoKTsKKysJCXB1YmxpYyBHcmFw aGVuZS5WZWMzIGdldF9ub3JtYWwgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUGxhbmUgZ2V0X3Bs YW5lICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3BvaW50cyAob3V0IEdyYXBoZW5lLlBvaW50M0Qg YSwgb3V0IEdyYXBoZW5lLlBvaW50M0QgYiwgb3V0IEdyYXBoZW5lLlBvaW50M0QgYyk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgZ2V0X3V2IChHcmFwaGVu ZS5Qb2ludDNEPyBwLCBHcmFwaGVuZS5WZWMyIHV2X2EsIEdyYXBoZW5lLlZlYzIgdXZfYiwgR3Jh cGhlbmUuVmVjMiB1dl9jLCBvdXQgR3JhcGhlbmUuVmVjMiByZXMpOworKwkJcHVibGljIHZvaWQg Z2V0X3ZlcnRpY2VzIChvdXQgR3JhcGhlbmUuVmVjMyBhLCBvdXQgR3JhcGhlbmUuVmVjMyBiLCBv dXQgR3JhcGhlbmUuVmVjMyBjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5UcmlhbmdsZT8gaW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUg KGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgYVszXSwgW0NDb2RlIChhcnJheV9sZW5ndGgg PSBmYWxzZSldIGZsb2F0IGJbM10sIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9h dCBjWzNdKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlRyaWFuZ2xlPyBpbml0X2Zyb21f cG9pbnQzZCAoR3JhcGhlbmUuUG9pbnQzRD8gYSwgR3JhcGhlbmUuUG9pbnQzRD8gYiwgR3JhcGhl bmUuUG9pbnQzRD8gYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5UcmlhbmdsZT8gaW5p dF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzM/IGEsIEdyYXBoZW5lLlZlYzM/IGIsIEdyYXBoZW5l LlZlYzM/IGMpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1n b2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV92ZWMyX3QiLCB0eXBlX2lkID0gImdyYXBoZW5l X3ZlYzJfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBWZWMyIHsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIGFkZCAoR3JhcGhlbmUu VmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5WZWMyIGRpdmlkZSAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuVmVjMiB2 Mik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3gg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3kg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5WZWMyPyBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IGluaXRfZnJvbV9mbG9h dCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IHNyY1syXSk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBp bml0X2Zyb21fdmVjMiAoR3JhcGhlbmUuVmVjMiBzcmMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIGludGVycG9sYXRlIChHcmFwaGVuZS5W ZWMyIHYyLCBkb3VibGUgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBtYXggKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBtaW4gKEdyYXBoZW5l LlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjMiBtdWx0aXBseSAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLlZlYzIgdjIsIGZsb2F0IGVw c2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5l LlZlYzIgbmVnYXRlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlZlYzIgbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IG9uZSAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIHNjYWxlIChm bG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLlZlYzIgc3VidHJhY3QgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldIHJlZiBmbG9hdCBkZXN0WzJdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyB4X2F4aXMgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQg R3JhcGhlbmUuVmVjMj8geV9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IHplcm8gKCk7CisrCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0g ImdyYXBoZW5lX3ZlYzNfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfdmVjM19nZXRfdHlwZSAoKSIp XQorKwlwdWJsaWMgc3RydWN0IFZlYzMgeworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlZlYzMgYWRkIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgY3Jvc3MgKEdyYXBo ZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjMyBkaXZpZGUgKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlZl YzMgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdl dF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlZlYzIgZ2V0X3h5ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlZlYzMgZ2V0X3h5MCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF94eXowICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgZ2V0X3h5ejEgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRfeHl6dyAo ZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQg Z2V0X3kgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQg Z2V0X3ogKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5WZWMzPyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/ IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IHNy Y1szXSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5WZWMzPyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMyBzcmMpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGludGVycG9s YXRlIChHcmFwaGVuZS5WZWMzIHYyLCBkb3VibGUgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBtYXggKEdyYXBoZW5lLlZlYzMg Yik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVj MyBtaW4gKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBtdWx0aXBseSAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLlZl YzMgdjIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzMgbmVnYXRlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/ IG9uZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5WZWMzIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgc3VidHJhY3QgKEdyYXBoZW5lLlZlYzMgYik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9hdCAoW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBmbG9hdCBkZXN0WzNdKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5W ZWMzPyB4X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg c3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8geV9heGlzICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IHpf YXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBHcmFwaGVuZS5WZWMzPyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV92ZWM0X3Qi LCB0eXBlX2lkID0gImdyYXBoZW5lX3ZlYzRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVj dCBWZWM0IHsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5WZWM0IGFkZCAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGRpdmlkZSAoR3JhcGhlbmUuVmVjNCBiKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5l LlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBl cXVhbCAoR3JhcGhlbmUuVmVjNCB2Mik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgZmxvYXQgZ2V0X3cgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBnZXRfeHkgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfeHl6ICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF95ICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF96ICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gaW5pdCAo ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyBpbml0X2Zyb21fZmxv YXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBzcmNbNF0pOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8g aW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZlYzIgc3JjLCBmbG9hdCB6LCBmbG9hdCB3KTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZl YzQ/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzIHNyYywgZmxvYXQgdyk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyBp bml0X2Zyb21fdmVjNCAoR3JhcGhlbmUuVmVjNCBzcmMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGludGVycG9sYXRlIChHcmFwaGVuZS5W ZWM0IHYyLCBkb3VibGUgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBtYXggKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBtaW4gKEdyYXBoZW5l LlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjNCBtdWx0aXBseSAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLlZlYzQgdjIsIGZsb2F0IGVw c2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5l LlZlYzQgbmVnYXRlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlZlYzQgbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IG9uZSAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHNjYWxlIChm bG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLlZlYzQgc3VidHJhY3QgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldIHJlZiBmbG9hdCBkZXN0WzRdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyB3X2F4aXMgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQg R3JhcGhlbmUuVmVjND8geF9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHlfYXhpcyAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVu ZS5WZWM0PyB6X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhl bmVfZXVsZXJfb3JkZXJfdCIsIGNwcmVmaXggPSAiR1JBUEhFTkVfRVVMRVJfT1JERVJfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGlj IGVudW0gRXVsZXJPcmRlciB7CisrCQlERUZBVUxULAorKwkJWFlaLAorKwkJWVpYLAorKwkJWlhZ LAorKwkJWFpZLAorKwkJWVhaLAorKwkJWllYLAorKwkJU1hZWiwKKysJCVNYWVgsCisrCQlTWFpZ LAorKwkJU1haWCwKKysJCVNZWlgsCisrCQlTWVpZLAorKwkJU1lYWiwKKysJCVNZWFksCisrCQlT WlhZLAorKwkJU1pYWiwKKysJCVNaWVgsCisrCQlTWllaLAorKwkJUlpZWCwKKysJCVJYWVgsCisr CQlSWVpYLAorKwkJUlhaWCwKKysJCVJYWlksCisrCQlSWVpZLAorKwkJUlpYWSwKKysJCVJZWFks CisrCQlSWVhaLAorKwkJUlpYWiwKKysJCVJYWVosCisrCQlSWllaCisrCX0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5l X3JheV9pbnRlcnNlY3Rpb25fa2luZF90IiwgY3ByZWZpeCA9ICJHUkFQSEVORV9SQVlfSU5URVJT RUNUSU9OX0tJTkRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisrCXB1YmxpYyBlbnVtIFJheUludGVyc2VjdGlvbktpbmQgeworKwkJTk9ORSwK KysJCUVOVEVSLAorKwkJTEVBVkUKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Z3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfSEFTX0dDQyIpXQorKwlwdWJs aWMgY29uc3QgaW50IEhBU19HQ0M7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFw aGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9IQVNfU0NBTEFSIildCisrCXB1Ymxp YyBjb25zdCBpbnQgSEFTX1NDQUxBUjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdy YXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX0hBU19TU0UiKV0KKysJcHVibGlj IGNvbnN0IGludCBIQVNfU1NFOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhl bmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfUEkiKV0KKysJcHVibGljIGNvbnN0IGRv dWJsZSBQSTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3Qu aCIsIGNuYW1lID0gIkdSQVBIRU5FX1BJXzIiKV0KKysJcHVibGljIGNvbnN0IGRvdWJsZSBQSV8y OworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25h bWUgPSAiR1JBUEhFTkVfU0lNRF9TIildCisrCXB1YmxpYyBjb25zdCBzdHJpbmcgU0lNRF9TOwor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUg PSAiR1JBUEhFTkVfVkVDMl9MRU4iKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlw dWJsaWMgY29uc3QgaW50IFZFQzJfTEVOOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Z3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfVkVDM19MRU4iKV0KKysJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgY29uc3QgaW50IFZFQzNfTEVOOworKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAi R1JBUEhFTkVfVkVDNF9MRU4iKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJs aWMgY29uc3QgaW50IFZFQzRfTEVOOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3Jh cGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZmFsc2UiKV0KKysJcHVibGljIGNvbnN0IGludCBA ZmFsc2U7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0Lmgi LCBjbmFtZSA9ICJ0cnVlIildCisrCXB1YmxpYyBjb25zdCBpbnQgQHRydWU7CisrfQorZGlmZiAt LWdpdCB2YXBpL2xpYm11dHRlci0yLmRlcHMgdmFwaS9saWJtdXR0ZXItMi5kZXBzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDFmM2M5MDc5Li4wMDAwMDAwMAorLS0tIHZhcGkvbGli bXV0dGVyLTIuZGVwcworKysrIC9kZXYvbnVsbAorQEAgLTEsOSArMCwwIEBACistY2Fpcm8KKy1n c2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzCistZ2RrLTMuMAorLWdkay1waXhidWYtMi4wCistZ3Rr Ky0zLjAKKy14MTEKKy14Zml4ZXMtNC4wCistY2x1dHRlci0xLjAKKy1jb2dsLTEuMAorZGlmZiAt LWdpdCB2YXBpL2xpYm11dHRlci0yLnZhcGkgdmFwaS9saWJtdXR0ZXItMi52YXBpCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDBhNmM0MzU3Li4wMDAwMDAwMAorLS0tIHZhcGkvbGli bXV0dGVyLTIudmFwaQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTMyNSArMCwwIEBACistLyogbGli bXV0dGVyLnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCistCist W0NDb2RlIChjcHJlZml4ID0gIk1ldGEiLCBnaXJfbmFtZXNwYWNlID0gIk1ldGEiLCBnaXJfdmVy c2lvbiA9ICIzLjAiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKy1uYW1lc3BhY2Ug TWV0YSB7CistCW5hbWVzcGFjZSBQcmVmcyB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX2xpc3RlbmVyIChN ZXRhLlByZWZzQ2hhbmdlZEZ1bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgYmVsbF9pc19hdWRpYmxl ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2VfbmFtZSAoaW50IGksIHN0cmluZyBu YW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gZ2V0X2FjdGlvbl9kb3VibGVf Y2xpY2tfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9uIGdldF9h Y3Rpb25fbWlkZGxlX2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJh ckFjdGlvbiBnZXRfYWN0aW9uX3JpZ2h0X2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29s IGdldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYXV0b19tYXhp bWl6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYXV0b19yYWlzZSAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdl dF9hdXRvX3JhaXNlX2RlbGF5ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLkJ1dHRvbkxheW91dCBnZXRfYnV0 dG9uX2xheW91dCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfY2VudGVyX25ld193aW5kb3dzICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGlj IHN0YXRpYyBib29sIGdldF9jb21wb3NpdGluZ19tYW5hZ2VyICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0 X2N1cnNvcl9zaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBnZXRfY3Vyc29yX3RoZW1l ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJ cHVibGljIHN0YXRpYyBib29sIGdldF9kaXNhYmxlX3dvcmthcm91bmRzICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBp bnQgZ2V0X2RyYWdfdGhyZXNob2xkICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X2RyYWdnYWJsZV9ib3Jk ZXJfd2lkdGggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2R5bmFtaWNfd29ya3NwYWNlcyAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBz dGF0aWMgYm9vbCBnZXRfZWRnZV90aWxpbmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2ZvY3VzX2No YW5nZV9vbl9wb2ludGVyX3Jlc3QgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTW9kZSBnZXRf Zm9jdXNfbW9kZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuRm9jdXNOZXdXaW5kb3dzIGdldF9mb2N1 c19uZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZm9yY2VfZnVsbHNjcmVlbiAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgYm9vbCBnZXRfZ25vbWVfYWNjZXNzaWJpbGl0eSAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBn ZXRfZ25vbWVfYW5pbWF0aW9ucyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfaWdub3JlX3JlcXVlc3Rf aGlkZV90aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5LZXlCaW5kaW5nQWN0aW9uIGdldF9rZXli aW5kaW5nX2FjdGlvbiAoc3RyaW5nIG5hbWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X21vdXNlX2J1dHRv bl9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIp XQorLQkJcHVibGljIHN0YXRpYyBNZXRhLlZpcnR1YWxNb2RpZmllciBnZXRfbW91c2VfYnV0dG9u X21vZHMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIild CistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfbW91c2VfYnV0dG9uX3Jlc2l6ZSAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgaW50IGdldF9udW1fd29ya3NwYWNlcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfcmFpc2Vfb25f Y2xpY2sgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgUGFuZ28uRm9udERlc2NyaXB0aW9uIGdldF90aXRsZWJhcl9mb250ICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVi bGljIHN0YXRpYyBib29sIGdldF92aXN1YWxfYmVsbCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVmlz dWFsQmVsbFR5cGUgZ2V0X3Zpc3VhbF9iZWxsX3R5cGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3Ry aW5nIGdldF93b3Jrc3BhY2VfbmFtZSAoaW50IGkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF93b3Jrc3Bh Y2VzX29ubHlfb25fcHJpbWFyeSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBpbml0ICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkIG92ZXJyaWRlX3ByZWZlcmVuY2Vfc2NoZW1hIChzdHJpbmcga2V5LCBzdHJpbmcgc2NoZW1h KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfbGlzdGVuZXIgKE1ldGEuUHJlZnNDaGFuZ2VkRnVuYyBm dW5jKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZm9yY2VfZnVsbHNjcmVlbiAoYm9vbCB3aGV0aGVyKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciAoYm9vbCB3aGV0 aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbnVtX3dvcmtzcGFjZXMgKGludCBuX3dvcmtzcGFjZXMp OworLQl9CistCW5hbWVzcGFjZSBVdGlsIHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfYWRkX3ZlcmJvc2VfdG9waWMiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBhZGRfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGljIHRvcGlj KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0g Im1ldGFfYnVnIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgYnVnIChzdHJpbmcgZm9ybWF0LCAu Li4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAibWV0YV9kZWJ1Z19zcGV3X3JlYWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19z cGV3X3JlYWwgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9mb3Jf c2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9z Y3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbXB0eV9zdGFnZV9p bnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9y ZWdpb24gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0X2Zvcl9zY3Jl ZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmFibGVfdW5yZWRpcmVjdF9mb3Jfc2NyZWVu IChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lcnJvcl90cmFwX3BvcCIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIGVycm9yX3RyYXBfcG9wIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2Vycm9y X3RyYXBfcHVzaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVycm9yX3RyYXBfcHVzaCAoTWV0 YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAibWV0YV9lcnJvcl90cmFwX3B1c2hfd2l0aF9yZXR1cm4iKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90cmFwX3B1c2hfd2l0aF9yZXR1cm4gKE1ldGEuRGlz cGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIm1ldGFfZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24iKV0KKy0J CXB1YmxpYyBzdGF0aWMgc3RyaW5nIGV4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uICh1 aW50IGtleWJpbmRpbmdfYWN0aW9uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZmF0YWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCBmYXRhbCAoc3RyaW5nIGZvcm1hdCwgLi4uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRz IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZnJlZV9nc2xpc3RfYW5kX2VsZW1lbnRzIChHTGli LlNMaXN0PHZvaWQqPiBsaXN0X3RvX2RlZXBfZnJlZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dfdXRmOF9zdHJuZHVwIildCist CQlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90 IG4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAibWV0YV9nZXRfbG9jYWxlX2RpcmVjdGlvbiIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLkxv Y2FsZURpcmVjdGlvbiBnZXRfbG9jYWxlX2RpcmVjdGlvbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZ2V0X292ZXJsYXlfd2lu ZG93IildCistCQlwdWJsaWMgc3RhdGljIFguV2luZG93IGdldF9vdmVybGF5X3dpbmRvdyAoTWV0 YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIm1ldGFfZ3Jhdml0eV90b19zdHJpbmciKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJpbmcgKGludCBncmF2aXR5KTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfaXNf ZGVidWdnaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZGVidWdnaW5nICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9p c19zeW5jaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfc3luY2luZyAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfaXNf dmVyYm9zZSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3ZlcmJvc2UgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3dh eWxhbmRfY29tcG9zaXRvciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3dheWxhbmRfY29t cG9zaXRvciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNuYW1lID0gIm1ldGFfbGF0ZXJfYWRkIildCistCQlwdWJsaWMgc3RhdGljIHVpbnQgbGF0ZXJf YWRkIChNZXRhLkxhdGVyVHlwZSB3aGVuLCBvd25lZCBHTGliLlNvdXJjZUZ1bmMgZnVuYyk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X2xhdGVyX3JlbW92ZSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGxhdGVyX3JlbW92ZSAodWlu dCBsYXRlcl9pZCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJtZXRhX3BvcF9ub19tc2dfcHJlZml4IildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgcG9wX25vX21zZ19wcmVmaXggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3B1c2hfbm9fbXNnX3ByZWZpeCIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIHB1c2hfbm9fbXNnX3ByZWZpeCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfcmVjdCIpXQorLQkJcHVi bGljIHN0YXRpYyBNZXRhLlJlY3RhbmdsZT8gcmVjdCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgs IGludCBoZWlnaHQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAibWV0YV9yZW1vdmVfdmVyYm9zZV90b3BpYyIpXQorLQkJcHVibGljIHN0YXRp YyB2b2lkIHJlbW92ZV92ZXJib3NlX3RvcGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNu YW1lID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuU2NyZWVuIHNjcmVlbiwgWC5Yc2VydmVy UmVnaW9uIHJlZ2lvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJtZXRhX3Nob3dfZGlhbG9nIildCistCQlwdWJsaWMgc3RhdGljIEdMaWIu UGlkIHNob3dfZGlhbG9nIChzdHJpbmcgdHlwZSwgc3RyaW5nIG1lc3NhZ2UsIHN0cmluZz8gdGlt ZW91dCA9IG51bGwsIHN0cmluZz8gZGlzcGxheSA9IG51bGwsIHN0cmluZz8gb2tfdGV4dCA9IG51 bGwsIHN0cmluZz8gY2FuY2VsX3RleHQgPSBudWxsLCBzdHJpbmc/IGljb25fbmFtZSA9IG51bGws IGludCB0cmFuc2llbnRfZm9yID0gMCwgR0xpYi5TTGlzdDxzdHJpbmc+PyBjb2x1bW5zID0gbnVs bCwgR0xpYi5TTGlzdDxzdHJpbmc+PyBlbnRyaWVzID0gbnVsbCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3RvcGljX3JlYWwiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCB0b3BpY19yZWFsIChNZXRhLkRlYnVnVG9waWMgdG9waWMs IHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3Vuc2lnbmVkX2xvbmdfZXF1YWwiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgaW50IHVuc2lnbmVkX2xvbmdfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X3Vuc2lnbmVkX2xvbmdfaGFzaCIpXQorLQkJcHVibGljIHN0YXRpYyB1aW50IHVuc2lnbmVkX2xv bmdfaGFzaCAodm9pZCogdik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJtZXRhX3ZlcmJvc2VfcmVhbCIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkIHZlcmJvc2VfcmVhbCAoc3RyaW5nIGZvcm1hdCwgLi4uKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfd2FybmluZyIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIHdhcm5pbmcgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRh X2JhY2tlbmRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIEJhY2tlbmQg OiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgQmFja2VuZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21ldGEtYmFja2VuZC5oIiwgY25hbWUgPSAibWV0YV9nZXRfYmFja2VuZCIpXQor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQmFja2VuZCBnZXRfYmFja2VuZCAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3N0YWdlICgpOworLQkJcHVibGljIHZv aWQgbG9ja19sYXlvdXRfZ3JvdXAgKHVpbnQgaWR4KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9rZXlt YXAgKHN0cmluZyBsYXlvdXRzLCBzdHJpbmcgdmFyaWFudHMsIHN0cmluZyBvcHRpb25zKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBrZXltYXBfbGF5b3V0X2dyb3VwX2NoYW5nZWQgKHVpbnQgb2JqZWN0KTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChpbnQgb2JqZWN0KTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQuaCIsIHR5cGVf aWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNr Z3JvdW5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHVibGljIEJhY2tncm91bmQgKE1ldGEuU2NyZWVuIHNjcmVlbik7Cist CQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRf YmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxlIGZpbGUyLCBkb3VibGUgYmxlbmRfZmFj dG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworLQkJcHVibGljIHZvaWQgc2V0 X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9maWxlIChH TGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19k aXJlY3Rpb24sIENsdXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9y KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2NyZWVuIG1ldGFfc2Ny ZWVuIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFu Z2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfYWN0b3JfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRBY3RvciA6IENsdXR0ZXIuQWN0b3Is IEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwg Q2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kQWN0 b3IgKE1ldGEuU2NyZWVuIHNjcmVlbiwgaW50IG1vbml0b3IpOworLQkJcHVibGljIHZvaWQgc2V0 X2JhY2tncm91bmQgKE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kKTsKKy0JCXB1YmxpYyB2b2lk IHNldF92aWduZXR0ZSAoYm9vbCBlbmFibGVkLCBkb3VibGUgYnJpZ2h0bmVzcywgZG91YmxlIHNo YXJwbmVzcyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91 bmQgYmFja2dyb3VuZCB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBkb3VibGUgYnJpZ2h0bmVzcyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNjcmVlbiBtZXRhX3NjcmVlbiB7IG93bmVkIGdldDsg Y29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgbW9uaXRv ciB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBi b29sIHZpZ25ldHRlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGRvdWJsZSB2aWduZXR0ZV9zaGFycG5lc3MgeyBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oIiwgdHlw ZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNs YXNzIEJhY2tncm91bmRHcm91cCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1 dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kR3JvdXAgKCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiLCB0eXBl X2lkID0gIm1ldGFfYmFja2dyb3VuZF9pbWFnZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xh c3MgQmFja2dyb3VuZEltYWdlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tncm91bmRJbWFnZSAoKTsK Ky0JCXB1YmxpYyBib29sIGdldF9zdWNjZXNzICgpOworLQkJcHVibGljIHVub3duZWQgQ29nbC5U ZXh0dXJlIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIGJvb2wgaXNfbG9hZGVkICgpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGxvYWRlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIsIHR5cGVfaWQgPSAibWV0YV9i YWNrZ3JvdW5kX2ltYWdlX2NhY2hlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNr Z3JvdW5kSW1hZ2VDYWNoZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSAo KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkJhY2tncm91bmRJbWFnZUNhY2hlIGdl dF9kZWZhdWx0ICgpOworLQkJcHVibGljIE1ldGEuQmFja2dyb3VuZEltYWdlIGxvYWQgKEdMaWIu RmlsZSBmaWxlKTsKKy0JCXB1YmxpYyB2b2lkIHB1cmdlIChHTGliLkZpbGUgZmlsZSk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oIiwgdHlwZV9pZCA9 ICJtZXRhX2JhcnJpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhcnJpZXIgOiBH TGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CistCQlwcm90ZWN0ZWQgQmFycmllciAoKTsKKy0JCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7Cist CQlwdWJsaWMgYm9vbCBpc19hY3RpdmUgKCk7CistCQlwdWJsaWMgdm9pZCByZWxlYXNlIChNZXRh LkJhcnJpZXJFdmVudCBldmVudCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBN ZXRhLkJhcnJpZXJEaXJlY3Rpb24gZGlyZWN0aW9ucyB7IGdldDsgY29uc3RydWN0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVk IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQg eDEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg aW50IHgyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGludCB5MSB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBpbnQgeTIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lk IGhpdCAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxl ZnQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZy ZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZXZl bnRfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBCYXJyaWVyRXZl bnQgeworLQkJcHVibGljIGludCBkdDsKKy0JCXB1YmxpYyBkb3VibGUgZHg7CistCQlwdWJsaWMg ZG91YmxlIGR5OworLQkJcHVibGljIGludCBldmVudF9pZDsKKy0JCXB1YmxpYyBib29sIGdyYWJi ZWQ7CistCQlwdWJsaWMgYm9vbCByZWxlYXNlZDsKKy0JCXB1YmxpYyB1aW50MzIgdGltZTsKKy0J CXB1YmxpYyBkb3VibGUgeDsKKy0JCXB1YmxpYyBkb3VibGUgeTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLmgiKV0KKy0JW0NvbXBhY3RdCistCXB1 YmxpYyBjbGFzcyBDb21wb3NpdG9yIHsKKy0JCXB1YmxpYyB2b2lkIGFkZF93aW5kb3cgKE1ldGEu V2luZG93IHdpbmRvdyk7CistCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworLQkJcHVibGljIGJv b2wgZmlsdGVyX2tleWJpbmRpbmcgKE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0JCXB1Ymxp YyB2b2lkIGZsYXNoX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRh X2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGZvY3VzX3N0YWdl X3dpbmRvdyAoTWV0YS5TY3JlZW4gc2NyZWVuLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9 ICJtZXRhX2dldF9mZWVkYmFja19ncm91cF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX3NjcmVlbiAoTWV0 YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9zdGFnZV9mb3Jfc2NyZWVuIild CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3Rvcj8gZ2V0X3N0YWdlX2Zvcl9z Y3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfdG9wX3dpbmRv d19ncm91cF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5B Y3Rvcj8gZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVu KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfYWN0b3JzIildCistCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3dBY3Rvcj4/IGdldF93aW5kb3dfYWN0 b3JzIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19ncm91 cF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3Rvcj8g Z2V0X3dpbmRvd19ncm91cF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJcHVi bGljIHZvaWQgaGlkZV90aWxlX3ByZXZpZXcgKCk7CistCQlwdWJsaWMgdm9pZCBoaWRlX3dpbmRv dyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkNvbXBFZmZlY3QgZWZmZWN0KTsKKy0JCXB1Ymxp YyB2b2lkIG1hbmFnZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQ29tcG9zaXRvciBAbmV3IChN ZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlwdWJsaWMgdm9pZCBxdWV1ZV9mcmFtZV9kcmF3biAo TWV0YS5XaW5kb3cgd2luZG93LCBib29sIG5vX2RlbGF5X2ZyYW1lKTsKKy0JCXB1YmxpYyB2b2lk IHJlbW92ZV93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlwdWJsaWMgdm9pZCBzaG93 X3RpbGVfcHJldmlldyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLlJlY3RhbmdsZSB0aWxlX3Jl Y3QsIGludCB0aWxlX21vbml0b3JfbnVtYmVyKTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfd2luZG93 IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuQ29tcEVmZmVjdCBlZmZlY3QpOworLQkJcHVibGlj IHZvaWQgc2hvd193aW5kb3dfbWVudSAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01l bnVUeXBlIG1lbnUsIGludCB4LCBpbnQgeSk7CistCQlwdWJsaWMgdm9pZCBzaG93X3dpbmRvd19t ZW51X2Zvcl9yZWN0IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVu dSwgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaXplX2NoYW5nZV93aW5k b3cgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5TaXplQ2hhbmdlIHdoaWNoX2NoYW5nZSwgTWV0 YS5SZWN0YW5nbGUgb2xkX2ZyYW1lX3JlY3QsIE1ldGEuUmVjdGFuZ2xlIG9sZF9idWZmZXJfcmVj dCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIiwgY25hbWUgPSAibWV0YV9zdGFnZV9pc19mb2N1c2VkIildCistCQlwdWJsaWMgc3RhdGlj IGJvb2wgc3RhZ2VfaXNfZm9jdXNlZCAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCXB1YmxpYyB2 b2lkIHN3aXRjaF93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIGZyb20sIE1ldGEuV29ya3NwYWNl IHRvLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pOworLQkJcHVibGljIHZvaWQgc3lu Y19zdGFjayAoR0xpYi5MaXN0PE1ldGEuV2luZG93QWN0b3I+IHN0YWNrKTsKKy0JCXB1YmxpYyB2 b2lkIHN5bmNfdXBkYXRlc19mcm96ZW4gKE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlwdWJsaWMg dm9pZCBzeW5jX3dpbmRvd19nZW9tZXRyeSAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIGRpZF9w bGFjZW1lbnQpOworLQkJcHVibGljIHZvaWQgdW5tYW5hZ2UgKCk7CistCQlwdWJsaWMgdm9pZCB3 aW5kb3dfb3BhY2l0eV9jaGFuZ2VkIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZv aWQgd2luZG93X3NoYXBlX2NoYW5nZWQgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlwdWJsaWMg dm9pZCB3aW5kb3dfc3VyZmFjZV9jaGFuZ2VkIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCIs IHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfdHJhY2tlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgQ3Vyc29yVHJhY2tlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBDdXJzb3JUcmFja2VyICgpOwor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQ3Vyc29yVHJhY2tlciBnZXRfZm9yX3NjcmVl biAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9ob3QgKG91dCBpbnQg eCwgb3V0IGludCB5KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyIChpbnQgeCwgaW50IHks IENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZHMpOworLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0 dXJlIGdldF9zcHJpdGUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl92aXNpYmxlIChi b29sIHZpc2libGUpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIHR5cGVf aWQgPSAibWV0YV9kaXNwbGF5X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBEaXNwbGF5 IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIERpc3BsYXkgKCk7CistCQlwdWJsaWMgdm9pZCBhZGRfaWdub3Jl ZF9jcm9zc2luZ19zZXJpYWwgKHVsb25nIHNlcmlhbCk7CistCQlwdWJsaWMgdWludCBhZGRfa2V5 YmluZGluZyAoc3RyaW5nIG5hbWUsIEdMaWIuU2V0dGluZ3Mgc2V0dGluZ3MsIE1ldGEuS2V5Qmlu ZGluZ0ZsYWdzIGZsYWdzLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5jIGhhbmRsZXIpOworLQkJ cHVibGljIGJvb2wgYmVnaW5fZ3JhYl9vcCAoTWV0YS5TY3JlZW4gc2NyZWVuLCBNZXRhLldpbmRv dyB3aW5kb3csIE1ldGEuR3JhYk9wIG9wLCBib29sIHBvaW50ZXJfYWxyZWFkeV9ncmFiYmVkLCBi b29sIGZyYW1lX2FjdGlvbiwgaW50IGJ1dHRvbiwgdWxvbmcgbW9kbWFzaywgdWludDMyIHRpbWVz dGFtcCwgaW50IHJvb3RfeCwgaW50IHJvb3RfeSk7CistCQlwdWJsaWMgdm9pZCBjbGVhcl9tb3Vz ZV9tb2RlICgpOworLQkJcHVibGljIHZvaWQgZW5kX2dyYWJfb3AgKHVpbnQzMiB0aW1lc3RhbXAp OworLQkJcHVibGljIHZvaWQgZm9jdXNfdGhlX25vX2ZvY3VzX3dpbmRvdyAoTWV0YS5TY3JlZW4g c2NyZWVuLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWV6ZV9rZXlib2Fy ZCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkNvbXBvc2l0b3Ig Z2V0X2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF9jdXJyZW50X3RpbWUgKCk7 CistCQlwdWJsaWMgdWludDMyIGdldF9jdXJyZW50X3RpbWVfcm91bmR0cmlwICgpOworLQkJcHVi bGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh LldpbmRvdyBnZXRfZm9jdXNfd2luZG93ICgpOworLQkJcHVibGljIE1ldGEuR3JhYk9wIGdldF9n cmFiX29wICgpOworLQkJcHVibGljIHVpbnQgZ2V0X2tleWJpbmRpbmdfYWN0aW9uICh1aW50IGtl eWNvZGUsIHVsb25nIG1hc2spOworLQkJcHVibGljIHVpbnQzMiBnZXRfbGFzdF91c2VyX3RpbWUg KCk7CistCQlwdWJsaWMgaW50IGdldF9zaGFwZV9ldmVudF9iYXNlICgpOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9jdXJyZW50IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0 YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldp bmRvdz4gZ2V0X3RhYl9saXN0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2U/IHdv cmtzcGFjZSk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX25leHQgKE1l dGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIE1ldGEuV2luZG93PyB3 aW5kb3csIGJvb2wgYmFja3dhcmQpOworLQkJcHVibGljIHVub3duZWQgWC5EaXNwbGF5IGdldF94 ZGlzcGxheSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3hpbnB1dF9vcGNvZGUgKCk7CistCQlwdWJs aWMgdWludCBncmFiX2FjY2VsZXJhdG9yIChzdHJpbmcgYWNjZWxlcmF0b3IpOworLQkJcHVibGlj IGJvb2wgaGFzX3NoYXBlICgpOworLQkJcHVibGljIGJvb2wgaXNfcG9pbnRlcl9lbXVsYXRpbmdf c2VxdWVuY2UgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UpOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5Hcm91cCBsb29rdXBfZ3JvdXAgKFguV2luZG93IGdyb3VwX2xlYWRlcik7Cist CQlwdWJsaWMgYm9vbCByZW1vdmVfa2V5YmluZGluZyAoc3RyaW5nIG5hbWUpOworLQkJcHVibGlj IHZvaWQgc2V0X2lucHV0X2ZvY3VzX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIGZv Y3VzX2ZyYW1lLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsg TWV0YS5XaW5kb3c+IHNvcnRfd2luZG93c19ieV9zdGFja2luZyAoR0xpYi5TTGlzdDxNZXRhLldp bmRvdz4gd2luZG93cyk7CistCQlwdWJsaWMgYm9vbCBzdXBwb3J0c19leHRlbmRlZF9iYXJyaWVy cyAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuZnJlZXplX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyBib29sIHVuZ3JhYl9hY2NlbGVyYXRvciAodWludCBhY3Rpb25faWQpOwor LQkJcHVibGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyB2b2lkIHVubWFuYWdlX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuLCB1aW50MzIgdGlt ZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHhzZXJ2ZXJfdGltZV9pc19iZWZvcmUgKHVpbnQzMiB0 aW1lMSwgdWludDMyIHRpbWUyKTsKKy0JCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1 c193aW5kb3cgKFguV2luZG93IHh3aW5kb3cpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2Vs ZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIHVpbnQgcDAsIHVpbnQgcDEpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEuU2NyZWVuIG9iamVjdCwgTWV0YS5X aW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29w X2VuZCAoTWV0YS5TY3JlZW4gb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEp OworLQkJcHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVyYXRvcl9hY3RpdmF0ZWQg KCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7CistCQlwdWJsaWMgc2ln bmFsIGJvb2wgcmVzdGFydCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc2l6ZV9w b3B1cCAoYm9vbCBvYmplY3QsIE1ldGEuUmVjdGFuZ2xlIHAwLCBpbnQgcDEsIGludCBwMik7Cist CQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXN0YXJ0X21lc3NhZ2UgKHN0cmluZz8gbWVzc2Fn ZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2NyZWF0ZWQgKE1ldGEuV2luZG93IG9i amVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2RlbWFuZHNfYXR0ZW50aW9uIChN ZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19tYXJrZWRf dXJnZW50IChNZXRhLldpbmRvdyBvYmplY3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgRnJh bWUgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2dyb3VwLmgiKV0K Ky0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBHcm91cCB7CistCQlwdWJsaWMgaW50IGdldF9z aXplICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGFydHVwX2lkICgpOworLQkJ cHVibGljIEdMaWIuU0xpc3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgpOworLQkJ cHVibGljIGJvb2wgcHJvcGVydHlfbm90aWZ5IChYLkV2ZW50IGV2ZW50KTsKKy0JCXB1YmxpYyB2 b2lkIHVwZGF0ZV9sYXllcnMgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV9pZGxlX21vbml0b3Jf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIElkbGVNb25pdG9yIDogR0xpYi5PYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIElkbGVNb25pdG9yICgpOworLQkJcHVibGljIHVpbnQgYWRkX2lkbGVfd2F0Y2ggKHVpbnQ2 NCBpbnRlcnZhbF9tc2VjLCBvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFj ayk7CistCQlwdWJsaWMgdWludCBhZGRfdXNlcl9hY3RpdmVfd2F0Y2ggKG93bmVkIE1ldGEuSWRs ZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBN ZXRhLklkbGVNb25pdG9yIGdldF9jb3JlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1l dGEuSWRsZU1vbml0b3IgZ2V0X2Zvcl9kZXZpY2UgKGludCBkZXZpY2VfaWQpOworLQkJcHVibGlj IGludDY0IGdldF9pZGxldGltZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV93YXRjaCAodWlu dCBpZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgZGV2aWNlX2lkIHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9rZXliaW5kaW5ncy5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1 bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19nZXRf dHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEtleUJpbmRpbmcgeworLQkJ cHVibGljIHVpbnQgZ2V0X21hc2sgKCk7CistCQlwdWJsaWMgTWV0YS5WaXJ0dWFsTW9kaWZpZXIg Z2V0X21vZGlmaWVycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsK Ky0JCXB1YmxpYyBib29sIGlzX2J1aWx0aW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19yZXZlcnNl ZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2tleWJpbmRpbmdzLmgi LCBjbmFtZSA9ICJtZXRhX2tleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciIpXQorLQkJcHVi bGljIHN0YXRpYyBib29sIHNldF9jdXN0b21faGFuZGxlciAoc3RyaW5nIG5hbWUsIG93bmVkIE1l dGEuS2V5SGFuZGxlckZ1bmM/IGhhbmRsZXIpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfbW9u aXRvcl9tYW5hZ2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBNb25p dG9yTWFuYWdlciA6IEdMaWIuREJ1c0ludGVyZmFjZVNrZWxldG9uLCBHTGliLkRCdXNJbnRlcmZh Y2UgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJv dGVjdGVkIE1vbml0b3JNYW5hZ2VyICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEu TW9uaXRvck1hbmFnZXIgQGdldCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfZm9yX291 dHB1dCAodWludCBpZCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY29uZmlybV9kaXNwbGF5X2No YW5nZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBs dWdpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3BsdWdpbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg YWJzdHJhY3QgY2xhc3MgUGx1Z2luIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFBsdWdpbiAoKTsKKy0JCXB1 YmxpYyBib29sIGJlZ2luX21vZGFsIChNZXRhLk1vZGFsT3B0aW9ucyBvcHRpb25zLCB1aW50MzIg dGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGNvbXBsZXRlX2Rpc3BsYXlfY2hhbmdlIChib29s IG9rKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbmZpcm1fZGlz cGxheV9jaGFuZ2UgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBk ZXN0cm95IChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGRlc3Ryb3lf Y29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9t b2RhbCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlBsdWdpbklu Zm8/IGdldF9pbmZvICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5TY3JlZW4gZ2V0X3NjcmVl biAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGhpZGVfdGlsZV9w cmV2aWV3ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wga2V5Ymlu ZGluZ19maWx0ZXIgKE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfc3dpdGNoX3dvcmtzcGFjZSAoKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfd2luZG93X2VmZmVjdHMgKE1ldGEu V2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHN0YXRpYyB2b2lkIG1hbmFnZXJfc2V0X3Bs dWdpbl90eXBlIChHTGliLlR5cGUgZ3R5cGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgbWFwIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lk IG1hcF9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWluaW1pemUgKE1ldGEuV2luZG93QWN0b3IgYWN0b3Ip OworLQkJcHVibGljIHZvaWQgbWluaW1pemVfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFj dG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIE1ldGEuUGx1 Z2luSW5mbz8gcGx1Z2luX2luZm8gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgdm9pZCBzaG93X3RpbGVfcHJldmlldyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLlJlY3Rh bmdsZSB0aWxlX3JlY3QsIGludCB0aWxlX21vbml0b3JfbnVtYmVyKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfd2luZG93X21lbnUgKE1ldGEuV2luZG93IHdp bmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBpbnQgeCwgaW50IHkpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd193aW5kb3dfbWVudV9mb3JfcmVjdCAo TWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1lbnUsIE1ldGEuUmVjdGFu Z2xlIHJlY3QpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2l6ZV9j aGFuZ2UgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IsIE1ldGEuU2l6ZUNoYW5nZSB3aGljaF9jaGFu Z2UsIE1ldGEuUmVjdGFuZ2xlIG9sZF9mcmFtZV9yZWN0LCBNZXRhLlJlY3RhbmdsZSBvbGRfYnVm ZmVyX3JlY3QpOworLQkJcHVibGljIHZvaWQgc2l6ZV9jaGFuZ2VfY29tcGxldGVkIChNZXRhLldp bmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lk IHN0YXJ0ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3dpdGNo X3dvcmtzcGFjZSAoaW50IGZyb20sIGludCB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0 aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRjaF93b3Jrc3BhY2VfY29tcGxldGVkICgpOworLSAJ CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVubWluaW1pemUgKE1ldGEuV2lu ZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgdW5taW5pbWl6ZV9jb21wbGV0ZWQgKE1l dGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IGJvb2wgeGV2ZW50X2ZpbHRlciAoWC5FdmVudCBldmVudCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvc2NyZWVuLmgiLCB0eXBlX2lkID0gIm1ldGFfc2NyZWVuX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTY3JlZW4gOiBHTGliLk9iamVjdCB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU2Ny ZWVuICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGFwcGVuZF9uZXdfd29y a3NwYWNlIChib29sIGFjdGl2YXRlLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lk IGZvY3VzX2RlZmF1bHRfd2luZG93ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29ya3NwYWNlICgpOworLQkJcHVibGljIGlu dCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2N1cnJl bnRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2N1cnJlbnRfbW9uaXRvcl9mb3JfcG9z IChpbnQgeCwgaW50IHkpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNw bGF5ICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9tb25pdG9yX2dlb21ldHJ5IChp bnQgbW9uaXRvcik7CistCQlwdWJsaWMgYm9vbCBnZXRfbW9uaXRvcl9pbl9mdWxsc2NyZWVuIChp bnQgbW9uaXRvcik7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2luZGV4X2Zvcl9yZWN0IChN ZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfbmVpZ2hib3Jf aW5kZXggKGludCB3aGljaF9tb25pdG9yLCBNZXRhLlNjcmVlbkRpcmVjdGlvbiBkaXIpOworLQkJ cHVibGljIGludCBnZXRfbl9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fd29ya3Nw YWNlcyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3ByaW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1Ymxp YyBpbnQgZ2V0X3NjcmVlbl9udW1iZXIgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc2l6ZSAob3V0 IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jr c3BhY2U/IGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CistCQlwdWJsaWMgdW5v d25lZCBHTGliLkxpc3Q8TWV0YS5Xb3Jrc3BhY2U+IGdldF93b3Jrc3BhY2VzICgpOworLQkJcHVi bGljIFguV2luZG93IGdldF94cm9vdCAoKTsKKy0JCXB1YmxpYyB2b2lkIG92ZXJyaWRlX3dvcmtz cGFjZV9sYXlvdXQgKE1ldGEuU2NyZWVuQ29ybmVyIHN0YXJ0aW5nX2Nvcm5lciwgYm9vbCB2ZXJ0 aWNhbF9sYXlvdXQsIGludCBuX3Jvd3MsIGludCBuX2NvbHVtbnMpOworLQkJcHVibGljIHZvaWQg cmVtb3ZlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCB1aW50MzIgdGltZXN0 YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7CistCQlwdWJsaWMgdm9p ZCBzZXRfY3Vyc29yIChNZXRhLkN1cnNvciBjdXJzb3IpOworLQkJcHVibGljIGludCBuX3dvcmtz cGFjZXMgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBpbl9mdWxsc2NyZWVuX2NoYW5n ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZCAoKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCByZXN0YWNrZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3Rh cnR1cF9zZXF1ZW5jZV9jaGFuZ2VkICh2b2lkKiBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHdpbmRvd19lbnRlcmVkX21vbml0b3IgKGludCBvYmplY3QsIE1ldGEuV2luZG93IHAwKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbGVmdF9tb25pdG9yIChpbnQgb2JqZWN0LCBN ZXRhLldpbmRvdyBwMCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya2FyZWFzX2NoYW5nZWQg KCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2FkZGVkIChpbnQgb2JqZWN0KTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAoaW50IG9iamVjdCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQg cDAsIE1ldGEuTW90aW9uRGlyZWN0aW9uIHAxKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCByZWZfZnVuY3Rpb24gPSAibWV0 YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAoKSIsIHVucmVm X2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCistCVtDb21wYWN0XQorLQlwdWJsaWMg Y2xhc3MgU2hhZG93IHsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKGludCB3aW5kb3dfeCwg aW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwgQ2Fpcm8u UmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMgdm9pZCBwYWludCAoaW50IHdpbmRvd194 LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50 OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7CistCQlw dWJsaWMgTWV0YS5TaGFkb3cgQHJlZiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZmFjdG9yeV9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgU2hhZG93RmFjdG9yeSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBTaGFkb3dGYWN0b3J5ICgpOwor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuU2hhZG93RmFjdG9yeSBnZXRfZGVmYXVsdCAo KTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvd1BhcmFtcyBnZXRfcGFyYW1zIChzdHJpbmcgY2xhc3Nf bmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvdyBnZXRfc2hhZG93IChN ZXRhLldpbmRvd1NoYXBlIHNoYXBlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHN0cmluZyBjbGFz c19uYW1lLCBib29sIGZvY3VzZWQpOworLQkJcHVibGljIHZvaWQgc2V0X3BhcmFtcyAoc3RyaW5n IGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCwgTWV0YS5TaGFkb3dQYXJhbXMgQHBhcmFtcyk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgiLCB0eXBlX2lkID0gIm1ldGFf c2hhcGVkX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYXBlZFRleHR1 cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwg Q2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU2hhcGVkVGV4dHVyZSAo KTsKKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50 IGNsaXApOworLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJlICgpOwor LQkJcHVibGljIHZvaWQgc2V0X2NyZWF0ZV9taXBtYXBzIChib29sIGNyZWF0ZV9taXBtYXBzKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9tYXNrX3RleHR1cmUgKENvZ2wuVGV4dHVyZSBtYXNrX3RleHR1 cmUpOworLQkJcHVibGljIHZvaWQgc2V0X29wYXF1ZV9yZWdpb24gKG93bmVkIENhaXJvLlJlZ2lv biBvcGFxdWVfcmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIHVwZGF0ZV9hcmVhIChpbnQgeCwgaW50 IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9j aGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3RoZW1l LmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBUaGVtZSB7CistCQlwdWJsaWMgdm9p ZCBmcmVlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIild CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5UaGVtZSBnZXRfZGVmYXVsdCAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIE1ldGEuVGhlbWUgQG5ldyAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRvdyA6IEdMaWIuT2JqZWN0IHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3Rl ZCBXaW5kb3cgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZSAodWludDMyIGN1cnJlbnRfdGlt ZSk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZV93aXRoX3dvcmtzcGFjZSAodWludDMyIGN1cnJl bnRfdGltZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyBib29sIGFsbG93 c19tb3ZlICgpOworLQkJcHVibGljIGJvb2wgYWxsb3dzX3Jlc2l6ZSAoKTsKKy0JCXB1YmxpYyB2 b2lkIGJlZ2luX2dyYWJfb3AgKE1ldGEuR3JhYk9wIG9wLCBib29sIGZyYW1lX2FjdGlvbiwgdWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCBjYW5fY2xvc2UgKCk7CistCQlwdWJsaWMg Ym9vbCBjYW5fbWF4aW1pemUgKCk7CistCQlwdWJsaWMgYm9vbCBjYW5fbWluaW1pemUgKCk7Cist CQlwdWJsaWMgYm9vbCBjYW5fc2hhZGUgKCk7CistCQlwdWJsaWMgdm9pZCBjaGFuZ2Vfd29ya3Nw YWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIHZvaWQgY2hhbmdlX3dv cmtzcGFjZV9ieV9pbmRleCAoaW50IHNwYWNlX2luZGV4LCBib29sIGFwcGVuZCk7CistCQlwdWJs aWMgdm9pZCBjaGVja19hbGl2ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgTWV0YS5S ZWN0YW5nbGUgY2xpZW50X3JlY3RfdG9fZnJhbWVfcmVjdCAoTWV0YS5SZWN0YW5nbGUgY2xpZW50 X3JlY3QpOworLQkJcHVibGljIHZvaWQgY29tcHV0ZV9ncm91cCAoKTsKKy0JCXB1YmxpYyB2b2lk IEBkZWxldGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5k b3cgZmluZF9yb290X2FuY2VzdG9yICgpOworLQkJcHVibGljIHZvaWQgZm9jdXMgKHVpbnQzMiB0 aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZm9yZWFjaF9hbmNlc3RvciAoTWV0YS5XaW5kb3dG b3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfdHJhbnNpZW50IChNZXRh LldpbmRvd0ZvcmVhY2hGdW5jIGZ1bmMpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGZyYW1l X3JlY3RfdG9fY2xpZW50X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGZyYW1lX3JlY3QpOworLQkJW0ND b2RlIChhcnJheV9sZW5ndGhfcG9zID0gMC4xLCBhcnJheV9sZW5ndGhfdHlwZSA9ICJnc2l6ZSIp XQorLQkJcHVibGljIGludFtdIGdldF9hbGxfbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgTWV0YS5S ZWN0YW5nbGUgZ2V0X2J1ZmZlcl9yZWN0ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9jbGllbnRfbWFjaGluZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9j b21wb3NpdG9yX3ByaXZhdGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Rlc2Ny aXB0aW9uICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNwbGF5ICgp OworLQkJcHVibGljIHVub3duZWQgTWV0YS5GcmFtZSBnZXRfZnJhbWUgKCk7CistCQlwdWJsaWMg dW5vd25lZCBDYWlyby5SZWdpb24/IGdldF9mcmFtZV9ib3VuZHMgKCk7CistCQlwdWJsaWMgTWV0 YS5SZWN0YW5nbGUgZ2V0X2ZyYW1lX3JlY3QgKCk7CistCQlwdWJsaWMgTWV0YS5GcmFtZVR5cGUg Z2V0X2ZyYW1lX3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkdyb3VwIGdldF9ncm91 cCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2FwcF9tZW51X29iamVjdF9w YXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfYXBwbGljYXRpb25faWQg KCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBsaWNhdGlvbl9vYmplY3Rf cGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX21lbnViYXJfb2JqZWN0 X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a190aGVtZV92YXJpYW50 ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfdW5pcXVlX2J1c19uYW1lICgp OworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfd2luZG93X29iamVjdF9wYXRoICgp OworLQkJcHVibGljIGJvb2wgZ2V0X2ljb25fZ2VvbWV0cnkgKG91dCBNZXRhLlJlY3RhbmdsZSBy ZWN0KTsKKy0JCXB1YmxpYyBNZXRhLlN0YWNrTGF5ZXIgZ2V0X2xheWVyICgpOworLQkJcHVibGlj IE1ldGEuTWF4aW1pemVGbGFncyBnZXRfbWF4aW1pemVkICgpOworLQkJcHVibGljIGludCBnZXRf bW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbXV0dGVyX2hpbnRzICgp OworLQkJcHVibGljIGludCBnZXRfcGlkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9yb2xlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5TY3JlZW4gZ2V0X3NjcmVlbiAoKTsK Ky0JCXB1YmxpYyB1aW50IGdldF9zdGFibGVfc2VxdWVuY2UgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X3N0YXJ0dXBfaWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRv dz8gZ2V0X3RpbGVfbWF0Y2ggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RpdGxl ICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RyYW5zaWVudF9mb3IgKCk7 CistCQlwdWJsaWMgdWludDMyIGdldF91c2VyX3RpbWUgKCk7CistCQlwdWJsaWMgTWV0YS5XaW5k b3dUeXBlIGdldF93aW5kb3dfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf d21fY2xhc3MgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3dtX2NsYXNzX2luc3Rh bmNlICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfYWxsX21vbml0 b3JzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfY3VycmVudF9t b25pdG9yICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfZm9yX21v bml0b3IgKGludCB3aGljaF9tb25pdG9yKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3Nw YWNlIGdldF93b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3h3aW5kb3cgKCk7 CistCQlwdWJsaWMgdm9pZCBncm91cF9sZWFkZXJfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBib29s IGhhc19mb2N1cyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Fib3ZlICgpOworLQkJcHVibGljIGJv b2wgaXNfYWx3YXlzX29uX2FsbF93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIGJvb2wgaXNfYW5j ZXN0b3Jfb2ZfdHJhbnNpZW50IChNZXRhLldpbmRvdyB0cmFuc2llbnQpOworLQkJcHVibGljIGJv b2wgaXNfYXR0YWNoZWRfZGlhbG9nICgpOworLQkJcHVibGljIGJvb2wgaXNfZnVsbHNjcmVlbiAo KTsKKy0JCXB1YmxpYyBib29sIGlzX2hpZGRlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX21vbml0 b3Jfc2l6ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0J CXB1YmxpYyBib29sIGlzX29uX3ByaW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIGlz X292ZXJyaWRlX3JlZGlyZWN0ICgpOworLQkJcHVibGljIGJvb2wgaXNfcmVtb3RlICgpOworLQkJ cHVibGljIGJvb2wgaXNfc2NyZWVuX3NpemVkICgpOworLQkJcHVibGljIGJvb2wgaXNfc2hhZGVk ICgpOworLQkJcHVibGljIGJvb2wgaXNfc2tpcF90YXNrYmFyICgpOworLQkJcHVibGljIHZvaWQg a2lsbCAoKTsKKy0JCXB1YmxpYyBib29sIGxvY2F0ZWRfb25fd29ya3NwYWNlIChNZXRhLldvcmtz cGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIHZvaWQgbG93ZXIgKCk7CistCQlwdWJsaWMgdm9p ZCBtYWtlX2Fib3ZlICgpOworLQkJcHVibGljIHZvaWQgbWFrZV9mdWxsc2NyZWVuICgpOworLQkJ cHVibGljIHZvaWQgbWF4aW1pemUgKE1ldGEuTWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0J CXB1YmxpYyB2b2lkIG1pbmltaXplICgpOworLQkJcHVibGljIHZvaWQgbW92ZV9mcmFtZSAoYm9v bCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBpbnQgcm9vdF95X253KTsKKy0JCXB1YmxpYyB2b2lk IG1vdmVfcmVzaXplX2ZyYW1lIChib29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGludCByb290 X3lfbncsIGludCB3LCBpbnQgaCk7CistCQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0b3IgKGlu dCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJhaXNlICgpOworLQkJcHVibGljIGJvb2wgcmVx dWVzdGVkX2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2Rv bnRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9zaXRvcl9w cml2YXRlIChHTGliLk9iamVjdCBwcml2KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0 dGVudGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pY29uX2dlb21ldHJ5IChNZXRhLlJlY3Rh bmdsZT8gcmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaGFkZSAodWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgdm9pZCBzaG92ZV90aXRsZWJhcl9vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29s IHNob3dpbmdfb25faXRzX3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNodXRkb3duX2dy b3VwICgpOworLQkJcHVibGljIHZvaWQgc3RpY2sgKCk7CistCQlwdWJsaWMgYm9vbCB0aXRsZWJh cl9pc19vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9hYm92ZSAoKTsKKy0JCXB1 YmxpYyB2b2lkIHVubWFrZV9mdWxsc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgdW5tYXhpbWl6 ZSAoTWV0YS5NYXhpbWl6ZUZsYWdzIGRpcmVjdGlvbnMpOworLQkJcHVibGljIHZvaWQgdW5taW5p bWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworLQkJ cHVibGljIHZvaWQgdW5zaGFkZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCB1 bnN0aWNrICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBhYm92ZSB7 IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBhcHBlYXJzX2Zv Y3VzZWQgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGVj b3JhdGVkIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRl bWFuZHNfYXR0ZW50aW9uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBib29sIGZ1bGxzY3JlZW4geyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcF9tZW51 X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBsaWNhdGlvbl9p ZCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGgg eyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX21lbnViYXJfb2JqZWN0X3BhdGggeyBnZXQ7 IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX3VuaXF1ZV9idXNfbmFtZSB7IGdldDsgfQorLQkJcHVi bGljIHN0cmluZyBndGtfd2luZG93X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGljb24geyBvd25lZCBnZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWF4aW1pemVkX2hvcml6b250YWxs eSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBtYXhpbWl6 ZWRfdmVydGljYWxseSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg Q2Fpcm8uU3VyZmFjZSBtaW5pX2ljb24geyBvd25lZCBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGJvb2wgbWluaW1pemVkIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5n IG11dHRlcl9oaW50cyB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg Ym9vbCBvbl9hbGxfd29ya3NwYWNlcyB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgYm9vbCByZXNpemVhYmxlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBib29sIHNraXBfdGFza2JhciB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyB0 aXRsZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCB1cmdl bnQgeyBnZXQ7IH0KKy0JCXB1YmxpYyB1aW50IHVzZXJfdGltZSB7IGdldDsgfQorLQkJcHVibGlj IE1ldGEuV2luZG93VHlwZSB3aW5kb3dfdHlwZSB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyB3 bV9jbGFzcyB7IGdldDsgfQorLQkJW0NDb2RlIChjbmFtZSA9ICJmb2N1cyIpXQorLQkJcHVibGlj IHNpZ25hbCB2b2lkIGZvY3VzZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcG9zaXRpb25f Y2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByYWlzZWQgKCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHVubWFu YWdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o IiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0 ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQg V2luZG93QWN0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93 aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgp OworLQkJcHVibGljIFguV2luZG93IGdldF94X3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBib29sIGlz X2Rlc3Ryb3llZCAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHN0cmluZyBz aGFkb3dfY2xhc3MgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgTWV0YS5TaGFkb3dNb2RlIHNoYWRvd19tb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhX3dpbmRvd19zaGFwZS5oIiwgcmVmX2Z1bmN0aW9uID0gIm1l dGFfd2luZG93X3NoYXBlX3JlZiIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfc2hhcGVfZ2V0X3R5 cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3dpbmRvd19zaGFwZV91bnJlZiIpXQorLQlb Q29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFdpbmRvd1NoYXBlIHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBXaW5kb3dTaGFwZSAoQ2Fpcm8u UmVnaW9uIHJlZ2lvbik7CistCQlwdWJsaWMgYm9vbCBlcXVhbCAoTWV0YS5XaW5kb3dTaGFwZSBz aGFwZV9iKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3JkZXJzIChpbnQgYm9yZGVyX3RvcCwgaW50 IGJvcmRlcl9yaWdodCwgaW50IGJvcmRlcl9ib3R0b20sIGludCBib3JkZXJfbGVmdCk7CistCQlw dWJsaWMgdWludCBoYXNoICgpOworLQkJcHVibGljIE1ldGEuV2luZG93U2hhcGUgQHJlZiAoKTsK Ky0JCXB1YmxpYyBDYWlyby5SZWdpb24gdG9fcmVnaW9uIChpbnQgY2VudGVyX3dpZHRoLCBpbnQg Y2VudGVyX2hlaWdodCk7CistCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV93 b3Jrc3BhY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdvcmtzcGFjZSA6IEdMaWIu T2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CXByb3RlY3RlZCBXb3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZSAodWludDMy IHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZV93aXRoX2ZvY3VzIChNZXRhLldp bmRvdyBmb2N1c190aGlzLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1l dGEuV29ya3NwYWNlIGdldF9uZWlnaGJvciAoTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9u KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVuIGdldF9zY3JlZW4gKCk7CistCQlwdWJs aWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7CistCQlwdWJs aWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdoaWNoX21v bml0b3IpOworLQkJcHVibGljIGludCBpbmRleCAoKTsKKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2Vh ayBNZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgpOworLQkJcHVibGljIHZvaWQgc2V0X2J1aWx0 aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ+IHN0cnV0cyk7CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG5fd2luZG93cyB7IGdldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgdWludCB3b3Jrc3BhY2VfaW5kZXggeyBnZXQ7IH0KKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfYWRkZWQgKE1ldGEuV2luZG93IG9iamVjdCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X3JlbW92ZWQgKE1ldGEuV2luZG93IG9iamVjdCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBCdXR0b25MYXlvdXQgeworLQkJW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldCist CQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uW10gbGVmdF9idXR0b25zOworLQkJW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSld CistCQlwdWJsaWMgd2VhayBib29sW10gbGVmdF9idXR0b25zX2hhc19zcGFjZXI7CistCQlbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0K Ky0JCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb25bXSByaWdodF9idXR0b25zOworLQkJ W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1 ZSldCistCQlwdWJsaWMgd2VhayBib29sW10gcmlnaHRfYnV0dG9uc19oYXNfc3BhY2VyOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBFZGdlIHsKKy0JCXB1YmxpYyBNZXRhLlJlY3Rh bmdsZSByZWN0OworLQkJcHVibGljIE1ldGEuU2lkZSBzaWRlX3R5cGU7CistCQlwdWJsaWMgTWV0 YS5FZGdlVHlwZSBlZGdlX3R5cGU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBG cmFtZUJvcmRlcnMgeworLQkJcHVibGljIEd0ay5Cb3JkZXIgdmlzaWJsZTsKKy0JCXB1YmxpYyBH dGsuQm9yZGVyIGludmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHRvdGFsOworLQkJcHVi bGljIHZvaWQgY2xlYXIgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0 IFBsdWdpbkluZm8geworLQkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7CistCQlwdWJsaWMgd2Vh ayBzdHJpbmcgdmVyc2lvbjsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBhdXRob3I7CistCQlwdWJs aWMgd2VhayBzdHJpbmcgbGljZW5zZTsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBkZXNjcmlwdGlv bjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luVmVyc2lvbiB7 CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21ham9yOworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9t aW5vcjsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWljcm87CistCQlwdWJsaWMgdWludCB2ZXJz aW9uX2FwaTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xlIHsKKy0J CXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyBpbnQgd2lkdGg7Cist CQlwdWJsaWMgaW50IGhlaWdodDsKKy0JCXB1YmxpYyBpbnQgYXJlYSAoKTsKKy0JCXB1YmxpYyBi b29sIGNvbnRhaW5zX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGlubmVyX3JlY3QpOworLQkJcHVibGlj IGJvb2wgY291bGRfZml0X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGlubmVyX3JlY3QpOworLQkJcHVi bGljIGJvb2wgZXF1YWwgKE1ldGEuUmVjdGFuZ2xlIHNyYzIpOworLQkJcHVibGljIGJvb2wgaG9y aXpfb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIGJvb2wgaW50ZXJz ZWN0IChNZXRhLlJlY3RhbmdsZSBzcmMyLCBvdXQgTWV0YS5SZWN0YW5nbGUgZGVzdCk7CistCQlw dWJsaWMgYm9vbCBvdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgTWV0 YS5SZWN0YW5nbGUgdW5pb24gKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBib29s IHZlcnRfb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFNoYWRvd1BhcmFtcyB7CistCQlwdWJsaWMgaW50 IHJhZGl1czsKKy0JCXB1YmxpYyBpbnQgdG9wX2ZhZGU7CistCQlwdWJsaWMgaW50IHhfb2Zmc2V0 OworLQkJcHVibGljIGludCB5X29mZnNldDsKKy0JCXB1YmxpYyB1aW50OCBvcGFjaXR5OworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTdHJ1dCB7CistCQlwdWJsaWMgTWV0YS5SZWN0 YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgiLCBjcHJlZml4ID0gIk1FVEFfQkFSUklF Ul9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dldF90eXBl ICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gQmFycmllckRpcmVjdGlvbiB7CistCQlQ T1NJVElWRV9YLAorLQkJUE9TSVRJVkVfWSwKKy0JCU5FR0FUSVZFX1gsCistCQlORUdBVElWRV9Z CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJl Zml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVu Y3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQnV0dG9uRnVuY3Rpb24geworLQkJ TUVOVSwKKy0JCU1JTklNSVpFLAorLQkJTUFYSU1JWkUsCistCQlDTE9TRSwKKy0JCVNIQURFLAor LQkJQUJPVkUsCistCQlTVElDSywKKy0JCVVOU0hBREUsCistCQlVTkFCT1ZFLAorLQkJVU5TVElD SywKKy0JCUFQUE1FTlUsCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tcG9zaXRvci5oIiwgY3ByZWZpeCA9ICJNRVRBX0NPTVBfRUZGRUNUXyIsIHR5 cGVfaWQgPSAibWV0YV9jb21wX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBD b21wRWZmZWN0IHsKKy0JCUNSRUFURSwKKy0JCVVOTUlOSU1JWkUsCistCQlERVNUUk9ZLAorLQkJ TUlOSU1JWkUsCistCQlOT05FCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAibWV0YV9j dXJzb3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ3Vyc29yIHsKKy0JCU5PTkUsCist CQlERUZBVUxULAorLQkJTk9SVEhfUkVTSVpFLAorLQkJU09VVEhfUkVTSVpFLAorLQkJV0VTVF9S RVNJWkUsCistCQlFQVNUX1JFU0laRSwKKy0JCVNFX1JFU0laRSwKKy0JCVNXX1JFU0laRSwKKy0J CU5FX1JFU0laRSwKKy0JCU5XX1JFU0laRSwKKy0JCU1PVkVfT1JfUkVTSVpFX1dJTkRPVywKKy0J CUJVU1ksCistCQlETkRfSU5fRFJBRywKKy0JCURORF9NT1ZFLAorLQkJRE5EX0NPUFksCistCQlE TkRfVU5TVVBQT1JURURfVEFSR0VULAorLQkJUE9JTlRJTkdfSEFORCwKKy0JCUNST1NTSEFJUiwK Ky0JCUlCRUFNLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lkID0gIm1ldGFfZGVi dWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBEZWJ1Z1Rv cGljIHsKKy0JCVZFUkJPU0UsCistCQlGT0NVUywKKy0JCVdPUktBUkVBLAorLQkJU1RBQ0ssCist CQlUSEVNRVMsCistCQlTTSwKKy0JCUVWRU5UUywKKy0JCVdJTkRPV19TVEFURSwKKy0JCVdJTkRP V19PUFMsCistCQlHRU9NRVRSWSwKKy0JCVBMQUNFTUVOVCwKKy0JCVBJTkcsCistCQlYSU5FUkFN QSwKKy0JCUtFWUJJTkRJTkdTLAorLQkJU1lOQywKKy0JCUVSUk9SUywKKy0JCVNUQVJUVVAsCist CQlQUkVGUywKKy0JCUdST1VQUywKKy0JCVJFU0laSU5HLAorLQkJU0hBUEVTLAorLQkJQ09NUE9T SVRPUiwKKy0JCUVER0VfUkVTSVNUQU5DRSwKKy0JCURCVVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVJFQ1RJT05f IiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCist CXB1YmxpYyBlbnVtIERpcmVjdGlvbiB7CistCQlMRUZULAorLQkJUklHSFQsCistCQlUT1AsCist CQlCT1RUT00sCistCQlVUCwKKy0JCURPV04sCistCQlIT1JJWk9OVEFMLAorLQkJVkVSVElDQUwK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgY3ByZWZp eCA9ICJNRVRBX0VER0VfIiwgdHlwZV9pZCA9ICJtZXRhX2VkZ2VfdHlwZV9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBFZGdlVHlwZSB7CistCQlXSU5ET1csCistCQlNT05JVE9SLAorLQkJ U0NSRUVOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX0VYSVRfIiwgdHlwZV9pZCA9ICJtZXRhX2V4aXRfY29kZV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBFeGl0Q29kZSB7CistCQlTVUNDRVNTLAorLQkJRVJST1IK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVm aXggPSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfZmxhZ3NfZ2V0X3R5cGUg KCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBGcmFtZUZsYWdzIHsKKy0JCUFMTE9XU19E RUxFVEUsCistCQlBTExPV1NfTUVOVSwKKy0JCUFMTE9XU19BUFBNRU5VLAorLQkJQUxMT1dTX01J TklNSVpFLAorLQkJQUxMT1dTX01BWElNSVpFLAorLQkJQUxMT1dTX1ZFUlRJQ0FMX1JFU0laRSwK Ky0JCUFMTE9XU19IT1JJWk9OVEFMX1JFU0laRSwKKy0JCUhBU19GT0NVUywKKy0JCVNIQURFRCwK Ky0JCVNUVUNLLAorLQkJTUFYSU1JWkVELAorLQkJQUxMT1dTX1NIQURFLAorLQkJQUxMT1dTX01P VkUsCistCQlGVUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJTkcsCistCQlBQk9WRSwKKy0JCVRJTEVE X0xFRlQsCistCQlUSUxFRF9SSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FX1RZUEVfIiwgdHlwZV9pZCA9 ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRnJhbWVUeXBl IHsKKy0JCU5PUk1BTCwKKy0JCURJQUxPRywKKy0JCU1PREFMX0RJQUxPRywKKy0JCVVUSUxJVFks CistCQlNRU5VLAorLQkJQk9SREVSLAorLQkJQVRUQUNIRUQsCistCQlMQVNUOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgc3RyaW5nIHRvX3N0cmluZyAoTWV0YS5GcmFtZVR5cGUgdHlwZSk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFf R1JBQl9PUF8iLCB0eXBlX2lkID0gIm1ldGFfZ3JhYl9vcF9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgZW51bSBHcmFiT3AgeworLQkJTk9ORSwKKy0JCUNPTVBPU0lUT1IsCistCQlXQVlMQU5EX1BP UFVQLAorLQkJV0lORE9XX0JBU0UsCistCQlGUkFNRV9CVVRUT04sCistCQlNT1ZJTkcsCistCQlS RVNJWklOR19OVywKKy0JCVJFU0laSU5HX04sCistCQlSRVNJWklOR19ORSwKKy0JCVJFU0laSU5H X0UsCistCQlSRVNJWklOR19TVywKKy0JCVJFU0laSU5HX1MsCistCQlSRVNJWklOR19TRSwKKy0J CVJFU0laSU5HX1csCistCQlLRVlCT0FSRF9NT1ZJTkcsCistCQlLRVlCT0FSRF9SRVNJWklOR19V TktOT1dOLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTlcsCistCQlLRVlCT0FSRF9SRVNJWklOR19O LAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTkUsCistCQlLRVlCT0FSRF9SRVNJWklOR19FLAorLQkJ S0VZQk9BUkRfUkVTSVpJTkdfU1csCistCQlLRVlCT0FSRF9SRVNJWklOR19TLAorLQkJS0VZQk9B UkRfUkVTSVpJTkdfU0UsCistCQlLRVlCT0FSRF9SRVNJWklOR19XCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5E SU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdBY3Rpb24geworLQkJTk9ORSwKKy0JCVdP UktTUEFDRV8xLAorLQkJV09SS1NQQUNFXzIsCistCQlXT1JLU1BBQ0VfMywKKy0JCVdPUktTUEFD RV80LAorLQkJV09SS1NQQUNFXzUsCistCQlXT1JLU1BBQ0VfNiwKKy0JCVdPUktTUEFDRV83LAor LQkJV09SS1NQQUNFXzgsCistCQlXT1JLU1BBQ0VfOSwKKy0JCVdPUktTUEFDRV8xMCwKKy0JCVdP UktTUEFDRV8xMSwKKy0JCVdPUktTUEFDRV8xMiwKKy0JCVdPUktTUEFDRV9MRUZULAorLQkJV09S S1NQQUNFX1JJR0hULAorLQkJV09SS1NQQUNFX1VQLAorLQkJV09SS1NQQUNFX0RPV04sCistCQlX T1JLU1BBQ0VfTEFTVCwKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlMsCistCQlTV0lUQ0hfQVBQTElD QVRJT05TX0JBQ0tXQVJELAorLQkJU1dJVENIX0dST1VQLAorLQkJU1dJVENIX0dST1VQX0JBQ0tX QVJELAorLQkJU1dJVENIX1dJTkRPV1MsCistCQlTV0lUQ0hfV0lORE9XU19CQUNLV0FSRCwKKy0J CVNXSVRDSF9QQU5FTFMsCistCQlTV0lUQ0hfUEFORUxTX0JBQ0tXQVJELAorLQkJQ1lDTEVfR1JP VVAsCistCQlDWUNMRV9HUk9VUF9CQUNLV0FSRCwKKy0JCUNZQ0xFX1dJTkRPV1MsCistCQlDWUNM RV9XSU5ET1dTX0JBQ0tXQVJELAorLQkJQ1lDTEVfUEFORUxTLAorLQkJQ1lDTEVfUEFORUxTX0JB Q0tXQVJELAorLQkJU0hPV19ERVNLVE9QLAorLQkJUEFORUxfTUFJTl9NRU5VLAorLQkJUEFORUxf UlVOX0RJQUxPRywKKy0JCVRPR0dMRV9SRUNPUkRJTkcsCistCQlTRVRfU1BFV19NQVJLLAorLQkJ QUNUSVZBVEVfV0lORE9XX01FTlUsCistCQlUT0dHTEVfRlVMTFNDUkVFTiwKKy0JCVRPR0dMRV9N QVhJTUlaRUQsCistCQlUT0dHTEVfVElMRURfTEVGVCwKKy0JCVRPR0dMRV9USUxFRF9SSUdIVCwK Ky0JCVRPR0dMRV9BQk9WRSwKKy0JCU1BWElNSVpFLAorLQkJVU5NQVhJTUlaRSwKKy0JCVRPR0dM RV9TSEFERUQsCistCQlNSU5JTUlaRSwKKy0JCUNMT1NFLAorLQkJQkVHSU5fTU9WRSwKKy0JCUJF R0lOX1JFU0laRSwKKy0JCVRPR0dMRV9PTl9BTExfV09SS1NQQUNFUywKKy0JCU1PVkVfVE9fV09S S1NQQUNFXzEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8yLAorLQkJTU9WRV9UT19XT1JLU1BBQ0Vf MywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV81LAorLQkJ TU9WRV9UT19XT1JLU1BBQ0VfNiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzcsCistCQlNT1ZFX1RP X1dPUktTUEFDRV84LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOSwKKy0JCU1PVkVfVE9fV09SS1NQ QUNFXzEwLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8x MiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xFRlQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9SSUdI VCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX1VQLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfRE9XTiwK Ky0JCU1PVkVfVE9fV09SS1NQQUNFX0xBU1QsCistCQlNT1ZFX1RPX01PTklUT1JfTEVGVCwKKy0J CU1PVkVfVE9fTU9OSVRPUl9SSUdIVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9VUCwKKy0JCU1PVkVf VE9fTU9OSVRPUl9ET1dOLAorLQkJUkFJU0VfT1JfTE9XRVIsCistCQlSQUlTRSwKKy0JCUxPV0VS LAorLQkJTUFYSU1JWkVfVkVSVElDQUxMWSwKKy0JCU1BWElNSVpFX0hPUklaT05UQUxMWSwKKy0J CU1PVkVfVE9fQ09STkVSX05XLAorLQkJTU9WRV9UT19DT1JORVJfTkUsCistCQlNT1ZFX1RPX0NP Uk5FUl9TVywKKy0JCU1PVkVfVE9fQ09STkVSX1NFLAorLQkJTU9WRV9UT19TSURFX04sCistCQlN T1ZFX1RPX1NJREVfUywKKy0JCU1PVkVfVE9fU0lERV9FLAorLQkJTU9WRV9UT19TSURFX1csCist CQlNT1ZFX1RPX0NFTlRFUiwKKy0JCU9WRVJMQVlfS0VZLAorLQkJSVNPX05FWFRfR1JPVVAsCist CQlBTFdBWVNfT05fVE9QLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZX0JJTkRJTkdfIiwgdHlwZV9p ZCA9ICJtZXRhX2tleV9iaW5kaW5nX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0J cHVibGljIGVudW0gS2V5QmluZGluZ0ZsYWdzIHsKKy0JCU5PTkUsCistCQlQRVJfV0lORE9XLAor LQkJQlVJTFRJTiwKKy0JCUlTX1JFVkVSU0VECistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVSXyIsIHR5cGVfaWQgPSAi bWV0YV9sYXRlcl90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIExhdGVyVHlwZSB7 CistCQlSRVNJWkUsCistCQlDQUxDX1NIT1dJTkcsCistCQlDSEVDS19GVUxMU0NSRUVOLAorLQkJ U1lOQ19TVEFDSywKKy0JCUJFRk9SRV9SRURSQVcsCistCQlJRExFCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRBX0xPQ0FMRV9E SVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2xvY2FsZV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGVudW0gTG9jYWxlRGlyZWN0aW9uIHsKKy0JCUxUUiwKKy0JCVJUTAorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9 ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFnc19nZXRfdHlw ZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIE1heGltaXplRmxhZ3MgeworLQkJSE9S SVpPTlRBTCwKKy0JCVZFUlRJQ0FMLAorLQkJQk9USAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9EQUxfIiwg dHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQor LQlwdWJsaWMgZW51bSBNb2RhbE9wdGlvbnMgeworLQkJUE9JTlRFUl9BTFJFQURZX0dSQUJCRUQs CistCQlLRVlCT0FSRF9BTFJFQURZX0dSQUJCRUQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9NT1RJT05fIiwgdHlwZV9p ZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0g TW90aW9uRGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUxFRlQsCistCQlSSUdIVCwK Ky0JCVVQX0xFRlQsCistCQlVUF9SSUdIVCwKKy0JCURPV05fTEVGVCwKKy0JCURPV05fUklHSFQK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY3ByZWZp eCA9ICJNRVRBX1BSRUZfIiwgdHlwZV9pZCA9ICJtZXRhX3ByZWZlcmVuY2VfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGVudW0gUHJlZmVyZW5jZSB7CistCQlNT1VTRV9CVVRUT05fTU9EUywKKy0J CUZPQ1VTX01PREUsCistCQlGT0NVU19ORVdfV0lORE9XUywKKy0JCUFUVEFDSF9NT0RBTF9ESUFM T0dTLAorLQkJUkFJU0VfT05fQ0xJQ0ssCistCQlBQ1RJT05fRE9VQkxFX0NMSUNLX1RJVExFQkFS LAorLQkJQUNUSU9OX01JRERMRV9DTElDS19USVRMRUJBUiwKKy0JCUFDVElPTl9SSUdIVF9DTElD S19USVRMRUJBUiwKKy0JCUFVVE9fUkFJU0UsCistCQlBVVRPX1JBSVNFX0RFTEFZLAorLQkJRk9D VVNfQ0hBTkdFX09OX1BPSU5URVJfUkVTVCwKKy0JCVRJVExFQkFSX0ZPTlQsCistCQlOVU1fV09S S1NQQUNFUywKKy0JCURZTkFNSUNfV09SS1NQQUNFUywKKy0JCUtFWUJJTkRJTkdTLAorLQkJRElT QUJMRV9XT1JLQVJPVU5EUywKKy0JCUJVVFRPTl9MQVlPVVQsCistCQlXT1JLU1BBQ0VfTkFNRVMs CistCQlWSVNVQUxfQkVMTCwKKy0JCUFVRElCTEVfQkVMTCwKKy0JCVZJU1VBTF9CRUxMX1RZUEUs CistCQlHTk9NRV9BQ0NFU1NJQklMSVRZLAorLQkJR05PTUVfQU5JTUFUSU9OUywKKy0JCUNVUlNP Ul9USEVNRSwKKy0JCUNVUlNPUl9TSVpFLAorLQkJUkVTSVpFX1dJVEhfUklHSFRfQlVUVE9OLAor LQkJRURHRV9USUxJTkcsCistCQlGT1JDRV9GVUxMU0NSRUVOLAorLQkJV09SS1NQQUNFU19PTkxZ X09OX1BSSU1BUlksCistCQlEUkFHR0FCTEVfQk9SREVSX1dJRFRILAorLQkJQVVUT19NQVhJTUla RSwKKy0JCUNFTlRFUl9ORVdfV0lORE9XUywKKy0JCURSQUdfVEhSRVNIT0xEOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgc3RyaW5nIHRvX3N0cmluZyAoTWV0YS5QcmVmZXJlbmNlIHByZWYpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3NjcmVlbi5oIiwgY3ByZWZpeCA9ICJNRVRB X1NDUkVFTl8iLCB0eXBlX2lkID0gIm1ldGFfc2NyZWVuX2Nvcm5lcl9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgZW51bSBTY3JlZW5Db3JuZXIgeworLQkJVE9QTEVGVCwKKy0JCVRPUFJJR0hULAor LQkJQk9UVE9NTEVGVCwKKy0JCUJPVFRPTVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1lbnVtLXR5cGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfU0NSRUVO XyIsIHR5cGVfaWQgPSAibWV0YV9zY3JlZW5fZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIFNjcmVlbkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURPV04sCistCQlMRUZULAor LQkJUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWVu dW0tdHlwZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0gIm1l dGFfc2hhZG93X21vZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2hhZG93TW9kZSB7 CistCQlBVVRPLAorLQkJRk9SQ0VEX09GRiwKKy0JCUZPUkNFRF9PTgorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVf IiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2lk ZSB7CistCQlMRUZULAorLQkJUklHSFQsCistCQlUT1AsCistCQlCT1RUT00KKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWVudW0tdHlwZXMuaCIsIGNwcmVmaXgg PSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2l6ZUNoYW5nZSB7CistCQlNQVhJTUlaRSwKKy0JCVVO TUFYSU1JWkUsCistCQlGVUxMU0NSRUVOLAorLQkJVU5GVUxMU0NSRUVOCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFZ RVJfIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWNrX2xheWVyX2dldF90eXBlICgpIildCistCXB1Ymxp YyBlbnVtIFN0YWNrTGF5ZXIgeworLQkJREVTS1RPUCwKKy0JCUJPVFRPTSwKKy0JCU5PUk1BTCwK Ky0JCVRPUCwKKy0JCURPQ0ssCistCQlGVUxMU0NSRUVOLAorLQkJRk9DVVNFRF9XSU5ET1csCist CQlPVkVSUklERV9SRURJUkVDVCwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlw ZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYkxp c3QgeworLQkJTk9STUFMLAorLQkJRE9DS1MsCistCQlHUk9VUCwKKy0JCU5PUk1BTF9BTEwKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4 ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5cGVfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gVGFiU2hvd1R5cGUgeworLQkJSUNPTiwKKy0JCUlOU1RB TlRMWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9pZCA9ICJtZXRhX3ZpcnR1YWxfbW9kaWZp ZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBWaXJ0dWFsTW9kaWZp ZXIgeworLQkJU0hJRlRfTUFTSywKKy0JCUNPTlRST0xfTUFTSywKKy0JCUFMVF9NQVNLLAorLQkJ TUVUQV9NQVNLLAorLQkJU1VQRVJfTUFTSywKKy0JCUhZUEVSX01BU0ssCistCQlNT0QyX01BU0ss CistCQlNT0QzX01BU0ssCistCQlNT0Q0X01BU0ssCistCQlNT0Q1X01BU0sKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9X SU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19jbGllbnRfdHlwZV9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBXaW5kb3dDbGllbnRUeXBlIHsKKy0JCVdBWUxB TkQsCistCQlYMTEKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21t b24uaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfTUVOVV8iLCB0eXBlX2lkID0gIm1ldGFfd2lu ZG93X21lbnVfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBXaW5kb3dNZW51VHlw ZSB7CistCQlXTSwKKy0JCUFQUAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV18iLCB0eXBlX2lkID0gIm1ldGFf d2luZG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93VHlwZSB7Cist CQlOT1JNQUwsCistCQlERVNLVE9QLAorLQkJRE9DSywKKy0JCURJQUxPRywKKy0JCU1PREFMX0RJ QUxPRywKKy0JCVRPT0xCQVIsCistCQlNRU5VLAorLQkJVVRJTElUWSwKKy0JCVNQTEFTSFNDUkVF TiwKKy0JCURST1BET1dOX01FTlUsCistCQlQT1BVUF9NRU5VLAorLQkJVE9PTFRJUCwKKy0JCU5P VElGSUNBVElPTiwKKy0JCUNPTUJPLAorLQkJRE5ELAorLQkJT1ZFUlJJREVfT1RIRVIKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oIiwg aW5zdGFuY2VfcG9zID0gMi45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgSWRsZU1vbml0b3JX YXRjaEZ1bmMgKE1ldGEuSWRsZU1vbml0b3IgbW9uaXRvciwgdWludCB3YXRjaF9pZCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9wb3MgPSA1 LjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBLZXlIYW5kbGVyRnVuYyAoTWV0YS5EaXNwbGF5 IGRpc3BsYXksIE1ldGEuU2NyZWVuIHNjcmVlbiwgTWV0YS5XaW5kb3c/IHdpbmRvdywgQ2x1dHRl ci5LZXlFdmVudD8gZXZlbnQsIE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCist CXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFByZWZzQ2hhbmdlZEZ1bmMgKE1ldGEuUHJlZmVyZW5jZSBw cmVmKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBpbnN0 YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgYm9vbCBXaW5kb3dGb3JlYWNoRnVu YyAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9ERUZBVUxUX0lDT05fTkFNRSIpXQorLQlwdWJsaWMg Y29uc3Qgc3RyaW5nIERFRkFVTFRfSUNPTl9OQU1FOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fSEVJR0hUIildCistCXB1Ymxp YyBjb25zdCBpbnQgSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMgY29uc3Qg aW50IElDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIk1FVEFfTUFKT1JfVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1B Sk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JQ1JP X1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JTklf SUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX1dJRFRIIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlO SV9JQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5P Ul9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj bmFtZSA9ICJNRVRBX1BMVUdJTl9BUElfVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBM VUdJTl9BUElfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9CRUZPUkVfUkVEUkFXIildCistCXB1YmxpYyBj b25zdCBpbnQgUFJJT1JJVFlfQkVGT1JFX1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9QUkVGU19OT1RJRlki KV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9QUkVGU19OT1RJRlk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlf UkVEUkFXIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVEUkFXOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZ X1JFU0laRSIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFU0laRTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFM X0NPUkVfS0VZQk9BUkRfSUQiKV0KKy0JcHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfS0VZ Qk9BUkRfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJfSUQiKV0KKy0JcHVibGljIGNvbnN0IGlu dCBWSVJUVUFMX0NPUkVfUE9JTlRFUl9JRDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBhY3RpdmF0ZV9zZXNzaW9uICgp OworLSAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBjbHV0dGVyX2luaXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZXhpdCAoTWV0YS5FeGl0 Q29kZSBjb2RlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIild CistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLk9wdGlvbkNvbnRleHQgZ2V0X29wdGlvbl9j b250ZXh0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K Ky0JcHVibGljIHN0YXRpYyBib29sIGdldF9yZXBsYWNlX2N1cnJlbnRfd20gKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgaW5pdCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIild CistCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19yZXN0YXJ0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHF1aXQgKE1l dGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJfd2l0aF9zZXNzaW9uICgpOwor LSAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCByZXN0YXJ0IChzdHJpbmcgbWVzc2FnZSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIGludCBydW4gKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgc2V0X2dub21lX3dtX2tleWJpbmRpbmdzIChzdHJpbmcgd21fa2V5YmluZGluZ3Mp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHNldF93bV9uYW1lIChzdHJpbmcgd21fbmFtZSk7CistfQorZGlmZiAtLWdp dCB2YXBpL2xpYm11dHRlci0zLWN1c3RvbS52YWxhIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZh bGEKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMjllNTk3N2QuLjAwMDAwMDAwCist LS0gdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYQorKysrIC9kZXYvbnVsbAorQEAgLTEsNiAr MCwwIEBACistbmFtZXNwYWNlIE1ldGEgeworLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTW9uaXRv ck1hbmFnZXIgOiBNZXRhLkRCdXNEaXNwbGF5Q29uZmlnU2tlbGV0b24sIEdMaWIuREJ1c0ludGVy ZmFjZSB7CistCQkvKiBub3QgZXhwb3J0ZWQgKi8KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBtb25p dG9yc19jaGFuZ2VkICgpOworLQl9CistfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0zLmRl cHMgdmFwaS9saWJtdXR0ZXItMy5kZXBzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDFmM2M5MDc5Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTMuZGVwcworKysrIC9kZXYv bnVsbAorQEAgLTEsOSArMCwwIEBACistY2Fpcm8KKy1nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFz CistZ2RrLTMuMAorLWdkay1waXhidWYtMi4wCistZ3RrKy0zLjAKKy14MTEKKy14Zml4ZXMtNC4w CistY2x1dHRlci0xLjAKKy1jb2dsLTEuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci00LmRl cHMgdmFwaS9saWJtdXR0ZXItNC5kZXBzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDM2N2MzNWI5Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTQuZGVwcworKysrIC9kZXYv bnVsbAorQEAgLTEsOCArMCwwIEBACistZ2RrLTMuMAorLWdkay1waXhidWYtMi4wCistZ3NldHRp bmdzLWRlc2t0b3Atc2NoZW1hcworLWd0aystMy4wCistbXV0dGVyLWNsdXR0ZXItNAorLW11dHRl ci1jb2dsLTQKKy14MTEKKy14Zml4ZXMtNC4wCitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTQu dmFwaSB2YXBpL2xpYm11dHRlci00LnZhcGkKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5k ZXggZTBkMzU2YTAuLjAwMDAwMDAwCistLS0gdmFwaS9saWJtdXR0ZXItNC52YXBpCisrKysgL2Rl di9udWxsCitAQCAtMSwxNDI1ICswLDAgQEAKKy0vKiBsaWJtdXR0ZXItNC52YXBpIGdlbmVyYXRl ZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworLQorLVtDQ29kZSAoY3ByZWZpeCA9ICJN ZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNCIsIGxvd2VyX2Nh c2VfY3ByZWZpeCA9ICJtZXRhXyIpXQorLW5hbWVzcGFjZSBNZXRhIHsKKy0JbmFtZXNwYWNlIENv bXBvc2l0b3IgeworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5 IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5 IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbXB0eV9zdGFnZV9pbnB1 dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9yZWdp b24gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VuYWJsZV91bnJlZGly ZWN0X2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJl Y3RfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2Zv Y3VzX3N0YWdlX3dpbmRvdyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGZvY3VzX3N0YWdlX3dp bmRvdyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIHVpbnQzMiB0aW1lc3RhbXApOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0g Im1ldGFfZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX2Rpc3BsYXkgKE1l dGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9zdGFnZV9mb3JfZGlzcGxh eSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3N0YWdlX2Zv cl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfdG9w X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENs dXR0ZXIuQWN0b3IgZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxh eSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfYWN0b3JzIildCistCQlwdWJs aWMgc3RhdGljIHVub3duZWQgR0xpYi5MaXN0PENsdXR0ZXIuQWN0b3I+IGdldF93aW5kb3dfYWN0 b3JzIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2dy b3VwX2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwg Y25hbWUgPSAibWV0YV9zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIFguWHNl cnZlclJlZ2lvbiByZWdpb24pOworLQl9CistCW5hbWVzcGFjZSBQcmVmcyB7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19i ZWxsX2lzX2F1ZGlibGUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19iZWxsX2lzX2F1 ZGlibGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y25hbWUgPSAibWV0YV9wcmVmc19jaGFuZ2Vfd29ya3NwYWNlX25hbWUiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdm9pZCBwcmVmc19jaGFuZ2Vfd29ya3NwYWNlX25hbWUgKGludCBpLCBzdHJpbmcgbmFt ZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUg PSAibWV0YV9wcmVmc19nZXRfYWN0aW9uX2RvdWJsZV9jbGlja190aXRsZWJhciIpXQorLQkJcHVi bGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBwcmVmc19nZXRfYWN0aW9uX2RvdWJs ZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hY3Rpb25fbWlkZGxlX2NsaWNrX3Rp dGxlYmFyIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9uIHByZWZz X2dldF9hY3Rpb25fbWlkZGxlX2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2FjdGlv bl9yaWdodF9jbGlja190aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRs ZWJhckFjdGlvbiBwcmVmc19nZXRfYWN0aW9uX3JpZ2h0X2NsaWNrX3RpdGxlYmFyICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfZ2V0X2F0dGFjaF9tb2RhbF9kaWFsb2dzIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wg cHJlZnNfZ2V0X2F0dGFjaF9tb2RhbF9kaWFsb2dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2F1dG9fbWF4 aW1pemUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfYXV0b19tYXhpbWl6ZSAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9 ICJtZXRhX3ByZWZzX2dldF9hdXRvX3JhaXNlIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJl ZnNfZ2V0X2F1dG9fcmFpc2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYXV0b19yYWlzZV9kZWxheSIpXQor LQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X2F1dG9fcmFpc2VfZGVsYXkgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9w cmVmc19nZXRfYnV0dG9uX2xheW91dCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLkJ1dHRvbkxh eW91dCBwcmVmc19nZXRfYnV0dG9uX2xheW91dCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jZW50ZXJfbmV3 X3dpbmRvd3MiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfY2VudGVyX25ld193 aW5kb3dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfY29tcG9zaXRpbmdfbWFuYWdlciAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9jdXJzb3Jfc2l6ZSIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X2N1cnNv cl9zaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2N1cnNvcl90aGVtZSIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIHN0cmluZyBwcmVmc19nZXRfY3Vyc29yX3RoZW1lICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0 X2Rpc2FibGVfd29ya2Fyb3VuZHMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRf ZGlzYWJsZV93b3JrYXJvdW5kcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9kcmFnX3RocmVzaG9sZCIpXQor LQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X2RyYWdfdGhyZXNob2xkICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X2RyYWdnYWJsZV9ib3JkZXJfd2lkdGgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHBy ZWZzX2dldF9kcmFnZ2FibGVfYm9yZGVyX3dpZHRoICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2R5bmFtaWNf d29ya3NwYWNlcyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9keW5hbWljX3dv cmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZWRnZV90aWxpbmciKV0KKy0JCXB1YmxpYyBzdGF0 aWMgYm9vbCBwcmVmc19nZXRfZWRnZV90aWxpbmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZm9jdXNfY2hh bmdlX29uX3BvaW50ZXJfcmVzdCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9m b2N1c19jaGFuZ2Vfb25fcG9pbnRlcl9yZXN0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvY3VzX21vZGUi KV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuRm9jdXNNb2RlIHByZWZzX2dldF9mb2N1c19t b2RlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvY3VzX25ld193aW5kb3dzIildCistCQlwdWJsaWMgc3Rh dGljIEdEZXNrdG9wLkZvY3VzTmV3V2luZG93cyBwcmVmc19nZXRfZm9jdXNfbmV3X3dpbmRvd3Mg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUg PSAibWV0YV9wcmVmc19nZXRfZm9yY2VfZnVsbHNjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIHByZWZzX2dldF9mb3JjZV9mdWxsc2NyZWVuICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2dub21lX2Fj Y2Vzc2liaWxpdHkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZ25vbWVfYWNj ZXNzaWJpbGl0eSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9nbm9tZV9hbmltYXRpb25zIildCistCQlwdWJs aWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2dub21lX2FuaW1hdGlvbnMgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19n ZXRfa2V5YmluZGluZ19hY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5LZXlCaW5kaW5n QWN0aW9uIHByZWZzX2dldF9rZXliaW5kaW5nX2FjdGlvbiAoc3RyaW5nIG5hbWUpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X21vdXNlX2J1dHRvbl9tZW51IildCistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19n ZXRfbW91c2VfYnV0dG9uX21lbnUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfbW91c2VfYnV0dG9uX21vZHMi KV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5WaXJ0dWFsTW9kaWZpZXIgcHJlZnNfZ2V0X21vdXNl X2J1dHRvbl9tb2RzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9yZXNpemUiKV0KKy0J CXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9tb3VzZV9idXR0b25fcmVzaXplICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfZ2V0X251bV93b3Jrc3BhY2VzIildCistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19n ZXRfbnVtX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfcmFpc2Vfb25fY2xpY2siKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfcmFpc2Vfb25fY2xpY2sgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVm c19nZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHBy ZWZzX2dldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3RpdGxlYmFy X2ZvbnQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBQYW5nby5Gb250RGVzY3JpcHRpb24g cHJlZnNfZ2V0X3RpdGxlYmFyX2ZvbnQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfdmlzdWFsX2JlbGwiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfdmlzdWFsX2JlbGwgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVm c19nZXRfdmlzdWFsX2JlbGxfdHlwZSIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5WaXN1 YWxCZWxsVHlwZSBwcmVmc19nZXRfdmlzdWFsX2JlbGxfdHlwZSAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF93 b3Jrc3BhY2VfbmFtZSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBwcmVmc19n ZXRfd29ya3NwYWNlX25hbWUgKGludCBpKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF93b3Jrc3BhY2VzX29ubHlf b25fcHJpbWFyeSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF93b3Jrc3BhY2Vz X29ubHlfb25fcHJpbWFyeSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2luaXQiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCBwcmVmc19pbml0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4iKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfZm9yY2VfZnVsbHNjcmVlbiAoYm9vbCB3aGV0 aGVyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFt ZSA9ICJtZXRhX3ByZWZzX3NldF9udW1fd29ya3NwYWNlcyIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkIHByZWZzX3NldF9udW1fd29ya3NwYWNlcyAoaW50IG5fd29ya3NwYWNlcyk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVm c19zZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHBy ZWZzX3NldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51IChib29sIHdoZXRoZXIpOworLQl9CistCW5h bWVzcGFjZSBVdGlsIHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwu aCIsIGNuYW1lID0gIm1ldGFfYWRkX3ZlcmJvc2VfdG9waWMiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCBhZGRfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGljIHRvcGljKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZXh0ZXJu YWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGV4 dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uICh1aW50IGtleWJpbmRpbmdfYWN0aW9uKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1l dGFfZ191dGY4X3N0cm5kdXAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGdfdXRmOF9zdHJu ZHVwIChzdHJpbmcgc3JjLCBzaXplX3Qgbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9sb2NhbGVfZGlyZWN0aW9uIildCist CQlwdWJsaWMgc3RhdGljIE1ldGEuTG9jYWxlRGlyZWN0aW9uIGdldF9sb2NhbGVfZGlyZWN0aW9u ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUg PSAibWV0YV9ncmF2aXR5X3RvX3N0cmluZyIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0 cmluZyBncmF2aXR5X3RvX3N0cmluZyAoaW50IGdyYXZpdHkpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9pc19kZWJ1Z2dpbmciKV0K Ky0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19kZWJ1Z2dpbmcgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3N5bmNpbmciKV0K Ky0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19zeW5jaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9pc192ZXJib3NlIildCist CQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdmVyYm9zZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfd2F5bGFuZF9jb21wb3Np dG9yIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfd2F5bGFuZF9jb21wb3NpdG9yICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0 YV9sYXRlcl9hZGQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWludCBsYXRlcl9hZGQgKE1ldGEuTGF0 ZXJUeXBlIHdoZW4sIG93bmVkIEdMaWIuU291cmNlRnVuYyBmdW5jKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfbGF0ZXJfcmVtb3Zl IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgbGF0ZXJfcmVtb3ZlICh1aW50IGxhdGVyX2lkKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1l dGFfcG9wX25vX21zZ19wcmVmaXgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfbm9fbXNn X3ByZWZpeCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIs IGNuYW1lID0gIm1ldGFfcHVzaF9ub19tc2dfcHJlZml4IildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgcHVzaF9ub19tc2dfcHJlZml4ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9yZWN0IildCistCQlwdWJsaWMgc3RhdGljIE1l dGEuUmVjdGFuZ2xlPyByZWN0IChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJt ZXRhX3JlbW92ZV92ZXJib3NlX3RvcGljIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3Zl X3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3Nob3dfZGlhbG9nIild CistCQlwdWJsaWMgc3RhdGljIEdMaWIuUGlkIHNob3dfZGlhbG9nIChzdHJpbmcgdHlwZSwgc3Ry aW5nIG1lc3NhZ2UsIHN0cmluZyB0aW1lb3V0LCBzdHJpbmcgZGlzcGxheSwgc3RyaW5nIG9rX3Rl eHQsIHN0cmluZyBjYW5jZWxfdGV4dCwgc3RyaW5nIGljb25fbmFtZSwgaW50IHRyYW5zaWVudF9m b3IsIEdMaWIuU0xpc3Q8dm9pZCo+IGNvbHVtbnMsIEdMaWIuU0xpc3Q8dm9pZCo+IGVudHJpZXMp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAi bWV0YV91bnNpZ25lZF9sb25nX2VxdWFsIildCistCQlwdWJsaWMgc3RhdGljIGludCB1bnNpZ25l ZF9sb25nX2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2hhc2gi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdWludCB1bnNpZ25lZF9sb25nX2hhc2ggKHZvaWQqIHYpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0 YV94MTFfZXJyb3JfdHJhcF9wb3AiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB4MTFfZXJyb3Jf dHJhcF9wb3AgKE1ldGEuWDExRGlzcGxheSB4MTFfZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3gxMV9lcnJvcl90cmFw X3BvcF93aXRoX3JldHVybiIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgeDExX2Vycm9yX3RyYXBf cG9wX3dpdGhfcmV0dXJuIChNZXRhLlgxMURpc3BsYXkgeDExX2Rpc3BsYXkpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV94MTFfZXJy b3JfdHJhcF9wdXNoIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX2Vycm9yX3RyYXBfcHVz aCAoTWV0YS5YMTFEaXNwbGF5IHgxMV9kaXNwbGF5KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZW5k X2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCYWNrZW5kIDogR0xpYi5P YmplY3QsIEdMaWIuSW5pdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2JhY2tl bmQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkJhY2tlbmQgZ2V0X2JhY2tlbmQg KCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRuZCBnZXRfZG5kICgpOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5SZW1vdGVBY2Nlc3NDb250cm9sbGVyIGdldF9yZW1vdGVfYWNjZXNzX2NvbnRy b2xsZXIgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9zdGFnZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIGxvY2tfbGF5b3V0X2dyb3VwICh1aW50IGlkeCk7CistCQlwdWJsaWMg dm9pZCBzZXRfa2V5bWFwIChzdHJpbmcgbGF5b3V0cywgc3RyaW5nIHZhcmlhbnRzLCBzdHJpbmcg b3B0aW9ucyk7CistCQlwdWJsaWMgdm9pZCBzZXRfbnVtbG9jayAoYm9vbCBudW1sb2NrX3N0YXRl KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBrZXltYXBfbGF5b3V0X2dyb3VwX2NoYW5nZWQgKHVpbnQgb2JqZWN0KTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChpbnQgb2JqZWN0KTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQgKGJvb2wgb2JqZWN0KTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQu aCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBCYWNrZ3JvdW5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIEJhY2tncm91bmQgKE1ldGEuRGlzcGxheSBk aXNwbGF5KTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCByZWZyZXNoX2FsbCAoKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUxLCBHTGliLkZpbGUgZmlsZTIsIGRvdWJs ZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CistCQlwdWJs aWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJcHVibGljIHZvaWQg c2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUp OworLQkJcHVibGljIHZvaWQgc2V0X2dyYWRpZW50IChHRGVza3RvcC5CYWNrZ3JvdW5kU2hhZGlu ZyBzaGFkaW5nX2RpcmVjdGlvbiwgQ2x1dHRlci5Db2xvciBjb2xvciwgQ2x1dHRlci5Db2xvciBz ZWNvbmRfY29sb3IpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNw bGF5IG1ldGFfZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5k X2FjdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQWN0b3IgOiBD bHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRl ci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMg QmFja2dyb3VuZEFjdG9yIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgaW50IG1vbml0b3IpOworLQkJ cHVibGljIHZvaWQgc2V0X2JhY2tncm91bmQgKE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoYm9vbCBlbmFibGVkLCBpbnQgaGVpZ2h0LCBk b3VibGUgdG9uZV9zdGFydCk7CistCQlwdWJsaWMgdm9pZCBzZXRfbW9uaXRvciAoaW50IG1vbml0 b3IpOworLQkJcHVibGljIHZvaWQgc2V0X3ZpZ25ldHRlIChib29sIGVuYWJsZWQsIGRvdWJsZSBi cmlnaHRuZXNzLCBkb3VibGUgc2hhcnBuZXNzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGRvdWJsZSBicmlnaHRuZXNzIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZ3JhZGllbnQgeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IGdyYWRpZW50 X2hlaWdodCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBk b3VibGUgZ3JhZGllbnRfbWF4X2RhcmtuZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7 IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IG1vbml0 b3IgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg Ym9vbCB2aWduZXR0ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBkb3VibGUgdmlnbmV0dGVfc2hhcnBuZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCIsIHR5 cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dyb3VwX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBCYWNrZ3JvdW5kR3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENs dXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3VuZEdyb3VwICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIiwgdHlw ZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNs YXNzIEJhY2tncm91bmRJbWFnZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZ3JvdW5kSW1hZ2UgKCk7 CistCQlwdWJsaWMgYm9vbCBnZXRfc3VjY2VzcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wu VGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2xvYWRlZCAoKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBsb2FkZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiLCB0eXBlX2lkID0gIm1ldGFf YmFja2dyb3VuZF9pbWFnZV9jYWNoZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFj a2dyb3VuZEltYWdlQ2FjaGUgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2dyb3VuZEltYWdlQ2FjaGUg KCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNrZ3JvdW5kSW1hZ2VDYWNoZSBn ZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmRJbWFnZSBsb2FkIChHTGli LkZpbGUgZmlsZSk7CistCQlwdWJsaWMgdm9pZCBwdXJnZSAoR0xpYi5GaWxlIGZpbGUpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgQmFycmllciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYXJyaWVyICgpOworLQkJcHVibGljIHZv aWQgZGVzdHJveSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2FjdGl2ZSAoKTsKKy0JCXB1YmxpYyB2 b2lkIHJlbGVhc2UgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIE1ldGEuQmFycmllckRpcmVjdGlvbiBkaXJlY3Rpb25zIHsgZ2V0OyBj b25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuRGlzcGxh eSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGludCB4MSB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBpbnQgeDIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgaW50IHkxIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5MiB7IGdldDsgY29uc3RydWN0OyB9CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgaGl0IChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgbGVmdCAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCIsIGNvcHlfZnVuY3Rpb24g PSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lk ID0gIm1ldGFfYmFycmllcl9ldmVudF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVi bGljIGNsYXNzIEJhcnJpZXJFdmVudCB7CistCQlwdWJsaWMgaW50IGR0OworLQkJcHVibGljIGRv dWJsZSBkeDsKKy0JCXB1YmxpYyBkb3VibGUgZHk7CistCQlwdWJsaWMgaW50IGV2ZW50X2lkOwor LQkJcHVibGljIGJvb2wgZ3JhYmJlZDsKKy0JCXB1YmxpYyBib29sIHJlbGVhc2VkOworLQkJcHVi bGljIHVpbnQzMiB0aW1lOworLQkJcHVibGljIGRvdWJsZSB4OworLQkJcHVibGljIGRvdWJsZSB5 OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX3RyYWNrZXJfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGNsYXNzIEN1cnNvclRyYWNrZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQ3Vyc29y VHJhY2tlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkN1cnNvclRyYWNrZXIg Z2V0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlwdWJsaWMgdm9pZCBn ZXRfaG90IChvdXQgaW50IHgsIG91dCBpbnQgeSk7CistCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRl ciAoaW50IHgsIGludCB5LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RzKTsKKy0JCXB1YmxpYyB1 bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgpOworLQkJcHVibGljIHZvaWQgc2V0X3Bv aW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJz b3JfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbW92ZWQgKGZsb2F0 IG9iamVjdCwgZmxvYXQgcDApOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2Rpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2dldF90eXBlICgpIildCist CXB1YmxpYyBjbGFzcyBEaXNwbGF5IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERpc3BsYXkgKCk7CistCQlw dWJsaWMgdm9pZCBhZGRfaWdub3JlZF9jcm9zc2luZ19zZXJpYWwgKHVsb25nIHNlcmlhbCk7Cist CQlwdWJsaWMgdWludCBhZGRfa2V5YmluZGluZyAoc3RyaW5nIG5hbWUsIEdMaWIuU2V0dGluZ3Mg c2V0dGluZ3MsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGZsYWdzLCBvd25lZCBNZXRhLktleUhhbmRs ZXJGdW5jIGhhbmRsZXIpOworLQkJcHVibGljIGJvb2wgYmVnaW5fZ3JhYl9vcCAoTWV0YS5XaW5k b3cgd2luZG93LCBNZXRhLkdyYWJPcCBvcCwgYm9vbCBwb2ludGVyX2FscmVhZHlfZ3JhYmJlZCwg Ym9vbCBmcmFtZV9hY3Rpb24sIGludCBidXR0b24sIHVsb25nIG1vZG1hc2ssIHVpbnQzMiB0aW1l c3RhbXAsIGludCByb290X3gsIGludCByb290X3kpOworLQkJcHVibGljIHZvaWQgY2xlYXJfbW91 c2VfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGNsb3NlICh1aW50MzIgdGltZXN0YW1wKTsKKy0J CXB1YmxpYyB2b2lkIGVuZF9ncmFiX29wICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2 b2lkIGZvY3VzX2RlZmF1bHRfd2luZG93ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2 b2lkIGZyZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgaW50IGdl dF9jdXJyZW50X21vbml0b3IgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF9jdXJyZW50X3RpbWUg KCk7CistCQlwdWJsaWMgdWludDMyIGdldF9jdXJyZW50X3RpbWVfcm91bmR0cmlwICgpOworLQkJ cHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X2ZvY3VzX3dpbmRvdyAoKTsKKy0JCXB1Ymxp YyBNZXRhLkdyYWJPcCBnZXRfZ3JhYl9vcCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9rZXliaW5k aW5nX2FjdGlvbiAodWludCBrZXljb2RlLCB1bG9uZyBtYXNrKTsKKy0JCXB1YmxpYyB1aW50MzIg Z2V0X2xhc3RfdXNlcl90aW1lICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9tb25p dG9yX2dlb21ldHJ5IChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgYm9vbCBnZXRfbW9uaXRvcl9p bl9mdWxsc2NyZWVuIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2lu ZGV4X2Zvcl9yZWN0IChNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21v bml0b3JfbmVpZ2hib3JfaW5kZXggKGludCB3aGljaF9tb25pdG9yLCBNZXRhLkRpc3BsYXlEaXJl Y3Rpb24gZGlyKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fbW9uaXRvcnMgKCk7CistCQlwdWJsaWMg c3RyaW5nIGdldF9wYWRfYWN0aW9uX2xhYmVsIChDbHV0dGVyLklucHV0RGV2aWNlIHBhZCwgTWV0 YS5QYWRBY3Rpb25UeXBlIGFjdGlvbl90eXBlLCB1aW50IGFjdGlvbl9udW1iZXIpOworLQkJcHVi bGljIGludCBnZXRfcHJpbWFyeV9tb25pdG9yICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3NpemUg KG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEu U291bmRQbGF5ZXIgZ2V0X3NvdW5kX3BsYXllciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEu V2luZG93IGdldF90YWJfY3VycmVudCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNl IHdvcmtzcGFjZSk7CistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGdldF90 YWJfbGlzdCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlPyB3b3Jrc3BhY2UpOwor LQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9uZXh0IChNZXRhLlRhYkxpc3Qg dHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBNZXRhLldpbmRvdz8gd2luZG93LCBib29s IGJhY2t3YXJkKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlTWFuYWdlciBnZXRf d29ya3NwYWNlX21hbmFnZXIgKCk7CistCQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJhdG9yIChz dHJpbmcgYWNjZWxlcmF0b3IsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGZsYWdzKTsKKy0JCXB1Ymxp YyBib29sIGlzX3BvaW50ZXJfZW11bGF0aW5nX3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50U2VxdWVu Y2U/IHNlcXVlbmNlKTsKKy0JCXB1YmxpYyBib29sIHJlbW92ZV9rZXliaW5kaW5nIChzdHJpbmcg bmFtZSk7CistCQlwdWJsaWMgdm9pZCByZXF1ZXN0X3BhZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZp Y2UgcGFkLCBib29sIGVkaXRpb25fbW9kZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yIChN ZXRhLkN1cnNvciBjdXJzb3IpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBNZXRhLldpbmRv dz4gc29ydF93aW5kb3dzX2J5X3N0YWNraW5nIChHTGliLlNMaXN0PE1ldGEuV2luZG93PiB3aW5k b3dzKTsKKy0JCXB1YmxpYyBib29sIHN1cHBvcnRzX2V4dGVuZGVkX2JhcnJpZXJzICgpOworLQkJ cHVibGljIHZvaWQgdW5mcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVi bGljIGJvb2wgdW5ncmFiX2FjY2VsZXJhdG9yICh1aW50IGFjdGlvbl9pZCk7CistCQlwdWJsaWMg dm9pZCB1bmdyYWJfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wg eHNlcnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIpOworLQkJ cHVibGljIE1ldGEuV2luZG93IGZvY3VzX3dpbmRvdyB7IGdldDsgfQorLQkJcHVibGljIHNpZ25h bCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIHVpbnQgcDAsIHVpbnQg cDEpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl91cGRhdGVkICgpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIGdsX3ZpZGVvX21lbW9yeV9wdXJnZWQgKCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgZ3JhYl9vcF9iZWdpbiAoTWV0YS5EaXNwbGF5IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAs IE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2VuZCAoTWV0 YS5EaXNwbGF5IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBpbl9mdWxsc2NyZWVuX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2ln bmFsIGJvb2wgbW9kaWZpZXJzX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCAoKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBvdmVybGF5X2tleSAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwYWRfbW9k ZV9zd2l0Y2ggKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCB1aW50IHAwLCB1aW50IHAxKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCByZXN0YWNrZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIGJv b2wgcmVzdGFydCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93X29zZCAoaW50IG9iamVj dCwgc3RyaW5nIHAwLCBzdHJpbmcgcDEpOworLQkJcHVibGljIHNpZ25hbCB1bm93bmVkIENsdXR0 ZXIuQWN0b3I/IHNob3dfcGFkX29zZCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIEdMaWIuU2V0 dGluZ3Mgc2V0dGluZ3MsIHN0cmluZyBsYXlvdXRfcGF0aCwgYm9vbCBlZGl0aW9uX21vZGUsIGlu dCBtb25pdG9yX2lkeCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXNpemVfcG9wdXAg KGJvb2wgb2JqZWN0LCBNZXRhLlJlY3RhbmdsZSBwMCwgaW50IHAxLCBpbnQgcDIpOworLQkJcHVi bGljIHNpZ25hbCBib29sIHNob3dfcmVzdGFydF9tZXNzYWdlIChzdHJpbmc/IG1lc3NhZ2UpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIHNob3dpbmdfZGVza3RvcF9jaGFuZ2VkICgpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIHdpbmRvd19jcmVhdGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19kZW1hbmRzX2F0dGVudGlvbiAoTWV0YS5XaW5kb3cg b2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZW50ZXJlZF9tb25pdG9yIChp bnQgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93 X2xlZnRfbW9uaXRvciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNp Z25hbCB2b2lkIHdpbmRvd19tYXJrZWRfdXJnZW50IChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25h bCB2b2lkIHgxMV9kaXNwbGF5X2Nsb3NpbmcgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDEx X2Rpc3BsYXlfb3BlbmVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfZG5kX2dldF90 eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBEbmQgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgRG5kICgpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9lbnRlciAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBkbmRfbGVhdmUgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5kX3Bvc2l0aW9uX2NoYW5n ZSAoaW50IG9iamVjdCwgaW50IHAwKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgRnJhbWUgeworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lk ID0gIm1ldGFfaWRsZV9tb25pdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBJZGxl TW9uaXRvciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBJZGxlTW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1aW50 IGFkZF9pZGxlX3dhdGNoICh1aW50NjQgaW50ZXJ2YWxfbXNlYywgb3duZWQgTWV0YS5JZGxlTW9u aXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworLQkJcHVibGljIHVpbnQgYWRkX3VzZXJfYWN0aXZl X3dhdGNoIChvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfY29yZSAoKTsKKy0JCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9mb3JfZGV2aWNlIChpbnQg ZGV2aWNlX2lkKTsKKy0JCXB1YmxpYyBpbnQ2NCBnZXRfaWRsZXRpbWUgKCk7CistCQlwdWJsaWMg dm9pZCByZW1vdmVfd2F0Y2ggKHVpbnQgaWQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgaW50IGRldmljZV9pZCB7IGdldDsgY29uc3RydWN0OyB9CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNvcHlf ZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUi LCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3Rd CistCXB1YmxpYyBjbGFzcyBLZXlCaW5kaW5nIHsKKy0JCXB1YmxpYyB1aW50IGdldF9tYXNrICgp OworLQkJcHVibGljIE1ldGEuVmlydHVhbE1vZGlmaWVyIGdldF9tb2RpZmllcnMgKCk7CistCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19idWls dGluICgpOworLQkJcHVibGljIGJvb2wgaXNfcmV2ZXJzZWQgKCk7CistCQlbQ0NvZGUgKGNuYW1l ID0gIm1ldGFfa2V5YmluZGluZ3Nfc2V0X2N1c3RvbV9oYW5kbGVyIildCistCQlwdWJsaWMgc3Rh dGljIGJvb2wgc2V0X2N1c3RvbV9oYW5kbGVyIChzdHJpbmcgbmFtZSwgb3duZWQgTWV0YS5LZXlI YW5kbGVyRnVuYz8gaGFuZGxlcik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9sYXVuY2hf Y29udGV4dF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgTGF1bmNoQ29udGV4dCA6IEdM aWIuQXBwTGF1bmNoQ29udGV4dCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCistCQlwcm90ZWN0ZWQgTGF1bmNoQ29udGV4dCAoKTsKKy0JCXB1YmxpYyB2b2lk IHNldF90aW1lc3RhbXAgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgc2V0X3dv cmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIE1ldGEuRGlzcGxheSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgdGltZXN0YW1wIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuV29ya3NwYWNl IHdvcmtzcGFjZSB7IG93bmVkIGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9t b25pdG9yX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIE1vbml0b3JNYW5h Z2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJcHJvdGVjdGVkIE1vbml0b3JNYW5hZ2VyICgpOworLQkJcHVibGljIGJvb2wg Y2FuX3N3aXRjaF9jb25maWcgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5Nb25p dG9yTWFuYWdlciBAZ2V0ICgpOworLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X2Rpc3BsYXlfY29u ZmlndXJhdGlvbl90aW1lb3V0ICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2lzX2J1aWx0aW5fZGlz cGxheV9vbiAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfZm9yX2Nvbm5lY3RvciAoc3Ry aW5nIGNvbm5lY3Rvcik7CistCQlwdWJsaWMgTWV0YS5Nb25pdG9yU3dpdGNoQ29uZmlnVHlwZSBn ZXRfc3dpdGNoX2NvbmZpZyAoKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRjaF9jb25maWcgKE1ldGEu TW9uaXRvclN3aXRjaENvbmZpZ1R5cGUgY29uZmlnX3R5cGUpOworLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgTWV0YS5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVj dDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBtb25pdG9yc19jaGFuZ2VkX2ludGVybmFsICgpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHBvd2VyX3NhdmVfbW9kZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCB0eXBlX2lkID0gIm1ldGFfcGx1Z2luX2dl dF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQbHVnaW4gOiBHTGliLk9iamVj dCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90 ZWN0ZWQgUGx1Z2luICgpOworLQkJcHVibGljIGJvb2wgYmVnaW5fbW9kYWwgKE1ldGEuTW9kYWxP cHRpb25zIG9wdGlvbnMsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgY29tcGxl dGVfZGlzcGxheV9jaGFuZ2UgKGJvb2wgb2spOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgY29uZmlybV9kaXNwbGF5X2NoYW5nZSAoKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlc3Ryb3kgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOwor LQkJcHVibGljIHZvaWQgZGVzdHJveV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3Ip OworLQkJcHVibGljIHZvaWQgZW5kX21vZGFsICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IE1ldGEuUGx1Z2luSW5mbz8gZ2V0X2luZm8gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBoaWRlX3RpbGVfcHJldmlldyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgdmlydHVhbCBib29sIGtleWJpbmRpbmdfZmlsdGVyIChNZXRhLktleUJpbmRpbmcgYmlu ZGluZyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3N3aXRj aF93b3Jrc3BhY2UgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBr aWxsX3dpbmRvd19lZmZlY3RzIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBz dGF0aWMgdm9pZCBtYW5hZ2VyX3NldF9wbHVnaW5fdHlwZSAoR0xpYi5UeXBlIGd0eXBlKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoTWV0YS5XaW5kb3dBY3Rv ciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBtYXBfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9y IGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1pbmltaXpl IChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplX2NvbXBs ZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdW5vd25lZCBNZXRhLlBsdWdpbkluZm8/IHBsdWdpbl9pbmZvICgpOworLQkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd190aWxlX3ByZXZpZXcgKE1ldGEu V2luZG93IHdpbmRvdywgTWV0YS5SZWN0YW5nbGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9tb25pdG9y X251bWJlcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X3dp bmRvd19tZW51IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwg aW50IHgsIGludCB5KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNo b3dfd2luZG93X21lbnVfZm9yX3JlY3QgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dN ZW51VHlwZSBtZW51LCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgdmlydHVhbCB2b2lkIHNpemVfY2hhbmdlIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yLCBN ZXRhLlNpemVDaGFuZ2Ugd2hpY2hfY2hhbmdlLCBNZXRhLlJlY3RhbmdsZSBvbGRfZnJhbWVfcmVj dCwgTWV0YS5SZWN0YW5nbGUgb2xkX2J1ZmZlcl9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNpemVf Y2hhbmdlX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaXplX2NoYW5nZWQgKE1ldGEuV2luZG93QWN0b3Ig YWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3RhcnQgKCk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzd2l0Y2hfd29ya3NwYWNl IChpbnQgZnJvbSwgaW50IHRvLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pOworLQkJ cHVibGljIHZvaWQgc3dpdGNoX3dvcmtzcGFjZV9jb21wbGV0ZWQgKCk7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1bm1pbmltaXplIChNZXRhLldpbmRvd0FjdG9yIGFj dG9yKTsKKy0JCXB1YmxpYyB2b2lkIHVubWluaW1pemVfY29tcGxldGVkIChNZXRhLldpbmRvd0Fj dG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIHhldmVu dF9maWx0ZXIgKFguRXZlbnQgZXZlbnQpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfcmVt b3RlX2FjY2Vzc19jb250cm9sbGVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBSZW1v dGVBY2Nlc3NDb250cm9sbGVyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFJlbW90ZUFjY2Vzc0NvbnRyb2xs ZXIgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbmV3X2hhbmRsZSAoTWV0YS5SZW1vdGVBY2Nl c3NIYW5kbGUgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlbW90ZV9hY2Nl c3NfaGFuZGxlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBSZW1vdGVBY2Nlc3NIYW5k bGUgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgUmVtb3RlQWNjZXNzSGFuZGxlICgpOworLQkJcHVibGljIHZp cnR1YWwgdm9pZCBzdG9wICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHN0b3BwZWQgKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNs YXNzIFNldHRpbmdzIHsKKy0JCXB1YmxpYyBpbnQgZ2V0X2ZvbnRfZHBpICgpOworLQkJcHVibGlj IGludCBnZXRfdWlfc2NhbGluZ19mYWN0b3IgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHJlZl9mdW5jdGlvbiA9 ICJtZXRhX3NoYWRvd19yZWYiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2dldF90eXBlICgpIiwg dW5yZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfdW5yZWYiKV0KKy0JW0NvbXBhY3RdCistCXB1 YmxpYyBjbGFzcyBTaGFkb3cgeworLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAoaW50IHdpbmRv d194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCBD YWlyby5SZWN0YW5nbGVJbnQgYm91bmRzKTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50IChDb2dsLkZy YW1lYnVmZmVyIGZyYW1lYnVmZmVyLCBpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdp bmRvd193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIHVpbnQ4IG9wYWNpdHksIENhaXJvLlJlZ2lv bj8gY2xpcCwgYm9vbCBjbGlwX3N0cmljdGx5KTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvdyBAcmVm ICgpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0 YV9zaGFkb3dfZmFjdG9yeV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhZG93RmFj dG9yeSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXB1YmxpYyBTaGFkb3dGYWN0b3J5ICgpOworLQkJcHVibGljIHN0YXRpYyB1 bm93bmVkIE1ldGEuU2hhZG93RmFjdG9yeSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRh LlNoYWRvd1BhcmFtcyBnZXRfcGFyYW1zIChzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2Vk KTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvdyBnZXRfc2hhZG93IChNZXRhLldpbmRvd1NoYXBlIHNo YXBlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3Vz ZWQpOworLQkJcHVibGljIHZvaWQgc2V0X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wg Zm9jdXNlZCwgTWV0YS5TaGFkb3dQYXJhbXMgQHBhcmFtcyk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJl X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1dHRlci5B Y3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFp bmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUgKCk7CistCQlwdWJsaWMg Q2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludCBjbGlwKTsKKy0JCXB1 YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBjcmVhdGVfbWlwbWFwcyk7CistCQlwdWJsaWMgdm9p ZCBzZXRfbWFza190ZXh0dXJlIChDb2dsLlRleHR1cmUgbWFza190ZXh0dXJlKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9vcGFxdWVfcmVnaW9uIChvd25lZCBDYWlyby5SZWdpb24gb3BhcXVlX3JlZ2lv bik7CistCQlwdWJsaWMgYm9vbCB1cGRhdGVfYXJlYSAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgs IGludCBoZWlnaHQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NvdW5kX3BsYXllcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgU291bmRQbGF5ZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU291bmRQbGF5ZXIgKCk7 CistCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fZmlsZSAoR0xpYi5GaWxlIGZpbGUsIHN0cmluZyBk ZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKy0JCXB1 YmxpYyB2b2lkIHBsYXlfZnJvbV90aGVtZSAoc3RyaW5nIG5hbWUsIHN0cmluZyBkZXNjcmlwdGlv biwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlw ZV9pZCA9ICJtZXRhX3N0YWdlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTdGFnZSA6 IENsdXR0ZXIuU3RhZ2UsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0 dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTdGFnZSAoKTsKKy0JCXB1Ymxp YyBzdGF0aWMgYm9vbCBpc19mb2N1c2VkIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgYWN0b3JzX3BhaW50ZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAi bWV0YV9zdGFydHVwX25vdGlmaWNhdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3Mg U3RhcnR1cE5vdGlmaWNhdGlvbiA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTdGFydHVwTm90aWZpY2F0aW9u ICgpOworLQkJcHVibGljIE1ldGEuTGF1bmNoQ29udGV4dCBjcmVhdGVfbGF1bmNoZXIgKCk7Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93 bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAodm9p ZCogb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0YXJ0dXBfc2VxdWVuY2Vf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFN0YXJ0dXBTZXF1ZW5jZSA6IEdMaWIuT2Jq ZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXBy b3RlY3RlZCBTdGFydHVwU2VxdWVuY2UgKCk7CistCQlwdWJsaWMgdm9pZCBjb21wbGV0ZSAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYXBwbGljYXRpb25faWQgKCk7CistCQlwdWJs aWMgYm9vbCBnZXRfY29tcGxldGVkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9p Y29uX25hbWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2lkICgpOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVibGljIHVpbnQ2NCBnZXRfdGlt ZXN0YW1wICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bWNsYXNzICgpOworLQkJ cHVibGljIGludCBnZXRfd29ya3NwYWNlICgpOworLQkJcHVibGljIHN0cmluZyBhcHBsaWNhdGlv bl9pZCB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5nIGljb25fbmFtZSB7IGdl dDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5nIGlkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0K Ky0JCXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgdWlu dDY0IHRpbWVzdGFtcCB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5nIHdtY2xh c3MgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIGludCB3b3Jrc3BhY2UgeyBnZXQ7IGNv bnN0cnVjdDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3Rd CistCXB1YmxpYyBjbGFzcyBUaGVtZSB7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0 cmFjdCBjbGFzcyBXaW5kb3cgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93ICgpOworLQkJcHVibGlj IHZvaWQgYWN0aXZhdGUgKHVpbnQzMiBjdXJyZW50X3RpbWUpOworLQkJcHVibGljIHZvaWQgYWN0 aXZhdGVfd2l0aF93b3Jrc3BhY2UgKHVpbnQzMiBjdXJyZW50X3RpbWUsIE1ldGEuV29ya3NwYWNl IHdvcmtzcGFjZSk7CistCQlwdWJsaWMgYm9vbCBhbGxvd3NfbW92ZSAoKTsKKy0JCXB1YmxpYyBi b29sIGFsbG93c19yZXNpemUgKCk7CistCQlwdWJsaWMgdm9pZCBiZWdpbl9ncmFiX29wIChNZXRh LkdyYWJPcCBvcCwgYm9vbCBmcmFtZV9hY3Rpb24sIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVi bGljIGJvb2wgY2FuX2Nsb3NlICgpOworLQkJcHVibGljIGJvb2wgY2FuX21heGltaXplICgpOwor LQkJcHVibGljIGJvb2wgY2FuX21pbmltaXplICgpOworLQkJcHVibGljIGJvb2wgY2FuX3NoYWRl ICgpOworLQkJcHVibGljIHZvaWQgY2hhbmdlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29y a3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBz cGFjZV9pbmRleCwgYm9vbCBhcHBlbmQpOworLQkJcHVibGljIHZvaWQgY2hlY2tfYWxpdmUgKHVp bnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGNsaWVudF9yZWN0X3Rv X2ZyYW1lX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGNsaWVudF9yZWN0KTsKKy0JCXB1YmxpYyB2b2lk IGNvbXB1dGVfZ3JvdXAgKCk7CistCQlwdWJsaWMgdm9pZCBAZGVsZXRlICh1aW50MzIgdGltZXN0 YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGZpbmRfcm9vdF9hbmNlc3RvciAo KTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2 b2lkIGZvcmVhY2hfYW5jZXN0b3IgKE1ldGEuV2luZG93Rm9yZWFjaEZ1bmMgZnVuYyk7CistCQlw dWJsaWMgdm9pZCBmb3JlYWNoX3RyYW5zaWVudCAoTWV0YS5XaW5kb3dGb3JlYWNoRnVuYyBmdW5j KTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0X3RvX2NsaWVudF9yZWN0IChN ZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0KTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRf YnVmZmVyX3JlY3QgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2NsaWVudF9tYWNo aW5lICgpOworLQkJcHVibGljIE1ldGEuV2luZG93Q2xpZW50VHlwZSBnZXRfY2xpZW50X3R5cGUg KCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfY29tcG9zaXRvcl9wcml2YXRl ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9kZXNjcmlwdGlvbiAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIENhaXJvLlJlZ2lvbj8gZ2V0X2ZyYW1lX2JvdW5kcyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJl Y3RhbmdsZSBnZXRfZnJhbWVfcmVjdCAoKTsKKy0JCXB1YmxpYyBNZXRhLkZyYW1lVHlwZSBnZXRf ZnJhbWVfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2FwcF9tZW51 X29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfYXBwbGlj YXRpb25faWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBsaWNhdGlv bl9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX21lbnVi YXJfb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a190aGVt ZV92YXJpYW50ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfdW5pcXVlX2J1 c19uYW1lICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfd2luZG93X29iamVj dF9wYXRoICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2ljb25fZ2VvbWV0cnkgKG91dCBNZXRhLlJl Y3RhbmdsZSByZWN0KTsKKy0JCXB1YmxpYyB1aW50NjQgZ2V0X2lkICgpOworLQkJcHVibGljIE1l dGEuU3RhY2tMYXllciBnZXRfbGF5ZXIgKCk7CistCQlwdWJsaWMgTWV0YS5NYXhpbWl6ZUZsYWdz IGdldF9tYXhpbWl6ZWQgKCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yICgpOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9tdXR0ZXJfaGludHMgKCk7CistCQlwdWJsaWMgaW50IGdl dF9waWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3JvbGUgKCk7CistCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgZ2V0X3NhbmRib3hlZF9hcHBfaWQgKCk7CistCQlwdWJsaWMgdWlu dCBnZXRfc3RhYmxlX3NlcXVlbmNlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9z dGFydHVwX2lkICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3c/IGdldF90aWxlX21h dGNoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90aXRsZSAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90cmFuc2llbnRfZm9yICgpOworLQkJcHVibGljIHVp bnQzMiBnZXRfdXNlcl90aW1lICgpOworLQkJcHVibGljIE1ldGEuV2luZG93VHlwZSBnZXRfd2lu ZG93X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3dtX2NsYXNzICgpOwor LQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bV9jbGFzc19pbnN0YW5jZSAoKTsKKy0JCXB1 YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2FsbF9tb25pdG9ycyAoKTsKKy0JCXB1 YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2N1cnJlbnRfbW9uaXRvciAoKTsKKy0J CXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Zvcl9tb25pdG9yIChpbnQgd2hp Y2hfbW9uaXRvcik7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3Nw YWNlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94d2luZG93ICgpOworLQkJcHVibGljIHZv aWQgZ3JvdXBfbGVhZGVyX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgYm9vbCBoYXNfZm9jdXMgKCk7 CistCQlwdWJsaWMgYm9vbCBpc19hYm92ZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Fsd2F5c19v bl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2FuY2VzdG9yX29mX3RyYW5z aWVudCAoTWV0YS5XaW5kb3cgdHJhbnNpZW50KTsKKy0JCXB1YmxpYyBib29sIGlzX2F0dGFjaGVk X2RpYWxvZyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2NsaWVudF9kZWNvcmF0ZWQgKCk7CistCQlw dWJsaWMgYm9vbCBpc19mdWxsc2NyZWVuICgpOworLQkJcHVibGljIGJvb2wgaXNfaGlkZGVuICgp OworLQkJcHVibGljIGJvb2wgaXNfbW9uaXRvcl9zaXplZCAoKTsKKy0JCXB1YmxpYyBib29sIGlz X29uX2FsbF93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIGJvb2wgaXNfb25fcHJpbWFyeV9tb25p dG9yICgpOworLQkJcHVibGljIGJvb2wgaXNfb3ZlcnJpZGVfcmVkaXJlY3QgKCk7CistCQlwdWJs aWMgYm9vbCBpc19yZW1vdGUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19zY3JlZW5fc2l6ZWQgKCk7 CistCQlwdWJsaWMgYm9vbCBpc19zaGFkZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19za2lwX3Rh c2tiYXIgKCk7CistCQlwdWJsaWMgdm9pZCBraWxsICgpOworLQkJcHVibGljIGJvb2wgbG9jYXRl ZF9vbl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdm9p ZCBsb3dlciAoKTsKKy0JCXB1YmxpYyB2b2lkIG1ha2VfYWJvdmUgKCk7CistCQlwdWJsaWMgdm9p ZCBtYWtlX2Z1bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCBtYXhpbWl6ZSAoTWV0YS5NYXhp bWl6ZUZsYWdzIGRpcmVjdGlvbnMpOworLQkJcHVibGljIHZvaWQgbWluaW1pemUgKCk7CistCQlw dWJsaWMgdm9pZCBtb3ZlX2ZyYW1lIChib29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGludCBy b290X3lfbncpOworLQkJcHVibGljIHZvaWQgbW92ZV9yZXNpemVfZnJhbWUgKGJvb2wgdXNlcl9v cCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udywgaW50IHcsIGludCBoKTsKKy0JCXB1Ymxp YyB2b2lkIG1vdmVfdG9fbW9uaXRvciAoaW50IG1vbml0b3IpOworLQkJcHVibGljIHZvaWQgcmFp c2UgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7Cist CQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfZG9udF9ieXBhc3NfY29tcG9zaXRvciAoKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9jb21wb3NpdG9yX3ByaXZhdGUgKEdMaWIuT2JqZWN0IHByaXYpOworLQkJ cHVibGljIHZvaWQgc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworLQkJcHVibGljIHZvaWQgc2V0 X2ljb25fZ2VvbWV0cnkgKE1ldGEuUmVjdGFuZ2xlPyByZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNo YWRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNob3ZlX3RpdGxlYmFyX29u c2NyZWVuICgpOworLQkJcHVibGljIGJvb2wgc2hvd2luZ19vbl9pdHNfd29ya3NwYWNlICgpOwor LQkJcHVibGljIHZvaWQgc2h1dGRvd25fZ3JvdXAgKCk7CistCQlwdWJsaWMgdm9pZCBzdGljayAo KTsKKy0JCXB1YmxpYyBib29sIHRpdGxlYmFyX2lzX29uc2NyZWVuICgpOworLQkJcHVibGljIHZv aWQgdW5tYWtlX2Fib3ZlICgpOworLQkJcHVibGljIHZvaWQgdW5tYWtlX2Z1bGxzY3JlZW4gKCk7 CistCQlwdWJsaWMgdm9pZCB1bm1heGltaXplIChNZXRhLk1heGltaXplRmxhZ3MgZGlyZWN0aW9u cyk7CistCQlwdWJsaWMgdm9pZCB1bm1pbmltaXplICgpOworLQkJcHVibGljIHZvaWQgdW5zZXRf ZGVtYW5kc19hdHRlbnRpb24gKCk7CistCQlwdWJsaWMgdm9pZCB1bnNoYWRlICh1aW50MzIgdGlt ZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHVuc3RpY2sgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBib29sIGFib3ZlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBib29sIGFwcGVhcnNfZm9jdXNlZCB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgYm9vbCBkZWNvcmF0ZWQgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGVtYW5kc19hdHRlbnRpb24geyBnZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZnVsbHNjcmVlbiB7IGdldDsgfQorLQkJ cHVibGljIHN0cmluZyBndGtfYXBwX21lbnVfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1Ymxp YyBzdHJpbmcgZ3RrX2FwcGxpY2F0aW9uX2lkIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0 a19hcHBsaWNhdGlvbl9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtf bWVudWJhcl9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfdW5pcXVl X2J1c19uYW1lIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a193aW5kb3dfb2JqZWN0X3Bh dGggeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHZvaWQqIGljb24g eyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWF4aW1pemVk X2hvcml6b250YWxseSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg Ym9vbCBtYXhpbWl6ZWRfdmVydGljYWxseSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgdm9pZCogbWluaV9pY29uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBib29sIG1pbmltaXplZCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBt dXR0ZXJfaGludHMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJv b2wgb25fYWxsX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGJvb2wgcmVzaXplYWJsZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgYm9vbCBza2lwX3Rhc2tiYXIgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgdGl0 bGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgdXJnZW50 IHsgZ2V0OyB9CistCQlwdWJsaWMgdWludCB1c2VyX3RpbWUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBN ZXRhLldpbmRvd1R5cGUgd2luZG93X3R5cGUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgd21f Y2xhc3MgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwb3NpdGlvbl9jaGFuZ2VkICgp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIHJhaXNlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBzaG93biAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgdW5tYW5hZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdv cmtzcGFjZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2Fj dG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3dBY3RvciA6 IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0 dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXaW5kb3dBY3RvciAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9tZXRhX3dpbmRvdyAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgWC5XaW5k b3cgZ2V0X3hfd2luZG93ICgpOworLQkJcHVibGljIGJvb2wgaXNfZGVzdHJveWVkICgpOworLQkJ cHVibGljIHZvaWQgc3luY192aXNpYmlsaXR5ICgpOworLQkJcHVibGljIE1ldGEuV2luZG93IG1l dGFfd2luZG93IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIHN0cmluZyBzaGFkb3dfY2xhc3MgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TaGFkb3dNb2RlIHNoYWRvd19tb2RlIHsgZ2V0 OyBzZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBlZmZlY3RzX2NvbXBsZXRlZCAoKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9 ICJtZXRhX3dpbmRvd19ncm91cF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgV2luZG93 R3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJs ZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93R3JvdXAg KCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIsIHJlZl9mdW5jdGlvbiA9ICJtZXRhX3dpbmRvd19zaGFwZV9yZWYiLCB0 eXBlX2lkID0gIm1ldGFfd2luZG93X3NoYXBlX2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24g PSAibWV0YV93aW5kb3dfc2hhcGVfdW5yZWYiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFz cyBXaW5kb3dTaGFwZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwdWJsaWMgV2luZG93U2hhcGUgKENhaXJvLlJlZ2lvbiByZWdpb24pOworLQkJcHVi bGljIGJvb2wgZXF1YWwgKE1ldGEuV2luZG93U2hhcGUgc2hhcGVfYik7CistCQlwdWJsaWMgdm9p ZCBnZXRfYm9yZGVycyAoaW50IGJvcmRlcl90b3AsIGludCBib3JkZXJfcmlnaHQsIGludCBib3Jk ZXJfYm90dG9tLCBpbnQgYm9yZGVyX2xlZnQpOworLQkJcHVibGljIHVpbnQgaGFzaCAoKTsKKy0J CXB1YmxpYyBNZXRhLldpbmRvd1NoYXBlIEByZWYgKCk7CistCQlwdWJsaWMgQ2Fpcm8uUmVnaW9u IHRvX3JlZ2lvbiAoaW50IGNlbnRlcl93aWR0aCwgaW50IGNlbnRlcl9oZWlnaHQpOworLQkJcHVi bGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV93b3Jrc3BhY2Vf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdvcmtzcGFjZSA6IEdMaWIuT2JqZWN0IHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3Rl ZCBXb3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZSAodWludDMyIHRpbWVzdGFt cCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZV93aXRoX2ZvY3VzIChNZXRhLldpbmRvdyBmb2N1 c190aGlzLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxh eSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9u ZWlnaGJvciAoTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyBNZXRh LlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2FsbF9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRh LlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Zvcl9tb25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7 CistCQlwdWJsaWMgaW50IGluZGV4ICgpOworLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEu V2luZG93PiBsaXN0X3dpbmRvd3MgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYnVpbHRpbl9zdHJ1 dHMgKEdMaWIuU0xpc3Q8TWV0YS5TdHJ1dD8+IHN0cnV0cyk7CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyB1aW50IG5fd2luZG93cyB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgdWludCB3b3Jrc3BhY2VfaW5kZXggeyBnZXQ7IH0KKy0JCXB1YmxpYyBz aWduYWwgdm9pZCB3aW5kb3dfYWRkZWQgKE1ldGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgd2luZG93X3JlbW92ZWQgKE1ldGEuV2luZG93IG9iamVjdCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIHR5cGVfaWQgPSAibWV0YV93b3Jrc3BhY2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgV29ya3NwYWNlTWFuYWdlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXb3Jrc3BhY2VN YW5hZ2VyICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgYXBwZW5kX25ld193 b3Jrc3BhY2UgKGJvb2wgYWN0aXZhdGUsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X2FjdGl2ZV93b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMg aW50IGdldF9hY3RpdmVfd29ya3NwYWNlX2luZGV4ICgpOworLQkJcHVibGljIGludCBnZXRfbl93 b3Jrc3BhY2VzICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X3dvcmtz cGFjZV9ieV9pbmRleCAoaW50IGluZGV4KTsKKy0JCXB1YmxpYyB2b2lkIG92ZXJyaWRlX3dvcmtz cGFjZV9sYXlvdXQgKE1ldGEuRGlzcGxheUNvcm5lciBzdGFydGluZ19jb3JuZXIsIGJvb2wgdmVy dGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKy0JCXB1YmxpYyB2b2lk IHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWludDMyIHRpbWVz dGFtcCk7CistCQlwdWJsaWMgaW50IG5fd29ya3NwYWNlcyB7IGdldDsgfQorLQkJcHVibGljIHNp Z25hbCB2b2lkIGFjdGl2ZV93b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3 b3Jrc3BhY2VfYWRkZWQgKGludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtz cGFjZV9yZW1vdmVkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3Bh Y2Vfc3dpdGNoZWQgKGludCBvYmplY3QsIGludCBwMCwgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gcDEp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfeDExX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGNsYXNzIFgxMURpc3BsYXkgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgWDExRGlzcGxheSAo KTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19mb2N1c193aW5kb3cgKHVpbnQzMiB0aW1l c3RhbXApOworLQkJcHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CistCQlwdWJs aWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworLQkJcHVibGljIGludCBnZXRfc2hhcGVfZXZl bnRfYmFzZSAoKTsKKy0JCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9jbV9zZWxlY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfZm9jdXNfd2lu ZG93IChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUsIHVpbnQzMiB0aW1lc3Rh bXApOworLQkJcHVibGljIGJvb2wgeHdpbmRvd19pc19hX25vX2ZvY3VzX3dpbmRvdyAoWC5XaW5k b3cgeHdpbmRvdyk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfY25hbWUgPSAiTWV0YUNsb3NlRGlhbG9nSW50 ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgaW50ZXJmYWNlIENsb3NlRGlhbG9nIDogR0xpYi5PYmplY3QgeworLQkJcHVibGljIGFi c3RyYWN0IHZvaWQgZm9jdXMgKCk7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoaWRlICgpOwor LQkJcHVibGljIGJvb2wgaXNfdmlzaWJsZSAoKTsKKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNo b3cgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBhYnN0cmFjdCBNZXRhLldp bmRvdyB3aW5kb3cgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW0hhc0VtaXR0ZXJdCist CQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzcG9uc2UgKE1ldGEuQ2xvc2VEaWFsb2dSZXNwb25zZSBy ZXNwb25zZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfY25hbWUgPSAiTWV0YUluaGliaXRTaG9ydGN1dHNE aWFsb2dJbnRlcmZhY2UiLCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9n X2dldF90eXBlICgpIildCistCXB1YmxpYyBpbnRlcmZhY2UgSW5oaWJpdFNob3J0Y3V0c0RpYWxv ZyA6IEdMaWIuT2JqZWN0IHsKKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGhpZGUgKCk7CistCQlw dWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93ICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgYWJzdHJhY3QgTWV0YS5XaW5kb3cgd2luZG93IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKy0JCVtIYXNFbWl0dGVyXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIHJlc3BvbnNlIChNZXRh LkluaGliaXRTaG9ydGN1dHNEaWFsb2dSZXNwb25zZSByZXNwb25zZSk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IEJ1dHRvbkxheW91dCB7CistCQlb Q0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9u RnVuY3Rpb24gbGVmdF9idXR0b25zWzRdOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldCistCQlwdWJsaWMgd2VhayBib29sIGxlZnRfYnV0dG9uc19oYXNfc3BhY2VyWzRdOworLQkJ W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRv bkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNbNF07CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRfYnV0dG9uc19oYXNfc3BhY2VyWzRdOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBFZGdlIHsK Ky0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworLQkJcHVibGljIE1ldGEuU2lkZSBzaWRl X3R5cGU7CistCQlwdWJsaWMgTWV0YS5FZGdlVHlwZSBlZGdlX3R5cGU7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IEZyYW1lQm9yZGVycyB7CistCQlw dWJsaWMgR3RrLkJvcmRlciB2aXNpYmxlOworLQkJcHVibGljIEd0ay5Cb3JkZXIgaW52aXNpYmxl OworLQkJcHVibGljIEd0ay5Cb3JkZXIgdG90YWw7CistCQlwdWJsaWMgdm9pZCBjbGVhciAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luSW5mbyB7CistCQlw dWJsaWMgd2VhayBzdHJpbmcgbmFtZTsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyB2ZXJzaW9uOwor LQkJcHVibGljIHdlYWsgc3RyaW5nIGF1dGhvcjsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBsaWNl bnNlOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGRlc2NyaXB0aW9uOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBQbHVnaW5WZXJzaW9uIHsKKy0JCXB1 YmxpYyB1aW50IHZlcnNpb25fbWFqb3I7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pbm9yOwor LQkJcHVibGljIHVpbnQgdmVyc2lvbl9taWNybzsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fYXBp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCist CXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xlIHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBp bnQgeTsKKy0JCXB1YmxpYyBpbnQgd2lkdGg7CistCQlwdWJsaWMgaW50IGhlaWdodDsKKy0JCXB1 YmxpYyBpbnQgYXJlYSAoKTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKE1ldGEuUmVj dGFuZ2xlIGlubmVyX3JlY3QpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlPyBjb3B5ICgpOwor LQkJcHVibGljIGJvb2wgY291bGRfZml0X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGlubmVyX3JlY3Qp OworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuUmVjdGFuZ2xlIHNyYzIpOworLQkJcHVibGlj IHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyBib29sIGhvcml6X292ZXJsYXAgKE1ldGEuUmVjdGFu Z2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBib29sIGludGVyc2VjdCAoTWV0YS5SZWN0YW5nbGUgc3Jj Miwgb3V0IE1ldGEuUmVjdGFuZ2xlIGRlc3QpOworLQkJcHVibGljIGJvb2wgb3ZlcmxhcCAoTWV0 YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHVuaW9uIChNZXRh LlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9vbCB2ZXJ0X292ZXJsYXAgKE1ldGEuUmVj dGFuZ2xlIHJlY3QyKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBzdHJ1Y3QgU2hhZG93UGFyYW1zIHsKKy0JCXB1YmxpYyBpbnQgcmFkaXVzOworLQkJcHVibGlj IGludCB0b3BfZmFkZTsKKy0JCXB1YmxpYyBpbnQgeF9vZmZzZXQ7CistCQlwdWJsaWMgaW50IHlf b2Zmc2V0OworLQkJcHVibGljIHVpbnQ4IG9wYWNpdHk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFN0cnV0IHsKKy0JCXB1YmxpYyBNZXRhLlJlY3Rh bmdsZSByZWN0OworLQkJcHVibGljIE1ldGEuU2lkZSBzaWRlOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4 ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGly ZWN0aW9uX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gQmFycmllckRp cmVjdGlvbiB7CistCQlQT1NJVElWRV9YLAorLQkJUE9TSVRJVkVfWSwKKy0JCU5FR0FUSVZFX1gs CistCQlORUdBVElWRV9ZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9CVVRUT05fRlVOQ1RJ T05fIiwgdHlwZV9pZCA9ICJtZXRhX2J1dHRvbl9mdW5jdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgZW51bSBCdXR0b25GdW5jdGlvbiB7CistCQlNRU5VLAorLQkJTUlOSU1JWkUsCistCQlN QVhJTUlaRSwKKy0JCUNMT1NFLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFf Q0xPU0VfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfcmVz cG9uc2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ2xvc2VEaWFsb2dSZXNwb25zZSB7 CistCQlXQUlULAorLQkJRk9SQ0VfQ0xPU0UKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0NP TVBfRUZGRUNUXyIsIHR5cGVfaWQgPSAibWV0YV9jb21wX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgZW51bSBDb21wRWZmZWN0IHsKKy0JCUNSRUFURSwKKy0JCVVOTUlOSU1JWkUsCist CQlERVNUUk9ZLAorLQkJTUlOSU1JWkUsCistCQlOT05FCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAi TUVUQV9DVVJTT1JfIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgZW51bSBDdXJzb3IgeworLQkJTk9ORSwKKy0JCURFRkFVTFQsCistCQlOT1JUSF9SRVNJ WkUsCistCQlTT1VUSF9SRVNJWkUsCistCQlXRVNUX1JFU0laRSwKKy0JCUVBU1RfUkVTSVpFLAor LQkJU0VfUkVTSVpFLAorLQkJU1dfUkVTSVpFLAorLQkJTkVfUkVTSVpFLAorLQkJTldfUkVTSVpF LAorLQkJTU9WRV9PUl9SRVNJWkVfV0lORE9XLAorLQkJQlVTWSwKKy0JCURORF9JTl9EUkFHLAor LQkJRE5EX01PVkUsCistCQlETkRfQ09QWSwKKy0JCURORF9VTlNVUFBPUlRFRF9UQVJHRVQsCist CQlQT0lOVElOR19IQU5ELAorLQkJQ1JPU1NIQUlSLAorLQkJSUJFQU0sCistCQlMQVNUCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lkID0gIm1ldGFfZGVidWdfdG9w aWNfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBEZWJ1Z1RvcGljIHsK Ky0JCVZFUkJPU0UsCistCQlGT0NVUywKKy0JCVdPUktBUkVBLAorLQkJU1RBQ0ssCistCQlUSEVN RVMsCistCQlTTSwKKy0JCUVWRU5UUywKKy0JCVdJTkRPV19TVEFURSwKKy0JCVdJTkRPV19PUFMs CistCQlHRU9NRVRSWSwKKy0JCVBMQUNFTUVOVCwKKy0JCVBJTkcsCistCQlYSU5FUkFNQSwKKy0J CUtFWUJJTkRJTkdTLAorLQkJU1lOQywKKy0JCUVSUk9SUywKKy0JCVNUQVJUVVAsCistCQlQUkVG UywKKy0JCUdST1VQUywKKy0JCVJFU0laSU5HLAorLQkJU0hBUEVTLAorLQkJQ09NUE9TSVRPUiwK Ky0JCUVER0VfUkVTSVNUQU5DRSwKKy0JCURCVVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRB X0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfZGlyZWN0aW9uX2dldF90eXBlICgpIildCist CVtGbGFnc10KKy0JcHVibGljIGVudW0gRGlyZWN0aW9uIHsKKy0JCUxFRlQsCistCQlSSUdIVCwK Ky0JCVRPUCwKKy0JCUJPVFRPTSwKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUhPUklaT05UQUwsCist CQlWRVJUSUNBTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0eXBlX2lk ID0gIm1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRGlz cGxheUNvcm5lciB7CistCQlUT1BMRUZULAorLQkJVE9QUklHSFQsCistCQlCT1RUT01MRUZULAor LQkJQk9UVE9NUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlw ZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBl bnVtIERpc3BsYXlEaXJlY3Rpb24geworLQkJVVAsCistCQlET1dOLAorLQkJTEVGVCwKKy0JCVJJ R0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9l ZGdlX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRWRnZVR5cGUgeworLQkJV0lO RE9XLAorLQkJTU9OSVRPUiwKKy0JCVNDUkVFTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFf RVhJVF8iLCB0eXBlX2lkID0gIm1ldGFfZXhpdF9jb2RlX2dldF90eXBlICgpIildCistCXB1Ymxp YyBlbnVtIEV4aXRDb2RlIHsKKy0JCVNVQ0NFU1MsCistCQlFUlJPUgorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJl Zml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX2ZsYWdzX2dldF90eXBl ICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRnJhbWVGbGFncyB7CistCQlBTExPV1Nf REVMRVRFLAorLQkJQUxMT1dTX01FTlUsCistCQlBTExPV1NfTUlOSU1JWkUsCistCQlBTExPV1Nf TUFYSU1JWkUsCistCQlBTExPV1NfVkVSVElDQUxfUkVTSVpFLAorLQkJQUxMT1dTX0hPUklaT05U QUxfUkVTSVpFLAorLQkJSEFTX0ZPQ1VTLAorLQkJU0hBREVELAorLQkJU1RVQ0ssCistCQlNQVhJ TUlaRUQsCistCQlBTExPV1NfU0hBREUsCistCQlBTExPV1NfTU9WRSwKKy0JCUZVTExTQ1JFRU4s CistCQlJU19GTEFTSElORywKKy0JCUFCT1ZFLAorLQkJVElMRURfTEVGVCwKKy0JCVRJTEVEX1JJ R0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV9UWVBFXyIsIHR5cGVfaWQgPSAi bWV0YV9mcmFtZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEZyYW1lVHlwZSB7 CistCQlOT1JNQUwsCistCQlESUFMT0csCistCQlNT0RBTF9ESUFMT0csCistCQlVVElMSVRZLAor LQkJTUVOVSwKKy0JCUJPUkRFUiwKKy0JCUFUVEFDSEVELAorLQkJTEFTVDsKKy0JCXB1YmxpYyB1 bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9H UkFCX09QXyIsIHR5cGVfaWQgPSAibWV0YV9ncmFiX29wX2dldF90eXBlICgpIildCistCXB1Ymxp YyBlbnVtIEdyYWJPcCB7CistCQlOT05FLAorLQkJV0lORE9XX0JBU0UsCistCQlDT01QT1NJVE9S LAorLQkJV0FZTEFORF9QT1BVUCwKKy0JCUZSQU1FX0JVVFRPTiwKKy0JCU1PVklORywKKy0JCVJF U0laSU5HX05XLAorLQkJUkVTSVpJTkdfTiwKKy0JCVJFU0laSU5HX05FLAorLQkJUkVTSVpJTkdf RSwKKy0JCVJFU0laSU5HX1NXLAorLQkJUkVTSVpJTkdfUywKKy0JCVJFU0laSU5HX1NFLAorLQkJ UkVTSVpJTkdfVywKKy0JCUtFWUJPQVJEX01PVklORywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1VO S05PV04sCistCQlLRVlCT0FSRF9SRVNJWklOR19OVywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX04s CistCQlLRVlCT0FSRF9SRVNJWklOR19ORSwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX0UsCistCQlL RVlCT0FSRF9SRVNJWklOR19TVywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1MsCistCQlLRVlCT0FS RF9SRVNJWklOR19TRSwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1cKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZp eCA9ICJNRVRBX0lOSElCSVRfU0hPUlRDVVRTX0RJQUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0g Im1ldGFfaW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIEluaGliaXRTaG9ydGN1dHNEaWFsb2dSZXNwb25zZSB7CistCQlBTExPVywK Ky0JCURFTlkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWUJJTkRJTkdfQUNUSU9OXyIs IHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGVudW0gS2V5QmluZGluZ0FjdGlvbiB7CistCQlOT05FLAorLQkJV09SS1NQQUNFXzEsCist CQlXT1JLU1BBQ0VfMiwKKy0JCVdPUktTUEFDRV8zLAorLQkJV09SS1NQQUNFXzQsCistCQlXT1JL U1BBQ0VfNSwKKy0JCVdPUktTUEFDRV82LAorLQkJV09SS1NQQUNFXzcsCistCQlXT1JLU1BBQ0Vf OCwKKy0JCVdPUktTUEFDRV85LAorLQkJV09SS1NQQUNFXzEwLAorLQkJV09SS1NQQUNFXzExLAor LQkJV09SS1NQQUNFXzEyLAorLQkJV09SS1NQQUNFX0xFRlQsCistCQlXT1JLU1BBQ0VfUklHSFQs CistCQlXT1JLU1BBQ0VfVVAsCistCQlXT1JLU1BBQ0VfRE9XTiwKKy0JCVdPUktTUEFDRV9MQVNU LAorLQkJU1dJVENIX0FQUExJQ0FUSU9OUywKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlNfQkFDS1dB UkQsCistCQlTV0lUQ0hfR1JPVVAsCistCQlTV0lUQ0hfR1JPVVBfQkFDS1dBUkQsCistCQlTV0lU Q0hfV0lORE9XUywKKy0JCVNXSVRDSF9XSU5ET1dTX0JBQ0tXQVJELAorLQkJU1dJVENIX1BBTkVM UywKKy0JCVNXSVRDSF9QQU5FTFNfQkFDS1dBUkQsCistCQlDWUNMRV9HUk9VUCwKKy0JCUNZQ0xF X0dST1VQX0JBQ0tXQVJELAorLQkJQ1lDTEVfV0lORE9XUywKKy0JCUNZQ0xFX1dJTkRPV1NfQkFD S1dBUkQsCistCQlDWUNMRV9QQU5FTFMsCistCQlDWUNMRV9QQU5FTFNfQkFDS1dBUkQsCistCQlT SE9XX0RFU0tUT1AsCistCQlQQU5FTF9NQUlOX01FTlUsCistCQlQQU5FTF9SVU5fRElBTE9HLAor LQkJVE9HR0xFX1JFQ09SRElORywKKy0JCVNFVF9TUEVXX01BUkssCistCQlBQ1RJVkFURV9XSU5E T1dfTUVOVSwKKy0JCVRPR0dMRV9GVUxMU0NSRUVOLAorLQkJVE9HR0xFX01BWElNSVpFRCwKKy0J CVRPR0dMRV9USUxFRF9MRUZULAorLQkJVE9HR0xFX1RJTEVEX1JJR0hULAorLQkJVE9HR0xFX0FC T1ZFLAorLQkJTUFYSU1JWkUsCistCQlVTk1BWElNSVpFLAorLQkJVE9HR0xFX1NIQURFRCwKKy0J CU1JTklNSVpFLAorLQkJQ0xPU0UsCistCQlCRUdJTl9NT1ZFLAorLQkJQkVHSU5fUkVTSVpFLAor LQkJVE9HR0xFX09OX0FMTF9XT1JLU1BBQ0VTLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMSwKKy0J CU1PVkVfVE9fV09SS1NQQUNFXzIsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8zLAorLQkJTU9WRV9U T19XT1JLU1BBQ0VfNCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzUsCistCQlNT1ZFX1RPX1dPUktT UEFDRV82LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzgs CistCQlNT1ZFX1RPX1dPUktTUEFDRV85LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTAsCistCQlN T1ZFX1RPX1dPUktTUEFDRV8xMSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEyLAorLQkJTU9WRV9U T19XT1JLU1BBQ0VfTEVGVCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX1JJR0hULAorLQkJTU9WRV9U T19XT1JLU1BBQ0VfVVAsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9ET1dOLAorLQkJTU9WRV9UT19X T1JLU1BBQ0VfTEFTVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9MRUZULAorLQkJTU9WRV9UT19NT05J VE9SX1JJR0hULAorLQkJTU9WRV9UT19NT05JVE9SX1VQLAorLQkJTU9WRV9UT19NT05JVE9SX0RP V04sCistCQlSQUlTRV9PUl9MT1dFUiwKKy0JCVJBSVNFLAorLQkJTE9XRVIsCistCQlNQVhJTUla RV9WRVJUSUNBTExZLAorLQkJTUFYSU1JWkVfSE9SSVpPTlRBTExZLAorLQkJTU9WRV9UT19DT1JO RVJfTlcsCistCQlNT1ZFX1RPX0NPUk5FUl9ORSwKKy0JCU1PVkVfVE9fQ09STkVSX1NXLAorLQkJ TU9WRV9UT19DT1JORVJfU0UsCistCQlNT1ZFX1RPX1NJREVfTiwKKy0JCU1PVkVfVE9fU0lERV9T LAorLQkJTU9WRV9UT19TSURFX0UsCistCQlNT1ZFX1RPX1NJREVfVywKKy0JCU1PVkVfVE9fQ0VO VEVSLAorLQkJT1ZFUkxBWV9LRVksCistCQlJU09fTkVYVF9HUk9VUCwKKy0JCUFMV0FZU19PTl9U T1AsCistCQlTV0lUQ0hfTU9OSVRPUiwKKy0JCVJPVEFURV9NT05JVE9SLAorLQkJTEFTVAorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZX0JJTkRJTkdfIiwgdHlwZV9pZCA9ICJtZXRhX2tl eV9iaW5kaW5nX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0g S2V5QmluZGluZ0ZsYWdzIHsKKy0JCU5PTkUsCistCQlQRVJfV0lORE9XLAorLQkJQlVJTFRJTiwK Ky0JCUlTX1JFVkVSU0VELAorLQkJTk9OX01BU0tBQkxFLAorLQkJSUdOT1JFX0FVVE9SRVBFQVQK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVSXyIsIHR5cGVfaWQgPSAibWV0YV9sYXRl cl90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIExhdGVyVHlwZSB7CistCQlSRVNJ WkUsCistCQlDQUxDX1NIT1dJTkcsCistCQlDSEVDS19GVUxMU0NSRUVOLAorLQkJU1lOQ19TVEFD SywKKy0JCUJFRk9SRV9SRURSQVcsCistCQlJRExFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVU QV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIExvY2FsZURpcmVjdGlvbiB7CistCQlMVFIsCist CQlSVEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAi bWV0YV9tYXhpbWl6ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBl bnVtIE1heGltaXplRmxhZ3MgeworLQkJSE9SSVpPTlRBTCwKKy0JCVZFUlRJQ0FMLAorLQkJQk9U SAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21v ZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBNb2Rh bE9wdGlvbnMgeworLQkJUE9JTlRFUl9BTFJFQURZX0dSQUJCRUQsCistCQlLRVlCT0FSRF9BTFJF QURZX0dSQUJCRUQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX01PTklUT1JfU1dJVENIX0NP TkZJR18iLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9zd2l0Y2hfY29uZmlnX3R5cGVfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTW9uaXRvclN3aXRjaENvbmZpZ1R5cGUgeworLQkJQUxM X01JUlJPUiwKKy0JCUFMTF9MSU5FQVIsCistCQlFWFRFUk5BTCwKKy0JCUJVSUxUSU4sCistCQlV TktOT1dOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NT1RJT05fIiwgdHlwZV9pZCA9ICJt ZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTW90aW9u RGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUxFRlQsCistCQlSSUdIVCwKKy0JCVVQ X0xFRlQsCistCQlVUF9SSUdIVCwKKy0JCURPV05fTEVGVCwKKy0JCURPV05fUklHSFQKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1BBRF9BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX3BhZF9h Y3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBQYWRBY3Rpb25UeXBlIHsK Ky0JCUJVVFRPTiwKKy0JCVJJTkcsCistCQlTVFJJUAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1F VEFfUFJFRl8iLCB0eXBlX2lkID0gIm1ldGFfcHJlZmVyZW5jZV9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgZW51bSBQcmVmZXJlbmNlIHsKKy0JCU1PVVNFX0JVVFRPTl9NT0RTLAorLQkJRk9DVVNf TU9ERSwKKy0JCUZPQ1VTX05FV19XSU5ET1dTLAorLQkJQVRUQUNIX01PREFMX0RJQUxPR1MsCist CQlSQUlTRV9PTl9DTElDSywKKy0JCUFDVElPTl9ET1VCTEVfQ0xJQ0tfVElUTEVCQVIsCistCQlB Q1RJT05fTUlERExFX0NMSUNLX1RJVExFQkFSLAorLQkJQUNUSU9OX1JJR0hUX0NMSUNLX1RJVExF QkFSLAorLQkJQVVUT19SQUlTRSwKKy0JCUFVVE9fUkFJU0VfREVMQVksCistCQlGT0NVU19DSEFO R0VfT05fUE9JTlRFUl9SRVNULAorLQkJVElUTEVCQVJfRk9OVCwKKy0JCU5VTV9XT1JLU1BBQ0VT LAorLQkJRFlOQU1JQ19XT1JLU1BBQ0VTLAorLQkJS0VZQklORElOR1MsCistCQlESVNBQkxFX1dP UktBUk9VTkRTLAorLQkJQlVUVE9OX0xBWU9VVCwKKy0JCVdPUktTUEFDRV9OQU1FUywKKy0JCVZJ U1VBTF9CRUxMLAorLQkJQVVESUJMRV9CRUxMLAorLQkJVklTVUFMX0JFTExfVFlQRSwKKy0JCUdO T01FX0FDQ0VTU0lCSUxJVFksCistCQlHTk9NRV9BTklNQVRJT05TLAorLQkJQ1VSU09SX1RIRU1F LAorLQkJQ1VSU09SX1NJWkUsCistCQlSRVNJWkVfV0lUSF9SSUdIVF9CVVRUT04sCistCQlFREdF X1RJTElORywKKy0JCUZPUkNFX0ZVTExTQ1JFRU4sCistCQlXT1JLU1BBQ0VTX09OTFlfT05fUFJJ TUFSWSwKKy0JCURSQUdHQUJMRV9CT1JERVJfV0lEVEgsCistCQlBVVRPX01BWElNSVpFLAorLQkJ Q0VOVEVSX05FV19XSU5ET1dTLAorLQkJRFJBR19USFJFU0hPTEQ7CistCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgdG9fc3RyaW5nICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfU0hBRE9X X01PREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19tb2RlX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIFNoYWRvd01vZGUgeworLQkJQVVUTywKKy0JCUZPUkNFRF9PRkYsCistCQlGT1JD RURfT04KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRh X3NpZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2lkZSB7CistCQlMRUZULAorLQkJ UklHSFQsCistCQlUT1AsCistCQlCT1RUT00KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJ WkVfQ0hBTkdFXyIsIHR5cGVfaWQgPSAibWV0YV9zaXplX2NoYW5nZV9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgZW51bSBTaXplQ2hhbmdlIHsKKy0JCU1BWElNSVpFLAorLQkJVU5NQVhJTUlaRSwK Ky0JCUZVTExTQ1JFRU4sCistCQlVTkZVTExTQ1JFRU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJN RVRBX0xBWUVSXyIsIHR5cGVfaWQgPSAibWV0YV9zdGFja19sYXllcl9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgZW51bSBTdGFja0xheWVyIHsKKy0JCURFU0tUT1AsCistCQlCT1RUT00sCistCQlO T1JNQUwsCistCQlUT1AsCistCQlET0NLLAorLQkJT1ZFUlJJREVfUkVESVJFQ1QsCistCQlMQVNU CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfTElTVF8iLCB0eXBlX2lkID0gIm1ldGFf dGFiX2xpc3RfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gVGFiTGlzdCB7CistCQlOT1JN QUwsCistCQlET0NLUywKKy0JCUdST1VQLAorLQkJTk9STUFMX0FMTAorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJl Zml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5cGVfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gVGFiU2hvd1R5cGUgeworLQkJSUNPTiwKKy0JCUlO U1RBTlRMWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfVklSVFVBTF8iLCB0eXBlX2lkID0g Im1ldGFfdmlydHVhbF9tb2RpZmllcl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1Ymxp YyBlbnVtIFZpcnR1YWxNb2RpZmllciB7CistCQlTSElGVF9NQVNLLAorLQkJQ09OVFJPTF9NQVNL LAorLQkJQUxUX01BU0ssCistCQlNRVRBX01BU0ssCistCQlTVVBFUl9NQVNLLAorLQkJSFlQRVJf TUFTSywKKy0JCU1PRDJfTUFTSywKKy0JCU1PRDNfTUFTSywKKy0JCU1PRDRfTUFTSywKKy0JCU1P RDVfTUFTSworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBFXyIs IHR5cGVfaWQgPSAibWV0YV93aW5kb3dfY2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGVudW0gV2luZG93Q2xpZW50VHlwZSB7CistCQlXQVlMQU5ELAorLQkJWDExCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfTUVOVV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93 X21lbnVfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBXaW5kb3dNZW51VHlwZSB7 CistCQlXTSwKKy0JCUFQUAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XXyIsIHR5 cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBX aW5kb3dUeXBlIHsKKy0JCU5PUk1BTCwKKy0JCURFU0tUT1AsCistCQlET0NLLAorLQkJRElBTE9H LAorLQkJTU9EQUxfRElBTE9HLAorLQkJVE9PTEJBUiwKKy0JCU1FTlUsCistCQlVVElMSVRZLAor LQkJU1BMQVNIU0NSRUVOLAorLQkJRFJPUERPV05fTUVOVSwKKy0JCVBPUFVQX01FTlUsCistCQlU T09MVElQLAorLQkJTk9USUZJQ0FUSU9OLAorLQkJQ09NQk8sCistCQlETkQsCistCQlPVkVSUklE RV9PVEhFUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMgZGVsZWdh dGUgdm9pZCBJZGxlTW9uaXRvcldhdGNoRnVuYyAoTWV0YS5JZGxlTW9uaXRvciBtb25pdG9yLCB1 aW50IHdhdGNoX2lkKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCistCXB1YmxpYyBkZWxl Z2F0ZSB2b2lkIEtleUhhbmRsZXJGdW5jIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgTWV0YS5XaW5k b3cgd2luZG93LCBbQ0NvZGUgKHR5cGUgPSAiQ2x1dHRlcktleUV2ZW50KiIpXSBDbHV0dGVyLktl eUV2ZW50PyBldmVudCwgTWV0YS5LZXlCaW5kaW5nIGJpbmRpbmcpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5zdGFuY2Vf cG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgUHJlZnNDaGFuZ2VkRnVuYyAoTWV0 YS5QcmVmZXJlbmNlIHByZWYpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGlj IGRlbGVnYXRlIGJvb2wgV2luZG93Rm9yZWFjaEZ1bmMgKE1ldGEuV2luZG93IHdpbmRvdyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBjbmFtZSA9ICJNRVRBX0NVUlJFTlRfVElNRSIpXQorLQlwdWJsaWMgY29uc3QgaW50IENV UlJFTlRfVElNRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9JQ09OX05BTUUiKV0KKy0J cHVibGljIGNvbnN0IHN0cmluZyBERUZBVUxUX0lDT05fTkFNRTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1F VEFfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBJQ09OX0hFSUdIVDsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMgY29uc3QgaW50IElDT05fV0lE VEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0 IGludCBNQUpPUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NSUNST19WRVJTSU9OIild CistCXB1YmxpYyBjb25zdCBpbnQgTUlDUk9fVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFf TUlOSV9JQ09OX0hFSUdIVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9IRUlHSFQ7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMgY29uc3Qg aW50IE1JTklfSUNPTl9XSURUSDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfTUlOT1JfVkVSU0lPTiIp XQorLQlwdWJsaWMgY29uc3QgaW50IE1JTk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRB X1BMVUdJTl9BUElfVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBMVUdJTl9BUElfVkVS U0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIpXQorLQlw dWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX0JFRk9SRV9SRURSQVc7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJN RVRBX1BSSU9SSVRZX1BSRUZTX05PVElGWSIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZ X1BSRUZTX05PVElGWTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFXIildCist CXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9Q UklPUklUWV9SRVNJWkUiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRVNJWkU7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9LRVlCT0FSRF9JRCIpXQorLQlwdWJsaWMg Y29uc3QgaW50IFZJUlRVQUxfQ09SRV9LRVlCT0FSRF9JRDsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFf VklSVFVBTF9DT1JFX1BPSU5URVJfSUQiKV0KKy0JcHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NP UkVfUE9JTlRFUl9JRDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgYWN0aXZhdGVfc2Vz c2lvbiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZXhpdCAoTWV0YS5FeGl0Q29k ZSBjb2RlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5PcHRpb25Db250 ZXh0IGdldF9vcHRpb25fY29udGV4dCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wg Z2V0X3JlcGxhY2VfY3VycmVudF93bSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg aW5pdCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfcmVzdGFydCAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcXVpdCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJfd2l0aF9zZXNzaW9uICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZXN0YXJ0IChzdHJpbmc/IG1lc3NhZ2UpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IildCistCXB1YmxpYyBzdGF0aWMgaW50IHJ1biAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X2dub21lX3dtX2tleWJpbmRpbmdzIChzdHJpbmcgd21fa2V5YmluZGluZ3MpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21fbmFtZSAoc3RyaW5nIHdtX25hbWUp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB4MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKy19CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTUuZGVwcyB2 YXBpL2xpYm11dHRlci02LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggNTAlCityZW5hbWUgZnJvbSB2 YXBpL2xpYm11dHRlci01LmRlcHMKK3JlbmFtZSB0byB2YXBpL2xpYm11dHRlci02LmRlcHMKK2lu ZGV4IDQ4YWE3NTYzLi4yMjM1MjVlNCAxMDA2NDQKKy0tLSB2YXBpL2xpYm11dHRlci01LmRlcHMK KysrKyB2YXBpL2xpYm11dHRlci02LmRlcHMKK0BAIC0xLDUgKzEsNiBAQAorIGd0aystMy4wCisg anNvbi1nbGliLTEuMAorLW11dHRlci1jbHV0dGVyLTUKKyttdXR0ZXItY2x1dHRlci02CisgeDEx CisgeGZpeGVzLTQuMAorK2dyYXBoZW5lLWdvYmplY3QtMS4wCitkaWZmIC0tZ2l0IHZhcGkvbGli bXV0dGVyLTUudmFwaSB2YXBpL2xpYm11dHRlci02LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggOTcl CityZW5hbWUgZnJvbSB2YXBpL2xpYm11dHRlci01LnZhcGkKK3JlbmFtZSB0byB2YXBpL2xpYm11 dHRlci02LnZhcGkKK2luZGV4IGI5NWEyOGU2Li5iMzZiZTFiNyAxMDA2NDQKKy0tLSB2YXBpL2xp Ym11dHRlci01LnZhcGkKKysrKyB2YXBpL2xpYm11dHRlci02LnZhcGkKK0BAIC0xLDEyICsxLDEw IEBACistLyogbGlibXV0dGVyLTUudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1v ZGlmeS4gKi8KKysvKiBsaWJtdXR0ZXItNi52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBu b3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFj ZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiNSIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRh XyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwg Z2lyX3ZlcnNpb24gPSAiNiIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQorIG5hbWVz cGFjZSBNZXRhIHsKKyAJbmFtZXNwYWNlIENvbXBvc2l0b3IgeworIAkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZGlz YWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgZGlz YWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25h bWUgPSAibWV0YV9lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCBlbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJ CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBj bmFtZSA9ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMg c3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBk aXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQorQEAgLTIxLDgg KzE5LDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIu TGlzdDxDbHV0dGVyLkFjdG9yPiBnZXRfd2luZG93X2FjdG9ycyAoTWV0YS5EaXNwbGF5IGRpc3Bs YXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIpXQorIAkJ cHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dpbmRvd19ncm91cF9mb3Jf ZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdl X2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9y ZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKyAJ fQorIAluYW1lc3BhY2UgUHJlZnMgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfYmVsbF9pc19hdWRpYmxlIildCitAQCAt MTY0LDcgKzE2MCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9udW1s b2NrIChib29sIG51bWxvY2tfc3RhdGUpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9j aGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9sYXlvdXRfZ3JvdXBfY2hh bmdlZCAodWludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2aWNlX2No YW5nZWQgKGludCBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2aWNlX2No YW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQgKGJvb2wgb2JqZWN0KTsKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQuaCIsIHR5cGVfaWQgPSAibWV0 YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCitAQCAtMTc0LDcgKzE3MCw3IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCByZWZyZXNoX2FsbCAoKTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUxLCBHTGliLkZpbGUgZmlsZTIsIGRvdWJs ZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisgCQlwdWJs aWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJcHVibGljIHZvaWQg c2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUp OworKwkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZT8gZmlsZSwgR0Rlc2t0b3AuQmFj a2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0 b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3IgY29s b3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor IAkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVj dDsgfQorQEAgLTI3NSw3ICsyNzEsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5v d25lZCBDb2dsLlRleHR1cmUgZ2V0X3Nwcml0ZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wb2lu dGVyX3Zpc2libGUgKGJvb2wgdmlzaWJsZSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29y X2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX21vdmVkIChmbG9hdCBv YmplY3QsIGZsb2F0IHAwKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbW92ZWQgKGZs b2F0IHgsIGZsb2F0IHkpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHZpc2liaWxpdHlfY2hhbmdl ZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5Lmgi LCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorQEAgLTMyNyw2ICszMjMs NyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgYm9vbCB4c2VydmVyX3RpbWVfaXNfYmVm b3JlICh1aW50MzIgdGltZTEsIHVpbnQzMiB0aW1lMik7CisgCQlwdWJsaWMgTWV0YS5XaW5kb3cg Zm9jdXNfd2luZG93IHsgZ2V0OyB9CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxlcmF0b3Jf YWN0aXZhdGVkICh1aW50IG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZSBwMCwgdWludCBwMSk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2xvc2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCBjdXJzb3JfdXBkYXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBnbF92aWRlb19tZW1v cnlfcHVyZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEu RGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CitAQCAtMzUw LDYgKzM0Nyw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jr YXJlYXNfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9jbG9z aW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X29wZW5lZCAoKTsKKysJ CXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9zZXR1cCAoKTsKKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWRuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2Ru ZF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgRG5kIDogR0xpYi5PYmplY3QgeworQEAg LTM3MCwxMSArMzY4LDEwIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1aW50IGFkZF9p ZGxlX3dhdGNoICh1aW50NjQgaW50ZXJ2YWxfbXNlYywgb3duZWQgTWV0YS5JZGxlTW9uaXRvcldh dGNoRnVuYz8gY2FsbGJhY2spOworIAkJcHVibGljIHVpbnQgYWRkX3VzZXJfYWN0aXZlX3dhdGNo IChvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CisgCQlwdWJsaWMg c3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfY29yZSAoKTsKKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9mb3JfZGV2aWNlIChpbnQgZGV2aWNl X2lkKTsKKyAJCXB1YmxpYyBpbnQ2NCBnZXRfaWRsZXRpbWUgKCk7CisgCQlwdWJsaWMgdm9pZCBy ZW1vdmVfd2F0Y2ggKHVpbnQgaWQpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg aW50IGRldmljZV9pZCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5JbnB1 dERldmljZSBkZXZpY2UgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hl ZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFf a2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKyAJW0NvbXBhY3RdCitAQCAtNTM2LDE1ICs1MzMs MTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCist CXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVu dG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlw dGFibGUgeworKwlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IEdMaWIuT2JqZWN0LCBDbHV0 dGVyLkNvbnRlbnQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorIAkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFj ZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludCBjbGlwKTsKKysJCXB1YmxpYyBDYWlyby5T dXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMg dW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRf Y3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21pcG1hcHMpOworIAkJcHVibGljIHZvaWQgc2V0 X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4dHVyZSk7CisgCQlwdWJsaWMgdm9p ZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVnaW9uIG9wYXF1ZV9yZWdpb24pOwor LQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQg aGVpZ2h0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCIsIHR5 cGVfaWQgPSAibWV0YV9zb3VuZF9wbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KK0BAIC03NTYsMTcgKzc1 MiwxNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3dB Y3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxl LCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBXaW5kb3dBY3RvciAo KTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUlu dD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93aW5kb3cg KCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgpOworKwkJ cHVibGljIHVub3duZWQgTWV0YS5TaGFwZWRUZXh0dXJlIGdldF90ZXh0dXJlICgpOworIAkJcHVi bGljIGJvb2wgaXNfZGVzdHJveWVkICgpOworIAkJcHVibGljIHZvaWQgc3luY192aXNpYmlsaXR5 ICgpOworIAkJcHVibGljIE1ldGEuV2luZG93IG1ldGFfd2luZG93IHsgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHN0cmluZyBzaGFkb3dfY2xhc3Mg eyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0 YS5TaGFkb3dNb2RlIHNoYWRvd19tb2RlIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBzaWduYWwg dm9pZCBkYW1hZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGVmZmVjdHNfY29tcGxldGVk ICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGZpcnN0X2ZyYW1lICgpOworKwkJcHVibGljIHNp Z25hbCB2b2lkIHRoYXdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19ncm91cF9n ZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgV2luZG93R3JvdXAgOiBDbHV0dGVyLkFjdG9y LCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIs IENsdXR0ZXIuU2NyaXB0YWJsZSB7CitAQCAtODEzLDcgKzgwOCw3IEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29ya3NwYWNl ICgpOworIAkJcHVibGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsKKyAJCXB1 YmxpYyBpbnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29y a3NwYWNlIGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CisrCQlwdWJsaWMgdW5v d25lZCBNZXRhLldvcmtzcGFjZT8gZ2V0X3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IGluZGV4KTsK KyAJCXB1YmxpYyB2b2lkIG92ZXJyaWRlX3dvcmtzcGFjZV9sYXlvdXQgKE1ldGEuRGlzcGxheUNv cm5lciBzdGFydGluZ19jb3JuZXIsIGJvb2wgdmVydGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBp bnQgbl9jb2x1bW5zKTsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29y a3NwYWNlIHdvcmtzcGFjZSwgdWludDMyIHRpbWVzdGFtcCk7CisgCQlwdWJsaWMgdm9pZCByZW9y ZGVyX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBpbnQgbmV3X2luZGV4KTsK K0BAIC04MzMsMTEgKzgyOCwxMyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1YmxpYyBjbGFzcyBY MTFEaXNwbGF5IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFgxMURpc3BsYXkgKCk7CisrCQlwdWJsaWMgdm9p ZCBjbGVhcl9zdGFnZV9pbnB1dF9yZWdpb24gKCk7CisgCQlwdWJsaWMgaW50IGdldF9kYW1hZ2Vf ZXZlbnRfYmFzZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3NjcmVlbl9udW1iZXIgKCk7CisgCQlw dWJsaWMgaW50IGdldF9zaGFwZV9ldmVudF9iYXNlICgpOworIAkJcHVibGljIGJvb2wgaGFzX3No YXBlICgpOworIAkJcHVibGljIHZvaWQgc2V0X2NtX3NlbGVjdGlvbiAoKTsKKysJCXB1YmxpYyB2 b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKFguWHNlcnZlclJlZ2lvbiByZWdpb24pOworIAkJ cHVibGljIGJvb2wgeHdpbmRvd19pc19hX25vX2ZvY3VzX3dpbmRvdyAoWC5XaW5kb3cgeHdpbmRv dyk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCIsIHR5cGVfY25hbWUgPSAiTWV0YUNsb3NlRGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9p ZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19nZXRfdHlwZSAoKSIpXQorQEAgLTg5OSw3ICs4OTYsNyBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pY3JvOworIAkJcHVi bGljIHVpbnQgdmVyc2lvbl9hcGk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IFJlY3Rh bmdsZSB7CisgCQlwdWJsaWMgaW50IHg7CisgCQlwdWJsaWMgaW50IHk7CitAQCAtMTQ0Myw2ICsx NDQwLDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMg c3RhdGljIHZvaWQgYWRkX2NsdXR0ZXJfZGVidWdfZmxhZ3MgKENsdXR0ZXIuRGVidWdGbGFnIGRl YnVnX2ZsYWdzLCBDbHV0dGVyLkRyYXdEZWJ1Z0ZsYWcgZHJhd19mbGFncywgQ2x1dHRlci5QaWNr RGVidWdGbGFnIHBpY2tfZmxhZ3MpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGV4aXQgKE1ldGEuRXhpdENvZGUgY29k ZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJs aWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOwor QEAgLTE0NTksNiArMTQ1OCw4IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3Rl cl93aXRoX3Nlc3Npb24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2NsdXR0ZXJfZGVidWdfZmxhZ3Mg KENsdXR0ZXIuRGVidWdGbGFnIGRlYnVnX2ZsYWdzLCBDbHV0dGVyLkRyYXdEZWJ1Z0ZsYWcgZHJh d19mbGFncywgQ2x1dHRlci5QaWNrRGVidWdGbGFnIHBpY2tfZmxhZ3MpOworKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHJl c3RhcnQgKHN0cmluZz8gbWVzc2FnZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIGludCBydW4gKCk7CitAQCAtMTQ2Nyw1ICsx NDY4LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF93bV9uYW1lIChzdHJpbmcg d21fbmFtZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQor KwlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0ICgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIHgxMV9pbml0X2dk a19kaXNwbGF5ICgpIHRocm93cyBHTGliLkVycm9yOworIH0KK2RpZmYgLS1naXQgdmFwaS9saWJt dXR0ZXItNy1jdXN0b20udmFsYSB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52YWxhCituZXcgZmls ZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjFlMGI5MTdjCistLS0gL2Rldi9udWxsCisr KysgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYQorQEAgLTAsMCArMSw3IEBACisrW0NDb2Rl IChoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKytwdWJsaWMgc3RydWN0IGJlZm9yZV9mcmFtZSB7Cisr fQorKworK1tDQ29kZSAoaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBmcmFt ZSB7CisrfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci03LmRlcHMgdmFwaS9saWJtdXR0ZXIt Ny5kZXBzCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjJlZjkxOWVlCist LS0gL2Rldi9udWxsCisrKysgdmFwaS9saWJtdXR0ZXItNy5kZXBzCitAQCAtMCwwICsxLDYgQEAK KytndGsrLTMuMAorK2pzb24tZ2xpYi0xLjAKKyttdXR0ZXItY2x1dHRlci03CisreDExCisreGZp eGVzLTQuMAorK2dyYXBoZW5lLWdvYmplY3QtMS4wCitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVy LTMudmFwaSB2YXBpL2xpYm11dHRlci03LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggNzUlCityZW5h bWUgZnJvbSB2YXBpL2xpYm11dHRlci0zLnZhcGkKK3JlbmFtZSB0byB2YXBpL2xpYm11dHRlci03 LnZhcGkKK2luZGV4IDE3MTVhYThmLi45MGM0MTU5MCAxMDA2NDQKKy0tLSB2YXBpL2xpYm11dHRl ci0zLnZhcGkKKysrKyB2YXBpL2xpYm11dHRlci03LnZhcGkKK0BAIC0xLDEyICsxLDEwIEBACist LyogbGlibXV0dGVyLTMudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4g Ki8KKysvKiBsaWJtdXR0ZXItNy52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9k aWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJN ZXRhIiwgZ2lyX3ZlcnNpb24gPSAiMyIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQor K1tDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3Zl cnNpb24gPSAiNyIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQorIG5hbWVzcGFjZSBN ZXRhIHsKKyAJbmFtZXNwYWNlIENvbXBvc2l0b3IgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZGlzYWJsZV91 bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV91 bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAi bWV0YV9lbXB0eV9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBl bXB0eV9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9 ICJtZXRhX2VuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMgc3RhdGlj IHZvaWQgZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5 KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgiLCBjbmFtZSA9ICJtZXRhX2ZvY3VzX3N0YWdlX3dpbmRvdyIpXQorQEAgLTIxLDggKzE5LDYg QEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlzdDxD bHV0dGVyLkFjdG9yPiBnZXRfd2luZG93X2FjdG9ycyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOwor IAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIs IGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGlj IHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxh eSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0 X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24g KE1ldGEuRGlzcGxheSBkaXNwbGF5LCBYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKyAJfQorIAlu YW1lc3BhY2UgUHJlZnMgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfYmVsbF9pc19hdWRpYmxlIildCitAQCAtNDcsNiAr NDMsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIE1ldGEuQnV0dG9uTGF5 b3V0IHByZWZzX2dldF9idXR0b25fbGF5b3V0ICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NlbnRlcl9uZXdf d2luZG93cyIpXQorIAkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9jZW50ZXJfbmV3X3dp bmRvd3MgKCk7CisrCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y25hbWUgPSAibWV0YV9wcmVmc19nZXRfY2hlY2tfYWxpdmVfdGltZW91dCIpXQorKwkJcHVibGlj IHN0YXRpYyB1aW50IHByZWZzX2dldF9jaGVja19hbGl2ZV90aW1lb3V0ICgpOworIAkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNf Z2V0X2NvbXBvc2l0aW5nX21hbmFnZXIiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19n ZXRfY29tcG9zaXRpbmdfbWFuYWdlciAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jdXJzb3Jfc2l6ZSIpXQor QEAgLTc1LDggKzczLDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyBib29s IHByZWZzX2dldF9nbm9tZV9hY2Nlc3NpYmlsaXR5ICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2dub21lX2Fu aW1hdGlvbnMiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZ25vbWVfYW5pbWF0 aW9ucyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyIildCist CQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGVi YXIgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25h bWUgPSAibWV0YV9wcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24iKV0KKyAJCXB1YmxpYyBzdGF0 aWMgTWV0YS5LZXlCaW5kaW5nQWN0aW9uIHByZWZzX2dldF9rZXliaW5kaW5nX2FjdGlvbiAoc3Ry aW5nIG5hbWUpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tZW51IildCitAQCAtMTA1LDgg KzEwMSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19p bml0ICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4iKV0KKyAJCXB1YmxpYyBzdGF0 aWMgdm9pZCBwcmVmc19zZXRfZm9yY2VfZnVsbHNjcmVlbiAoYm9vbCB3aGV0aGVyKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX3NldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyIildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgcHJlZnNfc2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIgKGJvb2wgd2hldGhl cik7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUg PSAibWV0YV9wcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdm9p ZCBwcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMgKGludCBuX3dvcmtzcGFjZXMpOworIAkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNf c2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KK0BAIC0xMTcsMTIgKzExMSwxMCBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1l dGEuRGVidWdUb3BpYyB0b3BpYyk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2V4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9u IildCisgCQlwdWJsaWMgc3RhdGljIHN0cmluZyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2Fj dGlvbiAodWludCBrZXliaW5kaW5nX2FjdGlvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dfdXRmOF9zdHJuZHVwIildCistCQlw dWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4p OworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAi bWV0YV9nZXRfbG9jYWxlX2RpcmVjdGlvbiIpXQorIAkJcHVibGljIHN0YXRpYyBNZXRhLkxvY2Fs ZURpcmVjdGlvbiBnZXRfbG9jYWxlX2RpcmVjdGlvbiAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZ3Jhdml0eV90b19zdHJpbmci KV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJpbmcgKGlu dCBncmF2aXR5KTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0eV90b19z dHJpbmcgKE1ldGEuR3Jhdml0eSBncmF2aXR5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfZGVidWdnaW5nIildCisgCQlwdWJs aWMgc3RhdGljIGJvb2wgaXNfZGVidWdnaW5nICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9pc19zeW5jaW5nIildCitAQCAtMTY1 LDEyICsxNTcsMTMgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVub3duZWQgTWV0YS5E bmQgZ2V0X2RuZCAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuUmVtb3RlQWNjZXNzQ29udHJv bGxlciBnZXRfcmVtb3RlX2FjY2Vzc19jb250cm9sbGVyICgpOworIAkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BY3RvciBnZXRfc3RhZ2UgKCk7CisrCQlwdWJsaWMgYm9vbCBpc19yZW5kZXJpbmdf aGFyZHdhcmVfYWNjZWxlcmF0ZWQgKCk7CisgCQlwdWJsaWMgdm9pZCBsb2NrX2xheW91dF9ncm91 cCAodWludCBpZHgpOworIAkJcHVibGljIHZvaWQgc2V0X2tleW1hcCAoc3RyaW5nIGxheW91dHMs IHN0cmluZyB2YXJpYW50cywgc3RyaW5nIG9wdGlvbnMpOworIAkJcHVibGljIHZvaWQgc2V0X251 bWxvY2sgKGJvb2wgbnVtbG9ja19zdGF0ZSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFw X2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9j aGFuZ2VkICh1aW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2Vf Y2hhbmdlZCAoaW50IG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2Vf Y2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIGxpZF9pc19jbG9zZWRfY2hhbmdlZCAoYm9vbCBvYmplY3QpOworIAl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC5oIiwgdHlwZV9pZCA9ICJt ZXRhX2JhY2tncm91bmRfZ2V0X3R5cGUgKCkiKV0KK0BAIC0xODAsNyArMTczLDcgQEAgbmFtZXNw YWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIHJlZnJlc2hfYWxsICgpOworIAkJcHVi bGljIHZvaWQgc2V0X2JsZW5kIChHTGliLkZpbGUgZmlsZTEsIEdMaWIuRmlsZSBmaWxlMiwgZG91 YmxlIGJsZW5kX2ZhY3RvciwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJCXB1 YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlwdWJsaWMgdm9p ZCBzZXRfZmlsZSAoR0xpYi5GaWxlIGZpbGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHls ZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxlPyBmaWxlLCBHRGVza3RvcC5C YWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworIAkJcHVibGljIHZvaWQgc2V0X2dyYWRpZW50IChHRGVz a3RvcC5CYWNrZ3JvdW5kU2hhZGluZyBzaGFkaW5nX2RpcmVjdGlvbiwgQ2x1dHRlci5Db2xvciBj b2xvciwgQ2x1dHRlci5Db2xvciBzZWNvbmRfY29sb3IpOworIAkJW05vQWNjZXNzb3JNZXRob2Rd CisgCQlwdWJsaWMgTWV0YS5EaXNwbGF5IG1ldGFfZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3Ry dWN0OyB9CitAQCAtMTkwLDkgKzE4MywxOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1YmxpYyBj bGFzcyBCYWNrZ3JvdW5kQWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENs dXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0b3IqIildCisgCQlwdWJsaWMgQmFja2dyb3VuZEFjdG9yIChNZXRhLkRpc3BsYXkgZGlz cGxheSwgaW50IG1vbml0b3IpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0 YS5EaXNwbGF5IG1ldGFfZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBpbnQgbW9uaXRvciB7IGdldDsgY29uc3RydWN0OyB9 CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5k LWNvbnRlbnQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2NvbnRlbnRfZ2V0X3R5cGUg KCkiKV0KKysJcHVibGljIGNsYXNzIEJhY2tncm91bmRDb250ZW50IDogR0xpYi5PYmplY3QsIENs dXR0ZXIuQ29udGVudCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisrCQlwcm90ZWN0ZWQgQmFja2dyb3VuZENvbnRlbnQgKCk7CisrCQlwdWJsaWMgc3RhdGlj IENsdXR0ZXIuQ29udGVudCBAbmV3IChNZXRhLkRpc3BsYXkgZGlzcGxheSwgaW50IG1vbml0b3Ip OworIAkJcHVibGljIHZvaWQgc2V0X2JhY2tncm91bmQgKE1ldGEuQmFja2dyb3VuZCBiYWNrZ3Jv dW5kKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoYm9vbCBlbmFibGVkLCBpbnQgaGVp Z2h0LCBkb3VibGUgdG9uZV9zdGFydCk7CistCQlwdWJsaWMgdm9pZCBzZXRfbW9uaXRvciAoaW50 IG1vbml0b3IpOworIAkJcHVibGljIHZvaWQgc2V0X3ZpZ25ldHRlIChib29sIGVuYWJsZWQsIGRv dWJsZSBicmlnaHRuZXNzLCBkb3VibGUgc2hhcnBuZXNzKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorIAkJcHVibGljIE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kIHsgb3duZWQgZ2V0OyBzZXQ7 IH0KK0BAIC0yNzcsMTQgKzI3OSwxNCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgTWV0YS5DdXJzb3JUcmFja2VyIGdldF9mb3JfZGlzcGxheSAoTWV0YS5EaXNw bGF5IGRpc3BsYXkpOworIAkJcHVibGljIHZvaWQgZ2V0X2hvdCAob3V0IGludCB4LCBvdXQgaW50 IHkpOworIAkJcHVibGljIHZvaWQgZ2V0X3BvaW50ZXIgKGludCB4LCBpbnQgeSwgQ2x1dHRlci5N b2RpZmllclR5cGUgbW9kcyk7CisrCQlwdWJsaWMgYm9vbCBnZXRfcG9pbnRlcl92aXNpYmxlICgp OworIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9zcHJpdGUgKCk7CisgCQlwdWJs aWMgdm9pZCBzZXRfcG9pbnRlcl92aXNpYmxlIChib29sIHZpc2libGUpOworKwkJW05vQWNjZXNz b3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNv bnN0cnVjdDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgiLCB0eXBlX2lkID0gIm1ldGFfZGJ1c19kaXNwbGF5X2NvbmZpZ19za2VsZXRvbl9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgREJ1c0Rpc3BsYXlDb25maWdTa2VsZXRvbiA6IEdMaWIu REJ1c0ludGVyZmFjZVNrZWxldG9uLCBHTGliLkRCdXNJbnRlcmZhY2UgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERCdXNEaXNwbGF5 Q29uZmlnU2tlbGV0b24gKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX21vdmVkIChm bG9hdCB4LCBmbG9hdCB5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB2aXNpYmlsaXR5X2NoYW5n ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5o IiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNz IERpc3BsYXkgOiBHTGliLk9iamVjdCB7CitAQCAtMzA5LDMyICszMTEsMzkgQEAgbmFtZXNwYWNl IE1ldGEgeworIAkJcHVibGljIGJvb2wgZ2V0X21vbml0b3JfaW5fZnVsbHNjcmVlbiAoaW50IG1v bml0b3IpOworIAkJcHVibGljIGludCBnZXRfbW9uaXRvcl9pbmRleF9mb3JfcmVjdCAoTWV0YS5S ZWN0YW5nbGUgcmVjdCk7CisgCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX25laWdoYm9yX2luZGV4 IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0YS5EaXNwbGF5RGlyZWN0aW9uIGRpcik7CisrCQlwdWJs aWMgZmxvYXQgZ2V0X21vbml0b3Jfc2NhbGUgKGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyBpbnQg Z2V0X25fbW9uaXRvcnMgKCk7CisgCQlwdWJsaWMgc3RyaW5nIGdldF9wYWRfYWN0aW9uX2xhYmVs IChDbHV0dGVyLklucHV0RGV2aWNlIHBhZCwgTWV0YS5QYWRBY3Rpb25UeXBlIGFjdGlvbl90eXBl LCB1aW50IGFjdGlvbl9udW1iZXIpOworIAkJcHVibGljIGludCBnZXRfcHJpbWFyeV9tb25pdG9y ICgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5TZWxlY3Rpb24gZ2V0X3NlbGVjdGlvbiAoKTsK KyAJCXB1YmxpYyB2b2lkIGdldF9zaXplIChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7 CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNvdW5kUGxheWVyIGdldF9zb3VuZF9wbGF5ZXIgKCk7 CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX2N1cnJlbnQgKE1ldGEuVGFi TGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworIAkJcHVibGljIEdMaWIuTGlz dDx3ZWFrIE1ldGEuV2luZG93PiBnZXRfdGFiX2xpc3QgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRh LldvcmtzcGFjZT8gd29ya3NwYWNlKTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdl dF90YWJfbmV4dCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwg TWV0YS5XaW5kb3c/IHdpbmRvdywgYm9vbCBiYWNrd2FyZCk7CisgCQlwdWJsaWMgdW5vd25lZCBN ZXRhLldvcmtzcGFjZU1hbmFnZXIgZ2V0X3dvcmtzcGFjZV9tYW5hZ2VyICgpOworLQkJcHVibGlj IHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAoc3RyaW5nIGFjY2VsZXJhdG9yKTsKKysJCXB1YmxpYyB1 aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0cmluZyBhY2NlbGVyYXRvciwgTWV0YS5LZXlCaW5kaW5n RmxhZ3MgZmxhZ3MpOworIAkJcHVibGljIGJvb2wgaXNfcG9pbnRlcl9lbXVsYXRpbmdfc2VxdWVu Y2UgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UpOworIAkJcHVibGljIGJvb2wgcmVt b3ZlX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lKTsKKyAJCXB1YmxpYyB2b2lkIHJlcXVlc3RfcGFk X29zZCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIGJvb2wgZWRpdGlvbl9tb2RlKTsKKyAJCXB1 YmxpYyB2b2lkIHNldF9jdXJzb3IgKE1ldGEuQ3Vyc29yIGN1cnNvcik7CisrCQlwdWJsaWMgdm9p ZCBzZXRfaW5wdXRfZm9jdXMgKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBmb2N1c19mcmFtZSwg dWludDMyIHRpbWVzdGFtcCk7CisgCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIE1ldGEuV2luZG93 PiBzb3J0X3dpbmRvd3NfYnlfc3RhY2tpbmcgKEdMaWIuU0xpc3Q8TWV0YS5XaW5kb3c+IHdpbmRv d3MpOworIAkJcHVibGljIGJvb2wgc3VwcG9ydHNfZXh0ZW5kZWRfYmFycmllcnMgKCk7CisgCQlw dWJsaWMgdm9pZCB1bmZyZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7CisgCQlwdWJs aWMgYm9vbCB1bmdyYWJfYWNjZWxlcmF0b3IgKHVpbnQgYWN0aW9uX2lkKTsKKyAJCXB1YmxpYyB2 b2lkIHVuZ3JhYl9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCB1 bnNldF9pbnB1dF9mb2N1cyAodWludDMyIHRpbWVzdGFtcCk7CisgCQlwdWJsaWMgYm9vbCB4c2Vy dmVyX3RpbWVfaXNfYmVmb3JlICh1aW50MzIgdGltZTEsIHVpbnQzMiB0aW1lMik7CisgCQlwdWJs aWMgTWV0YS5XaW5kb3cgZm9jdXNfd2luZG93IHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgYWNjZWxlcmF0b3JfYWN0aXZhdGVkICh1aW50IG9iamVjdCwgdWludCBwMCwgdWludCBwMSk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxlcmF0b3JfYWN0aXZhdGVkICh1aW50IG9iamVj dCwgQ2x1dHRlci5JbnB1dERldmljZSBwMCwgdWludCBwMSk7CisrCQlwdWJsaWMgc2lnbmFsIHZv aWQgY2xvc2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfdXBkYXRlZCAoKTsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCBnbF92aWRlb19tZW1vcnlfcHVyZ2VkICgpOworIAkJcHVi bGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEu V2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9v cF9lbmQgKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBw MSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVsbHNjcmVlbl9jaGFuZ2VkICgpOworKwkJ cHVibGljIHNpZ25hbCBib29sIGluaXRfeHNlcnZlciAoR0xpYi5UYXNrIG9iamVjdCk7CisgCQlw dWJsaWMgc2lnbmFsIGJvb2wgbW9kaWZpZXJzX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCAoKTsKKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCBvdmVybGF5X2tleSAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCBwYWRfbW9kZV9zd2l0Y2ggKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCB1aW50IHAwLCB1 aW50IHAxKTsKK0BAIC0zNDUsNyArMzU0LDYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGlj IHNpZ25hbCBib29sIHNob3dfcmVzaXplX3BvcHVwIChib29sIG9iamVjdCwgTWV0YS5SZWN0YW5n bGUgcDAsIGludCBwMSwgaW50IHAyKTsKKyAJCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc3Rh cnRfbWVzc2FnZSAoc3RyaW5nPyBtZXNzYWdlKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93 aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzdGFydHVwX3Nl cXVlbmNlX2NoYW5nZWQgKHZvaWQqIG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2lu ZG93X2NyZWF0ZWQgKE1ldGEuV2luZG93IG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg d2luZG93X2RlbWFuZHNfYXR0ZW50aW9uIChNZXRhLldpbmRvdyBvYmplY3QpOworIAkJcHVibGlj IHNpZ25hbCB2b2lkIHdpbmRvd19lbnRlcmVkX21vbml0b3IgKGludCBvYmplY3QsIE1ldGEuV2lu ZG93IHAwKTsKK0BAIC0zNTQsNiArMzYyLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGlj IHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lk IHgxMV9kaXNwbGF5X2Nsb3NpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3Bs YXlfb3BlbmVkICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X3NldHVwICgp OworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtZG5kLmgiLCB0 eXBlX2lkID0gIm1ldGFfZG5kX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBEbmQgOiBH TGliLk9iamVjdCB7CitAQCAtMzYzLDcgKzM3Miw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBkbmRfbGVhdmUgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5k X3Bvc2l0aW9uX2NoYW5nZSAoaW50IG9iamVjdCwgaW50IHAwKTsKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBGcmFtZSB7CisgCX0KK0BAIC0z NzQsMTMgKzM4MywxMiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdWludCBhZGRfaWRs ZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRj aEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyB1aW50IGFkZF91c2VyX2FjdGl2ZV93YXRjaCAo b3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworIAkJcHVibGljIHN0 YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUgKCk7CistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9yX2RldmljZSAoaW50IGRldmljZV9p ZCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgpOworIAkJcHVibGljIHZvaWQgcmVt b3ZlX3dhdGNoICh1aW50IGlkKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGlu dCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIENsdXR0ZXIuSW5wdXRE ZXZpY2UgZGV2aWNlIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9rZXliaW5kaW5ncy5oIiwgY29weV9mdW5jdGlvbiA9ICJn X2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAi bWV0YV9rZXlfYmluZGluZ19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVf ZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dl dF90eXBlICgpIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgS2V5QmluZGluZyB7Cisg CQlwdWJsaWMgdWludCBnZXRfbWFzayAoKTsKK0BAIC0zOTEsOCArMzk5LDIxIEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCVtDQ29kZSAoY25hbWUgPSAibWV0YV9rZXliaW5kaW5nc19zZXRfY3VzdG9t X2hhbmRsZXIiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBzZXRfY3VzdG9tX2hhbmRsZXIgKHN0 cmluZyBuYW1lLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5jPyBoYW5kbGVyKTsKKyAJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgiLCB0 eXBlX2lkID0gIm1ldGFfbGF1bmNoX2NvbnRleHRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNs YXNzIExhdW5jaENvbnRleHQgOiBHTGliLkFwcExhdW5jaENvbnRleHQgeworKwkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIExhdW5jaENvbnRl eHQgKCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfdGltZXN0YW1wICh1aW50MzIgdGltZXN0YW1wKTsK KysJCXB1YmxpYyB2b2lkIHNldF93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7 CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7 IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1Ymxp YyB1aW50IHRpbWVzdGFtcCB7IGdldDsgc2V0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJ CXB1YmxpYyBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UgeyBvd25lZCBnZXQ7IHNldDsgfQorKwl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgiLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9tYW5hZ2VyX2dldF90eXBlICgpIildCistCXB1 YmxpYyBhYnN0cmFjdCBjbGFzcyBNb25pdG9yTWFuYWdlciA6IE1ldGEuREJ1c0Rpc3BsYXlDb25m aWdTa2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNlLCBHTGliLkRCdXNJbnRlcmZhY2UgeworKwlw dWJsaWMgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgTW9uaXRvck1hbmFn ZXIgKCk7CisgCQlwdWJsaWMgYm9vbCBjYW5fc3dpdGNoX2NvbmZpZyAoKTsKK0BAIC00MDcsNiAr NDI4LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIGNvbmZpcm1f ZGlzcGxheV9jaGFuZ2UgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdl ZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBtb25pdG9yc19jaGFuZ2VkX2ludGVybmFsICgp OworKwkJcHVibGljIHNpZ25hbCB2b2lkIHBvd2VyX3NhdmVfbW9kZV9jaGFuZ2VkICgpOworIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCB0eXBl X2lkID0gIm1ldGFfcGx1Z2luX2dldF90eXBlICgpIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFz cyBQbHVnaW4gOiBHTGliLk9iamVjdCB7CitAQCAtNDMwLDYgKzQ1Miw4IEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2lsbF9zd2l0Y2hfd29ya3NwYWNlICgpOwor IAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2lsbF93aW5kb3dfZWZmZWN0 cyAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZp cnR1YWwgdm9pZCBsb2NhdGVfcG9pbnRlciAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBtYW5h Z2VyX3NldF9wbHVnaW5fdHlwZSAoR0xpYi5UeXBlIGd0eXBlKTsKKyAJCVtOb1dyYXBwZXJdCisg CQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CitAQCAt NDY1LDI2ICs0ODksNTYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgY2xhc3MgUmVtb3Rl QWNjZXNzQ29udHJvbGxlciA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBSZW1vdGVBY2Nlc3NDb250cm9sbGVy ICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdF9yZW1vdGVfYWNjZXNzICgpOworKwkJcHVibGlj IHZvaWQgdW5pbmhpYml0X3JlbW90ZV9hY2Nlc3MgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg bmV3X2hhbmRsZSAoTWV0YS5SZW1vdGVBY2Nlc3NIYW5kbGUgb2JqZWN0KTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlbW90ZV9hY2Nlc3NfaGFuZGxlX2dldF90eXBlICgpIild CisgCXB1YmxpYyBjbGFzcyBSZW1vdGVBY2Nlc3NIYW5kbGUgOiBHTGliLk9iamVjdCB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgUmVt b3RlQWNjZXNzSGFuZGxlICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2Rpc2FibGVfYW5pbWF0aW9u cyAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3RvcCAoKTsKKysJCVtOb0FjY2Vzc29yTWV0 aG9kXQorKwkJcHVibGljIGJvb2wgaXNfcmVjb3JkaW5nIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCBzdG9wcGVkICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9zZWxlY3Rpb25fZ2V0X3R5 cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFNlbGVjdGlvbiA6IEdMaWIuT2JqZWN0IHsKKysJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1YmxpYyBTZWxlY3Rp b24gKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKysJCXB1YmxpYyBHTGliLkxpc3Q8c3RyaW5nPiBn ZXRfbWltZXR5cGVzIChNZXRhLlNlbGVjdGlvblR5cGUgc2VsZWN0aW9uX3R5cGUpOworKwkJcHVi bGljIHZvaWQgc2V0X293bmVyIChNZXRhLlNlbGVjdGlvblR5cGUgc2VsZWN0aW9uX3R5cGUsIE1l dGEuU2VsZWN0aW9uU291cmNlIG93bmVyKTsKKysJCXB1YmxpYyBhc3luYyBib29sIHRyYW5zZmVy X2FzeW5jIChNZXRhLlNlbGVjdGlvblR5cGUgc2VsZWN0aW9uX3R5cGUsIHN0cmluZyBtaW1ldHlw ZSwgc3NpemVfdCBzaXplLCBHTGliLk91dHB1dFN0cmVhbSBvdXRwdXQsIEdMaWIuQ2FuY2VsbGFi bGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyB2b2lkIHVuc2V0 X293bmVyIChNZXRhLlNlbGVjdGlvblR5cGUgc2VsZWN0aW9uX3R5cGUsIE1ldGEuU2VsZWN0aW9u U291cmNlIG93bmVyKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBvd25lcl9jaGFuZ2VkICh1aW50 IG9iamVjdCwgTWV0YS5TZWxlY3Rpb25Tb3VyY2UgcDApOworKwl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9zZWxlY3Rpb25fc291 cmNlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTZWxlY3Rpb25Tb3VyY2UgOiBHTGli Lk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisr CQlwcm90ZWN0ZWQgU2VsZWN0aW9uU291cmNlICgpOworKwkJcHVibGljIHZpcnR1YWwgR0xpYi5M aXN0PHN0cmluZz4gZ2V0X21pbWV0eXBlcyAoKTsKKysJCXB1YmxpYyBib29sIGlzX2FjdGl2ZSAo KTsKKysJCXB1YmxpYyB2aXJ0dWFsIGFzeW5jIEdMaWIuSW5wdXRTdHJlYW0gcmVhZF9hc3luYyAo c3RyaW5nIG1pbWV0eXBlLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdM aWIuRXJyb3I7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhY3RpdmF0ZWQgKCk7Cisr CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBkZWFjdGl2YXRlZCAoKTsKKysJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfc2Vs ZWN0aW9uX3NvdXJjZV9tZW1vcnlfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFNlbGVj dGlvblNvdXJjZU1lbW9yeSA6IE1ldGEuU2VsZWN0aW9uU291cmNlIHsKKysJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIk1ldGFTZWxlY3Rpb25Tb3VyY2Uq IildCisrCQlwdWJsaWMgU2VsZWN0aW9uU291cmNlTWVtb3J5IChzdHJpbmcgbWltZXR5cGUsIEdM aWIuQnl0ZXMgY29udGVudCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1zZXR0aW5ncy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQor IAlwdWJsaWMgY2xhc3MgU2V0dGluZ3MgeworIAkJcHVibGljIGludCBnZXRfZm9udF9kcGkgKCk7 CisgCQlwdWJsaWMgaW50IGdldF91aV9zY2FsaW5nX2ZhY3RvciAoKTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCByZWZfZnVu Y3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlw ZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHJlZl9mdW5jdGlvbiA9ICJtZXRhX3No YWRvd19yZWYiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2dldF90eXBlICgpIiwgdW5yZWZfZnVu Y3Rpb24gPSAibWV0YV9zaGFkb3dfdW5yZWYiKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFz cyBTaGFkb3cgeworIAkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAoaW50IHdpbmRvd194LCBpbnQg d2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCBDYWlyby5SZWN0 YW5nbGVJbnQgYm91bmRzKTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50IChpbnQgd2luZG93X3gsIGlu dCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIHVpbnQ4IG9w YWNpdHksIENhaXJvLlJlZ2lvbj8gY2xpcCwgYm9vbCBjbGlwX3N0cmljdGx5KTsKKysJCXB1Ymxp YyB2b2lkIHBhaW50IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyLCBpbnQgd2luZG93X3gs IGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIHVpbnQ4 IG9wYWNpdHksIENhaXJvLlJlZ2lvbj8gY2xpcCwgYm9vbCBjbGlwX3N0cmljdGx5KTsKKyAJCXB1 YmxpYyBNZXRhLlNoYWRvdyBAcmVmICgpOworIAkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisgCX0K K0BAIC00OTksMjggKzU1Myw3NCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhcGVkX3RleHR1cmVf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYXBlZFRleHR1cmUgOiBDbHV0dGVyLkFj dG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWlu ZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisrCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDog R0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgU2hhcGVkVGV4dHVyZSAoKTsKKy0JCXB1 YmxpYyBDYWlyby5TdXJmYWNlIGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50IGNsaXApOwor KwkJcHVibGljIENhaXJvLlN1cmZhY2U/IGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBj bGlwKTsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBjcmVhdGVfbWlwbWFwcyk7Cisg CQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2dsLlRleHR1cmUgbWFza190ZXh0dXJl KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9uIChvd25lZCBDYWlyby5SZWdpb24g b3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRhdGVfYXJlYSAoaW50IHgsIGludCB5 LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hh bmdlZCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWdlX2dldF90eXBlICgpIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc291bmQtcGxheWVyLmgiLCB0eXBl X2lkID0gIm1ldGFfc291bmRfcGxheWVyX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBT b3VuZFBsYXllciA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTb3VuZFBsYXllciAoKTsKKysJCXB1YmxpYyB2 b2lkIHBsYXlfZnJvbV9maWxlIChHTGliLkZpbGUgZmlsZSwgc3RyaW5nIGRlc2NyaXB0aW9uLCBH TGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpOworKwkJcHVibGljIHZvaWQgcGxh eV9mcm9tX3RoZW1lIChzdHJpbmcgbmFtZSwgc3RyaW5nIGRlc2NyaXB0aW9uLCBHTGliLkNhbmNl bGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtc3RhZ2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRfdHlw ZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLlN0YWdlLCBBdGsuSW1wbGVt ZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisg CQlwcm90ZWN0ZWQgU3RhZ2UgKCk7CisgCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZm9jdXNlZCAo TWV0YS5EaXNwbGF5IGRpc3BsYXkpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGFjdG9yc19wYWlu dGVkICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFydHVwX25vdGlmaWNhdGlv bl9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU3RhcnR1cE5vdGlmaWNhdGlvbiA6IEdM aWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KysJCXByb3RlY3RlZCBTdGFydHVwTm90aWZpY2F0aW9uICgpOworKwkJcHVibGljIE1ldGEuTGF1 bmNoQ29udGV4dCBjcmVhdGVfbGF1bmNoZXIgKCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJ CXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9Cisr CQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAodm9pZCogb2JqZWN0KTsKKysJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfc3Rh cnR1cF9zZXF1ZW5jZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU3RhcnR1cFNlcXVl bmNlIDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorKwkJcHJvdGVjdGVkIFN0YXJ0dXBTZXF1ZW5jZSAoKTsKKysJCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfYXBwbGljYXRpb25faWQgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfY29t cGxldGVkICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9pY29uX25hbWUgKCk7Cisr CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2lkICgpOworKwkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9uYW1lICgpOworKwkJcHVibGljIHVpbnQ2NCBnZXRfdGltZXN0YW1wICgpOworKwkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bWNsYXNzICgpOworKwkJcHVibGljIGludCBnZXRf d29ya3NwYWNlICgpOworKwkJcHVibGljIHN0cmluZyBhcHBsaWNhdGlvbl9pZCB7IGdldDsgY29u c3RydWN0OyB9CisrCQlwdWJsaWMgc3RyaW5nIGljb25fbmFtZSB7IGdldDsgY29uc3RydWN0OyB9 CisrCQlwdWJsaWMgc3RyaW5nIGlkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBzdHJp bmcgbmFtZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgdWludDY0IHRpbWVzdGFtcCB7 IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3RyaW5nIHdtY2xhc3MgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorKwkJcHVibGljIGludCB3b3Jrc3BhY2UgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJ W0hhc0VtaXR0ZXJdCisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY29tcGxldGUgKCk7CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdGhlbWUuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFRoZW1lIHsKKyAJCXB1YmxpYyB2 b2lkIGZyZWUgKCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS13YXlsYW5kLWNsaWVudC5oIiwgdHlwZV9pZCA9ICJtZXRhX3dheWxhbmRfY2xpZW50X2dldF90 eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBXYXlsYW5kQ2xpZW50IDogR0xpYi5PYmplY3Qgewor KwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHVibGljIFdh eWxhbmRDbGllbnQgKEdMaWIuU3VicHJvY2Vzc0xhdW5jaGVyIGxhdW5jaGVyKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKysJCXB1YmxpYyB2b2lkIGhpZGVfZnJvbV93aW5kb3dfbGlzdCAoTWV0YS5XaW5k b3cgd2luZG93KTsKKysJCXB1YmxpYyBib29sIG93bnNfd2luZG93IChNZXRhLldpbmRvdyB3aW5k b3cpOworKwkJcHVibGljIHZvaWQgc2hvd19pbl93aW5kb3dfbGlzdCAoTWV0YS5XaW5kb3cgd2lu ZG93KTsKKysJCXB1YmxpYyBHTGliLlN1YnByb2Nlc3Mgc3Bhd252IChNZXRhLkRpc3BsYXkgZGlz cGxheSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVk ID0gdHJ1ZSldIHN0cmluZ1tdIGFyZ3YpIHRocm93cyBHTGliLkVycm9yOworKwl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgdHlwZV9pZCA9ICJtZXRhX3dp bmRvd19nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93IDogR0xp Yi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor QEAgLTU0Nyw2ICs2NDcsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgTWV0YS5SZWN0 YW5nbGUgZnJhbWVfcmVjdF90b19jbGllbnRfcmVjdCAoTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVj dCk7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2J1ZmZlcl9yZWN0ICgpOworIAkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9jbGllbnRfbWFjaGluZSAoKTsKKysJCXB1YmxpYyBNZXRh LldpbmRvd0NsaWVudFR5cGUgZ2V0X2NsaWVudF90eXBlICgpOworIAkJcHVibGljIHVub3duZWQg R0xpYi5PYmplY3QgZ2V0X2NvbXBvc2l0b3JfcHJpdmF0ZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfZGVzY3JpcHRpb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3Bs YXkgZ2V0X2Rpc3BsYXkgKCk7CitAQCAtNTYxLDYgKzY2Miw3IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3VuaXF1ZV9idXNfbmFtZSAoKTsKKyAJ CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3dpbmRvd19vYmplY3RfcGF0aCAoKTsKKyAJ CXB1YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5IChvdXQgTWV0YS5SZWN0YW5nbGUgcmVjdCk7 CisrCQlwdWJsaWMgdWludDY0IGdldF9pZCAoKTsKKyAJCXB1YmxpYyBNZXRhLlN0YWNrTGF5ZXIg Z2V0X2xheWVyICgpOworIAkJcHVibGljIE1ldGEuTWF4aW1pemVGbGFncyBnZXRfbWF4aW1pemVk ICgpOworIAkJcHVibGljIGludCBnZXRfbW9uaXRvciAoKTsKK0BAIC02MTAsOCArNzEyLDYgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHZvaWQgbW92ZV9yZXNpemVfZnJhbWUgKGJvb2wg dXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udywgaW50IHcsIGludCBoKTsKKyAJ CXB1YmxpYyB2b2lkIG1vdmVfdG9fbW9uaXRvciAoaW50IG1vbml0b3IpOworIAkJcHVibGljIHZv aWQgcmFpc2UgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfYnlwYXNzX2NvbXBvc2l0b3Ig KCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfZG9udF9ieXBhc3NfY29tcG9zaXRvciAoKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9jb21wb3NpdG9yX3ByaXZhdGUgKEdMaWIuT2JqZWN0IHByaXYp OworIAkJcHVibGljIHZvaWQgc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworIAkJcHVibGljIHZv aWQgc2V0X2ljb25fZ2VvbWV0cnkgKE1ldGEuUmVjdGFuZ2xlPyByZWN0KTsKK0BAIC02NzIsMjQg Kzc3MiwyNSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd24g KCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIHVubWFuYWdlZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB1bm1hbmFnaW5n ICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9jaGFuZ2VkICgpOworIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2luZG93LWFjdG9yLmgiLCB0 eXBlX2lkID0gIm1ldGFfd2luZG93X2FjdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFz cyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5B bmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKysJcHVi bGljIGFic3RyYWN0IGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxl bWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNj cmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor IAkJcHJvdGVjdGVkIFdpbmRvd0FjdG9yICgpOworKwkJcHVibGljIHZvaWQgZnJlZXplICgpOwor KwkJcHVibGljIENhaXJvLlN1cmZhY2U/IGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBj bGlwKTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9tZXRhX3dpbmRvdyAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJs aWMgWC5XaW5kb3cgZ2V0X3hfd2luZG93ICgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5TaGFw ZWRUZXh0dXJlIGdldF90ZXh0dXJlICgpOworIAkJcHVibGljIGJvb2wgaXNfZGVzdHJveWVkICgp OworIAkJcHVibGljIHZvaWQgc3luY192aXNpYmlsaXR5ICgpOworKwkJcHVibGljIHZvaWQgdGhh dyAoKTsKKyAJCXB1YmxpYyBNZXRhLldpbmRvdyBtZXRhX3dpbmRvdyB7IGdldDsgY29uc3RydWN0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNz IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1l dGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgc2lnbmFs IHZvaWQgZGFtYWdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBlZmZlY3RzX2NvbXBsZXRl ZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsKKysJCXB1YmxpYyBz aWduYWwgdm9pZCB0aGF3ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ3JvdXBf Z2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFdpbmRvd0dyb3VwIDogQ2x1dHRlci5BY3Rv ciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVy LCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTcyMCw3ICs4MjEsOSBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAo aW50IHdoaWNoX21vbml0b3IpOworIAkJcHVibGljIGludCBpbmRleCAoKTsKKyAJCXB1YmxpYyBH TGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgpOworLQkJcHVibGljIHZv aWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ+IHN0cnV0cyk7Cisr CQlwdWJsaWMgdm9pZCBzZXRfYnVpbHRpbl9zdHJ1dHMgKEdMaWIuU0xpc3Q8TWV0YS5TdHJ1dD8+ IHN0cnV0cyk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBib29sIGFjdGl2ZSB7 IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgdWludCBuX3dpbmRvd3Mg eyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTczNiwyNyArODM5LDMzIEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9hY3Rp dmVfd29ya3NwYWNlICgpOworIAkJcHVibGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRl eCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7Cisr CQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZT8gZ2V0X3dvcmtzcGFjZV9ieV9pbmRleCAo aW50IGluZGV4KTsKKyAJCXB1YmxpYyB2b2lkIG92ZXJyaWRlX3dvcmtzcGFjZV9sYXlvdXQgKE1l dGEuRGlzcGxheUNvcm5lciBzdGFydGluZ19jb3JuZXIsIGJvb2wgdmVydGljYWxfbGF5b3V0LCBp bnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV93b3Jrc3Bh Y2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWludDMyIHRpbWVzdGFtcCk7CisrCQlwdWJs aWMgdm9pZCByZW9yZGVyX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBpbnQg bmV3X2luZGV4KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGludCBsYXlvdXRf Y29sdW1ucyB7IGdldDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgaW50IGxh eW91dF9yb3dzIHsgZ2V0OyB9CisgCQlwdWJsaWMgaW50IG5fd29ya3NwYWNlcyB7IGdldDsgfQor IAkJcHVibGljIHNpZ25hbCB2b2lkIGFjdGl2ZV93b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBz aWduYWwgdm9pZCB3b3Jrc3BhY2VfYWRkZWQgKGludCBvYmplY3QpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIHdvcmtzcGFjZV9yZW1vdmVkIChpbnQgb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwg dm9pZCB3b3Jrc3BhY2Vfc3dpdGNoZWQgKGludCBvYmplY3QsIGludCBwMCwgTWV0YS5Nb3Rpb25E aXJlY3Rpb24gcDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZXNfcmVvcmRlcmVk ICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEteDExLWRp c3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV94MTFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorIAlw dWJsaWMgY2xhc3MgWDExRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBYMTFEaXNwbGF5ICgpOwor LQkJcHVibGljIHZvaWQgZm9jdXNfdGhlX25vX2ZvY3VzX3dpbmRvdyAodWludDMyIHRpbWVzdGFt cCk7CisrCQlwdWJsaWMgdm9pZCBjbGVhcl9zdGFnZV9pbnB1dF9yZWdpb24gKCk7CisgCQlwdWJs aWMgaW50IGdldF9kYW1hZ2VfZXZlbnRfYmFzZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3NjcmVl bl9udW1iZXIgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zaGFwZV9ldmVudF9iYXNlICgpOworIAkJ cHVibGljIGJvb2wgaGFzX3NoYXBlICgpOworIAkJcHVibGljIHZvaWQgc2V0X2NtX3NlbGVjdGlv biAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9mb2N1c193aW5kb3cgKE1ldGEuV2luZG93 IHdpbmRvdywgYm9vbCBmb2N1c19mcmFtZSwgdWludDMyIHRpbWVzdGFtcCk7CisrCQlwdWJsaWMg dm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKyAJ CXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFguV2luZG93IHh3aW5k b3cpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFDbG9zZURpYWxvZ0ludGVyZmFjZSIsIHR5cGVf aWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5cGUgKCkiKV0KK0BAIC03NzksMjQgKzg4OCwy NCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBzaWduYWwg dm9pZCByZXNwb25zZSAoTWV0YS5JbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2UgcmVzcG9u c2UpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IEJ1dHRvbkxh eW91dCB7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFr IE1ldGEuQnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0b25zWzVdOworKwkJcHVibGljIHdlYWsgTWV0 YS5CdXR0b25GdW5jdGlvbiBsZWZ0X2J1dHRvbnNbNF07CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wgbGVmdF9idXR0b25zX2hhc19zcGFjZXJb NV07CisrCQlwdWJsaWMgd2VhayBib29sIGxlZnRfYnV0dG9uc19oYXNfc3BhY2VyWzRdOworIAkJ W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRv bkZ1bmN0aW9uIHJpZ2h0X2J1dHRvbnNbNV07CisrCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1 bmN0aW9uIHJpZ2h0X2J1dHRvbnNbNF07CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNl KV0KKy0JCXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRfYnV0dG9uc19oYXNfc3BhY2VyWzVdOworKwkJ cHVibGljIHdlYWsgYm9vbCByaWdodF9idXR0b25zX2hhc19zcGFjZXJbNF07CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBFZGdlIHsKKyAJCXB1YmxpYyBNZXRhLlJl Y3RhbmdsZSByZWN0OworIAkJcHVibGljIE1ldGEuU2lkZSBzaWRlX3R5cGU7CisgCQlwdWJsaWMg TWV0YS5FZGdlVHlwZSBlZGdlX3R5cGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1 YmxpYyBzdHJ1Y3QgRnJhbWVCb3JkZXJzIHsKKyAJCXB1YmxpYyBHdGsuQm9yZGVyIHZpc2libGU7 CisgCQlwdWJsaWMgR3RrLkJvcmRlciBpbnZpc2libGU7CitAQCAtODExLDE0ICs5MjAsMTQgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHdlYWsgc3RyaW5nIGxpY2Vuc2U7CisgCQlwdWJs aWMgd2VhayBzdHJpbmcgZGVzY3JpcHRpb247CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKyAJcHVibGljIHN0cnVjdCBQbHVnaW5WZXJzaW9uIHsKKyAJCXB1YmxpYyB1aW50IHZlcnNp b25fbWFqb3I7CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pbm9yOworIAkJcHVibGljIHVpbnQg dmVyc2lvbl9taWNybzsKKyAJCXB1YmxpYyB1aW50IHZlcnNpb25fYXBpOworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCB0eXBlX2lkID0gIm1ldGFfcmVj dGFuZ2xlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9 ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfcmVjdGFuZ2xlX2dldF90eXBlICgpIild CisgCXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xlIHsKKyAJCXB1YmxpYyBpbnQgeDsKKyAJCXB1Ymxp YyBpbnQgeTsKK0BAIC04MzYsNyArOTQ1LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGlj IE1ldGEuUmVjdGFuZ2xlIHVuaW9uIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CisgCQlwdWJsaWMg Ym9vbCB2ZXJ0X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgU2hhZG93UGFyYW1zIHsK KyAJCXB1YmxpYyBpbnQgcmFkaXVzOworIAkJcHVibGljIGludCB0b3BfZmFkZTsKK0BAIC04NDQs MTIgKzk1MywxMiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgaW50IHlfb2Zmc2V0Owor IAkJcHVibGljIHVpbnQ4IG9wYWNpdHk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVi bGljIHN0cnVjdCBTdHJ1dCB7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKyAJCXB1 YmxpYyBNZXRhLlNpZGUgc2lkZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgiLCBjcHJlZml4ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlw ZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9CQVJSSUVS X0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9kaXJlY3Rpb25fZ2V0X3R5cGUg KCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBCYXJyaWVyRGlyZWN0aW9uIHsKKyAJCVBP U0lUSVZFX1gsCitAQCAtODU3LDIxICs5NjYsMjAgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJTkVH QVRJVkVfWCwKKyAJCU5FR0FUSVZFX1kKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9CVVRUT05fRlVOQ1RJT05fIiwgdHlw ZV9pZCA9ICJtZXRhX2J1dHRvbl9mdW5jdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZV TkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0K KyAJcHVibGljIGVudW0gQnV0dG9uRnVuY3Rpb24geworIAkJTUVOVSwKKyAJCU1JTklNSVpFLAor IAkJTUFYSU1JWkUsCisgCQlDTE9TRSwKKy0JCUFQUE1FTlUsCisgCQlMQVNUCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCIsIGNwcmVm aXggPSAiTUVUQV9DTE9TRV9ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3Nl X2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQ0xPU0VfRElBTE9HX1JFU1BPTlNF XyIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0K KyAJcHVibGljIGVudW0gQ2xvc2VEaWFsb2dSZXNwb25zZSB7CisgCQlXQUlULAorIAkJRk9SQ0Vf Q0xPU0UKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9y LmgiLCBjcHJlZml4ID0gIk1FVEFfQ09NUF9FRkZFQ1RfIiwgdHlwZV9pZCA9ICJtZXRhX2NvbXBf ZWZmZWN0X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9DT01QX0VGRkVDVF8iLCB0eXBlX2lkID0gIm1ldGFf Y29tcF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gQ29tcEVmZmVjdCB7Cisg CQlDUkVBVEUsCisgCQlVTk1JTklNSVpFLAorQEAgLTg3OSw3ICs5ODcsNyBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCQlNSU5JTUlaRSwKKyAJCU5PTkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9DVVJTT1JfIiwgdHlwZV9p ZCA9ICJtZXRhX2N1cnNvcl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAi bWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gQ3Vyc29yIHsKKyAJCU5P TkUsCisgCQlERUZBVUxULAorQEAgLTkwMCw5ICsxMDA4LDEwIEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCVBPSU5USU5HX0hBTkQsCisgCQlDUk9TU0hBSVIsCisgCQlJQkVBTSwKKysJCUJMQU5LLAor IAkJTEFTVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIs IGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lkID0gIm1ldGFfZGVidWdfdG9waWNfZ2V0 X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX0RFQlVHXyIsIHR5cGVfaWQgPSAibWV0YV9kZWJ1Z190b3BpY19nZXRf dHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIERlYnVnVG9waWMgeworIAkJVkVS Qk9TRSwKK0BAIC05MjgsOSArMTAzNywxMCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlTSEFQRVMs CisgCQlDT01QT1NJVE9SLAorIAkJRURHRV9SRVNJU1RBTkNFLAorLQkJREJVUworKwkJREJVUywK KysJCUlOUFVUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9u LmgiLCBjcHJlZml4ID0gIk1FVEFfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9kaXJlY3Rp b25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfZGlyZWN0 aW9uX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gRGlyZWN0aW9uIHsK KyAJCUxFRlQsCitAQCAtOTQyLDIxICsxMDUyLDIxIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCUhP UklaT05UQUwsCisgCQlWRVJUSUNBTAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAi bWV0YV9kaXNwbGF5X2Nvcm5lcl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0eXBlX2lk ID0gIm1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gRGlz cGxheUNvcm5lciB7CisgCQlUT1BMRUZULAorIAkJVE9QUklHSFQsCisgCQlCT1RUT01MRUZULAor IAkJQk9UVE9NUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9k aXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlz cGxheV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJt ZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIERpc3Bs YXlEaXJlY3Rpb24geworIAkJVVAsCisgCQlET1dOLAorIAkJTEVGVCwKKyAJCVJJR0hUCisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGNwcmVmaXggPSAi TUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X0VER0VfIiwgdHlwZV9pZCA9ICJtZXRhX2VkZ2VfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgZW51bSBFZGdlVHlwZSB7CisgCQlXSU5ET1csCisgCQlNT05JVE9SLAorQEAgLTk2NywxMiAr MTA3NywxMSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlTVUNDRVNTLAorIAkJRVJST1IKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAi TUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJN RVRBX0ZSQU1FXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV9mbGFnc19nZXRfdHlwZSAoKSIpXQor IAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEZyYW1lRmxhZ3MgeworIAkJQUxMT1dTX0RFTEVURSwK KyAJCUFMTE9XU19NRU5VLAorLQkJQUxMT1dTX0FQUE1FTlUsCisgCQlBTExPV1NfTUlOSU1JWkUs CisgCQlBTExPV1NfTUFYSU1JWkUsCisgCQlBTExPV1NfVkVSVElDQUxfUkVTSVpFLAorQEAgLTk4 NCwxMiArMTA5MywxMSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlBTExPV1NfU0hBREUsCisgCQlB TExPV1NfTU9WRSwKKyAJCUZVTExTQ1JFRU4sCistCQlJU19GTEFTSElORywKKyAJCUFCT1ZFLAor IAkJVElMRURfTEVGVCwKKyAJCVRJTEVEX1JJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfVFlQRV8iLCB0 eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfVFlQRV8i LCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51 bSBGcmFtZVR5cGUgeworIAkJTk9STUFMLAorIAkJRElBTE9HLAorQEAgLTEwMDEsNyArMTEwOSw3 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCUxBU1Q7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg dG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQUJfT1BfIiwgdHlwZV9pZCA9ICJtZXRhX2dyYWJf b3BfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQUJfT1BfIiwgdHlwZV9pZCA9ICJtZXRhX2dyYWJfb3Bf Z2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gR3JhYk9wIHsKKyAJCU5PTkUsCisgCQlXSU5E T1dfQkFTRSwKK0BAIC0xMDI4LDEyICsxMTM2LDI2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCUtF WUJPQVJEX1JFU0laSU5HX1NFLAorIAkJS0VZQk9BUkRfUkVTSVpJTkdfVworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgiLCBjcHJlZml4ID0gIk1FVEFfSU5ISUJJVF9TSE9SVENVVFNfRElBTE9HX1JFU1BPTlNFXyIs IHR5cGVfaWQgPSAibWV0YV9pbmhpYml0X3Nob3J0Y3V0c19kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5 cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3By ZWZpeCA9ICJNRVRBX0dSQVZJVFlfIiwgdHlwZV9pZCA9ICJtZXRhX2dyYXZpdHlfZ2V0X3R5cGUg KCkiKV0KKysJcHVibGljIGVudW0gR3Jhdml0eSB7CisrCQlOT05FLAorKwkJTk9SVEhfV0VTVCwK KysJCU5PUlRILAorKwkJTk9SVEhfRUFTVCwKKysJCVdFU1QsCisrCQlDRU5URVIsCisrCQlFQVNU LAorKwkJU09VVEhfV0VTVCwKKysJCVNPVVRILAorKwkJU09VVEhfRUFTVCwKKysJCVNUQVRJQwor Kwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXgg PSAiTUVUQV9JTkhJQklUX1NIT1JUQ1VUU19ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9pZCA9ICJt ZXRhX2luaGliaXRfc2hvcnRjdXRzX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIpXQorIAlw dWJsaWMgZW51bSBJbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2UgeworIAkJQUxMT1csCisg CQlERU5ZCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNwcmVmaXggPSAiTUVUQV9LRVlCSU5ESU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5 X2JpbmRpbmdfYWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5ESU5HX0FDVElPTl8iLCB0 eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBlICgpIildCisgCXB1Ymxp YyBlbnVtIEtleUJpbmRpbmdBY3Rpb24geworIAkJTk9ORSwKKyAJCVdPUktTUEFDRV8xLAorQEAg LTExMjIsMjIgKzEyNDQsMjUgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJTU9WRV9UT19TSURFX1cs CisgCQlNT1ZFX1RPX0NFTlRFUiwKKyAJCU9WRVJMQVlfS0VZLAorKwkJTE9DQVRFX1BPSU5URVJf S0VZLAorIAkJSVNPX05FWFRfR1JPVVAsCisgCQlBTFdBWVNfT05fVE9QLAorIAkJU1dJVENIX01P TklUT1IsCisgCQlST1RBVEVfTU9OSVRPUiwKKyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5H XyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFf S0VZX0JJTkRJTkdfIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2ZsYWdzX2dldF90eXBl ICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gS2V5QmluZGluZ0ZsYWdzIHsKKyAJCU5P TkUsCisgCQlQRVJfV0lORE9XLAorIAkJQlVJTFRJTiwKKyAJCUlTX1JFVkVSU0VELAorLQkJTk9O X01BU0tBQkxFCisrCQlOT05fTUFTS0FCTEUsCisrCQlJR05PUkVfQVVUT1JFUEVBVCwKKysJCU5P X0FVVE9fR1JBQgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwu aCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0eXBlX2lkID0gIm1ldGFfbGF0ZXJfdHlwZV9n ZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjcHJlZml4ID0gIk1FVEFfTEFURVJfIiwgdHlwZV9pZCA9ICJtZXRhX2xhdGVyX3R5cGVfZ2V0 X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTGF0ZXJUeXBlIHsKKyAJCVJFU0laRSwKKyAJCUNB TENfU0hPV0lORywKK0BAIC0xMTQ2LDI1ICsxMjcxLDI1IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJ CUJFRk9SRV9SRURSQVcsCisgCQlJRExFCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRBX0xPQ0FMRV9ESVJFQ1RJT05fIiwgdHlw ZV9pZCA9ICJtZXRhX2xvY2FsZV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xPQ0FMRV9E SVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2xvY2FsZV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCki KV0KKyAJcHVibGljIGVudW0gTG9jYWxlRGlyZWN0aW9uIHsKKyAJCUxUUiwKKyAJCVJUTAorIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9 ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFnc19nZXRfdHlw ZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJl Zml4ID0gIk1FVEFfTUFYSU1JWkVfIiwgdHlwZV9pZCA9ICJtZXRhX21heGltaXplX2ZsYWdzX2dl dF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gTWF4aW1pemVGbGFncyB7Cisg CQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwsCisgCQlCT1RICisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NT0RB TF8iLCB0eXBlX2lkID0gIm1ldGFfbW9kYWxfb3B0aW9uc19nZXRfdHlwZSAoKSIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9E QUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCkiKV0KKyAJW0Zs YWdzXQorIAlwdWJsaWMgZW51bSBNb2RhbE9wdGlvbnMgeworIAkJUE9JTlRFUl9BTFJFQURZX0dS QUJCRUQsCisgCQlLRVlCT0FSRF9BTFJFQURZX0dSQUJCRUQKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIiwgY3ByZWZpeCA9ICJN RVRBX01PTklUT1JfU1dJVENIX0NPTkZJR18iLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9zd2l0 Y2hfY29uZmlnX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01PTklUT1JfU1dJVENIX0NPTkZJR18i LCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9zd2l0Y2hfY29uZmlnX3R5cGVfZ2V0X3R5cGUgKCki KV0KKyAJcHVibGljIGVudW0gTW9uaXRvclN3aXRjaENvbmZpZ1R5cGUgeworIAkJQUxMX01JUlJP UiwKKyAJCUFMTF9MSU5FQVIsCitAQCAtMTE3Miw3ICsxMjk3LDcgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJQlVJTFRJTiwKKyAJCVVOS05PV04KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9NT1RJT05fIiwgdHlwZV9pZCA9 ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01PVElPTl8iLCB0eXBl X2lkID0gIm1ldGFfbW90aW9uX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51 bSBNb3Rpb25EaXJlY3Rpb24geworIAkJVVAsCisgCQlET1dOLAorQEAgLTExODMsNyArMTMwOCw3 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCURPV05fTEVGVCwKKyAJCURPV05fUklHSFQKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0g Ik1FVEFfUEFEX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfcGFkX2FjdGlvbl90eXBlX2dldF90 eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNw cmVmaXggPSAiTUVUQV9QQURfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9wYWRfYWN0aW9uX3R5 cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gUGFkQWN0aW9uVHlwZSB7CisgCQlCVVRU T04sCisgCQlSSU5HLAorQEAgLTEyMjMsMzAgKzEzNDgsMzkgQEAgbmFtZXNwYWNlIE1ldGEgewor IAkJRFJBR0dBQkxFX0JPUkRFUl9XSURUSCwKKyAJCUFVVE9fTUFYSU1JWkUsCisgCQlDRU5URVJf TkVXX1dJTkRPV1MsCistCQlEUkFHX1RIUkVTSE9MRDsKKysJCURSQUdfVEhSRVNIT0xELAorKwkJ TE9DQVRFX1BPSU5URVIsCisrCQlDSEVDS19BTElWRV9USU1FT1VUOworIAkJcHVibGljIHVub3du ZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIiwgY3ByZWZpeCA9ICJNRVRBX1NIQURPV19NT0RF XyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9kZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfIiwgdHlw ZV9pZCA9ICJtZXRhX3NlbGVjdGlvbl90eXBlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVt IFNlbGVjdGlvblR5cGUgeworKwkJU0VMRUNUSU9OX1BSSU1BUlksCisrCQlTRUxFQ1RJT05fQ0xJ UEJPQVJELAorKwkJU0VMRUNUSU9OX0RORCwKKysJCU5fU0VMRUNUSU9OX1RZUEVTCisrCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X1NIQURPV19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9kZV9nZXRfdHlwZSAoKSIp XQorIAlwdWJsaWMgZW51bSBTaGFkb3dNb2RlIHsKKyAJCUFVVE8sCisgCQlGT1JDRURfT0ZGLAor IAkJRk9SQ0VEX09OCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t bW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfU0lERV8iLCB0eXBlX2lkID0gIm1ldGFfc2lkZV9nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj cHJlZml4ID0gIk1FVEFfU0lERV8iLCB0eXBlX2lkID0gIm1ldGFfc2lkZV9nZXRfdHlwZSAoKSIp XQorIAlwdWJsaWMgZW51bSBTaWRlIHsKKyAJCUxFRlQsCisgCQlSSUdIVCwKKyAJCVRPUCwKKyAJ CUJPVFRPTQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0 b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1ldGFfc2l6 ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJWkVfQ0hBTkdFXyIsIHR5cGVfaWQgPSAibWV0 YV9zaXplX2NoYW5nZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTaXplQ2hhbmdlIHsK KyAJCU1BWElNSVpFLAorIAkJVU5NQVhJTUlaRSwKKyAJCUZVTExTQ1JFRU4sCisgCQlVTkZVTExT Q1JFRU4KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFfc3RhY2tfbGF5ZXJfZ2V0 X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQgPSAibWV0YV9zdGFja19sYXllcl9nZXRf dHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBTdGFja0xheWVyIHsKKyAJCURFU0tUT1AsCisgCQlC T1RUT00sCitAQCAtMTI1NiwxOSArMTM5MCwxOSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlPVkVS UklERV9SRURJUkVDVCwKKyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlwZV9pZCA9 ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfTElTVF8iLCB0eXBlX2lkID0g Im1ldGFfdGFiX2xpc3RfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gVGFiTGlzdCB7Cisg CQlOT1JNQUwsCisgCQlET0NLUywKKyAJCUdST1VQLAorIAkJTk9STUFMX0FMTAorIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXggPSAiTUVU QV9UQUJfU0hPV18iLCB0eXBlX2lkID0gIm1ldGFfdGFiX3Nob3dfdHlwZV9nZXRfdHlwZSAoKSIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0g Ik1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5cGVfZ2V0X3R5cGUg KCkiKV0KKyAJcHVibGljIGVudW0gVGFiU2hvd1R5cGUgeworIAkJSUNPTiwKKyAJCUlOU1RBTlRM WQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3By ZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9pZCA9ICJtZXRhX3ZpcnR1YWxfbW9kaWZpZXJf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9pZCA9ICJtZXRhX3ZpcnR1YWxfbW9k aWZpZXJfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBWaXJ0dWFsTW9k aWZpZXIgeworIAkJU0hJRlRfTUFTSywKK0BAIC0xMjgyLDE3ICsxNDE2LDE3IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCU1PRDRfTUFTSywKKyAJCU1PRDVfTUFTSworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19D TElFTlRfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2NsaWVudF90eXBlX2dldF90eXBl ICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVm aXggPSAiTUVUQV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19j bGllbnRfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBXaW5kb3dDbGllbnRUeXBl IHsKKyAJCVdBWUxBTkQsCisgCQlYMTEKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfTUVOVV8iLCB0eXBlX2lk ID0gIm1ldGFfd2luZG93X21lbnVfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVf IiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVi bGljIGVudW0gV2luZG93TWVudVR5cGUgeworIAkJV00sCisgCQlBUFAKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5E T1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd190eXBlX2dldF90eXBlICgpIildCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5E T1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd190eXBlX2dldF90eXBlICgpIildCisgCXB1Ymxp YyBlbnVtIFdpbmRvd1R5cGUgeworIAkJTk9STUFMLAorIAkJREVTS1RPUCwKK0BAIC0xMzExLDUx ICsxNDQ1LDU3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCURORCwKKyAJCU9WRVJSSURFX09USEVS CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2 b2lkIElkbGVNb25pdG9yV2F0Y2hGdW5jIChNZXRhLklkbGVNb25pdG9yIG1vbml0b3IsIHVpbnQg d2F0Y2hfaWQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg aW5zdGFuY2VfcG9zID0gNC45KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgS2V5 SGFuZGxlckZ1bmMgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBNZXRhLldpbmRvdyB3aW5kb3csIFtD Q29kZSAodHlwZSA9ICJDbHV0dGVyS2V5RXZlbnQqIildIENsdXR0ZXIuS2V5RXZlbnQ/IGV2ZW50 LCBNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlwdWJsaWMg ZGVsZWdhdGUgdm9pZCBQcmVmc0NoYW5nZWRGdW5jIChNZXRhLlByZWZlcmVuY2UgcHJlZik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgaW5zdGFuY2VfcG9z ID0gMS45KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaW5z dGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgV2luZG93Rm9yZWFjaEZ1 bmMgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9DVVJSRU5UX1RJTUUiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9DVVJSRU5UX1RJ TUUiKV0KKyAJcHVibGljIGNvbnN0IGludCBDVVJSRU5UX1RJTUU7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9ERUZBVUxUX0lDT05f TkFNRSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFt ZSA9ICJNRVRBX0RFRkFVTFRfSUNPTl9OQU1FIildCisgCXB1YmxpYyBjb25zdCBzdHJpbmcgREVG QVVMVF9JQ09OX05BTUU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1v bi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fSEVJR0hUIildCisgCXB1 YmxpYyBjb25zdCBpbnQgSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX1dJRFRIIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURU SCIpXQorIAlwdWJsaWMgY29uc3QgaW50IElDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NQUpPUl9WRVJTSU9OIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1F VEFfTUFKT1JfVkVSU0lPTiIpXQorIAlwdWJsaWMgY29uc3QgaW50IE1BSk9SX1ZFUlNJT047Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVU QV9NSUNST19WRVJTSU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIpXQorIAlwdWJsaWMgY29uc3QgaW50 IE1JQ1JPX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1v bi5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fSEVJR0hUIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdI VCIpXQorIAlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05f V0lEVEgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25h bWUgPSAiTUVUQV9NSU5JX0lDT05fV0lEVEgiKV0KKyAJcHVibGljIGNvbnN0IGludCBNSU5JX0lD T05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwg Y25hbWUgPSAiTUVUQV9NSU5PUl9WRVJTSU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOT1JfVkVSU0lPTiIpXQorIAlwdWJs aWMgY29uc3QgaW50IE1JTk9SX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9Q TFVHSU5fQVBJX1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGludCBQTFVHSU5fQVBJX1ZFUlNJ T047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUg PSAiTUVUQV9QUklPUklUWV9CRUZPUkVfUkVEUkFXIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJB VyIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX0JFRk9SRV9SRURSQVc7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9QUklP UklUWV9QUkVGU19OT1RJRlkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9QUkVGU19OT1RJRlkiKV0KKyAJcHVibGlj IGNvbnN0IGludCBQUklPUklUWV9QUkVGU19OT1RJRlk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRURSQVciKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVU QV9QUklPUklUWV9SRURSQVciKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRURSQVc7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAi TUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKyAJcHVibGljIGNv bnN0IGludCBQUklPUklUWV9SRVNJWkU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbW1vbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVU QV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0KKyAJcHVibGljIGNvbnN0IGludCBWSVJUVUFM X0NPUkVfS0VZQk9BUkRfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bW1vbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfUE9JTlRFUl9JRCIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRV QUxfQ09SRV9QT0lOVEVSX0lEIildCisgCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX1BP SU5URVJfSUQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQor IAlwdWJsaWMgc3RhdGljIGJvb2wgYWN0aXZhdGVfc2Vzc2lvbiAoKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCBhZGRf Y2x1dHRlcl9kZWJ1Z19mbGFncyAoQ2x1dHRlci5EZWJ1Z0ZsYWcgZGVidWdfZmxhZ3MsIENsdXR0 ZXIuRHJhd0RlYnVnRmxhZyBkcmF3X2ZsYWdzLCBDbHV0dGVyLlBpY2tEZWJ1Z0ZsYWcgcGlja19m bGFncyk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlw dWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9pbml0ICgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGV4aXQgKE1ldGEu RXhpdENvZGUgY29kZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorKwlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywg c2l6ZV90IG4pOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K KyAJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuT3B0aW9uQ29udGV4dCBnZXRfb3B0aW9uX2Nv bnRleHQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQor IAlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3JlcGxhY2VfY3VycmVudF93bSAoKTsKK0BAIC0xMzY4 LDYgKzE1MDgsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJfd2l0aF9z ZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K KysJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9jbHV0dGVyX2RlYnVnX2ZsYWdzIChDbHV0dGVy LkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVidWdGbGFnIGRyYXdfZmxhZ3Ms IENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCByZXN0YXJ0IChz dHJpbmc/IG1lc3NhZ2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiKV0KKyAJcHVibGljIHN0YXRpYyBpbnQgcnVuICgpOworQEAgLTEzNzUsNiArMTUxNywxNCBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZ25vbWVfd21fa2V5 YmluZGluZ3MgKHN0cmluZyB3bV9rZXliaW5kaW5ncyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3dtX25hbWUg KHN0cmluZyB3bV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS14MTEtZGlzcGxheS5oIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0ICgpOworKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIHgx MV9pbml0X2dka19kaXNwbGF5ICgpIHRocm93cyBHTGliLkVycm9yOworIH0KKytbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibGlibXV0dGVyLTctY3VzdG9tLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKytwdWJsaWMgc3RydWN0IGJlZm9yZV9mcmFtZSB7CisrfQorK1tDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJsaWJtdXR0ZXItNy1jdXN0b20uaCIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorK3B1YmxpYyBzdHJ1Y3QgZnJhbWUgeworK30KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXIt Y29nbC00LnZhcGkgdmFwaS9saWJtdXR0ZXItY29nbC00LnZhcGkKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggN2RjMTg0NzYuLjAwMDAwMDAwCistLS0gdmFwaS9saWJtdXR0ZXItY29n bC00LnZhcGkKKysrKyAvZGV2L251bGwKK0BAIC0xLDEyNzIgKzAsMCBAQAorLS8qIGxpYm11dHRl ci1jb2dsLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKy0K Ky1bQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92 ZXJzaW9uID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKy1uYW1lc3BhY2Ug Q29nbCB7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVf aWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCaXRtYXAg OiBDb2dsLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgQml0bWFwICgpOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJy b3JfcXVhcmsgKCk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQml0bWFwLmZyb21fZmls ZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5QaXhlbEZvcm1hdCBnZXRfZm9ybWF0ICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2hlaWdodCAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF9yb3dz dHJpZGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGlj IENvZ2wuQm9vbCBnZXRfc2l6ZV9mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgb3V0IGludCB3 aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyBpbnQgZ2V0X3dpZHRoICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0J cHVibGljIGNsYXNzIEV1bGVyIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rp b24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2Nsb3N1cmVfZ2V0X2d0 eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQlw dWJsaWMgY2xhc3MgRnJhbWVDbG9zdXJlIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVf ZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX21hdGVyaWFsX2dldF90 eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgTWF0ZXJpYWwgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBNYXRl cmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb3B5 ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENv Z2wuTWF0ZXJpYWxMYXllckNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNv bG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdl dF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5 ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJ cHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBs YXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxX cmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CistCQlwdWJs aWMgdW5vd25lZCBHTGliLkxpc3Q8Q29nbC5NYXRlcmlhbExheWVyPiBnZXRfbGF5ZXJzICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9n cmFtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLkhhbmRsZSBA cmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2xh eWVyIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLk1hdGVyaWFsQWxwaGFGdW5jIGFscGhhX2Z1 bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2RpZmZ1c2UgKENvZ2wuQ29sb3IgY29s b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2JsZW5kIChz dHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRf Y29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ29n bC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Nv bG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJl ZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3Ig ZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllciAo aW50IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0dXJlKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgs IHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9jb21iaW5lX2NvbnN0YW50IChpbnQgbGF5ZXJf aW5kZXgsIENvZ2wuQ29sb3IgY29uc3RhbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXll cl9maWx0ZXJzIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgbWluX2ZpbHRl ciwgQ29nbC5NYXRlcmlhbEZpbHRlciBtYWdfZmlsdGVyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBz ZXRfbGF5ZXJfbWF0cml4IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0cml4IG1hdHJpeCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3By aXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUpIHRo cm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9s YXllcl93cmFwX21vZGUgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1v ZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21v ZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQg bGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRl eCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBwb2ludF9zaXplKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xv ciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZXJf cHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgc3RhdGljIHZvaWQgdW5yZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBNYXRlcmlhbExheWVyIHsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlw dWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWFnX2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJs aWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWluX2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMg Q29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxM YXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wu TWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3AgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3MgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9t b2RlX3QgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3Ry YWN0IGNsYXNzIE9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgT2JqZWN0ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9vZmZzY3JlZW5fZ2V0X2d0 eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5G cmFtZWJ1ZmZlciB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CistCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkKiBA cmVmICh2b2lkKiBvZmZzY3JlZW4pOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBPZmZzY3JlZW4udG9fdGV4dHVyZSAoQ29nbC5UZXh0 dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmICh2b2lkKiBvZmZz Y3JlZW4pOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJ cHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0g ImNvZ2xfb25zY3JlZW5fZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBPbnNjcmVlbiA6 IENvZ2wuT2JqZWN0LCBDb2dsLkZyYW1lYnVmZmVyIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBPbnNjcmVlbiAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3Vy ZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSld IENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJv eUNhbGxiYWNrPyBkZXN0cm95KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyBDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBhZGRfcmVzaXplX2NhbGxiYWNrIChbQ0Nv ZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVuUmVzaXplQ2FsbGJh Y2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBz aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdWludCBhZGRfc3dhcF9idWZmZXJzX2NhbGxiYWNr IChDb2dsLlN3YXBCdWZmZXJzTm90aWZ5IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCBjbHV0dGVyX2JhY2tlbmRfc2V0X3NpemVfQ0xVVFRFUiAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0 KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgaW50IGdldF9idWZm ZXJfYWdlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBpbnQ2 NCBnZXRfZnJhbWVfY291bnRlciAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Jlc2l6YWJsZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGhpZGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNiIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2RpcnR5X2NhbGxiYWNrIChDb2dsLk9uc2Ny ZWVuRGlydHlDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0K Ky0JCXB1YmxpYyB2b2lkIHJlbW92ZV9mcmFtZV9jYWxsYmFjayAoQ29nbC5GcmFtZUNsb3N1cmUg Y2xvc3VyZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBy ZW1vdmVfcmVzaXplX2NhbGxiYWNrIChDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBjbG9zdXJl KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3N3YXBfYnVmZmVy c19jYWxsYmFjayAodWludCBpZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfcmVzaXphYmxlIChDb2dsLkJvb2wgcmVzaXphYmxlKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNob3cgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfYnVmZmVyc193 aXRoX2RhbWFnZSAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfcmVnaW9uIChpbnQgcmVj dGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xlcyk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVl X2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9vbnNjcmVlbl9kaXJ0 eV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIGNsYXNzIE9uc2NyZWVuRGlydHlDbG9zdXJlIHsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJjb2dsX29uc2NyZWVuX3Jlc2l6ZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorLQlbQ29t cGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgY2xhc3MgT25zY3Jl ZW5SZXNpemVDbG9zdXJlIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfcGlwZWxpbmVfZ2V0X2d0eXBlICgpIildCistCXB1 YmxpYyBjbGFzcyBQaXBlbGluZSA6IENvZ2wuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQaXBlbGluZSAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lIGNvcHkgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX2xh eWVyIChDb2dsLlBpcGVsaW5lTGF5ZXJDYWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUFscGhhRnVuYyBnZXRfYWxw aGFfdGVzdF9mdW5jdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyBmbG9hdCBnZXRfYWxwaGFfdGVzdF9yZWZlcmVuY2UgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJp ZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9y IGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBD b2dsLkNvbG9yTWFzayBnZXRfY29sb3JfbWFzayAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGdldF9jdWxsX2ZhY2Vf bW9kZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLldpbmRpbmcgZ2V0 X2Zyb250X2ZhY2Vfd2luZGluZyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgQ29nbC5QaXBlbGluZUZpbHRlciBnZXRfbGF5ZXJfbWFnX2ZpbHRlciAoaW50IGxh eWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29n bC5QaXBlbGluZUZpbHRlciBnZXRfbGF5ZXJfbWluX2ZpbHRlciAoaW50IGxheWVyX2luZGV4KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2xh eWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUg Z2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFw X21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K Ky0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChp bnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGlj IENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9p bmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgaW50IGdldF9u X2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2ds LkJvb2wgZ2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfc2hpbmluZXNzICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChD b2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyBpbnQgZ2V0X3VuaWZvcm1fbG9jYXRpb24gKHN0cmluZyB1bmlmb3JtX25hbWUpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuSGFuZGxlIGdldF91c2Vy X3Byb2dyYW0gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZv aWQgcmVtb3ZlX2xheWVyIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENvZ2wuUGlw ZWxpbmVBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50IChDb2ds LkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2FtYmllbnRfYW5kX2RpZmZ1c2UgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfYmxlbmQgKHN0 cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9y IGNvbnN0YW50X2NvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9jb2xvciAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBn cmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVu LCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5Db2xvck1hc2sgY29sb3JfbWFz ayk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY3Vs bF9mYWNlX21vZGUgKENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUgY3VsbF9mYWNlX21vZGUpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2Ug KENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb250X2ZhY2Vfd2luZGlu ZyAoQ29nbC5XaW5kaW5nIGZyb250X3dpbmRpbmcpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2lu ZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9jb21iaW5lX2NvbnN0 YW50IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQ29sb3IgY29uc3RhbnQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9maWx0ZXJzIChpbnQg bGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVGaWx0ZXIgbWluX2ZpbHRlciwgQ29nbC5QaXBlbGlu ZUZpbHRlciBtYWdfZmlsdGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgdm9pZCBzZXRfbGF5ZXJfbWF0cml4IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0cml4 IG1hdHJpeCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2xheWVyX251bGxfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlRleHR1cmVUeXBl IHRleHR1cmVfdHlwZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg Q29nbC5Cb29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXll cl9pbmRleCwgQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMg dm9pZCBzZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlRleHR1cmUgdGV4 dHVyZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBt b2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9s YXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUg bW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2Rl IG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9k ZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJv b2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdM aWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NwZWN1bGFy IChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFmIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgZmxvYXQg dmFsdWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3VuaWZvcm1fMWkgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgdmFsdWUpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fZmxvYXQgKGlu dCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9jb21wb25lbnRzLCBpbnQgY291bnQsIGZsb2F0IHZh bHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91 bmlmb3JtX2ludCAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGludCBuX2NvbXBvbmVudHMsIGludCBj b3VudCwgaW50IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF91bmlmb3JtX21hdHJpeCAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGludCBkaW1l bnNpb25zLCBpbnQgY291bnQsIENvZ2wuQm9vbCB0cmFuc3Bvc2UsIGZsb2F0IHZhbHVlKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VyX3Byb2dy YW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0J cHVibGljIGNsYXNzIFF1YXRlcm5pb24geworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZWJ1ZmZlcl9nZXRfZ3R5cGUg KCkiKV0KKy0JcHVibGljIGludGVyZmFjZSBGcmFtZWJ1ZmZlciA6IENvZ2wuT2JqZWN0IHsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgYWxsb2NhdGUg KCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlw dWJsaWMgdm9pZCBjbGVhciAodWxvbmcgYnVmZmVycywgQ29nbC5Db2xvciBjb2xvcik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBjbGVhcjRmICh1bG9uZyBi dWZmZXJzLCBmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBkaXNjYXJkX2J1 ZmZlcnMgKHVsb25nIGJ1ZmZlcnMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIGRyYXdfbXVsdGl0ZXh0dXJlZF9yZWN0YW5nbGUgKENvZ2wuUGlwZWxpbmUg cGlwZWxpbmUsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50IHRleF9j b29yZHNfbGVuKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9p ZCBkcmF3X3JlY3RhbmdsZSAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgZmxvYXQgeF8xLCBmbG9h dCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdm9pZCBkcmF3X3JlY3RhbmdsZXMgKENvZ2wuUGlwZWxpbmUgcGlwZWxp bmUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIGNvb3JkaW5hdGVzLCB1 aW50IG5fcmVjdGFuZ2xlcyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIHZvaWQgZHJhd190ZXh0dXJlZF9yZWN0YW5nbGUgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUs IGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgc18xLCBm bG9hdCB0XzEsIGZsb2F0IHNfMiwgZmxvYXQgdF8yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X3RleHR1cmVkX3JlY3RhbmdsZXMgKENvZ2wuUGlw ZWxpbmUgcGlwZWxpbmUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIGNv b3JkaW5hdGVzLCB1aW50IG5fcmVjdGFuZ2xlcyk7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBl cnJvcl9xdWFyayAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg dm9pZCBmaW5pc2ggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxv YXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2FscGhhX2JpdHMgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9ibHVlX2JpdHMgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9y X21hc2sgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgaW50IGdl dF9kZXB0aF9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1Ymxp YyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfZGVwdGhfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9kZXB0aF90ZXh0dXJl X2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENv Z2wuQm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RpdGhlcl9lbmFibGVkICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGludCBnZXRfZ3JlZW5fYml0cyAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2hlaWdo dCAoKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2lzX3N0ZXJlbyAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19t YXRyaXggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wu TWF0cml4IGdldF9wcm9qZWN0aW9uX21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3JlZF9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3NhbXBsZXNfcGVyX3BpeGVsICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMjAiKV0KKy0JCXB1YmxpYyBDb2dsLlN0ZXJlb01vZGUgZ2V0 X3N0ZXJlb19tb2RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X3ZpZXdwb3J0NGZ2IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gb3V0 IHVub3duZWQgZmxvYXQgdmlld3BvcnRbNF0pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIGZsb2F0IGdldF92aWV3cG9ydF9oZWlnaHQgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3ZpZXdwb3J0X3dpZHRoICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92aWV3cG9y dF94ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZsb2F0IGdl dF92aWV3cG9ydF95ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IGludCBnZXRfd2lkdGggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIHZvaWQgaWRlbnRpdHlfbWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIG9ydGhvZ3JhcGhpYyAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZs b2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3Zf eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwb3BfY2xpcCAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwb3BfbWF0cml4ICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hfbWF0cml4ICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hfcmVj dGFuZ2xlX2NsaXAgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcHVzaF9zY2lz c29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHJlYWRfcGl4ZWxzIChp bnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1hdCBmb3Jt YXQsIHVpbnQ4IHBpeGVscyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIENvZ2wuQm9vbCByZWFkX3BpeGVsc19pbnRvX2JpdG1hcCAoaW50IHgsIGludCB5LCBDb2ds LlJlYWRQaXhlbHNGbGFncyBzb3VyY2UsIENvZ2wuQml0bWFwIGJpdG1hcCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCByZXNvbHZlX3NhbXBsZXMgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCByZXNvbHZlX3NhbXBs ZXNfcmVnaW9uIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmds ZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5p b24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3Jf bWFzayAoQ29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3RleHR1cmVfZW5hYmxlZCAoQ29nbC5C b29sIGVuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9kZXB0aF93cml0ZV9lbmFibGVkIChDb2dsLkJvb2wgZGVwdGhfd3JpdGVfZW5hYmxl ZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGl0 aGVyX2VuYWJsZWQgKENvZ2wuQm9vbCBkaXRoZXJfZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wu TWF0cml4IG1hdHJpeCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NhbXBsZXNfcGVyX3Bp eGVsIChpbnQgc2FtcGxlc19wZXJfcGl4ZWwpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zdGVyZW9fbW9kZSAoQ29nbC5TdGVyZW9Nb2RlIHN0ZXJl b19tb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF92aWV3cG9ydCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgdHJhbnNmb3Jt IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJj b2dsX3RleHR1cmVfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBpbnRlcmZhY2UgVGV4dHVyZSA6 IENvZ2wuT2JqZWN0IHsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdM aWIuRXJyb3I7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5UZXh0dXJlQ29tcG9uZW50 cyBnZXRfY29tcG9uZW50cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhdGEgKENvZ2wuUGl4ZWxG b3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlwdWJsaWMgQ29n bC5Cb29sIGdldF9nbF90ZXh0dXJlIChvdXQgdWludCBvdXRfZ2xfaGFuZGxlLCBvdXQgdWludCBv dXRfZ2xfdGFyZ2V0KTsKKy0JCXB1YmxpYyB1aW50IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMg aW50IGdldF9tYXhfd2FzdGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJ cHVibGljIENvZ2wuQm9vbCBnZXRfcHJlbXVsdGlwbGllZCAoKTsKKy0JCXB1YmxpYyB1aW50IGdl dF93aWR0aCAoKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgaXNfc2xpY2VkICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2JpdG1hcCAo Q29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZv cm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29n bC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVs Rm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNp bmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZmls ZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZv cm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2ZvcmVpZ24gKHVpbnQg Z2xfaGFuZGxlLCB1aW50IGdsX3RhcmdldCwgdWludCB3aWR0aCwgdWludCBoZWlnaHQsIHVpbnQg eF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rfd2FzdGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0KTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4 Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX3N1Yl90 ZXh0dXJlIChpbnQgc3ViX3gsIGludCBzdWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWln aHQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5l d193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBm bGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb21wb25lbnRzIChDb2dsLlRleHR1 cmVDb21wb25lbnRzIGNvbXBvbmVudHMpOworLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfZGF0YSAo Q29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEsIGludCBs ZXZlbCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQor LQkJcHVibGljIHZvaWQgc2V0X3ByZW11bHRpcGxpZWQgKENvZ2wuQm9vbCBwcmVtdWx0aXBsaWVk KTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3JlZ2lvbiAoaW50IHNyY194LCBpbnQgc3JjX3ks IGludCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBp bnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0 cmlkZSwgdWludDggZGF0YSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgQ29nbC5Cb29sIHNldF9yZWdpb25fZnJvbV9iaXRtYXAgKGludCBzcmNfeCwgaW50IHNyY195 LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwg Q29nbC5CaXRtYXAgYml0bWFwKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1NpbXBsZVR5cGVdCistCXB1YmxpYyBzdHJ1Y3QgQW5nbGUgOiBp bnQzMiB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtTaW1wbGVUeXBlXQorLQlwdWJsaWMgc3RydWN0IEJvb2wgOiBpbnQgeworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9j b2xvcl9nZXRfZ3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgc3RydWN0IENvbG9yIHsKKy0JCXB1YmxpYyBDb2dsLkNvbG9yPyBjb3B5ICgpOworLQkJcHVi bGljIHN0YXRpYyBDb2dsLkJvb2wgZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CistCQlwdWJs aWMgZmxvYXQgZ2V0X2FscGhhICgpOworLQkJcHVibGljIHVpbnQ4IGdldF9hbHBoYV9ieXRlICgp OworLQkJcHVibGljIGZsb2F0IGdldF9hbHBoYV9mbG9hdCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBn ZXRfYmx1ZSAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfYmx1ZV9ieXRlICgpOworLQkJcHVibGlj IGZsb2F0IGdldF9ibHVlX2Zsb2F0ICgpOworLQkJcHVibGljIGZsb2F0IGdldF9ncmVlbiAoKTsK Ky0JCXB1YmxpYyB1aW50OCBnZXRfZ3JlZW5fYnl0ZSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRf Z3JlZW5fZmxvYXQgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3JlZCAoKTsKKy0JCXB1YmxpYyB1 aW50OCBnZXRfcmVkX2J5dGUgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3JlZF9mbG9hdCAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV80 ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tXzRmdiAo ZmxvYXQgY29sb3JfYXJyYXkpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHZvaWQgaW5pdF9mcm9tXzR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1 ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBpbml0X2Zyb21faHNsIChvdXQgQ29nbC5Db2xvciBjb2xvciwgZmxvYXQg aHVlLCBmbG9hdCBzYXR1cmF0aW9uLCBmbG9hdCBsdW1pbmFuY2UpOworLQkJcHVibGljIHZvaWQg cHJlbXVsdGlwbHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBzZXRfYWxwaGEgKGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYV9ieXRlICh1aW50OCBhbHBoYSk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfZmxvYXQgKGZs b2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9ibHVlIChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9ibHVlX2J5dGUgKHVpbnQ4IGJsdWUpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsdWVfZmxvYXQgKGZsb2F0IGJsdWUp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu NCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb21fNGYgKGZsb2F0IHJl ZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwg dWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2dyZWVuIChmbG9hdCBncmVlbik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZ3JlZW5fYnl0ZSAodWludDggZ3JlZW4p OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2dyZWVu X2Zsb2F0IChmbG9hdCBncmVlbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfcmVkIChmbG9hdCByZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlZF9ieXRlICh1aW50OCByZWQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlZF9mbG9hdCAoZmxvYXQg cmVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCB0b19o c2wgKG91dCBmbG9hdCBodWUsIG91dCBmbG9hdCBzYXR1cmF0aW9uLCBvdXQgZmxvYXQgbHVtaW5h bmNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHVucHJl bXVsdGlwbHkgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K Ky0JcHVibGljIHN0cnVjdCBEZWJ1Z09iamVjdFR5cGVJbmZvIHsKKy0JCXB1YmxpYyB3ZWFrIHN0 cmluZyBuYW1lOworLQkJcHVibGljIHVsb25nIGluc3RhbmNlX2NvdW50OworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbU2ltcGxlVHlwZV0KKy0J cHVibGljIHN0cnVjdCBIYW5kbGUgeworLQkJcHVibGljIHN0YXRpYyBHTGliLlR5cGUgZ2V0X3R5 cGUgKCk7CistCQlwdWJsaWMgQ29nbC5IYW5kbGUgQHJlZiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVu cmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IHR5cGVfaWQgPSAiY29nbF9tYXRyaXhfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBzdHJ1Y3Qg TWF0cml4IHsKKy0JCXB1YmxpYyBmbG9hdCB4eDsKKy0JCXB1YmxpYyBmbG9hdCB5eDsKKy0JCXB1 YmxpYyBmbG9hdCB6eDsKKy0JCXB1YmxpYyBmbG9hdCB3eDsKKy0JCXB1YmxpYyBmbG9hdCB4eTsK Ky0JCXB1YmxpYyBmbG9hdCB5eTsKKy0JCXB1YmxpYyBmbG9hdCB6eTsKKy0JCXB1YmxpYyBmbG9h dCB3eTsKKy0JCXB1YmxpYyBmbG9hdCB4ejsKKy0JCXB1YmxpYyBmbG9hdCB5ejsKKy0JCXB1Ymxp YyBmbG9hdCB6ejsKKy0JCXB1YmxpYyBmbG9hdCB3ejsKKy0JCXB1YmxpYyBmbG9hdCB4dzsKKy0J CXB1YmxpYyBmbG9hdCB5dzsKKy0JCXB1YmxpYyBmbG9hdCB6dzsKKy0JCXB1YmxpYyBmbG9hdCB3 dzsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdHJpeD8g Y29weSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Q29nbC5Cb29sIGVxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGZydXN0 dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxv YXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlwdWJsaWMgdW5vd25lZCBmbG9hdFtdIGdldF9h cnJheSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLkJv b2wgZ2V0X2ludmVyc2UgKG91dCBDb2dsLk1hdHJpeCBpbnZlcnNlKTsKKy0JCXB1YmxpYyB2b2lk IGluaXRfZnJvbV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlwdWJsaWMgdm9pZCBpbml0 X2Zyb21fcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgaW5pdF90cmFuc2xhdGlvbiAoZmxv YXQgdHgsIGZsb2F0IHR5LCBmbG9hdCB0eik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgQ29nbC5Cb29sIGlzX2lkZW50aXR5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgbG9va19hdCAoZmxvYXQgZXllX3Bvc2l0aW9uX3gs IGZsb2F0IGV5ZV9wb3NpdGlvbl95LCBmbG9hdCBleWVfcG9zaXRpb25feiwgZmxvYXQgb2JqZWN0 X3gsIGZsb2F0IG9iamVjdF95LCBmbG9hdCBvYmplY3RfeiwgZmxvYXQgd29ybGRfdXBfeCwgZmxv YXQgd29ybGRfdXBfeSwgZmxvYXQgd29ybGRfdXBfeik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0 aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxv YXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIs IGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JCXB1YmxpYyB2b2lkIHBlcnNw ZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpf ZmFyKTsKKy0JCXB1YmxpYyB2b2lkIHByb2plY3RfcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBz aXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lk KiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworLQkJcHVibGljIHZvaWQgcm90YXRlIChmbG9h dCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1 YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKy0JCXB1YmxpYyB2b2lkIHNj YWxlIChmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN6KTsKKy0JCXB1YmxpYyB2b2lkIHRyYW5z Zm9ybV9wb2ludCAocmVmIGZsb2F0IHgsIHJlZiBmbG9hdCB5LCByZWYgZmxvYXQgeiwgcmVmIGZs b2F0IHcpOworLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50cyAoaW50IG5fY29tcG9uZW50 cywgc2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3RyaWRlX291dCwg dm9pZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKy0JCXB1YmxpYyB2b2lkIHRyYW5zbGF0 ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgdHJhbnNwb3NlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIHZvaWQgdmlld18yZF9pbl9mcnVzdHVtIChmbG9hdCBsZWZ0LCBm bG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQg el8yZCwgZmxvYXQgd2lkdGhfMmQsIGZsb2F0IGhlaWdodF8yZCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCB2aWV3XzJkX2luX3BlcnNwZWN0aXZlIChmbG9h dCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfMmQsIGZsb2F0IHdp ZHRoXzJkLCBmbG9hdCBoZWlnaHRfMmQpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RydWN0IE9uc2NyZWVuRGlydHlJbmZvIHsKKy0JCXB1 YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyBpbnQgd2lkdGg7CistCQlw dWJsaWMgaW50IGhlaWdodDsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBUZXh0dXJl VmVydGV4IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJs aWMgZmxvYXQgejsKKy0JCXB1YmxpYyBmbG9hdCB0eDsKKy0JCXB1YmxpYyBmbG9hdCB0eTsKKy0J CXB1YmxpYyBDb2dsLkNvbG9yIGNvbG9yOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCistCXB1YmxpYyBzdHJ1Y3QgVXNlckRhdGFLZXkgeworLQkJcHVibGljIGlu dCB1bnVzZWQ7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY25hbWUgPSAiX0NvZ2xDb2xvclNpemVDaGVjayIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlwdWJsaWMgc3RydWN0IF9Db2xvclNpemVDaGVjayB7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGNoYXJbXSBjb21waWxlX3RpbWVfYXNzZXJ0X0Nv Z2xDb2xvcl9zaXplOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNuYW1lID0gIl9Db2dsTWF0cml4U2l6ZUNoZWNrIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCistCXB1YmxpYyBzdHJ1Y3QgX01hdHJpeFNpemVDaGVjayB7CistCQlbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGNoYXJbXSBjb21waWxlX3RpbWVfYXNz ZXJ0X0NvZ2xNYXRyaXhfc2l6ZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjbmFtZSA9ICJfQ29nbFRleHR1cmVWZXJ0ZXhTaXplQ2hlY2siLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBfVGV4dHVyZVZlcnRleFNpemVDaGVj ayB7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIGNo YXJbXSBjb21waWxlX3RpbWVfYXNzZXJ0X0NvZ2xUZXh0dXJlVmVydGV4X3NpemU7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X0FUVFJJQlVURV9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEF0dHJpYnV0ZVR5cGUgeworLQkJQllURSwKKy0J CVVOU0lHTkVEX0JZVEUsCistCQlTSE9SVCwKKy0JCVVOU0lHTkVEX1NIT1JULAorLQkJRkxPQVQK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4 ID0gIkNPR0xfQklUTUFQX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIEJpdG1hcEVycm9yIHsKKy0JCUZBSUxF RCwKKy0JCVVOS05PV05fVFlQRSwKKy0JCUNPUlJVUFRfSU1BR0UKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQkxFTkRfU1RS SU5HX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCXB1YmxpYyBlbnVtIEJsZW5kU3RyaW5nRXJyb3IgeworLQkJUEFSU0VfRVJST1Is CistCQlBUkdVTUVOVF9QQVJTRV9FUlJPUiwKKy0JCUlOVkFMSURfRVJST1IsCistCQlHUFVfVU5T VVBQT1JURURfRVJST1I7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfQlVGRkVSX0JJVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEJ1ZmZlckJpdCB7CistCQlDT0xP UiwKKy0JCURFUFRILAorLQkJU1RFTkNJTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCXB1YmxpYyBlbnVt IEJ1ZmZlclRhcmdldCB7CistCQlXSU5ET1dfQlVGRkVSLAorLQkJT0ZGU0NSRUVOX0JVRkZFUgor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXgg PSAiQ09HTF9DT0xPUl9NQVNLXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCist CXB1YmxpYyBlbnVtIENvbG9yTWFzayB7CistCQlOT05FLAorLQkJUkVELAorLQkJR1JFRU4sCist CQlCTFVFLAorLQkJQUxQSEEsCistCQlBTEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfREVQVEhfVEVTVF9GVU5DVElPTl8i LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gRGVwdGhUZXN0RnVuY3Rpb24g eworLQkJTkVWRVIsCistCQlMRVNTLAorLQkJRVFVQUwsCistCQlMRVFVQUwsCistCQlHUkVBVEVS LAorLQkJTk9URVFVQUwsCistCQlHRVFVQUwsCistCQlBTFdBWVMKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVBVFVSRV8i LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MC44IildCistCXB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CistCQlURVhUVVJFX1JFQ1RBTkdM RSwKKy0JCVRFWFRVUkVfTlBPVCwKKy0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJ WEVMUywKKy0JCVNIQURFUlNfR0xTTCwKKy0JCU9GRlNDUkVFTiwKKy0JCU9GRlNDUkVFTl9NVUxU SVNBTVBMRSwKKy0JCU9GRlNDUkVFTl9CTElULAorLQkJRk9VUl9DTElQX1BMQU5FUywKKy0JCVNU RU5DSUxfQlVGRkVSLAorLQkJVkJPUywKKy0JCVBCT1MsCistCQlVTlNJR05FRF9JTlRfSU5ESUNF UywKKy0JCURFUFRIX1JBTkdFLAorLQkJVEVYVFVSRV9OUE9UX0JBU0lDLAorLQkJVEVYVFVSRV9O UE9UX01JUE1BUCwKKy0JCVRFWFRVUkVfTlBPVF9SRVBFQVQsCistCQlQT0lOVF9TUFJJVEUsCist CQlURVhUVVJFXzNELAorLQkJTUFQX0JVRkZFUl9GT1JfUkVBRCwKKy0JCU1BUF9CVUZGRVJfRk9S X1dSSVRFLAorLQkJT05TQ1JFRU5fTVVMVElQTEUsCistCQlERVBUSF9URVhUVVJFCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X0ZJTFRFUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gRmlsdGVyUmV0 dXJuIHsKKy0JCUNPTlRJTlVFLAorLQkJUkVNT1ZFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZPR19NT0RFXyIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBl bnVtIEZvZ01vZGUgeworLQkJTElORUFSLAorLQkJRVhQT05FTlRJQUwsCistCQlFWFBPTkVOVElB TF9TUVVBUkVECistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY3ByZWZpeCA9ICJDT0dMX0ZSQU1FX0VWRU5UXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQlwdWJsaWMgZW51bSBGcmFtZUV2ZW50IHsK Ky0JCVNZTkMsCistCQlDT01QTEVURQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRUJVRkZFUl9FUlJPUl8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gRnJhbWVidWZmZXJFcnJvciB7CistCQlb Q0NvZGUgKGNuYW1lID0gIkNPR0xfRlJBTUVCVUZGRVJfRVJST1JfQUxMT0NBVEUiKV0KKy0JCUZS QU1FQlVGRkVSX0VSUk9SX0FMTE9DQVRFOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgcXVhcmsg KCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX0lORElDRVNfVFlQRV9VTlNJR05FRF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JcHVibGljIGVudW0gSW5kaWNlc1R5cGUgeworLQkJQllURSwKKy0JCVNIT1JULAorLQkJ SU5UCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX01BVEVSSUFMX0FMUEhBX0ZVTkNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCXB1YmxpYyBlbnVtIE1hdGVyaWFsQWxwaGFGdW5jIHsKKy0JCU5FVkVSLAorLQkJTEVTUywK Ky0JCUVRVUFMLAorLQkJTEVRVUFMLAorLQkJR1JFQVRFUiwKKy0JCU5PVEVRVUFMLAorLQkJR0VR VUFMLAorLQkJQUxXQVlTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFMX0ZJTFRFUl8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JcHVibGljIGVudW0gTWF0ZXJpYWxGaWx0ZXIgeworLQkJTkVBUkVTVCwKKy0J CUxJTkVBUiwKKy0JCU5FQVJFU1RfTUlQTUFQX05FQVJFU1QsCistCQlMSU5FQVJfTUlQTUFQX05F QVJFU1QsCistCQlORUFSRVNUX01JUE1BUF9MSU5FQVIsCistCQlMSU5FQVJfTUlQTUFQX0xJTkVB UgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsTGF5ZXJU eXBlIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRV UkUiKV0KKy0JCU1BVEVSSUFMX0xBWUVSX1RZUEVfVEVYVFVSRQorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9X UkFQX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKy0JcHVibGljIGVudW0gTWF0ZXJpYWxXcmFwTW9kZSB7CistCQlSRVBFQVQsCistCQlD TEFNUF9UT19FREdFLAorLQkJQVVUT01BVElDCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1BJUEVMSU5FX0FMUEhBX0ZVTkNf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFBpcGVsaW5lQWxwaGFGdW5j IHsKKy0JCU5FVkVSLAorLQkJTEVTUywKKy0JCUVRVUFMLAorLQkJTEVRVUFMLAorLQkJR1JFQVRF UiwKKy0JCU5PVEVRVUFMLAorLQkJR0VRVUFMLAorLQkJQUxXQVlTCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1BJUEVMSU5F X0NVTExfRkFDRV9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQ aXBlbGluZUN1bGxGYWNlTW9kZSB7CistCQlOT05FLAorLQkJRlJPTlQsCistCQlCQUNLLAorLQkJ Qk9USAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9QSVBFTElORV9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CXB1YmxpYyBlbnVtIFBpcGVsaW5lRmlsdGVyIHsKKy0JCU5FQVJFU1QsCistCQlMSU5FQVIsCist CQlORUFSRVNUX01JUE1BUF9ORUFSRVNULAorLQkJTElORUFSX01JUE1BUF9ORUFSRVNULAorLQkJ TkVBUkVTVF9NSVBNQVBfTElORUFSLAorLQkJTElORUFSX01JUE1BUF9MSU5FQVIKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xf UElQRUxJTkVfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCXB1YmxpYyBlbnVtIFBpcGVsaW5lV3JhcE1vZGUgeworLQkJUkVQ RUFULAorLQkJTUlSUk9SRURfUkVQRUFULAorLQkJQ0xBTVBfVE9fRURHRSwKKy0JCUFVVE9NQVRJ QworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9QSVhFTF9GT1JNQVRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFn c10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBQaXhlbEZvcm1h dCB7CistCQlBTlksCistCQlBXzgsCistCQlSR0JfNTY1LAorLQkJUkdCQV80NDQ0LAorLQkJUkdC QV81NTUxLAorLQkJWVVWLAorLQkJR184LAorLQkJUkdfODgsCistCQlSR0JfODg4LAorLQkJQkdS Xzg4OCwKKy0JCVJHQkFfODg4OCwKKy0JCUJHUkFfODg4OCwKKy0JCUFSR0JfODg4OCwKKy0JCUFC R1JfODg4OCwKKy0JCVJHQkFfMTAxMDEwMiwKKy0JCUJHUkFfMTAxMDEwMiwKKy0JCUFSR0JfMjEw MTAxMCwKKy0JCUFCR1JfMjEwMTAxMCwKKy0JCVJHQkFfODg4OF9QUkUsCistCQlCR1JBXzg4ODhf UFJFLAorLQkJQVJHQl84ODg4X1BSRSwKKy0JCUFCR1JfODg4OF9QUkUsCistCQlSR0JBXzQ0NDRf UFJFLAorLQkJUkdCQV81NTUxX1BSRSwKKy0JCVJHQkFfMTAxMDEwMl9QUkUsCistCQlCR1JBXzEw MTAxMDJfUFJFLAorLQkJQVJHQl8yMTAxMDEwX1BSRSwKKy0JCUFCR1JfMjEwMTAxMF9QUkUsCist CQlERVBUSF8xNiwKKy0JCURFUFRIXzMyLAorLQkJREVQVEhfMjRfU1RFTkNJTF84CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X1JFQURfUElYRUxTX0NPTE9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gUmVhZFBpeGVsc0ZsYWdz IHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9SRUFEX1BJWEVMU19DT0xPUl9CVUZGRVIiKV0K Ky0JCVJFQURfUElYRUxTX0NPTE9SX0JVRkZFUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRU5ERVJFUl9FUlJPUl8iLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gUmVuZGVyZXJFcnJvciB7CistCQlY TElCX0RJU1BMQVlfT1BFTiwKKy0JCUJBRF9DT05TVFJBSU5UCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1NIQURFUl9UWVBF XyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBlbnVtIFNoYWRlclR5cGUgeworLQkJVkVSVEVYLAorLQkJRlJBR01FTlQKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfU1RFUkVPXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBTdGVyZW9N b2RlIHsKKy0JCUJPVEgsCistCQlMRUZULAorLQkJUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfU1lTVEVNX0VSUk9S XyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCist CXB1YmxpYyBlbnVtIFN5c3RlbUVycm9yIHsKKy0JCVVOU1VQUE9SVEVELAorLQkJTk9fTUVNT1JZ CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX1RFWFRVUkVfQ09NUE9ORU5UU18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIGVudW0gVGV4dHVyZUNvbXBvbmVu dHMgeworLQkJQSwKKy0JCVJHLAorLQkJUkdCLAorLQkJUkdCQSwKKy0JCURFUFRICistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X1RFWFRVUkVfRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JcHVibGljIGVudW0gVGV4dHVyZUVycm9yIHsKKy0JCVNJWkUsCistCQlG T1JNQVQsCistCQlCQURfUEFSQU1FVEVSLAorLQkJVFlQRTsKKy0JCXB1YmxpYyBzdGF0aWMgdWlu dDMyIHF1YXJrICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gVGV4 dHVyZUZsYWdzIHsKKy0JCU5PTkUsCistCQlOT19BVVRPX01JUE1BUCwKKy0JCU5PX1NMSUNJTkcs CistCQlOT19BVExBUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBlbnVtIFRleHR1cmVU eXBlIHsKKy0JCUAyRCwKKy0JCUAzRCwKKy0JCVJFQ1RBTkdMRQorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9WRVJUSUNFU19N T0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBlbnVtIFZlcnRpY2VzTW9kZSB7CistCQlQT0lOVFMsCistCQlMSU5FUywKKy0J CUxJTkVfTE9PUCwKKy0JCUxJTkVfU1RSSVAsCistCQlUUklBTkdMRVMsCistCQlUUklBTkdMRV9T VFJJUCwKKy0JCVRSSUFOR0xFX0ZBTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9XSU5ESU5HXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlwdWJsaWMgZW51bSBXaW5kaW5nIHsKKy0JCUNMT0NLV0lTRSwKKy0JCUNPVU5U RVJfQ0xPQ0tXSVNFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY3ByZWZpeCA9ICJDT0dMX1dJTlNZU19GRUFUVVJFXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlwdWJsaWMgZW51bSBXaW5zeXNGZWF0dXJlIHsKKy0JCU1VTFRJUExFX09OU0NSRUVO LAorLQkJU1dBUF9USFJPVFRMRSwKKy0JCVZCTEFOS19DT1VOVEVSLAorLQkJVkJMQU5LX1dBSVQs CistCQlURVhUVVJFX0ZST01fUElYTUFQLAorLQkJU1dBUF9CVUZGRVJTX0VWRU5ULAorLQkJU1dB UF9SRUdJT04sCistCQlTV0FQX1JFR0lPTl9USFJPVFRMRSwKKy0JCVNXQVBfUkVHSU9OX1NZTkNI Uk9OSVpFRCwKKy0JCUJVRkZFUl9BR0UsCistCQlTWU5DX0FORF9DT01QTEVURV9FVkVOVCwKKy0J CU5fRkVBVFVSRVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIERlYnVnT2JqZWN0Rm9yZWFjaFR5cGVDYWxsYmFjayAoQ29n bC5EZWJ1Z09iamVjdFR5cGVJbmZvIGluZm8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQor LQlwdWJsaWMgZGVsZWdhdGUgQ29nbC5Cb29sIE1hdGVyaWFsTGF5ZXJDYWxsYmFjayAoQ29nbC5N YXRlcmlhbCBtYXRlcmlhbCwgaW50IGxheWVyX2luZGV4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5EaXJ0eUNh bGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBDb2dsLk9uc2NyZWVuRGlydHlJbmZvIGlu Zm8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5j ZV9wb3MgPSAzLjkpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBkZWxl Z2F0ZSB2b2lkIE9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4s IGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lk IE9uc2NyZWVuWDExTWFza0NhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIg ZXZlbnRfbWFzayk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGluc3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVi bGljIGRlbGVnYXRlIENvZ2wuQm9vbCBQaXBlbGluZUxheWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxp bmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0 ZSB2b2lkIFN3YXBCdWZmZXJzTm90aWZ5IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3RhcmdldCA9 IGZhbHNlKV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgVXNlckRhdGFEZXN0cm95Q2FsbGJhY2sg KHZvaWQqIGRhdGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjbmFtZSA9ICJDT0dMX0FGSVJTVF9CSVQiKV0KKy0JcHVibGljIGNvbnN0IGludCBBRklSU1Rf QklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9 ICJDT0dMX0FfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgQV9CSVQ7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfQkdSX0JJVCIpXQor LQlwdWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQVEhfQklUIildCistCXB1YmxpYyBjb25z dCBpbnQgREVQVEhfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjbmFtZSA9ICJDT0dMX1BSRU1VTFRfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJF TVVMVF9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNu YW1lID0gIkNPR0xfU1RFTkNJTF9CSVQiKV0KKy0JcHVibGljIGNvbnN0IGludCBTVEVOQ0lMX0JJ VDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAi Q09HTF9URVhUVVJFX01BWF9XQVNURSIpXQorLQlwdWJsaWMgY29uc3QgaW50IFRFWFRVUkVfTUFY X1dBU1RFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGJlZ2luX2dsICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuQm9vbCBjaGVja19leHRlbnNpb24gKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBjbGVhciAoQ29nbC5Db2xvciBjb2xvciwgdWxvbmcgYnVmZmVycyk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuQm9vbCBjbHV0dGVyX2NoZWNrX2V4dGVuc2lvbl9DTFVUVEVSIChzdHJpbmcgbmFtZSwg c3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjbHV0dGVyX3dpbnN5c19oYXNfZmVhdHVyZV9D TFVUVEVSIChDb2dsLldpbnN5c0ZlYXR1cmUgZmVhdHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19tYXRyaXhfcHJpbnQgKENvZ2wuTWF0cml4IG1hdHJp eCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19vYmplY3Rf Zm9yZWFjaF90eXBlIChDb2dsLkRlYnVnT2JqZWN0Rm9yZWFjaFR5cGVDYWxsYmFjayBmdW5jKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRlYnVnX29iamVjdF9wcmlu dF9pbnN0YW5jZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9mb2cgKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgZW5kX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZmVhdHVyZXNf YXZhaWxhYmxlIChDb2dsLkZlYXR1cmVGbGFncyBmZWF0dXJlcyk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBmbHVzaCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZs b2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBn ZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ2V0X2JpdG1hc2tz IChvdXQgaW50IHJlZCwgb3V0IGludCBncmVlbiwgb3V0IGludCBibHVlLCBvdXQgaW50IGFscGhh KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9kZXB0aF90ZXN0X2VuYWJsZWQgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9k cmF3X2ZyYW1lYnVmZmVyICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkZlYXR1cmVG bGFncyBnZXRfZmVhdHVyZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdf bWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9v cHRpb25fZ3JvdXAgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9wcm9qZWN0aW9uX21hdHJp eCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCogZ2V0X3NvdXJjZSAoKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBnZXRfdmlld3BvcnQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBvdXQg ZmxvYXQgdls0XSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x OCIpXQorLQlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBndHlwZV9tYXRyaXhfZ2V0X3R5cGUgKCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19mcmFtZWJ1 ZmZlciAodm9pZCogb2JqZWN0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg Q29nbC5Cb29sIGlzX29uc2NyZWVuICh2b2lkKiBvYmplY3QpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19waXBlbGluZSAodm9pZCogb2JqZWN0KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX3ZlcnRleF9idWZmZXJfaW5kaWNlcyAo Q29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBvcnRobyAo ZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBu ZWFyLCBmbG9hdCBmYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3Z5LCBm bG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9seWdvbiAoQ29nbC5UZXh0dXJlVmVydGV4IHZlcnRp Y2VzLCB1aW50IG5fdmVydGljZXMsIENvZ2wuQm9vbCB1c2VfY29sb3IpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHBvcF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX3NvdXJjZSAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBwdXNoX3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZSAo ZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZV93aXRoX211bHRpdGV4dHVyZV9j b29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeDIsIGZsb2F0IHkyLCBbQ0NvZGUgKGFy cmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB0ZXhfY29vcmRzLCBpbnQgdGV4X2Nvb3Jkc19s ZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dp dGhfdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeDIsIGZsb2F0IHky LCBmbG9hdCB0eDEsIGZsb2F0IHR5MSwgZmxvYXQgdHgyLCBmbG9hdCB0eTIpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlcyAoW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9yZWN0cyk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MC44LjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXNfd2l0aF90ZXh0dXJlX2Nv b3JkcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQg bl9yZWN0cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxv YXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHksIGZs b2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKENvZ2wu Qm9vbCBzZXR0aW5nKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChDb2ds LkJvb2wgc2V0dGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvZyAoQ29nbC5Db2xvciBmb2dfY29s b3IsIENvZ2wuRm9nTW9kZSBtb2RlLCBmbG9hdCBkZW5zaXR5LCBmbG9hdCB6X25lYXIsIGZsb2F0 IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbW9kZWx2aWV3X21hdHJpeCAoQ29nbC5NYXRyaXgg bWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfcHJvamVjdGlvbl9tYXRyaXggKENvZ2wuTWF0cml4 IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZSAodm9pZCog bWF0ZXJpYWwpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3Ig KENvZ2wuQ29sb3IgY29sb3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3Vy Y2VfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxw aGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0dWIgKHVp bnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0 dXJlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF92aWV3cG9ydCAoaW50IHgsIGlu dCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl9jb21waWxl IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBzdHJpbmcgc2hhZGVyX2dldF9pbmZvX2xv ZyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5TaGFkZXJUeXBlIHNoYWRlcl9n ZXRfdHlwZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIHNoYWRlcl9p c19jb21waWxlZCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5IYW5kbGUgc2hh ZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfc291cmNl IChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0cmluZyBzb3VyY2UpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRl cl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENv Z2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0g IjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2Rh dGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wu UGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50 IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4 dHVyZSB0ZXh0dXJlX25ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJl RmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xp Yi5FcnJvcjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwg c2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3 X2Zyb21fZm9yZWlnbiAodWludCBnbF9oYW5kbGUsIHVpbnQgZ2xfdGFyZ2V0LCB1aW50IHdpZHRo LCB1aW50IGhlaWdodCwgdWludCB4X3BvdF93YXN0ZSwgdWludCB5X3BvdF93YXN0ZSwgQ29nbC5Q aXhlbEZvcm1hdCBmb3JtYXQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUg dGV4dHVyZV9uZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0 dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS40Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2Zvcm0gKENvZ2wuTWF0cml4IG1hdHJpeCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2FkZCAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0 cmlidXRlX25hbWUsIHVpbnQ4IG5fY29tcG9uZW50cywgQ29nbC5BdHRyaWJ1dGVUeXBlIHR5cGUs IENvZ2wuQm9vbCBub3JtYWxpemVkLCB1aW50MTYgc3RyaWRlLCB2b2lkKiBwb2ludGVyKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RlbGV0ZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJp bmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGlzYWJsZSAo Q29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHZlcnRleF9idWZmZXJfZHJhdyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9k ZSBtb2RlLCBpbnQgZmlyc3QsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZl cl9kcmF3X2VsZW1lbnRzIChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1v ZGUsIENvZ2wuSGFuZGxlIGluZGljZXMsIGludCBtaW5faW5kZXgsIGludCBtYXhfaW5kZXgsIGlu dCBpbmRpY2VzX29mZnNldCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVy X2VuYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB1aW50IHZlcnRleF9idWZmZXJfZ2V0X25fdmVydGljZXMgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfZm9yX3F1 YWRzICh1aW50IG5faW5kaWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSW5kaWNlc1R5cGUgdmVydGV4X2J1 ZmZlcl9pbmRpY2VzX2dldF90eXBlIChDb2dsLkhhbmRsZSBpbmRpY2VzKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9uZXcgKHVpbnQgbl92ZXJ0aWNlcyk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgdmVydGV4X2J1ZmZlcl9zdWJtaXQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCB2ZXJ0ZXhfYnVmZmVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuOC4yIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCB2aWV3cG9ydCAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0 YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF92aXN1YWxfeGlkIChDb2dsLk9uc2NyZWVuIG9u c2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9v bnNjcmVlbl9nZXRfd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB4MTFfb25zY3JlZW5fc2V0X2ZvcmVpZ25f d2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIHhpZCwgW0NDb2RlIChz Y29wZSA9ICJhc3luYyIpXSBDb2dsLk9uc2NyZWVuWDExTWFza0NhbGxiYWNrIHVwZGF0ZSk7Cist fQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEgdmFwaS9tdXR0 ZXItY2x1dHRlci01LWN1c3RvbS52YWxhCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IGI4ZDgzOGQwLi4wMDAwMDAwMAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS1jdXN0b20udmFs YQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTU4ICswLDAgQEAKKy1uYW1lc3BhY2UgQ2x1dHRlciB7 CistICBbQ0NvZGUgKHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIsIGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBzdHJ1Y3QgQWN0b3JC b3ggeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfYWN0b3JfYm94X2Zyb21fdmVydGlj ZXMiKV0KKy0gICAgcHVibGljIEFjdG9yQm94LmZyb21fdmVydGljZXMgKENsdXR0ZXIuVmVydGV4 W10gdmVydHMpOworLSAgfQorLQorLSAgcHVibGljIHN0cnVjdCBNYXRyaXggOiBDb2dsLk1hdHJp eCB7CistICB9CistCistICBwdWJsaWMgY2xhc3MgQmFja2VuZCA6IEdMaWIuT2JqZWN0IHsKKy0g ICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfb3B0aW9ucyAoR0xp Yi5PcHRpb25Hcm91cCBncm91cCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0 dWFsIGJvb2wgY3JlYXRlX2NvbnRleHQgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistICAgIFtOb1dy YXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5TdGFnZVdpbmRvdyBj cmVhdGVfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugd3JhcHBlcikgdGhyb3dzIEdMaWIuRXJyb3I7Cist ICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRleHQg KENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmly dHVhbCB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBnZXRfZGV2aWNlX21hbmFnZXIgKCk7 CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuRmVhdHVyZUZs YWdzIGdldF9mZWF0dXJlcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1 YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZp cnR1YWwgdm9pZCBpbml0X2ZlYXR1cmVzICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJs aWMgdmlydHVhbCBib29sIHBvc3RfcGFyc2UgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistICAgIFtO b1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJlX3BhcnNlICgpIHRocm93cyBH TGliLkVycm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB2b2lkIHJl ZHJhdyAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistICB9CistCistICBbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYm94X2dl dF90eXBlICgpIildCistICBwdWJsaWMgY2xhc3MgQm94IDogQ2x1dHRlci5BY3RvciB7CistICAg IHB1YmxpYyBDbHV0dGVyLkxheW91dE1hbmFnZXIgbGF5b3V0X21hbmFnZXIgeyBnZXQ7IHNldDsg fQorLSAgfQorLQorLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9DT0xPUiIsIGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBzdHJ1Y3Qg Q29sb3IgeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9obHMiKV0K Ky0gICAgcHVibGljIENvbG9yLmZyb21faGxzIChmbG9hdCBodWUsIGZsb2F0IGx1bWluYW5jZSwg ZmxvYXQgc2F0dXJhdGlvbik7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9m cm9tX3BpeGVsIildCistICAgIHB1YmxpYyBDb2xvci5mcm9tX3BpeGVsICh1aW50MzIgcGl4ZWwp OworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9zdHJpbmciKV0KKy0g ICAgcHVibGljIENvbG9yLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsKKy0gICAgW0NDb2RlIChj bmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3RyaW5nIildCistICAgIHB1YmxpYyBib29sIHBh cnNlX3N0cmluZyAoc3RyaW5nIHN0cik7CistICAgIHB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0 dGVyLkNvbG9yPyBnZXRfc3RhdGljIChDbHV0dGVyLlN0YXRpY0NvbG9yIGNvbG9yKTsKKy0gIH0K Ky0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9jb250YWluZXJfZ2V0X3R5cGUgKCkiKV0KKy0gIHB1YmxpYyBpbnRl cmZhY2UgQ29udGFpbmVyIDogR0xpYi5PYmplY3QgeworLSAgICBwdWJsaWMgdm9pZCBhZGQgKHBh cmFtcyBDbHV0dGVyLkFjdG9yW10gYWN0b3JzKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX2NvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxkX3Byb3BlcnR5IildCistICAgIHB1YmxpYyBj bGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfY2hpbGRfcHJvcGVydHkgKHN0cmluZyBw cm9wZXJ0eV9uYW1lKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9j bGFzc19saXN0X2NoaWxkX3Byb3BlcnRpZXMiKV0KKy0gICAgcHVibGljIGNsYXNzIHVub3duZWQg R0xpYi5QYXJhbVNwZWNbXSBsaXN0X2NoaWxkX3Byb3BlcnRpZXMgKCk7CistICB9CistCistICBb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0 aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX2V2ZW50X2dldF90eXBlICgpIildCistICBbQ29tcGFjdF0KKy0gIHB1 YmxpYyBjbGFzcyBFdmVudCB7CistICAgIHB1YmxpYyBDbHV0dGVyLkFueUV2ZW50IGFueSB7IFtD Q29kZSAoY25hbWUgPSAiKENsdXR0ZXJBbnlFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGlj IENsdXR0ZXIuQnV0dG9uRXZlbnQgYnV0dG9uIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlckJ1 dHRvbkV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5Dcm9zc2luZ0V2ZW50 IGNyb3NzaW5nIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlckNyb3NzaW5nRXZlbnQgKikiKV0g Z2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLktleUV2ZW50IGtleSB7IFtDQ29kZSAoY25hbWUg PSAiKENsdXR0ZXJLZXlFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuTW90 aW9uRXZlbnQgbW90aW9uIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlck1vdGlvbkV2ZW50ICop IildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5TY3JvbGxFdmVudCBzY3JvbGwgeyBbQ0Nv ZGUgKGNuYW1lID0gIihDbHV0dGVyU2Nyb2xsRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1Ymxp YyBDbHV0dGVyLlN0YWdlU3RhdGVFdmVudCBzdGFnZV9zdGF0ZSB7IFtDQ29kZSAoY25hbWUgPSAi KENsdXR0ZXJTdGFnZVN0YXRlRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVy LlRvdWNoRXZlbnQgdG91Y2ggeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyVG91Y2hFdmVudCAq KSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuVG91Y2hwYWRQaW5jaEV2ZW50IHRvdWNo cGFkX3BpbmNoIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNocGFkUGluY2hFdmVudCAq KSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuVG91Y2hwYWRTd2lwZUV2ZW50IHRvdWNo cGFkX3N3aXBlIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNocGFkU3dpcGVFdmVudCAq KSIpXSBnZXQ7IH0KKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJjbHV0dGVyX3N0YWdl X2dldF90eXBlICgpIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LSAgcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5Hcm91cCB7CistICAgIFtDQ29kZSAoY25h bWUgPSAiY2x1dHRlcl9yZWRyYXciKV0KKy0gICAgcHVibGljIHZvaWQgcmVkcmF3ICgpOworLSAg fQorLQorLSAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CistICBwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLSAgICBb Tm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfcmVkcmF3X2NsaXAgKENs dXR0ZXIuR2VvbWV0cnkgc3RhZ2VfcmVjdGFuZ2xlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAg cHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2dlb21ldHJ5IChDbHV0dGVyLkdlb21ldHJ5IGdlb21l dHJ5KTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IGludCBnZXRfcGVu ZGluZ19zd2FwcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHVu b3duZWQgQ2x1dHRlci5BY3RvciBnZXRfd3JhcHBlciAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0g ICAgcHVibGljIGFic3RyYWN0IGJvb2wgaGFzX3JlZHJhd19jbGlwcyAoKTsKKy0gICAgW05vV3Jh cHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgaGlkZSAoKTsKKy0gICAgW05vV3JhcHBl cl0KKy0gICAgcHVibGljIGFic3RyYWN0IGJvb2wgaWdub3JpbmdfcmVkcmF3X2NsaXBzICgpOwor LSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbCByZWFsaXplICgpOwor LSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXNpemUgKGludCB3 aWR0aCwgaW50IGhlaWdodCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFj dCB2b2lkIHNldF9jdXJzb3JfdmlzaWJsZSAoYm9vbCBjdXJzb3JfdmlzaWJsZSk7CistICAgIFtO b1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9mdWxsc2NyZWVuIChib29s IGlzX2Z1bGxzY3JlZW4pOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qg dm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1 YmxpYyBhYnN0cmFjdCB2b2lkIHNldF91c2VyX3Jlc2l6YWJsZSAoYm9vbCBpc19yZXNpemFibGUp OworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93IChib29s IGRvX3JhaXNlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQg dW5yZWFsaXplICgpOworLSAgfQorLQorLSAgW0NDb2RlICh0eXBlX2lkID0gImNsdXR0ZXJfdGV4 dHVyZV9nZXRfdHlwZSAoKSIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0gIHB1YmxpYyBjbGFzcyBUZXh0dXJlIDogQ2x1dHRlci5BY3RvciB7CistICAgIHB1Ymxp YyBDb2dsLk1hdGVyaWFsIGNvZ2xfbWF0ZXJpYWwgeyBnZXQ7IHNldDsgfQorLSAgICBwdWJsaWMg Q29nbC5UZXh0dXJlIGNvZ2xfdGV4dHVyZSB7IGdldDsgc2V0OyB9CistICB9CistCistICBbQ29t cGFjdF0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLSAgcHVibGljIGNsYXNzIFRpbWVvdXRQb29sIHsKKy0gICAgW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLSAgICBwdWJsaWMgVGltZW91dFBvb2wgKGludCBwcmlv cml0eSk7CistICB9CistCistICBbQ0NvZGUgKGNwcmVmaXggPSAiQ0xVVFRFUl9GRUFUVVJFXyIs IGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIFtGbGFnc10KKy0g IHB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CistICAgIFRFWFRVUkVfTlBPVDsKKy0gICAgW0ND b2RlIChjbmFtZSA9ICJjbHV0dGVyX2ZlYXR1cmVfYXZhaWxhYmxlIildCistICAgIHB1YmxpYyBi b29sIGlzX2F2YWlsYWJsZSAoKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2ZlYXR1 cmVfZ2V0X2FsbCIpXQorLSAgICBwdWJsaWMgc3RhdGljIENsdXR0ZXIuRmVhdHVyZUZsYWdzIEBn ZXQgKCk7CistICB9CistCistICBbQ0NvZGUgKHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRT IiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIHN0 cnVjdCBVbml0cyB7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2Nt IildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX2NtIChmbG9hdCBjbSk7CistICAgIFtDQ29kZSAo Y25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2VtIildCistICAgIHB1YmxpYyBVbml0cy5mcm9t X2VtIChmbG9hdCBlbSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9t X2VtX2Zvcl9mb250IildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX2VtX2Zvcl9mb250IChzdHJp bmcgZm9udF9uYW1lLCBmbG9hdCBlbSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91 bml0c19mcm9tX21tIildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX21tIChmbG9hdCBtbSk7Cist ICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3BpeGVscyIpXQorLSAgICBw dWJsaWMgVW5pdHMuZnJvbV9waXhlbHMgKGludCBweCk7CistICAgIFtDQ29kZSAoY25hbWUgPSAi Y2x1dHRlcl91bml0c19mcm9tX3B0IildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX3B0IChmbG9h dCBwdCk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3N0cmluZyIp XQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpOworLSAgfQorLX0K K2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci00LWN1c3RvbS52YWxhIHZhcGkvbXV0dGVy LWNsdXR0ZXItNi1jdXN0b20udmFsYQorc2ltaWxhcml0eSBpbmRleCA5MiUKK3JlbmFtZSBmcm9t IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFsYQorcmVuYW1lIHRvIHZhcGkvbXV0dGVy LWNsdXR0ZXItNi1jdXN0b20udmFsYQoraW5kZXggYjhkODM4ZDAuLjg5MjI0YmU2IDEwMDY0NAor LS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFsYQorKysrIHZhcGkvbXV0dGVyLWNs dXR0ZXItNi1jdXN0b20udmFsYQorQEAgLTEsOSArMSw0IEBACisgbmFtZXNwYWNlIENsdXR0ZXIg eworLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9BQ1RPUl9CT1giLCBjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgc3RydWN0IEFjdG9y Qm94IHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2JveF9mcm9tX3ZlcnRp Y2VzIildCistICAgIHB1YmxpYyBBY3RvckJveC5mcm9tX3ZlcnRpY2VzIChDbHV0dGVyLlZlcnRl eFtdIHZlcnRzKTsKKy0gIH0KKyAKKyAgIHB1YmxpYyBzdHJ1Y3QgTWF0cml4IDogQ29nbC5NYXRy aXggeworICAgfQorQEAgLTE4LDggKzEzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworICAgICBb Tm9XcmFwcGVyXQorICAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGVuc3VyZV9jb250ZXh0IChDbHV0 dGVyLlN0YWdlIHN0YWdlKTsKKyAgICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwg dW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RldmljZV9tYW5hZ2VyICgpOworLSAg ICBbTm9XcmFwcGVyXQorICAgICBwdWJsaWMgdmlydHVhbCBDbHV0dGVyLkZlYXR1cmVGbGFncyBn ZXRfZmVhdHVyZXMgKCk7CisgICAgIFtOb1dyYXBwZXJdCisgICAgIHB1YmxpYyB2aXJ0dWFsIHZv aWQgaW5pdF9ldmVudHMgKCk7CitAQCAtODMsMTAgKzc2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAorICAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CisgICBwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLSAgICBb Tm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfcmVkcmF3X2NsaXAgKENs dXR0ZXIuR2VvbWV0cnkgc3RhZ2VfcmVjdGFuZ2xlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAg cHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2dlb21ldHJ5IChDbHV0dGVyLkdlb21ldHJ5IGdlb21l dHJ5KTsKKyAgICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRfcGVu ZGluZ19zd2FwcyAoKTsKKyAgICAgW05vV3JhcHBlcl0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXIt Y2x1dHRlci01LmRlcHMgdmFwaS9tdXR0ZXItY2x1dHRlci02LmRlcHMKK3NpbWlsYXJpdHkgaW5k ZXggNjMlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTUuZGVwcworcmVuYW1lIHRv IHZhcGkvbXV0dGVyLWNsdXR0ZXItNi5kZXBzCitpbmRleCAzZjVhOTJhNi4uN2E3MGQ2ZGYgMTAw NjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1dHRlci01LmRlcHMKKysrKyB2YXBpL211dHRlci1jbHV0 dGVyLTYuZGVwcworQEAgLTEsNCArMSw0IEBACisgYXRrCisgY2Fpcm8KKyBqc29uLWdsaWItMS4w CistbXV0dGVyLWNvZ2wtNQorK211dHRlci1jb2dsLTYKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXIt Y2x1dHRlci01LnZhcGkgdmFwaS9tdXR0ZXItY2x1dHRlci02LnZhcGkKK3NpbWlsYXJpdHkgaW5k ZXggOTMlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTUudmFwaQorcmVuYW1lIHRv IHZhcGkvbXV0dGVyLWNsdXR0ZXItNi52YXBpCitpbmRleCAyNGY3ZjZiMS4uMDEzMGE5M2MgMTAw NjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1dHRlci01LnZhcGkKKysrKyB2YXBpL211dHRlci1jbHV0 dGVyLTYudmFwaQorQEAgLTEsNiArMSw2IEBACistLyogbXV0dGVyLWNsdXR0ZXItNS52YXBpIGdl bmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIG11dHRlci1jbHV0dGVy LTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0Nv ZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIsIGdpcl9uYW1lc3BhY2UgPSAiQ2x1dHRlciIsIGdpcl92 ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY2x1dHRlcl8iKV0KKytbQ0NvZGUg KGNwcmVmaXggPSAiQ2x1dHRlciIsIGdpcl9uYW1lc3BhY2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJz aW9uID0gIjYiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY2x1dHRlcl8iKV0KKyBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCW5hbWVzcGFjZSBLZXkgeworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY25hbWUgPSAiQ0xVVFRFUl9LRVlfMCIpXQorQEAgLTQ2 NjEsMjIgKzQ2NjEsMTQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgYWxs b2NhdGVfcHJlZmVycmVkX3NpemUgKENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKyAJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmlt YXRlICh1bG9uZyBtb2RlLCB1aW50IGR1cmF0aW9uLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF9hbHBoYSAo Q2x1dHRlci5BbHBoYSBhbHBoYSwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfYWxwaGF2IChDbHV0dGVyLkFs cGhhIGFscGhhLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBh cnJheV9sZW5ndGhfcG9zID0gMS41KV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJh eV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSld IEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF90aW1lbGluZSAodWxvbmcgbW9kZSwg Q2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfdGltZWxpbmV2ICh1 bG9uZyBtb2RlLCBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0 aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gc3RyaW5n W10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVz IiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGV2 ICh1bG9uZyBtb2RlLCB1aW50IGR1cmF0aW9uLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9 ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gc3RyaW5nW10gcHJvcGVy dGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlf bGVuZ3RoX3BvcyA9IDIuNSldIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGFwcGx5X3JlbGF0aXZlX3Ry YW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIENsdXR0ZXIuVmVydGV4 IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGFwcGx5X3JlbGF0aXZlX3RyYW5zZm9ybV90b19wb2lu dCAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIEdyYXBoZW5lLlBvaW50M0QgcG9pbnQsIG91dCB1 bm93bmVkIEdyYXBoZW5lLlBvaW50M0QgdmVydGV4KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJs aWMgdmlydHVhbCB2b2lkIGFwcGx5X3RyYW5zZm9ybSAocmVmIENsdXR0ZXIuTWF0cml4IG1hdHJp eCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0 ZXggYXBwbHlfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLlZlcnRleCBwb2ludCk7CisrCQlw dWJsaWMgdm9pZCBhcHBseV90cmFuc2Zvcm1fdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9p bnQsIG91dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0QgdmVydGV4KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjI0IildCisgCQlwdWJsaWMgdm9pZCBiaW5kX21vZGVsIChHTGliLkxpc3RNb2Rl bD8gbW9kZWwsIG93bmVkIENsdXR0ZXIuQWN0b3JDcmVhdGVDaGlsZEZ1bmMgY3JlYXRlX2NoaWxk X2Z1bmMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ2ODgsMjAgKzQ2ODAs MTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor IAkJcHVibGljIGJvb2wgY29udGFpbnMgKENsdXR0ZXIuQWN0b3IgZGVzY2VuZGFudCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAo KTsKKysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBw YWludF9jb250ZXh0KTsKKysJCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BpY2sgKENsdXR0ZXIuUGlj a0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJ CXB1YmxpYyBQYW5nby5Db250ZXh0IGNyZWF0ZV9wYW5nb19jb250ZXh0ICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIFBhbmdvLkxheW91dCBjcmVhdGVfcGFuZ29f bGF5b3V0IChzdHJpbmc/IHRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyB2b2lkIGRlc3Ryb3lfYWxsX2NoaWxkcmVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIGRldGFjaF9hbmltYXRpb24gKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0g ImNsdXR0ZXJfYWN0b3JfZXZlbnQiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJ CXB1YmxpYyBib29sIGVtaXRfZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQsIGJvb2wgY2FwdHVy ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWJz X2FsbG9jYXRpb25fdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0 dGVyLlZlcnRleCB2ZXJ0c1s0XSk7CisrCQlwdWJsaWMgdm9pZCBnZXRfYWJzX2FsbG9jYXRpb25f dmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBHcmFwaGVuZS5Qb2ludDNE IHZlcnRzWzRdKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQXRrLk9iamVjdCBnZXRfYWNj ZXNzaWJsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuQWN0aW9uIGdldF9hY3Rpb24gKHN0cmluZyBuYW1lKTsKK0BAIC00NzA5LDE2 ICs0NzAwLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2Vh ayBDbHV0dGVyLkFjdGlvbj4gZ2V0X2FjdGlvbnMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBnZXRfYWxsb2NhdGlvbl9ib3ggKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgZ2V0X2FsbG9j YXRpb25fZ2VvbWV0cnkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgdm9pZCBnZXRfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3Is IFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FuY2hvcl9wb2ludCAob3V0 IGZsb2F0IGFuY2hvcl94LCBvdXQgZmxvYXQgYW5jaG9yX3kpOworKwkJcHVibGljIHZvaWQgZ2V0 X2FsbG9jYXRpb25fdmVydGljZXMgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBbQ0NvZGUgKGFy cmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0c1s0XSk7CisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorIAkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBnZXRfYW5jaG9yX3BvaW50X2dy YXZpdHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B bmltYXRpb24gZ2V0X2FuaW1hdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfYmFja2dyb3VuZF9jb2xvciAoKTsKKyAJCVtD Q29kZSAoY25hbWUgPSAiY2x1dHRlcl9nZXRfYWN0b3JfYnlfZ2lkIildCitAQCAtNDc2OCw4ICs0 NzUzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZ2V0X2ZpeGVkX3Bv c2l0aW9uX3NldCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBD bHV0dGVyLkFjdG9yRmxhZ3MgZ2V0X2ZsYWdzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIHVpbnQzMiBnZXRfZ2lkICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9y X2hhc19wb2ludGVyIildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMg Ym9vbCBnZXRfaGFzX3BvaW50ZXIgKCk7CitAQCAtNDg0OCw4ICs0ODMxLDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuVGV4dERpcmVjdGlvbiBnZXRfdGV4dF9kaXJl Y3Rpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0 ZXIuTWF0cml4IGdldF90cmFuc2Zvcm0gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IENsdXR0ZXIuTWF0cml4IGdldF90cmFuc2Zvcm1hdGlvbl9tYXRyaXggKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Vm9sdW1l IGdldF90cmFuc2Zvcm1lZF9wYWludF92b2x1bWUgKENsdXR0ZXIuQWN0b3IgcmVsYXRpdmVfdG9f YW5jZXN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTQ4OTIsNyArNDg3 Myw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGhhc19tYXBwZWRfY2xv bmVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwg Ym9vbCBoYXNfb3ZlcmxhcHMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorKwkJW05vV3JhcHBlcl0K KyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaGlkZV9hbGwgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgaW5zZXJ0X2NoaWxkX2Fib3ZlIChDbHV0dGVyLkFj dG9yIGNoaWxkLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5nKTsKK0BAIC00OTEyLDEwICs0ODkzLDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgaXNfc2NhbGVkICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJCXB1YmxpYyBib29sIGlzX3Zpc2libGUgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgbG93ZXIgKENsdXR0ZXIuQWN0b3I/IGFib3ZlKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgdm9pZCBsb3dlcl9ib3R0b20gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCitA QCAtNDkyOCwxNyArNDkwNSwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9v bCBuZWVkc19leHBhbmQgKENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24pOworIAkJW05v V3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfbm9kZSAoQ2x1dHRlci5QYWlu dE5vZGUgcm9vdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHZvaWQgcGlja19ib3gg KENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0LCBDbHV0dGVyLkFjdG9yQm94IGJveCk7 CisgCQlwdWJsaWMgdm9pZCBwb3BfaW50ZXJuYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorIAkJ cHVibGljIHZvaWQgcHVzaF9pbnRlcm5hbCAoKTsKKyAJCXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJh dyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBxdWV1 ZV9yZWRyYXdfd2l0aF9jbGlwIChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIHJhaXNlIChDbHV0dGVyLkFjdG9yPyBiZWxvdyk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZv aWQgcmFpc2VfdG9wICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGlj IHZvaWQgcmVtb3ZlX2FjdGlvbiAoQ2x1dHRlci5BY3Rpb24gYWN0aW9uKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KK0BAIC00OTYwLDggKzQ5MzIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfZWZmZWN0X2J5X25hbWUgKHN0cmluZyBuYW1lKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfdHJh bnNpdGlvbiAoc3RyaW5nIG5hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lk IHJlcGFyZW50IChDbHV0dGVyLkFjdG9yIG5ld19wYXJlbnQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlcGxhY2VfY2hpbGQgKENsdXR0ZXIuQWN0b3Ig b2xkX2NoaWxkLCBDbHV0dGVyLkFjdG9yIG5ld19jaGlsZCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorQEAgLTUwNDYsOCArNTAxNiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB2b2lkIHNldF9zY2FsZSAoZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95KTsK KyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfZnVsbCAoZG91Ymxl IHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95LCBmbG9hdCBjZW50ZXJfeCwgZmxvYXQgY2VudGVyX3kp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zY2FsZV93aXRoX2dyYXZp dHkgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSwgQ2x1dHRlci5HcmF2aXR5IGdyYXZp dHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9z Y2FsZV96IChkb3VibGUgc2NhbGVfeik7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2l6ZSAoZmxvYXQg d2lkdGgsIGZsb2F0IGhlaWdodCk7CitAQCAtNTExMCwxMSArNTA3OCw4IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9vbCBj aGlsZF90cmFuc2Zvcm1fc2V0IHsgZ2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCist CQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSBjbGlwIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1Ymxp YyBDbHV0dGVyLlJlY3QgY2xpcF9yZWN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBH cmFwaGVuZS5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjbGlwX3RvX2FsbG9jYXRpb24geyBnZXQ7 IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTE5OSwxMiArNTE2NCwxMiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludCBvcGFjaXR5IHsgZ2V0OyBzZXQ7IH0K KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLlBvaW50IHBpdm90X3BvaW50IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJ CXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGZsb2F0IHBpdm90X3BvaW50 X3ogeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUG9pbnQgcG9zaXRpb24geyBvd25lZCBn ZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0 OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBib29sIHJl YWN0aXZlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyMjUsMTMg KzUxOTAsMTMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGRvdWJsZSByb3RhdGlv bl9hbmdsZV96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJfeCB7IG93 bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCByb3RhdGlvbl9jZW50 ZXJfeCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3kgeyBv d25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qgcm90YXRpb25fY2Vu dGVyX3kgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl96IHsg b3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHJvdGF0aW9uX2Nl bnRlcl96IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgcm90YXRpb25fY2VudGVyX3pf Z3Jhdml0eSB7IGdldDsgc2V0OyB9CitAQCAtNTI1Nyw3ICs1MjIyLDcgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIGJvb2wgc2hvd19vbl9zZXRfcGFyZW50IHsgZ2V0OyBzZXQ7IH0K KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLlNpemUgc2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMg R3JhcGhlbmUuU2l6ZSBzaXplIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gdGV4dF9kaXJlY3Rp b24geyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTMxOSwxMSArNTI4 NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9v bCBtb3Rpb25fZXZlbnQgKENsdXR0ZXIuTW90aW9uRXZlbnQgZXZlbnQpOworIAkJW0hhc0VtaXR0 ZXJdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFp bnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYWludCAoQ2x1dHRlci5QYWlu dENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisg CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYXJlbnRfc2V0IChDbHV0dGVyLkFjdG9yPyBv bGRfcGFyZW50KTsKKysJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGljayAoQ2x1dHRlci5Db2xvciBjb2xv cik7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaWNrIChDbHV0dGVyLlBpY2tDb250 ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHF1ZXVlX3JlbGF5b3V0ICgp OworQEAgLTUzNjEsNiArNTMyNywxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg Ym9vbCBlbmFibGVkIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsg c2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVi bGljIGNsYXNzIEFjdG9yTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIild CisrCQlwdWJsaWMgQWN0b3JOb2RlIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfYWxpZ25fY29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBBbGlnbkNvbnN0cmFpbnQgOiBDbHV0dGVyLkNvbnN0 cmFpbnQgeworQEAgLTUzODgsMTkgKzUzNTksMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOwor IAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVy X2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWxvbmcgcmVnaXN0ZXJfZnVuYyAoQ2x1dHRlci5BbHBo YUZ1bmMgZnVuYyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9p ZCBzZXRfY2xvc3VyZSAoR0xpYi5DbG9zdXJlIGNsb3N1cmUpOworIAkJcHVibGljIHZvaWQgc2V0 X2Z1bmMgKG93bmVkIENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOworIAkJcHVi bGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBBbHBoYS53aXRoX2Z1bmMgKENsdXR0ZXIuVGltZWxpbmUg dGltZWxpbmUsIG93bmVkIENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworIAkJcHVibGljIGRvdWJs ZSBhbHBoYSB7IGdldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGlj IHVsb25nIG1vZGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KK0BAIC01NDExLDM1ICs1Mzc1LDI2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGNsYXNzIEFuaW1hdGlvbiA6IEdMaWIu T2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIEFuaW1hdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJpbmQgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZh bHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJpbmRfaW50 ZXJ2YWwgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBvd25lZCBDbHV0dGVyLkludGVydmFsIGludGVy dmFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFscGhh IGdldF9hbHBoYSAoKTsKKyAJCXB1YmxpYyB1aW50IGdldF9kdXJhdGlvbiAoKTsKKyAJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuSW50ZXJ2YWwgZ2V0X2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlf bmFtZSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfbG9vcCAoKTsKKyAJCXB1YmxpYyB1bG9uZyBnZXRf bW9kZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3QgKCk7Cisg CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsKKyAJCXB1 YmxpYyBib29sIGhhc19wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7 CisgCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworIAkJcHVibGljIHZv aWQgc2V0X2xvb3AgKGJvb2wgbG9vcCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbW9kZSAodWxvbmcg bW9kZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfb2JqZWN0IChHTGliLk9iamVjdCBvYmplY3QpOwor IAkJcHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lPyB0aW1lbGluZSk7 CistCQlwdWJsaWMgdm9pZCB1bmJpbmRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsK Ky0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIHVwZGF0ZSAoc3RyaW5nIHByb3Bl cnR5X25hbWUsIEdMaWIuVmFsdWUgZmluYWwpOworLQkJcHVibGljIHZvaWQgdXBkYXRlX2ludGVy dmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZhbCk7Cisr CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRl ci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBo YSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWludCBkdXJhdGlvbiB7IGdldDsgc2V0 OyB9CisgCQlwdWJsaWMgYm9vbCBsb29wIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyB1bG9uZyBt b2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBHTGliLk9iamVjdCBvYmplY3QgeyBnZXQ7IHNl dDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgR0xpYi5PYmplY3Qgb2JqZWN0 IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5l IHsgZ2V0OyBzZXQ7IH0KKy0JCVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgY29tcGxldGVkICgpOworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc3RhcnRl ZCAoKTsKKyAJfQorQEAgLTU0NjAsMjEgKzU0MTUsMTggQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1 YWwgdm9pZCBhZGRfb3B0aW9ucyAoR0xpYi5PcHRpb25Hcm91cCBncm91cCk7CistCQlwdWJsaWMg dm9pZCBiZWxsX25vdGlmeSAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCBi b29sIGNyZWF0ZV9jb250ZXh0ICgpIHRocm93cyBHTGliLkVycm9yOworIAkJW05vV3JhcHBlcl0K KyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5TdGFnZVdpbmRvdyBjcmVhdGVfc3Rh Z2UgKENsdXR0ZXIuU3RhZ2Ugd3JhcHBlcikgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbTm9XcmFw cGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBlbnN1cmVfY29udGV4dCAoQ2x1dHRlci5TdGFn ZSBzdGFnZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0 dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RldmljZV9tYW5hZ2VyICgpOworKwkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5TZWF0IGdldF9kZWZhdWx0X3NlYXQgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJ cHVibGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHVub3duZWQgQ2Fpcm8uRm9udE9w dGlvbnMgZ2V0X2ZvbnRfb3B0aW9ucyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuSW5w dXRNZXRob2QgZ2V0X2lucHV0X21ldGhvZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu S2V5bWFwIGdldF9rZXltYXAgKCk7CisgCQlwdWJsaWMgZG91YmxlIGdldF9yZXNvbHV0aW9uICgp OworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9ldmVudHMgKCk7 CitAQCAtNTQ5Niw5NSArNTQ0OCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2V0dGluZ3NfY2hhbmdl ZCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX2dldF90eXBlICgpIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9 ICIwLjIiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIEJlaGF2aW91ciA6IEdMaWIuT2JqZWN0 LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJlaGF2aW91ciAoKTsKKy0JCXB1YmxpYyB2b2lkIGFj dG9yc19mb3JlYWNoIChDbHV0dGVyLkJlaGF2aW91ckZvcmVhY2hGdW5jIGZ1bmMpOworLQkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxwaGFfbm90aWZ5IChkb3VibGUgYWxw aGFfdmFsdWUpOworLQkJcHVibGljIHZvaWQgYXBwbHkgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOwor LQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLkFjdG9yPiBnZXRfYWN0b3JzICgpOwor LQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7CistCQlwdWJsaWMg aW50IGdldF9uX2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0 X250aF9hY3RvciAoaW50IGluZGV4Xyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCist CQlwdWJsaWMgYm9vbCBpc19hcHBsaWVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1Ymxp YyB2b2lkIHJlbW92ZSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfYWxsICgpOworLQkJcHVibGljIHZvaWQg c2V0X2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhhKTsKKy0JCXB1YmxpYyBDbHV0dGVyLkFscGhh IGFscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFwcGxpZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgcmVtb3ZlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2 aW91cl9kZXB0aF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFz cyBCZWhhdmlvdXJEZXB0aCA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlckJlaGF2aW91cioiKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1Ymxp YyBCZWhhdmlvdXJEZXB0aCAoQ2x1dHRlci5BbHBoYT8gYWxwaGEsIGludCBkZXB0aF9zdGFydCwg aW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg dm9pZCBnZXRfYm91bmRzIChvdXQgaW50IGRlcHRoX3N0YXJ0LCBvdXQgaW50IGRlcHRoX2VuZCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRz IChpbnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgaW50IGRlcHRoX2VuZCB7 IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjQiKV0KKy0JCXB1YmxpYyBpbnQgZGVwdGhfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9iZWhhdmlvdXJfb3BhY2l0eV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4y IildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJPcGFjaXR5IDogQ2x1dHRlci5CZWhhdmlvdXIs IENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQorLQkJcHVibGljIEJlaGF2aW91 ck9wYWNpdHkgKENsdXR0ZXIuQWxwaGE/IGFscGhhLCB1aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50 OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg dm9pZCBnZXRfYm91bmRzIChvdXQgdWludDggb3BhY2l0eV9zdGFydCwgb3V0IHVpbnQ4IG9wYWNp dHlfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9ib3VuZHMgKHVpbnQ4IG9wYWNpdHlfc3RhcnQsIHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgb3BhY2l0eV9lbmQgeyBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBvcGFjaXR5X3N0YXJ0IHsg Z2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX3NjYWxlX2dldF90eXBlICgp IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEJlaGF2aW91clNjYWxlIDogQ2x1 dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQorLQkJ cHVibGljIEJlaGF2aW91clNjYWxlIChDbHV0dGVyLkFscGhhPyBhbHBoYSwgZG91YmxlIHhfc2Nh bGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJs ZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMg dm9pZCBnZXRfYm91bmRzIChvdXQgZG91YmxlIHhfc2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeV9z Y2FsZV9zdGFydCwgb3V0IGRvdWJsZSB4X3NjYWxlX2VuZCwgb3V0IGRvdWJsZSB5X3NjYWxlX2Vu ZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91 bmRzIChkb3VibGUgeF9zY2FsZV9zdGFydCwgZG91YmxlIHlfc2NhbGVfc3RhcnQsIGRvdWJsZSB4 X3NjYWxlX2VuZCwgZG91YmxlIHlfc2NhbGVfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB4X3NjYWxlX2Vu ZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeF9zY2FsZV9zdGFydCB7IGdldDsgc2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyBkb3VibGUgeV9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHlf c2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iaW5fbGF5b3V0X2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGNsYXNz IEJpbkxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFuYWdlcioiKV0K KyAJCXB1YmxpYyBCaW5MYXlvdXQgKENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24gPSBDbHV0 dGVyLkJpbkFsaWdubWVudC5TVEFSVCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbiA9IENs dXR0ZXIuQmluQWxpZ25tZW50LlNUQVJUKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMg dm9pZCBhZGQgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxp Z24sIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3I/IGNoaWxkLCBvdXQgQ2x1 dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxp Z24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENs dXR0ZXIuQWN0b3I/IGNoaWxkLCBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVy LkJpbkFsaWdubWVudCB5X2FsaWduKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduIHsgZ2V0OyBz ZXQ7IH0KK0BAIC01NzU4LDM3ICs1NjI2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2Fpcm9f dGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgY2xhc3Mg Q2Fpcm9UZXh0dXJlIDogQ2x1dHRlci5UZXh0dXJlLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIu QW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0 b3IqIildCistCQlwdWJsaWMgQ2Fpcm9UZXh0dXJlICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7 CistCQlwdWJsaWMgdm9pZCBjbGVhciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBD YWlyby5Db250ZXh0IGNyZWF0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDYWly by5Db250ZXh0IGNyZWF0ZV9yZWdpb24gKGludCB4X29mZnNldCwgaW50IHlfb2Zmc2V0LCBpbnQg d2lkdGgsIGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVi bGljIGJvb2wgZ2V0X2F1dG9fcmVzaXplICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3N1cmZhY2Vf c2l6ZSAob3V0IHVpbnQgd2lkdGgsIG91dCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgaW52YWxpZGF0ZV9yZWN0YW5nbGUgKENh aXJvLlJlY3RhbmdsZUludD8gcmVjdCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgdm9pZCBzZXRfYXV0b19yZXNpemUgKGJvb2wgdmFsdWUpOworLQkJcHVibGljIHZv aWQgc2V0X3N1cmZhY2Vfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGJvb2wgYXV0b19yZXNpemUgeyBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBzdXJmYWNlX2hlaWdo dCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHN1 cmZhY2Vfd2lkdGggeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor LQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIENhaXJvLlN1cmZhY2UgY3JlYXRlX3N1cmZhY2UgKHVp bnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGRyYXcgKENhaXJvLkNvbnRleHQgY3IpOworLQl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9jYW52YXNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIENhbnZhcyA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNv bnRlbnQgeworQEAgLTU5MjAsNjIgKzU3NTcsMjQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIHZvaWQgc2V0X2ZhY3RvciAoZG91YmxlIGZhY3Rvcik7CisgCQlwdWJsaWMgZG91Ymxl IGZhY3RvciB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RldmljZV9tYW5hZ2VyX2dl dF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIGFic3Ry YWN0IGNsYXNzIERldmljZU1hbmFnZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgRGV2aWNlTWFuYWdlciAo KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFkZF9kZXZpY2UgKENs dXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmly dHVhbCB2b2lkIGFwcGx5X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5n cyBzZXR0aW5ncyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBjb21w cmVzc19tb3Rpb24gKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuRXZlbnQgdG9fZGlzY2Fy ZCk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxJbnB1dERldmljZSBjcmVhdGVf dmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKy0J CXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfY29yZV9kZXZp Y2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKy0JCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJs aWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2RldmljZSAoaW50IGRl dmljZV9pZCk7CistCQlwdWJsaWMgdm9pZCBnZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIu S2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyX2Ex MXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlw dWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxEZXZpY2VUeXBlIGdldF9zdXBwb3J0ZWRfdmly dHVhbF9kZXZpY2VfdHlwZXMgKCk7CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIu SW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuU0xp c3Q8Q2x1dHRlci5JbnB1dERldmljZT4gcGVla19kZXZpY2VzICgpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVtb3ZlX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmlj ZSBkZXZpY2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2VsZWN0 X3N0YWdlX2V2ZW50cyAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistCQlwdWJsaWMgdm9pZCBzZXRf a2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZSAoQ2x1dHRlci5Q b2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOworLQkJcHVibGljIHZvaWQgc2V0 X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRp bmdzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBi YWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBk ZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2NoYW5nZWQgKHVpbnQgc2V0dGluZ3Nf ZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTEx eV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9tYXNrLCB1aW50IGxvY2tlZF9tYXNr KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV9kd2VsbF9jbGlja190eXBlX2NoYW5n ZWQgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0YXJ0ZWQgKENsdXR0ZXIuSW5wdXRE ZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBl LCB1aW50IGRlbGF5KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0 b3BwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGlt ZW91dFR5cGUgdGltZW91dF90eXBlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB0b29sX2NoYW5n ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBDbHV0dGVyLklucHV0RGV2aWNlVG9vbCBw MCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIERyYWdBY3Rpb24gOiBDbHV0dGVy LkFjdGlvbiB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorIAkJcHVibGljIERyYWdBY3Rpb24gKCk7CistCQlwdWJs aWMgYm9vbCBnZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJlY3QgZHJhZ19hcmVhKTsKKysJCXB1Ymxp YyBib29sIGdldF9kcmFnX2FyZWEgKEdyYXBoZW5lLlJlY3QgZHJhZ19hcmVhKTsKKyAJCXB1Ymxp YyBDbHV0dGVyLkRyYWdBeGlzIGdldF9kcmFnX2F4aXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkFjdG9yIGdldF9kcmFnX2hhbmRsZSAoKTsKKyAJCXB1YmxpYyB2b2lkIGdldF9kcmFn X3RocmVzaG9sZCAob3V0IHVpbnQgeF90aHJlc2hvbGQsIG91dCB1aW50IHlfdGhyZXNob2xkKTsK KyAJCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRzIChvdXQgZmxvYXQgbW90aW9uX3gsIG91 dCBmbG9hdCBtb3Rpb25feSk7CisgCQlwdWJsaWMgdm9pZCBnZXRfcHJlc3NfY29vcmRzIChvdXQg ZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworLQkJcHVibGljIHZvaWQgc2V0X2Ry YWdfYXJlYSAoQ2x1dHRlci5SZWN0PyBkcmFnX2FyZWEpOworKwkJcHVibGljIHZvaWQgc2V0X2Ry YWdfYXJlYSAoR3JhcGhlbmUuUmVjdD8gZHJhZ19hcmVhKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9k cmFnX2F4aXMgKENsdXR0ZXIuRHJhZ0F4aXMgYXhpcyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZHJh Z19oYW5kbGUgKENsdXR0ZXIuQWN0b3I/IGhhbmRsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZHJh Z190aHJlc2hvbGQgKGludCB4X3RocmVzaG9sZCwgaW50IHlfdGhyZXNob2xkKTsKKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLlJlY3QgZHJhZ19hcmVhIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFw aGVuZS5SZWN0IGRyYWdfYXJlYSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9vbCBkcmFn X2FyZWFfc2V0IHsgZ2V0OyB9CitAQCAtNjAxMSwxMyArNTgxMCwxMyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgYm9vbCBtb2RpZnlfcGFp bnRfdm9sdW1lIChDbHV0dGVyLlBhaW50Vm9sdW1lIHZvbHVtZSk7CisgCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludCAoQ2x1dHRlci5FZmZlY3RQYWludEZsYWdzIGZs YWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0 IHBhaW50X2NvbnRleHQsIENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7CisgCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwaWNrIChDbHV0dGVyLkVmZmVjdFBhaW50 RmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwaWNrIChDbHV0dGVyLlBpY2tD b250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBwb3N0X3BhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwb3N0X3BhaW50IChD bHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgdmlydHVhbCBib29sIHByZV9wYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wg cHJlX3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHF1ZXVlX3JlcGFpbnQgKCk7Cisg CX0KK0BAIC02MDY4LDcgKzU4NjcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg dWludCBnZXRfbW9kZV9ncm91cCAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9wYWRfZXZlbnRfZGV0 YWlscyAob3V0IHVpbnQgbnVtYmVyLCBvdXQgdWludCBtb2RlLCBvdXQgZG91YmxlIHZhbHVlKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdm9pZCBnZXRfcG9zaXRp b24gKENsdXR0ZXIuUG9pbnQgcG9zaXRpb24pOworKwkJcHVibGljIHZvaWQgZ2V0X3Bvc2l0aW9u IChHcmFwaGVuZS5Qb2ludCBwb3NpdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9yZWxhdGVkICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC02MzA4LDcgKzYxMDcsNyBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBn ZXRfYXhpc192YWx1ZSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGRvdWJsZVtdIGF4 ZXMsIENsdXR0ZXIuSW5wdXRBeGlzIGF4aXMsIG91dCBkb3VibGUgdmFsdWUpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIu RXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQpOworKwkJcHVibGlj IGJvb2wgZ2V0X2Nvb3JkcyAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSwgR3JhcGhl bmUuUG9pbnQgcG9pbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGlj IGludCBnZXRfZGV2aWNlX2lkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAg LTYzMjIsNyArNjEyMSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGdl dF9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2dyYWJiZWRfYWN0b3IgKCk7CistCQlwdWJsaWMgaW50 IGdldF9ncm91cF9uX21vZGVzIChpbnQgZ3JvdXApOworKwkJcHVibGljIHZpcnR1YWwgaW50IGdl dF9ncm91cF9uX21vZGVzIChpbnQgZ3JvdXApOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19jdXJzb3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS42IildCitAQCAtNjM0NCwxNiArNjE0MywxNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9wb2ludGVyX3N0YWdlICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf cHJvZHVjdF9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2VhdCBnZXRfc2VhdCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2Vh ayBDbHV0dGVyLklucHV0RGV2aWNlPiBnZXRfc2xhdmVfZGV2aWNlcyAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3ZlbmRvcl9p ZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBncmFi IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBib29sIGlzX2dyb3VwZWQgKENsdXR0 ZXIuSW5wdXREZXZpY2Ugb3RoZXJfZGV2aWNlKTsKKy0JCXB1YmxpYyBib29sIGlzX21vZGVfc3dp dGNoX2J1dHRvbiAodWludCBncm91cCwgdWludCBidXR0b24pOworKwkJcHVibGljIHZpcnR1YWwg Ym9vbCBpc19ncm91cGVkIChDbHV0dGVyLklucHV0RGV2aWNlIG90aGVyX2RldmljZSk7CisrCQlw dWJsaWMgdmlydHVhbCBib29sIGlzX21vZGVfc3dpdGNoX2J1dHRvbiAodWludCBncm91cCwgdWlu dCBidXR0b24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBib29s IGtleWNvZGVfdG9fZXZkZXYgKHVpbnQgaGFyZHdhcmVfa2V5Y29kZSwgdWludCBldmRldl9rZXlj b2RlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wga2V5Y29kZV90b19ldmRldiAodWludCBoYXJk d2FyZV9rZXljb2RlLCB1aW50IGV2ZGV2X2tleWNvZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Igc2VxdWVuY2VfZ2V0X2dy YWJiZWRfYWN0b3IgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZSBzZXF1ZW5jZSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTYzNjksMTIgKzYxNjksMTEgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIHZvaWQgdW5ncmFiICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorIAkJcHVibGljIHZvaWQgdXBkYXRlX2Zyb21fZXZlbnQgKENsdXR0ZXIuRXZlbnQg ZXZlbnQsIGJvb2wgdXBkYXRlX3N0YWdlKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmly dHVhbCB2b2lkIHVwZGF0ZV9mcm9tX3Rvb2wgKENsdXR0ZXIuSW5wdXREZXZpY2VUb29sIHRvb2wp OworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisg CQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCist CQlwdWJsaWMgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGRldmljZV9tYW5hZ2VyIHsgb3duZWQgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0TW9kZSBkZXZpY2VfbW9kZSB7 IGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgc3RyaW5nIGRldmljZV9ub2RlIHsgZ2V0OyBj b25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KK0BAIC02Mzk3LDYgKzYx OTYsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBvd25l ZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1 YmxpYyBzdHJpbmcgcHJvZHVjdF9pZCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgQ2x1 dHRlci5TZWF0IHNlYXQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdmVuZG9yX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0K KyAJfQorQEAgLTY0MzQsNyArNjIzNCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyB2b2lkIHNldF9jYW5fc2hvd19wcmVlZGl0IChib29sIGNhbl9zaG93X3ByZWVkaXQpOworIAkJ cHVibGljIHZvaWQgc2V0X2NvbnRlbnRfaGludHMgKENsdXR0ZXIuSW5wdXRDb250ZW50SGludEZs YWdzIGhpbnQpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfcHVycG9zZSAoQ2x1dHRlci5J bnB1dENvbnRlbnRQdXJwb3NlIHB1cnBvc2UpOworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9s b2NhdGlvbiAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9s b2NhdGlvbiAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9w YW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJW05vV3JhcHBl cl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5nIHByZWVk aXQsIHVpbnQgY3Vyc29yKTsKK0BAIC02NDUzLDcgKzYyNTMsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCByZXNldCAoKTsKKyAJ CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24g KENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2N1cnNvcl9s b2NhdGlvbiAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9w YW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJcHVibGljIHZv aWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5nPyBwcmVlZGl0LCB1aW50IGN1cnNvcik7CisgCQlb Tm9XcmFwcGVyXQorQEAgLTY0NzAsNyArNjI3MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBDbHV0dGVyLklucHV0Q29udGVudFB1cnBvc2UgY29udGVudF9wdXJwb3NlIHsgZ2V0 OyBzZXQ7IH0KKyAJCVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGNvbW1pdCAo c3RyaW5nIHRleHQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9sb2NhdGlvbl9jaGFu Z2VkIChDbHV0dGVyLlJlY3Qgb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3Jf bG9jYXRpb25fY2hhbmdlZCAoR3JhcGhlbmUuUmVjdCBvYmplY3QpOworIAkJW0hhc0VtaXR0ZXJd CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nICh1aW50IG9mZnNldCwg dWludCBsZW4pOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGlucHV0X3BhbmVsX3N0YXRlIChDbHV0 dGVyLklucHV0UGFuZWxTdGF0ZSBvYmplY3QpOworQEAgLTY1NDYsMjcgKzYzNDYsMzEgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorIAkJcHJvdGVjdGVkIEtleW1hcCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0 X2NhcHNfbG9ja19zdGF0ZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIFBhbmdvLkRpcmVjdGlvbiBn ZXRfZGlyZWN0aW9uICgpOworIAkJcHVibGljIHZpcnR1YWwgYm9vbCBnZXRfbnVtX2xvY2tfc3Rh dGUgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhdGVfY2hhbmdlZCAoKTsKKyAJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfbGF5ZXJfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgTGF5ZXJO b2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBMYXll ck5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24sIENhaXJvLlJlY3RhbmdsZSB2aWV3cG9ydCwg ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgdWludDggb3BhY2l0eSk7CisrCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2xheW91dF9tYW5hZ2VyX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIExheW91dE1hbmFnZXIgOiBHTGliLkluaXRp YWxseVVub3duZWQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorIAkJcHJvdGVjdGVkIExheW91dE1hbmFnZXIgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lk IGFsbG9jYXRlIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3JCb3gg YWxsb2NhdGlvbiwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5BbHBoYSBiZWdpbl9hbmlt YXRpb24gKHVpbnQgZHVyYXRpb24sIHVsb25nIG1vZGUpOworIAkJcHVibGljIHZvaWQgY2hpbGRf Z2V0IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4u Lik7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29udGFpbmVy IGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdM aWIuVmFsdWUgdmFsdWUpOworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0IChDbHV0dGVyLkNvbnRh aW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlwdWJsaWMgdm9p ZCBjaGlsZF9zZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRl ci5BY3RvciBhY3Rvciwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOwor IAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5MYXlvdXRN ZXRhIGNyZWF0ZV9jaGlsZF9tZXRhIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0 ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlw dWJsaWMgdmlydHVhbCB2b2lkIGVuZF9hbmltYXRpb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBH TGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgbmFtZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMiIpXQorKwkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIGRvdWJsZSBnZXRf YW5pbWF0aW9uX3Byb2dyZXNzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5MYXlvdXRNZXRhIGdldF9jaGlsZF9tZXRhIChDbHV0dGVy LkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IpOworQEAgLTY2MjMsMTIg KzY0MjcsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHJvdGVjdGVkIE9mZnNjcmVlbkVm ZmVjdCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIENvZ2wuSGFuZGxlIGNyZWF0ZV90ZXh0dXJlIChm bG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CistCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91dCB1bm93bmVkIENsdXR0ZXIuUmVj dCByZWN0KTsKKysJCXB1YmxpYyBib29sIGdldF90YXJnZXRfcmVjdCAob3V0IHVub3duZWQgR3Jh cGhlbmUuUmVjdCByZWN0KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgYm9vbCBnZXRf dGFyZ2V0X3NpemUgKG91dCBmbG9hdCB3aWR0aCwgb3V0IGZsb2F0IGhlaWdodCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0 X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X3RhcmdldCAoKTsKKysJ CXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfdGFyZ2V0IChDbHV0dGVyLlBhaW50Q29udGV4dCBw YWludF9jb250ZXh0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFnZV90dXJuX2VmZmVjdF9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNjY0NSw2ICs2NDQ5LDE2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgcGVyaW9kIHsgZ2V0OyBz ZXQ7IH0KKyAJCXB1YmxpYyBmbG9hdCByYWRpdXMgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9 ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfcmVmIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhaW50X2Nv bnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRl eHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQYWludENvbnRleHQgewor KwkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVi dWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcG9wX2ZyYW1lYnVmZmVy ICgpOworKwkJcHVibGljIHZvaWQgcHVzaF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBm cmFtZWJ1ZmZlcik7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Q29udGV4dCBAcmVm ICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhaW50X25v ZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGlj IGFic3RyYWN0IGNsYXNzIFBhaW50Tm9kZSB7CitAQCAtNjY1NCw3ICs2NDY4LDggQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgYWRkX211bHRpdGV4dHVyZV9yZWN0YW5nbGUg KENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgdGV4dF9jb29yZHMsIHVpbnQgdGV4dF9jb29y ZHNfbGVuKTsKKyAJCXB1YmxpYyB2b2lkIGFkZF9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3gg cmVjdCk7CisgCQlwdWJsaWMgdm9pZCBhZGRfdGV4dHVyZV9yZWN0YW5nbGUgKENsdXR0ZXIuQWN0 b3JCb3ggcmVjdCwgZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsK Ky0JCXB1YmxpYyB2b2lkIHBhaW50ICgpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1 ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBwYWludCAoQ2x1dHRlci5Q YWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBh aW50Tm9kZSBAcmVmICgpOworIAkJcHVibGljIHZvaWQgc2V0X25hbWUgKHN0cmluZyBuYW1lKTsK KyAJCXB1YmxpYyB2b2lkIHVucmVmICgpOworQEAgLTY2NzIsNyArNjQ4Nyw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBmbG9h dCBnZXRfaGVpZ2h0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGlj IENsdXR0ZXIuVmVydGV4IGdldF9vcmlnaW4gKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfb3JpZ2lu IChvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorQEAgLTY2ODIsNyArNjQ5Nyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9oZWln aHQgKGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJs aWMgdm9pZCBzZXRfb3JpZ2luIChDbHV0dGVyLlZlcnRleCBvcmlnaW4pOworKwkJcHVibGljIHZv aWQgc2V0X29yaWdpbiAoR3JhcGhlbmUuUG9pbnQzRCBvcmlnaW4pOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3dpZHRoIChmbG9hdCB3aWR0aCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjc2OSwyNiArNjU4NCwxOSBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5QYXRoIHBhdGggeyBnZXQ7IHNldDsg fQorIAkJcHVibGljIHNpZ25hbCB2b2lkIG5vZGVfcmVhY2hlZCAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgdWludCBpbmRleCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgcmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGlja19jb250ZXh0X3JlZiIs IHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5j dGlvbiA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF91bnJlZiIpXQorKwlbQ29tcGFjdF0KKysJcHVi bGljIGNsYXNzIFBpY2tDb250ZXh0IHsKKysJCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CisrCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlBpY2tDb250ZXh0IEByZWYgKCk7CisrCQlwdWJsaWMgdm9p ZCB1bnJlZiAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlwZWxpbmVfbm9kZV9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgUGlwZWxpbmVO b2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFBpcGVsaW5lTm9kZSAoKTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3BvaW50X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgUG9pbnQgeworLQkJcHVibGljIGZs b2F0IHg7CistCQlwdWJsaWMgZmxvYXQgeTsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5Qb2lu dCBhbGxvYyAoKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IGNvcHkgKCk7CistCQlwdWJsaWMg ZmxvYXQgZGlzdGFuY2UgKENsdXR0ZXIuUG9pbnQgYiwgb3V0IGZsb2F0IHhfZGlzdGFuY2UsIG91 dCBmbG9hdCB5X2Rpc3RhbmNlKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5Qb2lu dCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LlBvaW50IGluaXQgKGZsb2F0IHgsIGZsb2F0IHkpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IENsdXR0ZXIuUG9pbnQgemVybyAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcHJvcGVydHlfdHJhbnNp dGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJs aWMgY2xhc3MgUHJvcGVydHlUcmFuc2l0aW9uIDogQ2x1dHRlci5UcmFuc2l0aW9uLCBDbHV0dGVy LlNjcmlwdGFibGUgeworQEAgLTY3OTgsMzMgKzY2MDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgdm9pZCBzZXRfcHJvcGVydHlfbmFtZSAoc3RyaW5nPyBwcm9wZXJ0eV9uYW1l KTsKKyAJCXB1YmxpYyBzdHJpbmcgcHJvcGVydHlfbmFtZSB7IGdldDsgc2V0OyB9CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9yZWN0X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgUmVjdCB7CistCQlwdWJsaWMg d2VhayBDbHV0dGVyLlBvaW50IG9yaWdpbjsKKy0JCXB1YmxpYyB3ZWFrIENsdXR0ZXIuU2l6ZSBz aXplOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlJlY3QgYWxsb2MgKCk7CistCQlwdWJsaWMg dm9pZCBjbGFtcF90b19waXhlbCAoKTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChD bHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKENsdXR0 ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgY29weSAoKTsKKy0JCXB1YmxpYyBi b29sIGVxdWFscyAoQ2x1dHRlci5SZWN0IGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0J CXB1YmxpYyB2b2lkIGdldF9jZW50ZXIgKENsdXR0ZXIuUG9pbnQgY2VudGVyKTsKKy0JCXB1Ymxp YyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKy0J CXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuUmVjdCBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3 aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIGluc2V0IChmbG9hdCBkX3gsIGZs b2F0IGRfeSk7CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24gKENsdXR0ZXIuUmVjdCBiLCBD bHV0dGVyLlJlY3Q/IHJlcyk7CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IG5vcm1hbGl6ZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIG9mZnNldCAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworLQkJcHVibGlj IHZvaWQgc2NhbGUgKGZsb2F0IHNfeCwgZmxvYXQgc195KTsKKy0JCXB1YmxpYyB2b2lkIHVuaW9u IChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRlci5SZWN0IHJlcyk7CistCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgQ2x1dHRlci5SZWN0IHplcm8gKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlY3RhbmdsZV9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBjbGFz cyBSZWN0YW5nbGUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5p bWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitAQCAtNjkw Nyw4ICs2Njg4LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorIAkJcHVibGlj IFNjcm9sbEFjdG9yICgpOworIAkJcHVibGljIENsdXR0ZXIuU2Nyb2xsTW9kZSBnZXRfc2Nyb2xs X21vZGUgKCk7CistCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcG9pbnQgKENsdXR0ZXIuUG9pbnQg cG9pbnQpOworLQkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3JlY3QgKENsdXR0ZXIuUmVjdCByZWN0 KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9sbF90b19wb2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQp OworKwkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3JlY3QgKEdyYXBoZW5lLlJlY3QgcmVjdCk7Cisg CQlwdWJsaWMgdm9pZCBzZXRfc2Nyb2xsX21vZGUgKENsdXR0ZXIuU2Nyb2xsTW9kZSBtb2RlKTsK KyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9sbE1vZGUgc2Nyb2xsX21vZGUgeyBnZXQ7IHNldDsgfQor IAl9CitAQCAtNjkzMCw2ICs2NzExLDQ0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NlYXRfZ2V0 X3R5cGUgKCkiKV0KKysJcHVibGljIGFic3RyYWN0IGNsYXNzIFNlYXQgOiBHTGliLk9iamVjdCB7 CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0 ZWQgU2VhdCAoKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFwcGx5 X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7Cisr CQlwdWJsaWMgdmlydHVhbCB2b2lkIGJlbGxfbm90aWZ5ICgpOworKwkJcHVibGljIHZpcnR1YWwg dm9pZCBjb21wcmVzc19tb3Rpb24gKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuRXZlbnQg dG9fZGlzY2FyZCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBjb3B5 X2V2ZW50X2RhdGEgKENsdXR0ZXIuRXZlbnQgc3JjLCBDbHV0dGVyLkV2ZW50IGRlc3QpOworKwkJ cHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZpY2UgY3JlYXRlX3ZpcnR1YWxf ZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CisrCQlwdWJsaWMg dm9pZCBlbnN1cmVfYTExeV9zdGF0ZSAoKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmly dHVhbCB2b2lkIGZyZWVfZXZlbnRfZGF0YSAoQ2x1dHRlci5FdmVudCBldmVudCk7CisrCQlwdWJs aWMgdm9pZCBnZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNl dHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBn ZXRfa2V5Ym9hcmQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuS2V5bWFw IGdldF9rZXltYXAgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXRE ZXZpY2UgZ2V0X3BvaW50ZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlcl9hMTF5X3Nl dHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGlj IHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsRGV2aWNlVHlwZSBnZXRfc3VwcG9ydGVkX3ZpcnR1YWxf ZGV2aWNlX3R5cGVzICgpOworKwkJcHVibGljIGJvb2wgZ2V0X3RvdWNoX21vZGUgKCk7CisrCQlw dWJsaWMgdmlydHVhbCBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBsaXN0X2Rl dmljZXMgKCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIu S2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2Ex MXlfZHdlbGxfY2xpY2tfdHlwZSAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNs aWNrX3R5cGUpOworKwkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1 dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgd2FycF9wb2ludGVyIChpbnQgeCwgaW50IHkpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisr CQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsg fQorKwkJcHVibGljIGJvb2wgdG91Y2hfbW9kZSB7IGdldDsgfQorKwkJcHVibGljIHNpZ25hbCB2 b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIGRldmljZV9yZW1vdmVkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfZmxhZ3NfY2hhbmdlZCAodWludCBzZXR0 aW5nc19mbGFncywgdWludCBjaGFuZ2VkX21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGti ZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdlZCAodWludCBsYXRjaGVkX21hc2ssIHVpbnQgbG9ja2Vk X21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGVf Y2hhbmdlZCAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOwor KwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RhcnRlZCAoQ2x1dHRlci5J bnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0 X3R5cGUsIHVpbnQgZGVsYXkpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVv dXRfc3RvcHBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckEx MXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIGJvb2wgY2xpY2tlZCk7CisrCQlwdWJsaWMgc2ln bmFsIHZvaWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRl ci5JbnB1dERldmljZVRvb2wgcDApOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZXR0aW5nc19nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBTZXR0 aW5ncyA6IEdMaWIuT2JqZWN0IHsKK0BAIC03MDAyLDE4ICs2ODIxLDYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJ cHJvdGVjdGVkIFNoYWRlck1hdHJpeCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIs IGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NpemVf Z2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCXB1YmxpYyBjbGFzcyBTaXplIHsKKy0JCXB1YmxpYyBmbG9hdCBoZWlnaHQ7CistCQlwdWJs aWMgZmxvYXQgd2lkdGg7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuU2l6ZSBhbGxvYyAoKTsK Ky0JCXB1YmxpYyBDbHV0dGVyLlNpemUgY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAo Q2x1dHRlci5TaXplIGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuU2l6ZSBpbml0IChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfc25hcF9jb25zdHJhaW50X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKyAJcHVibGljIGNsYXNzIFNuYXBDb25zdHJhaW50IDogQ2x1dHRlci5D b25zdHJhaW50IHsKK0BAIC03MDUyLDE0ICs2ODU5LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyB2b2lkIGZyZWV6ZV91cGRhdGVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2FjY2VwdF9mb2N1cyAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yX2F0X3BvcyAoQ2x1dHRlci5QaWNrTW9kZSBw aWNrX21vZGUsIGludCB4LCBpbnQgeSk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01vZGUgcGlja19tb2RlLCBmbG9hdCB4LCBm bG9hdCB5KTsKKyAJCXB1YmxpYyBib29sIGdldF9jYXB0dXJlX2ZpbmFsX3NpemUgKENhaXJvLlJl Y3RhbmdsZUludCByZWN0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGZsb2F0IHNjYWxlKTsKKyAJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY29sb3IgKCk7CisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHN0 YXRpYyB1bm93bmVkIENsdXR0ZXIuU3RhZ2UgZ2V0X2RlZmF1bHQgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGdldF9mb2cgKCk7CisgCQlwdWJsaWMgaW50NjQg Z2V0X2ZyYW1lX2NvdW50ZXIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlfZm9jdXMgKCk7CitAQCAtNzA2Nywx OSArNjg3MiwxNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBnZXRfbWlu aW11bV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9tb3Rpb25fZXZlbnRzX2VuYWJs ZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRf bm9fY2xlYXJfaGludCAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIGdldF9wZXJz cGVjdGl2ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDYWly by5SZWN0YW5nbGVJbnQgZ2V0X3JlZHJhd19jbGlwX2JvdW5kcyAoKTsKKysJCXB1YmxpYyBDYWly by5SZWdpb24gZ2V0X3JlZHJhd19jbGlwICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAkJcHVibGljIGJvb2wgZ2V0X3Rocm90dGxlX21vdGlvbl9ldmVudHMgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RpdGxl ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3Vz ZV9hbHBoYSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2Zv ZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyB2b2lkIGhpZGVf Y3Vyc29yICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KK0BAIC03MDk0LDE2ICs2ODk0LDEyIEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9hY2NlcHRfZm9jdXMgKGJvb2wg YWNjZXB0X2ZvY3VzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29s b3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mb2cgKENs dXR0ZXIuRm9nIGZvZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMg dm9pZCBzZXRfa2V5X2ZvY3VzIChDbHV0dGVyLkFjdG9yPyBhY3Rvcik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbWluaW11bV9zaXplICh1aW50IHdp ZHRoLCB1aW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJs aWMgdm9pZCBzZXRfbW90aW9uX2V2ZW50c19lbmFibGVkIChib29sIGVuYWJsZWQpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X25vX2NsZWFyX2hpbnQg KGJvb2wgbm9fY2xlYXIpOworIAkJcHVibGljIHZvaWQgc2V0X3BlcnNwZWN0aXZlIChDbHV0dGVy LlBlcnNwZWN0aXZlIHBlcnNwZWN0aXZlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF90aHJvdHRsZV9tb3Rpb25fZXZlbnRzIChib29sIHRocm90dGxl KTsKK0BAIC03MTExLDggKzY5MDcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg dm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisgCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FscGhhIChib29sIHVzZV9hbHBoYSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9mb2cgKGJvb2wgZm9nKTsKKyAJ CXB1YmxpYyB2b2lkIHNob3dfY3Vyc29yICgpOworIAkJcHVibGljIHZvaWQgdGhhd191cGRhdGVz ICgpOworIAkJcHVibGljIHZvaWQgdXBkYXRlX3Jlc291cmNlX3NjYWxlcyAoKTsKK0BAIC03MTIy LDIwICs2OTE2LDE0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNv bG9yIGNvbG9yIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGlj IGJvb2wgY3Vyc29yX3Zpc2libGUgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLkZvZyBmb2cgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3Iga2V5X2ZvY3VzIHsgZ2V0OyBzZXQ7 IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIG5vX2NsZWFy X2hpbnQgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVi bGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUgeyBnZXQ7IHNldDsgfQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHN0cmluZyB0aXRsZSB7IGdldDsgc2V0 OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgYm9vbCB1c2VfYWxw aGEgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9m b2cgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0aXZhdGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yMCIpXQorQEAgLTcxNTgsOCArNjk0Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRl ci5TdGFnZT4gbGlzdF9zdGFnZXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLlNMaXN0PENs dXR0ZXIuU3RhZ2U+IHBlZWtfc3RhZ2VzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2RlZmF1bHRfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuU3RhZ2UgZGVmYXVsdF9zdGFn ZSB7IGdldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTcyMDYsMTYgKzY5 OTIsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyB1aW50IGdldF9kdXJhdGlvbiAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0 YXJnZXRfc3RhdGVfbmFtZSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIEdMaWIuTGlz dDx3ZWFrIENsdXR0ZXIuU3RhdGVLZXk+IGdldF9rZXlzIChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9u YW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdD8gb2JqZWN0LCBzdHJp bmc/IHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfc3RhdGUgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIEdMaWIu TGlzdDx3ZWFrIHN0cmluZz4gZ2V0X3N0YXRlcyAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfa2V5IChzdHJpbmc/IHNvdXJjZV9zdGF0 ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdD8gb2JqZWN0LCBz dHJpbmc/IHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9kdXJhdGlvbiAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRf c3RhdGVfbmFtZSwgdWludCBkdXJhdGlvbik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5TdGF0ZSBzZXRfa2V5IChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1l LCBzdHJpbmcgdGFyZ2V0X3N0YXRlX25hbWUsIEdMaWIuT2JqZWN0IG9iamVjdCwgc3RyaW5nIHBy b3BlcnR5X25hbWUsIHVpbnQgbW9kZSwgR0xpYi5WYWx1ZSB2YWx1ZSwgZG91YmxlIHByZV9kZWxh eSwgZG91YmxlIHBvc3RfZGVsYXkpOworQEAgLTcyMzYsMjQgKzcwMTYsOCBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCVtDb21wYWN0XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1 YmxpYyBjbGFzcyBTdGF0ZUtleSB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVsb25n IGdldF9tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIu T2JqZWN0IGdldF9vYmplY3QgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGRvdWJs ZSBnZXRfcG9zdF9kZWxheSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZG91Ymxl IGdldF9wcmVfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF9wcm9wZXJ0eV9uYW1lICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyBHTGliLlR5cGUgZ2V0X3Byb3BlcnR5X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zb3VyY2Vfc3RhdGVfbmFtZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RhcmdldF9zdGF0ZV9uYW1l ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF92YWx1ZSAoR0xpYi5W YWx1ZSB2YWx1ZSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N3aXBlX2FjdGlvbl9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNzI2NSw1MyArNzAyOSw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgYm9vbCBzd2lwZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRl ci5Td2lwZURpcmVjdGlvbiBkaXJlY3Rpb24pOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJsZV9sYXlv dXRfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNzIFRhYmxl TGF5b3V0IDogQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJMYXlvdXRNYW5hZ2VyKiIpXQorLQkJ cHVibGljIFRhYmxlTGF5b3V0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBDbHV0dGVyLlRhYmxlQWxp Z25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHlfYWxpZ24pOworLQkJ cHVibGljIGludCBnZXRfY29sdW1uX2NvdW50ICgpOworLQkJcHVibGljIHVpbnQgZ2V0X2NvbHVt bl9zcGFjaW5nICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGdldF9lYXNp bmdfZHVyYXRpb24gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVsb25nIGdldF9l YXNpbmdfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBnZXRfZXhw YW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2V4cGFuZCwgb3V0IGJvb2wgeV9l eHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9maWxsIChDbHV0 dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2ZpbGwsIG91dCBib29sIHlfZmlsbCk7CistCQlw dWJsaWMgaW50IGdldF9yb3dfY291bnQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfcm93X3NwYWNp bmcgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc3BhbiAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0 IGludCBjb2x1bW5fc3Bhbiwgb3V0IGludCByb3dfc3Bhbik7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIGJvb2wgZ2V0X3VzZV9hbmltYXRpb25zICgpOworLQkJcHVibGljIHZvaWQgcGFj ayAoQ2x1dHRlci5BY3RvciBhY3RvciwgaW50IGNvbHVtbiwgaW50IHJvdyk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50 IHlfYWxpZ24pOworLQkJcHVibGljIHZvaWQgc2V0X2NvbHVtbl9zcGFjaW5nICh1aW50IHNwYWNp bmcpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfZHVyYXRp b24gKHVpbnQgbXNlY3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9l YXNpbmdfbW9kZSAodWxvbmcgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCB4X2V4cGFuZCwgYm9vbCB5 X2V4cGFuZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbGwgKENs dXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCk7CistCQlwdWJsaWMg dm9pZCBzZXRfcm93X3NwYWNpbmcgKHVpbnQgc3BhY2luZyk7CistCQlwdWJsaWMgdm9pZCBzZXRf c3BhbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgaW50IGNvbHVtbl9zcGFuLCBpbnQgcm93X3NwYW4p OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfYW5pbWF0aW9ucyAo Ym9vbCBhbmltYXRlKTsKKy0JCXB1YmxpYyB1aW50IGNvbHVtbl9zcGFjaW5nIHsgZ2V0OyBzZXQ7 IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWludCBlYXNpbmdfZHVyYXRpb24geyBn ZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBlYXNpbmdfbW9k ZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWludCByb3dfc3BhY2luZyB7IGdldDsgc2V0OyB9 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgdXNlX2FuaW1hdGlvbnMgeyBnZXQ7 IHNldDsgfQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YXBfYWN0aW9uX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBjbGFzcyBUYXBBY3Rpb24gOiBDbHV0 dGVyLkdlc3R1cmVBY3Rpb24geworQEAgLTczMzksNyArNzA1Niw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9jdXJzb3JfY29sb3IgKCk7CisgCQlw dWJsaWMgaW50IGdldF9jdXJzb3JfcG9zaXRpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2N1cnNvcl9yZWN0IChvdXQgdW5vd25lZCBDbHV0 dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfY3Vyc29yX3JlY3QgKG91dCB1bm93 bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdWludCBnZXRfY3Vyc29yX3NpemUg KCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY3Vyc29yX3Zpc2libGUgKCk7CisgCQlwdWJsaWMgYm9v bCBnZXRfZWRpdGFibGUgKCk7CitAQCAtNzQ1OCw3ICs3MTc1LDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9ldmVudCAoQ2x1dHRlci5HZW9tZXRyeSBnZW9t ZXRyeSk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfZXZlbnQgKEdyYXBo ZW5lLlJlY3QgcmVjdCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBkZWxldGVfdGV4dCAoaW50IHN0YXJ0X3Bvcywg aW50IGVuZF9wb3MpOworQEAgLTc0OTcsOTIgKzcyMTQsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgVGV4dE5vZGUgKFBhbmdvLkxheW91dD8gbGF5b3V0LCBDbHV0dGVyLkNvbG9y PyBjb2xvcik7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIu QWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRh aW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgVGV4 dHVyZSAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBUZXh0dXJl LmZyb21fYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIwLjgiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0 aHJvd3MgQ2x1dHRlci5UZXh0dXJlRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Jhc2Vf c2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF9jb2dsX21hdGVyaWFsICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF9jb2dsX3Rl eHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuVGV4dHVyZVF1 YWxpdHkgZ2V0X2ZpbHRlcl9xdWFsaXR5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBib29sIGdldF9rZWVwX2FzcGVjdF9yYXRpbyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgYm9vbCBnZXRfbG9hZF9hc3luYyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgYm9vbCBnZXRfbG9hZF9kYXRhX2FzeW5jICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1 YmxpYyBpbnQgZ2V0X21heF90aWxlX3dhc3RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyBib29sIGdldF9waWNrX3dpdGhfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X3JlcGVhdCAob3V0IGJvb2wgcmVwZWF0X3gsIG91dCBib29sIHJlcGVh dF95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfc3luY19zaXplICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29sIHNldF9hcmVhX2Zyb21fcmdiX2Rh dGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGJvb2wgaGFz X2FscGhhLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHJvd3N0cmlk ZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9y OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2dsX21hdGVyaWFsIChD b2dsLkhhbmRsZSBjb2dsX21hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMg dm9pZCBzZXRfY29nbF90ZXh0dXJlIChDb2dsLkhhbmRsZSBjb2dsX3RleCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbHRlcl9xdWFsaXR5IChDbHV0dGVyLlRleHR1 cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMg Ym9vbCBzZXRfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVycm9yOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX3JnYl9kYXRhIChbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBib29sIGhhc19hbHBoYSwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgcm93c3RyaWRlLCBpbnQgYnBwLCBDbHV0dGVyLlRl eHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQor LQkJcHVibGljIGJvb2wgc2V0X2Zyb21feXV2X2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ2x1dHRlci5UZXh0 dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9rZWVwX2FzcGVjdF9yYXRpbyAoYm9vbCBrZWVwX2FzcGVjdCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xvYWRfYXN5bmMgKGJvb2wgbG9h ZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xvYWRfZGF0 YV9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBzZXRfcGlja193aXRoX2FscGhhIChib29sIHBpY2tfd2l0aF9hbHBoYSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlcGVhdCAoYm9vbCByZXBlYXRfeCwgYm9v bCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3N5bmNf c2l6ZSAoYm9vbCBzeW5jX3NpemUpOworKwlwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIu QWN0b3IgeworIAkJcHVibGljIENvZ2wuTWF0ZXJpYWwgY29nbF9tYXRlcmlhbCB7IGdldDsgc2V0 OyB9CisgCQlwdWJsaWMgQ29nbC5UZXh0dXJlIGNvZ2xfdGV4dHVyZSB7IGdldDsgc2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRpc2FibGVfc2xpY2luZyB7IGdl dDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgc3Ry aW5nIGZpbGVuYW1lIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1 cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5IHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CistCQlwdWJs aWMgYm9vbCBrZWVwX2FzcGVjdF9yYXRpbyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIGJvb2wgbG9hZF9hc3luYyB7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBib29sIGxvYWRfZGF0YV9hc3luYyB7IHNldDsgfQorLQkJcHVibGljIGJvb2wg cGlja193aXRoX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGJvb2wgcmVwZWF0X3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgYm9vbCByZXBlYXRfeSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgYm9vbCBz eW5jX3NpemUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg aW50IHRpbGVfd2FzdGUgeyBnZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCBsb2FkX2ZpbmlzaGVkIChHTGliLkVycm9yIGVycm9yKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCist CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaXhidWZfY2hhbmdlICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlIChpbnQgd2lkdGgsIGludCBoZWln aHQpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03NjA4LDcgKzcyNDIsNyBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBn ZXRfYXV0b19yZXZlcnNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1 YmxpYyBib29sIGdldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBD bHV0dGVyLlBvaW50IGNfMik7CisrCQlwdWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dy ZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEsIEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludCBnZXRfY3VycmVudF9yZXBlYXQgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCitAQCAtNzY0NSw3ICs3Mjc5LDcgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGlj IHZvaWQgc2V0X2F1dG9fcmV2ZXJzZSAoYm9vbCByZXZlcnNlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCistCQlwdWJsaWMgdm9pZCBzZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChD bHV0dGVyLlBvaW50IGNfMSwgQ2x1dHRlci5Qb2ludCBjXzIpOworKwkJcHVibGljIHZvaWQgc2V0 X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoR3JhcGhlbmUuUG9pbnQgY18xLCBHcmFwaGVuZS5Qb2lu dCBjXzIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X2RlbGF5ICh1aW50IG1zZWNzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KK0BAIC03 NzQ0LDYgKzczNzgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7 CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdHJhbnNmb3JtX25vZGVfZ2V0 X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRyYW5zZm9ybU5vZGUgOiBDbHV0dGVyLlBhaW50 Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGljIFRyYW5zZm9ybU5vZGUgKENvZ2wuTWF0 cml4IHByb2plY3Rpb24pOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90cmFuc2l0aW9uX2dldF90eXBlICgp IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFz cyBUcmFuc2l0aW9uIDogQ2x1dHRlci5UaW1lbGluZSwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BA IC03NzgzLDcgKzc0MjIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgVmlydHVhbElucHV0RGV2 aWNlICgpOworIAkJcHVibGljIGludCBnZXRfZGV2aWNlX3R5cGUgKCk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X21hbmFnZXIgKCk7CisgCQlwdWJsaWMgdmly dHVhbCB2b2lkIG5vdGlmeV9hYnNvbHV0ZV9tb3Rpb24gKHVpbnQ2NCB0aW1lX3VzLCBkb3VibGUg eCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfYnV0dG9uICh1aW50 NjQgdGltZV91cywgdWludDMyIGJ1dHRvbiwgQ2x1dHRlci5CdXR0b25TdGF0ZSBidXR0b25fc3Rh dGUpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfZGlzY3JldGVfc2Nyb2xsICh1aW50 NjQgdGltZV91cywgQ2x1dHRlci5TY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBDbHV0dGVyLlNj cm9sbFNvdXJjZSBzY3JvbGxfc291cmNlKTsKK0BAIC03Nzk0LDI1ICs3NDMyLDI1IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX2Rvd24g KHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCwgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX21vdGlvbiAodWludDY0IHRpbWVfdXMsIGludCBz bG90LCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlf dG91Y2hfdXAgKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCk7CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmljZU1hbmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25l ZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRl dmljZV90eXBlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJ cHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfem9vbV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKyAJcHVibGljIGNsYXNzIFpvb21BY3Rpb24gOiBDbHV0dGVyLkdlc3R1cmVB Y3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1YmxpYyBab29tQWN0aW9uICgpOworLQkJcHVibGlj IHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2 b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7Cisr CQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKysJ CXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2ludCAoR3JhcGhlbmUuUG9pbnQg cG9pbnQpOworIAkJcHVibGljIENsdXR0ZXIuWm9vbUF4aXMgZ2V0X3pvb21fYXhpcyAoKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF96b29tX2F4aXMgKENsdXR0ZXIuWm9vbUF4aXMgYXhpcyk7CisgCQlw dWJsaWMgQ2x1dHRlci5ab29tQXhpcyB6b29tX2F4aXMgeyBnZXQ7IHNldDsgfQorLQkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Q b2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgYm9vbCB6b29tIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBHcmFwaGVuZS5Qb2ludCBmb2NhbF9w b2ludCwgZG91YmxlIGZhY3Rvcik7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9jbmFtZSA9ICJDbHV0dGVyQW5pbWF0YWJsZUludGVy ZmFjZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRhYmxlX2dldF90eXBlICgpIildCisgCXB1 YmxpYyBpbnRlcmZhY2UgQW5pbWF0YWJsZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAi KV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBhbmltYXRlX3Byb3Bl cnR5IChDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRpb24sIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBH TGliLlZhbHVlIGluaXRpYWxfdmFsdWUsIEdMaWIuVmFsdWUgZmluYWxfdmFsdWUsIGRvdWJsZSBw cm9ncmVzcywgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgYWJzdHJhY3QgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX3Byb3BlcnR5 IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CitAQCAtNzgzMCw4ICs3NDY4LDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW0NDb2RlICh2ZnVuY19uYW1lID0gImFkZCIpXQorIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9hY3RvciAoQ2x1dHRlci5BY3RvciBh Y3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgYWRkX3ZhbGlzdCAoQ2x1 dHRlci5BY3RvciBmaXJzdF9hY3RvciwgdmFfbGlzdCB2YXJfYXJncyk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXQgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIC4uLik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNzg1MywxMCAr NzQ4OSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu QWN0b3IgZmluZF9jaGlsZF9ieV9uYW1lIChzdHJpbmcgY2hpbGRfbmFtZSk7CisgCQlbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfY29udGFpbmVyX2NsYXNzX2ZpbmRfY2hpbGRfcHJvcGVydHkiKV0K KyAJCXB1YmxpYyBjbGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfY2hpbGRfcHJvcGVy dHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMg YWJzdHJhY3Qgdm9pZCBAZm9yZWFjaCAoQ2x1dHRlci5DYWxsYmFjayBjYWxsYmFjayk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBmb3JlYWNoX3dpdGhfaW50ZXJu YWxzIChDbHV0dGVyLkNhbGxiYWNrIGNhbGxiYWNrKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5DaGlsZE1ldGEgZ2V0X2No aWxkX21ldGEgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KK0BAIC03 ODc0LDggKzc1MDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKHZmdW5jX25h bWUgPSAicmVtb3ZlIildCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHZv aWQgcmVtb3ZlX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40Iild CistCQlwdWJsaWMgdm9pZCByZW1vdmVfdmFsaXN0IChDbHV0dGVyLkFjdG9yIGZpcnN0X2FjdG9y LCB2YV9saXN0IHZhcl9hcmdzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYWJzdHJh Y3Qgdm9pZCBzb3J0X2RlcHRoX29yZGVyICgpOworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgYWN0b3JfYWRkZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworQEAgLTc4OTIsNyArNzUyMiw3 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGludmFsaWRh dGUgKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZhbGlkYXRlX3NpemUgKCk7CisgCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgcGFpbnRfY29udGVudCAoQ2x1dHRl ci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWludE5vZGUgbm9kZSk7CisrCQlwdWJsaWMgYWJzdHJh Y3Qgdm9pZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBhaW50 Tm9kZSBub2RlLCBDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhdHRh Y2hlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorQEAgLTc5MDgsMTAgKzc1MzgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCXB1YmxpYyBp bnRlcmZhY2UgU3RhZ2VXaW5kb3cgOiBHTGliLk9iamVjdCB7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0 YWdlX3JlY3RhbmdsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQg Z2V0X2dlb21ldHJ5IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKyAJCVtOb1dyYXBwZXJd CisgCQlwdWJsaWMgYWJzdHJhY3QgaW50IGdldF9wZW5kaW5nX3N3YXBzICgpOworIAkJW05vV3Jh cHBlcl0KK0BAIC03OTM5LDE0ICs3NTY1LDE2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtO b1dyYXBwZXJdCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCB1bnJlYWxpemUgKCk7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJDTFVUVEVSX1RZUEVfQUNUT1JfQk9YIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJl ZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0b3JfYm94 X2dldF90eXBlICgpIildCisgCXB1YmxpYyBzdHJ1Y3QgQWN0b3JCb3ggeworIAkJcHVibGljIGZs b2F0IHgxOworIAkJcHVibGljIGZsb2F0IHkxOworIAkJcHVibGljIGZsb2F0IHgyOworIAkJcHVi bGljIGZsb2F0IHkyOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyBz dGF0aWMgQ2x1dHRlci5BY3RvckJveD8gYWxsb2MgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsKKysJCXB1YmxpYyBzdGF0 aWMgdm9pZCBjbGFtcF90b19waXhlbCAocmVmIENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChmbG9hdCB4 LCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KK0BAIC03OTU1LDggKzc1 ODMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRl ci5BY3RvckJveCBib3hfYik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJs aWMgdm9pZCBmcmVlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2JveF9m cm9tX3ZlcnRpY2VzIildCistCQlwdWJsaWMgQWN0b3JCb3guZnJvbV92ZXJ0aWNlcyAoQ2x1dHRl ci5WZXJ0ZXhbXSB2ZXJ0cyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJs aWMgZmxvYXQgZ2V0X2FyZWEgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAt ODAwMiw3ICs3NjI4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHdlYWsgQ2Fp cm8uU3VyZmFjZSBpbWFnZTsKKyAJCXB1YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgcmVjdDsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gIkNMVVRURVJfVFlQRV9DT0xPUiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZy ZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09M T1IiKV0KKyAJcHVibGljIHN0cnVjdCBDb2xvciB7CisgCQlwdWJsaWMgdWludDggcmVkOworIAkJ cHVibGljIHVpbnQ4IGdyZWVuOworQEAgLTgwNDEsMjQgKzc2NjcsNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgc3RyaW5nIHRv X3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZm9nX2dldF90eXBlICgpIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC42IildCistCXB1YmxpYyBzdHJ1Y3QgRm9nIHsKKy0JCXB1YmxpYyBmbG9hdCB6X25lYXI7 CistCQlwdWJsaWMgZmxvYXQgel9mYXI7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dlb21ldHJ5X2dldF90 eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdHJ1Y3QgR2VvbWV0cnkgeworLQkJcHVibGljIGludCB4 OworLQkJcHVibGljIGludCB5OworLQkJcHVibGljIHVpbnQgd2lkdGg7CistCQlwdWJsaWMgdWlu dCBoZWlnaHQ7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBp bnRlcnNlY3RzIChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5MSk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSB1bmlvbiAoQ2x1dHRlci5H ZW9tZXRyeSBnZW9tZXRyeV9iKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVj dCBLYmRBMTF5U2V0dGluZ3MgeworIAkJcHVibGljIENsdXR0ZXIuS2V5Ym9hcmRBMTF5RmxhZ3Mg Y29udHJvbHM7CitAQCAtODA2OSw3ICs3Njc3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIGludCBtb3VzZWtleXNfbWF4X3NwZWVkOworIAkJcHVibGljIGludCBtb3VzZWtleXNf YWNjZWxfdGltZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfa25vdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAu MiIpXQorIAlwdWJsaWMgc3RydWN0IEtub3QgeworIAkJcHVibGljIGludCB4OworQEAgLTgxMjEs NyArNzcyOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgdmFsdWU7 CisgCQlwdWJsaWMgdWludDMyIG1vZGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9kZV9nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19i b3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9kZV9nZXRfdHlwZSAoKSIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdHJ1Y3QgUGF0aE5vZGUgewor IAkJcHVibGljIENsdXR0ZXIuUGF0aE5vZGVUeXBlIHR5cGU7CitAQCAtODEzMSw3ICs3NzM5LDcg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuUGF0 aE5vZGUgbm9kZV9iKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3BlcnNwZWN0aXZlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJl ZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGVyc3BlY3Rp dmVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMg c3RydWN0IFBlcnNwZWN0aXZlIHsKKyAJCXB1YmxpYyBmbG9hdCBmb3Z5OworQEAgLTgxNjIsNyAr Nzc3MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuQWN0 b3Igc291cmNlOworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2U7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJDTFVUVEVSX1RZUEVfVU5JVFMiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VO SVRTIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0cnVjdCBVbml0 cyB7CisgCQlwdWJsaWMgQ2x1dHRlci5Vbml0cz8gY29weSAoKTsKK0BAIC04MTg2LDIzICs3Nzk0 LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHRvX3BpeGVscyAoKTsK KyAJCXB1YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl92ZXJ0ZXhf Z2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3Ry dWN0IFZlcnRleCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5OworLQkJ cHVibGljIGZsb2F0IHo7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGlj IHN0YXRpYyBDbHV0dGVyLlZlcnRleD8gYWxsb2MgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXg/IGNvcHkgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5WZXJ0ZXggdmVy dGV4X2IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZnJl ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLlZlcnRleD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9 ICJDTFVUVEVSX0FDVE9SX0FMSUdOXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9hbGlnbl9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgZW51 bSBBY3RvckFsaWduIHsKK0BAIC04MzQwLDYgKzc5MzEsMjcgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJWV9BWElTLAorIAkJQk9USAorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJVR18iLCB0eXBlX2lk ID0gImNsdXR0ZXJfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1Ymxp YyBlbnVtIERlYnVnRmxhZyB7CisrCQlNSVNDLAorKwkJQUNUT1IsCisrCQlURVhUVVJFLAorKwkJ RVZFTlQsCisrCQlQQUlOVCwKKysJCVBBTkdPLAorKwkJQkFDS0VORCwKKysJCVNDSEVEVUxFUiwK KysJCVNDUklQVCwKKysJCVNIQURFUiwKKysJCU1VTFRJU1RBR0UsCisrCQlBTklNQVRJT04sCisr CQlMQVlPVVQsCisrCQlQSUNLLAorKwkJRVZFTlRMT09QLAorKwkJQ0xJUFBJTkcsCisrCQlPT0Jf VFJBTlNGT1JNUworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9EUkFHXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9k cmFnX2F4aXNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlw dWJsaWMgZW51bSBEcmFnQXhpcyB7CitAQCAtODM0Nyw2ICs3OTU5LDE5IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVhfQVhJUywKKyAJCVlfQVhJUworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJVR18i LCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhd19kZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtG bGFnc10KKysJcHVibGljIGVudW0gRHJhd0RlYnVnRmxhZyB7CisrCQlESVNBQkxFX1NXQVBfRVZF TlRTLAorKwkJRElTQUJMRV9DTElQUEVEX1JFRFJBV1MsCisrCQlSRURSQVdTLAorKwkJUEFJTlRf Vk9MVU1FUywKKysJCURJU0FCTEVfQ1VMTElORywKKysJCURJU0FCTEVfT0ZGU0NSRUVOX1JFRElS RUNULAorKwkJQ09OVElOVU9VU19SRURSQVcsCisrCQlQQUlOVF9ERUZPUk1fVElMRVMsCisrCQlQ QUlOVF9EQU1BR0VfUkVHSU9OCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0VGRkVDVF9QQUlOVF9BQ1RPUl8i LCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X3BhaW50X2ZsYWdzX2dldF90eXBlICgpIildCisg CVtGbGFnc10KKyAJcHVibGljIGVudW0gRWZmZWN0UGFpbnRGbGFncyB7CitAQCAtODM5OCw4ICs4 MDIzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3Mg eworIAkJVEVYVFVSRV9OUE9ULAorIAkJU1dBUF9USFJPVFRMRSwKKy0JCVRFWFRVUkVfWVVWLAor LQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKyAJCVNUQUdFX1NUQVRJQywKKyAJCVNUQUdFX0NVUlNP UiwKKyAJCVNIQURFUlNfR0xTTCwKK0BAIC04NjU3LDYgKzgyODAsMTEgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJUkVMX0xJTkVfVE8sCisgCQlSRUxfQ1VSVkVfVE8KKyAJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRU RVJfREVCVUdfTk9QXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2RlYnVnX2ZsYWdfZ2V0X3R5 cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBQaWNrRGVidWdGbGFnIHsKKysJCVBJ Q0tJTkcKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUElDS18iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19t b2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGlj IGVudW0gUGlja01vZGUgeworQEAgLTg4NTEsMTMgKzg0NzksNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlMRUZULAorIAkJUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEFCTEVfQUxJR05NRU5U XyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJsZV9hbGlnbm1lbnRfZ2V0X3R5cGUgKCkiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMjIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gVGFibGVBbGlnbm1lbnQgeworLQkJU1RBUlQs CistCQlDRU5URVIsCistCQlFTkQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVYVF9ESVJFQ1RJT05fIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3RleHRfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGVudW0gVGV4dERpcmVjdGlvbiB7CitAQCAt ODkzMywyOCArODU1NCwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlWQUxVRTsKKyAJCXB1 YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVYVFVS RV9FUlJPUl8iKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgZXJyb3Jk b21haW4gVGV4dHVyZUVycm9yIHsKKy0JCU9VVF9PRl9NRU1PUlksCistCQlOT19ZVVYsCistCQlC QURfRk9STUFUOworLQkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOworLQl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNl X3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCXB1YmxpYyBkZWxl Z2F0ZSBDbHV0dGVyLkFjdG9yIEFjdG9yQ3JlYXRlQ2hpbGRGdW5jIChHTGliLk9iamVjdCBpdGVt KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5z dGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIGRlbGVnYXRlIGRv dWJsZSBBbHBoYUZ1bmMgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2lu Y2UgPSAiMC4yIildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEJlaGF2aW91ckZvcmVhY2hGdW5j IChDbHV0dGVyLkJlaGF2aW91ciBiZWhhdmlvdXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9w b3MgPSA0LjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBkZWxlZ2F0 ZSBib29sIEJpbmRpbmdBY3Rpb25GdW5jIChHTGliLk9iamVjdCBnb2JqZWN0LCBzdHJpbmcgYWN0 aW9uX25hbWUsIHVpbnQga2V5X3ZhbCwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJzKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFu Y2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgQ2FsbGJhY2sgKENsdXR0ZXIu QWN0b3IgYWN0b3IpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBFbWl0 SW5wdXREZXZpY2VFdmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgQ2x1dHRlci5JbnB1dERldmlj ZSBkZXZpY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQor IAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBFdmVudEZpbHRlckZ1bmMgKENsdXR0ZXIuRXZlbnQgZXZl bnQpOworQEAgLTg5ODUsOSArODU5Nyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNp b24gKHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5BY3RvckJv eD8gYWN0b3JfYm94X2FsbG9jICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGJhc2VfaW5pdCAoKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtOTA1MSw5ICs4NjYwLDYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBQYW5nby5Gb250TWFwIGdldF9mb250X21hcCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2tleWJvYXJkX2dy YWIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRp b25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KK0BAIC05MDYxLDE3ICs4NjY3LDggQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9n cm91cF93aXRob3V0X2luaXQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9wb2ludGVyX2dyYWIgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Njcmlw dF9pZCAoR0xpYi5PYmplY3QgZ29iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBncmFiX2tleWJvYXJkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdyYWJfcG9pbnRlciAo Q2x1dHRlci5BY3RvciBhY3Rvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIENsdXR0ZXIuSW5pdEVycm9yIGluaXQg KFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gImFyZ2MiLCBhcnJheV9sZW5ndGhfcG9zID0g MC41KV0gcmVmIHVub3duZWQgc3RyaW5nW10/IGFyZ3YpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIp XQorQEAgLTkwODcsMjkgKzg2ODQsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X2N1c3RvbV9iYWNrZW5kX2Z1bmMgKHZvaWQqIGZ1bmMpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfYWRkX2RhdGFfZnVsbCAoc3Ry aW5nIHRlc3RfcGF0aCwgb3duZWQgR0xpYi5UZXN0RGF0YUZ1bmMgdGVzdF9mdW5jKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2FjdG9y X2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50LCBDbHV0 dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5BY3Rvcj8gcmVzdWx0KTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2NvbG9yX2F0X3Bv aW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50LCBDbHV0dGVyLkNv bG9yIGNvbG9yLCBvdXQgQ2x1dHRlci5Db2xvciByZXN1bHQpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MTgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgdGVzdF9nZXRfc3Rh Z2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0IChpbnQgYXJnYywgc3RyaW5nIGFyZ3Yp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBpbnQgdGVzdF9ydW4g KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJf a2V5Ym9hcmQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCB1bmdyYWJfcG9pbnRlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBz dGF0aWMgdWludCB1bmljb2RlX3RvX2tleXN5bSAodWludDMyIHdjKTsKKyB9CitkaWZmIC0tZ2l0 IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC5kZXBzIHZhcGkvbXV0dGVyLWNsdXR0ZXItNy5kZXBzCitz aW1pbGFyaXR5IGluZGV4IDU0JQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci00LmRl cHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTcuZGVwcworaW5kZXggOTUwOTQwMjYu LjZiZDFjY2Y3IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC5kZXBzCisrKysgdmFw aS9tdXR0ZXItY2x1dHRlci03LmRlcHMKK0BAIC0xLDUgKzEsNCBAQAorIGF0aworIGNhaXJvCisg anNvbi1nbGliLTEuMAorLW11dHRlci1jb2dsLTQKKy1wYW5nbworK211dHRlci1jb2dsLTcKK2Rp ZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci00LnZhcGkgdmFwaS9tdXR0ZXItY2x1dHRlci03 LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggODYlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0 dGVyLTQudmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNsdXR0ZXItNy52YXBpCitpbmRleCBj OGExZDIzYi4uYWVhNmEzMWEgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1dHRlci00LnZhcGkK KysrKyB2YXBpL211dHRlci1jbHV0dGVyLTcudmFwaQorQEAgLTEsNiArMSw2IEBACistLyogbXV0 dGVyLWNsdXR0ZXItNC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAq LworKy8qIG11dHRlci1jbHV0dGVyLTcudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90 IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIsIGdpcl9uYW1lc3Bh Y2UgPSAiQ2x1dHRlciIsIGdpcl92ZXJzaW9uID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAi Y2x1dHRlcl8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiQ2x1dHRlciIsIGdpcl9uYW1lc3BhY2Ug PSAiQ2x1dHRlciIsIGdpcl92ZXJzaW9uID0gIjciLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY2x1 dHRlcl8iKV0KKyBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCW5hbWVzcGFjZSBLZXkgeworIAkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY25hbWUgPSAiQ0xV VFRFUl9LRVlfMCIpXQorQEAgLTQ1NzYsMjAgKzQ1NzYsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHN0YXRpYyB1aW50IGFk ZF9yZXBhaW50X2Z1bmNfZnVsbCAoQ2x1dHRlci5SZXBhaW50RmxhZ3MgZmxhZ3MsIG93bmVkIEdM aWIuU291cmNlRnVuYyBmdW5jKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCBlbnRlciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBpbml0ICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGxlYXZlICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX3JlcGFpbnRf ZnVuYyAodWludCBoYW5kbGVfaWQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIildCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X2xvY2tfZnVuY3Rpb25zIChHTGliLkNhbGxiYWNrIGVudGVyX2Zu LCBHTGliLkNhbGxiYWNrIGxlYXZlX2ZuKTsKKyAJfQorIAluYW1lc3BhY2UgVmFsdWUgeworIAkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitAQCAtNDYz Niw3ICs0NjI0LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHN0YXRpYyB2b2lk IHRha2VfcGFpbnRfbm9kZSAoR0xpYi5WYWx1ZSB2YWx1ZSwgQ2x1dHRlci5QYWludE5vZGU/IG5v ZGUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQWN0aW9uIDogQ2x1dHRl ci5BY3Rvck1ldGEgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorIAkJcHJvdGVjdGVkIEFjdGlvbiAoKTsKK0BAIC00NjY0LDMzICs0NjUxLDIzIEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dm9pZCBhZGRfdHJhbnNpdGlvbiAoc3RyaW5nIG5hbWUsIENsdXR0ZXIuVHJhbnNpdGlvbiB0cmFu c2l0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIuQWN0b3JCb3ggYm94LCBDbHV0dGVyLkFsbG9jYXRpb25G bGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkFj dG9yQm94IGJveCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBhbGxvY2F0ZV9hbGlnbl9maWxsIChDbHV0dGVyLkFjdG9yQm94IGJveCwgZG91YmxlIHhfYWxp Z24sIGRvdWJsZSB5X2FsaWduLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwsIENsdXR0ZXIuQWxs b2NhdGlvbkZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2b2lkIGFsbG9jYXRlX2FsaWduX2ZpbGwg KENsdXR0ZXIuQWN0b3JCb3ggYm94LCBkb3VibGUgeF9hbGlnbiwgZG91YmxlIHlfYWxpZ24sIGJv b2wgeF9maWxsLCBib29sIHlfZmlsbCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9hdmFpbGFibGVfc2l6ZSAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgYXZhaWxhYmxlX3dpZHRoLCBmbG9hdCBhdmFpbGFibGVfaGVpZ2h0LCBDbHV0dGVyLkFs bG9jYXRpb25GbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9hdmFpbGFibGVf c2l6ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgYXZhaWxhYmxlX3dpZHRoLCBmbG9hdCBhdmFp bGFibGVfaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2 b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9zaXplIChDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFn cyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRp b24gYW5pbWF0ZSAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgLi4uKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhf YWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX2FscGhhdiAoQ2x1 dHRlci5BbHBoYSBhbHBoYSwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0 aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29k ZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3Mg PSAxLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfdGltZWxpbmUgKHVsb25n IG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIC4uLik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX3RpbWVs aW5ldiAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgW0NDb2RlIChhcnJh eV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSld IHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJv cGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBh bmltYXRldiAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgW0NDb2RlIChhcnJheV9sZW5ndGhf Y25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0cmluZ1td IHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIs IGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKysJCXB1Ymxp YyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9zaXplIChmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBseV9y ZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBDbHV0 dGVyLlZlcnRleCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBhcHBseV9yZWxhdGl2ZV90cmFuc2Zv cm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBHcmFwaGVuZS5Qb2ludDNEIHBv aW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbTm9XcmFwcGVy XQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV90cmFuc2Zvcm0gKHJlZiBDbHV0dGVyLk1h dHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIENs dXR0ZXIuVmVydGV4IGFwcGx5X3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5WZXJ0ZXggcG9p bnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlfdHJhbnNmb3JtX3RvX3BvaW50IChHcmFwaGVuZS5Q b2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGljIHZvaWQgYmluZF9tb2RlbCAoR0xp Yi5MaXN0TW9kZWw/IG1vZGVsLCBvd25lZCBDbHV0dGVyLkFjdG9yQ3JlYXRlQ2hpbGRGdW5jIGNy ZWF0ZV9jaGlsZF9mdW5jKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCBmbG9h dCBjYWxjdWxhdGVfcmVzb3VyY2Vfc2NhbGUgKGludCBwaGFzZSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBjbGVhcl9hY3Rpb25zICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ3MDAsMjAgKzQ2NzcsMTkgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgY29u dGFpbnMgKENsdXR0ZXIuQWN0b3IgZGVzY2VuZGFudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAoKTsKKysJCXB1YmxpYyB2b2lk IGNvbnRpbnVlX3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKysJ CXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250 ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5Db250 ZXh0IGNyZWF0ZV9wYW5nb19jb250ZXh0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAkJcHVibGljIFBhbmdvLkxheW91dCBjcmVhdGVfcGFuZ29fbGF5b3V0IChzdHJpbmc/IHRl eHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGRlc3Ry b3lfYWxsX2NoaWxkcmVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGRl dGFjaF9hbmltYXRpb24gKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfYWN0b3JfZXZl bnQiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBib29sIGVtaXRf ZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQsIGJvb2wgY2FwdHVyZSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWJzX2FsbG9jYXRpb25fdmVydGlj ZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0 XSk7CisrCQlwdWJsaWMgdm9pZCBnZXRfYWJzX2FsbG9jYXRpb25fdmVydGljZXMgKFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBHcmFwaGVuZS5Qb2ludDNEIHZlcnRzWzRdKTsKKyAJCXB1 YmxpYyB2aXJ0dWFsIHVub3duZWQgQXRrLk9iamVjdCBnZXRfYWNjZXNzaWJsZSAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0aW9u IGdldF9hY3Rpb24gKHN0cmluZyBuYW1lKTsKK0BAIC00NzIxLDIxICs0Njk3LDggQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuQWN0aW9uPiBn ZXRfYWN0aW9ucyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBD bHV0dGVyLkFjdG9yQm94IGdldF9hbGxvY2F0aW9uX2JveCAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44Iild CistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSBnZXRfYWxsb2NhdGlvbl9nZW9tZXRyeSAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGxvY2F0 aW9uX3ZlcnRpY2VzIChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldIENsdXR0ZXIuVmVydGV4IHZlcnRzWzRdKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42Iild CistCQlwdWJsaWMgdm9pZCBnZXRfYW5jaG9yX3BvaW50IChvdXQgZmxvYXQgYW5jaG9yX3gsIG91 dCBmbG9hdCBhbmNob3JfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIu R3Jhdml0eSBnZXRfYW5jaG9yX3BvaW50X2dyYXZpdHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gZ2V0X2FuaW1hdGlvbiAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRf YmFja2dyb3VuZF9jb2xvciAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9nZXRfYWN0 b3JfYnlfZ2lkIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQg Q2x1dHRlci5BY3RvciBnZXRfYnlfZ2lkICh1aW50MzIgaWRfKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9jaGlsZF9h dF9pbmRleCAoaW50IGluZGV4Xyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAg LTQ3NjIsOCArNDcyNSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGdl dF9jb250ZW50X3NjYWxpbmdfZmlsdGVycyAob3V0IENsdXR0ZXIuU2NhbGluZ0ZpbHRlciBtaW5f ZmlsdGVyLCBvdXQgQ2x1dHRlci5TY2FsaW5nRmlsdGVyIG1hZ19maWx0ZXIpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUGFpbnRWb2x1 bWUgZ2V0X2RlZmF1bHRfcGFpbnRfdm9sdW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRf ZGVwdGggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVpbnQg Z2V0X2Vhc2luZ19kZWxheSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAt NDc3NiwxMiArNDczNywxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgR0xpYi5M aXN0PHdlYWsgQ2x1dHRlci5FZmZlY3Q+IGdldF9lZmZlY3RzICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2ZpcnN0 X2NoaWxkICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2ZpeGVkX3Bvc2l0aW9uIChvdXQgZmxvYXQg eCwgb3V0IGZsb2F0IHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGlj IGJvb2wgZ2V0X2ZpeGVkX3Bvc2l0aW9uX3NldCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yRmxhZ3MgZ2V0X2ZsYWdzICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIHVpbnQzMiBnZXRfZ2lkICgpOworIAkJW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX2FjdG9yX2hhc19wb2ludGVyIildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisgCQlwdWJsaWMgYm9vbCBnZXRfaGFzX3BvaW50ZXIgKCk7CitAQCAtNDgzOSwxNyAr NDc5OSwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBnZXRfcmVhY3Rp dmUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5S ZXF1ZXN0TW9kZSBnZXRfcmVxdWVzdF9tb2RlICgpOworLQkJcHVibGljIGJvb2wgZ2V0X3Jlc291 cmNlX3NjYWxlIChvdXQgZmxvYXQgcmVzb3VyY2Vfc2NhbGUpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0K Ky0JCXB1YmxpYyBkb3VibGUgZ2V0X3JvdGF0aW9uIChDbHV0dGVyLlJvdGF0ZUF4aXMgYXhpcywg b3V0IGZsb2F0IHgsIG91dCBmbG9hdCB5LCBvdXQgZmxvYXQgeik7CisrCQlwdWJsaWMgZmxvYXQg Z2V0X3Jlc291cmNlX3NjYWxlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJ CXB1YmxpYyBkb3VibGUgZ2V0X3JvdGF0aW9uX2FuZ2xlIChDbHV0dGVyLlJvdGF0ZUF4aXMgYXhp cyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdm9pZCBnZXRfc2Nh bGUgKG91dCBkb3VibGUgc2NhbGVfeCwgb3V0IGRvdWJsZSBzY2FsZV95KTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc2NhbGVfY2VudGVyIChvdXQgZmxvYXQgY2VudGVy X3gsIG91dCBmbG9hdCBjZW50ZXJfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENs dXR0ZXIuR3Jhdml0eSBnZXRfc2NhbGVfZ3Jhdml0eSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisgCQlwdWJsaWMgZG91YmxlIGdldF9zY2FsZV96ICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuMiIpXQorQEAgLTQ4NjAsOCArNDgxNCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gZ2V0X3RleHRfZGlyZWN0aW9uICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLk1hdHJp eCBnZXRfdHJhbnNmb3JtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVy Lk1hdHJpeCBnZXRfdHJhbnNmb3JtYXRpb25fbWF0cml4ICgpOworKwkJcHVibGljIHZvaWQgZ2V0 X3RyYW5zZm9ybWVkX2V4dGVudHMgKG91dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBh aW50Vm9sdW1lIGdldF90cmFuc2Zvcm1lZF9wYWludF92b2x1bWUgKENsdXR0ZXIuQWN0b3IgcmVs YXRpdmVfdG9fYW5jZXN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTQ4 ODUsMTAgKzQ4MzgsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBnZXRf eV9leHBhbmQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGZs b2F0IGdldF96X3Bvc2l0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLkdyYXZpdHkgZ2V0X3pfcm90YXRpb25fZ3Jhdml0eSAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGdyYWJfa2V5X2ZvY3VzICgpOworKwkJcHVibGlj IHZpcnR1YWwgYm9vbCBoYXNfYWNjZXNzaWJsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgYm9vbCBoYXNfYWN0aW9ucyAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KK0BAIC00OTAwLDE4ICs0ODUyLDIwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyBib29sIGhhc19lZmZlY3RzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIGJvb2wgaGFzX2tleV9mb2N1cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE2IildCisgCQlwdWJsaWMgYm9vbCBoYXNfbWFwcGVkX2Nsb25lcyAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaGFzX292ZXJs YXBzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmly dHVhbCB2b2lkIGhpZGVfYWxsICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdF9jdWxsaW5nICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGluc2VydF9j aGlsZF9hYm92ZSAoQ2x1dHRlci5BY3RvciBjaGlsZCwgQ2x1dHRlci5BY3Rvcj8gc2libGluZyk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgaW5zZXJ0X2No aWxkX2F0X2luZGV4IChDbHV0dGVyLkFjdG9yIGNoaWxkLCBpbnQgaW5kZXhfKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBpbnNlcnRfY2hpbGRfYmVsb3cg KENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcpOworKwkJcHVibGlj IHZvaWQgaW52YWxpZGF0ZV90cmFuc2Zvcm0gKCk7CisrCQlwdWJsaWMgYm9vbCBpc19lZmZlY3Rp dmVseV9vbl9zdGFnZV92aWV3IChDbHV0dGVyLlN0YWdlVmlldyB2aWV3KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGlzX2luX2Nsb25lX3BhaW50ICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KK0BAIC00OTI0LDMzICs0ODc4LDIwIEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGlzX3NjYWxlZCAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJsaWMgYm9vbCBpc192aXNpYmxlICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIGxvd2VyIChDbHV0dGVyLkFjdG9yPyBhYm92ZSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIHZvaWQgbG93ZXJfYm90dG9tICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor IAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIHZvaWQgbW92ZV9hbmNob3JfcG9pbnQgKGZsb2F0IGFuY2hvcl94LCBmbG9hdCBhbmNob3Jf eSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgbW92ZV9hbmNob3JfcG9pbnRf ZnJvbV9ncmF2aXR5IChDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC4yIildCisgCQlwdWJsaWMgdm9pZCBtb3ZlX2J5IChmbG9hdCBkeCwgZmxvYXQgZHkp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBib29sIG5lZWRzX2V4 cGFuZCAoQ2x1dHRlci5PcmllbnRhdGlvbiBvcmllbnRhdGlvbik7CisgCQlbTm9XcmFwcGVyXQor IAkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludF9ub2RlIChDbHV0dGVyLlBhaW50Tm9kZSByb290 KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwb3BfaW50ZXJuYWwgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcHVzaF9pbnRlcm5hbCAoKTsKKysJCXB1 YmxpYyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLlN0YWdlVmlldz4gcGVla19zdGFnZV92aWV3 cyAoKTsKKysJCXB1YmxpYyB2b2lkIHBpY2tfYm94IChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tf Y29udGV4dCwgQ2x1dHRlci5BY3RvckJveCBib3gpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5GcmFtZUNsb2NrIHBpY2tfZnJhbWVfY2xvY2sgKCk7CisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9y ZWRyYXcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQg cXVldWVfcmVkcmF3X3dpdGhfY2xpcCAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgdm9pZCByYWlzZSAoQ2x1dHRlci5BY3Rvcj8gYmVsb3cpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB2b2lkIHJhaXNlX3RvcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyB2b2lkIHJlbW92ZV9hY3Rpb24gKENsdXR0ZXIuQWN0aW9uIGFjdGlvbik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDk3Miw4ICs0OTEzLDYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2VmZmVjdF9ieV9uYW1lIChzdHJpbmcgbmFt ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3Zl X3RyYW5zaXRpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMg dm9pZCByZXBhcmVudCAoQ2x1dHRlci5BY3RvciBuZXdfcGFyZW50KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByZXBsYWNlX2NoaWxkIChDbHV0dGVyLkFj dG9yIG9sZF9jaGlsZCwgQ2x1dHRlci5BY3RvciBuZXdfY2hpbGQpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KK0BAIC00OTgxLDExICs0OTIwLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNhdmVfZWFz aW5nX3N0YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9hbGxvY2F0aW9uIChDbHV0dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRlci5BbGxvY2F0 aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9h bmNob3JfcG9pbnQgKGZsb2F0IGFuY2hvcl94LCBmbG9hdCBhbmNob3JfeSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FuY2hvcl9wb2ludF9mcm9tX2dyYXZpdHkgKENs dXR0ZXIuR3Jhdml0eSBncmF2aXR5KTsKKysJCXB1YmxpYyB2b2lkIHNldF9hbGxvY2F0aW9uIChD bHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2JhY2tncm91bmRfY29sb3IgKENsdXR0ZXIuQ29sb3I/IGNvbG9yKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTAwOCw4ICs0OTQzLDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfcmVwZWF0IChDbHV0 dGVyLkNvbnRlbnRSZXBlYXQgcmVwZWF0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgdm9pZCBzZXRfY29udGVudF9zY2FsaW5nX2ZpbHRlcnMgKENsdXR0ZXIuU2Nh bGluZ0ZpbHRlciBtaW5fZmlsdGVyLCBDbHV0dGVyLlNjYWxpbmdGaWx0ZXIgbWFnX2ZpbHRlcik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoIChmbG9hdCBkZXB0aCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19kZWxheSAodWlu dCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTUwMzksOCArNDk3 Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9vZmZzY3JlZW5f cmVkaXJlY3QgKENsdXR0ZXIuT2Zmc2NyZWVuUmVkaXJlY3QgcmVkaXJlY3QpOworIAkJcHVibGlj IHZvaWQgc2V0X29wYWNpdHkgKHVpbnQ4IG9wYWNpdHkpOworIAkJcHVibGljIHZvaWQgc2V0X29w YWNpdHlfb3ZlcnJpZGUgKGludCBvcGFjaXR5KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfcGFy ZW50IChDbHV0dGVyLkFjdG9yIHBhcmVudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorIAkJcHVibGljIHZvaWQgc2V0X3Bpdm90X3BvaW50IChmbG9hdCBwaXZvdF94LCBmbG9hdCBw aXZvdF95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtNTA1MCwxNiArNDk4 MSwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfcmVhY3RpdmUg KGJvb2wgcmVhY3RpdmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGlj IHZvaWQgc2V0X3JlcXVlc3RfbW9kZSAoQ2x1dHRlci5SZXF1ZXN0TW9kZSBtb2RlKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfcm90YXRpb24gKENsdXR0ZXIuUm90YXRl QXhpcyBheGlzLCBkb3VibGUgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9yb3RhdGlvbl9h bmdsZSAoQ2x1dHRlci5Sb3RhdGVBeGlzIGF4aXMsIGRvdWJsZSBhbmdsZSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGUgKGRvdWJsZSBzY2Fs ZV94LCBkb3VibGUgc2NhbGVfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X3NjYWxlX2Z1bGwgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSwgZmxvYXQgY2Vu dGVyX3gsIGZsb2F0IGNlbnRlcl95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfc2NhbGVfd2l0aF9ncmF2aXR5IChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3ks IENsdXR0ZXIuR3Jhdml0eSBncmF2aXR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfeiAoZG91YmxlIHNjYWxlX3opOworIAkJcHVibGlj IHZvaWQgc2V0X3NpemUgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworQEAgLTUwODUsMTcg KzUwMTAsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3lfZXhw YW5kIChib29sIGV4cGFuZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIHZvaWQgc2V0X3pfcG9zaXRpb24gKGZsb2F0IHpfcG9zaXRpb24pOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF96X3JvdGF0aW9uX2Zyb21fZ3Jhdml0eSAoZG91Ymxl IGFuZ2xlLCBDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlwdWJsaWMgYm9vbCBzaG91bGRf cGlja19wYWludCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgdmlydHVhbCB2b2lk IHNob3dfYWxsICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGJv b2wgdHJhbnNmb3JtX3N0YWdlX3BvaW50IChmbG9hdCB4LCBmbG9hdCB5LCBvdXQgZmxvYXQgeF9v dXQsIG91dCBmbG9hdCB5X291dCk7CisrCQlwdWJsaWMgdm9pZCB1bmluaGliaXRfY3VsbGluZyAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg dW5tYXAgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZvaWQgdW5wYXJlbnQgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCB1bnNldF9mbGFn cyAoQ2x1dHRlci5BY3RvckZsYWdzIGZsYWdzKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAg LTUxMDMsMTYgKzUwMjMsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRl ci5BY3Rpb24gYWN0aW9ucyB7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBhbGxvY2F0 aW9uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IGFuY2hvcl9ncmF2aXR5IHsgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBh bmNob3JfeCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MC44IildCistCQlwdWJsaWMgZmxvYXQgYW5jaG9yX3kgeyBnZXQ7IHNldDsgfQorKwkJcHVibGlj IENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbiB7IG93bmVkIGdldDsgfQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJhY2tncm91bmRfY29s b3IgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTEyMiwxMSArNTAz Myw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CisgCQlwdWJsaWMgYm9vbCBjaGlsZF90cmFuc2Zvcm1fc2V0IHsgZ2V0OyB9CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSBjbGlwIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgY2xpcF9yZWN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0K KysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0OyB9Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjbGlwX3RvX2FsbG9j YXRpb24geyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTE0MCw4ICs1 MDQ4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuQ29udGVudEdy YXZpdHkgY29udGVudF9ncmF2aXR5IHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db250ZW50UmVwZWF0IGNvbnRlbnRfcmVwZWF0 IHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZmxvYXQgZGVwdGgg eyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisgCQlwdWJsaWMgQ2x1dHRlci5FZmZlY3QgZWZmZWN0IHsgc2V0OyB9CitAQCAt NTIxMSwxMiArNTExNywxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludCBv cGFjaXR5IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IHBpdm90X3BvaW50IHsg b3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwaXZvdF9wb2ludCB7 IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIGZsb2F0IHBpdm90X3BvaW50X3ogeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRo b2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUG9p bnQgcG9zaXRpb24geyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50 IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKyAJCXB1YmxpYyBib29sIHJlYWN0aXZlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29y TWV0aG9kXQorQEAgLTUyMjUsOCArNTEzMSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlJlcXVlc3RNb2RlIHJl cXVlc3RfbW9kZSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBmbG9hdCByZXNvdXJjZV9zY2FsZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgZG91YmxlIHJvdGF0aW9uX2Fu Z2xlX3ggeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTIzNiwyNyAr NTE0MCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKyAJCXB1YmxpYyBkb3VibGUgcm90YXRpb25fYW5nbGVfeiB7IGdldDsgc2V0OyB9CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5W ZXJ0ZXggcm90YXRpb25fY2VudGVyX3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IHJvdGF0aW9u X2NlbnRlcl95IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJfeiB7IGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgQ2x1dHRlci5HcmF2aXR5IHJvdGF0aW9uX2NlbnRlcl96X2dyYXZpdHkgeyBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IGZsb2F0IHNjYWxlX2NlbnRlcl94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBzY2FsZV9jZW50ZXJfeSB7IGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgQ2x1dHRlci5HcmF2aXR5IHNjYWxlX2dyYXZpdHkgeyBnZXQ7IHNldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMg ZG91YmxlIHNjYWxlX3ggeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAt NTI2OSw3ICs1MTUyLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgc2hv d19vbl9zZXRfcGFyZW50IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUgc2l6ZSB7 IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzaXplIHsgb3duZWQg Z2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0 dGVyLlRleHREaXJlY3Rpb24gdGV4dF9kaXJlY3Rpb24geyBnZXQ7IHNldDsgfQorIAkJW05vQWNj ZXNzb3JNZXRob2RdCitAQCAtNTI5OSw4ICs1MTgyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGJvb2wgeV9leHBhbmQgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCB6X3Bvc2l0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhbGxvY2F0 aW9uX2NoYW5nZWQgKENsdXR0ZXIuQWN0b3JCb3ggYm94LCBDbHV0dGVyLkFsbG9jYXRpb25GbGFn cyBmbGFncyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgYm9vbCBidXR0b25fcHJlc3NfZXZlbnQgKENsdXR0ZXIuQnV0dG9uRXZlbnQgZXZl bnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorQEAgLTUzMzEsMjIgKzUyMTIsMjUg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgbW90 aW9uX2V2ZW50IChDbHV0dGVyLk1vdGlvbkV2ZW50IGV2ZW50KTsKKyAJCVtIYXNFbWl0dGVyXQor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhaW50ICgp OworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250 ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFyZW50X3NldCAoQ2x1dHRlci5BY3Rvcj8gb2xkX3Bh cmVudCk7CisrCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0ZXIuQ29sb3IgY29sb3IpOwor KwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGljayAoQ2x1dHRlci5QaWNrQ29udGV4dCBw aWNrX2NvbnRleHQpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBxdWV1ZV9yZWxheW91dCAoKTsKKyAJ CVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIHJlYWxpemUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCByZXNvdXJj ZV9zY2FsZV9jaGFuZ2VkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgc2Nyb2xsX2V2ZW50IChDbHV0dGVyLlNjcm9sbEV2ZW50 IGV2ZW50KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQor IAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc2hvdyAoKTsKKysJCXB1YmxpYyBzaWduYWwg dm9pZCBzdGFnZV92aWV3c19jaGFuZ2VkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHRvdWNoX2V2ZW50IChDbHV0dGVyLkV2 ZW50IGV2ZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtNTM1OCwyMSAr NTI0MiwzMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCB1bnJlYWxpemUgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX21ldGFfZ2V0X3R5cGUg KCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xh c3MgQWN0b3JNZXRhIDogR0xpYi5Jbml0aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBBY3Rvck1ldGEgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9hY3RvciAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyBib29sIGdldF9lbmFibGVkICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2FjdG9yIChDbHV0dGVyLkFjdG9yPyBhY3Rvcik7CistCQlw dWJsaWMgdm9pZCBzZXRfZW5hYmxlZCAoYm9vbCBpc19lbmFibGVkKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2VuYWJsZWQgKGJvb2wg aXNfZW5hYmxlZCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9p ZCBzZXRfbmFtZSAoc3RyaW5nIG5hbWUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor IAkJcHVibGljIENsdXR0ZXIuQWN0b3IgYWN0b3IgeyBnZXQ7IH0KKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGVuYWJsZWQgeyBnZXQ7IHNldDsgfQorKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHN0cmluZyBuYW1lIHsgZ2V0OyBzZXQ7 IH0KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0b3Jfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMg Y2xhc3MgQWN0b3JOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJ CXB1YmxpYyBBY3Rvck5vZGUgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9hbGlnbl9jb25zdHJhaW50X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKyAJcHVibGljIGNsYXNzIEFsaWduQ29uc3RyYWludCA6IENsdXR0ZXIuQ29uc3RyYWlu dCB7CitAQCAtNTM4MCw4MSArNTI3NiwxOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgQWxpZ25Db25zdHJhaW50IChDbHV0dGVyLkFjdG9yPyBzb3VyY2UsIENsdXR0ZXIuQWxpZ25B eGlzIGF4aXMsIGZsb2F0IGZhY3Rvcik7CisgCQlwdWJsaWMgQ2x1dHRlci5BbGlnbkF4aXMgZ2V0 X2FsaWduX2F4aXMgKCk7CisgCQlwdWJsaWMgZmxvYXQgZ2V0X2ZhY3RvciAoKTsKKysJCXB1Ymxp YyB2b2lkIGdldF9waXZvdF9wb2ludCAob3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQgcGl2b3Rf cG9pbnQpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfc291cmNlICgpOwor IAkJcHVibGljIHZvaWQgc2V0X2FsaWduX2F4aXMgKENsdXR0ZXIuQWxpZ25BeGlzIGF4aXMpOwor IAkJcHVibGljIHZvaWQgc2V0X2ZhY3RvciAoZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyB2b2lk IHNldF9waXZvdF9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQpOworIAkJcHVibGlj IHZvaWQgc2V0X3NvdXJjZSAoQ2x1dHRlci5BY3Rvcj8gc291cmNlKTsKKyAJCXB1YmxpYyBDbHV0 dGVyLkFsaWduQXhpcyBhbGlnbl9heGlzIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCQlwdWJs aWMgZmxvYXQgZmFjdG9yIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsg c2V0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBzb3VyY2UgeyBnZXQ7IHNldCBjb25zdHJ1 Y3Q7IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWxwaGFfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIw LjIiKV0KKy0JcHVibGljIGNsYXNzIEFscGhhIDogR0xpYi5Jbml0aWFsbHlVbm93bmVkLCBDbHV0 dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHVibGljIEFscGhhICgpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIEFs cGhhLmZ1bGwgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIHVsb25nIG1vZGUpOworLQkJcHVi bGljIGRvdWJsZSBnZXRfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRp bWVsaW5lIGdldF90aW1lbGluZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdWxvbmcgcmVnaXN0ZXJfY2xvc3VyZSAoR0xpYi5DbG9zdXJlIGNsb3N1 cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bG9u ZyByZWdpc3Rlcl9mdW5jIChDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jbG9zdXJlIChHTGliLkNsb3N1cmUg Y2xvc3VyZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZnVuYyAob3duZWQgQ2x1dHRlci5BbHBoYUZ1 bmMgZnVuYyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfbW9kZSAodWxvbmcgbW9kZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfdGltZWxpbmUgKENsdXR0 ZXIuVGltZWxpbmUgdGltZWxpbmUpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIEFscGhh LndpdGhfZnVuYyAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgb3duZWQgQ2x1dHRlci5BbHBo YUZ1bmMgZnVuYyk7CistCQlwdWJsaWMgZG91YmxlIGFscGhhIHsgZ2V0OyB9CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdWxvbmcgbW9kZSB7IGdldDsgc2V0IGNvbnN0 cnVjdDsgfQorLQkJcHVibGljIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUgeyBnZXQ7IHNldDsg fQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JcHVibGljIGNsYXNzIEFuaW1hdGlvbiA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNj cmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor LQkJcHVibGljIEFuaW1hdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0 aW9uIGJpbmQgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGJpbmRfaW50ZXJ2YWwgKHN0cmluZyBwcm9w ZXJ0eV9uYW1lLCBvd25lZCBDbHV0dGVyLkludGVydmFsIGludGVydmFsKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFscGhhIGdldF9hbHBoYSAoKTsKKy0J CXB1YmxpYyB1aW50IGdldF9kdXJhdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu SW50ZXJ2YWwgZ2V0X2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlwdWJsaWMg Ym9vbCBnZXRfbG9vcCAoKTsKKy0JCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3QgKCk7CistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsKKy0JCXB1YmxpYyBib29sIGhhc19wcm9w ZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CistCQlwdWJsaWMgdm9pZCBz ZXRfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJcHVibGljIHZvaWQgc2V0X2xvb3AgKGJvb2wg bG9vcCk7CistCQlwdWJsaWMgdm9pZCBzZXRfbW9kZSAodWxvbmcgbW9kZSk7CistCQlwdWJsaWMg dm9pZCBzZXRfb2JqZWN0IChHTGliLk9iamVjdCBvYmplY3QpOworLQkJcHVibGljIHZvaWQgc2V0 X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lPyB0aW1lbGluZSk7CistCQlwdWJsaWMgdm9pZCB1 bmJpbmRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQW5pbWF0aW9uIHVwZGF0ZSAoc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFs dWUgZmluYWwpOworLQkJcHVibGljIHZvaWQgdXBkYXRlX2ludGVydmFsIChzdHJpbmcgcHJvcGVy dHlfbmFtZSwgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVp bnQgZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJcHVibGljIGJvb2wgbG9vcCB7IGdldDsgc2V0 OyB9CistCQlwdWJsaWMgdWxvbmcgbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgR0xpYi5P YmplY3Qgb2JqZWN0IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIHRp bWVsaW5lIHsgZ2V0OyBzZXQ7IH0KKy0JCVtIYXNFbWl0dGVyXQorLQkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgY29tcGxldGVkICgpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQg c3RhcnRlZCAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCVtWZXJzaW9u IChzaW5jZSA9ICIwLjIiKV0KK0BAIC01NDY3LDM3ICs1MzAwLDE0IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmFja2VuZF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBjbGFzcyBCYWNrZW5kIDogR0xpYi5PYmplY3Qg eworKwlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmFja2VuZCA6IEdMaWIuT2JqZWN0IHsKKyAJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBCYWNr ZW5kICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRkX29wdGlv bnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXApOworLQkJcHVibGljIHZvaWQgYmVsbF9ub3RpZnkg KCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBjcmVhdGVfY29udGV4 dCAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VXaW5kb3cgY3JlYXRlX3N0YWdlIChDbHV0dGVyLlN0YWdl IHdyYXBwZXIpIHRocm93cyBHTGliLkVycm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRleHQgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2Vy IGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCBDbHV0dGVyLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CisrCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLlNlYXQgZ2V0X2RlZmF1bHRfc2VhdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjgiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENhaXJvLkZvbnRPcHRpb25zIGdldF9mb250X29w dGlvbnMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLklucHV0TWV0aG9kIGdldF9pbnB1 dF9tZXRob2QgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFw ICgpOworIAkJcHVibGljIGRvdWJsZSBnZXRfcmVzb2x1dGlvbiAoKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZXZlbnRzICgpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9mZWF0dXJlcyAoKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCBib29sIHBvc3RfcGFyc2UgKCkgdGhyb3dzIEdMaWIuRXJyb3I7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFyc2UgKCkgdGhy b3dzIEdMaWIuRXJyb3I7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBy ZWRyYXcgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIp XQorIAkJcHVibGljIHZvaWQgc2V0X2ZvbnRfb3B0aW9ucyAoQ2Fpcm8uRm9udE9wdGlvbnMgb3B0 aW9ucyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfbWV0aG9kIChDbHV0dGVyLklucHV0TWV0 aG9kIG1ldGhvZCk7CitAQCAtNTUwOCw5NSArNTMxOCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2V0 dGluZ3NfY2hhbmdlZCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX2dldF90eXBlICgp IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIEJlaGF2aW91ciA6 IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJlaGF2aW91ciAoKTsKKy0JCXB1 YmxpYyB2b2lkIGFjdG9yc19mb3JlYWNoIChDbHV0dGVyLkJlaGF2aW91ckZvcmVhY2hGdW5jIGZ1 bmMpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxwaGFfbm90aWZ5 IChkb3VibGUgYWxwaGFfdmFsdWUpOworLQkJcHVibGljIHZvaWQgYXBwbHkgKENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLkFjdG9yPiBnZXRf YWN0b3JzICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7 CistCQlwdWJsaWMgaW50IGdldF9uX2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3IgZ2V0X250aF9hY3RvciAoaW50IGluZGV4Xyk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgYm9vbCBpc19hcHBsaWVkIChDbHV0dGVyLkFjdG9yIGFjdG9y KTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfYWxsICgpOworLQkJ cHVibGljIHZvaWQgc2V0X2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhhKTsKKy0JCXB1YmxpYyBD bHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIw LjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFwcGxpZWQgKENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIHZvaWQgcmVtb3ZlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2JlaGF2aW91cl9kZXB0aF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCist CXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJEZXB0aCA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVy LlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Us IHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQi KV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJEZXB0aCAoQ2x1dHRlci5BbHBoYT8gYWxwaGEsIGludCBk ZXB0aF9zdGFydCwgaW50IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42Iild CistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgaW50IGRlcHRoX3N0YXJ0LCBvdXQgaW50 IGRlcHRoX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9p ZCBzZXRfYm91bmRzIChpbnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgaW50 IGRlcHRoX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBpbnQgZGVwdGhfc3RhcnQgeyBnZXQ7IHNl dDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfb3BhY2l0eV9nZXRfdHlwZSAoKSIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwg c2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJPcGFjaXR5IDogQ2x1dHRl ci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQorLQkJcHVi bGljIEJlaGF2aW91ck9wYWNpdHkgKENsdXR0ZXIuQWxwaGE/IGFscGhhLCB1aW50OCBvcGFjaXR5 X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42Iild CistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgdWludDggb3BhY2l0eV9zdGFydCwgb3V0 IHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9ib3VuZHMgKHVpbnQ4IG9wYWNpdHlfc3RhcnQsIHVpbnQ4IG9wYWNpdHlf ZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgb3BhY2l0eV9lbmQg eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBvcGFj aXR5X3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX3NjYWxl X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEJlaGF2aW91 clNjYWxlIDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZp b3VyKiIpXQorLQkJcHVibGljIEJlaGF2aW91clNjYWxlIChDbHV0dGVyLkFscGhhPyBhbHBoYSwg ZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBkb3VibGUgeF9zY2Fs ZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40Iild CistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChvdXQgZG91YmxlIHhfc2NhbGVfc3RhcnQsIG91 dCBkb3VibGUgeV9zY2FsZV9zdGFydCwgb3V0IGRvdWJsZSB4X3NjYWxlX2VuZCwgb3V0IGRvdWJs ZSB5X3NjYWxlX2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg dm9pZCBzZXRfYm91bmRzIChkb3VibGUgeF9zY2FsZV9zdGFydCwgZG91YmxlIHlfc2NhbGVfc3Rh cnQsIGRvdWJsZSB4X3NjYWxlX2VuZCwgZG91YmxlIHlfc2NhbGVfZW5kKTsKKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJs ZSB4X3NjYWxlX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeF9zY2FsZV9zdGFydCB7 IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeV9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgZG91YmxlIHlfc2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9i aW5fbGF5b3V0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJ cHVibGljIGNsYXNzIEJpbkxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0 TWFuYWdlcioiKV0KKyAJCXB1YmxpYyBCaW5MYXlvdXQgKENsdXR0ZXIuQmluQWxpZ25tZW50IHhf YWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQg eV9hbGlnbiA9IENsdXR0ZXIuQmluQWxpZ25tZW50LlNUQVJUKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgdm9pZCBhZGQgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQmluQWxp Z25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3I/IGNo aWxkLCBvdXQgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgb3V0IENsdXR0ZXIuQmluQWxp Z25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9h bGlnbm1lbnQgKENsdXR0ZXIuQWN0b3I/IGNoaWxkLCBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2Fs aWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2Fs aWduIHsgZ2V0OyBzZXQ7IH0KK0BAIC01NjQ0LDk4ICs1MzcwLDI5IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0g IkNsdXR0ZXJFZmZlY3QqIildCisgCQlwdWJsaWMgQmx1ckVmZmVjdCAoKTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfYm94X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0J cHVibGljIGNsYXNzIEJveCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRl ci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJB Y3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQm94IChDbHV0dGVyLkxheW91 dE1hbmFnZXIgbWFuYWdlcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENsdXR0ZXIu Q29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuTGF5b3V0TWFuYWdlciBnZXRfbGF5b3V0X21hbmFnZXIgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFjayAoQ2x1dHRlci5BY3RvciBhY3RvciwgLi4uKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrX2FmdGVyIChDbHV0dGVyLkFj dG9yIGFjdG9yLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5nLCAuLi4pOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyB2b2lkIHBhY2tfYXQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBwb3Np dGlvbiwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrX2JlZm9y ZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3Rvcj8gc2libGluZywgLi4uKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrdiAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVu Z3RoX3BvcyA9IDEuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gc3RyaW5nW10gcHJv cGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJy YXlfbGVuZ3RoX3BvcyA9IDEuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR0xpYi5W YWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Nv bG9yIChDbHV0dGVyLkNvbG9yPyBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2xheW91dF9tYW5hZ2VyIChDbHV0dGVyLkxheW91dE1hbmFnZXIgbWFuYWdlcik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7 IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIGJvb2wgY29sb3Jfc2V0IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkxheW91 dE1hbmFnZXIgbGF5b3V0X21hbmFnZXIgeyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9i b3hfbGF5b3V0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJ cHVibGljIGNsYXNzIEJveExheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0 TWFuYWdlcioiKV0KKyAJCXB1YmxpYyBCb3hMYXlvdXQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIHZvaWQgZ2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENs dXR0ZXIuQm94QWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLkJveEFsaWdubWVudCB5X2Fs aWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdWludCBnZXRfZWFzaW5nX2R1cmF0 aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRfZWFzaW5nX21v ZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2V4cGFuZCAoQ2x1 dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZmlsbCwgb3V0IGJvb2wgeV9m aWxsKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGdldF9o b21vZ2VuZW91cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMg Q2x1dHRlci5PcmllbnRhdGlvbiBnZXRfb3JpZW50YXRpb24gKCk7CisgCQlwdWJsaWMgYm9vbCBn ZXRfcGFja19zdGFydCAoKTsKKyAJCXB1YmxpYyB1aW50IGdldF9zcGFjaW5nICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfYW5pbWF0aW9ucyAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCBnZXRfdmVydGljYWwgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFjayAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCBl eHBhbmQsIGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCwgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeF9h bGlnbiwgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIHZvaWQgc2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRl ci5Cb3hBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeV9hbGlnbik7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19kdXJhdGlvbiAodWlu dCBtc2Vjcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19t b2RlICh1bG9uZyBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRf ZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIGV4cGFuZCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wg eF9maWxsLCBib29sIHlfZmlsbCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgdm9pZCBzZXRfaG9tb2dlbmVvdXMgKGJvb2wgaG9tb2dlbmVvdXMpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9vcmllbnRhdGlvbiAoQ2x1 dHRlci5PcmllbnRhdGlvbiBvcmllbnRhdGlvbik7CisgCQlwdWJsaWMgdm9pZCBzZXRfcGFja19z dGFydCAoYm9vbCBwYWNrX3N0YXJ0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zcGFjaW5nICh1aW50 IHNwYWNpbmcpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfYW5p bWF0aW9ucyAoYm9vbCBhbmltYXRlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9p ZCBzZXRfdmVydGljYWwgKGJvb2wgdmVydGljYWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyB1aW50IGVhc2luZ19kdXJhdGlvbiB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIHVsb25nIGVhc2luZ19tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGhvbW9nZW5lb3VzIHsgZ2V0OyBzZXQ7 IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5Pcmll bnRhdGlvbiBvcmllbnRhdGlvbiB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgYm9vbCBwYWNrX3N0 YXJ0IHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyB1aW50IHNwYWNpbmcgeyBnZXQ7IHNldDsgfQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9hbmltYXRpb25zIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCB2ZXJ0aWNhbCB7IGdldDsg c2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JyaWdodG5lc3NfY29udHJhc3RfZWZmZWN0X2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTc0OSw5ICs1NDA2 LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRyYXN0IChm bG9hdCBjb250cmFzdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29udHJhc3RfZnVsbCAoZmxvYXQg cmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJyaWdodG5lc3MgeyBnZXQ7IHNldDsgfQorKwkJcHVibGlj IENsdXR0ZXIuQ29sb3IgYnJpZ2h0bmVzcyB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbnRyYXN0IHsgZ2V0OyBzZXQ7 IH0KKysJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbnRyYXN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0K KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCitAQCAtNTc3MCwzNyArNTQyNyw2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0 IHk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NhaXJvX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIGNsYXNzIENhaXJvVGV4dHVyZSA6IENsdXR0ZXIuVGV4dHVy ZSwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVy LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIENhaXJvVGV4dHVy ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGUgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGVfcmVnaW9uIChpbnQg eF9vZmZzZXQsIGludCB5X29mZnNldCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBib29sIGdldF9hdXRvX3Jlc2l6ZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIGdldF9zdXJmYWNlX3NpemUgKG91dCB1aW50IHdpZHRoLCBvdXQgdWlu dCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQg aW52YWxpZGF0ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2 b2lkIGludmFsaWRhdGVfcmVjdGFuZ2xlIChDYWlyby5SZWN0YW5nbGVJbnQ/IHJlY3QpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2F1dG9fcmVzaXpl IChib29sIHZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9zdXJmYWNlX3NpemUgKHVpbnQgd2lk dGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyBib29sIGF1dG9fcmVzaXplIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIHVpbnQgc3VyZmFjZV9oZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgdWludCBzdXJmYWNlX3dpZHRoIHsgZ2V0OyBzZXQ7IH0KKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBDYWly by5TdXJmYWNlIGNyZWF0ZV9zdXJmYWNlICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBk cmF3IChDYWlyby5Db250ZXh0IGNyKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2FudmFzX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBDYW52 YXMgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKK0BAIC01ODI3LDE3ICs1NDUzLDIw IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbnRhaW5lciBjb250 YWluZXIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jbGlja19hY3Rpb25f Z2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xh c3MgQ2xpY2tBY3Rpb24gOiBDbHV0dGVyLkFjdGlvbiB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIENsaWNrQWN0aW9uICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVpbnQgZ2V0X2J1dHRvbiAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9jb29yZHMgKG91dCBm bG9hdCBwcmVzc194LCBvdXQgZmxvYXQgcHJlc3NfeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCisgCQlwdWJsaWMgQ2x1dHRlci5Nb2RpZmllclR5cGUgZ2V0X3N0YXRlICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgcmVsZWFzZSAoKTsKKyAJ CVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVi bGljIGJvb2wgaGVsZCB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCitAQCAtNTg0Niw3ICs1NDc1LDkgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBsb25nX3By ZXNzX3RocmVzaG9sZCB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIHByZXNzZWQgeyBnZXQ7IH0K KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIGNsaWNrZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgbG9uZ19wcmVzcyAoQ2x1dHRl ci5BY3RvciBhY3RvciwgQ2x1dHRlci5Mb25nUHJlc3NTdGF0ZSBzdGF0ZSk7CitAQCAtNTg4OCw4 ICs1NTE5LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHJvdGVjdGVkIENvbnN0cmFpbnQg KCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfYWxsb2Nh dGlvbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3RvckJveCBhbGxvY2F0aW9uKTsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVwZGF0ZV9wcmVmZXJyZWRf c2l6ZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5PcmllbnRhdGlvbiBkaXJlY3Rpb24s IGZsb2F0IGZvcl9zaXplLCBmbG9hdCBtaW5pbXVtX3NpemUsIGZsb2F0IG5hdHVyYWxfc2l6ZSk7 CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVwZGF0ZV9wcmVmZXJyZWRfc2l6ZSAoQ2x1dHRlci5B Y3RvciBhY3RvciwgQ2x1dHRlci5PcmllbnRhdGlvbiBkaXJlY3Rpb24sIGZsb2F0IGZvcl9zaXpl LCByZWYgZmxvYXQgbWluaW11bV9zaXplLCByZWYgZmxvYXQgbmF0dXJhbF9zaXplKTsKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCitAQCAtNTg5OCw2ICs1NTI4LDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2U7 CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudEZsYWdzIGZsYWdzOworIAkJcHVibGljIHdlYWsgQ2x1 dHRlci5BY3RvciByZWxhdGVkOworKwkJcHVibGljIHdlYWsgQ2x1dHRlci5FdmVudFNlcXVlbmNl IHNlcXVlbmNlOworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5BY3RvciBzb3VyY2U7CisgCQlwdWJs aWMgd2VhayBDbHV0dGVyLlN0YWdlIHN0YWdlOworIAkJcHVibGljIHVpbnQzMiB0aW1lOworQEAg LTU5MzEsOTggKzU1NjIsMjEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQg c2V0X2ZhY3RvciAoZG91YmxlIGZhY3Rvcik7CisgCQlwdWJsaWMgZG91YmxlIGZhY3RvciB7IGdl dDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RldmljZV9tYW5hZ2VyX2dldF90eXBlICgpIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIERl dmljZU1hbmFnZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgRGV2aWNlTWFuYWdlciAoKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFkZF9kZXZpY2UgKENsdXR0ZXIuSW5wdXRE ZXZpY2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFw cGx5X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBjb21wcmVzc19tb3Rpb24g KENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuRXZlbnQgdG9fZGlzY2FyZCk7CistCQlwdWJs aWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxJbnB1dERldmljZSBjcmVhdGVfdmlydHVhbF9kZXZp Y2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKy0JCXB1YmxpYyB2aXJ0 dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfY29yZV9kZXZpY2UgKENsdXR0ZXIu SW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBD bHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgdmlydHVhbCB1 bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2RldmljZSAoaW50IGRldmljZV9pZCk7Cist CQlwdWJsaWMgdm9pZCBnZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRp bmdzIHNldHRpbmdzKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbERldmljZVR5 cGUgZ2V0X3N1cHBvcnRlZF92aXJ0dWFsX2RldmljZV90eXBlcyAoKTsKKy0JCXB1YmxpYyBHTGli LlNMaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gbGlzdF9kZXZpY2VzICgpOworLQkJcHVi bGljIHVub3duZWQgR0xpYi5TTGlzdDxDbHV0dGVyLklucHV0RGV2aWNlPiBwZWVrX2RldmljZXMg KCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCByZW1vdmVfZGV2aWNl IChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBzZWxlY3Rfc3RhZ2VfZXZlbnRzIChDbHV0dGVyLlN0YWdlIHN0YWdlKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0 dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRl ci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNp Z25hbCB2b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9yZW1vdmVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRl dmljZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfZmxhZ3NfY2hhbmdlZCAodWlu dCBzZXR0aW5nc19mbGFncywgdWludCBjaGFuZ2VkX21hc2spOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIGtiZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdlZCAodWludCBsYXRjaGVkX21hc2ssIHVpbnQg bG9ja2VkX21hc2spOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHRvb2xfY2hhbmdlZCAoQ2x1dHRl ci5JbnB1dERldmljZSBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2VUb29sIHAwKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfZHJhZ19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgRHJhZ0FjdGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJBY3Rpb24qIildCistCQlwdWJsaWMgRHJhZ0FjdGlvbiAoKTsKKy0JCXB1YmxpYyBib29sIGdl dF9kcmFnX2FyZWEgKENsdXR0ZXIuUmVjdCBkcmFnX2FyZWEpOworLQkJcHVibGljIENsdXR0ZXIu RHJhZ0F4aXMgZ2V0X2RyYWdfYXhpcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0 b3IgZ2V0X2RyYWdfaGFuZGxlICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2RyYWdfdGhyZXNob2xk IChvdXQgdWludCB4X3RocmVzaG9sZCwgb3V0IHVpbnQgeV90aHJlc2hvbGQpOworLQkJcHVibGlj IHZvaWQgZ2V0X21vdGlvbl9jb29yZHMgKG91dCBmbG9hdCBtb3Rpb25feCwgb3V0IGZsb2F0IG1v dGlvbl95KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9wcmVzc19jb29yZHMgKG91dCBmbG9hdCBwcmVz c194LCBvdXQgZmxvYXQgcHJlc3NfeSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19hcmVhIChD bHV0dGVyLlJlY3Q/IGRyYWdfYXJlYSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19heGlzIChD bHV0dGVyLkRyYWdBeGlzIGF4aXMpOworLQkJcHVibGljIHZvaWQgc2V0X2RyYWdfaGFuZGxlIChD bHV0dGVyLkFjdG9yPyBoYW5kbGUpOworLQkJcHVibGljIHZvaWQgc2V0X2RyYWdfdGhyZXNob2xk IChpbnQgeF90aHJlc2hvbGQsIGludCB5X3RocmVzaG9sZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0 IGRyYWdfYXJlYSB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgYm9vbCBkcmFnX2FyZWFfc2V0 IHsgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5EcmFnQXhpcyBkcmFnX2F4aXMgeyBnZXQ7IHNl dDsgfQorLQkJcHVibGljIENsdXR0ZXIuQWN0b3IgZHJhZ19oYW5kbGUgeyBnZXQ7IHNldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHhfZHJhZ190aHJlc2hvbGQgeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHlfZHJhZ190 aHJlc2hvbGQgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZHJh Z19iZWdpbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRf eSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJzKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIGRyYWdfZW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBldmVudF94LCBm bG9hdCBldmVudF95LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RpZmllcnMpOworLQkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgZHJhZ19tb3Rpb24gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZs b2F0IGRlbHRhX3gsIGZsb2F0IGRlbHRhX3kpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGRyYWdfcHJvZ3Jlc3MgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIGZsb2F0IGRlbHRhX3gsIGZsb2F0IGRlbHRhX3kpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9kcm9wX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCXB1YmxpYyBjbGFzcyBEcm9wQWN0aW9uIDogQ2x1dHRlci5BY3Rpb24geworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlv bioiKV0KKy0JCXB1YmxpYyBEcm9wQWN0aW9uICgpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFs IGJvb2wgY2FuX2Ryb3AgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0 IGV2ZW50X3kpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZHJvcCAoQ2x1dHRlci5B Y3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGRyb3BfY2FuY2VsIChDbHV0 dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBldmVudF94LCBmbG9hdCBldmVudF95KTsKKy0JCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCB2b2lkIG92ZXJfaW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgb3Zlcl9vdXQgKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRWZmZWN0IDogQ2x1dHRlci5B Y3Rvck1ldGEgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor IAkJcHJvdGVjdGVkIEVmZmVjdCAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCBib29sIGdldF9wYWludF92b2x1bWUgKENsdXR0ZXIuUGFpbnRWb2x1bWUgdm9sdW1lKTsKKysJ CXB1YmxpYyB2aXJ0dWFsIGJvb2wgbW9kaWZ5X3BhaW50X3ZvbHVtZSAoQ2x1dHRlci5QYWludFZv bHVtZSB2b2x1bWUpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFp bnQgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0LCBDbHV0dGVyLkVm ZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgcGljayAoQ2x1dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAoKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRf Y29udGV4dCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFp bnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYWludCAoQ2x1dHRlci5QYWludENv bnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlw dWJsaWMgdm9pZCBxdWV1ZV9yZXBhaW50ICgpOworIAl9CitAQCAtNjAzMyw4ICs1NTg3LDEyIEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2ZW50VHlwZSB0eXBlOwor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIEV2 ZW50IChDbHV0dGVyLkV2ZW50VHlwZSB0eXBlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4 IildCisrCQlwdWJsaWMgc3RhdGljIHVpbnQgYWRkX2ZpbHRlciAoQ2x1dHRlci5TdGFnZT8gc3Rh Z2UsIFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDIuMiwgZGVzdHJveV9ub3RpZnlfcG9z ID0gMi4xKV0gb3duZWQgQ2x1dHRlci5FdmVudEZpbHRlckZ1bmMgZnVuYyk7CisgCQlwdWJsaWMg Q2x1dHRlci5FdmVudCBjb3B5ICgpOworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5FdmVudCBAZ2V0 ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBkb3VibGUgZ2V0 X2FuZ2xlIChDbHV0dGVyLkV2ZW50IHRhcmdldCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCitAQCAtNjA3Myw3ICs1NjMxLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHVpbnQgZ2V0X21vZGVfZ3JvdXAgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfcGFkX2V2ZW50X2Rl dGFpbHMgKG91dCB1aW50IG51bWJlciwgb3V0IHVpbnQgbW9kZSwgb3V0IGRvdWJsZSB2YWx1ZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3Bvc2l0 aW9uIChDbHV0dGVyLlBvaW50IHBvc2l0aW9uKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb3NpdGlv biAoR3JhcGhlbmUuUG9pbnQgcG9zaXRpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcmVsYXRlZCAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNjEwNiw4ICs1NjY0LDEyIEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGhhc19zaGlmdF9tb2RpZmllciAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9vbCBpc19wb2ludGVyX2VtdWxh dGVkICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorKwkJcHVibGljIHN0YXRpYyB1 bm93bmVkIENsdXR0ZXIuRXZlbnQgcGVlayAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKyAJCXB1YmxpYyB2b2lkIHB1dCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4Iild CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2ZpbHRlciAodWludCBpZCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYnV0dG9uICh1aW50MzIg YnV0dG9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC02MTQwLDE2ICs1NzAy LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3N0YXRlIChDbHV0 dGVyLk1vZGlmaWVyVHlwZSBzdGF0ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisg CQlwdWJsaWMgdm9pZCBzZXRfdGltZSAodWludDMyIHRpbWVfKTsKKy0JCXB1YmxpYyBDbHV0dGVy LkFueUV2ZW50IGFueSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlckFueUV2ZW50ICopIildICBn ZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkJ1dHRvbkV2ZW50IGJ1dHRvbiB7W0NDb2RlIChjbmFt ZSA9ICIoQ2x1dHRlckJ1dHRvbkV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVy LkNyb3NzaW5nRXZlbnQgY3Jvc3Npbmcge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJDcm9zc2lu Z0V2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLktleUV2ZW50IGtleSB7W0ND b2RlIChjbmFtZSA9ICIoQ2x1dHRlcktleUV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBD bHV0dGVyLk1vdGlvbkV2ZW50IG1vdGlvbiB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlck1vdGlv bkV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlNjcm9sbEV2ZW50IHNjcm9s bCB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclNjcm9sbEV2ZW50ICopIildICBnZXQ7IH0KKy0J CXB1YmxpYyBDbHV0dGVyLlN0YWdlU3RhdGVFdmVudCBzdGFnZV9zdGF0ZSB7W0NDb2RlIChjbmFt ZSA9ICIoQ2x1dHRlclN0YWdlU3RhdGVFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1 dHRlci5Ub3VjaEV2ZW50IHRvdWNoIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyVG91Y2hFdmVu dCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5Ub3VjaHBhZFBpbmNoRXZlbnQgdG91 Y2hwYWRfcGluY2gge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaHBhZFBpbmNoRXZlbnQg KikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVG91Y2hwYWRTd2lwZUV2ZW50IHRvdWNo cGFkX3N3aXBlIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyVG91Y2hwYWRTd2lwZUV2ZW50ICop IildICBnZXQ7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24g PSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2V2ZW50X3NlcXVlbmNlX2dldF90 eXBlICgpIildCisgCVtDb21wYWN0XQorQEAgLTYxOTgsMTAgKzU3NTAsMjQgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBib29s IHNuYXBfdG9fZ3JpZCB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZyYW1lX2Nsb2Nr X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBGcmFtZUNsb2NrIDogR0xpYi5PYmplY3Qg eworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHVibGlj IEZyYW1lQ2xvY2sgKGZsb2F0IHJlZnJlc2hfcmF0ZSwgQ2x1dHRlci5GcmFtZUxpc3RlbmVySWZh Y2UgaWZhY2UsIHZvaWQqIHVzZXJfZGF0YSk7CisrCQlwdWJsaWMgdm9pZCBhZGRfdGltZWxpbmUg KENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUpOworKwkJcHVibGljIGZsb2F0IGdldF9yZWZyZXNo X3JhdGUgKCk7CisrCQlwdWJsaWMgdm9pZCBpbmhpYml0ICgpOworKwkJcHVibGljIHZvaWQgcmVt b3ZlX3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKysJCXB1YmxpYyB2b2lk IHNjaGVkdWxlX3VwZGF0ZSAoKTsKKysJCXB1YmxpYyB2b2lkIHNjaGVkdWxlX3VwZGF0ZV9ub3cg KCk7CisrCQlwdWJsaWMgdm9pZCB1bmluaGliaXQgKCk7CisrCQlbSGFzRW1pdHRlcl0KKysJCXB1 YmxpYyBzaWduYWwgdm9pZCBkZXN0cm95ICgpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9nZXN0dXJlX2Fj dGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCXB1Ymxp YyBjbGFzcyBHZXN0dXJlQWN0aW9uIDogQ2x1dHRlci5BY3Rpb24geworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBHZXN0dXJlQWN0aW9uICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIGNhbmNlbCAoKTsK K0BAIC02MjExLDYgKzU3NzcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9kZXZpY2UgKHVpbnQgcG9pbnQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRXZlbnQg Z2V0X2xhc3RfZXZlbnQgKHVpbnQgcG9pbnQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorIAkJcHVibGljIHZvaWQgZ2V0X21vdGlvbl9jb29yZHMgKHVpbnQgcG9pbnQsIG91dCBmbG9h dCBtb3Rpb25feCwgb3V0IGZsb2F0IG1vdGlvbl95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X21vdGlvbl9kZWx0YSAodWludCBwb2ludCwgb3V0 IGZsb2F0IGRlbHRhX3gsIG91dCBmbG9hdCBkZWx0YV95KTsKK0BAIC02MjE4LDcgKzU3ODUsOSBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludCBnZXRfbl9jdXJyZW50X3BvaW50 cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgaW50IGdldF9u X3RvdWNoX3BvaW50cyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1Ymxp YyB2b2lkIGdldF9wcmVzc19jb29yZHMgKHVpbnQgcG9pbnQsIG91dCBmbG9hdCBwcmVzc194LCBv dXQgZmxvYXQgcHJlc3NfeSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJs aWMgdm9pZCBnZXRfcmVsZWFzZV9jb29yZHMgKHVpbnQgcG9pbnQsIG91dCBmbG9hdCByZWxlYXNl X3gsIG91dCBmbG9hdCByZWxlYXNlX3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRXZlbnRTZXF1ZW5jZSBnZXRfc2VxdWVuY2UgKHVp bnQgcG9pbnQpOworQEAgLTYyNDYsOSArNTgxNSwxMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgZmxvYXQgdGhyZXNob2xkX3RyaWdnZXJfZGlzdGFuY2VfeSB7IGdldDsgY29uc3Ry dWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAkJcHVibGljIENsdXR0ZXIu R2VzdHVyZVRyaWdnZXJFZGdlIHRocmVzaG9sZF90cmlnZ2VyX2VkZ2UgeyBnZXQ7IGNvbnN0cnVj dDsgfQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2ln bmFsIGJvb2wgZ2VzdHVyZV9iZWdpbiAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBnZXN0dXJl X2NhbmNlbCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBnZXN0dXJlX2VuZCAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgYm9vbCBnZXN0dXJlX3Byb2dyZXNzIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsK KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfZ3JpZF9sYXlvdXRfZ2V0X3R5cGUgKCkiKV0KK0BAIC02Mjc4LDE5 ICs1ODUxLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgcm93X2hvbW9n ZW5lb3VzIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyB1aW50IHJvd19zcGFjaW5nIHsgZ2V0OyBz ZXQ7IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgR3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBB dGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENs dXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIEdyb3VwICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fY2hpbGRyZW4gKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuMiIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfbnRoX2No aWxkIChpbnQgaW5kZXhfKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfYWxsICgpOworLQl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9pbWFnZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgSW1hZ2UgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5Db250 ZW50IHsKK0BAIC02MzA2LDYgKzU4NjYsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1Ymxp YyBjbGFzcyBJbnB1dERldmljZSA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBJbnB1dERldmljZSAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0 b3IgZ2V0X2FjdG9yIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZp Y2UgZ2V0X2Fzc29jaWF0ZWRfZGV2aWNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorQEAgLTYzMTMsNyArNTg3NSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9heGlzX3ZhbHVlIChbQ0NvZGUg KGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZG91YmxlW10gYXhlcywgQ2x1dHRlci5JbnB1dEF4aXMg YXhpcywgb3V0IGRvdWJsZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor LQkJcHVibGljIGJvb2wgZ2V0X2Nvb3JkcyAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5j ZSwgQ2x1dHRlci5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfY29vcmRzIChDbHV0 dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlLCBHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgaW50IGdldF9kZXZpY2VfaWQgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjMyNSwxMiArNTg4Nyw5IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBnZXRf ZGV2aWNlX3R5cGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMg Ym9vbCBnZXRfZW5hYmxlZCAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9nZXRfaW5w dXRfZGV2aWNlX2Zvcl9pZCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9mb3JfaWQgKGludCBpZF8pOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Ig Z2V0X2dyYWJiZWRfYWN0b3IgKCk7CistCQlwdWJsaWMgaW50IGdldF9ncm91cF9uX21vZGVzIChp bnQgZ3JvdXApOworKwkJcHVibGljIHZpcnR1YWwgaW50IGdldF9ncm91cF9uX21vZGVzIChpbnQg Z3JvdXApOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0 X2hhc19jdXJzb3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjM0Niwy MyArNTkwNSwyMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgaW50IGdldF9uX21v ZGVfZ3JvdXBzICgpOworIAkJcHVibGljIGludCBnZXRfbl9yaW5ncyAoKTsKKyAJCXB1YmxpYyBp bnQgZ2V0X25fc3RyaXBzICgpOworLQkJcHVibGljIGJvb2wgZ2V0X3BoeXNpY2FsX3NpemUgKGRv dWJsZSB3aWR0aCwgZG91YmxlIGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9wb2ludGVyX2FjdG9yICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5T dGFnZSBnZXRfcG9pbnRlcl9zdGFnZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIild CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Byb2R1Y3RfaWQgKCk7CisrCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0X3NlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gZ2V0 X3NsYXZlX2RldmljZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF92ZW5kb3JfaWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZ3JhYiAoQ2x1dHRlci5BY3RvciBhY3Rvcik7Cist CQlwdWJsaWMgYm9vbCBpc19ncm91cGVkIChDbHV0dGVyLklucHV0RGV2aWNlIG90aGVyX2Rldmlj ZSk7CistCQlwdWJsaWMgYm9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVp bnQgYnV0dG9uKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5J bnB1dERldmljZSBvdGhlcl9kZXZpY2UpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBpc19tb2Rl X3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhh cmR3YXJlX2tleWNvZGUsIHVpbnQgZXZkZXZfa2V5Y29kZSk7CisrCQlwdWJsaWMgdmlydHVhbCBi b29sIGtleWNvZGVfdG9fZXZkZXYgKHVpbnQgaGFyZHdhcmVfa2V5Y29kZSwgdWludCBldmRldl9r ZXljb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIHNlcXVlbmNlX2dldF9ncmFiYmVkX2FjdG9yIChDbHV0dGVyLkV2ZW50 U2VxdWVuY2Ugc2VxdWVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC02 Mzc4LDEyICs1OTM1LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHVu Z3JhYiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHVw ZGF0ZV9mcm9tX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIHVwZGF0ZV9zdGFnZSk7 CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfZnJvbV90b29s IChDbHV0dGVyLklucHV0RGV2aWNlVG9vbCB0b29sKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBi YWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuRGV2aWNlTWFu YWdlciBkZXZpY2VfbWFuYWdlciB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMg Q2x1dHRlci5JbnB1dE1vZGUgZGV2aWNlX21vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVi bGljIHN0cmluZyBkZXZpY2Vfbm9kZSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCitAQCAtNjQwNiw2ICs1OTYyLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHN0cmluZyBuYW1lIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5nIHByb2R1Y3RfaWQgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5n IHZlbmRvcl9pZCB7IGdldDsgY29uc3RydWN0OyB9CisgCX0KK0BAIC02NDMwLDcgKzU5ODcsNyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwg dm9pZCBjb21taXRfdGV4dCAoc3RyaW5nIHRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nICh1aW50IG9mZnNldCwgdWludCBsZW4p OworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBkZWxldGVfc3Vycm91bmRpbmcgKGludCBvZmZzZXQs IHVpbnQgbGVuKTsKKyAJCXB1YmxpYyBib29sIGZpbHRlcl9rZXlfZXZlbnQgKENsdXR0ZXIuS2V5 RXZlbnQga2V5KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGZvY3Vz X2luIChDbHV0dGVyLklucHV0TWV0aG9kIGlucHV0X21ldGhvZCk7CitAQCAtNjQ0Myw3ICs2MDAw LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2Nhbl9zaG93X3By ZWVkaXQgKGJvb2wgY2FuX3Nob3dfcHJlZWRpdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29udGVu dF9oaW50cyAoQ2x1dHRlci5JbnB1dENvbnRlbnRIaW50RmxhZ3MgaGludCk7CisgCQlwdWJsaWMg dm9pZCBzZXRfY29udGVudF9wdXJwb3NlIChDbHV0dGVyLklucHV0Q29udGVudFB1cnBvc2UgcHVy cG9zZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChDbHV0dGVyLlJlY3Qg cmVjdCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChHcmFwaGVuZS5SZWN0 IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVyLklu cHV0UGFuZWxTdGF0ZSBzdGF0ZSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwg dm9pZCBzZXRfcHJlZWRpdF90ZXh0IChzdHJpbmcgcHJlZWRpdCwgdWludCBjdXJzb3IpOworQEAg LTY0NjIsNyArNjAxOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtOb1dyYXBwZXJdCisg CQlwdWJsaWMgdmlydHVhbCB2b2lkIHJlc2V0ICgpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoQ2x1dHRlci5SZWN0IHJlY3QpOwor KwkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChHcmFwaGVuZS5SZWN0 IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVyLklu cHV0UGFuZWxTdGF0ZSBzdGF0ZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfcHJlZWRpdF90ZXh0IChz dHJpbmc/IHByZWVkaXQsIHVpbnQgY3Vyc29yKTsKKyAJCVtOb1dyYXBwZXJdCitAQCAtNjQ3OSw5 ICs2MDM2LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuSW5wdXRD b250ZW50UHVycG9zZSBjb250ZW50X3B1cnBvc2UgeyBnZXQ7IHNldDsgfQorIAkJW0hhc0VtaXR0 ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY29tbWl0IChzdHJpbmcgdGV4dCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgY3Vyc29yX2xvY2F0aW9uX2NoYW5nZWQgKENsdXR0ZXIuUmVjdCBvYmpl Y3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9sb2NhdGlvbl9jaGFuZ2VkIChHcmFw aGVuZS5SZWN0IG9iamVjdCk7CisgCQlbSGFzRW1pdHRlcl0KKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBkZWxldGVfc3Vycm91bmRpbmcgKHVpbnQgb2Zmc2V0LCB1aW50IGxlbik7CisrCQlwdWJsaWMg c2lnbmFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nIChpbnQgb2Zmc2V0LCB1aW50IGxlbik7Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5l bFN0YXRlIG9iamVjdCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBy ZXF1ZXN0X3N1cnJvdW5kaW5nICgpOworQEAgLTY1NTUsMjggKzYxMTIsMjggQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor IAkJcHJvdGVjdGVkIEtleW1hcCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X2NhcHNf bG9ja19zdGF0ZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIFBhbmdvLkRpcmVjdGlvbiBnZXRfZGly ZWN0aW9uICgpOworIAkJcHVibGljIHZpcnR1YWwgYm9vbCBnZXRfbnVtX2xvY2tfc3RhdGUgKCk7 CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhdGVfY2hhbmdlZCAoKTsKKyAJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfbGF5ZXJfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgTGF5ZXJOb2RlIDog Q2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBMYXllck5vZGUg KENvZ2wuTWF0cml4IHByb2plY3Rpb24sIENhaXJvLlJlY3RhbmdsZSB2aWV3cG9ydCwgZmxvYXQg d2lkdGgsIGZsb2F0IGhlaWdodCwgdWludDggb3BhY2l0eSk7CisrCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2xh eW91dF9tYW5hZ2VyX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KyAJcHVibGljIGFic3RyYWN0IGNsYXNzIExheW91dE1hbmFnZXIgOiBHTGliLkluaXRpYWxseVVu b3duZWQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJ cHJvdGVjdGVkIExheW91dE1hbmFnZXIgKCk7CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFsbG9j YXRlIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2Nh dGlvbiwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5BbHBoYSBiZWdpbl9hbmltYXRpb24g KHVpbnQgZHVyYXRpb24sIHVsb25nIG1vZGUpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxv Y2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yQm94IGFsbG9j YXRpb24pOworIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkNvbnRhaW5lciBjb250 YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9n ZXRfcHJvcGVydHkgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBh Y3Rvciwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJcHVibGlj IHZvaWQgY2hpbGRfc2V0IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0 b3IgYWN0b3IsIC4uLik7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9zZXRfcHJvcGVydHkgKENsdXR0 ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvciwgc3RyaW5nIHByb3Bl cnR5X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2 aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5MYXlvdXRNZXRhIGNyZWF0ZV9jaGlsZF9tZXRhIChDbHV0 dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5kX2FuaW1hdGlvbiAoKTsKKyAJCXB1 YmxpYyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfY2hpbGRfcHJvcGVydHkgKHN0cmluZyBu YW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCBkb3VibGUgZ2V0X2Fu aW1hdGlvbl9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1dHRlci5D b250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtOb1dyYXBwZXJd CitAQCAtNjYzMiwxMiArNjE4OSwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwcm90ZWN0 ZWQgT2Zmc2NyZWVuRWZmZWN0ICgpOworIAkJcHVibGljIHZpcnR1YWwgQ29nbC5IYW5kbGUgY3Jl YXRlX3RleHR1cmUgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBib29sIGdldF90YXJnZXRfcmVjdCAob3V0IHVub3du ZWQgQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIGJvb2wgZ2V0X3RhcmdldF9yZWN0IChv dXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjgiKV0KKyAJCXB1 YmxpYyBib29sIGdldF90YXJnZXRfc2l6ZSAob3V0IGZsb2F0IHdpZHRoLCBvdXQgZmxvYXQgaGVp Z2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBD b2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRf dGFyZ2V0ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludF90YXJnZXQgKENsdXR0ZXIu UGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWdlX3R1cm5f ZWZmZWN0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC02 NjU0LDYgKzYyMTEsMTcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGRvdWJsZSBw ZXJpb2QgeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGZsb2F0IHJhZGl1cyB7IGdldDsgc2V0OyB9 CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg cmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF9yZWYiLCB0eXBlX2lkID0gImNs dXR0ZXJfcGFpbnRfY29udGV4dF9nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gImNsdXR0 ZXJfcGFpbnRfY29udGV4dF91bnJlZiIpXQorKwlbQ29tcGFjdF0KKysJcHVibGljIGNsYXNzIFBh aW50Q29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworKwkJcHVibGljIHVub3du ZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJsaWMgdW5vd25l ZCBDYWlyby5SZWdpb24gZ2V0X3JlZHJhd19jbGlwICgpOworKwkJcHVibGljIHZvaWQgcG9wX2Zy YW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcHVzaF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFt ZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Q29u dGV4dCBAcmVmICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3BhaW50X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFBhaW50Tm9kZSB7CitAQCAtNjY2Myw3ICs2MjMxLDgg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgYWRkX211bHRpdGV4dHVyZV9y ZWN0YW5nbGUgKENsdXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgdGV4dF9jb29yZHMsIHVpbnQg dGV4dF9jb29yZHNfbGVuKTsKKyAJCXB1YmxpYyB2b2lkIGFkZF9yZWN0YW5nbGUgKENsdXR0ZXIu QWN0b3JCb3ggcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBhZGRfdGV4dHVyZV9yZWN0YW5nbGUgKENs dXR0ZXIuQWN0b3JCb3ggcmVjdCwgZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxv YXQgeV8yKTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50ICgpOworKwkJcHVibGljIHVub3duZWQgQ29n bC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBwYWludCAo Q2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLlBhaW50Tm9kZSBAcmVmICgpOworIAkJcHVibGljIHZvaWQgc2V0X25hbWUgKHN0cmlu ZyBuYW1lKTsKKyAJCXB1YmxpYyB2b2lkIHVucmVmICgpOworQEAgLTY2ODEsNyArNjI1MCw3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1 YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor LQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGdldF9vcmlnaW4gKCk7CisrCQlwdWJsaWMgdm9pZCBn ZXRfb3JpZ2luIChvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY2OTEsNyArNjI2MCw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9oZWlnaHQgKGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42Iild CistCQlwdWJsaWMgdm9pZCBzZXRfb3JpZ2luIChDbHV0dGVyLlZlcnRleCBvcmlnaW4pOworKwkJ cHVibGljIHZvaWQgc2V0X29yaWdpbiAoR3JhcGhlbmUuUG9pbnQzRCBvcmlnaW4pOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3dpZHRoIChmbG9hdCB3 aWR0aCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjc3OCw4OCArNjM0Nywy OSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5QYXRoIHBhdGggeyBn ZXQ7IHNldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIG5vZGVfcmVhY2hlZCAoQ2x1dHRlci5B Y3RvciBhY3RvciwgdWludCBpbmRleCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgcmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGlja19jb250 ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1 bnJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF91bnJlZiIpXQorKwlbQ29tcGFj dF0KKysJcHVibGljIGNsYXNzIFBpY2tDb250ZXh0IHsKKysJCXB1YmxpYyB2b2lkIGRlc3Ryb3kg KCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBpY2tDb250ZXh0IEByZWYgKCk7CisrCQlw dWJsaWMgdm9pZCB1bnJlZiAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlwZWxpbmVfbm9kZV9nZXRf dHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3Mg UGlwZWxpbmVOb2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFBpcGVsaW5lTm9kZSAoKTsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVl IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgUG9pbnQgeworLQkJ cHVibGljIGZsb2F0IHg7CistCQlwdWJsaWMgZmxvYXQgeTsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1 dHRlci5Qb2ludCBhbGxvYyAoKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IGNvcHkgKCk7Cist CQlwdWJsaWMgZmxvYXQgZGlzdGFuY2UgKENsdXR0ZXIuUG9pbnQgYiwgb3V0IGZsb2F0IHhfZGlz dGFuY2UsIG91dCBmbG9hdCB5X2Rpc3RhbmNlKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1 dHRlci5Qb2ludCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLlBvaW50IGluaXQgKGZsb2F0IHgsIGZsb2F0IHkpOworLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIENsdXR0ZXIuUG9pbnQgemVybyAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcHJvcGVy dHlfdHJhbnNpdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAlwdWJsaWMgY2xhc3MgUHJvcGVydHlUcmFuc2l0aW9uIDogQ2x1dHRlci5UcmFuc2l0aW9u LCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclRyYW5zaXRpb24qIildCisgCQlwdWJsaWMgUHJvcGVy dHlUcmFuc2l0aW9uIChzdHJpbmc/IHByb3BlcnR5X25hbWUpOworKwkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclRyYW5zaXRpb24qIildCisr CQlwdWJsaWMgUHJvcGVydHlUcmFuc2l0aW9uLmZvcl9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf cHJvcGVydHlfbmFtZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wcm9wZXJ0eV9uYW1lIChzdHJp bmc/IHByb3BlcnR5X25hbWUpOworLQkJcHVibGljIHN0cmluZyBwcm9wZXJ0eV9uYW1lIHsgZ2V0 OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAi Z19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlY3RfZ2V0X3R5cGUgKCkiKV0KKy0J W0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBjbGFzcyBS ZWN0IHsKKy0JCXB1YmxpYyB3ZWFrIENsdXR0ZXIuUG9pbnQgb3JpZ2luOworLQkJcHVibGljIHdl YWsgQ2x1dHRlci5TaXplIHNpemU7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuUmVjdCBhbGxv YyAoKTsKKy0JCXB1YmxpYyB2b2lkIGNsYW1wX3RvX3BpeGVsICgpOworLQkJcHVibGljIGJvb2wg Y29udGFpbnNfcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworLQkJcHVibGljIGJvb2wgY29u dGFpbnNfcmVjdCAoQ2x1dHRlci5SZWN0IGIpOworLQkJcHVibGljIENsdXR0ZXIuUmVjdCBjb3B5 ICgpOworLQkJcHVibGljIGJvb2wgZXF1YWxzIChDbHV0dGVyLlJlY3QgYik7CistCQlwdWJsaWMg dm9pZCBmcmVlICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2NlbnRlciAoQ2x1dHRlci5Qb2ludCBj ZW50ZXIpOworLQkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMgZmxvYXQg Z2V0X3dpZHRoICgpOworLQkJcHVibGljIGZsb2F0IGdldF94ICgpOworLQkJcHVibGljIGZsb2F0 IGdldF95ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5SZWN0IGluaXQgKGZsb2F0IHgs IGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworLQkJcHVibGljIHZvaWQgaW5z ZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKy0JCXB1YmxpYyBib29sIGludGVyc2VjdGlvbiAo Q2x1dHRlci5SZWN0IGIsIENsdXR0ZXIuUmVjdD8gcmVzKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlJl Y3Qgbm9ybWFsaXplICgpOworLQkJcHVibGljIHZvaWQgb2Zmc2V0IChmbG9hdCBkX3gsIGZsb2F0 IGRfeSk7CistCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc194LCBmbG9hdCBzX3kpOworLQkJ cHVibGljIHZvaWQgdW5pb24gKENsdXR0ZXIuUmVjdCBiLCBDbHV0dGVyLlJlY3QgcmVzKTsKKy0J CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlJlY3QgemVybyAoKTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIi KV0KKy0JcHVibGljIGNsYXNzIFJlY3RhbmdsZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1l bnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3Jp cHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgUmVjdGFuZ2xlICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9ib3JkZXJfY29sb3IgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2JvcmRlcl93aWR0aCAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2JvcmRlcl9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvcmRlcl93aWR0aCAodWludCB3aWR0aCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rv cioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgUmVjdGFuZ2xlLndpdGhfY29sb3IgKENsdXR0ZXIuQ29sb3Ig Y29sb3IpOworLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgYm9yZGVyX2NvbG9yIHsgZ2V0OyBzZXQ7 IH0KKy0JCXB1YmxpYyB1aW50IGJvcmRlcl93aWR0aCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMg Q2x1dHRlci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBib29sIGhhc19ib3JkZXIgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIHZvaWQg c2V0X3Byb3BlcnR5X25hbWUgKHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CisrCQlwdWJsaWMgc3Ry aW5nIHByb3BlcnR5X25hbWUgeyBnZXQ7IHNldDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yb290X25v ZGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFJvb3ROb2RlIDogQ2x1dHRlci5QYWlu dE5vZGUgeworQEAgLTY4ODAsMTUgKzYzOTAsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIFNjcmlwdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1Ymxp YyB2b2lkIGFkZF9zZWFyY2hfcGF0aHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5f cGF0aHMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS4xLCBhcnJheV9sZW5ndGhfdHlwZSA9ICJnc2l6 ZSIpXSBzdHJpbmdbXSBwYXRocyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQg YWRkX3N0YXRlcyAoc3RyaW5nPyBuYW1lLCBDbHV0dGVyLlN0YXRlIHN0YXRlKTsKKyAJCXB1Ymxp YyB2b2lkIGNvbm5lY3Rfc2lnbmFscyAodm9pZCogdXNlcl9kYXRhKTsKKyAJCXB1YmxpYyB2b2lk IGNvbm5lY3Rfc2lnbmFsc19mdWxsIChDbHV0dGVyLlNjcmlwdENvbm5lY3RGdW5jIGZ1bmMpOwor IAkJcHVibGljIHZvaWQgZW5zdXJlX29iamVjdHMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGli Lk9iamVjdCBnZXRfb2JqZWN0IChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgaW50IGdldF9vYmpl Y3RzICguLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu U3RhdGUgZ2V0X3N0YXRlcyAoc3RyaW5nPyBuYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RyYW5zbGF0aW9uX2RvbWFpbiAo KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIEdMaWIuVHlwZSBnZXRfdHlwZV9mcm9tX25hbWUgKHN0cmlu ZyB0eXBlX25hbWUpOworQEAgLTY5MTYsOCArNjQyMiw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJBY3RvcioiKV0KKyAJCXB1YmxpYyBTY3JvbGxBY3RvciAoKTsKKyAJCXB1YmxpYyBDbHV0dGVy LlNjcm9sbE1vZGUgZ2V0X3Njcm9sbF9tb2RlICgpOworLQkJcHVibGljIHZvaWQgc2Nyb2xsX3Rv X3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIHNjcm9sbF90b19y ZWN0IChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcG9pbnQg KEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChH cmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X3Njcm9sbF9tb2RlIChDbHV0 dGVyLlNjcm9sbE1vZGUgbW9kZSk7CisgCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxNb2RlIHNjcm9s bF9tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJfQorQEAgLTY5MzksNiArNjQ0NSw0NyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5OworIAl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9zZWF0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBhYnN0cmFjdCBjbGFz cyBTZWF0IDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFNlYXQgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVi bGljIHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5 U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBiZWxsX25vdGlmeSAo KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50 IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworKwkJW05vV3JhcHBlcl0KKysJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgY29weV9ldmVudF9kYXRhIChDbHV0dGVyLkV2ZW50IHNyYywgQ2x1 dHRlci5FdmVudCBkZXN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbElucHV0 RGV2aWNlIGNyZWF0ZV92aXJ0dWFsX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2 aWNlX3R5cGUpOworKwkJcHVibGljIHZvaWQgZW5zdXJlX2ExMXlfc3RhdGUgKCk7CisrCQlbTm9X cmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBmcmVlX2V2ZW50X2RhdGEgKENsdXR0ZXIu RXZlbnQgZXZlbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0 dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVk IENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2tleWJvYXJkICgpOworKwkJcHVibGljIHZpcnR1YWwg dW5vd25lZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworKwkJcHVibGljIHZpcnR1YWwg dW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9wb2ludGVyICgpOworKwkJcHVibGljIHZv aWQgZ2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdz IHNldHRpbmdzKTsKKysJCXB1YmxpYyBib29sIGdldF90b3VjaF9tb2RlICgpOworKwkJcHVibGlj IHZvaWQgaW5oaWJpdF91bmZvY3VzICgpOworKwkJcHVibGljIGJvb2wgaXNfdW5mb2N1c19pbmhp Yml0ZWQgKCk7CisrCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4g bGlzdF9kZXZpY2VzICgpOworKwkJcHVibGljIHZvaWQgc2V0X2tiZF9hMTF5X3NldHRpbmdzIChD bHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9p bnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNr VHlwZSBjbGlja190eXBlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfc2V0dGlu Z3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdm9p ZCB1bmluaGliaXRfdW5mb2N1cyAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgd2FycF9wb2lu dGVyIChpbnQgeCwgaW50IHkpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1 dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGlj IGJvb2wgdG91Y2hfbW9kZSB7IGdldDsgfQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9h ZGRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lk IGRldmljZV9yZW1vdmVkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCk7CisrCQlwdWJsaWMg c2lnbmFsIHZvaWQgaXNfdW5mb2N1c19pbmhpYml0ZWRfY2hhbmdlZCAoKTsKKysJCXB1YmxpYyBz aWduYWwgdm9pZCBrYmRfYTExeV9mbGFnc19jaGFuZ2VkICh1aW50IHNldHRpbmdzX2ZsYWdzLCB1 aW50IGNoYW5nZWRfbWFzayk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfbW9kc19z dGF0ZV9jaGFuZ2VkICh1aW50IGxhdGNoZWRfbWFzaywgdWludCBsb2NrZWRfbWFzayk7CisrCQlw dWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZV9jaGFuZ2VkIChDbHV0 dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7CisrCQlwdWJsaWMgc2ln bmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdGFydGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRl dmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSwgdWludCBk ZWxheSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdG9wcGVkIChD bHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBl IHRpbWVvdXRfdHlwZSwgYm9vbCBjbGlja2VkKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB0b29s X2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBDbHV0dGVyLklucHV0RGV2aWNl VG9vbCBwMCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NldHRpbmdzX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIFNldHRpbmdzIDogR0xpYi5P YmplY3QgeworQEAgLTcwMTEsMTggKzY1NTgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgU2hh ZGVyTWF0cml4ICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlv biA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2l6ZV9nZXRfdHlwZSAoKSIp XQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNs YXNzIFNpemUgeworLQkJcHVibGljIGZsb2F0IGhlaWdodDsKKy0JCXB1YmxpYyBmbG9hdCB3aWR0 aDsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5TaXplIGFsbG9jICgpOworLQkJcHVibGljIENs dXR0ZXIuU2l6ZSBjb3B5ICgpOworLQkJcHVibGljIGJvb2wgZXF1YWxzIChDbHV0dGVyLlNpemUg Yik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5T aXplIGluaXQgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworLQl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9z bmFwX2NvbnN0cmFpbnRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorIAlwdWJsaWMgY2xhc3MgU25hcENvbnN0cmFpbnQgOiBDbHV0dGVyLkNvbnN0cmFpbnQgewor QEAgLTcwNDMsMTM1ICs2NTc4LDY2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfc3RhZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQor LQlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLkdyb3VwLCBBdGsuSW1wbGVtZW50b3IsIENs dXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CisrCXB1YmxpYyBjbGFzcyBTdGFnZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwg Q2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxl IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNs dXR0ZXJBY3RvcioiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBT dGFnZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhcHR1cmUgKGJvb2wgcGFpbnQsIENhaXJvLlJlY3Rh bmdsZUludCByZWN0LCBDbHV0dGVyLkNhcHR1cmUgY2FwdHVyZXMsIGludCBuX2NhcHR1cmVzKTsK KyAJCXB1YmxpYyB2b2lkIGNhcHR1cmVfaW50byAoYm9vbCBwYWludCwgQ2Fpcm8uUmVjdGFuZ2xl SW50IHJlY3QsIHVpbnQ4IGRhdGEpOworKwkJcHVibGljIHZvaWQgY2xlYXJfc3RhZ2Vfdmlld3Mg KCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfc3RhZ2VfZXZlbnQiKV0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBib29sIGVtaXRfZXZlbnQgKENsdXR0ZXIu RXZlbnQgZXZlbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyB2b2lkIGVuc3VyZV9jdXJyZW50ICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZW5zdXJlX3JlZHJhdyAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGVuc3VyZV92aWV3cG9ydCAoKTsK Ky0JCXB1YmxpYyB2b2lkIGZyZWV6ZV91cGRhdGVzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2FjY2VwdF9mb2N1cyAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yX2F0X3BvcyAoQ2x1dHRlci5QaWNrTW9kZSBw aWNrX21vZGUsIGludCB4LCBpbnQgeSk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01vZGUgcGlja19tb2RlLCBmbG9hdCB4LCBm bG9hdCB5KTsKKyAJCXB1YmxpYyBib29sIGdldF9jYXB0dXJlX2ZpbmFsX3NpemUgKENhaXJvLlJl Y3RhbmdsZUludCByZWN0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGZsb2F0IHNjYWxlKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIENsdXR0ZXIuU3RhZ2UgZ2V0X2RlZmF1bHQgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGdldF9mb2cgKCk7CisgCQlwdWJsaWMgaW50NjQg Z2V0X2ZyYW1lX2NvdW50ZXIgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgYm9vbCBnZXRfZnVsbHNjcmVlbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2tleV9mb2N1cyAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9taW5pbXVtX3Np emUgKG91dCB1aW50IHdpZHRoLCBvdXQgdWludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9ub19jbGVh cl9oaW50ICgpOworIAkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgZ2V0X3BlcnNwZWN0aXZl ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENhaXJvLlJlY3Rh bmdsZUludCBnZXRfcmVkcmF3X2NsaXBfYm91bmRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3Rocm90dGxlX21vdGlvbl9ldmVudHMgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X3RpdGxlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wg Z2V0X3VzZV9hbHBoYSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCBnZXRf dXNlX2ZvZyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29s IGdldF91c2VyX3Jlc2l6YWJsZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0J CXB1YmxpYyB2b2lkIGhpZGVfY3Vyc29yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1Ymxp YyBib29sIGlzX2RlZmF1bHQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQg cXVldWVfcmVkcmF3ICgpOworKwkJcHVibGljIGJvb2wgcGFpbnRfdG9fYnVmZmVyIChDYWlyby5S ZWN0YW5nbGVJbnQgcmVjdCwgZmxvYXQgc2NhbGUsIHVpbnQ4IGRhdGEsIGludCBzdHJpZGUsIENv Z2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDbHV0dGVyLlBhaW50RmxhZyBwYWludF9mbGFncykgdGhy b3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCBwYWludF90b19mcmFtZWJ1ZmZlciAoQ29n bC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIGZsb2F0 IHNjYWxlLCBDbHV0dGVyLlBhaW50RmxhZyBwYWludF9mbGFncyk7CisgCQlbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0KKyAJCXB1YmxpYyB1aW50OFtdIHJlYWRfcGl4ZWxzIChpbnQgeCwg aW50IHksIGludCB3aWR0aCA9IC0xLCBpbnQgaGVpZ2h0ID0gLTEpOworLQkJW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX3JlZHJhdyIpXQorLQkJcHVibGljIHZvaWQgcmVkcmF3ICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FjY2VwdF9mb2N1cyAo Ym9vbCBhY2NlcHRfZm9jdXMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRl ci5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zv ZyAoQ2x1dHRlci5Gb2cgZm9nKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9mdWxsc2NyZWVuIChib29sIGZ1bGxzY3JlZW4pOworKwkJcHVibGljIHZv aWQgc2NoZWR1bGVfdXBkYXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2tleV9mb2N1cyAoQ2x1dHRlci5BY3Rvcj8gYWN0b3IpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X21pbmltdW1fc2l6ZSAo dWludCB3aWR0aCwgdWludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor IAkJcHVibGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoYm9vbCBlbmFibGVkKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ub19jbGVh cl9oaW50IChib29sIG5vX2NsZWFyKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wZXJzcGVjdGl2ZSAo Q2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGhyb3R0bGVfbW90aW9uX2V2ZW50cyAoYm9vbCB0 aHJvdHRsZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdm9pZCBz ZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisg CQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FscGhhIChib29sIHVzZV9hbHBoYSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9mb2cgKGJvb2wgZm9nKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VyX3Jlc2l6YWJsZSAo Ym9vbCByZXNpemFibGUpOworLQkJcHVibGljIHZvaWQgc2hvd19jdXJzb3IgKCk7CistCQlwdWJs aWMgdm9pZCB0aGF3X3VwZGF0ZXMgKCk7CistCQlwdWJsaWMgdm9pZCB1cGRhdGVfcmVzb3VyY2Vf c2NhbGVzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIGJvb2wg YWNjZXB0X2ZvY3VzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBj b2xvciB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29s IGN1cnNvcl92aXNpYmxlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgQ2x1dHRlci5Gb2cgZm9nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGJvb2wgZnVsbHNjcmVlbl9zZXQgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGtleV9mb2N1cyB7IGdldDsgc2V0 OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBub19jbGVh cl9oaW50IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyBib29sIG9mZnNjcmVlbiB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44 IildCistCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSB7IGdldDsgc2V0 OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSB7IGdldDsgfQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHN0cmluZyB0aXRsZSB7IGdl dDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCB1 c2VfYWxwaGEgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29s IHVzZV9mb2cgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJ cHVibGljIGJvb2wgdXNlcl9yZXNpemFibGUgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0aXZhdGUgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMCIpXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGFm dGVyX3BhaW50ICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGFmdGVyX3BhaW50IChDbHV0dGVy LlN0YWdlVmlldyB2aWV3KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBhZnRlcl91cGRhdGUgKENs dXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGJlZm9yZV9wYWlu dCAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgYmVmb3Jl X3VwZGF0ZSAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBkZWFjdGl2YXRlICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wg ZGVsZXRlX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGZ1bGxzY3JlZW4gKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9p ZCB1bmZ1bGxzY3JlZW4gKCk7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYWludF92 aWV3IChDbHV0dGVyLlN0YWdlVmlldyB2aWV3LCBDYWlyby5SZWdpb24gcmVkcmF3X2NsaXApOwor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9zdGFnZV9tYW5hZ2VyX2dldF90eXBlICgpIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KK0BAIC03MTg1LDggKzY2NTEsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgR0xpYi5TTGlzdDx3 ZWFrIENsdXR0ZXIuU3RhZ2U+IGxpc3Rfc3RhZ2VzICgpOworIAkJcHVibGljIHVub3duZWQgR0xp Yi5TTGlzdDxDbHV0dGVyLlN0YWdlPiBwZWVrX3N0YWdlcyAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIwLjgiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9kZWZhdWx0X3N0YWdlIChDbHV0dGVyLlN0YWdlIHN0YWdlKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlN0YWdlIGRl ZmF1bHRfc3RhZ2UgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC03 MjA2LDYzICs2NjcwLDMzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1aW50MzIg dGltZTsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2ZW50VHlwZSB0eXBlOworIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9zdGF0ZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1 YmxpYyBjbGFzcyBTdGF0ZSA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLlNjcmlwdGFibGUgeworKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfc3RhZ2Vfdmlld19nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU3RhZ2VW aWV3IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBTdGF0ZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0 YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLlN0YXRlS2V5PiBnZXRfa2V5cyAoc3Ry aW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5P YmplY3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0YXRlICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBzdHJpbmc+IGdldF9zdGF0ZXMgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGlt ZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2tleSAo c3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xp Yi5PYmplY3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRlX25h bWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIHVpbnQgZHVyYXRpb24pOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU3RhdGUgc2V0X2tleSAoc3RyaW5n PyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVj dCBvYmplY3QsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCB1aW50IG1vZGUsIEdMaWIuVmFsdWUgdmFs dWUsIGRvdWJsZSBwcmVfZGVsYXksIGRvdWJsZSBwb3N0X2RlbGF5KTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIHNldF9zdGF0ZSAoc3RyaW5n IHRhcmdldF9zdGF0ZV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLlRpbWVsaW5lIHdhcnBfdG9fc3RhdGUgKHN0cmluZyB0YXJnZXRfc3RhdGVfbmFt ZSk7CisrCQlwcm90ZWN0ZWQgU3RhZ2VWaWV3ICgpOworKwkJcHVibGljIHZvaWQgYXNzaWduX25l eHRfc2Nhbm91dCAoQ29nbC5TY2Fub3V0IHNjYW5vdXQpOworKwkJcHVibGljIHVub3duZWQgQ29n bC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfbGF5 b3V0IChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGdl dF9vZmZzY3JlZW5fdHJhbnNmb3JtYXRpb25fbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOwor KwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfb25zY3JlZW4gKCk7CisrCQlw dWJsaWMgZmxvYXQgZ2V0X3NjYWxlICgpOworKwkJcHVibGljIHZvaWQgaW52YWxpZGF0ZV9vZmZz Y3JlZW5fYmxpdF9waXBlbGluZSAoKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVh bCB2b2lkIHNldHVwX29mZnNjcmVlbl9ibGl0X3BpcGVsaW5lIChDb2dsLlBpcGVsaW5lIHBpcGVs aW5lKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHRyYW5zZm9ybV9y ZWN0X3RvX29uc2NyZWVuIChDYWlyby5SZWN0YW5nbGVJbnQgc3JjX3JlY3QsIGludCBkc3Rfd2lk dGgsIGludCBkc3RfaGVpZ2h0LCBDYWlyby5SZWN0YW5nbGVJbnQgZHN0X3JlY3QpOworIAkJW05v QWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZHVyYXRp b24geyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENhaXJvLlJlY3RhbmdsZUludCBsYXlvdXQgeyBv d25lZCBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBzdHJpbmcgc3RhdGUgeyBvd25lZCBnZXQ7IHNldDsgfQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGNvbXBsZXRl ZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19i b3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YXRlX2tleV9nZXRfdHlwZSAoKSIpXQor LQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3Mg U3RhdGVLZXkgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRf b2JqZWN0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3Bvc3Rf ZGVsYXkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGRvdWJsZSBnZXRfcHJlX2Rl bGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf cHJvcGVydHlfbmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgR0xpYi5UeXBl IGdldF9wcm9wZXJ0eV90eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfc291cmNlX3N0YXRlX25hbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90YXJnZXRfc3RhdGVfbmFtZSAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdmFsdWUgKEdMaWIuVmFsdWUgdmFsdWUp OworKwkJcHVibGljIHN0cmluZyBuYW1lIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtO b0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGZsb2F0IHJlZnJlc2hfcmF0ZSB7IGdldDsgc2V0 IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgZmxvYXQgc2Nh bGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVi bGljIENsdXR0ZXIuU3RhZ2Ugc3RhZ2UgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05v QWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgYm9vbCB1c2Vfc2hhZG93ZmIgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zd2lwZV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTcyNzQsNTMgKzY3MDgsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIHZp cnR1YWwgc2lnbmFsIGJvb2wgc3dpcGUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuU3dp cGVEaXJlY3Rpb24gZGlyZWN0aW9uKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFibGVfbGF5b3V0X2dl dF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBjbGFzcyBUYWJsZUxheW91 dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFuYWdlcioiKV0KKy0JCXB1Ymxp YyBUYWJsZUxheW91dCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBnZXRf YWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5UYWJsZUFsaWdubWVu dCB4X2FsaWduLCBvdXQgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB5X2FsaWduKTsKKy0JCXB1Ymxp YyBpbnQgZ2V0X2NvbHVtbl9jb3VudCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9jb2x1bW5fc3Bh Y2luZyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWludCBnZXRfZWFzaW5nX2R1 cmF0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRfZWFzaW5n X21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2V4cGFuZCAo Q2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9leHBhbmQsIG91dCBib29sIHlfZXhwYW5k KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBnZXRfZmlsbCAoQ2x1dHRlci5B Y3RvciBhY3Rvciwgb3V0IGJvb2wgeF9maWxsLCBvdXQgYm9vbCB5X2ZpbGwpOworLQkJcHVibGlj IGludCBnZXRfcm93X2NvdW50ICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3Jvd19zcGFjaW5nICgp OworLQkJcHVibGljIHZvaWQgZ2V0X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBpbnQg Y29sdW1uX3NwYW4sIG91dCBpbnQgcm93X3NwYW4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyBib29sIGdldF91c2VfYW5pbWF0aW9ucyAoKTsKKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENs dXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW4sIGludCByb3cpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENs dXR0ZXIuVGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB5X2Fs aWduKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb2x1bW5fc3BhY2luZyAodWludCBzcGFjaW5nKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZWFzaW5nX2R1cmF0aW9uICh1 aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZWFzaW5n X21vZGUgKHVsb25nIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9leHBhbmQsIGJvb2wgeV9leHBh bmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWxsIChDbHV0dGVy LkFjdG9yIGFjdG9yLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworLQkJcHVibGljIHZvaWQg c2V0X3Jvd19zcGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJcHVibGljIHZvaWQgc2V0X3NwYW4g KENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW5fc3BhbiwgaW50IHJvd19zcGFuKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FuaW1hdGlvbnMgKGJvb2wg YW5pbWF0ZSk7CistCQlwdWJsaWMgdWludCBjb2x1bW5fc3BhY2luZyB7IGdldDsgc2V0OyB9Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZWFzaW5nX2R1cmF0aW9uIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcgZWFzaW5nX21vZGUgeyBn ZXQ7IHNldDsgfQorLQkJcHVibGljIHVpbnQgcm93X3NwYWNpbmcgeyBnZXQ7IHNldDsgfQorLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9hbmltYXRpb25zIHsgZ2V0OyBzZXQ7 IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfdGFwX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgY2xhc3MgVGFwQWN0aW9uIDogQ2x1dHRlci5H ZXN0dXJlQWN0aW9uIHsKK0BAIC03MzQ4LDcgKzY3MzUsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY3Vyc29yX2NvbG9yICgpOworIAkJcHVibGlj IGludCBnZXRfY3Vyc29yX3Bvc2l0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYi KV0KKy0JCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAob3V0IHVub3duZWQgQ2x1dHRlci5S ZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgZ2V0X2N1cnNvcl9yZWN0IChvdXQgdW5vd25lZCBH cmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHVpbnQgZ2V0X2N1cnNvcl9zaXplICgpOwor IAkJcHVibGljIGJvb2wgZ2V0X2N1cnNvcl92aXNpYmxlICgpOworIAkJcHVibGljIGJvb2wgZ2V0 X2VkaXRhYmxlICgpOworQEAgLTc0NjcsNyArNjg1NCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfZXZlbnQgKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkp OworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2ZW50IChHcmFwaGVuZS5S ZWN0IHJlY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3RleHQgKGludCBzdGFydF9wb3MsIGludCBl bmRfcG9zKTsKK0BAIC03NTA1LDk0ICs2ODkyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBh aW50Tm9kZSoiKV0KKyAJCXB1YmxpYyBUZXh0Tm9kZSAoUGFuZ28uTGF5b3V0PyBsYXlvdXQsIENs dXR0ZXIuQ29sb3I/IGNvbG9yKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dHVyZV9nZXRfdHlwZSAo KSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBUZXh0dXJl IDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENs dXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0J CXB1YmxpYyBUZXh0dXJlICgpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIFRleHR1cmUuZnJvbV9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIild CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIFRleHR1cmUuZnJvbV9maWxlIChzdHJpbmcg ZmlsZW5hbWUpIHRocm93cyBDbHV0dGVyLlRleHR1cmVFcnJvcjsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdm9p ZCBnZXRfYmFzZV9zaXplIChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X2NvZ2xfbWF0ZXJp YWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUg Z2V0X2NvZ2xfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgQ2x1dHRl ci5UZXh0dXJlUXVhbGl0eSBnZXRfZmlsdGVyX3F1YWxpdHkgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIGJvb2wgZ2V0X2tlZXBfYXNwZWN0X3JhdGlvICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sb2FkX2FzeW5jICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBib29sIGdldF9sb2FkX2RhdGFfYXN5bmMgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIGludCBnZXRfbWF4X3RpbGVfd2FzdGUgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3BpY2tfd2l0aF9hbHBoYSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfcmVwZWF0IChvdXQgYm9vbCByZXBlYXRfeCwgb3V0 IGJvb2wgcmVwZWF0X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9z eW5jX3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGJvb2wgc2V0X2FyZWFf ZnJvbV9yZ2JfZGF0YSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0 YSwgYm9vbCBoYXNfYWxwaGEsIGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBp bnQgcm93c3RyaWRlLCBpbnQgYnBwLCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dz IEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvZ2xf bWF0ZXJpYWwgKENvZ2wuSGFuZGxlIGNvZ2xfbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9jb2dsX3RleHR1cmUgKENvZ2wuSGFuZGxlIGNvZ2xfdGV4KTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZmlsdGVyX3F1YWxpdHkgKENs dXR0ZXIuVGV4dHVyZVF1YWxpdHkgZmlsdGVyX3F1YWxpdHkpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0K Ky0JCXB1YmxpYyBib29sIHNldF9mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdM aWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21fcmdi X2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGJvb2wg aGFzX2FscGhhLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCByb3dzdHJpZGUsIGludCBicHAs IENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV95dXZfZGF0YSAoW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBD bHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2tlZXBfYXNwZWN0X3JhdGlvIChib29sIGtlZXBf YXNwZWN0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbG9hZF9hc3lu YyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfbG9hZF9kYXRhX2FzeW5jIChib29sIGxvYWRfYXN5bmMpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9waWNrX3dpdGhfYWxwaGEgKGJvb2wgcGlja193aXRoX2FscGhh KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVwZWF0IChib29sIHJl cGVhdF94LCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfc3luY19zaXplIChib29sIHN5bmNfc2l6ZSk7CistCQlwdWJsaWMgQ29nbC5NYXRlcmlh bCBjb2dsX21hdGVyaWFsIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDb2dsLlRleHR1cmUgY29n bF90ZXh0dXJlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGJvb2wgZGlzYWJsZV9zbGljaW5nIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBzdHJpbmcgZmlsZW5hbWUgeyBvd25lZCBnZXQ7IHNldDsg fQorLQkJcHVibGljIENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZmlsdGVyX3F1YWxpdHkgeyBnZXQ7 IHNldCBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBib29sIGtlZXBfYXNwZWN0X3JhdGlvIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBsb2FkX2FzeW5jIHsg c2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgbG9hZF9kYXRhX2FzeW5j IHsgc2V0OyB9CistCQlwdWJsaWMgYm9vbCBwaWNrX3dpdGhfYWxwaGEgeyBnZXQ7IHNldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXBlYXRfeCB7IGdldDsgc2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJlcGVhdF95IHsgZ2V0 OyBzZXQ7IH0KKy0JCXB1YmxpYyBib29sIHN5bmNfc2l6ZSB7IGdldDsgc2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgdGlsZV93YXN0ZSB7IGdldDsgfQorLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGxvYWRfZmluaXNoZWQg KEdMaWIuRXJyb3IgZXJyb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBp eGJ1Zl9jaGFuZ2UgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc2l6ZV9j aGFuZ2UgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1cmVf bm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJs aWMgY2xhc3MgVGV4dHVyZU5vZGUgOiBDbHV0dGVyLlBpcGVsaW5lTm9kZSB7CitAQCAtNzYwNCw3 ICs2OTAzLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMgY2xhc3MgVGltZWxpbmUg OiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyBUaW1lbGluZSAodWludCBtc2Vjcyk7CisrCQlwdWJsaWMgVGltZWxpbmUgKHVpbnQg ZHVyYXRpb25fbXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyB2 b2lkIGFkZF9tYXJrZXIgKHN0cmluZyBtYXJrZXJfbmFtZSwgZG91YmxlIHByb2dyZXNzKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC03NjEyLDEyICs2OTExLDE1IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFkdmFuY2UgKHVpbnQgbXNlY3MpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgYWR2YW5jZV90b19tYXJr ZXIgKHN0cmluZyBtYXJrZXJfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIENs dXR0ZXIuVGltZWxpbmUgY2xvbmUgKCk7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisrCQlwdWJsaWMgVGltZWxpbmUuZm9yX2FjdG9yIChDbHV0dGVyLkFjdG9y IGFjdG9yLCB1aW50IGR1cmF0aW9uX21zKTsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKysJCXB1YmxpYyBUaW1lbGluZS5mb3JfZnJhbWVfY2xvY2sgKENsdXR0 ZXIuRnJhbWVDbG9jayBmcmFtZV9jbG9jaywgdWludCBkdXJhdGlvbl9tcyk7CisrCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3RvciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9hdXRvX3JldmVyc2UgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2N1YmljX2Jlemllcl9wcm9n cmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIuUG9pbnQgY18yKTsKKysJCXB1YmxpYyBi b29sIGdldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdyYXBoZW5lLlBvaW50IGNfMSwgR3JhcGhl bmUuUG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg aW50IGdldF9jdXJyZW50X3JlcGVhdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K K0BAIC03NjMxLDggKzY5MzMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludDY0IGdldF9kdXJhdGlvbl9oaW50ICgpOwor IAkJcHVibGljIHVpbnQgZ2V0X2VsYXBzZWRfdGltZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBn ZXRfbG9vcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBkb3Vi bGUgZ2V0X3Byb2dyZXNzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03 NjUxLDE4ICs2OTUxLDE4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9tYXJrZXIgKHN0cmluZyBtYXJrZXJf bmFtZSk7CisgCQlwdWJsaWMgdm9pZCByZXdpbmQgKCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfYWN0 b3IgKENsdXR0ZXIuQWN0b3I/IGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9hdXRvX3JldmVyc2UgKGJvb2wgcmV2ZXJzZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2N1YmljX2Jlemllcl9w cm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIuUG9pbnQgY18yKTsKKysJCXB1Ymxp YyB2b2lkIHNldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdyYXBoZW5lLlBvaW50IGNfMSwgR3Jh cGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9kZWxheSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZGlyZWN0aW9uIChDbHV0dGVyLlRpbWVsaW5lRGlyZWN0 aW9uIGRpcmVjdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMg dm9pZCBzZXRfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9s b29wIChib29sIGxvb3ApOworKwkJcHVibGljIHZvaWQgc2V0X2ZyYW1lX2Nsb2NrIChDbHV0dGVy LkZyYW1lQ2xvY2sgZnJhbWVfY2xvY2spOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9wcm9ncmVzc19mdW5jIChvd25lZCBDbHV0dGVyLlRpbWVsaW5l UHJvZ3Jlc3NGdW5jPyBmdW5jKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAt NzY3NCw2ICs2OTc0LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2tp cCAodWludCBtc2Vjcyk7CisgCQlwdWJsaWMgdm9pZCBzdGFydCAoKTsKKyAJCXB1YmxpYyB2b2lk IHN0b3AgKCk7CisrCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBhY3RvciB7IGdldDsgc2V0IGNvbnN0 cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgYXV0 b19yZXZlcnNlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KK0BA IC03NjgyLDggKzY5ODMsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRl ci5UaW1lbGluZURpcmVjdGlvbiBkaXJlY3Rpb24geyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHVpbnQgZHVyYXRpb24geyBnZXQ7IHNldDsgfQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyBib29sIGxvb3AgeyBnZXQ7IHNldDsgfQorKwkJW05vQWNjZXNzb3JNZXRo b2RdCisrCQlwdWJsaWMgQ2x1dHRlci5GcmFtZUNsb2NrIGZyYW1lX2Nsb2NrIHsgb3duZWQgZ2V0 OyBzZXQgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIENsdXR0ZXIuQW5pbWF0aW9uTW9kZSBwcm9ncmVzc19tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzY5NywxMiArNjk5OCw2IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgdm9pZCBzdG9wcGVkIChib29sIGlzX2ZpbmlzaGVkKTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW0NvbXBh Y3RdCistCXB1YmxpYyBjbGFzcyBUaW1lb3V0UG9vbCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgVGltZW91dFBvb2wgKGludCBwcmlvcml0 eSk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorQEAgLTc3NTMsNiArNzA0OCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5OworIAl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90 cmFuc2Zvcm1fbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgVHJhbnNmb3JtTm9k ZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMgVHJhbnNm b3JtTm9kZSAoQ29nbC5NYXRyaXggcHJvamVjdGlvbik7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RyYW5z aXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVi bGljIGFic3RyYWN0IGNsYXNzIFRyYW5zaXRpb24gOiBDbHV0dGVyLlRpbWVsaW5lLCBDbHV0dGVy LlNjcmlwdGFibGUgeworQEAgLTc3OTIsNyArNzA5Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3Rl ZCBWaXJ0dWFsSW5wdXREZXZpY2UgKCk7CisgCQlwdWJsaWMgaW50IGdldF9kZXZpY2VfdHlwZSAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBnZXRfbWFuYWdlciAo KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2Fic29sdXRlX21vdGlvbiAodWludDY0 IHRpbWVfdXMsIGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5v dGlmeV9idXR0b24gKHVpbnQ2NCB0aW1lX3VzLCB1aW50MzIgYnV0dG9uLCBDbHV0dGVyLkJ1dHRv blN0YXRlIGJ1dHRvbl9zdGF0ZSk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV9kaXNj cmV0ZV9zY3JvbGwgKHVpbnQ2NCB0aW1lX3VzLCBDbHV0dGVyLlNjcm9sbERpcmVjdGlvbiBkaXJl Y3Rpb24sIENsdXR0ZXIuU2Nyb2xsU291cmNlIHNjcm9sbF9zb3VyY2UpOworQEAgLTc4MDMsMjgg KzcxMDIsMjcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBu b3RpZnlfdG91Y2hfZG93biAodWludDY0IHRpbWVfdXMsIGludCBzbG90LCBkb3VibGUgeCwgZG91 YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfbW90aW9uICh1aW50 NjQgdGltZV91cywgaW50IHNsb3QsIGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlwdWJsaWMgdmly dHVhbCB2b2lkIG5vdGlmeV90b3VjaF91cCAodWludDY0IHRpbWVfdXMsIGludCBzbG90KTsKKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBkZXZp Y2VfbWFuYWdlciB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5J bnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05vQWNj ZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5TZWF0IHNlYXQgeyBvd25lZCBnZXQ7IGNv bnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl96b29tX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAlwdWJsaWMgY2xhc3MgWm9vbUFjdGlvbiA6 IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorIAkJcHVibGljIFpvb21BY3Rp b24gKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9p bnQpOworLQkJcHVibGljIHZvaWQgZ2V0X3RyYW5zZm9ybWVkX2ZvY2FsX3BvaW50IChDbHV0dGVy LlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF9mb2NhbF9wb2ludCAoR3JhcGhlbmUu UG9pbnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X3RyYW5zZm9ybWVkX2ZvY2FsX3BvaW50 IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisgCQlwdWJsaWMgQ2x1dHRlci5ab29tQXhpcyBnZXRf em9vbV9heGlzICgpOworIAkJcHVibGljIHZvaWQgc2V0X3pvb21fYXhpcyAoQ2x1dHRlci5ab29t QXhpcyBheGlzKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlpvb21BeGlzIHpvb21fYXhpcyB7IGdldDsg c2V0OyB9CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB6b29tIChDbHV0dGVyLkFjdG9y IGFjdG9yLCBDbHV0dGVyLlBvaW50IGZvY2FsX3BvaW50LCBkb3VibGUgZmFjdG9yKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHpvb20gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIEdyYXBo ZW5lLlBvaW50IGZvY2FsX3BvaW50LCBkb3VibGUgZmFjdG9yKTsKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2NuYW1lID0gIkNsdXR0 ZXJBbmltYXRhYmxlSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FuaW1hdGFibGVfZ2V0 X3R5cGUgKCkiKV0KKyAJcHVibGljIGludGVyZmFjZSBBbmltYXRhYmxlIDogR0xpYi5PYmplY3Qg eworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu OCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGFic3RyYWN0IGJvb2wgYW5pbWF0ZV9wcm9w ZXJ0eSAoQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0aW9uLCBzdHJpbmcgcHJvcGVydHlfbmFtZSwg R0xpYi5WYWx1ZSBpbml0aWFsX3ZhbHVlLCBHTGliLlZhbHVlIGZpbmFsX3ZhbHVlLCBkb3VibGUg cHJvZ3Jlc3MsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAkJcHVibGljIGFic3RyYWN0IHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9wcm9wZXJ0 eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworKwkJcHVibGljIGFic3RyYWN0IHVub3duZWQgQ2x1 dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisg CQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBnZXRfaW5pdGlhbF9zdGF0ZSAoc3RyaW5nIHByb3BlcnR5 X25hbWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor QEAgLTc4MzUsMTIgKzcxMzMsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9j b250YWluZXJfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlw dWJsaWMgaW50ZXJmYWNlIENvbnRhaW5lciA6IEdMaWIuT2JqZWN0IHsKKy0JCXB1YmxpYyB2b2lk IGFkZCAocGFyYW1zIENsdXR0ZXIuQWN0b3JbXSBhY3RvcnMpOworIAkJW0NDb2RlICh2ZnVuY19u YW1lID0gImFkZCIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lk IGFkZF9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJ cHVibGljIHZvaWQgYWRkX3ZhbGlzdCAoQ2x1dHRlci5BY3RvciBmaXJzdF9hY3RvciwgdmFfbGlz dCB2YXJfYXJncyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9p ZCBjaGlsZF9nZXQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC44IildCitAQCAtNzg2MCwxOCArNzE1NSwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlc3Ryb3lfY2hpbGRfbWV0YSAoQ2x1dHRlci5BY3Rv ciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIGZpbmRfY2hpbGRfYnlfbmFtZSAoc3RyaW5nIGNoaWxkX25hbWUpOwor LQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxkX3By b3BlcnR5IildCistCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2No aWxkX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQor LQkJcHVibGljIGFic3RyYWN0IHZvaWQgQGZvcmVhY2ggKENsdXR0ZXIuQ2FsbGJhY2sgY2FsbGJh Y2spOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZm9yZWFjaF93 aXRoX2ludGVybmFscyAoQ2x1dHRlci5DYWxsYmFjayBjYWxsYmFjayk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQ2hpbGRN ZXRhIGdldF9jaGlsZF9tZXRhIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40 IildCisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5BY3Rvcj4gZ2V0X2NoaWxkcmVu ICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19saXN0X2No aWxkX3Byb3BlcnRpZXMiKV0KKy0JCXB1YmxpYyBjbGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVj W10gbGlzdF9jaGlsZF9wcm9wZXJ0aWVzICgpOworIAkJW0NDb2RlICh2ZnVuY19uYW1lID0gImxv d2VyIildCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBsb3dlcl9j aGlsZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3Rvcj8gc2libGluZyA9IG51bGwp OworQEAgLTc4ODMsOCArNzE3MCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAo dmZ1bmNfbmFtZSA9ICJyZW1vdmUiKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYWJz dHJhY3Qgdm9pZCByZW1vdmVfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV92YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmly c3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKyAJCXB1Ymxp YyBhYnN0cmFjdCB2b2lkIHNvcnRfZGVwdGhfb3JkZXIgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBhY3Rvcl9hZGRlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CitAQCAtNzkwMSw3 ICs3MTg2LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGFic3RyYWN0IHZvaWQg aW52YWxpZGF0ZSAoKTsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGludmFsaWRhdGVfc2l6ZSAo KTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwYWludF9jb250ZW50 IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBhaW50Tm9kZSBub2RlKTsKKysJCXB1Ymxp YyBhYnN0cmFjdCB2b2lkIHBhaW50X2NvbnRlbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0 ZXIuUGFpbnROb2RlIG5vZGUsIENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIGF0dGFjaGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCitAQCAtNzkxNSw0NyArNzIwMCwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfY3VzdG9tX3Byb3BlcnR5IChDbHV0dGVyLlNjcmlw dCBzY3JpcHQsIHN0cmluZyBuYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCXB1YmxpYyBhYnN0 cmFjdCB2b2lkIHNldF9pZCAoc3RyaW5nIGlkXyk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCXB1YmxpYyBpbnRlcmZhY2UgU3RhZ2VX aW5kb3cgOiBHTGliLk9iamVjdCB7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0 IHZvaWQgYWRkX3JlZHJhd19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2dlb21ldHJ5IChD bHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJz dHJhY3QgaW50IGdldF9wZW5kaW5nX3N3YXBzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyBhYnN0cmFjdCB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dyYXBwZXIgKCk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IGJvb2wgaGFzX3JlZHJhd19jbGlwcyAoKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoaWRlICgpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29sIGlnbm9yaW5nX3JlZHJhd19jbGlwcyAoKTsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCByZWFsaXplICgpOworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlc2l6ZSAoaW50IHdpZHRoLCBp bnQgaGVpZ2h0KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRf Y3Vyc29yX3Zpc2libGUgKGJvb2wgY3Vyc29yX3Zpc2libGUpOworLQkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9mdWxsc2NyZWVuIChib29sIGlzX2Z1bGxzY3JlZW4p OworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF90aXRsZSAoc3Ry aW5nIHRpdGxlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRf dXNlcl9yZXNpemFibGUgKGJvb2wgaXNfcmVzaXphYmxlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93IChib29sIGRvX3JhaXNlKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCB1bnJlYWxpemUgKCk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVS X1RZUEVfQUNUT1JfQk9YIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlv biA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0b3JfYm94X2dldF90eXBl ICgpIildCisgCXB1YmxpYyBzdHJ1Y3QgQWN0b3JCb3ggeworIAkJcHVibGljIGZsb2F0IHgxOwor IAkJcHVibGljIGZsb2F0IHkxOworIAkJcHVibGljIGZsb2F0IHgyOworIAkJcHVibGljIGZsb2F0 IHkyOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1 dHRlci5BY3RvckJveD8gYWxsb2MgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsKKysJCXB1YmxpYyBzdGF0aWMgdm9pZCBj bGFtcF90b19waXhlbCAocmVmIENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChmbG9hdCB4LCBmbG9hdCB5 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KK0BAIC03OTY0LDggKzcyMTgsNiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5BY3RvckJv eCBib3hfYik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBm cmVlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2JveF9mcm9tX3ZlcnRp Y2VzIildCistCQlwdWJsaWMgQWN0b3JCb3guZnJvbV92ZXJ0aWNlcyAoQ2x1dHRlci5WZXJ0ZXhb XSB2ZXJ0cyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgZmxvYXQg Z2V0X2FyZWEgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzk4Niw2ICs3 MjM4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgaW5pdF9yZWN0IChm bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yQm94IGludGVycG9sYXRl IChDbHV0dGVyLkFjdG9yQm94IGZpbmFsLCBkb3VibGUgcHJvZ3Jlc3MpOworKwkJcHVibGljIGJv b2wgaXNfaW5pdGlhbGl6ZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlw dWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc2NhbGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorQEAgLTgwMTEsNyArNzI2NCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyB3ZWFrIENhaXJvLlN1cmZhY2UgaW1hZ2U7CisgCQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50 IHJlY3Q7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1IiKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVk X2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRl cl9jb2xvcl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IENvbG9yIHsKKyAJCXB1Ymxp YyB1aW50OCByZWQ7CisgCQlwdWJsaWMgdWludDggZ3JlZW47CitAQCAtODAyNywxMiArNzI4MCwx MSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5D b2xvciB2Mik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdm9pZCBm cmVlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21faGxzIildCist CQlwdWJsaWMgQ29sb3IuZnJvbV9obHMgKGZsb2F0IGh1ZSwgZmxvYXQgbHVtaW5hbmNlLCBmbG9h dCBzYXR1cmF0aW9uKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3Bp eGVsIildCistCQlwdWJsaWMgQ29sb3IuZnJvbV9waXhlbCAodWludDMyIHBpeGVsKTsKKy0JCVtD Q29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3N0cmluZyIpXQorLQkJcHVibGljIENv bG9yLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsKKysJCXB1YmxpYyBzdGF0aWMgdm9pZCBmcm9t X2hscyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIGZsb2F0IGh1ZSwgZmxvYXQgbHVtaW5hbmNl LCBmbG9hdCBzYXR1cmF0aW9uKTsKKysJCXB1YmxpYyBzdGF0aWMgdm9pZCBmcm9tX3BpeGVsIChv dXQgQ2x1dHRlci5Db2xvciBjb2xvciwgdWludDMyIHBpeGVsKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgYm9vbCBmcm9tX3N0cmluZyAob3V0IENsdXR0 ZXIuQ29sb3IgY29sb3IsIHN0cmluZyBzdHIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQ29sb3I/IGdldF9zdGF0aWMgKENs dXR0ZXIuU3RhdGljQ29sb3IgY29sb3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor IAkJcHVibGljIHVpbnQgaGFzaCAoKTsKK0BAIC04MDQxLDggKzcyOTMsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ2x1dHRl ci5Db2xvciBpbnRlcnBvbGF0ZSAoQ2x1dHRlci5Db2xvciBmaW5hbCwgZG91YmxlIHByb2dyZXNz KTsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGxpZ2h0ZW4gKCk7CistCQlbQ0NvZGUgKGNuYW1l ID0gImNsdXR0ZXJfY29sb3JfZnJvbV9zdHJpbmciKV0KKy0JCXB1YmxpYyBib29sIHBhcnNlX3N0 cmluZyAoc3RyaW5nIHN0cik7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBzaGFkZSAoZG91Ymxl IGZhY3Rvcik7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBzdWJ0cmFjdCAoQ2x1dHRlci5Db2xv ciBiKTsKKyAJCXB1YmxpYyB2b2lkIHRvX2hscyAob3V0IGZsb2F0IGh1ZSwgb3V0IGZsb2F0IGx1 bWluYW5jZSwgb3V0IGZsb2F0IHNhdHVyYXRpb24pOworQEAgLTgwNTAsMjMgKzczMDAsMTAgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVi bGljIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZvZ19nZXRfdHlwZSAo KSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RydWN0IEZvZyB7CistCQlwdWJsaWMg ZmxvYXQgel9uZWFyOworLQkJcHVibGljIGZsb2F0IHpfZmFyOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9n ZW9tZXRyeV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RydWN0IEdlb21ldHJ5IHsKKy0J CXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyB1aW50IHdpZHRoOwor LQkJcHVibGljIHVpbnQgaGVpZ2h0OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIGJvb2wgaW50ZXJzZWN0cyAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeTEpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgdW5p b24gKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnlfYik7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJs aWMgc3RydWN0IEZyYW1lTGlzdGVuZXJJZmFjZSB7CisrCQlwdWJsaWMgd2VhayBnbG9iYWw6OmJl Zm9yZV9mcmFtZSBiZWZvcmVfZnJhbWU7CisrCQlwdWJsaWMgd2VhayBnbG9iYWw6OmZyYW1lIGZy YW1lOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IEtiZEExMXlTZXR0aW5n cyB7CitAQCAtODA3OCw3ICs3MzE1LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IGludCBtb3VzZWtleXNfbWF4X3NwZWVkOworIAkJcHVibGljIGludCBtb3VzZWtleXNfYWNjZWxf dGltZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfa25vdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdf Ym94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQor IAlwdWJsaWMgc3RydWN0IEtub3QgeworIAkJcHVibGljIGludCB4OworQEAgLTgwODcsOCArNzMy NCwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRl ci5Lbm90IGtub3RfYik7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9N QVRSSVgiKV0KKyAJcHVibGljIHN0cnVjdCBNYXRyaXggOiBDb2dsLk1hdHJpeCB7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGljIHN0YXRpYyBDbHV0dGVyLk1hdHJpeD8g YWxsb2MgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGljIHZvaWQg ZnJlZSAoKTsKKysJCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGdldF90eXBlICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTWF0cml4 PyBpbml0X2Zyb21fYXJyYXkgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCB2 YWx1ZXNbMTZdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLk1hdHJpeD8gaW5pdF9mcm9tX21hdHJpeCAoQ2x1dHRlci5NYXRyaXggYik7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5NYXRyaXg/IGluaXRfaWRlbnRpdHkgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1Ymxp YyBzdHJ1Y3QgUGFkQnV0dG9uRXZlbnQgeworQEAgLTgxMzAsNyArNzM3OCw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgdmFsdWU7CisgCQlwdWJsaWMgdWludDMyIG1v ZGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhdGhfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0g ImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3BhdGhfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCXB1YmxpYyBzdHJ1Y3QgUGF0aE5vZGUgeworIAkJcHVibGljIENsdXR0ZXIuUGF0 aE5vZGVUeXBlIHR5cGU7CitAQCAtODE0MCw3ICs3Mzg4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuUGF0aE5vZGUgbm9kZV9iKTsKKyAJCXB1 YmxpYyB2b2lkIGZyZWUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dldF90eXBl ICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVk X2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGVyc3BlY3RpdmVfZ2V0X3R5cGUgKCkiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RydWN0IFBlcnNwZWN0aXZlIHsK KyAJCXB1YmxpYyBmbG9hdCBmb3Z5OworQEAgLTgxNDksNiArNzM5NywxOSBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgel9mYXI7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisr CXB1YmxpYyBzdHJ1Y3QgUG9pbnRlckExMXlTZXR0aW5ncyB7CisrCQlwdWJsaWMgQ2x1dHRlci5Q b2ludGVyQTExeUZsYWdzIGNvbnRyb2xzOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlE d2VsbENsaWNrVHlwZSBkd2VsbF9jbGlja190eXBlOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRl ckExMXlEd2VsbE1vZGUgZHdlbGxfbW9kZTsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5 RHdlbGxEaXJlY3Rpb24gZHdlbGxfZ2VzdHVyZV9zaW5nbGU7CisrCQlwdWJsaWMgQ2x1dHRlci5Q b2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dlc3R1cmVfZG91YmxlOworKwkJcHVibGlj IENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2VsbF9nZXN0dXJlX2RyYWc7Cisr CQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dlc3R1cmVf c2Vjb25kYXJ5OworKwkJcHVibGljIGludCBzZWNvbmRhcnlfY2xpY2tfZGVsYXk7CisrCQlwdWJs aWMgaW50IGR3ZWxsX2RlbGF5OworKwkJcHVibGljIGludCBkd2VsbF90aHJlc2hvbGQ7CisrCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI4IildCisgCXB1YmxpYyBz dHJ1Y3QgUHJveGltaXR5RXZlbnQgeworIAkJcHVibGljIENsdXR0ZXIuRXZlbnRUeXBlIHR5cGU7 CitAQCAtODE1OCw0NyArNzQxOSwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg d2VhayBDbHV0dGVyLkFjdG9yIHNvdXJjZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXRE ZXZpY2UgZGV2aWNlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRTIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAi Z19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0g ImNsdXR0ZXJfdW5pdHNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAlwdWJsaWMgc3RydWN0IFVuaXRzIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlVuaXRzPyBjb3B5 ICgpOworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRl cl91bml0c19mcm9tX2NtIildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9jbSAoZmxvYXQgY20pOwor LQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fZW0iKV0KKy0JCXB1YmxpYyBV bml0cy5mcm9tX2VtIChmbG9hdCBlbSk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5p dHNfZnJvbV9lbV9mb3JfZm9udCIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fZW1fZm9yX2ZvbnQg KHN0cmluZyBmb250X25hbWUsIGZsb2F0IGVtKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRl cl91bml0c19mcm9tX21tIildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9tbSAoZmxvYXQgbW0pOwor LQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fcGl4ZWxzIildCistCQlwdWJs aWMgVW5pdHMuZnJvbV9waXhlbHMgKGludCBweCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfdW5pdHNfZnJvbV9wdCIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fcHQgKGZsb2F0IHB0KTsK Ky0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3N0cmluZyIpXQorLQkJcHVi bGljIFVuaXRzLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlVu aXRUeXBlIGdldF91bml0X3R5cGUgKCk7CisgCQlwdWJsaWMgZmxvYXQgZ2V0X3VuaXRfdmFsdWUg KCk7CisgCQlwdWJsaWMgZmxvYXQgdG9fcGl4ZWxzICgpOworIAkJcHVibGljIHN0cmluZyB0b19z dHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3ZlcnRleF9nZXRfdHlwZSAoKSIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdHJ1Y3QgVmVydGV4IHsKKy0JCXB1Ymxp YyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgZmxvYXQgejsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuVmVydGV4 PyBhbGxvYyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLlZlcnRleD8gY29weSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLlZlcnRleCB2ZXJ0ZXhfYik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVmVydGV4PyBpbml0IChm bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQUNUT1JfQUxJR05f IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX2FsaWduX2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBlbnVtIEFjdG9yQWxpZ24geworQEAgLTgy MjMsMTQgKzc0NTMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlZX0FYSVMsCisgCQlCT1RI CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y3ByZWZpeCA9ICJDTFVUVEVSXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbGxvY2F0aW9uX2ZsYWdz X2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgZW51bSBBbGxvY2F0aW9uRmxhZ3MgeworLQkJQUxMT0NBVElPTl9OT05FLAorLQkJ QUJTT0xVVEVfT1JJR0lOX0NIQU5HRUQsCistCQlERUxFR0FURV9MQVlPVVQKKy0JfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNM VVRURVJfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FuaW1hdGlvbl9tb2RlX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGVudW0gQW5pbWF0aW9uTW9k ZSB7CitAQCAtODMzNiw2ICs3NTU4LDI3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVlfQVhJ UywKKyAJCUJPVEgKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBEZWJ1 Z0ZsYWcgeworKwkJTUlTQywKKysJCUFDVE9SLAorKwkJVEVYVFVSRSwKKysJCUVWRU5ULAorKwkJ UEFJTlQsCisrCQlQQU5HTywKKysJCUJBQ0tFTkQsCisrCQlTQ0hFRFVMRVIsCisrCQlTQ1JJUFQs CisrCQlTSEFERVIsCisrCQlNVUxUSVNUQUdFLAorKwkJQU5JTUFUSU9OLAorKwkJTEFZT1VULAor KwkJUElDSywKKysJCUVWRU5UTE9PUCwKKysJCUNMSVBQSU5HLAorKwkJT09CX1RSQU5TRk9STVMK KysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj cHJlZml4ID0gIkNMVVRURVJfRFJBR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhZ19heGlzX2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGVudW0g RHJhZ0F4aXMgeworQEAgLTgzNDMsMTEgKzc1ODYsMjQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJWF9BWElTLAorIAkJWV9BWElTCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0VGRkVDVF9QQUlOVF9BQ1RP Ul8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X3BhaW50X2ZsYWdzX2dldF90eXBlICgpIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVm aXggPSAiQ0xVVFRFUl9ERUJVR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhd19kZWJ1Z19mbGFn X2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gRHJhd0RlYnVnRmxhZyB7 CisrCQlESVNBQkxFX1NXQVBfRVZFTlRTLAorKwkJRElTQUJMRV9DTElQUEVEX1JFRFJBV1MsCisr CQlSRURSQVdTLAorKwkJUEFJTlRfVk9MVU1FUywKKysJCURJU0FCTEVfQ1VMTElORywKKysJCURJ U0FCTEVfT0ZGU0NSRUVOX1JFRElSRUNULAorKwkJQ09OVElOVU9VU19SRURSQVcsCisrCQlQQUlO VF9ERUZPUk1fVElMRVMsCisrCQlQQUlOVF9EQU1BR0VfUkVHSU9OCisrCX0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVS X0VGRkVDVF9QQUlOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X3BhaW50X2ZsYWdzX2dl dF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gRWZmZWN0UGFpbnRGbGFncyB7 CistCQlbQ0NvZGUgKGNuYW1lID0gIkNMVVRURVJfRUZGRUNUX1BBSU5UX0FDVE9SX0RJUlRZIild CistCQlBQ1RPUl9ESVJUWQorKwkJQUNUT1JfRElSVFksCisrCQlCWVBBU1NfRUZGRUNUCisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZp eCA9ICJDTFVUVEVSX0VWRU5UXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9mbGFnc19nZXRf dHlwZSAoKSIpXQorIAlbRmxhZ3NdCitAQCAtODM5MiwyMSArNzY0OCwxMiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCVtGbGFnc10KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJs aWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9OUE9ULAorLQkJU1dBUF9USFJPVFRM RSwKKy0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKyAJCVNUQUdFX1NU QVRJQywKKy0JCVNUQUdFX1VTRVJfUkVTSVpFLAorIAkJU1RBR0VfQ1VSU09SLAorIAkJU0hBREVS U19HTFNMLAorIAkJT0ZGU0NSRUVOLAorIAkJU1RBR0VfTVVMVElQTEUsCistCQlTV0FQX0VWRU5U UzsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0dXJlX2F2YWlsYWJsZSIpXQorLQkJ cHVibGljIGJvb2wgaXNfYXZhaWxhYmxlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVy X2ZlYXR1cmVfZ2V0X2FsbCIpXQorLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLkZlYXR1cmVGbGFn cyBAZ2V0ICgpOworKwkJU1dBUF9FVkVOVFMKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRkxPV18iLCB0eXBl X2lkID0gImNsdXR0ZXJfZmxvd19vcmllbnRhdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCitAQCAtODQxNCwxMiArNzY2MSwxMCBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRk9O VF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZm9udF9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxh Z3NdCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjIyIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEZvbnRGbGFncyB7CistCQlNSVBN QVBQSU5HLAorLQkJSElOVElORworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRlJBTUVfUkVTVUxUXyIsIHR5cGVfaWQg PSAiY2x1dHRlcl9mcmFtZV9yZXN1bHRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gRnJh bWVSZXN1bHQgeworKwkJUEVORElOR19QUkVTRU5URUQsCisrCQlJRExFCisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVU VEVSX0dFU1RVUkVfVFJJR0dFUl9FREdFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9nZXN0dXJlX3Ry aWdnZXJfZWRnZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQor QEAgLTg2MzQsNyArNzg3OSw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorIAlwdWJsaWMgZW51bSBPZmZzY3JlZW5SZWRpcmVjdCB7CisgCQlBVVRP TUFUSUNfRk9SX09QQUNJVFksCistCQlBTFdBWVMKKysJCUFMV0FZUywKKysJCU9OX0lETEUKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJl Zml4ID0gIkNMVVRURVJfT1JJRU5UQVRJT05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX29yaWVudGF0 aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtODY0 Miw2ICs3ODg4LDEzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCUhPUklaT05UQUwsCisgCQlW RVJUSUNBTAorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9QQUlOVF9GTEFHXyIsIHR5cGVfaWQgPSAiY2x1dHRl cl9wYWludF9mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gUGFp bnRGbGFnIHsKKysJCU5PTkUsCisrCQlOT19DVVJTT1JTLAorKwkJRk9SQ0VfQ1VSU09SUworKwl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVm aXggPSAiQ0xVVFRFUl9QQU5fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Bhbl9heGlzX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCXB1YmxpYyBlbnVtIFBhbkF4 aXMgeworQEAgLTg2NjEsNiArNzkxNCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlSRUxf TElORV9UTywKKyAJCVJFTF9DVVJWRV9UTworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJVR19OT1BfIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3BpY2tfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxh Z3NdCisrCXB1YmxpYyBlbnVtIFBpY2tEZWJ1Z0ZsYWcgeworKwkJUElDS0lORworKwl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAi Q0xVVFRFUl9QSUNLXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX21vZGVfZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgZW51bSBQaWNrTW9kZSB7 CitAQCAtODY2OCwxMyArNzkyNiw0NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlSRUFDVElW RSwKKyAJCUFMTAorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BMTFZX0RXRUxMX0NMSUNLX1RZUEVfIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV9kd2VsbF9jbGlja190eXBlX2dldF90eXBlICgp IildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgeworKwkJTk9ORSwK KysJCVBSSU1BUlksCisrCQlTRUNPTkRBUlksCisrCQlNSURETEUsCisrCQlET1VCTEUsCisrCQlE UkFHCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfRFdFTExfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9wb2ludGVyX2ExMXlfZHdlbGxfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCXB1 YmxpYyBlbnVtIFBvaW50ZXJBMTF5RHdlbGxEaXJlY3Rpb24geworKwkJTk9ORSwKKysJCUxFRlQs CisrCQlSSUdIVCwKKysJCVVQLAorKwkJRE9XTgorKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BMTFZX0RXRUxM X01PREVfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV9kd2VsbF9tb2RlX2dldF90 eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RHdlbGxNb2RlIHsKKysJCVdJTkRP VywKKysJCUdFU1RVUkUKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV8iLCB0eXBlX2lkID0gImNsdXR0 ZXJfcG9pbnRlcl9hMTF5X2ZsYWdzX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGlj IGVudW0gUG9pbnRlckExMXlGbGFncyB7CisrCQlTRUNPTkRBUllfQ0xJQ0tfRU5BQkxFRCwKKysJ CURXRUxMX0VOQUJMRUQKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV9USU1FT1VUX1RZUEVfIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV90aW1lb3V0X3R5cGVfZ2V0X3R5cGUgKCkiKV0K KysJcHVibGljIGVudW0gUG9pbnRlckExMXlUaW1lb3V0VHlwZSB7CisrCQlTRUNPTkRBUllfQ0xJ Q0ssCisrCQlEV0VMTCwKKysJCUdFU1RVUkUKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUkVQQUlOVF9GTEFH U18iLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVwYWludF9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlb RmxhZ3NdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBlbnVtIFJlcGFp bnRGbGFncyB7CisgCQlQUkVfUEFJTlQsCistCQlQT1NUX1BBSU5ULAorLQkJUVVFVUVfUkVEUkFX X09OX0FERAorKwkJUE9TVF9QQUlOVAorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9SRVFVRVNUXyIsIHR5cGVf aWQgPSAiY2x1dHRlcl9yZXF1ZXN0X21vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjAuOCIpXQorQEAgLTg3NTUsOCArODA0Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJW0ZsYWdzXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBlbnVtIFN0 YWdlU3RhdGUgeworLQkJRlVMTFNDUkVFTiwKKy0JCU9GRlNDUkVFTiwKKyAJCUFDVElWQVRFRAor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNw cmVmaXggPSAiQ0xVVFRFUl9DT0xPUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhdGljX2NvbG9y X2dldF90eXBlICgpIildCitAQCAtODgyMywxMyArODExMiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCUxFRlQsCisgCQlSSUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9UQUJMRV9BTElHTk1FTlRf IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhYmxlX2FsaWdubWVudF9nZXRfdHlwZSAoKSIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yMiIsIHNp bmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBUYWJsZUFsaWdubWVudCB7CistCQlTVEFSVCwK Ky0JCUNFTlRFUiwKKy0JCUVORAorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9URVhUX0RJUkVDVElPTl8iLCB0 eXBlX2lkID0gImNsdXR0ZXJfdGV4dF9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgZW51bSBUZXh0RGlyZWN0aW9uIHsKK0BAIC04 OTA1LDI4ICs4MTg3LDE2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVZBTFVFOworIAkJcHVi bGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9URVhUVVJF X0VSUk9SXyIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBlcnJvcmRv bWFpbiBUZXh0dXJlRXJyb3IgeworLQkJT1VUX09GX01FTU9SWSwKKy0JCU5PX1lVViwKKy0JCUJB RF9GT1JNQVQ7CistCQlwdWJsaWMgc3RhdGljIEdMaWIuUXVhcmsgcXVhcmsgKCk7CistCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2Vf cG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJcHVibGljIGRlbGVn YXRlIENsdXR0ZXIuQWN0b3IgQWN0b3JDcmVhdGVDaGlsZEZ1bmMgKEdMaWIuT2JqZWN0IGl0ZW0p OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0 YW5jZV9wb3MgPSAxLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgZGVsZWdhdGUgZG91 YmxlIEFscGhhRnVuYyAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5j ZSA9ICIwLjIiKV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgQmVoYXZpb3VyRm9yZWFjaEZ1bmMg KENsdXR0ZXIuQmVoYXZpb3VyIGJlaGF2aW91ciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3Bv cyA9IDQuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGRlbGVnYXRl IGJvb2wgQmluZGluZ0FjdGlvbkZ1bmMgKEdMaWIuT2JqZWN0IGdvYmplY3QsIHN0cmluZyBhY3Rp b25fbmFtZSwgdWludCBrZXlfdmFsLCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RpZmllcnMpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5j ZV9wb3MgPSAxLjkpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBDYWxsYmFjayAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGhhc190YXJnZXQgPSBmYWxzZSldCisrCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEVtaXRJ bnB1dERldmljZUV2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLklucHV0RGV2aWNl IGRldmljZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisg CXB1YmxpYyBkZWxlZ2F0ZSBib29sIEV2ZW50RmlsdGVyRnVuYyAoQ2x1dHRlci5FdmVudCBldmVu dCk7CitAQCAtODk1Nyw5ICs4MjI3LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVyc2lv biAoc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVEUkFXOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIHN0YXRpYyBDbHV0dGVyLkFjdG9yQm94 PyBhY3Rvcl9ib3hfYWxsb2MgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgYmFzZV9pbml0ICgpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC04OTcxLDM3ICs4MjM4LDEyIEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyBi b29sIGNoZWNrX3dpbmRvd2luZ19iYWNrZW5kIChzdHJpbmcgYmFja2VuZF90eXBlKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBjbGVhcl9nbHlwaF9jYWNoZSAoKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBjb2xvcl9mcm9tX2hscyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIGZsb2F0 IGh1ZSwgZmxvYXQgbHVtaW5hbmNlLCBmbG9hdCBzYXR1cmF0aW9uKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBjb2xvcl9mcm9tX3BpeGVsIChvdXQgQ2x1dHRlci5Db2xvciBjb2xvciwgdWludDMyIHBpeGVs KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGNvbG9yX2Zy b21fc3RyaW5nIChvdXQgQ2x1dHRlci5Db2xvciBjb2xvciwgc3RyaW5nIHN0cik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkNvbG9yPyBj b2xvcl9nZXRfc3RhdGljIChDbHV0dGVyLlN0YXRpY0NvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE0IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxlX2FjY2Vzc2liaWxpdHkg KCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBkb19ldmVu dCAoQ2x1dHRlci5FdmVudCBldmVudCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJs aWMgc3RhdGljIHVpbnQgZXZlbnRfYWRkX2ZpbHRlciAoQ2x1dHRlci5TdGFnZT8gc3RhZ2UsIFtD Q29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDIuMiwgZGVzdHJveV9ub3RpZnlfcG9zID0gMi4x KV0gb3duZWQgQ2x1dHRlci5FdmVudEZpbHRlckZ1bmMgZnVuYyk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCistCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5FdmVudCBldmVudF9nZXQgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50 IGV2ZW50X3BlZWsgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgZXZlbnRfcmVtb3ZlX2ZpbHRlciAodWludCBpZCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBldmVudHNfcGVuZGluZyAoKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitAQCAtOTAxNCw5ICs4MjU2 LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CXB1YmxpYyBzdGF0aWMgdWludDMyIGdldF9jdXJyZW50X2V2ZW50X3RpbWUgKCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMg c3RhdGljIGJvb2wgZ2V0X2RlYnVnX2VuYWJsZWQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40Iild CisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkJhY2tlbmQgZ2V0X2RlZmF1bHRfYmFj a2VuZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCitAQCAtOTAyNiwxOCArODI2NSw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgc3RhdGljIENsdXR0ZXIuVGV4dERpcmVjdGlv biBnZXRfZGVmYXVsdF90ZXh0X2RpcmVjdGlvbiAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBz dGF0aWMgQ2x1dHRlci5Gb250RmxhZ3MgZ2V0X2ZvbnRfZmxhZ3MgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBQYW5nby5Gb250TWFwIGdldF9mb250 X21hcCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3IgZ2V0X2tleWJvYXJkX2dyYWIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCXB1Ymxp YyBzdGF0aWMgYm9vbCBnZXRfbW90aW9uX2V2ZW50c19lbmFibGVkICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjAuMiIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9n cm91cCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCitAQCAtOTA0NSwyNiArODI3NSw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGlj IHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXBfd2l0aG91dF9pbml0ICgp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRl ci5BY3RvciBnZXRfcG9pbnRlcl9ncmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAlw dWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdldF9zY3JpcHRfaWQgKEdMaWIuT2JqZWN0IGdv YmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdldF9zaG93X2ZwcyAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgdWxvbmcgZ2V0X3RpbWVzdGFtcCAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdyYWJfa2V5Ym9hcmQgKENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg Z3JhYl9wb2ludGVyIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBncmFiX3BvaW50ZXJfZm9yX2RldmljZSAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgaW50IGlkXyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIENsdXR0ZXIuSW5pdEVycm9yIGluaXQgKFtDQ29kZSAo YXJyYXlfbGVuZ3RoX2NuYW1lID0gImFyZ2MiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41KV0gcmVm IHVub3duZWQgc3RyaW5nW10/IGFyZ3YpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorQEAgLTkw ODAsNDEgKzgyOTIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0 X2N1c3RvbV9iYWNrZW5kX2Z1bmMgKHZvaWQqIGZ1bmMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHNldF9kZWZhdWx0X2ZyYW1lX3JhdGUgKHVpbnQgZnJhbWVzX3Blcl9zZWMp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9mb250X2ZsYWdzIChDbHV0 dGVyLkZvbnRGbGFncyBmbGFncyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBz ZXRfbW90aW9uX2V2ZW50c19lbmFibGVkIChib29sIGVuYWJsZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9hZGRfZGF0YV9mdWxsIChzdHJpbmcg dGVzdF9wYXRoLCBvd25lZCBHTGliLlRlc3REYXRhRnVuYyB0ZXN0X2Z1bmMpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIHRlc3RfY2hlY2tfYWN0b3JfYXRf cG9pbnQgKENsdXR0ZXIuQWN0b3Igc3RhZ2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQsIENsdXR0ZXIu QWN0b3IgYWN0b3IsIG91dCBDbHV0dGVyLkFjdG9yPyByZXN1bHQpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIHRlc3RfY2hlY2tfY29sb3JfYXRfcG9pbnQg KENsdXR0ZXIuQWN0b3Igc3RhZ2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQsIENsdXR0ZXIuQ29sb3Ig Y29sb3IsIG91dCBDbHV0dGVyLkNvbG9yIHJlc3VsdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIp XQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciB0ZXN0X2dldF9zdGFnZSAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0X2luaXQgKGludCBhcmdjLCBzdHJpbmcgYXJndik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGludCB0ZXN0X3J1biAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHVuZ3JhYl9rZXli b2FyZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHVu Z3JhYl9wb2ludGVyICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHVuZ3Jh Yl9wb2ludGVyX2Zvcl9kZXZpY2UgKGludCBpZF8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJcHVibGljIHN0YXRpYyB1aW50IHVuaWNvZGVfdG9fa2V5c3ltICh1aW50MzIgd2MpOworIH0K K2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01LWN1c3RvbS52YWxhIHZhcGkvbXV0dGVyLWNv Z2wtNi1jdXN0b20udmFsYQorc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSB2YXBp L211dHRlci1jb2dsLTUtY3VzdG9tLnZhbGEKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTYt Y3VzdG9tLnZhbGEKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC00LmRlcHMgdmFwaS9tdXR0 ZXItY29nbC02LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9t dXR0ZXItY29nbC00LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTYuZGVwcworZGlm ZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTUudmFwaSB2YXBpL211dHRlci1jb2dsLTYudmFwaQor c2ltaWxhcml0eSBpbmRleCA2OCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNS52YXBp CityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC02LnZhcGkKK2luZGV4IGE4OTYxMjI0Li4xOTVl M2IxNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jb2dsLTUudmFwaQorKysrIHZhcGkvbXV0dGVy LWNvZ2wtNi52YXBpCitAQCAtMSw2ICsxLDYgQEAKKy0vKiBtdXR0ZXItY29nbC01LnZhcGkgZ2Vu ZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisrLyogbXV0dGVyLWNvZ2wtNi52 YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAo Y3ByZWZpeCA9ICJDb2dsIiwgZ2lyX25hbWVzcGFjZSA9ICJDb2dsIiwgZ2lyX3ZlcnNpb24gPSAi NSIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJjb2dsXyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJD b2dsIiwgZ2lyX25hbWVzcGFjZSA9ICJDb2dsIiwgZ2lyX3ZlcnNpb24gPSAiNiIsIGxvd2VyX2Nh c2VfY3ByZWZpeCA9ICJjb2dsXyIpXQorIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHR5cGVf aWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0eXBlICgpIildCisgCVtDb21wYWN0XQorQEAgLTI4LDkg KzI4LDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBib29sIHNldF9kYXRhIChzaXpl X3Qgb2Zmc2V0LCBbQ0NvZGUgKGFycmF5X2xlbmd0aF90eXBlID0gInNpemVfdCIpXSB1aW50OFtd IGRhdGEpOworIAkJcHVibGljIHZvaWQgdW5tYXAgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21w YWN0XQorLQlwdWJsaWMgY2xhc3MgRXVsZXIgeworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfY29udGV4dF9nZXRfZ3R5cGUgKCkiKV0K KysJcHVibGljIGNsYXNzIENvbnRleHQgOiBDb2dsLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgQ29udGV4dCAoKTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0 aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlw ZV9pZCA9ICJjb2dsX2ZyYW1lX2Nsb3N1cmVfZ2V0X2d0eXBlICgpIildCisgCVtDb21wYWN0XQor QEAgLTY1LDYyICs2NiwxNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIE1hdGVyaWFsICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvcHkgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZm9yZWFjaF9sYXllciAoQ29nbC5NYXRlcmlhbExh eWVyQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IGdldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24p OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sYXllcl9wb2ludF9zcHJp dGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGlu dCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJp YWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJf d3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLkxp c3Q8Q29nbC5NYXRlcmlhbExheWVyPiBnZXRfbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgQHJl ZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9sYXll ciAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBz ZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFscGhhRnVuYyBhbHBoYV9mdW5j LCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9y KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0cmluZyBi bGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFudCAoQ29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7 CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDb2dsLkNvbG9y IGNvbG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAo ZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvcjR1YiAodWludDggcmVkLCB1aW50 OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lv bik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyIChpbnQgbGF5 ZXJfaW5kZXgsIENvZ2wuSGFuZGxlIHRleHR1cmUpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVu ZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworQEAgLTEzMyw0MSArODksMTMgQEAgbmFtZXNw YWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIHNldF9sYXllcl9w b2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgYm9vbCBlbmFibGUp IHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9sYXllcl93cmFwX21vZGUgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2Rl IG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFw X21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChp bnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9p bmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBwb2ludF9zaXplKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3Mp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5D b2xvciBzcGVjdWxhcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Vz ZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKyAJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBNYXRlcmlhbExheWVyIHsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CQlwdWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWFnX2ZpbHRlciAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlw dWJsaWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWluX2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJs aWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29n bC5NYXRlcmlhbExheWVyVHlwZSBnZXRfdHlwZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfcCAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVf cyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2Rl IGdldF93cmFwX21vZGVfdCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2JqZWN0X2dldF9ndHlwZSAoKSIpXQorIAlw dWJsaWMgYWJzdHJhY3QgY2xhc3MgT2JqZWN0IHsKK0BAIC0xNzgsMTMgKzEwNiw5IEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJcHVibGljIGNsYXNzIE9mZnNjcmVlbiA6IENvZ2wuT2JqZWN0LCBDb2ds LkZyYW1lYnVmZmVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKyAJCXByb3RlY3RlZCBPZmZzY3JlZW4gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQq IEByZWYgKHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIE9mZnNjcmVlbi50b190ZXh0dXJlIChDb2dsLlRl eHR1cmUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKHZvaWQqIG9m ZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisg CQlwdWJsaWMgT2Zmc2NyZWVuLndpdGhfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOwor IAl9CitAQCAtMTk2LDkgKzEyMCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBDb2ds Lk9uc2NyZWVuRGlydHlDbG9zdXJlIGFkZF9kaXJ0eV9jYWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0 ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlbkRpcnR5Q2FsbGJhY2sgY2FsbGJhY2ss IENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGFkZF9y ZXNpemVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wu T25zY3JlZW5SZXNpemVDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxs YmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB1aW50IGFkZF9z d2FwX2J1ZmZlcnNfY2FsbGJhY2sgKENvZ2wuU3dhcEJ1ZmZlcnNOb3RpZnkgY2FsbGJhY2spOwor LQkJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfYmFja2VuZF9zZXRfc2l6ZV9DTFVUVEVSIChp bnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJ CXB1YmxpYyBpbnQgZ2V0X2J1ZmZlcl9hZ2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x NCIpXQorQEAgLTIxMyw4ICsxMzQsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9p ZCByZW1vdmVfZnJhbWVfY2FsbGJhY2sgKENvZ2wuRnJhbWVDbG9zdXJlIGNsb3N1cmUpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX3Jlc2l6ZV9j YWxsYmFjayAoQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKHVp bnQgaWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X3Jlc2l6YWJsZSAoYm9vbCByZXNpemFibGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorQEAgLTI0NCw3ICsxNjMsOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9waXBlbGluZV9nZXRf Z3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFBpcGVsaW5lIDogQ29nbC5PYmplY3QgeworIAkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFBp cGVsaW5lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorKwkJcHVibGljIFBpcGVs aW5lIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZSBjb3B5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorQEAgLTI1NCwxNiArMTc0LDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGFfdGVzdF9yZWZl cmVuY2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBn ZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKyAJCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGdldF9j dWxsX2ZhY2VfbW9kZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVt aXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLldp bmRpbmcgZ2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUZpbHRlciBnZXRfbGF5ZXJfbWFnX2ZpbHRl ciAoaW50IGxheWVyX2luZGV4KTsKK0BAIC0yNzQsOCArMTg4LDYgQEAgbmFtZXNwYWNlIENvZ2wg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wu VGV4dHVyZSBnZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xh eWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9t b2RlX3MgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisg CQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfdCAoaW50 IGxheWVyX2luZGV4KTsKK0BAIC0yODYsMTAgKzE5OCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6 ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRf c2hpbmluZXNzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3VuaWZvcm1fbG9jYXRpb24gKHN0cmluZyB1 bmlmb3JtX25hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHVu b3duZWQgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3JhbSAoKTsKK0BAIC0yOTgsMTAgKzIwNiw2 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLlBpcGVsaW5lQWxwaGFGdW5j IGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50 KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJp ZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKyAJCXB1YmxpYyBib29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykg dGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3IpOwor QEAgLTMxNCwxMCArMjE4LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2N1bGxfZmFjZV9tb2RlIChDb2dsLlBpcGVs aW5lQ3VsbEZhY2VNb2RlIGN1bGxfZmFjZV9tb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNzaW9u IChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9mcm9udF9mYWNlX3dpbmRpbmcgKENvZ2wuV2luZGluZyBmcm9udF93 aW5kaW5nKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBib29sIHNl dF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRo cm93cyBHTGliLkVycm9yOworQEAgLTMzNSw4ICsyMzUsNiBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3Jh cF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFw X21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3Jh cF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dy YXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsK K0BAIC0zNDUsMTAgKzI0Myw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBwb2ludF9z aXplKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9z aGluaW5lc3MgKGZsb2F0IHNoaW5pbmVzcyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWYg KGludCB1bmlmb3JtX2xvY2F0aW9uLCBmbG9hdCB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xaSAoaW50IHVuaWZvcm1fbG9j YXRpb24sIGludCB2YWx1ZSk7CitAQCAtMzgyLDEwICsyNzYsNiBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3JtX25vLCBp bnQgc2l6ZSwgYm9vbCB0cmFuc3Bvc2UsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX3BvcyA9IDIuOSld IGZsb2F0W10gdmFsdWUpOworIAkJcHVibGljIHZvaWQgdXNlICgpOworIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFF1YXRlcm5pb24geworLQl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCBy ZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF9z aGFkZXJfdW5yZWYiKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBTaGFkZXIgOiBDb2ds LkhhbmRsZSB7CitAQCAtNDY1LDEyICszNTUsMTAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVi bGljIGludCBnZXRfYWxwaGFfYml0cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K KyAJCXB1YmxpYyBpbnQgZ2V0X2JsdWVfYml0cyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuQ29udGV4dCBnZXRfY29udGV4dCAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2RlcHRoX2JpdHMg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHVub3duZWQgQ29n bC5UZXh0dXJlIGdldF9kZXB0aF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2RlcHRoX3dyaXRl X2VuYWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNTE2LDYgKzQw NCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHB1c2hfbWF0cml4ICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hfcmVjdGFu Z2xlX2NsaXAgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7Cisr CQlwdWJsaWMgdm9pZCBwdXNoX3JlZ2lvbl9jbGlwIChDYWlyby5SZWdpb24gcmVnaW9uKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBwdXNoX3NjaXNzb3Jf Y2xpcCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KK0BAIC01MjksMTMgKzQxOCw5IEBAIG5hbWVzcGFjZSBDb2dsIHsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZs b2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxlciBldWxl cik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVf cXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQg cm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0 IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9k ZXB0aF90ZXh0dXJlX2VuYWJsZWQgKGJvb2wgZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKGJvb2wg ZGVwdGhfd3JpdGVfZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAt NjM1LDEwICs1MjAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBzZXRfYmx1 ZV9ieXRlICh1aW50OCBibHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0IChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9h dCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFs cGhhKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9n cmVlbiAoZmxvYXQgZ3JlZW4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTY2 Miw3ICs1NDMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgd2VhayBzdHJpbmcgbmFt ZTsKKyAJCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3VudDsKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRSSVgi KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorIAlwdWJsaWMgc3RydWN0IE1hdHJpeCB7Cisg CQlwdWJsaWMgZmxvYXQgeHg7CisgCQlwdWJsaWMgZmxvYXQgeXg7CitAQCAtNjkyLDggKzU3Myw3 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBib29sIGdldF9pbnZlcnNlIChvdXQgQ29n bC5NYXRyaXggaW52ZXJzZSk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNvZ2xfbWF0cml4X2luaXRf aWRlbnRpdHkiKV0KKyAJCXB1YmxpYyBNYXRyaXguaWRlbnRpdHkgKCk7CistCQlwdWJsaWMgdm9p ZCBpbml0X2Zyb21fZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJcHVibGljIHZvaWQgaW5p dF9mcm9tX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1Ymxp YyB2b2lkIGluaXRfZnJvbV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgaW5pdF90cmFuc2xhdGlvbiAoZmxv YXQgdHgsIGZsb2F0IHR5LCBmbG9hdCB0eik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CitAQCAtNzAyLDE5ICs1ODIsMTUgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQg bG9va19hdCAoZmxvYXQgZXllX3Bvc2l0aW9uX3gsIGZsb2F0IGV5ZV9wb3NpdGlvbl95LCBmbG9h dCBleWVfcG9zaXRpb25feiwgZmxvYXQgb2JqZWN0X3gsIGZsb2F0IG9iamVjdF95LCBmbG9hdCBv YmplY3RfeiwgZmxvYXQgd29ybGRfdXBfeCwgZmxvYXQgd29ybGRfdXBfeSwgZmxvYXQgd29ybGRf dXBfeik7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNvZ2xfbWF0cml4X211bHRpcGx5IildCisgCQlw dWJsaWMgTWF0cml4Lm11bHRpcGx5IChDb2dsLk1hdHJpeCBhLCBDb2dsLk1hdHJpeCBiKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJv dHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIG9ydGhvZ3JhcGhpYyAoZmxvYXQgeF8xLCBm bG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOwor IAkJcHVibGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdl95LCBmbG9hdCBhc3BlY3QsIGZs b2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworIAkJcHVibGljIHZvaWQgcHJvamVjdF9wb2ludHMg KGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6 ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7CisgCQlwdWJs aWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxl ciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24p OworKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7Cisg CQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc3gsIGZsb2F0IHN5LCBmbG9hdCBzeik7CistCQlw dWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVm IGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKysJCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1f cG9pbnQgKHJlZiBDb2dsLk1hdHJpeCBtYXRyaXgsIHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwg cmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKyAJCXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2lu dHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwg c2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7CisgCQlw dWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC04MTgsMzggKzY5NCwzMyBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCQlOT05FLAorIAkJTk9fR0VUX0RBVEEKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVBVFVSRV8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44Iild CistCXB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRV UkVfUkVBRF9QSVhFTFMsCistCQlPRkZTQ1JFRU4sCistCQlPRkZTQ1JFRU5fTVVMVElTQU1QTEUs CistCQlGT1VSX0NMSVBfUExBTkVTLAorLQkJU1RFTkNJTF9CVUZGRVIsCistCQlWQk9TLAorLQkJ UEJPUywKKy0JCVVOU0lHTkVEX0lOVF9JTkRJQ0VTLAorLQkJREVQVEhfUkFOR0UsCistCQlQT0lO VF9TUFJJVEUsCistCQlNQVBfQlVGRkVSX0ZPUl9SRUFELAorLQkJTUFQX0JVRkZFUl9GT1JfV1JJ VEUsCistCQlPTlNDUkVFTl9NVUxUSVBMRSwKKy0JCURFUFRIX1RFWFRVUkUKKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVf SURfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisrCXB1YmxpYyBlbnVtIEZlYXR1cmVJRCB7CisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVB VFVSRV9JRF9VTlNJR05FRF9JTlRfSU5ESUNFUyIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVU5TSUdO RURfSU5UX0lORElDRVMsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9NQVBf QlVGRkVSX0ZPUl9SRUFEIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFE LAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfV1JJ VEUiKV0KKysJCU9HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1dSSVRFLAorKwkJW0NDb2Rl IChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5UIildCisrCQlPR0xf RkVBVFVSRV9JRF9TV0FQX0JVRkZFUlNfRVZFTlQsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xf RkVBVFVSRV9JRF9QUkVTRU5UQVRJT05fVElNRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfUFJFU0VO VEFUSU9OX1RJTUUsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9GRU5DRSIp XQorKwkJT0dMX0ZFQVRVUkVfSURfRkVOQ0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVB VFVSRV9JRF9URVhUVVJFX1JHIildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHLAorKwkJ W0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSIpXQorKwkJT0dMX0ZF QVRVUkVfSURfQlVGRkVSX0FHRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lE X1RFWFRVUkVfRUdMX0lNQUdFX0VYVEVSTkFMIildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJF X0VHTF9JTUFHRV9FWFRFUk5BTAorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCisgCXB1YmxpYyBlbnVtIEZpbHRlclJldHVybiB7CisgCQlDT05USU5VRSwKKyAJCVJFTU9W RQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9GT0dfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBGb2dNb2RlIHsKKy0JCUxJTkVBUiwKKy0J CUVYUE9ORU5USUFMLAorLQkJRVhQT05FTlRJQUxfU1FVQVJFRAorLQl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRV9FVkVO VF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0K KyAJcHVibGljIGVudW0gRnJhbWVFdmVudCB7CitAQCAtODYyLDYgKzczMywxNCBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCQlGUkFNRUJVRkZFUl9FUlJPUl9BTExPQ0FURTsKKyAJCXB1YmxpYyBzdGF0 aWMgdWludDMyIHF1YXJrICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9HUkFQSElDU19SRVNFVF9TVEFUVVNfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBlbnVtIEdyYXBoaWNzUmVzZXRTdGF0dXMgewor KwkJTk9fRVJST1IsCisrCQlHVUlMVFlfQ09OVEVYVF9SRVNFVCwKKysJCUlOTk9DRU5UX0NPTlRF WFRfUkVTRVQsCisrCQlVTktOT1dOX0NPTlRFWFRfUkVTRVQsCisrCQlQVVJHRURfQ09OVEVYVF9S RVNFVAorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZUEVfVU5TSUdORURfIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCisgCXB1YmxpYyBlbnVtIEluZGljZXNUeXBlIHsKKyAJCUJZVEUsCitAQCAtODg4LDEyICs3 NjcsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlORUFSRVNUX01JUE1BUF9MSU5FQVIsCisgCQlM SU5FQVJfTUlQTUFQX0xJTkVBUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFXyIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBl bnVtIE1hdGVyaWFsTGF5ZXJUeXBlIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9NQVRFUklB TF9MQVlFUl9UWVBFX1RFWFRVUkUiKV0KKy0JCU1BVEVSSUFMX0xBWUVSX1RZUEVfVEVYVFVSRQor LQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXgg PSAiQ09HTF9NQVRFUklBTF9XUkFQX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGVudW0gTWF0ZXJpYWxXcmFwTW9kZSB7 CitAQCAtOTcxLDYgKzg0NCw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCURFUFRIXzE2LAorIAkJ REVQVEhfMzIsCisgCQlERVBUSF8yNF9TVEVOQ0lMXzg7CisrCQlwdWJsaWMgaW50IGdldF9ieXRl c19wZXJfcGl4ZWwgKGludCBwbGFuZSk7CisrCQlwdWJsaWMgaW50IGdldF9uX3BsYW5lcyAoKTsK KyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1JFQURfUElY RUxTX0NPTE9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorQEAgLTEwNjQsOSArOTM5LDkgQEAg bmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisg CXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIERlYnVnT2JqZWN0Rm9yZWFjaFR5cGVDYWxsYmFjayAoQ29n bC5EZWJ1Z09iamVjdFR5cGVJbmZvIGluZm8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQor LQlwdWJsaWMgZGVsZWdhdGUgYm9vbCBNYXRlcmlhbExheWVyQ2FsbGJhY2sgKENvZ2wuTWF0ZXJp YWwgbWF0ZXJpYWwsIGludCBsYXllcl9pbmRleCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisrCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjEwIildCisrCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEZlYXR1cmVDYWxsYmFjayAoQ29n bC5GZWF0dXJlSUQgZmVhdHVyZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2 IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuRGlydHlDYWxsYmFjayAoQ29nbC5P bnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNjcmVlbkRpcnR5SW5mbyBpbmZvKTsKK0BAIC0xMDc0 LDEzICs5NDksOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5SZXNpemVDYWxsYmFjayAoQ29nbC5P bnNjcmVlbiBvbnNjcmVlbiwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JcHVi bGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5YMTFNYXNrQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4g b25zY3JlZW4sIHVpbnQzMiBldmVudF9tYXNrKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBQaXBlbGluZUxheWVyQ2FsbGJhY2sg KENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1 YmxpYyBkZWxlZ2F0ZSB2b2lkIFN3YXBCdWZmZXJzTm90aWZ5IChDb2dsLkZyYW1lYnVmZmVyIGZy YW1lYnVmZmVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg aW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgVGV4dHVyZTJERUdM SW1hZ2VFeHRlcm5hbEFsbG9jIChDb2dsLlRleHR1cmUyRCB0ZXhfMmQpIHRocm93cyBHTGliLkVy cm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdGFy Z2V0ID0gZmFsc2UpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBVc2VyRGF0YURlc3Ryb3lDYWxs YmFjayAodm9pZCogZGF0YSk7CitAQCAtMTA5Miw2ICs5NjMsOCBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCXB1YmxpYyBjb25zdCBpbnQgQkdSX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9ERVBUSF9CSVQiKV0KKyAJcHVibGljIGNv bnN0IGludCBERVBUSF9CSVQ7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNuYW1lID0gIkNPR0xfUElYRUxfRk9STUFUX01BWF9QTEFORVMiKV0KKysJcHVibGlj IGNvbnN0IGludCBQSVhFTF9GT1JNQVRfTUFYX1BMQU5FUzsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QUkVNVUxUX0JJVCIpXQorIAlw dWJsaWMgY29uc3QgaW50IFBSRU1VTFRfQklUOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NURU5DSUxfQklUIildCitAQCAtMTA5OSwx OSArOTcyLDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1RFWFRVUkVfTUFYX1dBU1RFIildCisgCXB1 YmxpYyBjb25zdCBpbnQgVEVYVFVSRV9NQVhfV0FTVEU7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgYmVnaW5fZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgYmxpdF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFt ZWJ1ZmZlciBzcmMsIENvZ2wuRnJhbWVidWZmZXIgZGVzdCwgaW50IHNyY194LCBpbnQgc3JjX3ks IGludCBkc3RfeCwgaW50IGRzdF95LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIHRocm93cyBHTGli LkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQor LQlwdWJsaWMgc3RhdGljIGJvb2wgY2hlY2tfZXh0ZW5zaW9uIChzdHJpbmcgbmFtZSwgc3RyaW5n IGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXIgKENvZ2wuQ29sb3IgY29sb3IsIHVsb25nIGJ1ZmZl cnMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVi bGljIHN0YXRpYyBib29sIGNsdXR0ZXJfY2hlY2tfZXh0ZW5zaW9uX0NMVVRURVIgKHN0cmluZyBu YW1lLCBzdHJpbmcgZXh0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBjbHV0dGVyX3dpbnN5c19oYXNfZmVhdHVyZV9D TFVUVEVSIChDb2dsLldpbnN5c0ZlYXR1cmUgZmVhdHVyZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitA QCAtMTEyOSw1NyArOTkxLDM4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfb2JqZWN0X3ByaW50X2luc3Rh bmNlcyAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxlX2ZvZyAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBlbmRfZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZmVhdHVyZXNfYXZhaWxhYmxlIChD b2dsLkZlYXR1cmVGbGFncyBmZWF0dXJlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBz dGF0aWMgdm9pZCBmbHVzaCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGZydXN0 dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxv YXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisr CXB1YmxpYyBzdGF0aWMgdm9pZCBmb3JlYWNoX2ZlYXR1cmUgKENvZ2wuQ29udGV4dCBjb250ZXh0 LCBDb2dsLkZlYXR1cmVDYWxsYmFjayBjYWxsYmFjayk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2JhY2tm YWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF9iaXRtYXNrcyAob3V0IGlu dCByZWQsIG91dCBpbnQgZ3JlZW4sIG91dCBpbnQgYmx1ZSwgb3V0IGludCBhbHBoYSk7CisrCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCXB1YmxpYyBzdGF0aWMgaW50NjQgZ2V0X2Nsb2Nr X3RpbWUgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZGVwdGhfdGVz dF9lbmFibGVkICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQg Q29nbC5GcmFtZWJ1ZmZlciBnZXRfZHJhd19mcmFtZWJ1ZmZlciAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1Ymxp YyBzdGF0aWMgQ29nbC5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2ds Lk1hdHJpeCBnZXRfbW9kZWx2aWV3X21hdHJpeCAoKTsKKysJcHVibGljIHN0YXRpYyBDb2dsLkdy YXBoaWNzUmVzZXRTdGF0dXMgZ2V0X2dyYXBoaWNzX3Jlc2V0X3N0YXR1cyAoQ29nbC5Db250ZXh0 IGNvbnRleHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K KyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9v cHRpb25fZ3JvdXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuQ2FsbGJhY2sgZ2V0X3Byb2NfYWRkcmVzcyAoc3Ry aW5nIHMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfcHJvamVjdGlvbl9tYXRyaXggKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQqIGdldF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg Z2V0X3ZpZXdwb3J0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gb3V0IGZsb2F0IHZb NF0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiKV0KKyAJ cHVibGljIHN0YXRpYyBHTGliLlR5cGUgZ3R5cGVfbWF0cml4X2dldF90eXBlICgpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGhhc19mZWF0dXJlIChDb2dsLkNvbnRl eHQgY29udGV4dCwgQ29nbC5GZWF0dXJlSUQgZmVhdHVyZSk7CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfY29udGV4dCAodm9pZCogb2JqZWN0KTsKKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisrCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2Jq ZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtMTE5Myw1MyArMTAzNiw5IEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyBi b29sIGlzX3RleHR1cmVfMmRfc2xpY2VkICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGlj IHN0YXRpYyBib29sIGlzX3ZlcnRleF9idWZmZXJfaW5kaWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxl KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIG1hdHJpeF9lcXVhbCAo dm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBvcnRobyAo ZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBu ZWFyLCBmbG9hdCBmYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3Z5LCBm bG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9seWdvbiAoQ29nbC5UZXh0dXJlVmVydGV4IHZlcnRp Y2VzLCB1aW50IG5fdmVydGljZXMsIGJvb2wgdXNlX2NvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bf bWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvcF9zb3VyY2UgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cHVzaF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGUgKGZsb2F0 IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF9tdWx0aXRleHR1cmVfY29vcmRz IChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50IHRleF9jb29yZHNfbGVuKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZV93aXRoX3Rl eHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgZmxv YXQgdHgxLCBmbG9hdCB0eTEsIGZsb2F0IHR4MiwgZmxvYXQgdHkyKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOC42 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzX3dpdGhfdGV4dHVyZV9jb29yZHMg KFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVj dHMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHks IGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6 KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChib29sIHNldHRp bmcpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KK0BAIC0x MjQ3LDUzICsxMDQ2LDExIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJcHVibGljIHN0YXRpYyB2b2lk IHNldF9kZXB0aF90ZXN0X2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0 X2ZvZyAoQ29nbC5Db2xvciBmb2dfY29sb3IsIENvZ2wuRm9nTW9kZSBtb2RlLCBmbG9hdCBkZW5z aXR5LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbW9kZWx2 aWV3X21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfcHJvamVj dGlvbl9tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHNldF9zb3VyY2VfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVl biwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNldF9zb3VyY2VfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUs IHVpbnQ4IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX3Rl eHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNldF92aWV3cG9ydCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNoYWRlcl9jb21waWxlIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBz dHJpbmcgc2hhZGVyX2dldF9pbmZvX2xvZyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMg Q29nbC5TaGFkZXJUeXBlIHNoYWRlcl9nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgYm9vbCBzaGFkZXJfaXNfY29tcGlsZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3Rh dGljIHVub3duZWQgQ29nbC5IYW5kbGUgc2hhZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1Ymxp YyBzdGF0aWMgdm9pZCBzaGFkZXJfc291cmNlIChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0cmluZyBz b3VyY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAi MS4wIildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fYml0 bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBp eGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorQEAgLTEzMDYsNTkgKzEwNjMsNiBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4 Iiwgc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVf bmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdz IGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg dmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9u YW1lLCB1aW50OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0cmlidXRlVHlwZSB0eXBlLCBib29sIG5v cm1hbGl6ZWQsIHVpbnQxNiBzdHJpZGUsIHZvaWQqIHBvaW50ZXIpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZl cnRleF9idWZmZXJfZGVsZXRlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVf bmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kaXNhYmxlIChDb2dsLkhhbmRsZSBo YW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZl cl9kcmF3IChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUsIGludCBm aXJzdCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXdfZWxlbWVu dHMgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01vZGUgbW9kZSwgQ29nbC5IYW5k bGUgaW5kaWNlcywgaW50IG1pbl9pbmRleCwgaW50IG1heF9pbmRleCwgaW50IGluZGljZXNfb2Zm c2V0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZW5hYmxlIChDb2ds LkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQgdmVy dGV4X2J1ZmZlcl9nZXRfbl92ZXJ0aWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X2Zvcl9xdWFkcyAo dWludCBuX2luZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkluZGljZXNUeXBlIHZlcnRleF9idWZmZXJf aW5kaWNlc19nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNlcyk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQg Q29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9uZXcgKHVpbnQgbl92ZXJ0aWNlcyk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxl KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3N1Ym1pdCAoQ29nbC5IYW5kbGUgaGFuZGxl KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAi MC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZpZXdwb3J0ICh1aW50IHdpZHRoLCB1aW50 IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3Zpc3VhbF94aWQgKENvZ2wu T25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyB1 aW50MzIgeDExX29uc2NyZWVuX2dldF93aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVu KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHgxMV9vbnNjcmVlbl9z ZXRfZm9yZWlnbl93aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgeGlk LCBbQ0NvZGUgKHNjb3BlID0gImFzeW5jIildIENvZ2wuT25zY3JlZW5YMTFNYXNrQ2FsbGJhY2sg dXBkYXRlKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNC1jdXN0b20udmFsYSB2 YXBpL211dHRlci1jb2dsLTctY3VzdG9tLnZhbGEKK3NpbWlsYXJpdHkgaW5kZXggODElCityZW5h bWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTQtY3VzdG9tLnZhbGEKK3JlbmFtZSB0byB2YXBpL211 dHRlci1jb2dsLTctY3VzdG9tLnZhbGEKK2luZGV4IDI1NTE4ODVhLi5jNGQ0YjkzYSAxMDA2NDQK Ky0tLSB2YXBpL211dHRlci1jb2dsLTQtY3VzdG9tLnZhbGEKKysrKyB2YXBpL211dHRlci1jb2ds LTctY3VzdG9tLnZhbGEKK0BAIC0xLDEwICsxLDQgQEAKKyBuYW1lc3BhY2UgQ29nbCB7CistCVtD b21wYWN0XQorLQlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5kbGUiKV0KKy0JcHVibGljIGNsYXNz IEJpdG1hcDogSGFuZGxlIHsKKy0JCXB1YmxpYyBzdGF0aWMgQml0bWFwIG5ld19mcm9tX2ZpbGUg KHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCX0KKy0KKyAJW0NvbXBhY3Rd CisgCVtDQ29kZSAoY25hbWUgPSAiQ29nbEhhbmRsZSIpXQorIAlwdWJsaWMgY2xhc3MgQnVmZmVy OiBIYW5kbGUgeworQEAgLTQyLDcgKzM2LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGlj IGJvb2wgaXNfdmVydGV4X2J1ZmZlciAoKTsKKyAJfQorIAorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImNvZ2xfcGF0aF9jb3B5Iild IAorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0 aW9uID0gImNvZ2xfcGF0aF9jb3B5IildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgUGF0 aCB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgQG5ldyAoKTsKK0BAIC04MiwxOCArNzYsNiBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBzb3VyY2UgKHN0cmluZyBzb3VyY2UpOwor IAl9CisgCistCVtDb21wYWN0XQorLQlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZf ZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJlX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfdGV4 dHVyZV91bnJlZiIpXQorLQlwdWJsaWMgY2xhc3MgVGV4dHVyZTogSGFuZGxlIHsKKy0JCXB1Ymxp YyBDb2dsLlBpeGVsRm9ybWF0IGdldF9mb3JtYXQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfcm93 c3RyaWRlICgpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJt cF9oYW5kbGUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVy bmFsX2Zvcm1hdCk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2RhdGEgKHVpbnQgd2lkdGgsIHVp bnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3Jt YXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVjaGFyW10gZGF0YSk7CistCQlwdWJsaWMgVGV4 dHVyZS5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3Ms IENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0J CXB1YmxpYyBUZXh0dXJlLmZyb21fc3ViX3RleHR1cmUgKENvZ2wuVGV4dHVyZSBmdWxsX3RleHR1 cmUsIGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3ViX3dpZHRoLCBpbnQgc3ViX2hlaWdodCk7 CistCQlwdWJsaWMgVGV4dHVyZS53aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBD b2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQp OworLQl9CistCisgCVtDb21wYWN0XQorIAlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5kbGUiLCBy ZWZfZnVuY3Rpb24gPSAiY29nbF92ZXJ0ZXhfYnVmZmVyX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0g ImNvZ2xfdmVydGV4X2J1ZmZlcl91bnJlZiIpXQorIAlwdWJsaWMgY2xhc3MgVmVydGV4QnVmZmVy OiBIYW5kbGUgeworZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTUuZGVwcyB2YXBpL211dHRl ci1jb2dsLTcuZGVwcworc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSB2YXBpL211 dHRlci1jb2dsLTUuZGVwcworcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNvZ2wtNy5kZXBzCitkaWZm IC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNC52YXBpIHZhcGkvbXV0dGVyLWNvZ2wtNy52YXBpCitz aW1pbGFyaXR5IGluZGV4IDU5JQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC00LnZhcGkK K3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTcudmFwaQoraW5kZXggNWRlOGY0NDcuLjYyMGMy MzE3IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNvZ2wtNC52YXBpCisrKysgdmFwaS9tdXR0ZXIt Y29nbC03LnZhcGkKK0BAIC0xLDEyICsxLDEzIEBACistLyogbXV0dGVyLWNvZ2wtNC52YXBpIGdl bmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIG11dHRlci1jb2dsLTcu dmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUg KGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0g IjQiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAi Q29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0gIjciLCBsb3dlcl9j YXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKyBuYW1lc3BhY2UgQ29nbCB7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCB0eXBl X2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGlj IGNsYXNzIEJpdG1hcCA6IENvZ2wuSGFuZGxlIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2JpdG1hcF9nZXRfZ3R5cGUgKCkiKV0K KysJcHVibGljIGNsYXNzIEJpdG1hcCA6IENvZ2wuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBCaXRtYXAgKCk7CisgCQlw dWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNvZ2xCaXRtYXAqIildCisrCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgQml0bWFwLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJv d3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtMTYsMTAg KzE3LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyBpbnQgZ2V0X3Jvd3N0cmlkZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9zaXplX2Zyb21fZmlsZSAoc3Ry aW5nIGZpbGVuYW1lLCBvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CisrCQlwdWJsaWMg c3RhdGljIGJvb2wgZ2V0X3NpemVfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIG91dCBpbnQg d2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgaW50IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5CaXRtYXAg bmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2ds SGFuZGxlIildCisgCVtDb21wYWN0XQorQEAgLTI4LDE1ICsyOCwyOCBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCQlwdWJsaWMgYm9vbCBzZXRfZGF0YSAoc2l6ZV90IG9mZnNldCwgW0NDb2RlIChhcnJh eV9sZW5ndGhfdHlwZSA9ICJzaXplX3QiKV0gdWludDhbXSBkYXRhKTsKKyAJCXB1YmxpYyB2b2lk IHVubWFwICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEV1 bGVyIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9p ZCA9ICJjb2dsX2NvbnRleHRfZ2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBDb250ZXh0 IDogQ29nbC5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorKwkJcHJvdGVjdGVkIENvbnRleHQgKCk7CisrCQlwdWJsaWMgYm9vbCBpc19oYXJkd2Fy ZV9hY2NlbGVyYXRlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24g PSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2Nsb3N1cmVfZ2V0X2d0eXBl ICgpIildCisgCVtDb21wYWN0XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJs aWMgY2xhc3MgRnJhbWVDbG9zdXJlIHsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfZnJhbWVfaW5mb19nZXRfZ3R5cGUgKCki KV0KKysJcHVibGljIGNsYXNzIEZyYW1lSW5mbyA6IENvZ2wuT2JqZWN0IHsKKysJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBGcmFtZUluZm8g KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwkJcHVibGljIGludDY0IGdldF9m cmFtZV9jb3VudGVyICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1Ymxp YyBpbnQ2NCBnZXRfcHJlc2VudGF0aW9uX3RpbWUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9yZWZyZXNoX3JhdGUgKCk7CisrCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgcmVmX2Z1bmN0aW9uID0gImNv Z2xfaGFuZGxlX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfaGFuZGxlX3VucmVmIildCisg CVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgSGFuZGxlIHsKK0BAIC02NSw2NSArNzgsMjAgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKyAJCXB1YmxpYyBNYXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgQ29nbC5NYXRlcmlhbCBjb3B5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENvZ2wuTWF0ZXJpYWxMYXllckNhbGxiYWNrIGNhbGxiYWNr KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5D b2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Db2xvciBn ZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1 c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJs ZWQgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wu TWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRf bGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGlu dCBsYXllcl9pbmRleCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q29nbC5NYXRlcmlh bExheWVyPiBnZXRfbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBpbnQg Z2V0X25fbGF5ZXJzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRf cG9pbnRfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3No aW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3Vs YXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1 bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgQHJlZiAoQ29nbC5IYW5kbGUg bWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2lu ZGV4KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9m dW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9y ZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50 IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmlu ZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0cmluZyBi bGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFudCAoQ29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7 CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDb2dsLkNvbG9y IGNvbG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAo ZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvcjR1YiAodWludDggcmVkLCB1aW50 OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lv bik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyIChpbnQgbGF5 ZXJfaW5kZXgsIENvZ2wuSGFuZGxlIHRleHR1cmUpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5n IGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfbGF5 ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJf Y29tYmluZV9jb25zdGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsK KyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCitAQCAtMTMxLDQzICs5OSwxNSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGlj IHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdHJpeCBtYXRy aXgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX3Bv aW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wgZW5h YmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFw TW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJf d3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVf cyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5 ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKysJCXB1YmxpYyBib29sIHNl dF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgYm9v bCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9hdCBwb2ludF9zaXplKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBz cGVjdWxhcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZXJfcHJv Z3JhbSAoQ29nbC5IYW5kbGUgcHJvZ3JhbSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg c3RhdGljIHZvaWQgdW5yZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBNYXRlcmlhbExheWVyIHsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJs aWMgQ29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWFnX2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMg Q29nbC5NYXRlcmlhbEZpbHRlciBnZXRfbWluX2ZpbHRlciAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdW5v d25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRl cmlhbExheWVyVHlwZSBnZXRfdHlwZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg Q29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfcCAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfcyAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93 cmFwX21vZGVfdCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2JqZWN0X2dldF9ndHlwZSAoKSIpXQorIAlwdWJsaWMg YWJzdHJhY3QgY2xhc3MgT2JqZWN0IHsKK0BAIC0xNzgsMTMgKzExOCw5IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJcHVibGljIGNsYXNzIE9mZnNjcmVlbiA6IENvZ2wuT2JqZWN0LCBDb2dsLkZyYW1l YnVmZmVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJ CXByb3RlY3RlZCBPZmZzY3JlZW4gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQqIEByZWYg KHZvaWQqIG9mZnNjcmVlbik7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorIAkJcHVibGljIE9mZnNjcmVlbi50b190ZXh0dXJlIChDb2dsLlRleHR1cmUg dGV4dHVyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKHZvaWQqIG9mZnNjcmVl bik7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJs aWMgT2Zmc2NyZWVuLndpdGhfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworIAl9CitA QCAtMTk0LDE3ICsxMzAsMTYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHJvdGVjdGVkIE9uc2Ny ZWVuICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBDb2dsLk9u c2NyZWVuRGlydHlDbG9zdXJlIGFkZF9kaXJ0eV9jYWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90 YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlbkRpcnR5Q2FsbGJhY2sgY2FsbGJhY2ssIENv Z2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTQiKV0KKysJCXB1YmxpYyBDb2dsLkZyYW1lQ2xvc3VyZSBhZGRfZnJhbWVfY2FsbGJh Y2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuRnJhbWVDYWxsYmFj ayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5PbnNjcmVlblJlc2l6ZUNs b3N1cmUgYWRkX3Jlc2l6ZV9jYWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0g MS41KV0gQ29nbC5PbnNjcmVlblJlc2l6ZUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRh RGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHVpbnQgYWRkX3N3YXBfYnVmZmVyc19jYWxsYmFjayAoQ29nbC5Td2FwQnVmZmVyc05vdGlmeSBj YWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9iYWNrZW5kX3NldF9zaXpl X0NMVVRURVIgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNCIpXQorIAkJcHVibGljIGludCBnZXRfYnVmZmVyX2FnZSAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9yZXNp emFibGUgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfcmVzaXphYmxlICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgaGlkZSAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE2IildCitAQCAtMjEzLDE4ICsxNDgsMTYgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJcHVibGljIHZvaWQgcmVtb3ZlX2ZyYW1lX2NhbGxiYWNrIChDb2dsLkZyYW1lQ2xvc3VyZSBj bG9zdXJlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHJl bW92ZV9yZXNpemVfY2FsbGJhY2sgKENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGNsb3N1cmUp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfc3dhcF9idWZmZXJz X2NhbGxiYWNrICh1aW50IGlkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKENvZ2wuQm9vbCByZXNpemFibGUpOworKwkJcHVibGlj IHZvaWQgc2V0X3Jlc2l6YWJsZSAoYm9vbCByZXNpemFibGUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2hvdyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnMgKCk7CisrCQlwdWJsaWMgdm9p ZCBzd2FwX2J1ZmZlcnMgKENvZ2wuRnJhbWVJbmZvIGZyYW1lX2luZm8pOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfYnVmZmVyc193aXRoX2RhbWFn ZSAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMpOworKwkJcHVibGljIHZvaWQgc3dh cF9idWZmZXJzX3dpdGhfZGFtYWdlIChpbnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xlcywg Q29nbC5GcmFtZUluZm8gaW5mbyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgc3dhcF9yZWdpb24gKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVz KTsKKysJCXB1YmxpYyB2b2lkIHN3YXBfcmVnaW9uIChpbnQgcmVjdGFuZ2xlcywgaW50IG5fcmVj dGFuZ2xlcywgQ29nbC5GcmFtZUluZm8gaW5mbyk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9vbnNjcmVlbl9k aXJ0eV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC0yNDQsNyArMTc3 LDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfcGlwZWxpbmVfZ2V0X2d0eXBlICgpIildCisgCXB1 YmxpYyBjbGFzcyBQaXBlbGluZSA6IENvZ2wuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQaXBlbGluZSAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJCXB1YmxpYyBQaXBlbGluZSAoQ29nbC5Db250ZXh0 IGNvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wu UGlwZWxpbmUgY29weSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KK0BAIC0yNTQs NDQgKzE4OCwzMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rlc3RfcmVmZXJlbmNlICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wu Q29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMg Q29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBnZXRf Y3VsbF9mYWNlX21vZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBl bWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5X aW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21hZ19maWx0 ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21pbl9maWx0ZXIgKGludCBsYXll cl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5C b29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRl eCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVk IChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVyX2lu ZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVs aW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9k ZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXll cl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcGVyX3ZlcnRleF9wb2ludF9zaXpl ICgpOworKwkJcHVibGljIGJvb2wgZ2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfcG9pbnRfc2l6ZSAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfc2hp bmluZXNzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg Z2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3VuaWZvcm1fbG9jYXRpb24gKHN0cmluZyB1bmlm b3JtX25hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHVub3du ZWQgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3JhbSAoKTsKK0BAIC0zMDAsMTEgKzIyMCw3IEBA IG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLlBpcGVsaW5lQWxwaGFGdW5jIGFs cGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50 X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5n KSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9ibGVuZCAoc3RyaW5nIGJs ZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3Rh bnRfY29sb3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorQEAgLTMxMyw0NiArMjI5 LDM1IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvcjRmIChmbG9h dCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJl ZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcl9tYXNrIChDb2dsLkNvbG9y TWFzayBjb2xvcl9tYXNrKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9jdWxsX2ZhY2VfbW9kZSAoQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBjdWxs X2ZhY2VfbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lv bik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfZnJv bnRfZmFjZV93aW5kaW5nIChDb2dsLldpbmRpbmcgZnJvbnRfd2luZGluZyk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9jb21iaW5l IChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9y OworKwkJcHVibGljIGJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3Ry aW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29tYmluZV9jb25zdGFudCAoaW50 IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfZmlsdGVycyAoaW50IGxheWVyX2lu ZGV4LCBDb2dsLlBpcGVsaW5lRmlsdGVyIG1pbl9maWx0ZXIsIENvZ2wuUGlwZWxpbmVGaWx0ZXIg bWFnX2ZpbHRlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdHJpeCBtYXRyaXgp OworKwkJcHVibGljIHZvaWQgc2V0X2xheWVyX21heF9taXBtYXBfbGV2ZWwgKGludCBsYXllciwg aW50IG1heF9sZXZlbCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2xheWVyX251bGxfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlRleHR1 cmVUeXBlIHRleHR1cmVfdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbnVsbF90ZXh0 dXJlIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChp bnQgbGF5ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworKwkJ cHVibGljIGJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxh eWVyX2luZGV4LCBib29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlRleHR1cmUgdGV4dHVy ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2Rl KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXll cl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9k ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1v ZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xh eWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBt b2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wg c2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIu RXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfcGVyX3ZlcnRleF9wb2ludF9zaXplIChib29sIGVu YWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisg CQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9h dCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFmIChpbnQgdW5pZm9ybV9s b2NhdGlvbiwgZmxvYXQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWkgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgdmFs dWUpOworQEAgLTM2MSw3ICsyNjYsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9pbnQgKGludCB1bmlm b3JtX2xvY2F0aW9uLCBpbnQgbl9jb21wb25lbnRzLCBpbnQgY291bnQsIGludCB2YWx1ZSk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9t YXRyaXggKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgZGltZW5zaW9ucywgaW50IGNvdW50LCBD b2dsLkJvb2wgdHJhbnNwb3NlLCBmbG9hdCB2YWx1ZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfdW5p Zm9ybV9tYXRyaXggKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgZGltZW5zaW9ucywgaW50IGNv dW50LCBib29sIHRyYW5zcG9zZSwgZmxvYXQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJv Z3JhbSk7CisgCX0KK0BAIC0zODgsNyArMjkzLDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFF1YXRlcm5pb24geworKwlwdWJs aWMgY2xhc3MgU2Nhbm91dCB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2dsX3No YWRlcl9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX3NoYWRlcl91bnJlZiIpXQorIAlbQ29t cGFjdF0KK0BAIC00MDEsNDggKzMwNiwyMyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMg Ym9vbCBpc19jb21waWxlZCAoKTsKKyAJCXB1YmxpYyB2b2lkIHNvdXJjZSAoc3RyaW5nIHNvdXJj ZSk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25h bWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2dsX3RleHR1cmVfcmVmIiwgdHlw ZV9pZCA9ICJjb2dsX3RleHR1cmVfZ2V0X2d0eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29n bF90ZXh0dXJlX3VucmVmIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGV4dHVyZSA6 IENvZ2wuSGFuZGxlIHsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdM aWIuRXJyb3I7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKy0JCXB1 YmxpYyBUZXh0dXJlLmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBibXBfaGFuZGxlLCBDb2dsLlRl eHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJ cHVibGljIFRleHR1cmUuZnJvbV9kYXRhICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5U ZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9y bWF0IGludGVybmFsX2Zvcm1hdCwgdWludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSB1Y2hhcltdIGRhdGEpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9maWxlIChz dHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0 IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMgVGV4dHVyZS5m cm9tX3N1Yl90ZXh0dXJlIChDb2dsLlRleHR1cmUgZnVsbF90ZXh0dXJlLCBpbnQgc3ViX3gsIGlu dCBzdWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWlnaHQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLlRleHR1cmVDb21wb25lbnRzIGdldF9jb21w b25lbnRzICgpOworLQkJcHVibGljIGludCBnZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3Jt YXQsIHVpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JCXB1YmxpYyBDb2dsLlBpeGVsRm9y bWF0IGdldF9mb3JtYXQgKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9nbF90ZXh0dXJlIChv dXQgdWludCBvdXRfZ2xfaGFuZGxlLCBvdXQgdWludCBvdXRfZ2xfdGFyZ2V0KTsKKy0JCXB1Ymxp YyB1aW50IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMgaW50IGdldF9tYXhfd2FzdGUgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcHJl bXVsdGlwbGllZCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9yb3dzdHJpZGUgKCk7CistCQlwdWJs aWMgdWludCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGlzX3NsaWNlZCAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJv bV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENv Z2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlw dWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBo ZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwg Q29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRh dGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5l d19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENv Z2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9mb3Jl aWduICh1aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVpbnQgaGVp Z2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVsRm9ybWF0 IGZvcm1hdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuVGV4dHVyZSBuZXdf ZnJvbV9zdWJfdGV4dHVyZSAoaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGlu dCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wu VGV4dHVyZSBuZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0 dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9uZW50cyAo Q29nbC5UZXh0dXJlQ29tcG9uZW50cyBjb21wb25lbnRzKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wg c2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBk YXRhLCBpbnQgbGV2ZWwpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wcmVtdWx0aXBsaWVkIChDb2dsLkJvb2wgcHJl bXVsdGlwbGllZCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9yZWdpb24gKGludCBzcmNfeCwg aW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0 X2hlaWdodCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwg dWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9uX2Zyb21fYml0bWFwIChpbnQgc3JjX3gs IGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50IGRz dF9oZWlnaHQsIENvZ2wuQml0bWFwIGJpdG1hcCk7CistCQlwdWJsaWMgVGV4dHVyZS53aXRoX3Np emUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29n bC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBsb3dlcl9jYXNlX2NzdWZmaXggPSAidGV4dHVyZV8yZCIsIHR5 cGVfaWQgPSAiY29nbF90ZXh0dXJlXzJkX2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3Mg VGV4dHVyZTJEIDogQ29nbC5PYmplY3QsIENvZ2wuVGV4dHVyZSB7CisrCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgVGV4dHVyZTJEICgpOwor KwkJcHVibGljIHZvaWQgZWdsX2ltYWdlX2V4dGVybmFsX2FsbG9jX2ZpbmlzaCAodm9pZCogdXNl cl9kYXRhLCBHTGliLkRlc3Ryb3lOb3RpZnkgZGVzdHJveSk7CisrCQlwdWJsaWMgdm9pZCBlZ2xf aW1hZ2VfZXh0ZXJuYWxfYmluZCAoKTsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJCXB1YmxpYyBUZXh0 dXJlMkQuZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCk7CisrCX0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgbG93ZXJfY2FzZV9jc3VmZml4ID0gInRl eHR1cmVfMmRfc2xpY2VkIiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVfMmRfc2xpY2VkX2dldF9n dHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgVGV4dHVyZTJEU2xpY2VkIDogQ29nbC5PYmplY3Qs IENvZ2wuVGV4dHVyZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisrCQlwcm90ZWN0ZWQgVGV4dHVyZTJEU2xpY2VkICgpOworKwkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0K KysJCXB1YmxpYyBUZXh0dXJlMkRTbGljZWQuZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJtcCwg aW50IG1heF93YXN0ZSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2dsX3ZlcnRl eF9idWZmZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF92ZXJ0ZXhfYnVmZmVyX3VucmVm IildCisgCVtDb21wYWN0XQorQEAgLTQ2OCw3ICszNDgsNyBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29n bF9mcmFtZWJ1ZmZlcl9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGljIGludGVyZmFjZSBGcmFtZWJ1 ZmZlciA6IENvZ2wuT2JqZWN0IHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyBDb2dsLkJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMg Ym9vbCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGNsZWFyICh1bG9uZyBidWZmZXJzLCBDb2dsLkNvbG9y IGNvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC00ODgsNiArMzY4LDcg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZmluaXNo ICgpOworKwkJcHVibGljIHZvaWQgZmx1c2ggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAkJcHVibGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZs b2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC00OTUsMjIgKzM3NiwxOCBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgaW50IGdldF9i bHVlX2JpdHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29n bC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkNv bnRleHQgZ2V0X2NvbnRleHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgaW50IGdldF9kZXB0aF9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQi KV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfZGVwdGhfdGV4dHVyZSAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9k ZXB0aF90ZXh0dXJlX2VuYWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQor LQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoKTsKKysJCXB1Ymxp YyBib29sIGdldF9kZXB0aF93cml0ZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGl0aGVyX2VuYWJsZWQgKCk7CisrCQlw dWJsaWMgYm9vbCBnZXRfZGl0aGVyX2VuYWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCisgCQlwdWJsaWMgaW50IGdldF9ncmVlbl9iaXRzICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIENv Z2wuQm9vbCBnZXRfaXNfc3RlcmVvICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2lzX3N0ZXJlbyAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ29nbC5NYXRyaXgg Z2V0X21vZGVsdmlld19tYXRyaXggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor QEAgLTU0NywxMiArNDI0LDEzIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHB1 c2hfbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2 b2lkIHB1c2hfcmVjdGFuZ2xlX2NsaXAgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIs IGZsb2F0IHlfMik7CisrCQlwdWJsaWMgdm9pZCBwdXNoX3JlZ2lvbl9jbGlwIChDYWlyby5SZWdp b24gcmVnaW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9p ZCBwdXNoX3NjaXNzb3JfY2xpcCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgcmVh ZF9waXhlbHMgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVs Rm9ybWF0IGZvcm1hdCwgdWludDggcGl4ZWxzKTsKKysJCXB1YmxpYyBib29sIHJlYWRfcGl4ZWxz IChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1hdCBm b3JtYXQsIHVpbnQ4IHBpeGVscyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVsc19pbnRvX2JpdG1hcCAoaW50IHgsIGludCB5LCBD b2dsLlJlYWRQaXhlbHNGbGFncyBzb3VyY2UsIENvZ2wuQml0bWFwIGJpdG1hcCk7CisrCQlwdWJs aWMgYm9vbCByZWFkX3BpeGVsc19pbnRvX2JpdG1hcCAoaW50IHgsIGludCB5LCBDb2dsLlJlYWRQ aXhlbHNGbGFncyBzb3VyY2UsIENvZ2wuQml0bWFwIGJpdG1hcCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCByZXNvbHZlX3NhbXBsZXMgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNTYwLDE5ICs0MzgsMTMgQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHJvdGF0 ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVy IGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJv dGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlwdWJsaWMg dm9pZCByb3RhdGVfZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVyKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgeik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBz ZXRfY29sb3JfbWFzayAoQ29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3RleHR1cmVfZW5hYmxl ZCAoQ29nbC5Cb29sIGVuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9lbmFibGVkIChDb2dsLkJvb2wgZGVwdGhfd3Jp dGVfZW5hYmxlZCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoYm9v bCBkZXB0aF93cml0ZV9lbmFibGVkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9kaXRoZXJfZW5hYmxlZCAoQ29nbC5Cb29sIGRpdGhlcl9lbmFibGVk KTsKKysJCXB1YmxpYyB2b2lkIHNldF9kaXRoZXJfZW5hYmxlZCAoYm9vbCBkaXRoZXJfZW5hYmxl ZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21v ZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorQEAgLTU4OCw2ICs0NjAsMzkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQg eCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1cmVfZ2V0X2d0eXBlICgpIildCisr CXB1YmxpYyBpbnRlcmZhY2UgVGV4dHVyZSA6IENvZ2wuT2JqZWN0IHsKKysJCXB1YmxpYyBib29s IGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHN0YXRpYyB1aW50MzIg ZXJyb3JfcXVhcmsgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGlj IENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgZ2V0X2NvbXBvbmVudHMgKCk7CisrCQlwdWJsaWMgaW50 IGdldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdPyBkYXRhKTsKKysJCXB1YmxpYyBib29s IGdldF9nbF90ZXh0dXJlIChvdXQgdWludCBvdXRfZ2xfaGFuZGxlLCBvdXQgdWludCBvdXRfZ2xf dGFyZ2V0KTsKKysJCXB1YmxpYyB1aW50IGdldF9oZWlnaHQgKCk7CisrCQlwdWJsaWMgaW50IGdl dF9tYXhfd2FzdGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGlj IGJvb2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7CisrCQlwdWJsaWMgdWludCBnZXRfd2lkdGggKCk7 CisrCQlwdWJsaWMgYm9vbCBpc19zbGljZWQgKCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRt YXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zv cm1hdCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUg bmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBm bGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxf Zm9ybWF0LCBpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWlu dDhbXSBkYXRhKTsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisrCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4 dHVyZSBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZs YWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7 CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x OCIsIHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9zdWJf dGV4dHVyZSAoaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJfaGVp Z2h0KTsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisrCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBu ZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3Mg ZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9uZW50cyAoQ29nbC5UZXh0 dXJlQ29tcG9uZW50cyBjb21wb25lbnRzKTsKKysJCXB1YmxpYyBib29sIHNldF9kYXRhIChDb2ds LlBpeGVsRm9ybWF0IGZvcm1hdCwgaW50IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGgg PSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgaW50IGxldmVsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgdm9pZCBzZXRfcHJlbXVsdGlw bGllZCAoYm9vbCBwcmVtdWx0aXBsaWVkKTsKKysJCXB1YmxpYyBib29sIHNldF9yZWdpb24gKGlu dCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgs IHVpbnQgZHN0X2hlaWdodCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0 IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1 aW50OFtdIGRhdGEpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorKwkJcHVibGljIGJv b2wgc2V0X3JlZ2lvbl9mcm9tX2JpdG1hcCAoaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3Rf eCwgaW50IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBDb2dsLkJpdG1h cCBiaXRtYXApOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlbU2ltcGxlVHlwZV0KKyAJcHVibGljIHN0cnVjdCBBbmdsZSA6IGludDMyIHsKK0BA IC02MzUsMTAgKzU0MCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9i bHVlX2J5dGUgKHVpbnQ4IGJsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2JsdWVfZmxvYXQgKGZsb2F0IGJsdWUpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb21fNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZs b2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9mcm9tXzR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDgg YWxwaGEpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X2dyZWVuIChmbG9hdCBncmVlbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAt NjYyLDcgKzU2Myw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB3ZWFrIHN0cmluZyBu YW1lOworIAkJcHVibGljIHVsb25nIGluc3RhbmNlX2NvdW50OworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJ WCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1 bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwg dHlwZV9pZCA9ICJDT0dMX1RZUEVfTUFUUklYIildCisgCXB1YmxpYyBzdHJ1Y3QgTWF0cml4IHsK KyAJCXB1YmxpYyBmbG9hdCB4eDsKKyAJCXB1YmxpYyBmbG9hdCB5eDsKK0BAIC02ODksMzIgKzU5 MCwyNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBmcnVzdHVtIChmbG9hdCBs ZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwg ZmxvYXQgel9mYXIpOworIAkJcHVibGljIHVub3duZWQgZmxvYXRbXSBnZXRfYXJyYXkgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9pbnZl cnNlIChvdXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7CisrCQlwdWJsaWMgYm9vbCBnZXRfaW52ZXJz ZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2UpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21h dHJpeF9pbml0X2lkZW50aXR5IildCisgCQlwdWJsaWMgTWF0cml4LmlkZW50aXR5ICgpOworLQkJ cHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCXB1Ymxp YyB2b2lkIGluaXRfZnJvbV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7 CisrCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVyKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGluaXRfdHJhbnNs YXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHopOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBpc19pZGVudGl0eSAoKTsKKysJCXB1Ymxp YyBib29sIGlzX2lkZW50aXR5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJ cHVibGljIHZvaWQgbG9va19hdCAoZmxvYXQgZXllX3Bvc2l0aW9uX3gsIGZsb2F0IGV5ZV9wb3Np dGlvbl95LCBmbG9hdCBleWVfcG9zaXRpb25feiwgZmxvYXQgb2JqZWN0X3gsIGZsb2F0IG9iamVj dF95LCBmbG9hdCBvYmplY3RfeiwgZmxvYXQgd29ybGRfdXBfeCwgZmxvYXQgd29ybGRfdXBfeSwg ZmxvYXQgd29ybGRfdXBfeik7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNvZ2xfbWF0cml4X211bHRp cGx5IildCisgCQlwdWJsaWMgTWF0cml4Lm11bHRpcGx5IChDb2dsLk1hdHJpeCBhLCBDb2dsLk1h dHJpeCBiKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmln aHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIG9ydGhvZ3JhcGhpYyAo ZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9hdCBuZWFyLCBm bG9hdCBmYXIpOworIAkJcHVibGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdl95LCBmbG9h dCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworIAkJcHVibGljIHZvaWQgcHJv amVjdF9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBv aW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50 cyk7CisgCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5 LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9u IHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxl ciBldWxlcik7CisgCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc3gsIGZsb2F0IHN5LCBmbG9h dCBzeik7CistCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBmbG9hdCB4LCByZWYg ZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKysJCXB1YmxpYyBzdGF0aWMgdm9p ZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBDb2dsLk1hdHJpeCBtYXRyaXgsIHJlZiBmbG9hdCB4LCBy ZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKyAJCXB1YmxpYyB2b2lkIHRy YW5zZm9ybV9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQq IHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3Bv aW50cyk7CisgCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0 IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC04MDEsMTYgKzY5Nyw2IEBA IG5hbWVzcGFjZSBDb2dsIHsKKyAJCVdJTkRPV19CVUZGRVIsCisgCQlPRkZTQ1JFRU5fQlVGRkVS CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX0NPTE9SX01BU0tfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10K Ky0JcHVibGljIGVudW0gQ29sb3JNYXNrIHsKKy0JCU5PTkUsCistCQlSRUQsCistCQlHUkVFTiwK Ky0JCUJMVUUsCistCQlBTFBIQSwKKy0JCUFMTAorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9ERVBUSF9URVNUX0ZVTkNUSU9O XyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBEZXB0aFRlc3RGdW5jdGlv biB7CisgCQlORVZFUiwKK0BAIC04MjIsNDYgKzcwOCw0MSBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlHRVFVQUwsCisgCQlBTFdBWVMKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX0VHTF9JTUFHRV9GTEFHXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbRmxh Z3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIGVudW0gRmVhdHVyZUZs YWdzIHsKKy0JCVRFWFRVUkVfUkVDVEFOR0xFLAorLQkJVEVYVFVSRV9OUE9ULAorLQkJVEVYVFVS RV9ZVVYsCistCQlURVhUVVJFX1JFQURfUElYRUxTLAorLQkJU0hBREVSU19HTFNMLAorLQkJT0ZG U0NSRUVOLAorLQkJT0ZGU0NSRUVOX01VTFRJU0FNUExFLAorLQkJT0ZGU0NSRUVOX0JMSVQsCist CQlGT1VSX0NMSVBfUExBTkVTLAorLQkJU1RFTkNJTF9CVUZGRVIsCistCQlWQk9TLAorLQkJUEJP UywKKy0JCVVOU0lHTkVEX0lOVF9JTkRJQ0VTLAorLQkJREVQVEhfUkFOR0UsCistCQlURVhUVVJF X05QT1RfQkFTSUMsCistCQlURVhUVVJFX05QT1RfTUlQTUFQLAorLQkJVEVYVFVSRV9OUE9UX1JF UEVBVCwKKy0JCVBPSU5UX1NQUklURSwKKy0JCVRFWFRVUkVfM0QsCistCQlNQVBfQlVGRkVSX0ZP Ul9SRUFELAorLQkJTUFQX0JVRkZFUl9GT1JfV1JJVEUsCistCQlPTlNDUkVFTl9NVUxUSVBMRSwK Ky0JCURFUFRIX1RFWFRVUkUKKysJcHVibGljIGVudW0gRWdsSW1hZ2VGbGFncyB7CisrCQlOT05F LAorKwkJTk9fR0VUX0RBVEEKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVBVFVSRV9JRF8iLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIGVudW0gRmVhdHVy ZUlEIHsKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1VOU0lHTkVEX0lOVF9J TkRJQ0VTIildCisrCQlPR0xfRkVBVFVSRV9JRF9VTlNJR05FRF9JTlRfSU5ESUNFUywKKysJCVtD Q29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1JFQUQiKV0KKysJ CU9HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1JFQUQsCisrCQlbQ0NvZGUgKGNuYW1lID0g IkNPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9XUklURSIpXQorKwkJT0dMX0ZFQVRVUkVf SURfTUFQX0JVRkZFUl9GT1JfV1JJVEUsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVS RV9JRF9TV0FQX0JVRkZFUlNfRVZFTlQiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1NXQVBfQlVGRkVS U19FVkVOVCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1BSRVNFTlRBVElP Tl9USU1FIildCisrCQlPR0xfRkVBVFVSRV9JRF9QUkVTRU5UQVRJT05fVElNRSwKKysJCVtDQ29k ZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0ZFTkNFIildCisrCQlPR0xfRkVBVFVSRV9JRF9G RU5DRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1RFWFRVUkVfUkciKV0K KysJCU9HTF9GRUFUVVJFX0lEX1RFWFRVUkVfUkcsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xf RkVBVFVSRV9JRF9CVUZGRVJfQUdFIildCisrCQlPR0xfRkVBVFVSRV9JRF9CVUZGRVJfQUdFLAor KwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9FR0xfSU1BR0VfRVhU RVJOQUwiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1RFWFRVUkVfRUdMX0lNQUdFX0VYVEVSTkFMLAor KwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfQkxJVF9GUkFNRUJVRkZFUiIpXQor KwkJT0dMX0ZFQVRVUkVfSURfQkxJVF9GUkFNRUJVRkZFUgorIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GSUxURVJfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEZpbHRlclJldHVybiB7CisgCQlDT05U SU5VRSwKKyAJCVJFTU9WRQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GT0dfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBGb2dNb2RlIHsK Ky0JCUxJTkVBUiwKKy0JCUVYUE9ORU5USUFMLAorLQkJRVhQT05FTlRJQUxfU1FVQVJFRAorLQl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9GUkFNRV9FVkVOVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGVudW0gRnJhbWVFdmVudCB7CitAQCAtODc0LDYgKzc1 NSwxNCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlGUkFNRUJVRkZFUl9FUlJPUl9BTExPQ0FURTsK KyAJCXB1YmxpYyBzdGF0aWMgdWludDMyIHF1YXJrICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9HUkFQSElDU19SRVNF VF9TVEFUVVNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBlbnVtIEdyYXBoaWNz UmVzZXRTdGF0dXMgeworKwkJTk9fRVJST1IsCisrCQlHVUlMVFlfQ09OVEVYVF9SRVNFVCwKKysJ CUlOTk9DRU5UX0NPTlRFWFRfUkVTRVQsCisrCQlVTktOT1dOX0NPTlRFWFRfUkVTRVQsCisrCQlQ VVJHRURfQ09OVEVYVF9SRVNFVAorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZUEVfVU5TSUdORURfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIEluZGljZXNUeXBlIHsKKyAJCUJZVEUs CitAQCAtOTAwLDEyICs3ODksNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlORUFSRVNUX01JUE1B UF9MSU5FQVIsCisgCQlMSU5FQVJfTUlQTUFQX0xJTkVBUgorIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9MQVlF Ul9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsTGF5ZXJUeXBlIHsKKy0JCVtDQ29kZSAoY25hbWUg PSAiQ09HTF9NQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUiKV0KKy0JCU1BVEVSSUFMX0xBWUVS X1RZUEVfVEVYVFVSRQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9XUkFQX01PREVfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGVudW0gTWF0 ZXJpYWxXcmFwTW9kZSB7CitAQCAtOTcwLDYgKzg1MywxMCBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlCR1JBXzEwMTAxMDIsCisgCQlBUkdCXzIxMDEwMTAsCisgCQlBQkdSXzIxMDEwMTAsCisrCQlS R0JBX0ZQXzE2MTYxNjE2LAorKwkJQkdSQV9GUF8xNjE2MTYxNiwKKysJCUFSR0JfRlBfMTYxNjE2 MTYsCisrCQlBQkdSX0ZQXzE2MTYxNjE2LAorIAkJUkdCQV84ODg4X1BSRSwKKyAJCUJHUkFfODg4 OF9QUkUsCisgCQlBUkdCXzg4ODhfUFJFLAorQEAgLTk4MCw5ICs4NjcsMTYgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJQkdSQV8xMDEwMTAyX1BSRSwKKyAJCUFSR0JfMjEwMTAxMF9QUkUsCisgCQlB QkdSXzIxMDEwMTBfUFJFLAorKwkJUkdCQV9GUF8xNjE2MTYxNl9QUkUsCisrCQlCR1JBX0ZQXzE2 MTYxNjE2X1BSRSwKKysJCUFSR0JfRlBfMTYxNjE2MTZfUFJFLAorKwkJQUJHUl9GUF8xNjE2MTYx Nl9QUkUsCisgCQlERVBUSF8xNiwKKyAJCURFUFRIXzMyLAorLQkJREVQVEhfMjRfU1RFTkNJTF84 CisrCQlERVBUSF8yNF9TVEVOQ0lMXzg7CisrCQlwdWJsaWMgaW50IGdldF9ieXRlc19wZXJfcGl4 ZWwgKGludCBwbGFuZSk7CisrCQlwdWJsaWMgaW50IGdldF9uX3BsYW5lcyAoKTsKKysJCXB1Ymxp YyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1JFQURfUElYRUxTX0NPTE9S XyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbRmxhZ3NdCitAQCAtMTA0MSwxMyArOTM1LDYg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTk9fU0xJQ0lORywKKyAJCU5PX0FUTEFTCisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X1RFWFRVUkVfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKy0JcHVibGljIGVudW0gVGV4dHVyZVR5cGUgeworLQkJQDJELAorLQkJQDNE LAorLQkJUkVDVEFOR0xFCistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1ZFUlRJQ0VTX01PREVfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGVudW0gVmVydGlj ZXNNb2RlIHsKK0BAIC0xMDY3LDcgKzk1NCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1dJTlNZ U19GRUFUVVJFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBXaW5zeXNG ZWF0dXJlIHsKKyAJCU1VTFRJUExFX09OU0NSRUVOLAorLQkJU1dBUF9USFJPVFRMRSwKKyAJCVZC TEFOS19DT1VOVEVSLAorIAkJVkJMQU5LX1dBSVQsCisgCQlURVhUVVJFX0ZST01fUElYTUFQLAor QEAgLTEwODIsOSArOTY4LDEyIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1Z09iamVjdEZv cmVhY2hUeXBlQ2FsbGJhY2sgKENvZ2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZvKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45 KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBNYXRlcmlh bExheWVyQ2FsbGJhY2sgKENvZ2wuTWF0ZXJpYWwgbWF0ZXJpYWwsIGludCBsYXllcl9pbmRleCk7 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3Bv cyA9IDEuOSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIwLjEwIildCisrCXB1YmxpYyBkZWxlZ2F0 ZSB2b2lkIEZlYXR1cmVDYWxsYmFjayAoQ29nbC5GZWF0dXJlSUQgZmVhdHVyZSk7CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDMuOSld CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEZy YW1lQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wuRnJhbWVFdmVudCBldmVu dCwgQ29nbC5GcmFtZUluZm8gaW5mbyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE2IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuRGlydHlDYWxsYmFjayAoQ29n bC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNjcmVlbkRpcnR5SW5mbyBpbmZvKTsKK0BAIC0x MDkyLDEyICs5ODEsMTAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgKENv Z2wuT25zY3JlZW4gb25zY3JlZW4sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCist CXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuWDExTWFza0NhbGxiYWNrIChDb2dsLk9uc2Ny ZWVuIG9uc2NyZWVuLCB1aW50MzIgZXZlbnRfbWFzayk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBQaXBlbGluZUxheWVy Q2FsbGJhY2sgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7CisrCXB1 YmxpYyBkZWxlZ2F0ZSBib29sIFBpcGVsaW5lTGF5ZXJDYWxsYmFjayAoQ29nbC5QaXBlbGluZSBw aXBlbGluZSwgaW50IGxheWVyX2luZGV4KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZv aWQgU3dhcEJ1ZmZlcnNOb3RpZnkgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworKwlw dWJsaWMgZGVsZWdhdGUgYm9vbCBUZXh0dXJlMkRFR0xJbWFnZUV4dGVybmFsQWxsb2MgKENvZ2wu VGV4dHVyZTJEIHRleF8yZCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190YXJnZXQgPSBmYWxzZSldCisgCXB1YmxpYyBk ZWxlZ2F0ZSB2b2lkIFVzZXJEYXRhRGVzdHJveUNhbGxiYWNrICh2b2lkKiBkYXRhKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9BRklS U1RfQklUIildCitAQCAtMTEwOCw2ICs5OTUsOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1Ymxp YyBjb25zdCBpbnQgQkdSX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY25hbWUgPSAiQ09HTF9ERVBUSF9CSVQiKV0KKyAJcHVibGljIGNvbnN0IGludCBE RVBUSF9CSVQ7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNu YW1lID0gIkNPR0xfUElYRUxfRk9STUFUX01BWF9QTEFORVMiKV0KKysJcHVibGljIGNvbnN0IGlu dCBQSVhFTF9GT1JNQVRfTUFYX1BMQU5FUzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QUkVNVUxUX0JJVCIpXQorIAlwdWJsaWMgY29u c3QgaW50IFBSRU1VTFRfQklUOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NURU5DSUxfQklUIildCitAQCAtMTExNSwyMSArMTAwNCwx MiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfVEVYVFVSRV9NQVhfV0FTVEUiKV0KKyAJcHVibGljIGNv bnN0IGludCBURVhUVVJFX01BWF9XQVNURTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBi ZWdpbl9nbCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2hlY2tfZXh0ZW5zaW9uIChzdHJpbmcgbmFt ZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXIgKENvZ2wuQ29sb3IgY29sb3IsIHVs b25nIGJ1ZmZlcnMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl9jaGVja19leHRlbnNpb25fQ0xV VFRFUiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgYmxp dF9mcmFtZWJ1ZmZlciAoQ29nbC5GcmFtZWJ1ZmZlciBzcmMsIENvZ2wuRnJhbWVidWZmZXIgZGVz dCwgaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCBpbnQgd2lkdGgs IGludCBoZWlnaHQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl93 aW5zeXNfaGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOwor KwlwdWJsaWMgc3RhdGljIGJvb2wgY2x1dHRlcl93aW5zeXNfaGFzX2ZlYXR1cmVfQ0xVVFRFUiAo Q29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuQm9vbCBjb2xvcl9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKysJcHVi bGljIHN0YXRpYyBib29sIGNvbG9yX2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGNvbG9yX2luaXRfZnJvbV9oc2wgKG91 dCBDb2dsLkNvbG9yIGNvbG9yLCBmbG9hdCBodWUsIGZsb2F0IHNhdHVyYXRpb24sIGZsb2F0IGx1 bWluYW5jZSk7CitAQCAtMTE0MywyMzQgKzEwMjMsODcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19vYmpl Y3RfcHJpbnRfaW5zdGFuY2VzICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfZm9nICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGVuZF9nbCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGZl YXR1cmVzX2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZmx1c2ggKCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90 dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgZm9yZWFjaF9mZWF0dXJlIChD b2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlQ2FsbGJhY2sgY2FsbGJhY2spOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLkJvb2wgZ2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsKKysJcHVibGlj IHN0YXRpYyBib29sIGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBnZXRfYml0bWFza3MgKG91dCBpbnQgcmVkLCBvdXQgaW50IGdyZWVuLCBvdXQgaW50IGJsdWUs IG91dCBpbnQgYWxwaGEpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwlwdWJsaWMg c3RhdGljIGludDY0IGdldF9jbG9ja190aW1lIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3Rh dGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGVzdF9lbmFibGVkICgpOworKwlwdWJsaWMgc3RhdGlj IGJvb2wgZ2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVi bGljIHN0YXRpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2RyYXdfZnJhbWVidWZmZXIg KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJl cyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CisrCXB1 YmxpYyBzdGF0aWMgQ29nbC5HcmFwaGljc1Jlc2V0U3RhdHVzIGdldF9ncmFwaGljc19yZXNldF9z dGF0dXMgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgR0xp Yi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLkNhbGxiYWNrIGdl dF9wcm9jX2FkZHJlc3MgKHN0cmluZyBzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X3Byb2pl Y3Rpb25fbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkKiBnZXRfc291cmNl ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIGdldF92aWV3cG9ydCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldIG91dCBmbG9hdCB2WzRdKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE4IildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGd0eXBlX21hdHJpeF9n ZXRfdHlwZSAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29s IGlzX2ZyYW1lYnVmZmVyICh2b2lkKiBvYmplY3QpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgaGFz X2ZlYXR1cmUgKENvZ2wuQ29udGV4dCBjb250ZXh0LCBDb2dsLkZlYXR1cmVJRCBmZWF0dXJlKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX29uc2NyZWVu ICh2b2lkKiBvYmplY3QpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfY29udGV4dCAodm9pZCog b2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNf cGlwZWxpbmUgKHZvaWQqIG9iamVjdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9v bCBpc192ZXJ0ZXhfYnVmZmVyX2luZGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisrCXB1Ymxp YyBzdGF0aWMgYm9vbCBpc19mcmFtZV9pbmZvICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBtYXRyaXhfZXF1YWwgKHZvaWQqIHYxLCB2 b2lkKiB2Mik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQs IGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQg ZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92eSwgZmxvYXQgYXNwZWN0 LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVyZVZlcnRleCB2ZXJ0aWNlcywgdWludCBu X3ZlcnRpY2VzLCBDb2dsLkJvb2wgdXNlX2NvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3BfbWF0cml4 ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvcF9zb3VyY2UgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgcHVzaF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9z b3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGUgKGZsb2F0IHhfMSwg ZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF9tdWx0aXRleHR1cmVfY29vcmRzIChmbG9h dCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgW0NDb2RlIChhcnJheV9sZW5ndGgg PSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50IHRleF9jb29yZHNfbGVuKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZV93aXRoX3RleHR1cmVf Y29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgZmxvYXQgdHgx LCBmbG9hdCB0eTEsIGZsb2F0IHR4MiwgZmxvYXQgdHkyKTsKKysJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX2ZyYW1lYnVmZmVyICh2b2lkKiBvYmpl Y3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlcyAo W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9yZWN0 cyk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBp c19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjguNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgcmVjdGFuZ2xlc193aXRoX3RleHR1cmVfY29vcmRzIChbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKysJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfcGlwZWxpbmUgKHZv aWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwg ZmxvYXQgeSwgZmxvYXQgeik7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc190ZXh0dXJlXzJkICh2 b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9h dCB6KTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29s IGlzX3RleHR1cmVfMmRfc2xpY2VkICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9i YWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKENvZ2wuQm9vbCBzZXR0aW5nKTsKKysJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wgbWF0cml4X2VxdWFsICh2b2lk KiB2MSwgdm9pZCogdjIpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9kZXB0aF90ZXN0X2VuYWJsZWQgKENv Z2wuQm9vbCBzZXR0aW5nKTsKKysJcHVibGljIHN0YXRpYyB2b2lkIHNldF9iYWNrZmFjZV9jdWxs aW5nX2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvZyAoQ29nbC5D b2xvciBmb2dfY29sb3IsIENvZ2wuRm9nTW9kZSBtb2RlLCBmbG9hdCBkZW5zaXR5LCBmbG9hdCB6 X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJcHVibGljIHN0YXRpYyB2b2lkIHNldF9kZXB0aF90ZXN0 X2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRy aXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdHJhY2lu Z19kaXNhYmxlZF9vbl90aHJlYWQgKHZvaWQqIGRhdGEpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9wcm9q ZWN0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CisrCXB1YmxpYyBzdGF0aWMgdm9p ZCBzZXRfdHJhY2luZ19lbmFibGVkX29uX3RocmVhZCAodm9pZCogZGF0YSwgc3RyaW5nIGdyb3Vw LCBzdHJpbmcgZmlsZW5hbWUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3Vy Y2VfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNldF9zb3VyY2VfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwg ZmxvYXQgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfY29s b3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX3RleHR1cmUgKENvZ2wuVGV4 dHVyZSB0ZXh0dXJlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF92aWV3cG9ydCAo aW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRl cl9jb21waWxlIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBzdHJpbmcgc2hhZGVyX2dl dF9pbmZvX2xvZyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKysJcHVibGljIHN0YXRpYyB2b2lkIHNl dF90cmFjaW5nX2VuYWJsZWRfb25fdGhyZWFkX3dpdGhfZmQgKHZvaWQqIGRhdGEsIHN0cmluZyBn cm91cCwgaW50IGZkKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5TaGFkZXJUeXBlIHNoYWRlcl9nZXRfdHlwZSAo Q29nbC5IYW5kbGUgaGFuZGxlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIHNoYWRlcl9pc19jb21waWxl ZCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSBzaGFk ZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl9zb3VyY2Ug KENvZ2wuSGFuZGxlIHNoYWRlciwgc3RyaW5nIHNvdXJjZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVy X3VucmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyBDb2ds LlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29n bC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAi MC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZGF0 YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5Q aXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQg cm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKysJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4 dHVyZV9uZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZs YWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRl cm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSB1aW50OFtdIGRhdGEpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKyAJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4 dHVyZV9uZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZs YWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0g IjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2Zv cmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3RhcmdldCwgdWludCB3aWR0aCwgdWludCBo ZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rfd2FzdGUsIENvZ2wuUGl4ZWxGb3Jt YXQgZm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4 Iiwgc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVf bmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdz IGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg dmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9u YW1lLCB1aW50OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0cmlidXRlVHlwZSB0eXBlLCBDb2dsLkJv b2wgbm9ybWFsaXplZCwgdWludDE2IHN0cmlkZSwgdm9pZCogcG9pbnRlcik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgdmVydGV4X2J1ZmZlcl9kZWxldGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJp YnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2Rpc2FibGUgKENvZ2wuSGFu ZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhf YnVmZmVyX2RyYXcgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01vZGUgbW9kZSwg aW50IGZpcnN0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZHJhd19l bGVtZW50cyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBDb2ds LkhhbmRsZSBpbmRpY2VzLCBpbnQgbWluX2luZGV4LCBpbnQgbWF4X2luZGV4LCBpbnQgaW5kaWNl c19vZmZzZXQsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9lbmFibGUg KENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdWlu dCB2ZXJ0ZXhfYnVmZmVyX2dldF9uX3ZlcnRpY2VzIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfZm9yX3F1 YWRzICh1aW50IG5faW5kaWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSW5kaWNlc1R5cGUgdmVydGV4X2J1 ZmZlcl9pbmRpY2VzX2dldF90eXBlIChDb2dsLkhhbmRsZSBpbmRpY2VzKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX25ldyAodWludCBuX3ZlcnRpY2VzKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0 YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfcmVmIChDb2dsLkhhbmRsZSBo YW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfc3VibWl0IChDb2dsLkhhbmRsZSBo YW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFu ZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5j ZSA9ICIwLjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmlld3BvcnQgKHVpbnQgd2lkdGgs IHVpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfdmlzdWFsX3hpZCAo Q29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3Rh dGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25z Y3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX29uc2Ny ZWVuX3NldF9mb3JlaWduX3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQz MiB4aWQsIFtDQ29kZSAoc2NvcGUgPSAiYXN5bmMiKV0gQ29nbC5PbnNjcmVlblgxMU1hc2tDYWxs YmFjayB1cGRhdGUpOworIH0KK2RpZmYgLS1naXQgdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkg dmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkKK2luZGV4IDkzZWZmOGE1Li5mZWRjNmE0YSAxMDA2 NDQKKy0tLSB2YXBpL3BvbGtpdC1nb2JqZWN0LTEudmFwaQorKysrIHZhcGkvcG9sa2l0LWdvYmpl Y3QtMS52YXBpCitAQCAtNyw3ICs3LDcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgQWN0aW9uRGVz Y3JpcHRpb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2FjdGlvbl9pZCAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYW5ub3RhdGlvbiAoc3RyaW5nIGtleSk7Cisr CQlwdWJsaWMgdW5vd25lZCBzdHJpbmc/IGdldF9hbm5vdGF0aW9uIChzdHJpbmcga2V5KTsKKyAJ CVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRy dWUpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nW10gZ2V0X2Fubm90YXRpb25fa2V5cyAoKTsK KyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRpb24gKCk7CitAQCAtMzQsNyAr MzQsNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCXB1YmxpYyBQb2xraXQuQXV0aG9yaXR5RmVh dHVyZXMgZ2V0X2JhY2tlbmRfZmVhdHVyZXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X2JhY2tlbmRfbmFtZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYmFja2Vu ZF92ZXJzaW9uICgpOworLQkJcHVibGljIHN0cmluZyBnZXRfb3duZXIgKCk7CisrCQlwdWJsaWMg c3RyaW5nPyBnZXRfb3duZXIgKCk7CisgCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5BdXRob3JpdHkg Z2V0X3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdM aWIuRXJyb3I7CisgCQlwdWJsaWMgYXN5bmMgYm9vbCByZWdpc3Rlcl9hdXRoZW50aWNhdGlvbl9h Z2VudCAoUG9sa2l0LlN1YmplY3Qgc3ViamVjdCwgc3RyaW5nIGxvY2FsZSwgc3RyaW5nIG9iamVj dF9wYXRoLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7 CisgCQlwdWJsaWMgYm9vbCByZWdpc3Rlcl9hdXRoZW50aWNhdGlvbl9hZ2VudF9zeW5jIChQb2xr aXQuU3ViamVjdCBzdWJqZWN0LCBzdHJpbmcgbG9jYWxlLCBzdHJpbmcgb2JqZWN0X3BhdGgsIEdM aWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CitA QCAtNTYsMjEgKzU2LDIyIEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAlwdWJsaWMgY2xhc3MgQXV0 aG9yaXphdGlvblJlc3VsdCA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBBdXRob3JpemF0aW9uUmVzdWx0IChib29s IGlzX2F1dGhvcml6ZWQsIGJvb2wgaXNfY2hhbGxlbmdlLCBQb2xraXQuRGV0YWlscz8gZGV0YWls cyk7CistCQlwdWJsaWMgdW5vd25lZCBQb2xraXQuRGV0YWlscyBnZXRfZGV0YWlscyAoKTsKKysJ CXB1YmxpYyB1bm93bmVkIFBvbGtpdC5EZXRhaWxzPyBnZXRfZGV0YWlscyAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjEwMSIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2Rpc21pc3NlZCAoKTsK KyAJCXB1YmxpYyBib29sIGdldF9pc19hdXRob3JpemVkICgpOworIAkJcHVibGljIGJvb2wgZ2V0 X2lzX2NoYWxsZW5nZSAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9yZXRhaW5zX2F1dGhvcml6YXRp b24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3RlbXBvcmFyeV9hdXRob3JpemF0 aW9uX2lkICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nPyBnZXRfdGVtcG9yYXJ5X2F1dGhv cml6YXRpb25faWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtp dC9wb2xraXQuaCIsIHR5cGVfaWQgPSAicG9sa2l0X2RldGFpbHNfZ2V0X3R5cGUgKCkiKV0KKyAJ cHVibGljIGNsYXNzIERldGFpbHMgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgRGV0YWlscyAoKTsKKyAJCVtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXQor LQkJcHVibGljIHN0cmluZ1tdIGdldF9rZXlzICgpOworKwkJcHVibGljIHN0cmluZ1tdPyBnZXRf a2V5cyAoKTsKKyAJCXB1YmxpYyB2b2lkIGluc2VydCAoc3RyaW5nIGtleSwgc3RyaW5nPyB2YWx1 ZSk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgbG9va3VwIChzdHJpbmcga2V5KTsKKysJCXB1 YmxpYyB1bm93bmVkIHN0cmluZz8gbG9va3VwIChzdHJpbmcga2V5KTsKKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIiwgdHlwZV9pZCA9ICJwb2xraXRf cGVybWlzc2lvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgUGVybWlzc2lvbiA6IEdM aWIuUGVybWlzc2lvbiwgR0xpYi5Bc3luY0luaXRhYmxlLCBHTGliLkluaXRhYmxlIHsKK0BAIC04 OCw3ICs4OSw4IEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFN5c3RlbUJ1c05hbWUgKCk7CisgCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7CistCQlwdWJsaWMgUG9sa2l0LlN1Ympl Y3QgZ2V0X3Byb2Nlc3Nfc3luYyAoR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxs KSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBQb2xraXQuU3ViamVjdD8gZ2V0X3Byb2Nl c3Nfc3luYyAoR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKysJCXB1YmxpYyBQb2xraXQuVW5peFVzZXI/IGdldF91c2VyX3N5bmMgKEdMaWIu Q2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlw dWJsaWMgc3RhdGljIFBvbGtpdC5TdWJqZWN0IEBuZXcgKHN0cmluZyBuYW1lKTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9uYW1lIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBn ZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KK0BAIC0xNDYsOSArMTQ4LDEwIEBAIG5hbWVzcGFjZSBQb2xr aXQgeworIAkJcHJvdGVjdGVkIFVuaXhTZXNzaW9uICgpOworIAkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9zZXNzaW9uX2lkICgpOworIAkJcHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVjdCBA bmV3IChzdHJpbmcgc2Vzc2lvbl9pZCk7CistCQlwdWJsaWMgc3RhdGljIGFzeW5jIFBvbGtpdC5T dWJqZWN0IG5ld19mb3JfcHJvY2VzcyAoaW50IHBpZCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2Vs bGFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVj dCBuZXdfZm9yX3Byb2Nlc3Nfc3luYyAoaW50IHBpZCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2Vs bGFibGUgPSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBzdGF0aWMgYXN5bmMg UG9sa2l0LlN1YmplY3Q/IG5ld19mb3JfcHJvY2VzcyAoaW50IHBpZCwgR0xpYi5DYW5jZWxsYWJs ZT8gY2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHN0YXRpYyBQb2xr aXQuU3ViamVjdD8gbmV3X2Zvcl9wcm9jZXNzX3N5bmMgKGludCBwaWQsIEdMaWIuQ2FuY2VsbGFi bGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgdm9p ZCBzZXRfc2Vzc2lvbl9pZCAoc3RyaW5nIHNlc3Npb25faWQpOworKwkJW05vQWNjZXNzb3JNZXRo b2RdCisgCQlwdWJsaWMgaW50IHBpZCB7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHN0cmluZyBz ZXNzaW9uX2lkIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCX0KK0BAIC0xNTYsMTcgKzE1OSwx NyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJcHVibGljIGNsYXNzIFVuaXhVc2VyIDogR0xpYi5P YmplY3QsIFBvbGtpdC5JZGVudGl0eSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgVW5peFVzZXIgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X25hbWUgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmc/IGdldF9uYW1l ICgpOworIAkJcHVibGljIGludCBnZXRfdWlkICgpOworIAkJcHVibGljIHN0YXRpYyBQb2xraXQu SWRlbnRpdHkgQG5ldyAoaW50IHVpZCk7CistCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0 eSBuZXdfZm9yX25hbWUgKHN0cmluZyBuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1Ymxp YyBzdGF0aWMgUG9sa2l0LklkZW50aXR5PyBuZXdfZm9yX25hbWUgKHN0cmluZyBuYW1lKSB0aHJv d3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyB2b2lkIHNldF91aWQgKGludCB1aWQpOworIAkJcHVi bGljIGludCB1aWQgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIiwgdHlwZV9pZCA9ICJwb2xraXRfaWRlbnRp dHlfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGludGVyZmFjZSBJZGVudGl0eSA6IEdMaWIuT2Jq ZWN0IHsKKyAJCXB1YmxpYyBhYnN0cmFjdCBib29sIGVxdWFsIChQb2xraXQuSWRlbnRpdHkgYik7 CistCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eSBmcm9tX3N0cmluZyAoc3RyaW5nIHN0 cikgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eT8g ZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIGFi c3RyYWN0IHVpbnQgaGFzaCAoKTsKKyAJCXB1YmxpYyBhYnN0cmFjdCBzdHJpbmcgdG9fc3RyaW5n ICgpOworIAl9CitAQCAtMjAxLDcgKzIwNCw3IEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAkJQURN SU5JU1RSQVRPUl9BVVRIRU5USUNBVElPTl9SRVFVSVJFRF9SRVRBSU5FRCwKKyAJCUFVVEhPUkla RUQ7CisgCQlwdWJsaWMgc3RhdGljIGJvb2wgZnJvbV9zdHJpbmcgKHN0cmluZyBzdHJpbmcsIFBv bGtpdC5JbXBsaWNpdEF1dGhvcml6YXRpb24gb3V0X2ltcGxpY2l0X2F1dGhvcml6YXRpb24pOwor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKFBvbGtpdC5JbXBsaWNp dEF1dGhvcml6YXRpb24gaW1wbGljaXRfYXV0aG9yaXphdGlvbik7CisrCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJwb2xraXQvcG9sa2l0LmgiLCBjcHJlZml4ID0gIlBPTEtJVF9FUlJPUl8iKV0KKyAJcHVibGlj IGVycm9yZG9tYWluIEVycm9yIHsKK0BAIC0yMTIsNyArMjE1LDcgQEAgbmFtZXNwYWNlIFBvbGtp dCB7CisgCQlwdWJsaWMgc3RhdGljIEdMaWIuUXVhcmsgcXVhcmsgKCk7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIpXQorLQlwdWJsaWMgc3RhdGlj IFBvbGtpdC5JZGVudGl0eSBpZGVudGl0eV9mcm9tX3N0cmluZyAoc3RyaW5nIHN0cikgdGhyb3dz IEdMaWIuRXJyb3I7CisrCXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50aXR5PyBpZGVudGl0eV9m cm9tX3N0cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdMaWIuRXJyb3I7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiKV0KKyAJcHVibGljIHN0YXRpYyBQb2xr aXQuU3ViamVjdCBzdWJqZWN0X2Zyb21fc3RyaW5nIChzdHJpbmcgc3RyKSB0aHJvd3MgR0xpYi5F cnJvcjsKKyB9CistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2J1ZGdpZS1kZXNr dG9wL3RlbXBsYXRlIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC90ZW1wbGF0ZQppbmRleCBiMzJl NzczNGQzYi4uYWU1YTlkNWY3NjkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3Av dGVtcGxhdGUKKysrIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2J1ZGdpZS1kZXNrdG9wJwogcGtnbmFtZT1idWRn aWUtZGVza3RvcAogdmVyc2lvbj0xMC41LjEKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIGJ1aWxk X3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9Z2lyCiBjb25maWd1cmVfYXJncz0iLUR3aXRoLWd0 ay1kb2M9ZmFsc2UgLUR3aXRoLWRlc2t0b3AtaWNvbnM9bm9uZSIKCkZyb20gNWFkNzk5ZjdmNzM2 NzJhYzZkOGIwMmM3NmNjMWZmYjFiMTgzNTAzMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcgU2Vw IDIwMjAgMDY6MjM6NTkgKzAyMDAKU3ViamVjdDogW1BBVENIIDEwMS8xMDJdIE5ldyBwYWNrYWdl OiBnbm9tZS1jb3JlLTMuMzYuMAoKLS0tCiBzcmNwa2dzL2dub21lLWNvcmUvdGVtcGxhdGUgfCA1 NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwg NTQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtY29yZS90 ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY29yZS90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ25vbWUtY29yZS90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uMDM3NDk3Y2NiNTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLWNvcmUv dGVtcGxhdGUKQEAgLTAsMCArMSw1NCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtY29y ZScKK3BrZ25hbWU9Z25vbWUtY29yZQordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKK2J1aWxk X3N0eWxlPW1ldGEKK3Nob3J0X2Rlc2M9IkdOT01FIG1ldGEtcGFja2FnZSBmb3IgVm9pZCBMaW51 eCAtIGNvcmUgY29tcG9uZW50cyIKK21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5LCBMR1BMLTIuMC1vbmx5IgoraG9tZXBhZ2U9Imh0 dHBzOi8vd3d3Lmdub21lLm9yZyIKKworZGVwZW5kcz0iCisgYWR3YWl0YS1pY29uLXRoZW1lPj0z LjM4LjAKKyBhdC1zcGkyLWNvcmU+PTIuMzguMAorIGF0LXNwaTItYXRrPj0yLjM4LjAKKyBjYW50 YXJlbGwtZm9udHM+PTAuMjAxCisgY2FyaWJvdT49MC40LjIxCisgZGNvbmY+PTAuMzYuMAorIGV2 b2x1dGlvbi1kYXRhLXNlcnZlcj49My4zOC4wCisgZm9sa3M+PTAuMTQuMAorIGZvbnQtYWRvYmUt c291cmNlLWNvZGUtcHJvPj0yLjAzMFIKKyBnY3I+PTMuMzYuMAorIGdkbT49My4zOC4wCisgZ2Vv Y29kZS1nbGliPj0zLjI2LjAKKyBnZmJncmFwaD49MC4yLjQKKyBnanM+PTEuNjYuMAorIGdsaWI+ PTIuNjYuMAorIGdsaWItbmV0d29ya2luZz49Mi42Ni4wCisgZ21pbWUzPj0zLjIuNworIGdub21l LWJhY2tncm91bmRzPj0zLjM4LjAKKyBnbm9tZS1ibHVldG9vdGg+PTMuMzQuMQorIGdub21lLWNv bG9yLW1hbmFnZXI+PTMuMzYuMAorIGdub21lLWNvbnRyb2wtY2VudGVyPj0zLjM4LjAKKyBnbm9t ZS1kZXNrdG9wPj0zLjM4LjAKKyBnbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcz49My4zNi4yCisg Z25vbWUtaW5pdGlhbC1zZXR1cD49My4zOC4wCisgZ25vbWUta2V5cmluZz49My4zNi4wCisgZ25v bWUtb25saW5lLWFjY291bnRzPj0zLjM3LjkwCisgZ25vbWUtb25saW5lLW1pbmVycz49My4zNC4w CisgZ25vbWUtc2Vzc2lvbj49My4zOC4wCisgZ25vbWUtc2V0dGluZ3MtZGFlbW9uPj0zLjM4LjAK KyBnbm9tZS1zaGVsbD49My4zOC4wCisgZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucz49My4zOC4wCisg Z25vbWUtdGhlbWVzLXN0YW5kYXJkPj0zLjI4CisgZ25vbWUtdXNlci1kb2NzPj0zLjM4LjAKKyBn bm9tZS12aWRlby1lZmZlY3RzPj0wLjUuMAorIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXM+PTMu MzguMAorIGd2ZnM+PTEuNDYuMAorIG11dHRlcj49My4zOC4wCisgbmF1dGlsdXM+PTMuMzguMAor IHN1c2hpPj0zLjM0LjAKKyB0cmFja2VyMz49My4wLjAKKyB5ZWxwPj0zLjM4LjAKKyB4ZGctZGVz a3RvcC1wb3J0YWwtZ3RrPj0xLjguMAorIHplbml0eT49My4zMi4wIgoKRnJvbSBkMDdlMzU1NDc5 ODQ3NGY4YTEyYjNlMjEzZDc2NGEzNDk2ZWJhYWRiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBT ZXAgMjAyMCAwNjoyNDowNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAyLzEwMl0gZ25vbWU6IHVw ZGF0ZSB0byAzLjM4LjAKCltjaSBza2lwXQotLS0KIHNyY3BrZ3MvZ25vbWUvdGVtcGxhdGUgfCAy NDEgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA3OSBpbnNlcnRpb25zKCspLCAxNjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbm9tZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUvdGVtcGxhdGUKaW5kZXggOWU3YjZj MjEzMzYuLmFlMTEyNDQxZjMxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZ25vbWUvdGVtcGxhdGUKQEAgLTEsMTgxICsxLDk4IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZScKIHBrZ25hbWU9Z25vbWUKLXZlcnNpb249My4zMi4wCi1yZXZpc2lv bj0zCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWV0YQogc2hvcnRf ZGVzYz0iR05PTUUgbWV0YS1wYWNrYWdlIGZvciBWb2lkIExpbnV4IgogbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb25seSwg TEdQTC0yLjAtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3d3dy5nbm9tZS5vcmciCiAKLWRlcGVu ZHM9Ik5ldHdvcmtNYW5hZ2VyPj0xLjE0LjBfMQotIGFkd2FpdGEtaWNvbi10aGVtZT49My4zMi4w Ci0gYXQtc3BpMi1hdGs+PTIuMzIuMAotIGF0LXNwaTItY29yZT49Mi4zMi4wCi0gYXRrPj0yLjMy LjAKLSBhdGttbT49Mi4yNC4yCi0gY2Fpcm9tbT49MS4xMi4yXzIKLSBjYW50YXJlbGwtZm9udHM+ PTAuMC4yNQotIGNhcmlib3U+PTAuNC4yMQotIGNocm9tZS1nbm9tZS1zaGVsbD49MTAuMC4wCi0g Y2x1dHRlcj49MS4yNi4yCi0gY2x1dHRlci1nc3QzPj0zLjAuMjQKLSBjbHV0dGVyLWd0az49MS44 LjQKLSBjb2dsPj0xLjIyLjIKLSBkY29uZj49MC4zMC4wCi0gZW9nPj0zLjMyLjAKLSBldmluY2U+ PTMuMzIuMAotIGV2b2x1dGlvbi1kYXRhLXNlcnZlcj49My4zMi4wCi0gZmlsZS1yb2xsZXI+PTMu MzIuMAotIGZvbGtzPj0wLjExLjQKLSBmb250LWFkb2JlLXNvdXJjZS1jb2RlLXBybz49Mi4wMzBS Ci0gZ2NhYj49MC43Ci0gZ2NyPj0zLjI4LjAKLSBnZGstcGl4YnVmPj0yLjM4LjAKLSBnZG0+PTMu MzIuMAotIGdlb2NvZGUtZ2xpYj49My4yNi4wXzEKLSBnZmJncmFwaD49MC4yLjMKLSBnanM+PTEu NTYuMAotIGdsaWI+PTIuNjAuMAotIGdsaWItbmV0d29ya2luZz49Mi42MC4wCi0gZ2xpYm1tPj0y LjYwLjAKLSBnbWltZT49Mi42LjIzCi0gZ25vbWUtYmFja2dyb3VuZHM+PTMuMzIuMAotIGdub21l LWJsdWV0b290aD49My4zMi4wCi0gZ25vbWUtY29sb3ItbWFuYWdlcj49My4zMi4wCi0gZ25vbWUt Y29udHJvbC1jZW50ZXI+PTMuMzIuMAotIGdub21lLWRlc2t0b3A+PTMuMzIuMAotIGdub21lLWdl dHRpbmctc3RhcnRlZC1kb2NzPj0zLjMyLjAKLSBnbm9tZS1pbml0aWFsLXNldHVwPj0zLjMyLjAK LSBnbm9tZS1rZXlyaW5nPj0zLjI4LjEKLSBnbm9tZS1vbmxpbmUtYWNjb3VudHM+PTMuMzIuMAot IGdub21lLW9ubGluZS1taW5lcnM+PTMuMzAuMAotIGdub21lLXNlc3Npb24+PTMuMzIuMAotIGdu b21lLXNldHRpbmdzLWRhZW1vbj49My4zMi4wCi0gZ25vbWUtc2hlbGw+PTMuMzIuMAotIGdub21l LXNoZWxsLWV4dGVuc2lvbnM+PTMuMzIuMAotIGdub21lLXRoZW1lcy1zdGFuZGFyZD49My4yMi4z Ci0gZ25vbWUtdHdlYWtzPj0zLjMyLjAKLSBnbm9tZS11c2VyLWRvY3M+PTMuMzIuMAotIGdub21l LXZpZGVvLWVmZmVjdHM+PTAuNC4zCi0gZ29iamVjdC1pbnRyb3NwZWN0aW9uPj0xLjYwLjAKLSBn b20+PTAuMy4yXzEKLSBncmlsbz49MC4zLjQKLSBncmlsby1wbHVnaW5zPj0wLjMuNQotIGdzZXR0 aW5ncy1kZXNrdG9wLXNjaGVtYXM+PTMuMzIuMAorZGVwZW5kcz0iCisgZ25vbWUtY29yZT49JHt2 ZXJzaW9ufQorIGJhb2JhYj49My4zOC4wCisgY2hlZXNlPj0zLjM4LjAKKyBlb2c+PTMuMzguMAor IGV2aW5jZT49My4zOC4wCisgZmlsZS1yb2xsZXI+PTMuMzguMAorIGdlZGl0Pj0zLjM4LjAKKyBn bm9tZS1jYWxjdWxhdG9yPj0zLjM4LjAKKyBnbm9tZS1jYWxlbmRhcj49My4zOC4wCisgZ25vbWUt Y2hhcmFjdGVycz49My4zNC4wCisgZ25vbWUtY2xvY2tzPj0zLjM4LjAKKyBnbm9tZS1jb250YWN0 cz49My4zNy4yCisgZ25vbWUtZGlzay11dGlsaXR5Pj0zLjM4LjAKKyBnbm9tZS1mb250LXZpZXdl cj49My4zNC4wCisgZ25vbWUtbWFwcz49My4zOC4wCisgZ25vbWUtbXVzaWM+PTMuMzguMAorIGdu b21lLXNjcmVlbnNob3Q+PTMuMzguMAorIGdub21lLXN5c3RlbS1tb25pdG9yPj0zLjM4LjAKKyBn bm9tZS10ZXJtaW5hbD49My4zOC4wCisgZ25vbWUtdHdlYWtzPj0zLjM0LjAKKyBnbm9tZS13ZWF0 aGVyPj0zLjM2LjEKICBnc291bmQ+PTEuMC4yCi0gZ3NwZWxsPj0xLjguMAotIGdzc2RwPj0xLjAu MgotIGd0ayszPj0zLjI0LjAKLSBndGttbT49My4yMi4xCi0gZ3Rrc291cmNldmlldz49My4yNC40 Ci0gZ3VwbnA+PTEuMC4yCi0gZ3VwbnAtYXY+PTAuMTIuMTAKLSBndXBucC1kbG5hPj0wLjEwLjUK LSBndXBucC1pZ2Q+PTAuMi40Ci0gZ3Zmcz49MS40MC4wCi0ganNvbi1nbGliPj0xLjQuMgotIGxp YmNyb2NvPj0wLjYuMTIKLSBsaWJnZGF0YT49MC4xNi4xXzIKLSBsaWJnZWUwOD49MC4yMC4wCi0g bGliZ2VwdWI+PTAuNF8xCi0gbGliZ25vbWVrYmQ+PTMuMjYuMAotIGxpYmdzZj49MS4xNC40MQot IGxpYmd0b3A+PTIuNDAuMAotIGxpYmd3ZWF0aGVyPj0zLjMyLjAKLSBsaWJneHBzPj0wLjIuNV8x Ci0gbGlibWVkaWFhcnQ+PTEuOS40Ci0gbGlibm90aWZ5Pj0wLjcuNl80Ci0gbGlicGVhcz49MS4y Mi4wCi0gbGlicnN2Zz49Mi40NC4wCi0gbGlic2VjcmV0Pj0wLjE4LjUKLSBsaWJzaWdjKys+PTIu MTAuMAotIGxpYnNvdXA+PTIuNjAuMAotIGxpYnhtbDI+PTIuNi4zMAotIGxpYnhzbHQ+PTEuMS4y MgotIGxpYnphcG9qaXQ+PTAuMC4zCi0gbW0tY29tbW9uPj0wLjkuMTBfMgotIG1vdXNldHdlYWtz Pj0zLjEyLjAKLSBtdXR0ZXI+PTMuMzIuMAotIG5hdXRpbHVzPj0zLjMyLjAKKyBnc3BlbGw+PTEu OC4zCisgbW91c2V0d2Vha3M+PTMuMzIuMAogIG5ldHdvcmstbWFuYWdlci1hcHBsZXQ+PTEuOC4y Ci0gb3JjYT49My4zMi4wCi0gcGFuZ28+PTEuNDIuMAotIHBhbmdvbW0+PTIuNDAuMQotIHBob2Rh dj49Mi4yCi0gcHl0aG9uLWF0c3BpPj0yLjI2LjAKLSBweXRob24tZ29iamVjdD49My4yNi4wCi0g cmVzdD49MC44LjAKLSB0cmFja2VyPj0yLjAuMAotIHZhbGE+PTAuNDQuMAotIHZ0ZTM+PTAuNTQu MAotIHllbHA+PTMuMzIuMAotIHllbHAtdG9vbHM+PTMuMzIuMAotIHllbHAteHNsPj0zLjMyLjAK LSB6ZW5pdHk+PTMuMzIuMCIKKyBvcmNhPj0zLjM4LjAKKyBwaG9kYXY+PTIuNQorIHNpbXBsZS1z Y2FuPj0zLjM4LjAKKyB0b3RlbT49My4zOC4wCisgeWVscC10b29scz49My4zOC4wIgogCi1fYXBw c19kZXBlbmRzPSJiYW9iYWI+PTMuMzIuMAotIGNoZWVzZT49My4zMi4wCi0gZGNvbmYtZWRpdG9y Pj0zLjMyLjAKLSBkZXZoZWxwPj0zLjMyLjAKLSBlcGlwaGFueT49My4zMi4wCi0gZXZvbHV0aW9u Pj0zLjMyLjAKLSBnaGV4Pj0zLjE4LjMKLSBnaXRnPj0zLjI2LjAKLSBnZWRpdD49My4zMi4wCi0g Z2VkaXQtcGx1Z2lucz49My4zMi4wCi0gZ25vbWUtYm94ZXM+PTMuMzIuMAotIGdub21lLWJ1aWxk ZXI+PTMuMzIuMAotIGdub21lLWNhbGN1bGF0b3I+PTMuMzIuMAotIGdub21lLWNhbGVuZGFyPj0z LjMyLjAKLSBnbm9tZS1jaGFyYWN0ZXJzPj0zLjMyLjAKLSBnbm9tZS1jbG9ja3M+PTMuMzIuMAot IGdub21lLWRpY3Rpb25hcnk+PTMuMjYuMAotIGdub21lLWRpc2stdXRpbGl0eT49My4zMi4wCi0g Z25vbWUtZG9jdW1lbnRzPj0zLjMyLjAKLSBnbm9tZS1mb250LXZpZXdlcj49My4zMi4wCi0gZ25v bWUtbWFwcz49My4zMi4wCi0gZ25vbWUtbXVzaWM+PTMuMzIuMAorX2FwcHNfZGVwZW5kcz0iCisg ZGNvbmYtZWRpdG9yPj0zLjM4LjAKKyBkZXZoZWxwPj0zLjM4LjAKKyBlcGlwaGFueT49My4zOC4w CisgZXZvbHV0aW9uPj0zLjM4LjAKKyBnaGV4Pj0zLjE4LjQKKyBnaXRnPj0zLjMyLjEKKyBnZWRp dC1wbHVnaW5zPj0zLjM4LjAKKyBnbm9tZS1ib3hlcz49My4zOC4wCisgZ25vbWUtYnVpbGRlcj49 My4zOC4wCisgZ25vbWUtY2FsY3VsYXRvcj49My4zOC4wCisgZ25vbWUtY2FsZW5kYXI+PTMuMzgu MAorIGdub21lLWNoYXJhY3RlcnM+PTMuMzQuMAorIGdub21lLWNsb2Nrcz49My4zOC4wCisgZ25v bWUtZGljdGlvbmFyeT49My4yNi4xCisgZ25vbWUtZGlzay11dGlsaXR5Pj0zLjM4LjAKKyBnbm9t ZS1kb2N1bWVudHM+PTMuMzQuMAorIGdub21lLWZvbnQtdmlld2VyPj0zLjM0LjAKKyBnbm9tZS1t YXBzPj0zLjM4LjAKKyBnbm9tZS1tdXNpYz49My4zOC4wCiAgZ25vbWUtbmV0dG9vbD49My44LjEK LSBnbm9tZS1waG90b3M+PTMuMzIuMAotIGdub21lLXJlY2lwZXM+PTIuMC4wCi0gZ25vbWUtc2Ny ZWVuc2hvdD49My4zMi4wCi0gZ25vbWUtc291bmQtcmVjb3JkZXI+PTMuMzIuMAotIGdub21lLXN5 c3RlbS1tb25pdG9yPj0zLjMyLjAKLSBnbm9tZS10ZXJtaW5hbD49My4zMi4wCi0gZ25vbWUtdHdl YWtzPj0zLjMyLjAKLSBndGstdm5jPj0wLjYuMF8yCi0gbGliY2hhbXBsYWluPj0wLjEyLjE2Ci0g bmF1dGlsdXMtc2VuZHRvPj0zLjguMAorIGdub21lLXBob3Rvcz49My4zNy45MS4xCisgZ25vbWUt cmVjaXBlcz49Mi4wLjIKKyBnbm9tZS1zY3JlZW5zaG90Pj0zLjM4LjAKKyBnbm9tZS1zb3VuZC1y ZWNvcmRlcj49My4zNC4wCisgZ25vbWUtc3lzdGVtLW1vbml0b3I+PTMuMzguMAorIGdub21lLXRl cm1pbmFsPj0zLjM4LjAKICBuZW1pdmVyPj0wLjkuNgotIHBvbGFyaT49My4zMi4wCi0gcnlnZWw+ PTAuMzYuMAotIHNpbXBsZS1zY2FuPj0zLjMyLjAKLSBzdXNoaT49My4zMi4wCi0gdG90ZW0+PTMu MzIuMAotIHRvdGVtLXBsLXBhcnNlcj49My4yNi4wCisgcG9sYXJpPj0zLjM2LjMKKyByeWdlbD49 MC40MC4wCisgc2ltcGxlLXNjYW4+PTMuMzguMAorIHRvdGVtPj0zLjM4LjAKICB2aW5vPj0zLjIy LjAiCiAKIF9nYW1lc19jb2xsZWN0aW9uX2RlcGVuZHM9IgotIGFpc2xlcmlvdD49My4yMi4zCi0g Zml2ZS1vci1tb3JlPj0zLjMyLjAKLSBmb3VyLWluLWEtcm93Pj0zLjMyLjAKLSBnbm9tZS0yMDQ4 Pj0zLjMyLjAKLSBnbm9tZS1jaGVzcz49My4zMi4wCi0gZ25vbWUta2xvdHNraT49My4zMi4wCi0g Z25vbWUtbWFoam9uZ2c+PTMuMzIuMAotIGdub21lLW1pbmVzPj0zLjMyLjAKLSBnbm9tZS1uaWJi bGVzPj0zLjI0LjAKLSBnbm9tZS1yb2JvdHM+PTMuMzIuMAotIGdub21lLXN1ZG9rdT49My4zMi4w Ci0gZ25vbWUtdGV0cmF2ZXg+PTMuMzIuMAotIGhpdG9yaT49My4yMi40Ci0gaWFnbm8+PTMuMzIu MAotIGxpZ2h0c29mZj49My4yNi4wCi0gcXVhZHJhcGFzc2VsPj0zLjMyLjAKLSBzd2VsbC1mb29w Pj0zLjI2LjAKLSB0YWxpPj0zLjMyLjAKLSIKKyBhaXNsZXJpb3Q+PTMuMjIuMTIKKyBmaXZlLW9y LW1vcmU+PTMuMzIuMgorIGZvdXItaW4tYS1yb3c+PTMuMzYuNAorIGdub21lLTIwNDg+PTMuMzYu NAorIGdub21lLWNoZXNzPj0zLjM2LjEKKyBnbm9tZS1rbG90c2tpPj0zLjM2LjMKKyBnbm9tZS1t YWhqb25nZz49My4zNi4yCisgZ25vbWUtbWluZXM+PTMuMzYuMQorIGdub21lLW5pYmJsZXM+PTMu MjYuMQorIGdub21lLXJvYm90cz49My4zNi4xCisgZ25vbWUtc3Vkb2t1Pj0zLjM2LjAKKyBnbm9t ZS10ZXRyYXZleD49My4zNi40CisgaGl0b3JpPj0zLjM4LjAKKyBpYWdubz49My4zNi40CisgbGln aHRzb2ZmPj0zLjM2LjAKKyBxdWFkcmFwYXNzZWw+PTMuMzYuMDUKKyBzd2VsbC1mb29wPj0zLjM0 LjEKKyB0YWxpPj0zLjM2LjQiCiAKIGdub21lLWFwcHNfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIk X2FwcHNfZGVwZW5kcyIK --===============3208514976090085758==--