From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 29977 invoked from network); 18 Sep 2020 15:27:47 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 18 Sep 2020 15:27:47 -0000 Content-Type: multipart/mixed; boundary="===============4097681282721628522==" 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 17:27:43 +0200 List-Id: Message-ID: <20200918152743.PyWoA8rrZ-UfVl2wfD00giU9v6HFWYyk8iLJ0hBffO0@z> GitHub notification mails are now in MIME to allow UTF8. --===============4097681282721628522== 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 bSAjMjEzODIsIG9yIHJlYmFzZSBpZiBpdCBnZXRzIG1lcmdlZA0KLSBbeF0gbWFrZSBzdXJlIGNy 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= --===============4097681282721628522== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gnome338-24260.patch" RnJvbSAzZjQ3MDM1YTc5OWEzNmZjNmVhYjFlMjFhNTY0N2ZlYjc0N2JiNzQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMTo1NDoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDAx LzEwNV0geWVscC14c2w6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy95ZWxwLXhzbC90 ZW1wbGF0ZSB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZSBiL3NyY3Br Z3MveWVscC14c2wvdGVtcGxhdGUKaW5kZXggZjc0YTdmYmE2N2MuLjI2MDc5MmI1YmY1IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3llbHAteHNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVscC14c2wv dGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd5ZWxwLXhzbCcK IHBrZ25hbWU9eWVscC14c2wKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNp b249MQotYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRl cGVuZHM9InBrZy1jb25maWcgaW50bHRvb2wgaXRzdG9vbCBsaWJ4c2x0IgogbWFrZWRlcGVuZHM9 ImxpYnhzbHQtZGV2ZWwiCkBAIC0xMSw0ICsxMCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5k IDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9ZZWxwL1hzbCIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTRmZTUxYzAyMzNiNzlhNGMyMDRjNjg0OThkNDVmMDliMzQy YzMwZWQwMmM0ZTQxODUwNmMwZTM1ZjA5MDRlYzMKK2NoZWNrc3VtPTEzYmNjMjAxMWM0YzU1Mzg0 MTc0ZDE4YzdiMmYwMDE1YTk2YjA0ZWZkMjRmM2Y2NDZhZjJlNzE2N2U3YWIwZDcKCkZyb20gMmQx NjU4N2NjOTRlMDNjODI2NDUxZDQ5NmRjMzA4NTRhODc5M2M0NSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTcgU2VwIDIwMjAgMDE6NTU6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAwMi8xMDVdIHll bHAtdG9vbHM6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy95ZWxwLXRvb2xzL3RlbXBs YXRlIHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUgYi9zcmNwa2dz L3llbHAtdG9vbHMvdGVtcGxhdGUKaW5kZXggOWU4YTY3MGU2YjAuLjM1MDYxMGUzMzk3IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy95ZWxwLXRv b2xzL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAneWVscC10 b29scycKIHBrZ25hbWU9eWVscC10b29scwotdmVyc2lvbj0zLjMyLjIKK3ZlcnNpb249My4zOC4w CiByZXZpc2lvbj0xCi1hcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhv c3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpdHN0b29sIGxpYnhzbHQiCiBtYWtlZGVwZW5kcz0i eWVscC14c2wiCkBAIC0xMiw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHA6Ly93d3cuZ25vbWUub3JnIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 MTgzODU2YjVlZDBiMGJiMmMwNWRkMTIwNGFmMDIzOTQ2ZWQ0MzY5NDNlMzVlNzg5YWZiMDI5NWU1 ZTcxZThmOQorY2hlY2tzdW09NjA3Y2U0YjNlZTg1MTdjNDJkYjkyNGEwMWE3ODY2MGEwMzMxNzU5 NWM3NTgyNTczMWVhODZhOTIwZTJiMDRiMAoKRnJvbSA1OTI0ZTEwYWUyZWJlYzYzNDBiNTQzNTg0 ODZjYWI2MTQ2YWU4MmNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMTo1Mzow NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDAzLzEwNV0geWVscDogdXBkYXRlIHRvIDMuMzguMAoK LS0tCiBzcmNwa2dzL3llbHAvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwL3Rl bXBsYXRlIGIvc3JjcGtncy95ZWxwL3RlbXBsYXRlCmluZGV4IDYzY2E3YzIyNWM4Li5kMTQxZDgw ZDQzNiAxMDA2NDQKLS0tIGEvc3JjcGtncy95ZWxwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVs cC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3llbHAnCiBw a2duYW1lPXllbHAKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQog YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zY2hl bWFzLWNvbXBpbGUgLS1kaXNhYmxlLXN0YXRpYyIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1llbHAiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mZDRiM2UyM2QzMWFkMmJlYmU0MmFjOGY4 MDI0MmIyZDliZWY1MTQxOGJmNjJiNTlhY2RmMjQ0MGJkOTRlZDI0CitjaGVja3N1bT1kN2NkY2Uw ZTZkYmE1MTNiNGRmMTA5YzFmYTdlZmZjYmYwOGJiM2Y0ZDAwZDllNzkyYzdlZGYzNDU0NGY5NjU4 CiAKIHllbHAtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJ5ZWxwLSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCgpGcm9tIGU3NWZlZDlkNjc3MmQ2OTFjZTE4MjI1ZWQzNWNhMTIxYzgyZWEyMTkg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjI5OjIxICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwMDQvMTA1XSB2YWxhOiB1cGRhdGUgdG8gMC41MC4wCgotLS0KIGNvbW1vbi9zaGxp YnMgICAgICAgICB8ICAyICstCiBzcmNwa2dzL3ZhbGEvdGVtcGxhdGUgfCAxMCArKysrKy0tLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAxYmQ4N2FkOWYyMi4u ZGM2NDM1MDM5MWQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGli 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 MC41MC5wYwogfQogCiBsaWJ2YWxhX3BhY2thZ2UoKSB7CgpGcm9tIGMyYThmMDExZmFjOGMyNDZj NTUzOTNhZDA4ZDk3ZGU0N2JlMWJhMjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIw IDIwOjMwOjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMDUvMTA1XSB2YWxhZG9jOiB1cGRhdGUg dG8gMC41MC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICB8IDIgKy0KIHNyY3BrZ3Mv dmFsYWRvYy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9u L3NobGlicwppbmRleCBkYzY0MzUwMzkxZC4uYjRmMDA4MjM4MTMgMTAwNjQ0Ci0tLSBhL2NvbW1v bi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzE1OCw3ICszMTU4LDcgQEAgbGlic3lz cHJvZi11aS0zLnNvIHN5c3Byb2YtMy4zNC4wXzEKIGxpYm1vempzLTUyLnNvIG1vempzNTItNTIu My4wXzEKIGxpYm1vempzLTUyLnNvLjAgbW96anM1Mi01Mi4zLjBfMQogbGlidmFsYS0wLjUwLnNv LjAgbGlidmFsYS0wLjUwLjBfMQotbGlidmFsYWRvYy0wLjQ4LnNvLjAgbGlidmFsYWRvYy0wLjQ4 LjBfMQorbGlidmFsYWRvYy0wLjUwLnNvLjAgbGlidmFsYWRvYy0wLjUwLjBfMQogbGlidmFsYWNj b2RlZ2VuLnNvIGxpYnZhbGEtMC40NC4wXzEKIGxpYnBob2Rhdi0yLjAuc28uMCBwaG9kYXYtMi4y XzEKIGxpYmdmc2hhcmUuc28uMiBsaWJnZnNoYXJlLTIuMC4wXzEKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvdmFsYWRvYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmFsYWRvYy90ZW1wbGF0ZQppbmRleCAyNGNh MDI4MzY1NS4uY2U1YTFkN2E1NGYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdmFsYWRvYy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3ZhbGFkb2MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICd2YWxhZG9jJwogcGtnbmFtZT12YWxhZG9jCiAjIFNob3VsZCBiZSBrZXB0 IGluIHN5bmMgd2l0aCAndmFsYScgKHNoYXJlZCBkaXN0ZmlsZXMpCi12ZXJzaW9uPTAuNDguOQor dmVyc2lvbj0wLjUwLjAKIHJldmlzaW9uPTEKIHdya3NyYz0idmFsYS0ke3ZlcnNpb259IgogYnVp bGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTMsOSArMTMsOSBAQCBzaG9ydF9kZXNjPSJWYWxh IERvY3VtZW50YXRpb24gVG9vbCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL1ZhbGEiCi1jaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0 bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8wLjQyL05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8wLjUwL05FV1MiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vdmFsYS8ke3ZlcnNpb24lLip9L3ZhbGEtJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT05Y2VhMTZkM2JiM2RhZGRiZmUwNTU2Yjk5ZmJmYTA4MTQ2MjMwZGI3NjUxZTFl Njc0Y2QwOGI0ZGY1Y2VmZWE5CitjaGVja3N1bT04MzhhZGM1MGFjMDg4ODFlMDZjZjIzM2ZlZmQ5 Mzc0MGRlYzE1MzAzMTJjYzFjZjEyYzM2ZDRlMGU4N2QzMDcxCiAKIHByZV9jb25maWd1cmUoKSB7 CiAJYXV0b3JlY29uZiAtaWYKCkZyb20gMGUwNTU0YTk5OGQzZDJhMDE4ZTkxODI2ZGM3MGUxZGYz YTNmYzAzYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6MzI6MTMgKzAyMDAK U3ViamVjdDogW1BBVENIIDAwNi8xMDVdIHZhbGFiaW5kOiByZWJ1aWxkIGZvciB2YWxhLTAuNTAK 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 LWRldmVsIgoKRnJvbSBmMDE5NmM5NTBjNWU4MzEwMjg2YTYwZmViOGQxMzgzNzk1NzcwN2YzIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDA3LzEwNV0gZGV2aGVscDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2Rl dmhlbHAvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlIGIv c3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlCmluZGV4IGExYzJkY2JiNzYyLi44NmIzNzc2YWRmZCAx MDA2NDQKLS0tIGEvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZGV2aGVs cC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2RldmhlbHAn CiBwa2duYW1lPWRldmhlbHAKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNp b249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAtMTEsNyArMTEs NyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L0FwcHMvRGV2aGVscCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRjZjhlYzkz MDJiYzRhNzllMDFhYzUzYmQ5YzhiOTVhNTk2ZjcxZjM1MzUxZjQ4YjYzMjYzMjI3ZjA5YThhM2QK K2NoZWNrc3VtPTkxOGVmYjE3MzEyMmIyNmQ0NWZhNTFjMTk0YTBiNjU5ZTYzZmVlNzcwNWY2NzIy ZGIyNTM0ZmFiYzM0NTIzNjkKIAogZGV2aGVscC1kZXZlbF9wYWNrYWdlKCkgewogCXNob3J0X2Rl c2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKCkZyb20gMDQ3MWU0MzhhYzJkMTAwM2NhMjJjYzk0 MjA0MzAyZDgzZDM3ZjViZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x Pz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29u Z2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTQgU2VwIDIwMjAgMjA6MjI6NDMgKzA3MDAK U3ViamVjdDogW1BBVENIIDAwOC8xMDVdIGdkbDogdXBkYXRlIHRvIDMuMzQuMC4KCi0tLQogc3Jj cGtncy9nZGwvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dkbC90ZW1wbGF0ZSBi L3NyY3BrZ3MvZ2RsL3RlbXBsYXRlCmluZGV4IGQ1YjE4MGJkNDNiLi4zNWJlZTgwM2Y5NiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nZGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZGwvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZGwnCiBwa2duYW1lPWdkbAot dmVyc2lvbj0zLjI4LjAKLXJldmlzaW9uPTMKK3ZlcnNpb249My4zNC4wCityZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9h cmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKSIKQEAgLTEyLDcgKzEyLDcgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkxHUEwtMi4xLW9yLWxhdGVyLCBMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L2RldmVsb3Blci5nbm9tZS5vcmcvZ2RsLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTUyY2M5OGVjYzEwNTE0ODQ2N2IzYjJiNGUwZDI3YWU0ODRiMWI2NzEwZDUzNDEzZjc3MWVk MDdlZjFiNzM3YjYKK2NoZWNrc3VtPTg1OGIzMGYwY2RjZTRjNGNiM2U4MzY1YTdkNTRjZTU3YzM4 OGJlZmYzOGVhNTgzYmU1NDQ5YmM3OGRkYThkMDIKIAogIyBQYWNrYWdlIGJ1aWxkIG9wdGlvbnMK IGJ1aWxkX29wdGlvbnM9ImdpciIKCkZyb20gYjAxNWMzMTRiN2NlNzdhYWRhYmY2MjU1ZmI5Nzcx ZmM0MzY3NTZmOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MTY6NDUgKzAy MDAKU3ViamVjdDogW1BBVENIIDAwOS8xMDVdIGxpYnNvdXA6IHVwZGF0ZSB0byAyLjcyLjAKCi0t 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 cC0yLjQKCkZyb20gMDE5MmY5MjI0ZjRjNDI0OTgxOWRmNzM3YjIxMzcxOWZlNzU1Y2U1MSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMDE6MTA6MjIgKzAyMDAKU3ViamVjdDogW1BB VENIIDAxMC8xMDVdIGdyaWxvOiB1cGRhdGUgdG8gMC4zLjEzLCBkcm9wIHZhbGEgb3B0aW9uCgot 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 IGUwNzZkMzllMzJlNzU5YzU2YWU1MWM4YWNmOGE3YTg2NmQwNjMwNzMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBUaHUsIDE3IFNlcCAyMDIwIDAxOjE1OjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMTEvMTA1 XSBncmlsby1wbHVnaW5zOiB1cGRhdGUgdG8gMC4zLjEyCgotLS0KIHNyY3BrZ3MvZ3JpbG8tcGx1 Z2lucy90ZW1wbGF0ZSB8IDEyICsrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dyaWxvLXBsdWdp bnMvdGVtcGxhdGUgYi9zcmNwa2dzL2dyaWxvLXBsdWdpbnMvdGVtcGxhdGUKaW5kZXggOGJmNjUx MzY2ZGEuLjU1YmNjZjFmZmI3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dyaWxvLXBsdWdpbnMvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9ncmlsby1wbHVnaW5zL3RlbXBsYXRlCkBAIC0xLDEwICsxLDkg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dyaWxvLXBsdWdpbnMnCiBwa2duYW1lPWdyaWxvLXBs dWdpbnMKLXZlcnNpb249MC4zLjExCit2ZXJzaW9uPTAuMy4xMgogcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBpdHN0b29s IGdsaWItZGV2ZWwgZ3BlcmYKLQlnbm9tZS1kb2MtdXRpbHMiCitob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgaW50bHRvb2wgaXRzdG9vbCBnbGliLWRldmVsIGdwZXJmIGdub21lLWRvYy11dGls cyIKICMgWFhYIG1pc3NpbmcgcGx1Z2luczogZmFrZW1ldGFkYXRhLgogbWFrZWRlcGVuZHM9Imdy aWxvLWRldmVsIGdvbS1kZXZlbCBndXBucC1hdi1kZXZlbCBqc29uLWdsaWItZGV2ZWwKICBsaWJx dXZpLWRldmVsIHJlc3QtZGV2ZWwgc3FsaXRlLWRldmVsIGxpYmdjcnlwdC1kZXZlbCBnbWltZS1k ZXZlbApAQCAtMTYsNCArMTUsOSBAQCBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDov L2xpdmUuZ25vbWUub3JnL0dyaWxvIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 ZGRlMmU2MDViMTk5NDM0MWM2YmYwMTI0OTNlMDU2YjQwNmIwODU3MTgzNGRlYTNiM2M2NzFkNWI4 YjFkY2Q3MworY2hlY2tzdW09YzZiNmRmMDg2YTE2NGQ2NWMyMDZkNzAxMzljZTgwNTkxZjhmZWNh MzU0NTYxMmU0NWI4MjNmYjRmZTRiMjU3NworCisjIGZlZWwgZnJlZSB0byBmaXgKK2RvX2NoZWNr KCkgeworCToKK30KCkZyb20gOTRkZTg4ZjYxNGFhYTNhNTJjMjM4YjdhNTgxMjNhNDI0YmE3Njkw ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NTY6MzQgKzAyMDAKU3ViamVj dDogW1BBVENIIDAxMi8xMDVdIGd0a3NvdXJjZXZpZXc0OiB1cGRhdGUgdG8gNC44LjAKCi0tLQog 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 CQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CiB9CgpGcm9tIDI5OTAxNmVlZmY4ODA1 ODIyNDkzZjUyZTM3MmM0NzdhODU4ZGQwNTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDE1IEF1ZyAy MDIwIDAwOjEyOjE2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMTMvMTA1XSB0ZXBsOiB1cGRhdGUg dG8gNS4wLjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IHNyY3BrZ3MvdGVwbC9wYXRjaGVzL25vLWdpci5wYXRjaCB8IDQ1ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIHNyY3BrZ3MvdGVwbC90ZW1wbGF0ZSAgICAgICAgICAgICB8IDEwICsr Ky0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2gKCmRp ZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBiNGYwMDgyMzgx My4uYjExYmVlYzI1NzEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3No 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 aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSBiZjA4 OTU2ODRjM2VmNDUzOTMyZDkwYjg1YzExZDMwNDJjNjgxOGZjIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMz PUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxNCBTZXAg MjAyMCAyMDoyNzoyMiArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDE0LzEwNV0gZ2xhZGUzOiB1cGRh dGUgdG8gMy4zOC4wLgoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgMiArLQogc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9hdXRvZ2VuLWF1dG9jb25m LnBhdGNoIHwgOTggLS0tLS0tLS0tLS0tLS0tLS0tLQogLi4uL3BhdGNoZXMvY29uZmlndXJlLXNo ZWxsLXF1b3RlLnBhdGNoICAgICAgIHwgMTEgLS0tCiBzcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2Ny b3NzLnBhdGNoICAgICAgICAgICAgfCA0MCAtLS0tLS0tLQogc3JjcGtncy9nbGFkZTMvdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgICAgIHwgMTcgKystLQogNSBmaWxlcyBjaGFuZ2VkLCA3IGlu c2VydGlvbnMoKyksIDE2MSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L2dsYWRlMy9wYXRjaGVzL2F1dG9nZW4tYXV0b2NvbmYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2NvbmZpZ3VyZS1zaGVsbC1xdW90ZS5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2xhZGUzL3BhdGNoZXMvY3Jvc3MucGF0Y2gKCmRpZmYg LS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBiMTFiZWVjMjU3MS4u ZWQxZTJhZDc3MGMgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGli 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 bmluZyB4c2VydmVyCiAJOgoKRnJvbSA4NWUzMTgyODZjMDg1NWM0Mjg4NGFlOWExODQ1MmU0NDA3 NGVhNmRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1D Mz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdt YWlsLmNvbT4KRGF0ZTogVHVlLCAxNSBTZXAgMjAyMCAwNTozODo1NSArMDcwMApTdWJqZWN0OiBb UEFUQ0ggMDE1LzEwNV0gbGliaGFuZHk6IHJlYnVpbGQgZm9yIGdsYWRlMy0zLjM4LjAsIG1vdmVk 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 RnJvbSA3YzRiNzNkNTNkYzRhYWNhODE1NTYxOThkZWRlZmY3M2ZmNGZmMjU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9u LCAxNCBTZXAgMjAyMCAyMDozNDo0NiArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDE2LzEwNV0gbGli aGFuZHkxOiB1cGRhdGUgdG8gMS4wLjAKCi0tLQogc3JjcGtncy9saWJoYW5keTEvdGVtcGxhdGUg fCA3ICsrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJoYW5keTEvdGVtcGxhdGUgYi9zcmNwa2dzL2xp YmhhbmR5MS90ZW1wbGF0ZQppbmRleCAxOTFlNjk4YjBkNi4uNTQ3YWZjY2FhMTEgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvbGliaGFuZHkxL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGliaGFuZHkxL3Rl bXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliaGFuZHkxJwog cGtnbmFtZT1saWJoYW5keTEKLXZlcnNpb249MC45MC4wCit2ZXJzaW9uPTEuMC4wCiByZXZpc2lv bj0xCiB3cmtzcmM9ImxpYmhhbmR5LSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAt MTYsMTIgKzE2LDE1IEBAIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9y Zz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3NvdXJj ZS5wdXJpLnNtL0xpYnJlbTUvbGliaGFuZHkiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vbGli aGFuZHkvJHt2ZXJzaW9uJS4qfS9saWJoYW5keS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTZhYjA4NjlhM2FhNDgzMjk4ZWEyMGVjODlkNGMxNGMzOGJhNGRlNDE2YjMzMTgxZDIxZTE1YTYw MzlkZjU5ODUKK2NoZWNrc3VtPWE5Mzk4NTgyZjQ3YjdkNzI5MjA1ZDZlYWMwYzA2OGZlZjM1YWFm MjQ5ZmRkNTdlZWEzNzI0Zjg1MThkMjY2OTkKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIGdsYWRlIgog ZGVzY19vcHRpb25fZ2xhZGU9IkdlbmVyYXRlIGdsYWRlIG1vZHVsZXMgYW5kIGNhdGFsb2cgZmls ZXMiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciBnbGFkZSIKIAorIyBodHRwczovL2dpdGxh Yi5nbm9tZS5vcmcvR05PTUUvZ2xhZGUvLS9jb21taXQvYmI2MjZkZAorQ0ZMQUdTPSItREdXQV9H RVRfQ0xBU1M9R0xBREVfV0lER0VUX0FEQVBUT1JfR0VUX0FEQVBUT1JfQ0xBU1MiCisKIGxpYmhh bmR5MS1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSBndGsrMy1kZXZlbCIKIAljb25mbGljdHM9ImxpYmhhbmR5LWRldmVsPj0w IgoKRnJvbSAxYWE5ODczOTc2NzEyMjZmYzI0NWQwM2FhZGZmNjA0MjY1YjRhYjdjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1C QT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTog VHVlLCAxNSBTZXAgMjAyMCAwNTo0MTowMSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDE3LzEwNV0g bGlieGZjZTR1aTogcmVidWlsZCBmb3IgZ2xhZGUzLTMuMzguMAoKLS0tCiBzcmNwa2dzL2xpYnhm Y2U0dWkvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUgYi9z cmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUKaW5kZXggMjVhNWM0Nzk5NTUuLjBhNjJhZDE4MmI0 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYnhmY2U0dWkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9s aWJ4ZmNlNHVpL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn bGlieGZjZTR1aScKIHBrZ25hbWU9bGlieGZjZTR1aQogdmVyc2lvbj00LjE0LjEKLXJldmlzaW9u PTQKK3JldmlzaW9uPTUKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0i Z2lyIgogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMiCgpGcm9tIGYyY2ZmMjk1OTNh NDQ2ZDU1MTIxMjc3YTJiNDY1ZTA4ZmJhOGM4ZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMTgvMTA1XSBsaWJkYXp6bGU6 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 YQogCQlmaQogCX0KCkZyb20gY2ZiNzQxN2IxYjE0OGZlZWI0M2U3ZWViM2M2OTMzNDUxNjg1ZWJj NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBu PTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5j b20+CkRhdGU6IFR1ZSwgMTUgU2VwIDIwMjAgMDU6NDM6MTMgKzA3MDAKU3ViamVjdDogW1BBVENI IDAxOS8xMDVdIGFuanV0YTogcmVidWlsZCBmb3IgZ2xhZGUzLTMuMzguMCwgdmFsYS0wLjUwCgot LS0KIHNyY3BrZ3MvYW5qdXRhL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hbmp1dGEvdGVt cGxhdGUgYi9zcmNwa2dzL2FuanV0YS90ZW1wbGF0ZQppbmRleCBjMjFjOTI3Y2QxMi4uYjQ2ZDU4 YWVhZmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYW5qdXRhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv YW5qdXRhL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYW5q dXRhJwogcGtnbmFtZT1hbmp1dGEKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0zCityZXZpc2lv bj00CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciBxZW11Igog Y29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1jb21waWxlLXdhcm5pbmdzIC0tZGlzYWJsZS1zY2hl bWFzLWNvbXBpbGUKCkZyb20gMzIxMzQzMzgzMjEzYzlhMzU5MjI0MDAwMDIzMTczMTg1MWViMTZj ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDU6Mjg6MTQgKzAyMDAKU3ViamVj dDogW1BBVENIIDAyMC8xMDVdIHN5c3Byb2Y6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogY29tbW9u L3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiAuLi4vcGF0 Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6ZS1mb3JtYXQucGF0Y2ggfCAgMTIgLS0KIHNyY3BrZ3Mv c3lzcHJvZi9wYXRjaGVzL2J1aWxkLnBhdGNoICAgICAgICAgICB8ICAxMCArKwogc3JjcGtncy9z eXNwcm9mL3BhdGNoZXMvbXVzbC5wYXRjaCAgICAgICAgICAgIHwgMTI1ICsrKysrKysrKysrKysr KysrKwogc3JjcGtncy9zeXNwcm9mL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICA0 ICstCiA1IGZpbGVzIGNoYW5nZWQsIDEzOSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnktc2l6 ZS1nc2l6ZS1mb3JtYXQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3N5c3Byb2Yv cGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc3lzcHJvZi9w YXRjaGVzL211c2wucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3No bGlicwppbmRleCBlZDFlMmFkNzcwYy4uYzA4YmNiNzQ3OGIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9z 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 XTsgdGhlbgoKRnJvbSAyM2UwZTJjNzUzMDU0MzAwODg2NzljNjVhOTBlOWY3YTc3ZDg4NzFiIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDIxLzEwNV0gdHJhY2tlcjogdXBkYXRlIHRvIDIuMy42CgotLS0KIC4uLi90cmFja2Vy 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 ZGVwZW5kcys9IiBkYnVzIgoKRnJvbSA0ZDJiNTliZGZlZmM4ODlmMmVjMWQyYWM0MWEyNzUxYzZl MDEwNDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMDoyMjoxMSArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDIyLzEwNV0gdHJhY2tlci1taW5lcnM6IHVwZGF0ZSB0byAyLjMuNQoK 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 b3BzIGluIGNocm9vdAorZG9fY2hlY2soKSB7CisJOgorfQoKRnJvbSAzNTlmYzU3ZWZmYjkzMjE3 NDk4YTgxODgwNTYxYWQ4NWMyNzgxNzM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAy MCAwMDoxNTo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIzLzEwNV0gTmV3IHBhY2thZ2U6IHRy YWNrZXIzLTMuMC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgfCAgMyArKy0KIHNy Y3BrZ3MvbGlidHJhY2tlcjMgICAgICAgfCAgMSArCiBzcmNwa2dzL3RyYWNrZXIzLWRldmVsICAg IHwgIDEgKwogc3JjcGtncy90cmFja2VyMy90ZW1wbGF0ZSB8IDU3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy90cmFja2VyMy91cGRhdGUgICB8ICAxICsK IDUgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRl IG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGlidHJhY2tlcjMKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNw a2dzL3RyYWNrZXIzLWRldmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90cmFja2VyMy90 ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdHJhY2tlcjMvdXBkYXRlCgpkaWZm IC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggYzA4YmNiNzQ3OGIu LmUwNGY3YmMxZmY3IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxp 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 S1swLTldK1wuWzAtOV0qXC5bMC05Ll0qWzAtOV0oPz0pIgoKRnJvbSBiMmU1MzMxZDc3YTIyODI1 MzQyMDkwYTJmZjkwODE5M2E3ZWFiMmMzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAy MCAwMDoxNjowNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDI0LzEwNV0gTmV3IHBhY2thZ2U6IHRy 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 ZWQgb3BzIGluIGNocm9vdAorZG9fY2hlY2soKSB7CisJOgorfQoKRnJvbSAxNjg3ZDA3OWI3YjI3 ZjI2ZjVjNDU4OTZkNmY2MWI4NGVmYWJkM2Q0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBE YW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAxNSBTZXAgMjAyMCAwNjo0 Nzo1NiArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDI1LzEwNV0gYmlqaWJlbjogdXBkYXRlIHRvIDMu MzYuMwoKLS0tCiBzcmNwa2dzL2JpamliZW4vdGVtcGxhdGUgfCAxMiArKysrKysrKy0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9iaWppYmVuL3RlbXBsYXRlIGIvc3JjcGtncy9iaWppYmVuL3RlbXBsYXRlCmlu ZGV4IDczMDA1M2I1ZDFjLi44YmIzZTY0MDY5ZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9iaWppYmVu L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYmlqaWJlbi90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMSBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmlqaWJlbicKIHBrZ25hbWU9YmlqaWJlbgotdmVyc2lv bj0zLjM2LjEKK3ZlcnNpb249My4zNi4zCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIK IGJ1aWxkX3N0eWxlPW1lc29uCi1ob3N0bWFrZWRlcGVuZHM9Iml0c3Rvb2wgcGtnLWNvbmZpZyBn ZXR0ZXh0IgorY29uZmlndXJlX2FyZ3M9Ii1EemVpdGdlaXN0PXRydWUiCitob3N0bWFrZWRlcGVu ZHM9Iml0c3Rvb2wgcGtnLWNvbmZpZyBnZXR0ZXh0IGdsaWItZGV2ZWwiCiBtYWtlZGVwZW5kcz0i Y2x1dHRlci1ndGstZGV2ZWwgZXZvbHV0aW9uLWRldmVsIHRyYWNrZXItZGV2ZWwgd2Via2l0Mmd0 ay1kZXZlbAogIHplaXRnZWlzdC1kZXZlbCBsaWJoYW5keS1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0 b3AtZmlsZS11dGlscyB0cmFja2VyIHplaXRnZWlzdCIKQEAgLTE0LDUgKzE1LDggQEAgbGljZW5z ZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0Fw cHMvTm90ZXMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9H Tk9NRS9iaWppYmVuL2dub21lLSR7dmVyc2lvbiUuKn0vTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPTIxMmY2NmEzZDJjNzE3ZGZiM2QzNzIyMDQyNjE3ODA4OTM5NWRhMjNl ZjlmM2QwNTE3MTNhYWY2NTk3YTQxMTAKLW5vY3Jvc3M9ImV2b2x1dGlvbi1kYXRhLXNlcnZlciBj cm9zcyIKK2NoZWNrc3VtPTcwZTliNjIxZTExYmY3YWY2YzYyNDhmOGM5OTgzMGY2ZmZiZmY2MDVm YjQzYTg0OGQyNjg4MGU3ZTFiNTJkZDYKKworcHJlX2J1aWxkKCkgeworCW5pbmphIC1DIGJ1aWxk IHNyYy9saWJiaWppL2JpamktbWFyc2hhbGVycy5oCit9CgpGcm9tIGNjZTgxNWY1ZWI5NzZjMjlk MzFmZmVlOGNmMzlmYzU0MmM5Yjc1MDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIw IDIwOjIwOjUwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMjYvMTA1XSBncmFwaGVuZTogdXBkYXRl IHRvIDEuMTAuMgoKLS0tCiBzcmNwa2dzL2dyYXBoZW5lL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ3JhcGhlbmUvdGVtcGxhdGUgYi9zcmNwa2dzL2dyYXBoZW5lL3RlbXBsYXRlCmlu ZGV4IGY1Y2M5OWI0MTI4Li5lODY4MjM5YmZhMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9ncmFwaGVu ZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dyYXBoZW5lL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3JhcGhlbmUnCiBwa2duYW1lPWdyYXBoZW5lCi12ZXJz aW9uPTEuMTAuMAordmVyc2lvbj0xLjEwLjIKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29u CiBidWlsZF9oZWxwZXI9ImdpciIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCIKIGhvbWVwYWdlPSJo dHRwczovL2dpdGh1Yi5jb20vZWJhc3NpL2dyYXBoZW5lIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9L2dyYXBoZW5lLyR7dmVyc2lvbiUuKn0vZ3JhcGhlbmUtJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT00MDZkOTdmNTFkZDRjYTYxZTkxZjg0NjY2YTAwYzNlOTc2ZDNlNjY3Y2QyNDhiNzZk OTJmZGIzNWNlODc2NDk5CitjaGVja3N1bT1lOTdkZTgyMDhmMWFhYzRmOTEzZDRmYTcxYWI3M2E3 MDM0ZTgwNzE4NmZlYjJhYmU1NTg3NmU1MWM0MjVhN2Y2CiAKIGNhc2UgIiRYQlBTX1RBUkdFVF9N QUNISU5FIiBpbgogCWFybSopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EYXJtX25lb249ZmFsc2UiIDs7 CgpGcm9tIGNlYjFiZjFkNzc2OWMwOWVlZmFkY2ZhYTVjNWRmYWYwYjRiMTVhNTcgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjIyOjQwICswMjAwClN1YmplY3Q6IFtQQVRDSCAw MjcvMTA1XSBhbXRrOiB1cGRhdGUgdG8gNS4yLjAKCi0tLQogc3JjcGtncy9hbXRrL3RlbXBsYXRl IHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYW10ay90ZW1wbGF0ZSBiL3NyY3BrZ3MvYW10ay90ZW1w bGF0ZQppbmRleCA0NDljNTdlMDdlNi4uNDMzYmUyYjljNTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv YW10ay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2FtdGsvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhbXRrJwogcGtnbmFtZT1hbXRrCi12ZXJzaW9uPTUuMS4x Cit2ZXJzaW9uPTUuMi4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBi dWlsZF9oZWxwZXI9ImdpciIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iT3JwaGFuZWQg PG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvQW10ayIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS9hbXRrLyR7dmVyc2lvbiUuKn0vYW10ay0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPWY5NjU2YmRkNDI3OGFhYmZiODU1NGYwMjkwNDliOWZmYWY1MWI1M2ZhYTQ2MzQ4 M2E4NDAzNjU0NjMzNTVkZjEKK2NoZWNrc3VtPTgyMDU0NWJiNGNmODdlY2ViYzJjMzYzOGQ2YjZl NThiOGRiZDYwYTQxOWE5YjQzY2YwMjAxMjRlNWRhZDcwNzgKIAogYnVpbGRfb3B0aW9ucz0iZ2ly IgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIDQyNTg4MGM5ZTI1ODM4NzhhYjUw NzhmOTJmM2RhMmEyODIxNzc1MDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIw OjQ0OjUxICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMjgvMTA1XSBpby5lbGVtZW50YXJ5LmNvZGU6 IHJlYnVpbGQgZm9yIHZhbGEtMC41MAoKLS0tCiAuLi4vaW8uZWxlbWVudGFyeS5jb2RlL3BhdGNo ZXMvdmFsYTA1MC5wYXRjaCAgfCAyNSArKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2lvLmVs ZW1lbnRhcnkuY29kZS90ZW1wbGF0ZSAgICAgICAgICAgfCAgMiArLQogMiBmaWxlcyBjaGFuZ2Vk LCAyNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxhMDUwLnBhdGNoCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxhMDUwLnBhdGNoIGIvc3Jj cGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxhMDUwLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZWVlZTFmYjY2NAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvaW8uZWxlbWVudGFyeS5jb2RlL3BhdGNoZXMvdmFsYTA1MC5wYXRjaApAQCAt MCwwICsxLDI1IEBACitGcm9tIGExODVkZTBlNzcxNmFhMmRlMmJmMjFkZTk2ZTZjOWFmMWRjYTgx YWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KK0RhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6NDM6MDcgKzAyMDAKK1N1 YmplY3Q6IFtQQVRDSF0gZml4IHdpdGggdmFsYS0wLjUwCisKKy0tLQorIHBsdWdpbnMvb3V0bGlu ZS9WYWxhL1ZhbGFTeW1ib2xPdXRsaW5lLnZhbGEgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgcGx1Z2lucy9vdXRsaW5l L1ZhbGEvVmFsYVN5bWJvbE91dGxpbmUudmFsYSBwbHVnaW5zL291dGxpbmUvVmFsYS9WYWxhU3lt Ym9sT3V0bGluZS52YWxhCitpbmRleCBjOGRiMzM5Li4zMTM4NmE2IDEwMDY0NAorLS0tIHBsdWdp bnMvb3V0bGluZS9WYWxhL1ZhbGFTeW1ib2xPdXRsaW5lLnZhbGEKKysrKyBwbHVnaW5zL291dGxp bmUvVmFsYS9WYWxhU3ltYm9sT3V0bGluZS52YWxhCitAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWMg Y2xhc3MgQ29kZS5QbHVnaW5zLlZhbGFTeW1ib2xPdXRsaW5lIDogT2JqZWN0LCBDb2RlLlBsdWdp bnMuU3ltYm9sT3V0bGluZQorIAorICAgICBwdWJsaWMgdm9pZCBwYXJzZV9zeW1ib2xzICgpIHsK KyAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IFZhbGEuQ29kZUNvbnRleHQgKCk7CistICAgICAg ICBjb250ZXh0LnByb2ZpbGUgPSBWYWxhLlByb2ZpbGUuR09CSkVDVDsKKysgICAgICAgIGNvbnRl eHQuc2V0X3RhcmdldF9wcm9maWxlKFZhbGEuUHJvZmlsZS5HT0JKRUNUKTsKKyAgICAgICAgIGNv bnRleHQuYWRkX3NvdXJjZV9maWxlbmFtZSAoZG9jLmZpbGUuZ2V0X3BhdGggKCkpOworICAgICAg ICAgY29udGV4dC5yZXBvcnQgPSBuZXcgUmVwb3J0ICgpOworICAgICAgICAgaWYgKGNhbmNlbGxh YmxlICE9IG51bGwpCistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2lvLmVsZW1l bnRhcnkuY29kZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvaW8uZWxlbWVudGFyeS5jb2RlL3RlbXBsYXRl CmluZGV4IDQ0N2U3ZTVmNjBhLi44ZDQzYWQ0MTMwZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9pby5l bGVtZW50YXJ5LmNvZGUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdpby5lbGVtZW50 YXJ5LmNvZGUnCiBwa2duYW1lPWlvLmVsZW1lbnRhcnkuY29kZQogdmVyc2lvbj0zLjQuMQotcmV2 aXNpb249MgorcmV2aXNpb249Mwogd3Jrc3JjPSJjb2RlLSR7dmVyc2lvbn0iCiBidWlsZF9zdHls ZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHZhbGEgaW50bHRvb2wgZ2xpYi1k ZXZlbCIKCkZyb20gMTRmYzYzZjZkMzhjMWU4YjVlOTY4MmUxYzIxMjc4ZTViODQ4MzE0NSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6NTI6MjYgKzAyMDAKU3ViamVjdDogW1BB VENIIDAyOS8xMDVdIHBob2RhdjogdXBkYXRlIHRvIDIuNQoKLS0tCiBzcmNwa2dzL3Bob2Rhdi90 ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Bob2Rhdi90ZW1wbGF0ZSBiL3NyY3BrZ3Mv cGhvZGF2L3RlbXBsYXRlCmluZGV4IDFhOTBhMWEwZTU4Li4xMzA5Mjg5Njg5OSAxMDA2NDQKLS0t IGEvc3JjcGtncy9waG9kYXYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9waG9kYXYvdGVtcGxhdGUK QEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwaG9kYXYnCiBwa2duYW1lPXBo b2RhdgotdmVyc2lvbj0yLjQKK3ZlcnNpb249Mi41CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1t ZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZD1kaXNhYmxlZCAtRGF2YWhpPWVuYWJsZWQg LURndGtfZG9jPWRpc2FibGVkCkBAIC0xMyw3ICsxMyw3IEBAIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL3Bob2RhdiIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPTdkZGRjMmI3NWUwNGQwODY2YmI5YzlhODMwMjhhNTk3ZWJkNzNlZjRj MzdiZDZlYmUxMDMyYTg3MGI0M2I4YzMKK2NoZWNrc3VtPTcxZjBhOWNkNzBhZmQ0ZGQxNDEyYTAy OTgzMzFkYmI4YWM3MWMwMzc3ZjUyMTE3YWZjMTVlYjg4ZGM2ZmI5MTAKIAogcGhvZGF2LWRldmVs X3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCBsaWJzb3VwLWRldmVsIGxpYnht bDItZGV2ZWwKCkZyb20gZTcxYWZmMjNjMGZlNTNjNzc3Y2Y3N2Q0ZTIyMmI0NmYxOGY0ZDEzOSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDog W1BBVENIIDAzMC8xMDVdIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXM6IHVwZGF0ZSB0byAzLjM4 LjAKCi0tLQogLi4uL3BhdGNoZXMvZml4LWNyb3NzLWdpci5wYXRjaCAgICAgICAgICAgICAgICAg ICAgIHwgMTMgLS0tLS0tLS0tLS0tLQogc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFz L3RlbXBsYXRlICAgICAgICAgIHwgIDYgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nc2V0 dGluZ3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4LWNyb3NzLWdpci5wYXRjaAoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy9wYXRjaGVzL2ZpeC1jcm9z cy1naXIucGF0Y2ggYi9zcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvcGF0Y2hlcy9m aXgtY3Jvc3MtZ2lyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjk5ZDVj OWNkMC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFz L3BhdGNoZXMvZml4LWNyb3NzLWdpci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAg QEAKLWRpZmYgLS1naXQgYS9oZWFkZXJzL21lc29uLmJ1aWxkIGIvaGVhZGVycy9tZXNvbi5idWls ZAotaW5kZXggM2NlOGI2MS4uMTEzMjY5NSAxMDA2NDQKLS0tLSBoZWFkZXJzL21lc29uLmJ1aWxk Ci0rKysgaGVhZGVycy9tZXNvbi5idWlsZAotQEAgLTE5LDcgKzE5LDcgQEAgZW51bXNfeG1sID0g Y3VzdG9tX3RhcmdldCgKLSAgIGluc3RhbGw6IHRydWUsCi0gICBpbnN0YWxsX2Rpcjogc2NoZW1h c2RpcikKLSAKLS1pZiBub3QgbWVzb24uaXNfY3Jvc3NfYnVpbGQoKSBhbmQgZ2V0X29wdGlvbign aW50cm9zcGVjdGlvbicpCi0raWYgZ2V0X29wdGlvbignaW50cm9zcGVjdGlvbicpCi0gICBub2lu c3RfbGliID0gc2hhcmVkX2xpYnJhcnkoJ25vaW5zdCcsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaGVhZGVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YWxs OiBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy90 ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy90ZW1wbGF0ZQppbmRl eCA0OWM2NGNjYTczOC4uNzZjNGIwZTA4MTAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3NldHRpbmdz LWRlc2t0b3Atc2NoZW1hcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9w LXNjaGVtYXMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn c2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzJwogcGtnbmFtZT1nc2V0dGluZ3MtZGVza3RvcC1zY2hl bWFzCi12ZXJzaW9uPTMuMzYuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9u PTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdz PSItRGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIKQEAgLTEyLDcgKzEy LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21l Lm9yZy9HTk9NRS9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIgogZGlzdGZpbGVzPSIke0dOT01F X1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09NzY0YWI2ODMyODY1MzYzMjQ1MzNhNThkNGU5NWZjNTdmODFhZGFiYTdk ODgwZGQwZWJiYmNlZDYzZTk2MGVhNgorY2hlY2tzdW09NTcwNGM4MjY2MDA0YjI5NjAzNjY3MWYy MjNjNzA1ZGMwNDZhYTY5NGExYjFhYmI4N2M2N2U3ZDI3NDdhOGM2NwogCiAjIFBhY2thZ2UgYnVp bGQgb3B0aW9ucwogYnVpbGRfb3B0aW9ucz0iZ2lyIgoKRnJvbSAxYTFmMDYzOTUyNjhjMmJmNThk YzllZGZmNTk3YjY3NzFjZDI5NmExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAw NToyMDoyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMxLzEwNV0gZ2xpYi1uZXR3b3JraW5nOiB1 cGRhdGUgdG8gMi42Ni4wCgotLS0KIHNyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlIHwg NiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliLW5ldHdvcmtpbmcvdGVtcGxhdGUgYi9zcmNwa2dz L2dsaWItbmV0d29ya2luZy90ZW1wbGF0ZQppbmRleCA1ZWFmZmE4MmU2NC4uOTZmMzEyY2ZmNGQg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ2xpYi1uZXR3b3JraW5nJwogcGtnbmFtZT1nbGliLW5ldHdvcmtpbmcKLXZlcnNp b249Mi42NC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTIuNjYuMAorcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGluc3RhbGxlZF90ZXN0cz1mYWxzZSAtRGdu dXRscz1lbmFibGVkIC1EbGlicHJveHk9ZW5hYmxlZAogIC1EZ25vbWVfcHJveHk9ZW5hYmxlZCIK QEAgLTE0LDcgKzE0LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v Z2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbGliLW5ldHdvcmtpbmcvIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09YTRjMzQ2ZGVmN2Q4MTc0NjdkNzlhOTVjMjNiM2NjZjIyZTRkZjE1 NDg4NzA3MjZiNjMzOTY0MDA4NTJkYWY3MgorY2hlY2tzdW09YzVkN2JlMjQzN2ZkZDE5NmVlYmZi NzBjNDUxN2I5NmQzYmE3ZWMxM2JkNDk2MzE4YjhmMDJkZWEzODNlMDA5OQogbGliMzJkaXNhYmxl ZD15ZXMKIAogcG9zdF9pbnN0YWxsKCkgewoKRnJvbSBhYjIwNjkzZDNiYzVhMWU2MzEzMGZmYmZl MWZkNWNhYmQwMWUwY2U2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODow OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMyLzEwNV0gYXQtc3BpMi1jb3JlOiB1cGRhdGUgdG8g Mi4zOC4wCgotLS0KIHNyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlIHwgMTQgKysrKysrKysr LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWNvcmUvdGVtcGxhdGUgYi9zcmNwa2dzL2F0LXNw aTItY29yZS90ZW1wbGF0ZQppbmRleCBiMzgzZmU5OWJlZC4uNzRlNjA3MDEyMDEgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYXQtc3BpMi1j b3JlL3RlbXBsYXRlCkBAIC0xLDIzICsxLDI3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhdC1z cGkyLWNvcmUnCiBwa2duYW1lPWF0LXNwaTItY29yZQotdmVyc2lvbj0yLjM0LjAKK3ZlcnNpb249 Mi4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIi Ci1ob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZGJ1cyBnbGliLWRldmVsIgotbWFrZWRlcGVu ZHM9ImxpYmdsaWItZGV2ZWwgbGliWGV4dC1kZXZlbCBsaWJTTS1kZXZlbCBsaWJYdHN0LWRldmVs Ci0gbGliWGV2aWUtZGV2ZWwgZGJ1cy1kZXZlbCIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyBkYnVzIGdsaWItZGV2ZWwgZ2V0dGV4dCIKK21ha2VkZXBlbmRzPSJsaWJnbGliLWRldmVsIGxp YlhleHQtZGV2ZWwgbGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbCBkYnVzLWRldmVsIgogc2hvcnRf ZGVzYz0iQXNzaXN0aXZlIFRlY2hub2xvZ3kgU2VydmljZSBQcm92aWRlciBJbnRlcmZhY2UiCiBt YWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05P TUUvYXQtc3BpMi1jb3JlIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDYyOWNk YmQ2NzRlNTM5Zjg5MTIwMjg1MTJhZjU4Mzk5MDkzOGM3YjQ5ZTI1MTg0YzEyNmIwMDEyMWVmMTFj NgorY2hlY2tzdW09ODRlMzZjM2ZlNjY4NjIxMzNmNWZlMjI5NzcyYjc2YWEyNTI2ZTEwZGU1MDE0 YTM3NzhmMmZhNDZjZTU1MGRhNQogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwogYnVpbGRfb3B0 aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKKyMgbm9uLXRyaXZpYWwg ZGJ1cyBzZXR1cAorZG9fY2hlY2soKSB7CisJOgorfQorCiBwb3N0X2luc3RhbGwoKSB7CiAJcm0g LXJmICR7REVTVERJUn0vdXNyL2xpYi9zeXN0ZW1kCiB9CgpGcm9tIDNkYjMyNTg5ZWNmYmNjNzY0 MmEzOGEwYzA5N2UzYmYwZWMxYjA1ZmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIw IDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMzMvMTA1XSBhdC1zcGkyLWF0azogdXBk YXRlIHRvIDIuMzguMAoKLS0tCiBzcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBsYXRlIHwgOSArKysr KysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWF0ay90ZW1wbGF0ZSBiL3NyY3BrZ3MvYXQtc3Bp Mi1hdGsvdGVtcGxhdGUKaW5kZXggNDM1MWI3OTk2ZjMuLmNmOTQ1ZGZmYjI2IDEwMDY0NAotLS0g YS9zcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYXQtc3BpMi1hdGsv dGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhdC1zcGkyLWF0 aycKIHBrZ25hbWU9YXQtc3BpMi1hdGsKLXZlcnNpb249Mi4zNC4xCit2ZXJzaW9uPTIuMzguMAog cmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0ibGlidG9vbCBw a2ctY29uZmlnIGludGx0b29sIGdsaWItZGV2ZWwiCkBAIC0xMCw3ICsxMCwxMiBAQCBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0y LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL3d3dy5nbm9tZS5vcmciCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT03NzZkZjkzMDc0OGZkZTcxYzEyOGJlNmMzNjZhOTg3Yjk4 YjZlZTY2ZDUwOGVkOWM4ZGIyMzU1YmY0YjljYzE2CitjaGVja3N1bT1jZmEwMDhhNWFmODIyYjM2 YWU2Mjg3ZjE4MTgyYzQwYzkxZGQ2OTljNTVmYWEzODYwNTg4MWVkMTc1Y2E0NjRmCisKKyMgbm9u LXRyaXZpYWwgZGJ1cyBzZXR1cAorZG9fY2hlY2soKSB7CisJOgorfQogCiBhdC1zcGkyLWF0ay1k ZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7bWFrZWRlcGVuZHN9ICR7c291cmNlcGtnfT49 JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKCkZyb20gODc2ZmE1MTA4NjNkMzNiOWZiNWJlNjA2YWEy OTc1MTljODMxYjBmNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDAzNC8xMDVdIGxpYmd3ZWF0aGVyOiB1cGRhdGUgdG8gMy4z Ni4xCgotLS0KIHNyY3BrZ3MvbGliZ3dlYXRoZXIvdGVtcGxhdGUgfCAxNSArKysrKystLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGliZ3dlYXRo ZXIvdGVtcGxhdGUKaW5kZXggMzRjNjRkNmUzYTEuLmZjZGI1ODc5NTAxIDEwMDY0NAotLS0gYS9z cmNwa2dzL2xpYmd3ZWF0aGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGliZ3dlYXRoZXIvdGVt cGxhdGUKQEAgLTEsMTMgKzEsMTIgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYmd3ZWF0aGVy JwogcGtnbmFtZT1saWJnd2VhdGhlcgotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zNi4xCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1 cmVfYXJncz0iLURlbmFibGVfdmFsYT0kKHZvcHRfaWYgdmFsYSB0cnVlIGZhbHNlKQotIC1EaW50 cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpCitjb25maWd1cmVfYXJncz0iJCh2 b3B0X2Jvb2wgZ2lyIGVuYWJsZV92YWxhKSAkKHZvcHRfYm9vbCBnaXIgaW50cm9zcGVjdGlvbikK ICAtRHpvbmVpbmZvX2Rpcj0vdXNyL3NoYXJlL3pvbmVpbmZvIgotaG9zdG1ha2VkZXBlbmRzPSJn bGliLWRldmVsIGludGx0b29sIHBrZy1jb25maWcgJCh2b3B0X2lmIHZhbGEgdmFsYSkiCitob3N0 bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZpZyAkKHZvcHRfaWYgZ2ly IHZhbGEpIgogbWFrZWRlcGVuZHM9Imdlb2NvZGUtZ2xpYi1kZXZlbCBndGsrMy1kZXZlbCBsaWJz b3VwLWdub21lLWRldmVsIgogY2hlY2tkZXBlbmRzPSJ0emRhdGEiCiBzaG9ydF9kZXNjPSJHTk9N RSBXZWF0aGVyIGluZm9ybWF0aW9uIGFjY2VzcyBsaWJyYXJ5IgpAQCAtMTUsMTAgKzE0LDEwIEBA IG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNl PSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1By b2plY3RzL0xpYkdXZWF0aGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0v JHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDJm ZmVlYzAxNzg4ZDAzZDFiYmYzNTExM2ZjMmYwNTRjNmMzNjAwNzIxMDg4ZjgyN2JjYzMxZTVjNjAz YTMyZAorY2hlY2tzdW09ZGUyNzA5ZjBlZTIzM2IyMDExNmQ1ZmE5ODYxZDQwNjA3MTc5OGM0YWEz NzgzMGNhMjVmNWVmMmMwMDgzZTQ1MAogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxk X29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9v cHRpb25zX2RlZmF1bHQ9ImdpciIKIAogcG9zdF9wYXRjaCgpIHsKIAkjIFRoaXMgdGVzdCByZXF1 aXJlcyBMQ19JREVOVElGSUNBVElPTiwgd2hpY2ggaXMgYSBHTElCQydzIGV4dGVuc2lvbgpAQCAt MzUsOCArMzQsNiBAQCBsaWJnd2VhdGhlci1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNy L2xpYi8qLnNvIgogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUg dXNyL3NoYXJlL2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0 aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCX0KCkZyb20gMDVjNGEzZDliZDQx YWYxNDJmMWQ0OTM2OTk2MDFmNjg4MGM2ZmNkYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzNS8xMDVdIGdub21lLW1lbnVz OiB1cGRhdGUgdG8gMy4zNi4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxhdGUgfCA2 ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLW1lbnVzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9t ZS1tZW51cy90ZW1wbGF0ZQppbmRleCAyOTEwMjEyOWMzOC4uZTc4N2ZiOGRlNmIgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1tZW51 cy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLW1l bnVzJwogcGtnbmFtZT1nbm9tZS1tZW51cwotdmVyc2lvbj0zLjMyLjAKLXJldmlzaW9uPTIKK3Zl cnNpb249My4zNi4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBidWls ZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtc3RhdGljIgpAQCAtMTIs NyArMTIsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLW1lbnVzIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09Yzg1MGM2NGIyMDc0MjY1ZmU1OWUwOTlhMzQwYjg2ODlj ZjNkZDQ2NThkYzlmZWRkZDJhYjVlOTVmMWE3NGI3NAorY2hlY2tzdW09ZDkzNDhmMzhiZGU5NTZm YzMyNzUzYjI4YzFjZGUxOWMxNzViZmRiZjFmNGQ1YjA2MDAzYjNhYTA5MTUzYmIxZgogCiBidWls ZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gY2M1MmI2 YjMxMWI5NTc1MmE1NWI2OTA5ODdiM2U2ZjQzZWZlNzc0MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzNi8xMDVdIGdub21l LWRlc2t0b3A6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9nbm9tZS1kZXNrdG9wL3BhdGNoZXMv YnVpbGQucGF0Y2ggfCAxOCArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvZ25vbWUtZGVza3Rv cC90ZW1wbGF0ZSAgICAgICAgICAgIHwgMTEgKysrKysrKystLS0KIDMgZmlsZXMgY2hhbmdlZCwg MjcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2dub21lLWRlc2t0b3AvcGF0Y2hlcy9idWlsZC5wYXRjaAoKZGlmZiAtLWdpdCBhL2NvbW1v bi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGUwNGY3YmMxZmY3Li45NmQxYTZiZDE4MyAx MDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0xMTc2LDcg KzExNzYsNyBAQCBsaWJnc3RiYXNlY2FtZXJhYmluc3JjLTEuMC5zby4wIGdzdC1wbHVnaW5zLWJh ZDEtMS4wLjBfMQogbGliZ3N0Y29kZWNwYXJzZXJzLTEuMC5zby4wIGdzdC1wbHVnaW5zLWJhZDEt MS4wLjBfMQogbGliZ3N0cGxheWVyLTEuMC5zby4wIGdzdC1wbHVnaW5zLWJhZDEtMS4wLjBfMQog bGliZ3N0Z2wtMS4wLnNvLjAgZ3N0LXBsdWdpbnMtYmFzZTEtMS4xNC4wXzEKLWxpYmdub21lLWRl c2t0b3AtMy5zby4xOCBnbm9tZS1kZXNrdG9wLTMuMzQuMF8xCitsaWJnbm9tZS1kZXNrdG9wLTMu c28uMTkgZ25vbWUtZGVza3RvcC0zLjM3LjkwLjFfMQogbGlic2VjcmV0LTEuc28uMCBsaWJzZWNy ZXQtMC4xMF8xCiBsaWJnd2VhdGhlci0zLnNvLjE2IGxpYmd3ZWF0aGVyLTMuMzQuMF8xCiBsaWJn bm9tZWtiZC5zby44IGxpYmdub21la2JkLTMuNi4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25v bWUtZGVza3RvcC9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3Bh dGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmVmZWQwMGEyNWRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3Bh dGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorY29tbWl0IDRmNTVmZjA3ODQxMTk5 M2I3ODJlNzRlYTE4YzVjNmFiMzVhZGY2ODUKK0F1dGhvcjogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CitEYXRlOiAgIFdlZCBBdWcgMTIgMDU6MjY6MDAgMjAyMCArMDIwMAor CisgICAgYmxhCisKK2RpZmYgLS1naXQgbGliZ25vbWUtZGVza3RvcC9nbm9tZS1yci5oIGxpYmdu b21lLWRlc2t0b3AvZ25vbWUtcnIuaAoraW5kZXggMTExYmFiMy4uNzY5ODY3MiAxMDA2NDQKKy0t LSBsaWJnbm9tZS1kZXNrdG9wL2dub21lLXJyLmgKKysrKyBsaWJnbm9tZS1kZXNrdG9wL2dub21l LXJyLmgKK0BAIC0yOCw2ICsyOCw3IEBACisgI2Vycm9yICAgIEdub21lUlIgaXMgdW5zdGFibGUg QVBJLiBZb3UgbXVzdCBkZWZpbmUgR05PTUVfREVTS1RPUF9VU0VfVU5TVEFCTEVfQVBJIGJlZm9y ZSBpbmNsdWRpbmcgZ25vbWVyci5oCisgI2VuZGlmCisgCisrI2luY2x1ZGUgPHN0ZGludC5oPgor ICNpbmNsdWRlIDxnbGliLmg+CisgI2luY2x1ZGUgPGdkay9nZGsuaD4KKyAKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90 ZW1wbGF0ZQppbmRleCA5OTJjYjFmZjE2YS4uYmQwYjJmNWMxZDkgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWRlc2t0b3AvdGVt cGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWRlc2t0 b3AnCiBwa2duYW1lPWdub21lLWRlc2t0b3AKLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzgu MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29u ZmlndXJlX2FyZ3M9Ii1EZ25vbWUtZGlzdHJpYnV0b3I9Vm9pZExpbnV4IC1EdWRldj1lbmFibGVk Citjb25maWd1cmVfYXJncz0iLURnbm9tZV9kaXN0cmlidXRvcj1Wb2lkTGludXggLUR1ZGV2PWVu YWJsZWQgLURzeXN0ZW1kPWRpc2FibGVkCiAgLURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIg dHJ1ZSBmYWxzZSkiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgaXRzdG9vbCBwa2ctY29uZmln IGdsaWItZGV2ZWwiCiBtYWtlZGVwZW5kcz0iZXVkZXYtbGlidWRldi1kZXZlbCBnc2V0dGluZ3Mt ZGVza3RvcC1zY2hlbWFzLWRldmVsIGd0ayszLWRldmVsCkBAIC0xNiwxMSArMTYsMTYgQEAgbWFp bnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQ TC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0 bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1kZXNrdG9wIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6 IgotY2hlY2tzdW09YzFkYmViNTY2NmRhZDI3MTY2Yzc2OWU0OGUyYWI0MWRkNWVkNzQ3MThlYTM1 ZWI1N2M4NDg4NzkwNjYyZGM1YQorY2hlY2tzdW09MDg5ZGJiZTNjNjZmZTU1NzU2NTlhNGEzODVk NWQ0YmJkOTljZjYzNzAzNGRmMzE3ZjIxY2Y1ODZiNWRkNmI5MAogCiBidWlsZF9vcHRpb25zPSJn aXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAorIyBuZWVkcyBYCitkb19jaGVjaygp IHsKKwk6Cit9CisKIGdub21lLWRlc2t0b3AtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJn dGsrMy1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsPj0zLjEyCiAJIGdkay1w aXhidWYtZGV2ZWwgaXNvLWNvZGVzIGxpYlgxMS1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnNlY2Nv bXAtZGV2ZWwKCkZyb20gN2QxMmNiYTdjZmRiMWIwMDNiNThlYzc4M2Y0N2RjM2ZmZGNlOWYwNiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDog W1BBVENIIDAzNy8xMDVdIGdub21lLXNldHRpbmdzLWRhZW1vbjogdXBkYXRlIHRvIDMuMzguMAoK LS0tCiAuLi4vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoICAgICAgICAgICAgfCAxMzYg KysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0 ZSAgICAgICAgfCAgMTEgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1k YWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoIGIv c3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lNWNhNmJkNDNkZAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3BhdGNoZXMv bG9naW5kLWJhY2tsaWdodC5wYXRjaApAQCAtMCwwICsxLDEzNiBAQAorRnJvbSAzODQ1YjNhN2I1 OGYyNmVjNjhkYmMxYzQ1N2VhZDA2ZjQ4ODExODBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBGcmksIDE0 IEF1ZyAyMDIwIDE3OjQ4OjIxICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFRoZSBuZXcgbG9naW5k IGJyaWdodG5lc3MgY29kZSBkb2Vzbid0IHdvcmsgd2l0aCBlbG9naW5kLgorCitodHRwczovL2dp dGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2V0dGluZ3MtZGFlbW9uLy0vY29tbWl0L2NkMDUx ZTZjN2NjZmI3ZTdiMGVjNDQwNDA5YzU1OWIyZTUxMjg0ZTgKKy0tLQorIHBsdWdpbnMvcG93ZXIv Z3NkLWJhY2tsaWdodC5jIHwgNzcgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3MCBkZWxldGlvbnMoLSkKKworZGlm ZiAtLWdpdCBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYyBwbHVnaW5zL3Bvd2VyL2dzZC1i YWNrbGlnaHQuYworaW5kZXggY2E1ZjI3Mi4uNGFjYzJlNSAxMDA2NDQKKy0tLSBwbHVnaW5zL3Bv d2VyL2dzZC1iYWNrbGlnaHQuYworKysrIHBsdWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jCitA QCAtNDAsOCArNDAsNiBAQCBzdHJ1Y3QgX0dzZEJhY2tsaWdodAorICAgICAgICAgZ2ludCBicmln aHRuZXNzX3N0ZXA7CisgCisgI2lmZGVmIF9fbGludXhfXworLSAgICAgICAgR0RCdXNQcm94eSAq bG9naW5kX3Byb3h5OworLQorICAgICAgICAgR1VkZXZDbGllbnQgKnVkZXY7CisgICAgICAgICBH VWRldkRldmljZSAqdWRldl9kZXZpY2U7CisgCitAQCAtNjEsMTAgKzU5LDYgQEAgZW51bSB7Cisg ICAgICAgICBQUk9QX0xBU1QsCisgfTsKKyAKKy0jZGVmaW5lIFNZU1RFTURfREJVU19OQU1FICAg ICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLmxvZ2luMSIKKy0jZGVmaW5lIFNZ U1RFTURfREJVU19QQVRIICAgICAgICAgICAgICAgICAgICAgICAiL29yZy9mcmVlZGVza3RvcC9s b2dpbjEvc2Vzc2lvbi9hdXRvIgorLSNkZWZpbmUgU1lTVEVNRF9EQlVTX0lOVEVSRkFDRSAgICAg ICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AubG9naW4xLlNlc3Npb24iCistCisgc3RhdGlj IEdQYXJhbVNwZWMgKnByb3BzW1BST1BfTEFTVF07CisgCisgc3RhdGljIHZvaWQgICAgIGdzZF9i YWNrbGlnaHRfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxlSWZhY2UgICppZmFjZSk7CitA QCAtNDgyLDMwICs0NzYsMTMgQEAgZ3NkX2JhY2tsaWdodF9zZXRfYnJpZ2h0bmVzc192YWxfYXN5 bmMgKEdzZEJhY2tsaWdodCAqYmFja2xpZ2h0LAorICAgICAgICAgaWYgKGJhY2tsaWdodC0+dWRl dl9kZXZpY2UgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICBCYWNrbGlnaHRIZWxwZXJEYXRh ICp0YXNrX2RhdGE7CisgCistICAgICAgICAgICAgICAgIGlmIChiYWNrbGlnaHQtPmxvZ2luZF9w cm94eSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfZGJ1c19wcm94eV9jYWxsIChiYWNr bGlnaHQtPmxvZ2luZF9wcm94eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlNldEJyaWdodG5lc3MiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHNzdSkiLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFja2xpZ2h0IiwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z191ZGV2X2RldmljZV9nZXRfbmFtZSAoYmFja2xpZ2h0LT51ZGV2X2RldmljZSksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2ts aWdodC0+YnJpZ2h0bmVzc190YXJnZXQpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgTlVMTCwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgcGVyY2VudCA9IEFCU19UT19QRVJDRU5UQUdFIChiYWNrbGlnaHQtPmJyaWdodG5l c3NfbWluLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYmFja2xpZ2h0LT5icmlnaHRuZXNzX21heCwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJn ZXQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfdGFza19yZXR1cm5faW50ICh0YXNrLCBw ZXJjZW50KTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICB0YXNrX2RhdGEgPSBnX25ldzAgKEJhY2tsaWdodEhlbHBlckRhdGEsIDEpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIHRhc2tfZGF0YS0+dmFsdWUgPSBiYWNrbGlnaHQtPmJyaWdodG5l c3NfdGFyZ2V0OworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfdGFza19zZXRfdGFza19kYXRh ICh0YXNrLCB0YXNrX2RhdGEsIGJhY2tsaWdodF90YXNrX2RhdGFfZGVzdHJveSk7CistCistICAg ICAgICAgICAgICAgICAgICAgICAgLyogVGFzayBpcyBzZXQgdXAgbm93LiBRdWV1ZSBpdCBhbmQg ZW5zdXJlIHdlIGFyZSB3b3JraW5nIHNvbWV0aGluZy4gKi8KKy0gICAgICAgICAgICAgICAgICAg ICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoJmJhY2tsaWdodC0+dGFza3MsIHRhc2spOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vzc190YXNrcXVldWUgKGJhY2ts aWdodCk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgdGFza19kYXRhID0g Z19uZXcwIChCYWNrbGlnaHRIZWxwZXJEYXRhLCAxKTsKKysgICAgICAgICAgICAgICAgdGFza19k YXRhLT52YWx1ZSA9IGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQ7CisrICAgICAgICAgICAg ICAgIGdfdGFza19zZXRfdGFza19kYXRhICh0YXNrLCB0YXNrX2RhdGEsIGJhY2tsaWdodF90YXNr X2RhdGFfZGVzdHJveSk7CisrCisrICAgICAgICAgICAgICAgIC8qIFRhc2sgaXMgc2V0IHVwIG5v dy4gUXVldWUgaXQgYW5kIGVuc3VyZSB3ZSBhcmUgd29ya2luZyBzb21ldGhpbmcuICovCisrICAg ICAgICAgICAgICAgIGdfcXVldWVfcHVzaF90YWlsICgmYmFja2xpZ2h0LT50YXNrcywgdGFzayk7 CisrICAgICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vzc190YXNrcXVldWUgKGJhY2ts aWdodCk7CisgCisgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KK0BAIC04MjMs NyArODAwLDYgQEAgZ3NkX2JhY2tsaWdodF9pbml0YWJsZV9pbml0IChHSW5pdGFibGUgICAgICAg KmluaXRhYmxlLAorIHsKKyAgICAgICAgIEdzZEJhY2tsaWdodCAqYmFja2xpZ2h0ID0gR1NEX0JB Q0tMSUdIVCAoaW5pdGFibGUpOworICAgICAgICAgR25vbWVSUk91dHB1dCogb3V0cHV0ID0gTlVM TDsKKy0gICAgICAgIEdFcnJvciAqbG9naW5kX2Vycm9yID0gTlVMTDsKKyAKKyAgICAgICAgIGlm IChjYW5jZWxsYWJsZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgIGdfc2V0X2Vycm9yX2xp dGVyYWwgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX05PVF9TVVBQT1JURUQsCitAQCAt ODMyLDQ0ICs4MDgsNiBAQCBnc2RfYmFja2xpZ2h0X2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAg ICAgICAqaW5pdGFibGUsCisgICAgICAgICB9CisgCisgI2lmZGVmIF9fbGludXhfXworLSAgICAg ICAgYmFja2xpZ2h0LT5sb2dpbmRfcHJveHkgPQorLSAgICAgICAgICAgICAgICBnX2RidXNfcHJv eHlfbmV3X2Zvcl9idXNfc3luYyAoR19CVVNfVFlQRV9TWVNURU0sCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNZU1RFTURfREJVU19OQU1FLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1lTVEVNRF9EQlVTX1BBVEgsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTWVNURU1EX0RC VVNfSU5URVJGQUNFLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCwgJmxvZ2luZF9lcnJvcik7CistICAgICAgICBpZiAoYmFja2xpZ2h0LT5sb2dp bmRfcHJveHkpIHsKKy0gICAgICAgICAgICAgICAgLyogQ2hlY2sgdGhhdCB0aGUgU2V0QnJpZ2h0 bmVzcyBtZXRob2QgZG9lcyBleGlzdCAqLworLSAgICAgICAgICAgICAgICBnX2RidXNfcHJveHlf Y2FsbF9zeW5jIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIlNldEJyaWdodG5lc3MiLCBOVUxMLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLCAtMSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJmxvZ2luZF9l cnJvcik7CistCistICAgICAgICAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMgKGxvZ2luZF9l cnJvciwgR19EQlVTX0VSUk9SLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHX0RCVVNfRVJST1JfSU5WQUxJRF9BUkdTKSkgeworLSAgICAgICAgICAgICAgICAgICAgICAg IC8qIFdlIGFyZSBjYWxsaW5nIHRoZSBtZXRob2Qgd2l0aCBubyBhcmd1bWVudHMsIHNvCistICAg ICAgICAgICAgICAgICAgICAgICAgICogdGhpcyBpcyBleHBlY3RlZC4KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICBnX2NsZWFyX2Vycm9yICgm bG9naW5kX2Vycm9yKTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChnX2Vycm9yX21hdGNo ZXMgKGxvZ2luZF9lcnJvciwgR19EQlVTX0VSUk9SLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR19EQlVTX0VSUk9SX1VOS05PV05fTUVUSE9EKSkgeworLSAg ICAgICAgICAgICAgICAgICAgICAgIC8qIHN5c3RlbWQgdmVyc2lvbiBpcyB0b28gb2xkLCBzbyBp Z25vcmUuCistICAgICAgICAgICAgICAgICAgICAgICAgICovCistICAgICAgICAgICAgICAgICAg ICAgICAgZ19jbGVhcl9lcnJvciAoJmxvZ2luZF9lcnJvcik7CistICAgICAgICAgICAgICAgICAg ICAgICAgZ19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CistICAgICAg ICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLyogRmFpbCBvbiBh bnl0aGluZyBlbHNlICovCistICAgICAgICAgICAgICAgICAgICAgICAgZ19jbGVhcl9vYmplY3Qg KCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0KKy0gICAgICAgIGlmIChsb2dpbmRfZXJyb3IpIHsKKy0gICAgICAgICAgICAgICAgZ193 YXJuaW5nICgiTm8gbG9naW5kIGZvdW5kOiAlcyIsIGxvZ2luZF9lcnJvci0+bWVzc2FnZSk7Cist ICAgICAgICAgICAgICAgIGdfZXJyb3JfZnJlZSAobG9naW5kX2Vycm9yKTsKKy0gICAgICAgIH0K Ky0KKyAgICAgICAgIC8qIFRyeSBmaW5kaW5nIGEgdWRldiBkZXZpY2UuICovCisgICAgICAgICBp ZiAoZ3NkX2JhY2tsaWdodF91ZGV2X2luaXQgKGJhY2tsaWdodCkpCisgICAgICAgICAgICAgICAg IGdvdG8gZm91bmQ7CitAQCAtOTExLDcgKzg0OSw2IEBAIGdzZF9iYWNrbGlnaHRfZmluYWxpemUg KEdPYmplY3QgKm9iamVjdCkKKyAjaWZkZWYgX19saW51eF9fCisgICAgICAgICBnX2Fzc2VydCAo YmFja2xpZ2h0LT5hY3RpdmVfdGFzayA9PSBOVUxMKTsKKyAgICAgICAgIGdfYXNzZXJ0IChnX3F1 ZXVlX2lzX2VtcHR5ICgmYmFja2xpZ2h0LT50YXNrcykpOworLSAgICAgICAgZ19jbGVhcl9vYmpl Y3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CisgICAgICAgICBnX2NsZWFyX29iamVjdCAo JmJhY2tsaWdodC0+dWRldik7CisgICAgICAgICBnX2NsZWFyX29iamVjdCAoJmJhY2tsaWdodC0+ dWRldl9kZXZpY2UpOworICAgICAgICAgaWYgKGJhY2tsaWdodC0+aWRsZV91cGRhdGUpIHsKKy0t IAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3Rl bXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vdGVtcGxhdGUKaW5kZXggYTcw ZTI4YmU1ZmEuLmI2ZGEyOGUyNTU0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNldHRpbmdz LWRhZW1vbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi90ZW1w bGF0ZQpAQCAtMSwxMCArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2V0dGlu Z3MtZGFlbW9uJwogcGtnbmFtZT1nbm9tZS1zZXR0aW5ncy1kYWVtb24KLXZlcnNpb249My4zNC4x Ci1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVz b24KIGNvbmZpZ3VyZV9hcmdzKz0iLURzeXN0ZW1kPWZhbHNlIgotaG9zdG1ha2VkZXBlbmRzPSJj bWFrZSBkb2Nib29rLXhzbCBnbGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlieHNsdCBwZXJsIHBr Zy1jb25maWciCitob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGRvY2Jvb2steHNsIGdldHRleHQgZ2xp Yi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnhzbHQKKyBwZXJsIHBrZy1jb25maWciCiBtYWtlZGVw ZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYWxzYS1saWItZGV2ZWwgY29sb3JkLWRldmVsIGN1 cHMtZGV2ZWwgZ2NyLWRldmVsCiAgZ2VvY2x1ZTItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBp YnVzLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYmdub21la2JkLWRldmVsCiAgbGliZ3dlYXRo ZXItZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnJzdmctZGV2ZWwgbGlid2Fjb20tZGV2ZWwgbnNz LWRldmVsCkBAIC0xMiwxMyArMTMsMTMgQEAgbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRl dmVsIGFsc2EtbGliLWRldmVsIGNvbG9yZC1kZXZlbCBjdXBzLWRldmVsIGdjci1kZXYKICB4Zjg2 LWlucHV0LXdhY29tLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1pY29uLXRoZW1lIHB1bHNlYXVk aW8iCiBjaGVja2RlcGVuZHM9ImVsb2dpbmQgbGlibm90aWZ5IHB5dGhvbjMtZGJ1c21vY2sgcHl0 aG9uMy1nb2JqZWN0Ci0gcHl0aG9uMy1weWNvZGVzdHlsZSIKKyBweXRob24zLXB5Y29kZXN0eWxl IHdoaWNoIGh3aWRzIGV1ZGV2Igogc2hvcnRfZGVzYz0iR05PTUUgc2V0dGluZ3MgZGFlbW9uIgog bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dO T01FL2dub21lLXNldHRpbmdzLWRhZW1vbiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTk5ODFhMjBiYWJmOGRhNzc0NGI3ZmJlMTc1YjllMzYwNzhiZjA4ZjNiZjY1ZmU1YWVkZWI4 MmNmZTI3YWMxMWYKK2NoZWNrc3VtPWI3ZWQ1YjVmYWI5YWFkMTkyY2VlZDZhOTViZTI4MDUxMjRl M2M2M2M0Njg5MWJiYWUwNzZmN2VjM2ZkNjc5MmUKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0 aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIHBvbGtpdCIKCkZyb20gODdkMmQyMWFjMDVkNWVkNzA2 NWViZTJiZjA3ZDBlMjQyNTJmOTA3NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAg MTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzOC8xMDVdIG11dHRlcjogdXBkYXRlIHRv IDMuMzguMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMTggKy0KIC4uLi9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRlcy5wYXRjaCAgICAg ICB8ICAxMSAtCiBzcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaCAgICAg fCA1MjEgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL211dHRlci90ZW1wbGF0ZSAgICAgICAg ICAgICAgICAgICAgICAgfCAgMzQgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygr KSwgNTU1IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXV0dGVyL3Bh dGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21t b24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCA5NmQxYTZiZDE4My4uZDFmMDEwMTY2YWIg MTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzAwMiwx NSArMzAwMiwxNSBAQCBsaWJkZWNvcmF0aW9uLnNvLjAgY29tcGl6LWNvcmUtMC44LjE0XzEKIGxp YmNvbXBpemNvbmZpZy5zby4wIGxpYmNvbXBpemNvbmZpZy0wLjguMTRfMQogbGliZW1lcmFsZGVu Z2luZS5zby4wIGVtZXJhbGQtMC44LjE0XzEKIGxpYmhhbmd1bC5zby4xIGxpYmhhbmd1bC0wLjEu MF8xCi1saWJtdXR0ZXItNS5zby4wIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNsdXR0ZXIt NS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jbHV0dGVyLTUuc28uMCBtdXR0ZXItMy4z NC4xXzEKLWxpYm11dHRlci1jb2dsLXBhdGgtNS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRl ci1jb2dsLXBhdGgtNS5zby4wIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtNS5zbyBt dXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jb2dsLTUuc28uMCBtdXR0ZXItMy4zNC4xXzEKLWxp Ym11dHRlci1jb2dsLXBhbmdvLTUuc28gbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY29nbC1w YW5nby01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCitsaWJtdXR0ZXItNy5zby4wIG11dHRlci0zLjM3 LjkwXzEKK2xpYm11dHRlci1jbHV0dGVyLTcuc28gbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVy LWNsdXR0ZXItNy5zby4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhdGgtNy5z byBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY29nbC1wYXRoLTcuc28uMCBtdXR0ZXItMy4z Ny45MF8xCitsaWJtdXR0ZXItY29nbC03LnNvIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1j b2dsLTcuc28uMCBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY29nbC1wYW5nby03LnNvIG11 dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhbmdvLTcuc28uMCBtdXR0ZXItMy4zNy45 MF8xCiBsaWJnZW9jbHVlLTIuc28uMCBnZW9jbHVlMi0yLjQuNF8xCiBsaWJnZXB1Yi5zby4wIGxp YmdlcHViLTAuNF8xCiBsaWJzbG9weS5zby43LjUgc2xvcC03LjVfMQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2ggYi9zcmNwa2dz L211dHRlci9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRlcy5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggZDkwOTg4ODg3YzMuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv bXV0dGVyL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMTEgKzAsMCBAQAotLS0tIGNvZ2wvY29nbC9tZXNvbi5idWlsZAkyMDE5LTEwLTA4IDE5 OjE1OjEwLjAwMDAwMDAwMCArMDIwMAotKysrIGNvZ2wvY29nbC9tZXNvbi5idWlsZAkyMDE5LTEy LTE2IDE1OjQ1OjQ0LjAzNzY0MDU0OCArMDEwMAotQEAgLTQ4LDcgKzQ4LDcgQEAKLSBidWlsdF9o ZWFkZXJzICs9IFtjb2dsX2dsX2hlYWRlcl9oXQotIAotIGlmIGhhdmVfZWdsCi0tICBjb2dsX2Vn bF9pbmNsdWRlc19zdHJpbmcgPSAnI2luY2x1ZGUgPEVHTC9lZ2wuaD5cbiNpbmNsdWRlIDxFR0wv ZWdsZXh0Lmg+JwotKyAgY29nbF9lZ2xfaW5jbHVkZXNfc3RyaW5nID0gJyNpbmNsdWRlIDxFR0wv ZWdsLmg+XG4jaW5jbHVkZSA8RUdML2VnbGV4dC5oPlxuI2luY2x1ZGUgPEVHTC9lZ2xtZXNhZXh0 Lmg+JwotIGVsc2UKLSAgIGNvZ2xfZWdsX2luY2x1ZGVzX3N0cmluZyA9ICcnCi0gZW5kaWYKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNoIGIvc3Jj cGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGViZmY2NWZiYTg1Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211dHRl ci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUyMSArMCww IEBACi1CdWlsZCBtdXR0ZXIgYWdhaW5zdCBwaXBld2lyZS0wLjMsIGJhc2VkIG9uIGEgcGF0Y2gg YXQ6Ci1odHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbXV0dGVyLy0vbWVyZ2VfcmVxdWVz dHMvMTA2MgotLS0tIG1lc29uLmJ1aWxkCi0rKysgbWVzb24uYnVpbGQKLUBAIC01MCw3ICs1MCw3 IEBAIGxpYmlucHV0X3JlcSA9ICc+PSAxLjcnCi0gZ2JtX3JlcSA9ICc+PSAxMC4zJwotCi0gIyBz Y3JlZW4gY2FzdCB2ZXJzaW9uIHJlcXVpcmVtZW50cwotLWxpYnBpcGV3aXJlX3JlcSA9ICc+PSAw LjIuNScKLStsaWJwaXBld2lyZV9yZXEgPSAnPj0gMC4zLjAnCi0KLSBnbm9tZSA9IGltcG9ydCgn Z25vbWUnKQotIHBrZyA9IGltcG9ydCgncGtnY29uZmlnJykKLUBAIC0yNDEsNyArMjQxLDcgQEAg ZW5kaWYKLQotIGhhdmVfcmVtb3RlX2Rlc2t0b3AgPSBnZXRfb3B0aW9uKCdyZW1vdGVfZGVza3Rv cCcpCi0gaWYgaGF2ZV9yZW1vdGVfZGVza3RvcAotLSAgbGlicGlwZXdpcmVfZGVwID0gZGVwZW5k ZW5jeSgnbGlicGlwZXdpcmUtMC4yJywgdmVyc2lvbjogbGlicGlwZXdpcmVfcmVxKQotKyAgbGli cGlwZXdpcmVfZGVwID0gZGVwZW5kZW5jeSgnbGlicGlwZXdpcmUtMC4zJywgdmVyc2lvbjogbGli cGlwZXdpcmVfcmVxKQotIGVuZGlmCi0KLSBoYXZlX2ludHJvc3BlY3Rpb24gPSBnZXRfb3B0aW9u KCdpbnRyb3NwZWN0aW9uJykKLWRpZmYgLS1naXQgYS9zcmMvYmFja2VuZHMvbWV0YS1zY3JlZW4t Y2FzdC1zdHJlYW0tc3JjLmMgYi9zcmMvYmFja2VuZHMvbWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0t c3JjLmMKLWluZGV4IDgyYzVjYmE0MzYuLmJhMWNlOTRhN2UgMTAwNjQ0Ci0tLS0gc3JjL2JhY2tl bmRzL21ldGEtc2NyZWVuLWNhc3Qtc3RyZWFtLXNyYy5jCi0rKysgc3JjL2JhY2tlbmRzL21ldGEt c2NyZWVuLWNhc3Qtc3RyZWFtLXNyYy5jCi1AQCAtMjksNiArMjksNyBAQAotICNpbmNsdWRlIDxz cGEvcGFyYW0vcHJvcHMuaD4KLSAjaW5jbHVkZSA8c3BhL3BhcmFtL2Zvcm1hdC11dGlscy5oPgot ICNpbmNsdWRlIDxzcGEvcGFyYW0vdmlkZW8vZm9ybWF0LXV0aWxzLmg+Ci0rI2luY2x1ZGUgPHNw YS91dGlscy9yZXN1bHQuaD4KLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gI2luY2x1ZGUgPHN5cy9t bWFuLmg+Ci0KLUBAIC02MiwxNSArNjMsNiBAQCBlbnVtCi0KLSBzdGF0aWMgZ3VpbnQgc2lnbmFs c1tOX1NJR05BTFNdOwotCi0tdHlwZWRlZiBzdHJ1Y3QgX01ldGFTcGFUeXBlCi0tewotLSAgc3Ry dWN0IHNwYV90eXBlX21lZGlhX3R5cGUgbWVkaWFfdHlwZTsKLS0gIHN0cnVjdCBzcGFfdHlwZV9t ZWRpYV9zdWJ0eXBlIG1lZGlhX3N1YnR5cGU7Ci0tICBzdHJ1Y3Qgc3BhX3R5cGVfZm9ybWF0X3Zp ZGVvIGZvcm1hdF92aWRlbzsKLS0gIHN0cnVjdCBzcGFfdHlwZV92aWRlb19mb3JtYXQgdmlkZW9f Zm9ybWF0OwotLSAgdWludDMyX3QgbWV0YV9jdXJzb3I7Ci0tfSBNZXRhU3BhVHlwZTsKLS0KLSB0 eXBlZGVmIHN0cnVjdCBfTWV0YVBpcGVXaXJlU291cmNlCi0gewotICAgR1NvdXJjZSBiYXNlOwot QEAgLTgyLDE5ICs3NCwxOSBAQCB0eXBlZGVmIHN0cnVjdCBfTWV0YVNjcmVlbkNhc3RTdHJlYW1T cmNQcml2YXRlCi0gewotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW0gKnN0cmVhbTsKLQotKyAgc3Ry dWN0IHB3X2NvbnRleHQgKnBpcGV3aXJlX2NvbnRleHQ7Ci0gICBzdHJ1Y3QgcHdfY29yZSAqcGlw ZXdpcmVfY29yZTsKLS0gIHN0cnVjdCBwd19yZW1vdGUgKnBpcGV3aXJlX3JlbW90ZTsKLS0gIHN0 cnVjdCBwd190eXBlICpwaXBld2lyZV90eXBlOwotICAgTWV0YVBpcGVXaXJlU291cmNlICpwaXBl d2lyZV9zb3VyY2U7Ci0tICBzdHJ1Y3Qgc3BhX2hvb2sgcGlwZXdpcmVfcmVtb3RlX2xpc3RlbmVy OwotKyAgc3RydWN0IHNwYV9ob29rIHBpcGV3aXJlX2NvcmVfbGlzdGVuZXI7Ci0KLSAgIGdib29s ZWFuIGlzX2VuYWJsZWQ7Ci0KLSAgIHN0cnVjdCBwd19zdHJlYW0gKnBpcGV3aXJlX3N0cmVhbTsK LSAgIHN0cnVjdCBzcGFfaG9vayBwaXBld2lyZV9zdHJlYW1fbGlzdGVuZXI7Ci0rICB1aW50MzJf dCBub2RlX2lkOwotCi0tICBNZXRhU3BhVHlwZSBzcGFfdHlwZTsKLSAgIHN0cnVjdCBzcGFfdmlk ZW9faW5mb19yYXcgdmlkZW9fZm9ybWF0OwotKyAgaW50IHZpZGVvX3N0cmlkZTsKLQotICAgdWlu dDY0X3QgbGFzdF9mcmFtZV90aW1lc3RhbXBfdXM7Ci0KLUBAIC0xMTIsOCArMTA0LDYgQEAgR19E RUZJTkVfVFlQRV9XSVRIX0NPREUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFfc2NyZWVuX2Nhc3Rf c3RyZWFtX3NyY19pbml0X2luaXRhYmxlX2lmYWNlKQotICAgICAgICAgICAgICAgICAgICAgICAg ICBHX0FERF9QUklWQVRFIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYykpCi0KLS0jZGVmaW5lIFBS T1BfUkFOR0UobWluLCBtYXgpIDIsIChtaW4pLCAobWF4KQotLQotIHN0YXRpYyB2b2lkCi0gbWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9zcGVjcyAoTWV0YVNjcmVlbkNhc3RTdHJlYW1T cmMgKnNyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAg ICAgICAgICAgICAgICAgICAqd2lkdGgsCi1AQCAtMjg2LDkgKzI3Niw2IEBAIG1ldGFfc2NyZWVu X2Nhc3Rfc3RyZWFtX3NyY19zZXRfZW1wdHlfY3Vyc29yX3Nwcml0ZV9tZXRhZGF0YSAoTWV0YVNj cmVlbkNhc3RTdHJlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgeCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCAgICAgICAgICAgICAgICAgICAgICB5KQotIHsKLS0gIE1ldGFTY3JlZW5DYXN0U3RyZWFtU3Jj UHJpdmF0ZSAqcHJpdiA9Ci0tICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19nZXRfaW5z dGFuY2VfcHJpdmF0ZSAoc3JjKTsKLS0gIE1ldGFTcGFUeXBlICpzcGFfdHlwZSA9ICZwcml2LT5z cGFfdHlwZTsKLSAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXAgKnNwYV9tZXRhX2JpdG1hcDsKLQot ICAgc3BhX21ldGFfY3Vyc29yLT5pZCA9IDE7Ci1AQCAtMzAwLDcgKzI4Nyw3IEBAIG1ldGFfc2Ny ZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfZW1wdHlfY3Vyc29yX3Nwcml0ZV9tZXRhZGF0YSAoTWV0 YVNjcmVlbkNhc3RTdHJlCi0gICBzcGFfbWV0YV9iaXRtYXAgPSBTUEFfTUVNQkVSIChzcGFfbWV0 YV9jdXJzb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFfbWV0YV9jdXJz b3ItPmJpdG1hcF9vZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3Qgc3BhX21ldGFfYml0bWFwKTsKLS0gIHNwYV9tZXRhX2JpdG1hcC0+Zm9ybWF0ID0gc3BhX3R5 cGUtPnZpZGVvX2Zvcm1hdC5SR0JBOwotKyAgc3BhX21ldGFfYml0bWFwLT5mb3JtYXQgPSBTUEFf VklERU9fRk9STUFUX1JHQkE7Ci0gICBzcGFfbWV0YV9iaXRtYXAtPm9mZnNldCA9IHNpemVvZiAo c3RydWN0IHNwYV9tZXRhX2JpdG1hcCk7Ci0KLSAgIHNwYV9tZXRhX2N1cnNvci0+aG90c3BvdC54 ID0gMDsKLUBAIC0zMTcsOSArMzA0LDYgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3Nl dF9jdXJzb3Jfc3ByaXRlX21ldGFkYXRhIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAg ICAgICAgICAgICAgICAgICAgIHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAgICAgICAgICAgICAgICAgICAgc2NhbGUpCi0g ewotLSAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9z Y3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgTWV0 YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotICAgQ29nbFRleHR1cmUgKmN1 cnNvcl90ZXh0dXJlOwotICAgc3RydWN0IHNwYV9tZXRhX2JpdG1hcCAqc3BhX21ldGFfYml0bWFw OwotICAgaW50IGhvdHNwb3RfeCwgaG90c3BvdF95OwotQEAgLTM0Niw3ICszMzAsNyBAQCBtZXRh X3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfc2V0X2N1cnNvcl9zcHJpdGVfbWV0YWRhdGEgKE1ldGFT Y3JlZW5DYXN0U3RyZWFtU3JjCi0gICBzcGFfbWV0YV9iaXRtYXAgPSBTUEFfTUVNQkVSIChzcGFf bWV0YV9jdXJzb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFfbWV0YV9j dXJzb3ItPmJpdG1hcF9vZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLS0gIHNwYV9tZXRhX2JpdG1hcC0+Zm9ybWF0ID0gc3Bh X3R5cGUtPnZpZGVvX2Zvcm1hdC5SR0JBOwotKyAgc3BhX21ldGFfYml0bWFwLT5mb3JtYXQgPSBT UEFfVklERU9fRk9STUFUX1JHQkE7Ci0gICBzcGFfbWV0YV9iaXRtYXAtPm9mZnNldCA9IHNpemVv ZiAoc3RydWN0IHNwYV9tZXRhX2JpdG1hcCk7Ci0KLSAgIG1ldGFfY3Vyc29yX3Nwcml0ZV9nZXRf aG90c3BvdCAoY3Vyc29yX3Nwcml0ZSwgJmhvdHNwb3RfeCwgJmhvdHNwb3RfeSk7Ci1AQCAtMzgy LDEyICszNjYsMTAgQEAgc3RhdGljIHZvaWQKLSBhZGRfY3Vyc29yX21ldGFkYXRhIChNZXRhU2Ny ZWVuQ2FzdFN0cmVhbVNyYyAqc3JjLAotICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzcGFf YnVmZmVyICAgICAgICpzcGFfYnVmZmVyKQotIHsKLS0gIE1ldGFTY3JlZW5DYXN0U3RyZWFtU3Jj UHJpdmF0ZSAqcHJpdiA9Ci0tICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19nZXRfaW5z dGFuY2VfcHJpdmF0ZSAoc3JjKTsKLS0gIE1ldGFTcGFUeXBlICpzcGFfdHlwZSA9ICZwcml2LT5z cGFfdHlwZTsKLSAgIHN0cnVjdCBzcGFfbWV0YV9jdXJzb3IgKnNwYV9tZXRhX2N1cnNvcjsKLQot LSAgc3BhX21ldGFfY3Vyc29yID0gc3BhX2J1ZmZlcl9maW5kX21ldGEgKHNwYV9idWZmZXIsIHNw YV90eXBlLT5tZXRhX2N1cnNvcik7Ci0rICBzcGFfbWV0YV9jdXJzb3IgPSBzcGFfYnVmZmVyX2Zp bmRfbWV0YV9kYXRhIChzcGFfYnVmZmVyLCBTUEFfTUVUQV9DdXJzb3IsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKCpzcGFfbWV0YV9jdXJz b3IpKTsKLSAgIGlmIChzcGFfbWV0YV9jdXJzb3IpCi0gICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3Ry ZWFtX3NyY19zZXRfY3Vyc29yX21ldGFkYXRhIChzcmMsIHNwYV9tZXRhX2N1cnNvcik7Ci0gfQot QEAgLTQ0NywxNCArNDI5LDE0IEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19tYXliZV9y ZWNvcmRfZnJhbWUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMpCi0gICAgIHsKLSAgICAg ICBkYXRhID0gc3BhX2J1ZmZlci0+ZGF0YXNbMF0uZGF0YTsKLSAgICAgfQotLSAgZWxzZSBpZiAo c3BhX2J1ZmZlci0+ZGF0YXNbMF0udHlwZSA9PSBwcml2LT5waXBld2lyZV90eXBlLT5kYXRhLk1l bUZkKQotKyAgZWxzZSBpZiAoc3BhX2J1ZmZlci0+ZGF0YXNbMF0udHlwZSA9PSBTUEFfREFUQV9N ZW1GZCkKLSAgICAgewotICAgICAgIG1hcCA9IG1tYXAgKE5VTEwsIHNwYV9idWZmZXItPmRhdGFz WzBdLm1heHNpemUgKyBzcGFfYnVmZmVyLT5kYXRhc1swXS5tYXBvZmZzZXQsCi0gICAgICAgICAg ICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwKLSAgICAgICAgICAg ICAgICAgICBzcGFfYnVmZmVyLT5kYXRhc1swXS5mZCwgMCk7Ci0gICAgICAgaWYgKG1hcCA9PSBN QVBfRkFJTEVEKQotICAgICAgICAgewotLSAgICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8g bW1hcCBwaXBld2lyZSBzdHJlYW0gYnVmZmVyOiAlc1xuIiwKLSsgICAgICAgICAgZ193YXJuaW5n ICgiRmFpbGVkIHRvIG1tYXAgcGlwZXdpcmUgc3RyZWFtIGJ1ZmZlcjogJXMiLAotICAgICAgICAg ICAgICAgICAgICAgIHN0cmVycm9yIChlcnJubykpOwotICAgICAgICAgICByZXR1cm47Ci0gICAg ICAgICB9Ci1AQCAtNDY5LDI4ICs0NTEsMzAgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3Jj X21heWJlX3JlY29yZF9mcmFtZSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYykKLQotICAg aWYgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19yZWNvcmRfZnJhbWUgKHNyYywgZGF0YSkp Ci0gICAgIHsKLS0gICAgICBzdHJ1Y3Qgc3BhX21ldGFfdmlkZW9fY3JvcCAqc3BhX21ldGFfdmlk ZW9fY3JvcDsKLSsgICAgICBzdHJ1Y3Qgc3BhX21ldGFfcmVnaW9uICpzcGFfbWV0YV92aWRlb19j cm9wOwotCi0gICAgICAgc3BhX2J1ZmZlci0+ZGF0YXNbMF0uY2h1bmstPnNpemUgPSBzcGFfYnVm ZmVyLT5kYXRhc1swXS5tYXhzaXplOwotKyAgICAgIHNwYV9idWZmZXItPmRhdGFzWzBdLmNodW5r LT5zdHJpZGUgPSBwcml2LT52aWRlb19zdHJpZGU7Ci0KLSAgICAgICAvKiBVcGRhdGUgVmlkZW9D cm9wIGlmIG5lZWRlZCAqLwotICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AgPQotLSAgICAgICAg c3BhX2J1ZmZlcl9maW5kX21ldGEgKHNwYV9idWZmZXIsIHByaXYtPnBpcGV3aXJlX3R5cGUtPm1l dGEuVmlkZW9Dcm9wKTsKLSsgICAgICAgIHNwYV9idWZmZXJfZmluZF9tZXRhX2RhdGEgKHNwYV9i dWZmZXIsIFNQQV9NRVRBX1ZpZGVvQ3JvcCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVvZiAoKnNwYV9tZXRhX3ZpZGVvX2Nyb3ApKTsKLSAgICAgICBpZiAoc3BhX21l dGFfdmlkZW9fY3JvcCkKLSAgICAgICAgIHsKLSAgICAgICAgICAgaWYgKG1ldGFfc2NyZWVuX2Nh c3Rfc3RyZWFtX3NyY19nZXRfdmlkZW9jcm9wIChzcmMsICZjcm9wX3JlY3QpKQotICAgICAgICAg ICAgIHsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnggPSBjcm9wX3JlY3Qu eDsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnkgPSBjcm9wX3JlY3QueTsK LS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPndpZHRoID0gY3JvcF9yZWN0Lndp ZHRoOwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+aGVpZ2h0ID0gY3JvcF9y ZWN0LmhlaWdodDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5w b3NpdGlvbi54ID0gY3JvcF9yZWN0Lng7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19j cm9wLT5yZWdpb24ucG9zaXRpb24ueSA9IGNyb3BfcmVjdC55OwotKyAgICAgICAgICAgICAgc3Bh X21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnNpemUud2lkdGggPSBjcm9wX3JlY3Qud2lkdGg7Ci0r ICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24uc2l6ZS5oZWlnaHQgPSBj cm9wX3JlY3QuaGVpZ2h0OwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgZWxzZQotICAgICAg ICAgICAgIHsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnggPSAwOwotLSAg ICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eSA9IDA7Ci0tICAgICAgICAgICAgICBz cGFfbWV0YV92aWRlb19jcm9wLT53aWR0aCA9IHByaXYtPnN0cmVhbV93aWR0aDsKLS0gICAgICAg ICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPmhlaWdodCA9IHByaXYtPnN0cmVhbV9oZWlnaHQ7 Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24ucG9zaXRpb24ueCA9 IDA7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24ucG9zaXRpb24u eSA9IDA7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24uc2l6ZS53 aWR0aCA9IHByaXYtPnN0cmVhbV93aWR0aDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVv X2Nyb3AtPnJlZ2lvbi5zaXplLmhlaWdodCA9IHByaXYtPnN0cmVhbV9oZWlnaHQ7Ci0gICAgICAg ICAgICAgfQotICAgICAgICAgfQotICAgICB9Ci1AQCAtNTU1LDcgKzUzOSw2IEBAIG9uX3N0cmVh bV9zdGF0ZV9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0YSwKLSAgIE1ldGFTY3Jl ZW5DYXN0U3RyZWFtU3JjICpzcmMgPSBkYXRhOwotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQ cml2YXRlICpwcml2ID0KLSAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0 YW5jZV9wcml2YXRlIChzcmMpOwotLSAgdWludDMyX3Qgbm9kZV9pZDsKLQotICAgc3dpdGNoIChz dGF0ZSkKLSAgICAgewotQEAgLTU2MywxNCArNTQ2LDEyIEBAIG9uX3N0cmVhbV9zdGF0ZV9jaGFu Z2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0YSwKLSAgICAgICBnX3dhcm5pbmcgKCJwaXBl d2lyZSBzdHJlYW0gZXJyb3I6ICVzIiwgZXJyb3JfbWVzc2FnZSk7Ci0gICAgICAgbWV0YV9zY3Jl ZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0gICAgICAgYnJlYWs7Ci0t ICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX0NPTkZJR1VSRToKLS0gICAgICBub2RlX2lkID0gcHdf c3RyZWFtX2dldF9ub2RlX2lkIChwcml2LT5waXBld2lyZV9zdHJlYW0pOwotLSAgICAgIGdfc2ln bmFsX2VtaXQgKHNyYywgc2lnbmFsc1tSRUFEWV0sIDAsICh1bnNpZ25lZCBpbnQpIG5vZGVfaWQp OwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9VTkNPTk5FQ1RFRDoK LS0gICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfQ09OTkVDVElORzoKLS0gICAgY2FzZSBQV19TVFJF QU1fU1RBVEVfUkVBRFk6Ci0gICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX1BBVVNFRDoKLSsgICAg ICBpZiAocHJpdi0+bm9kZV9pZCA9PSBTUEFfSURfSU5WQUxJRCAmJiBwcml2LT5waXBld2lyZV9z dHJlYW0pCi0rICAgICAgICB7Ci0rICAgICAgICAgIHByaXYtPm5vZGVfaWQgPSBwd19zdHJlYW1f Z2V0X25vZGVfaWQgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSk7Ci0rICAgICAgICAgIGdfc2lnbmFs X2VtaXQgKHNyYywgc2lnbmFsc1tSRUFEWV0sIDAsICh1bnNpZ25lZCBpbnQpIHByaXYtPm5vZGVf aWQpOwotKyAgICAgICAgfQotICAgICAgIGlmIChtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNf aXNfZW5hYmxlZCAoc3JjKSkKLSAgICAgICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19k aXNhYmxlIChzcmMpOwotICAgICAgIGJyZWFrOwotQEAgLTU3OCw2OCArNTU5LDY5IEBAIG9uX3N0 cmVhbV9zdGF0ZV9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0YSwKLSAgICAgICBp ZiAoIW1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19pc19lbmFibGVkIChzcmMpKQotICAgICAg ICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2VuYWJsZSAoc3JjKTsKLSAgICAgICBicmVh azsKLSsgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfVU5DT05ORUNURUQ6Ci0rICAgIGNhc2UgUFdf U1RSRUFNX1NUQVRFX0NPTk5FQ1RJTkc6Ci0rICAgICAgYnJlYWs7Ci0gICAgIH0KLSB9Ci0KLSBz dGF0aWMgdm9pZAotLW9uX3N0cmVhbV9mb3JtYXRfY2hhbmdlZCAodm9pZCAgICAgICAgICAgICAg ICAgKmRhdGEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc3BhX3Bv ZCAqZm9ybWF0KQotK29uX3N0cmVhbV9wYXJhbV9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAg ICAqZGF0YSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgICAgICAg IGlkLAotKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc3BhX3BvZCAqZm9y bWF0KQotIHsKLSAgIE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMgPSBkYXRhOwotICAgTWV0 YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLSAgICAgbWV0YV9zY3JlZW5fY2Fz dF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgc3RydWN0IHB3X3R5 cGUgKnBpcGV3aXJlX3R5cGUgPSBwcml2LT5waXBld2lyZV90eXBlOwotICAgdWludDhfdCBwYXJh bXNfYnVmZmVyWzEwMjRdOwotICAgaW50MzJfdCB3aWR0aCwgaGVpZ2h0LCBzdHJpZGUsIHNpemU7 Ci0gICBzdHJ1Y3Qgc3BhX3BvZF9idWlsZGVyIHBvZF9idWlsZGVyOwotICAgY29uc3Qgc3RydWN0 IHNwYV9wb2QgKnBhcmFtc1szXTsKLSAgIGNvbnN0IGludCBicHAgPSA0OwotCi0tICBpZiAoIWZv cm1hdCkKLS0gICAgewotLSAgICAgIHB3X3N0cmVhbV9maW5pc2hfZm9ybWF0IChwcml2LT5waXBl d2lyZV9zdHJlYW0sIDAsIE5VTEwsIDApOwotLSAgICAgIHJldHVybjsKLS0gICAgfQotKyAgaWYg KCFmb3JtYXQgfHwgaWQgIT0gU1BBX1BBUkFNX0Zvcm1hdCkKLSsgICAgcmV0dXJuOwotCi0gICBz cGFfZm9ybWF0X3ZpZGVvX3Jhd19wYXJzZSAoZm9ybWF0LAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZwcml2LT52aWRlb19mb3JtYXQsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJnByaXYtPnNwYV90eXBlLmZvcm1hdF92aWRlbyk7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnByaXYtPnZpZGVvX2Zvcm1hdCk7Ci0KLSAgIHdpZHRoID0gcHJpdi0+dmlk ZW9fZm9ybWF0LnNpemUud2lkdGg7Ci0gICBoZWlnaHQgPSBwcml2LT52aWRlb19mb3JtYXQuc2l6 ZS5oZWlnaHQ7Ci0gICBzdHJpZGUgPSBTUEFfUk9VTkRfVVBfTiAod2lkdGggKiBicHAsIDQpOwot ICAgc2l6ZSA9IGhlaWdodCAqIHN0cmlkZTsKLQotKyAgcHJpdi0+dmlkZW9fc3RyaWRlID0gc3Ry aWRlOwotKwotICAgcG9kX2J1aWxkZXIgPSBTUEFfUE9EX0JVSUxERVJfSU5JVCAocGFyYW1zX2J1 ZmZlciwgc2l6ZW9mIChwYXJhbXNfYnVmZmVyKSk7Ci0KLS0gIHBhcmFtc1swXSA9IHNwYV9wb2Rf YnVpbGRlcl9vYmplY3QgKAotKyAgcGFyYW1zWzBdID0gc3BhX3BvZF9idWlsZGVyX2FkZF9vYmpl Y3QgKAotICAgICAmcG9kX2J1aWxkZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUtPnBhcmFtLmlkQnVm ZmVycywgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5CdWZmZXJzLAotLSAgICAiOiIsIHBp cGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuc2l6ZSwgImkiLCBzaXplLAotLSAgICAiOiIsIHBp cGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuc3RyaWRlLCAiaSIsIHN0cmlkZSwKLS0gICAgIjoi LCBwaXBld2lyZV90eXBlLT5wYXJhbV9idWZmZXJzLmJ1ZmZlcnMsICJpcnUiLCAxNiwgUFJPUF9S QU5HRSAoMiwgMTYpLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuYWxp Z24sICJpIiwgMTYpOwotLQotLSAgcGFyYW1zWzFdID0gc3BhX3BvZF9idWlsZGVyX29iamVjdCAo Ci0rICAgIFNQQV9UWVBFX09CSkVDVF9QYXJhbUJ1ZmZlcnMsIFNQQV9QQVJBTV9CdWZmZXJzLAot KyAgICBTUEFfUEFSQU1fQlVGRkVSU19idWZmZXJzLCBTUEFfUE9EX0NIT0lDRV9SQU5HRV9JbnQg KDE2LCAyLCAxNiksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX2Jsb2NrcywgU1BBX1BPRF9JbnQg KDEpLAotKyAgICBTUEFfUEFSQU1fQlVGRkVSU19zaXplLCBTUEFfUE9EX0ludCAoc2l6ZSksCi0r ICAgIFNQQV9QQVJBTV9CVUZGRVJTX3N0cmlkZSwgU1BBX1BPRF9JbnQgKHN0cmlkZSksCi0rICAg IFNQQV9QQVJBTV9CVUZGRVJTX2FsaWduLCBTUEFfUE9EX0ludCAoMTYpKTsKLSsKLSsgIHBhcmFt c1sxXSA9IHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0ICgKLSAgICAgJnBvZF9idWlsZGVyLAot LSAgICBwaXBld2lyZV90eXBlLT5wYXJhbS5pZE1ldGEsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX21l dGEuTWV0YSwKLS0gICAgIjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLnR5cGUsICJJIiwg cGlwZXdpcmVfdHlwZS0+bWV0YS5WaWRlb0Nyb3AsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+ cGFyYW1fbWV0YS5zaXplLCAiaSIsIHNpemVvZiAoc3RydWN0IHNwYV9tZXRhX3ZpZGVvX2Nyb3Ap KTsKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtTWV0YSwgU1BBX1BBUkFNX01ldGEsCi0rICAg IFNQQV9QQVJBTV9NRVRBX3R5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRVRBX1ZpZGVvQ3JvcCksCi0r ICAgIFNQQV9QQVJBTV9NRVRBX3NpemUsIFNQQV9QT0RfSW50IChzaXplb2YgKHN0cnVjdCBzcGFf bWV0YV9yZWdpb24pKSk7Ci0KLS0gIHBhcmFtc1syXSA9IHNwYV9wb2RfYnVpbGRlcl9vYmplY3Qg KAotKyAgcGFyYW1zWzJdID0gc3BhX3BvZF9idWlsZGVyX2FkZF9vYmplY3QgKAotICAgICAmcG9k X2J1aWxkZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUtPnBhcmFtLmlkTWV0YSwgcGlwZXdpcmVfdHlw ZS0+cGFyYW1fbWV0YS5NZXRhLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX21ldGEu dHlwZSwgIkkiLCBwcml2LT5zcGFfdHlwZS5tZXRhX2N1cnNvciwKLS0gICAgIjoiLCBwaXBld2ly ZV90eXBlLT5wYXJhbV9tZXRhLnNpemUsICJpIiwgQ1VSU09SX01FVEFfU0laRSAoNjQsIDY0KSk7 Ci0rICAgIFNQQV9UWVBFX09CSkVDVF9QYXJhbU1ldGEsIFNQQV9QQVJBTV9NZXRhLAotKyAgICBT UEFfUEFSQU1fTUVUQV90eXBlLCBTUEFfUE9EX0lkIChTUEFfTUVUQV9DdXJzb3IpLAotKyAgICBT UEFfUEFSQU1fTUVUQV9zaXplLCBTUEFfUE9EX0ludCAoQ1VSU09SX01FVEFfU0laRSAoNjQsIDY0 KSkpOwotCi0tICBwd19zdHJlYW1fZmluaXNoX2Zvcm1hdCAocHJpdi0+cGlwZXdpcmVfc3RyZWFt LCAwLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgR19OX0VMRU1FTlRTIChw YXJhbXMpKTsKLSsgIHB3X3N0cmVhbV91cGRhdGVfcGFyYW1zIChwcml2LT5waXBld2lyZV9zdHJl YW0sIHBhcmFtcywgR19OX0VMRU1FTlRTIChwYXJhbXMpKTsKLSB9Ci0KLSBzdGF0aWMgY29uc3Qg c3RydWN0IHB3X3N0cmVhbV9ldmVudHMgc3RyZWFtX2V2ZW50cyA9IHsKLSAgIFBXX1ZFUlNJT05f U1RSRUFNX0VWRU5UUywKLSAgIC5zdGF0ZV9jaGFuZ2VkID0gb25fc3RyZWFtX3N0YXRlX2NoYW5n ZWQsCi0tICAuZm9ybWF0X2NoYW5nZWQgPSBvbl9zdHJlYW1fZm9ybWF0X2NoYW5nZWQsCi0rICAu cGFyYW1fY2hhbmdlZCA9IG9uX3N0cmVhbV9wYXJhbV9jaGFuZ2VkLAotIH07Ci0KLSBzdGF0aWMg c3RydWN0IHB3X3N0cmVhbSAqCi1AQCAtNjUyLDggKzYzNCw2IEBAIGNyZWF0ZV9waXBld2lyZV9z dHJlYW0gKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICAqc3JjLAotICAgdWludDhfdCBidWZmZXJb MTAyNF07Ci0gICBzdHJ1Y3Qgc3BhX3BvZF9idWlsZGVyIHBvZF9idWlsZGVyID0KLSAgICAgU1BB X1BPRF9CVUlMREVSX0lOSVQgKGJ1ZmZlciwgc2l6ZW9mIChidWZmZXIpKTsKLS0gIE1ldGFTcGFU eXBlICpzcGFfdHlwZSA9ICZwcml2LT5zcGFfdHlwZTsKLS0gIHN0cnVjdCBwd190eXBlICpwaXBl d2lyZV90eXBlID0gcHJpdi0+cGlwZXdpcmVfdHlwZTsKLSAgIGZsb2F0IGZyYW1lX3JhdGU7Ci0g ICBNZXRhRnJhY3Rpb24gZnJhbWVfcmF0ZV9mcmFjdGlvbjsKLSAgIHN0cnVjdCBzcGFfZnJhY3Rp b24gbWF4X2ZyYW1lcmF0ZTsKLUBAIC02NjEsNyArNjQxLDkgQEAgY3JlYXRlX3BpcGV3aXJlX3N0 cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0gICBjb25zdCBzdHJ1Y3Qgc3Bh X3BvZCAqcGFyYW1zWzFdOwotICAgaW50IHJlc3VsdDsKLQotLSAgcGlwZXdpcmVfc3RyZWFtID0g cHdfc3RyZWFtX25ldyAocHJpdi0+cGlwZXdpcmVfcmVtb3RlLAotKyAgcHJpdi0+bm9kZV9pZCA9 IFNQQV9JRF9JTlZBTElEOwotKwotKyAgcGlwZXdpcmVfc3RyZWFtID0gcHdfc3RyZWFtX25ldyAo cHJpdi0+cGlwZXdpcmVfY29yZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJtZXRhLXNjcmVlbi1jYXN0LXNyYyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMKTsKLSAgIGlmICghcGlwZXdpcmVfc3RyZWFtKQotQEAgLTY4MiwxNyArNjY0LDE3 IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICAqc3Jj LAotICAgbWF4X2ZyYW1lcmF0ZSA9IFNQQV9GUkFDVElPTiAoZnJhbWVfcmF0ZV9mcmFjdGlvbi5u dW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZV9yYXRlX2ZyYWN0aW9u LmRlbm9tKTsKLQotLSAgcGFyYW1zWzBdID0gc3BhX3BvZF9idWlsZGVyX29iamVjdCAoCi0rICBw YXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVjdCAoCi0gICAgICZwb2RfYnVpbGRl ciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRFbnVtRm9ybWF0LCBwaXBld2lyZV90eXBl LT5zcGFfZm9ybWF0LAotLSAgICAiSSIsIHNwYV90eXBlLT5tZWRpYV90eXBlLnZpZGVvLAotLSAg ICAiSSIsIHNwYV90eXBlLT5tZWRpYV9zdWJ0eXBlLnJhdywKLS0gICAgIjoiLCBzcGFfdHlwZS0+ Zm9ybWF0X3ZpZGVvLmZvcm1hdCwgIkkiLCBzcGFfdHlwZS0+dmlkZW9fZm9ybWF0LkJHUngsCi0t ICAgICI6Iiwgc3BhX3R5cGUtPmZvcm1hdF92aWRlby5zaXplLCAiUiIsICZTUEFfUkVDVEFOR0xF IChwcml2LT5zdHJlYW1fd2lkdGgsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5zdHJlYW1faGVpZ2h0KSwKLS0gICAgIjoi LCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLmZyYW1lcmF0ZSwgIkYiLCAmU1BBX0ZSQUNUSU9OICgw LCAxKSwKLS0gICAgIjoiLCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLm1heF9mcmFtZXJhdGUsICJG cnUiLCAmbWF4X2ZyYW1lcmF0ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQUk9QX1JBTkdFICgmbWluX2ZyYW1lcmF0ZSwKLSsgICAgU1BB X1RZUEVfT0JKRUNUX0Zvcm1hdCwgU1BBX1BBUkFNX0VudW1Gb3JtYXQsCi0rICAgIFNQQV9GT1JN QVRfbWVkaWFUeXBlLCBTUEFfUE9EX0lkIChTUEFfTUVESUFfVFlQRV92aWRlbyksCi0rICAgIFNQ QV9GT1JNQVRfbWVkaWFTdWJ0eXBlLCBTUEFfUE9EX0lkIChTUEFfTUVESUFfU1VCVFlQRV9yYXcp LAotKyAgICBTUEFfRk9STUFUX1ZJREVPX2Zvcm1hdCwgU1BBX1BPRF9JZCAoU1BBX1ZJREVPX0ZP Uk1BVF9CR1J4KSwKLSsgICAgU1BBX0ZPUk1BVF9WSURFT19zaXplLCBTUEFfUE9EX1JlY3Rhbmds ZSAoJlNQQV9SRUNUQU5HTEUgKHByaXYtPnN0cmVhbV93aWR0aCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPnN0cmVh bV9oZWlnaHQpKSwKLSsgICAgU1BBX0ZPUk1BVF9WSURFT19mcmFtZXJhdGUsIFNQQV9QT0RfRnJh Y3Rpb24gKCZTUEFfRlJBQ1RJT04gKDAsIDEpKSwKLSsgICAgU1BBX0ZPUk1BVF9WSURFT19tYXhG cmFtZXJhdGUsIFNQQV9QT0RfQ0hPSUNFX1JBTkdFX0ZyYWN0aW9uICgmbWF4X2ZyYW1lcmF0ZSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmbWluX2ZyYW1lcmF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWF4X2ZyYW1lcmF0ZSkpOwot Ci0gICBwd19zdHJlYW1fYWRkX2xpc3RlbmVyIChwaXBld2lyZV9zdHJlYW0sCi1AQCAtNzAyLDcg KzY4NCw3IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3Jj ICAqc3JjLAotCi0gICByZXN1bHQgPSBwd19zdHJlYW1fY29ubmVjdCAocGlwZXdpcmVfc3RyZWFt LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBXX0RJUkVDVElPTl9PVVRQVVQsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTUEFfSURfSU5WQUxJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoUFdfU1RSRUFNX0ZMQUdfRFJJVkVSIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUFdfU1RSRUFNX0ZMQUdfTUFQX0JVRkZFUlMpLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBhcmFtcywgR19OX0VMRU1FTlRTIChwYXJhbXMpKTsKLUBAIC03MTcsNDAgKzY5OSwx OCBAQCBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAgKnNy YywKLSB9Ci0KLSBzdGF0aWMgdm9pZAotLW9uX3N0YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAg ICAgICAgICpkYXRhLAotLSAgICAgICAgICAgICAgICAgIGVudW0gcHdfcmVtb3RlX3N0YXRlICBv bGQsCi0tICAgICAgICAgICAgICAgICAgZW51bSBwd19yZW1vdGVfc3RhdGUgIHN0YXRlLAotLSAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAgICplcnJvcl9tZXNzYWdlKQotK29u X2NvcmVfZXJyb3IgKHZvaWQgICAgICAgKmRhdGEsCi0rICAgICAgICAgICAgICAgdWludDMyX3Qg ICAgaWQsCi0rCSAgICAgICBpbnQgICAgICAgICBzZXEsCi0rCSAgICAgICBpbnQgICAgICAgICBy ZXMsCi0rCSAgICAgICBjb25zdCBjaGFyICptZXNzYWdlKQotIHsKLSAgIE1ldGFTY3JlZW5DYXN0 U3RyZWFtU3JjICpzcmMgPSBkYXRhOwotLSAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRl ICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9w cml2YXRlIChzcmMpOwotLSAgc3RydWN0IHB3X3N0cmVhbSAqcGlwZXdpcmVfc3RyZWFtOwotLSAg R0Vycm9yICplcnJvciA9IE5VTEw7Ci0KLS0gIHN3aXRjaCAoc3RhdGUpCi0tICAgIHsKLS0gICAg Y2FzZSBQV19SRU1PVEVfU1RBVEVfRVJST1I6Ci0tICAgICAgZ193YXJuaW5nICgicGlwZXdpcmUg cmVtb3RlIGVycm9yOiAlc1xuIiwgZXJyb3JfbWVzc2FnZSk7Ci0tICAgICAgbWV0YV9zY3JlZW5f Y2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0tICAgICAgYnJlYWs7Ci0tICAg IGNhc2UgUFdfUkVNT1RFX1NUQVRFX0NPTk5FQ1RFRDoKLS0gICAgICBwaXBld2lyZV9zdHJlYW0g PSBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChzcmMsICZlcnJvcik7Ci0tICAgICAgaWYgKCFwaXBl d2lyZV9zdHJlYW0pCi0tICAgICAgICB7Ci0tICAgICAgICAgIGdfd2FybmluZyAoIkNvdWxkIG5v dCBjcmVhdGUgcGlwZXdpcmUgc3RyZWFtOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKLS0gICAgICAg ICAgZ19lcnJvcl9mcmVlIChlcnJvcik7Ci0tICAgICAgICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3Ry ZWFtX3NyY19ub3RpZnlfY2xvc2VkIChzcmMpOwotLSAgICAgICAgfQotLSAgICAgIGVsc2UKLS0g ICAgICAgIHsKLS0gICAgICAgICAgcHJpdi0+cGlwZXdpcmVfc3RyZWFtID0gcGlwZXdpcmVfc3Ry ZWFtOwotLSAgICAgICAgfQotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIFBXX1JFTU9URV9TVEFU RV9VTkNPTk5FQ1RFRDoKLS0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfQ09OTkVDVElORzoKLS0g ICAgICBicmVhazsKLS0gICAgfQotKyAgZ193YXJuaW5nICgicGlwZXdpcmUgcmVtb3RlIGVycm9y OiBpZDoldSAlcyIsIGlkLCBtZXNzYWdlKTsKLSsKLSsgIGlmIChpZCA9PSBQV19JRF9DT1JFICYm IHJlcyA9PSAtRVBJUEUpCi0rICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19ub3RpZnlf Y2xvc2VkIChzcmMpOwotIH0KLQotIHN0YXRpYyBnYm9vbGVhbgotQEAgLTc5MywxNyArNzUzLDYg QEAgc3RhdGljIEdTb3VyY2VGdW5jcyBwaXBld2lyZV9zb3VyY2VfZnVuY3MgPQotICAgcGlwZXdp cmVfbG9vcF9zb3VyY2VfZmluYWxpemUKLSB9OwotCi0tc3RhdGljIHZvaWQKLS1pbml0X3NwYV90 eXBlIChNZXRhU3BhVHlwZSAgICAgICAgICp0eXBlLAotLSAgICAgICAgICAgICAgIHN0cnVjdCBz cGFfdHlwZV9tYXAgKm1hcCkKLS17Ci0tICBzcGFfdHlwZV9tZWRpYV90eXBlX21hcCAobWFwLCAm dHlwZS0+bWVkaWFfdHlwZSk7Ci0tICBzcGFfdHlwZV9tZWRpYV9zdWJ0eXBlX21hcCAobWFwLCAm dHlwZS0+bWVkaWFfc3VidHlwZSk7Ci0tICBzcGFfdHlwZV9mb3JtYXRfdmlkZW9fbWFwIChtYXAs ICZ0eXBlLT5mb3JtYXRfdmlkZW8pOwotLSAgc3BhX3R5cGVfdmlkZW9fZm9ybWF0X21hcCAobWFw LCAmdHlwZS0+dmlkZW9fZm9ybWF0KTsKLS0gIHR5cGUtPm1ldGFfY3Vyc29yID0gc3BhX3R5cGVf bWFwX2dldF9pZChtYXAsIFNQQV9UWVBFX01FVEFfX0N1cnNvcik7Ci0tfQotLQotIHN0YXRpYyBN ZXRhUGlwZVdpcmVTb3VyY2UgKgotIGNyZWF0ZV9waXBld2lyZV9zb3VyY2UgKHZvaWQpCi0gewot QEAgLTgyOSw5ICs3NzgsOSBAQCBjcmVhdGVfcGlwZXdpcmVfc291cmNlICh2b2lkKQotICAgcmV0 dXJuIHBpcGV3aXJlX3NvdXJjZTsKLSB9Ci0KLS1zdGF0aWMgY29uc3Qgc3RydWN0IHB3X3JlbW90 ZV9ldmVudHMgcmVtb3RlX2V2ZW50cyA9IHsKLS0gIFBXX1ZFUlNJT05fUkVNT1RFX0VWRU5UUywK LS0gIC5zdGF0ZV9jaGFuZ2VkID0gb25fc3RhdGVfY2hhbmdlZCwKLStzdGF0aWMgY29uc3Qgc3Ry dWN0IHB3X2NvcmVfZXZlbnRzIGNvcmVfZXZlbnRzID0gewotKyAgUFdfVkVSU0lPTl9DT1JFX0VW RU5UUywKLSsgIC5lcnJvciA9IG9uX2NvcmVfZXJyb3IsCi0gfTsKLQotIHN0YXRpYyBnYm9vbGVh bgotQEAgLTg1MSwzNyArODAwLDMxIEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19pbml0 YWJsZV9pbml0IChHSW5pdGFibGUgICAgICppbml0YWJsZSwKLSAgICAgICByZXR1cm4gRkFMU0U7 Ci0gICAgIH0KLQotLSAgcHJpdi0+cGlwZXdpcmVfY29yZSA9IHB3X2NvcmVfbmV3IChwcml2LT5w aXBld2lyZV9zb3VyY2UtPnBpcGV3aXJlX2xvb3AsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwpOwotLSAgaWYgKCFwcml2LT5waXBld2lyZV9jb3JlKQotKyAgcHJp di0+cGlwZXdpcmVfY29udGV4dCA9IHB3X2NvbnRleHRfbmV3IChwcml2LT5waXBld2lyZV9zb3Vy Y2UtPnBpcGV3aXJlX2xvb3AsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE5VTEwsIDApOwotKyAgaWYgKCFwcml2LT5waXBld2lyZV9jb250ZXh0KQotICAgICB7 Ci0gICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0ZBSUxF RCwKLS0gICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBjcmVhdGUgcGlwZXdpcmUgY29yZSIp OwotKyAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSBwaXBld2lyZSBjb250ZXh0 Iik7Ci0gICAgICAgcmV0dXJuIEZBTFNFOwotICAgICB9Ci0KLS0gIHByaXYtPnBpcGV3aXJlX3Jl bW90ZSA9IHB3X3JlbW90ZV9uZXcgKHByaXYtPnBpcGV3aXJlX2NvcmUsIE5VTEwsIDApOwotLSAg aWYgKCFwcml2LT5waXBld2lyZV9yZW1vdGUpCi0rICBwcml2LT5waXBld2lyZV9jb3JlID0gcHdf Y29udGV4dF9jb25uZWN0IChwcml2LT5waXBld2lyZV9jb250ZXh0LCBOVUxMLCAwKTsKLSsgIGlm ICghcHJpdi0+cGlwZXdpcmVfY29yZSkKLSAgICAgewotICAgICAgIGdfc2V0X2Vycm9yIChlcnJv ciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9GQUlMRUQsCi0tICAgICAgICAgICAgICAgICAgICJD b3VsZG4ndCBjcmVhdCBwaXBld2lyZSByZW1vdGUiKTsKLSsgICAgICAgICAgICAgICAgICAgIkNv dWxkbid0IGNvbm5lY3QgcGlwZXdpcmUgY29udGV4dCIpOwotICAgICAgIHJldHVybiBGQUxTRTsK LSAgICAgfQotCi0tICBwd19yZW1vdGVfYWRkX2xpc3RlbmVyIChwcml2LT5waXBld2lyZV9yZW1v dGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+cGlwZXdpcmVfcmVtb3RlX2xp c3RlbmVyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlbW90ZV9ldmVudHMsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICBzcmMpOwotKyAgcHdfY29yZV9hZGRfbGlzdGVuZXIgKHBy aXYtPnBpcGV3aXJlX2NvcmUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgJnByaXYtPnBpcGV3 aXJlX2NvcmVfbGlzdGVuZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgJmNvcmVfZXZlbnRz LAotKyAgICAgICAgICAgICAgICAgICAgICAgIHNyYyk7Ci0KLS0gIHByaXYtPnBpcGV3aXJlX3R5 cGUgPSBwd19jb3JlX2dldF90eXBlIChwcml2LT5waXBld2lyZV9jb3JlKTsKLS0gIGluaXRfc3Bh X3R5cGUgKCZwcml2LT5zcGFfdHlwZSwgcHJpdi0+cGlwZXdpcmVfdHlwZS0+bWFwKTsKLS0KLS0g IGlmIChwd19yZW1vdGVfY29ubmVjdCAocHJpdi0+cGlwZXdpcmVfcmVtb3RlKSAhPSAwKQotLSAg ICB7Ci0tICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0ZB SUxFRCwKLS0gICAgICAgICAgICAgICAgICAgIkNvdWxkbid0IGNvbm5lY3QgcGlwZXdpcmUgcmVt b3RlIik7Ci0tICAgICAgcmV0dXJuIEZBTFNFOwotLSAgICB9Ci0rICBwcml2LT5waXBld2lyZV9z dHJlYW0gPSBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChzcmMsIGVycm9yKTsKLSsgIGlmICghcHJp di0+cGlwZXdpcmVfc3RyZWFtKQotKyAgICByZXR1cm4gRkFMU0U7Ci0KLSAgIHJldHVybiBUUlVF OwotIH0KLUBAIC05MTIsOCArODU1LDggQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2Zp bmFsaXplIChHT2JqZWN0ICpvYmplY3QpCi0gICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3Ny Y19kaXNhYmxlIChzcmMpOwotCi0gICBnX2NsZWFyX3BvaW50ZXIgKCZwcml2LT5waXBld2lyZV9z dHJlYW0sIHB3X3N0cmVhbV9kZXN0cm95KTsKLS0gIGdfY2xlYXJfcG9pbnRlciAoJnByaXYtPnBp cGV3aXJlX3JlbW90ZSwgcHdfcmVtb3RlX2Rlc3Ryb3kpOwotLSAgZ19jbGVhcl9wb2ludGVyICgm cHJpdi0+cGlwZXdpcmVfY29yZSwgcHdfY29yZV9kZXN0cm95KTsKLSsgIGdfY2xlYXJfcG9pbnRl ciAoJnByaXYtPnBpcGV3aXJlX2NvcmUsIHB3X2NvcmVfZGlzY29ubmVjdCk7Ci0rICBnX2NsZWFy X3BvaW50ZXIgKCZwcml2LT5waXBld2lyZV9jb250ZXh0LCBwd19jb250ZXh0X2Rlc3Ryb3kpOwot ICAgZ19zb3VyY2VfZGVzdHJveSAoJnByaXYtPnBpcGV3aXJlX3NvdXJjZS0+YmFzZSk7Ci0KLSAg IEdfT0JKRUNUX0NMQVNTIChtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfcGFyZW50X2NsYXNz KS0+ZmluYWxpemUgKG9iamVjdCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL211dHRlci90ZW1wbGF0 ZSBiL3NyY3BrZ3MvbXV0dGVyL3RlbXBsYXRlCmluZGV4IDgwNmEzYmVmOWYwLi40NzkyODQwMzRl YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9tdXR0ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tdXR0 ZXIvdGVtcGxhdGUKQEAgLTEsMzQgKzEsNDAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ211dHRl cicKIHBrZ25hbWU9bXV0dGVyCi12ZXJzaW9uPTMuMzQuMQotcmV2aXNpb249MwordmVyc2lvbj0z LjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24K IGNvbmZpZ3VyZV9hcmdzPSItRGVnbF9kZXZpY2U9dHJ1ZSAtRHVkZXY9dHJ1ZSAtRG5hdGl2ZV9i YWNrZW5kPXRydWUKLSAtRHByb2ZpbGVyPWZhbHNlIC1EaW50cm9zcGVjdGlvbj10cnVlIC1EeHdh eWxhbmRfcGF0aD0vdXNyL2Jpbi9Yd2F5bGFuZCIKKyAtRHByb2ZpbGVyPWZhbHNlIC1EaW50cm9z cGVjdGlvbj10cnVlIC1EeHdheWxhbmRfcGF0aD0vdXNyL2Jpbi9Yd2F5bGFuZAorIC1EeHdheWxh bmRfaW5pdGZkPWRpc2FibGVkIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwg cGtnLWNvbmZpZyB6ZW5pdHkgd2F5bGFuZC1kZXZlbCB4b3JnLXNlcnZlciIKLW1ha2VkZXBlbmRz PSJlbG9naW5kLWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBqc29uLWdsaWIt ZGV2ZWwKLSBsaWJnbGliLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliY2FuYmVy cmEtZGV2ZWwgbGliaW5wdXQtZGV2ZWwKLSBNZXNhTGliLWRldmVsIHBpcGV3aXJlLWRldmVsIHN0 YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsIHdheWxhbmQtcHJvdG9jb2xzCi0gZ25vbWUtc2V0dGlu Z3MtZGFlbW9uLWRldmVsIgotZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIHplbml0eSIKK21h a2VkZXBlbmRzPSJlbG9naW5kLWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBn cmFwaGVuZS1kZXZlbAorIGpzb24tZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYlNNLWRldmVs IGxpYlh0c3QtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwKKyBsaWJpbnB1dC1kZXZlbCBNZXNhTGli LWRldmVsIHBpcGV3aXJlLWRldmVsIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsCisgd2F5bGFu ZC1wcm90b2NvbHMgZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIgorZGVwZW5kcz0iZ3NldHRp bmdzLWRlc2t0b3Atc2NoZW1hcyBkZXNrdG9wLWZpbGUtdXRpbHMgemVuaXR5Igogc2hvcnRfZGVz Yz0iTGlnaHR3ZWlnaHQgR1RLKzMgd2luZG93IG1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJv bGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL011dHRlci8iCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iYTE4MjZjZjg4YmRiODFlNjM5NDNjYWMwMTRh OGU4YmNmMzVlYzE3OGM1MzI2NDQwMWY5YzcyZmRlYWI3NThlCi1zaGxpYl9wcm92aWRlcz0ibGli bXV0dGVyLWNsdXR0ZXItNS5zbyBsaWJtdXR0ZXItY29nbC01LnNvCi0gbGlibXV0dGVyLWNvZ2wt cGFuZ28tNS5zbyBsaWJtdXR0ZXItY29nbC1wYXRoLTUuc28iCitjaGVja3N1bT0wNThlZDEzZDEw MjA4NWQzZTliNmZhNTU2NGM2NjA1MGE0NzhjMzY0YTBjYzU1YmM4NDRmZWEzZGRjZDkwZWFiCitz aGxpYl9wcm92aWRlcz0ibGlibXV0dGVyLWNsdXR0ZXItNy5zbyBsaWJtdXR0ZXItY29nbC03LnNv CisgbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5zbyBsaWJtdXR0ZXItY29nbC1wYXRoLTcuc28iCisK KyMgbmVlZHMgWAorZG9fY2hlY2soKSB7CisJOgorfQogCiBtdXR0ZXItZGV2ZWxfcGFja2FnZSgp IHsKLQlkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGd0ayszLWRldmVsIGNsdXR0 ZXItZGV2ZWwgbGliWDExLWRldmVsCi0JIGxpYlh0c3QtZGV2ZWwgbXV0dGVyLSR7dmVyc2lvbn1f JHtyZXZpc2lvbn0iCisJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ3JhcGhlbmUtZGV2ZWwgY2x1dHRl ci1kZXZlbAorCSBsaWJYMTEtZGV2ZWwgbGliWHRzdC1kZXZlbCBtdXR0ZXItJHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJcGtnX2lu c3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmln Ci0JCXZtb3ZlICJ1c3IvbGliL211dHRlci01LyouZ2lyIgorCQl2bW92ZSAidXNyL2xpYi9tdXR0 ZXItNy8qLmdpciIKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAl9CiB9CgpGcm9tIDc0MzE0NWQ4 NWY1NzllMDgxMjU3ZDVhNzAyZTU1MmEzZTk3MzJjZWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEz IEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMzkvMTA1XSBjaGVlc2U6 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUgfCAxNCArKysr Ky0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2hlZXNl L3RlbXBsYXRlCmluZGV4IDdhNTZiYTAzOWZiLi5mYWEzMjllZTBlNCAxMDA2NDQKLS0tIGEvc3Jj cGtncy9jaGVlc2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUKQEAgLTEs MTEgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NoZWVzZScKIHBrZ25hbWU9Y2hlZXNl Ci12ZXJzaW9uPTMuMzQuMAordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxl PW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGd0a19kb2M9JCh2 b3B0X2lmIGd0a19kb2MgJ3RydWUnICdmYWxzZScpCi0gLURtYW49JCh2b3B0X2lmIGd0a19kb2Mg J3RydWUnICdmYWxzZScpIgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29sIGd0a19kb2MgZ3Rr X2RvYykgJCh2b3B0X2Jvb2wgZ3RrX2RvYyBtYW4pIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0 IGdkay1waXhidWYgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSBsaWJyc3ZnCiAg JCh2b3B0X2lmIGd0a19kb2MgJ2d0ay1kb2MnKSAkKHZvcHRfaWYgZ2lyICdnb2JqZWN0LWludHJv c3BlY3Rpb24nKSIKIG1ha2VkZXBlbmRzPSJjbHV0dGVyLWdzdDMtZGV2ZWwgY2x1dHRlci1ndGst ZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbApAQCAtMTcsNyArMTYsNyBAQCBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQ2hlZXNlIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDE4NjU2MDBhYzg4MDEyZTEzNmIxZWMzZGI3 MmE0NjM0ZjU3YmMyMDM1ODk1Mjc3YmU3OTJiYjA3ODYyN2U3MworY2hlY2tzdW09ODhkMjczMmI0 MjFiOTAzMTEwYTI2MjhkYjI1YzBkNjFlMjE5YzQyYmRmYjU5NzExNTEwMzNmYmE5NWE4ZDE2Zgog CiBidWlsZF9vcHRpb25zPSJnaXIgZ3RrX2RvYyIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2ly IgpAQCAtMzcsMTEgKzM2LDggQEAgbGliY2hlZXNlX3BhY2thZ2UoKSB7CiB9CiAKIGNoZWVzZS1k ZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImdzdC1wbHVnaW5zLWJhZDEtZGV2ZWwKLQkJIGNs dXR0ZXItZ3N0My1kZXZlbAotCQkgY2x1dHRlci1ndGstZGV2ZWwKLQkJIGxpYmNhbmJlcnJhLWRl dmVsCi0JCSBsaWJjaGVlc2U+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5kcz0iZ3N0 LXBsdWdpbnMtYmFkMS1kZXZlbCBjbHV0dGVyLWdzdDMtZGV2ZWwgY2x1dHRlci1ndGstZGV2ZWwK KwkgbGliY2FuYmVycmEtZGV2ZWwgbGliY2hlZXNlPj0ke3ZlcnNpb259XyR7cmV2aXNpb259Igog CXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJ dm1vdmUgdXNyL2luY2x1ZGUKCkZyb20gMWM0ODVhOGVjYTBhZTViNzliMzQwOTFiNmRmMTA0MDIz M2I4MDE5ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAK U3ViamVjdDogW1BBVENIIDA0MC8xMDVdIGV2b2x1dGlvbi1kYXRhLXNlcnZlcjogdXBkYXRlIHRv IDMuMzguMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBzcmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZSB8IDI1ICsrKysrKysr KysrKysrKy0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMTEg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMK aW5kZXggZDFmMDEwMTY2YWIuLmFlM2QzYWVmNzNiIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJz CisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTYyNiw3ICs2MjYsNyBAQCBsaWJpY2Fsc3NfY3h4LnNv LjMgbGliaWNhbC0zLjAuNF8xCiBsaWJpY2FsdmNhbC5zby4zIGxpYmljYWwtMy4wLjRfMQogbGli aWNhbC1nbGliLnNvLjMgbGliaWNhbC0zLjAuNF8xCiBsaWJjYW1lbC0xLjIuc28uNjIgZXZvbHV0 aW9uLWRhdGEtc2VydmVyLTMuMzAuMF8xCi1saWJlZGF0YXNlcnZlci0xLjIuc28uMjQgZXZvbHV0 aW9uLWRhdGEtc2VydmVyLTMuMzIuMF8xCitsaWJlZGF0YXNlcnZlci0xLjIuc28uMjUgZXZvbHV0 aW9uLWRhdGEtc2VydmVyLTMuMzcuOTBfMQogbGliZWJhY2tlbmQtMS4yLnNvLjEwIGV2b2x1dGlv bi1kYXRhLXNlcnZlci0zLjE3LjkwXzEKIGxpYmVkYXRhc2VydmVydWktMS4yLnNvLjIgZXZvbHV0 aW9uLWRhdGEtc2VydmVyLTMuMjguMF8xCiBsaWJlYm9vay1jb250YWN0cy0xLjIuc28uMyBldm9s dXRpb24tZGF0YS1zZXJ2ZXItMy4zNC4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZvbHV0aW9u LWRhdGEtc2VydmVyL3RlbXBsYXRlIGIvc3JjcGtncy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdGVt cGxhdGUKaW5kZXggZTUwMjkyYTQzZWEuLjhjY2Y5Y2I2ZWIwIDEwMDY0NAotLS0gYS9zcmNwa2dz L2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2V2b2x1dGlvbi1k YXRhLXNlcnZlci90ZW1wbGF0ZQpAQCAtMSwyOSArMSwzNCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnZXZvbHV0aW9uLWRhdGEtc2VydmVyJwogcGtnbmFtZT1ldm9sdXRpb24tZGF0YS1zZXJ2ZXIK LXZlcnNpb249My4zNi4xCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQog YnVpbGRfc3R5bGU9Y21ha2UKLWJ1aWxkX2hlbHBlcj1naXIKK2J1aWxkX2hlbHBlcj0iZ2lyIHFl bXUiCiBjb25maWd1cmVfYXJncz0iLURFTkFCTEVfVU9BPU9GRgotICQodm9wdF9pZiBnaXIgJy1E RU5BQkxFX0lOVFJPU1BFQ1RJT049T04gLURFTkFCTEVfVkFMQV9CSU5ESU5HUz1PTicgJy1ERU5B QkxFX1dFQVRIRVI9T0ZGJykiCi1ob3N0bWFrZWRlcGVuZHM9ImZsZXggZ2xpYi1kZXZlbCBncGVy ZiBpbnRsdG9vbCBwa2ctY29uZmlnIGxpYmdsaWItZGV2ZWwKLSAkKHZvcHRfaWYgZ2lyICdnb2Jq ZWN0LWludHJvc3BlY3Rpb24nKSIKLW1ha2VkZXBlbmRzPSJib29zdC1kZXZlbCBsaWJjYW5iZXJy YS1kZXZlbCBsaWJnZGF0YS1kZXZlbCAkKHZvcHRfaWYgZ2lyIGxpYmd3ZWF0aGVyLWRldmVsKQot IGxpYmljYWwtZGV2ZWwgbGlic2VjcmV0LWRldmVsIG1pdC1rcmI1LWRldmVsICQodm9wdF9pZiBn aXIgJ3ZhbGEtZGV2ZWwnKSB3ZWJraXQyZ3RrLWRldmVsIgotZGVwZW5kcz0iJCh2b3B0X2lmIGdp ciBsaWJnd2VhdGhlcikgbGlic291cC1nbm9tZSIKKyAkKHZvcHRfaWYgZ2lyICctREVOQUJMRV9J TlRST1NQRUNUSU9OPU9OIC1ERU5BQkxFX1ZBTEFfQklORElOR1M9T04nKSIKK2hvc3RtYWtlZGVw ZW5kcz0iZmxleCBnbGliLWRldmVsIGdwZXJmIGludGx0b29sIHBrZy1jb25maWcgbGliZ2xpYi1k ZXZlbCIKK21ha2VkZXBlbmRzPSJib29zdC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBsaWJnZGF0 YS1kZXZlbCBsaWJpY2FsLWRldmVsCisgbGlic2VjcmV0LWRldmVsIG1pdC1rcmI1LWRldmVsIHdl YmtpdDJndGstZGV2ZWwgbGliZ3dlYXRoZXItZGV2ZWwKKyAkKHZvcHRfaWYgZ2lyIHZhbGEtZGV2 ZWwpIgorZGVwZW5kcz0ibGliZ3dlYXRoZXIgbGlic291cC1nbm9tZSIKIHNob3J0X2Rlc2M9IkNl bnRyYWxpemVkIGFjY2VzcyB0byBhcHBvaW50bWVudHMgYW5kIGNvbnRhY3RzIgogbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4x LW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2b2x1dGlvbiIK IGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2V2b2x1 dGlvbi1kYXRhLXNlcnZlci9nbm9tZS0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT0xMzEyMmIyZWRkZGI5ODMwNjIwN2QyYTM1ZDVjY2FlMjVhOTA3MDI3NjljYTBh MGI1MTY1M2I1OTg0OTg2Nzk2CitjaGVja3N1bT0xMzY4OWE3YjU1NzY1ODA2YzRkNWYzYjA1ZWY2 YzI0YjBiZjk5NTdiOWVkOTI0MGMyZGQwOWEyY2RiMTNiMGFmCiAKIGJ1aWxkX29wdGlvbnM9Imdp ciIKIGlmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVs dD0iZ2lyIgogZmkKIAorIyBwcm9ibGVtYXRpYworZG9fY2hlY2soKSB7CisJOgorfQorCiAjIGNt YWtlIHBlcmZvbXJtcyAyIGNoZWNrcyB1c2luZyBiaW5hcnkgcnVudGltZSwgYWJvdXQgaWNvbnYg YW5kIHNmcnRpbWUuCiAjIG11c2wgKDEuMS4xNikgZG9lcyBub3Qgc3VwcG9ydCAiSVNPLTIwMjIt SlAiIGVuY29kaW5nIChzZWUgaXRzIHJvYWRtYXApLAogIyBhbHRob3VnaCBldm9sdXRpb24tZGF0 YS1zZXJ2ZXIgaXMgZmluZSB3aXRoIG11c2wuCgpGcm9tIGRiOGQ4NDgyMjhkOWY0NzU3YTZjYWE1 OWU1OTRlYWU3YTdhMmJjODggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4 OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDEvMTA1XSBmb2xrczogdXBkYXRlIHRvIDAuMTQu MAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgIHwgIDcgKysrKy0tLQogc3JjcGtncy9mb2xr cy90ZW1wbGF0ZSB8IDI4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29t bW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggYWUzZDNhZWY3M2IuLjFlM2RjMzZmM2U4 IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTgzMSw5 ICs4MzEsMTAgQEAgbGliZG1yLnNvLjAuMSBkZWVwaW4tbW92aWUtcmVib3JuLTMuMi41XzEKIGxp Ymdqcy5zby4wIGdqcy0xLjY1LjJfMQogbGlidGVsZXBhdGh5LWdsaWIuc28uMCB0ZWxlcGF0aHkt Z2xpYi0wLjE1LjVfMQogbGliYWNjb3VudHNzZXJ2aWNlLnNvLjAgYWNjb3VudHNzZXJ2aWNlLTAu Ni40XzEKLWxpYmZvbGtzLnNvLjI1IGZvbGtzLTAuOS41XzEKLWxpYmZvbGtzLXRlbGVwYXRoeS5z by4yNSBmb2xrcy0wLjkuNV8xCi1saWJmb2xrcy1lZHMuc28uMjUgZm9sa3MtMC45LjVfMQorbGli Zm9sa3Muc28uMjUgZm9sa3MtMC4xNC4wXzEKK2xpYmZvbGtzLWR1bW15LnNvLjI1IGZvbGtzLTAu MTQuMF8xCitsaWJmb2xrcy10ZWxlcGF0aHkuc28uMjUgZm9sa3MtMC4xNC4wXzEKK2xpYmZvbGtz LWVkcy5zby4yNSBmb2xrcy0wLjE0LjBfMQogbGlibmljZS5zby4xMCBsaWJuaWNlLTAuMS4wXzEK IGxpYmd1cG5wLWlnZC0xLjAuc28uNCBndXBucC1pZ2QtMC4yLjBfMQogbGlidGVsZXBhdGh5LWxv Z2dlci5zby4zIHRlbGVwYXRoeS1sb2dnZXItMC42LjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9m b2xrcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUKaW5kZXggMzMxMGM1NGZhZGQu LmIwNzZiOTRiZWEyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZvbGtzL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZm9sa3MvdGVtcGxhdGUKQEAgLTEsMjEgKzEsMjcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2ZvbGtzJwogcGtnbmFtZT1mb2xrcwotdmVyc2lvbj0wLjEzLjEKLXJldmlzaW9uPTIKK3Zl cnNpb249MC4xNC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgotYnVpbGRfaGVscGVy PWdpcgotY29uZmlndXJlX2FyZ3M9Ii1EYl9sdG89ZmFsc2UgLURsaWJzb2NpYWx3ZWItYmFja2Vu ZD1mYWxzZSIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBnbGliLWRldmVs IHZhbGEgcHl0aG9uIGdvYmplY3QtaW50cm9zcGVjdGlvbgotIGV2b2x1dGlvbi1kYXRhLXNlcnZl ci1kZXZlbCIKK2J1aWxkX2hlbHBlcj0iZ2lyIHFlbXUiCitjb25maWd1cmVfYXJncz0iLURiX2x0 bz1mYWxzZSIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBnbGliLWRldmVs IHB5dGhvbjMgcHl0aG9uMy1kYnVzbW9jaworIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbCAk KHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9InJlYWRsaW5lLWRldmVsIHRlbGVwYXRo eS1nbGliLWRldmVsIHplaXRnZWlzdC1kZXZlbAotIGxpYmdlZTA4LWRldmVsIGV2b2x1dGlvbi1k YXRhLXNlcnZlci1kZXZlbCB0cmFja2VyLWRldmVsIgorIGxpYmdlZTA4LWRldmVsIGV2b2x1dGlv bi1kYXRhLXNlcnZlci1kZXZlbCB0cmFja2VyLWRldmVsCisgJCh2b3B0X2lmIGdpciB2YWxhLWRl dmVsKSIKIGRlcGVuZHM9InplaXRnZWlzdCIKIHNob3J0X2Rlc2M9IkdPYmplY3QgTGlicmFyeSB0 byBhZ2dyZWdhdGUgcGVvcGxlIGludG8gbWV0YWNvbnRhY3RzIgogbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvRm9sa3MiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zZGYxYzY2M2I4MmZlMjExYWVhZDJiMzFjYWUx ZmM0MWQxMjRlODU0MzYzNzU3NjJmNjc0NWM0NWJhNDZhYTVkCitjaGVja3N1bT1kNmU3NzhkYTYz N2QzYjMzZmQ5YTZiNDUxMTVlODE1N2Q4ODY4MjExZGMwOGI5NDNkMTA3NWI1ZWI3MjgyYmI5CisK K2J1aWxkX29wdGlvbnM9ImdpciIKK2lmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCWJ1 aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgorZmkKIAogZm9sa3MtZGV2ZWxfcGFja2FnZSgpIHsK IAlkZXBlbmRzPSIke21ha2VkZXBlbmRzfSAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCkBAIC0yNCw3ICszMCw5IEBAIGZvbGtzLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3Zl IHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlICJ1c3IvbGli Lyouc28iCi0JCXZtb3ZlIHVzci9zaGFyZS92YWxhCi0JCXZtb3ZlIHVzci9zaGFyZS9naXItMS4w CisJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCisJCQl2bW92ZSB1c3Ivc2hhcmUv Z2lyLTEuMAorCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKKwkJZmkKIAl9CiB9CgpGcm9tIDBkODM1 YWQ4Nzk3MThlZDY5MGJlOTExOWQzYjAyYmI2YzE1NDY1ODUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDIvMTA1XSBnbm9t ZS1vbmxpbmUtYWNjb3VudHM6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZ25vbWUt b25saW5lLWFjY291bnRzL3RlbXBsYXRlIHwgMTQgKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA2IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLW9ubGluZS1h Y2NvdW50cy90ZW1wbGF0ZQppbmRleCAxOTNhN2Y5YjQzZi4uMjk5ODBkNDM0MjQgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZ25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Z25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtb25saW5lLWFjY291bnRzJwogcGtnbmFtZT1nbm9tZS1vbmxpbmUt YWNjb3VudHMKLXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuOTAKK3Jl dmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hlbHBlcj0iZ2lyIgog Y29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pCkBAIC0xMSw3 ICsxMSw3IEBAIGNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9u KQogIC0tZW5hYmxlLW93bmNsb3VkIC0tZW5hYmxlLXdpbmRvd3MtbGl2ZSAtLWVuYWJsZS1wb2Nr ZXQKICAtLWVuYWJsZS1sYXN0Zm0gLS1lbmFibGUtbWVkaWEtc2VydmVyIgogaG9zdG1ha2VkZXBl bmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0LWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtY29tbW9uCi0g bGlieHNsdCBwa2ctY29uZmlnICQodm9wdF9pZiB2YWxhIHZhbGEpIgorIGxpYnhzbHQgcGtnLWNv bmZpZyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9Imdjci1kZXZlbCBndGsrMy1k ZXZlbCBqc29uLWdsaWItZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnNlY3JldC1kZXZlbAogIGxp YnNvdXAtZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgcmVzdC1kZXZlbCB0ZWxlcGF0aHktZ2xpYi1kZXZl bCB3ZWJraXQyZ3RrLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1pY29uLXRoZW1lIgpAQCAtMjAs MTAgKzIwLDEwIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9y Zz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2ku Z25vbWUub3JnL1Byb2plY3RzL0dub21lT25saW5lQWNjb3VudHMiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT0xYzhmNjI5OTA4MzNjYTQxMTg4ZGJiODBjNWU5OWQ5OWI1N2E2MjYw OGNhNjc1YmJjZDM3YmMyMjQ0NzQyZjJlCitjaGVja3N1bT05ZjY5ODJjODk2ZTYyMzVhMmU4NWI4 YTQ5N2M3YmY2M2E0YTI4OGI1Njc4ZGI0MGRjMzczNTE1ZWZiZWRiMWJiCiAKLWJ1aWxkX29wdGlv bnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxkX29w dGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBnbm9tZS1vbmxpbmUt YWNjb3VudHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJndGsrMy1kZXZlbCAke3NvdXJj ZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0zNSw4ICszNSw2IEBAIGdub21lLW9u bGluZS1hY2NvdW50cy1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvbGliL2dvYS0xLjAK IAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9n aXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJdm1v dmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDdiYTAxZGNkYjRkZDMzY2JiYWU3ZTk3 ZTJkOTQ1M2Q1ZWFhMDBjNmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjEw OjQ0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDMvMTA1XSBndmZzOiB1cGRhdGUgdG8gMS40Ni4w CgotLS0KIHNyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2d2ZnMv dGVtcGxhdGUgYi9zcmNwa2dzL2d2ZnMvdGVtcGxhdGUKaW5kZXggMTI3YTA1Nzc5MDEuLjYxMDcw MjNjMjFlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2d2ZnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n dmZzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3ZmcycK IHBrZ25hbWU9Z3ZmcwotdmVyc2lvbj0xLjQ0LjEKK3ZlcnNpb249MS40Ni4wCiByZXZpc2lvbj0x CiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZHVzZXJ1bml0ZGly PW5vIC1EdG1wZmlsZXNkaXI9bm8gLURsb2dpbmQ9ZmFsc2UKQEAgLTIwLDcgKzIwLDcgQEAgbGlj ZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9y Zy9Qcm9qZWN0cy9ndmZzIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05P TUUvZ3Zmcy9yYXcvZ25vbWUtMy0zNC9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09NTBlZjMyNDVkMWIwMzY2NmE0MDQ1NTEwOTE2OWEyYTFiZDUxNDE5ZmQyZDUxZjlmYTZj ZmQ0Zjg5ZjA0ZmI0NgorY2hlY2tzdW09NzhiYTczYTZkYTA5YTIxY2UzYWNjNzc2YjQ2YzI2ZGQ1 YmVhMjE2NDYzYTY1ZDY1YjQwNTJhNTdmNWQ5NzBlOQogCiAjIE1hbnVhbGx5IGRlY2xhcmUgc2hs aWJzIHVzZWQgYnkgdGhlIHN1YnBrZ3MuCiBzaGxpYl9wcm92aWRlcz0ibGliZ3Zmc2NvbW1vbi5z byBsaWJndmZzZGFlbW9uLnNvIgoKRnJvbSA0NmNmN2NhOTMzNGQzZWViOTc1MWRjMDRkNWU2ZTRm NTIxN2FjZTUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDQ0LzEwNV0gZ25vbWUtY29udHJvbC1jZW50ZXI6IHVwZGF0ZSB0 byAzLjM4LjAKCi0tLQogc3JjcGtncy9OZXR3b3JrTWFuYWdlci90ZW1wbGF0ZSAgICAgICAgICAg ICAgIHwgIDIgKwogLi4uL2dub21lLWNvbnRyb2wtY2VudGVyL3BhdGNoZXMvbm0xMjIucGF0Y2gg IHwgMzggKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci90 ZW1wbGF0ZSAgICAgICAgIHwgMjQgKysrKysrKy0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDU0IGlu c2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv Z25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5wYXRjaAoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvTmV0d29ya01hbmFnZXIvdGVtcGxhdGUgYi9zcmNwa2dzL05ldHdvcmtNYW5hZ2VyL3Rl bXBsYXRlCmluZGV4IGVkZWI4Mjc4NTc5Li5lNDgyYmJhOThkZSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9OZXR3b3JrTWFuYWdlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL05ldHdvcmtNYW5hZ2VyL3Rl bXBsYXRlCkBAIC0xLDQgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnTmV0d29ya01hbmFn ZXInCisjIHdoZW4gdXBkYXRpbmcgdG8gMS4yNCBvciBuZXdlciwgZHJvcCB0aGUgY29tcGF0Cisj IHBhdGNoIGluIGdub21lLWNvbnRyb2wtY2VudGVyIGFuZCByZWJ1aWxkIGl0CiBwa2duYW1lPU5l dHdvcmtNYW5hZ2VyCiB2ZXJzaW9uPTEuMjIuMTAKIHJldmlzaW9uPTIKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5wYXRjaCBiL3NyY3BrZ3Mv Z25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODMzZmVkMzk2OGUKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3BhdGNoZXMvbm0xMjIucGF0Y2gKQEAgLTAsMCAr MSwzOCBAQAorRnJvbSA0MTU5Zjk4NGJkMzUxY2FmNmYwZTFhZGJkOTBmZWViODVhYjI1MmY0IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CitEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIyOjAyOjA0ICswMjAwCitTdWJqZWN0 OiBbUEFUQ0hdIHJlc3RvcmUgY29tcGF0aWJpbGl0eSB3aXRoIG5ldHdvcmttYW5hZ2VyIDEuMjIK KworZHJvcCB0aGlzIHBhdGNoIGFuZCByZWJ1aWxkIGdub21lLWNvbnRyb2wtY2VudGVyIHdoZW4g dXBkYXRpbmcgbm0KKy0tLQorIHBhbmVscy9uZXR3b3JrL25ldC1kZXZpY2Utd2lmaS5jIHwgNyAt LS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgcGFu ZWxzL25ldHdvcmsvbmV0LWRldmljZS13aWZpLmMgcGFuZWxzL25ldHdvcmsvbmV0LWRldmljZS13 aWZpLmMKK2luZGV4IGNiODZlNWIuLmQ2M2M1N2MgMTAwNjQ0CistLS0gcGFuZWxzL25ldHdvcmsv bmV0LWRldmljZS13aWZpLmMKKysrKyBwYW5lbHMvbmV0d29yay9uZXQtZGV2aWNlLXdpZmkuYwor QEAgLTExODAsMTEgKzExODAsNiBAQCBubV9jbGllbnRfb25fcGVybWlzc2lvbl9jaGFuZ2UgKE5l dERldmljZVdpZmkgKnNlbGYpIHsKKyAgICAgICAgIE5NQ2xpZW50UGVybWlzc2lvblJlc3VsdCBw ZXJtOworICAgICAgICAgTk1EZXZpY2VXaWZpQ2FwYWJpbGl0aWVzIGNhcHM7CisgCistICAgICAg ICBpZiAobm1fY2xpZW50X2dldF9wZXJtaXNzaW9uc19zdGF0ZSAoc2VsZi0+Y2xpZW50KSAhPSBO TV9URVJOQVJZX1RSVUUpIHsKKy0gICAgICAgICAgICAgICAgLyogcGVybWlzc2lvbnMgYXJlbid0 IHJlYWR5IHlldCAqLworLSAgICAgICAgICAgICAgICByZXR1cm47CistICAgICAgICB9CistCisg ICAgICAgICAvKiBvbmx5IGVuYWJsZSB0aGUgYnV0dG9uIGlmIHRoZSB1c2VyIGNhbiBjcmVhdGUg YSBob3RzcG90ICovCisgICAgICAgICBwZXJtID0gbm1fY2xpZW50X2dldF9wZXJtaXNzaW9uX3Jl c3VsdCAoc2VsZi0+Y2xpZW50LCBOTV9DTElFTlRfUEVSTUlTU0lPTl9XSUZJX1NIQVJFX09QRU4p OworICAgICAgICAgY2FwcyA9IG5tX2RldmljZV93aWZpX2dldF9jYXBhYmlsaXRpZXMgKE5NX0RF VklDRV9XSUZJIChzZWxmLT5kZXZpY2UpKTsKK0BAIC0xMjI3LDggKzEyMjIsNiBAQCBuZXRfZGV2 aWNlX3dpZmlfbmV3IChDY1BhbmVsICpwYW5lbCwgTk1DbGllbnQgKmNsaWVudCwgTk1EZXZpY2Ug KmRldmljZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChh cF9hY3RpdmF0ZWQpLCBzZWxmLCBHX0NPTk5FQ1RfU1dBUFBFRCk7CisgICAgICAgICBnX3NpZ25h bF9jb25uZWN0X29iamVjdCAobGlzdCwgImNvbmZpZ3VyZSIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoc2hvd19kZXRhaWxzX2Zvcl9yb3cpLCBzZWxmLCBH X0NPTk5FQ1RfU1dBUFBFRCk7CistICAgICAgICBnX3NpZ25hbF9jb25uZWN0X29iamVjdCAoY2xp ZW50LCAibm90aWZ5IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExC QUNLKG5tX2NsaWVudF9vbl9wZXJtaXNzaW9uX2NoYW5nZSksIHNlbGYsIEdfQ09OTkVDVF9TV0FQ UEVEKTsKKyAKKyAgICAgICAgIG5tX2NsaWVudF9vbl9wZXJtaXNzaW9uX2NoYW5nZShzZWxmKTsK KyAKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50 ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3RlbXBsYXRlCmluZGV4 IDlmZGI4NTNhZmJmLi4xOTExMDFhZmFhZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jb250 cm9sLWNlbnRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3Rl bXBsYXRlCkBAIC0xLDIyICsxLDIyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1jb250 cm9sLWNlbnRlcicKIHBrZ25hbWU9Z25vbWUtY29udHJvbC1jZW50ZXIKLXZlcnNpb249My4zNC4x Ci1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVz b24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EY2hlZXNlPSQodm9wdF9p ZiBjaGVlc2UgdHJ1ZSBmYWxzZSkiCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ3NldHRp bmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnIHBvbGtpdAotIHB5 dGhvbjMiCitob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcy1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnCisgcG9sa2l0IHB5dGhvbjMiCiBtYWtlZGVw ZW5kcz0iTW9kZW1NYW5hZ2VyLWRldmVsIGFjY291bnRzc2VydmljZS1kZXZlbCBhbHNhLXBsdWdp bnMKICBjb2xvcmQtZ3RrLWRldmVsIGdub21lLWJsdWV0b290aC1kZXZlbCBnbm9tZS1kZXNrdG9w LWRldmVsIGdub21lLW1lbnVzLWRldmVsCiAgZ25vbWUtb25saW5lLWFjY291bnRzLWRldmVsIGdu b21lLXNldHRpbmdzLWRhZW1vbi1kZXZlbCBncmlsby1kZXZlbCBpYnVzLWRldmVsCi0gbGliU00t ZGV2ZWwgbGliWHhmODZtaXNjLWRldmVsIGxpYmdub21la2JkLWRldmVsIGxpYmd0b3AtZGV2ZWwK KyBsaWJTTS1kZXZlbCBsaWJYeGY4Nm1pc2MtZGV2ZWwgbGliZ25vbWVrYmQtZGV2ZWwgbGliZ3Rv cC1kZXZlbCBsaWJoYW5keTEtZGV2ZWwKICBsaWJwd3F1YWxpdHktZGV2ZWwgbWl0LWtyYjUtZGV2 ZWwgbmV0d29yay1tYW5hZ2VyLWFwcGxldC1kZXZlbCBwb2xraXQtZGV2ZWwKICBwdWxzZWF1ZGlv LWRldmVsIHNhbWJhLWRldmVsIHR6ZGF0YSB1cG93ZXItZGV2ZWwgdmFsYS1kZXZlbCBjbHV0dGVy LWd0ay1kZXZlbAogIGxpYnhtbDItZGV2ZWwgbGliWDExLWRldmVsIGd0ayszLWRldmVsIGN1cHMt ZGV2ZWwgbGliZ3VkZXYtZGV2ZWwgbGlid2Fjb20tZGV2ZWwKICBjbHV0dGVyLWRldmVsIGxpYnNl Y3JldC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCB1ZGlza3MyLWRldmVsIGdzb3VuZC1kZXZlbAog ICQodm9wdF9pZiBjaGVlc2UgY2hlZXNlLWRldmVsKSIKLWRlcGVuZHM9ImFsc2EtcGx1Z2lucy1w dWxzZWF1ZGlvIGRlc2t0b3AtZmlsZS11dGlscworZGVwZW5kcz0iYWxzYS1wbHVnaW5zLXB1bHNl YXVkaW8gZGVza3RvcC1maWxlLXV0aWxzIHVwb3dlciBjb2xvcmQgY3Vwcy1way1oZWxwZXIKICBn c2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGhpY29sb3ItaWNvbi10aGVtZSBpc28tY29kZXMgc291 bmQtdGhlbWUtZnJlZWRlc2t0b3AKICBjcmFja2xpYiIKIHNob3J0X2Rlc2M9IkdOT01FIGNvbnRy b2wgY2VudGVyIgpAQCAtMjQsMTMgKzI0LDE3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxn b3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1jb250cm9sLWNlbnRlciIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTVmODJlY2Q1NTU0MTM2YzQ2MjI0OGVj NTM2M2I4MmQ5NTM1OGIzOWRmZDY3ODcwMDZkODMwN2I0NTA0ZTUxNWUKK2NoZWNrc3VtPWY2YjZi NWI4ZWY5YzM4ZDg5NWJhNWFmODdmMzFhZGFlMDIxOTRhZDg2YzlhYTZjZmYyZDJiOTc1NWMyZGIx ZGEKIAogYnVpbGRfb3B0aW9ucz0iY2hlZXNlIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJjaGVl c2UiCisKIGRlc2Nfb3B0aW9uX2NoZWVzZT0iQWRkIHN1cHBvcnQgZm9yIGFkZGluZyB1c2VyIGFj Y291bnQgaW1hZ2VzIHdpdGggeW91ciB3ZWJjYW0iCi1pZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07 IHRoZW4KLQlidWlsZF9vcHRpb25zX2RlZmF1bHQrPSIgY2hlZXNlIgotZmkKKworIyBuZWVkcyBY MTEgYW5kIHJlcXVpcmVzIGFsdGVyZWQgZmlsZXN5c3RlbQorZG9fY2hlY2soKSB7CisJOgorfQog CiBDRkxBR1M9Ii1mY29tbW9uIgogCgpGcm9tIDI1NzM0ZGUyYzkwMWQyNTk4NWUzN2QzYjQ1MWNk Nzk0OTg0OTUxNzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwNDUvMTA1XSBkY29uZi1lZGl0b3I6IHVwZGF0ZSB0byAzLjM4 LjAKCi0tLQogc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZGNvbmYtZWRpdG9yL3RlbXBs YXRlCmluZGV4IGRlMjUwYmJjOGE5Li4yMzI1MmI5Zjc0ZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9k Y29uZi1lZGl0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxhdGUK QEAgLTEsMTMgKzEsMTMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Rjb25mLWVkaXRvcicKIHBr Z25hbWU9ZGNvbmYtZWRpdG9yCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM4LjAKIHJldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1ob3N0bWFrZWRlcGVuZHM9ImRvY2Jvb2steHNsIGds aWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEiCitob3N0bWFrZWRlcGVuZHM9ImRvY2Jv b2steHNsIGdsaWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEgZ2V0dGV4dCIKIG1ha2Vk ZXBlbmRzPSJkY29uZi1kZXZlbCBndGsrMy1kZXZlbCIKIHNob3J0X2Rlc2M9Ikxvdy1sZXZlbCBj b25maWd1cmF0aW9uIHN5c3RlbSAtIEdUSysgZWRpdG9yIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9kY29uZiIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPTcyZWVkMDU2NzA5MTdmOGU0MzIwMGU0MGNjYzZiZTYw MjExZjBhODdiMDE3NTM0ZWFjMWZkNmM3MTczYTA2OTMKK2NoZWNrc3VtPTZkODkyNDlhMzc5MDgy ZGU2YThlOTVhMmEyMDJkMGNhNWZlMWM5Nzc2YmMwZDVkM2VmMDY1NTY3ZDgxODNlYjQKCkZyb20g MTNiZTU0OTRjYzk3MmUzNjFjMzA2NGZkZWUyMmJlNWYzMWQ5ZGRhYiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFN1biwgMTYgQXVnIDIwMjAgMDY6NDI6MDIgKzAyMDAKU3ViamVjdDogW1BBVENIIDA0Ni8xMDVd IGdqczogdXBkYXRlIHRvIDEuNjYuMAoKLS0tCiBzcmNwa2dzL2dqcy90ZW1wbGF0ZSB8IDggKysr Ky0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nanMvdGVtcGxhdGUgYi9zcmNwa2dzL2dqcy90ZW1wbGF0ZQpp bmRleCBlYzQ4YmFkZGYxMS4uOGExMzNkZDgwNDggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2pzL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2pzL3RlbXBsYXRlCkBAIC0xLDI3ICsxLDI3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdnanMnCiBwa2duYW1lPWdqcwotdmVyc2lvbj0xLjY1LjIKK3ZlcnNp b249MS42Ni4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJn aXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSItRHNraXBfZGJ1c190ZXN0cz10cnVlIC1Ec2tpcF9n dGtfdGVzdHM9dHJ1ZQogIC1EcHJvZmlsZXI9ZGlzYWJsZWQgLURpbnN0YWxsZWRfdGVzdHM9ZmFs c2UiICMgRGlzYWJsZSB0ZXN0cyBiZWNhdXNlIHRoZXkgbmVlZCBkYnVzLCBYIGFuZCBHVEsuCiBo b3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtnLWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJkYnVz LWdsaWItZGV2ZWwgbW96anM2OC1kZXZlbCByZWFkbGluZS1kZXZlbCBzeXNwcm9mLWRldmVsIgor bWFrZWRlcGVuZHM9ImRidXMtZ2xpYi1kZXZlbCBtb3pqczc4LWRldmVsIHJlYWRsaW5lLWRldmVs IHN5c3Byb2YtZGV2ZWwiCiBzaG9ydF9kZXNjPSJNb3ppbGxhLWJhc2VkIGphdmFzY3JpcHQgYmlu ZGluZ3MgZm9yIHRoZSBHTk9NRSBwbGF0Zm9ybSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxn b3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJNSVQsIExHUEwtMi4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvYWN0aW9uL3Nob3cvUHJvamVjdHMvR2pz IgogY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ2pzL2Jsb2IvZ25v bWUtMy0zMC9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YTY2ZWRhZDhh NWYxMDAyN2Y5YjE4MmQ4OGFmODRiODFmMTNlNWFkNTg0MDMxOWNmYTc0N2Q2NmU3N2UwMjE0Zgor Y2hlY2tzdW09ZjMwY2Y5MGUwMTZkYjZjOGZkZDAwNTk3NDk1NTk2MTE3NjBmMDcyMWYzNzViMmI2 MWUwYjcyMzliNDNhYjVmOAogCiBwb3N0X2luc3RhbGwoKSB7CiAJdmxpY2Vuc2UgQ09QWUlORwog fQogCiBnanMtZGV2ZWxfcGFja2FnZSgpIHsKLQlkZXBlbmRzPSJsaWJnaXJlcG9zaXRvcnktZGV2 ZWwgbW96anM2OC1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJ ZGVwZW5kcz0ibGliZ2lyZXBvc2l0b3J5LWRldmVsIG1vempzNzgtZGV2ZWwgJHtzb3VyY2Vwa2d9 Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBm aWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKCkZyb20gOTQ2MWI5 NGIxMzNmNDM3ZTYwYjBmZGZiNjE2ZWNjNWRmZGZjMzI1YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0Ny8xMDVdIGdub21l LXNoZWxsOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtc2hlbGwvdGVtcGxh dGUgfCAxMSArKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNoZWxsL3RlbXBsYXRlIGIv c3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQppbmRleCA5NmM1YjgwYTE5NC4uZjI3Nzk1NTcy ZWYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQpAQCAtMSwxMiArMSwxMiBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ25vbWUtc2hlbGwnCiBwa2duYW1lPWdub21lLXNoZWxsCi12ZXJzaW9uPTMuMzQuMQor dmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxw ZXI9Z2lyCiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1kPWZhbHNlIgogaG9zdG1ha2VkZXBlbmRz PSJnb2JqZWN0LWludHJvc3BlY3Rpb24gZ3RrLWRvYyBsaWJ4c2x0IHBrZy1jb25maWcgcHl0aG9u MyBzYXNzYwotIGFzY2lpZG9jIHBlcmwgZ2xpYi1kZXZlbCBtdXR0ZXItZGV2ZWwiCisgYXNjaWlk b2MgcGVybCBnbGliLWRldmVsIG11dHRlci1kZXZlbCBnZXR0ZXh0IGdqcy1kZXZlbCIKIG1ha2Vk ZXBlbmRzPSJhdC1zcGkyLWF0ayBjYXJpYm91LWRldmVsIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1k ZXZlbCBmb2xrcy1kZXZlbAogIGdjci1kZXZlbCBnanMtZGV2ZWwgZ25vbWUtYmx1ZXRvb3RoLWRl dmVsIGdub21lLWNvbnRyb2wtY2VudGVyLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwKICBnbm9t ZS1tZW51cy1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGdzdHJlYW1lcjEt ZGV2ZWwgZ3RrKzMtZGV2ZWwKQEAgLTIxLDQgKzIxLDkgQEAgbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21lU2hl bGwiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9n bm9tZS1zaGVsbC9nbm9tZS0zLTMwL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtw a2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVj a3N1bT1jY2Q4NjU1OWI5Yzg5N2MyMTlkMmQyZWJmZGI4NDEzZWZhNGMxYmVlODQ2NDI3Yzc1MGNi OGEzMDFiM2Y2ZDFlCitjaGVja3N1bT1jNjI2NDAzYmMwODc1ZWU2ZGE4YzdhNjJhYzBjZWUzMTJi YWRiNTIzYWYwNzNjYjE2NjEyNTAxNWE3NWEwYTk3CisKKyMgbmVlZHMgWAorZG9fY2hlY2soKSB7 CisJOgorfQoKRnJvbSAzNWNjNWUyYzRmNTRiNzRkMzNmNDY3NDRiMGMyOWZkYjkzNGIyNDUxIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDQ4LzEwNV0gZ25vbWUtc2hlbGwtZXh0ZW5zaW9uczogdXBkYXRlIHRvIDMuMzguMAoK LS0tCiBzcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUgfCA2ICsrKy0tLQog MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUgYi9zcmNwa2dzL2du b21lLXNoZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUKaW5kZXggOTcxNjhiNDBmNjYuLmU0OTMwMzg0 ZmQ0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBsYXRlCkBAIC0xLDE1ICsx LDE1IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zaGVsbC1leHRlbnNpb25zJwogcGtn bmFtZT1nbm9tZS1zaGVsbC1leHRlbnNpb25zCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM4 LjAKIHJldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3Vy ZV9hcmdzPSItRGV4dGVuc2lvbl9zZXQ9YWxsIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmln IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdldHRleHQiCiBkZXBlbmRzPSJnbm9tZS1z aGVsbD49JHt2ZXJzaW9ufSBuYXV0aWx1cyB1bnppcCIKIHNob3J0X2Rlc2M9IkV4dGVuc2lvbnMg Zm9yIEdOT01FIHNoZWxsLCBpbmNsdWRpbmcgY2xhc3NpYyBtb2RlIgogbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Hbm9tZVNoZWxs L0V4dGVuc2lvbnMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iMGFkNTExNDNi MWJmNDBkZWY0YTEwZjhmZDBhYjBmZmI0NzIxODMwNDgwMDc5NGU2MmNhZGQyOWQwYWNjNzViCitj aGVja3N1bT1mNzI2Zjg1YmIzOThiMDgyYWQwOWE3ZGVkMzA2ZjIyYmQyNWQyNTg5OGM3ZjE4YmQ3 NzVkZjY2NDAwZDM5MTlmCgpGcm9tIGUyMDcxYzgwODAzMzE3NDQyNzFhMDk3NGNmMzNlNzNlMjNl MjVjNDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwNDkvMTA1XSBnZG06IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtn cy9nZG0vcGF0Y2hlcy90YWtlLW91dC10aGUtdHJhc2gucGF0Y2ggfCAyMyArKysrKysrKysrKysr KysrKwogc3JjcGtncy9nZG0vdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNiAr KysrKysrKysrKy0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCAx MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dkbS9wYXRjaGVzL3Rh a2Utb3V0LXRoZS10cmFzaC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2RtL3BhdGNoZXMv dGFrZS1vdXQtdGhlLXRyYXNoLnBhdGNoIGIvc3JjcGtncy9nZG0vcGF0Y2hlcy90YWtlLW91dC10 aGUtdHJhc2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY5 MjdjNzI3N2IxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nZG0vcGF0Y2hlcy90YWtlLW91 dC10aGUtdHJhc2gucGF0Y2gKQEAgLTAsMCArMSwyMyBAQAorLS0tIG1lc29uLmJ1aWxkCisrKysg bWVzb24uYnVpbGQKK0BAIC05NCwxOSArOTQsOCBAQCBpZiB4ZG1jcF9kZXAuZm91bmQoKSBhbmQg Z2V0X29wdGlvbigndGNwLXdyYXBwZXJzJykKKyAgIGxpYndyYXBfZGVwID0gY2MuZmluZF9saWJy YXJ5KCdsaWJ3cmFwJykKKyBlbmRpZgorICMgc3lzdGVtZAorLXN5c3RlbWRfZGVwID0gZGVwZW5k ZW5jeSgnc3lzdGVtZCcpCisgbGlic3lzdGVtZF9kZXAgPSBkZXBlbmRlbmN5KCdsaWJzeXN0ZW1k JykKKy1pZiBtZXNvbi52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+PSAwLjUzJykKKy0gIHN5 c3RlbWRfbXVsdGlzZWF0X3ggPSBmaW5kX3Byb2dyYW0oJ3N5c3RlbWQtbXVsdGktc2VhdC14JywK Ky0gICAgcmVxdWlyZWQ6IGZhbHNlLAorLSAgICBkaXJzOiBbCistICAgICAgc3lzdGVtZF9kZXAu Z2V0X3BrZ2NvbmZpZ192YXJpYWJsZSgnc3lzdGVtZHV0aWxkaXInKSwKKy0gICAgICAnL2xpYi9z eXN0ZW1kJywKKy0gICAgICAnL3Vzci9saWIvc3lzdGVtZCcsCistICAgIF0pCistZWxzZQorLSAg c3lzdGVtZF9tdWx0aXNlYXRfeCA9IGZpbmRfcHJvZ3JhbSgnc3lzdGVtZC1tdWx0aS1zZWF0LXgn LCByZXF1aXJlZDogZmFsc2UpCistZW5kaWYKKytzeXN0ZW1kX211bHRpc2VhdF94ID0gZmluZF9w cm9ncmFtKCdzeXN0ZW1kLW11bHRpLXNlYXQteCcsIHJlcXVpcmVkOiBmYWxzZSkKKyBzeXN0ZW1k X3hfc2VydmVyID0gc3lzdGVtZF9tdWx0aXNlYXRfeC5mb3VuZCgpPyBzeXN0ZW1kX211bHRpc2Vh dF94LnBhdGgoKSA6ICcvbGliL3N5c3RlbWQvc3lzdGVtZC1tdWx0aS1zZWF0LXgnCisgIyBQbHlt b3V0aAorIHBseW1vdXRoX2RlcCA9IGRlcGVuZGVuY3koJ3BseS1ib290LWNsaWVudCcsIHJlcXVp cmVkOiBnZXRfb3B0aW9uKCdwbHltb3V0aCcpKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nZG0vdGVt cGxhdGUgYi9zcmNwa2dzL2dkbS90ZW1wbGF0ZQppbmRleCBiYjViNDg2OTJkNC4uMTE4ODgxZTRj NGMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2RtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2RtL3Rl bXBsYXRlCkBAIC0xLDI3ICsxLDI4IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZG0nCiBwa2du YW1lPWdkbQotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWls ZF9oZWxwZXI9ImdpciIKLWJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKLWNvbmZpZ3VyZV9hcmdz PSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKQotIC0tZGlzYWJsZS1zY2hlbWFzLWNv bXBpbGUgLS1kaXNhYmxlLXN0YXRpYyAtLXdpdGgtZGVmYXVsdC1wYW0tY29uZmlnPWFyY2gKLSAt LXdpdGgtYXQtc3BpLXJlZ2lzdHJ5ZC1kaXJlY3Rvcnk9L3Vzci9saWJleGVjIC0td2l0aG91dC10 Y3Atd3JhcHBlcnMKLSAtLXdpdGgtc2NyZWVuc2hvdC1kaXI9L3Zhci9saWIvZ2RtL2dyZWV0ZXIg LS1zYmluZGlyPS91c3IvYmluIC0td2l0aG91dC1wbHltb3V0aAotIC0td2l0aC14YXV0aC1kaXI9 L3J1bi9nZG0gLS13aXRoLXBpZC1maWxlPS9ydW4vZ2RtL2dkbS5waWQKLSAtLWRpc2FibGUtc3lz dGVtZC1qb3VybmFsIC0td2l0aC1pbml0aWFsLXZ0PTcgLS1lbmFibGUtd2F5bGFuZC1zdXBwb3J0 IgorYnVpbGRfc3R5bGU9bWVzb24KK2NvbmZpZ3VyZV9hcmdzPSIKKyAtRGRlZmF1bHQtcGFtLWNv bmZpZz1hcmNoIC1EYXQtc3BpLXJlZ2lzdHJ5ZC1kaXI9L3Vzci9saWJleGVjCisgLUR0Y3Atd3Jh cHBlcnM9ZmFsc2UgLURzY3JlZW5zaG90LWRpcj0vdmFyL2xpYi9nZG0vZ3JlZXRlcgorIC1EcGx5 bW91dGg9ZGlzYWJsZWQgLUR4YXV0aC1kaXI9L3J1bi9nZG0gLURwaWQtZmlsZT0vcnVuL2dkbS9n ZG0ucGlkCisgLURzeXN0ZW1kLWpvdXJuYWw9ZmFsc2UgLURpbml0aWFsLXZ0PTcgLUR3YXlsYW5k LXN1cHBvcnQ9dHJ1ZQorIC1Ec2VsaW51eD1kaXNhYmxlZCAtRGxpYmF1ZGl0PWRpc2FibGVkCisg LURzeXN0ZW1kc3lzdGVtdW5pdGRpcj0vdG1wIC1Ec3lzdGVtZHVzZXJ1bml0ZGlyPS90bXAiCiBo b3N0bWFrZWRlcGVuZHM9ImRjb25mIGdldHRleHQgaXRzdG9vbCBwa2ctY29uZmlnIgogbWFrZWRl cGVuZHM9ImFjY291bnRzc2VydmljZS1kZXZlbCBlbG9naW5kLWRldmVsIGdldHRleHQtZGV2ZWwg Z2xpYi1kZXZlbAogIGlzby1jb2RlcyBsaWJTTS1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBuc3Mt ZGV2ZWwgcGFtLWRldmVsIHVwb3dlci1kZXZlbCIKLWRlcGVuZHM9Imdub21lLXNldHRpbmdzLWRh ZW1vbiBnbm9tZS1zaGVsbCB4b3JnLXNlcnZlciB4b3JnLXNlcnZlci14d2F5bGFuZAotIHhyZGIi CitkZXBlbmRzPSJnbm9tZS1zZXR0aW5ncy1kYWVtb24gZ25vbWUtc2hlbGwgZ25vbWUtc2Vzc2lv biBnbm9tZS10aGVtZXMtZXh0cmEKKyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIHhvcmctc2Vy dmVyIHhvcmctc2VydmVyLXh3YXlsYW5kIHhyZGIiCiBjaGVja2RlcGVuZHM9ImNoZWNrLWRldmVs Igogc2hvcnRfZGVzYz0iR05PTUUgRGlzcGxheSBNYW5hZ2VyIgogbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9HRE0iCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lODVkZjY1N2FhOGQ5MzYxYWY0ZmIxMjIwMTRkOGYx MjNhOTNiZmU0NWE3NjYyZmJhMmIzNzNkODM5ZGJkOGQzCitjaGVja3N1bT00NmQ0NDE1YzM5Yzk0 Y2NlZTgxZmJhYzIxMTAyZTJlYmNkMjg0ZDM5ODU4Yzg5M2U3NTk5MDBiMWU4ODQzNWJhCiAKIGNv bmZfZmlsZXM9IgogCS9ldGMvZ2RtL2N1c3RvbS5jb25mCkBAIC00Nyw2ICs0OCw3IEBAIHBvc3Rf aW5zdGFsbCgpIHsKIAl2aW5zdGFsbCAkRklMRVNESVIvWHNlc3Npb24gNzU1IGV0Yy9nZG0KIAog CXZzZWQgLWkgInMvcGFtX3N5c3RlbWRcLnNvL3BhbV9lbG9naW5kLnNvLyIgJERFU1RESVIvZXRj L3BhbS5kLyoKKwlybSAtcmYgJHtERVNURElSfS90bXAKIAogCSMgcnVuaXQgc2VydmljZQogCXZz diBnZG0KQEAgLTYwLDcgKzYyLDcgQEAgbGliZ2RtX3BhY2thZ2UoKSB7CiB9CiAKIGdkbS1kZXZl bF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImxpYmdkbT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK KwlkZXBlbmRzPSJsaWJnZG0+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gZWxvZ2luZC1kZXZlbCIK IAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJcGtnX2luc3RhbGwoKSB7CiAJ CXZtb3ZlIHVzci9pbmNsdWRlCgpGcm9tIDQ5NjVlMGFkNDRkYzFkZmRhY2E4YmIwMTBjYTdiNzgw MWMxNGNhNDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAw ClN1YmplY3Q6IFtQQVRDSCAwNTAvMTA1XSBnbm9tZS1zZXNzaW9uOiB1cGRhdGUgdG8gMy4zOC4w CgotLS0KIC4uLi1hcHAtU3RyaXAtYmxhY2tsaXN0ZWQtdmFyaWFibGVzLWZyby5wYXRjaCB8IDY3 ICsrKysrKysrKysrKysrKysrKysKIC4uLi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoICAg ICAgICAgICAgICB8IDE0ICsrKysKIHNyY3BrZ3MvZ25vbWUtc2Vzc2lvbi90ZW1wbGF0ZSAgICAg ICAgICAgICAgICB8IDEwICsrLQogMyBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9w YXRjaGVzLzAwMDEtcmV2ZXJ0LWF1dG9zdGFydC1hcHAtU3RyaXAtYmxhY2tsaXN0ZWQtdmFyaWFi bGVzLWZyby5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9w YXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1z ZXNzaW9uL3BhdGNoZXMvMDAwMS1yZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJpcC1ibGFja2xpc3Rl ZC12YXJpYWJsZXMtZnJvLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvMDAw MS1yZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJpcC1ibGFja2xpc3RlZC12YXJpYWJsZXMtZnJvLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jZmQ5ZjRiYTZjZgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzLzAwMDEtcmV2 ZXJ0LWF1dG9zdGFydC1hcHAtU3RyaXAtYmxhY2tsaXN0ZWQtdmFyaWFibGVzLWZyby5wYXRjaApA QCAtMCwwICsxLDY3IEBACitGcm9tIDFkZTM1NzVhMWVhOWNkYjM1NzlhZDUzODEwOGM1MTgxODg0 Nzc5N2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSYXNtdXMgVGhvbXNlbiA8b3Nz QGNvZ2l0cmkuZGV2PgorRGF0ZTogRnJpLCA2IERlYyAyMDE5IDExOjQ4OjAyICswMTAwCitTdWJq ZWN0OiBbUEFUQ0hdIHJldmVydDogYXV0b3N0YXJ0LWFwcDogU3RyaXAgYmxhY2tsaXN0ZWQgdmFy aWFibGVzIGZyb20KKyBhdXRvc3RhcnQgZW52aXJvbm1lbnQKKworVGhpcyBicmVha3MgZ25vbWUt c2Vzc2lvbiBvbiBub24tc3lzdGVtZCBzeXN0ZW1zLgorCitodHRwczovL2dpdGxhYi5nbm9tZS5v cmcvR05PTUUvZ25vbWUtc2Vzc2lvbi9pc3N1ZXMvNDQKKy0tLQorIGdub21lLXNlc3Npb24vZ3Nt LWF1dG9zdGFydC1hcHAuYyB8IDUgLS0tLS0KKyBnbm9tZS1zZXNzaW9uL2dzbS11dGlsLmMgICAg ICAgICAgfCA2IC0tLS0tLQorIGdub21lLXNlc3Npb24vZ3NtLXV0aWwuaCAgICAgICAgICB8IDEg LQorIDMgZmlsZXMgY2hhbmdlZCwgMTIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nbm9t ZS1zZXNzaW9uL2dzbS1hdXRvc3RhcnQtYXBwLmMgYi9nbm9tZS1zZXNzaW9uL2dzbS1hdXRvc3Rh cnQtYXBwLmMKK2luZGV4IDZmZDU5MTUuLjAxYmE1ZjkgMTAwNjQ0CistLS0gZ25vbWUtc2Vzc2lv bi9nc20tYXV0b3N0YXJ0LWFwcC5jCisrKysgZ25vbWUtc2Vzc2lvbi9nc20tYXV0b3N0YXJ0LWFw cC5jCitAQCAtOTk3LDcgKzk5Nyw2IEBAIGF1dG9zdGFydF9hcHBfc3RhcnRfc3Bhd24gKEdzbUF1 dG9zdGFydEFwcCAqYXBwLAorICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICBzdWNjZXNzOworICAg ICAgICAgR0Vycm9yICAgICAgICAgICpsb2NhbF9lcnJvcjsKKyAgICAgICAgIGNvbnN0IGNoYXIg ICAgICAqc3RhcnR1cF9pZDsKKy0gICAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqdmFyaWFibGVf YmxhY2tsaXN0OworICAgICAgICAgY29uc3QgY2hhciAqIGNvbnN0ICpjaGlsZF9lbnZpcm9ubWVu dDsKKyAgICAgICAgIGludCBpOworICAgICAgICAgR0FwcExhdW5jaENvbnRleHQgKmN0eDsKK0BA IC0xMDE0LDEwICsxMDEzLDYgQEAgYXV0b3N0YXJ0X2FwcF9zdGFydF9zcGF3biAoR3NtQXV0b3N0 YXJ0QXBwICphcHAsCisgICAgICAgICBsb2NhbF9lcnJvciA9IE5VTEw7CisgICAgICAgICBjdHgg PSBnX2FwcF9sYXVuY2hfY29udGV4dF9uZXcgKCk7CisgCistICAgICAgICB2YXJpYWJsZV9ibGFj a2xpc3QgPSBnc21fdXRpbF9nZXRfdmFyaWFibGVfYmxhY2tsaXN0ICgpOworLSAgICAgICAgZm9y IChpID0gMDsgdmFyaWFibGVfYmxhY2tsaXN0W2ldICE9IE5VTEw7IGkrKykKKy0gICAgICAgICAg ICAgICAgZ19hcHBfbGF1bmNoX2NvbnRleHRfdW5zZXRlbnYgKGN0eCwgdmFyaWFibGVfYmxhY2ts aXN0W2ldKTsKKy0KKyAgICAgICAgIGNoaWxkX2Vudmlyb25tZW50ID0gZ3NtX3V0aWxfbGlzdGVu diAoKTsKKyAgICAgICAgIGZvciAoaSA9IDA7IGNoaWxkX2Vudmlyb25tZW50W2ldICE9IE5VTEw7 IGkrKykgeworICAgICAgICAgICAgICAgICBjaGFyICoqZW52aXJvbm1lbnRfdHVwbGU7CitkaWZm IC0tZ2l0IGEvZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5jIGIvZ25vbWUtc2Vzc2lvbi9nc20tdXRp bC5jCitpbmRleCAwMmJjNGE1Li5hZGExMjI1IDEwMDY0NAorLS0tIGdub21lLXNlc3Npb24vZ3Nt LXV0aWwuYworKysrIGdub21lLXNlc3Npb24vZ3NtLXV0aWwuYworQEAgLTgwOCw5ICs4MDgsMyBA QCBnc21fdXRpbF9saXN0ZW52ICh2b2lkKQorICAgICAgICAgcmV0dXJuIChjb25zdCBjaGFyICog Y29uc3QgKikgY2hpbGRfZW52aXJvbm1lbnQ7CisgCisgfQorLQorLWNvbnN0IGNoYXIgKiBjb25z dCAqCistZ3NtX3V0aWxfZ2V0X3ZhcmlhYmxlX2JsYWNrbGlzdCAodm9pZCkKKy17CistICAgICAg ICByZXR1cm4gdmFyaWFibGVfYmxhY2tsaXN0OworLX0KK2RpZmYgLS1naXQgYS9nbm9tZS1zZXNz aW9uL2dzbS11dGlsLmggYi9nbm9tZS1zZXNzaW9uL2dzbS11dGlsLmgKK2luZGV4IGJkN2I2OTgu LjhiY2E1ZjQgMTAwNjQ0CistLS0gZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5oCisrKysgZ25vbWUt c2Vzc2lvbi9nc20tdXRpbC5oCitAQCAtNTAsNyArNTAsNiBAQCBjaGFyICogICAgICBnc21fdXRp bF9nZW5lcmF0ZV9zdGFydHVwX2lkICAgICAgICAgICAgKHZvaWQpOworIHZvaWQgICAgICAgIGdz bV91dGlsX3NldGVudiAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgY2hhciAqdmFyaWFi bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICp2YWx1ZSk7CisgY29uc3QgY2hhciAqIGNvbnN0ICogZ3NtX3V0aWxfbGlz dGVudiAgICAgICAgICAgICAgICh2b2lkKTsKKy1jb25zdCBjaGFyICogY29uc3QgKiBnc21fdXRp bF9nZXRfdmFyaWFibGVfYmxhY2tsaXN0KHZvaWQpOworIAorIGdib29sZWFuICAgIGdzbV91dGls X2V4cG9ydF9hY3RpdmF0aW9uX2Vudmlyb25tZW50ICAoR0Vycm9yICAgICAqKmVycm9yKTsKKyAj aWZkZWYgSEFWRV9TWVNURU1ECistLSAKKzIuMjQuMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLXNlc3Npb24vcGF0Y2hlcy9uby1zeXN0ZW1kLWRlcC5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUt c2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi44ZTU1YTBmNzk4NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoCkBAIC0wLDAgKzEs MTQgQEAKKy0tLSBtZXNvbi5idWlsZAorKysrIG1lc29uLmJ1aWxkCitAQCAtMTMwLDEwICsxMzAs NyBAQCBpZiBlbmFibGVfc3lzdGVtZCBvciBlbmFibGVfY29uc29sZWtpdAorIAorICAgIyBDaGVj ayBmb3Igc3lzdGVtZAorICAgaWYgZW5hYmxlX3N5c3RlbWQKKy0gICAgc3lzdGVtZF9kZXAgPSBk ZXBlbmRlbmN5KCdzeXN0ZW1kJywgdmVyc2lvbjogJz49IDI0MicsIHJlcXVpcmVkOiB0cnVlKQor LSAgICBzeXN0ZW1kX3VzZXJ1bml0ZGlyID0gc3lzdGVtZF9kZXAuZ2V0X3BrZ2NvbmZpZ192YXJp YWJsZSgnc3lzdGVtZHVzZXJ1bml0ZGlyJywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lX3ZhcmlhYmxlOiBbJ3ByZWZp eCcsIHByZWZpeF0pCistCisrICAgIHN5c3RlbWRfdXNlcnVuaXRkaXIgPSAnL3RtcCcKKyAgICAg bGlic3lzdGVtZF9kZXAgPSBkZXBlbmRlbmN5KCdsaWJzeXN0ZW1kJywgdmVyc2lvbjogJz49IDIw OScsIHJlcXVpcmVkOiBmYWxzZSkKKyAgICAgc2Vzc2lvbl9iaW5fZGVwcyArPSBsaWJzeXN0ZW1k X2RlcAorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlIGIvc3Jj cGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlCmluZGV4IDQ0NDRmMTYyYmYxLi5jOWJjNDkzMGMz OSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ25vbWUtc2Vzc2lvbi90ZW1wbGF0ZQpAQCAtMSw5ICsxLDkgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2dub21lLXNlc3Npb24nCiBwa2duYW1lPWdub21lLXNlc3Npb24KLXZlcnNpb249My4z NC4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWNvbmZp Z3VyZV9hcmdzPSItRHN5c3RlbWRfam91cm5hbD1mYWxzZSIKK2NvbmZpZ3VyZV9hcmdzPSItRHN5 c3RlbWRfam91cm5hbD1mYWxzZSAtRHN5c3RlbWRfc2Vzc2lvbj1kaXNhYmxlIgogaG9zdG1ha2Vk ZXBlbmRzPSJnbGliLWRldmVsIGludGx0b29sIHBrZy1jb25maWcgeG1sdG8iCiBtYWtlZGVwZW5k cz0iZWxvZ2luZC1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGd0ayszLWRldmVsIGpzb24tZ2xp Yi1kZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliSUNFLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3Qt ZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwKQEAgLTE1LDQgKzE1LDggQEAgbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFi Lmdub21lLm9yZy9HTk9NRS9nbm9tZS1zZXNzaW9uIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09ZDc4MDFmZTJkNWE3NTFiMTljYjU4MDgxNzcxMzE2YTc2YWFiZDVjNTUwY2Q1OGQ0 ZTRjNmE1YTRlZDM1NjY2MAorY2hlY2tzdW09N2JjYzBlYjJjZGJhNGIzZjZkMWI0NTliM2EzMDg3 M2I3YmI2NWIzODNjMWY2YTVmNjNjM2UzYjVjNzk0M2Q2NworCitwb3N0X2luc3RhbGwoKSB7CisJ cm0gLXJmICR7REVTVERJUn0vdG1wCit9CgpGcm9tIDIyNzM5ZDQ1ZGRjYmY3ZGM3ZTYxOTQ2MDE5 OWIzNGM2MzA0ZWUwYWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTEvMTA1XSBnbm9tZS1pbml0aWFsLXNldHVwOiB1cGRh dGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1cC90ZW1wbGF0ZSB8 IDExICsrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1cC90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1cC90ZW1wbGF0ZQppbmRleCA1NWRmMmY1M2Mx ZC4uNjNhYmQzYzVjODMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1cC90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVtcGxhdGUKQEAgLTEs MTAgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWluaXRpYWwtc2V0dXAnCiBw a2duYW1lPWdub21lLWluaXRpYWwtc2V0dXAKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0zCit2 ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWNvbmZpZ3VyZV9h cmdzPSItRHNvZnR3YXJlLXNvdXJjZXM9ZGlzYWJsZWQgLURzeXN0ZW1kPWZhbHNlIgotaG9zdG1h a2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2ZWwiCitjb25maWd1cmVfYXJncz0iLURzb2Z0 d2FyZS1zb3VyY2VzPWRpc2FibGVkIC1EcGFyZW50YWxfY29udHJvbHM9ZGlzYWJsZWQKKyAtRHN5 c3RlbWQ9ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCBnZXR0 ZXh0IgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGFjY291bnRzc2VydmljZS1k ZXZlbCBsaWJnbGliLWRldmVsCiAgZ25vbWUtZGVza3RvcC1kZXZlbCBjaGVlc2UtZGV2ZWwgbGli Z3dlYXRoZXItZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbAogIGdub21lLW9ubGluZS1hY2NvdW50cy1k ZXZlbCBnZG0tZGV2ZWwgbGlicHdxdWFsaXR5LWRldmVsCkBAIC0xNyw0ICsxOCw0IEBAIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwt Mi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvRGVzaWduL09T L0luaXRpYWxTZXR1cCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWU3MWYxMGVm NmI2MzFjZDkyZmZkZTc3NGU0MTMwYjMyYjI0OTRiNGRmNWVmMjg4Mzc1ZDhiMTk1N2VlYWJmYTEK K2NoZWNrc3VtPTNhODU3YWVmNWVmYjY4OWY0MDg2MzJkYjg0NjlhZDI3NjIwZjc2MmQ5NzcwNzBh MzYwMzVjNTIyYzZmODI3NTkKCkZyb20gMDBlNzg5ZGFjZWQ3NTFjM2IxMGQ1YjBhNWVmZDA0MmEw MzQ0ZTE2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAK U3ViamVjdDogW1BBVENIIDA1Mi8xMDVdIHhkZy1kZXNrdG9wLXBvcnRhbC1ndGs6IHVwZGF0ZSB0 byAxLjguMAoKLS0tCiBzcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy94ZGctZGVza3RvcC1wb3J0YWwtZ3RrL3RlbXBsYXRlIGIvc3Jj cGtncy94ZGctZGVza3RvcC1wb3J0YWwtZ3RrL3RlbXBsYXRlCmluZGV4IGRlZTBlNDYzMzg2Li43 NTE3ZDFiMzJkOCAxMDA2NDQKLS0tIGEvc3JjcGtncy94ZGctZGVza3RvcC1wb3J0YWwtZ3RrL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1wbGF0ZQpAQCAt MSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsn CiBwa2duYW1lPXhkZy1kZXNrdG9wLXBvcnRhbC1ndGsKLXZlcnNpb249MS42LjAKK3ZlcnNpb249 MS44LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVw ZW5kcz0icGtnLWNvbmZpZyBsaWJ4c2x0IGdsaWItZGV2ZWwgeGRnLWRlc2t0b3AtcG9ydGFsIGdl dHRleHQiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IkR1bmNhZW4gPGR1bmNhZW5Adm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL2dpdGh1Yi5jb20vZmxhdHBhay94ZGctZGVza3RvcC1wb3J0YWwtZ3RrIgogZGlzdGZpbGVz PSJodHRwczovL2dpdGh1Yi5jb20vZmxhdHBhay8ke3BrZ25hbWV9L3JlbGVhc2VzL2Rvd25sb2Fk LyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTk1NmZk MTY2MDgyNDdlNzExOWQ0YzZkOTVhNmRjNjU3OGRjZTI1N2QyZjI3MmQwM2IzNDk4NTcyMjU3ZTJm NzYKK2NoZWNrc3VtPWE1MjUyOWVkMzIxZTA0NGNhOWFkY2E1ZTk3MThkOWJhNTdjNDE0YTI2MzRk ZDQxMDlkZjM0NGM1YjllZWQ3N2YKIAogcG9zdF9pbnN0YWxsKCkgewogCXJtIC1yZiAiJHtERVNU RElSfS91c3IvbGliL3N5c3RlbWQiCgpGcm9tIDkxNjVkNDZhYjdlMzFjZjM4YmVjY2QwZWRhMWRh NjY1MWRlZmIzNTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwNTMvMTA1XSBuYXV0aWx1czogdXBkYXRlIHRvIDMuMzguMAoK LS0tCiBzcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlIHwgMTIgKysrKysrLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbmF1dGlsdXMvdGVtcGxhdGUgYi9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlCmluZGV4 IDUzN2E4NTE5NzNmLi5lNDUyMjhmYTA1MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9uYXV0aWx1cy90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlCkBAIC0xLDIzICsxLDIzIEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICduYXV0aWx1cycKIHBrZ25hbWU9bmF1dGlsdXMKLXZlcnNp b249My4zNi4xLjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNv bgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iLUR0ZXN0cz1oZWFkbGVzcyAt RGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIKLWhvc3RtYWtlZGVwZW5k cz0iZ2V0dGV4dCBnbGliLWRldmVsIGxpYnhzbHQgcGtnLWNvbmZpZyIKK2hvc3RtYWtlZGVwZW5k cz0iZ2V0dGV4dCBnbGliLWRldmVsIGxpYnhzbHQgcGtnLWNvbmZpZyB0cmFja2VyMyIKIG1ha2Vk ZXBlbmRzPSJleGVtcGktZGV2ZWwgZ25vbWUtYXV0b2FyLWRldmVsIGdub21lLWRlc2t0b3AtZGV2 ZWwgZ3RrKzMtZGV2ZWwKICBsaWJleGlmLWRldmVsIGxpYmdleGl2Mi1kZXZlbCBsaWJnbGliLWRl dmVsIGxpYm5vdGlmeS1kZXZlbCBsaWJzZWNjb21wLWRldmVsCi0gbGliWDExLWRldmVsIGxpYnht bDItZGV2ZWwgdHJhY2tlci1kZXZlbCBnc3QtcGx1Z2lucy1iYXNlMS1kZXZlbCIKKyBsaWJYMTEt ZGV2ZWwgbGlieG1sMi1kZXZlbCB0cmFja2VyMy1kZXZlbCBnc3QtcGx1Z2lucy1iYXNlMS1kZXZl bCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFz IGhpY29sb3ItaWNvbi10aGVtZQotIHRyYWNrZXItbWluZXJzIHRyYWNrZXIiCi1jaGVja2RlcGVu ZHM9InRyYWNrZXIiCisgdHJhY2tlcjMtbWluZXJzIHRyYWNrZXIzIgorY2hlY2tkZXBlbmRzPSJ0 cmFja2VyMyB0cmFja2VyMy1taW5lcnMgcHl0aG9uMy1nb2JqZWN0IGRidXMiCiBzaG9ydF9kZXNj PSJHTk9NRSBmaWxlIG1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9OYXV0aWx1cyIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbjo6NH0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPWY5MjUyZjUwODIxMWQ5ZjM2OGE0OWRiNjk3ODkwZjg5 NWQwODBmMDk1OTBhZWNhZjMzODAzYTUxOWRlZjdiZGUKK2NoZWNrc3VtPWM2ZjMzMGY5ZjNmN2Ri ZjM1YWZiNmVjMjA5NGI3NDZlZTc1ZDVlOTI4YzhmNjc4MGRhYjI2NjcyMDg2Y2NhYzAKIAogYnVp bGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIGU4NGE1 NWY5OTU4MjE0ZDRkMzQzMjFhMWZjNTRlM2E5Y2VlMzMwNGIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTQvMTA1XSBnbm9t ZS1tYXBzOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtbWFwcy90ZW1wbGF0 ZSB8IDEwICsrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlIGIvc3Jj cGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlCmluZGV4IDAzMDBiZTYwNTk5Li5lY2M1N2FiOGJiNCAx MDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25v bWUtbWFwcy90ZW1wbGF0ZQpAQCAtMSwxNiArMSwxNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn Z25vbWUtbWFwcycKIHBrZ25hbWU9Z25vbWUtbWFwcwotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249 My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgotaG9zdG1ha2VkZXBlbmRzPSJn bGliLWRldmVsIGdvYmplY3QtaW50cm9zcGVjdGlvbiBpbnRsdG9vbCBwa2ctY29uZmlnIEFwcFN0 cmVhbSIKK2J1aWxkX2hlbHBlcj0iZ2lyIgoraG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGlu dGx0b29sIHBrZy1jb25maWcgQXBwU3RyZWFtIGdqcyIKIG1ha2VkZXBlbmRzPSJmb2xrcy1kZXZl bCBnZW9jbHVlMi1kZXZlbCBnZW9jb2RlLWdsaWItZGV2ZWwgZ2pzLWRldmVsCi0gZ25vbWUtZGVz a3RvcC1kZXZlbCBsaWJjaGFtcGxhaW4tZGV2ZWwgcmVzdC1kZXZlbCIKKyBnbm9tZS1kZXNrdG9w LWRldmVsIGxpYmNoYW1wbGFpbi1kZXZlbCByZXN0LWRldmVsIGxpYmhhbmR5MS1kZXZlbCIKIGRl cGVuZHM9Imdlb2NsdWUyIGdmYmdyYXBoIGdqcyIKIHNob3J0X2Rlc2M9IkdOT01FIG1hcHMgYXBw bGljYXRpb24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25v bWUub3JnL0FwcHMvTWFwcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTFhMzJl ZmQ5NmFkODk4Zjc3YTYzNmQyZDA0NjNkNzU3MDA5YjRiODEyMjU5Yzg5ZmZkY2I5MWQ2YWZjMDUy ZjkKLW5vY3Jvc3M9ImV2b2x1dGlvbi1kYXRhc2VydmVyIGNyb3NzIGdpciBkb2Vzbid0IHdvcmsi CitjaGVja3N1bT01NTc1ODM0MGViZDA4NDYxMDI4M2JmMWY2ZmVjNmMwNDI1NTlhMTg2ZWI4Njk5 YzA1NmEyMmRmZWYxZDk3Zjk5CgpGcm9tIDQxNGUxMThjZTU4YWNjMGEyNzc5NmJkMzM5MTJmNjYy MDVmNWFjNDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAw ClN1YmplY3Q6IFtQQVRDSCAwNTUvMTA1XSBldm9sdXRpb246IHVwZGF0ZSB0byAzLjM4LjAKCi0t LQogLi4uL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlIHwgNDUgLS0t LS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0Lmgg ICAgICAgIHwgIDUgLS0tCiBzcmNwa2dzL2V2b2x1dGlvbi90ZW1wbGF0ZSAgICAgICAgICAgICAg ICAgICAgfCAzNSArKystLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25z KCspLCA3OCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2V2b2x1dGlv bi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmgKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlIGIvc3JjcGtncy9ldm9s dXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZQpkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggOGJlNTViNDIwNzAuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZXZvbHV0 aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UKKysrIC9kZXYvbnVsbApAQCAtMSw0 NSArMCwwIEBACi0jIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IENNYWtlIGJlY2F1c2UgaXQg ZGV0ZWN0ZWQgVFJZX1JVTigpIGNvbW1hbmRzCi0jIGluIGNyb3NzY29tcGlsaW5nIG1vZGUuIEl0 IHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIG5leHQgQ01ha2UgcnVuLgotIyBDb3B5IGl0IHRv IGEgc2FmZSBsb2NhdGlvbiwgc2V0IHRoZSB2YXJpYWJsZXMgdG8gYXBwcm9wcmlhdGUgdmFsdWVz Ci0jIGFuZCB1c2UgaXQgdGhlbiB0byBwcmVzZXQgdGhlIENNYWtlIGNhY2hlICh1c2luZyAtQyku Ci0KLQotIyBfY29ycmVjdF9pY29udl9FWElUQ09ERQotIyAgICBpbmRpY2F0ZXMgd2hldGhlciB0 aGUgZXhlY3V0YWJsZSB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBydW4gb24gaXRzCi0jICAgIHRh cmdldCBwbGF0Zm9ybS4gSWYgc28sIHNldCBfY29ycmVjdF9pY29udl9FWElUQ09ERSB0bwotIyAg ICB0aGUgZXhpdCBjb2RlIChpbiBtYW55IGNhc2VzIDAgZm9yIHN1Y2Nlc3MpLCBvdGhlcndpc2Ug ZW50ZXIgIkZBSUxFRF9UT19SVU4iLgotIyBUaGUgX2NvcnJlY3RfaWNvbnZfQ09NUElMRUQgdmFy aWFibGUgaG9sZHMgdGhlIGJ1aWxkIHJlc3VsdCBmb3IgdGhpcyBUUllfUlVOKCkuCi0jIAotIyBT b3VyY2UgZmlsZSAgIDogL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAvYnVp bGQvQ01ha2VGaWxlcy9DTWFrZVRtcC9zcmMuYwotIyBFeGVjdXRhYmxlICAgIDogL2J1aWxkZGly L2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAvYnVpbGQvQ01ha2VGaWxlcy9jbVRDXzMxNWVl LV9jb3JyZWN0X2ljb252X0VYSVRDT0RFCi0jIFJ1biBhcmd1bWVudHMgOiAKLSMgICAgQ2FsbGVk IGZyb206IFsyXQkvdXNyL3NoYXJlL2NtYWtlLTMuOS9Nb2R1bGVzL0NoZWNrQ1NvdXJjZVJ1bnMu Y21ha2UKLSMgICAgICAgICAgICAgICAgIFsxXQkvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2Vy dmVyLTMuMjYuMC9DTWFrZUxpc3RzLnR4dAotCi1zZXQoIF9jb3JyZWN0X2ljb252X0VYSVRDT0RF IAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JD RSkKLXNldChfY29ycmVjdF9pY29udl9FWElUQ09ERV9fVFJZUlVOX09VVFBVVAotICAgICAwCi0g ICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JDRSkKLQotCi0jIEhB VkVfTEtTVFJGVElNRV9FWElUQ09ERQotIyAgICBpbmRpY2F0ZXMgd2hldGhlciB0aGUgZXhlY3V0 YWJsZSB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBydW4gb24gaXRzCi0jICAgIHRhcmdldCBwbGF0 Zm9ybS4gSWYgc28sIHNldCBIQVZFX0xLU1RSRlRJTUVfRVhJVENPREUgdG8KLSMgICAgdGhlIGV4 aXQgY29kZSAoaW4gbWFueSBjYXNlcyAwIGZvciBzdWNjZXNzKSwgb3RoZXJ3aXNlIGVudGVyICJG QUlMRURfVE9fUlVOIi4KLSMgVGhlIEhBVkVfTEtTVFJGVElNRV9DT01QSUxFRCB2YXJpYWJsZSBo b2xkcyB0aGUgYnVpbGQgcmVzdWx0IGZvciB0aGlzIFRSWV9SVU4oKS4KLSMgCi0jIFNvdXJjZSBm aWxlICAgOiAvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9DTWFr ZUZpbGVzL0NNYWtlVG1wL3NyYy5jCi0jIEV4ZWN1dGFibGUgICAgOiAvYnVpbGRkaXIvZXZvbHV0 aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9DTWFrZUZpbGVzL2NtVENfZDI4OTctSEFWRV9M S1NUUkZUSU1FX0VYSVRDT0RFCi0jIFJ1biBhcmd1bWVudHMgOiAKLSMgICAgQ2FsbGVkIGZyb206 IFsyXQkvdXNyL3NoYXJlL2NtYWtlLTMuOS9Nb2R1bGVzL0NoZWNrQ1NvdXJjZVJ1bnMuY21ha2UK LSMgICAgICAgICAgICAgICAgIFsxXQkvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMu MjYuMC9DTWFrZUxpc3RzLnR4dAotCi1zZXQoIEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERSAKLSAg ICAgMAotICAgICBDQUNIRSBJTlRFUk5BTCAiUmVzdWx0IGZyb20gVFJZX1JVTiIgRk9SQ0UpCi1z ZXQoIEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERV9fVFJZUlVOX09VVFBVVAotICAgICAwCi0gICAg IENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JDRSkKLQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmggYi9zcmNwa2dzL2V2b2x1 dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NDZmNDc2ZDViYzkuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2lj b252LWRldGVjdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0vKiBUaGlzIGlzIGFu IGF1dG8tZ2VuZXJhdGVkIGhlYWRlciwgRE8gTk9UIEVESVQhICovCi0KLSNkZWZpbmUgSUNPTlZf SVNPX0RfRk9STUFUICJpc28tJWQtJWQiCi0jZGVmaW5lIElDT05WX0lTT19TX0ZPUk1BVCAiaXNv LSVkLSVzIgotI2RlZmluZSBJQ09OVl8xMDY0NiAiaXNvLTEwNjQ2IgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9ldm9sdXRpb24vdGVtcGxhdGUgYi9zcmNwa2dzL2V2b2x1dGlvbi90ZW1wbGF0ZQppbmRl eCA1NjBlZDkzZGEwMi4uYWEzZmEzNGJjNGMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXZvbHV0aW9u L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRlCkBAIC0xLDU0ICsxLDMz IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24nCiBwa2duYW1lPWV2b2x1dGlvbgot dmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1j bWFrZQorYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSItREVOQUJMRV9B VVRPQVI9T0ZGIC1ERU5BQkxFX0xJQkNSWVBUVUk9T0ZGIC1ERU5BQkxFX0dUS1NQRUxMPU9GRgot IC1ERU5BQkxFX1RFWFRfSElHSExJR0hUPU9GRiAtREVOQUJMRV9QU1RfSU1QT1JUPU9GRgotIC1E RU5BQkxFX1dFQVRIRVI9JCh2b3B0X2lmIGdpciBPTiBPRkYpIgorIC1ERU5BQkxFX1RFWFRfSElH SExJR0hUPU9GRiAtREVOQUJMRV9QU1RfSU1QT1JUPU9GRiAtREVOQUJMRV9XRUFUSEVSPU9OIgog aG9zdG1ha2VkZXBlbmRzPSJnbm9tZS1kb2MtdXRpbHMgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGlu dGx0b29sIGl0c3Rvb2wKLSBwa2ctY29uZmlnIgorIHBrZy1jb25maWcgZ2xpYi1kZXZlbCIKIG1h a2VkZXBlbmRzPSJOZXR3b3JrTWFuYWdlci1kZXZlbCBjbHV0dGVyLWd0ay1kZXZlbCBlbmNoYW50 Mi1kZXZlbAogIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbCBnc3BlbGwtZGV2ZWwgZ3RraHRt bC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbAotICQodm9wdF9pZiBnaXIgbGliZ3dlYXRoZXItZGV2 ZWwpIGxpYm5vdGlmeS1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIHl0bmVmLWRldmVsCisgbGliZ3dl YXRoZXItZGV2ZWwgbGlibm90aWZ5LWRldmVsIHdlYmtpdDJndGstZGV2ZWwgeXRuZWYtZGV2ZWwK ICBnbm9tZS1kZXNrdG9wLWRldmVsIgogZGVwZW5kcz0iZ25vbWUta2V5cmluZyIKIHNob3J0X2Rl c2M9IkludGVncmF0ZWQgbWFpbCwgYWRkcmVzc2Jvb2sgYW5kIGNhbGVuZGFyaW5nIGZvciBHTk9N RSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJMR1BMLTIuMS1vci1sYXRlciwgTEdQTC0zLjAtb3ItbGF0ZXIsIEdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2b2x1dGlvbiIKLWNo YW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2V2b2x1dGlv bi9nbm9tZS0zLTM2L05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250 ZW50LmNvbS9HTk9NRS9ldm9sdXRpb24vZ25vbWUtMy0zOC9ORVdTIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09ODczYWNmMWRiZWMzOGU2N2UxNjkwNjQ2NDVhYzNhOWI5YTk0NGJk MmI2MzMxNjFkZjZlNWYwNTcwMGUzNmNiOAorY2hlY2tzdW09ZjgxY2M0MGY1NGFhMmQwNTlkYTRm M2E5NGViMDkzNjJlODE1MTMzMDZjOTc0YTQxY2E3ODk1YjljODk1N2M1ZAogc2hsaWJfcHJvdmlk ZXM9ImxpYmV2b2x1dGlvbi1jYWxlbmRhci5zbyBsaWJldm9sdXRpb24tdXRpbC5zbyBsaWJlbWFp bC1lbmdpbmUuc28KICBsaWJldm9sdXRpb24tbWFpbC5zbyBsaWJldm9sdXRpb24tc2hlbGwuc28i CiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGlmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgog CWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgotZWxzZQotCWhvc3RtYWtlZGVwZW5kcys9IiBn bGliLWRldmVsIgogZmkKIAotIyBjbWFrZSBwZXJmb21ybXMgMiBjaGVja3MgdXNpbmcgYmluYXJ5 IHJ1bnRpbWUsIGFib3V0IGljb252IGFuZCBzZnJ0aW1lLgotIyBtdXNsICgxLjEuMTYpIGRvZXMg bm90IHN1cHBvcnQgIklTTy0yMDIyLUpQIiBlbmNvZGluZyAoc2VlIGl0cyByb2FkbWFwKSwKLSMg YWx0aG91Z2ggZXZvbHV0aW9uLWRhdGEtc2VydmVyIGlzIGZpbmUgd2l0aCBtdXNsLgotIyBJZiBj cm9zc2J1aWxkLCBjbWFrZSBsZXQgZGlzYWJsaW5nIHJ1bnRpbWUgY2hlY2tzIHZpYSBzcGVjaWZp YyBkaXJlY3RpdmVzLgotIyB0ZXN0IGljb252LWRldGVjdC5jIGFsc28gZ2VuZXJhdGVzIGljb252 LWRldGVjdC5oIHRoYXQgaXMgcmVxdWlyZWQgZm9yIGJ1aWxkLgotIyBTbyBjb21wbGV0bHkgZGlz YWJsZSB0ZXN0IGZyb20gaWNvbnYtZGV0ZWN0LmMgKGNtYWtlLnBhdGNoIGZpbGUpIGFuZAotIyB1 c2UgYSBjbWFrZSBjYWNoZSBmaWxlIG9uIGNyb3NzYnVpbGQgdG8gZGlzYWJsZSBzZnJ0aW1lIHJ1 bm5pbmcgdGVzdC4KLWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCWNvbmZpZ3VyZV9hcmdz Kz0iIC1DIGRpc2FibGVSdW50aW1lVGVzdHMuY21ha2UiCi1maQotCi1wcmVfY29uZmlndXJlKCkg ewotCW1rZGlyIC1wIGJ1aWxkCi0JY3AgJHtGSUxFU0RJUn0vaWNvbnYtZGV0ZWN0LmggJHt3cmtz cmN9L2J1aWxkLy4KLQlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQkJY3AgJHtGSUxFU0RJ Un0vZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZSAke3dya3NyY30vYnVpbGQvLgotCWZpCi19Ci0K IGV2b2x1dGlvbi1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IndlYmtpdDJndGstZGV2ZWwg Z3RrKzMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwKIAkg Z3RraHRtbC1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCgpGcm9t IDNiYTZkMzk4ZGJlNDEyZGQ4OTE2YzM0YjBlNmU3N2VkZjBlOTVlNjcgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTYvMTA1 XSBldm9sdXRpb24tZXdzOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZXZvbHV0aW9u LWV3cy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1w bGF0ZSBiL3NyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZQppbmRleCA0ZmY4MTE2NDY2Yy4u OThlZTNhNzdmZTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2V2b2x1dGlvbi1ld3MvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24tZXdzJwogcGtnbmFtZT1ldm9sdXRpb24tZXdzCi12 ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNt YWtlCiBjb25maWd1cmVfYXJncz0iLURMSUJFWEVDX0lOU1RBTExfRElSPS91c3IvbGliL2V2b2x1 dGlvbiIKQEAgLTEwLDYgKzEwLDYgQEAgc2hvcnRfZGVzYz0iTVMgRXhjaGFuZ2UgaW50ZWdyYXRp b24gdGhyb3VnaCBFeGNoYW5nZSBXZWIgU2VydmljZXMiCiBtYWludGFpbmVyPSJQZXRlciBLdWNo YXIgPG1hc2FqQGdteC5jb20+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2b2x1dGlvbiIKLWNoYW5nZWxvZz0iaHR0 cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2V2b2x1dGlvbi1ld3MvZ25vbWUt My0zNi9ORVdTIgorY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20v R05PTUUvZXZvbHV0aW9uLWV3cy9nbm9tZS0zLTM4L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT1kMDg4M2M3ZDIyNzgyN2NjNWM0NDY4YjdlMzFhM2VlMzcwYmNkN2Q0MWE0 ZGJiOTUwYWI1ZGIzNmM5NTUxYWMxCitjaGVja3N1bT01OWJmNTljYWJiOWQxOTNkOTEwNzY5NzJk ZDhhNmU3MWViZjM0YzdiZmFkMDFjZDY5NTQyOTczNDdhMzA3N2IzCgpGcm9tIGZkM2U1MzAyODli OGVjMWMwMjY5ODU1NmQyMDgwZTc0Mjg2YzYzMGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTcvMTA1XSBweXRob24zLWF0 c3BpOiB1cGRhdGUgdG8gMi4zOC4wCgotLS0KIHNyY3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0 ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0ZSBiL3NyY3Br Z3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0ZQppbmRleCBhMzNhMzc0ZmUxOC4uMjNmYTk4OTM0ZTUg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L3B5dGhvbjMtYXRzcGkvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdweXRob24zLWF0c3BpJwogcGtnbmFtZT1weXRob24zLWF0c3BpCi12ZXJzaW9uPTIuMzIu MQotcmV2aXNpb249NAordmVyc2lvbj0yLjM4LjAKK3JldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAog d3Jrc3JjPSJweWF0c3BpLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBA IC0xMyw0ICsxMyw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0 bGFiLmdub21lLm9yZy9HTk9NRS9weWF0c3BpMiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9w eWF0c3BpLyR7dmVyc2lvbiUuKn0vcHlhdHNwaS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTg0OTU0YTViYmVhY2M4MzY0M2YwNTc3OGQ4YmVhZmNhYjgyMDhlMTFiMzliMjQ2MzdiNGM0ZGQx Zjg2MjAzODkKK2NoZWNrc3VtPWZmODA5MzEyZmQwYzJmNjFlMTkxYzE4MWExYTYzOGEzMGI1Nzli OTFiNjgyY2ZiNWEwNTUzNWE1NTI2NWI0M2QKCkZyb20gMzE5MTUxYTE1NGExYjg5YzY3N2I3NWQx Yzc4N2RjMzVjYjEzYWMxZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6 MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1OC8xMDVdIHB5dGhvbi1hdHNwaTogdXBkYXRlIHRv IDIuMzguMAoKLS0tCiBzcmNwa2dzL3B5dGhvbi1hdHNwaS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24tYXRzcGkv dGVtcGxhdGUKaW5kZXggMDE0MWQ5N2Y4NWQuLjc1MDVjMzJhZDYwIDEwMDY0NAotLS0gYS9zcmNw a2dzL3B5dGhvbi1hdHNwaS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3B5dGhvbi1hdHNwaS90ZW1w bGF0ZQpAQCAtMSw4ICsxLDggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3B5dGhvbi1hdHNwaScK ICMgS2VlcCBweXRob24zLWF0c3BpIGluIHN5bmMKIHBrZ25hbWU9cHl0aG9uLWF0c3BpCi12ZXJz aW9uPTIuMzIuMQotcmV2aXNpb249NAordmVyc2lvbj0yLjM4LjAKK3JldmlzaW9uPTEKIGFyY2hz PW5vYXJjaAogd3Jrc3JjPSJweWF0c3BpLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1nbnUtY29u ZmlndXJlCkBAIC0xNCw0ICsxNCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9weWF0c3BpMiIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS9weWF0c3BpLyR7dmVyc2lvbiUuKn0vcHlhdHNwaS0ke3ZlcnNpb259LnRhci54eiIK LWNoZWNrc3VtPTg0OTU0YTViYmVhY2M4MzY0M2YwNTc3OGQ4YmVhZmNhYjgyMDhlMTFiMzliMjQ2 MzdiNGM0ZGQxZjg2MjAzODkKK2NoZWNrc3VtPWZmODA5MzEyZmQwYzJmNjFlMTkxYzE4MWExYTYz OGEzMGI1NzliOTFiNjgyY2ZiNWEwNTUzNWE1NTI2NWI0M2QKCkZyb20gYWQ2MDYyZWQ0MTE3NmFh NTU3YWUyYjJmYWJkNDI2NjdlMDQ0YmNjMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIw MjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1OS8xMDVdIG9yY2E6IHVwZGF0ZSB0 byAzLjM4LjAsIGRyb3Agbm9hcmNoCgotLS0KIHNyY3BrZ3Mvb3JjYS90ZW1wbGF0ZSB8IDUgKyst LS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9vcmNhL3RlbXBsYXRlIGIvc3JjcGtncy9vcmNhL3RlbXBsYXRlCmlu ZGV4IGY3MDIwMmU2ZDc2Li4zOGU5MjM0NmI4NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcmNhL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3JjYS90ZW1wbGF0ZQpAQCAtMSw4ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ29yY2EnCiBwa2duYW1lPW9yY2EKLXZlcnNpb249My4zNi4xCit2ZXJz aW9uPTMuMzguMAogcmV2aXNpb249MQotYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29u ZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9ImludGx0b29sIGl0c3Rvb2wgcGtnLWNvbmZpZyIKIG1h a2VkZXBlbmRzPSJhdC1zcGkyLWF0ay1kZXZlbCBsaWJsb3Vpcy1kZXZlbCBweXRob24zLWdvYmpl Y3QtZGV2ZWwiCkBAIC0xMyw3ICsxMiw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvT3JjYSIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPWMxYWM2NDhiNmJlMzE0ODhjMjZmZjk1OTExNDI4Nzg2OWRmOWNlM2Nh MjE5OTllNDBkZWQ4Nzc0MWM5ODgzMWYKK2NoZWNrc3VtPTFjMzI3OWQ3OTg5OGRiMTBhMTA1YmNi NzA1YjVhNDA0MmIxYjUxYTljMDU3YTZiZDBmZmQ2NWRhYzIzNTZmZWUKIAogaWYgWyAiJENST1NT X0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIHB5dGhvbjMtZ29iamVjdC1kZXZl bCIKCkZyb20gOWFjZWU0MjQxODEwNjgzNzI1ZGY2YjQ1MzI5NjQ2MjRjZWRjZGQ1YiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENI IDA2MC8xMDVdIGdub21lLXdlYXRoZXI6IGJ1bXAKCi0tLQogc3JjcGtncy9nbm9tZS13ZWF0aGVy L3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlIGIvc3Jj cGtncy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlCmluZGV4IGQzMGJlOWJmMTkyLi5jMDI4ZTQ2YmE2 NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ25vbWUtd2VhdGhlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2dub21lLXdlYXRoZXInCiBwa2duYW1lPWdub21lLXdlYXRoZXIKIHZlcnNpb249My4z Ni4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0 eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBpdHN0b29sIGds aWItZGV2ZWwgZ2pzIgoKRnJvbSBhMGQ3MmM5MjY0MGViNTlmOTEyMzg2ZGEyYjcyMWQ0NDc5OTQ3 NTVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDYxLzEwNV0gdnRlMzogdXBkYXRlIHRvIDAuNjIuMAoKLS0tCiBzcmNwa2dz L3Z0ZTMvdGVtcGxhdGUgfCAxOSArKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg OCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Z0 ZTMvdGVtcGxhdGUgYi9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUKaW5kZXggNjExNmIzY2M2MjEuLjQx ZjlmNGU3ZTlhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy92dGUzL3RlbXBsYXRlCkBAIC0xLDI5ICsxLDI4IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd2 dGUzJwogcGtnbmFtZT12dGUzCi12ZXJzaW9uPTAuNjAuMwordmVyc2lvbj0wLjYyLjAKIHJldmlz aW9uPTEKIHdya3NyYz0idnRlLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRf aGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLURiX25kZWJ1Zz1mYWxzZSAtRGdpcj0kKHZv cHRfaWYgZ2lyIHRydWUgZmFsc2UpCi0gLUR2YXBpPSQodm9wdF9pZiB2YWxhIHRydWUgZmFsc2Up IC1EYl9sdG89ZmFsc2UgLURfc3lzdGVtZD1mYWxzZSIKK2NvbmZpZ3VyZV9hcmdzPSItRGJfbmRl YnVnPWZhbHNlIC1EYl9sdG89ZmFsc2UgLURfc3lzdGVtZD1mYWxzZQorICQodm9wdF9ib29sIGdp ciBnaXIpICQodm9wdF9ib29sIGdpciB2YXBpKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZl bCBnbm9tZS1kb2MtdXRpbHMgZ3BlcmYgaW50bHRvb2wgcGtnLWNvbmZpZwotICQodm9wdF9pZiB2 YWxhIHZhbGEpIgotbWFrZWRlcGVuZHM9ImdudXRscy1kZXZlbCBndGsrMy1kZXZlbCBwY3JlMi1k ZXZlbCAkKHZvcHRfaWYgdmFsYSB2YWxhLWRldmVsKSIKLWRlcGVuZHM9InZ0ZSIKKyAkKHZvcHRf aWYgZ2lyIHZhbGEpIgorbWFrZWRlcGVuZHM9ImdudXRscy1kZXZlbCBndGsrMy1kZXZlbCBwY3Jl Mi1kZXZlbCAkKHZvcHRfaWYgZ2lyIHZhbGEtZGV2ZWwpIgogc2hvcnRfZGVzYz0iVGVybWluYWwg d2lkZ2V0IHdpdGggaW1wcm92ZWQgYWNjZXNzaWJpbGl0eSBhbmQgSTE4TiBzdXBwb3J0IgogbWFp bnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQ TC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyLCBMR1BMLTMuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvVGVybWluYWwvVlRFIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9L3Z0ZS8ke3ZlcnNpb24lLip9L3Z0ZS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPWZlYjc2ZTExODFhMzU3ZDg2MTEyZDQ0N2EwOGQxMjdlMjA4MTQzOGRmNzZl Y2U4MzI0M2IxODYwOWRkOTgyMmEKK2NoZWNrc3VtPTRkMmQyNDZlZDQ3ZjA4Y2M3M2Y2NDcxYWE4 ZTlmMzc4OTk4YjdkMGY3ZGNiMGM0MzNmMjlkYTU4MzlkYmIwMTYKIAogIyBTdXBwcmVzcyB3YXJu aW5ncyBhcyBlcnJvcnMgZm9yIE5VTEwgZm9ybWF0IHN0cmluZ3MgKG11c2wgbGliYykKIENYWEZM QUdTPSItV25vLWVycm9yPWZvcm1hdD0iCiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCi1idWls ZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCiti dWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAogcHJlX2J1 aWxkKCkgewogCWV4cG9ydCBHSVJfRVhUUkFfTElCU19QQVRIPSIke3dya3NyY30vc3JjLy5saWJz IgpAQCAtMzgsOCArMzcsNiBAQCB2dGUzLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlICJ1c3Iv bGliLyouc28iCiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1 c3Ivc2hhcmUvZ2lyLTEuMAotCQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRo ZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJfQoKRnJvbSBhODM2Mjk3YzZhMzY2 NjJjZjY2ZDFmYmRkNzJkOGM4MTM2NWY4MTUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcg MjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDYyLzEwNV0gZ25vbWUtdGVybWlu YWw6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0 ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKaW5kZXggYmYzZDViY2RkNDIuLmE0MWM4ZTEy ZDM2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXRlcm1pbmFsL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKQEAgLTEsMTEgKzEsMTEgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2dub21lLXRlcm1pbmFsJwogcGtnbmFtZT1nbm9tZS10ZXJtaW5hbAotdmVy c2lvbj0zLjM2LjEuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtc3RhdGljIC0td2l0aC1uYXV0 aWx1cy1leHRlbnNpb24iCiBob3N0bWFrZWRlcGVuZHM9ImFwcGRhdGEtdG9vbHMgZ2xpYi1kZXZl bCBpbnRsdG9vbCBpdHN0b29sCi0gcGtnLWNvbmZpZyIKKyBwa2ctY29uZmlnIGRvY2Jvb2steHNs IGxpYnhzbHQiCiBtYWtlZGVwZW5kcz0iZGNvbmYtZGV2ZWwgZ25vbWUtc2hlbGwgZ3NldHRpbmdz LWRlc2t0b3Atc2NoZW1hcy1kZXZlbAogIG5hdXRpbHVzLWRldmVsIHZ0ZTMtZGV2ZWwiCiBkZXBl bmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCkBAIC0xMyw4ICsxMyw4IEBAIHNob3J0X2Rlc2M9IkdO T01FIHRlcm1pbmFsIGVtdWxhdG9yIGFwcGxpY2F0aW9uIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdG REwtMS4zLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1Rlcm1p bmFsIgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uOjA6NH0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWYzZDcwOGExZTc2ZDc3YzFj ODViMTI2ZjZlMDAzMjIwYTE1ZDRhNDZhNTBmZDgwNzBlMWEzYWFiZTY3OGEzNzYKK2Rpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKK2NoZWNrc3VtPTBhMGZjN2E4YjM4M2M2ZmZkNjE0NjliZTFkZWE1YmE2 M2NmZmFkODEyOTIxNzgwZTdmYWQ0MGMyZTJhZTU0ZjUKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKIGlm IFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgoKRnJvbSBhODU0ZWFlN2E0MWJhNmFjOGMzZWM4Yjc5 N2Y4YzA3YmI2OGRjMTU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODow OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDYzLzEwNV0gZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRv Y3M6IHVwZGF0ZSB0byAzLjM2LjIKCi0tLQogc3JjcGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQt ZG9jcy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWdldHRpbmctc3RhcnRl ZC1kb2NzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1w bGF0ZQppbmRleCA1YmVjOTM0OTBiYS4uYmVkOWI2OTYxNjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Z25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1n ZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzJwogcGtnbmFtZT1nbm9tZS1nZXR0 aW5nLXN0YXJ0ZWQtZG9jcwotdmVyc2lvbj0zLjM0LjAKK3ZlcnNpb249My4zNi4yCiByZXZpc2lv bj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTExLDQgKzEx LDQgQEAgbGljZW5zZT0iQ0MtQlktU0EtMy4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdu b21lLm9yZy9HTk9NRS9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcyIKICNjaGFuZ2Vsb2c9Imh0 dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy9y YXcvbWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3Zl cnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mNzBjZTJj YTIzYWQ3ODYyMTVmM2M5MmVjODU3ODNlM2FhYmVkMDdlNGY3ODcwMGZhMjdmOWIyY2Y3NmUwM2Ri CitjaGVja3N1bT0wNDk0Yjg5MTNhOTQ2YjY0NTA1MzZlMTIwYzE1NGFiZDI5MjM4ZWJiYTJmNTI3 MzQ1OTJiMWY2NDVlNTIxZGM2CgpGcm9tIDRiMDI2ZGEwNTI4NGRhMTdkMzFjZDUxZDk2OWY0NGFl MzA4MzA0ZjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAw ClN1YmplY3Q6IFtQQVRDSCAwNjQvMTA1XSBnbm9tZS11c2VyLWRvY3M6IHVwZGF0ZSB0byAzLjM4 LjAsIGRyb3Agbm9hcmNoCgotLS0KIHNyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlIHwg NSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Z25vbWUtdXNlci1kb2NzL3RlbXBsYXRlCmluZGV4IDRjYjU1Mzk2ZTM3Li5mOTk0MmUyNDg0MyAx MDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS11c2VyLWRvY3MvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9nbm9tZS11c2VyLWRvY3MvdGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdnbm9tZS11c2VyLWRvY3MnCiBwa2duYW1lPWdub21lLXVzZXItZG9jcwotdmVyc2lv bj0zLjM0LjAKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCi1hcmNocz1ub2FyY2gKIGJ1aWxk X3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmln IGl0c3Rvb2wgZ25vbWUtZG9jLXV0aWxzIgogbWFrZWRlcGVuZHM9InllbHAiCkBAIC0xMyw0ICsx Miw0IEBAIGxpY2Vuc2U9IkNDLUJZLTMuMCIKIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20v R05PTUUvZ25vbWUtdXNlci1kb2NzIgogI2NoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNl cmNvbnRlbnQuY29tL0dOT01FL2dub21lLXVzZXItZG9jcy9tYXN0ZXIvTkVXUyIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPThmOTkwN2ZmMTVmZmY5N2RhNzVlY2U2NDVjYzg2NzY2 NzAzYWM1NGQ3MTZkMjU1NjNiYTY3ZmZlZDFhZjI0ZWQKK2NoZWNrc3VtPTM4ZDNkYjViNWRjNTkx MjgxMmEyYzZjYjI5NzY1YmZiMzkyNDJjZWRjZDdlZTM0N2RmOThmY2E3NzdkY2VlOGEKCkZyb20g ZGRjNjRhNDY1OTQwMzVjYmZhNTRjYWM0NjZiOTE0NjJmMzRiZmJjNiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA2NS8xMDVd IGdub21lLWVwdWItdGh1bWJuYWlsZXI6IHVwZGF0ZSB0byAxLjYKCi0tLQogc3JjcGtncy9nbm9t ZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt ZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxl ci90ZW1wbGF0ZQppbmRleCBiMTZlNzA1NDc1Zi4uYzZlMWMwMmI5ZDMgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21l LWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdnbm9tZS1lcHViLXRodW1ibmFpbGVyJwogcGtnbmFtZT1nbm9tZS1lcHViLXRodW1i bmFpbGVyCi12ZXJzaW9uPTEuNQordmVyc2lvbj0xLjYKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxl PWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKQEAgLTEwLDQgKzEw LDQgQEAgbWFpbnRhaW5lcj0iQWxpZiBSYWNobWF3YWRpIDxhcmNoQHN1Ym9zaXRvLmNvbT4iCiBs aWNlbnNlPSJHUEwtMyIKIGhvbWVwYWdlPSJodHRwczovL2dpdC5nbm9tZS5vcmcvYnJvd3NlL2du b21lLWVwdWItdGh1bWJuYWlsZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zMDgy MTBmNTgwMDIxOWY2NGNhZTQ4MjhlNTliYjhlNmU0YzUzYjg4ODA0OGNmNDg3MjIxYWViNDMzN2Q3 OTFhCitjaGVja3N1bT1iNTAyNDIwZDliMDJlYTBiMGZjNzk4NmVmNWEwOTFhMTJiMjI4NmJlMTRm ZWQ5ZTQ3NTk0ZmU5ZmEwYzU4OThlCgpGcm9tIGUxOTE0Y2Y1MWI0OWFmNWU4NmEyZDA5NDcwZDNm YmIyMzlmMGMzNWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwNjYvMTA1XSBnbm9tZS1ib29rczogYnVtcAoKLS0tCiBzcmNw a2dzL2dub21lLWJvb2tzL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1ib29rcy90 ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYm9va3MvdGVtcGxhdGUKaW5kZXggMTE0YjllMDM0YzIu LjFkNDk3NGZlMTgzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZ25vbWUtYm9va3MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdnbm9tZS1ib29rcycKIHBrZ25hbWU9Z25vbWUtYm9va3MKIHZlcnNpb249 My4zNC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxk X3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgdmFsYSBnbGliLWRldmVs IGxpYnJzdmcgZG9jYm9vay14c2wgbGlieHNsdAoKRnJvbSAzOGMxYzVkMTM0MWVkMjU4OWZkZTUx OWYxYWEzODY4Y2U2OWRlOWZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0 ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDY3LzEwNV0gZ25vbWUtY2hhcmFjdGVyczogYnVt cAoKLS0tCiBzcmNwa2dzL2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNoYXJhY3RlcnMv dGVtcGxhdGUKaW5kZXggODk4NjhmNGJjMDQuLmFjMjY0ZTUxYTZhIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLWNoYXJhY3RlcnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1jaGFyYWN0 ZXJzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUt Y2hhcmFjdGVycycKIHBrZ25hbWU9Z25vbWUtY2hhcmFjdGVycwogdmVyc2lvbj0zLjM0LjAKLXJl dmlzaW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9Imdp ciIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnanMgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1j b25maWciCgpGcm9tIDY1OTAxMWQxNmJmOGVkOTBlZDU2ZjA4YjFjODBlZWRmNzRiZDMwMDMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNjgvMTA1XSBnbm9tZS1kb2N1bWVudHM6IGJ1bXAKCi0tLQogc3JjcGtncy9nbm9tZS1k b2N1bWVudHMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZG9jdW1lbnRzL3RlbXBsYXRlCmluZGV4IDk3YjUzZDYzNWQ3 Li43ZTQ1YjgyNWU3MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1kb2N1bWVudHMnCiBwa2duYW1lPWdub21lLWRv Y3VtZW50cwogdmVyc2lvbj0zLjM0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX2hl bHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14 c2wgZ2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWcgZ2xpYi1kZXZlbCBsaWJ4c2x0IGdkay1waXhi dWYKCkZyb20gZTc0ZDAxYzRkMGMzOWFmZjE0N2EyYmI4OTY4YjMyMzA1NTIxYWM0OCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENI IDA2OS8xMDVdIGdub21lLWZvbnQtdmlld2VyOiBidW1wCgotLS0KIHNyY3BrZ3MvZ25vbWUtZm9u dC12aWV3ZXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWZvbnQtdmlld2VyL3Rl bXBsYXRlIGIvc3JjcGtncy9nbm9tZS1mb250LXZpZXdlci90ZW1wbGF0ZQppbmRleCA2ZDAzNTM2 NmQ0NC4uZjc0ZmNiY2IwMDAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1mb250LXZpZXdlci90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWZvbnQtdmlld2VyJwogcGtnbmFt ZT1nbm9tZS1mb250LXZpZXdlcgogdmVyc2lvbj0zLjM0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9u PTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1k ZXZlbCIKIG1ha2VkZXBlbmRzPSJmb250Y29uZmlnLWRldmVsIGZyZWV0eXBlLWRldmVsIGdsaWIt ZGV2ZWwgZ3RrKzMtZGV2ZWwKCkZyb20gNjEyZjk1MDExM2U0MDI1OWMxMmZlMTFlY2VjZDhmZjEx ZDU3OGEyNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAK U3ViamVjdDogW1BBVENIIDA3MC8xMDVdIHRvdGVtOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNy Y3BrZ3MvdG90ZW0vdGVtcGxhdGUgfCAxNiArKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgOSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv dG90ZW0vdGVtcGxhdGUgYi9zcmNwa2dzL3RvdGVtL3RlbXBsYXRlCmluZGV4IDgxNTIyYjMxNDg4 Li41NmZiMTUyNzBmYiAxMDA2NDQKLS0tIGEvc3JjcGtncy90b3RlbS90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL3RvdGVtL3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICd0b3RlbScKIHBrZ25hbWU9dG90ZW0KLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzgu MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29u ZmlndXJlX2FyZ3M9Ii1EZW5hYmxlLXB5dGhvbj1ubyAtRGVuYWJsZS1uYXV0aWx1cz15ZXMKICAt RGVuYWJsZS1pbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgeWVzIG5vKQotIC1EZW5hYmxlLXZh bGE9JCh2b3B0X2lmIHZhbGEgeWVzIG5vKSIKKyAtRGVuYWJsZS12YWxhPSQodm9wdF9pZiBnaXIg eWVzIG5vKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ25vbWUtZG9jLXV0aWxzIGludGx0b29sIGl0c3Rv b2wgcGtnLWNvbmZpZwotICQodm9wdF9pZiB2YWxhIHZhbGEpIGdzdHJlYW1lcjEgZ3N0LXBsdWdp bnMtYmFzZTEgZ3N0LXBsdWdpbnMtZ29vZDEKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpIGdzdHJlYW1l cjEgZ3N0LXBsdWdpbnMtYmFzZTEgZ3N0LXBsdWdpbnMtZ29vZDEKICBnbGliLWRldmVsIgogIyBY WFggbWlzc2luZyBsaXJjIHBsdWdpbi4KIG1ha2VkZXBlbmRzPSJjbHV0dGVyLWdzdDMtZGV2ZWwg Y2x1dHRlci1ndGstZGV2ZWwgZGJ1cy1nbGliLWRldmVsCkBAIC0yMSwxNiArMjEsMTggQEAgbWFp bnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxH UEwtMi4wLW9yLWxhdGVyLCBHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvQXBwcy9WaWRlb3MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT02YmY4OWFiMDk2ZGZjNTY0ZjI2MDk3NmU0ODQxNjVmMDliZDg4NjQzNGQxODQ0MTBkMmY5NDRi ZmJhNjExYTA5CitjaGVja3N1bT1hODI5ZjJiNWFhMDQzNWFhNDMxODE2MTUzMTkzZDU1NDdmYWRl OWViOGQ0ODlmNTZiZTIyYWZiZTY1MWM0MzJmCiAKICMgWFhYIHh1bHJ1bm5lciBwbHVnaW4uCiAj IFhYWCByZWVuYWJsZSBweXRob24gcGx1Z2luIGlmIHB5bGludCBwa2cgZXhpc3RzLgogI3B5Y29t cGlsZV9kaXJzPSJ1c3IvbGliL3RvdGVtL3BsdWdpbnMiCiAKLWRpc2FibGVfcGFyYWxsZWxfYnVp bGQ9eWVzCitkb19jaGVjaygpIHsKKwk6Cit9CiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgot YnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1 aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBsaWJ0b3RlbV9wYWNrYWdlKCkgewogCXNob3J0 X2Rlc2MrPSIgLSBydW50aW1lIGxpYnJhcnkiCgpGcm9tIGJkNzEzODQ5ZDk1ZTk4Y2Q4OGUwMDVi N2JkNjNlMzRiNzhjOGIwOTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4 OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzEvMTA1XSBnbm9tZS1zY3JlZW5zYXZlcjogYnVt cCArIGZpeCBidWlsZAoKLS0tCiBzcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVp bGQucGF0Y2ggfCAxMiArKysrKysrKysrKysKIHNyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvdGVt cGxhdGUgICAgICAgICAgICB8ICAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLXNjcmVl bnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNj cmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVy L3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjZkY2RiZTdkZDdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5z YXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKKy0tLSBzcmMvZ3MtbWFu YWdlci5jCisrKysgc3JjL2dzLW1hbmFnZXIuYworQEAgLTgyMCw4ICs4MjAsNyBAQCBhcHBseV9i YWNrZ3JvdW5kX3RvX3dpbmRvdyAoR1NNYW5hZ2VyICptYW5hZ2VyLAorICAgICAgICAgc3VyZmFj ZSA9IGdub21lX2JnX2NyZWF0ZV9zdXJmYWNlIChtYW5hZ2VyLT5wcml2LT5iZywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RrX3dpbmRvdywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UpOworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQpOworICAgICAgICAgZ3Nfd2luZG93X3NldF9i YWNrZ3JvdW5kX3N1cmZhY2UgKHdpbmRvdywgc3VyZmFjZSk7CisgICAgICAgICBjYWlyb19zdXJm YWNlX2Rlc3Ryb3kgKHN1cmZhY2UpOworIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2Ny ZWVuc2F2ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3RlbXBsYXRlCmlu ZGV4IDM2M2ZjZjEyZTEwLi5jM2E3MGNmZWY3YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1z Y3JlZW5zYXZlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3RlbXBs YXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2NyZWVuc2F2 ZXInCiBwa2duYW1lPWdub21lLXNjcmVlbnNhdmVyCiB2ZXJzaW9uPTMuNi4xCi1yZXZpc2lvbj0y CityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0i LS1lbmFibGUtY29tcGlsZS13YXJuaW5ncz1taW5pbXVtIgogaG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIGF1dG9tYWtlIGludGx0b29sIGdsaWItZGV2ZWwiCgpGcm9tIDNkMjI5YzZlMzZjYjY1 MjYzNmY4NjkxNmU1ZTVhM2RjNDkyOTM2ZjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAy MDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzIvMTA1XSBnbm9tZS1jbG9ja3M6 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUgfCA2 ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25v bWUtY2xvY2tzL3RlbXBsYXRlCmluZGV4IDNlMDQ5YjQyZmIxLi43MmY3MWY5MjY4YyAxMDA2NDQK LS0tIGEvc3JjcGtncy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1j bG9ja3MvdGVtcGxhdGUKQEAgLTEsMTIgKzEsMTIgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2du b21lLWNsb2NrcycKIHBrZ25hbWU9Z25vbWUtY2xvY2tzCi12ZXJzaW9uPTMuMzYuMAordmVyc2lv bj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVz b24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBpdHN0b29sIGdsaWItZGV2 ZWwgdmFsYSIKIG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHZhbGEtZGV2ZWwgZ25vbWUtZGVza3Rv cC1kZXZlbAotIGxpYmd3ZWF0aGVyLWRldmVsIGxpYmhhbmR5LWRldmVsIGxpYm5vdGlmeS1kZXZl bCBnc291bmQtZGV2ZWwKKyBsaWJnd2VhdGhlci1kZXZlbCBsaWJoYW5keTEtZGV2ZWwgbGlibm90 aWZ5LWRldmVsIGdzb3VuZC1kZXZlbAogIGdlb2NvZGUtZ2xpYi1kZXZlbCBkZXNrdG9wLWZpbGUt dXRpbHMgaGljb2xvci1pY29uLXRoZW1lCiAgZ2VvY2x1ZTItZGV2ZWwiCiBkZXBlbmRzPSJkZXNr dG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIgpAQCAtMTUsNCArMTUsNCBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQ2xv Y2tzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NGM5NzhiMGM3ZjdiOWRhZWJk MjcyZDAxNzVmOGE1NDQxNWUyMDc4ZjEzNGY0OGFkZDVjZjI0MzYyZWVmNDljNgorY2hlY2tzdW09 ZDk1NmNiMDUwZjFjYTQ2YjQ0MzUxOWU0ZjU5YWIyMDQyOTBkNjI3MGRlYzkxYzc0YjUzODk1YWVj Yzc5NDQzOAoKRnJvbSBjZWUwM2M1NGFiMjlhYzc0NDliMTljNmM1MzdiODg3ZGZlYjk1YzYzIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDczLzEwNV0gZXBpcGhhbnk6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9l cGlwaGFueS90ZW1wbGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lcGlwaGFueS90ZW1w bGF0ZSBiL3NyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUKaW5kZXggNWQ2YWM2YTYzN2QuLmYyM2Iy M2M2ZmJlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2VwaXBoYW55L3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZXBpcGhhbnkvdGVtcGxhdGUKQEAgLTEsMTkgKzEsMTkgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2VwaXBoYW55JwogcGtnbmFtZT1lcGlwaGFueQotdmVyc2lvbj0zLjM2LjIKK3ZlcnNpb249 My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29u CiBjb25maWd1cmVfYXJncz0iLURkaXN0cmlidXRvcl9uYW1lPVZvaWRMaW51eCAtRHVuaXRfdGVz dHM9ZGlzYWJsZWQiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29s IHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYXZhaGktZ2xp Yi1saWJzLWRldmVsIGdjci1kZXZlbAotIGdub21lLWRlc2t0b3AtZGV2ZWwganNvbi1nbGliLWRl dmVsIGxpYmRhenpsZS1kZXZlbCBsaWJoYW5keS1kZXZlbAorIGdub21lLWRlc2t0b3AtZGV2ZWwg anNvbi1nbGliLWRldmVsIGxpYmRhenpsZS1kZXZlbCBsaWJoYW5keTEtZGV2ZWwKICBsaWJub3Rp ZnktZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYnNvdXAtZ25vbWUtZGV2ZWwgbGlid25jay1kZXZl bCBsaWJ4c2x0LWRldmVsCi0gbmV0dGxlLWRldmVsIG5zcy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVs IgorIG5ldHRsZS1kZXZlbCBuc3MtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCBsaWJwb3J0YWwtZGV2 ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIGlzby1j b2RlcyB3ZWJraXQyZ3RrIgogc2hvcnRfZGVzYz0iSW50dWl0aXZlIEdOT01FIHdlYiBicm93c2Vy IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9B cHBzL1dlYiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWMyZTY3NmFhMGZlMjEx ODA5YTVlN2U4YTdlNDYxZDE4Mjg5MGYyNTNjNTNmNDYxMGYyNjEwMDk0YjZmYmZiNWUKK2NoZWNr c3VtPTIyOGU4MjBkN2M3Zjg1NDFlNGRiNWVjYzZjODFiNWE4OGJkZTliMWVhMTdjYWU0YTVmMzg0 NDZmNzk4OWM1NTIKCkZyb20gZTZiYmNiYWNkNjczYjYyYzQxY2MxMWQ1YTYwZTE0ZmJjYTUwYjE5 NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVj dDogW1BBVENIIDA3NC8xMDVdIGdub21lLWNvbnRhY3RzOiB1cGRhdGUgdG8gMy4zNy4yCgotLS0K IHNyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUgfCAxMyArKysrKystLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNvbnRhY3Rz L3RlbXBsYXRlCmluZGV4IDJhODIxM2E3MjQwLi5hYTRlZjk0MDEzNiAxMDA2NDQKLS0tIGEvc3Jj cGtncy9nbm9tZS1jb250YWN0cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWNvbnRhY3Rz L3RlbXBsYXRlCkBAIC0xLDE2ICsxLDE1IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1j b250YWN0cycKIHBrZ25hbWU9Z25vbWUtY29udGFjdHMKLXZlcnNpb249My4zNC4wCi1yZXZpc2lv bj0yCi13cmtzcmM9Imdub21lLWNvbnRhY3RzLSR7dmVyc2lvbiUuKn0iCit2ZXJzaW9uPTMuMzcu MgorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0iZG9jYm9v ay14c2wgZ2V0dGV4dCBnbGliLWRldmVsIGxpYnhzbHQgcGtnLWNvbmZpZyB2YWxhIgoraG9zdG1h a2VkZXBlbmRzPSJkb2Nib29rLXhzbCBmb2xrcy1kZXZlbCBnZXR0ZXh0IGdsaWItZGV2ZWwgbGli eHNsdCBwa2ctY29uZmlnIHZhbGEiCiBtYWtlZGVwZW5kcz0iY2hlZXNlLWRldmVsIGZvbGtzLWRl dmVsIGdlb2NvZGUtZ2xpYi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsCi0gbGliY2hhbXBsYWlu LWRldmVsIGxpYm5vdGlmeS1kZXZlbCB2YWxhLWRldmVsIGxpYmhhbmR5LWRldmVsIgorIGxpYmNo YW1wbGFpbi1kZXZlbCBsaWJub3RpZnktZGV2ZWwgdmFsYS1kZXZlbCBsaWJoYW5keTEtZGV2ZWwi CiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCiBzaG9ydF9kZXNjPSJHTk9NRSBjb250YWN0 cyBtYW5hZ2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3Jn PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdu b21lLm9yZy9BcHBzL0NvbnRhY3RzIgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbiUuKn0udGFyLnh6IgotY2hlY2tz dW09OTk2MDJlYzhkNjYwYzFmM2M5MmNhZTYzNTZmNjRmNzJmYjZkYjU4ZTU1YmNlMjdhNTk5MzMw YmY3YjYyMmYxMgorZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9u JS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09MWQzNDY5ZDVlOTBm MjNkMTI5ZDEyNzZiMmY5Yjg4NTQ1OWYzZDdiNDMwNTRjZDA5NzU5Yjg1YWM3NmM5MThiNAoKRnJv bSBjNjYwMTQ2Y2U3MTRhZWE0Zjk5YWE5NDgzNTYwNDhjY2U1NmUzZWYxIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDc1LzEw NV0gZ25vbWUtcGhvdG9zOiB1cGRhdGUgdG8gMy4zNy45MS4xLCB1c2UgdHJhY2tlcjMKCi0tLQog c3JjcGtncy9nbm9tZS1waG90b3MvcGF0Y2hlcy90cmFja2VyMy5wYXRjaCB8IDQyNTQgKysrKysr KysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUgICAgICAgICAgICAg ICB8ICAgMTEgKy0KIDIgZmlsZXMgY2hhbmdlZCwgNDI2MCBpbnNlcnRpb25zKCspLCA1IGRlbGV0 aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtcGhvdG9zL3BhdGNoZXMv dHJhY2tlcjMucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXBob3Rvcy9wYXRjaGVz L3RyYWNrZXIzLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1waG90b3MvcGF0Y2hlcy90cmFja2VyMy5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDA2ZGNhMzBmZDQK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLXBob3Rvcy9wYXRjaGVzL3RyYWNrZXIz LnBhdGNoCkBAIC0wLDAgKzEsNDI1NCBAQAorRnJvbSBiNGE4ZGUxZWY3OWM5NGMxYzExYjczMDc4 NzEwOGYzMDVjOTYyZTM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2FtIFRodXJz ZmllbGQgPHNhbUBhZnVlcmEubWUudWs+CitEYXRlOiBXZWQsIDI2IEF1ZyAyMDIwIDAxOjU3OjQ2 ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMS80XSBwaG90b3MtdHJhY2tlci1jb250cm9sbGVyOiBM YWJlbCB1bml0IG9mIHRpbWluZworIG1lYXN1cmVtZW50cworCitPdGhlcndpc2UsIGl0J3Mgbm90 IGNsZWFyIGlmIHRoZXNlIGFyZSB0aW1pbmdzIG9yIHNvbWUga2luZCBvZiBJRAorbnVtYmVyLgor LS0tCisgc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYyB8IDQgKystLQorIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9z cmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5jIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRy b2xsZXIuYworaW5kZXggYTAyZGIwNzcuLjNhNjJjZjJkIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rv cy10cmFja2VyLWNvbnRyb2xsZXIuYworKysrIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xs ZXIuYworQEAgLTIzNyw3ICsyMzcsNyBAQCBwaG90b3NfdHJhY2tlcl9jb250cm9sbGVyX2N1cnNv cl9uZXh0IChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcworICAgICB9 CisgCisgICBub3cgPSBnX2dldF9tb25vdG9uaWNfdGltZSAoKTsKKy0gIHBob3Rvc19kZWJ1ZyAo UEhPVE9TX0RFQlVHX1RSQUNLRVIsICJRdWVyeSBDdXJzb3I6ICUiIEdfR0lOVDY0X0ZPUk1BVCwg KG5vdyAtIHByaXYtPmxhc3RfcXVlcnlfdGltZSkgLyAxMDAwMDAwKTsKKysgIHBob3Rvc19kZWJ1 ZyAoUEhPVE9TX0RFQlVHX1RSQUNLRVIsICJRdWVyeSBDdXJzb3I6ICUiIEdfR0lOVDY0X0ZPUk1B VCAiIHNlY29uZHMiLCAobm93IC0gcHJpdi0+bGFzdF9xdWVyeV90aW1lKSAvIDEwMDAwMDApOwor IAorICAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9hZGRfaXRlbV9mb3JfbW9kZSAoUEhPVE9TX0lURU1f TUFOQUdFUiAocHJpdi0+aXRlbV9tbmdyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBIT1RPU19UUkFDS0VSX0NPTlRST0xMRVJfR0VUX0NMQVNTIChzZWxmKS0+ YmFzZV9pdGVtX3R5cGUsCitAQCAtMzQ2LDcgKzM0Niw3IEBAIHBob3Rvc190cmFja2VyX2NvbnRy b2xsZXJfc2V0X3F1ZXJ5X3N0YXR1cyAoUGhvdG9zVHJhY2tlckNvbnRyb2xsZXIgKnNlbGYsIGdi b29sCisgICBlbHNlCisgICAgIHsKKyAgICAgICBwaG90b3NfZGVidWcgKFBIT1RPU19ERUJVR19U UkFDS0VSLAorLSAgICAgICAgICAgICAgICAgICAgIlF1ZXJ5IEVsYXBzZWQ6ICUiIEdfR0lOVDY0 X0ZPUk1BVCwKKysgICAgICAgICAgICAgICAgICAgICJRdWVyeSBFbGFwc2VkOiAlIiBHX0dJTlQ2 NF9GT1JNQVQgIiBzZWNvbmRzIiwKKyAgICAgICAgICAgICAgICAgICAgIChub3cgLSBwcml2LT5s YXN0X3F1ZXJ5X3RpbWUpIC8gMTAwMDAwMCk7CisgICAgICAgcHJpdi0+bGFzdF9xdWVyeV90aW1l ID0gMDsKKyAgICAgfQorLS0gCitHaXRMYWIKKworCitGcm9tIDdjOThhODg0YmE2YTI2Nzk1ZWEy NWE4NzgwMDAyYWMxMDEwMzY4ODcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTYW0g VGh1cnNmaWVsZCA8c2FtQGFmdWVyYS5tZS51az4KK0RhdGU6IFdlZCwgMjcgTWF5IDIwMjAgMTM6 MDc6NTggKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzRdIEZpeCBidWlsZCBmYWlsdXJlIGR1ZSB0 byB1bmRlZmluZWQgTV9QSSBjb25zdGFudAorCitUaGUgPG1hdGguaD4gaGVhZGVyIG5lZWRzIHRv IGJlIGluY2x1ZGVkLgorCitQcmV2aW91c2x5IEkgc3VwcG9zZSBsaWJ0cmFja2VyLXNwYXJxbC5o IHB1bGxlZCB0aGlzIGluLgorLS0tCisgc3JjL3Bob3Rvcy11dGlscy5jIHwgMSArCisgMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXV0aWxz LmMgYi9zcmMvcGhvdG9zLXV0aWxzLmMKK2luZGV4IDQwMWY1MmJhLi5jNjM4Mjk3YiAxMDA2NDQK Ky0tLSBhL3NyYy9waG90b3MtdXRpbHMuYworKysrIGIvc3JjL3Bob3Rvcy11dGlscy5jCitAQCAt MzAsNiArMzAsNyBAQAorICNpbmNsdWRlIDxnbGliLmg+CisgI2luY2x1ZGUgPHRyYWNrZXItc3Bh cnFsLmg+CisgI2luY2x1ZGUgPGxpYmdkL2dkLmg+CisrI2luY2x1ZGUgPG1hdGguaD4KKyAKKyAj aW5jbHVkZSAicGhvdG9zLWFwcGxpY2F0aW9uLmgiCisgI2luY2x1ZGUgInBob3Rvcy1kZXZpY2Ut aXRlbS5oIgorLS0gCitHaXRMYWIKKworCitGcm9tIDBlNGJkN2JiYzgwNTY3NDNhOGVhMDdhYjM3 MTNhZDU0M2MwMGQ0NzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTYW0gVGh1cnNm aWVsZCA8c2FtQGFmdWVyYS5tZS51az4KK0RhdGU6IFN1biwgNyBKdW4gMjAyMCAyMTo1MzoyMCAr MDIwMAorU3ViamVjdDogW1BBVENIIDMvNF0gR2VuZXJhdGUgcXVlcmllcyB1c2luZyBTUEFSUUwg dGVtcGxhdGVzCisKK1RoZSBjb2RlIHRvIGdlbmVyYXRlIFNQQVJRTCBxdWVyaWVzIHdhcyBzcGxp dCBhY3Jvc3MgbWFueSBkaWZmZXJlbnQKK3NvdXJjZSBmaWxlcywgbWFraW5nIGl0IGRpZmZpY3Vs dCB0byBtYWtlIGJpZyBjaGFuZ2VzLiBOb3cgdGhlCitxdWVyaWVzIGFyZSB3cml0dGVuIG91dCBh cyB0ZW1wbGF0ZXMgYW5kIHdlIHVzZSB0ZW1wbGF0ZSBzdWJzdGl0dXRpb24KK3RvIGJ1aWxkIHRo ZSBTUEFSUUwgdGhhdCB3ZSBzZW5kIHRvIFRyYWNrZXIuCistLS0KKyBzcmMvbWVzb24uYnVpbGQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKKyBzcmMvcGhvdG9zLWJhc2UtbWFu YWdlci5jICAgICAgICAgICAgICAgICAgIHwgIDE1ICsrCisgc3JjL3Bob3Rvcy1iYXNlLW1hbmFn ZXIuaCAgICAgICAgICAgICAgICAgICB8ICAgNCArCisgc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmMg ICAgICAgICAgICAgICAgICAgICB8ICAgOCAtCisgc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmggICAg ICAgICAgICAgICAgICAgICB8ICAgMyAtCisgc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMgICAg ICAgICAgICAgICAgICB8IDIwNyArKysrKysrKystLS0tLS0tLS0tLQorIHNyYy9waG90b3Mtc2Vh cmNoLXR5cGUtbWFuYWdlci5jICAgICAgICAgICAgfCAgNTkgKy0tLS0tCisgc3JjL3Bob3Rvcy1z ZWFyY2gtdHlwZS5jICAgICAgICAgICAgICAgICAgICB8ICA2NyArKystLS0tCisgc3JjL3Bob3Rv cy1zZWFyY2gtdHlwZS5oICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQorIHNyYy9waG90b3Mt c3BhcnFsLXRlbXBsYXRlLmMgICAgICAgICAgICAgICAgfCAxODcgKysrKysrKysrKysrKysrKysr Cisgc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuaCAgICAgICAgICAgICAgICB8ICAzOCArKysr Cisgc3JjL3Bob3Rvcy5ncmVzb3VyY2UueG1sICAgICAgICAgICAgICAgICAgICB8ICAgNCArCisg c3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZSAgICAgICAgICAgICB8ICAzMSArKysKKyBz cmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUgICAgIHwgIDE0ICsrCisgc3Jj L3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSB8ICAxMiArKworIHNyYy9x dWVyaWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUgICAgICAgICAgfCAgMTEgKysKKyAxNiBmaWxl cyBjaGFuZ2VkLCA0NDYgaW5zZXJ0aW9ucygrKSwgMjI1IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5jCisgY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy9waG90b3Mtc3BhcnFsLXRlbXBsYXRlLmgKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcXVl cmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlCisKK2RpZmYgLS1naXQgYS9z cmMvbWVzb24uYnVpbGQgYi9zcmMvbWVzb24uYnVpbGQKK2luZGV4IDk5MTlmMGNmLi5iNWIyNzU5 YyAxMDA2NDQKKy0tLSBhL3NyYy9tZXNvbi5idWlsZAorKysrIGIvc3JjL21lc29uLmJ1aWxkCitA QCAtMTk1LDYgKzE5NSw3IEBAIHNvdXJjZXMgPSBjb21tb25fc291cmNlcyArIGZpbGVzKAorICAg J3Bob3Rvcy1zb3VyY2UuYycsCisgICAncGhvdG9zLXNvdXJjZS1tYW5hZ2VyLmMnLAorICAgJ3Bo b3Rvcy1zb3VyY2Utbm90aWZpY2F0aW9uLmMnLAorKyAgJ3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUu YycsCisgICAncGhvdG9zLXNwaW5uZXItYm94LmMnLAorICAgJ3Bob3Rvcy10aHVtYm5haWwtZmFj dG9yeS5jJywKKyAgICdwaG90b3MtdG9vbC5jJywKK0BAIC0yOTAsNiArMjkxLDEwIEBAIHJlc291 cmNlX2RhdGEgPSBmaWxlcygKKyAgICdwaG90b3Mtc2VsZWN0aW9uLXRvb2xiYXIudWknLAorICAg J3Bob3Rvcy1zaGFyZS1kaWFsb2cudWknLAorICAgJ3Bob3Rvcy16b29tLWNvbnRyb2xzLnVpJywK KysgICdxdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUnLAorKyAgJ3F1ZXJpZXMvY29sbGVjdGlv bnMuc3BhcnFsLnRlbXBsYXRlJywKKysgICdxdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwu dGVtcGxhdGUnLAorKyAgJ3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZScsCisgKQorIAor IHNvdXJjZXMgKz0gZ25vbWUuY29tcGlsZV9yZXNvdXJjZXMoCitkaWZmIC0tZ2l0IGEvc3JjL3Bo b3Rvcy1iYXNlLW1hbmFnZXIuYyBiL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmMKK2luZGV4IGQ0 OWQxOWE1Li4wNTI2MzhkNSAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmMK KysrKyBiL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmMKK0BAIC0yNTAsNiArMjUwLDEyIEBAIHBo b3Rvc19iYXNlX21hbmFnZXJfZGVmYXVsdF9nZXRfd2hlcmUgKFBob3Rvc0Jhc2VNYW5hZ2VyICpz ZWxmLCBnaW50IGZsYWdzKQorIH0KKyAKKyAKKytzdGF0aWMgUGhvdG9zU3BhcnFsVGVtcGxhdGUg KgorK3Bob3Rvc19iYXNlX21hbmFnZXJfZGVmYXVsdF9nZXRfc3BhcnFsX3RlbXBsYXRlIChQaG90 b3NCYXNlTWFuYWdlciAqc2VsZiwgZ2ludCBmbGFncykKKyt7CisrICByZXR1cm4gTlVMTDsKKyt9 CisrCisgc3RhdGljIHZvaWQKKyBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfcmVtb3ZlX29i amVjdF9ieV9pZCAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGNvbnN0IGdjaGFyICppZCkKKyB7 CitAQCAtNDM4LDYgKzQ0NCw3IEBAIHBob3Rvc19iYXNlX21hbmFnZXJfY2xhc3NfaW5pdCAoUGhv dG9zQmFzZU1hbmFnZXJDbGFzcyAqY2xhc3MpCisgICBjbGFzcy0+Z2V0X29iamVjdF9ieV9pZCA9 IHBob3Rvc19iYXNlX21hbmFnZXJfZGVmYXVsdF9nZXRfb2JqZWN0X2J5X2lkOworICAgY2xhc3Mt PmdldF9wcmV2aW91c19vYmplY3QgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X3By ZXZpb3VzX29iamVjdDsKKyAgIGNsYXNzLT5nZXRfd2hlcmUgPSBwaG90b3NfYmFzZV9tYW5hZ2Vy X2RlZmF1bHRfZ2V0X3doZXJlOworKyAgY2xhc3MtPmdldF9zcGFycWxfdGVtcGxhdGUgPSBwaG90 b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X3NwYXJxbF90ZW1wbGF0ZTsKKyAgIGNsYXNzLT5y ZW1vdmVfb2JqZWN0X2J5X2lkID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9kZWZhdWx0X3JlbW92ZV9v YmplY3RfYnlfaWQ7CisgICBjbGFzcy0+c2V0X2FjdGl2ZV9vYmplY3QgPSBwaG90b3NfYmFzZV9t YW5hZ2VyX2RlZmF1bHRfc2V0X2FjdGl2ZV9vYmplY3Q7CisgCitAQCAtNzE0LDYgKzcyMSwxNCBA QCBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYs IGdpbnQgZmxhZ3MpCisgfQorIAorIAorK1Bob3Rvc1NwYXJxbFRlbXBsYXRlICoKKytwaG90b3Nf YmFzZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVtcGxhdGUgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxm LCBnaW50IGZsYWdzKQorK3sKKysgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChQSE9UT1NfSVNfQkFT RV9NQU5BR0VSIChzZWxmKSwgTlVMTCk7CisrICByZXR1cm4gUEhPVE9TX0JBU0VfTUFOQUdFUl9H RVRfQ0xBU1MgKHNlbGYpLT5nZXRfc3BhcnFsX3RlbXBsYXRlIChzZWxmLCBmbGFncyk7CisrfQor KworKworIHZvaWQKKyBwaG90b3NfYmFzZV9tYW5hZ2VyX3Byb2Nlc3NfbmV3X29iamVjdHMgKFBo b3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBHSGFzaFRhYmxlICpuZXdfb2JqZWN0cykKKyB7CitkaWZm IC0tZ2l0IGEvc3JjL3Bob3Rvcy1iYXNlLW1hbmFnZXIuaCBiL3NyYy9waG90b3MtYmFzZS1tYW5h Z2VyLmgKK2luZGV4IDk5ZDIwM2U5Li4wNGNmYTdkYiAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mt YmFzZS1tYW5hZ2VyLmgKKysrKyBiL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmgKK0BAIC0yNCw2 ICsyNCw3IEBACisgI2RlZmluZSBQSE9UT1NfQkFTRV9NQU5BR0VSX0gKKyAKKyAjaW5jbHVkZSA8 Z2xpYi1vYmplY3QuaD4KKysjaW5jbHVkZSAicGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oIgorIAor IEdfQkVHSU5fREVDTFMKKyAKK0BAIC00Niw2ICs0Nyw3IEBAIHN0cnVjdCBfUGhvdG9zQmFzZU1h bmFnZXJDbGFzcworICAgZ2NoYXIgICAgICAgICAqKCpnZXRfd2hlcmUpICAgICAgICAgICAgICAo UGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGdpbnQgZmxhZ3MpOworICAgdm9pZCAgICAgICAgICAg KCpyZW1vdmVfb2JqZWN0X2J5X2lkKSAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGNvbnN0 IGdjaGFyICppZCk7CisgICBnYm9vbGVhbiAgICAgICAoKnNldF9hY3RpdmVfb2JqZWN0KSAgICAg IChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgR09iamVjdCAqb2JqZWN0KTsKKysgIFBob3Rvc1Nw YXJxbFRlbXBsYXRlICooKmdldF9zcGFycWxfdGVtcGxhdGUpIChQaG90b3NCYXNlTWFuYWdlciAq c2VsZiwgZ2ludCBmbGFncyk7CisgCisgICAvKiBzaWduYWxzICovCisgICB2b2lkICAgICAgICAg ICAoKmFjdGl2ZV9jaGFuZ2VkKSAgICAgICAgIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgR09i amVjdCAqb2JqZWN0KTsKK0BAIC04MCw2ICs4Miw4IEBAIGNvbnN0IGdjaGFyICAgICAgICAqcGhv dG9zX2Jhc2VfbWFuYWdlcl9nZXRfdGl0bGUgICAgICAgICAgICAgICAgKFBob3Rvc0Jhc2VNYW5h CisgCisgZ2NoYXIgICAgICAgICAgICAgICpwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAg ICAgICAgICAgICAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGdpbnQgZmxhZ3MpOworIAor K1Bob3Rvc1NwYXJxbFRlbXBsYXRlICpwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVt cGxhdGUgICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBnaW50IGZsYWdzKTsKKysKKyB2b2lk ICAgICAgICAgICAgICAgIHBob3Rvc19iYXNlX21hbmFnZXJfcHJvY2Vzc19uZXdfb2JqZWN0cyAg ICAgIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgR0hhc2hUYWJsZSAqbmV3X29iamVjdHMpOwor IAorIHZvaWQgICAgICAgICAgICAgICAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9yZW1vdmVfb2JqZWN0 ICAgICAgICAgICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBHT2JqZWN0ICpvYmplY3QpOwor ZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtZmlsdGVyYWJsZS5jIGIvc3JjL3Bob3Rvcy1maWx0ZXJh YmxlLmMKK2luZGV4IDM2MWIxYzI5Li5hYWE0MTA5YyAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mt ZmlsdGVyYWJsZS5jCisrKysgYi9zcmMvcGhvdG9zLWZpbHRlcmFibGUuYworQEAgLTY5LDE0ICs2 OSw2IEBAIHBob3Rvc19maWx0ZXJhYmxlX2dldF9pZCAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZikK KyB9CisgCisgCistZ2NoYXIgKgorLXBob3Rvc19maWx0ZXJhYmxlX2dldF93aGVyZSAoUGhvdG9z RmlsdGVyYWJsZSAqc2VsZikKKy17CistICBnX3JldHVybl92YWxfaWZfZmFpbCAoUEhPVE9TX0lT X0ZJTFRFUkFCTEUgKHNlbGYpLCBOVUxMKTsKKy0gIHJldHVybiBQSE9UT1NfRklMVEVSQUJMRV9H RVRfSUZBQ0UgKHNlbGYpLT5nZXRfd2hlcmUgKHNlbGYpOworLX0KKy0KKy0KKyBnYm9vbGVhbgor IHBob3Rvc19maWx0ZXJhYmxlX2lzX3NlYXJjaF9jcml0ZXJpb24gKFBob3Rvc0ZpbHRlcmFibGUg KnNlbGYpCisgeworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtZmlsdGVyYWJsZS5oIGIvc3JjL3Bo b3Rvcy1maWx0ZXJhYmxlLmgKK2luZGV4IGU3NjhiY2EwLi44YTM0MTVmYyAxMDA2NDQKKy0tLSBh L3NyYy9waG90b3MtZmlsdGVyYWJsZS5oCisrKysgYi9zcmMvcGhvdG9zLWZpbHRlcmFibGUuaAor QEAgLTM3LDcgKzM3LDYgQEAgc3RydWN0IF9QaG90b3NGaWx0ZXJhYmxlSW50ZXJmYWNlCisgICBn Ym9vbGVhbiAoKmdldF9idWlsdGluKSAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7CisgICBnY2hh ciAqKCpnZXRfZmlsdGVyKSAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7CisgICBjb25zdCBnY2hh ciAqKCpnZXRfaWQpIChQaG90b3NGaWx0ZXJhYmxlICpzZWxmKTsKKy0gIGdjaGFyICooKmdldF93 aGVyZSkgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpOworICAgZ2Jvb2xlYW4gKCppc19zZWFyY2hf Y3JpdGVyaW9uKSAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7CisgfTsKKyAKK0BAIC00Nyw4ICs0 Niw2IEBAIGdjaGFyICAgICAgICAgICAgICAqcGhvdG9zX2ZpbHRlcmFibGVfZ2V0X2ZpbHRlciAg ICAgICAgIChQaG90b3NGaWx0ZXJhYmxlICpzZWxmCisgCisgY29uc3QgZ2NoYXIgICAgICAgICpw aG90b3NfZmlsdGVyYWJsZV9nZXRfaWQgICAgICAgICAgICAgKFBob3Rvc0ZpbHRlcmFibGUgKnNl bGYpOworIAorLWdjaGFyICAgICAgICAgICAgICAqcGhvdG9zX2ZpbHRlcmFibGVfZ2V0X3doZXJl ICAgICAgICAgIChQaG90b3NGaWx0ZXJhYmxlICpzZWxmKTsKKy0KKyBnYm9vbGVhbiAgICAgICAg ICAgIHBob3Rvc19maWx0ZXJhYmxlX2lzX3NlYXJjaF9jcml0ZXJpb24gIChQaG90b3NGaWx0ZXJh YmxlICpzZWxmKTsKKyAKKyBHX0VORF9ERUNMUworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtcXVl cnktYnVpbGRlci5jIGIvc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMKK2luZGV4IDZiOTk2ODEx Li5lMDczNWJkZSAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtcXVlcnktYnVpbGRlci5jCisrKysg Yi9zcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuYworQEAgLTI2LDExMiArMjYsNzYgQEAKKyAjaW5j bHVkZSA8c3RyaW5nLmg+CisgCisgI2luY2x1ZGUgInBob3Rvcy1iYXNlLW1hbmFnZXIuaCIKKysj aW5jbHVkZSAicGhvdG9zLXF1ZXJ5LmgiCisgI2luY2x1ZGUgInBob3Rvcy1xdWVyeS1idWlsZGVy LmgiCisgI2luY2x1ZGUgInBob3Rvcy1zZWFyY2gtdHlwZS5oIgorICNpbmNsdWRlICJwaG90b3Mt c291cmNlLW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2Vy LmgiCisgI2luY2x1ZGUgInBob3Rvcy1zZWFyY2gtdHlwZS1tYW5hZ2VyLmgiCisgCisrI2RlZmlu ZSBQSE9UT1NfUVVFUllfQ09MTEVDVElPTlNfSURFTlRJRklFUiAicGhvdG9zOmNvbGxlY3Rpb246 IgorKyNkZWZpbmUgUEhPVE9TX1FVRVJZX0xPQ0FMX0NPTExFQ1RJT05TX0lERU5USUZJRVIgInBo b3Rvczpjb2xsZWN0aW9uOmxvY2FsOiIKKyAKKy1zdGF0aWMgZ2NoYXIgKgorLXBob3Rvc19xdWVy eV9idWlsZGVyX2ZpbHRlciAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgZ2ludCBm bGFncykKKy17CistICBnY2hhciAqc3BhcnFsOworLSAgZ19hdXRvZnJlZSBnY2hhciAqc3JjX21u Z3JfZmlsdGVyID0gTlVMTDsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKnNyY2hfbXRjaF9tbmdyX2Zp bHRlciA9IE5VTEw7CistICBnX2F1dG9mcmVlIGdjaGFyICpzcmNoX3R5cF9tbmdyX2ZpbHRlciA9 IE5VTEw7CisrY29uc3QgZ2NoYXIgKmNvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyID0gXAorKyAg IihmbjpzdGFydHMtd2l0aCAobmFvOmlkZW50aWZpZXIgKD91cm4pLCAnIiBQSE9UT1NfUVVFUllf Q09MTEVDVElPTlNfSURFTlRJRklFUiAiJykiCisrICAiICAgfHwgKD91cm4gPSBuZm86aW1hZ2Ut Y2F0ZWdvcnktc2NyZWVuc2hvdCkpIjsKKyAKKy0gIHNyY19tbmdyX2ZpbHRlciA9IHBob3Rvc19i YXNlX21hbmFnZXJfZ2V0X2ZpbHRlciAoc3RhdGUtPnNyY19tbmdyLCBmbGFncyk7CistICBzcmNo X210Y2hfbW5ncl9maWx0ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRl LT5zcmNoX210Y2hfbW5nciwgZmxhZ3MpOworLSAgc3JjaF90eXBfbW5ncl9maWx0ZXIgPSBwaG90 b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNoX3R5cF9tbmdyLCBmbGFncyk7 CisgCistICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJGSUxURVIgKCVzICYmICVzICYmICVz KSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY19tbmdyX2ZpbHRlciwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3JjaF9tdGNoX21uZ3JfZmlsdGVyLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzcmNoX3R5cF9tbmdyX2ZpbHRlcik7CistCistICByZXR1cm4g c3BhcnFsOworLX0KKysvKiBUaGlzIGluY2x1ZGVzIG1pbWV0eXBlIGJsb2NrbGlzdCAqLworK2Nv bnN0IGdjaGFyICpwaG90b3NfZGVmYXVsdF9maWx0ZXIgPSBcCisrICAiKG5pZTptaW1lVHlwZSg/ dXJuKSAhPSAnaW1hZ2UvZ2lmJyAmJiBuaWU6bWltZVR5cGUoP3VybikgIT0gJ2ltYWdlL3gtZXBz JykiOworIAorIAorIHN0YXRpYyBnY2hhciAqCistcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfb3B0aW9u YWwgKHZvaWQpCisteworLSAgcmV0dXJuIGdfc3RyZHVwICgiT1BUSU9OQUwgeyA/dXJuIG5jbzpj cmVhdG9yID9jcmVhdG9yIC4gfSAiCistICAgICAgICAgICAgICAgICAgICJPUFRJT05BTCB7ID91 cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfSIpOworLX0KKy0KKy0KKy1zdGF0aWMgZ2No YXIgKgorLXBob3Rvc19xdWVyeV9idWlsZGVyX2lubmVyX3doZXJlIChQaG90b3NTZWFyY2hDb250 ZXh0U3RhdGUgKnN0YXRlLCBnYm9vbGVhbiBnbG9iYWwsIGdpbnQgZmxhZ3MpCisrcGhvdG9zX3F1 ZXJ5X2J1aWxkZXJfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGdsb2JhbCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2ludCBmbGFncywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg UGhvdG9zT2Zmc2V0Q29udHJvbGxlciAqb2Zmc2V0X2NudHJscikKKyB7CistICBnX2F1dG9mcmVl IGdjaGFyICppdGVtX21uZ3Jfd2hlcmUgPSBOVUxMOworKyAgUGhvdG9zU3BhcnFsVGVtcGxhdGUg KnRlbXBsYXRlOworKyAgY29uc3QgZ2NoYXIgKnByb2plY3Rpb24gPSBOVUxMOworKyAgZ19hdXRv ZnJlZSBnY2hhciAqaXRlbV9wYXR0ZXJuID0gTlVMTDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNl YXJjaF9maWx0ZXIgPSBOVUxMOworKyAgZ19hdXRvZnJlZSBnY2hhciAqc291cmNlX2ZpbHRlciA9 IE5VTEw7CisrICBjb25zdCBnY2hhciAqb3JkZXIgPSBOVUxMOworKyAgZ19hdXRvZnJlZSBnY2hh ciAqb2Zmc2V0X2xpbWl0ID0gTlVMTDsKKyAgIGdjaGFyICpzcGFycWw7CistICBnX2F1dG9mcmVl IGdjaGFyICpzcmNoX3R5cF9tbmdyX3doZXJlID0gTlVMTDsKKyAKKy0gIHNyY2hfdHlwX21uZ3Jf d2hlcmUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAoc3RhdGUtPnNyY2hfdHlwX21u Z3IsIGZsYWdzKTsKKysgIHRlbXBsYXRlID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFs X3RlbXBsYXRlIChzdGF0ZS0+c3JjaF90eXBfbW5nciwgZmxhZ3MpOworKworKyAgcHJvamVjdGlv biA9ICI/dXJuICIKKysgICAgICAgICAgICAgICAibmllOnVybCAoP3VybikgIgorKyAgICAgICAg ICAgICAgICJuZm86ZmlsZU5hbWUgKD91cm4pICIKKysgICAgICAgICAgICAgICAibmllOm1pbWVU eXBlICg/dXJuKSAiCisrICAgICAgICAgICAgICAgIm5pZTp0aXRsZSAoP3VybikgIgorKyAgICAg ICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2NlIChuY286ZnVsbG5hbWUgKD9jcmVhdG9yKSwgbmNv OmZ1bGxuYW1lICg/cHVibGlzaGVyKSwgJycpICIKKysgICAgICAgICAgICAgICAidHJhY2tlcjpj b2FsZXNjZSAobmZvOmZpbGVMYXN0TW9kaWZpZWQgKD91cm4pLCBuaWU6Y29udGVudExhc3RNb2Rp ZmllZCAoP3VybikpIEFTID9tdGltZSAiCisrICAgICAgICAgICAgICAgIm5hbzppZGVudGlmaWVy ICg/dXJuKSAiCisrICAgICAgICAgICAgICAgInJkZjp0eXBlICg/dXJuKSAiCisrICAgICAgICAg ICAgICAgIm5pZTpkYXRhU291cmNlKD91cm4pICIKKysgICAgICAgICAgICAgICAiKCBFWElTVFMg eyA/dXJuIG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlIH0gKSAiCisrICAg ICAgICAgICAgICAgIiggRVhJU1RTIHsgP3VybiBuY286Y29udHJpYnV0b3IgP2NvbnRyaWJ1dG9y IEZJTFRFUiAoID9jb250cmlidXRvciAhPSA/Y3JlYXRvciApIH0gKSAiCisrICAgICAgICAgICAg ICAgInRyYWNrZXI6Y29hbGVzY2UobmZvOmZpbGVDcmVhdGVkICg/dXJuKSwgbmllOmNvbnRlbnRD cmVhdGVkICg/dXJuKSkgIgorKyAgICAgICAgICAgICAgICJuZm86d2lkdGggKD91cm4pICIKKysg ICAgICAgICAgICAgICAibmZvOmhlaWdodCAoP3VybikgIgorKyAgICAgICAgICAgICAgICJuZm86 ZXF1aXBtZW50ICg/dXJuKSAiCisrICAgICAgICAgICAgICAgIm5mbzpvcmllbnRhdGlvbiAoP3Vy bikgIgorKyAgICAgICAgICAgICAgICJubW06ZXhwb3N1cmVUaW1lICg/dXJuKSAiCisrICAgICAg ICAgICAgICAgIm5tbTpmbnVtYmVyICg/dXJuKSAiCisrICAgICAgICAgICAgICAgIm5tbTpmb2Nh bExlbmd0aCAoP3VybikgIgorKyAgICAgICAgICAgICAgICJubW06aXNvU3BlZWQgKD91cm4pICIK KysgICAgICAgICAgICAgICAibm1tOmZsYXNoICg/dXJuKSAiCisrICAgICAgICAgICAgICAgInNs bzpsb2NhdGlvbiAoP3VybikgIjsKKysKKysgIGl0ZW1fcGF0dGVybiA9IHBob3Rvc19iYXNlX21h bmFnZXJfZ2V0X3doZXJlIChzdGF0ZS0+aXRlbV9tbmdyLCBmbGFncyk7CisgCisgICBpZiAoIShm bGFncyAmIFBIT1RPU19RVUVSWV9GTEFHU19VTkZJTFRFUkVEKSkKKyAgICAgeworLSAgICAgIGlm IChnbG9iYWwpCistICAgICAgICB7CistICAgICAgICAgIC8qIFRPRE86IFNlYXJjaENhdGVnb3J5 TWFuYWdlciAqLworLQorLSAgICAgICAgICBpdGVtX21uZ3Jfd2hlcmUgPSBwaG90b3NfYmFzZV9t YW5hZ2VyX2dldF93aGVyZSAoc3RhdGUtPml0ZW1fbW5nciwgZmxhZ3MpOworLSAgICAgICAgfQor KyAgICAgIHNvdXJjZV9maWx0ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0 YXRlLT5zcmNfbW5nciwgZmxhZ3MpOworKyAgICAgIHNlYXJjaF9maWx0ZXIgPSBwaG90b3NfYmFz ZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNoX210Y2hfbW5nciwgZmxhZ3MpOworICAg ICB9CisgCistICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJXSEVSRSB7ICVzICVzIH0iLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNoX3R5cF9tbmdyX3doZXJlLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoaXRlbV9tbmdyX3doZXJlICE9IE5VTEwpID8gaXRlbV9t bmdyX3doZXJlIDogIiIpOworLQorLSAgcmV0dXJuIHNwYXJxbDsKKy19CistCistCistc3RhdGlj IGdjaGFyICoKKy1waG90b3NfcXVlcnlfYnVpbGRlcl93aGVyZSAoUGhvdG9zU2VhcmNoQ29udGV4 dFN0YXRlICpzdGF0ZSwgZ2Jvb2xlYW4gZ2xvYmFsLCBnaW50IGZsYWdzKQorLXsKKy0gIGNvbnN0 IGdjaGFyICpjb3VudF9pdGVtcyA9ICJDT1VOVCAoP2l0ZW0pIEFTID9jb3VudCI7CistICBnYm9v bGVhbiBpdGVtX2RlZmluZWQ7CistICBnX2F1dG9mcmVlIGdjaGFyICpmaWx0ZXIgPSBOVUxMOwor LSAgZ19hdXRvZnJlZSBnY2hhciAqb3B0aW9uYWwgPSBOVUxMOworLSAgZ2NoYXIgKnNwYXJxbDsK Ky0gIGdfYXV0b2ZyZWUgZ2NoYXIgKndoZXJlX3NwYXJxbCA9IE5VTEw7CistCistICB3aGVyZV9z cGFycWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9pbm5lcl93aGVyZSAoc3RhdGUsIGdsb2JhbCwg ZmxhZ3MpOworLSAgaXRlbV9kZWZpbmVkID0gc3Ryc3RyICh3aGVyZV9zcGFycWwsICI/aXRlbSIp ICE9IE5VTEw7CistCistICBvcHRpb25hbCA9IHBob3Rvc19xdWVyeV9idWlsZGVyX29wdGlvbmFs ICgpOworLQorLSAgaWYgKCEoZmxhZ3MgJiBQSE9UT1NfUVVFUllfRkxBR1NfVU5GSUxURVJFRCkp CistICAgIGZpbHRlciA9IHBob3Rvc19xdWVyeV9idWlsZGVyX2ZpbHRlciAoc3RhdGUsIGZsYWdz KTsKKy0KKy0gIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIldIRVJFIHt7IgorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiICAgIFNFTEVDVCA/dXJuIHJkZjp0eXBlICg/dXJuKSBBUyA/ dHlwZSAlcyAlcyBHUk9VUCBCWSAoP3VybikiCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIgIH0iCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICVzICVzIgorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAifSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0 ZW1fZGVmaW5lZCA/IGNvdW50X2l0ZW1zIDogIiIsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHdoZXJlX3NwYXJxbCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWws CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWx0ZXIgIT0gTlVMTCkgPyBmaWx0ZXIg OiAiIik7CistCistICByZXR1cm4gc3BhcnFsOworLX0KKy0KKy0KKy1zdGF0aWMgZ2NoYXIgKgor LXBob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0 YXRlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBnbG9iYWwsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgZmxhZ3MsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBob3Rvc09mZnNldENvbnRyb2xsZXIgKm9mZnNldF9jbnRybHIpCisteworLSAg Z2NoYXIgKnNwYXJxbDsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKnRhaWxfc3BhcnFsID0gTlVMTDsK Ky0gIGdfYXV0b2ZyZWUgZ2NoYXIgKndoZXJlX3NwYXJxbCA9IE5VTEw7CistCistICB3aGVyZV9z cGFycWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl93aGVyZSAoc3RhdGUsIGdsb2JhbCwgZmxhZ3Mp OworKyAgb3JkZXIgPSAiT1JERVIgQlkgREVTQyAoP210aW1lKSI7CisgCisgICBpZiAoZ2xvYmFs ICYmIChmbGFncyAmIFBIT1RPU19RVUVSWV9GTEFHU19VTkxJTUlURUQpID09IDApCisgICAgIHsK K0BAIC0xNDQsMzUgKzEwOCwxOSBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoUGhvdG9z U2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwKKyAgICAgICAgICAgc3RlcCA9IHBob3Rvc19vZmZz ZXRfY29udHJvbGxlcl9nZXRfc3RlcCAob2Zmc2V0X2NudHJscik7CisgICAgICAgICB9CisgCist ICAgICAgdGFpbF9zcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJPUkRFUiBCWSBERVNDICg/bXRp bWUpIExJTUlUICVkIE9GRlNFVCAlZCIsIHN0ZXAsIG9mZnNldCk7CisrICAgICAgb2Zmc2V0X2xp bWl0ID0gZ19zdHJkdXBfcHJpbnRmICgiTElNSVQgJWQgT0ZGU0VUICVkIiwgc3RlcCwgb2Zmc2V0 KTsKKyAgICAgfQorIAorLSAgc3BhcnFsID0gZ19zdHJjb25jYXQgKCJTRUxFQ1QgP3VybiAiCist ICAgICAgICAgICAgICAgICAgICAgICAgIm5pZTp1cmwgKD91cm4pICIKKy0gICAgICAgICAgICAg ICAgICAgICAgICAibmZvOmZpbGVOYW1lICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAg ICAgIm5pZTptaW1lVHlwZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJuaWU6 dGl0bGUgKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNj ZSAobmNvOmZ1bGxuYW1lICg/Y3JlYXRvciksIG5jbzpmdWxsbmFtZSAoP3B1Ymxpc2hlciksICcn KSAiCistICAgICAgICAgICAgICAgICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UgKG5mbzpmaWxl TGFzdE1vZGlmaWVkICg/dXJuKSwgbmllOmNvbnRlbnRMYXN0TW9kaWZpZWQgKD91cm4pKSBBUyA/ bXRpbWUgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJuYW86aWRlbnRpZmllciAoP3Vybikg IgorLSAgICAgICAgICAgICAgICAgICAgICAgICJyZGY6dHlwZSAoP3VybikgIgorLSAgICAgICAg ICAgICAgICAgICAgICAgICJuaWU6ZGF0YVNvdXJjZSg/dXJuKSAiCistICAgICAgICAgICAgICAg ICAgICAgICAgIiggRVhJU1RTIHsgP3VybiBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1m YXZvcml0ZSB9ICkgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4g bmNvOmNvbnRyaWJ1dG9yID9jb250cmlidXRvciBGSUxURVIgKCA/Y29udHJpYnV0b3IgIT0gP2Ny ZWF0b3IgKSB9ICkgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2Nl KG5mbzpmaWxlQ3JlYXRlZCAoP3VybiksIG5pZTpjb250ZW50Q3JlYXRlZCAoP3VybikpICIKKy0g ICAgICAgICAgICAgICAgICAgICAgICAibmZvOndpZHRoICg/dXJuKSAiCistICAgICAgICAgICAg ICAgICAgICAgICAgIm5mbzpoZWlnaHQgKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAg ICAibmZvOmVxdWlwbWVudCAoP3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJuZm86 b3JpZW50YXRpb24gKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAibm1tOmV4cG9z dXJlVGltZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJubW06Zm51bWJlciAo P3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJubW06Zm9jYWxMZW5ndGggKD91cm4p ICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAibm1tOmlzb1NwZWVkICg/dXJuKSAiCistICAg ICAgICAgICAgICAgICAgICAgICAgIm5tbTpmbGFzaCAoP3VybikgIgorLSAgICAgICAgICAgICAg ICAgICAgICAgICJzbG86bG9jYXRpb24gKD91cm4pICIsCistICAgICAgICAgICAgICAgICAgICAg ICAgd2hlcmVfc3BhcnFsLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRhaWxfc3BhcnFsLAor LSAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworKyAgc3BhcnFsID0gcGhvdG9zX3NwYXJx bF90ZW1wbGF0ZV9nZXRfc3BhcnFsICh0ZW1wbGF0ZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInByb2plY3Rpb24iLCBwcm9qZWN0aW9uLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29sbGVjdGlvbnNfZGVm YXVsdF9maWx0ZXIiLCBjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIml0ZW1fcGF0dGVybiIsIGl0ZW1fcGF0 dGVybiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBo b3Rvc19kZWZhdWx0X2ZpbHRlciIsIHBob3Rvc19kZWZhdWx0X2ZpbHRlciwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvdXJjZV9maWx0ZXIiLCBzb3Vy Y2VfZmlsdGVyID8gc291cmNlX2ZpbHRlciA6ICIiLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAic2VhcmNoX2ZpbHRlciIsIHNlYXJjaF9maWx0ZXIgPyBz ZWFyY2hfZmlsdGVyIDogIiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJvcmRlciIsIG9yZGVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAib2Zmc2V0X2xpbWl0Iiwgb2Zmc2V0X2xpbWl0ID8gb2Zmc2V0X2xp bWl0IDogIiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5VTEwpOworIAorICAgcmV0dXJuIHNwYXJxbDsKKyB9CitAQCAtMjMxLDEyICsxNzksMzcgQEAg cGhvdG9zX3F1ZXJ5X2J1aWxkZXJfY29sbGVjdGlvbl9pY29uX3F1ZXJ5IChQaG90b3NTZWFyY2hD b250ZXh0U3RhdGUgKnN0YXRlLCBjb24KKyBQaG90b3NRdWVyeSAqCisgcGhvdG9zX3F1ZXJ5X2J1 aWxkZXJfY291bnRfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGdpbnQg ZmxhZ3MpCisgeworLSAgUGhvdG9zUXVlcnkgKnF1ZXJ5OworKyAgUGhvdG9zU3BhcnFsVGVtcGxh dGUgKnRlbXBsYXRlOworKyAgY29uc3QgZ2NoYXIgKnByb2plY3Rpb24gPSBOVUxMOworKyAgZ19h dXRvZnJlZSBnY2hhciAqaXRlbV9wYXR0ZXJuID0gTlVMTDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIg KnNlYXJjaF9maWx0ZXIgPSBOVUxMOworKyAgZ19hdXRvZnJlZSBnY2hhciAqc291cmNlX2ZpbHRl ciA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxMOworLSAgZ19hdXRv ZnJlZSBnY2hhciAqd2hlcmVfc3BhcnFsID0gTlVMTDsKKysgIFBob3Rvc1F1ZXJ5ICpxdWVyeTsK KysKKysgIHRlbXBsYXRlID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBsYXRl IChzdGF0ZS0+c3JjaF90eXBfbW5nciwgZmxhZ3MpOworKworKyAgcHJvamVjdGlvbiA9ICJDT1VO VCg/dXJuKSAiOworKworKyAgaXRlbV9wYXR0ZXJuID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRf d2hlcmUgKHN0YXRlLT5pdGVtX21uZ3IsIGZsYWdzKTsKKysKKysgIGlmICghIChmbGFncyAmIFBI T1RPU19RVUVSWV9GTEFHU19VTkZJTFRFUkVEKSkKKysgICAgeworKyAgICAgIHNvdXJjZV9maWx0 ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNfbW5nciwgZmxh Z3MpOworKyAgICAgIHNlYXJjaF9maWx0ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0 ZXIgKHN0YXRlLT5zcmNoX210Y2hfbW5nciwgZmxhZ3MpOworKyAgICB9CisrCisrICBzcGFycWwg PSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2dldF9zcGFycWwgKHRlbXBsYXRlLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvamVjdGlvbiIsIHByb2pl Y3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJj b2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciIsIGNvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXRlbV9wYXR0 ZXJuIiwgaXRlbV9wYXR0ZXJuLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAicGhvdG9zX2RlZmF1bHRfZmlsdGVyIiwgcGhvdG9zX2RlZmF1bHRfZmlsdGVy LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic291cmNl X2ZpbHRlciIsIHNvdXJjZV9maWx0ZXIgPyBzb3VyY2VfZmlsdGVyIDogIiIsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWFyY2hfZmlsdGVyIiwgc2Vh cmNoX2ZpbHRlciA/IHNlYXJjaF9maWx0ZXIgOiAiIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIm9yZGVyIiwgIiIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvZmZzZXRfbGltaXQiLCAiIiwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgCistICB3aGVy ZV9zcGFycWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl93aGVyZSAoc3RhdGUsIFRSVUUsIGZsYWdz KTsKKy0gIHNwYXJxbCA9IGdfc3RyY29uY2F0ICgiU0VMRUNUIERJU1RJTkNUIENPVU5UKD91cm4p ICIsIHdoZXJlX3NwYXJxbCwgTlVMTCk7CisgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9uZXcgKHN0 YXRlLCBzcGFycWwpOworIAorICAgcmV0dXJuIHF1ZXJ5OworZGlmZiAtLWdpdCBhL3NyYy9waG90 b3Mtc2VhcmNoLXR5cGUtbWFuYWdlci5jIGIvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS1tYW5hZ2Vy LmMKK2luZGV4IDg3ZjQ0MWVkLi41Yzg3ZDRhNCAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mtc2Vh cmNoLXR5cGUtbWFuYWdlci5jCisrKysgYi9zcmMvcGhvdG9zLXNlYXJjaC10eXBlLW1hbmFnZXIu YworQEAgLTQxLDEzICs0MSw2IEBAIHN0cnVjdCBfUGhvdG9zU2VhcmNoVHlwZU1hbmFnZXIKKyBH X0RFRklORV9UWVBFIChQaG90b3NTZWFyY2hUeXBlTWFuYWdlciwgcGhvdG9zX3NlYXJjaF90eXBl X21hbmFnZXIsIFBIT1RPU19UWVBFX0JBU0VfTUFOQUdFUik7CisgCisgCistc3RhdGljIGNvbnN0 IGdjaGFyICpCTEFDS0xJU1RFRF9NSU1FX1RZUEVTW10gPQorLXsKKy0gICJpbWFnZS9naWYiLAor LSAgImltYWdlL3gtZXBzIgorLX07CistCistCisgc3RhdGljIGdjaGFyICoKKyBwaG90b3Nfc2Vh cmNoX3R5cGVfbWFuYWdlcl9nZXRfZmlsdGVyIChQaG90b3NCYXNlTWFuYWdlciAqbW5nciwgZ2lu dCBmbGFncykKKyB7CitAQCAtNjksOSArNjIsOCBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfbWFuYWdl cl9nZXRfZmlsdGVyIChQaG90b3NCYXNlTWFuYWdlciAqbW5nciwgZ2ludCBmbGFncykKKyAgIHJl dHVybiBmaWx0ZXI7CisgfQorIAorLQorLXN0YXRpYyBnY2hhciAqCistcGhvdG9zX3NlYXJjaF90 eXBlX21hbmFnZXJfZ2V0X3doZXJlIChQaG90b3NCYXNlTWFuYWdlciAqbW5nciwgZ2ludCBmbGFn cykKKytzdGF0aWMgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKgorK3Bob3Rvc19zZWFyY2hfdHlwZV9t YW5hZ2VyX2dldF9zcGFycWxfdGVtcGxhdGUgKFBob3Rvc0Jhc2VNYW5hZ2VyICptbmdyLCBnaW50 IGZsYWdzKQorIHsKKyAgIEdPYmplY3QgKnNlYXJjaF90eXBlOworIAorQEAgLTg2LDc0ICs3OCwz OSBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfbWFuYWdlcl9nZXRfd2hlcmUgKFBob3Rvc0Jhc2VNYW5h Z2VyICptbmdyLCBnaW50IGZsYWdzKQorICAgZWxzZQorICAgICBzZWFyY2hfdHlwZSA9IHBob3Rv c19iYXNlX21hbmFnZXJfZ2V0X29iamVjdF9ieV9pZCAobW5nciwgUEhPVE9TX1NFQVJDSF9UWVBF X1NUT0NLX0FMTCk7CisgCistICByZXR1cm4gcGhvdG9zX2ZpbHRlcmFibGVfZ2V0X3doZXJlIChQ SE9UT1NfRklMVEVSQUJMRSAoc2VhcmNoX3R5cGUpKTsKKysgIHJldHVybiBwaG90b3Nfc2VhcmNo X3R5cGVfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAoUEhPVE9TX1NFQVJDSF9UWVBFIChzZWFyY2hfdHlw ZSkpOworIH0KKyAKKy0KKyBzdGF0aWMgdm9pZAorIHBob3Rvc19zZWFyY2hfdHlwZV9tYW5hZ2Vy X2luaXQgKFBob3Rvc1NlYXJjaFR5cGVNYW5hZ2VyICpzZWxmKQorIHsKKyAgIFBob3Rvc1NlYXJj aFR5cGUgKnNlYXJjaF90eXBlOworLSAgZ2NoYXIgKml0ZW1fZmlsdGVyOworLSAgZ2NoYXIgKmFs bF9maWx0ZXI7CistICBnY2hhciAqYmxhY2tsaXN0ZWRfbWltZV90eXBlc19maWx0ZXI7CistICBn Y2hhciAqY29sX2ZpbHRlcjsKKy0gIGdjaGFyICoqc3RydjsKKy0gIGd1aW50IGk7CistICBndWlu dCBuX2VsZW1lbnRzOworLQorLSAgbl9lbGVtZW50cyA9IEdfTl9FTEVNRU5UUyAoQkxBQ0tMSVNU RURfTUlNRV9UWVBFUyk7CistICBzdHJ2ID0gKGdjaGFyICoqKSBnX21hbGxvYzBfbiAobl9lbGVt ZW50cyArIDEsIHNpemVvZiAoZ2NoYXIgKikpOworLSAgZm9yIChpID0gMDsgaSA8IG5fZWxlbWVu dHM7IGkrKykKKy0gICAgc3RydltpXSA9IGdfc3RyZHVwX3ByaW50ZiAoIm5pZTptaW1lVHlwZSg/ dXJuKSAhPSAnJXMnIiwgQkxBQ0tMSVNURURfTUlNRV9UWVBFU1tpXSk7CistCistICBibGFja2xp c3RlZF9taW1lX3R5cGVzX2ZpbHRlciA9IGdfc3Ryam9pbnYgKCIgJiYgIiwgc3Rydik7CistCist ICBpdGVtX2ZpbHRlciA9IGdfc3RyZHVwX3ByaW50ZiAoIihmbjpjb250YWlucyAoP3R5cGUsICdu bW0jUGhvdG8nKSAmJiAlcykiLCBibGFja2xpc3RlZF9taW1lX3R5cGVzX2ZpbHRlcik7CistICBj b2xfZmlsdGVyID0gZ19zdHJkdXBfcHJpbnRmICgiKGZuOmNvbnRhaW5zICg/dHlwZSwgJ25mbyNE YXRhQ29udGFpbmVyJykiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICYmID9j b3VudCA+IDAiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICYmIChmbjpzdGFy dHMtd2l0aCAobmFvOmlkZW50aWZpZXIgKD91cm4pLCAnJXMnKSIKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIgICAgIHx8ICg/dXJuID0gbmZvOmltYWdlLWNhdGVnb3J5LXNjcmVl bnNob3QpKSkiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhPVE9TX1FVRVJZ X0NPTExFQ1RJT05TX0lERU5USUZJRVIpOworLSAgYWxsX2ZpbHRlciA9IGdfc3RyZHVwX3ByaW50 ZiAoIiglcyB8fCAlcykiLCBjb2xfZmlsdGVyLCBpdGVtX2ZpbHRlcik7CisgCisgICBzZWFyY2hf dHlwZSA9IHBob3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVsbCAoUEhPVE9TX1NFQVJDSF9UWVBFX1NU T0NLX0FMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf KCJBbGwiKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi P3VybiBhIHJkZnM6UmVzb3VyY2UuICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiT1BUSU9OQUwgez9pdGVtIGEgbm1tOlBob3RvOyBuaWU6aXNQYXJ0T2Yg P3Vybn0iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFs bF9maWx0ZXIpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJyZXNvdXJjZTovLy9vcmcvZ25vbWUvUGhvdG9zL2FsbC5zcGFycWwudGVtcGxhdGUiKTsKKyAg IHBob3Rvc19iYXNlX21hbmFnZXJfYWRkX29iamVjdCAoUEhPVE9TX0JBU0VfTUFOQUdFUiAoc2Vs ZiksIEdfT0JKRUNUIChzZWFyY2hfdHlwZSkpOworICAgZ19vYmplY3RfdW5yZWYgKHNlYXJjaF90 eXBlKTsKKyAKKyAgIHNlYXJjaF90eXBlID0gcGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxsIChQ SE9UT1NfU0VBUkNIX1RZUEVfU1RPQ0tfQ09MTEVDVElPTlMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQWxidW1zIiksCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj91cm4gYSBuZm86RGF0YUNvbnRhaW5lci4g IgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI/aXRlbSBh IG5tbTpQaG90bzsgbmllOmlzUGFydE9mID91cm4uIiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb2xfZmlsdGVyKTsKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzb3VyY2U6Ly8vb3JnL2dub21lL1Bob3Rvcy9j b2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUiKTsKKyAgIHBob3Rvc19iYXNlX21hbmFnZXJfYWRk X29iamVjdCAoUEhPVE9TX0JBU0VfTUFOQUdFUiAoc2VsZiksIEdfT0JKRUNUIChzZWFyY2hfdHlw ZSkpOworICAgZ19vYmplY3RfdW5yZWYgKHNlYXJjaF90eXBlKTsKKyAKKyAgIHNlYXJjaF90eXBl ID0gcGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxsIChQSE9UT1NfU0VBUkNIX1RZUEVfU1RPQ0tf RkFWT1JJVEVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF8oIkZhdm9yaXRlcyIpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICI/dXJuIGEgbm1tOlBob3RvOyBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1m YXZvcml0ZS4gIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBibGFja2xpc3RlZF9taW1lX3R5cGVzX2ZpbHRlcik7CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInJlc291cmNlOi8vL29yZy9nbm9tZS9QaG90b3MvZmF2 b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSIpOworICAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9h ZGRfb2JqZWN0IChQSE9UT1NfQkFTRV9NQU5BR0VSIChzZWxmKSwgR19PQkpFQ1QgKHNlYXJjaF90 eXBlKSk7CisgICBnX29iamVjdF91bnJlZiAoc2VhcmNoX3R5cGUpOworIAorICAgc2VhcmNoX3R5 cGUgPSBwaG90b3Nfc2VhcmNoX3R5cGVfbmV3X2Z1bGwgKFBIT1RPU19TRUFSQ0hfVFlQRV9TVE9D S19QSE9UT1MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XygiUGhvdG9zIiksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIj91cm4gYSBubW06UGhvdG8iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJsYWNrbGlzdGVkX21pbWVfdHlwZXNfZmlsdGVyKTsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzb3VyY2U6Ly8vb3JnL2dub21l L1Bob3Rvcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlIik7CisgICBwaG90b3NfYmFzZV9tYW5hZ2Vy X2FkZF9vYmplY3QgKFBIT1RPU19CQVNFX01BTkFHRVIgKHNlbGYpLCBHX09CSkVDVCAoc2VhcmNo X3R5cGUpKTsKKyAgIGdfb2JqZWN0X3VucmVmIChzZWFyY2hfdHlwZSk7CisgCisgICBwaG90b3Nf YmFzZV9tYW5hZ2VyX3NldF9hY3RpdmVfb2JqZWN0X2J5X2lkIChQSE9UT1NfQkFTRV9NQU5BR0VS IChzZWxmKSwgUEhPVE9TX1NFQVJDSF9UWVBFX1NUT0NLX0FMTCk7CistCistICBnX2ZyZWUgKGl0 ZW1fZmlsdGVyKTsKKy0gIGdfZnJlZSAoYWxsX2ZpbHRlcik7CistICBnX2ZyZWUgKGJsYWNrbGlz dGVkX21pbWVfdHlwZXNfZmlsdGVyKTsKKy0gIGdfZnJlZSAoY29sX2ZpbHRlcik7CistICBnX3N0 cmZyZWV2IChzdHJ2KTsKKyB9CisgCisgCitAQCAtMTYzLDcgKzEyMCw3IEBAIHBob3Rvc19zZWFy Y2hfdHlwZV9tYW5hZ2VyX2NsYXNzX2luaXQgKFBob3Rvc1NlYXJjaFR5cGVNYW5hZ2VyQ2xhc3Mg KmNsYXNzKQorICAgUGhvdG9zQmFzZU1hbmFnZXJDbGFzcyAqYmFzZV9tYW5hZ2VyX2NsYXNzID0g UEhPVE9TX0JBU0VfTUFOQUdFUl9DTEFTUyAoY2xhc3MpOworIAorICAgYmFzZV9tYW5hZ2VyX2Ns YXNzLT5nZXRfZmlsdGVyID0gcGhvdG9zX3NlYXJjaF90eXBlX21hbmFnZXJfZ2V0X2ZpbHRlcjsK Ky0gIGJhc2VfbWFuYWdlcl9jbGFzcy0+Z2V0X3doZXJlID0gcGhvdG9zX3NlYXJjaF90eXBlX21h bmFnZXJfZ2V0X3doZXJlOworKyAgYmFzZV9tYW5hZ2VyX2NsYXNzLT5nZXRfc3BhcnFsX3RlbXBs YXRlID0gcGhvdG9zX3NlYXJjaF90eXBlX21hbmFnZXJfZ2V0X3NwYXJxbF90ZW1wbGF0ZTsKKyB9 CisgCisgCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5jIGIvc3JjL3Bob3Rv cy1zZWFyY2gtdHlwZS5jCitpbmRleCA0NGRjNjBlYi4uZjNiYmFlMTUgMTAwNjQ0CistLS0gYS9z cmMvcGhvdG9zLXNlYXJjaC10eXBlLmMKKysrKyBiL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUuYwor QEAgLTI1LDI0ICsyNSwyMyBAQAorIAorICNpbmNsdWRlICJwaG90b3MtZmlsdGVyYWJsZS5oIgor ICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLXR5cGUuaCIKKysjaW5jbHVkZSAicGhvdG9zLXNwYXJx bC10ZW1wbGF0ZS5oIgorIAorIAorIHN0cnVjdCBfUGhvdG9zU2VhcmNoVHlwZQorIHsKKyAgIEdP YmplY3QgcGFyZW50X2luc3RhbmNlOworLSAgZ2NoYXIgKmZpbHRlcjsKKyAgIGdjaGFyICppZDsK KyAgIGdjaGFyICpuYW1lOworLSAgZ2NoYXIgKndoZXJlOworKyAgUGhvdG9zU3BhcnFsVGVtcGxh dGUgKnNwYXJxbF90ZW1wbGF0ZTsKKyB9OworIAorIGVudW0KKyB7CisgICBQUk9QXzAsCistICBQ Uk9QX0ZJTFRFUiwKKyAgIFBST1BfSUQsCisgICBQUk9QX05BTUUsCistICBQUk9QX1dIRVJFLAor KyAgUFJPUF9TUEFSUUxfVEVNUExBVEUsCisgfTsKKyAKKyBzdGF0aWMgdm9pZCBwaG90b3Nfc2Vh cmNoX3R5cGVfZmlsdGVyYWJsZV9pZmFjZV9pbml0IChQaG90b3NGaWx0ZXJhYmxlSW50ZXJmYWNl ICppZmFjZSk7CitAQCAtNTMsMTQgKzUyLDYgQEAgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKFBo b3Rvc1NlYXJjaFR5cGUsIHBob3Rvc19zZWFyY2hfdHlwZSwgR19UWVBFX09CSkVDVCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3Nfc2VhcmNo X3R5cGVfZmlsdGVyYWJsZV9pZmFjZV9pbml0KSk7CisgCisgCistc3RhdGljIGdjaGFyICoKKy1w aG90b3Nfc2VhcmNoX3R5cGVfZ2V0X2ZpbHRlciAoUGhvdG9zRmlsdGVyYWJsZSAqaWZhY2UpCist eworLSAgUGhvdG9zU2VhcmNoVHlwZSAqc2VsZiA9IFBIT1RPU19TRUFSQ0hfVFlQRSAoaWZhY2Up OworLSAgcmV0dXJuIGdfc3RyZHVwIChzZWxmLT5maWx0ZXIpOworLX0KKy0KKy0KKyBzdGF0aWMg Y29uc3QgZ2NoYXIgKgorIHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfaWQgKFBob3Rvc0ZpbHRlcmFi bGUgKmZpbHRlcmFibGUpCisgeworQEAgLTY5LDE0ICs2MCw2IEBAIHBob3Rvc19zZWFyY2hfdHlw ZV9nZXRfaWQgKFBob3Rvc0ZpbHRlcmFibGUgKmZpbHRlcmFibGUpCisgfQorIAorIAorLXN0YXRp YyBnY2hhciAqCistcGhvdG9zX3NlYXJjaF90eXBlX2dldF93aGVyZSAoUGhvdG9zRmlsdGVyYWJs ZSAqaWZhY2UpCisteworLSAgUGhvdG9zU2VhcmNoVHlwZSAqc2VsZiA9IFBIT1RPU19TRUFSQ0hf VFlQRSAoaWZhY2UpOworLSAgcmV0dXJuIGdfc3RyZHVwIChzZWxmLT53aGVyZSk7CistfQorLQor LQorIHN0YXRpYyBnYm9vbGVhbgorIHBob3Rvc19zZWFyY2hfdHlwZV9pc19zZWFyY2hfY3JpdGVy aW9uIChQaG90b3NGaWx0ZXJhYmxlICppZmFjZSkKKyB7CitAQCAtODQsMTUgKzY3LDIwIEBAIHBo b3Rvc19zZWFyY2hfdHlwZV9pc19zZWFyY2hfY3JpdGVyaW9uIChQaG90b3NGaWx0ZXJhYmxlICpp ZmFjZSkKKyB9CisgCisgCisrUGhvdG9zU3BhcnFsVGVtcGxhdGUgKgorK3Bob3Rvc19zZWFyY2hf dHlwZV9nZXRfc3BhcnFsX3RlbXBsYXRlIChQaG90b3NTZWFyY2hUeXBlICpzZWxmKQorK3sKKysg IHJldHVybiBzZWxmLT5zcGFycWxfdGVtcGxhdGU7CisrfQorKworIHN0YXRpYyB2b2lkCisgcGhv dG9zX3NlYXJjaF90eXBlX2ZpbmFsaXplIChHT2JqZWN0ICpvYmplY3QpCisgeworICAgUGhvdG9z U2VhcmNoVHlwZSAqc2VsZiA9IFBIT1RPU19TRUFSQ0hfVFlQRSAob2JqZWN0KTsKKyAKKy0gIGdf ZnJlZSAoc2VsZi0+ZmlsdGVyKTsKKyAgIGdfZnJlZSAoc2VsZi0+aWQpOworICAgZ19mcmVlIChz ZWxmLT5uYW1lKTsKKy0gIGdfZnJlZSAoc2VsZi0+d2hlcmUpOworKyAgZ19jbGVhcl9vYmplY3Qg KCZzZWxmLT5zcGFycWxfdGVtcGxhdGUpOworIAorICAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc19z ZWFyY2hfdHlwZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAob2JqZWN0KTsKKyB9CitAQCAtMTEz LDYgKzEwMSwxMCBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICpv YmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSAqdmFsdWUsCisgICAgICAgZ192YWx1ZV9zZXRf c3RyaW5nICh2YWx1ZSwgc2VsZi0+bmFtZSk7CisgICAgICAgYnJlYWs7CisgCisrICAgIGNhc2Ug UFJPUF9TUEFSUUxfVEVNUExBVEU6CisrICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0ICh2YWx1ZSwg c2VsZi0+c3BhcnFsX3RlbXBsYXRlKTsKKysgICAgICBicmVhazsKKysKKyAgICAgZGVmYXVsdDoK KyAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9p ZCwgcHNwZWMpOworICAgICAgIGJyZWFrOworQEAgLTEyNywxMCArMTE5LDYgQEAgcGhvdG9zX3Nl YXJjaF90eXBlX3NldF9wcm9wZXJ0eSAoR09iamVjdCAqb2JqZWN0LCBndWludCBwcm9wX2lkLCBj b25zdCBHVmFsdWUgKnYKKyAKKyAgIHN3aXRjaCAocHJvcF9pZCkKKyAgICAgeworLSAgICBjYXNl IFBST1BfRklMVEVSOgorLSAgICAgIHNlbGYtPmZpbHRlciA9IGdfdmFsdWVfZHVwX3N0cmluZyAo dmFsdWUpOworLSAgICAgIGJyZWFrOworLQorICAgICBjYXNlIFBST1BfSUQ6CisgICAgICAgc2Vs Zi0+aWQgPSBnX3ZhbHVlX2R1cF9zdHJpbmcgKHZhbHVlKTsKKyAgICAgICBicmVhazsKK0BAIC0x MzksOCArMTI3LDggQEAgcGhvdG9zX3NlYXJjaF90eXBlX3NldF9wcm9wZXJ0eSAoR09iamVjdCAq b2JqZWN0LCBndWludCBwcm9wX2lkLCBjb25zdCBHVmFsdWUgKnYKKyAgICAgICBzZWxmLT5uYW1l ID0gZ192YWx1ZV9kdXBfc3RyaW5nICh2YWx1ZSk7CisgICAgICAgYnJlYWs7CisgCistICAgIGNh c2UgUFJPUF9XSEVSRToKKy0gICAgICBzZWxmLT53aGVyZSA9IGdfdmFsdWVfZHVwX3N0cmluZyAo dmFsdWUpOworKyAgICBjYXNlIFBST1BfU1BBUlFMX1RFTVBMQVRFOgorKyAgICAgIHNlbGYtPnNw YXJxbF90ZW1wbGF0ZSA9IGdfb2JqZWN0X3JlZiAoZ192YWx1ZV9nZXRfb2JqZWN0ICh2YWx1ZSkp OworICAgICAgIGJyZWFrOworIAorICAgICBkZWZhdWx0OgorQEAgLTE2NSwxNCArMTUzLDYgQEAg cGhvdG9zX3NlYXJjaF90eXBlX2NsYXNzX2luaXQgKFBob3Rvc1NlYXJjaFR5cGVDbGFzcyAqY2xh c3MpCisgICBvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IHBob3Rvc19zZWFyY2hfdHlwZV9n ZXRfcHJvcGVydHk7CisgICBvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IHBob3Rvc19zZWFy Y2hfdHlwZV9zZXRfcHJvcGVydHk7CisgCistICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl cnR5IChvYmplY3RfY2xhc3MsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ Uk9QX0ZJTFRFUiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1f c3BlY19zdHJpbmcgKCJmaWx0ZXIiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIodHJ1ZSkiLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9DT05T VFJVQ1RfT05MWSB8IEdfUEFSQU1fV1JJVEFCTEUpKTsKKy0KKyAgIGdfb2JqZWN0X2NsYXNzX2lu c3RhbGxfcHJvcGVydHkgKG9iamVjdF9jbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBST1BfSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn X3BhcmFtX3NwZWNfc3RyaW5nICgiaWQiLAorQEAgLTE5MCwxMSArMTcwLDExIEBAIHBob3Rvc19z ZWFyY2hfdHlwZV9jbGFzc19pbml0IChQaG90b3NTZWFyY2hUeXBlQ2xhc3MgKmNsYXNzKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19Q QVJBTV9DT05TVFJVQ1RfT05MWSB8IEdfUEFSQU1fUkVBRFdSSVRFKSk7CisgCisgICBnX29iamVj dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChvYmplY3RfY2xhc3MsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQUk9QX1dIRVJFLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZyAoIndoZXJlIiwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9TUEFSUUxfVEVNUExBVEUsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0ICgic3BhcnFs LXRlbXBsYXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQSE9UT1NfVFlQRV9TUEFSUUxfVEVNUExBVEUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BB UkFNX0NPTlNUUlVDVF9PTkxZIHwgR19QQVJBTV9XUklUQUJMRSkpOworIH0KKyAKK0BAIC0yMDIs OSArMTgyLDcgQEAgcGhvdG9zX3NlYXJjaF90eXBlX2NsYXNzX2luaXQgKFBob3Rvc1NlYXJjaFR5 cGVDbGFzcyAqY2xhc3MpCisgc3RhdGljIHZvaWQKKyBwaG90b3Nfc2VhcmNoX3R5cGVfZmlsdGVy YWJsZV9pZmFjZV9pbml0IChQaG90b3NGaWx0ZXJhYmxlSW50ZXJmYWNlICppZmFjZSkKKyB7Cist ICBpZmFjZS0+Z2V0X2ZpbHRlciA9IHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfZmlsdGVyOworICAg aWZhY2UtPmdldF9pZCA9IHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfaWQ7CistICBpZmFjZS0+Z2V0 X3doZXJlID0gcGhvdG9zX3NlYXJjaF90eXBlX2dldF93aGVyZTsKKyAgIGlmYWNlLT5pc19zZWFy Y2hfY3JpdGVyaW9uID0gcGhvdG9zX3NlYXJjaF90eXBlX2lzX3NlYXJjaF9jcml0ZXJpb247Cisg fQorIAorQEAgLTIxNywxMiArMTk1LDEzIEBAIHBob3Rvc19zZWFyY2hfdHlwZV9uZXcgKGNvbnN0 IGdjaGFyICppZCwgY29uc3QgZ2NoYXIgKm5hbWUpCisgCisgCisgUGhvdG9zU2VhcmNoVHlwZSAq CistcGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxsIChjb25zdCBnY2hhciAqaWQsIGNvbnN0IGdj aGFyICpuYW1lLCBjb25zdCBnY2hhciAqd2hlcmUsIGNvbnN0IGdjaGFyICpmaWx0ZXIpCisrcGhv dG9zX3NlYXJjaF90eXBlX25ld19mdWxsIChjb25zdCBnY2hhciAqaWQsIGNvbnN0IGdjaGFyICpu YW1lLCBjb25zdCBnY2hhciAqdGVtcGxhdGVfcGF0aCkKKyB7CisrICBnX2F1dG9wdHIgKFBob3Rv c1NwYXJxbFRlbXBsYXRlKSB0ZW1wbGF0ZSA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfbmV3ICh0 ZW1wbGF0ZV9wYXRoKTsKKysKKyAgIHJldHVybiBnX29iamVjdF9uZXcgKFBIT1RPU19UWVBFX1NF QVJDSF9UWVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgImlkIiwgaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAibmFtZSIsIG5hbWUsCistICAgICAgICAgICAgICAgICAgICAgICAiZmls dGVyIiwgZmlsdGVyLAorLSAgICAgICAgICAgICAgICAgICAgICAgIndoZXJlIiwgd2hlcmUsCisr ICAgICAgICAgICAgICAgICAgICAgICAic3BhcnFsLXRlbXBsYXRlIiwgdGVtcGxhdGUsCisgICAg ICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyB9CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1z ZWFyY2gtdHlwZS5oIGIvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5oCitpbmRleCAyZjcxMzViZC4u N2Q2OTlkZDQgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXNlYXJjaC10eXBlLmgKKysrKyBiL3Ny Yy9waG90b3Mtc2VhcmNoLXR5cGUuaAorQEAgLTI0LDYgKzI0LDcgQEAKKyAjZGVmaW5lIFBIT1RP U19TRUFSQ0hfVFlQRV9ICisgCisgI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisrI2luY2x1ZGUg InBob3Rvcy1zcGFycWwtdGVtcGxhdGUuaCIKKyAKKyBHX0JFR0lOX0RFQ0xTCisgCitAQCAtMzks OCArNDAsOSBAQCBQaG90b3NTZWFyY2hUeXBlICAgICpwaG90b3Nfc2VhcmNoX3R5cGVfbmV3ICAg ICAgICAgICAgICAgIChjb25zdCBnY2hhciAqaWQsIGNvbgorIAorIFBob3Rvc1NlYXJjaFR5cGUg ICAgKnBob3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVsbCAgICAgICAgICAgKGNvbnN0IGdjaGFyICpp ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBnY2hhciAqbmFtZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqd2hlcmUsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgZ2NoYXIgKmZpbHRlcik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnRlbXBsYXRlX3BhdGgpOwor KworK1Bob3Rvc1NwYXJxbFRlbXBsYXRlICpwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0X3NwYXJxbF90 ZW1wbGF0ZSAoUGhvdG9zU2VhcmNoVHlwZSAqc2VsZik7CisgCisgR19FTkRfREVDTFMKKyAKK2Rp ZmYgLS1naXQgYS9zcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5jIGIvc3JjL3Bob3Rvcy1zcGFy cWwtdGVtcGxhdGUuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi5iMzI0 MzdjMAorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuYwor QEAgLTAsMCArMSwxODcgQEAKKysvKgorKyAqIFBob3RvcyAtIGFjY2Vzcywgb3JnYW5pemUgYW5k IHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdOT01FCisrICogQ29weXJpZ2h0IMKpIDIwMjAgU2FtIFRo dXJzZmllbGQgPHNhbUBhZnVlcmEubWUudWs+CisrICoKKysgKiBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAqIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisrICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorKyAqCisrICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgKiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICogR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysgKgorKyAqIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisrICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisrICovCisrCisrI2luY2x1ZGUgPGdpby9naW8uaD4KKysKKysj aW5jbHVkZSAicGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oIgorKworKyNkZWZpbmUgTUFYX1NQQVJR TF9URU1QTEFURV9TSVpFICgxMDI0ICogMTApCisrCisrc3RydWN0IF9QaG90b3NTcGFycWxUZW1w bGF0ZSB7CisrICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKysgIGdjaGFyICp0ZW1wbGF0ZV9w YXRoOworKyAgZ2NoYXIgKnRlbXBsYXRlX3RleHQ7CisrfTsKKysKKytHX0RFRklORV9UWVBFIChQ aG90b3NTcGFycWxUZW1wbGF0ZSwgcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZSwgR19UWVBFX09CSkVD VCkKKysKKytlbnVtIHsKKysgIFBST1BfMCwKKysgIFBST1BfVEVNUExBVEVfUEFUSCwKKysgIE5f UFJPUFMKKyt9OworKworK1Bob3Rvc1NwYXJxbFRlbXBsYXRlICoKKytwaG90b3Nfc3BhcnFsX3Rl bXBsYXRlX25ldyAoY29uc3QgZ2NoYXIgKnRlbXBsYXRlX3BhdGgpCisreworKyAgcmV0dXJuIGdf b2JqZWN0X25ldyAoUEhPVE9TX1RZUEVfU1BBUlFMX1RFTVBMQVRFLCAidGVtcGxhdGUtcGF0aCIs IHRlbXBsYXRlX3BhdGgsIE5VTEwpOworK30KKysKKytzdGF0aWMgdm9pZAorK3Bob3Rvc19zcGFy cWxfdGVtcGxhdGVfY29uc3RydWN0ZWQgKEdPYmplY3QgKm9iamVjdCkKKyt7CisrICBQaG90b3NT cGFycWxUZW1wbGF0ZSAqc2VsZiA9IFBIT1RPU19TUEFSUUxfVEVNUExBVEUgKG9iamVjdCk7Cisr ICBnX2F1dG9wdHIgKEdGaWxlKSBmaWxlID0gTlVMTDsKKysgIGdfYXV0b3B0ciAoR0ZpbGVJbnB1 dFN0cmVhbSkgc3RyZWFtID0gTlVMTDsKKysgIGdjaGFyIGJ1ZmZlcltNQVhfU1BBUlFMX1RFTVBM QVRFX1NJWkUgKyAxXTsKKysgIGdzaXplIGJ5dGVzX3JlYWQ7CisrICBnX2F1dG9wdHIgKEdFcnJv cikgZXJyb3IgPSBOVUxMOworKworKyAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc19zcGFycWxfdGVt cGxhdGVfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0ZWQgKG9iamVjdCk7CisrCisrICBmaWxlID0g Z19maWxlX25ld19mb3JfdXJpIChzZWxmLT50ZW1wbGF0ZV9wYXRoKTsKKysKKysgIHN0cmVhbSA9 IGdfZmlsZV9yZWFkIChmaWxlLCBOVUxMLCAmZXJyb3IpOworKworKyAgaWYgKCFzdHJlYW0pCisr ICAgIHsKKysgICAgICBnX2NyaXRpY2FsICgiRmFpbGVkIHRvIG9wZW4gdGVtcGxhdGUgJXM6ICVz Iiwgc2VsZi0+dGVtcGxhdGVfcGF0aCwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICB9CisrCisrICBn X2lucHV0X3N0cmVhbV9yZWFkX2FsbCAoR19JTlBVVF9TVFJFQU0gKHN0cmVhbSksIGJ1ZmZlciwg TUFYX1NQQVJRTF9URU1QTEFURV9TSVpFLCAmYnl0ZXNfcmVhZCwgTlVMTCwgJmVycm9yKTsKKysK KysgIGlmIChlcnJvcikKKysgICAgeworKyAgICAgIGdfY3JpdGljYWwgKCJGYWlsZWQgdG8gcmVh ZCB0ZW1wbGF0ZSAlczogJXMiLCBzZWxmLT50ZW1wbGF0ZV9wYXRoLCBlcnJvci0+bWVzc2FnZSk7 CisrICAgIH0KKysKKysgIGJ1ZmZlcltieXRlc19yZWFkXSA9ICdcMCc7CisrCisrICBzZWxmLT50 ZW1wbGF0ZV90ZXh0ICA9IGdfc3RyZHVwIChidWZmZXIpOworK30KKysKKytzdGF0aWMgdm9pZAor K3Bob3Rvc19zcGFycWxfdGVtcGxhdGVfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKKyt7Cisr ICBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9wYXJlbnRfY2xhc3MpLT5m aW5hbGl6ZSAob2JqZWN0KTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytwaG90b3Nfc3BhcnFsX3Rl bXBsYXRlX2dldF9wcm9wZXJ0eSAoR09iamVjdCAgICAqb2JqZWN0LAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICBwcm9wX2lkLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFsdWUgICAgICp2YWx1ZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAqcHNwZWMpCisreworKyAgUGhv dG9zU3BhcnFsVGVtcGxhdGUgKnNlbGYgPSBQSE9UT1NfU1BBUlFMX1RFTVBMQVRFIChvYmplY3Qp OworKworKyAgc3dpdGNoIChwcm9wX2lkKQorKyAgICB7CisrICAgIGNhc2UgUFJPUF9URU1QTEFU RV9QQVRIOgorKyAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyAodmFsdWUsIHNlbGYtPnRlbXBsYXRl X3BhdGgpOworKyAgICAgIGJyZWFrOworKworKyAgICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNU X1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAg IH0KKyt9CisrCisrc3RhdGljIHZvaWQKKytwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX3NldF9wcm9w ZXJ0eSAoR09iamVjdCAgICAgICpvYmplY3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGd1aW50ICAgICAgICAgcHJvcF9pZCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgR1ZhbHVlICp2YWx1ZSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAgICpwc3BlYykKKyt7CisrICBQaG90b3NTcGFy cWxUZW1wbGF0ZSAqc2VsZiA9IFBIT1RPU19TUEFSUUxfVEVNUExBVEUgKG9iamVjdCk7CisrCisr ICBzd2l0Y2ggKHByb3BfaWQpCisrICAgIHsKKysgICAgY2FzZSBQUk9QX1RFTVBMQVRFX1BBVEg6 CisrICAgICAgc2VsZi0+dGVtcGxhdGVfcGF0aCA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFsdWUp OworKyAgICAgIGJyZWFrOworKworKyAgICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5f SU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgIH0KKyt9 CisrCisrc3RhdGljIHZvaWQKKytwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2NsYXNzX2luaXQgKFBo b3Rvc1NwYXJxbFRlbXBsYXRlQ2xhc3MgKmtsYXNzKQorK3sKKysgIEdPYmplY3RDbGFzcyAqb2Jq ZWN0X2NsYXNzID0gR19PQkpFQ1RfQ0xBU1MgKGtsYXNzKTsKKysKKysgIG9iamVjdF9jbGFzcy0+ Y29uc3RydWN0ZWQgPSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2NvbnN0cnVjdGVkOworKyAgb2Jq ZWN0X2NsYXNzLT5maW5hbGl6ZSA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZmluYWxpemU7Cisr ICBvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZ2V0 X3Byb3BlcnR5OworKyAgb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkgPSBwaG90b3Nfc3BhcnFs X3RlbXBsYXRlX3NldF9wcm9wZXJ0eTsKKysKKysgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv cGVydHkgKG9iamVjdF9jbGFzcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBST1BfVEVNUExBVEVfUEFUSCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdfcGFyYW1fc3BlY19zdHJpbmcgKCJ0ZW1wbGF0ZS1wYXRoIiwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZW1wbGF0ZSBwYXRoIiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJQYXRoIHRvIHRoZSB0ZW1wbGF0ZSBmaWxlLiIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9DT05TVFJVQ1Rf T05MWSB8IEdfUEFSQU1fUkVBRFdSSVRFKSk7CisrfQorKworK3N0YXRpYyB2b2lkCisrcGhvdG9z X3NwYXJxbF90ZW1wbGF0ZV9pbml0IChQaG90b3NTcGFycWxUZW1wbGF0ZSAqc2VsZikKKyt7Cisr fQorKworKworK2djaGFyICoKKytwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2dldF9zcGFycWwgKFBo b3Rvc1NwYXJxbFRlbXBsYXRlICpzZWxmLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgKmZpcnN0X2JpbmRpbmdfbmFtZSwgLi4uKQorK3sK KysgIHZhX2xpc3QgdmE7CisrICBnY2hhciAqc3BhcnFsOworKworKyAgc3BhcnFsID0gc2VsZi0+ dGVtcGxhdGVfdGV4dDsKKysKKysgIC8qIEZJWE1FOiB0aGlzIGlzIGFuIGluZWZmaWNlbnQgd2F5 IHRvIGRvIHRlbXBsYXRlIHN1YnN0aXR1dGlvbnMKKysgICAqIGJlY2F1c2Ugd2UgYWxsb2NhdGUg YW5kIGZyZWUgYSBjb3B5IG9mIHRoZSBzdHJpbmcgZm9yIGVhY2ggYmluZGluZy4KKysgICAqIFdl IHNob3VsZCBjaGVjayBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdGVtcGxhdGUtZ2xp Yi8KKysgICAqLworKyAgaWYgKGZpcnN0X2JpbmRpbmdfbmFtZSkKKysgICAgeworKyAgICAgIEdS ZWdleCAqcmVnZXg7CisrICAgICAgZ2NoYXIgKm5hbWVfcmVnZXg7CisrICAgICAgY29uc3QgZ2No YXIgKm5hbWU7CisrICAgICAgY29uc3QgZ2NoYXIgKnZhbHVlOworKworKyAgICAgIHZhX3N0YXJ0 ICh2YSwgZmlyc3RfYmluZGluZ19uYW1lKTsKKysgICAgICBuYW1lID0gZmlyc3RfYmluZGluZ19u YW1lOworKyAgICAgIGRvIHsKKysgICAgICAgIHZhbHVlID0gdmFfYXJnICh2YSwgY29uc3QgZ2No YXIgKik7CisrCisrICAgICAgICBpZiAodmFsdWUgPT0gTlVMTCkKKysgICAgICAgICAgeworKyAg ICAgICAgICAgIGdfY3JpdGljYWwgKCJNaXNzaW5nIHZhbHVlIGZvciBhcmd1bWVudCBcIiVzXCIi LCBuYW1lKTsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgfQorKworKyAgICAgICAg bmFtZV9yZWdleCA9IGdfc3RyZHVwX3ByaW50ZiAoInt7XFxzPyVzXFxzP319IiwgbmFtZSk7Cisr ICAgICAgICByZWdleCA9IGdfcmVnZXhfbmV3IChuYW1lX3JlZ2V4LCAwLCAwLCBOVUxMKTsKKysg ICAgICAgIHNwYXJxbCA9IGdfcmVnZXhfcmVwbGFjZV9saXRlcmFsIChyZWdleCwgc3BhcnFsLCAt MSwgMCwgdmFsdWUsIDAsIE5VTEwpIDsKKysgICAgICB9IHdoaWxlICgobmFtZSA9IHZhX2FyZyAo dmEsIGNvbnN0IGdjaGFyICopKSk7CisrCisrICAgICAgdmFfZW5kICh2YSk7CisrICAgIH0KKysK KysgIHJldHVybiBzcGFycWw7CisrfQorZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mtc3BhcnFsLXRl bXBsYXRlLmggYi9zcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMDAuLjY2MzUxYjM4CistLS0gL2Rldi9udWxsCisrKysgYi9zcmMv cGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oCitAQCAtMCwwICsxLDM4IEBACisrLyoKKysgKiBQaG90 b3MgLSBhY2Nlc3MsIG9yZ2FuaXplIGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRQorKyAq IENvcHlyaWdodCDCqSAyMDIwIFNhbSBUaHVyc2ZpZWxkIDxzYW1AYWZ1ZXJhLm1lLnVrPgorKyAq CisrICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKysgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAqIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICogKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisrICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrICoKKysgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKyAqLworKworKyNw cmFnbWEgb25jZQorKworKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorKworK0dfQkVHSU5fREVD TFMKKysKKysjZGVmaW5lIFBIT1RPU19UWVBFX1NQQVJRTF9URU1QTEFURSAocGhvdG9zX3NwYXJx bF90ZW1wbGF0ZV9nZXRfdHlwZSgpKQorKworK0dfREVDTEFSRV9GSU5BTF9UWVBFIChQaG90b3NT cGFycWxUZW1wbGF0ZSwgcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZSwgUEhPVE9TLCBTUEFSUUxfVEVN UExBVEUsIEdPYmplY3QpCisrCisrc3RydWN0IF9QaG90b3NTcGFycWxUZW1wbGF0ZUNsYXNzCisr eworKyAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKKyt9OworKworK1Bob3Rvc1NwYXJxbFRl bXBsYXRlICpwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX25ldyAoY29uc3QgZ2NoYXIgKnRlbXBsYXRl X3BhdGgpOworKworK2djaGFyICpwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2dldF9zcGFycWwgKFBo b3Rvc1NwYXJxbFRlbXBsYXRlICpzZWxmLCBjb25zdCBnY2hhciAqZmlyc3RfYmluZGluZ19uYW1l LCAuLi4pICBHX0dOVUNfTlVMTF9URVJNSU5BVEVEOworKworK0dfRU5EX0RFQ0xTCitkaWZmIC0t Z2l0IGEvc3JjL3Bob3Rvcy5ncmVzb3VyY2UueG1sIGIvc3JjL3Bob3Rvcy5ncmVzb3VyY2UueG1s CitpbmRleCAxMDE1YjExZC4uMzllNmQ4NDIgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLmdyZXNv dXJjZS54bWwKKysrKyBiL3NyYy9waG90b3MuZ3Jlc291cmNlLnhtbAorQEAgLTM1LDYgKzM1LDEw IEBACisgICAgIDxmaWxlIGFsaWFzPSJzZWxlY3Rpb24tdG9vbGJhci51aSIgcHJlcHJvY2Vzcz0i eG1sLXN0cmlwYmxhbmtzIiBjb21wcmVzc2VkPSJ0cnVlIj5waG90b3Mtc2VsZWN0aW9uLXRvb2xi YXIudWk8L2ZpbGU+CisgICAgIDxmaWxlIGFsaWFzPSJzaGFyZS1kaWFsb2cudWkiIHByZXByb2Nl c3M9InhtbC1zdHJpcGJsYW5rcyIgY29tcHJlc3NlZD0idHJ1ZSI+cGhvdG9zLXNoYXJlLWRpYWxv Zy51aTwvZmlsZT4KKyAgICAgPGZpbGUgYWxpYXM9Inpvb20tY29udHJvbHMudWkiIHByZXByb2Nl c3M9InhtbC1zdHJpcGJsYW5rcyIgY29tcHJlc3NlZD0idHJ1ZSI+cGhvdG9zLXpvb20tY29udHJv bHMudWk8L2ZpbGU+CisrICAgIDxmaWxlIGFsaWFzPSJhbGwuc3BhcnFsLnRlbXBsYXRlIj5xdWVy aWVzL2FsbC5zcGFycWwudGVtcGxhdGU8L2ZpbGU+CisrICAgIDxmaWxlIGFsaWFzPSJjb2xsZWN0 aW9ucy5zcGFycWwudGVtcGxhdGUiPnF1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRl PC9maWxlPgorKyAgICA8ZmlsZSBhbGlhcz0iZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0 ZSI+cXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlPC9maWxlPgorKyAgICA8 ZmlsZSBhbGlhcz0icGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSI+cXVlcmllcy9waG90b3Muc3BhcnFs LnRlbXBsYXRlPC9maWxlPgorICAgPC9ncmVzb3VyY2U+CisgCisgICA8Z3Jlc291cmNlIHByZWZp eD0iL29yZy9nbm9tZS9QaG90b3MvZ3RrIj4KK2RpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9hbGwu c3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4xY2VmOThlOAorLS0tIC9kZXYvbnVsbAor KysrIGIvc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQorQEAgLTAsMCArMSwzMSBAQAor K1NFTEVDVCB7e3Byb2plY3Rpb259fQorK3sKKysgICAgeworKyAgICAgICAgU0VMRUNUIHt7cHJv amVjdGlvbn19CisrICAgICAgICB7CisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICBT RUxFQ1QgP3VybiBDT1VOVCg/aXRlbSkgQVMgP2NvdW50CisrICAgICAgICAgICAgICAgIHsKKysg ICAgICAgICAgICAgICAgICAgID91cm4gYSBuZm86RGF0YUNvbnRhaW5lci4KKysgICAgICAgICAg ICAgICAgICAgID9pdGVtIGEgbm1tOlBob3RvOyBuaWU6aXNQYXJ0T2YgP3Vybi4KKysgICAgICAg ICAgICAgICAgfSBHUk9VUCBCWSA/dXJuCisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIEZJ TFRFUiAoP2NvdW50ID4gMCAmJiB7e2NvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tz ZWFyY2hfZmlsdGVyfX0pCisrICAgICAgICB9CisrICAgICAgICBHUk9VUCBCWSA/dXJuCisrICAg IH0KKysgICAgVU5JT04KKysgICAgeworKyAgICAgICAgU0VMRUNUIHt7cHJvamVjdGlvbn19Cisr ICAgICAgICB7CisrICAgICAgICAgICAgP3VybiBhIG5tbTpQaG90byAuCisrICAgICAgICAgICAg T1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9yID9jcmVhdG9yIC4gfQorKyAgICAgICAgICAgIE9Q VElPTkFMIHsgP3VybiBuY286cHVibGlzaGVyID9wdWJsaXNoZXIgLiB9CisrICAgICAgICAgICAg e3tpdGVtX3BhdHRlcm59fQorKyAgICAgICAgICAgIEZJTFRFUiAoe3twaG90b3NfZGVmYXVsdF9m aWx0ZXJ9fSAmJiB7e3NvdXJjZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKysgICAg ICAgIH0KKysgICAgICAgIEdST1VQIEJZID91cm4KKysgICAgfQorK30KKyt7e29yZGVyfX0KKyt7 e29mZnNldF9saW1pdH19CitkaWZmIC0tZ2l0IGEvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3Bh cnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjIwYjM1Y2Q2CistLS0gL2Rldi9u dWxsCisrKysgYi9zcmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUKK0BAIC0w LDAgKzEsMTQgQEAKKytTRUxFQ1Qge3twcm9qZWN0aW9ufX0KKyt7CisrICAgIHsKKysgICAgICAg IFNFTEVDVCA/dXJuIENPVU5UKD9pdGVtKSBBUyA/Y291bnQKKysgICAgICAgIHsKKysgICAgICAg ICAgICA/dXJuIGEgbmZvOkRhdGFDb250YWluZXIuCisrICAgICAgICAgICAgP2l0ZW0gYSBubW06 UGhvdG87IG5pZTppc1BhcnRPZiA/dXJuLgorKyAgICAgICAgfSBHUk9VUCBCWSA/dXJuCisrICAg IH0KKysgICAgRklMVEVSICg/Y291bnQgPiAwICYmIHt7Y29sbGVjdGlvbnNfZGVmYXVsdF9maWx0 ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKyt9CisrR1JPVVAgQlkgP3VybgorK3t7b3JkZXJ9 fQorK3t7b2Zmc2V0X2xpbWl0fX0KK2RpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9mYXZvcml0ZS1w aG90b3Muc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJx bC50ZW1wbGF0ZQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4wODg1YTA4 YQorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJx bC50ZW1wbGF0ZQorQEAgLTAsMCArMSwxMiBAQAorK1NFTEVDVCB7e3Byb2plY3Rpb259fQorK3sK KysgICAgP3VybiBhIG5tbTpQaG90byAuCisrICAgID91cm4gYSBubW06UGhvdG87IG5hbzpoYXNU YWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlIC4KKysgICAgT1BUSU9OQUwgeyA/dXJuIG5j bzpjcmVhdG9yID9jcmVhdG9yIC4gfQorKyAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hl ciA/cHVibGlzaGVyIC4gfQorKyAgICB7e2l0ZW1fcGF0dGVybn19CisrICAgIEZJTFRFUiAoe3tw aG90b3NfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NvdXJjZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9m aWx0ZXJ9fSkKKyt9CisrR1JPVVAgQlkgP3VybgorK3t7b3JkZXJ9fQorK3t7b2Zmc2V0X2xpbWl0 fX0KK2RpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlIGIvc3Jj L3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2lu ZGV4IDAwMDAwMDAwLi40ZWIxMGI3NAorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL3F1ZXJpZXMv cGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorQEAgLTAsMCArMSwxMSBAQAorK1NFTEVDVCB7e3Byb2pl Y3Rpb259fQorK3sKKysgICAgP3VybiBhIG5tbTpQaG90byAuCisrICAgIE9QVElPTkFMIHsgP3Vy biBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KKysgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJs aXNoZXIgP3B1Ymxpc2hlciAuIH0KKysgICAge3tpdGVtX3BhdHRlcm59fQorKyAgICBGSUxURVIg KHt7cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFy Y2hfZmlsdGVyfX0pCisrfQorK0dST1VQIEJZID91cm4KKyt7e29yZGVyfX0KKyt7e29mZnNldF9s aW1pdH19CistLSAKK0dpdExhYgorCisKK0Zyb20gZDYxZDQ0MGVmZTM0MGJkYTRlMTk1ZDY0MDA2 NmZiMjkyMjBkMGNiNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNhbSBUaHVyc2Zp ZWxkIDxzYW1AYWZ1ZXJhLm1lLnVrPgorRGF0ZTogU2F0LCAyMyBNYXkgMjAyMCAxMzozNjoyNSAr MDIwMAorU3ViamVjdDogW1BBVENIIDQvNF0gUG9ydCB0byBUcmFja2VyIDMKKworTm90YWJsZSBj aGFuZ2VzOgorCisgICogVXNlciBkYXRhIChmYXZvdXJpdGVzLCBhbGJ1bXMpIGlzIG5vdyBzdG9y ZWQgaW4gYSBwcml2YXRlIGRhdGFiYXNlIGluCisgICAgfi8ubG9jYWwvc2hhcmUvZ25vbWUtcGhv dG9zLiBUaGlzIGlzIGNvbWJpbmVkIHdpdGggdGhlIFRyYWNrZXIgTWluZXIKKyAgICBGUyBpbmRl eCBvZiBwaG90b3MgYXQgcXVlcnkgdGltZS4KKyAgKiBJbnNpZGUgRmxhdHBhaywgdGhlIGFwcCBj b25uZWN0cyB0byBUcmFja2VyIHZpYSB0aGUgbmV3CisgICAgeGRnLXRyYWNrZXItcG9ydGFsIGlu c3RlYWQgb2YgdGFsa2luZyBkaXJlY3RseSBvdmVyIEQtQnVzLiBBY2Nlc3MgaXMKKyAgICBsaW1p dGVkIGJ5IHRoZSBwb3J0YWwgc28gdGhlIGFwcCBjYW4gb25seSBzZWUgdGhlIFBpY3R1cmVzIGdy YXBoLgorICAqIFRoZSBGbGF0cGFrIGJ1aWxkIGNhbiB1c2UgYSBidW5kbGVkIHZlcnNpb24gb2Yg VHJhY2tlciBNaW5lcnMsIGlmIGEKKyAgICBzdWl0YWJsZSB2ZXJzaW9uIGlzIG5vdCBhdmFpbGFi bGUgb24gdGhlIGhvc3QuCisgICogQ2hhbmdlIGRldGVjdGlvbiBpcyBkb25lIHVzaW5nIFRyYWNr ZXJOb3RpZmllciBpbnN0ZWFkIG9mIHdhdGNoaW5nCisgICAgdGhlIEdyYXBoVXBkYXRlZCBELUJ1 cyBzaWduYWwgZGlyZWN0bHkuCisKK0Nsb3NlcyBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05P TUUvZ25vbWUtcGhvdG9zLy0vaXNzdWVzLzU5CitDbG9zZXMgaHR0cHM6Ly9naXRsYWIuZ25vbWUu b3JnL0dOT01FL2dub21lLXBob3Rvcy8tL2lzc3Vlcy8xNTIKKy0tLQorIGRhdGEvbWVzb24uYnVp bGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCisgZGF0YS90cmFja2VyL21l c29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgIHwgIDMzICsrCisgLi4uZS5QaG90b3MuVHJh Y2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlLmluIHwgICA3ICsKKyAuLi5vbWUuUGhvdG9zLlRy YWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UuaW4gfCAgIDcgKworIGRhdGEvdHJhY2tlci9vcmcu Z25vbWUuUGhvdG9zLmRvbWFpbi5ydWxlLmluICB8ICAyMCArCisgZmxhdHBhay9vcmcuZ25vbWUu UGhvdG9zLmpzb24gICAgICAgICAgICAgICAgIHwgIDU1ICstCisgbWVzb24uYnVpbGQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICstCisgc3JjL21lc29uLmJ1aWxkICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE5ICstCisgLi4uZnJlZWRlc2t0b3AuVHJh Y2tlcjMuTWluZXIuRmlsZXMuSW5kZXgueG1sIHwgIDExICsKKyBzcmMvb3JnLmZyZWVkZXNrdG9w LlRyYWNrZXIzLk1pbmVyLnhtbCAgICAgICAgfCAgNTYgKysrCisgc3JjL3Bob3Rvcy1hcHBsaWNh dGlvbi5jICAgICAgICAgICAgICAgICAgICAgIHwgMTg0ICsrKy0tLS0KKyBzcmMvcGhvdG9zLWJh c2UtaXRlbS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTggKy0KKyBzcmMvcGhvdG9zLWlu ZGV4aW5nLW5vdGlmaWNhdGlvbi5jICAgICAgICAgICAgfCAgNTMgKy0KKyBzcmMvcGhvdG9zLWl0 ZW0tbWFuYWdlci5jICAgICAgICAgICAgICAgICAgICAgfCAgNjkgKy0tCisgc3JjL3Bob3Rvcy1x dWFya3MuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIwICstCisgc3JjL3Bob3Rvcy1x dWVyeS1idWlsZGVyLmMgICAgICAgICAgICAgICAgICAgIHwgMTQ4ICsrKystLQorIHNyYy9waG90 b3Mtc2VhcmNoLWNvbnRleHQuYyAgICAgICAgICAgICAgICAgICB8ICAgMyArCisgc3JjL3Bob3Rv cy1zZWFyY2gtY29udGV4dC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKKyBzcmMvcGhvdG9z LXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmMgICAgICAgICAgICAgfCAgIDIgKy0KKyBzcmMvcGhvdG9z LXNvdXJjZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KKyBzcmMvcGhvdG9z LXRyYWNrZXItY2hhbmdlLWV2ZW50LmMgICAgICAgICAgICAgfCAxMzYgLS0tLS0KKyBzcmMvcGhv dG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmggICAgICAgICAgICAgfCAgNjQgLS0tCisgc3JjL3Bo b3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmMgICAgICAgICAgIHwgNDY4IC0tLS0tLS0tLS0t LS0tLS0tLQorIHNyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5oICAgICAgICAgICB8 ICA0MiAtLQorIHNyYy9waG90b3MtdHJhY2tlci1jb250cm9sbGVyLmMgICAgICAgICAgICAgICB8 ICAxMiArLQorIHNyYy9waG90b3MtdHJhY2tlci1leHRyYWN0LXByaW9yaXR5LnhtbCAgICAgICB8 ICAgMiArLQorIHNyYy9waG90b3MtdHJhY2tlci1pbXBvcnQtY29udHJvbGxlci5jICAgICAgICB8 ICA4NSArKy0tCisgc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmMgICAgICAgICAgICAgICAgICAg IHwgMjA2ICsrKysrKystCisgc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmggICAgICAgICAgICAg ICAgICAgIHwgICA3ICsKKyBzcmMvcGhvdG9zLXRyYWNrZXItcmVzb3VyY2VzLnhtbCAgICAgICAg ICAgICAgfCAgMzEgLS0KKyBzcmMvcGhvdG9zLXV0aWxzLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMjQgKy0KKyBzcmMvcGhvdG9zLXV0aWxzLmggICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KKyBzcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlICAgICAgICAg ICAgICAgfCAgMzQgKy0KKyBzcmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUg ICAgICAgfCAgMjAgKy0KKyBzcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBs YXRlICAgfCAgMjAgKy0KKyBzcmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlICAgICAg ICAgICAgfCAgMjIgKy0KKyAzNiBmaWxlcyBjaGFuZ2VkLCA3NTQgaW5zZXJ0aW9ucygrKSwgMTE0 NiBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZGF0YS90cmFja2VyL21lc29uLmJ1 aWxkCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLlRy YWNrZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZS5pbgorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkYXRh L3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5GaWxlcy5zZXJ2aWNlLmlu CisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLmRvbWFp bi5ydWxlLmluCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tl cjMuTWluZXIuRmlsZXMuSW5kZXgueG1sCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9vcmcuZnJl ZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIueG1sCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9waG90 b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuYworIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvcGhvdG9z LXRyYWNrZXItY2hhbmdlLWV2ZW50LmgKKyBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3Bob3Rvcy10 cmFja2VyLWNoYW5nZS1tb25pdG9yLmMKKyBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3Bob3Rvcy10 cmFja2VyLWNoYW5nZS1tb25pdG9yLmgKKyBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3Bob3Rvcy10 cmFja2VyLXJlc291cmNlcy54bWwKKworZGlmZiAtLWdpdCBhL2RhdGEvbWVzb24uYnVpbGQgYi9k YXRhL21lc29uLmJ1aWxkCitpbmRleCA3ODk4YjBjYy4uZjBkODVkNGIgMTAwNjQ0CistLS0gYS9k YXRhL21lc29uLmJ1aWxkCisrKysgYi9kYXRhL21lc29uLmJ1aWxkCitAQCAtNTQsMyArNTQsNSBA QCBpbnN0YWxsX2RhdGEoCisgICBwaG90b3NfbmFtZXNwYWNlLnRvX2xvd2VyKCkgKyAnLmdzY2hl bWEueG1sJywKKyAgIGluc3RhbGxfZGlyOiBqb2luX3BhdGhzKHBob3Rvc19kYXRhZGlyLCAnZ2xp Yi0yLjAnLCAnc2NoZW1hcycpLAorICkKKysKKytzdWJkaXIoJ3RyYWNrZXInKQorZGlmZiAtLWdp dCBhL2RhdGEvdHJhY2tlci9tZXNvbi5idWlsZCBiL2RhdGEvdHJhY2tlci9tZXNvbi5idWlsZAor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi5hY2NjOTljMgorLS0tIC9kZXYv bnVsbAorKysrIGIvZGF0YS90cmFja2VyL21lc29uLmJ1aWxkCitAQCAtMCwwICsxLDMzIEBACisr IyBGaWxlcyBuZWVkZWQgZm9yIHJ1bm5pbmcgVHJhY2tlciBpbnNpZGUgdGhlIEZsYXRwYWsgc2Fu ZGJveCwgZm9yIHN5c3RlbXMKKysjIHdoaWNoIGRvbid0IGhhdmUgYSBzdWl0YWJsZSB2ZXJzaW9u IG9mIFRyYWNrZXIgaW4gdGhlIGhvc3QgT1MuCisrIworKyMgV2UgbXVzdCBleHBvcnQgdGhlIC5z ZXJ2aWNlIGZpbGVzIGZyb20gdGhlIHNhbmRib3ggc28gdGhleSB3b3JrIG9uIHRoZQorKyMgc2Vz c2lvbiBidXMuIFRoaXMgbWVhbnMgdGhlIFRyYWNrZXIgZG9tYWluIG5hbWUgbXVzdCBjb3JyZXNw b25kIHdpdGggdGhlCisrIyBhcHBsaWNhdGlvbiBJRC4KKysKKysKKytkb21haW5fb250b2xvZ2ll c19kaXIgPSBnZXRfb3B0aW9uKCdkYXRhZGlyJykgLyAndHJhY2tlcjMnIC8gJ2RvbWFpbi1vbnRv bG9naWVzJworK2RidXNfc2VydmljZXNfZGlyID0gZ2V0X29wdGlvbignZGF0YWRpcicpIC8gJ2Ri dXMtMScgLyAnc2VydmljZXMnCisrCisrdHJhY2tlcl9kb21haW5fY29uZmlnID0gY29uZmlndXJh dGlvbl9kYXRhKCkKKyt0cmFja2VyX2RvbWFpbl9jb25maWcuc2V0KCdhcHBsaWNhdGlvbl9pZCcs IHBob3Rvc19uYW1lc3BhY2UpCisrdHJhY2tlcl9kb21haW5fY29uZmlnLnNldCgnZG9tYWluX3J1 bGUnLCBnZXRfb3B0aW9uKCdwcmVmaXgnKSAvIGRvbWFpbl9vbnRvbG9naWVzX2RpciAvIHBob3Rv c19uYW1lc3BhY2UgKyAnLmRvbWFpbi5ydWxlJykKKysKKytjb25maWd1cmVfZmlsZSgKKysgIGlu cHV0OiAnb3JnLmdub21lLlBob3Rvcy5kb21haW4ucnVsZS5pbicsCisrICBvdXRwdXQ6IHBob3Rv c19uYW1lc3BhY2UgKyAnLmRvbWFpbi5ydWxlJywKKysgIGNvbmZpZ3VyYXRpb246IHRyYWNrZXJf ZG9tYWluX2NvbmZpZywKKysgIGluc3RhbGxfZGlyOiBkb21haW5fb250b2xvZ2llc19kaXIpCisr CisrY29uZmlndXJlX2ZpbGUoCisrICBpbnB1dDogJ29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMu TWluZXIuRXh0cmFjdC5zZXJ2aWNlLmluJywKKysgIG91dHB1dDogcGhvdG9zX25hbWVzcGFjZSAr ICcuVHJhY2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlJywKKysgIGNvbmZpZ3VyYXRpb246IHRy YWNrZXJfZG9tYWluX2NvbmZpZywKKysgIGluc3RhbGxfZGlyOiBkYnVzX3NlcnZpY2VzX2RpcikK KysKKytjb25maWd1cmVfZmlsZSgKKysgIGlucHV0OiAnb3JnLmdub21lLlBob3Rvcy5UcmFja2Vy My5NaW5lci5GaWxlcy5zZXJ2aWNlLmluJywKKysgIG91dHB1dDogcGhvdG9zX25hbWVzcGFjZSAr ICcuVHJhY2tlcjMuTWluZXIuRmlsZXMuc2VydmljZScsCisrICBjb25maWd1cmF0aW9uOiB0cmFj a2VyX2RvbWFpbl9jb25maWcsCisrICBpbnN0YWxsX2RpcjogZGJ1c19zZXJ2aWNlc19kaXIpCisr CitkaWZmIC0tZ2l0IGEvZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWlu ZXIuRXh0cmFjdC5zZXJ2aWNlLmluIGIvZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuVHJh Y2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlLmluCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5k ZXggMDAwMDAwMDAuLmViN2E4N2FhCistLS0gL2Rldi9udWxsCisrKysgYi9kYXRhL3RyYWNrZXIv b3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5FeHRyYWN0LnNlcnZpY2UuaW4KK0BAIC0w LDAgKzEsNyBAQAorK1tELUJVUyBTZXJ2aWNlXQorK05hbWU9QGFwcGxpY2F0aW9uX2lkQC5UcmFj a2VyMy5NaW5lci5FeHRyYWN0CisrRXhlYz0vYXBwL2xpYmV4ZWMvdHJhY2tlci1leHRyYWN0LTMg LS1kb21haW4tb250b2xvZ3kgQGRvbWFpbl9ydWxlQAorKworKyMgTWluZXIgZGV0YWlscyBuZWVk ZWQgZm9yIHRyYWNrZXItY29udHJvbAorK1BhdGg9L29yZy9mcmVlZGVza3RvcC9UcmFja2VyMy9N aW5lci9FeHRyYWN0CisrTmFtZVN1ZmZpeD1NaW5lci5GaWxlcworZGlmZiAtLWdpdCBhL2RhdGEv dHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UuaW4g Yi9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5GaWxlcy5zZXJ2 aWNlLmluCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjRmYTczNzFkCist LS0gL2Rldi9udWxsCisrKysgYi9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5UcmFja2Vy My5NaW5lci5GaWxlcy5zZXJ2aWNlLmluCitAQCAtMCwwICsxLDcgQEAKKytbRC1CVVMgU2Vydmlj ZV0KKytOYW1lPUBhcHBsaWNhdGlvbl9pZEAuVHJhY2tlcjMuTWluZXIuRmlsZXMKKytFeGVjPS9h cHAvbGliZXhlYy90cmFja2VyLW1pbmVyLWZzLTMgLS1kb21haW4tb250b2xvZ3kgQGRvbWFpbl9y dWxlQCAtLWluaXRpYWwtc2xlZXAgMAorKworKyMgTWluZXIgZGV0YWlscyBuZWVkZWQgZm9yIHRy YWNrZXItY29udHJvbAorK1BhdGg9L29yZy9mcmVlZGVza3RvcC9UcmFja2VyMy9NaW5lci9GaWxl cworK05hbWVTdWZmaXg9TWluZXIuRmlsZXMKK2RpZmYgLS1naXQgYS9kYXRhL3RyYWNrZXIvb3Jn Lmdub21lLlBob3Rvcy5kb21haW4ucnVsZS5pbiBiL2RhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhv dG9zLmRvbWFpbi5ydWxlLmluCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAu LjhmNWZjNGExCistLS0gL2Rldi9udWxsCisrKysgYi9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBo b3Rvcy5kb21haW4ucnVsZS5pbgorQEAgLTAsMCArMSwyMCBAQAorKyMgVGhpcyBkZWZpbmVzIGEg cHJpdmF0ZSBUcmFja2VyIGRvbWFpbiBmb3IgR05PTUUgUGhvdG9zLgorKyMKKysjIEl0J3MgdXNl ZCB0byBydW4gdGhlIFRyYWNrZXIgaW5kZXhlciBpbnNpZGUgYSBGbGF0cGFrIHNhbmRib3gsIHdo ZW4gUGhvdG9zIGlzCisrIyBydW5uaW5nIG9uIGEgaG9zdCB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHN1 aXRhYmxlIHZlcnNpb24gb2YgVHJhY2tlciBpbnN0YWxsZWQuCisrCisrW0RvbWFpbk9udG9sb2d5 XQorKyMgTG9jYXRpb24gZm9yIHRoZSBUcmFja2VyIGRhdGFiYXNlCisrQ2FjaGVMb2NhdGlvbj0k WERHX0NBQ0hFX0hPTUUvZ25vbWUtcGhvdG9zL21pbmVyL2ZpbGVzCisrCisrIyBOYW1lIG9mIHRo ZSBvbnRvbG9neSB0byB1c2UsIG11c3QgYmUgb25lIGxvY2F0ZWQgaW4KKysjICQoc2hhcmVkaXIp L3RyYWNrZXIvb250b2xvZ2llcworK09udG9sb2d5TmFtZT1uZXBvbXVrCisrCisrIyBEQnVzIG5h bWUgZm9yIHRoZSBvd25lciAobm90IG9wdGlvbmFsKS4gVHJhY2tlciB3aWxsIHVzZQorKyMgdGhl IGRvbWFpbiBhcyB0aGUgcHJlZml4IG9mIHRoZSBEQnVzIG5hbWUgZm9yIGFsbCB0aGUKKysjIHNl cnZpY2VzIHJlbGF0ZWQgdG8gdGhpcyBkb21haW4gb250b2xvZ3kuCisrRG9tYWluPUBhcHBsaWNh dGlvbl9pZEAKKysKKysjIExpc3Qgb2YgbWluZXJzIHdlIGV4cGVjdCB0byBydW4gaW4gdGhpcyBk b21haW4uCisrTWluZXJzPU1pbmVyLkZpbGVzO01pbmVyLkV4dHJhY3QKK2RpZmYgLS1naXQgYS9m bGF0cGFrL29yZy5nbm9tZS5QaG90b3MuanNvbiBiL2ZsYXRwYWsvb3JnLmdub21lLlBob3Rvcy5q c29uCitpbmRleCA1ZDE2Njg5Yy4uYWRmZGFmMzQgMTAwNjQ0CistLS0gYS9mbGF0cGFrL29yZy5n bm9tZS5QaG90b3MuanNvbgorKysrIGIvZmxhdHBhay9vcmcuZ25vbWUuUGhvdG9zLmpzb24KK0BA IC03LDcgKzcsNyBAQAorICAgICAidGFncyI6IFsgIm5pZ2h0bHkiIF0sCisgICAgICJkZXNrdG9w LWZpbGUtbmFtZS1wcmVmaXgiOiAiKE5pZ2h0bHkpICIsCisgICAgICJmaW5pc2gtYXJncyI6IFsK Ky0gICAgICAgICItLWVudj1UUkFDS0VSX1NQQVJRTF9CQUNLRU5EPWJ1cyIsCisrICAgICAgICAi LS1hZGQtcG9saWN5PVRyYWNrZXIzLmRidXM6b3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVy LkZpbGVzPXRyYWNrZXI6UGljdHVyZXMiLAorICAgICAgICAgIi0tZmlsZXN5c3RlbT14ZGctZG93 bmxvYWQiLAorICAgICAgICAgIi0tZmlsZXN5c3RlbT14ZGctcGljdHVyZXMiLAorICAgICAgICAg Ii0tbWV0YWRhdGE9WC1EQ29uZj1taWdyYXRlLXBhdGg9L29yZy9nbm9tZS9waG90b3MvIiwKK0BA IC0xNyw4ICsxNyw4IEBACisgICAgICAgICAiLS1zb2NrZXQ9d2F5bGFuZCIsCisgICAgICAgICAi LS1zb2NrZXQ9eDExIiwKKyAgICAgICAgICItLXRhbGstbmFtZT1vcmcuZnJlZWRlc2t0b3AuRmls ZU1hbmFnZXIxIiwKKy0gICAgICAgICItLXRhbGstbmFtZT1vcmcuZnJlZWRlc2t0b3AuVHJhY2tl cjEiLAorLSAgICAgICAgIi0tdGFsay1uYW1lPW9yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5NaW5l ci5FeHRyYWN0IiwKKysgICAgICAgICItLXRhbGstbmFtZT1vcmcuZnJlZWRlc2t0b3AuVHJhY2tl cjMuTWluZXIuRmlsZXMiLAorKyAgICAgICAgIi0tdGFsay1uYW1lPW9yZy5mcmVlZGVza3RvcC5U cmFja2VyMy5NaW5lci5GaWxlcy5JbmRleCIsCisgICAgICAgICAiLS10YWxrLW5hbWU9Y29tLmlu dGVsLmRsZXluYS1yZW5kZXJlciIsCisgICAgICAgICAiLS10YWxrLW5hbWU9b3JnLmdub21lLkNv bnRyb2xDZW50ZXIiLAorICAgICAgICAgIi0tdGFsay1uYW1lPW9yZy5nbm9tZS5TZXR0aW5nc0Rh ZW1vbiIsCitAQCAtMjQ4LDU2ICsyNDgsMjIgQEAKKyAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgIF0KKyAgICAgICAgIH0sCistICAgICAgICB7CistICAgICAgICAgICAgIm5hbWUiOiAi dHJhY2tlciIsCistICAgICAgICAgICAgImJ1aWxkc3lzdGVtIjogIm1lc29uIiwKKy0gICAgICAg ICAgICAiY2xlYW51cCI6IFsgIi9iaW4iLCAiL2V0YyIsICIvbGliL2dpcmVwb3NpdG9yeS0xLjAi LCAiL2xpYmV4ZWMiLCAiL3NoYXJlL2RidXMtMSIsICIvc2hhcmUvZ2lyLTEuMCIgXSwKKy0gICAg ICAgICAgICAiY29uZmlnLW9wdHMiOiBbICItRGJhc2hfY29tcGxldGlvbj1ubyIsICItRGRvY3M9 ZmFsc2UiLCAiLURzeXN0ZW1kX3VzZXJfc2VydmljZXM9bm8iIF0sCistICAgICAgICAgICAgInNv dXJjZXMiOiBbCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICJ0eXBl IjogImdpdCIsCistICAgICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdu b21lLm9yZy9HTk9NRS90cmFja2VyLmdpdCIsCistICAgICAgICAgICAgICAgICAgICAiYnJhbmNo IjogInRyYWNrZXItMi4zIgorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgXQorLSAg ICAgICAgfSwKKy0gICAgICAgIHsKKy0gICAgICAgICAgICAibmFtZSI6ICJpbnRsdG9vbCIsCist ICAgICAgICAgICAgImNsZWFudXAiOiBbICIqIiBdLAorLSAgICAgICAgICAgICJzb3VyY2VzIjog WworLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJhcmNo aXZlIiwKKy0gICAgICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9sYXVuY2hwYWQubmV0 L2ludGx0b29sL3RydW5rLzAuNTEuMC8rZG93bmxvYWQvaW50bHRvb2wtMC41MS4wLnRhci5neiIs CistICAgICAgICAgICAgICAgICAgICAic2hhMjU2IjogIjY3Yzc0ZDk0MTk2YjE1M2I3NzRhYjlm ODliMmZhNmM2YmE3OTM1MjQwNzAzN2M4YzE0ZDVhZWIzMzRlOTU5Y2QiCistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICBdCistICAgICAgICB9LAorICAgICAgICAgeworICAgICAgICAg ICAgICJuYW1lIjogInRyYWNrZXItbWluZXJzIiwKKyAgICAgICAgICAgICAiYnVpbGRzeXN0ZW0i OiAibWVzb24iLAorLSAgICAgICAgICAgICJjbGVhbnVwIjogWyAiL2V0YyIsCistICAgICAgICAg ICAgICAgICAgICAgICAgICIvbGliIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIi9saWJl eGVjIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFyZS9kYnVzLTEvc2VydmljZXMv b3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLk1pbmVyLkV4dHJhY3Quc2VydmljZSIsCistICAgICAg ICAgICAgICAgICAgICAgICAgICIvc2hhcmUvZGJ1cy0xL3NlcnZpY2VzL29yZy5mcmVlZGVza3Rv cC5UcmFja2VyMS5Xcml0ZWJhY2suc2VydmljZSIsCistICAgICAgICAgICAgICAgICAgICAgICAg ICIvc2hhcmUvdHJhY2tlci9taW5lcnMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLk1pbmVyLkFw cGxpY2F0aW9ucy5zZXJ2aWNlIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFyZS90 cmFja2VyL21pbmVycy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuTWluZXIuRXh0cmFjdC5zZXJ2 aWNlIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFyZS90cmFja2VyL21pbmVycy9v cmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuTWluZXIuUlNTLnNlcnZpY2UiLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAiL3NoYXJlL3RyYWNrZXItbWluZXJzIiwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgIi9zaGFyZS9nbGliLTIuMC9zY2hlbWFzL29yZy5mcmVlZGVza3RvcC5UcmFja2Vy LkV4dHJhY3QuZ3NjaGVtYS54bWwiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAiL3NoYXJl L2dsaWItMi4wL3NjaGVtYXMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIuV3JpdGViYWNrLmdzY2hl bWEueG1sIiBdLAorLSAgICAgICAgICAgICJjb25maWctb3B0cyI6IFsgIi1EZXh0cmFjdD1mYWxz ZSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLURnZW5lcmljX21lZGlhX2V4dHJh Y3Rvcj1ub25lIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRG1pbmVyX2FwcHM9 ZmFsc2UiLAorKyAgICAgICAgICAgICJjbGVhbnVwIjogWyAiL3NoYXJlL2RidXMtMS9zZXJ2aWNl cy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlIiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgIi9zaGFyZS9kYnVzLTEvc2VydmljZXMvb3JnLmZyZWVkZXNr dG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UiLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAiL3NoYXJlL2RidXMtMS9zZXJ2aWNlcy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuV3Jp dGViYWNrLnNlcnZpY2UiIF0sCisrICAgICAgICAgICAgImNvbmZpZy1vcHRzIjogWyAiLURtYW49 ZmFsc2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1EbWluZXJfZnM9dHJ1ZSIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLURtaW5lcl9yc3M9ZmFsc2UiLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1Ec3lzdGVtZF91c2VyX3NlcnZpY2VzPW5vIiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1m YWxzZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUR3cml0ZWJhY2s9ZmFsc2Ui IF0sCisgICAgICAgICAgICAgInNvdXJjZXMiOiBbCisgICAgICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAgICAgICAgICAgICAgICAidXJs IjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS90cmFja2VyLW1pbmVycy5naXQiLAor LSAgICAgICAgICAgICAgICAgICAgImJyYW5jaCI6ICJ0cmFja2VyLW1pbmVycy0yLjMiCisrICAg ICAgICAgICAgICAgICAgICAiYnJhbmNoIjogIm1hc3RlciIKKyAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgIF0KKyAgICAgICAgIH0sCitAQCAtMzA5LDcgKzI3NSw4IEBACisgICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImdpdCIsCisgICAgICAg ICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9t ZS1waG90b3MuZ2l0IiwKKy0gICAgICAgICAgICAgICAgICAgICJkaXNhYmxlLXNoYWxsb3ctY2xv bmUiOiAidHJ1ZSIKKysgICAgICAgICAgICAgICAgICAgICJkaXNhYmxlLXNoYWxsb3ctY2xvbmUi OiAidHJ1ZSIsCisrICAgICAgICAgICAgICAgICAgICAiYnJhbmNoIjogInNhbS90cmFja2VyMyIK KyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIF0KKyAgICAgICAgIH0KK2RpZmYgLS1n aXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCitpbmRleCA3MDgxNmQyNC4uMWM2ZjI5MDYg MTAwNjQ0CistLS0gYS9tZXNvbi5idWlsZAorKysrIGIvbWVzb24uYnVpbGQKK0BAIC0xNzIsOCAr MTcyLDcgQEAgbGliZ2RhdGFfZGVwID0gZGVwZW5kZW5jeSgnbGliZ2RhdGEnLCB2ZXJzaW9uOiAn Pj0gMC4xNy4xMCcpCisgbGliZ2ZncmFwaF9kZXAgPSBkZXBlbmRlbmN5KCdsaWJnZmJncmFwaC0w LjInLCB2ZXJzaW9uOiAnPj0gMC4yLjEnKQorIGxpYmpwZWdfZGVwID0gZGVwZW5kZW5jeSgnbGli anBlZycpCisgbGlicG5nX2RlcCA9IGRlcGVuZGVuY3koJ2xpYnBuZzE2JykKKy10cmFja2VyX2Nv bnRyb2xfZGVwID0gZGVwZW5kZW5jeSgndHJhY2tlci1jb250cm9sLTIuMCcpCistdHJhY2tlcl9z cGFycWxfZGVwID0gZGVwZW5kZW5jeSgndHJhY2tlci1zcGFycWwtMi4wJykKKyt0cmFja2VyX3Nw YXJxbF9kZXAgPSBkZXBlbmRlbmN5KCd0cmFja2VyLXNwYXJxbC0zLjAnKQorIAorIGRidXNfZGVw ID0gZGVwZW5kZW5jeSgnZGJ1cy0xJykKKyBkYnVzX3NlcnZpY2VfZGlyID0gZGJ1c19kZXAuZ2V0 X3BrZ2NvbmZpZ192YXJpYWJsZSgKK2RpZmYgLS1naXQgYS9zcmMvbWVzb24uYnVpbGQgYi9zcmMv bWVzb24uYnVpbGQKK2luZGV4IGI1YjI3NTljLi42YjNiN2YwMSAxMDA2NDQKKy0tLSBhL3NyYy9t ZXNvbi5idWlsZAorKysrIGIvc3JjL21lc29uLmJ1aWxkCitAQCAtMjA1LDggKzIwNSw2IEBAIHNv dXJjZXMgPSBjb21tb25fc291cmNlcyArIGZpbGVzKAorICAgJ3Bob3Rvcy10b29sLWVuaGFuY2Uu YycsCisgICAncGhvdG9zLXRvb2wtZmlsdGVyLWJ1dHRvbi5jJywKKyAgICdwaG90b3MtdG9vbC1m aWx0ZXJzLmMnLAorLSAgJ3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5jJywKKy0gICdwaG90 b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5jJywKKyAgICdwaG90b3MtdHJhY2tlci1jb2xsZWN0 aW9uLXZpZXctY29udHJvbGxlci5jJywKKyAgICdwaG90b3MtdHJhY2tlci1jb2xsZWN0aW9ucy1j b250cm9sbGVyLmMnLAorICAgJ3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYycsCitAQCAtMzY3 LDIyICszNjUsMTggQEAgc291cmNlcyArPSBnbm9tZS5nZGJ1c19jb2RlZ2VuKAorICAgYXV0b2Ns ZWFudXA6ICdhbGwnLAorICkKKyAKKy10cmFja2VyX2V4dHJhY3RfcHJpb3JpdHkgPSAncGhvdG9z LXRyYWNrZXItZXh0cmFjdC1wcmlvcml0eScKKy0KKyBzb3VyY2VzICs9IGdub21lLmdkYnVzX2Nv ZGVnZW4oCistICB0cmFja2VyX2V4dHJhY3RfcHJpb3JpdHksCistICB0cmFja2VyX2V4dHJhY3Rf cHJpb3JpdHkgKyAnLnhtbCcsCistICBpbnRlcmZhY2VfcHJlZml4OiAnb3JnLmZyZWVkZXNrdG9w LlRyYWNrZXIxLicsCisrICAncGhvdG9zLXRyYWNrZXItbWluZXInLAorKyAgJ29yZy5mcmVlZGVz a3RvcC5UcmFja2VyMy5NaW5lci54bWwnLAorKyAgaW50ZXJmYWNlX3ByZWZpeDogJ29yZy5mcmVl ZGVza3RvcC5UcmFja2VyMy4nLAorICAgbmFtZXNwYWNlOiAnVHJhY2tlcicsCisgICBhdXRvY2xl YW51cDogJ2FsbCcsCisgKQorIAorLXRyYWNrZXJfcmVzb3VyY2VzID0gJ3Bob3Rvcy10cmFja2Vy LXJlc291cmNlcycKKy0KKyBzb3VyY2VzICs9IGdub21lLmdkYnVzX2NvZGVnZW4oCistICB0cmFj a2VyX3Jlc291cmNlcywKKy0gIHRyYWNrZXJfcmVzb3VyY2VzICsgJy54bWwnLAorLSAgaW50ZXJm YWNlX3ByZWZpeDogJ29yZy5mcmVlZGVza3RvcC5UcmFja2VyMS4nLAorKyAgJ3Bob3Rvcy10cmFj a2VyLW1pbmVyLWluZGV4JywKKysgICdvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmls ZXMuSW5kZXgueG1sJywKKysgIGludGVyZmFjZV9wcmVmaXg6ICdvcmcuZnJlZWRlc2t0b3AuVHJh Y2tlcjMuJywKKyAgIG5hbWVzcGFjZTogJ1RyYWNrZXInLAorICAgYXV0b2NsZWFudXA6ICdhbGwn LAorICkKK0BAIC00MDEsNyArMzk1LDYgQEAgZGVwcyA9IGNvbW1vbl9kZXBzICsgWworICAgbGli Z2RhdGFfZGVwLAorICAgbGliZ2ZncmFwaF9kZXAsCisgICBtX2RlcCwKKy0gIHRyYWNrZXJfY29u dHJvbF9kZXAsCisgICB0cmFja2VyX3NwYXJxbF9kZXAsCisgXQorIAorZGlmZiAtLWdpdCBhL3Ny Yy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuSW5kZXgueG1sIGIvc3JjL29y Zy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcy5JbmRleC54bWwKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uZTM2OGYxZTIKKy0tLSAvZGV2L251bGwKKysrKyBi L3NyYy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuSW5kZXgueG1sCitAQCAt MCwwICsxLDExIEBACisrPG5vZGU+CisrICA8aW50ZXJmYWNlIG5hbWU9J29yZy5mcmVlZGVza3Rv cC5UcmFja2VyMy5NaW5lci5GaWxlcy5JbmRleCc+CisrICAgIDxtZXRob2QgbmFtZT0nSW5kZXhM b2NhdGlvbic+CisrICAgICAgPGFyZyB0eXBlPSdzJyBuYW1lPSdmaWxlX3VyaScgZGlyZWN0aW9u PSdpbicgLz4KKysgICAgICA8YXJnIHR5cGU9J2FzJyBuYW1lPSdncmFwaHMnIGRpcmVjdGlvbj0n aW4nIC8+CisrICAgICAgPGFyZyB0eXBlPSdhcycgbmFtZT0nZmxhZ3MnIGRpcmVjdGlvbj0naW4n PiIKKysgICAgICAgIDxkb2M6ZG9jPjxkb2M6c3VtbWFyeT5FeHRlbnNpb24gZmxhZ3MsIG5vIGFs bG93ZWQgdmFsdWVzIGF0IHRoZSBtb21lbnQ8L2RvYzpzdW1tYXJ5PjwvZG9jOmRvYz4KKysgICAg ICA8L2FyZz4KKysgICAgPC9tZXRob2Q+CisrICA8L2ludGVyZmFjZT4KKys8L25vZGU+CitkaWZm IC0tZ2l0IGEvc3JjL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci54bWwgYi9zcmMvb3Jn LmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLnhtbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2lu ZGV4IDAwMDAwMDAwLi42ZmUwOWM4NAorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL29yZy5mcmVl ZGVza3RvcC5UcmFja2VyMy5NaW5lci54bWwKK0BAIC0wLDAgKzEsNTYgQEAKKys8P3htbCB2ZXJz aW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorKworKzxub2RlIG5hbWU9Ii8iPgorKyAgPGlu dGVyZmFjZSBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIiPgorKyAgICA8YW5u b3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuREJ1cy5HTGliLkNTeW1ib2wiIHZhbHVlPSJf dHJhY2tlcl9taW5lcl9kYnVzIi8+CisrICAgIDxtZXRob2QgbmFtZT0iU3RhcnQiPgorKyAgICAg IDxhbm5vdGF0aW9uIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5EQnVzLkdMaWIuQXN5bmMiICB2YWx1 ZT0idHJ1ZSIvPgorKyAgICA8L21ldGhvZD4KKysgICAgPG1ldGhvZCBuYW1lPSJHZXRTdGF0dXMi PgorKyAgICAgIDxhbm5vdGF0aW9uIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5EQnVzLkdMaWIuQXN5 bmMiIHZhbHVlPSJ0cnVlIi8+CisrICAgICAgPGFyZyB0eXBlPSJzIiBuYW1lPSJzdGF0dXMiIGRp cmVjdGlvbj0ib3V0IiAvPgorKyAgICA8L21ldGhvZD4KKysgICAgPG1ldGhvZCBuYW1lPSJHZXRQ cm9ncmVzcyI+CisrICAgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMu R0xpYi5Bc3luYyIgdmFsdWU9InRydWUiLz4KKysgICAgICA8YXJnIHR5cGU9ImQiIG5hbWU9InBy b2dyZXNzIiBkaXJlY3Rpb249Im91dCIgLz4KKysgICAgPC9tZXRob2Q+CisrICAgIDxtZXRob2Qg bmFtZT0iR2V0UmVtYWluaW5nVGltZSI+CisrICAgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZy ZWVkZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIgdmFsdWU9InRydWUiLz4KKysgICAgICA8YXJnIHR5 cGU9ImkiIG5hbWU9InJlbWFpbmluZ190aW1lIiBkaXJlY3Rpb249Im91dCIgLz4KKysgICAgPC9t ZXRob2Q+CisrICAgIDxtZXRob2QgbmFtZT0iR2V0UGF1c2VEZXRhaWxzIj4KKysgICAgICA8YW5u b3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuREJ1cy5HTGliLkFzeW5jIiB2YWx1ZT0idHJ1 ZSIvPgorKyAgICAgIDxhcmcgdHlwZT0iYXMiIG5hbWU9InBhdXNlX2FwcGxpY2F0aW9ucyIgZGly ZWN0aW9uPSJvdXQiIC8+CisrICAgICAgPGFyZyB0eXBlPSJhcyIgbmFtZT0icGF1c2VfcmVhc29u cyIgZGlyZWN0aW9uPSJvdXQiIC8+CisrICAgIDwvbWV0aG9kPgorKyAgICA8bWV0aG9kIG5hbWU9 IlBhdXNlIj4KKysgICAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuREJ1cy5H TGliLkFzeW5jIiAgdmFsdWU9InRydWUiLz4KKysgICAgICA8YXJnIHR5cGU9InMiIG5hbWU9ImFw cGxpY2F0aW9uIiBkaXJlY3Rpb249ImluIiAvPgorKyAgICAgIDxhcmcgdHlwZT0icyIgbmFtZT0i cmVhc29uIiBkaXJlY3Rpb249ImluIiAvPgorKyAgICAgIDxhcmcgdHlwZT0iaSIgbmFtZT0iY29v a2llIiBkaXJlY3Rpb249Im91dCIgLz4KKysgICAgPC9tZXRob2Q+CisrICAgIDxtZXRob2QgbmFt ZT0iUGF1c2VGb3JQcm9jZXNzIj4KKysgICAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRl c2t0b3AuREJ1cy5HTGliLkFzeW5jIiAgdmFsdWU9InRydWUiLz4KKysgICAgICA8YXJnIHR5cGU9 InMiIG5hbWU9ImFwcGxpY2F0aW9uIiBkaXJlY3Rpb249ImluIiAvPgorKyAgICAgIDxhcmcgdHlw ZT0icyIgbmFtZT0icmVhc29uIiBkaXJlY3Rpb249ImluIiAvPgorKyAgICAgIDxhcmcgdHlwZT0i aSIgbmFtZT0iY29va2llIiBkaXJlY3Rpb249Im91dCIgLz4KKysgICAgPC9tZXRob2Q+CisrICAg IDxtZXRob2QgbmFtZT0iUmVzdW1lIj4KKysgICAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJl ZWRlc2t0b3AuREJ1cy5HTGliLkFzeW5jIiB2YWx1ZT0idHJ1ZSIvPgorKyAgICAgIDxhcmcgdHlw ZT0iaSIgbmFtZT0iY29va2llIiBkaXJlY3Rpb249ImluIiAvPgorKyAgICA8L21ldGhvZD4KKysK KysgICAgPCEtLSBTaWduYWxzIC0tPgorKyAgICA8c2lnbmFsIG5hbWU9IlN0YXJ0ZWQiIC8+Cisr ICAgIDxzaWduYWwgbmFtZT0iU3RvcHBlZCI+CisrICAgICAgPGFyZyB0eXBlPSJiIiBuYW1lPSJp bnRlcnJ1cHRlZCIgLz4KKysgICAgPC9zaWduYWw+CisrICAgIDxzaWduYWwgbmFtZT0iUGF1c2Vk IiAvPgorKyAgICA8c2lnbmFsIG5hbWU9IlJlc3VtZWQiIC8+CisrICAgIDxzaWduYWwgbmFtZT0i UHJvZ3Jlc3MiPgorKyAgICAgIDxhcmcgdHlwZT0icyIgbmFtZT0ic3RhdHVzIiAvPgorKyAgICAg IDxhcmcgdHlwZT0iZCIgbmFtZT0icHJvZ3Jlc3MiIC8+CisrICAgICAgPGFyZyB0eXBlPSJpIiBu YW1lPSJyZW1haW5pbmdfdGltZSIgLz4KKysgICAgPC9zaWduYWw+CisrICA8L2ludGVyZmFjZT4K Kys8L25vZGU+CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1hcHBsaWNhdGlvbi5jIGIvc3JjL3Bo b3Rvcy1hcHBsaWNhdGlvbi5jCitpbmRleCBjYjExNGZkYS4uNWZiYmJlZjIgMTAwNjQ0CistLS0g YS9zcmMvcGhvdG9zLWFwcGxpY2F0aW9uLmMKKysrKyBiL3NyYy9waG90b3MtYXBwbGljYXRpb24u YworQEAgLTM2LDcgKzM2LDYgQEAKKyAjaW5jbHVkZSA8Z2xpYi5oPgorICNpbmNsdWRlIDxnbGli L2dpMThuLmg+CisgI2luY2x1ZGUgPGdyaWxvLmg+CistI2luY2x1ZGUgPGxpYnRyYWNrZXItY29u dHJvbC90cmFja2VyLWNvbnRyb2wuaD4KKyAKKyAjaW5jbHVkZSAicGhvdG9zLWFwcGxpY2F0aW9u LmgiCisgI2luY2x1ZGUgInBob3Rvcy1iYXNlLWl0ZW0uaCIKK0BAIC02OCw3ICs2Nyw4IEBACisg I2luY2x1ZGUgInBob3Rvcy1zaGFyZS1ub3RpZmljYXRpb24uaCIKKyAjaW5jbHVkZSAicGhvdG9z LXNoYXJlLXBvaW50LW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXRodW1ibmFpbC1mYWN0 b3J5LmgiCistI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHkuaCIKKysj aW5jbHVkZSAicGhvdG9zLXRyYWNrZXItbWluZXItaW5kZXguaCIKKysjaW5jbHVkZSAicGhvdG9z LXRyYWNrZXItcXVldWUuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXV0aWxzLmgiCisgCisgCitAQCAt MTI3LDcgKzEyNyw3IEBAIHN0cnVjdCBfUGhvdG9zQXBwbGljYXRpb24KKyAgIFBob3Rvc1NlYXJj aFByb3ZpZGVyICpzZWFyY2hfcHJvdmlkZXI7CisgICBQaG90b3NTZWxlY3Rpb25Db250cm9sbGVy ICpzZWxfY250cmxyOworICAgUGhvdG9zVGh1bWJuYWlsRmFjdG9yeSAqZmFjdG9yeTsKKy0gIFRy YWNrZXJFeHRyYWN0UHJpb3JpdHkgKmV4dHJhY3RfcHJpb3JpdHk7CisrICBUcmFja2VyTWluZXJG aWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5OworICAgZ2Jvb2xlYW4gZW1wdHlfcmVzdWx0 czsKKyAgIGdib29sZWFuIG1haW5fd2luZG93X2RlbGV0ZWQ7CisgICBndWludCBjcmVhdGVfbWlu ZXJzX2NvdW50OworQEAgLTE0OCw3ICsxNDgsNiBAQCBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNU X1NJR05BTF0gPSB7IDAgfTsKKyAKKyBzdGF0aWMgdm9pZCBwaG90b3NfYXBwbGljYXRpb25fc2Vh cmNoX2NvbnRleHRfaWZhY2VfaW5pdCAoUGhvdG9zU2VhcmNoQ29udGV4dEludGVyZmFjZSAqaWZh Y2UpOworIAorLQorIEdfREVGSU5FX1RZUEVfV0lUSF9DT0RFIChQaG90b3NBcHBsaWNhdGlvbiwg cGhvdG9zX2FwcGxpY2F0aW9uLCBHVEtfVFlQRV9BUFBMSUNBVElPTiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFIChQSE9UT1NfVFlQRV9TRUFSQ0hfQ09O VEVYVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw aG90b3NfYXBwbGljYXRpb25fc2VhcmNoX2NvbnRleHRfaWZhY2VfaW5pdCkpOworQEAgLTE5MSwx MSArMTkwLDExIEBAIHN0cnVjdCBfUGhvdG9zQXBwbGljYXRpb25DcmVhdGVEYXRhCisgc3RydWN0 IF9QaG90b3NBcHBsaWNhdGlvbkltcG9ydERhdGEKKyB7CisgICBQaG90b3NBcHBsaWNhdGlvbiAq YXBwbGljYXRpb247CisrICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3By b3h5OworICAgR0ZpbGUgKmRlc3RpbmF0aW9uOworICAgR0ZpbGUgKmltcG9ydF9zdWJfZGlyOwor ICAgR0xpc3QgKmZpbGVzOworICAgUGhvdG9zQmFzZUl0ZW0gKmNvbGxlY3Rpb247CistICBUcmFj a2VyTWluZXJNYW5hZ2VyICptYW5hZ2VyOworICAgZ2NoYXIgKmNvbGxlY3Rpb25fdXJuOworICAg Z2ludDY0IGN0aW1lX2xhdGVzdDsKKyB9OworQEAgLTI0OCw3ICsyNDcsNyBAQCBwaG90b3NfYXBw bGljYXRpb25fY3JlYXRlX2RhdGFfZnJlZSAoUGhvdG9zQXBwbGljYXRpb25DcmVhdGVEYXRhICpk YXRhKQorIAorIHN0YXRpYyBQaG90b3NBcHBsaWNhdGlvbkltcG9ydERhdGEgKgorIHBob3Rvc19h cHBsaWNhdGlvbl9pbXBvcnRfZGF0YV9uZXcgKFBob3Rvc0FwcGxpY2F0aW9uICphcHBsaWNhdGlv biwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFja2VyTWluZXJNYW5h Z2VyICptYW5hZ2VyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYWNr ZXJNaW5lckZpbGVzSW5kZXggKm1pbmVyX2NvbnRyb2xfcHJveHksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR0xpc3QgKmZpbGVzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdpbnQ2NCBjdGltZV9sYXRlc3QpCisgeworQEAgLTI1Nyw3ICsyNTYs NyBAQCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2RhdGFfbmV3IChQaG90b3NBcHBsaWNhdGlv biAqYXBwbGljYXRpb24sCisgICBkYXRhID0gZ19zbGljZV9uZXcwIChQaG90b3NBcHBsaWNhdGlv bkltcG9ydERhdGEpOworICAgZ19hcHBsaWNhdGlvbl9ob2xkIChHX0FQUExJQ0FUSU9OIChhcHBs aWNhdGlvbikpOworICAgZGF0YS0+YXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbjsKKy0gIGRhdGEt Pm1hbmFnZXIgPSBnX29iamVjdF9yZWYgKG1hbmFnZXIpOworKyAgZGF0YS0+bWluZXJfY29udHJv bF9wcm94eSA9IG1pbmVyX2NvbnRyb2xfcHJveHk7CisgICBkYXRhLT5maWxlcyA9IGdfbGlzdF9j b3B5X2RlZXAgKGZpbGVzLCAoR0NvcHlGdW5jKSBnX29iamVjdF9yZWYsIE5VTEwpOworICAgZGF0 YS0+Y3RpbWVfbGF0ZXN0ID0gY3RpbWVfbGF0ZXN0OworICAgcmV0dXJuIGRhdGE7CitAQCAtMjc3 LDggKzI3Niw4IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfZGF0YV9mcmVlIChQaG90b3NB cHBsaWNhdGlvbkltcG9ydERhdGEgKmRhdGEpCisgCisgICBnX2NsZWFyX29iamVjdCAoJmRhdGEt PmRlc3RpbmF0aW9uKTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmZGF0YS0+aW1wb3J0X3N1Yl9kaXIp OworKyAgZ19jbGVhcl9vYmplY3QgKCZkYXRhLT5taW5lcl9jb250cm9sX3Byb3h5KTsKKyAgIGdf bGlzdF9mcmVlX2Z1bGwgKGRhdGEtPmZpbGVzLCBnX29iamVjdF91bnJlZik7CistICBnX2NsZWFy X29iamVjdCAoJmRhdGEtPm1hbmFnZXIpOworICAgZ19mcmVlIChkYXRhLT5jb2xsZWN0aW9uX3Vy bik7CisgICBnX3NsaWNlX2ZyZWUgKFBob3Rvc0FwcGxpY2F0aW9uSW1wb3J0RGF0YSwgZGF0YSk7 CisgfQorQEAgLTU4NCwyNyArNTgzLDYgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2FjdGlvbnNfdXBk YXRlIChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyB9CisgCisgCistc3RhdGljIHZvaWQKKy1w aG90b3NfYXBwbGljYXRpb25fdHJhY2tlcl9jbGVhcl9yZGZfdHlwZXMgKEdPYmplY3QgKnNvdXJj ZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCisteworLSAg UGhvdG9zQXBwbGljYXRpb24gKnNlbGYgPSBQSE9UT1NfQVBQTElDQVRJT04gKHVzZXJfZGF0YSk7 CistICBUcmFja2VyRXh0cmFjdFByaW9yaXR5ICpleHRyYWN0X3ByaW9yaXR5ID0gVFJBQ0tFUl9F WFRSQUNUX1BSSU9SSVRZIChzb3VyY2Vfb2JqZWN0KTsKKy0KKy0gIHsKKy0gICAgZ19hdXRvcHRy IChHRXJyb3IpIGVycm9yID0gTlVMTDsKKy0KKy0gICAgaWYgKCF0cmFja2VyX2V4dHJhY3RfcHJp b3JpdHlfY2FsbF9jbGVhcl9yZGZfdHlwZXNfZmluaXNoIChleHRyYWN0X3ByaW9yaXR5LCByZXMs ICZlcnJvcikpCistICAgICAgeworLSAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNhbGwg Q2xlYXJSZGZUeXBlczogJXMiLCBlcnJvci0+bWVzc2FnZSk7CistICAgICAgICBnb3RvIG91dDsK Ky0gICAgICB9CistICB9CistCistIG91dDoKKy0gIGdfYXBwbGljYXRpb25fcmVsZWFzZSAoR19B UFBMSUNBVElPTiAoc2VsZikpOworLX0KKy0KKy0KKyBzdGF0aWMgZ2Jvb2xlYW4KKyBwaG90b3Nf YXBwbGljYXRpb25fZGVsZXRlX2V2ZW50IChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyB7CitA QCAtNjQxLDE2ICs2MTksNiBAQCBwaG90b3NfYXBwbGljYXRpb25fZGVzdHJveSAoUGhvdG9zQXBw bGljYXRpb24gKnNlbGYpCisgICBzZWxmLT5jcmVhdGVfd2luZG93X2NhbmNlbGxhYmxlID0gZ19j YW5jZWxsYWJsZV9uZXcgKCk7CisgCisgICBwaG90b3NfYXBwbGljYXRpb25fc3RvcF9taW5lcnMg KHNlbGYpOworLQorLSAgaWYgKHNlbGYtPmV4dHJhY3RfcHJpb3JpdHkgIT0gTlVMTCkKKy0gICAg eworLSAgICAgIGdfYXBwbGljYXRpb25faG9sZCAoR19BUFBMSUNBVElPTiAoc2VsZikpOworLSAg ICAgIHRyYWNrZXJfZXh0cmFjdF9wcmlvcml0eV9jYWxsX2NsZWFyX3JkZl90eXBlcyAoc2VsZi0+ ZXh0cmFjdF9wcmlvcml0eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwaG90b3NfYXBwbGljYXRpb25fdHJhY2tlcl9jbGVhcl9yZGZf dHlwZXMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmKTsKKy0gICAgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmV4dHJhY3RfcHJpb3Jp dHkpOworLSAgICB9CisgfQorIAorIAorQEAgLTc0MCw2MCArNzA4LDYgQEAgcGhvdG9zX2FwcGxp Y2F0aW9uX2dlZ2xfaW5pdF9maXNoZXNfaWRsZSAoZ3BvaW50ZXIgdXNlcl9kYXRhKQorIH0KKyAK KyAKKy1zdGF0aWMgdm9pZAorLXBob3Rvc19hcHBsaWNhdGlvbl90cmFja2VyX3NldF9yZGZfdHlw ZXMgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1 c2VyX2RhdGEpCisteworLSAgUGhvdG9zQXBwbGljYXRpb24gKnNlbGYgPSBQSE9UT1NfQVBQTElD QVRJT04gKHVzZXJfZGF0YSk7CistICBUcmFja2VyRXh0cmFjdFByaW9yaXR5ICpleHRyYWN0X3By aW9yaXR5ID0gVFJBQ0tFUl9FWFRSQUNUX1BSSU9SSVRZIChzb3VyY2Vfb2JqZWN0KTsKKy0KKy0g IHsKKy0gICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKKy0KKy0gICAgaWYgKCF0 cmFja2VyX2V4dHJhY3RfcHJpb3JpdHlfY2FsbF9zZXRfcmRmX3R5cGVzX2ZpbmlzaCAoZXh0cmFj dF9wcmlvcml0eSwgcmVzLCAmZXJyb3IpKQorLSAgICAgIHsKKy0gICAgICAgIGlmICghZ19lcnJv cl9tYXRjaGVzIChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9DQU5DRUxMRUQpKQorLSAg ICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gY2FsbCBTZXRSZGZUeXBlczogJXMiLCBlcnJv ci0+bWVzc2FnZSk7CistCistICAgICAgICBnb3RvIG91dDsKKy0gICAgICB9CistICB9CistCist IG91dDoKKy0gIGdfYXBwbGljYXRpb25fcmVsZWFzZSAoR19BUFBMSUNBVElPTiAoc2VsZikpOwor LX0KKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc19hcHBsaWNhdGlvbl90cmFja2VyX2V4dHJh Y3RfcHJpb3JpdHkgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBn cG9pbnRlciB1c2VyX2RhdGEpCisteworLSAgUGhvdG9zQXBwbGljYXRpb24gKnNlbGYgPSBQSE9U T1NfQVBQTElDQVRJT04gKHVzZXJfZGF0YSk7CistICBjb25zdCBnY2hhciAqY29uc3QgcmRmX3R5 cGVzW10gPSB7Im5mbzpJbWFnZSIsIE5VTEx9OworLQorLSAgeworLSAgICBnX2F1dG9wdHIgKEdF cnJvcikgZXJyb3IgPSBOVUxMOworLQorLSAgICBzZWxmLT5leHRyYWN0X3ByaW9yaXR5ID0gdHJh Y2tlcl9leHRyYWN0X3ByaW9yaXR5X3Byb3h5X25ld19mb3JfYnVzX2ZpbmlzaCAocmVzLCAmZXJy b3IpOworLSAgICBpZiAoZXJyb3IgIT0gTlVMTCkKKy0gICAgICB7CistICAgICAgICBpZiAoIWdf ZXJyb3JfbWF0Y2hlcyAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0FOQ0VMTEVEKSkK Ky0gICAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNyZWF0ZSBUcmFja2VyRXh0cmFjdFBy aW9yaXR5IHByb3h5OiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKKy0KKy0gICAgICAgIGdvdG8gb3V0 OworLSAgICAgIH0KKy0gIH0KKy0KKy0gIGdfYXBwbGljYXRpb25faG9sZCAoR19BUFBMSUNBVElP TiAoc2VsZikpOworLSAgdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5X2NhbGxfc2V0X3JkZl90eXBl cyAoc2VsZi0+ZXh0cmFjdF9wcmlvcml0eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJkZl90eXBlcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPmNyZWF0ZV93aW5kb3dfY2FuY2VsbGFibGUsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfYXBw bGljYXRpb25fdHJhY2tlcl9zZXRfcmRmX3R5cGVzLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZik7CistCistIG91dDoKKy0gIGdfYXBwbGljYXRp b25fcmVsZWFzZSAoR19BUFBMSUNBVElPTiAoc2VsZikpOworLX0KKy0KKy0KKyBzdGF0aWMgZ2Jv b2xlYW4KKyBwaG90b3NfYXBwbGljYXRpb25fY3JlYXRlX3dpbmRvdyAoUGhvdG9zQXBwbGljYXRp b24gKnNlbGYpCisgeworQEAgLTgyOCwxMyArNzQyLDYgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2Ny ZWF0ZV93aW5kb3cgKFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorICAgICBzZWxmLT5pbml0X2Zp c2hlc19pZCA9IGdfaWRsZV9hZGQgKHBob3Rvc19hcHBsaWNhdGlvbl9nZWdsX2luaXRfZmlzaGVz X2lkbGUsIHNlbGYpOworIAorICAgZ19hcHBsaWNhdGlvbl9ob2xkIChHX0FQUExJQ0FUSU9OIChz ZWxmKSk7CistICB0cmFja2VyX2V4dHJhY3RfcHJpb3JpdHlfcHJveHlfbmV3X2Zvcl9idXMgKEdf QlVTX1RZUEVfU0VTU0lPTiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR19EQlVTX1BST1hZX0ZMQUdTX05PTkUsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuTWluZXIu RXh0cmFjdCIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIvb3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIxL0V4dHJhY3QvUHJpb3JpdHkiLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5jcmVhdGVfd2luZG93 X2NhbmNlbGxhYmxlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwaG90b3NfYXBwbGljYXRpb25fdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5LAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmKTsKKyAKKyAgIHBo b3Rvc19hcHBsaWNhdGlvbl9zdGFydF9taW5lcnMgKHNlbGYpOworICAgcmV0dXJuIFRSVUU7CitA QCAtMTExMywxOCArMTAyMCwxOCBAQCBwaG90b3NfYXBwbGljYXRpb25fZ2V0X3N0YXRlIChQaG90 b3NTZWFyY2hDb250ZXh0ICpjb250ZXh0KQorIAorIAorIHN0YXRpYyB2b2lkCistcGhvdG9zX2Fw cGxpY2F0aW9uX2ltcG9ydF9pbmRleF9maWxlIChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5 bmNSZXN1bHQgKnJlcywgZ3BvaW50ZXIgdXNlcl9kYXRhKQorK3Bob3Rvc19hcHBsaWNhdGlvbl9p bXBvcnRfaW5kZXhfbG9jYXRpb24gKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3Vs dCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCisgeworICAgUGhvdG9zQXBwbGljYXRpb24gKnNl bGY7CisgICBnX2F1dG9wdHIgKEdGaWxlKSBmaWxlID0gR19GSUxFICh1c2VyX2RhdGEpOworLSAg VHJhY2tlck1pbmVyTWFuYWdlciAqbWFuYWdlciA9IFRSQUNLRVJfTUlORVJfTUFOQUdFUiAoc291 cmNlX29iamVjdCk7CisrICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3By b3h5ID0gVFJBQ0tFUl9NSU5FUl9GSUxFU19JTkRFWCAoc291cmNlX29iamVjdCk7CisgCisgICBz ZWxmID0gUEhPVE9TX0FQUExJQ0FUSU9OIChnX2FwcGxpY2F0aW9uX2dldF9kZWZhdWx0ICgpKTsK KyAKKyAgIHsKKyAgICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKKyAKKy0gICAg aWYgKCF0cmFja2VyX21pbmVyX21hbmFnZXJfaW5kZXhfZmlsZV9mb3JfcHJvY2Vzc19maW5pc2gg KG1hbmFnZXIsIHJlcywgJmVycm9yKSkKKysgICAgaWYgKCF0cmFja2VyX21pbmVyX2ZpbGVzX2lu ZGV4X2NhbGxfaW5kZXhfbG9jYXRpb25fZmluaXNoIChtaW5lcl9jb250cm9sX3Byb3h5LCByZXMs ICZlcnJvcikpCisgICAgICAgeworICAgICAgICAgZ19hdXRvZnJlZSBnY2hhciAqdXJpID0gTlVM TDsKKyAKK0BAIC0xMzIzLDcgKzEyMzAsNiBAQCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2Zp bGVfY29weSAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpyZXMsCisgICBQ aG90b3NBcHBsaWNhdGlvbiAqc2VsZiA9IGRhdGEtPmFwcGxpY2F0aW9uOworICAgZ19hdXRvcHRy IChHRmlsZSkgZGVzdGluYXRpb24gPSBOVUxMOworICAgR0ZpbGUgKnNvdXJjZSA9IEdfRklMRSAo c291cmNlX29iamVjdCk7CistICBUcmFja2VyTWluZXJNYW5hZ2VyICptYW5hZ2VyID0gZGF0YS0+ bWFuYWdlcjsKKyAKKyAgIHsKKyAgICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsK K0BAIC0xMzQ4LDYgKzEyNTQsOCBAQCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2ZpbGVfY29w eSAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpyZXMsCisgICBlbHNlCisg ICAgIHsKKyAgICAgICBnX2F1dG9mcmVlIGdjaGFyICpkZXN0aW5hdGlvbl91cmkgPSBOVUxMOwor KyAgICAgIGNvbnN0IGdjaGFyICp0cmFja2VyX3ByaW9yaXR5X2dyYXBoc1tdID0geyBUUkFDS0VS X1BJQ1RVUkVTX0dSQVBIIH07CisrICAgICAgY29uc3QgZ2NoYXIgKnRyYWNrZXJfaW5kZXhfbG9j YXRpb25fZmxhZ3NbXSA9IHsgImZvci1wcm9jZXNzIiB9OworIAorICAgICAgIGdfYXNzZXJ0X3Ry dWUgKEdfSVNfRklMRSAoZGVzdGluYXRpb24pKTsKKyAgICAgICBnX3NldF9vYmplY3QgKCZkYXRh LT5kZXN0aW5hdGlvbiwgZGVzdGluYXRpb24pOworQEAgLTEzNjQsMTEgKzEyNzIsMTMgQEAgcGhv dG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9maWxlX2NvcHkgKEdPYmplY3QgKnNvdXJjZV9vYmplY3Qs IEdBc3luY1Jlc3VsdCAqcmVzLAorIAorICAgICAgIGdfYXBwbGljYXRpb25faG9sZCAoR19BUFBM SUNBVElPTiAoc2VsZikpOworICAgICAgIGdfYXBwbGljYXRpb25fbWFya19idXN5IChHX0FQUExJ Q0FUSU9OIChzZWxmKSk7CistICAgICAgdHJhY2tlcl9taW5lcl9tYW5hZ2VyX2luZGV4X2ZpbGVf Zm9yX3Byb2Nlc3NfYXN5bmMgKG1hbmFnZXIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw aG90b3NfYXBwbGljYXRpb25faW1wb3J0X2luZGV4X2ZpbGUsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfb2JqZWN0X3JlZiAoZGVz dGluYXRpb24pKTsKKysgICAgICB0cmFja2VyX21pbmVyX2ZpbGVzX2luZGV4X2NhbGxfaW5kZXhf bG9jYXRpb24gKHNlbGYtPm1pbmVyX2NvbnRyb2xfcHJveHksCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbl91cmksCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2Vy X3ByaW9yaXR5X2dyYXBocywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRyYWNrZXJfaW5kZXhfbG9jYXRpb25fZmxhZ3MsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX2Fw cGxpY2F0aW9uX2ltcG9ydF9pbmRleF9sb2NhdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfb2JqZWN0X3JlZiAoZGVzdGluYXRpb24p KTsKKyAgICAgfQorIAorICBvdXQ6CitAQCAtMTUwOSw2ICsxNDE5LDM3IEBAIHBob3Rvc19hcHBs aWNhdGlvbl9pbXBvcnRfcmVzcG9uc2UgKEd0a0RpYWxvZyAqZGlhbG9nLCBnaW50IHJlc3BvbnNl X2lkLCBncG9pbnRlCisgfQorIAorIAorK3N0YXRpYyBUcmFja2VyTWluZXJGaWxlc0luZGV4ICoK KytwaG90b3NfYXBwbGljYXRpb25fZ2V0X21pbmVyX2ZzX2NvbnRyb2xfcHJveHkgKEdDYW5jZWxs YWJsZSAqY2FuY2VsbGFibGUpCisreworKyAgZ19hdXRvcHRyIChQaG90b3NUcmFja2VyUXVldWUp IHRyYWNrZXJfcXVldWUgPSBOVUxMOworKyAgY29uc3QgZ2NoYXIgKm1pbmVyX2ZzX2NvbnRyb2xf YnVzbmFtZTsKKysgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7CisrICBUcmFja2Vy TWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5OworKworKyAgdHJhY2tlcl9xdWV1 ZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2R1cF9zaW5nbGV0b24gKGNhbmNlbGxhYmxlLCAmZXJy b3IpOworKworKyAgaWYgKCF0cmFja2VyX3F1ZXVlKSB7CisrICAgIGdfd2FybmluZyAoIkVycm9y IGdldHRpbmcgVHJhY2tlciBxdWV1ZTogJXMuIEltcG9ydCB3aWxsIG5vdCB3b3JrLiIsIGVycm9y LT5tZXNzYWdlKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrCisrICBtaW5lcl9mc19jb250 cm9sX2J1c25hbWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNfY29udHJvbF9i dXNuYW1lICh0cmFja2VyX3F1ZXVlKTsKKysgIG1pbmVyX2NvbnRyb2xfcHJveHkgPSB0cmFja2Vy X21pbmVyX2ZpbGVzX2luZGV4X3Byb3h5X25ld19mb3JfYnVzX3N5bmMgKEdfQlVTX1RZUEVfU0VT U0lPTiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19QUk9YWV9GTEFHU19OT05FLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbWluZXJfZnNfY29udHJvbF9idXNuYW1lLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ii9vcmcvZnJlZWRlc2t0b3AvVHJhY2tlcjMvTWluZXIvRmlsZXMvQ29udHJvbCIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVycm9yKTsKKysgIGlmICghbWlu ZXJfY29udHJvbF9wcm94eSkgeworKyAgICBnX3dhcm5pbmcgKCJFcnJvciBnZXR0aW5nIFRyYWNr ZXIgTWluZXIgRlMgY29udHJvbCBwcm94eTogJXMuIEltcG9ydCB3aWxsIG5vdCB3b3JrIiwgZXJy b3ItPm1lc3NhZ2UpOworKyAgICByZXR1cm4gTlVMTDsKKysgIH0KKysKKysgIHJldHVybiBtaW5l cl9jb250cm9sX3Byb3h5OworK30KKysKKysKKyBzdGF0aWMgdm9pZAorIHBob3Rvc19hcHBsaWNh dGlvbl9pbXBvcnQgKFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorIHsKK0BAIC0xNTE5LDggKzE0 NjAsOCBAQCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0IChQaG90b3NBcHBsaWNhdGlvbiAqc2Vs ZikKKyAgIEd0a1dpZGdldCAqZGlhbG9nOworICAgZ19hdXRvcHRyIChQaG90b3NBcHBsaWNhdGlv bkltcG9ydERhdGEpIGRhdGEgPSBOVUxMOworICAgUGhvdG9zU291cmNlICpzb3VyY2U7CistICBU cmFja2VyTWluZXJNYW5hZ2VyICptYW5hZ2VyID0gTlVMTDsgLyogVE9ETzogdXNlIGdfYXV0b3B0 ciAqLworICAgZ2ludDY0IGN0aW1lX2xhdGVzdCA9IC0xOworKyAgVHJhY2tlck1pbmVyRmlsZXNJ bmRleCAqbWluZXJfY29udHJvbF9wcm94eTsKKyAKKyAgIHNvdXJjZSA9IFBIT1RPU19TT1VSQ0Ug KHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X2FjdGl2ZV9vYmplY3QgKHNlbGYtPnN0YXRlLT5zcmNf bW5ncikpOworICAgZ19yZXR1cm5faWZfZmFpbCAoUEhPVE9TX0lTX1NPVVJDRSAoc291cmNlKSk7 CitAQCAtMTUzMywxNyArMTQ3NCw5IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnQgKFBob3Rv c0FwcGxpY2F0aW9uICpzZWxmKQorICAgc2VsZWN0aW9uID0gcGhvdG9zX3NlbGVjdGlvbl9jb250 cm9sbGVyX2dldF9zZWxlY3Rpb24gKHNlbGYtPnNlbF9jbnRybHIpOworICAgZ19yZXR1cm5faWZf ZmFpbCAoc2VsZWN0aW9uICE9IE5VTEwpOworIAorLSAgeworLSAgICBnX2F1dG9wdHIgKEdFcnJv cikgZXJyb3IgPSBOVUxMOworLQorLSAgICBtYW5hZ2VyID0gdHJhY2tlcl9taW5lcl9tYW5hZ2Vy X25ld19mdWxsIChGQUxTRSwgJmVycm9yKTsKKy0gICAgaWYgKGVycm9yICE9IE5VTEwpCistICAg ICAgeworLSAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNyZWF0ZSBhIFRyYWNrZXJNaW5l ck1hbmFnZXIsIGltcG9ydGluZyBmcm9tIGF0dGFjaGVkIGRldmljZXMgd29uJ3Qgd29yazogJXMi LAorLSAgICAgICAgICAgICAgICAgICBlcnJvci0+bWVzc2FnZSk7CistICAgICAgICBnb3RvIG91 dDsKKy0gICAgICB9CistICB9CisrICBtaW5lcl9jb250cm9sX3Byb3h5ID0gcGhvdG9zX2FwcGxp Y2F0aW9uX2dldF9taW5lcl9mc19jb250cm9sX3Byb3h5IChOVUxMKTsKKysgIGlmICghbWluZXJf Y29udHJvbF9wcm94eSkKKysgICAgZ290byBvdXQ7CisgCisgICBmb3IgKGwgPSBzZWxlY3Rpb247 IGwgIT0gTlVMTDsgbCA9IGwtPm5leHQpCisgICAgIHsKK0BAIC0xNTcyLDE0ICsxNTA1LDE0IEBA IHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnQgKFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorICAg ZGlhbG9nID0gcGhvdG9zX2ltcG9ydF9kaWFsb2dfbmV3IChHVEtfV0lORE9XIChzZWxmLT5tYWlu X3dpbmRvdyksIGN0aW1lX2xhdGVzdCk7CisgICBndGtfd2lkZ2V0X3Nob3dfYWxsIChkaWFsb2cp OworIAorLSAgZGF0YSA9IHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfZGF0YV9uZXcgKHNlbGYs IG1hbmFnZXIsIGZpbGVzLCBjdGltZV9sYXRlc3QpOworKyAgZGF0YSA9IHBob3Rvc19hcHBsaWNh dGlvbl9pbXBvcnRfZGF0YV9uZXcgKHNlbGYsIG1pbmVyX2NvbnRyb2xfcHJveHksIGZpbGVzLCBj dGltZV9sYXRlc3QpOworKworICAgZ19zaWduYWxfY29ubmVjdCAoZGlhbG9nLAorICAgICAgICAg ICAgICAgICAgICAgInJlc3BvbnNlIiwKKyAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sg KHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfcmVzcG9uc2UpLAorICAgICAgICAgICAgICAgICAg ICAgZ19zdGVhbF9wb2ludGVyICgmZGF0YSkpOworIAorICBvdXQ6CistICBnX2NsZWFyX29iamVj dCAoJm1hbmFnZXIpOworICAgZ19saXN0X2ZyZWVfZnVsbCAoZmlsZXMsIGdfb2JqZWN0X3VucmVm KTsKKyB9CisgCitAQCAtMjk3NCw2ICsyOTA3LDcgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2Rpc3Bv c2UgKEdPYmplY3QgKm9iamVjdCkKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+aW5zdGFfYWN0 aW9uKTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bG9hZF9uZXh0X2FjdGlvbik7CisgICBn X2NsZWFyX29iamVjdCAoJnNlbGYtPmxvYWRfcHJldmlvdXNfYWN0aW9uKTsKKysgIGdfY2xlYXJf b2JqZWN0ICgmc2VsZi0+bWluZXJfY29udHJvbF9wcm94eSk7CisgICBnX2NsZWFyX29iamVjdCAo JnNlbGYtPm9wZW5fYWN0aW9uKTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+cHJldmlld19t ZW51X2FjdGlvbik7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPnByaW1hcnlfbWVudV9hY3Rp b24pOworQEAgLTMwMDIsNyArMjkzNiw2IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9kaXNwb3NlIChH T2JqZWN0ICpvYmplY3QpCisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmNhbWVyYV9jYWNoZSk7 CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPnNlbF9jbnRybHIpOworICAgZ19jbGVhcl9vYmpl Y3QgKCZzZWxmLT5mYWN0b3J5KTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+ZXh0cmFjdF9w cmlvcml0eSk7CisgCisgICBpZiAoc2VsZi0+c3RhdGUgIT0gTlVMTCkKKyAgICAgeworQEAgLTMx MzAsOCArMzA2Myw3IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9nZXRfbWluZXJzX3J1bm5pbmcgKFBo b3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorICAgcmV0dXJuIHNlbGYtPm1pbmVyc19ydW5uaW5nOwor IH0KKyAKKy0KKy1naW50CisraW50CisgcGhvdG9zX2FwcGxpY2F0aW9uX2dldF9zY2FsZV9mYWN0 b3IgKFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorIHsKKyAgIEdMaXN0ICp3aW5kb3dzOworZGlm ZiAtLWdpdCBhL3NyYy9waG90b3MtYmFzZS1pdGVtLmMgYi9zcmMvcGhvdG9zLWJhc2UtaXRlbS5j CitpbmRleCAxNDM0MzFmOS4uYjM0NzA2ZjIgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLWJhc2Ut aXRlbS5jCisrKysgYi9zcmMvcGhvdG9zLWJhc2UtaXRlbS5jCitAQCAtMjc1Niw2ICsyNzU2LDE2 IEBAIHBob3Rvc19iYXNlX2l0ZW1fdXBkYXRlX2luZm9fZnJvbV90eXBlIChQaG90b3NCYXNlSXRl bSAqc2VsZikKKyB9CisgCisgCisrc3RhdGljIGdkb3VibGUKKytnZXRfZG91YmxlX3dpdGhfZGVm YXVsdCAoVHJhY2tlclNwYXJxbEN1cnNvciAqY3Vyc29yLCBQaG90b3NRdWVyeUNvbHVtbnMgY29s dW1uLCBnZG91YmxlIGRlZmF1bHRfdmFsdWUpCisreworKyAgaWYgKHRyYWNrZXJfc3BhcnFsX2N1 cnNvcl9pc19ib3VuZCAoY3Vyc29yLCBjb2x1bW4pKSB7CisrICAgIHJldHVybiB0cmFja2VyX3Nw YXJxbF9jdXJzb3JfZ2V0X2RvdWJsZSAoY3Vyc29yLCBjb2x1bW4pOworKyAgfSBlbHNlIHsKKysg ICAgcmV0dXJuIGRlZmF1bHRfdmFsdWU7CisrICB9CisrfQorKworIHN0YXRpYyB2b2lkCisgcGhv dG9zX2Jhc2VfaXRlbV9wb3B1bGF0ZV9mcm9tX2N1cnNvciAoUGhvdG9zQmFzZUl0ZW0gKnNlbGYs IFRyYWNrZXJTcGFycWxDdXJzb3IgKmN1cnNvcikKKyB7CitAQCAtMjg5MSwxMCArMjkwMSwxMCBA QCBwaG90b3NfYmFzZV9pdGVtX3BvcHVsYXRlX2Zyb21fY3Vyc29yIChQaG90b3NCYXNlSXRlbSAq c2VsZiwgVHJhY2tlclNwYXJxbEN1cnNvcgorICAgICAgIHByaXYtPndpZHRoID0gaGVpZ2h0Owor ICAgICB9CisgCistICBwcml2LT5leHBvc3VyZV90aW1lID0gdHJhY2tlcl9zcGFycWxfY3Vyc29y X2dldF9kb3VibGUgKGN1cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfRVhQT1NVUkVfVElNRSk7 CistICBwcml2LT5mbnVtYmVyID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dldF9kb3VibGUgKGN1 cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfRk5VTUJFUik7CistICBwcml2LT5mb2NhbF9sZW5n dGggPSB0cmFja2VyX3NwYXJxbF9jdXJzb3JfZ2V0X2RvdWJsZSAoY3Vyc29yLCBQSE9UT1NfUVVF UllfQ09MVU1OU19GT0NBTF9MRU5HVEgpOworLSAgcHJpdi0+aXNvX3NwZWVkID0gdHJhY2tlcl9z cGFycWxfY3Vyc29yX2dldF9kb3VibGUgKGN1cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfSVNP X1NQRUVEKTsKKysgIHByaXYtPmV4cG9zdXJlX3RpbWUgPSBnZXRfZG91YmxlX3dpdGhfZGVmYXVs dCAoY3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1OU19FWFBPU1VSRV9USU1FLCAwLjApOworKyAg cHJpdi0+Zm51bWJlciA9IGdldF9kb3VibGVfd2l0aF9kZWZhdWx0IChjdXJzb3IsIFBIT1RPU19R VUVSWV9DT0xVTU5TX0ZOVU1CRVIsIDAuMCk7CisrICBwcml2LT5mb2NhbF9sZW5ndGggPSBnZXRf ZG91YmxlX3dpdGhfZGVmYXVsdCAoY3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1OU19GT0NBTF9M RU5HVEgsIDAuMCk7CisrICBwcml2LT5pc29fc3BlZWQgPSBnZXRfZG91YmxlX3dpdGhfZGVmYXVs dCAoY3Vyc29yLCBQSE9UT1NfUVVFUllfQ09MVU1OU19JU09fU1BFRUQsIDAuMCk7CisgCisgICBm bGFzaCA9IHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9nZXRfc3RyaW5nIChjdXJzb3IsIFBIT1RPU19R VUVSWV9DT0xVTU5TX0ZMQVNILCBOVUxMKTsKKyAgIHByaXYtPmZsYXNoID0gZ19xdWFya19mcm9t X3N0cmluZyAoZmxhc2gpOworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtaW5kZXhpbmctbm90aWZp Y2F0aW9uLmMgYi9zcmMvcGhvdG9zLWluZGV4aW5nLW5vdGlmaWNhdGlvbi5jCitpbmRleCA3YjJl YTdkZC4uMTIyZDBkOTEgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLWluZGV4aW5nLW5vdGlmaWNh dGlvbi5jCisrKysgYi9zcmMvcGhvdG9zLWluZGV4aW5nLW5vdGlmaWNhdGlvbi5jCitAQCAtMjYs MTIgKzI2LDEzIEBACisgI2luY2x1ZGUgPGdpby9naW8uaD4KKyAjaW5jbHVkZSA8Z2xpYi5oPgor ICNpbmNsdWRlIDxnbGliL2dpMThuLmg+CistI2luY2x1ZGUgPGxpYnRyYWNrZXItY29udHJvbC90 cmFja2VyLWNvbnRyb2wuaD4KKyAKKyAjaW5jbHVkZSAicGhvdG9zLWFwcGxpY2F0aW9uLmgiCisg I2luY2x1ZGUgInBob3Rvcy1nb20tbWluZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLWluZGV4aW5n LW5vdGlmaWNhdGlvbi5oIgorICNpbmNsdWRlICJwaG90b3Mtbm90aWZpY2F0aW9uLW1hbmFnZXIu aCIKKysjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItcXVldWUuaCIKKysjaW5jbHVkZSAicGhvdG9z LXRyYWNrZXItbWluZXIuaCIKKyAKKyAKKyBzdHJ1Y3QgX1Bob3Rvc0luZGV4aW5nTm90aWZpY2F0 aW9uCitAQCAtNDEsNyArNDIsNyBAQCBzdHJ1Y3QgX1Bob3Rvc0luZGV4aW5nTm90aWZpY2F0aW9u CisgICBHdGtXaWRnZXQgKnByaW1hcnlfbGFiZWw7CisgICBHdGtXaWRnZXQgKnNlY29uZGFyeV9s YWJlbDsKKyAgIEd0a1dpZGdldCAqc3Bpbm5lcjsKKy0gIFRyYWNrZXJNaW5lck1hbmFnZXIgKm1h bmFnZXI7CisrICBUcmFja2VyTWluZXIgKm1pbmVyX2ZzX3Byb3h5OworICAgZ2Jvb2xlYW4gY2xv c2VkOworICAgZ2Jvb2xlYW4gb25fZGlzcGxheTsKKyAgIGd1aW50IHRpbWVvdXRfaWQ7CitAQCAt NTYsOCArNTcsNiBAQCBlbnVtCisgICBSRU1PVEVfTUlORVJfVElNRU9VVCA9IDEwIC8qIHMgKi8K KyB9OworIAorLXN0YXRpYyBjb25zdCBnY2hhciAqTUlORVJfRklMRVMgPSAib3JnLmZyZWVkZXNr dG9wLlRyYWNrZXIxLk1pbmVyLkZpbGVzIjsKKy0KKyAKKyBzdGF0aWMgdm9pZAorIHBob3Rvc19p bmRleGluZ19ub3RpZmljYXRpb25fcmVtb3ZlX3RpbWVvdXQgKFBob3Rvc0luZGV4aW5nTm90aWZp Y2F0aW9uICpzZWxmKQorQEAgLTE4MCwxNiArMTc5LDE4IEBAIHBob3Rvc19pbmRleGluZ19ub3Rp ZmljYXRpb25fY2hlY2tfbm90aWZpY2F0aW9uIChQaG90b3NJbmRleGluZ05vdGlmaWNhdGlvbiAq c2VsCisgICBHU0xpc3QgKnJ1bm5pbmcgPSBOVUxMOworICAgZ2Jvb2xlYW4gaXNfaW5kZXhpbmdf bG9jYWwgPSBGQUxTRTsKKyAgIGdib29sZWFuIGlzX2luZGV4aW5nX3JlbW90ZSA9IEZBTFNFOwor KyAgR0Vycm9yICplcnJvciA9IE5VTEw7CisrICBnZG91YmxlIHByb2dyZXNzOworIAorLSAgcnVu bmluZyA9IHRyYWNrZXJfbWluZXJfbWFuYWdlcl9nZXRfcnVubmluZyAoc2VsZi0+bWFuYWdlcik7 CistICBpZiAoZ19zbGlzdF9maW5kX2N1c3RvbSAocnVubmluZywgKGdjb25zdHBvaW50ZXIpIE1J TkVSX0ZJTEVTLCAoR0NvbXBhcmVGdW5jKSBnX3N0cmNtcDApICE9IE5VTEwpCistICAgIHsKKy0g ICAgICBnZG91YmxlIHByb2dyZXNzOworKyAgdHJhY2tlcl9taW5lcl9jYWxsX2dldF9wcm9ncmVz c19zeW5jIChzZWxmLT5taW5lcl9mc19wcm94eSwgJnByb2dyZXNzLCBOVUxMLCAmZXJyb3IpOwor KyAgaWYgKGVycm9yKSB7CisrICAgIGdfd2FybmluZyAoIkNvdWxkbid0IGdldCBpbmRleGluZyBw cm9ncmVzcyBmcm9tIFRyYWNrZXIgTWluZXIgRlM6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworIAor LSAgICAgIHRyYWNrZXJfbWluZXJfbWFuYWdlcl9nZXRfc3RhdHVzIChzZWxmLT5tYW5hZ2VyLCBN SU5FUl9GSUxFUywgTlVMTCwgJnByb2dyZXNzLCBOVUxMKTsKKy0gICAgICBpZiAocHJvZ3Jlc3Mg PCAxKQorLSAgICAgICAgaXNfaW5kZXhpbmdfbG9jYWwgPSBUUlVFOworLSAgICB9CisrICAgIGdf Y2xlYXJfZXJyb3IgKCZlcnJvcik7CisrICB9IGVsc2UgeworKyAgICBpZiAocHJvZ3Jlc3MgPCAx KQorKyAgICAgIGlzX2luZGV4aW5nX2xvY2FsID0gVFJVRTsKKysgIH0KKyAKKyAgIGFwcCA9IGdf YXBwbGljYXRpb25fZ2V0X2RlZmF1bHQgKCk7CisgICBtaW5lcnNfcnVubmluZyA9IHBob3Rvc19h cHBsaWNhdGlvbl9nZXRfbWluZXJzX3J1bm5pbmcgKFBIT1RPU19BUFBMSUNBVElPTiAoYXBwKSk7 CitAQCAtMjIyLDcgKzIyMyw2IEBAIHBob3Rvc19pbmRleGluZ19ub3RpZmljYXRpb25fZGlzcG9z ZSAoR09iamVjdCAqb2JqZWN0KQorICAgcGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9yZW1v dmVfdGltZW91dCAoc2VsZik7CisgCisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPm50ZmN0bl9t bmdyKTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bWFuYWdlcik7CisgCisgICBHX09CSkVD VF9DTEFTUyAocGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9wYXJlbnRfY2xhc3MpLT5kaXNw b3NlIChvYmplY3QpOworIH0KK0BAIC0yNDAsMTMgKzI0MCwyNSBAQCBwaG90b3NfaW5kZXhpbmdf bm90aWZpY2F0aW9uX2luaXQgKFBob3Rvc0luZGV4aW5nTm90aWZpY2F0aW9uICpzZWxmKQorICAg YXBwID0gZ19hcHBsaWNhdGlvbl9nZXRfZGVmYXVsdCAoKTsKKyAKKyAgIHsKKysgICAgZ19hdXRv cHRyIChQaG90b3NUcmFja2VyUXVldWUpIHRyYWNrZXJfcXVldWU7CisgICAgIGdfYXV0b3B0ciAo R0Vycm9yKSBlcnJvciA9IE5VTEw7CisrICAgIGNvbnN0IGdjaGFyICptaW5lcl9mc19idXNuYW1l OworKworKyAgICB0cmFja2VyX3F1ZXVlID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZHVwX3Npbmds ZXRvbiAoTlVMTCwgJmVycm9yKTsKKysKKysgICAgaWYgKHRyYWNrZXJfcXVldWUpIHsKKysgICAg ICBtaW5lcl9mc19idXNuYW1lID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21pbmVyX2ZzX2J1 c25hbWUgKHRyYWNrZXJfcXVldWUpOworKyAgICAgIHNlbGYtPm1pbmVyX2ZzX3Byb3h5ID0gdHJh Y2tlcl9taW5lcl9wcm94eV9uZXdfZm9yX2J1c19zeW5jIChHX0JVU19UWVBFX1NFU1NJT04sCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdfREJVU19QUk9YWV9GTEFHU19OT05FLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5lcl9mc19i dXNuYW1lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiL29yZy9mcmVlZGVza3RvcC9UcmFja2VyMy9NaW5lci9GaWxl cyIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcik7CisrICAgIH0KKyAKKy0g ICAgc2VsZi0+bWFuYWdlciA9IHRyYWNrZXJfbWluZXJfbWFuYWdlcl9uZXdfZnVsbCAoRkFMU0Us ICZlcnJvcik7CisgICAgIGlmIChlcnJvciAhPSBOVUxMKQorICAgICAgIHsKKy0gICAgICAgIGdf d2FybmluZyAoIlVuYWJsZSB0byBjcmVhdGUgYSBUcmFja2VyTWluZXJNYW5hZ2VyLCBpbmRleGlu ZyBwcm9ncmVzcyBub3RpZmljYXRpb24gd29uJ3Qgd29yazogJXMiLAorLSAgICAgICAgICAgICAg ICAgICBlcnJvci0+bWVzc2FnZSk7CisrICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gY3Jl YXRlIHByb3h5IGZvciBUcmFja2VyIE1pbmVyIEZTLCBpbmRleGluZyBwcm9ncmVzcyBub3RpZmlj YXRpb24gd29uJ3Qgd29yayIpOworICAgICAgICAgcmV0dXJuOworICAgICAgIH0KKyAgIH0KK0BA IC0yOTMsMTAgKzMwNSwxMSBAQCBwaG90b3NfaW5kZXhpbmdfbm90aWZpY2F0aW9uX2luaXQgKFBo b3Rvc0luZGV4aW5nTm90aWZpY2F0aW9uICpzZWxmKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DT05ORUNUX1NXQVBQRUQp OworIAorLSAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkIChzZWxmLT5tYW5hZ2VyLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAibWluZXItcHJvZ3Jlc3MiLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHX0NBTExCQUNLIChwaG90b3NfaW5kZXhpbmdfbm90aWZpY2F0aW9uX2No ZWNrX25vdGlmaWNhdGlvbiksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpOwor KyAgZ19zaWduYWxfY29ubmVjdF9vYmplY3QgKHNlbGYtPm1pbmVyX2ZzX3Byb3h5LAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwcm9ncmVzcyIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgR19DQUxMQkFDSyAocGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9jaGVja19ub3Rp ZmljYXRpb24pLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgR19DT05ORUNUX1NXQVBQRUQpOworIH0KKyAKKyAKK2RpZmYgLS1n aXQgYS9zcmMvcGhvdG9zLWl0ZW0tbWFuYWdlci5jIGIvc3JjL3Bob3Rvcy1pdGVtLW1hbmFnZXIu YworaW5kZXggYzQ0ZmJiZmMuLmU0NTExYmIxIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1pdGVt LW1hbmFnZXIuYworKysrIGIvc3JjL3Bob3Rvcy1pdGVtLW1hbmFnZXIuYworQEAgLTQxLDEyICs0 MSw5IEBACisgI2luY2x1ZGUgInBob3Rvcy1xdWVyeS5oIgorICNpbmNsdWRlICJwaG90b3Mtc2Vh cmNoLWNvbnRleHQuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNpbmdsZS1pdGVtLWpvYi5oIgorLSNp bmNsdWRlICJwaG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuaCIKKy0jaW5jbHVkZSAicGhvdG9z LXRyYWNrZXItY2hhbmdlLW1vbml0b3IuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItcXVl dWUuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXV0aWxzLmgiCisgCistCisgc3RydWN0IF9QaG90b3NJ dGVtTWFuYWdlcgorIHsKKyAgIFBob3Rvc0Jhc2VNYW5hZ2VyIHBhcmVudF9pbnN0YW5jZTsKK0BA IC02MCw3ICs1Nyw3IEBAIHN0cnVjdCBfUGhvdG9zSXRlbU1hbmFnZXIKKyAgIFBob3Rvc0Jhc2VJ dGVtICphY3RpdmVfY29sbGVjdGlvbjsKKyAgIFBob3Rvc0Jhc2VNYW5hZ2VyICoqaXRlbV9tbmdy X2NobGRybjsKKyAgIFBob3Rvc0xvYWRTdGF0ZSBsb2FkX3N0YXRlOworLSAgUGhvdG9zVHJhY2tl ckNoYW5nZU1vbml0b3IgKm1vbml0b3I7CisrICBUcmFja2VyTm90aWZpZXIgKm5vdGlmaWVyOwor ICAgUGhvdG9zVHJhY2tlclF1ZXVlICpxdWV1ZTsKKyAgIFBob3Rvc1dpbmRvd01vZGUgbW9kZTsK KyAgIGdib29sZWFuIGZ1bGxzY3JlZW47CitAQCAtMzExLDcgKzMwOCw3IEBAIHBob3Rvc19pdGVt X21hbmFnZXJfYWRkX2N1cnNvcl9mb3JfbW9kZSAoUGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYsCisg ICBnX3JldHVybl9pZl9mYWlsIChiYXNlX2l0ZW1fdHlwZSA9PSBHX1RZUEVfTk9ORQorICAgICAg ICAgICAgICAgICAgICAgfHwgKGJhc2VfaXRlbV90eXBlICE9IFBIT1RPU19UWVBFX0JBU0VfSVRF TQorICAgICAgICAgICAgICAgICAgICAgICAgICYmIGdfdHlwZV9pc19hIChiYXNlX2l0ZW1fdHlw ZSwgUEhPVE9TX1RZUEVfQkFTRV9JVEVNKSkpOworLSAgZ19yZXR1cm5faWZfZmFpbCAoVFJBQ0tF Ul9TUEFSUUxfSVNfQ1VSU09SIChjdXJzb3IpKTsKKysgIGdfcmV0dXJuX2lmX2ZhaWwgKFRSQUNL RVJfSVNfU1BBUlFMX0NVUlNPUiAoY3Vyc29yKSk7CisgICBnX3JldHVybl9pZl9mYWlsIChtb2Rl ICE9IFBIT1RPU19XSU5ET1dfTU9ERV9OT05FKTsKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKG1vZGUg IT0gUEhPVE9TX1dJTkRPV19NT0RFX0VESVQpOworICAgZ19yZXR1cm5faWZfZmFpbCAobW9kZSAh PSBQSE9UT1NfV0lORE9XX01PREVfUFJFVklFVyk7CitAQCAtNTI5LDIxICs1MjYsMjMgQEAgcGhv dG9zX2l0ZW1fbWFuYWdlcl9pdGVtX2NyZWF0ZWQgKFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxmLCBj b25zdCBnY2hhciAqdXJuKQorIAorIAorIHN0YXRpYyB2b2lkCistcGhvdG9zX2l0ZW1fbWFuYWdl cl9jaGFuZ2VzX3BlbmRpbmdfZm9yZWFjaCAoZ3BvaW50ZXIga2V5LCBncG9pbnRlciB2YWx1ZSwg Z3BvaW50ZXIgdXNlcl9kYXRhKQorK3Bob3Rvc19pdGVtX21hbmFnZXJfY2hhbmdlc19wZW5kaW5n X2ZvcmVhY2ggKGdwb2ludGVyIGRhdGEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9kYXRhKQorIHsKKyAgIFBob3Rvc0l0ZW1NYW5h Z2VyICpzZWxmID0gUEhPVE9TX0lURU1fTUFOQUdFUiAodXNlcl9kYXRhKTsKKy0gIFBob3Rvc1Ry YWNrZXJDaGFuZ2VFdmVudCAqY2hhbmdlX2V2ZW50ID0gKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVu dCAqKSB2YWx1ZTsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudFR5cGUgY2hhbmdlX3R5cGU7 CisrICBUcmFja2VyTm90aWZpZXJFdmVudCAqZXZlbnQgPSAoVHJhY2tlck5vdGlmaWVyRXZlbnQg KikgZGF0YTsKKysgIFRyYWNrZXJOb3RpZmllckV2ZW50VHlwZSBjaGFuZ2VfdHlwZTsKKyAgIGNv bnN0IGdjaGFyICpjaGFuZ2VfdXJuOworIAorLSAgY2hhbmdlX3R5cGUgPSBwaG90b3NfdHJhY2tl cl9jaGFuZ2VfZXZlbnRfZ2V0X3R5cGUgKGNoYW5nZV9ldmVudCk7CistICBjaGFuZ2VfdXJuID0g cGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF91cm4gKGNoYW5nZV9ldmVudCk7CisrICBj aGFuZ2VfdHlwZSA9IHRyYWNrZXJfbm90aWZpZXJfZXZlbnRfZ2V0X2V2ZW50X3R5cGUgKGV2ZW50 KTsKKysgIGNoYW5nZV91cm4gPSB0cmFja2VyX25vdGlmaWVyX2V2ZW50X2dldF91cm4gKGV2ZW50 KTsKKyAKKy0gIGlmIChjaGFuZ2VfdHlwZSA9PSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRf Q0hBTkdFRCkKKysgIGlmIChjaGFuZ2VfdHlwZSA9PSBUUkFDS0VSX05PVElGSUVSX0VWRU5UX1VQ REFURSkKKyAgICAgeworICAgICAgIEdPYmplY3QgKm9iamVjdDsKKyAKKyAgICAgICBvYmplY3Qg PSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9vYmplY3RfYnlfaWQgKFBIT1RPU19CQVNFX01BTkFH RVIgKHNlbGYpLCBjaGFuZ2VfdXJuKTsKKysgICAgICBnX21lc3NhZ2UgKCJVUERBVEUgZXZlbnQg Zm9yICVzLCBvYmplY3QgJXAiLCBjaGFuZ2VfdXJuLCBvYmplY3QpOworICAgICAgIGlmIChvYmpl Y3QgIT0gTlVMTCkKKyAgICAgICAgIHsKKyAgICAgICAgICAgcGhvdG9zX2Jhc2VfaXRlbV9yZWZy ZXNoIChQSE9UT1NfQkFTRV9JVEVNIChvYmplY3QpKTsKK0BAIC01NTcsMTUgKzU1NiwxNyBAQCBw aG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVuZGluZ19mb3JlYWNoIChncG9pbnRlciBrZXks IGdwb2ludGVyIHZhbHVlLCBncG9pbgorICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAg fQorLSAgZWxzZSBpZiAoY2hhbmdlX3R5cGUgPT0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5U X0NSRUFURUQpCisrICBlbHNlIGlmIChjaGFuZ2VfdHlwZSA9PSBUUkFDS0VSX05PVElGSUVSX0VW RU5UX0NSRUFURSkKKyAgICAgeworKyAgICAgIGdfbWVzc2FnZSAoIkNSRUFURSBldmVudCBmb3Ig JXMiLCBjaGFuZ2VfdXJuKTsKKyAgICAgICBwaG90b3NfaXRlbV9tYW5hZ2VyX2l0ZW1fY3JlYXRl ZCAoc2VsZiwgY2hhbmdlX3Vybik7CisgICAgIH0KKy0gIGVsc2UgaWYgKGNoYW5nZV90eXBlID09 IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9ERUxFVEVEKQorKyAgZWxzZSBpZiAoY2hhbmdl X3R5cGUgPT0gVFJBQ0tFUl9OT1RJRklFUl9FVkVOVF9ERUxFVEUpCisgICAgIHsKKyAgICAgICBH T2JqZWN0ICpvYmplY3Q7CisgCisgICAgICAgb2JqZWN0ID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9n ZXRfb2JqZWN0X2J5X2lkIChQSE9UT1NfQkFTRV9NQU5BR0VSIChzZWxmKSwgY2hhbmdlX3Vybik7 CisrICAgICAgZ19tZXNzYWdlICgiREVMRVRFIGV2ZW50IGZvciAlcywgb2JqZWN0ICVwIiwgY2hh bmdlX3Vybiwgb2JqZWN0KTsKKyAgICAgICBpZiAob2JqZWN0ICE9IE5VTEwpCisgICAgICAgICB7 CisgICAgICAgICAgIHBob3Rvc19iYXNlX2l0ZW1fZGVzdHJveSAoUEhPVE9TX0JBU0VfSVRFTSAo b2JqZWN0KSk7CitAQCAtNTc3LDkgKzU3OCwxNSBAQCBwaG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5n ZXNfcGVuZGluZ19mb3JlYWNoIChncG9pbnRlciBrZXksIGdwb2ludGVyIHZhbHVlLCBncG9pbgor IAorIAorIHN0YXRpYyB2b2lkCistcGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmcg KFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxmLCBHSGFzaFRhYmxlICpjaGFuZ2VzKQorLXsKKy0gIGdf aGFzaF90YWJsZV9mb3JlYWNoIChjaGFuZ2VzLCBwaG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNf cGVuZGluZ19mb3JlYWNoLCBzZWxmKTsKKytwaG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVu ZGluZyAoUGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICpzZXJ2aWNlLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAqZ3JhcGgsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdQdHJBcnJheSAgICAgICAgICpldmVudHMs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAg ICB1c2VyX2RhdGEpCisreworKyAgaWYgKGdfc3RyX2VxdWFsIChncmFwaCwgVFJBQ0tFUl9QSUNU VVJFU19HUkFQSCkpIHsKKysgICAgZ19wdHJfYXJyYXlfZm9yZWFjaCAoZXZlbnRzLCBwaG90b3Nf aXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVuZGluZ19mb3JlYWNoLCBzZWxmKTsKKysgIH0KKyB9Cisg CisgCitAQCAtNzE3LDcgKzcyNCw3IEBAIHBob3Rvc19pdGVtX21hbmFnZXJfd2FpdF9mb3JfY2hh bmdlc190aW1lb3V0IChncG9pbnRlciB1c2VyX2RhdGEpCisgICAgICAgZ19hdXRvcHRyIChQaG90 b3NRdWVyeSkgcXVlcnkgPSBOVUxMOworICAgICAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9 IE5VTEw7CisgCistICAgICAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiU0VMRUNUID91cm4g bmllOnVybCAoP3VybikgV0hFUkUgeyA/dXJuIG5pZTp1cmwgJyVzJyB9IiwgdXJpKTsKKysgICAg ICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJTRUxFQ1QgP3VybiBuaWU6aXNTdG9yZWRBcyAo P3VybikgV0hFUkUgeyA/dXJuIG5pZTppc1N0b3JlZEFzICclcycgfSIsIHVyaSk7CisgICAgICAg cXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChOVUxMLCBzcGFycWwpOworICAgICAgIHBob3Rvc190 cmFja2VyX3F1ZXVlX3NlbGVjdCAoc2VsZi0+cXVldWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBxdWVyeSwKK0BAIC0xMDM4LDcgKzEwNDUsNyBAQCBwaG90b3NfaXRlbV9t YW5hZ2VyX2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2Vs Zi0+YWN0aXZlX29iamVjdCk7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmxvYWRlcl9jYW5j ZWxsYWJsZSk7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmFjdGl2ZV9jb2xsZWN0aW9uKTsK Ky0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bW9uaXRvcik7CisrICBnX2NsZWFyX29iamVjdCAo JnNlbGYtPm5vdGlmaWVyKTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+cXVldWUpOworIAor ICAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc19pdGVtX21hbmFnZXJfcGFyZW50X2NsYXNzKS0+ZGlz cG9zZSAob2JqZWN0KTsKK0BAIC0xMDkzLDIwICsxMTAwLDI0IEBAIHBob3Rvc19pdGVtX21hbmFn ZXJfaW5pdCAoUGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYpCisgCisgICBzZWxmLT5tb2RlID0gUEhP VE9TX1dJTkRPV19NT0RFX05PTkU7CisgCistICBzZWxmLT5tb25pdG9yID0gcGhvdG9zX3RyYWNr ZXJfY2hhbmdlX21vbml0b3JfZHVwX3NpbmdsZXRvbiAoTlVMTCwgTlVMTCk7CistICBpZiAoR19M SUtFTFkgKHNlbGYtPm1vbml0b3IgIT0gTlVMTCkpCistICAgIGdfc2lnbmFsX2Nvbm5lY3Rfb2Jq ZWN0IChzZWxmLT5tb25pdG9yLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNoYW5n ZXMtcGVuZGluZyIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChw aG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVuZGluZyksCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DT05ORUNU X1NXQVBQRUQpOworLQorICAgeworICAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxM OworIAorICAgICBzZWxmLT5xdWV1ZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2R1cF9zaW5nbGV0 b24gKE5VTEwsICZlcnJvcik7CisgICAgIGlmIChHX1VOTElLRUxZIChlcnJvciAhPSBOVUxMKSkK Ky0gICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gY3JlYXRlIFBob3Rvc1RyYWNrZXJRdWV1ZTog JXMiLCBlcnJvci0+bWVzc2FnZSk7CisrICAgICAgeworKyAgICAgICAgZ193YXJuaW5nICgiVW5h YmxlIHRvIGNyZWF0ZSBQaG90b3NUcmFja2VyUXVldWU6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOwor KyAgICAgICAgc2VsZi0+bm90aWZpZXIgPSBOVUxMOworKyAgICAgIH0KKysgICAgZWxzZQorKyAg ICAgIHsKKysgICAgICAgIHNlbGYtPm5vdGlmaWVyID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0 X25vdGlmaWVyIChzZWxmLT5xdWV1ZSk7CisrICAgICAgICBnX3NpZ25hbF9jb25uZWN0X29iamVj dCAoc2VsZi0+bm90aWZpZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV2 ZW50cyIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAocGhv dG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmcpLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19D T05ORUNUX1NXQVBQRUQpOworKyAgICAgIH0KKyAgIH0KKyAKKyAgIHNlbGYtPmZ1bGxzY3JlZW4g PSBGQUxTRTsKK0BAIC0xMjQxLDcgKzEyNTIsNyBAQCBwaG90b3NfaXRlbV9tYW5hZ2VyX2FkZF9p dGVtIChQaG90b3NJdGVtTWFuYWdlciAqc2VsZiwKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKGJhc2Vf aXRlbV90eXBlID09IEdfVFlQRV9OT05FCisgICAgICAgICAgICAgICAgICAgICB8fCAoYmFzZV9p dGVtX3R5cGUgIT0gUEhPVE9TX1RZUEVfQkFTRV9JVEVNCisgICAgICAgICAgICAgICAgICAgICAg ICAgJiYgZ190eXBlX2lzX2EgKGJhc2VfaXRlbV90eXBlLCBQSE9UT1NfVFlQRV9CQVNFX0lURU0p KSk7CistICBnX3JldHVybl9pZl9mYWlsIChUUkFDS0VSX1NQQVJRTF9JU19DVVJTT1IgKGN1cnNv cikpOworKyAgZ19yZXR1cm5faWZfZmFpbCAoVFJBQ0tFUl9JU19TUEFSUUxfQ1VSU09SIChjdXJz b3IpKTsKKyAKKyAgIGlkID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dldF9zdHJpbmcgKGN1cnNv ciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfVVJOLCBOVUxMKTsKKyAgIGdfcmV0dXJuX2lmX2ZhaWwg KGlkICE9IE5VTEwgJiYgaWRbMF0gIT0gJ1wwJyk7CitAQCAtMTM3MCw3ICsxMzgxLDcgQEAgcGhv dG9zX2l0ZW1fbWFuYWdlcl9jcmVhdGVfaXRlbSAoUGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYsCisg ICBnX3JldHVybl92YWxfaWZfZmFpbCAoYmFzZV9pdGVtX3R5cGUgPT0gR19UWVBFX05PTkUKKyAg ICAgICAgICAgICAgICAgICAgICAgICB8fCAoYmFzZV9pdGVtX3R5cGUgIT0gUEhPVE9TX1RZUEVf QkFTRV9JVEVNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGdfdHlwZV9pc19hIChi YXNlX2l0ZW1fdHlwZSwgUEhPVE9TX1RZUEVfQkFTRV9JVEVNKSksIE5VTEwpOworLSAgZ19yZXR1 cm5fdmFsX2lmX2ZhaWwgKFRSQUNLRVJfU1BBUlFMX0lTX0NVUlNPUiAoY3Vyc29yKSwgTlVMTCk7 CisrICBnX3JldHVybl92YWxfaWZfZmFpbCAoVFJBQ0tFUl9JU19TUEFSUUxfQ1VSU09SIChjdXJz b3IpLCBOVUxMKTsKKyAKKyAgIGlkID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dldF9zdHJpbmcg KGN1cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfVVJOLCBOVUxMKTsKKyAgIGl0ZW0gPSBQSE9U T1NfQkFTRV9JVEVNIChwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9vYmplY3RfYnlfaWQgKFBIT1RP U19CQVNFX01BTkFHRVIgKHNlbGYpLCBpZCkpOworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtcXVh cmtzLmMgYi9zcmMvcGhvdG9zLXF1YXJrcy5jCitpbmRleCAwODcwZWY2Mi4uNWVlMjU3NDUgMTAw NjQ0CistLS0gYS9zcmMvcGhvdG9zLXF1YXJrcy5jCisrKysgYi9zcmMvcGhvdG9zLXF1YXJrcy5j CitAQCAtMjUsNjggKzI1LDY4IEBACisgR1F1YXJrCisgcGhvdG9zX3F1YXJrc19mbGFzaF9vZmZf cXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgi aHR0cDovL3d3dy50cmFja2VyLXByb2plY3Qub3JnL3RlbXAvbm1tI2ZsYXNoLW9mZiIpOworKyAg cmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdu b21lLm9yZy9vbnRvbG9neS92My9ubW0jZmxhc2gtb2ZmIik7CisgfQorIAorIAorIEdRdWFyawor IHBob3Rvc19xdWFya3NfZmxhc2hfb25fcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVh cmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy50cmFja2VyLXByb2plY3Qub3JnL3Rl bXAvbm1tI2ZsYXNoLW9uIik7CisrICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcg KCJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25tbSNmbGFzaC1vbiIp OworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9uX2JvdHRvbV9x dWFyayAodm9pZCkKKyB7CistICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJo dHRwOi8vd3d3LnNlbWFudGljZGVza3RvcC5vcmcvb250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNv cmllbnRhdGlvbi1ib3R0b20iKTsKKysgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmlu ZyAoImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZvI29yaWVudGF0 aW9uLWJvdHRvbSIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0 aW9uX2JvdHRvbV9taXJyb3JfcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJv bV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rlc2t0b3Aub3JnL29udG9sb2dp ZXMvMjAwNy8wMy8yMi9uZm8jb3JpZW50YXRpb24tYm90dG9tLW1pcnJvciIpOworKyAgcmV0dXJu IGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9y Zy9vbnRvbG9neS92My9uZm8jb3JpZW50YXRpb24tYm90dG9tLW1pcnJvciIpOworIH0KKyAKKyAK KyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9uX2xlZnRfcXVhcmsgKHZvaWQpCisg eworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy5zZW1h bnRpY2Rlc2t0b3Aub3JnL29udG9sb2dpZXMvMjAwNy8wMy8yMi9uZm8jb3JpZW50YXRpb24tbGVm dCIpOworKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNr ZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9uZm8jb3JpZW50YXRpb24tbGVmdCIpOworIH0K KyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9uX2xlZnRfbWlycm9yX3F1 YXJrICh2b2lkKQorIHsKKy0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0 dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVzLzIwMDcvMDMvMjIvbmZvI29y aWVudGF0aW9uLWxlZnQtbWlycm9yIik7CisrICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19z dHJpbmcgKCJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25mbyNvcmll bnRhdGlvbi1sZWZ0LW1pcnJvciIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtz X29yaWVudGF0aW9uX3JpZ2h0X3F1YXJrICh2b2lkKQorIHsKKy0gIHJldHVybiBnX3F1YXJrX2Zy b21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9n aWVzLzIwMDcvMDMvMjIvbmZvI29yaWVudGF0aW9uLXJpZ2h0Iik7CisrICByZXR1cm4gZ19xdWFy a19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9s b2d5L3YzL25mbyNvcmllbnRhdGlvbi1yaWdodCIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90 b3NfcXVhcmtzX29yaWVudGF0aW9uX3JpZ2h0X21pcnJvcl9xdWFyayAodm9pZCkKKyB7CistICBy ZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vd3d3LnNlbWFudGljZGVz a3RvcC5vcmcvb250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNvcmllbnRhdGlvbi1yaWdodC1taXJy b3IiKTsKKysgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly90cmFj a2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9uLXJpZ2h0LW1pcnJv ciIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9uX3RvcF9x dWFyayAodm9pZCkKKyB7CistICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJo dHRwOi8vd3d3LnNlbWFudGljZGVza3RvcC5vcmcvb250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNv cmllbnRhdGlvbi10b3AiKTsKKysgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAo Imh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9u LXRvcCIpOworIH0KKyAKKyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX29yaWVudGF0aW9uX3Rv cF9taXJyb3JfcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNf c3RyaW5nICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rlc2t0b3Aub3JnL29udG9sb2dpZXMvMjAwNy8w My8yMi9uZm8jb3JpZW50YXRpb24tdG9wLW1pcnJvciIpOworKyAgcmV0dXJuIGdfcXVhcmtfZnJv bV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92 My9uZm8jb3JpZW50YXRpb24tdG9wLW1pcnJvciIpOworIH0KK2RpZmYgLS1naXQgYS9zcmMvcGhv dG9zLXF1ZXJ5LWJ1aWxkZXIuYyBiL3NyYy9waG90b3MtcXVlcnktYnVpbGRlci5jCitpbmRleCBl MDczNWJkZS4uNDZkNjVlOGYgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIu YworKysrIGIvc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMKK0BAIC0yNSw2ICsyNSw3IEBACisg CisgI2luY2x1ZGUgPHN0cmluZy5oPgorIAorKyNpbmNsdWRlICJwaG90b3MtYXBwbGljYXRpb24u aCIKKyAjaW5jbHVkZSAicGhvdG9zLWJhc2UtbWFuYWdlci5oIgorICNpbmNsdWRlICJwaG90b3Mt cXVlcnkuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuaCIKK0BAIC0zMiw2ICsz Myw3IEBACisgI2luY2x1ZGUgInBob3Rvcy1zb3VyY2UtbWFuYWdlci5oIgorICNpbmNsdWRlICJw aG90b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC10 eXBlLW1hbmFnZXIuaCIKKysjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItcXVldWUuaCIKKyAKKyAj ZGVmaW5lIFBIT1RPU19RVUVSWV9DT0xMRUNUSU9OU19JREVOVElGSUVSICJwaG90b3M6Y29sbGVj dGlvbjoiCisgI2RlZmluZSBQSE9UT1NfUVVFUllfTE9DQUxfQ09MTEVDVElPTlNfSURFTlRJRklF UiAicGhvdG9zOmNvbGxlY3Rpb246bG9jYWw6IgorQEAgLTQ4LDEyICs1MCwxNCBAQCBjb25zdCBn Y2hhciAqcGhvdG9zX2RlZmF1bHRfZmlsdGVyID0gXAorIAorIHN0YXRpYyBnY2hhciAqCisgcGhv dG9zX3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGdsb2JhbCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnZhbHVlcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2ludCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UGhvdG9zT2Zmc2V0Q29udHJvbGxlciAqb2Zmc2V0X2NudHJscikKKyB7CisgICBQaG90b3NTcGFy cWxUZW1wbGF0ZSAqdGVtcGxhdGU7CistICBjb25zdCBnY2hhciAqcHJvamVjdGlvbiA9IE5VTEw7 CisrICBjb25zdCBnY2hhciAqbWluZXJfZnNfYnVzbmFtZSA9IE5VTEw7CisrICBjb25zdCBnY2hh ciAqbWFpbl9wcm9qZWN0aW9uID0gTlVMTDsKKysgIGNvbnN0IGdjaGFyICpzZWNvbmRfcHJvamVj dGlvbiA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICppdGVtX3BhdHRlcm4gPSBOVUxMOwor ICAgZ19hdXRvZnJlZSBnY2hhciAqc2VhcmNoX2ZpbHRlciA9IE5VTEw7CisgICBnX2F1dG9mcmVl IGdjaGFyICpzb3VyY2VfZmlsdGVyID0gTlVMTDsKK0BAIC02MywyOSArNjcsMzUgQEAgcGhvdG9z X3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisg CisgICB0ZW1wbGF0ZSA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAo c3RhdGUtPnNyY2hfdHlwX21uZ3IsIGZsYWdzKTsKKyAKKy0gIHByb2plY3Rpb24gPSAiP3VybiAi CistICAgICAgICAgICAgICAgIm5pZTp1cmwgKD91cm4pICIKKy0gICAgICAgICAgICAgICAibmZv OmZpbGVOYW1lICg/dXJuKSAiCistICAgICAgICAgICAgICAgIm5pZTptaW1lVHlwZSAoP3Vybikg IgorLSAgICAgICAgICAgICAgICJuaWU6dGl0bGUgKD91cm4pICIKKy0gICAgICAgICAgICAgICAi dHJhY2tlcjpjb2FsZXNjZSAobmNvOmZ1bGxuYW1lICg/Y3JlYXRvciksIG5jbzpmdWxsbmFtZSAo P3B1Ymxpc2hlciksICcnKSAiCistICAgICAgICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UgKG5m bzpmaWxlTGFzdE1vZGlmaWVkICg/dXJuKSwgbmllOmNvbnRlbnRMYXN0TW9kaWZpZWQgKD91cm4p KSBBUyA/bXRpbWUgIgorLSAgICAgICAgICAgICAgICJuYW86aWRlbnRpZmllciAoP3VybikgIgor LSAgICAgICAgICAgICAgICJyZGY6dHlwZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICJuaWU6 ZGF0YVNvdXJjZSg/dXJuKSAiCistICAgICAgICAgICAgICAgIiggRVhJU1RTIHsgP3VybiBuYW86 aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSB9ICkgIgorLSAgICAgICAgICAgICAg ICIoIEVYSVNUUyB7ID91cm4gbmNvOmNvbnRyaWJ1dG9yID9jb250cmlidXRvciBGSUxURVIgKCA/ Y29udHJpYnV0b3IgIT0gP2NyZWF0b3IgKSB9ICkgIgorLSAgICAgICAgICAgICAgICJ0cmFja2Vy OmNvYWxlc2NlKG5mbzpmaWxlQ3JlYXRlZCAoP3VybiksIG5pZTpjb250ZW50Q3JlYXRlZCAoP3Vy bikpICIKKy0gICAgICAgICAgICAgICAibmZvOndpZHRoICg/dXJuKSAiCistICAgICAgICAgICAg ICAgIm5mbzpoZWlnaHQgKD91cm4pICIKKy0gICAgICAgICAgICAgICAibmZvOmVxdWlwbWVudCAo P3VybikgIgorLSAgICAgICAgICAgICAgICJuZm86b3JpZW50YXRpb24gKD91cm4pICIKKy0gICAg ICAgICAgICAgICAibm1tOmV4cG9zdXJlVGltZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICJu bW06Zm51bWJlciAoP3VybikgIgorLSAgICAgICAgICAgICAgICJubW06Zm9jYWxMZW5ndGggKD91 cm4pICIKKy0gICAgICAgICAgICAgICAibm1tOmlzb1NwZWVkICg/dXJuKSAiCistICAgICAgICAg ICAgICAgIm5tbTpmbGFzaCAoP3VybikgIgorLSAgICAgICAgICAgICAgICJzbG86bG9jYXRpb24g KD91cm4pICI7CisrICBtaW5lcl9mc19idXNuYW1lID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0 X21pbmVyX2ZzX2J1c25hbWUgKHN0YXRlLT5xdWV1ZSk7CisrCisrICBtYWluX3Byb2plY3Rpb24g PSAiP3VybiAiCisrICAgICAgICAgICAgICAgICAgICAiP2ZpbGUgIgorKyAgICAgICAgICAgICAg ICAgICAgIm5mbzpmaWxlTmFtZSAoP2ZpbGUpIEFTID9maWxlbmFtZSAiCisrICAgICAgICAgICAg ICAgICAgICAibmllOm1pbWVUeXBlICg/dXJuKSBBUyA/bWltZXR5cGUgIgorKyAgICAgICAgICAg ICAgICAgICAgIm5pZTp0aXRsZSAoP3VybikgQVMgP3RpdGxlICIKKysgICAgICAgICAgICAgICAg ICAgICJ0cmFja2VyOmNvYWxlc2NlIChuY286ZnVsbG5hbWUgKD9jcmVhdG9yKSwgbmNvOmZ1bGxu YW1lICg/cHVibGlzaGVyKSwgJycpIEFTID9hdXRob3JfbmFtZSAiCisrICAgICAgICAgICAgICAg ICAgICAidHJhY2tlcjpjb2FsZXNjZSAobmZvOmZpbGVMYXN0TW9kaWZpZWQgKD9maWxlKSwgbmll OmNvbnRlbnRMYXN0TW9kaWZpZWQgKD91cm4pKSBBUyA/bXRpbWUgIgorKyAgICAgICAgICAgICAg ICAgICAgIm5hbzppZGVudGlmaWVyICg/dXJuKSBBUyA/aWRlbnRpZmllciAiCisrICAgICAgICAg ICAgICAgICAgICAicmRmOnR5cGUgKD91cm4pIEFTID90eXBlICIKKysgICAgICAgICAgICAgICAg ICAgICJuaWU6ZGF0YVNvdXJjZSg/dXJuKSBBUyA/ZGF0YXNvdXJjZSAiCisrICAgICAgICAgICAg ICAgICAgICAiKCBFWElTVFMgeyA/dXJuIG5jbzpjb250cmlidXRvciA/Y29udHJpYnV0b3IgRklM VEVSICggP2NvbnRyaWJ1dG9yICE9ID9jcmVhdG9yICkgfSApIEFTID9oYXNfY29udHJpYnV0b3Ig IgorKyAgICAgICAgICAgICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UobmZvOmZpbGVDcmVhdGVk ICg/ZmlsZSksIG5pZTpjb250ZW50Q3JlYXRlZCAoP3VybikpIEFTID9jdGltZSAiCisrICAgICAg ICAgICAgICAgICAgICAibmZvOndpZHRoICg/dXJuKSBBUyA/d2lkdGggIgorKyAgICAgICAgICAg ICAgICAgICAgIm5mbzpoZWlnaHQgKD91cm4pIEFTID9oZWlnaHQgIgorKyAgICAgICAgICAgICAg ICAgICAgIm5mbzplcXVpcG1lbnQgKD91cm4pIEFTID9lcXVpcG1lbnQgIgorKyAgICAgICAgICAg ICAgICAgICAgIm5mbzpvcmllbnRhdGlvbiAoP3VybikgQVMgP29yaWVudGF0aW9uICIKKysgICAg ICAgICAgICAgICAgICAgICJubW06ZXhwb3N1cmVUaW1lICg/dXJuKSBBUyA/ZXhwb3N1cmVfdGlt ZSAiCisrICAgICAgICAgICAgICAgICAgICAibm1tOmZudW1iZXIgKD91cm4pIEFTID9mbnVtYmVy ICIKKysgICAgICAgICAgICAgICAgICAgICJubW06Zm9jYWxMZW5ndGggKD91cm4pIEFTID9mb2Nh bF9sZW5ndGggIgorKyAgICAgICAgICAgICAgICAgICAgIm5tbTppc29TcGVlZCAoP3VybikgQVMg P2lzb3NwZWVkICIKKysgICAgICAgICAgICAgICAgICAgICJubW06Zmxhc2ggKD91cm4pIEFTID9m bGFzaCAiCisrICAgICAgICAgICAgICAgICAgICAic2xvOmxvY2F0aW9uICg/dXJuKSBBUyA/bG9j YXRpb24gIjsKKysKKysgIHNlY29uZF9wcm9qZWN0aW9uID0gIj91cm4gP2ZpbGUgP2ZpbGVuYW1l ID9taW1ldHlwZSA/dGl0bGUgP2F1dGhvcl9uYW1lID9tdGltZSA/aWRlbnRpZmllciA/dHlwZSA/ ZGF0YXNvdXJjZSAiCisrICAgICAgICAgICAgICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4gbmFv Omhhc1RhZyBuYW86cHJlZGVmaW5lZC10YWctZmF2b3JpdGUgfSApIEFTID9pc19mYXZvcml0ZSAi CisrICAgICAgICAgICAgICAgICAgICAgICI/aGFzX2NvbnRyaWJ1dG9yID9jdGltZSA/d2lkdGgg P2hlaWdodCA/ZXF1aXBtZW50ID9vcmllbnRhdGlvbiA/ZXhwb3N1cmVfdGltZSA/Zm51bWJlciAi CisrICAgICAgICAgICAgICAgICAgICAgICI/Zm9jYWxfbGVuZ3RoID9pc29zcGVlZCA/Zmxhc2gg P2xvY2F0aW9uICI7CisgCisgICBpdGVtX3BhdHRlcm4gPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dl dF93aGVyZSAoc3RhdGUtPml0ZW1fbW5nciwgZmxhZ3MpOworIAorQEAgLTk3LDcgKzEwNyw3IEBA IHBob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0 YXRlLAorIAorICAgb3JkZXIgPSAiT1JERVIgQlkgREVTQyAoP210aW1lKSI7CisgCistICBpZiAo Z2xvYmFsICYmIChmbGFncyAmIFBIT1RPU19RVUVSWV9GTEFHU19VTkxJTUlURUQpID09IDApCisr ICBpZiAodmFsdWVzID09IE5VTEwgJiYgKGZsYWdzICYgUEhPVE9TX1FVRVJZX0ZMQUdTX1VOTElN SVRFRCkgPT0gMCkKKyAgICAgeworICAgICAgIGdpbnQgb2Zmc2V0ID0gMDsKKyAgICAgICBnaW50 IHN0ZXAgPSA2MDsKK0BAIC0xMTIsMTIgKzEyMiwxNiBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9x dWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwKKyAgICAgfQorIAorICAgc3Bh cnFsID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9nZXRfc3BhcnFsICh0ZW1wbGF0ZSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2plY3Rpb24iLCBw cm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAibWluZXJfZnNfYnVzbmFtZSIsIG1pbmVyX2ZzX2J1c25hbWUsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYWluX3Byb2plY3Rpb24iLCBtYWluX3By b2plY3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJzZWNvbmRfcHJvamVjdGlvbiIsIHNlY29uZF9wcm9qZWN0aW9uLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmluYWxfcHJvamVjdGlvbiIsIHNlY29u ZF9wcm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAidmFsdWVzIiwgdmFsdWVzID8gdmFsdWVzIDogIiIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciIs IGNvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiaXRlbV9wYXR0ZXJuIiwgaXRlbV9wYXR0ZXJuLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGhvdG9zX2RlZmF1bHRf ZmlsdGVyIiwgcGhvdG9zX2RlZmF1bHRfZmlsdGVyLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAic291cmNlX2ZpbHRlciIsIHNvdXJjZV9maWx0ZXIgPyBz b3VyY2VfZmlsdGVyIDogIiIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJzZWFyY2hfZmlsdGVyIiwgc2VhcmNoX2ZpbHRlciA/IHNlYXJjaF9maWx0ZXIg OiAiIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNv dXJjZV9maWx0ZXIiLCBzb3VyY2VfZmlsdGVyID8gc291cmNlX2ZpbHRlciA6ICIodHJ1ZSkiLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VhcmNoX2Zp bHRlciIsIHNlYXJjaF9maWx0ZXIgPyBzZWFyY2hfZmlsdGVyIDogIih0cnVlKSIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmRlciIsIG9yZGVyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2Zmc2V0X2xp bWl0Iiwgb2Zmc2V0X2xpbWl0ID8gb2Zmc2V0X2xpbWl0IDogIiIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworQEAgLTEzMyw2ICsxNDcsNyBA QCBwaG90b3NfcXVlcnlfYnVpbGRlcl9jcmVhdGVfY29sbGVjdGlvbl9xdWVyeSAoUGhvdG9zU2Vh cmNoQ29udGV4dFN0YXRlICpzdGF0ZSwKKyB7CisgICBnX2F1dG9wdHIgKEdEYXRlVGltZSkgbm93 ID0gTlVMTDsKKyAgIFBob3Rvc1F1ZXJ5ICpxdWVyeTsKKysgIGdfYXV0b3B0ciAoVHJhY2tlclJl c291cmNlKSBjb2xsZWN0aW9uID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKmlkZW50aWZp ZXIgPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqc3BhcnFsID0gTlVMTDsKKyAgIGdfYXV0 b2ZyZWUgZ2NoYXIgKnRpbWUgPSBOVUxMOworQEAgLTE0NCwxMyArMTU5LDE0IEBAIHBob3Rvc19x dWVyeV9idWlsZGVyX2NyZWF0ZV9jb2xsZWN0aW9uX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0 U3RhdGUgKnN0YXRlLAorICAgbm93ID0gZ19kYXRlX3RpbWVfbmV3X25vd191dGMgKCk7CisgICB0 aW1lID0gZ19kYXRlX3RpbWVfZm9ybWF0X2lzbzg2MDEgKG5vdyk7CisgCistICBzcGFycWwgPSBn X3N0cmR1cF9wcmludGYgKCJJTlNFUlQgeyBfOnJlcyBhIG5mbzpEYXRhQ29udGFpbmVyIDsgYSBu aWU6RGF0YU9iamVjdCA7ICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5pZTpjb250 ZW50TGFzdE1vZGlmaWVkICclcycgOyAiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICJu aWU6dGl0bGUgJyVzJyA7ICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbzppZGVu dGlmaWVyICclcycgfSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlkZW50aWZpZXIpOworKyAgY29sbGVjdGlvbiA9IHRyYWNrZXJfcmVzb3VyY2VfbmV3ICgi XzpyZXMiKTsKKysgIHRyYWNrZXJfcmVzb3VyY2VfYWRkX3VyaSAoY29sbGVjdGlvbiwgInJkZjp0 eXBlIiwgIm5mbzpEYXRhQ29udGFpbmVyIik7CisrICB0cmFja2VyX3Jlc291cmNlX2FkZF91cmkg KGNvbGxlY3Rpb24sICJyZGY6dHlwZSIsICJuaWU6RGF0YU9iamVjdCIpOworKyAgdHJhY2tlcl9y ZXNvdXJjZV9zZXRfc3RyaW5nIChjb2xsZWN0aW9uLCAibmllOmNvbnRlbnRMYXN0TW9kaWZpZWQi LCB0aW1lKTsKKysgIHRyYWNrZXJfcmVzb3VyY2Vfc2V0X3N0cmluZyAoY29sbGVjdGlvbiwgIm5p ZTp0aXRsZSIsIG5hbWUpOworKyAgdHJhY2tlcl9yZXNvdXJjZV9zZXRfc3RyaW5nIChjb2xsZWN0 aW9uLCAibmFvOmlkZW50aWZpZXIiLCBpZGVudGlmaWVyKTsKKysKKysgIHNwYXJxbCA9IHRyYWNr ZXJfcmVzb3VyY2VfcHJpbnRfc3BhcnFsX3VwZGF0ZSAoY29sbGVjdGlvbiwgTlVMTCwgInRyYWNr ZXI6UGljdHVyZXMiKTsKKyAKKyAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoc3RhdGUsIHNw YXJxbCk7CisgCitAQCAtMTgwLDcgKzE5Niw5IEBAIFBob3Rvc1F1ZXJ5ICoKKyBwaG90b3NfcXVl cnlfYnVpbGRlcl9jb3VudF9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwg Z2ludCBmbGFncykKKyB7CisgICBQaG90b3NTcGFycWxUZW1wbGF0ZSAqdGVtcGxhdGU7CistICBj b25zdCBnY2hhciAqcHJvamVjdGlvbiA9IE5VTEw7CisrICBjb25zdCBnY2hhciAqbWluZXJfZnNf YnVzbmFtZSA9IE5VTEw7CisrICBjb25zdCBnY2hhciAqY291bnRfcHJvamVjdGlvbiA9IE5VTEw7 CisrICBjb25zdCBnY2hhciAqdmFsdWVfcHJvamVjdGlvbiA9IE5VTEw7CisgICBnX2F1dG9mcmVl IGdjaGFyICppdGVtX3BhdHRlcm4gPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqc2VhcmNo X2ZpbHRlciA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICpzb3VyY2VfZmlsdGVyID0gTlVM TDsKK0BAIC0xODksNyArMjA3LDEwIEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX2NvdW50X3F1ZXJ5 IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLCBnaW50IGZsYWdzKQorIAorICAgdGVt cGxhdGUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVtcGxhdGUgKHN0YXRlLT5z cmNoX3R5cF9tbmdyLCBmbGFncyk7CisgCistICBwcm9qZWN0aW9uID0gIkNPVU5UKD91cm4pICI7 CisrICBtaW5lcl9mc19idXNuYW1lID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21pbmVyX2Zz X2J1c25hbWUgKHN0YXRlLT5xdWV1ZSk7CisrCisrICB2YWx1ZV9wcm9qZWN0aW9uID0gIj91cm4g IjsKKysgIGNvdW50X3Byb2plY3Rpb24gPSAiQ09VTlQoP3VybikgIjsKKyAKKyAgIGl0ZW1fcGF0 dGVybiA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3doZXJlIChzdGF0ZS0+aXRlbV9tbmdyLCBm bGFncyk7CisgCitAQCAtMjAwLDEyICsyMjEsMTYgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfY291 bnRfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGdpbnQgZmxhZ3MpCisg ICAgIH0KKyAKKyAgIHNwYXJxbCA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZ2V0X3NwYXJxbCAo dGVtcGxhdGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJwcm9qZWN0aW9uIiwgcHJvamVjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIm1pbmVyX2ZzX2J1c25hbWUiLCBtaW5lcl9mc19idXNuYW1lLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWFpbl9wcm9q ZWN0aW9uIiwgdmFsdWVfcHJvamVjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgInNlY29uZF9wcm9qZWN0aW9uIiwgdmFsdWVfcHJvamVjdGlvbiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbmFsX3By b2plY3Rpb24iLCBjb3VudF9wcm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAidmFsdWVzIiwgIiIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciIsIGNv bGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiaXRlbV9wYXR0ZXJuIiwgaXRlbV9wYXR0ZXJuLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGhvdG9zX2RlZmF1bHRfZmls dGVyIiwgcGhvdG9zX2RlZmF1bHRfZmlsdGVyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAic291cmNlX2ZpbHRlciIsIHNvdXJjZV9maWx0ZXIgPyBzb3Vy Y2VfZmlsdGVyIDogIiIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJzZWFyY2hfZmlsdGVyIiwgc2VhcmNoX2ZpbHRlciA/IHNlYXJjaF9maWx0ZXIgOiAi IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvdXJj ZV9maWx0ZXIiLCBzb3VyY2VfZmlsdGVyID8gc291cmNlX2ZpbHRlciA6ICIodHJ1ZSkiLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VhcmNoX2ZpbHRl ciIsIHNlYXJjaF9maWx0ZXIgPyBzZWFyY2hfZmlsdGVyIDogIih0cnVlKSIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmRlciIsICIiLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2Zmc2V0X2xpbWl0Iiwg IiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwp OworQEAgLTI2NCw3ICsyODksNyBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9mZXRjaF9jb2xsZWN0 aW9uc19sb2NhbCAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSkKKyAgIGdfYXV0b2Zy ZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7CisgCisgICBzcGFycWwgPSBwaG90b3NfcXVlcnlfYnVp bGRlcl9xdWVyeSAoc3RhdGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVFJVRSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBIT1RPU19RVUVSWV9GTEFH U19DT0xMRUNUSU9OUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg UEhPVE9TX1FVRVJZX0ZMQUdTX0xPQ0FMCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBQSE9UT1NfUVVFUllfRkxBR1NfVU5MSU1JVEVELAorQEAgLTI4NCw3ICszMDks NyBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9nbG9iYWxfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRl eHRTdGF0ZSAqc3RhdGUsCisgICBQaG90b3NRdWVyeSAqcXVlcnk7CisgICBnX2F1dG9mcmVlIGdj aGFyICpzcGFycWwgPSBOVUxMOworIAorLSAgc3BhcnFsID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJf cXVlcnkgKHN0YXRlLCBUUlVFLCBmbGFncywgb2Zmc2V0X2NudHJscik7CisrICBzcGFycWwgPSBw aG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoc3RhdGUsIE5VTEwsIGZsYWdzLCBvZmZzZXRfY250 cmxyKTsKKyAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoc3RhdGUsIHNwYXJxbCk7CisgCisg ICByZXR1cm4gcXVlcnk7CitAQCAtMzEzLDEwICszMzgsMTkgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxk ZXJfc2V0X2NvbGxlY3Rpb25fcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUs CisgICBQaG90b3NRdWVyeSAqcXVlcnk7CisgICBnX2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBO VUxMOworIAorLSAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiJXMgeyA8JXM+IG5pZTppc1Bh cnRPZiA8JXM+IH0iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nID8gIklO U0VSVCIgOiAiREVMRVRFIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbV91cm4s CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25fdXJuKTsKKysgIGlmIChz ZXR0aW5nKQorKyAgICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJJTlNFUlQgREFUQSB7ICIK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBHUkFQSCB0cmFja2VyOlBpY3R1cmVz IHsiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICA8JXM+IGEgbmllOkRhdGFP YmplY3QgLCBubW06UGhvdG8gOyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAg ICAgIG5pZTppc1BhcnRPZiA8JXM+ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi ICB9IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ9IiwgaXRlbV91cm4sIGNvbGxl Y3Rpb25fdXJuKTsKKysgIGVsc2UKKysgICAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiREVM RVRFIERBVEEgeyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgR1JBUEggdHJh Y2tlcjpQaWN0dXJlcyB7IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPCVz PiBuaWU6aXNQYXJ0T2YgPCVzPiAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAg fSIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifSIsIGl0ZW1fdXJuLCBjb2xsZWN0 aW9uX3Vybik7CisgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9uZXcgKHN0YXRlLCBzcGFycWwpOwor IAorICAgcmV0dXJuIHF1ZXJ5OworQEAgLTMyNiwxNyArMzYwLDE0IEBAIHBob3Rvc19xdWVyeV9i dWlsZGVyX3NldF9jb2xsZWN0aW9uX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0 YXRlLAorIFBob3Rvc1F1ZXJ5ICoKKyBwaG90b3NfcXVlcnlfYnVpbGRlcl9zaW5nbGVfcXVlcnkg KFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGdpbnQgZmxhZ3MsIGNvbnN0IGdjaGFy ICpyZXNvdXJjZSkKKyB7CistICBnX2F1dG9wdHIgKEdSZWdleCkgcmVnZXggPSBOVUxMOworICAg UGhvdG9zUXVlcnkgKnF1ZXJ5OworLSAgZ19hdXRvZnJlZSBnY2hhciAqcmVwbGFjZW1lbnQgPSBO VUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqc3BhcnFsID0gTlVMTDsKKy0gIGdfYXV0b2ZyZWUg Z2NoYXIgKnRtcCA9IE5VTEw7CisrICBnX2F1dG9mcmVlIGdjaGFyICp2YWx1ZXMgPSBOVUxMOwor KworKyAgdmFsdWVzID0gZ19zdHJkdXBfcHJpbnRmICgiVkFMVUVTID91cm4geyA8JXM+IH0iLCBy ZXNvdXJjZSk7CisgCistICB0bXAgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoc3RhdGUs IEZBTFNFLCBmbGFncywgTlVMTCk7CisrICBzcGFycWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9x dWVyeSAoc3RhdGUsIHZhbHVlcywgZmxhZ3MsIE5VTEwpOworIAorLSAgcmVnZXggPSBnX3JlZ2V4 X25ldyAoIlxcP3VybiIsIDAsIDAsIE5VTEwpOworLSAgcmVwbGFjZW1lbnQgPSBnX3N0cmNvbmNh dCAoIjwiLCByZXNvdXJjZSwgIj4iLCBOVUxMKTsKKy0gIHNwYXJxbCA9IGdfcmVnZXhfcmVwbGFj ZSAocmVnZXgsIHRtcCwgLTEsIDAsIHJlcGxhY2VtZW50LCAwLCBOVUxMKTsKKyAgIHF1ZXJ5ID0g cGhvdG9zX3F1ZXJ5X25ldyAoc3RhdGUsIHNwYXJxbCk7CisgCisgICByZXR1cm4gcXVlcnk7CitA QCAtMzU0LDcgKzM4NSwxNCBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl91cGRhdGVfbXRpbWVfcXVl cnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGNvbnN0CisgICBub3cgPSBnX2Rh dGVfdGltZV9uZXdfbm93X3V0YyAoKTsKKyAgIHRpbWUgPSBnX2RhdGVfdGltZV9mb3JtYXRfaXNv ODYwMSAobm93KTsKKyAKKy0gIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIklOU0VSVCBPUiBS RVBMQUNFIHsgPCVzPiBuaWU6Y29udGVudExhc3RNb2RpZmllZCAnJXMnIH0iLCByZXNvdXJjZSwg dGltZSk7CisrICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJXSVRIIHRyYWNrZXI6UGljdHVy ZXMgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiREVMRVRFIHsgPCVzPiBuaWU6Y29u dGVudExhc3RNb2RpZmllZCA/dGltZSB9ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg IklOU0VSVCB7ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgPCVzPiBhIG5tbTpQ aG90byA7ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBuaWU6Y29udGVudExh c3RNb2RpZmllZCAnJXMnICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIn0iCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJXSEVSRSB7IDwlcz4gbmllOmNvbnRlbnRMYXN0TW9k aWZpZWQgP3RpbWUgfSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlLCBy ZXNvdXJjZSwgdGltZSwgcmVzb3VyY2UpOworICAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChz dGF0ZSwgc3BhcnFsKTsKKyAKKyAgIHJldHVybiBxdWVyeTsKK2RpZmYgLS1naXQgYS9zcmMvcGhv dG9zLXNlYXJjaC1jb250ZXh0LmMgYi9zcmMvcGhvdG9zLXNlYXJjaC1jb250ZXh0LmMKK2luZGV4 IDRiNTAzNzk4Li42Zjg2OTRiYyAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mtc2VhcmNoLWNvbnRl eHQuYworKysrIGIvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4dC5jCitAQCAtMzEsNiArMzEsNyBA QAorICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAi cGhvdG9zLXNlYXJjaC10eXBlLW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNvdXJjZS1t YW5hZ2VyLmgiCisrI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLXF1ZXVlLmgiCisgCisgCisgR19E RUZJTkVfSU5URVJGQUNFIChQaG90b3NTZWFyY2hDb250ZXh0LCBwaG90b3Nfc2VhcmNoX2NvbnRl eHQsIEdfVFlQRV9PQkpFQ1QpOworQEAgLTU0LDYgKzU1LDcgQEAgcGhvdG9zX3NlYXJjaF9jb250 ZXh0X3N0YXRlX25ldyAoUGhvdG9zU2VhcmNoQ29udGV4dCAqc2VsZikKKyAgIHN0YXRlLT5zcmNo X2NudHJsciA9IHBob3Rvc19zZWFyY2hfY29udHJvbGxlcl9uZXcgKCk7CisgICBzdGF0ZS0+c3Jj aF9tdGNoX21uZ3IgPSBwaG90b3Nfc2VhcmNoX21hdGNoX21hbmFnZXJfbmV3IChzdGF0ZS0+c3Jj aF9jbnRybHIpOworICAgc3RhdGUtPnNyY2hfdHlwX21uZ3IgPSBwaG90b3Nfc2VhcmNoX3R5cGVf bWFuYWdlcl9uZXcgKCk7CisrICBzdGF0ZS0+cXVldWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9k dXBfc2luZ2xldG9uIChOVUxMLCBOVUxMKTsKKyAKKyAgIHJldHVybiBzdGF0ZTsKKyB9CitAQCAt NjgsNiArNzAsNyBAQCBwaG90b3Nfc2VhcmNoX2NvbnRleHRfc3RhdGVfZnJlZSAoUGhvdG9zU2Vh cmNoQ29udGV4dFN0YXRlICpzdGF0ZSkKKyAgIGdfb2JqZWN0X3VucmVmIChzdGF0ZS0+c3JjaF9t dGNoX21uZ3IpOworICAgZ19vYmplY3RfdW5yZWYgKHN0YXRlLT5zcmNoX3R5cF9tbmdyKTsKKyAg IGdfb2JqZWN0X3VucmVmIChzdGF0ZS0+c3JjaF9jbnRybHIpOworKyAgZ19jbGVhcl9vYmplY3Qg KCZzdGF0ZS0+cXVldWUpOworICAgZ19zbGljZV9mcmVlIChQaG90b3NTZWFyY2hDb250ZXh0U3Rh dGUsIHN0YXRlKTsKKyB9CisgCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4 dC5oIGIvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4dC5oCitpbmRleCAyYWY2Y2Y5Ni4uNWExOGQz ODYgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXNlYXJjaC1jb250ZXh0LmgKKysrKyBiL3NyYy9w aG90b3Mtc2VhcmNoLWNvbnRleHQuaAorQEAgLTQxLDYgKzQxLDcgQEAgc3RydWN0IF9QaG90b3NT ZWFyY2hDb250ZXh0U3RhdGUKKyAgIGdwb2ludGVyIHNyY2hfdHlwX21uZ3I7CisgICBncG9pbnRl ciBvZmZzZXRfY250cmxyOworICAgZ3BvaW50ZXIgc3JjaF9jbnRybHI7CisrICBncG9pbnRlciBx dWV1ZTsKKyB9OworIAorIFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAgICAgICpwaG90b3Nfc2Vh cmNoX2NvbnRleHRfc3RhdGVfbmV3ICAgICAgKFBob3Rvc1NlYXJjaENvbnRleHQgKnNlbGYpOwor ZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuYyBiL3NyYy9waG90 b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuYworaW5kZXggZTZkYzQyOWEuLjJiYTFmZDBmIDEwMDY0 NAorLS0tIGEvc3JjL3Bob3Rvcy1zZWFyY2gtbWF0Y2gtbWFuYWdlci5jCisrKysgYi9zcmMvcGhv dG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmMKK0BAIC0xNDgsNyArMTQ4LDcgQEAgcGhvdG9zX3Nl YXJjaF9tYXRjaF9tYW5hZ2VyX2luaXQgKFBob3Rvc1NlYXJjaE1hdGNoTWFuYWdlciAqc2VsZikK KyAgICAgICAgICAgICAgICAgICAiICB0cmFja2VyOmNhc2UtZm9sZCAodHJhY2tlcjpjb2FsZXNj ZSAobmNvOmZ1bGxuYW1lICg/Y3JlYXRvciksIG5jbzpmdWxsbmFtZSg/cHVibGlzaGVyKSkpLCIK KyAgICAgICAgICAgICAgICAgICAiICBcIiVzXCIpIjsKKyAgIHRpdGxlX2ZpbHRlciA9ICJmbjpj b250YWlucyAoIgorLSAgICAgICAgICAgICAgICAgIiAgdHJhY2tlcjpjYXNlLWZvbGQgKHRyYWNr ZXI6Y29hbGVzY2UgKG5pZTp0aXRsZSAoP3VybiksIG5mbzpmaWxlTmFtZSg/dXJuKSkpLCIKKysg ICAgICAgICAgICAgICAgICIgIHRyYWNrZXI6Y2FzZS1mb2xkICh0cmFja2VyOmNvYWxlc2NlIChu aWU6dGl0bGUgKD91cm4pLCBuZm86ZmlsZU5hbWUoP2ZpbGUpKSksIgorICAgICAgICAgICAgICAg ICAgIiAgXCIlc1wiKSI7CisgCisgICBzZWFyY2hfbWF0Y2ggPSBwaG90b3Nfc2VhcmNoX21hdGNo X25ldyAoUEhPVE9TX1NFQVJDSF9NQVRDSF9TVE9DS19BTEwsCitkaWZmIC0tZ2l0IGEvc3JjL3Bo b3Rvcy1zb3VyY2UuYyBiL3NyYy9waG90b3Mtc291cmNlLmMKK2luZGV4IGRiNmYyZGU5Li41MjE5 NjUyYyAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mtc291cmNlLmMKKysrKyBiL3NyYy9waG90b3Mt c291cmNlLmMKK0BAIC02Miw3ICs2Miw3IEBAIEdfREVGSU5FX1RZUEVfV0lUSF9DT0RFIChQaG90 b3NTb3VyY2UsIHBob3Rvc19zb3VyY2UsIEdfVFlQRV9PQkpFQ1QsCisgRFpMX0RFRklORV9DT1VO VEVSIChpbnN0YW5jZXMsICJQaG90b3NTb3VyY2UiLCAiSW5zdGFuY2VzIiwgIk51bWJlciBvZiBQ aG90b3NTb3VyY2UgaW5zdGFuY2VzIikKKyAKKyAKKy1zdGF0aWMgY29uc3QgZ2NoYXIgKlRSQUNL RVJfU0NIRU1BID0gIm9yZy5mcmVlZGVza3RvcC5UcmFja2VyLk1pbmVyLkZpbGVzIjsKKytzdGF0 aWMgY29uc3QgZ2NoYXIgKlRSQUNLRVJfU0NIRU1BID0gIm9yZy5mcmVlZGVza3RvcC5UcmFja2Vy My5NaW5lci5GaWxlcyI7Cisgc3RhdGljIGNvbnN0IGdjaGFyICpUUkFDS0VSX0tFWV9SRUNVUlNJ VkVfRElSRUNUT1JJRVMgPSAiaW5kZXgtcmVjdXJzaXZlLWRpcmVjdG9yaWVzIjsKKyAKKyAKK0BA IC05NCw3ICs5NCw3IEBAIHBob3Rvc19zb3VyY2VfYnVpbGRfZmlsdGVyX2xvY2FsICh2b2lkKQor ICAgICAgICAgY29udGludWU7CisgCisgICAgICAgdHJhY2tlcl91cmkgPSBwaG90b3NfdXRpbHNf Y29udmVydF9wYXRoX3RvX3VyaSAodHJhY2tlcl9kaXJzW2ldKTsKKy0gICAgICBnX3N0cmluZ19h cHBlbmRfcHJpbnRmICh0cmFja2VyX2ZpbHRlciwgIiB8fCBmbjpjb250YWlucyAobmllOnVybCAo P3VybiksICclcycpIiwgdHJhY2tlcl91cmkpOworKyAgICAgIGdfc3RyaW5nX2FwcGVuZF9wcmlu dGYgKHRyYWNrZXJfZmlsdGVyLCAiIHx8IGZuOmNvbnRhaW5zIChuaWU6aXNTdG9yZWRBcyAoP3Vy biksICclcycpIiwgdHJhY2tlcl91cmkpOworICAgICB9CisgCisgICBwYXRoID0gZ19nZXRfdXNl cl9zcGVjaWFsX2RpciAoR19VU0VSX0RJUkVDVE9SWV9ERVNLVE9QKTsKK0BAIC0xMDksMTEgKzEw OSwxMSBAQCBwaG90b3Nfc291cmNlX2J1aWxkX2ZpbHRlcl9sb2NhbCAodm9pZCkKKyAgIGV4cG9y dF9wYXRoID0gZ19idWlsZF9maWxlbmFtZSAocGF0aCwgUEhPVE9TX0VYUE9SVF9TVUJQQVRILCBO VUxMKTsKKyAgIGV4cG9ydF91cmkgPSBwaG90b3NfdXRpbHNfY29udmVydF9wYXRoX3RvX3VyaSAo ZXhwb3J0X3BhdGgpOworIAorLSAgZmlsdGVyID0gZ19zdHJkdXBfcHJpbnRmICgiKCgoZm46Y29u dGFpbnMgKG5pZTp1cmwgKD91cm4pLCAnJXMnKSIKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIiAgIHx8IGZuOmNvbnRhaW5zIChuaWU6dXJsICg/dXJuKSwgJyVzJykiCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIgICB8fCBmbjpjb250YWlucyAobmllOnVybCAoP3VybiksICcl cycpIgorKyAgZmlsdGVyID0gZ19zdHJkdXBfcHJpbnRmICgiKCgoZm46Y29udGFpbnMgKG5pZTpp c1N0b3JlZEFzICg/dXJuKSwgJyVzJykiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICIg ICB8fCBmbjpjb250YWlucyAobmllOmlzU3RvcmVkQXMgKD91cm4pLCAnJXMnKSIKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIiAgIHx8IGZuOmNvbnRhaW5zIChuaWU6aXNTdG9yZWRBcyAo P3VybiksICclcycpIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgJXMpIgorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiICAmJiAhZm46Y29udGFpbnMgKG5pZTp1cmwgKD91 cm4pLCAnJXMnKSkiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICYmICFmbjpjb250 YWlucyAobmllOmlzU3RvcmVkQXMgKD91cm4pLCAnJXMnKSkiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIgfHwgZm46c3RhcnRzLXdpdGggKG5hbzppZGVudGlmaWVyICg/dXJuKSwgJyVz JykiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgfHwgKD91cm4gPSBuZm86aW1hZ2Ut Y2F0ZWdvcnktc2NyZWVuc2hvdCkpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVz a3RvcF91cmksCitAQCAtMTQ2LDcgKzE0Niw3IEBAIHBob3Rvc19zb3VyY2VfYnVpbGRfZmlsdGVy X3Jlc291cmNlIChQaG90b3NTb3VyY2UgKnNlbGYpCisgCisgICAgICAgcm9vdCA9IGdfbW91bnRf Z2V0X3Jvb3QgKHNlbGYtPm1vdW50KTsKKyAgICAgICB1cmkgPSBnX2ZpbGVfZ2V0X3VyaSAocm9v dCk7CistICAgICAgZmlsdGVyID0gZ19zdHJkdXBfcHJpbnRmICgiKGZuOnN0YXJ0cy13aXRoIChu aWU6dXJsICg/dXJuKSwgJyVzJykpIiwgdXJpKTsKKysgICAgICBmaWx0ZXIgPSBnX3N0cmR1cF9w cmludGYgKCIoZm46c3RhcnRzLXdpdGggKG5pZTppc1N0b3JlZEFzICg/dXJuKSwgJyVzJykpIiwg dXJpKTsKKyAgICAgfQorICAgZWxzZQorICAgICB7CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10 cmFja2VyLWNoYW5nZS1ldmVudC5jIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5j CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IGQ1Yzc0ZWJjLi4wMDAwMDAwMAorLS0t IGEvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5jCisrKysgL2Rldi9udWxsCitAQCAt MSwxMzYgKzAsMCBAQAorLS8qCistICogUGhvdG9zIC0gYWNjZXNzLCBvcmdhbml6ZSBhbmQgc2hh cmUgeW91ciBwaG90b3Mgb24gR05PTUUKKy0gKiBDb3B5cmlnaHQgwqkgMjAxMiDigJMgMjAxOSBS ZWQgSGF0LCBJbmMuCistICoKKy0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorLSAqIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CistICog dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IKKy0gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorLSAqCist ICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCistICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKy0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCistICogR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKy0gKgorLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCistICogYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCistICovCistCistLyogQmFzZWQgb24gY29kZSBmcm9tOgorLSAqICAgKyBEb2N1bWVudHMK Ky0gKi8KKy0KKy0KKy0jaW5jbHVkZSAiY29uZmlnLmgiCistCistI2luY2x1ZGUgInBob3Rvcy10 cmFja2VyLWNoYW5nZS1ldmVudC5oIgorLQorLQorLXN0cnVjdCBfUGhvdG9zVHJhY2tlckNoYW5n ZUV2ZW50CisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50VHlwZSB0eXBlOworLSAgZ2No YXIgKnByZWRpY2F0ZTsKKy0gIGdjaGFyICp1cm47CistICBnaW50MzIgcHJlZGljYXRlX2lkOwor LSAgZ2ludDMyIHVybl9pZDsKKy19OworLQorLQorLXN0YXRpYyBjb25zdCBnY2hhciAqUkRGX1RZ UEUgPSAiaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zI3R5cGUiOwor LQorLQorLXZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZnJlZSAoUGhvdG9zVHJh Y2tlckNoYW5nZUV2ZW50ICpzZWxmKQorLXsKKy0gIGdfZnJlZSAoc2VsZi0+cHJlZGljYXRlKTsK Ky0gIGdfZnJlZSAoc2VsZi0+dXJuKTsKKy0gIGdfc2xpY2VfZnJlZSAoUGhvdG9zVHJhY2tlckNo YW5nZUV2ZW50LCBzZWxmKTsKKy19CistCistCistUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICoK Ky1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfbmV3IChnaW50MzIgdXJuX2lkLCBnaW50MzIg cHJlZGljYXRlX2lkLCBnYm9vbGVhbiBpc19kZWxldGUpCisteworLSAgUGhvdG9zVHJhY2tlckNo YW5nZUV2ZW50ICpzZWxmOworLQorLSAgc2VsZiA9IGdfc2xpY2VfbmV3MCAoUGhvdG9zVHJhY2tl ckNoYW5nZUV2ZW50KTsKKy0gIHNlbGYtPnVybl9pZCA9IHVybl9pZDsKKy0gIHNlbGYtPnByZWRp Y2F0ZV9pZCA9IHByZWRpY2F0ZV9pZDsKKy0KKy0gIGlmIChpc19kZWxldGUpCistICAgIHNlbGYt PnR5cGUgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfREVMRVRFRDsKKy0gIGVsc2UKKy0g ICAgc2VsZi0+dHlwZSA9IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9DUkVBVEVEOworLQor LSAgcmV0dXJuIHNlbGY7CistfQorLQorLQorLVBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqCist cGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2NvcHkgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVu dCAqZXZlbnQpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmOworLQorLSAg c2VsZiA9IGdfc2xpY2VfbmV3MCAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50KTsKKy0gIHNlbGYt PnR5cGUgPSBldmVudC0+dHlwZTsKKy0gIHNlbGYtPnByZWRpY2F0ZSA9IGdfc3RyZHVwIChldmVu dC0+cHJlZGljYXRlKTsKKy0gIHNlbGYtPnVybiA9IGdfc3RyZHVwIChldmVudC0+dXJuKTsKKy0g IHNlbGYtPnByZWRpY2F0ZV9pZCA9IGV2ZW50LT5wcmVkaWNhdGVfaWQ7CistICBzZWxmLT51cm5f aWQgPSBldmVudC0+dXJuX2lkOworLQorLSAgcmV0dXJuIHNlbGY7CistfQorLQorLQorLVBob3Rv c1RyYWNrZXJDaGFuZ2VFdmVudFR5cGUKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0 X3R5cGUgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZikKKy17CistICByZXR1cm4gc2Vs Zi0+dHlwZTsKKy19CistCistCistZ2ludDMyCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50 X2dldF9wcmVkaWNhdGVfaWQgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZikKKy17Cist ICByZXR1cm4gc2VsZi0+cHJlZGljYXRlX2lkOworLX0KKy0KKy0KKy1jb25zdCBnY2hhciAqCist cGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF91cm4gKFBob3Rvc1RyYWNrZXJDaGFuZ2VF dmVudCAqc2VsZikKKy17CistICByZXR1cm4gc2VsZi0+dXJuOworLX0KKy0KKy0KKy1naW50MzIK Ky1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3Vybl9pZCAoUGhvdG9zVHJhY2tlckNo YW5nZUV2ZW50ICpzZWxmKQorLXsKKy0gIHJldHVybiBzZWxmLT51cm5faWQ7CistfQorLQorLQor LXZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfbWVyZ2UgKFBob3Rvc1RyYWNrZXJD aGFuZ2VFdmVudCAqc2VsZiwgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpldmVudCkKKy17Cist ICBnX3JldHVybl9pZl9mYWlsIChnX3N0cmNtcDAgKHNlbGYtPnVybiwgZXZlbnQtPnVybikgPT0g MCk7CistCistICBpZiAoZXZlbnQtPnR5cGUgPT0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5U X0RFTEVURUQgfHwgZXZlbnQtPnR5cGUgPT0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NS RUFURUQpCistICAgIHNlbGYtPnR5cGUgPSBldmVudC0+dHlwZTsKKy19CistCistCistdm9pZAor LXBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9zZXRfcmVzb2x2ZWRfdmFsdWVzIChQaG90b3NU cmFja2VyQ2hhbmdlRXZlbnQgKnNlbGYsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICp1cm4sCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpwcmVkaWNhdGUpCist eworLSAgZ19yZXR1cm5faWZfZmFpbCAoc2VsZi0+cHJlZGljYXRlID09IE5VTEwpOworLSAgZ19y ZXR1cm5faWZfZmFpbCAoc2VsZi0+dXJuID09IE5VTEwpOworLQorLSAgc2VsZi0+dXJuID0gZ19z dHJkdXAgKHVybik7CistICBzZWxmLT5wcmVkaWNhdGUgPSBnX3N0cmR1cCAocHJlZGljYXRlKTsK Ky0KKy0gIGlmIChnX3N0cmNtcDAgKHByZWRpY2F0ZSwgUkRGX1RZUEUpICE9IDApCistICAgIHNl bGYtPnR5cGUgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfQ0hBTkdFRDsKKy19CitkaWZm IC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oIGIvc3JjL3Bob3Rvcy10 cmFja2VyLWNoYW5nZS1ldmVudC5oCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IGVl ZTRmNDBjLi4wMDAwMDAwMAorLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5o CisrKysgL2Rldi9udWxsCitAQCAtMSw2NCArMCwwIEBACistLyoKKy0gKiBQaG90b3MgLSBhY2Nl c3MsIG9yZ2FuaXplIGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRQorLSAqIENvcHlyaWdo dCDCqSAyMDEyIOKAkyAyMDE5IFJlZCBIYXQsIEluYy4KKy0gKgorLSAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cist ICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKKy0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIg dmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCistICoKKy0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLSAqIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy0gKiBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLSAqCistICogWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKy0gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKy0gKi8KKy0KKy0vKiBCYXNlZCBvbiBjb2RlIGZyb206 CistICogICArIERvY3VtZW50cworLSAqLworLQorLSNpZm5kZWYgUEhPVE9TX1RSQUNLRVJfQ0hB TkdFX0VWRU5UX0gKKy0jZGVmaW5lIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9ICistCist I2luY2x1ZGUgPGdsaWIuaD4KKy0KKy1HX0JFR0lOX0RFQ0xTCistCistdHlwZWRlZiBlbnVtCist eworLSAgUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NIQU5HRUQsCistICBQSE9UT1NfVFJB Q0tFUl9DSEFOR0VfRVZFTlRfQ1JFQVRFRCwKKy0gIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVO VF9ERUxFVEVECistfSBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnRUeXBlOworLQorLXR5cGVkZWYg c3RydWN0IF9QaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50 OworLQorLVBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAgKnBob3Rvc190cmFja2VyX2NoYW5nZV9l dmVudF9uZXcgICAgICAgIChnaW50MzIgdXJuX2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50MzIgcHJlZGlj YXRlX2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBpc19kZWxldGUpOworLQorLVBob3Rvc1RyYWNr ZXJDaGFuZ2VFdmVudCAgKnBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9jb3B5ICAgICAgIChQ aG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKmV2ZW50KTsKKy0KKy12b2lkICAgICAgICAgICAgICAg ICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZnJlZSAgICAgICAoUGhvdG9zVHJh Y2tlckNoYW5nZUV2ZW50ICpzZWxmKTsKKy0KKy1QaG90b3NUcmFja2VyQ2hhbmdlRXZlbnRUeXBl IHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9nZXRfdHlwZSAoUGhvdG9zVHJhY2tlckNoYW5n ZUV2ZW50ICpzZWxmKTsKKy0KKy1naW50MzIgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJh Y2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3ByZWRpY2F0ZV9pZCAoUGhvdG9zVHJhY2tlckNoYW5nZUV2 ZW50ICpzZWxmKTsKKy0KKy1jb25zdCBnY2hhciAgICAgICAgICAgICAgICpwaG90b3NfdHJhY2tl cl9jaGFuZ2VfZXZlbnRfZ2V0X3VybiAgICAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxm KTsKKy0KKy1naW50MzIgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2Vf ZXZlbnRfZ2V0X3Vybl9pZCAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKTsKKy0KKy12 b2lkICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfbWVy Z2UgICAgICAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaG90 b3NUcmFja2VyQ2hhbmdlRXZlbnQgKmV2ZW50KTsKKy0KKy12b2lkICAgICAgICAgICAgICAgICAg ICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfc2V0X3Jlc29sdmVkX3ZhbHVlcyAoUGhv dG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn Y2hhciAqdXJuLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqcHJlZGljYXRlKTsK Ky0KKy1HX0VORF9ERUNMUworLQorLSNlbmRpZiAvKiBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZF TlRfSCAqLworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5j IGIvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmMKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMmU5ODEwYWEuLjAwMDAwMDAwCistLS0gYS9zcmMvcGhvdG9zLXRyYWNr ZXItY2hhbmdlLW1vbml0b3IuYworKysrIC9kZXYvbnVsbAorQEAgLTEsNDY4ICswLDAgQEAKKy0v KgorLSAqIFBob3RvcyAtIGFjY2Vzcywgb3JnYW5pemUgYW5kIHNoYXJlIHlvdXIgcGhvdG9zIG9u IEdOT01FCistICogQ29weXJpZ2h0IMKpIDIwMTIg4oCTIDIwMTkgUmVkIEhhdCwgSW5jLgorLSAq CistICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKy0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorLSAqIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCistICogKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy0gKgorLSAqIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorLSAqIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCistICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorLSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCistICoKKy0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLSAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorLSAqLworLQorLS8q IEJhc2VkIG9uIGNvZGUgZnJvbToKKy0gKiAgICsgRG9jdW1lbnRzCistICovCistCistCistI2lu Y2x1ZGUgImNvbmZpZy5oIgorLQorLSNpbmNsdWRlIDxnbGliLmg+CistI2luY2x1ZGUgPHRyYWNr ZXItc3BhcnFsLmg+CistCistI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5o IgorLSNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5oIgorLSNpbmNsdWRl ICJwaG90b3MtdHJhY2tlci1xdWV1ZS5oIgorLSNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1yZXNv dXJjZXMuaCIKKy0jaW5jbHVkZSAicGhvdG9zLXF1ZXJ5LmgiCistCistCistc3RydWN0IF9QaG90 b3NUcmFja2VyQ2hhbmdlTW9uaXRvcgorLXsKKy0gIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOwor LSAgR0hhc2hUYWJsZSAqcGVuZGluZ19jaGFuZ2VzOworLSAgR0hhc2hUYWJsZSAqdW5yZXNvbHZl ZF9pZHM7CistICBHUXVldWUgKnBlbmRpbmdfZXZlbnRzOworLSAgUGhvdG9zVHJhY2tlclF1ZXVl ICpxdWV1ZTsKKy0gIFRyYWNrZXJSZXNvdXJjZXMgKnJlc291cmNlX3NlcnZpY2U7CistICBndWlu dCBvdXRzdGFuZGluZ19vcHM7CistICBndWludCBwZW5kaW5nX2V2ZW50c19pZDsKKy19OworLQor LWVudW0KKy17CistICBDSEFOR0VTX1BFTkRJTkcsCistICBMQVNUX1NJR05BTAorLX07CistCist c3RhdGljIGd1aW50IHNpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwIH07CistCistc3RhdGljIHZv aWQgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0lu aXRhYmxlSWZhY2UgKmlmYWNlKTsKKy0KKy0KKy1HX0RFRklORV9UWVBFX0VYVEVOREVEIChQaG90 b3NUcmFja2VyQ2hhbmdlTW9uaXRvciwgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3IsIEdf VFlQRV9PQkpFQ1QsIDAsCistICAgICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5U RVJGQUNFIChHX1RZUEVfSU5JVEFCTEUsIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2lu aXRhYmxlX2lmYWNlX2luaXQpKTsKKy0KKy0KKy1lbnVtCisteworLSAgQ0hBTkdFX01PTklUT1Jf VElNRU9VVCA9IDUwMCwgLyogbXMgKi8KKy0gIENIQU5HRV9NT05JVE9SX01BWF9JVEVNUyA9IDUw MAorLX07CistCistCistdHlwZWRlZiBzdHJ1Y3QgX1Bob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9y UXVlcnlEYXRhIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhOworLXR5cGVkZWYg c3RydWN0IF9UcmFja2VyUmVzb3VyY2VzRXZlbnQgVHJhY2tlclJlc291cmNlc0V2ZW50OworLQor LXN0cnVjdCBfUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEKKy17CistICBQaG90 b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZjsKKy0gIEdIYXNoVGFibGUgKmlkX3RhYmxlOwor LSAgR1F1ZXVlICpldmVudHM7CistfTsKKy0KKy1zdHJ1Y3QgX1RyYWNrZXJSZXNvdXJjZXNFdmVu dAorLXsKKy0gIGdpbnQzMiBncmFwaDsKKy0gIGdpbnQzMiBzdWJqZWN0OworLSAgZ2ludDMyIHBy ZWRpY2F0ZTsKKy0gIGdpbnQzMiBvYmplY3Q7CistfTsKKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBo b3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5X2RhdGFfZnJlZSAoUGhvdG9zVHJhY2tl ckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGEpCisteworLSAgZ19jbGVhcl9vYmplY3QgKCZk YXRhLT5zZWxmKTsKKy0KKy0gIGlmIChkYXRhLT5pZF90YWJsZSAhPSBOVUxMKQorLSAgICBnX2hh c2hfdGFibGVfdW5yZWYgKGRhdGEtPmlkX3RhYmxlKTsKKy0KKy0gIGlmIChkYXRhLT5ldmVudHMg IT0gTlVMTCkKKy0gICAgZ19xdWV1ZV9mcmVlX2Z1bGwgKGRhdGEtPmV2ZW50cywgKEdEZXN0cm95 Tm90aWZ5KSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZnJlZSk7CistCistICBnX3NsaWNl X2ZyZWUgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhLCBkYXRhKTsKKy19Cist CistCistc3RhdGljIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICoKKy1waG90 b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9xdWVyeV9kYXRhX25ldyAoUGhvdG9zVHJhY2tlckNo YW5nZU1vbml0b3IgKnNlbGYsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdIYXNoVGFibGUgKmlkX3RhYmxlLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHUXVldWUgKmV2ZW50cykKKy17CistICBQaG90b3NUcmFj a2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSAqZGF0YTsKKy0KKy0gIGRhdGEgPSBnX3NsaWNlX25l dzAgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhKTsKKy0gIGRhdGEtPnNlbGYg PSBnX29iamVjdF9yZWYgKHNlbGYpOworLSAgZGF0YS0+aWRfdGFibGUgPSBpZF90YWJsZTsKKy0g IGRhdGEtPmV2ZW50cyA9IGV2ZW50czsKKy0KKy0gIHJldHVybiBkYXRhOworLX0KKy0KKy0KKy1z dGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2FkZF9ldmVudCAoUGhv dG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYsIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAq Y2hhbmdlX2V2ZW50KQorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqb2xkX2NoYW5n ZV9ldmVudDsKKy0gIGNvbnN0IGdjaGFyICp1cm47CistCistICB1cm4gPSBwaG90b3NfdHJhY2tl cl9jaGFuZ2VfZXZlbnRfZ2V0X3VybiAoY2hhbmdlX2V2ZW50KTsKKy0gIG9sZF9jaGFuZ2VfZXZl bnQgPSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICopIGdfaGFzaF90YWJsZV9sb29rdXAgKHNl bGYtPnBlbmRpbmdfY2hhbmdlcywgdXJuKTsKKy0KKy0gIGlmIChvbGRfY2hhbmdlX2V2ZW50ICE9 IE5VTEwpCistICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9tZXJnZSAob2xkX2NoYW5n ZV9ldmVudCwgY2hhbmdlX2V2ZW50KTsKKy0gIGVsc2UKKy0gICAgZ19oYXNoX3RhYmxlX2luc2Vy dCAoc2VsZi0+cGVuZGluZ19jaGFuZ2VzLCBnX3N0cmR1cCAodXJuKSwgcGhvdG9zX3RyYWNrZXJf Y2hhbmdlX2V2ZW50X2NvcHkgKGNoYW5nZV9ldmVudCkpOworLX0KKy0KKy0KKy1zdGF0aWMgdm9p ZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3JlbW92ZV90aW1lb3V0IChQaG90b3NU cmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZikKKy17CistICBpZiAoc2VsZi0+cGVuZGluZ19ldmVu dHNfaWQgIT0gMCkKKy0gICAgeworLSAgICAgIGdfc291cmNlX3JlbW92ZSAoc2VsZi0+cGVuZGlu Z19ldmVudHNfaWQpOworLSAgICAgIHNlbGYtPnBlbmRpbmdfZXZlbnRzX2lkID0gMDsKKy0gICAg fQorLX0KKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9y X3NlbmRfZXZlbnRzIChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZiwgR0hhc2hUYWJs ZSAqaWRfdGFibGUsIEdRdWV1ZSAqZXZlbnRzKQorLXsKKy0gIEdMaXN0ICpsOworLQorLSAgZm9y IChsID0gZXZlbnRzLT5oZWFkOyBsICE9IE5VTEw7IGwgPSBsLT5uZXh0KQorLSAgICB7CistICAg ICAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpjaGFuZ2VfZXZlbnQgPSAoUGhvdG9zVHJhY2tl ckNoYW5nZUV2ZW50ICopIGwtPmRhdGE7CistICAgICAgY29uc3QgZ2NoYXIgKnByZWRpY2F0ZTsK Ky0gICAgICBjb25zdCBnY2hhciAqdXJuOworLSAgICAgIGdpbnQzMiBwcmVkaWNhdGVfaWQ7Cist ICAgICAgZ2ludDMyIHVybl9pZDsKKy0KKy0gICAgICBwcmVkaWNhdGVfaWQgPSBwaG90b3NfdHJh Y2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3ByZWRpY2F0ZV9pZCAoY2hhbmdlX2V2ZW50KTsKKy0gICAg ICB1cm5faWQgPSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3Vybl9pZCAoY2hhbmdl X2V2ZW50KTsKKy0KKy0gICAgICBwcmVkaWNhdGUgPSAoZ2NoYXIgKikgZ19oYXNoX3RhYmxlX2xv b2t1cCAoaWRfdGFibGUsIEdJTlRfVE9fUE9JTlRFUiAocHJlZGljYXRlX2lkKSk7CistICAgICAg aWYgKEdfVU5MSUtFTFkgKHByZWRpY2F0ZSA9PSBOVUxMKSkKKy0gICAgICAgIGNvbnRpbnVlOwor LQorLSAgICAgIHVybiA9IChnY2hhciAqKSBnX2hhc2hfdGFibGVfbG9va3VwIChpZF90YWJsZSwg R0lOVF9UT19QT0lOVEVSICh1cm5faWQpKTsKKy0gICAgICBpZiAoR19VTkxJS0VMWSAodXJuID09 IE5VTEwpKQorLSAgICAgICAgY29udGludWU7CistCistICAgICAgcGhvdG9zX3RyYWNrZXJfY2hh bmdlX2V2ZW50X3NldF9yZXNvbHZlZF92YWx1ZXMgKGNoYW5nZV9ldmVudCwgdXJuLCBwcmVkaWNh dGUpOworLSAgICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2FkZF9ldmVudCAoc2Vs ZiwgY2hhbmdlX2V2ZW50KTsKKy0gICAgfQorLQorLSAgZ19zaWduYWxfZW1pdCAoc2VsZiwgc2ln bmFsc1tDSEFOR0VTX1BFTkRJTkddLCAwLCBzZWxmLT5wZW5kaW5nX2NoYW5nZXMpOworLSAgZ19o YXNoX3RhYmxlX3JlbW92ZV9hbGwgKHNlbGYtPnBlbmRpbmdfY2hhbmdlcyk7CistfQorLQorLQor LXN0YXRpYyB2b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfY3Vyc29yX25leHQg KEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2Vy X2RhdGEpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGEg PSAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKikgdXNlcl9kYXRhOworLSAg UGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYgPSBkYXRhLT5zZWxmOworLSAgVHJhY2tl clNwYXJxbEN1cnNvciAqY3Vyc29yID0gVFJBQ0tFUl9TUEFSUUxfQ1VSU09SIChzb3VyY2Vfb2Jq ZWN0KTsKKy0gIEdIYXNoVGFibGVJdGVyIGl0ZXI7CistICBnYm9vbGVhbiB2YWxpZDsKKy0KKy0g IHsKKy0gICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKKy0KKy0gICAgdmFsaWQg PSB0cmFja2VyX3NwYXJxbF9jdXJzb3JfbmV4dF9maW5pc2ggKGN1cnNvciwgcmVzLCAmZXJyb3Ip OworLSAgICBpZiAoZXJyb3IgIT0gTlVMTCkKKy0gICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8g cmVzb2x2ZSBpdGVtIFVSTnMgZm9yIGdyYXBoIGNoYW5nZXM6ICVzIiwgZXJyb3ItPm1lc3NhZ2Up OworLSAgfQorLQorLSAgaWYgKHZhbGlkKQorLSAgICB7CistICAgICAgZ3VpbnQgaWR4OworLQor LSAgICAgIGlkeCA9IDA7CistICAgICAgZ19oYXNoX3RhYmxlX2l0ZXJfaW5pdCAoJml0ZXIsIGRh dGEtPmlkX3RhYmxlKTsKKy0gICAgICB3aGlsZSAoZ19oYXNoX3RhYmxlX2l0ZXJfbmV4dCAoJml0 ZXIsIE5VTEwsIE5VTEwpKQorLSAgICAgICAgeworLSAgICAgICAgICBjb25zdCBnY2hhciAqc3Ry OworLQorLSAgICAgICAgICBzdHIgPSB0cmFja2VyX3NwYXJxbF9jdXJzb3JfZ2V0X3N0cmluZyAo Y3Vyc29yLCBpZHgsIE5VTEwpOworLSAgICAgICAgICBnX2hhc2hfdGFibGVfaXRlcl9yZXBsYWNl ICgmaXRlciwgZ19zdHJkdXAgKHN0cikpOworLSAgICAgICAgICBpZHgrKzsKKy0gICAgICAgIH0K Ky0KKy0gICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9zZW5kX2V2ZW50cyAoc2Vs ZiwgZGF0YS0+aWRfdGFibGUsIGRhdGEtPmV2ZW50cyk7CistICAgIH0KKy0KKy0gIHRyYWNrZXJf c3BhcnFsX2N1cnNvcl9jbG9zZSAoY3Vyc29yKTsKKy0gIHBob3Rvc190cmFja2VyX2NoYW5nZV9t b25pdG9yX3F1ZXJ5X2RhdGFfZnJlZSAoZGF0YSk7CistfQorLQorLQorLXN0YXRpYyB2b2lkCist cGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcXVlcnlfZXhlY3V0ZWQgKEdPYmplY3QgKnNv dXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCistewor LSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGEgPSAoUGhvdG9zVHJh Y2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKikgdXNlcl9kYXRhOworLSAgVHJhY2tlclNwYXJx bENvbm5lY3Rpb24gKmNvbm5lY3Rpb24gPSBUUkFDS0VSX1NQQVJRTF9DT05ORUNUSU9OIChzb3Vy Y2Vfb2JqZWN0KTsKKy0gIFRyYWNrZXJTcGFycWxDdXJzb3IgKmN1cnNvcjsgLyogVE9ETzogVXNl IGdfYXV0b3B0ciAqLworLQorLSAgeworLSAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBO VUxMOworLQorLSAgICBjdXJzb3IgPSB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX3F1ZXJ5X2Zp bmlzaCAoY29ubmVjdGlvbiwgcmVzLCAmZXJyb3IpOworLSAgICBpZiAoZXJyb3IgIT0gTlVMTCkK Ky0gICAgICB7CistICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gcmVzb2x2ZSBpdGVtIFVS TnMgZm9yIGdyYXBoIGNoYW5nZXM6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworLSAgICAgICAgcGhv dG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcXVlcnlfZGF0YV9mcmVlIChkYXRhKTsKKy0gICAg ICAgIHJldHVybjsKKy0gICAgICB9CistICB9CistCistICB0cmFja2VyX3NwYXJxbF9jdXJzb3Jf bmV4dF9hc3luYyAoY3Vyc29yLCBOVUxMLCBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9j dXJzb3JfbmV4dCwgZGF0YSk7CistICBnX29iamVjdF91bnJlZiAoY3Vyc29yKTsKKy19CistCist Cistc3RhdGljIGdib29sZWFuCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcHJvY2Vz c19ldmVudHMgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmKQorLXsKKy0gIEdIYXNo VGFibGUgKmlkX3RhYmxlOworLSAgR0hhc2hUYWJsZUl0ZXIgaXRlcjsKKy0gIEdRdWV1ZSAqZXZl bnRzOworLSAgZ19hdXRvcHRyIChHU3RyaW5nKSBzcGFycWwgPSBOVUxMOworLSAgUGhvdG9zVHJh Y2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGE7CistICBnX2F1dG9wdHIgKFBob3Rvc1F1 ZXJ5KSBxdWVyeSA9IE5VTEw7CistICBncG9pbnRlciBpZDsKKy0KKy0gIGV2ZW50cyA9IHNlbGYt PnBlbmRpbmdfZXZlbnRzOworLSAgc2VsZi0+cGVuZGluZ19ldmVudHMgPSBnX3F1ZXVlX25ldyAo KTsKKy0KKy0gIGlkX3RhYmxlID0gc2VsZi0+dW5yZXNvbHZlZF9pZHM7CistICBzZWxmLT51bnJl c29sdmVkX2lkcyA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbCAoZ19kaXJlY3RfaGFzaCwgZ19kaXJl Y3RfZXF1YWwsIE5VTEwsIGdfZnJlZSk7CistCistICBzZWxmLT5wZW5kaW5nX2V2ZW50c19pZCA9 IDA7CistCistICBzcGFycWwgPSBnX3N0cmluZ19uZXcgKCJTRUxFQ1QiKTsKKy0KKy0gIGdfaGFz aF90YWJsZV9pdGVyX2luaXQgKCZpdGVyLCBpZF90YWJsZSk7CistICB3aGlsZSAoZ19oYXNoX3Rh YmxlX2l0ZXJfbmV4dCAoJml0ZXIsICZpZCwgTlVMTCkpCistICAgIGdfc3RyaW5nX2FwcGVuZF9w cmludGYgKHNwYXJxbCwgIiB0cmFja2VyOnVyaSglZCkiLCBHUE9JTlRFUl9UT19JTlQgKGlkKSk7 CistCistICBnX3N0cmluZ19hcHBlbmQgKHNwYXJxbCwgIiB7fSIpOworLQorLSAgcXVlcnkgPSBw aG90b3NfcXVlcnlfbmV3IChOVUxMLCBzcGFycWwtPnN0cik7CistCistICBkYXRhID0gcGhvdG9z X3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcXVlcnlfZGF0YV9uZXcgKHNlbGYsIGlkX3RhYmxlLCBl dmVudHMpOworLSAgcGhvdG9zX3RyYWNrZXJfcXVldWVfc2VsZWN0IChzZWxmLT5xdWV1ZSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnksCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rv c190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5X2V4ZWN1dGVkLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMKTsKKy0KKy0gIHJldHVybiBHX1NPVVJDRV9SRU1PVkU7CistfQorLQorLQorLXN0YXRpYyB2 b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfYWRkX3BlbmRpbmdfZXZlbnQgKFBo b3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUcmFja2VyUmVzb3VyY2VzRXZlbnQgKmV2 ZW50LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn Ym9vbGVhbiBpc19kZWxldGUpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpjaGFu Z2VfZXZlbnQ7CistCistICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9yZW1vdmVfdGlt ZW91dCAoc2VsZik7CistCistICBnX2hhc2hfdGFibGVfaW5zZXJ0IChzZWxmLT51bnJlc29sdmVk X2lkcywgR0lOVF9UT19QT0lOVEVSIChldmVudC0+c3ViamVjdCksIE5VTEwpOworLSAgZ19oYXNo X3RhYmxlX2luc2VydCAoc2VsZi0+dW5yZXNvbHZlZF9pZHMsIEdJTlRfVE9fUE9JTlRFUiAoZXZl bnQtPnByZWRpY2F0ZSksIE5VTEwpOworLQorLSAgY2hhbmdlX2V2ZW50ID0gcGhvdG9zX3RyYWNr ZXJfY2hhbmdlX2V2ZW50X25ldyAoZXZlbnQtPnN1YmplY3QsIGV2ZW50LT5wcmVkaWNhdGUsIGlz X2RlbGV0ZSk7CistICBnX3F1ZXVlX3B1c2hfdGFpbCAoc2VsZi0+cGVuZGluZ19ldmVudHMsIGNo YW5nZV9ldmVudCk7CistCistICBpZiAoc2VsZi0+cGVuZGluZ19ldmVudHMtPmxlbmd0aCA+PSBD SEFOR0VfTU9OSVRPUl9NQVhfSVRFTVMpCistICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25p dG9yX3Byb2Nlc3NfZXZlbnRzIChzZWxmKTsKKy0gIGVsc2UKKy0gICAgc2VsZi0+cGVuZGluZ19l dmVudHNfaWQgPSBnX3RpbWVvdXRfYWRkIChDSEFOR0VfTU9OSVRPUl9USU1FT1VULAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHU291cmNlRnVuYykgcGhv dG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcHJvY2Vzc19ldmVudHMsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZik7CistfQorLQorLQorLXN0YXRp YyB2b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfZ3JhcGhfdXBkYXRlZCAoVHJh Y2tlclJlc291cmNlcyAqcmVzb3VyY2Vfc2VydmljZSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqY2xhc3NfbmFtZSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAqZGVsZXRlX2V2 ZW50cywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFy aWFudCAqaW5zZXJ0X2V2ZW50cywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5n ZU1vbml0b3IgKnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiAodXNlcl9kYXRh KTsKKy0gIGNvbnN0IFRyYWNrZXJSZXNvdXJjZXNFdmVudCAqZXZlbnRzOworLSAgZ3NpemUgaTsK Ky0gIGdzaXplIG5fZWxlbWVudHM7CistCistICBldmVudHMgPSAoY29uc3QgVHJhY2tlclJlc291 cmNlc0V2ZW50ICopIGdfdmFyaWFudF9nZXRfZml4ZWRfYXJyYXkgKGRlbGV0ZV9ldmVudHMsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZuX2VsZW1lbnRzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKFRyYWNrZXJS ZXNvdXJjZXNFdmVudCkpOworLSAgZm9yIChpID0gMDsgaSA8IG5fZWxlbWVudHM7IGkrKykKKy0g ICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfYWRkX3BlbmRpbmdfZXZlbnQgKHNlbGYs ICZldmVudHNbaV0sIFRSVUUpOworLQorLSAgZXZlbnRzID0gKGNvbnN0IFRyYWNrZXJSZXNvdXJj ZXNFdmVudCAqKSBnX3ZhcmlhbnRfZ2V0X2ZpeGVkX2FycmF5IChpbnNlcnRfZXZlbnRzLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmbl9lbGVtZW50cywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChUcmFja2VyUmVz b3VyY2VzRXZlbnQpKTsKKy0gIGZvciAoaSA9IDA7IGkgPCBuX2VsZW1lbnRzOyBpKyspCistICAg IHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2FkZF9wZW5kaW5nX2V2ZW50IChzZWxmLCAm ZXZlbnRzW2ldLCBGQUxTRSk7CistfQorLQorLQorLXN0YXRpYyBHT2JqZWN0ICoKKy1waG90b3Nf dHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9jb25zdHJ1Y3RvciAoR1R5cGUgdHlwZSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgbl9jb25zdHJ1Y3RfcGFy YW1zLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHT2JqZWN0 Q29uc3RydWN0UGFyYW0gKmNvbnN0cnVjdF9wYXJhbXMpCisteworLSAgc3RhdGljIEdPYmplY3Qg KnNlbGYgPSBOVUxMOworLQorLSAgaWYgKHNlbGYgPT0gTlVMTCkKKy0gICAgeworLSAgICAgIHNl bGYgPSBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcGFyZW50 X2NsYXNzKS0+Y29uc3RydWN0b3IgKHR5cGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbl9jb25zdHJ1Y3RfcGFyYW1zLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0cnVjdF9wYXJhbXMpOworLSAgICAgIGdfb2JqZWN0X2FkZF93ZWFrX3BvaW50ZXIgKHNlbGYs IChncG9pbnRlcikgJnNlbGYpOworLSAgICAgIHJldHVybiBzZWxmOworLSAgICB9CistCistICBy ZXR1cm4gZ19vYmplY3RfcmVmIChzZWxmKTsKKy19CistCistCistc3RhdGljIHZvaWQKKy1waG90 b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9kaXNwb3NlIChHT2JqZWN0ICpvYmplY3QpCistewor LSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9DSEFO R0VfTU9OSVRPUiAob2JqZWN0KTsKKy0KKy0gIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9y X3JlbW92ZV90aW1lb3V0IChzZWxmKTsKKy0KKy0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+cXVl dWUpOworLSAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5yZXNvdXJjZV9zZXJ2aWNlKTsKKy0KKy0g IEdfT0JKRUNUX0NMQVNTIChwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9wYXJlbnRfY2xh c3MpLT5kaXNwb3NlIChvYmplY3QpOworLX0KKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc190 cmFja2VyX2NoYW5nZV9tb25pdG9yX2ZpbmFsaXplIChHT2JqZWN0ICpvYmplY3QpCisteworLSAg UGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0Vf TU9OSVRPUiAob2JqZWN0KTsKKy0KKy0gIGdfaGFzaF90YWJsZV91bnJlZiAoc2VsZi0+cGVuZGlu Z19jaGFuZ2VzKTsKKy0gIGdfaGFzaF90YWJsZV91bnJlZiAoc2VsZi0+dW5yZXNvbHZlZF9pZHMp OworLQorLSAgZ19xdWV1ZV9mcmVlX2Z1bGwgKHNlbGYtPnBlbmRpbmdfZXZlbnRzLCAoR0Rlc3Ry b3lOb3RpZnkpIHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9mcmVlKTsKKy0KKy0gIEdfT0JK RUNUX0NMQVNTIChwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9wYXJlbnRfY2xhc3MpLT5m aW5hbGl6ZSAob2JqZWN0KTsKKy19CistCistCistc3RhdGljIHZvaWQKKy1waG90b3NfdHJhY2tl cl9jaGFuZ2VfbW9uaXRvcl9pbml0IChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZikK Ky17CistICBzZWxmLT5wZW5kaW5nX2NoYW5nZXMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwgKGdf c3RyX2hhc2gsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdfc3RyX2VxdWFsLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnX2ZyZWUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChHRGVzdHJveU5vdGlmeSkgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50 X2ZyZWUpOworLQorLSAgc2VsZi0+dW5yZXNvbHZlZF9pZHMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1 bGwgKGdfZGlyZWN0X2hhc2gsIGdfZGlyZWN0X2VxdWFsLCBOVUxMLCBnX2ZyZWUpOworLQorLSAg c2VsZi0+cGVuZGluZ19ldmVudHMgPSBnX3F1ZXVlX25ldyAoKTsKKy19CistCistCistc3RhdGlj IHZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9jbGFzc19pbml0IChQaG90b3NU cmFja2VyQ2hhbmdlTW9uaXRvckNsYXNzICpjbGFzcykKKy17CistICBHT2JqZWN0Q2xhc3MgKm9i amVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChjbGFzcyk7CistCistICBvYmplY3RfY2xhc3Mt PmNvbnN0cnVjdG9yID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfY29uc3RydWN0b3I7 CistICBvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRv cl9kaXNwb3NlOworLSAgb2JqZWN0X2NsYXNzLT5maW5hbGl6ZSA9IHBob3Rvc190cmFja2VyX2No YW5nZV9tb25pdG9yX2ZpbmFsaXplOworLQorLSAgc2lnbmFsc1tDSEFOR0VTX1BFTkRJTkddID0g Z19zaWduYWxfbmV3ICgiY2hhbmdlcy1wZW5kaW5nIiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MgKGNsYXNzKSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIC8qYWNjdW11bGF0b3IgKi8K Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgLyphY2N1 X2RhdGEgKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19j Y2xvc3VyZV9tYXJzaGFsX1ZPSURfX0JPWEVELAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHX1RZUEVfTk9ORSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR19UWVBFX0hBU0hfVEFCTEUpOworLX0KKy0KKy0KKy1zdGF0aWMgZ2Jvb2xlYW4K Ky1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9pbml0YWJsZV9pbml0IChHSW5pdGFibGUg KmluaXRhYmxlLCBHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLCBHRXJyb3IgKiplcnJvcikKKy17 CistICBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZiA9IFBIT1RPU19UUkFDS0VSX0NI QU5HRV9NT05JVE9SIChpbml0YWJsZSk7CistICBnYm9vbGVhbiByZXRfdmFsID0gVFJVRTsKKy0K Ky0gIGlmIChHX0xJS0VMWSAoc2VsZi0+cXVldWUgIT0gTlVMTCAmJiBzZWxmLT5yZXNvdXJjZV9z ZXJ2aWNlICE9IE5VTEwpKQorLSAgICBnb3RvIG91dDsKKy0KKy0gIHNlbGYtPnF1ZXVlID0gcGhv dG9zX3RyYWNrZXJfcXVldWVfZHVwX3NpbmdsZXRvbiAoY2FuY2VsbGFibGUsIGVycm9yKTsKKy0g IGlmIChHX1VOTElLRUxZIChzZWxmLT5xdWV1ZSA9PSBOVUxMKSkKKy0gICAgeworLSAgICAgIHJl dF92YWwgPSBGQUxTRTsKKy0gICAgICBnb3RvIG91dDsKKy0gICAgfQorLQorLSAgc2VsZi0+cmVz b3VyY2Vfc2VydmljZSA9IHRyYWNrZXJfcmVzb3VyY2VzX3Byb3h5X25ld19mb3JfYnVzX3N5bmMg KEdfQlVTX1RZUEVfU0VTU0lPTiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfUFJPWFlfRkxBR1NfTk9O RSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxIiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiL29yZy9mcmVlZGVza3RvcC9UcmFja2VyMS9SZXNvdXJjZXMiLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh bmNlbGxhYmxlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKTsKKy0gIGlmIChHX1VOTElLRUxZIChzZWxm LT5yZXNvdXJjZV9zZXJ2aWNlID09IE5VTEwpKQorLSAgICB7CistICAgICAgcmV0X3ZhbCA9IEZB TFNFOworLSAgICAgIGdvdG8gb3V0OworLSAgICB9CistCistICBnX3NpZ25hbF9jb25uZWN0IChz ZWxmLT5yZXNvdXJjZV9zZXJ2aWNlLAorLSAgICAgICAgICAgICAgICAgICAgImdyYXBoLXVwZGF0 ZWQiLAorLSAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAocGhvdG9zX3RyYWNrZXJfY2hh bmdlX21vbml0b3JfZ3JhcGhfdXBkYXRlZCksCistICAgICAgICAgICAgICAgICAgICBzZWxmKTsK Ky0KKy0gb3V0OgorLSAgcmV0dXJuIHJldF92YWw7CistfQorLQorLQorLXN0YXRpYyB2b2lkCist cGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRh YmxlSWZhY2UgKmlmYWNlKQorLXsKKy0gIGlmYWNlLT5pbml0ID0gcGhvdG9zX3RyYWNrZXJfY2hh bmdlX21vbml0b3JfaW5pdGFibGVfaW5pdDsKKy19CistCistCistUGhvdG9zVHJhY2tlckNoYW5n ZU1vbml0b3IgKgorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2R1cF9zaW5nbGV0b24g KEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUsIEdFcnJvciAqKmVycm9yKQorLXsKKy0gIHJldHVy biBnX2luaXRhYmxlX25ldyAoUEhPVE9TX1RZUEVfVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiwgY2Fu Y2VsbGFibGUsIGVycm9yLCBOVUxMKTsKKy19CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFj a2VyLWNoYW5nZS1tb25pdG9yLmggYi9zcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3Iu aAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCA5NzQwYjA0Ni4uMDAwMDAwMDAKKy0t LSBhL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5oCisrKysgL2Rldi9udWxsCitA QCAtMSw0MiArMCwwIEBACistLyoKKy0gKiBQaG90b3MgLSBhY2Nlc3MsIG9yZ2FuaXplIGFuZCBz aGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRQorLSAqIENvcHlyaWdodCDCqSAyMDEyIOKAkyAyMDE5 IFJlZCBIYXQsIEluYy4KKy0gKgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CistICogaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKy0g KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBM aWNlbnNlLCBvcgorLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCistICoK Ky0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKy0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy0gKiBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLSAqCistICogWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy0gKiBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KKy0gKi8KKy0KKy0vKiBCYXNlZCBvbiBjb2RlIGZyb206CistICogICArIERvY3VtZW50 cworLSAqLworLQorLSNpZm5kZWYgUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX01PTklUT1JfSAorLSNk ZWZpbmUgUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX01PTklUT1JfSAorLQorLSNpbmNsdWRlIDxnaW8v Z2lvLmg+CistCistR19CRUdJTl9ERUNMUworLQorLSNkZWZpbmUgUEhPVE9TX1RZUEVfVFJBQ0tF Ul9DSEFOR0VfTU9OSVRPUiAocGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfZ2V0X3R5cGUg KCkpCistR19ERUNMQVJFX0ZJTkFMX1RZUEUgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yLAor LSAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvciwKKy0g ICAgICAgICAgICAgICAgICAgICAgUEhPVE9TLAorLSAgICAgICAgICAgICAgICAgICAgICBUUkFD S0VSX0NIQU5HRV9NT05JVE9SLAorLSAgICAgICAgICAgICAgICAgICAgICBHT2JqZWN0KTsKKy0K Ky1QaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAgKnBob3Rvc190cmFja2VyX2NoYW5nZV9tb25p dG9yX2R1cF9zaW5nbGV0b24gICAgKEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHRXJyb3IgKiplcnJvcik7CistCistR19FTkRfREVDTFMKKy0KKy0jZW5k aWYgLyogUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX01PTklUT1JfSCAqLworZGlmZiAtLWdpdCBhL3Ny Yy9waG90b3MtdHJhY2tlci1jb250cm9sbGVyLmMgYi9zcmMvcGhvdG9zLXRyYWNrZXItY29udHJv bGxlci5jCitpbmRleCAzYTYyY2YyZC4uZjBiODFlMDIgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9z LXRyYWNrZXItY29udHJvbGxlci5jCisrKysgYi9zcmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxl ci5jCitAQCAtMjkyLDYgKzI5MiwxMiBAQCBwaG90b3NfdHJhY2tlcl9jb250cm9sbGVyX3BlcmZv cm1fY3VycmVudF9xdWVyeSAoUGhvdG9zVHJhY2tlckNvbnRyb2xsZXIgKnNlbGYpCisgCisgICBw cml2ID0gcGhvdG9zX3RyYWNrZXJfY29udHJvbGxlcl9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAoc2Vs Zik7CisgCisrICBpZiAoR19VTkxJS0VMWSAocHJpdi0+cXVldWUgPT0gTlVMTCkpCisrICAgIHsK KysgICAgICBwaG90b3NfdHJhY2tlcl9jb250cm9sbGVyX3F1ZXJ5X2Vycm9yIChzZWxmLCBwcml2 LT5xdWV1ZV9lcnJvcik7CisrICAgICAgZ290byBvdXQ7CisrICAgIH0KKysKKyAgIGdfY2xlYXJf b2JqZWN0ICgmcHJpdi0+Y3VycmVudF9xdWVyeSk7CisgICBwcml2LT5jdXJyZW50X3F1ZXJ5ID0g UEhPVE9TX1RSQUNLRVJfQ09OVFJPTExFUl9HRVRfQ0xBU1MgKHNlbGYpLT5nZXRfcXVlcnkgKHNl bGYpOworICAgZ19yZXR1cm5faWZfZmFpbCAocHJpdi0+Y3VycmVudF9xdWVyeSAhPSBOVUxMKTsK K0BAIC0zMDMsMTIgKzMwOSw2IEBAIHBob3Rvc190cmFja2VyX2NvbnRyb2xsZXJfcGVyZm9ybV9j dXJyZW50X3F1ZXJ5IChQaG90b3NUcmFja2VyQ29udHJvbGxlciAqc2VsZikKKyAgIGdfb2JqZWN0 X3VucmVmIChwcml2LT5jYW5jZWxsYWJsZSk7CisgICBwcml2LT5jYW5jZWxsYWJsZSA9IGdfY2Fu Y2VsbGFibGVfbmV3ICgpOworIAorLSAgaWYgKEdfVU5MSUtFTFkgKHByaXYtPnF1ZXVlID09IE5V TEwpKQorLSAgICB7CistICAgICAgcGhvdG9zX3RyYWNrZXJfY29udHJvbGxlcl9xdWVyeV9lcnJv ciAoc2VsZiwgcHJpdi0+cXVldWVfZXJyb3IpOworLSAgICAgIGdvdG8gb3V0OworLSAgICB9Cist CisgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zZWxlY3QgKHByaXYtPnF1ZXVlLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5jdXJyZW50X3F1ZXJ5LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwcml2LT5jYW5jZWxsYWJsZSwKK2RpZmYgLS1naXQgYS9zcmMv cGhvdG9zLXRyYWNrZXItZXh0cmFjdC1wcmlvcml0eS54bWwgYi9zcmMvcGhvdG9zLXRyYWNrZXIt ZXh0cmFjdC1wcmlvcml0eS54bWwKK2luZGV4IDdlM2I5YjBjLi4yYjU2MjI5OSAxMDA2NDQKKy0t LSBhL3NyYy9waG90b3MtdHJhY2tlci1leHRyYWN0LXByaW9yaXR5LnhtbAorKysrIGIvc3JjL3Bo b3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHkueG1sCitAQCAtMjEsNyArMjEsNyBAQAorIC0t PgorIAorIDxub2RlIG5hbWU9Ii8iIHhtbG5zOmRvYz0iaHR0cDovL3d3dy5mcmVlZGVza3RvcC5v cmcvZGJ1cy8xLjAvZG9jLmR0ZCI+CistICA8aW50ZXJmYWNlIG5hbWU9Im9yZy5mcmVlZGVza3Rv cC5UcmFja2VyMS5FeHRyYWN0LlByaW9yaXR5Ij4KKysgIDxpbnRlcmZhY2UgbmFtZT0ib3JnLmZy ZWVkZXNrdG9wLlRyYWNrZXIzLkV4dHJhY3QuUHJpb3JpdHkiPgorICAgICA8bWV0aG9kIG5hbWU9 IkNsZWFyUmRmVHlwZXMiIC8+CisgICAgIDxtZXRob2QgbmFtZT0iU2V0UmRmVHlwZXMiPgorICAg ICAgIDxhcmcgbmFtZT0icmRmX3R5cGVzIiB0eXBlPSJhcyIgZGlyZWN0aW9uPSJpbiIgLz4KK2Rp ZmYgLS1naXQgYS9zcmMvcGhvdG9zLXRyYWNrZXItaW1wb3J0LWNvbnRyb2xsZXIuYyBiL3NyYy9w aG90b3MtdHJhY2tlci1pbXBvcnQtY29udHJvbGxlci5jCitpbmRleCAwODVhY2UzYS4uZDdlZDli MjAgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItaW1wb3J0LWNvbnRyb2xsZXIuYwor KysrIGIvc3JjL3Bob3Rvcy10cmFja2VyLWltcG9ydC1jb250cm9sbGVyLmMKK0BAIC0yNCw3ICsy NCw2IEBACisgI2luY2x1ZGUgImNvbmZpZy5oIgorIAorICNpbmNsdWRlIDxnaW8vZ2lvLmg+Cist I2luY2x1ZGUgPGxpYnRyYWNrZXItY29udHJvbC90cmFja2VyLWNvbnRyb2wuaD4KKyAKKyAjaW5j bHVkZSAicGhvdG9zLWJhc2UtbWFuYWdlci5oIgorICNpbmNsdWRlICJwaG90b3MtZGVidWcuaCIK K0BAIC0zNCw2ICszMyw4IEBACisgI2luY2x1ZGUgInBob3Rvcy1xdWVyeS1idWlsZGVyLmgiCisg I2luY2x1ZGUgInBob3Rvcy1zZWFyY2gtY29udGV4dC5oIgorICNpbmNsdWRlICJwaG90b3MtdHJh Y2tlci1pbXBvcnQtY29udHJvbGxlci5oIgorKyNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1taW5l ci1pbmRleC5oIgorKyNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1xdWV1ZS5oIgorICNpbmNsdWRl ICJwaG90b3MtdXRpbHMuaCIKKyAKKyAKK0BAIC00NSw3ICs0Niw3IEBAIHN0cnVjdCBfUGhvdG9z VHJhY2tlckltcG9ydENvbnRyb2xsZXIKKyAgIFBob3Rvc0Jhc2VNYW5hZ2VyICppdGVtX21uZ3I7 CisgICBQaG90b3NCYXNlTWFuYWdlciAqc3JjX21uZ3I7CisgICBQaG90b3NPZmZzZXRDb250cm9s bGVyICpvZmZzZXRfY250cmxyOworLSAgVHJhY2tlck1pbmVyTWFuYWdlciAqbWFuYWdlcjsKKysg IFRyYWNrZXJNaW5lckZpbGVzSW5kZXggKm1pbmVyX2NvbnRyb2xfcHJveHk7CisgfTsKKyAKKyAK K0BAIC03NiwxMiArNzcsMTIgQEAgc3RhdGljIHZvaWQKKyBwaG90b3NfdHJhY2tlcl9pbXBvcnRf Y29udHJvbGxlcl9pbmRleCAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpy ZXMsIGdwb2ludGVyIHVzZXJfZGF0YSkKKyB7CisgICBnX2F1dG9wdHIgKEdGaWxlKSBmaWxlID0g R19GSUxFICh1c2VyX2RhdGEpOworLSAgVHJhY2tlck1pbmVyTWFuYWdlciAqbWFuYWdlciA9IFRS QUNLRVJfTUlORVJfTUFOQUdFUiAoc291cmNlX29iamVjdCk7CisrICBUcmFja2VyTWluZXJGaWxl c0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5ID0gVFJBQ0tFUl9NSU5FUl9GSUxFU19JTkRFWCAo c291cmNlX29iamVjdCk7CisgCisgICB7CisgICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9 IE5VTEw7CisgCistICAgIGlmICghdHJhY2tlcl9taW5lcl9tYW5hZ2VyX2luZGV4X2ZpbGVfZm9y X3Byb2Nlc3NfZmluaXNoIChtYW5hZ2VyLCByZXMsICZlcnJvcikpCisrICAgIGlmICghdHJhY2tl cl9taW5lcl9maWxlc19pbmRleF9jYWxsX2luZGV4X2xvY2F0aW9uX2ZpbmlzaCAobWluZXJfY29u dHJvbF9wcm94eSwgcmVzLCAmZXJyb3IpKQorICAgICAgIHsKKyAgICAgICAgIGlmICghZ19lcnJv cl9tYXRjaGVzIChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9DQU5DRUxMRUQpKQorICAg ICAgICAgICB7CitAQCAtMTAyLDYgKzEwMyw4IEBAIHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250 cm9sbGVyX25leHRfZmlsZXMgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsCisg ICBHRmlsZUVudW1lcmF0b3IgKmVudW1lcmF0b3IgPSBHX0ZJTEVfRU5VTUVSQVRPUiAoc291cmNl X29iamVjdCk7CisgICBHTGlzdCAqaW5mb3MgPSBOVUxMOworICAgR0xpc3QgKmw7CisrICBjb25z dCBnY2hhciAqdHJhY2tlcl9wcmlvcml0eV9ncmFwaHNbXSA9IHsgVFJBQ0tFUl9QSUNUVVJFU19H UkFQSCB9OworKyAgY29uc3QgZ2NoYXIgKnRyYWNrZXJfaW5kZXhfbG9jYXRpb25fZmxhZ3NbXSA9 IHsgImZvci1wcm9jZXNzIiB9OworIAorICAgeworICAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJy b3IgPSBOVUxMOworQEAgLTE4NywxMSArMTkwLDEzIEBAIHBob3Rvc190cmFja2VyX2ltcG9ydF9j b250cm9sbGVyX25leHRfZmlsZXMgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3Vs CisgICAgICAgICAgICAgICAgICAgICBpZiAoZ19jb250ZW50X3R5cGVfZXF1YWxzIChtaW1lX3R5 cGUsIElNUE9SVEFCTEVfTUlNRV9UWVBFU1tpXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICB8 fCBnX2NvbnRlbnRfdHlwZV9pc19hIChtaW1lX3R5cGUsIElNUE9SVEFCTEVfTUlNRV9UWVBFU1tp XSkpCisgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0 cmFja2VyX21pbmVyX21hbmFnZXJfaW5kZXhfZmlsZV9mb3JfcHJvY2Vzc19hc3luYyAoc2VsZi0+ bWFuYWdlciwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi0+Y2FuY2VsbGFibGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX2lt cG9ydF9jb250cm9sbGVyX2luZGV4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX29iamVjdF9yZWYg KGZpbGUpKTsKKysgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2VyX21pbmVyX2ZpbGVzX2lu ZGV4X2NhbGxfaW5kZXhfbG9jYXRpb24gKHNlbGYtPm1pbmVyX2NvbnRyb2xfcHJveHksCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1cmksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2VyX3ByaW9yaXR5X2dyYXBocywK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRyYWNrZXJfaW5kZXhfbG9jYXRpb25fZmxhZ3MsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLT5jYW5jZWxsYWJsZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX2lt cG9ydF9jb250cm9sbGVyX2luZGV4LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19vYmplY3RfcmVmIChmaWxl KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhpbmcgPSBUUlVFOworICAgICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgfQorQEAgLTI5MSwyOCArMjk2LDYg QEAgcGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfc291cmNlX2FjdGl2ZV9jaGFuZ2Vk IChQaG90b3NUcmFja2VySW1wb3J0Q29udHIKKyAgICAgeworICAgICAgIGdfcmV0dXJuX2lmX2Zh aWwgKGdfcXVldWVfaXNfZW1wdHkgKHNlbGYtPnBlbmRpbmdfZGlyZWN0b3JpZXMpKTsKKyAKKy0g ICAgICBpZiAoR19MSUtFTFkgKHNlbGYtPm1hbmFnZXIgIT0gTlVMTCkpCistICAgICAgICB7Cist ICAgICAgICAgIGdfYXV0b3B0ciAoR0ZpbGUpIHJvb3QgPSBOVUxMOworLSAgICAgICAgICBnX2F1 dG9mcmVlIGdjaGFyICp1cmkgPSBOVUxMOworLQorLSAgICAgICAgICByb290ID0gZ19tb3VudF9n ZXRfcm9vdCAobW91bnQpOworLSAgICAgICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoc2VsZi0+cGVu ZGluZ19kaXJlY3RvcmllcywgZ19vYmplY3RfcmVmIChyb290KSk7CistCistICAgICAgICAgIHVy aSA9IGdfZmlsZV9nZXRfdXJpIChyb290KTsKKy0gICAgICAgICAgcGhvdG9zX2RlYnVnIChQSE9U T1NfREVCVUdfSU1QT1JULCAiRW51bWVyYXRpbmcgZGV2aWNlIGRpcmVjdG9yeSAlcyIsIHVyaSk7 CistCistICAgICAgICAgIGdfZmlsZV9lbnVtZXJhdGVfY2hpbGRyZW5fYXN5bmMgKHJvb3QsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJV VEVfU1RBTkRBUkRfQ09OVEVOVF9UWVBFIiwiCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfTkFNRSIsIgorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklCVVRFX1NU QU5EQVJEX1RZUEUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdfRklMRV9RVUVSWV9JTkZPX05PRk9MTE9XX1NZTUxJTktTLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BSSU9SSVRZX0RFRkFVTFQsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPmNhbmNlbGxhYmxlLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9p bXBvcnRfY29udHJvbGxlcl9lbnVtZXJhdGVfY2hpbGRyZW4sCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpOworLSAgICAgICAgfQorLQorICAgICAgIHBo b3Rvc190cmFja2VyX2NvbnRyb2xsZXJfcmVmcmVzaF9mb3Jfb2JqZWN0IChQSE9UT1NfVFJBQ0tF Ul9DT05UUk9MTEVSIChzZWxmKSk7CisgICAgIH0KKyB9CitAQCAtMzc5LDcgKzM2Miw2IEBAIHBo b3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkK KyAKKyAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+c3JjX21uZ3IpOworICAgZ19jbGVhcl9vYmpl Y3QgKCZzZWxmLT5vZmZzZXRfY250cmxyKTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bWFu YWdlcik7CisgCisgICBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRy b2xsZXJfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZSAob2JqZWN0KTsKKyB9CitAQCAtMzk3LDYgKzM3 OSwzNyBAQCBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9maW5hbGl6ZSAoR09iamVj dCAqb2JqZWN0KQorIH0KKyAKKyAKKytzdGF0aWMgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAqCisr cGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfZ2V0X21pbmVyX2ZzX2NvbnRyb2xfcHJv eHkgKEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUpCisreworKyAgZ19hdXRvcHRyIChQaG90b3NU cmFja2VyUXVldWUpIHRyYWNrZXJfcXVldWUgPSBOVUxMOworKyAgY29uc3QgZ2NoYXIgKm1pbmVy X2ZzX2NvbnRyb2xfYnVzbmFtZTsKKysgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7 CisrICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5OworKworKyAg dHJhY2tlcl9xdWV1ZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2R1cF9zaW5nbGV0b24gKGNhbmNl bGxhYmxlLCAmZXJyb3IpOworKworKyAgaWYgKCF0cmFja2VyX3F1ZXVlKSB7CisrICAgIGdfd2Fy bmluZyAoIkVycm9yIGdldHRpbmcgVHJhY2tlciBxdWV1ZTogJXMuIEltcG9ydCB3aWxsIG5vdCB3 b3JrLiIsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrCisrICBt aW5lcl9mc19jb250cm9sX2J1c25hbWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJf ZnNfY29udHJvbF9idXNuYW1lICh0cmFja2VyX3F1ZXVlKTsKKysgIG1pbmVyX2NvbnRyb2xfcHJv eHkgPSB0cmFja2VyX21pbmVyX2ZpbGVzX2luZGV4X3Byb3h5X25ld19mb3JfYnVzX3N5bmMgKEdf QlVTX1RZUEVfU0VTU0lPTiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19QUk9YWV9GTEFHU19O T05FLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWluZXJfZnNfY29udHJvbF9idXNuYW1lLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIi9vcmcvZnJlZWRlc2t0b3AvVHJhY2tlcjMvTWluZXIvRmlsZXMvQ29udHJv bCIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVycm9yKTsK KysgIGlmICghbWluZXJfY29udHJvbF9wcm94eSkgeworKyAgICBnX3dhcm5pbmcgKCJFcnJvciBn ZXR0aW5nIFRyYWNrZXIgTWluZXIgRlMgY29udHJvbCBwcm94eTogJXMuIEltcG9ydCB3aWxsIG5v dCB3b3JrIiwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICByZXR1cm4gTlVMTDsKKysgIH0KKysKKysg IHJldHVybiBtaW5lcl9jb250cm9sX3Byb3h5OworK30KKysKKysKKyBzdGF0aWMgdm9pZAorIHBo b3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX2luaXQgKFBob3Rvc1RyYWNrZXJJbXBvcnRD b250cm9sbGVyICpzZWxmKQorIHsKK0BAIC00MjEsMTMgKzQzNCw3IEBAIHBob3Rvc190cmFja2Vy X2ltcG9ydF9jb250cm9sbGVyX2luaXQgKFBob3Rvc1RyYWNrZXJJbXBvcnRDb250cm9sbGVyICpz ZWxmKQorIAorICAgc2VsZi0+b2Zmc2V0X2NudHJsciA9IHBob3Rvc19vZmZzZXRfaW1wb3J0X2Nv bnRyb2xsZXJfZHVwX3NpbmdsZXRvbiAoKTsKKyAKKy0gIHsKKy0gICAgZ19hdXRvcHRyIChHRXJy b3IpIGVycm9yID0gTlVMTDsKKy0KKy0gICAgc2VsZi0+bWFuYWdlciA9IHRyYWNrZXJfbWluZXJf bWFuYWdlcl9uZXdfZnVsbCAoRkFMU0UsICZlcnJvcik7CistICAgIGlmIChlcnJvciAhPSBOVUxM KQorLSAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0byBjcmVhdGUgYSBUcmFja2VyTWluZXJNYW5h Z2VyLCBpbmRleGluZyBhdHRhY2hlZCBkZXZpY2VzIHdvbid0IHdvcms6ICVzIiwgZXJyb3ItPm1l c3NhZ2UpOworLSAgfQorKyAgc2VsZi0+bWluZXJfY29udHJvbF9wcm94eSA9IHBob3Rvc190cmFj a2VyX2ltcG9ydF9jb250cm9sbGVyX2dldF9taW5lcl9mc19jb250cm9sX3Byb3h5IChOVUxMKTsK KyB9CisgCisgCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmMgYi9zcmMv cGhvdG9zLXRyYWNrZXItcXVldWUuYworaW5kZXggNmFjODI5Y2QuLmE1ZjRjOTFhIDEwMDY0NAor LS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmMKKysrKyBiL3NyYy9waG90b3MtdHJhY2tl ci1xdWV1ZS5jCitAQCAtMzcsOSArMzcsMjAgQEAgc3RydWN0IF9QaG90b3NUcmFja2VyUXVldWUK KyAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworICAgR0Vycm9yICppbml0aWFsaXphdGlvbl9l cnJvcjsKKyAgIEdRdWV1ZSAqcXVldWU7CistICBUcmFja2VyU3BhcnFsQ29ubmVjdGlvbiAqY29u bmVjdGlvbjsKKysgIFRyYWNrZXJTcGFycWxDb25uZWN0aW9uICpsb2NhbF9jb25uZWN0aW9uOwor KyAgVHJhY2tlclNwYXJxbENvbm5lY3Rpb24gKm1pbmVyX2ZzX2Nvbm5lY3Rpb247CisgICBnYm9v bGVhbiBpc19pbml0aWFsaXplZDsKKyAgIGdib29sZWFuIHJ1bm5pbmc7CisrICBnYm9vbGVhbiBt aW5lcl9mc19yZWFkeTsKKysgIGNvbnN0IGdjaGFyICptaW5lcl9mc19idXNuYW1lOworKyAgY29u c3QgZ2NoYXIgKm1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZTsKKyt9OworKworK2VudW0KKyt7Cisr ICBQUk9QXzAsCisrICBQUk9QX01JTkVSX0ZTX1JFQURZLAorKyAgUFJPUF9NSU5FUl9GU19CVVNO QU1FCisgfTsKKyAKKyBzdGF0aWMgdm9pZCBwaG90b3NfdHJhY2tlcl9xdWV1ZV9pbml0YWJsZV9p ZmFjZV9pbml0IChHSW5pdGFibGVJZmFjZSAqaWZhY2UpOworQEAgLTkwLDcgKzEwMSw2IEBAIHBo b3Rvc190cmFja2VyX3F1ZXVlX2RhdGFfZnJlZSAoUGhvdG9zVHJhY2tlclF1ZXVlRGF0YSAqZGF0 YSkKKyAKKyBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoUGhvdG9zVHJhY2tlclF1ZXVl RGF0YSwgcGhvdG9zX3RyYWNrZXJfcXVldWVfZGF0YV9mcmVlKTsKKyAKKy0KKyBzdGF0aWMgUGhv dG9zVHJhY2tlclF1ZXVlRGF0YSAqCisgcGhvdG9zX3RyYWNrZXJfcXVldWVfZGF0YV9uZXcgKFBo b3Rvc1F1ZXJ5ICpxdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhvdG9z VHJhY2tlclF1ZXJ5VHlwZSBxdWVyeV90eXBlLAorQEAgLTE3OSw3ICsxODksNyBAQCBwaG90b3Nf dHJhY2tlcl9xdWV1ZV9jaGVjayAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKQorICAgc3dpdGNo IChkYXRhLT5xdWVyeV90eXBlKQorICAgICB7CisgICAgIGNhc2UgUEhPVE9TX1RSQUNLRVJfUVVF UllfU0VMRUNUOgorLSAgICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fcXVlcnlfYXN5bmMg KHNlbGYtPmNvbm5lY3Rpb24sCisrICAgICAgdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl9xdWVy eV9hc3luYyAoc2VsZi0+bG9jYWxfY29ubmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzcGFycWwsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YS0+Y2FuY2VsbGFibGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX3RyYWNrZXJfcXVldWVfY29sbGVj dG9yLAorQEAgLTE4NywxOCArMTk3LDE2IEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX2NoZWNrIChQ aG90b3NUcmFja2VyUXVldWUgKnNlbGYpCisgICAgICAgYnJlYWs7CisgCisgICAgIGNhc2UgUEhP VE9TX1RSQUNLRVJfUVVFUllfVVBEQVRFOgorLSAgICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rp b25fdXBkYXRlX2FzeW5jIChzZWxmLT5jb25uZWN0aW9uLAorKyAgICAgIHRyYWNrZXJfc3BhcnFs X2Nvbm5lY3Rpb25fdXBkYXRlX2FzeW5jIChzZWxmLT5sb2NhbF9jb25uZWN0aW9uLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFycWwsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVM VCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+ Y2FuY2VsbGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBob3Rvc190cmFja2VyX3F1ZXVlX2NvbGxlY3RvciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19vYmplY3RfcmVmIChzZWxmKSk7CisgICAgICAg YnJlYWs7CisgCisgICAgIGNhc2UgUEhPVE9TX1RSQUNLRVJfUVVFUllfVVBEQVRFX0JMQU5LOgor LSAgICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fdXBkYXRlX2JsYW5rX2FzeW5jIChzZWxm LT5jb25uZWN0aW9uLAorKyAgICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fdXBkYXRlX2Js YW5rX2FzeW5jIChzZWxmLT5sb2NhbF9jb25uZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFycWwsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YS0+Y2FuY2VsbGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX3F1ZXVlX2NvbGxlY3RvciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19vYmplY3RfcmVmIChz ZWxmKSk7CitAQCAtMjExLDYgKzIxOSw1MyBAQCBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jaGVjayAo UGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKQorIH0KKyAKKyAKKytzdGF0aWMgZ2Jvb2xlYW4KKytw aG90b3NfdHJhY2tlcl9xdWV1ZV9zdGFydF9zZXNzaW9uX21pbmVyX2ZzIChQaG90b3NUcmFja2Vy UXVldWUgKnNlbGYsIEdFcnJvciAqKmVycm9yKQorK3sKKysgIGNvbnN0IGdjaGFyICpidXNuYW1l ID0gIm9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcyI7CisrICBjb25zdCBnY2hh ciAqY29udHJvbF9idXNuYW1lID0gIm9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxl cy5Db250cm9sIjsKKysKKysgIHBob3Rvc19kZWJ1ZyAoUEhPVE9TX0RFQlVHX1RSQUNLRVIsICJD b25uZWN0aW5nIHRvICVzIiwgYnVzbmFtZSk7CisrICBzZWxmLT5taW5lcl9mc19jb25uZWN0aW9u ID0gdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl9idXNfbmV3IChidXNuYW1lLCBOVUxMLCBOVUxM LCBlcnJvcik7CisrICBpZiAoKmVycm9yKQorKyAgICB7CisrICAgICAgZ193YXJuaW5nICgiVW5h YmxlIHRvIGNyZWF0ZSBjb25uZWN0aW9uIGZvciBzZXNzaW9uLXdpZGUgVHJhY2tlciBpbmRleGVy IGF0ICVzOiAlcyIsIGJ1c25hbWUsICgqZXJyb3IpLT5tZXNzYWdlKTsKKysgICAgICByZXR1cm4g RkFMU0U7CisrICAgIH0KKysKKysgIHNlbGYtPm1pbmVyX2ZzX2J1c25hbWUgPSBidXNuYW1lOwor KyAgc2VsZi0+bWluZXJfZnNfY29udHJvbF9idXNuYW1lID0gY29udHJvbF9idXNuYW1lOworKwor KyAgcmV0dXJuIFRSVUU7CisrfQorKworKworK3N0YXRpYyBnYm9vbGVhbgorK3Bob3Rvc190cmFj a2VyX3F1ZXVlX3N0YXJ0X2xvY2FsX21pbmVyX2ZzIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYs IEdFcnJvciAqKmVycm9yKQorK3sKKysgIGNvbnN0IGdjaGFyICpidXNuYW1lID0gIm9yZy5nbm9t ZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRmlsZXMiOworKyAgY29uc3QgZ2NoYXIgKmNvbnRyb2xf YnVzbmFtZSA9ICJvcmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkZpbGVzLkNvbnRyb2wi OworKworKyAgcGhvdG9zX2RlYnVnIChQSE9UT1NfREVCVUdfVFJBQ0tFUiwgIkNvbm5lY3Rpbmcg dG8gJXMiLCBidXNuYW1lKTsKKysgIHNlbGYtPm1pbmVyX2ZzX2Nvbm5lY3Rpb24gPSB0cmFja2Vy X3NwYXJxbF9jb25uZWN0aW9uX2J1c19uZXcgKGJ1c25hbWUsIE5VTEwsIE5VTEwsIGVycm9yKTsK KysgIGlmICgqZXJyb3IpCisrICAgIHsKKysgICAgICBnX2NyaXRpY2FsICgiQ291bGQgbm90IHN0 YXJ0IGxvY2FsIFRyYWNrZXIgaW5kZXhlciBhdCAlczogJXMiLCBidXNuYW1lLCAoKmVycm9yKS0+ bWVzc2FnZSk7CisrICAgICAgcmV0dXJuIEZBTFNFOworKyAgICB9CisrCisrICBzZWxmLT5taW5l cl9mc19idXNuYW1lID0gYnVzbmFtZTsKKysgIHNlbGYtPm1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFt ZSA9IGNvbnRyb2xfYnVzbmFtZTsKKysKKysgIHJldHVybiBUUlVFOworK30KKysKKytzdGF0aWMg Z2Jvb2xlYW4KKytpbnNpZGVfZmxhdHBhayAodm9pZCkKKyt7CisrICAgIHJldHVybiBnX2ZpbGVf dGVzdCAoIi8uZmxhdHBhay1pbmZvIiwgR19GSUxFX1RFU1RfRVhJU1RTKTsKKyt9CisrCisgc3Rh dGljIEdPYmplY3QgKgorIHBob3Rvc190cmFja2VyX3F1ZXVlX2NvbnN0cnVjdG9yIChHVHlwZSB0 eXBlLCBndWludCBuX2NvbnN0cnVjdF9wYXJhbXMsIEdPYmplY3RDb25zdHJ1Y3RQYXJhbSAqY29u c3RydWN0X3BhcmFtcykKKyB7CitAQCAtMjM0LDcgKzI4OSw4IEBAIHBob3Rvc190cmFja2VyX3F1 ZXVlX2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkKKyB7CisgICBQaG90b3NUcmFja2VyUXVldWUg KnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9RVUVVRSAob2JqZWN0KTsKKyAKKy0gIGdfY2xlYXJfb2Jq ZWN0ICgmc2VsZi0+Y29ubmVjdGlvbik7CisrICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmxvY2Fs X2Nvbm5lY3Rpb24pOworKyAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5taW5lcl9mc19jb25uZWN0 aW9uKTsKKyAKKyAgIEdfT0JKRUNUX0NMQVNTIChwaG90b3NfdHJhY2tlcl9xdWV1ZV9wYXJlbnRf Y2xhc3MpLT5kaXNwb3NlIChvYmplY3QpOworIH0KK0BAIC0yNTgsNiArMzE0LDM4IEBAIHBob3Rv c190cmFja2VyX3F1ZXVlX2luaXQgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZikKKyAgIHNlbGYt PnF1ZXVlID0gZ19xdWV1ZV9uZXcgKCk7CisgfQorIAorK3N0YXRpYyB2b2lkCisrcGhvdG9zX3Ry YWNrZXJfcXVldWVfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICpvYmplY3QsIGd1aW50IHByb3BfaWQs IEdWYWx1ZSAqdmFsdWUsIEdQYXJhbVNwZWMgKnBzcGVjKQorK3sKKysgIFBob3Rvc1RyYWNrZXJR dWV1ZSAqc2VsZiA9IFBIT1RPU19UUkFDS0VSX1FVRVVFIChvYmplY3QpOworKworKyAgc3dpdGNo IChwcm9wX2lkKQorKyAgICB7CisrICAgIGNhc2UgUFJPUF9NSU5FUl9GU19SRUFEWToKKysgICAg ICBnX3ZhbHVlX3NldF9ib29sZWFuICh2YWx1ZSwgc2VsZi0+bWluZXJfZnNfcmVhZHkpOworKyAg ICAgIGJyZWFrOworKworKyAgICBjYXNlIFBST1BfTUlORVJfRlNfQlVTTkFNRToKKysgICAgICBn X3ZhbHVlX3NldF9zdHJpbmcgKHZhbHVlLCBzZWxmLT5taW5lcl9mc19idXNuYW1lKTsKKysgICAg ICBicmVhazsKKysKKysgICAgZGVmYXVsdDoKKysgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURf UFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworKyAgICAgIGJyZWFrOworKyAg ICB9CisrfQorKworK3N0YXRpYyB2b2lkCisrcGhvdG9zX3RyYWNrZXJfcXVldWVfc2V0X3Byb3Bl cnR5IChHT2JqZWN0ICpvYmplY3QsIGd1aW50IHByb3BfaWQsIGNvbnN0IEdWYWx1ZSAqdmFsdWUs IEdQYXJhbVNwZWMgKnBzcGVjKQorK3sKKysgIHN3aXRjaCAocHJvcF9pZCkKKysgICAgeworKyAg ICAvKiBBbGwgcHJvcGVydGllcyBhcmUgcmVhZCBvbmx5ICovCisrICAgIGRlZmF1bHQ6CisrICAg ICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChvYmplY3QsIHByb3BfaWQsIHBz cGVjKTsKKysgICAgICBicmVhazsKKysgICAgfQorK30KKyAKKyBzdGF0aWMgdm9pZAorIHBob3Rv c190cmFja2VyX3F1ZXVlX2NsYXNzX2luaXQgKFBob3Rvc1RyYWNrZXJRdWV1ZUNsYXNzICpjbGFz cykKK0BAIC0yNjcsNiArMzU1LDI0IEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX2NsYXNzX2luaXQg KFBob3Rvc1RyYWNrZXJRdWV1ZUNsYXNzICpjbGFzcykKKyAgIG9iamVjdF9jbGFzcy0+Y29uc3Ry dWN0b3IgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jb25zdHJ1Y3RvcjsKKyAgIG9iamVjdF9jbGFz cy0+ZGlzcG9zZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2Rpc3Bvc2U7CisgICBvYmplY3RfY2xh c3MtPmZpbmFsaXplID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZmluYWxpemU7CisrICBvYmplY3Rf Y2xhc3MtPmdldF9wcm9wZXJ0eSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF9wcm9wZXJ0eTsK KysgIG9iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfc2V0 X3Byb3BlcnR5OworKworKyAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAob2JqZWN0 X2NsYXNzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9NSU5FUl9G U19SRUFEWSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3Bl Y19ib29sZWFuICgidHJhY2tlci1taW5lci1mcy1yZWFkeSIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRyYWNrZXIgTWluZXIgRlMg cmVhZHkiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJUUlVFIGlmIGl0IGlzIHBvc3NpYmxlIHRvIHF1ZXJ5IFRyYWNrZXIgaW5kZXhl ciIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRkFMU0UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR19QQVJBTV9SRUFEQUJMRSkpOworKworKyAgZ19vYmplY3RfY2xhc3Nf aW5zdGFsbF9wcm9wZXJ0eSAob2JqZWN0X2NsYXNzLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUFJPUF9NSU5FUl9GU19CVVNOQU1FLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZyAoInRyYWNrZXItbWluZXItZnMtYnVz bmFtZSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiVHJhY2tlciBNaW5lciBGUyBidXNuYW1lIiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJELUJ1cyBuYW1lIG9mIHRoZSBU cmFja2VyIGluZGV4ZXIgZGFlbW9uIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9SRUFEQUJMRSkpOworIH0KKyAK KyAKK0BAIC0yNzQsMTMgKzM4MCwxNiBAQCBzdGF0aWMgZ2Jvb2xlYW4KKyBwaG90b3NfdHJhY2tl cl9xdWV1ZV9pbml0YWJsZV9pbml0IChHSW5pdGFibGUgKmluaXRhYmxlLCBHQ2FuY2VsbGFibGUg KmNhbmNlbGxhYmxlLCBHRXJyb3IgKiplcnJvcikKKyB7CisgICBQaG90b3NUcmFja2VyUXVldWUg KnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9RVUVVRSAoaW5pdGFibGUpOworKyAgVHJhY2tlclNwYXJx bENvbm5lY3Rpb25GbGFncyB0cmFja2VyX2ZsYWdzOworKyAgZ19hdXRvcHRyIChHRmlsZSkgc3Rv cmUgPSBOVUxMOworICAgZ2Jvb2xlYW4gcmV0X3ZhbCA9IEZBTFNFOworKyAgZ2Jvb2xlYW4gbWlu ZXJfb2sgPSBGQUxTRTsKKyAKKyAgIEdfTE9DSyAoaW5pdF9sb2NrKTsKKyAKKyAgIGlmIChzZWxm LT5pc19pbml0aWFsaXplZCkKKyAgICAgeworLSAgICAgIGlmIChzZWxmLT5jb25uZWN0aW9uICE9 IE5VTEwpCisrICAgICAgaWYgKHNlbGYtPmxvY2FsX2Nvbm5lY3Rpb24gIT0gTlVMTCAmJiBzZWxm LT5taW5lcl9mc19jb25uZWN0aW9uICE9IE5VTEwpCisgICAgICAgICByZXRfdmFsID0gVFJVRTsK KyAgICAgICBlbHNlCisgICAgICAgICBnX2Fzc2VydF9ub25udWxsIChzZWxmLT5pbml0aWFsaXph dGlvbl9lcnJvcik7CitAQCAtMjkwLDExICszOTksNDkgQEAgcGhvdG9zX3RyYWNrZXJfcXVldWVf aW5pdGFibGVfaW5pdCAoR0luaXRhYmxlICppbml0YWJsZSwgR0NhbmNlbGxhYmxlICpjYW5jZWxs YWIKKyAKKyAgIGdfYXNzZXJ0X25vX2Vycm9yIChzZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvcik7 CisgCistICBzZWxmLT5jb25uZWN0aW9uID0gdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl9nZXQg KGNhbmNlbGxhYmxlLCAmc2VsZi0+aW5pdGlhbGl6YXRpb25fZXJyb3IpOworKyAgLyogQ29ubmVj dCB0byB0aGUgbG9jYWwgZGF0YWJhc2Ugd2hpY2ggc3RvcmVzIHVzZXIgZGF0YS4KKysgICAqCisr ICAgKiBTYW1lIGZsYWdzIHRoYXQgdHJhY2tlci1taW5lci1mcyB1c2VzIGJ5IGRlZmF1bHQuIFNl ZToKKysgICAqIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS90cmFja2VyLW1pbmVycy8t L2Jsb2IvbWFzdGVyL3NyYy9taW5lcnMvZnMvdHJhY2tlci1tYWluLmMjTDczNSBhbmQKKysgICAq IGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS90cmFja2VyLW1pbmVycy8tL2Jsb2IvbWFz dGVyL2RhdGEvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIuRlRTLmdzY2hlbWEueG1sICovCisrICB0 cmFja2VyX2ZsYWdzID0gVFJBQ0tFUl9TUEFSUUxfQ09OTkVDVElPTl9GTEFHU19GVFNfRU5BQkxF X1VOQUNDRU5UIHwKKysgICAgICAgICAgICAgICAgICBUUkFDS0VSX1NQQVJRTF9DT05ORUNUSU9O X0ZMQUdTX0ZUU19FTkFCTEVfU1RPUF9XT1JEUyB8CisrICAgICAgICAgICAgICAgICAgVFJBQ0tF Ul9TUEFSUUxfQ09OTkVDVElPTl9GTEFHU19GVFNfSUdOT1JFX05VTUJFUlM7CisrCisrICBzdG9y ZSA9IGdfZmlsZV9uZXdfYnVpbGRfZmlsZW5hbWUgKGdfZ2V0X3VzZXJfZGF0YV9kaXIgKCksICJn bm9tZS1waG90b3MiLCBOVUxMKTsKKysKKysgIHBob3Rvc19kZWJ1ZyAoUEhPVE9TX0RFQlVHX1RS QUNLRVIsICJPcGVuaW5nIGxvY2FsIGRhdGFiYXNlIGF0ICVzIiwgZ19maWxlX3BlZWtfcGF0aCAo c3RvcmUpKTsKKysgIHNlbGYtPmxvY2FsX2Nvbm5lY3Rpb24gPSB0cmFja2VyX3NwYXJxbF9jb25u ZWN0aW9uX25ldyAodHJhY2tlcl9mbGFncywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrZXJfc3BhcnFsX2dl dF9vbnRvbG9neV9uZXBvbXVrICgpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxsYWJsZSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNlbGYtPmluaXRpYWxp emF0aW9uX2Vycm9yKTsKKysKKyAgIGlmIChHX1VOTElLRUxZIChzZWxmLT5pbml0aWFsaXphdGlv bl9lcnJvciAhPSBOVUxMKSkKKyAgICAgZ290byBvdXQ7CisgCistICByZXRfdmFsID0gVFJVRTsK KysgIC8qIENvbm5lY3QgdG8gZmlsZXN5c3RlbSBpbmRleGVyLiAqLworKyAgbWluZXJfb2sgPSBw aG90b3NfdHJhY2tlcl9xdWV1ZV9zdGFydF9zZXNzaW9uX21pbmVyX2ZzIChzZWxmLCAmc2VsZi0+ aW5pdGlhbGl6YXRpb25fZXJyb3IpOworKworKyAgaWYgKCFtaW5lcl9vayAmJiBpbnNpZGVfZmxh dHBhayAoKSkKKysgICAgeworKyAgICAgIGdfY2xlYXJfZXJyb3IgKCZzZWxmLT5pbml0aWFsaXph dGlvbl9lcnJvcik7CisrICAgICAgbWluZXJfb2sgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zdGFy dF9sb2NhbF9taW5lcl9mcyAoc2VsZiwgJnNlbGYtPmluaXRpYWxpemF0aW9uX2Vycm9yKTsKKysg ICAgfQorKworKyAgaWYgKG1pbmVyX29rKQorKyAgICB7CisrICAgICAgcGhvdG9zX2RlYnVnIChQ SE9UT1NfREVCVUdfVFJBQ0tFUiwgIlVzaW5nICVzIGFzIHRyYWNrZXItbWluZXItZnMiLCBzZWxm LT5taW5lcl9mc19idXNuYW1lKTsKKysgICAgICByZXRfdmFsID0gVFJVRTsKKysgICAgfQorKyAg ZWxzZQorKyAgICB7CisrICAgICAgcGhvdG9zX2RlYnVnIChQSE9UT1NfREVCVUdfVFJBQ0tFUiwg IkluaXRpYWxpemF0aW9uIGZhaWxlZCBkdWUgdG8gJXMiLCBzZWxmLT5pbml0aWFsaXphdGlvbl9l cnJvci0+bWVzc2FnZSk7CisrICAgICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5taW5lcl9mc19j b25uZWN0aW9uKTsKKysgICAgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmxvY2FsX2Nvbm5lY3Rp b24pOworKyAgICAgIHJldF92YWwgPSBGQUxTRTsKKysgICAgfQorKworIAorICBvdXQ6CisgICBz ZWxmLT5pc19pbml0aWFsaXplZCA9IFRSVUU7CitAQCAtMzE5LDEwICs0NjYsNDQgQEAgcGhvdG9z X3RyYWNrZXJfcXVldWVfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxlSWZhY2UgKmlmYWNl KQorIFBob3Rvc1RyYWNrZXJRdWV1ZSAqCisgcGhvdG9zX3RyYWNrZXJfcXVldWVfZHVwX3Npbmds ZXRvbiAoR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZSwgR0Vycm9yICoqZXJyb3IpCisgeworKyAg R09iamVjdCAqc2luZ2xldG9uOworKworICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGNhbmNlbGxh YmxlID09IE5VTEwgfHwgR19JU19DQU5DRUxMQUJMRSAoY2FuY2VsbGFibGUpLCBOVUxMKTsKKyAg IGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChlcnJvciA9PSBOVUxMIHx8ICplcnJvciA9PSBOVUxMLCBO VUxMKTsKKyAKKy0gIHJldHVybiBnX2luaXRhYmxlX25ldyAoUEhPVE9TX1RZUEVfVFJBQ0tFUl9R VUVVRSwgY2FuY2VsbGFibGUsIGVycm9yLCBOVUxMKTsKKysgIHNpbmdsZXRvbiA9IGdfb2JqZWN0 X25ldyAoUEhPVE9TX1RZUEVfVFJBQ0tFUl9RVUVVRSwgTlVMTCk7CisrCisrICBpZiAoZ19pbml0 YWJsZV9pbml0IChHX0lOSVRBQkxFIChzaW5nbGV0b24pLCBjYW5jZWxsYWJsZSwgZXJyb3IpKQor KyAgICAgIHJldHVybiBQSE9UT1NfVFJBQ0tFUl9RVUVVRSAoc2luZ2xldG9uKTsKKysKKysgIC8q IE9uIGVycm9yIHdlIGRlbGliZXJhdGVseSBkb24ndCB1bnJlZiB0aGUgb2JqZWN0IHNvIHRoYXQg d2Ugd29uJ3QgdHJ5CisrICAgKiBhbmQgcmUtaW5pdGlhbGl6ZSBUcmFja2VyIHdoZW4gY2FsbGVk IGFnYWluLgorKyAgICovCisrICByZXR1cm4gTlVMTDsKKyt9CisrCisrCisrY29uc3QgZ2NoYXIg KgorK3Bob3Rvc190cmFja2VyX3F1ZXVlX2dldF9taW5lcl9mc19idXNuYW1lIChQaG90b3NUcmFj a2VyUXVldWUgKnNlbGYpCisreworKyAgcmV0dXJuIHNlbGYtPm1pbmVyX2ZzX2J1c25hbWU7Cisr fQorKworKworK2NvbnN0IGdjaGFyICoKKytwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJf ZnNfY29udHJvbF9idXNuYW1lIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpCisreworKyAgcmV0 dXJuIHNlbGYtPm1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZTsKKyt9CisrCisrCisrVHJhY2tlck5v dGlmaWVyICoKKytwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbm90aWZpZXIgKFBob3Rvc1RyYWNr ZXJRdWV1ZSAqc2VsZikKKyt7CisrICAvKiBXZSB3YW50IG5vdGlmaWNhdGlvbnMgb24gZmlsZXN5 c3RlbSBjaGFuZ2VzLCB3ZSBkb24ndCBuZWVkIHRoZW0gZm9yIHRoZQorKyAgICogbG9jYWwgZGF0 YWJhc2Ugd2hpY2ggd2UgbWFuYWdlIG91cnNlbHZlcy4KKysgICAqLworKyAgcmV0dXJuIHRyYWNr ZXJfc3BhcnFsX2Nvbm5lY3Rpb25fY3JlYXRlX25vdGlmaWVyIChzZWxmLT5taW5lcl9mc19jb25u ZWN0aW9uKTsKKyB9CisgCisgCitAQCAtMzUxLDYgKzUzMiw3IEBAIHBob3Rvc190cmFja2VyX3F1 ZXVlX3NlbGVjdCAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmLAorIH0KKyAKKyAKKysKKyB2b2lk CisgcGhvdG9zX3RyYWNrZXJfcXVldWVfdXBkYXRlIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaG90b3NRdWVyeSAqcXVlcnksCitkaWZm IC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmggYi9zcmMvcGhvdG9zLXRyYWNrZXIt cXVldWUuaAoraW5kZXggOTNkOTczMDYuLjZlMzFlY2Y2IDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rv cy10cmFja2VyLXF1ZXVlLmgKKysrKyBiL3NyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5oCitAQCAt MjQsMTYgKzI0LDIzIEBACisgI2RlZmluZSBQSE9UT1NfVFJBQ0tFUl9RVUVVRV9ICisgCisgI2lu Y2x1ZGUgPGdpby9naW8uaD4KKysjaW5jbHVkZSA8bGlidHJhY2tlci1zcGFycWwvdHJhY2tlci1z cGFycWwuaD4KKyAKKyAjaW5jbHVkZSAicGhvdG9zLXF1ZXJ5LmgiCisgCisgR19CRUdJTl9ERUNM UworIAorKyNkZWZpbmUgVFJBQ0tFUl9QSUNUVVJFU19HUkFQSCAiaHR0cDovL3RyYWNrZXIuYXBp Lmdub21lLm9yZy9vbnRvbG9neS92My90cmFja2VyI1BpY3R1cmVzIgorKworICNkZWZpbmUgUEhP VE9TX1RZUEVfVFJBQ0tFUl9RVUVVRSAocGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X3R5cGUgKCkp CisgR19ERUNMQVJFX0ZJTkFMX1RZUEUgKFBob3Rvc1RyYWNrZXJRdWV1ZSwgcGhvdG9zX3RyYWNr ZXJfcXVldWUsIFBIT1RPUywgVFJBQ0tFUl9RVUVVRSwgR09iamVjdCk7CisgCisgUGhvdG9zVHJh Y2tlclF1ZXVlICAgICpwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBfc2luZ2xldG9uICAgICAgICAg IChHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLCBHRXJyb3IgKiplcnJvcik7CisgCisrY29uc3Qg Z2NoYXIgKiAgICAgICAgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNfYnVzbmFt ZSAgICAgICAgIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpOworK2NvbnN0IGdjaGFyICogICAg ICAgICAgcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSAo UGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKTsKKytUcmFja2VyTm90aWZpZXIgKiAgICAgIHBob3Rv c190cmFja2VyX3F1ZXVlX2dldF9ub3RpZmllciAgICAgICAgICAgICAgICAgKFBob3Rvc1RyYWNr ZXJRdWV1ZSAqc2VsZik7CisrCisgdm9pZCAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tl cl9xdWV1ZV9zZWxlY3QgICAgICAgICAgICAgICAgIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQaG90b3NRdWVyeSAqcXVlcnksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2FuY2VsbGFi bGUgKmNhbmNlbGxhYmxlLAorZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1yZXNvdXJj ZXMueG1sIGIvc3JjL3Bob3Rvcy10cmFja2VyLXJlc291cmNlcy54bWwKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMTgxNzdhYTAuLjAwMDAwMDAwCistLS0gYS9zcmMvcGhvdG9zLXRy YWNrZXItcmVzb3VyY2VzLnhtbAorKysrIC9kZXYvbnVsbAorQEAgLTEsMzEgKzAsMCBAQAorLTwh RE9DVFlQRSBub2RlIFBVQkxJQworLSItLy9mcmVlZGVza3RvcC8vRFREIEQtQlVTIE9iamVjdCBJ bnRyb3NwZWN0aW9uIDEuMC8vRU4iCistImh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3N0YW5k YXJkcy9kYnVzLzEuMC9pbnRyb3NwZWN0LmR0ZCI+CistCistPCEtLQorLSBQaG90b3MgLSBhY2Nl c3MsIG9yZ2FuaXplIGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRQorLSBDb3B5cmlnaHQg wqkgMjAxMiDigJMgMjAxOSBSZWQgSGF0LCBJbmMuCistCistIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CistIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CistIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCistIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CistCistIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorLSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCistIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCistCistIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCistIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorLS0t PgorLQorLTxub2RlIG5hbWU9Ii8iIHhtbG5zOmRvYz0iaHR0cDovL3d3dy5mcmVlZGVza3RvcC5v cmcvZGJ1cy8xLjAvZG9jLmR0ZCI+CistICA8aW50ZXJmYWNlIG5hbWU9Im9yZy5mcmVlZGVza3Rv cC5UcmFja2VyMS5SZXNvdXJjZXMiPgorLSAgICA8c2lnbmFsIG5hbWU9IkdyYXBoVXBkYXRlZCI+ CistICAgICAgPGFyZyBuYW1lPSJjbGFzc05hbWUiIHR5cGU9InMiIC8+CistICAgICAgPGFyZyBu YW1lPSJkZWxldGVFdmVudHMiIHR5cGU9ImEoaWlpaSkiIC8+CistICAgICAgPGFyZyBuYW1lPSJp bnNlcnRFdmVudHMiIHR5cGU9ImEoaWlpaSkiIC8+CistICAgIDwvc2lnbmFsPgorLSAgPC9pbnRl cmZhY2U+CistPC9ub2RlPgorZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdXRpbHMuYyBiL3NyYy9w aG90b3MtdXRpbHMuYworaW5kZXggYzYzODI5N2IuLmNjODU5M2Q4IDEwMDY0NAorLS0tIGEvc3Jj L3Bob3Rvcy11dGlscy5jCisrKysgYi9zcmMvcGhvdG9zLXV0aWxzLmMKK0BAIC0xMjYxLDcgKzEy NjEsMTMgQEAgcGhvdG9zX3V0aWxzX3NldF9lZGl0ZWRfbmFtZSAoY29uc3QgZ2NoYXIgKnVybiwg Y29uc3QgZ2NoYXIgKnRpdGxlKQorICAgZ19hdXRvcHRyIChQaG90b3NUcmFja2VyUXVldWUpIHF1 ZXVlID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7CisgCistICBz cGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJJTlNFUlQgT1IgUkVQTEFDRSB7IDwlcz4gbmllOnRp dGxlIFwiJXNcIiB9IiwgdXJuLCB0aXRsZSk7CisrICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYg KCJXSVRIIHRyYWNrZXI6UGljdHVyZXMgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAi REVMRVRFIHsgPCVzPiBuaWU6dGl0bGUgP3RpdGxlIH0gIgorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiSU5TRVJUIHsgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICA8JXM+ IGEgbm1tOlBob3RvIDsgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIG5pZTp0 aXRsZSBcIiVzXCIgLiAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ9IgorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUgeyA8JXM+IG5pZTp0aXRsZSA/dGl0bGUgfSIs IHVybiwgdXJuLCB0aXRsZSwgdXJuKTsKKyAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoTlVM TCwgc3BhcnFsKTsKKyAKKyAgIHsKK0BAIC0xMjg5LDkgKzEyOTUsMTkgQEAgcGhvdG9zX3V0aWxz X3NldF9mYXZvcml0ZSAoY29uc3QgZ2NoYXIgKnVybiwgZ2Jvb2xlYW4gaXNfZmF2b3JpdGUpCisg ICBnX2F1dG9wdHIgKFBob3Rvc1RyYWNrZXJRdWV1ZSkgcXVldWUgPSBOVUxMOworICAgZ19hdXRv ZnJlZSBnY2hhciAqc3BhcnFsID0gTlVMTDsKKyAKKy0gIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50 ZiAoIiVzIHsgPCVzPiBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSB9IiwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlzX2Zhdm9yaXRlKSA/ICJJTlNFUlQgT1Ig UkVQTEFDRSIgOiAiREVMRVRFIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJuKTsK KysgIGlmIChpc19mYXZvcml0ZSkKKysgICAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiSU5T RVJUIERBVEEgeyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgR1JBUEggdHJh Y2tlcjpQaWN0dXJlcyB7IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPCVz PiBhIG5tbTpQaG90byA7ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAg bmFvOmhhc1RhZyBuYW86cHJlZGVmaW5lZC10YWctZmF2b3JpdGUgIgorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIgIH0gIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ9 IiwgdXJuKTsKKysgIGVsc2UKKysgICAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiREVMRVRF IERBVEEgeyIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBHUkFQSCB0cmFja2Vy OlBpY3R1cmVzIHsiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICA8JXM+IG5h bzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlICIKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiICB9ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifSIs IHVybik7CisgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9uZXcgKE5VTEwsIHNwYXJxbCk7CisgCisg ICB7CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy11dGlscy5oIGIvc3JjL3Bob3Rvcy11dGlscy5o CitpbmRleCA3OGVjMzY2OC4uZjE0NTBmN2QgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXV0aWxz LmgKKysrKyBiL3NyYy9waG90b3MtdXRpbHMuaAorQEAgLTQ2LDcgKzQ2LDcgQEAgR19CRUdJTl9E RUNMUworICNkZWZpbmUgUEhPVE9TX1RSQUNLRVJfQ09OVFJPTExFUl9FWFRFTlNJT05fUE9JTlRf TkFNRSAicGhvdG9zLXRyYWNrZXItY29udHJvbGxlciIKKyAKKyAjZGVmaW5lIFBIT1RPU19DT0xM RUNUSU9OX1NDUkVFTlNIT1QgXAorLSAgImh0dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9v bnRvbG9naWVzLzIwMDcvMDMvMjIvbmZvI2ltYWdlLWNhdGVnb3J5LXNjcmVlbnNob3QiCisrICAi aHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9uZm8jaW1hZ2UtY2F0ZWdv cnktc2NyZWVuc2hvdCIKKyAjZGVmaW5lIFBIT1RPU19FWFBPUlRfU1VCUEFUSCAiRXhwb3J0cyIK KyAKKyB0eXBlZGVmIGVudW0KK2RpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRl bXBsYXRlIGIvc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQoraW5kZXggMWNlZjk4ZTgu LjE0ZTA4MDI3IDEwMDY0NAorLS0tIGEvc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQor KysrIGIvc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQorQEAgLTEsMzAgKzEsNDIgQEAK Ky1TRUxFQ1Qge3twcm9qZWN0aW9ufX0KKytTRUxFQ1Qge3tmaW5hbF9wcm9qZWN0aW9ufX0KKytG Uk9NIE5BTUVEIHRyYWNrZXI6UGljdHVyZXMKKyB7CisgICAgIHsKKy0gICAgICAgIFNFTEVDVCB7 e3Byb2plY3Rpb259fQorKyAgICAgICAgU0VMRUNUIHt7bWFpbl9wcm9qZWN0aW9ufX0KKyAgICAg ICAgIHsKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIFNFTEVDVCA/dXJuIENPVU5U KD9pdGVtKSBBUyA/Y291bnQKKyAgICAgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICAg ICAge3t2YWx1ZXN9fQorKyAgICAgICAgICAgICAgICAgICAgVkFMVUVTICg/ZmlsZSA/ZmlsZW5h bWUgP2NyZWF0b3IgP3B1Ymxpc2hlcikgeyAoIiIgIiIgIiIgIiIpIH0KKyAgICAgICAgICAgICAg ICAgICAgID91cm4gYSBuZm86RGF0YUNvbnRhaW5lci4KKy0gICAgICAgICAgICAgICAgICAgID9p dGVtIGEgbm1tOlBob3RvOyBuaWU6aXNQYXJ0T2YgP3Vybi4KKy0gICAgICAgICAgICAgICAgfSBH Uk9VUCBCWSA/dXJuCisrICAgICAgICAgICAgICAgICAgICA/aXRlbSBhIG5tbTpQaG90byA7Cisr ICAgICAgICAgICAgICAgICAgICAgICBuaWU6aXNQYXJ0T2YgP3VybiAuCisrICAgICAgICAgICAg ICAgICAgICB7e2l0ZW1fcGF0dGVybn19CisrICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAg ICAgICAgR1JPVVAgQlkgP3VybgorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBGSUxURVIg KD9jb3VudCA+IDAgJiYge3tjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c2VhcmNo X2ZpbHRlcn19KQorICAgICAgICAgfQorLSAgICAgICAgR1JPVVAgQlkgP3VybgorICAgICB9Cisg ICAgIFVOSU9OCisgICAgIHsKKy0gICAgICAgIFNFTEVDVCB7e3Byb2plY3Rpb259fQorKyAgICAg ICAgU0VMRUNUIHt7c2Vjb25kX3Byb2plY3Rpb259fQorICAgICAgICAgeworLSAgICAgICAgICAg ID91cm4gYSBubW06UGhvdG8gLgorLSAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3Jl YXRvciA/Y3JlYXRvciAuIH0KKy0gICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxp c2hlciA/cHVibGlzaGVyIC4gfQorICAgICAgICAgICAgIHt7aXRlbV9wYXR0ZXJufX0KKy0gICAg ICAgICAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmls dGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisrICAgICAgICAgICAgU0VSVklDRSA8ZGJ1czp7 e21pbmVyX2ZzX2J1c25hbWV9fT4KKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgIFNF TEVDVCB7e21haW5fcHJvamVjdGlvbn19CisrICAgICAgICAgICAgICAgIHsKKysgICAgICAgICAg ICAgICAgICAgIHt7dmFsdWVzfX0KKysgICAgICAgICAgICAgICAgICAgID91cm4gYSBubW06UGhv dG8gOworKyAgICAgICAgICAgICAgICAgICAgICAgIG5pZTppc1N0b3JlZEFzID9maWxlIC4KKysg ICAgICAgICAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAu IH0KKysgICAgICAgICAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286cHVibGlzaGVyID9w dWJsaXNoZXIgLiB9CisrICAgICAgICAgICAgICAgICAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1 bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisr ICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICB9CisgICAgICAgICB9CistICAgICAgICBH Uk9VUCBCWSA/dXJuCisgICAgIH0KKyB9Cisge3tvcmRlcn19CitkaWZmIC0tZ2l0IGEvc3JjL3F1 ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvY29sbGVjdGlv bnMuc3BhcnFsLnRlbXBsYXRlCitpbmRleCAyMGIzNWNkNi4uNGRmYjM0NWEgMTAwNjQ0CistLS0g YS9zcmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUKKysrKyBiL3NyYy9xdWVy aWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZQorQEAgLTEsMTQgKzEsMjAgQEAKKy1TRUxF Q1Qge3twcm9qZWN0aW9ufX0KKytTRUxFQ1Qge3tmaW5hbF9wcm9qZWN0aW9ufX0KKyB7CisrICAg IFNFTEVDVCB7e21haW5fcHJvamVjdGlvbn19CisgICAgIHsKKy0gICAgICAgIFNFTEVDVCA/dXJu IENPVU5UKD9pdGVtKSBBUyA/Y291bnQKKyAgICAgICAgIHsKKy0gICAgICAgICAgICA/dXJuIGEg bmZvOkRhdGFDb250YWluZXIuCistICAgICAgICAgICAgP2l0ZW0gYSBubW06UGhvdG87IG5pZTpp c1BhcnRPZiA/dXJuLgorLSAgICAgICAgfSBHUk9VUCBCWSA/dXJuCisrICAgICAgICAgICAgU0VM RUNUID91cm4gQ09VTlQoP2l0ZW0pIEFTID9jb3VudAorKyAgICAgICAgICAgIHsKKysgICAgICAg ICAgICAgICAge3t2YWx1ZXN9fQorKyAgICAgICAgICAgICAgICBWQUxVRVMgKD9maWxlID9maWxl bmFtZSA/Y3JlYXRvciA/cHVibGlzaGVyKSB7ICgiIiAiIiAiIiAiIikgfQorKyAgICAgICAgICAg ICAgICA/dXJuIGEgbmZvOkRhdGFDb250YWluZXIgLgorKyAgICAgICAgICAgICAgICA/aXRlbSBh IG5tbTpQaG90byA7CisrICAgICAgICAgICAgICAgICAgIG5pZTppc1BhcnRPZiA/dXJuIC4KKysg ICAgICAgICAgICB9CisrICAgICAgICAgICAgR1JPVVAgQlkgP3VybgorKyAgICAgICAgfQorKyAg ICAgICAgRklMVEVSICg/Y291bnQgPiAwICYmIHt7Y29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXJ9 fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKyAgICAgfQorLSAgICBGSUxURVIgKD9jb3VudCA+IDAg JiYge3tjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQor IH0KKy1HUk9VUCBCWSA/dXJuCisge3tvcmRlcn19Cisge3tvZmZzZXRfbGltaXR9fQorZGlmZiAt LWdpdCBhL3NyYy9xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUgYi9zcmMv cXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlCitpbmRleCAwODg1YTA4YS4u OWEwZDc4MDYgMTAwNjQ0CistLS0gYS9zcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFs LnRlbXBsYXRlCisrKysgYi9zcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBs YXRlCitAQCAtMSwxMiArMSwyMCBAQAorLVNFTEVDVCB7e3Byb2plY3Rpb259fQorK1NFTEVDVCB7 e2ZpbmFsX3Byb2plY3Rpb259fQorK0ZST00gdHJhY2tlcjpQaWN0dXJlcworIHsKKyAgICAgP3Vy biBhIG5tbTpQaG90byAuCisgICAgID91cm4gYSBubW06UGhvdG87IG5hbzpoYXNUYWcgbmFvOnBy ZWRlZmluZWQtdGFnLWZhdm9yaXRlIC4KKy0gICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9y ID9jcmVhdG9yIC4gfQorLSAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlz aGVyIC4gfQorLSAgICB7e2l0ZW1fcGF0dGVybn19CistICAgIEZJTFRFUiAoe3twaG90b3NfZGVm YXVsdF9maWx0ZXJ9fSAmJiB7e3NvdXJjZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkK KysgICAgU0VSVklDRSA8ZGJ1czp7e21pbmVyX2ZzX2J1c25hbWV9fT4KKysgICAgeworKyAgICAg ICAgU0VMRUNUIHt7bWFpbl9wcm9qZWN0aW9ufX0KKysgICAgICAgIHsKKysgICAgICAgICAgICA/ dXJuIGEgbm1tOlBob3RvIDsKKysgICAgICAgICAgICAgICAgbmllOmlzU3RvcmVkQXMgP2ZpbGUg LgorKyAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0K KysgICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4g fQorKyAgICAgICAgICAgIHt7aXRlbV9wYXR0ZXJufX0KKysgICAgICAgICAgICBGSUxURVIgKHt7 cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hf ZmlsdGVyfX0pCisrICAgICAgICB9CisrICAgIH0KKyB9CistR1JPVVAgQlkgP3VybgorIHt7b3Jk ZXJ9fQorIHt7b2Zmc2V0X2xpbWl0fX0KK2RpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9waG90b3Mu c3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQoraW5k ZXggNGViMTBiNzQuLjZhZGUzNWUyIDEwMDY0NAorLS0tIGEvc3JjL3F1ZXJpZXMvcGhvdG9zLnNw YXJxbC50ZW1wbGF0ZQorKysrIGIvc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQor QEAgLTEsMTEgKzEsMTkgQEAKKy1TRUxFQ1Qge3twcm9qZWN0aW9ufX0KKytTRUxFQ1Qge3tmaW5h bF9wcm9qZWN0aW9ufX0KKytGUk9NIHRyYWNrZXI6UGljdHVyZXMKKyB7CistICAgID91cm4gYSBu bW06UGhvdG8gLgorLSAgICBPUFRJT05BTCB7ID91cm4gbmNvOmNyZWF0b3IgP2NyZWF0b3IgLiB9 CistICAgIE9QVElPTkFMIHsgP3VybiBuY286cHVibGlzaGVyID9wdWJsaXNoZXIgLiB9CistICAg IHt7aXRlbV9wYXR0ZXJufX0KKy0gICAgRklMVEVSICh7e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19 ICYmIHt7c291cmNlX2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorKyAgICBTRVJWSUNF IDxkYnVzOnt7bWluZXJfZnNfYnVzbmFtZX19PgorKyAgICB7CisrICAgICAgICBTRUxFQ1Qge3tt YWluX3Byb2plY3Rpb259fQorKyAgICAgICAgeworKyAgICAgICAgICAgIHt7dmFsdWVzfX0KKysg ICAgICAgICAgICA/dXJuIGEgbm1tOlBob3RvIDsKKysgICAgICAgICAgICAgICAgbmllOmlzU3Rv cmVkQXMgP2ZpbGUgLgorKyAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/ Y3JlYXRvciAuIH0KKysgICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/ cHVibGlzaGVyIC4gfQorKyAgICAgICAgICAgIHt7aXRlbV9wYXR0ZXJufX0KKysgICAgICAgICAg ICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0g JiYge3tzZWFyY2hfZmlsdGVyfX0pCisrICAgICAgICB9CisrICAgIH0KKyB9CistR1JPVVAgQlkg P3VybgorIHt7b3JkZXJ9fQorIHt7b2Zmc2V0X2xpbWl0fX0KKy0tIAorR2l0TGFiCisKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1waG90 b3MvdGVtcGxhdGUKaW5kZXggMWVkOGI5ODYxZWMuLjdjODNhMmU3NWQ0IDEwMDY0NAotLS0gYS9z cmNwa2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXBob3Rvcy90 ZW1wbGF0ZQpAQCAtMSwyMiArMSwyMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtcGhv dG9zJwogcGtnbmFtZT1nbm9tZS1waG90b3MKLXZlcnNpb249My4zNC4yCit2ZXJzaW9uPTMuMzcu OTEuMQogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgog Y29uZmlndXJlX2FyZ3M9Ii1EZG9ndGFpbD1mYWxzZSIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNv bmZpZyBnZXR0ZXh0IGl0c3Rvb2wgZ2xpYi1kZXZlbCBnZGstcGl4YnVmIGxpYnJzdmciCiBtYWtl ZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgYmFibC1kZXZlbCBleGVtcGktZGV2ZWwgbGNtczItZGV2ZWwK LSBnZmJncmFwaC1kZXZlbCB0cmFja2VyLWRldmVsIGxpYmV4aWYtZGV2ZWwgbGlicnN2Zy1kZXZl bCBncmlsby1kZXZlbAorIGdmYmdyYXBoLWRldmVsIHRyYWNrZXIzLWRldmVsIGxpYmV4aWYtZGV2 ZWwgbGlicnN2Zy1kZXZlbCBncmlsby1kZXZlbAogIGxpYmdleGl2Mi1kZXZlbCBnbm9tZS1vbmxp bmUtYWNjb3VudHMtZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJnZGF0YS1kZXZlbAogIGdl b2NvZGUtZ2xpYi1kZXZlbCBsaWJkYXp6bGUtZGV2ZWwgZ2VnbC1kZXZlbCIKLWRlcGVuZHM9ImRl c2t0b3AtZmlsZS11dGlscyB0cmFja2VyIHRyYWNrZXItbWluZXJzIgorZGVwZW5kcz0iZGVza3Rv cC1maWxlLXV0aWxzIHRyYWNrZXIzIHRyYWNrZXIzLW1pbmVycyIKIHNob3J0X2Rlc2M9IkFjY2Vz cywgb3JnYW5pemUsIGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRSIKIG1haW50YWluZXI9 IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9QaG90b3MiCi1k aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ25vbWUtcGhvdG9zLyR7dmVyc2lvbiUuKn0vZ25vbWUt cGhvdG9zLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09M2M1OWM3NmVmMjg2MThlYzA1NWEx Nzk5ZDEwNDAyODdiOTBhMGIwMjFmZWIwYTAyYjFlYWMyOGU5YzJlYjQxYQorZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9L2dub21lLXBob3Rvcy8ke3ZlcnNpb24lLiouKn0vZ25vbWUtcGhvdG9zLSR7 dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09Mjc4ZGEyMzIzNGUyN2M1NDMwMjBkYWU5NDNhZDUy MDg2YjllY2FhNWVlM2FhZDBiMDMxYjg2ZWUwNGQzOTRhYQorcGF0Y2hfYXJncz0iLU5wMSIKIAog YnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIGZj NDlmYTZiYzAzZTkxZmU1N2I1NmVjOWIxMzY0OTE0OTJmMDMyZGMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBU aHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzYvMTA1XSBl b2c6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9lb2cvdGVtcGxhdGUgfCA2ICsrKy0t LQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2VvZy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZW9nL3RlbXBsYXRlCmluZGV4 IGU0Y2FjYjcwNzllLi4yNzU5MjczODcyZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9lb2cvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9lb2cvdGVtcGxhdGUKQEAgLTEsMjAgKzEsMjAgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2VvZycKIHBrZ25hbWU9ZW9nCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0z LjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24K IGNvbmZpZ3VyZV9hcmdzPSItRGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNl KSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZp ZyIKIG1ha2VkZXBlbmRzPSJleGVtcGktZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJleGlm LWRldmVsIGxpYnBlYXMtZGV2ZWwKLSBsaWJyc3ZnLWRldmVsIGxjbXMyLWRldmVsIgorIGxpYnJz dmctZGV2ZWwgbGNtczItZGV2ZWwgbGlicG9ydGFsLWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1m aWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSBzaGFyZWQtbWltZS1pbmZvIgogc2hvcnRfZGVz Yz0iRXllIG9mIEdOT01FIGdyYXBoaWNzIHZpZXdlciBwcm9ncmFtIgogbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V5ZU9mR25vbWUiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZW9nLyR7dmVyc2lvbiUuKn0vZW9nLSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09ZTQ1NGExYTdhYTVlM2EzMzIxZWFiMDExNjc3ODExMGU1YTdhN2I2 M2JjZjIxNjc2ZWRhMWE3YmUxODdjOWM5NQorY2hlY2tzdW09ZTFhM2E0N2MzODY4OGNkNTM4ZGVk YTYyN2MwZWZmMTEzZDA1YzMxNmIxZGRlNjI0MzE1MDQzNzI1OWQyZDk2Mwogc2hsaWJfcHJvdmlk ZXM9ImxpYmVvZy5zbyIKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKCkZyb20gODQ4MTg2N2U1OWViMjM3 MWE4MjRiNDRiNjQ3OTA0MzNjODkwNWYzNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIw MjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3Ny8xMDVdIGV2aW5jZTogdXBkYXRl IHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZSB8IDI0ICsrKysrKysrKysr KysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUgYi9zcmNwa2dzL2V2 aW5jZS90ZW1wbGF0ZQppbmRleCA0MDM1ZjE1YzY5MC4uMTExY2Y3MTM5NmEgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvZXZpbmNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZpbmNlL3RlbXBsYXRlCkBA IC0xLDEzICsxLDEzIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldmluY2UnCiBwa2duYW1lPWV2 aW5jZQotdmVyc2lvbj0zLjM2LjcKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9o ZWxwZXI9ImdpciIKLWJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKLWNvbmZpZ3VyZV9hcmdzPSIk KHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKSAtLWRpc2FibGUtc2NoZW1hcy1jb21waWxl Ci0gLS1lbmFibGUtY29taWNzIC0tZGlzYWJsZS1zdGF0aWMgLS1lbmFibGUteHBzIC0tZGlzYWJs ZS10MWxpYgotIC0tZGlzYWJsZS1icm93c2VyLXBsdWdpbiAtLWVuYWJsZS1wcyIKLWhvc3RtYWtl ZGVwZW5kcz0iYWR3YWl0YS1pY29uLXRoZW1lIGdldHRleHQgZ2xpYi1kZXZlbCBnbm9tZS1kb2Mt dXRpbHMKK2J1aWxkX3N0eWxlPW1lc29uCitjb25maWd1cmVfYXJncz0iJCh2b3B0X2Jvb2wgZ2ly IGludHJvc3BlY3Rpb24pICQodm9wdF9ib29sIGd0a19kb2MgZ3RrX2RvYykKKyAtRGNvbWljcz1l bmFibGVkIC1EcHM9ZW5hYmxlZCAtRHhwcz1lbmFibGVkIC1EZHZpPWRpc2FibGVkCisgLUR0MWxp Yj1kaXNhYmxlZCAtRGJyb3dzZXJfcGx1Z2luPWZhbHNlIgoraG9zdG1ha2VkZXBlbmRzPSJhZHdh aXRhLWljb24tdGhlbWUgZ2V0dGV4dCBndGstZG9jIGdsaWItZGV2ZWwgZ25vbWUtZG9jLXV0aWxz CiAgaXRzdG9vbCBwa2ctY29uZmlnIHBlcmwtWE1MLVBhcnNlciBhcHBzdHJlYW0tZ2xpYiIKICMg WFhYIG1pc3NpbmcgcGFja2FnZXMgZm9yIERWSSBiYWNrZW5kLgogbWFrZWRlcGVuZHM9ImFkd2Fp dGEtaWNvbi10aGVtZSBkanZ1bGlicmUtZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJTTS1k ZXZlbApAQCAtMTksMTEgKzE5LDE1IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9FdmluY2UiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT02NWQ2MWE0MjNlM2ZiYmUwNzAwMWY2NWU4NzQyMmRmYjdkMmU0MmI5ZWRmMGNh NmExZDQyN2FmOWEwNGI4ZjMyCitjaGVja3N1bT0yNmRmODk3YTQxNzU0NWI0NzZkMjYwNmIxNDcz MTEyMmU4NDI3OGFlOTk0YmQ2NGVhNTM1NDQ5YzNjZjAxOTQ4CiAKLWJ1aWxkX29wdGlvbnM9Imdp ciIKK2J1aWxkX29wdGlvbnM9ImdpciBndGtfZG9jIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJn aXIiCiAKK2lmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCWJ1aWxkX29wdGlvbnNfZGVm YXVsdCs9IiBndGtfZG9jIgorZmkKKwogbGliZXZpbmNlX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVz Yys9IiAtIHJ1bnRpbWUgbGlicmFyaWVzIgogCXBrZ19pbnN0YWxsKCkgewpAQCAtNDEsNyArNDUs OSBAQCBldmluY2UtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1v dmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKLQkJdm1vdmUgdXNy L3NoYXJlL2d0ay1kb2MKKwkJaWYgWyAiJGJ1aWxkX29wdGlvbl9ndGtfZG9jIiBdOyB0aGVuCisJ CQl2bW92ZSB1c3Ivc2hhcmUvZ3RrLWRvYworCQlmaQogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dp ciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKIAkJZmkKCkZyb20gOTE2Njky MzM3MjU0MmVlOGZiOWU0ZWNmZmUwYThmNDJkMzk3NzI0ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3OC8xMDVdIGZpbGUt cm9sbGVyOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZmlsZS1yb2xsZXIvdGVtcGxh dGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZSBiL3NyY3BrZ3Mv ZmlsZS1yb2xsZXIvdGVtcGxhdGUKaW5kZXggMDM2MjJhMjIzMTMuLmY4NTZjMzI0MjI5IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2ZpbGUtcm9sbGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZmlsZS1y b2xsZXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdmaWxl LXJvbGxlcicKIHBrZ25hbWU9ZmlsZS1yb2xsZXIKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMu MzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0 dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKQEAgLTEyLDYgKzEyLDYgQEAgbWFp bnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQ TC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0Zp bGVSb2xsZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iOTE0NGRlOGY1MzZm NTgzZWMyOWQ3MDNjMmMxNzBiZjJkMDBjNmMxNjZjZDVlM2Y3ZWZhYmRhNTUxZjEwNDc4CitjaGVj a3N1bT03MjNkMWM2ZTU2N2QzNWRhZDVlZWVhZWI4NmI4ZDE4NzA1NjU4ZWU3M2UwYjNiOTdlYTE2 YWRjN2E0ZGMzMzFhCiAKIENGTEFHUz0iLWZjb21tb24iCgpGcm9tIDUwYWY2NDFmNGM3MTNmM2Ez YmQxYTlmYWJlNmNiMzlkNTY5MTRhN2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIw IDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzkvMTA1XSBnbm9tZS1jYWxlbmRhcjog dXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlIHwg NCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUgYi9zcmNwa2dzL2du b21lLWNhbGVuZGFyL3RlbXBsYXRlCmluZGV4IDljOTFjOGI1ZjRkLi5kM2M3NmI5N2YwZCAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jYWxlbmRhci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2du b21lLWNhbGVuZGFyL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnZ25vbWUtY2FsZW5kYXInCiBwa2duYW1lPWdub21lLWNhbGVuZGFyCi12ZXJzaW9uPTMuMzYu MgordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFr ZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBwa2ctY29uZmlnICQodm9wdF9pZiBnaXIgJ2dv YmplY3QtaW50cm9zcGVjdGlvbicpIgpAQCAtMTMsNyArMTMsNyBAQCBsaWNlbnNlPSJHUEwtMi4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9DYWxlbmRh ciIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWNhbGVu ZGFyL3Jhdy9tYXN0ZXIvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWQw YjA1MzQ1YzA1NTVhMDg1ZTZlNTQyNmVhYjQ5NDk0YWJhMjgyNmM4NTZlYjA2ZmQ3ZmRiNzYyZWMw YzRjMWYKK2NoZWNrc3VtPWMzNjg0MjUyYTcyYmI1OTA4OWQwNzE1MTQ0NThhNGFlYmE0MTdmOTU1 MWZmNWQ1NDhlMWE1OTg0ZTQ3YjQ3MzMKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0 aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIGI0ZDQzNzZhZjdhMmUyNTU1NDMwNzBkZWJmMDYyNjBl NWRmOGQ1NWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDE2OjUxOjU1ICswMjAw ClN1YmplY3Q6IFtQQVRDSCAwODAvMTA1XSBnbm9tZS1tdXNpYzogdXBkYXRlIHRvIDMuMzguMAoK LS0tCiBzcmNwa2dzL2dub21lLW11c2ljL3RlbXBsYXRlIHwgOSArKysrKy0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbm9tZS1tdXNpYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUK aW5kZXggMTI1MTE3MzY0MDcuLjg1YTc1NjEwNTllIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21l LW11c2ljL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUKQEAgLTEs MTkgKzEsMjAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLW11c2ljJwogcGtnbmFtZT1n bm9tZS1tdXNpYwotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBi dWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9Imdl dHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iZ25vbWUt ZGVza3RvcC1kZXZlbCBncmlsby1kZXZlbCBsaWJtZWRpYWFydC1kZXZlbAotIHB5dGhvbjMtZ29i amVjdC1kZXZlbCBweXRob24zLWRidXMgdHJhY2tlci1kZXZlbCBnbm9tZS1vbmxpbmUtYWNjb3Vu dHMtZGV2ZWwKKyBweXRob24zLWdvYmplY3QtZGV2ZWwgcHl0aG9uMy1kYnVzIHRyYWNrZXIzLWRl dmVsIGdub21lLW9ubGluZS1hY2NvdW50cy1kZXZlbAogIGxpYmRhenpsZS1kZXZlbCBncmlsby1w bHVnaW5zIHB5dGhvbjMtY2Fpcm8tZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMg cHl0aG9uMy1kYnVzIHB5dGhvbjMtZ29iamVjdCBweXRob24zLXJlcXVlc3RzCi0gdHJhY2tlciB0 cmFja2VyLW1pbmVycyBnc3QtcGx1Z2lucy1nb29kMSBncmlsby1wbHVnaW5zIGxpYmRhenpsZSIK KyB0cmFja2VyMyB0cmFja2VyMy1taW5lcnMgZ3N0LXBsdWdpbnMtZ29vZDEgZ3JpbG8tcGx1Z2lu cyBsaWJkYXp6bGUKKyBsaWJtZWRpYWFydCIKIHNob3J0X2Rlc2M9IkdOT01FIG11c2ljIHBsYXlp bmcgYXBwbGljYXRpb24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL0FwcHMvTXVzaWMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT03YjgwZjYzMGQxNTgzMzQ5MzVhODc2MDI5NjU1MGNjOTFiNTBkNjA0ZmE2OGI0MDJmZTUxNjVi MTUzMWVjMzMyCitjaGVja3N1bT0zNzBhYTk3ZWU0NjEwZDExYjRiOGY2OTFlNWM5Y2UzMGZhNTU2 NjU4NzBiZjZkNWYyMzE5NjU4YmRmYWNkNzA1CiBsaWIzMmRpc2FibGVkPXllcwoKRnJvbSA2ZTZh ZGU0YTZhMzBhYjdkOTllNTVkZTY1OGUzNzk3MzkyYWUyMmU0IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0 LCAxNSBBdWcgMjAyMCAwMDoxNTo1MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDgxLzEwNV0gZ2Vk aXQ6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICB8ICAyICst CiBzcmNwa2dzL2dlZGl0L3RlbXBsYXRlIHwgMjEgKysrKysrKysrKy0tLS0tLS0tLS0tCiAyIGZp bGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDFlM2RjMzZmM2U4Li44NGI0 N2UxZThjNyAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBA IC0zNjgzLDcgKzM2ODMsNyBAQCBsaWJxaHR0cGVuZ2luZS5zby4xIHFodHRwZW5naW5lLTEuMC4x XzEKIGxpYnFtZG5zZW5naW5lLnNvLjAgcW1kbnNlbmdpbmUtMC4xLjBfMQogbGlieWFuZy5zby4x IGxpYnlhbmctMS4wcjVfMQogbGliaHRwLnNvLjIgbGliaHRwLTAuNS4zMF8xCi1saWJnZWRpdC0z LjM2LnNvIGdlZGl0LTMuMzYuMV8xCitsaWJnZWRpdC0zLjM4LnNvIGdlZGl0LTMuMzcuM18xCiBs aWJjaGV3aW5nLnNvLjMgbGliY2hld2luZy0wLjUuMV8xCiBsaWJkd2FydmVzLnNvLjEgcGFob2xl LTEuMTJfMQogbGliZHdhcnZlc19lbWl0LnNvLjEgcGFob2xlLTEuMTJfMQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9nZWRpdC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUKaW5kZXggNGUy NzNhYWYxODIuLmRjMmRlOGI0YzQ4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dlZGl0L3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUKQEAgLTEsMTQgKzEsMTQgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2dlZGl0JwogcGtnbmFtZT1nZWRpdAotdmVyc2lvbj0zLjM2LjEKK3ZlcnNp b249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1l c29uCiBweWNvbXBpbGVfZGlycz0idXNyL2xpYi9nZWRpdC9wbHVnaW5zIgotY29uZmlndXJlX2Fy Z3M9Ii1EcGx1Z2lucz10cnVlIC1EdmFwaT0kKHZvcHRfaWYgdmFsYSB0cnVlIGZhbHNlKQotIC1E aW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgorY29uZmlndXJlX2FyZ3M9 Ii1EcGx1Z2lucz10cnVlCisgJCh2b3B0X2Jvb2wgZ2lyIHZhcGkpICQodm9wdF9ib29sIGdpciBp bnRyb3NwZWN0aW9uKSIKIGhvc3RtYWtlZGVwZW5kcz0iaXRzdG9vbCBwa2ctY29uZmlnIGdsaWIt ZGV2ZWwgZ2RrLXBpeGJ1ZiBwZXJsIGdldHRleHQKLSAkKHZvcHRfaWYgdmFsYSB2YWxhKSIKKyAk KHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9ImdzZXR0aW5ncy1kZXNrdG9wLXNjaGVt YXMtZGV2ZWwgZ3NwZWxsLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsCiAgbGlicGVhcy1kZXZl bCBsaWJzb3VwLWRldmVsIHRlcGwtZGV2ZWwgJCh2b3B0X2lmIGdpciAncHl0aG9uMy1nb2JqZWN0 LWRldmVsJykiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgZ3NldHRpbmdzLWRlc2t0b3At c2NoZW1hcyBpc28tY29kZXMiCkBAIC0xNywyMyArMTcsMjIgQEAgbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0dlZGl0IgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09NmRjMzhlZGEyMjdkMWMzNjhlMDM5ZTliZmY0ODVkMGJl ZTlhNDlkNWY5NTYwYzM4N2VlMDhmNTgxOGE0ZTM4Nwotc2hsaWJfcHJvdmlkZXM9ImxpYmdlZGl0 LTMuMzYuc28iCitjaGVja3N1bT00NmNmMDY4MDZkZTU4ZjZlNWU5NWUzNGZkOThhZDBiMmMwYzUw YjNkYWU2ZDIzY2E1N2QxNmQ1Y2M0MTg1NmY4CitzaGxpYl9wcm92aWRlcz0ibGliZ2VkaXQtMy4z OC5zbyIKIHB5dGhvbl92ZXJzaW9uPTMKIAotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEiCi1idWls ZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgorYnVpbGRf b3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGdlZGl0LWRldmVsX3BhY2thZ2UoKSB7Ci0JZGVwZW5k cz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IGd0a3NvdXJjZXZpZXctZGV2 ZWwgbGlicGVhcy1kZXZlbCIKKwlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0gZ3Rrc291cmNldmlldzQtZGV2ZWwKKwkgbGlicGVhcy1kZXZlbCB0ZXBsLWRldmVs IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsK IAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJaWYgWyAi JGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9nZWRpdC9naXIt MS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJdm1vdmUg dXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIGM0NzJhZmZiZjViOTYzNmEyY2Y0OTAwYmNm ZDdlYzljZDVhZTUxMzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDE1IEF1ZyAyMDIwIDAwOjE4OjQ5 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODIvMTA1XSBnZWRpdC1wbHVnaW5zOiB1cGRhdGUgdG8g My4zOC4wCgotLS0KIHNyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZSB8IDggKysrKy0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlIGIvc3JjcGtncy9nZWRpdC1wbHVn aW5zL3RlbXBsYXRlCmluZGV4IGYyZjk0ZTYzZjU5Li5iNzgzM2RiMTJkZSAxMDA2NDQKLS0tIGEv c3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2VkaXQtcGx1Z2lu cy90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2VkaXQt cGx1Z2lucycKIHBrZ25hbWU9Z2VkaXQtcGx1Z2lucwotdmVyc2lvbj0zLjM2LjIKK3ZlcnNpb249 My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogcHljb21waWxlX2RpcnM9InVz ci9saWIvZ2VkaXQvcGx1Z2lucyIKLWhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVs IGl0c3Rvb2wgcGtnLWNvbmZpZyB2YWxhIGFwcHN0cmVhbS1nbGliIHB5dGhvbjMtZ29iamVjdAot IGd1Y2hhcm1hcC1kZXZlbCB2dGUzLWRldmVsIgoraG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGds aWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEgYXBwc3RyZWFtLWdsaWIKKyBweXRob24z LWdvYmplY3QgZ3VjaGFybWFwLWRldmVsIHZ0ZTMtZGV2ZWwiCiBtYWtlZGVwZW5kcz0iZ2VkaXQt ZGV2ZWwgZ3Rrc291cmNldmlldzQtZGV2ZWwgZ3RrKzMtZGV2ZWwgbGliZ2l0Mi1nbGliLWRldmVs CiAgbGliZ2xpYi1kZXZlbCBsaWJwZWFzLWRldmVsIHB5dGhvbi1kYnVzLWRldmVsIHB5dGhvbjMt ZGV2ZWwgemVpdGdlaXN0LWRldmVsIgogZGVwZW5kcz0icHl0aG9uMy1nb2JqZWN0IGd1Y2hhcm1h cCB2dGUzIgpAQCAtMTQsNSArMTQsNSBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94 QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL3dpa2kuZ25vbWUub3JnL2FjdGlvbi9zaG93L0FwcHMvR2VkaXQvUGx1Z2luc0xpc3Rz IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3Br Z25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MTE1MWI5NTUzOTNmNzViNWVlNTli NTExNTRmZGE0ZjE5MjhmNDk4ZmU5ODZhNTU4NGQzY2Q0NDA4NzZhNmFmNgorY2hlY2tzdW09YmRh MmJkNWFkN2ViZGQ1MzVkMWNjNmM4NzAwYzI5NWRlYzY0YjIyN2M5MTczYzBkMmJhZTAwNjc1MTYy NTlmYgogcHl0aG9uX3ZlcnNpb249MwoKRnJvbSA4OGM0NDBkZjQyZTE1MjUwMTM1MGZhYWM4MzQ3 YzY0OWEwMjE3MTI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAwMDozMzo0OSAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDgzLzEwNV0gZ25vbWUtbGF0ZXg6IHVwZGF0ZSB0byAzLjM4 LjAKCi0tLQogc3JjcGtncy9nbm9tZS1sYXRleC90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRl CmluZGV4IDkwZDYwYmU4NjBhLi44M2ExNmY5ZDRhMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9t ZS1sYXRleC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtbGF0ZXgnCiBwa2duYW1lPWdu b21lLWxhdGV4Ci12ZXJzaW9uPTMuMzIuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM4LjAKK3Jl dmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQog Y29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1hcHBzdHJlYW0tdXRpbCAtLWRpc2FibGUtZGNvbmYt bWlncmF0aW9uCkBAIC0xNSw3ICsxNSw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9HTk9NRS1MYVRlWCIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPTBmMDY5YzdiNGM2NzU0MjU1YTFjN2UzZTNiMDUwOTI1ZDgwNzZm NTU0NTg1MjZhMzBhYjU5ZTBhN2Q1MmFjYzkKK2NoZWNrc3VtPWE4MmE5ZmM2ZjA1NjkyOWVhMThk NmRmZmQxMjFlNzFiMmMyMTc2ODgwOGM4NmVmMWYzNGRhMGY4NmUyMjBkNzcKIAogYnVpbGRfb3B0 aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIDE3MzRiMWEzZWI3 N2U5MzliMmIwODM5N2FjNjk2ZGI4OTcyMjVlYjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1 ZyAyMDIwIDA0OjIzOjMzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODQvMTA1XSBiYW9iYWI6IHVw ZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUgfCA0ICsrLS0KIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUgYi9zcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZQppbmRl eCBhMDI4YmU0Y2Q1Yi4uODgyMTU1MzU2YTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYmFvYmFiL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvYmFvYmFiL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnYmFvYmFiJwogcGtnbmFtZT1iYW9iYWIKLXZlcnNpb249My4zNC4x Cit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtl ZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIGl0c3Rvb2wgZ2xpYi1kZXZlbCB2YWxhIgpAQCAt MTEsNCArMTEsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR0ZETC0xLjEtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9hY3Rpb24vc2hvdy9BcHBzL0Rpc2tVc2FnZUFu YWx5emVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09N2Y5ODFkNGYxMzVlNGY4 MGZiYTNmNjZlODZiMGVlZWRjOTRhMjQzNDY0OTI2MmZmMDFhNWYwY2IwMjdiMjBjNQorY2hlY2tz dW09MDQ4NDY4MTQ3ODYwODE2Yjk3ZjE1ZDUwYjNjODRlOWFjZjA1MzljMTQ0MWNmZWI2MzcwM2Qx MTJlODcyODMyOQoKRnJvbSA4NzJiYzYyYjA1MjUxNDZkOGIzMGY0Mzg2N2RmYzJlYWZjZjM4ZTkw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNDozMTo1MyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDg1LzEwNV0gZ25vbWUtYm94ZXM6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3Jj cGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZSB8IDcgKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LWJveGVzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZQppbmRleCAwZmEy YWU3NmM3Mi4uZTUxZDJkMTlhNWQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYm94ZXMvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJveGVzJwogcGtnbmFtZT1nbm9tZS1ib3hlcwot dmVyc2lvbj0zLjM2LjUKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9 ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCkBAIC04LDcgKzgsOCBAQCBob3N0bWFrZWRlcGVuZHM9 ImdldHRleHQgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEgZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRz PSJjbHV0dGVyLWd0ay1kZXZlbCBmcmVlcmRwLWRldmVsIGd0ay12bmMtZGV2ZWwgbGliYXJjaGl2 ZS1kZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliZ3VkZXYtZGV2ZWwgbGlib3NpbmZvLWRldmVsIGxp YnNlY3JldC1kZXZlbCBsaWJzb3VwLWRldmVsCiAgbGlidXNiLWRldmVsIGxpYnZpcnQtZ2xpYi1k ZXZlbCBsaWJ4bWwyLWRldmVsIHNwaWNlLWd0ay1kZXZlbCBzcGljZS1wcm90b2NvbAotIHRyYWNr ZXItZGV2ZWwgdmFsYS1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIHZ0ZTMtZGV2ZWwiCisgdHJhY2tl ci1kZXZlbCB2YWxhLWRldmVsIHdlYmtpdDJndGstZGV2ZWwgdnRlMy1kZXZlbCBndGtzb3VyY2V2 aWV3NC1kZXZlbAorIGxpYmhhbmR5LWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxz IGhpY29sb3ItaWNvbi10aGVtZSBsaWJvc2luZm8gbGlidmlydC1nbGliIHFlbXUgdHJhY2tlciIK IHNob3J0X2Rlc2M9IkdOT01FIDMgYXBwbGljYXRpb24gdG8gYWNjZXNzIHJlbW90ZSBvciB2aXJ0 dWFsIHN5c3RlbXMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5v cmc+IgpAQCAtMTYsNCArMTcsNCBAQCBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQm94ZXMiCiBjaGFuZ2Vsb2c9Imh0dHBz Oi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9nbm9tZS1ib3hlcy9nbm9tZS0zLTM2 L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT00YzU0Y2FiZTM1NWU4Nzhk MDQ1NzUxNzM0NmU0MjQ3YTg2MGI2ODgzNDEzZDNiZjc3NjgxZGNkMTFlZjQxYmNlCitjaGVja3N1 bT02OTZiNTk5ZmMyMWFmOTQxOTc1Njc5MjA1ZjJiMTI5Y2ZmYTAzNjMyYzQ0NDgxMGRkOTRiMTQw OWQwNDFhMzhiCgpGcm9tIGMxZTQ4NTMwYTAzMjdjNTNkMGRhZTFiMjdkZDNjODA1NTBkNDE0Njcg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjM1OjI0ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwODYvMTA1XSBnbm9tZS1jYWxjdWxhdG9yOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0K IHNyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90 ZW1wbGF0ZQppbmRleCAwNjIxNGIwOGQ5Yi4uZGU4MWU0ODk2OWUgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWNhbGN1bGF0 b3IvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1j YWxjdWxhdG9yJwogcGtnbmFtZT1nbm9tZS1jYWxjdWxhdG9yCi12ZXJzaW9uPTMuMzYuMAotcmV2 aXNpb249MgordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBi dWlsZF9oZWxwZXI9ImdpciIKIGhvc3RtYWtlZGVwZW5kcz0iY21ha2UgZ2V0dGV4dCBnbGliLWRl dmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB2YWxhIgpAQCAtMTQsNCArMTQsNCBAQCBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9D YWxjdWxhdG9yIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20v R05PTUUvZ25vbWUtY2FsY3VsYXRvci9nbm9tZS0zLTMyL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1hMmU4MzBmOWM5ODU2ZmFkNjVkYWQxZDZjMGFlNmFiYWQwZjBiNDk2 Yzk5ODRhYzAwNTMxNWM1Y2M0MjIwZGIzCitjaGVja3N1bT05MDJlMjNmZjU1MDY5MmIwMjQ1OWUx NGQ2ZWJiYThiNjcwNjYzYTlmNGFmMGQ5OGVlNTJmYWRlYTg5NWI1N2ZlCgpGcm9tIDQ2Y2EyOTg1 NjkxMDE2ZTM2Yjg0YzI3MmNlYzViZDQxNzE4NjE4ZTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2 IEF1ZyAyMDIwIDA0OjQ0OjU4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODcvMTA1XSBnbm9tZS1k aXNrLXV0aWxpdHk6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1kaXNrLXV0 aWxpdHkvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWRpc2stdXRpbGl0 eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZGlzay11dGlsaXR5L3RlbXBsYXRlCmluZGV4IGRj NjdiYmJhNzg1Li42ZWY3YmU2MTAzZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1kaXNrLXV0 aWxpdHkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1kaXNrLXV0aWxpdHkn CiBwa2duYW1lPWdub21lLWRpc2stdXRpbGl0eQotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTIK K3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJl X2FyZ3M9Ii1EbG9naW5kPW5vbmUiCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ3RrLWRv YyBpbnRsdG9vbCBwa2ctY29uZmlnIGxpYnhzbHQiCkBAIC0xMyw1ICsxMyw1IEBAIG1haW50YWlu ZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9EaXNrcyIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTc5MWIxOGYyMzFiY2JjNmQ5NDFhZjM4 MzdjYTViZTE0ZjIxNTdlNWNlM2QzMmJkYzViOWViODk0N2UxMmI0MTQKK2NoZWNrc3VtPTc3MzRj ZTY2OGQ5ZWMzMTI4NmFiZDc5NDRmOTUxOTAyMTAyODhmYmM1NDcwNGYwNWJjNTVjYmQwMzQwYjUy MjMKIGxpYjMyZGlzYWJsZWQ9eWVzCgpGcm9tIGE2MGRkMWU4Nzc2NTVkZjhlYTRlYTU0ZjczYzE2 MWU1ZjFlNTUwNDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjQ5OjI2ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwODgvMTA1XSBnbm9tZS1zY3JlZW5zaG90OiB1cGRhdGUgdG8g My4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtc2NyZWVuc2hvdC90ZW1wbGF0ZSB8IDggKysrKy0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9t ZS1zY3JlZW5zaG90L3RlbXBsYXRlCmluZGV4IDk5Y2FiNjJlZWUxLi5hMzk0ODNiYzQzNyAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Z25vbWUtc2NyZWVuc2hvdC90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNCBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ25vbWUtc2NyZWVuc2hvdCcKIHBrZ25hbWU9Z25vbWUtc2NyZWVuc2hvdAotdmVy c2lvbj0zLjM2LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWls ZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJhcHBkYXRhLXRvb2xzIGdldHRleHQgZ2xp Yi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCi1tYWtlZGVwZW5kcz0ibGliY2FuYmVycmEtZGV2 ZWwiCittYWtlZGVwZW5kcz0ibGliY2FuYmVycmEtZGV2ZWwgbGliaGFuZHkxLWRldmVsIgogZGVw ZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIgogc2hvcnRfZGVzYz0iU2NyZWVuc2hvdCBjYXB0dXJl IHV0aWxpdHkgZm9yIEdOT01FIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNjcmVlbnNob3QiCiBkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT0zMzQ5NWQ4OTI3MDcxNzkyNTRiNzQzZjhmNzBjOWE4MmNkZTVj NWYyYzdlYTNkYjYzNGEyYmE3ZWE3MzMxMjY2CitjaGVja3N1bT1lNTU2ZDNkZDEzNGQ5MTM0NGQy ODU3YzA2NjQzNGJmYjY0ZjdjODViZGVjN2JjMzM3MzkzNjZiOWJjZDI5ZmMwCgpGcm9tIDJjM2Y4 ZjAyZmE2MDhlM2M1NjExNDQxNTg2ODE0NWY0MmJkYmVmMDkgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4s IDE2IEF1ZyAyMDIwIDA0OjUxOjAwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODkvMTA1XSBnbm9t ZS1zeXN0ZW0tbW9uaXRvcjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLXN5 c3RlbS1tb25pdG9yL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc3lzdGVt LW1vbml0b3IvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXN5c3RlbS1tb25pdG9yL3RlbXBsYXRl CmluZGV4IGZmMTFiMzU5MGE0Li41MDYwMzY2ODdjNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9t ZS1zeXN0ZW0tbW9uaXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXN5c3RlbS1tb25p dG9yL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUt c3lzdGVtLW1vbml0b3InCiBwa2duYW1lPWdub21lLXN5c3RlbS1tb25pdG9yCi12ZXJzaW9uPTMu MzYuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25m aWd1cmVfYXJncz0iLURzeXN0ZW1kPWZhbHNlIgpAQCAtMTEsNCArMTEsNCBAQCBtYWludGFpbmVy PSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvU3lzdGVtTW9u aXRvciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg2NmI0N2FiMGY0Yzc1YjBl YzU3ZDYzMDAzMzdhNzM3MzQ2M2FhYWQ1ZGY5NWVkZGZlNTM1NGMyMmJlN2JjYTEKK2NoZWNrc3Vt PTczYmY3YWI0ZDU1MDNjMjU2N2Q3NmY4MzFjOWFlM2ZlMjdjMzE0OTU3NjE4ODlhZDNiMzUxZWY0 YzA2OGFmZjQKCkZyb20gY2M5ODQ4MGU0NGEzMzAxY2Q3MjEwNjk4MGY4YWVjYWFiNTQyNTU2YiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMTg6MjQ6MDIgKzAyMDAKU3ViamVjdDog W1BBVENIIDA5MC8xMDVdIGFkd2FpdGEtaWNvbi10aGVtZTogdXBkYXRlIHRvIDMuMzguMCwgZHJv cCBub2FyY2gKCi0tLQogc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUgfCA3ICsr Ky0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUgYi9zcmNwa2dz L2Fkd2FpdGEtaWNvbi10aGVtZS90ZW1wbGF0ZQppbmRleCBmZWJkMjkxNWJlNi4uOGRkY2RlOWI3 ODcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvYWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnYWR3YWl0YS1pY29uLXRoZW1lJwogcGtnbmFtZT1hZHdhaXRhLWlj b24tdGhlbWUKLXZlcnNpb249My4zNi4xCi1yZXZpc2lvbj0yCi1hcmNocz1ub2FyY2gKK3ZlcnNp b249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWciCiBkZXBlbmRzPSJsaWJyc3ZnIgpAQCAtMTEsNCArMTAsNCBA QCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iTEdQTC0zLjAtb3ItbGF0ZXIsIENDLUJZLVNBLTMuMCIKIGhvbWVwYWdlPSJodHRwczovL2dp dGxhYi5nbm9tZS5vcmcvR05PTUUvYWR3YWl0YS1pY29uLXRoZW1lIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09ZTQ5ODUxODYyNzA0NGRmZDdkYjdkNzlhNWIzZDQzNzg0OGNhZjE5 OTFlZjRlZjAzNmEyZDNhMmFjMmMxZjE0ZAorY2hlY2tzdW09NjY4M2ExYWFmMjQzMGNjZDllYTYz OGRkNGJmZTEwMDJiYzkyYjQxMjA1MGMzZGJhMjBlNDgwZjk3OWZhYWY5NwoKRnJvbSAzZWVmMmZk NmY3NDU1MjEwYzY5NGEwYzk4ODE1ODRjZjc2N2E4ODk2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAx NiBBdWcgMjAyMCAxOTo1Nzo0MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkxLzEwNV0gZ25vbWUt YmFja2dyb3VuZHM6IHVwZGF0ZSB0byAzLjM4LjAsIGRyb3Agbm9hcmNoCgotLS0KIHNyY3BrZ3Mv Z25vbWUtYmFja2dyb3VuZHMvdGVtcGxhdGUgfCA3ICsrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9t ZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYmFja2dyb3VuZHMvdGVtcGxh dGUKaW5kZXggMGIxZWU0MjczNTMuLjBmYWMwYmIzYmVlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2du b21lLWJhY2tncm91bmRzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtYmFja2dyb3VuZHMv dGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1iYWNr Z3JvdW5kcycKIHBrZ25hbWU9Z25vbWUtYmFja2dyb3VuZHMKLXZlcnNpb249My4zNi4wCi1yZXZp c2lvbj0yCi1hcmNocz1ub2FyY2gKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPWdldHRleHQKIHNob3J0X2Rlc2M9IlNldCBvZiBi YWNrZ3JvdW5kIGltYWdlcyBmb3IgdGhlIEdOT01FIERlc2t0b3AiCkBAIC0xMCw0ICs5LDQgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIsIENDLUJZLTIuMCwgQ0MtQlktU0EtMi4wLCBDQy1CWS1TQS0zLjAi CiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWJhY2tncm91 bmRzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YjhjYjgxZTRjZjlkMDg1ZmJi MjM1NDA2MzViNDkyZDVjMTI0YTFmODYxMWMyYWE5YWM2Mzg0MTExZDc3YmIwYgorY2hlY2tzdW09 Zjc3MTJhODczYTgwYzlhOWZjZjM5NTI2MTFlZmZlYjJkOWFlZDIzYTNlOGFiZmNkYThhZmIxNWM0 MjdkMWVlMwoKRnJvbSA3ZThmY2IwMDEyMmJmM2ZkMTc0MWY3NGY5NzY0NjgyYmRiN2VmZTljIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMToyMzoyNCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDkyLzEwNV0gc2ltcGxlLXNjYW46IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtn cy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZSB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3NpbXBsZS1z Y2FuL3RlbXBsYXRlIGIvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZQppbmRleCA0YWUzYjg2 NDNmZC4uYzYxN2M5ZjE1ZDMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc2ltcGxlLXNjYW4vdGVtcGxh dGUKKysrIGIvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDYgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ3NpbXBsZS1zY2FuJwogcGtnbmFtZT1zaW1wbGUtc2NhbgotX2du b21lX3ZlcnNpb249My4zNgotdmVyc2lvbj0zLjM2LjQKK3ZlcnNpb249My4zOC4wCiByZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2 ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEiCkBAIC0xMSw1ICsxMCw1IEBAIHNob3J0X2Rlc2M9 IkdUSyBTaW1wbGUgc2Nhbm5pbmcgdXRpbGl0eSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxn b3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9zaW1wbGUtc2NhbiIKLWRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7X2dub21lX3ZlcnNpb259LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01NmFmMTgyOTFhNzc2M2Y3NjNkYTVmMGVkZWQy NDdkMmY4ZWJmOTExMmMyODZlZjg5MDEzMzc0OTY5ZmVmNTI1CitkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCitjaGVja3N1bT00MzU2YWZmZDAzNWYwMWE1N2IxODIxOTllZmZkOTgwODcwMGVmY2NiNDk4 YmRjODM2N2JmMDliY2U0MDRjMzExCgpGcm9tIGQ2YTU4ZGM5MDFjYWQ0YzExMDM4ZTIyZTFmZjY0 ODExM2IxZWU0ZjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjIwOjU4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwOTMvMTA1XSByeWdlbDogdXBkYXRlIHRvIDAuNDAuMAoKLS0t CiBzcmNwa2dzL3J5Z2VsL3RlbXBsYXRlIHwgMTAgKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQs IDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3J5 Z2VsL3RlbXBsYXRlIGIvc3JjcGtncy9yeWdlbC90ZW1wbGF0ZQppbmRleCBkMjhkYmMyY2UwOC4u NjUxNDk3NTFmNWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcnlnZWwvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9yeWdlbC90ZW1wbGF0ZQpAQCAtMSwyMiArMSwyMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAncnlnZWwnCiBwa2duYW1lPXJ5Z2VsCi12ZXJzaW9uPTAuMzguMwotcmV2aXNpb249MgordmVy c2lvbj0wLjQwLjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9 ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItRGV4YW1wbGVzPWZhbHNlIC1EdGVzdHM9ZmFsc2UKICAt RHN5c3RlbWQtdXNlci11bml0cy1kaXI9bm9uZSIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyBnbGliLWRldmVsIHZhbGEiCiBtYWtlZGVwZW5kcz0ic3FsaXRlLWRldmVsIGd0ayszLWRldmVs IGxpYnNvdXAtZGV2ZWwgbGliZ2VlMDgtZGV2ZWwKLSBndXBucC1hdi1kZXZlbCBndXBucC1kbG5h LWRldmVsIHRyYWNrZXItZGV2ZWwgbGlibWVkaWFhcnQtZGV2ZWwKLSBnc3NkcC1kZXZlbCIKKyBn dXBucC1hdi1kZXZlbCBndXBucC1kbG5hLWRldmVsIHRyYWNrZXItZGV2ZWwgdHJhY2tlcjMtZGV2 ZWwKKyBsaWJtZWRpYWFydC1kZXZlbCBnc3NkcC1kZXZlbCBnc3QxLWVkaXRpbmctc2VydmljZXMt ZGV2ZWwiCiBkZXBlbmRzPSJoaWNvbG9yLWljb24tdGhlbWUgZGVza3RvcC1maWxlLXV0aWxzIgog c2hvcnRfZGVzYz0iR05PTUUgaG9tZSBtZWRpYSBzb2x1dGlvbiIKIG1haW50YWluZXI9Ik9ycGhh bmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL1J5Z2VsIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MDhjMjFhNTc3ZjdiZGFkMjY0NDZhNzVmZmEzMjc3 OGIyNjg0MmMzYjExODgxNjVmMGIxOTgxODU1OTc0N2QwMAorY2hlY2tzdW09ZDY3ZWNjODM0ZWQw NjAzMzdlOGZhYjhjYjU1YTRmM2QwYzBjY2U0NDU3ZTBjZDMwNzkwM2EyNTM5ZjZlMmI3NwogCiBj b25mX2ZpbGVzPSIvZXRjL3J5Z2VsLmNvbmYiCiAKCkZyb20gMjQzNTZjZTY4ZjQyNmFiMDgxNDc1 ZTA3NDVjMjZmNTEwZjFiMmE4OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDU6 MjM6MzggKzAyMDAKU3ViamVjdDogW1BBVENIIDA5NC8xMDVdIGdub21lLWJ1aWxkZXI6IHVwZGF0 ZSB0byAzLjM4LjAKCi0tLQogLi4uL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4w LnBhdGNoIHwgIDIyIC0tCiBzcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9tZXNvbjA1Mi5w YXRjaCAgfCAzMzQgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVt cGxhdGUgICAgICAgICAgICAgICAgfCAgMTUgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0 aW9ucygrKSwgMzYxIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25v bWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaAoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2ggYi9z cmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjliNGEyYmYxYS4uMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDIyICswLDAgQEAKLWNvbW1pdCA0NDEzNmEyZTVjNTI2MjNiMGU2MmMzODg0NmY1 MTFmMzA3NjE1Y2UyCi1BdXRob3I6IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1EYXRlOiAg IFN1biBNYXkgMyAxOTo1MjowOSAyMDIwICswMjAwCi0KLSAgICBmaXggYnVpbGQgd2l0aCBsaWJn aXQyLTEuMC4wCi0KLWRpZmYgLS1naXQgYS9zcmMvcGx1Z2lucy9naXQvZGFlbW9uL2lwYy1naXQt cmVwb3NpdG9yeS1pbXBsLmMgYi9zcmMvcGx1Z2lucy9naXQvZGFlbW9uL2lwYy1naXQtcmVwb3Np dG9yeS1pbXBsLmMKLWluZGV4IDdmMDEwNDIuLjJjY2M0ZGYgMTAwNjQ0Ci0tLS0gYS9zcmMvcGx1 Z2lucy9naXQvZGFlbW9uL2lwYy1naXQtcmVwb3NpdG9yeS1pbXBsLmMKLSsrKyBiL3NyYy9wbHVn aW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBvc2l0b3J5LWltcGwuYwotQEAgLTMzLDExICszMyw3 IEBACi0gI2luY2x1ZGUgImlwYy1naXQtdHlwZXMuaCIKLSAjaW5jbHVkZSAiaXBjLWdpdC11dGls LmgiCi0gCi0tI2lmIExJQkdJVDJfU09WRVJTSU9OID49IDI4Ci0gR19ERUZJTkVfQVVUT19DTEVB TlVQX0NMRUFSX0ZVTkMgKGdpdF9idWYsIGdpdF9idWZfZGlzcG9zZSkKLS0jZWxzZQotLUdfREVG SU5FX0FVVE9fQ0xFQU5VUF9DTEVBUl9GVU5DIChnaXRfYnVmLCBnaXRfYnVmX2ZyZWUpCi0tI2Vu ZGlmCi0gCi0gdHlwZWRlZiBlbnVtCi0gewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1idWls ZGVyL3BhdGNoZXMvbWVzb24wNTIucGF0Y2ggYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hl cy9tZXNvbjA1Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjhjMjhlODJj MWUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL21lc29u MDUyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzM0ICswLDAgQEAKLUZyb20gYzhiODYyYjQ5 MWNmYmJiNGY3OWIyNGQ3Y2Q5MGU0ZmIxZjM3Y2I5ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IERpZWdvIEVzY2FsYW50ZSBVcnJlbG8gPGRpZWdvZUBnbm9tZS5vcmc+Ci1EYXRlOiBG cmksIDI1IE9jdCAyMDE5IDA0OjQ5OjE1IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFdJUDogYnVp bGQ6IEZpeCBsaW5rX3dob2xlIHVzYWdlIGZvciBtZXNvbiAwLjUyLjAKLQotTWVzb24gMC41Mi4w IGNoYW5nZWQgaG93IGxpbmtfd2hvbGUgYmVoYXZlcyBhbmQgaW4gZG9pbmcgc28gYnJva2Ugb3Vy Ci11c2FnZSBvZiBsaW5rX3dob2xlIGludGVybmFsbHkuCi0KLUEgcXVpY2sgZ2xhbmNlIG92ZXIg bWVzb25idWlsZC9iYWNrZW5kL25pbmphYmFja2VuZC5weSBzZWVtcyB0byBjb25maXJtCi1DaHJp c3RpYW4ncyBzdXNwaWNpb24gdGhhdCBsaW5rX3dpdGggaXMgd2hhdCB3ZSB3YW50IGZvciBpbnRl cm5hbCB1c2UsCi1hbmQgbGlua193aG9sZSBmb3IgdGhlIGZpbmFsIGJpbmFyeS4KLQotWW91IGNh biBzZWUgc29tZSBtb3JlIHJlZmVyZW5jZXMgdG8gdGhpcyBhbmQgc2ltaWxhciBpc3N1ZXMgaW4g dGhlCi1mb2xsb3dpbmcgamhidWlsZCBjb21taXQ6Ci1odHRwczovL2dpdGxhYi5nbm9tZS5vcmcv R05PTUUvamhidWlsZC9jb21taXQvZGJlNjc5MDQ1ZmY1OTgyNTc3ZjIyZTdhZjhkYzhmZGZiZDFj NjMxMQotCi1GaXhlczogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWJ1aWxk ZXIvaXNzdWVzLzEwNTcKLS0tLQotIHNyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZCAgICAgICB8 ICAyICstCi0gc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkICAgICAgIHwgIDIgKy0KLSBzcmMv bGliaWRlL2RlYnVnZ2VyL21lc29uLmJ1aWxkICAgfCAgMiArLQotIHNyYy9saWJpZGUvZWRpdG9y L21lc29uLmJ1aWxkICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9mb3VuZHJ5L21lc29uLmJ1aWxk ICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQgICAgfCAgMiArLQot IHNyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkICAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9p by9tZXNvbi5idWlsZCAgICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2xzcC9tZXNvbi5idWls ZCAgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZCAgICB8ICAy ICstCi0gc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZCAgIHwgIDIgKy0KLSBzcmMvbGli aWRlL3NlYXJjaC9tZXNvbi5idWlsZCAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvc291cmNldmll dy9tZXNvbi5idWlsZCB8ICAyICstCi0gc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5idWlsZCAg IHwgIDIgKy0KLSBzcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZCAgICAgfCAgMiArLQotIHNy Yy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkICB8ICAyICstCi0gc3JjL2xpYmlkZS90cmVl L21lc29uLmJ1aWxkICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3Zjcy9tZXNvbi5idWlsZCAg ICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxkICAgICB8ICAyICst Ci0gc3JjL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgIHwgMjYgKysrKysrKysrKysrKysr KysrKysrKysrKy0KLSAyMCBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAyMCBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZCBiL3Ny Yy9saWJpZGUvY29kZS9tZXNvbi5idWlsZAotaW5kZXggZGRhY2RjMTYyLi4xYTRmYzVkMjYgMTAw NjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2NvZGUvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUv Y29kZS9tZXNvbi5idWlsZAotQEAgLTE3NSw3ICsxNzUsNyBAQCBsaWJpZGVfY29kZSA9IHN0YXRp Y19saWJyYXJ5KCdpZGUtY29kZS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV9jb2Rl X2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlk ZV9jb2RlX3ByaXZhdGVfaGVhZGVycyArIGxpYmlkZV9jb2RlX2dlbmVyYXRlZF9oZWFkZXJzLAot ICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2NvZGVfZGVwcywKLS0gICAgICAgICAgIGxp bmtfd2hvbGU6IGxpYmlkZV9jb2RlLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2Nv ZGUsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0g KQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvY29yZS9tZXNvbi5idWlsZCBiL3NyYy9saWJp ZGUvY29yZS9tZXNvbi5idWlsZAotaW5kZXggMWZhODJmYWQ5Li5iYjc1Y2JmMjYgMTAwNjQ0Ci0t LS0gYS9zcmMvbGliaWRlL2NvcmUvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvY29yZS9t ZXNvbi5idWlsZAotQEAgLTExNyw3ICsxMTcsNyBAQCBsaWJpZGVfY29yZSA9IHN0YXRpY19saWJy YXJ5KCdpZGUtY29yZS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfY29yZV9zb3VyYwot IGxpYmlkZV9jb3JlX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNv dXJjZXM6IGxpYmlkZV9jb3JlX3ByaXZhdGVfaGVhZGVycyArIGxpYmlkZV9jb3JlX2dlbmVyYXRl ZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2NvcmVfZGVwcywKLS0g ICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9jb3JlLAotKyAgICAgICAgICAgIGxpbmtfd2l0 aDogbGliaWRlX2NvcmUsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9y aWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZGVidWdnZXIvbWVzb24u YnVpbGQgYi9zcmMvbGliaWRlL2RlYnVnZ2VyL21lc29uLmJ1aWxkCi1pbmRleCBkZmZjYTIwY2Eu LmI1ZTcyZDVjMCAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQK LSsrKyBiL3NyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQKLUBAIC04NCw3ICs4NCw3IEBA IGxpYmlkZV9kZWJ1Z2dlciA9IHN0YXRpY19saWJyYXJ5KCdpZGUtZGVidWdnZXItJyArIGxpYmlk ZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfZGVidWdnZXJfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5 KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2RlYnVnZ2VyX3ByaXZhdGVfaGVhZGVy cyArIGxpYmlkZV9kZWJ1Z2dlcl9nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRl bmNpZXM6IGxpYmlkZV9kZWJ1Z2dlcl9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGli aWRlX2RlYnVnZ2VyLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2RlYnVnZ2VyLAot ICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAK LWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2VkaXRvci9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUv ZWRpdG9yL21lc29uLmJ1aWxkCi1pbmRleCAyODM4NDI1YjcuLjgwOGVkNzg0ZiAxMDA2NDQKLS0t LSBhL3NyYy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2VkaXRv ci9tZXNvbi5idWlsZAotQEAgLTEwNyw3ICsxMDcsNyBAQCBsaWJpZGVfZWRpdG9yID0gc3RhdGlj X2xpYnJhcnkoJ2lkZS1lZGl0b3ItJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX2VkaXRv cgotIAotIGxpYmlkZV9lZGl0b3JfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAg IGRlcGVuZGVuY2llczogbGliaWRlX2VkaXRvcl9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9s ZTogbGliaWRlX2VkaXRvciwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9lZGl0b3Is Ci0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gICAg ICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZWRpdG9yX2dlbmVyYXRlZF9oZWFkZXJzLAotICkK LWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRl L2ZvdW5kcnkvbWVzb24uYnVpbGQKLWluZGV4IDIyNjM5N2MxNS4uZDQ4NzhhYTExIDEwMDY0NAot LS0tIGEvc3JjL2xpYmlkZS9mb3VuZHJ5L21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2Zv dW5kcnkvbWVzb24uYnVpbGQKLUBAIC0xNzgsNyArMTc4LDcgQEAgbGliaWRlX2ZvdW5kcnkgPSBz dGF0aWNfbGlicmFyeSgnaWRlLWZvdW5kcnktJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSAKLSBs aWJpZGVfZm91bmRyeV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgZGVwZW5k ZW5jaWVzOiBsaWJpZGVfZm91bmRyeV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGli aWRlX2ZvdW5kcnksCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZm91bmRyeSwKLSAg IGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAgICAgICAg ICAgICAgIHNvdXJjZXM6IGxpYmlkZV9mb3VuZHJ5X2dlbmVyYXRlZF9oZWFkZXJzLAotICkKLWRp ZmYgLS1naXQgYS9zcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2dy ZWV0ZXIvbWVzb24uYnVpbGQKLWluZGV4IDM5NjhjYTQxZS4uMTIxZDQ5OGQwIDEwMDY0NAotLS0t IGEvc3JjL2xpYmlkZS9ncmVldGVyL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2dyZWV0 ZXIvbWVzb24uYnVpbGQKLUBAIC04Myw3ICs4Myw3IEBAIGxpYmlkZV9ncmVldGVyID0gc3RhdGlj X2xpYnJhcnkoJ2lkZS1ncmVldGVyLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX2dy ZWV0ZXJfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczog bGliaWRlX2dyZWV0ZXJfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2dyZWV0ZXJfZ2VuZXJhdGVk X2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfZ3JlZXRlcl9kZXBzLAot LSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2dyZWV0ZXIsCi0rICAgICAgICAgICAgbGlu a193aXRoOiBsaWJpZGVfZ3JlZXRlciwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVf ZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9ndWkvbWVz b24uYnVpbGQgYi9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZAotaW5kZXggOWY0NjlkMmZhLi45 NDMxMTI4MmYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZAotKysrIGIv c3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQKLUBAIC0yMDQsNyArMjA0LDcgQEAgbGliaWRlX2d1 aSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtZ3VpLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlk ZV9ndWlfc291cmNlcywKLSBsaWJpZGVfZ3VpX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAg ICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9ndWlfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRl X2d1aV9nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9n dWlfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9ndWksCi0rICAgICAgICAg ICAgbGlua193aXRoOiBsaWJpZGVfZ3VpLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVk ZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2lvL21l c29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9pby9tZXNvbi5idWlsZAotaW5kZXggYjViNmY0YzY4Li5m NDhiM2JkOGQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2lvL21lc29uLmJ1aWxkCi0rKysgYi9z cmMvbGliaWRlL2lvL21lc29uLmJ1aWxkCi1AQCAtNjMsNyArNjMsNyBAQCBsaWJpZGVfaW8gPSBz dGF0aWNfbGlicmFyeSgnaWRlLWlvLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9pb19z b3VyY2VzLAotIAotIGxpYmlkZV9pb19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAg ICAgZGVwZW5kZW5jaWVzOiBbIGxpYmdpb19kZXAsIGxpYmlkZV9jb3JlX2RlcCwgbGliaWRlX3Ro cmVhZGluZ19kZXAgXSwKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9pbywKLSsgICAg ICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9pbywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGlu Y2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9s c3AvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2xzcC9tZXNvbi5idWlsZAotaW5kZXggMjNhYmE3 NGZhLi5jODE0MGNhMDMgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2xzcC9tZXNvbi5idWlsZAot KysrIGIvc3JjL2xpYmlkZS9sc3AvbWVzb24uYnVpbGQKLUBAIC04NCw3ICs4NCw3IEBAIGxpYmlk ZV9sc3AgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWxzcC0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBs aWJpZGVfbHNwX3NvdXJjZXMsCi0gbGliaWRlX2xzcF9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3ko Ci0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfbHNwX3ByaXZhdGVfaGVhZGVycywKLSAg ICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9sc3BfZGVwcywKLS0gICAgICAgICAgIGxpbmtf d2hvbGU6IGxpYmlkZV9sc3AsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfbHNwLAot ICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAK LWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRl L3BsdWdpbnMvbWVzb24uYnVpbGQKLWluZGV4IGEzM2M1MjhjOS4uZmZmNTk5ZGIzIDEwMDY0NAot LS0tIGEvc3JjL2xpYmlkZS9wbHVnaW5zL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3Bs dWdpbnMvbWVzb24uYnVpbGQKLUBAIC01MSw3ICs1MSw3IEBAIGxpYmlkZV9wbHVnaW5zID0gc3Rh dGljX2xpYnJhcnkoJ2lkZS1wbHVnaW5zLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRl X3BsdWdpbnNfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNl czogbGliaWRlX3BsdWdpbnNfcHJpdmF0ZV9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2ll czogbGliaWRlX3BsdWdpbnNfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9w bHVnaW5zLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3BsdWdpbnMsCi0gICBpbmNs dWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAt LWdpdCBhL3NyYy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3Byb2pl Y3RzL21lc29uLmJ1aWxkCi1pbmRleCA0NjNmZjA2YmMuLjNjYzk3MjVjNiAxMDA2NDQKLS0tLSBh L3NyYy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvcHJvamVj dHMvbWVzb24uYnVpbGQKLUBAIC03OSw3ICs3OSw3IEBAIGxpYmlkZV9wcm9qZWN0cyA9IHN0YXRp Y19saWJyYXJ5KCdpZGUtcHJvamVjdHMtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRlX3By Ci0gbGliaWRlX3Byb2plY3RzX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAg ICAgIHNvdXJjZXM6IGxpYmlkZV9wcm9qZWN0c19wcml2YXRlX2hlYWRlcnMsCi0gICAgICAgICAg ZGVwZW5kZW5jaWVzOiBsaWJpZGVfcHJvamVjdHNfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hv bGU6IGxpYmlkZV9wcm9qZWN0cywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9wcm9q ZWN0cywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwK LSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9zZWFyY2gvbWVzb24uYnVpbGQgYi9zcmMv bGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZAotaW5kZXggZTViM2I0M2FiLi5jZjczYWE5MWQgMTAw NjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlk ZS9zZWFyY2gvbWVzb24uYnVpbGQKLUBAIC01MSw3ICs1MSw3IEBAIGxpYmlkZV9zZWFyY2ggPSBz dGF0aWNfbGlicmFyeSgnaWRlLXNlYXJjaC0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVf c2VhcmNoCi0gCi0gbGliaWRlX3NlYXJjaF9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAg ICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfc2VhcmNoX2RlcHMsCi0tICAgICAgICAgICBsaW5r X3dob2xlOiBsaWJpZGVfc2VhcmNoLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3Nl YXJjaCwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwK LSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkIGIv c3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkCi1pbmRleCBjNGJhMTJkMWYuLjk5NjQx Mjk4YiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvc291cmNldmlldy9tZXNvbi5idWlsZAotKysr IGIvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkCi1AQCAtMTU4LDcgKzE1OCw3IEBA IGxpYmlkZV9zb3VyY2V2aWV3ID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1zb3VyY2V2aWV3LScgKyBs aWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX3NvdXJjZXZpZXdfZGVwID0gZGVjbGFyZV9kZXBl bmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3NvdXJjZXZpZXdfcHJpdmF0 ZV9oZWFkZXJzICsgbGliaWRlX3NvdXJjZXZpZXdfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAg ICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfc291cmNldmlld19kZXBzLAotLSAgICAgICAgICAgbGlu a193aG9sZTogbGliaWRlX3NvdXJjZXZpZXcsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJp ZGVfc291cmNldmlldywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3Jp ZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5i dWlsZCBiL3NyYy9saWJpZGUvdGVybWluYWwvbWVzb24uYnVpbGQKLWluZGV4IDFkN2M5ZjcyNy4u NmFmZmNhZTE0IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5idWlsZAot KysrIGIvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5idWlsZAotQEAgLTkzLDcgKzkzLDcgQEAg bGliaWRlX3Rlcm1pbmFsID0gc3RhdGljX2xpYnJhcnkoJ2lkZS10ZXJtaW5hbC0nICsgbGliaWRl X2FwaV92ZXJzaW9uLAotIGxpYmlkZV90ZXJtaW5hbF9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3ko Ci0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdGVybWluYWxfZ2VuZXJhdGVkX2hlYWRl cnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdGVybWluYWxfZGVwcywKLS0gICAg ICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV90ZXJtaW5hbCwKLSsgICAgICAgICAgICBsaW5rX3dp dGg6IGxpYmlkZV90ZXJtaW5hbCwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGly ZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90aGVtZXMvbWVz b24uYnVpbGQgYi9zcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZAotaW5kZXggOWQ2YzhlMjQ3 Li5kODgzYTRiODYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZAot KysrIGIvc3JjL2xpYmlkZS90aGVtZXMvbWVzb24uYnVpbGQKLUBAIC00Niw3ICs0Niw3IEBAIGxp YmlkZV90aGVtZXMgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRoZW1lcy0nICsgbGliaWRlX2FwaV92 ZXJzaW9uLAotIGxpYmlkZV90aGVtZXNfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAg ICAgICAgICAgc291cmNlczogbGliaWRlX3RoZW1lc19yZXNvdXJjZXNbMV0sCi0gICAgICAgICAg ZGVwZW5kZW5jaWVzOiBsaWJpZGVfdGhlbWVzX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xl OiBsaWJpZGVfdGhlbWVzLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3RoZW1lcywK LSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0g Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQgYi9zcmMvbGli aWRlL3RocmVhZGluZy9tZXNvbi5idWlsZAotaW5kZXggZDM4ZGRmYjY0Li5kNjI4YmUyZmYgMTAw NjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xp YmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQKLUBAIC02Niw3ICs2Niw3IEBAIGxpYmlkZV90aHJl YWRpbmcgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRocmVhZGluZy0nICsgbGliaWRlX2FwaV92ZXJz aW9uLCBsaWJpZGVfCi0gbGliaWRlX3RocmVhZGluZ19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3ko Ci0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdGhyZWFkaW5nX3ByaXZhdGVfaGVhZGVy cywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90aHJlYWRpbmdfZGVwcywKLS0gICAg ICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV90aHJlYWRpbmcsCi0rICAgICAgICAgICAgbGlua193 aXRoOiBsaWJpZGVfdGhyZWFkaW5nLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9k aXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3RyZWUvbWVz b24uYnVpbGQgYi9zcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQKLWluZGV4IDdiOTkyMjgyOC4u NWE1OTExMDZjIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS90cmVlL21lc29uLmJ1aWxkCi0rKysg Yi9zcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQKLUBAIC02MSw3ICs2MSw3IEBAIGxpYmlkZV90 cmVlID0gc3RhdGljX2xpYnJhcnkoJ2lkZS10cmVlLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxp YmlkZV90cmVlX3NvdXJjCi0gbGliaWRlX3RyZWVfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAot ICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3RyZWVfcHJpdmF0ZV9oZWFkZXJzLAotICAg ICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3RyZWVfZGVwcywKLS0gICAgICAgICAgIGxpbmtf d2hvbGU6IGxpYmlkZV90cmVlLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3RyZWUs Ci0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQot IAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdmNzL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS92 Y3MvbWVzb24uYnVpbGQKLWluZGV4IDZiMGUxNTdjNC4uYzc2MmFmYjY0IDEwMDY0NAotLS0tIGEv c3JjL2xpYmlkZS92Y3MvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvdmNzL21lc29uLmJ1 aWxkCi1AQCAtODQsNyArODQsNyBAQCBsaWJpZGVfdmNzID0gc3RhdGljX2xpYnJhcnkoJ2lkZS12 Y3MtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSAKLSBsaWJpZGVfdmNzX2RlcCA9IGRlY2xhcmVf ZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV92Y3NfZGVwcywKLS0g ICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV92Y3MsCi0rICAgICAgICAgICAgbGlua193aXRo OiBsaWJpZGVfdmNzLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rvcmll cygnLicpLAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3Zjc19nZW5lcmF0ZWRfaGVh ZGVycywKLSApCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQgYi9z cmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZAotaW5kZXggZTE3NjdhZTQ2Li5mY2U0NzdiMzYg MTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xp YmlkZS93ZWJraXQvbWVzb24uYnVpbGQKLUBAIC0zOSw3ICszOSw3IEBAIGxpYmlkZV93ZWJraXQg PSBzdGF0aWNfbGlicmFyeSgnaWRlLXdlYmtpdC0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJp ZGVfd2Via2l0Ci0gCi0gbGliaWRlX3dlYmtpdF9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0g ICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfd2Via2l0X2RlcHMsCi0tICAgICAgICAgICBs aW5rX3dob2xlOiBsaWJpZGVfd2Via2l0LAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRl X3dlYmtpdCwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4n KSwKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV93ZWJraXRfZ2VuZXJhdGVkX2hlYWRl cnMsCi0gKQotZGlmZiAtLWdpdCBhL3NyYy9tZXNvbi5idWlsZCBiL3NyYy9tZXNvbi5idWlsZAot aW5kZXggM2ViOWJhNTM1Li4xMTNhMTQyYWQgMTAwNjQ0Ci0tLS0gYS9zcmMvbWVzb24uYnVpbGQK LSsrKyBiL3NyYy9tZXNvbi5idWlsZAotQEAgLTQ4LDYgKzQ4LDMwIEBAIGdub21lX2J1aWxkZXJf ZGVwcyA9IFsKLSAgIGxpYmlkZV90cmVlX2RlcCwKLSBdCi0gCi0rZ25vbWVfYnVpbGRlcl9zdGF0 aWMgPSBbCi0rICBsaWJpZGVfY29kZSwKLSsgIGxpYmlkZV9jb3JlLAotKyAgbGliaWRlX2RlYnVn Z2VyLAotKyAgbGliaWRlX2VkaXRvciwKLSsgIGxpYmlkZV9mb3VuZHJ5LAotKyAgbGliaWRlX2dy ZWV0ZXIsCi0rICBsaWJpZGVfZ3VpLAotKyAgbGliaWRlX2lvLAotKyAgbGliaWRlX2xzcCwKLSsg IGxpYmlkZV9wbHVnaW5zLAotKyAgbGliaWRlX3Byb2plY3RzLAotKyAgbGliaWRlX3NlYXJjaCwK LSsgIGxpYmlkZV9zb3VyY2V2aWV3LAotKyAgbGliaWRlX3Rlcm1pbmFsLAotKyAgbGliaWRlX3Ro ZW1lcywKLSsgIGxpYmlkZV90aHJlYWRpbmcsCi0rICBsaWJpZGVfdHJlZSwKLSsgIGxpYmlkZV92 Y3MsCi0rICBsaWJpZGVfd2Via2l0LAotKwotKyAgcGx1Z2lucywKLStdCi0rCi0gaWYgbGlic3lz cHJvZl9jYXB0dXJlLmZvdW5kKCkKLSAgIGdub21lX2J1aWxkZXJfZGVwcyArPSBsaWJzeXNwcm9m X2NhcHR1cmUKLSBlbmRpZgotQEAgLTc3LDcgKzEwMSw3IEBAIGdub21lX2J1aWxkZXIgPSBleGVj dXRhYmxlKCdnbm9tZS1idWlsZGVyJywgJ21haW4uYycsICdidWctYnVkZHkuYycsCi0gICAgICAg ICAgICAgY19hcmdzOiBsaWJpZGVfYXJncyArIGV4ZV9jX2FyZ3MgKyByZWxlYXNlX2FyZ3MsCi0g ICAgICAgICAgbGlua19hcmdzOiBleGVfbGlua19hcmdzLAotICAgICAgICAgICAgICAgIHBpZTog dHJ1ZSwKLS0gICAgICAgIGxpbmtfd2hvbGU6IHBsdWdpbnMsCi0rICAgICAgICBsaW5rX3dob2xl OiBnbm9tZV9idWlsZGVyX3N0YXRpYywKLSAgICAgIGluc3RhbGxfcnBhdGg6IHBrZ2xpYmRpcl9h YnMsCi0gICAgICAgZGVwZW5kZW5jaWVzOiBnbm9tZV9idWlsZGVyX2RlcHMsCi0gKQotLS0gCi0y LjI0LjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlIGIvc3Jj cGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCmluZGV4IDhjOGMwMTVkOGEzLi5hZDJkNGI2ZDAz YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2dub21lLWJ1aWxkZXInCiBwa2duYW1lPWdub21lLWJ1aWxkZXIKLXZlcnNpb249My4z NC4xCi1yZXZpc2lvbj02Cit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KIGJ1aWxkX2hlbHBlcj1xZW11CiBjb25maWd1cmVfYXJncz0iLUR3aXRoX3dlYmtpdD10 cnVlIC1Ed2l0aF9zeXNwcm9mPXRydWUgLURoZWxwPXRydWUiCkBAIC0xMSwxNSArMTEsMTUgQEAg bWFrZWRlcGVuZHM9ImNhaXJvLWRldmVsIGNsYW5nIGRldmhlbHAtZGV2ZWwgZW5jaGFudDItZGV2 ZWwgZmxhdHBhay1kZXZlbAogIGdzcGVsbC1kZXZlbCBndGtzb3VyY2V2aWV3NC1kZXZlbCBndGsr My1kZXZlbCBqc29uLWdsaWItZGV2ZWwganNvbnJwYy1nbGliLWRldmVsCiAgbGliZGF6emxlLWRl dmVsIGxpYmdpdDItZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYm9zdHJlZS1kZXZlbCBsaWJw ZWFzLWRldmVsCiAgbGlieG1sMi1kZXZlbCB0ZW1wbGF0ZS1nbGliLWRldmVsIHZhbGEtZGV2ZWwg dnRlMy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsCi0gcHl0aG9uMy1nb2JqZWN0LWRldmVsIHN5c3By b2YtZGV2ZWwgZ2xhZGUzLWRldmVsIgorIHB5dGhvbjMtZ29iamVjdC1kZXZlbCBzeXNwcm9mLWRl dmVsIGdsYWRlMy1kZXZlbCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUt dXRpbHMgZmxhdHBhay1idWlsZGVyIHB5dGhvbjMtbHhtbCBkZXZoZWxwIHB5dGhvbjMtZ29iamVj dCIKIHNob3J0X2Rlc2M9IklERSBmb3IgR05PTUUiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQnVpbGRlciIKLWNoYW5nZWxvZz0iaHR0 cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWJ1aWxkZXIvcmF3L2dub21lLWJ1aWxk ZXItMy0zNC9ORVdTIgorY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUv Z25vbWUtYnVpbGRlci9yYXcvZ25vbWUtYnVpbGRlci0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT0wYjZlNDYxMDU3ZWE4MTUxZTgwNTI0YzBlYTdlZjFjYjk0OGU5 MmFmZGE5ZGM2YmQzM2FlMzM5MmYwNDUwMWE0CitjaGVja3N1bT1kNjg5NTM4YmFmOGVmYjFhY2Y3 ZWE2MDcyNjhiMWFhYTE0MThkNTUxN2Q5MmQ0ZjY5NDZhM2RiZjgxNGVhZTU1CiBwYXRjaF9hcmdz PSItTnAxIgogCiBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KQEAgLTI4LDMgKzI4LDgg QEAgY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJCUxJQlMrPSIgLWxleGVjaW5mbyIK IAkJOzsKIGVzYWMKKworcHJlX2NvbmZpZ3VyZSgpIHsKKwkjIHRoaXMgdGVzdCBuZWVkcyBYCisJ dnNlZCAtaSAicy90ZXN0KCd0ZXN0LXRleHQtaXRlcicvIyYvIiBzcmMvdGVzdHMvbWVzb24uYnVp bGQKK30KCkZyb20gODk1ODk5NTgyMDFkNTkzNzcwNjVlMTQ0MTA1NzhjMTU5MTMxNTQyNCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMDE6MjE6NTMgKzAyMDAKU3ViamVjdDogW1BB VENIIDA5NS8xMDVdIHJldHJvLWd0azogdXBkYXRlIHRvIDEuMC4wCgotLS0KIGNvbW1vbi9zaGxp YnMgICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvcmV0cm8tZ3RrL3RlbXBsYXRlIHwgMTIg KysrKysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXgg ODRiNDdlMWU4YzcuLmU1ZjQ2Y2E0Mjc2IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBi L2NvbW1vbi9zaGxpYnMKQEAgLTM1NzQsNyArMzU3NCw3IEBAIGxpYndscm9vdHMuc28uNiB3bHJv b3RzLTAuMTEuMF8xCiBsaWJiYXNlZW5jb2RlLnNvLjEgbGliYmFzZWVuY29kZS0xLjAuOV8xCiBs aWJjb3RwLnNvLjEyIGxpYmNvdHAtMS4yLjFfMQogbGlidW5hcnIuc28uMSBsaWJ1bmFyci0xLjAu MV8xCi1saWJyZXRyby1ndGstMC4xNC5zby4wIHJldHJvLWd0ay0wLjE2LjBfMQorbGlicmV0cm8t Z3RrLTEuc28uMCByZXRyby1ndGstMS4wLjBfMQogbGlibWFuZXR0ZS0wLjIuc28uMCBsaWJtYW5l dHRlLTAuMi4xXzEKIGxpYmZtdC5zby42IGZtdC01LjIuMV8xCiBsaWJlbGVtZW50YXJ5LWNhbGVu ZGFyLnNvLjAgbGliaW8uZWxlbWVudGFyeS5jYWxlbmRhci00LjIuM18xCmRpZmYgLS1naXQgYS9z cmNwa2dzL3JldHJvLWd0ay90ZW1wbGF0ZSBiL3NyY3BrZ3MvcmV0cm8tZ3RrL3RlbXBsYXRlCmlu ZGV4IGRhMGFlY2NkMjQzLi4wNGFkOWNmMDUxYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9yZXRyby1n dGsvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9yZXRyby1ndGsvdGVtcGxhdGUKQEAgLTEsMjIgKzEs MjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3JldHJvLWd0aycKIHBrZ25hbWU9cmV0cm8tZ3Rr Ci12ZXJzaW9uPTAuMTguMAordmVyc2lvbj0xLjAuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29sIGdp ciBpbnRyb3NwZWN0aW9uKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBwa2ctY29uZmln IHZhbGEiCi1tYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGliZXBveHktZGV2ZWwgbGliZ2xpYi1k ZXZlbCBwdWxzZWF1ZGlvLWRldmVsIgorbWFrZWRlcGVuZHM9Imd0ayszLWRldmVsIGxpYmVwb3h5 LWRldmVsIGxpYmdsaWItZGV2ZWwgcHVsc2VhdWRpby1kZXZlbAorIGxpYnNhbXBsZXJhdGUtZGV2 ZWwiCiBzaG9ydF9kZXNjPSJHVEsrIExpYnJldHJvIGZyb250ZW5kIGZyYW1ld29yayIKIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwt My4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9y ZXRyby1ndGsiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jZWRiODgxMTc0YzQy ZTg4OTU0ZWVjYjVkZmFjNzg5NTRhMTk4MWFhZWViZGM4OTE4Yzg4NjFjNmMwOGE0NTEyCitjaGVj a3N1bT01Yzc0MzdhNzY4MTI1YTZmNjI3ZDA2M2VkODkwZTkzMjhkNDEwOGRiNTJhNmQ1YWExMGU1 MmQyZjI1YmI4OGRiCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVs dD0iZ2lyIgogCisjIG5lZWRzIFgKK2RvX2NoZWNrKCkgeworCToKK30KKwogcmV0cm8tZ3RrLWRl dmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCAke3NvdXJjZXBrZ30+PSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVz IgoKRnJvbSBhNGJlMDM2NmZmNjVkYzBiNDViZDhmZDlkYTAxZWQ3ZWU3NTI3MTU2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMToyNjowMSArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDk2LzEwNV0gZ25vbWUtZ2FtZXM6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9t ZS1nYW1lcy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZ2FtZXMvdGVt cGxhdGUgYi9zcmNwa2dzL2dub21lLWdhbWVzL3RlbXBsYXRlCmluZGV4IDI3MzFkZjBmNmQ5Li41 OGYzMTE1NmQwNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1nYW1lcy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2dub21lLWdhbWVzL3RlbXBsYXRlCkBAIC0xLDE1ICsxLDE1IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdnbm9tZS1nYW1lcycKIHBrZ25hbWU9Z25vbWUtZ2FtZXMKLXZlcnNpb249 My4zNC4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhv c3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIHBrZy1jb25maWcgdmFsYS1kZXZlbCIK IG1ha2VkZXBlbmRzPSJsaWJhcmNoaXZlLWRldmVsIGdyaWxvLWRldmVsIGd0ayszLWRldmVsIGxp YmdsaWItZGV2ZWwKICBsaWJtYW5ldHRlLWRldmVsIGxpYnJzdmctZGV2ZWwgbGlic291cC1kZXZl bCBsaWJ4bWwyLWRldmVsIHJldHJvLWd0ay1kZXZlbAotIHNxbGl0ZS1kZXZlbCB0cmFja2VyLWRl dmVsIGxpYmhhbmR5LWRldmVsIgorIHNxbGl0ZS1kZXZlbCB0cmFja2VyLWRldmVsIGxpYmhhbmR5 MS1kZXZlbCIKIHNob3J0X2Rlc2M9IkJyb3dzZSBhbmQgcGxheSB5b3VyIGdhbWVzIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0z LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0dhbWVz IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3Br Z25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MGZkNzI0NmQ2MWNlMjFjMGZjMTIx YzU0ODgwNTFhNTg2NmMxOWRlMmMyODM1YWQ3ZmU0YjE4YzA2NjI3ZGNiYQorY2hlY2tzdW09NWM4 NjhmZDZlYjBiOGQyM2I5OTUwMzk2MzMwNDNlOTBkOGQ5Mzg1NmQzMTU4MzJkZTNhMzE1ZDdiMWU1 NGU0OAoKRnJvbSA0NzNmZDZjY2M1ODA4ZWMxODhmYzRmYzllZGRkY2VkZTZkOWE2ZGRhIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogRnJpLCAxNCBBdWcgMjAyMCAyMzoyMjozNCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDk3LzEwNV0gZ25vbWUtcGFuZWw6IHVwZGF0ZSB0byAzLjM3LjEKCi0tLQogY29tbW9uL3No bGlicyAgICAgICAgICAgICAgICB8IDIgKy0KIHNyY3BrZ3MvZ25vbWUtcGFuZWwvdGVtcGxhdGUg fCA2ICsrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggZTVm NDZjYTQyNzYuLjYwM2FkMmQwOWZmIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2Nv bW1vbi9zaGxpYnMKQEAgLTU2NCw3ICs1NjQsNyBAQCBsaWJwYWNrYWdla2l0LWdsaWIyLnNvLjE4 IFBhY2thZ2VLaXQtMS4xLjEyXzEKIGxpYnBzbC5zby41IGxpYnBzbC0wLjIwLjJfMQogbGlic291 cC0yLjQuc28uMSBsaWJzb3VwLTIuMzQuMF8xCiBsaWJzb3VwLWdub21lLTIuNC5zby4xIGxpYnNv dXAtZ25vbWUtMi4zNC4wXzEKLWxpYnBhbmVsLWFwcGxldC5zby4zIGdub21lLXBhbmVsLTMuMzAu MF8xCitsaWJnbm9tZS1wYW5lbC5zby4wIGdub21lLXBhbmVsLTMuMzcuMV8xCiBsaWJ1bmludW0u c28uNSBsaWJ1bmludW0tMi43XzEKIGxpYnVuaXF1ZS0zLjAuc28uMCBsaWJ1bmlxdWUtMi45MS40 XzEKIGxpYndlYmtpdDJndGstNC4wLnNvLjM3IHdlYmtpdDJndGstMi42LjJfMQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtcGFuZWwvdGVt cGxhdGUKaW5kZXggNzBmMjNiOGI1NTEuLjI0ZDlkMmI5ZWI1IDEwMDY0NAotLS0gYS9zcmNwa2dz L2dub21lLXBhbmVsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtcGFuZWwvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1wYW5lbCcKIHBrZ25h bWU9Z25vbWUtcGFuZWwKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTMuMzcu MQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9 ImF4X2N2X3pvbmVpbmZvX3R6ZGlyPS91c3Ivc2hhcmUvem9uZWluZm8iCiBob3N0bWFrZWRlcGVu ZHM9ImdldHRleHQtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdHpkYXRhIGdl dHRleHQiCkBAIC0xNCw3ICsxNCw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHRkRMLTEuMS1vci1s YXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9y Zy9Qcm9qZWN0cy9Hbm9tZVBhbmVsIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 YTZiYzAyNTUyNTJlZWI0Yjk2NGJjYmU1NWZkNzkwOGI2OWY5MTRjMDYyYzVlYzhkZmY1YWMwMjYy ZDI5YjkwZAorY2hlY2tzdW09MWQ1OThmZDY4OTMzZTc2MDE4ZjJmYjExNmE3ODcxY2JjMDAzM2Mx ZjEwOWJmYmZlMDhhMWVjYjU2MDY3ZDE1MgogcGF0Y2hfYXJncz0iLU5wMSIKIAogZ25vbWUtcGFu ZWwtZGV2ZWxfcGFja2FnZSgpIHsKCkZyb20gNzU3MjYwOWViYTk3NjdhNGIxOTgyMjU3YTliNDFh OWE1NmFkMTkwOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQgQXVnIDIwMjAgMjM6MjQ6NTEgKzAy MDAKU3ViamVjdDogW1BBVENIIDA5OC8xMDVdIG1ldGFjaXR5OiB1cGRhdGUgdG8gMy4zNy4xCgot LS0KIHNyY3BrZ3MvbWV0YWNpdHkvdGVtcGxhdGUgfCAxMSArKysrKy0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL21ldGFjaXR5L3RlbXBsYXRlIGIvc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQppbmRleCA1 YWEyMzE0OTJlNy4uYTU0OWRkN2E1OTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWV0YWNpdHkvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQpAQCAtMSwxOCArMSwxNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnbWV0YWNpdHknCiBwa2duYW1lPW1ldGFjaXR5Ci1yZXZlcnRz PSIzLjM3LjFfMSIKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0xCit2ZXJzaW9uPTMuMzcuMQor cmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJn ZXR0ZXh0IGdldHRleHQtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgeWVscC10 b29scyB6ZW5pdHkiCiBtYWtlZGVwZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZl bCBndGsrMy1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliZ3RvcC1k ZXZlbCBsaWJTTS1kZXZlbCBsaWJYY29tcG9zaXRlLWRldmVsIGxpYlhkYW1hZ2UtZGV2ZWwKLSBs aWJYZml4ZXMtZGV2ZWwgbGliWGluZXJhbWEtZGV2ZWwgbGliWHJlbmRlci1kZXZlbCBsaWJYMTEt ZGV2ZWwgcGFuZ28tZGV2ZWwKLSBzdGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbCBWdWxrYW4tSGVh ZGVycyB2dWxrYW4tbG9hZGVyIgorIGxpYlhmaXhlcy1kZXZlbCBsaWJYaW5lcmFtYS1kZXZlbCBs aWJYcmVuZGVyLWRldmVsIGxpYlgxMS1kZXZlbCBsaWJYcmVzLWRldmVsCisgcGFuZ28tZGV2ZWwg c3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwgVnVsa2FuLUhlYWRlcnMgdnVsa2FuLWxvYWRlciIK IGRlcGVuZHM9Inplbml0eSIKIHNob3J0X2Rlc2M9IldpbmRvdyBNYW5hZ2VyIGZvciB0aGUgR05P TUUgZW52aXJvbm1lbnQiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dp dGxhYi5nbm9tZS5vcmcvR05PTUUvbWV0YWNpdHkiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT0zMWM3ZDEwNDVjMzkwYWZiM2JmNDA1NzM1YjBiMjZjNDU5MTk3Y2JmNDNhZjM3YzQ2 OWViODkxOGNlM2E0NTNkCitjaGVja3N1bT04MGQ2ZjNkOTVhNDMyOGZiMjZkMGE2NDcxZjU3NWI3 NDJiMzZiOGYyNzIxZjhmM2MxODA3MTk3ZmE5MDBhMTI2CgpGcm9tIGU3MjU5Zjk3ZGIyMmI1NDE5 YTQyMDYxMmRiZGRkMmQxNDc0NWZiNTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIw IDIzOjQwOjM0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTkvMTA1XSBnbm9tZS1mbGFzaGJhY2s6 IHVwZGF0ZSB0byAzLjM3LjMKCi0tLQogLi4uL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1m bGFzaGJhY2sucGFtIHwgIDYgKysrKwogc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svdGVtcGxhdGUg ICAgICAgICAgICAgIHwgMzQgKysrKysrKysrKysrKystLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAz MSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0KCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtIGIvc3Jj cGtncy9nbm9tZS1mbGFzaGJhY2svZmlsZXMvZ25vbWUtZmxhc2hiYWNrLnBhbQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjc3NmYwYjM2MzIKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtCkBA IC0wLDAgKzEsNiBAQAorIyVQQU0tMS4wCithdXRoICAgICBpbmNsdWRlICBzeXN0ZW0tYXV0aAor YXV0aCAgICAgb3B0aW9uYWwgcGFtX2dub21lX2tleXJpbmcuc28KK2FjY291bnQgIGluY2x1ZGUg IHN5c3RlbS1hdXRoCitwYXNzd29yZCBpbmNsdWRlICBzeXN0ZW0tYXV0aAorc2Vzc2lvbiAgaW5j bHVkZSAgc3lzdGVtLWF1dGgKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3Rl bXBsYXRlIGIvc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svdGVtcGxhdGUKaW5kZXggZDMyMTIwY2Fi NmYuLmEwNTNhNzhhZWIyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZQpAQCAtMSwyMCArMSwz NiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtZmxhc2hiYWNrJwogcGtnbmFtZT1nbm9t ZS1mbGFzaGJhY2sKLXZlcnNpb249My4zNC4yCit2ZXJzaW9uPTMuMzcuMwogcmV2aXNpb249MQog YnVpbGRfaGVscGVyPWdpcgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2Fy Z3M9Ii0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIKLWhvc3RtYWtlZGVwZW5kcz0i cGtnLWNvbmZpZyBhdXRvbWFrZSBnbGliLWRldmVsIGdldHRleHQiCi1tYWtlZGVwZW5kcz0iZ3Rr KzMtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbAotIGxpYmdsaWItZGV2ZWwg Z2RrLXBpeGJ1Zi1kZXZlbCB1cG93ZXItZGV2ZWwgaWJ1cy1kZXZlbCBwb2xraXQtZGV2ZWwKLSBw dWxzZWF1ZGlvLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYnhjYi1kZXZlbCBsaWJYMTEtZGV2 ZWwgcGFuZ28tZGV2ZWwKLSBsaWJ4a2JmaWxlLWRldmVsIGdub21lLWJsdWV0b290aC1kZXZlbCBn bm9tZS1kZXNrdG9wLWRldmVsIgorY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1jb21waXotc2Vzc2lv biAtLWVuYWJsZS1jb21waWxlLXdhcm5pbmdzPW1pbmltdW0iCitob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgZ2V0dGV4dCBnZXR0ZXh0LWRldmVsIGF1dG9tYWtlIGxpYnRvb2wgZ2xpYi1kZXZl bCIKK21ha2VkZXBlbmRzPSJwYW0tZGV2ZWwgZWxvZ2luZC1kZXZlbCB1cG93ZXItZGV2ZWwgaWJ1 cy1kZXZlbCBwb2xraXQtZGV2ZWwKKyBwdWxzZWF1ZGlvLWRldmVsIGxpYmNhbmJlcnJhLWRldmVs IGxpYnhjYi1kZXZlbCBsaWJYMTEtZGV2ZWwgbGlieGtiZmlsZS1kZXZlbAorIGxpYmNvbXBpemNv bmZpZy1kZXZlbCBsaWJnbGliLWRldmVsIHBhbmdvLWRldmVsIGd0ayszLWRldmVsIGdkay1waXhi dWYtZGV2ZWwKKyBnZG0tZGV2ZWwgZ25vbWUtYmx1ZXRvb3RoLWRldmVsIGdub21lLWRlc2t0b3At ZGV2ZWwgZ25vbWUtcGFuZWwtZGV2ZWwKKyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVs IgogZGVwZW5kcz0iZ25vbWUtYmx1ZXRvb3RoIGdub21lLXNlc3Npb24gZ25vbWUtc2V0dGluZ3Mt ZGFlbW9uCi0gZ25vbWUtcGFuZWwgZ25vbWUtdGhlbWVzLXN0YW5kYXJkIG1ldGFjaXR5IgorIGdu b21lLXBhbmVsIGdub21lLXRoZW1lcy1leHRyYSBtZXRhY2l0eSIKIHNob3J0X2Rlc2M9IkdOT01F IDMgc2Vzc2lvbiB3aXRoIHNpbWlsYXIgdXNlciBleHBlcmllbmNlIHRvIHRoZSBHTk9NRSAyLngg c2VyaWVzIgogbWFpbnRhaW5lcj0ic2hpem9uaWMgPHJlYWx0aWF6QGdtYWlsLmNvbT4iCiBsaWNl bnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcv UHJvamVjdHMvR25vbWVGbGFzaGJhY2siCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT0zYmU2NTM4OGNkMmM4ZjM5NzQxYmNjMDVkYTg3ZWY0MDAzNTE4M2E5YTM5NTAyZDY3Njk2MjQy YzJhZWI0NjljCitjaGVja3N1bT00NmQ0OGQ2ODc0NjQ2ZDEyZWM1ZWJjNjIyMTU4NDU2ZGIxY2Vl YWY0OTI0YmQxZmM4YmY1OWNiYWFmYTFlMWMyCisKK3Bvc3RfZXh0cmFjdCgpIHsKKwl2c2VkIC1p ICdzL2xpYmNvbXBpemNvbmZpZyA+PSAwXC45XC4xNFwuMC9saWJjb21waXpjb25maWcgPj0gMC44 LjE2LjAvJyBcCisJCWNvbmZpZ3VyZS5hYworfQorCitwcmVfY29uZmlndXJlKCkgeworCWF1dG9y ZWNvbmYgLWlmCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwl2aW5zdGFsbCAke0ZJTEVTRElSfS9n bm9tZS1mbGFzaGJhY2sucGFtIDY0NCAvZXRjL3BhbS5kIGdub21lLWZsYXNoYmFjaworCXZzZWQg LWkgLWUgInMvIC0tc3lzdGVtZC8vZyIgXAorCQkke0RFU1RESVJ9L3Vzci9saWJleGVjL2dub21l LWZsYXNoYmFjay17Y29tcGl6LG1ldGFjaXR5fQorfQoKRnJvbSA5YTZmNTU0MWE5MWQzNzg3Njhh ODQ5ZmJkZTJkZTNhZTU3OWE0MTMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVHVlLCAxOCBBdWcgMjAyMCAw NTozNTowNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAwLzEwNV0gYnVkZ2llLWRlc2t0b3A6IHJl YnVpbGQgZm9yIG11dHRlci03CgpbY2kgc2tpcF0KLS0tCiAuLi4vYnVkZ2llLWRlc2t0b3AvcGF0 Y2hlcy9hcHBzeXMtYnVpbGQucGF0Y2ggfCAgICAxMSArCiAuLi4vYnVkZ2llLWRlc2t0b3AvcGF0 Y2hlcy9nbm9tZS0zMzgucGF0Y2ggICAgfCAxMzQ3MiArKysrKysrKysrKysrKysrCiBzcmNwa2dz L2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlICAgICAgICAgICAgICAgfCAgICAgMiArLQogMyBmaWxl cyBjaGFuZ2VkLCAxMzQ4NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2FwcHN5cy1idWlsZC5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9t ZS0zMzgucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMv YXBwc3lzLWJ1aWxkLnBhdGNoIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2FwcHN5 cy1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjY2 MjVmMDQ2ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNo ZXMvYXBwc3lzLWJ1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBzcmMvYXBwc3lzL0Fw cFN5c3RlbS52YWxhCisrKysgc3JjL2FwcHN5cy9BcHBTeXN0ZW0udmFsYQorQEAgLTcwLDcgKzcw LDcgQEAgcHVibGljIGNsYXNzIEFwcFN5c3RlbSA6IEdMaWIuT2JqZWN0CisgICAgIH0KKyAKKyAg ICAgcHJpdmF0ZSB2b2lkIHNpZ25hbF9yZWNlaXZlZChHTGliLkRCdXNDb25uZWN0aW9uIGNvbm5l Y3Rpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHNlbmRlciwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmc/IHNlbmRlciwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgb2JqZWN0X3BhdGgsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGludGVyZmFjZV9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBzaWduYWxfbmFtZSwKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2ggYi9zcmNw a2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMvZ25vbWUtMzM4LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MmZhNzZhMTdiMAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2gKQEAgLTAsMCAr MSwxMzQ3MiBAQAorRnJvbSAzMGJhMGI1YTQ5ODZkNmJlMzY4N2ExZDdmYjQ4MjkwNjE4NWVhOGM5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGF2aWQgTW9oYW1tZWQgPGZvc3NmcmVl ZG9tQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KK0RhdGU6IFR1ZSwgMTggRmViIDIwMjAgMDY6 NDA6MTIgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gZ25vbWUgMy4zOCBjb21wYXRpYmlsaXR5CisK K1NxdWFzaGVkIGJ5IEBxNjYgZnJvbToKKworaHR0cHM6Ly9naXRodWIuY29tL3NvbHVzLXByb2pl Y3QvYnVkZ2llLWRlc2t0b3AvcHVsbC8xOTg3CisKK3BsdXMgYW4gYXNzb3J0bWVudCBvZiBvbGRl ciBtdXR0ZXIgdXBkYXRlcyBmcm9tIGdpdCBtYXN0ZXIKKy0tLQorIG1lc29uLmJ1aWxkICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKy0KKyBtZXNvbl9vcHRpb25zLnR4 dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxIC0KKyBzcmMvYXBwbGV0cy9zdGF0 dXMvU3RhdHVzQXBwbGV0LnZhbGEgICAgICAgICAgfCAgICA2IC0KKyBzcmMvYXBwbGV0cy9zdGF0 dXMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEzICstCisgc3JjL3dtL2JhY2tncm91 bmQudmFsYSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArLQorIHNyYy93bS9tZXNvbi5i dWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzAgKy0KKyBzcmMvd20vc2hpbS52 YWxhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICstCisgc3JjL3dtL3dtLnZh bGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArLQorIC4uLntDbHV0dGVy LTUubWV0YWRhdGEgPT4gQ2x1dHRlci02Lm1ldGFkYXRhfSB8ICAgIDAKKyAuLi57Q2x1dHRlci00 Lm1ldGFkYXRhID0+IENsdXR0ZXItNy5tZXRhZGF0YX0gfCAgIDQzIC0KKyB2YXBpL3tDb2dsLTQu bWV0YWRhdGEgPT4gQ29nbC02Lm1ldGFkYXRhfSAgICAgfCAgICAwCisgdmFwaS97Q29nbC01Lm1l dGFkYXRhID0+IENvZ2wtNy5tZXRhZGF0YX0gICAgIHwgICAgMiAtCisgdmFwaS9NZXRhLTMubWV0 YWRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2NiAtCisgdmFwaS97TWV0YS01Lm1l dGFkYXRhID0+IE1ldGEtNi5tZXRhZGF0YX0gICAgIHwgICAgMAorIHZhcGkve01ldGEtNC5tZXRh ZGF0YSA9PiBNZXRhLTcubWV0YWRhdGF9ICAgICB8ICAgMjUgKy0KKyB2YXBpL2dlbmVyYXRlLW11 dHRlci12YXBpLnNoICAgICAgICAgICAgICAgICAgfCAgICAyICstCisgdmFwaS9ncmFwaGVuZS1n b2JqZWN0LTEuMC52YXBpICAgICAgICAgICAgICAgIHwgIDY5MSArKysrKysrCisgdmFwaS9saWJt dXR0ZXItMi5kZXBzICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSAtCisgdmFwaS9saWJt dXR0ZXItMi52YXBpICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMyNSAtLS0tLS0tLS0tLS0t LQorIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEgICAgICAgICAgICAgICAgICB8ICAgIDYg LQorIHZhcGkvbGlibXV0dGVyLTMuZGVwcyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkg LQorIHZhcGkvbGlibXV0dGVyLTQuZGVwcyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDgg LQorIHZhcGkvbGlibXV0dGVyLTQudmFwaSAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0MjUg LS0tLS0tLS0tLS0tLS0tCisgdmFwaS97bGlibXV0dGVyLTUuZGVwcyA9PiBsaWJtdXR0ZXItNi5k ZXBzfSAgIHwgICAgMyArLQorIHZhcGkve2xpYm11dHRlci01LnZhcGkgPT4gbGlibXV0dGVyLTYu dmFwaX0gICB8ICAgNDUgKy0KKyB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52YWxhICAgICAgICAg ICAgICAgICAgfCAgICA3ICsKKyB2YXBpL2xpYm11dHRlci03LmRlcHMgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICA2ICsKKyB2YXBpL3tsaWJtdXR0ZXItMy52YXBpID0+IGxpYm11dHRlci03 LnZhcGl9ICAgfCAgMzkwICsrLS0KKyB2YXBpL2xpYm11dHRlci1jb2dsLTQudmFwaSAgICAgICAg ICAgICAgICAgICAgfCAxMjcyIC0tLS0tLS0tLS0tLS0KKyB2YXBpL211dHRlci1jbHV0dGVyLTUt Y3VzdG9tLnZhbGEgICAgICAgICAgICAgfCAgMTU4IC0tCisgLi4uc3RvbS52YWxhID0+IG11dHRl ci1jbHV0dGVyLTYtY3VzdG9tLnZhbGF9IHwgICAxMSAtCisgLi4uci1jbHV0dGVyLTUuZGVwcyA9 PiBtdXR0ZXItY2x1dHRlci02LmRlcHN9IHwgICAgMiArLQorIC4uLnItY2x1dHRlci01LnZhcGkg PT4gbXV0dGVyLWNsdXR0ZXItNi52YXBpfSB8ICA4MDYgKystLS0tLS0KKyAuLi5yLWNsdXR0ZXIt NC5kZXBzID0+IG11dHRlci1jbHV0dGVyLTcuZGVwc30gfCAgICAzICstCisgLi4uci1jbHV0dGVy LTQudmFwaSA9PiBtdXR0ZXItY2x1dHRlci03LnZhcGl9IHwgMTYxNSArKysrLS0tLS0tLS0tLS0t LQorIC4uLi1jdXN0b20udmFsYSA9PiBtdXR0ZXItY29nbC02LWN1c3RvbS52YWxhfSB8ICAgIDAK KyAuLi57bXV0dGVyLWNvZ2wtNC5kZXBzID0+IG11dHRlci1jb2dsLTYuZGVwc30gfCAgICAwCisg Li4ue211dHRlci1jb2dsLTUudmFwaSA9PiBtdXR0ZXItY29nbC02LnZhcGl9IHwgIDQyMiArLS0t LQorIC4uLi1jdXN0b20udmFsYSA9PiBtdXR0ZXItY29nbC03LWN1c3RvbS52YWxhfSB8ICAgMjAg Ky0KKyAuLi57bXV0dGVyLWNvZ2wtNS5kZXBzID0+IG11dHRlci1jb2dsLTcuZGVwc30gfCAgICAw CisgLi4ue211dHRlci1jb2dsLTQudmFwaSA9PiBtdXR0ZXItY29nbC03LnZhcGl9IHwgIDY3MSAr KystLS0tCisgdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkgICAgICAgICAgICAgICAgICAgIHwg ICAzMSArLQorIDQyIGZpbGVzIGNoYW5nZWQsIDE5MjAgaW5zZXJ0aW9ucygrKSwgNzI1NCBkZWxl dGlvbnMoLSkKKyByZW5hbWUgdmFwaS97Q2x1dHRlci01Lm1ldGFkYXRhID0+IENsdXR0ZXItNi5t ZXRhZGF0YX0gKDEwMCUpCisgcmVuYW1lIHZhcGkve0NsdXR0ZXItNC5tZXRhZGF0YSA9PiBDbHV0 dGVyLTcubWV0YWRhdGF9ICg3OCUpCisgcmVuYW1lIHZhcGkve0NvZ2wtNC5tZXRhZGF0YSA9PiBD b2dsLTYubWV0YWRhdGF9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3tDb2dsLTUubWV0YWRhdGEgPT4g Q29nbC03Lm1ldGFkYXRhfSAoOTElKQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL01ldGEtMy5t ZXRhZGF0YQorIHJlbmFtZSB2YXBpL3tNZXRhLTUubWV0YWRhdGEgPT4gTWV0YS02Lm1ldGFkYXRh fSAoMTAwJSkKKyByZW5hbWUgdmFwaS97TWV0YS00Lm1ldGFkYXRhID0+IE1ldGEtNy5tZXRhZGF0 YX0gKDc2JSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52 YXBpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTIuZGVwcworIGRlbGV0ZSBt b2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci0yLnZhcGkKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFw aS9saWJtdXR0ZXItMy1jdXN0b20udmFsYQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11 dHRlci0zLmRlcHMKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNC5kZXBzCisg ZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTQudmFwaQorIHJlbmFtZSB2YXBpL3ts aWJtdXR0ZXItNS5kZXBzID0+IGxpYm11dHRlci02LmRlcHN9ICg1MCUpCisgcmVuYW1lIHZhcGkv e2xpYm11dHRlci01LnZhcGkgPT4gbGlibXV0dGVyLTYudmFwaX0gKDk3JSkKKyBjcmVhdGUgbW9k ZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYQorIGNyZWF0ZSBtb2RlIDEwMDY0 NCB2YXBpL2xpYm11dHRlci03LmRlcHMKKyByZW5hbWUgdmFwaS97bGlibXV0dGVyLTMudmFwaSA9 PiBsaWJtdXR0ZXItNy52YXBpfSAoNzUlKQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11 dHRlci1jb2dsLTQudmFwaQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL211dHRlci1jbHV0dGVy LTUtY3VzdG9tLnZhbGEKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFs YSA9PiBtdXR0ZXItY2x1dHRlci02LWN1c3RvbS52YWxhfSAoOTIlKQorIHJlbmFtZSB2YXBpL3tt dXR0ZXItY2x1dHRlci01LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXItNi5kZXBzfSAoNjMlKQorIHJl bmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci01LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXItNi52YXBp fSAoOTMlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci00LmRlcHMgPT4gbXV0dGVyLWNs dXR0ZXItNy5kZXBzfSAoNTQlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci00LnZhcGkg PT4gbXV0dGVyLWNsdXR0ZXItNy52YXBpfSAoODYlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29n bC01LWN1c3RvbS52YWxhID0+IG11dHRlci1jb2dsLTYtY3VzdG9tLnZhbGF9ICgxMDAlKQorIHJl bmFtZSB2YXBpL3ttdXR0ZXItY29nbC00LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNi5kZXBzfSAoMTAw JSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNS52YXBpID0+IG11dHRlci1jb2dsLTYudmFw aX0gKDY4JSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNC1jdXN0b20udmFsYSA9PiBtdXR0 ZXItY29nbC03LWN1c3RvbS52YWxhfSAoODElKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC01 LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNy5kZXBzfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97bXV0dGVy LWNvZ2wtNC52YXBpID0+IG11dHRlci1jb2dsLTcudmFwaX0gKDU5JSkKKworZGlmZiAtLWdpdCBt ZXNvbi5idWlsZCBtZXNvbi5idWlsZAoraW5kZXggMmEwZTAzMTYuLjNjNGM2YWMxIDEwMDY0NAor LS0tIG1lc29uLmJ1aWxkCisrKysgbWVzb24uYnVpbGQKK0BAIC0zMiwxNiArMzIsMTYgQEAgYW1f Y2ZsYWdzID0gWworIGFkZF9nbG9iYWxfYXJndW1lbnRzKGFtX2NmbGFncywgbGFuZ3VhZ2U6ICdj JykKKyBtZXNvbi5hZGRfaW5zdGFsbF9zY3JpcHQoJ21lc29uX3Bvc3RfaW5zdGFsbC5zaCcpCisg CistIyBCdWRnaWUgbmVlZHMgYSBtaW5pbXVtIDMuMjIgR05PTUUgc3RhY2sKKy1nbm9tZV9taW5p bXVtX3ZlcnNpb24gPSAnPj0gMy4yMi4wJworKyMgQnVkZ2llIG5lZWRzIGEgbWluaW11bSAzLjI0 IEdOT01FIHN0YWNrCisrZ25vbWVfbWluaW11bV92ZXJzaW9uID0gJz49IDMuMjQuMCcKKyAKKyBk ZXBfZ3RrMyA9IGRlcGVuZGVuY3koJ2d0aystMy4wJywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92 ZXJzaW9uKQorLWRlcF9nbGliID0gZGVwZW5kZW5jeSgnZ2xpYi0yLjAnLCB2ZXJzaW9uOiAnPj0g Mi40Ni4wJykKKy1kZXBfZ2lvdW5peCA9IGRlcGVuZGVuY3koJ2dpby11bml4LTIuMCcsIHZlcnNp b246ICc+PSAyLjQ2LjAnKQorLWRlcF9wZWFzID0gZGVwZW5kZW5jeSgnbGlicGVhcy0xLjAnLCB2 ZXJzaW9uOiAnPj0gMS44LjAnKQorK2RlcF9nbGliID0gZGVwZW5kZW5jeSgnZ2xpYi0yLjAnLCB2 ZXJzaW9uOiAnPj0gMi42Mi4wJykKKytkZXBfZ2lvdW5peCA9IGRlcGVuZGVuY3koJ2dpby11bml4 LTIuMCcsIHZlcnNpb246ICc+PSAyLjYyLjAnKQorK2RlcF9wZWFzID0gZGVwZW5kZW5jeSgnbGli cGVhcy0xLjAnLCB2ZXJzaW9uOiAnPj0gMS4yNC4wJykKKyBkZXBfZ2RreDExID0gZGVwZW5kZW5j eSgnZ2RrLXgxMS0zLjAnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pCisgZGVwX2xp YnV1aWQgPSBkZXBlbmRlbmN5KCd1dWlkJykKKy1kZXBfdmFsYSA9IGRlcGVuZGVuY3koJ3ZhcGln ZW4nLCB2ZXJzaW9uOiAnPj0gMC40MC4wJykKKytkZXBfdmFsYSA9IGRlcGVuZGVuY3koJ3ZhcGln ZW4nLCB2ZXJzaW9uOiAnPj0gMC40Ni4wJykKKyAKKyAjIE5lZWRlZCBmb3Iga2V5Ym9hcmR5IGJp dHMKKyBkZXBfaWJ1cyA9IGRlcGVuZGVuY3koJ2lidXMtMS4wJywgdmVyc2lvbjogJz49IDEuNS4x MCcpCitAQCAtNTEsMTAgKzUxLDEwIEBAIGRlcF9nc2V0dGluZ3MgPSBkZXBlbmRlbmN5KCdnc2V0 dGluZ3MtZGVza3RvcC1zY2hlbWFzJywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92CisgZGVwX2dz ZCA9IGRlcGVuZGVuY3koJ2dub21lLXNldHRpbmdzLWRhZW1vbicsIHZlcnNpb246ICc+PTMuMjgu MCcpCisgCisgIyB3bmNrIHVzZWQgYWxsIG92ZXIgdGhlIHBsYWNlLi4KKy1kZXBfd25jayA9IGRl cGVuZGVuY3koJ2xpYnduY2stMy4wJywgdmVyc2lvbjogJz49IDMuMTQuMCcpCisrZGVwX3duY2sg PSBkZXBlbmRlbmN5KCdsaWJ3bmNrLTMuMCcsIHZlcnNpb246ICc+PSAzLjMyLjAnKQorIAorICMg YWNjb3VudHNzZXJ2aWNlIGluIG11bHRpcGxlIGFwcGxldHMKKy1kZXBfYWNjb3VudHNzZXJ2aWNl ID0gZGVwZW5kZW5jeSgnYWNjb3VudHNzZXJ2aWNlJywgdmVyc2lvbjogJz49IDAuNi40MCcpCisr ZGVwX2FjY291bnRzc2VydmljZSA9IGRlcGVuZGVuY3koJ2FjY291bnRzc2VydmljZScsIHZlcnNp b246ICc+PSAwLjYuNTUnKQorIAorICMgQ3JlYXRlIGNvbmZpZy5oCisgY2RhdGEgPSBjb25maWd1 cmF0aW9uX2RhdGEoKQorZGlmZiAtLWdpdCBtZXNvbl9vcHRpb25zLnR4dCBtZXNvbl9vcHRpb25z LnR4dAoraW5kZXggZDcxYjA5YjUuLmRjYTkxMjk2IDEwMDY0NAorLS0tIG1lc29uX29wdGlvbnMu dHh0CisrKysgbWVzb25fb3B0aW9ucy50eHQKK0BAIC0xLDUgKzEsNCBAQAorIG9wdGlvbignd2l0 aC1zdGF0ZWxlc3MnLCB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiBmYWxzZSwgZGVzY3JpcHRpb246 ICdFbmFibGUgc3RhdGVsZXNzIFhERyBwYXRocycpCisgb3B0aW9uKCd3aXRoLXBvbGtpdCcsIHR5 cGU6ICdib29sZWFuJywgdmFsdWU6IHRydWUsIGRlc2NyaXB0aW9uOiAnRW5hYmxlIFBvbEtpdCBz dXBwb3J0JykKKy1vcHRpb24oJ3dpdGgtYmx1ZXRvb3RoJywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1 ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdFbmFibGUgZ25vbWUtYmx1ZXRvb3RoIHN1cHBvcnQnKQor IG9wdGlvbignd2l0aC1ndGstZG9jJywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogdHJ1ZSwgZGVz Y3JpcHRpb246ICdCdWlsZCBndGstZG9jIGRvY3VtZW50YXRpb24nKQorIG9wdGlvbignd2l0aC1k ZXNrdG9wLWljb25zJywgdHlwZTogJ2NvbWJvJywgY2hvaWNlczogWyduYXV0aWx1cycsICdub25l J10sIHZhbHVlOiAnbmF1dGlsdXMnLCBkZXNjcmlwdGlvbjogJ0Rlc2t0b3AgaWNvbiBoYW5kbGlu ZycpCitkaWZmIC0tZ2l0IHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYSBzcmMv YXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKK2luZGV4IGI5ODI2Mzk0Li43MWYyODdj OSAxMDA2NDQKKy0tLSBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKKysrKyBz cmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKK0BAIC0yMCw5ICsyMCw3IEBAIHB1 YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUuQXBwbGV0CisgeworIAorICAgICBwcm90 ZWN0ZWQgR3RrLkJveCB3aWRnZXQ7CistI2lmIFdJVEhfQkxVRVRPT1RICisgICAgIHByb3RlY3Rl ZCBCbHVldG9vdGhJbmRpY2F0b3IgYmx1ZTsKKy0jZW5kaWYKKyAgICAgcHJvdGVjdGVkIFNvdW5k SW5kaWNhdG9yIHNvdW5kOworICAgICBwcm90ZWN0ZWQgUG93ZXJJbmRpY2F0b3IgcG93ZXI7Cisg ICAgIHByb3RlY3RlZCBHdGsuRXZlbnRCb3g/IHdyYXA7CitAQCAtNjgsMTIgKzY2LDEwIEBAIHB1 YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUuQXBwbGV0CisgICAgICAgICB0aGlzLnNl dHVwX3BvcG92ZXIocG93ZXIuZWJveCwgcG93ZXIucG9wb3Zlcik7CisgICAgICAgICB0aGlzLnNl dHVwX3BvcG92ZXIoc291bmQuZWJveCwgc291bmQucG9wb3Zlcik7CisgCistI2lmIFdJVEhfQkxV RVRPT1RICisgICAgICAgICBibHVlID0gbmV3IEJsdWV0b290aEluZGljYXRvcigpOworICAgICAg ICAgd2lkZ2V0LnBhY2tfc3RhcnQoYmx1ZSwgZmFsc2UsIGZhbHNlLCAyKTsKKyAgICAgICAgIGJs dWUuc2hvd19hbGwoKTsKKyAgICAgICAgIHRoaXMuc2V0dXBfcG9wb3ZlcihibHVlLmVib3gsIGJs dWUucG9wb3Zlcik7CistI2VuZGlmCisgICAgIH0KKyAKKyAgICAgcHVibGljIG92ZXJyaWRlIHZv aWQgcGFuZWxfcG9zaXRpb25fY2hhbmdlZChCdWRnaWUuUGFuZWxQb3NpdGlvbiBwb3NpdGlvbikK K0BAIC05MSw5ICs4Nyw3IEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUuQXBw bGV0CisgICAgICAgICB0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyOworICAgICAgICAgbWFuYWdlci5y ZWdpc3Rlcl9wb3BvdmVyKHBvd2VyLmVib3gsIHBvd2VyLnBvcG92ZXIpOworICAgICAgICAgbWFu YWdlci5yZWdpc3Rlcl9wb3BvdmVyKHNvdW5kLmVib3gsIHNvdW5kLnBvcG92ZXIpOworLSNpZiBX SVRIX0JMVUVUT09USAorICAgICAgICAgbWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVyKGJsdWUuZWJv eCwgYmx1ZS5wb3BvdmVyKTsKKy0jZW5kaWYKKyAgICAgfQorIH0gLy8gRW5kIGNsYXNzCisgCitk aWZmIC0tZ2l0IHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZCBzcmMvYXBwbGV0cy9zdGF0 dXMvbWVzb24uYnVpbGQKK2luZGV4IDY5OWZiOGY0Li5iNGQyNzA2YyAxMDA2NDQKKy0tLSBzcmMv YXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQKKysrKyBzcmMvYXBwbGV0cy9zdGF0dXMvbWVzb24u YnVpbGQKK0BAIC0xMCw2ICsxMCw3IEBAIGN1c3RvbV90YXJnZXQoJ3BsdWdpbi1maWxlLXN0YXR1 cycsCisgICAgIGluc3RhbGxfZGlyIDogYXBwbGV0X3N0YXR1c19kaXIpCisgCisgYXBwbGV0X3N0 YXR1c19zb3VyY2VzID0gWworKyAgICAnQmx1ZXRvb3RoSW5kaWNhdG9yLnZhbGEnLAorICAgICAn U3RhdHVzQXBwbGV0LnZhbGEnLAorICAgICAnUG93ZXJJbmRpY2F0b3IudmFsYScsCisgICAgICdT b3VuZEluZGljYXRvci52YWxhJywKK0BAIC0yMCwyMiArMjEsMTMgQEAgYXBwbGV0X3N0YXR1c19k ZXBzID0gWworICAgICBkZXBfZ3RrMywKKyAgICAgZGVwX3BlYXMsCisgICAgIGRlcF9hY2NvdW50 c3NlcnZpY2UsCisrICAgIGRlcGVuZGVuY3koJ2dub21lLWJsdWV0b290aC0xLjAnLCB2ZXJzaW9u OiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pLAorICAgICBkZXBlbmRlbmN5KCd1cG93ZXItZ2xpYics IHZlcnNpb246ICc+PSAwLjk5LjAnKSwKKyAgICAgbGlua19saWJwbHVnaW4sCisgICAgIGd2Yy5n ZXRfdmFyaWFibGUoJ2xpYmd2Y19kZXAnKSwKKyAgICAgbWVzb24uZ2V0X2NvbXBpbGVyKCdjJyku ZmluZF9saWJyYXJ5KCdtJywgcmVxdWlyZWQ6IGZhbHNlKSwKKyBdCisgCistIyBCbHVldG9vdGgg aXMgb3B0aW9uYWwgdG8gYWxsb3cgc21hbGxlciBidWlsZHMKKy13aXRoX2JsdWV0b290aCA9IGdl dF9vcHRpb24oJ3dpdGgtYmx1ZXRvb3RoJykKKy1hcHBsZXRfc3RhdHVzX3ZhbGFfYXJncyA9IFtd CistCistaWYgd2l0aF9ibHVldG9vdGggPT0gdHJ1ZQorLSAgICBhcHBsZXRfc3RhdHVzX2RlcHMg Kz0gZGVwZW5kZW5jeSgnZ25vbWUtYmx1ZXRvb3RoLTEuMCcsIHZlcnNpb246IGdub21lX21pbmlt dW1fdmVyc2lvbikKKy0gICAgYXBwbGV0X3N0YXR1c19zb3VyY2VzICs9ICdCbHVldG9vdGhJbmRp Y2F0b3IudmFsYScKKy0gICAgYXBwbGV0X3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdXSVRI X0JMVUVUT09USCddCistZW5kaWYKKy0KKyBzaGFyZWRfbGlicmFyeSgKKyAgICAgJ3N0YXR1c2Fw cGxldCcsCisgICAgIGFwcGxldF9zdGF0dXNfc291cmNlcywKK0BAIC01MCw3ICs0Miw2IEBAIHNo YXJlZF9saWJyYXJ5KAorICAgICAgICAgJy0tcGtnJywgJ2d2Yy0xLjAnLAorICAgICAgICAgJy0t cGtnJywgJ2dpby11bml4LTIuMCcsCisgICAgICAgICAnLS12YXBpZGlyJywgam9pbl9wYXRocyht ZXNvbi5zb3VyY2Vfcm9vdCgpLCAndmFwaScpLAorLSAgICAgICAgYXBwbGV0X3N0YXR1c192YWxh X2FyZ3MsCisgICAgIF0sCisgICAgIGluc3RhbGw6IHRydWUsCisgICAgIGluc3RhbGxfZGlyOiBh cHBsZXRfc3RhdHVzX2RpciwKK2RpZmYgLS1naXQgc3JjL3dtL2JhY2tncm91bmQudmFsYSBzcmMv d20vYmFja2dyb3VuZC52YWxhCitpbmRleCAwODRhYTlhYi4uYjMzMWUwYzQgMTAwNjQ0CistLS0g c3JjL3dtL2JhY2tncm91bmQudmFsYQorKysrIHNyYy93bS9iYWNrZ3JvdW5kLnZhbGEKK0BAIC0y MDQsOCArMjA0LDEzIEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVCYWNrZ3JvdW5kIDogQ2x1dHRlci5B Y3RvcgorIAorICAgICAgICAgdmFyIGFjdG9yID0gbmV3IE1ldGEuQmFja2dyb3VuZEFjdG9yKGRp c3BsYXksIGluZGV4KTsKKyAgICAgICAgIHZhciBiYWNrZ3JvdW5kID0gbmV3IE1ldGEuQmFja2dy b3VuZChkaXNwbGF5KTsKKysjaWYgSEFWRV9NVVRURVJfNgorICAgICAgICAgYWN0b3Iuc2V0X2Jh Y2tncm91bmQoYmFja2dyb3VuZCk7CistCisrI2Vsc2UKKysgICAgICAgIHZhciBjb250ZW50ID0g YWN0b3IuZ2V0X2NvbnRlbnQoKTsKKysgICAgICAgIHVub3duZWQgTWV0YS5CYWNrZ3JvdW5kQ29u dGVudCBiYWNrZ3JvdW5kX2NvbnRlbnQgPSAoTWV0YS5CYWNrZ3JvdW5kQ29udGVudCkgY29udGVu dDsKKysgICAgICAgIGJhY2tncm91bmRfY29udGVudC5zZXRfYmFja2dyb3VuZChiYWNrZ3JvdW5k KTsKKysjZW5kaWYKKyAgICAgICAgIHJlY3QgPSBkaXNwbGF5LmdldF9tb25pdG9yX2dlb21ldHJ5 KGluZGV4KTsKKyAgICAgICAgIGFjdG9yLnNldF9zaXplKHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0 KTsKKyAgICAgICAgIGFjdG9yLnNldCgib3BhY2l0eSIsIDApOworQEAgLTIyMSwxMyArMjI2LDIx IEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVCYWNrZ3JvdW5kIDogQ2x1dHRlci5BY3RvcgorICAgICAg ICAgc2hhZGluZ19kaXJlY3Rpb24gPSAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcpc2V0dGlu Z3MuZ2V0X2VudW0oQ09MT1JfU0hBRElOR19UWVBFX0tFWSk7CisgICAgICAgICB2YXIgY29sb3Jf c3RyID0gc2V0dGluZ3MuZ2V0X3N0cmluZyhQUklNQVJZX0NPTE9SX0tFWSk7CisgICAgICAgICBp ZiAoY29sb3Jfc3RyICE9IG51bGwgJiYgY29sb3Jfc3RyICE9ICIiKSB7CisrI2lmIEhBVkVfTVVU VEVSXzYKKyAgICAgICAgICAgICBwcmltYXJ5X2NvbG9yID0gQ2x1dHRlci5Db2xvci5mcm9tX3N0 cmluZyhjb2xvcl9zdHIpOworKyNlbHNlCisrICAgICAgICAgICAgQ2x1dHRlci5Db2xvci5mcm9t X3N0cmluZyhvdXQgcHJpbWFyeV9jb2xvciwgY29sb3Jfc3RyKTsKKysjZW5kaWYKKyAgICAgICAg ICAgICBjb2xvcl9zdHIgPSBudWxsOworICAgICAgICAgfQorIAorICAgICAgICAgY29sb3Jfc3Ry ID0gc2V0dGluZ3MuZ2V0X3N0cmluZyhTRUNPTkRBUllfQ09MT1JfS0VZKTsKKyAgICAgICAgIGlm IChjb2xvcl9zdHIgIT0gbnVsbCAmJiBjb2xvcl9zdHIgIT0gIiIpIHsKKysjaWYgSEFWRV9NVVRU RVJfNgorICAgICAgICAgICAgIHNlY29uZGFyeV9jb2xvciA9IENsdXR0ZXIuQ29sb3IuZnJvbV9z dHJpbmcoY29sb3Jfc3RyKTsKKysjZWxzZQorKyAgICAgICAgICAgIENsdXR0ZXIuQ29sb3IuZnJv bV9zdHJpbmcob3V0IHNlY29uZGFyeV9jb2xvciwgY29sb3Jfc3RyKTsKKysjZW5kaWYKKyAgICAg ICAgICAgICBjb2xvcl9zdHIgPSBudWxsOworICAgICAgICAgfQorIAorZGlmZiAtLWdpdCBzcmMv d20vbWVzb24uYnVpbGQgc3JjL3dtL21lc29uLmJ1aWxkCitpbmRleCBlMzliODY3OC4uNTgzY2U3 OTAgMTAwNjQ0CistLS0gc3JjL3dtL21lc29uLmJ1aWxkCisrKysgc3JjL3dtL21lc29uLmJ1aWxk CitAQCAtMTcsMjAgKzE3LDE4IEBAIGJ1ZGdpZV93bV9zb3VyY2VzID0gWworIAorIGJ1ZGdpZV93 bV9zdGF0dXNfdmFsYV9hcmdzID0gW10KKyAKKy12YXBpX211dHRlciA9ICdsaWJtdXR0ZXItMycK Ky1kZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTMnLCB2ZXJzaW9uOiBnbm9tZV9t aW5pbXVtX3ZlcnNpb24sIHJlcXVpcmVkOiBmYWxzZSkKKy1pZiBub3QgZGVwX211dHRlci5mb3Vu ZCgpCistICAgIGRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNCcsIHZlcnNpb246 IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQorK2RlcF9ncmFwaGVuZSA9 IGRlcGVuZGVuY3koJ2dyYXBoZW5lLWdvYmplY3QtMS4wJywgdmVyc2lvbjogJz49IDEuMTAnKQor K2RlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNycsIHZlcnNpb246IGdub21lX21p bmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQorK2lmIGRlcF9tdXR0ZXIuZm91bmQoKQor KyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVfTVVUVEVSXzcn XQorKyAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTcgQUJJIGZyb20gR05PTUUgMy4z OCcpCisrICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci03JworK2Vsc2UKKysgICAgZGVwX211 dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRlci02JywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92 ZXJzaW9uKQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVf TVVUVEVSXzYnXQorICAgICBpZiBkZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAgICAgIG1lc3NhZ2Uo J1VzaW5nIG5ldyBsaWJtdXR0ZXItNCBBQkkgZnJvbSBHTk9NRSAzLjMyJykKKy0gICAgICAgIHZh cGlfbXV0dGVyID0gJ2xpYm11dHRlci00JworLSAgICBlbHNlCistICAgICAgICBkZXBfbXV0dGVy ID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTUnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNp b24pCistICAgICAgICBpZiBkZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAgICAgICAgICBtZXNzYWdl KCdVc2luZyBuZXcgbGlibXV0dGVyLTUgQUJJIGZyb20gR05PTUUgMy4zNCcpCistICAgICAgICAg ICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVyLTUnCistICAgICAgICAgICAgYnVkZ2llX3dtX3N0 YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZFX01VVFRFUl81J10KKy0gICAgICAgIGVuZGlm CisrICAgICAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTYgQUJJIGZyb20gR05PTUUg My4zNicpCisrICAgICAgICB2YXBpX211dHRlciA9ICdsaWJtdXR0ZXItNicKKyAgICAgZW5kaWYK KyBlbmRpZgorIAorQEAgLTQyLDggKzQwLDggQEAgYnVkZ2llX3dtX2RlcHMgPSBbCisgICAgIGRl cF9pYnVzLAorIF0KKyAKKy1pZiBkZXBfZ3NkLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49 My4zMS45MScpCistICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9IFsnLUQnLCAnSEFW RV9HU0RfMzMyJ10KKytpZiBkZXBfZ3NkLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49My4z Ni4wJykKKysgICAgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZFX0dT RF9TVVBQT1JURUQnXQorIGVuZGlmCisgCisgYnVkZ2llX3dtX3ZhbGFfYXJncyA9ICBbCitAQCAt NjAsNyArNTgsNyBAQCBidWRnaWVfd21fdmFsYV9hcmdzID0gIFsKKyAKKyBycGF0aCA9ICcnCisg CistaWYgZGVwX211dHRlci52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+PTMuMjguMCcpCisr aWYgZGVwX211dHRlci52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+PTMuMzYuMCcpCisgICAg IHJwYXRoID0gZGVwX211dHRlci5nZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCd0eXBlbGliZGlyJykK KyAgICAgYnVkZ2llX3dtX3ZhbGFfYXJncyArPSBbJy0tZ2lyZGlyJywgcnBhdGhdCisgZW5kaWYK K2RpZmYgLS1naXQgc3JjL3dtL3NoaW0udmFsYSBzcmMvd20vc2hpbS52YWxhCitpbmRleCA0Y2Rm YTBiMC4uZmMyNGIyODkgMTAwNjQ0CistLS0gc3JjL3dtL3NoaW0udmFsYQorKysrIHNyYy93bS9z aGltLnZhbGEKK0BAIC0xNCw3ICsxNCw3IEBAIG5hbWVzcGFjZSBCdWRnaWUgeworIHB1YmxpYyBz dHJ1Y3QgR3NkQWNjZWwgeworICAgICBzdHJpbmcgYWNjZWxlcmF0b3I7CisgICAgIHVpbnQgZmxh Z3M7CistI2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZFX0dTRF9TVVBQT1JURUQKKyAgICAgTWV0 YS5LZXlCaW5kaW5nRmxhZ3MgZ3JhYl9mbGFnczsKKyAjZW5kaWYKKyB9CitAQCAtMTkzLDExICsx OTMsNyBAQCBwdWJsaWMgY2xhc3MgU2hlbGxTaGltIDogR0xpYi5PYmplY3QKKyAgICAgICAgIG9z ZF9wcm94eSA9IG51bGw7CisgICAgIH0KKyAKKy0jaWYgSEFWRV9NVVRURVJfNQorICAgICBwcml2 YXRlIHZvaWQgb25fYWNjZWxlcmF0b3JfYWN0aXZhdGVkKHVpbnQgYWN0aW9uLCBDbHV0dGVyLklu cHV0RGV2aWNlIGRldiwgdWludCBkZXZpY2VfaWQpCistI2Vsc2UKKy0gICAgcHJpdmF0ZSB2b2lk IG9uX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCh1aW50IGFjdGlvbiwgdWludCBkZXZpY2VfaWQpCist I2VuZGlmCisgICAgIHsKKyAgICAgICAgIEhhc2hUYWJsZTxzdHJpbmcsVmFyaWFudD4gcGFyYW1z ID0gbmV3IEhhc2hUYWJsZTxzdHJpbmcsVmFyaWFudD4oc3RyX2hhc2gsIHN0cl9lcXVhbCk7Cisg CitAQCAtMjMwLDcgKzIyNiw3IEBAIHB1YmxpYyBjbGFzcyBTaGVsbFNoaW0gOiBHTGliLk9iamVj dAorICAgICAgICAgfQorICAgICB9CisgCistI2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZFX0dT RF9TVVBQT1JURUQKKyAgICAgcHJpdmF0ZSB1aW50IF9ncmFiKHN0cmluZyBzZW5kZXIsIHN0cmlu ZyBzZXEsIHVpbnQgZmxhZywgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3JhYl9mbGFncykKKyAgICAg eworICAgICAgICAgdmFyIHJldCA9IGRpc3BsYXkuZ3JhYl9hY2NlbGVyYXRvcihzZXEsIGdyYWJf ZmxhZ3MpOworQEAgLTI3Myw3ICsyNjksNyBAQCBwdWJsaWMgY2xhc3MgU2hlbGxTaGltIDogR0xp Yi5PYmplY3QKKyAgICAgICAgICAgICBvbl9idXNfYWNxdWlyZWQsIG51bGwsIG51bGwpOworICAg ICB9CisgCistI2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZFX0dTRF9TVVBQT1JURUQKKyAgICAg cHVibGljIHVpbnQgR3JhYkFjY2VsZXJhdG9yKEJ1c05hbWUgc2VuZGVyLCBzdHJpbmcgYWNjZWxl cmF0b3IsIHVpbnQgZmxhZ3MsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGdyYWJfZmxhZ3MpCisgICAg IHsKKyAgICAgICAgIHJldHVybiBfZ3JhYihzZW5kZXIsIGFjY2VsZXJhdG9yLCBmbGFncywgZ3Jh Yl9mbGFncyk7CitkaWZmIC0tZ2l0IHNyYy93bS93bS52YWxhIHNyYy93bS93bS52YWxhCitpbmRl eCBmZWU4OTQ0My4uYmNjZjNiOTUgMTAwNjQ0CistLS0gc3JjL3dtL3dtLnZhbGEKKysrKyBzcmMv d20vd20udmFsYQorQEAgLTEzNyw4ICsxMzcsOCBAQCBwdWJsaWMgY2xhc3MgQnVkZ2llV00gOiBN ZXRhLlBsdWdpbgorICAgICBwdWJsaWMgc3RhdGljIHN0cmluZ1tdPyBvbGRfYXJnczsKKyAgICAg cHVibGljIHN0YXRpYyBib29sIHdheWxhbmQgPSBmYWxzZTsKKyAKKy0gICAgc3RhdGljIENsdXR0 ZXIuUG9pbnQgUFZfQ0VOVEVSOworLSAgICBzdGF0aWMgQ2x1dHRlci5Qb2ludCBQVl9OT1JNOwor KyAgICBzdGF0aWMgR3JhcGhlbmUuUG9pbnQgUFZfQ0VOVEVSOworKyAgICBzdGF0aWMgR3JhcGhl bmUuUG9pbnQgUFZfTk9STTsKKyAKKyAgICAgcHJpdmF0ZSBNZXRhLkJhY2tncm91bmRHcm91cD8g YmFja2dyb3VuZF9ncm91cDsKKyAKK0BAIC0xNzEsMTAgKzE3MSwxMCBAQCBwdWJsaWMgY2xhc3Mg QnVkZ2llV00gOiBNZXRhLlBsdWdpbgorICAgICAgICAgICAgIGxpY2Vuc2UgPSAiR1BMLTIuMCIs CisgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAiQnVkZ2llIFdpbmRvdyBNYW5hZ2VyIgorICAg ICAgICAgfTsKKy0gICAgICAgIFBWX0NFTlRFUiA9IENsdXR0ZXIuUG9pbnQuYWxsb2MoKTsKKysg ICAgICAgIFBWX0NFTlRFUiA9IEdyYXBoZW5lLlBvaW50KCk7CisrICAgICAgICBQVl9OT1JNID0g R3JhcGhlbmUuUG9pbnQoKTsKKyAgICAgICAgIFBWX0NFTlRFUi54ID0gMC41ZjsKKyAgICAgICAg IFBWX0NFTlRFUi55ID0gMC41ZjsKKy0gICAgICAgIFBWX05PUk0gPSBDbHV0dGVyLlBvaW50LmFs bG9jKCk7CisgICAgICAgICBQVl9OT1JNLnggPSAwLjBmOworICAgICAgICAgUFZfTk9STS55ID0g MC4wZjsKKyAgICAgfQorQEAgLTEwMDEsNyArMTAwMSw3IEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVX TSA6IE1ldGEuUGx1Z2luCisgICAgICAgICB0aWxlX3ByZXZpZXcuc2V0KCJzY2FsZS14IiwgTk9U SUZJQ0FUSU9OX01BUF9TQ0FMRV9YLCAic2NhbGUteSIsIE5PVElGSUNBVElPTl9NQVBfU0NBTEVf WSwKKyAgICAgICAgICAgICAicGl2b3QtcG9pbnQiLCBQVl9DRU5URVIpOworIAorLSAgICAgICAg dGlsZV9wcmV2aWV3Lmxvd2VyKHdpbl9hY3Rvcik7CisrICAgICAgICAvL3RpbGVfcHJldmlldy5s b3dlcih3aW5fYWN0b3IpOworICAgICAgICAgdGlsZV9wcmV2aWV3LnRpbGVfcmVjdCA9IHRpbGVf cmVjdDsKKyAKKyAgICAgICAgIHRpbGVfcHJldmlldy5zaG93KCk7CitkaWZmIC0tZ2l0IHZhcGkv Q2x1dHRlci01Lm1ldGFkYXRhIHZhcGkvQ2x1dHRlci02Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGlu ZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkvQ2x1dHRlci01Lm1ldGFkYXRhCityZW5hbWUgdG8g dmFwaS9DbHV0dGVyLTYubWV0YWRhdGEKK2RpZmYgLS1naXQgdmFwaS9DbHV0dGVyLTQubWV0YWRh dGEgdmFwaS9DbHV0dGVyLTcubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggNzglCityZW5hbWUg ZnJvbSB2YXBpL0NsdXR0ZXItNC5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvQ2x1dHRlci03Lm1l dGFkYXRhCitpbmRleCA1YzIxMmU4NS4uMTg1NTI3NGQgMTAwNjQ0CistLS0gdmFwaS9DbHV0dGVy LTQubWV0YWRhdGEKKysrKyB2YXBpL0NsdXR0ZXItNy5tZXRhZGF0YQorQEAgLTEsMTMgKzEsMTAg QEAKKyAvLyBOb24gbWluaS1vYmplY3QKKyBBY3RvckJveCBzdHJ1Y3QKKyBDb2xvciBzdHJ1Y3QK Ky1Gb2cgc3RydWN0CistR2VvbWV0cnkgc3RydWN0CisgS25vdCBzdHJ1Y3QKKyBQYXRoTm9kZSBz dHJ1Y3QKKyBQZXJzcGVjdGl2ZSBzdHJ1Y3QKKyBVbml0cyBzdHJ1Y3QKKy1WZXJ0ZXggc3RydWN0 CisgCisgKi5yZWYgdW5vd25lZAorIAorQEAgLTE3LDcgKzE0LDYgQEAgaW5pdF93aXRoX2FyZ3MK KyBBY3RvcgorIAkuYXBwbHlfdHJhbnNmb3JtLm1hdHJpeCByZWYKKyAJLmdldF9hYnNfYWxsb2Nh dGlvbl92ZXJ0aWNlcy52ZXJ0cyBvdXQ9ZmFsc2UKKy0JLmdldF9hbGxvY2F0aW9uX3ZlcnRpY2Vz LnZlcnRzIG91dD1mYWxzZQorIENhbnZhcworIAkubmV3IHN5bWJvbF90eXBlPSJjb25zdHJ1Y3Rv ciIKKyBFdmVudC50eXBlI21ldGhvZCBuYW1lPSJnZXRfdHlwZSIKK0BAIC0yNyw3ICsyMyw2IEBA IEltYWdlCisgLy8gPz8/CisgQWN0b3IuaGFzX3BvaW50ZXIjbWV0aG9kIG5hbWU9ImdldF9oYXNf cG9pbnRlciIKKyBJbml0RXJyb3IgZXJyb3Jkb21haW49ZmFsc2UKKy1yZWRyYXcgc2tpcAorIAor IC8vIE5vdCBhbGwgYmFja2luZyBzeW1ib2xzIGFyZSBkZXByZWNhdGVkCisgQWN0b3IucGljayBk ZXByZWNhdGVkPWZhbHNlCitAQCAtNTUsNyArNTAsNiBAQCBDb250YWluZXIKKyAJLmxvd2VyIHZp cnR1YWwKKyAJLnJhaXNlIHZpcnR1YWwKKyAJLipfY2hpbGRfbWV0YSN2aXJ0dWFsX21ldGhvZCB2 aXJ0dWFsCistCS5mb3JlYWNoX3dpdGhfaW50ZXJuYWxzI3ZpcnR1YWxfbWV0aG9kIHZpcnR1YWwK KyAKKyAvLyBEZWZhdWx0IHZhbHVlcworIENvbnRhaW5lcgorQEAgLTcwLDMyICs2NCwyMSBAQCBU ZXh0CisgLy8gUmVwYXJlbnRlZCBmdW5jcyBtZXRob2RzIGNhbid0IGJlIGluc3RhbmNlIG1ldGhv ZHMKKyBmZWF0dXJlX2F2YWlsYWJsZSBza2lwCisgZmVhdHVyZV9nZXRfYWxsIHNraXAKKy1GZWF0 dXJlRmxhZ3MudGV4dHVyZV9ucG90IHNraXAKKyAKKyAvLyBTa2lwcGVkIGJ5IGctaSBmb3IgdW5r bm93biByZWFzb25zCisgTGF5b3V0TWFuYWdlcgorIAkuY3JlYXRlX2NoaWxkX21ldGEgc2tpcD1m YWxzZQorLU1vZGVsCistCS5pbnNlcnRfcm93IHNraXA9ZmFsc2UKKyAKKyAvLyBWYXJpYWRpYyBh cmd1bWVudHMKKy1BY3RvcgorLQkuYW5pbWF0ZSBza2lwPWZhbHNlCistCS5hbmltYXRlX3dpdGhf YWxwaGEgc2tpcD1mYWxzZQorLQkuYW5pbWF0ZV93aXRoX3RpbWVsaW5lIHNraXA9ZmFsc2UKKy1B bmltYXRvcgorLQkuc2V0IHNraXA9ZmFsc2UKKyBCb3gKKyAJLnBhY2sgc2tpcD1mYWxzZQorIAku cGFja19hZnRlciBza2lwPWZhbHNlCisgCS5wYWNrX2F0IHNraXA9ZmFsc2UKKyAJLnBhY2tfYmVm b3JlIHNraXA9ZmFsc2UKKyBDb250YWluZXIKKy0JLmFkZF92YWxpc3Qgc2tpcD1mYWxzZQorIAku Y2hpbGRfZ2V0IHNraXA9ZmFsc2UKKyAJLmNoaWxkX3NldCBza2lwPWZhbHNlCisgCS5yZW1vdmUg c2tpcD1mYWxzZQorLQkucmVtb3ZlX3ZhbGlzdCBza2lwPWZhbHNlCisgSW50ZXJ2YWwKKyAJLm5l dyBza2lwPWZhbHNlCisgCS5nZXRfaW50ZXJ2YWwgc2tpcD1mYWxzZQorQEAgLTEwNSwxNSArODgs NiBAQCBJbnRlcnZhbAorIExheW91dE1hbmFnZXIKKyAJLmNoaWxkX2dldCBza2lwPWZhbHNlCisg CS5jaGlsZF9zZXQgc2tpcD1mYWxzZQorLUxpc3RNb2RlbAorLQkubmV3IHNraXA9ZmFsc2UKKy1N b2RlbAorLQkuYXBwZW5kIHNraXA9ZmFsc2UKKy0JLmluc2VydCBza2lwPWZhbHNlCistCS5wcmVw ZW5kIHNraXA9ZmFsc2UKKy1Nb2RlbEl0ZXIKKy0JLmdldCBza2lwPWZhbHNlCistCS5zZXQgc2tp cD1mYWxzZQorIFNjcmlwdAorIAkuZ2V0X29iamVjdHMgc2tpcD1mYWxzZQorIAorQEAgLTEyMiwx NyArOTYsMTEgQEAgVGV4dHVyZQorIAkubmV3X2Zyb21fZmlsZSB0aHJvd3M9IkNsdXR0ZXIuVGV4 dHVyZUVycm9yIgorIAorIC8vIFNraXBwZWQgdXBzdHJlYW0gZm9yIHVua25vd24gcmVhc29ucwor LUFscGhhLnJlZ2lzdGVyX2Z1bmMgc2tpcD1mYWxzZQorLVRpbWVvdXRQb29sIHNraXA9ZmFsc2UK KyBJbnRlcnZhbC5yZWdpc3Rlcl9wcm9ncmVzc19mdW5jIHNraXA9ZmFsc2UKKy1mcmFtZV9zb3Vy Y2VfKiBza2lwPWZhbHNlCisgZ2V0X29wdGlvbl9ncm91cCBza2lwPWZhbHNlCisgZ2V0X29wdGlv bl9ncm91cF93aXRob3V0X2luaXQgc2tpcD1mYWxzZQorLXRocmVhZHNfYWRkX2ZyYW1lX3NvdXJj ZSBza2lwPWZhbHNlCistdGhyZWFkc19hZGRfZnJhbWVfc291cmNlX2Z1bGwgc2tpcD1mYWxzZQor IHRocmVhZHNfYWRkX2lkbGUgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX2lkbGVfZnVsbCBza2lw PWZhbHNlCistdGhyZWFkc19zZXRfbG9ja19mdW5jdGlvbnMgc2tpcD1mYWxzZQorIHRocmVhZHNf YWRkX3RpbWVvdXQgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX3RpbWVvdXRfZnVsbCBza2lwPWZh bHNlCisgCitAQCAtMTQzLDE1ICsxMTEsMTIgQEAgQWN0b3JCb3gKKyBVbml0cy5mcm9tXyogc2tp cAorIENvbG9yCisgCS5uZXcgc2tpcAorLVZlcnRleC5uZXcgc2tpcAorIAorIC8vIENsYXNzIG1l dGhvZHMKKyBjb250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0eSBza2lwCisgY29udGFp bmVyX2NsYXNzX2xpc3RfY2hpbGRfcHJvcGVydGllcyBza2lwCisgCisgLy8gTW92ZSBzeW1ib2xz CistZ2V0X2FjdG9yX2J5X2dpZCBwYXJlbnQ9IkNsdXR0ZXIuQWN0b3IiIG5hbWU9ImdldF9ieV9n aWQiCistZ2V0X2lucHV0X2RldmljZV9mb3JfaWQgcGFyZW50PSJDbHV0dGVyLklucHV0RGV2aWNl IiBuYW1lPSJnZXRfZm9yX2lkIgorIHVuaXRzX2Zyb21fKiBza2lwCisgCisgLy8gQ2xhc3NlcyBt YXJrZWQgYXMgb3V0IGJ1dCBub3QgZG91YmxlIHB0cgorQEAgLTIwMiwyMyArMTY3LDE1IEBAIFBB VEhfUkVMQVRJVkUgc2tpcD1mYWxzZQorIFBSSU9SSVRZX1JFRFJBVyBza2lwPWZhbHNlCisgCisg Ly8gQ2x1dHRlciBkZXZzIGRvbid0IGxpa2UgdXMgY3JlYXRpbmcgbmVzdGVkIG5hbWVzcGFjZXMK Ky1mcmFtZV9zb3VyY2VfKiBuYW1lPSJmcmFtZV9zb3VyY2VfKC4rKSIgcGFyZW50PSJDbHV0dGVy LkZyYW1lU291cmNlIgorIHZhbHVlXyogbmFtZT0idmFsdWVfKC4rKSIgcGFyZW50PSJDbHV0dGVy LlZhbHVlIgorIHRocmVhZHNfKiBuYW1lPSJ0aHJlYWRzXyguKykiIHBhcmVudD0iQ2x1dHRlci5U aHJlYWRzIgorLXRocmVhZHNfYWRkX2ZyYW1lX3NvdXJjZSBuYW1lPSJhZGQiIHBhcmVudD0iQ2x1 dHRlci5UaHJlYWRzLkZyYW1lU291cmNlIgorLXRocmVhZHNfYWRkX2ZyYW1lX3NvdXJjZV9mdWxs IG5hbWU9ImFkZF9mdWxsIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5GcmFtZVNvdXJjZSIKKyB0 aHJlYWRzX2FkZF9pZGxlIG5hbWU9ImFkZCIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMuSWRsZSIK KyB0aHJlYWRzX2FkZF9pZGxlX2Z1bGwgbmFtZT0iYWRkX2Z1bGwiIHBhcmVudD0iQ2x1dHRlci5U aHJlYWRzLklkbGUiCisgdGhyZWFkc19hZGRfdGltZW91dCBuYW1lPSJhZGQiIHBhcmVudD0iQ2x1 dHRlci5UaHJlYWRzLlRpbWVvdXQiCisgdGhyZWFkc19hZGRfdGltZW91dF9mdWxsIG5hbWU9ImFk ZF9mdWxsIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5UaW1lb3V0IgorLXV0aWxfbmV4dF9wMiBu YW1lPSJuZXh0X3Bvd2VyX29mXzIiIHBhcmVudD0iQ2x1dHRlci5VdGlsIgorIAorIC8vIEJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5CisgQ29sb3IuYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgor LVBvaW50LmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1SZWN0LmFsbG9jIHN5bWJvbF90 eXBlPSJmdW5jdGlvbiIKKy1TaXplLmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1WZXJ0 ZXguYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorIAorIEJpbkFsaWdubWVudCBkZXByZWNh dGVkPWZhbHNlIGRlcHJlY2F0ZWRfc2luY2U9bnVsbAorIEJpbkFsaWdubWVudC4qIGRlcHJlY2F0 ZWQKK2RpZmYgLS1naXQgdmFwaS9Db2dsLTQubWV0YWRhdGEgdmFwaS9Db2dsLTYubWV0YWRhdGEK K3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9Db2dsLTQubWV0YWRhdGEK K3JlbmFtZSB0byB2YXBpL0NvZ2wtNi5tZXRhZGF0YQorZGlmZiAtLWdpdCB2YXBpL0NvZ2wtNS5t ZXRhZGF0YSB2YXBpL0NvZ2wtNy5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCA5MSUKK3JlbmFt ZSBmcm9tIHZhcGkvQ29nbC01Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9Db2dsLTcubWV0YWRh dGEKK2luZGV4IDA5MmI1ZTI5Li5lNTJiZmEzNSAxMDA2NDQKKy0tLSB2YXBpL0NvZ2wtNS5tZXRh ZGF0YQorKysrIHZhcGkvQ29nbC03Lm1ldGFkYXRhCitAQCAtOSwxMiArOSwxMCBAQCBjcmVhdGVf c2hhZGVyIHNraXAKKyAKKyAKKyBpc19iaXRtYXAgc2tpcAorLWlzX21hdGVyaWFsIHNraXAKKyBp c19vZmZzY3JlZW4gc2tpcAorIGlzX3Byb2dyYW0gc2tpcAorIGlzX3NoYWRlciBza2lwCisgaXNf dGV4dHVyZSBza2lwCistaXNfdmVydGV4X2J1ZmZlciBza2lwCisgCisgTWF0cml4IHN0cnVjdAor ICAgLmdldF9hcnJheSBhcnJheT10cnVlIGFycmF5X2xlbmd0aF9pZHg9LTEKK2RpZmYgLS1naXQg dmFwaS9NZXRhLTMubWV0YWRhdGEgdmFwaS9NZXRhLTMubWV0YWRhdGEKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMzcwZDQ5OTYuLjAwMDAwMDAwCistLS0gdmFwaS9NZXRhLTMubWV0 YWRhdGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDY2ICswLDAgQEAKKy1CYWNrZW5kIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZW5kLmgiCistQmFja2dyb3VuZCBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC5oIgorLUJhY2tncm91bmRBY3RvciBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oIgorLUJhY2tncm91bmRHcm91cCBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oIgorLUJhY2tncm91 bmRJbWFnZUNhY2hlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgiCistRGlzcGxheSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2Rpc3BsYXkuaCIKKy1NZXRhIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWFpbi5oIgorLU1vbml0b3JNYW5hZ2VyIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIKKy1SZWN0YW5nbGUgc3RydWN0Cist UGx1Z2luIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKy1QbHVnaW5JbmZv IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKy1wcmVmc18qIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvcHJlZnMuaCIgcGFyZW50PSJNZXRhLlByZWZzIgorLWFkZF92ZXJib3Nl X3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK Ky1idWcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor LWRlYnVnX3NwZXdfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy14MTFfZXJyb3JfdHJhcF9wb3AgcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXgxMV9lcnJvcl90 cmFwX3B1c2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorLXgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9h Y3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor LWZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCistZ191dGY4X3N0cm5kdXAgcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9sb2NhbGVfZGlyZWN0aW9uIHBhcmVu dD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRfb3Zlcmxh eV93aW5kb3cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorLWdyYXZpdHlfdG9fc3RyaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy1pc19kZWJ1Z2dpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3N5bmNpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3ZlcmJvc2UgcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3dheWxhbmRfY29tcG9zaXRv ciBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistbGF0 ZXJfYWRkIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK Ky1sYXRlcl9yZW1vdmUgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLXBvcF9ub19tc2dfcHJlZml4IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1wdXNoX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXJlY3QgcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXJlbW92ZV92ZXJib3NlX3RvcGlj IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zZXRf c3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL3V0aWwuaCIKKy1zaG93X2RpYWxvZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCistdG9waWNfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdW5zaWduZWRfbG9uZ19lcXVhbCBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdW5zaWduZWRfbG9uZ19o YXNoIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy12 ZXJib3NlX3JlYWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorLXdhcm5pbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLXNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy1nZXRfc3RhZ2VfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBv c2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1nZXRf d2luZG93X2FjdG9ycyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWdldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkg cGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIKKy1nZXRfdG9wX3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1l dGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IgorLWdldF9mZWVkYmFja19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRv ciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWRpc2FibGVf dW5yZWRpcmVjdF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWVuYWJsZV91bnJlZGlyZWN0X2Zv cl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1l dGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IgorLWVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWZvY3VzX3N0YWdlX3dp bmRvdyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21w b3NpdG9yLW11dHRlci5oIgorLXN0YWdlX2lzX2ZvY3VzZWQgcGFyZW50PSJNZXRhLkNvbXBvc2l0 b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1rZXliaW5k aW5nc19zZXRfY3VzdG9tX2hhbmRsZXIgcGFyZW50PSJNZXRhLktleUJpbmRpbmciIG5hbWU9InNl dF9jdXN0b21faGFuZGxlciIKKy1LZXlIYW5kbGVyRnVuYy5ldmVudCB0eXBlPSJDbHV0dGVyLktl eUV2ZW50PyIKKy1nZXRfYmFja2VuZCBwYXJlbnQ9Ik1ldGEuQmFja2VuZCIKKy1XaW5kb3cuZm9j dXMjc2lnbmFsIHNraXA9dHJ1ZQorLVdpbmRvdy5nZXRfeHdpbmRvdyBza2lwPWZhbHNlCistZ2V0 X29wdGlvbl9jb250ZXh0IHNraXA9ZmFsc2UKKy1zZXRfZ25vbWVfd21fa2V5YmluZGluZ3Mgc2tp cD1mYWxzZQorLXNldF93bV9uYW1lIHNraXA9ZmFsc2UKKy1pbml0IHNraXA9ZmFsc2UKKy1ydW4g c2tpcD1mYWxzZQorLXNob3dfZGlhbG9nIHNraXA9ZmFsc2UKKy1nZXRfYmFja2VuZCBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2VuZC5oIgorZGlmZiAtLWdpdCB2YXBpL01ldGEtNS5t ZXRhZGF0YSB2YXBpL01ldGEtNi5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5h bWUgZnJvbSB2YXBpL01ldGEtNS5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvTWV0YS02Lm1ldGFk YXRhCitkaWZmIC0tZ2l0IHZhcGkvTWV0YS00Lm1ldGFkYXRhIHZhcGkvTWV0YS03Lm1ldGFkYXRh CitzaW1pbGFyaXR5IGluZGV4IDc2JQorcmVuYW1lIGZyb20gdmFwaS9NZXRhLTQubWV0YWRhdGEK K3JlbmFtZSB0byB2YXBpL01ldGEtNy5tZXRhZGF0YQoraW5kZXggYWUyYTc4MTcuLjcyNjI5ZmJh IDEwMDY0NAorLS0tIHZhcGkvTWV0YS00Lm1ldGFkYXRhCisrKysgdmFwaS9NZXRhLTcubWV0YWRh dGEKK0BAIC0xLDI2ICsxLDIxIEBACisgQmFja2VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21l dGEtYmFja2VuZC5oIgorIEJhY2tncm91bmQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJh Y2tncm91bmQuaCIKKyBCYWNrZ3JvdW5kQWN0b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCIKKytCYWNrZ3JvdW5kQ29udGVudCBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL21ldGEtYmFja2dyb3VuZC1jb250ZW50LmgiCisgQmFja2dyb3VuZEdyb3VwIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgiCisgQmFja2dyb3VuZElt YWdlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiCisgQmFj a2dyb3VuZEltYWdlQ2FjaGUgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCIKKyBCYXJyaWVyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvYmFycmllci5oIgorIEJh cnJpZXJFdmVudCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2JhcnJpZXIuaCIKKy1Cb3hlcyBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL2JveGVzLmgiCisgQ2xvc2VEaWFsb2cgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oIgorLUNvbXBvc2l0b3IgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9jb21wb3NpdG9yLmgiCistQ29tcG9zaXRvck11dHRlciBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgQ3Vyc29yVHJhY2tlciBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCIKKyBEaXNwbGF5IGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvZGlzcGxheS5oIgorIERuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtZG5k LmgiCistR3JvdXAgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9ncm91cC5oIgorIElkbGVNb25pdG9y IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIKKyBJbmhpYml0U2hv cnRjdXRzRGlhbG9nIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCIKKy1LZXliaW5kaW5ncyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2tleWJpbmRp bmdzLmgiCisgTGF1bmNoQ29udGV4dCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCIKKyBNZXRhIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWFpbi5oIgorIE1vbml0 b3JNYW5hZ2VyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIK Ky1QbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgorIFByZWZlcmVu Y2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9wcmVmcy5oIgorIFJlbW90ZUFjY2Vzc0NvbnRyb2xs ZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o IgorIFJlbW90ZUFjY2Vzc0hhbmRsZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgiCitAQCAtMzEsOSArMjYsNyBAQCBTb3VuZFBsYXllciBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc291bmQtcGxheWVyLmgiCisgU3RhZ2UgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9tZXRhLXN0YWdlLmgiCisgU3RhcnR1cE5vdGlmaWNhdGlvbiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCIKKyBUaGVtZSBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL3RoZW1lLmgiCistVHlwZXMgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS90eXBlcy5oIgorLVV0aWwgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistVmVyc2lv biBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtdmVyc2lvbi5oIgorK1dheWxhbmRDbGllbnQg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXdheWxhbmQtY2xpZW50LmgiCisgV2luZG93IGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvd2luZG93LmgiCisgV2luZG93QWN0b3IgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIgorIFdpbmRvd0dyb3VwIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIKK0BAIC00NiwxNyArMzksMTEgQEAgUGx1 Z2luIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKyBQbHVnaW5JbmZvIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKyBwcmVmc18qIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvcHJlZnMuaCIgcGFyZW50PSJNZXRhLlByZWZzIgorIGFkZF92ZXJib3NlX3Rv cGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1i dWcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWRl YnVnX3NwZXdfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB4MTFfZXJyb3JfdHJhcF9wb3AgcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHgxMV9lcnJvcl90cmFw X3B1c2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor IHgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rp b24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWZy ZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS91dGlsLmgiCistZ191dGY4X3N0cm5kdXAgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGdldF9sb2NhbGVfZGlyZWN0aW9uIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRfb3ZlcmxheV93 aW5kb3cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor IGdyYXZpdHlfdG9fc3RyaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL3V0aWwuaCIKKyBpc19kZWJ1Z2dpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvdXRpbC5oIgorIGlzX3N5bmNpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorQEAgLTY4LDEzICs1NSw4IEBAIHBvcF9ub19tc2df cHJlZml4IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK KyBwdXNoX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorIHJlY3QgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorIHJlbW92ZV92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBh cmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zaG93X2Rp YWxvZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCist dG9waWNfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGls LmgiCisgdW5zaWduZWRfbG9uZ19lcXVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCisgdW5zaWduZWRfbG9uZ19oYXNoIHBhcmVudD0iTWV0YS5VdGls IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy12ZXJib3NlX3JlYWwgcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXdhcm5pbmcgcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHNob3dfZGlhbG9n IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBnZXRf c3RhZ2VfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBnZXRfd2luZG93X2FjdG9ycyBwYXJlbnQ9 Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIgorQEAgLTgzLDEwICs2NSw3IEBAIGdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5 IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhCisgZ2V0X2Zl ZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZGlzYWJsZV91bnJlZGlyZWN0 X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkg cGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5Db21wb3Np dG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZW1wdHlf c3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZm9jdXNfc3RhZ2Vfd2luZG93IHBhcmVu dD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiCistc3RhZ2VfaXNfZm9jdXNlZCBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorIGtleWJpbmRpbmdzX3NldF9j dXN0b21faGFuZGxlciBwYXJlbnQ9Ik1ldGEuS2V5QmluZGluZyIgbmFtZT0ic2V0X2N1c3RvbV9o YW5kbGVyIgorIEtleUhhbmRsZXJGdW5jLmV2ZW50IHR5cGU9IkNsdXR0ZXIuS2V5RXZlbnQ/Igor IGdldF9iYWNrZW5kIHBhcmVudD0iTWV0YS5CYWNrZW5kIgorZGlmZiAtLWdpdCB2YXBpL2dlbmVy YXRlLW11dHRlci12YXBpLnNoIHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGkuc2gKK2luZGV4IDZi MDcwMjQwLi5iMjMzZTU4NiAxMDA3NTUKKy0tLSB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNo CisrKysgdmFwaS9nZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaAorQEAgLTEsNyArMSw3IEBACisgIyEv YmluL2Jhc2gKKyBzZXQgLXhlCisgCistdmVyc2lvbj0kezEtNH0KKyt2ZXJzaW9uPSR7Ni03fQor IGdpcmRpcj0kKHBrZy1jb25maWcgbGlibXV0dGVyLSR2ZXJzaW9uIC0tdmFyaWFibGU9Z2lyZGly KQorIAorIGNkICQoZGlybmFtZSAkMCkKK2RpZmYgLS1naXQgdmFwaS9ncmFwaGVuZS1nb2JqZWN0 LTEuMC52YXBpIHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaQorbmV3IGZpbGUgbW9kZSAx MDA2NDQKK2luZGV4IDAwMDAwMDAwLi42OTgwMTUzNQorLS0tIC9kZXYvbnVsbAorKysrIHZhcGkv Z3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaQorQEAgLTAsMCArMSw2OTEgQEAKKysvKiBncmFwaGVu ZS1nb2JqZWN0LTEuMC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAq LworKworK1tDQ29kZSAoY3ByZWZpeCA9ICJHcmFwaGVuZSIsIGdpcl9uYW1lc3BhY2UgPSAiR3Jh cGhlbmUiLCBnaXJfdmVyc2lvbiA9ICIxLjAiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiZ3JhcGhl bmVfIildCisrbmFtZXNwYWNlIEdyYXBoZW5lIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX2JveF90IiwgdHlwZV9p ZCA9ICJncmFwaGVuZV9ib3hfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorKwlwdWJsaWMgc3RydWN0IEJveCB7CisrCQlwdWJsaWMgYm9vbCBjb250YWluc19ib3gg KEdyYXBoZW5lLkJveCBiKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVu ZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/ IGVtcHR5ICgpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLkJveCBiKTsKKysJCXB1 YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kIChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1 YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kX3NjYWxhciAoZmxvYXQgc2NhbGFyKTsKKysJCXB1Ymxp YyBHcmFwaGVuZS5Cb3ggZXhwYW5kX3ZlYzMgKEdyYXBoZW5lLlZlYzMgdmVjKTsKKysJCXB1Ymxp YyBHcmFwaGVuZS5TcGhlcmUgZ2V0X2JvdW5kaW5nX3NwaGVyZSAoKTsKKysJCXB1YmxpYyBHcmFw aGVuZS5Qb2ludDNEIGdldF9jZW50ZXIgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2RlcHRoICgp OworKwkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9p bnQzRCBnZXRfbWF4ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X21pbiAoKTsK KysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF9zaXplICgpOworKwkJcHVibGljIHZvaWQgZ2V0 X3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIEdyYXBoZW5lLlZl YzMgdmVydGljZXNbOF0pOworKwkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKysJCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluZmluaXRlICgpOworKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuQm94PyBpbml0IChHcmFwaGVuZS5Qb2ludDNEPyBtaW4sIEdyYXBoZW5l LlBvaW50M0Q/IG1heCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXRfZnJv bV9ib3ggKEdyYXBoZW5lLkJveCBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94 PyBpbml0X2Zyb21fcG9pbnRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3BvaW50 cyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50Iild IEdyYXBoZW5lLlBvaW50M0RbXSBwb2ludHMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu Qm94PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMz8gbWluLCBHcmFwaGVuZS5WZWMzPyBt YXgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0X2Zyb21fdmVjdG9ycyAo W0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl92ZWN0b3JzIiwgYXJyYXlfbGVuZ3RoX3Bv cyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3JhcGhlbmUuVmVjM1tdIHZl Y3RvcnMpOworKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0aW9uIChHcmFwaGVuZS5Cb3ggYiwgb3V0 IEdyYXBoZW5lLkJveCByZXMpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJv eD8gbWludXNfb25lICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8g b25lICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gb25lX21pbnVz X29uZSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggdW5pb24gKEdyYXBoZW5lLkJveCBiKTsK KysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IHplcm8gKCk7CisrCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0g ImdyYXBoZW5lX2V1bGVyX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX2V1bGVyX2dldF90eXBlICgp IildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVjdCBFdWxlciB7 CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuRXVsZXIgYik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9hbHBoYSAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X2JldGEgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9nYW1tYSAoKTsK KysJCXB1YmxpYyBHcmFwaGVuZS5FdWxlck9yZGVyIGdldF9vcmRlciAoKTsKKysJCXB1YmxpYyBm bG9hdCBnZXRfeCAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCXB1YmxpYyBmbG9h dCBnZXRfeiAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0IChmbG9h dCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVy PyBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyPyBzcmMpOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJvbV9tYXRyaXggKEdyYXBoZW5lLk1hdHJpeD8gbSwg R3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5F dWxlcj8gaW5pdF9mcm9tX3F1YXRlcm5pb24gKEdyYXBoZW5lLlF1YXRlcm5pb24/IHEsIEdyYXBo ZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fcmFkaWFucyAoZmxvYXQg eCwgZmxvYXQgeSwgZmxvYXQgeiwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzM/ IHYsIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuRXVsZXI/IGluaXRfd2l0aF9vcmRlciAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgR3Jh cGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuRXVsZXIgcmVvcmRl ciAoR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4 IHRvX21hdHJpeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMg R3JhcGhlbmUuUXVhdGVybmlvbiB0b19xdWF0ZXJuaW9uICgpOworKwkJcHVibGljIEdyYXBoZW5l LlZlYzMgdG9fdmVjMyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3Jh cGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfZnJ1c3R1bV90IiwgdHlwZV9pZCA9 ICJncmFwaGVuZV9mcnVzdHVtX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKysJcHVibGljIHN0cnVjdCBGcnVzdHVtIHsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5z X3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5GcnVzdHVtIGIpOworKwkJcHVi bGljIHZvaWQgZ2V0X3BsYW5lcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBH cmFwaGVuZS5QbGFuZSBwbGFuZXNbNl0pOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRnJ1 c3R1bT8gaW5pdCAoR3JhcGhlbmUuUGxhbmUgcDAsIEdyYXBoZW5lLlBsYW5lIHAxLCBHcmFwaGVu ZS5QbGFuZSBwMiwgR3JhcGhlbmUuUGxhbmUgcDMsIEdyYXBoZW5lLlBsYW5lIHA0LCBHcmFwaGVu ZS5QbGFuZSBwNSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5GcnVzdHVtPyBpbml0X2Zy b21fZnJ1c3R1bSAoR3JhcGhlbmUuRnJ1c3R1bSBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuRnJ1c3R1bT8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4IG1hdHJpeCk7 CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX2JveCAoR3JhcGhlbmUuQm94IGJveCk7CisrCQlw dWJsaWMgYm9vbCBpbnRlcnNlY3RzX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJlIHNwaGVyZSk7Cisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gImdyYXBoZW5lX21hdHJpeF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9tYXRyaXhfZ2V0 X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBNYXRyaXggeworKwkJcHVibGljIGJvb2wgZGVj b21wb3NlIChvdXQgR3JhcGhlbmUuVmVjMyB0cmFuc2xhdGUsIG91dCBHcmFwaGVuZS5WZWMzIHNj YWxlLCBvdXQgR3JhcGhlbmUuUXVhdGVybmlvbiByb3RhdGUsIG91dCBHcmFwaGVuZS5WZWMzIHNo ZWFyLCBvdXQgR3JhcGhlbmUuVmVjNCBwZXJzcGVjdGl2ZSk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZGV0ZXJtaW5hbnQgKCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLk1hdHJpeCBi KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBlcXVhbF9m YXN0IChHcmFwaGVuZS5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRfcm93ICh1aW50IGluZGV4Xyk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ZhbHVlICh1aW50IHJvdywg dWludCBjb2wpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0 IGdldF94X3NjYWxlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1Ymxp YyBmbG9hdCBnZXRfeF90cmFuc2xhdGlvbiAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeV9zY2FsZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3lfdHJhbnNsYXRpb24gKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3pfc2NhbGUgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF96X3RyYW5z bGF0aW9uICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zyb21fMmQgKGRvdWJsZSB4eCwgZG91YmxlIHl4LCBk b3VibGUgeHksIGRvdWJsZSB5eSwgZG91YmxlIHhfMCwgZG91YmxlIHlfMCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGlu aXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IHZbMTZd KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLk1hdHJpeD8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4IHNyYyk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRy aXg/IGluaXRfZnJvbV92ZWM0IChHcmFwaGVuZS5WZWM0IHYwLCBHcmFwaGVuZS5WZWM0IHYxLCBH cmFwaGVuZS5WZWM0IHYyLCBHcmFwaGVuZS5WZWM0IHYzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcnVzdHVt IChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0 IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2lkZW50aXR5ICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4 PyBpbml0X2xvb2tfYXQgKEdyYXBoZW5lLlZlYzMgZXllLCBHcmFwaGVuZS5WZWMzIGNlbnRlciwg R3JhcGhlbmUuVmVjMyB1cCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0 IHJpZ2h0LCBmbG9hdCB0b3AsIGZsb2F0IGJvdHRvbSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zh cik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5NYXRyaXg/IGluaXRfcGVyc3BlY3RpdmUgKGZsb2F0IGZvdnksIGZsb2F0IGFzcGVjdCwg ZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfcm90YXRlIChmbG9hdCBh bmdsZSwgR3JhcGhlbmUuVmVjMyBheGlzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9zY2FsZSAoZmxvYXQgeCwg ZmxvYXQgeSwgZmxvYXQgeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfc2tldyAoZmxvYXQgeF9za2V3LCBmbG9h dCB5X3NrZXcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X3RyYW5zbGF0ZSAoR3JhcGhlbmUuUG9pbnQzRCBwKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRyaXgg aW50ZXJwb2xhdGUgKEdyYXBoZW5lLk1hdHJpeCBiLCBkb3VibGUgZmFjdG9yKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGludmVyc2UgKG91dCBHcmFwaGVu ZS5NYXRyaXggcmVzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBi b29sIGlzXzJkICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJv b2wgaXNfYmFja2ZhY2VfdmlzaWJsZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBib29sIGlzX2lkZW50aXR5ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIGJvb2wgaXNfc2luZ3VsYXIgKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IG11bHRpcGx5IChHcmFwaGVuZS5N YXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wg bmVhciAoR3JhcGhlbmUuTWF0cml4IGIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCBub3JtYWxpemUgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IHBl cnNwZWN0aXZlIChmbG9hdCBkZXB0aCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdm9pZCBwcmludCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwcm9qZWN0X3BvaW50IChHcmFwaGVuZS5Qb2ludCBwKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWFkIHBy b2plY3RfcmVjdCAoR3JhcGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHByb2plY3RfcmVjdF9ib3VuZHMgKEdyYXBoZW5l LlJlY3Qgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBy b3RhdGUgKGZsb2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxl ciBlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0 ZV9xdWF0ZXJuaW9uIChHcmFwaGVuZS5RdWF0ZXJuaW9uIHEpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX3ggKGZsb2F0IGFuZ2xlKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV95IChmbG9hdCBh bmdsZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCByb3Rh dGVfeiAoZmxvYXQgYW5nbGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHZvaWQgc2NhbGUgKGZsb2F0IGZhY3Rvcl94LCBmbG9hdCBmYWN0b3JfeSwgZmxvYXQgZmFj dG9yX3opOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgc2tl d194eSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyB2b2lkIHNrZXdfeHogKGZsb2F0IGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgdm9pZCBza2V3X3l6IChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgdG9fMmQgKG91dCBkb3VibGUgeHgs IG91dCBkb3VibGUgeXgsIG91dCBkb3VibGUgeHksIG91dCBkb3VibGUgeXksIG91dCBkb3VibGUg eF8wLCBvdXQgZG91YmxlIHlfMCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgdm9pZCB0b19mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBm bG9hdCB2WzE2XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuUmVjdCB0cmFuc2Zvcm1fYm91bmRzIChHcmFwaGVuZS5SZWN0IHIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLkJveCB0cmFuc2Zvcm1fYm94 IChHcmFwaGVuZS5Cb3ggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgR3JhcGhlbmUuUG9pbnQgdHJhbnNmb3JtX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHRy YW5zZm9ybV9wb2ludDNkIChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheSB0cmFuc2Zvcm1fcmF5IChHcmFwaGVu ZS5SYXkgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuUXVhZCB0cmFuc2Zvcm1fcmVjdCAoR3JhcGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgdHJhbnNmb3JtX3NwaGVy ZSAoR3JhcGhlbmUuU3BoZXJlIHMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzMgdHJhbnNmb3JtX3ZlYzMgKEdyYXBoZW5lLlZlYzMgdik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCB0cmFu c2Zvcm1fdmVjNCAoR3JhcGhlbmUuVmVjNCB2KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoR3JhcGhlbmUuUG9pbnQzRCBwb3MpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCB0cmFu c3Bvc2UgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhl bmUuUG9pbnQzRCB1bnByb2plY3RfcG9pbnQzZCAoR3JhcGhlbmUuTWF0cml4IG1vZGVsdmlldywg R3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB1bnRyYW5zZm9ybV9ib3VuZHMgKEdyYXBoZW5lLlJlY3Qg ciwgR3JhcGhlbmUuUmVjdCBib3VuZHMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIGJvb2wgdW50cmFuc2Zvcm1fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHAsIEdyYXBo ZW5lLlJlY3QgYm91bmRzLCBvdXQgR3JhcGhlbmUuUG9pbnQgcmVzKTsKKysJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhl bmVfcGxhbmVfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcGxhbmVfZ2V0X3R5cGUgKCkiKV0KKysJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IFBsYW5lIHsKKysJCXB1 YmxpYyBmbG9hdCBkaXN0YW5jZSAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMg Ym9vbCBlcXVhbCAoR3JhcGhlbmUuUGxhbmUgYik7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2NvbnN0 YW50ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X25vcm1hbCAoKTsKKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0IChHcmFwaGVuZS5WZWMzPyBub3JtYWwsIGZs b2F0IGNvbnN0YW50KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0X2Zy b21fcGxhbmUgKEdyYXBoZW5lLlBsYW5lIHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5QbGFuZT8gaW5pdF9mcm9tX3BvaW50IChHcmFwaGVuZS5WZWMzIG5vcm1hbCwgR3JhcGhlbmUu UG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5QbGFuZT8gaW5pdF9m cm9tX3BvaW50cyAoR3JhcGhlbmUuUG9pbnQzRCBhLCBHcmFwaGVuZS5Qb2ludDNEIGIsIEdyYXBo ZW5lLlBvaW50M0QgYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5QbGFuZT8gaW5pdF9m cm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5QbGFuZSBu ZWdhdGUgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUGxhbmUgbm9ybWFsaXplICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5QbGFuZSB0cmFuc2Zv cm0gKEdyYXBoZW5lLk1hdHJpeCBtYXRyaXgsIEdyYXBoZW5lLk1hdHJpeD8gbm9ybWFsX21hdHJp eCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3Qu aCIsIGNuYW1lID0gImdyYXBoZW5lX3BvaW50X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3BvaW50 X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0 cnVjdCBQb2ludCB7CisrCQlwdWJsaWMgZmxvYXQgeDsKKysJCXB1YmxpYyBmbG9hdCB5OworKwkJ cHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludCBiLCBvdXQgZmxvYXQgZF94LCBv dXQgZmxvYXQgZF95KTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5Qb2ludCBiKTsK KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5 KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0X2Zyb21fcG9pbnQgKEdy YXBoZW5lLlBvaW50IHNyYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8gaW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZlYzIg c3JjKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuUG9p bnQgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5Qb2lu dCBiLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5WZWMyIHRvX3ZlYzIgKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQg R3JhcGhlbmUuUG9pbnQ/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3BvaW50M2RfdCIsIGxv d2VyX2Nhc2VfY3N1ZmZpeCA9ICJwb2ludDNkIiwgdHlwZV9pZCA9ICJncmFwaGVuZV9wb2ludDNk X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0 cnVjdCBQb2ludDNEIHsKKysJCXB1YmxpYyBmbG9hdCB4OworKwkJcHVibGljIGZsb2F0IHk7Cisr CQlwdWJsaWMgZmxvYXQgejsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGNyb3NzIChHcmFw aGVuZS5Qb2ludDNEIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGlj IGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludDNEIGIsIG91dCBHcmFwaGVuZS5WZWMzIGRl bHRhKTsKKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlBvaW50M0QgYik7CisrCQlwdWJs aWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUG9pbnQzRCBiKTsKKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLlBvaW50M0Q/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRD8gaW5pdF9mcm9tX3BvaW50IChHcmFwaGVuZS5Q b2ludDNEIHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEPyBpbml0X2Zy b21fdmVjMyAoR3JhcGhlbmUuVmVjMyB2KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGlu dGVycG9sYXRlIChHcmFwaGVuZS5Qb2ludDNEIGIsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGlj IGZsb2F0IGxlbmd0aCAoKTsKKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLlBvaW50M0Qg YiwgZmxvYXQgZXBzaWxvbik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBub3JtYWxpemUg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9p bnQzRCBub3JtYWxpemVfdmlld3BvcnQgKEdyYXBoZW5lLlJlY3Qgdmlld3BvcnQsIGZsb2F0IHpf bmVhciwgZmxvYXQgel9mYXIpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qgc2NhbGUgKGZs b2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyB0b192ZWMzICgpOworKwkJcHVi bGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IHplcm8gKCk7CisrCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdy YXBoZW5lX3F1YWRfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcXVhZF9nZXRfdHlwZSAoKSIpXQor KwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgUXVhZCB7CisrCQlw dWJsaWMgR3JhcGhlbmUuUmVjdCBib3VuZHMgKCk7CisrCQlwdWJsaWMgYm9vbCBjb250YWlucyAo R3JhcGhlbmUuUG9pbnQgcCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8gZ2V0 X3BvaW50ICh1aW50IGluZGV4Xyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWFkPyBp bml0IChHcmFwaGVuZS5Qb2ludCBwMSwgR3JhcGhlbmUuUG9pbnQgcDIsIEdyYXBoZW5lLlBvaW50 IHAzLCBHcmFwaGVuZS5Qb2ludCBwNCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWFkPyBpbml0X2Zyb21fcG9pbnRzIChbQ0NvZGUg KGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQgcG9pbnRzWzRdKTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YWQ/IGluaXRfZnJvbV9yZWN0IChHcmFwaGVuZS5SZWN0 IHIpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0 LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9xdWF0ZXJuaW9uX3QiLCB0eXBlX2lkID0gImdyYXBoZW5l X3F1YXRlcm5pb25fZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwlwdWJsaWMgc3RydWN0IFF1YXRlcm5pb24geworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIGFkZCAoR3JhcGhlbmUuUXVhdGVybmlv biBiKTsKKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlF1YXRlcm5pb24gYik7CisrCQlw dWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUXVhdGVybmlvbiBiKTsKKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHos IGZsb2F0IHcpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9m cm9tX2FuZ2xlX3ZlYzMgKGZsb2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX2FuZ2xlcyAoZmxvYXQg ZGVnX3gsIGZsb2F0IGRlZ195LCBmbG9hdCBkZWdfeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21f ZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGUpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVh dGVybmlvbj8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4IG0pOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX3F1YXRlcm5pb24gKEdyYXBo ZW5lLlF1YXRlcm5pb24gc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5p b24/IGluaXRfZnJvbV9yYWRpYW5zIChmbG9hdCByYWRfeCwgZmxvYXQgcmFkX3ksIGZsb2F0IHJh ZF96KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRfZnJvbV92 ZWM0IChHcmFwaGVuZS5WZWM0IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0 ZXJuaW9uPyBpbml0X2lkZW50aXR5ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24g aW52ZXJ0ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5RdWF0ZXJuaW9uIG11bHRpcGx5IChHcmFwaGVuZS5RdWF0ZXJuaW9uIGIpOworKwkJcHVi bGljIEdyYXBoZW5lLlF1YXRlcm5pb24gbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIHNjYWxlIChmbG9hdCBm YWN0b3IpOworKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gc2xlcnAgKEdyYXBoZW5lLlF1 YXRlcm5pb24gYiwgZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyB2b2lkIHRvX2FuZ2xlX3ZlYzMg KG91dCBmbG9hdCBhbmdsZSwgb3V0IEdyYXBoZW5lLlZlYzMgYXhpcyk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCB0b19hbmdsZXMgKG91dCBmbG9hdCBkZWdf eCwgb3V0IGZsb2F0IGRlZ195LCBvdXQgZmxvYXQgZGVnX3opOworKwkJcHVibGljIEdyYXBoZW5l Lk1hdHJpeCB0b19tYXRyaXggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlw dWJsaWMgdm9pZCB0b19yYWRpYW5zIChvdXQgZmxvYXQgcmFkX3gsIG91dCBmbG9hdCByYWRfeSwg b3V0IGZsb2F0IHJhZF96KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHRvX3ZlYzQgKCk7Cisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gImdyYXBoZW5lX3JheV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9yYXlfZ2V0X3R5cGUg KCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwlwdWJsaWMgc3RydWN0IFJheSB7 CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUmF5IGIpOworKwkJcHVibGljIEdyYXBo ZW5lLlBvaW50M0QgZ2V0X2Nsb3Nlc3RfcG9pbnRfdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50M0Qg cCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfZGlyZWN0aW9uICgpOworKwkJcHVibGlj IGZsb2F0IGdldF9kaXN0YW5jZV90b19wbGFuZSAoR3JhcGhlbmUuUGxhbmUgcCk7CisrCQlwdWJs aWMgZmxvYXQgZ2V0X2Rpc3RhbmNlX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJ cHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X29yaWdpbiAoKTsKKysJCXB1YmxpYyBHcmFwaGVu ZS5Qb2ludDNEIGdldF9wb3NpdGlvbl9hdCAoZmxvYXQgdCk7CisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5SYXk/IGluaXQgKEdyYXBoZW5lLlBvaW50M0Q/IG9yaWdpbiwgR3JhcGhlbmUuVmVj Mz8gZGlyZWN0aW9uKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJheT8gaW5pdF9mcm9t X3JheSAoR3JhcGhlbmUuUmF5IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SYXk/ IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyBvcmlnaW4sIEdyYXBoZW5lLlZlYzM/IGRp cmVjdGlvbik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBo ZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X2JveCAoR3JhcGhlbmUuQm94IGIsIG91 dCBmbG9hdCB0X291dCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X3NwaGVyZSAoR3JhcGhlbmUu U3BoZXJlIHMsIG91dCBmbG9hdCB0X291dCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X3RyaWFu Z2xlIChHcmFwaGVuZS5UcmlhbmdsZSB0LCBvdXQgZmxvYXQgdF9vdXQpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfYm94IChHcmFwaGVu ZS5Cb3ggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wg aW50ZXJzZWN0c19zcGhlcmUgKEdyYXBoZW5lLlNwaGVyZSBzKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX3RyaWFuZ2xlIChHcmFwaGVu ZS5UcmlhbmdsZSB0KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhl bmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcmVjdF90IiwgdHlwZV9pZCA9ICJncmFw aGVuZV9yZWN0X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ cHVibGljIHN0cnVjdCBSZWN0IHsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBvcmlnaW47Cisr CQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzaXplOworKwkJcHVibGljIHN0YXRpYyBHcmFwaGVuZS5S ZWN0PyBhbGxvYyAoKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Q b2ludCBwKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKEdyYXBoZW5lLlJlY3QgYik7 CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUmVjdCBiKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGV4cGFuZCAoR3JhcGhlbmUu UG9pbnQgcCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0 IGdldF9hcmVhICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9ib3R0b21fbGVmdCAo KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfYm90dG9tX3JpZ2h0ICgpOworKwkJcHVi bGljIEdyYXBoZW5lLlBvaW50IGdldF9jZW50ZXIgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2hl aWdodCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfdG9wX2xlZnQgKCk7CisrCQlw dWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0X3RvcF9yaWdodCAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKysJCXB1YmxpYyB2b2lkIGdldF92ZXJ0aWNlcyAoW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldIHJlZiBHcmFwaGVuZS5WZWMyIHZlcnRpY2VzWzRdKTsKKysJCXB1Ymxp YyBmbG9hdCBnZXRfd2lkdGggKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlwdWJs aWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBpbml0 IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IGluaXRfZnJvbV9yZWN0IChHcmFwaGVuZS5SZWN0IHNy Yyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBpbnNldCAoZmxvYXQgZF94LCBm bG9hdCBkX3kpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBo ZW5lLlJlY3QgaW5zZXRfciAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworKwkJcHVibGljIEdyYXBo ZW5lLlJlY3QgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlJlY3QgYiwgZG91YmxlIGZhY3Rvcik7Cisr CQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24gKEdyYXBoZW5lLlJlY3QgYiwgb3V0IEdyYXBoZW5l LlJlY3QgcmVzKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IG5vcm1hbGl6ZSAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0 IG5vcm1hbGl6ZV9yICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8gb2Zmc2V0 IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisr CQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBvZmZzZXRfciAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOwor KwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHJvdW5kICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHJvdW5k X2V4dGVudHMgKCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5SZWN0PyByb3VuZF90b19waXhlbCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBzY2FsZSAoZmxvYXQgc19oLCBmbG9hdCBzX3YpOwor KwkJcHVibGljIEdyYXBoZW5lLlJlY3QgdW5pb24gKEdyYXBoZW5lLlJlY3QgYik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUu UmVjdD8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhl bmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfc2ltZDRmX3QiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKysJcHVibGljIHN0cnVjdCBTaW1kNEYgeworKwl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zaW1k NHg0Zl90IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBzdHJ1Y3QgU2ltZDRYNEYg eworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0Lmgi LCBjbmFtZSA9ICJncmFwaGVuZV9zaXplX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3NpemVfZ2V0 X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0 IFNpemUgeworKwkJcHVibGljIGZsb2F0IHdpZHRoOworKwkJcHVibGljIGZsb2F0IGhlaWdodDsK KysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5TaXplIGIpOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuU2l6ZT8gaW5pdCAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TaXplPyBpbml0X2Zyb21fc2l6ZSAoR3JhcGhlbmUuU2l6 ZSBzcmMpOworKwkJcHVibGljIEdyYXBoZW5lLlNpemUgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlNp emUgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzY2FsZSAoZmxv YXQgZmFjdG9yKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5TaXplPyB6ZXJv ICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0 LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zcGhlcmVfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfc3Bo ZXJlX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGlj IHN0cnVjdCBTcGhlcmUgeworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBoZW5l LlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2lu dDNEIHBvaW50KTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5TcGhlcmUgYik7Cisr CQlwdWJsaWMgR3JhcGhlbmUuQm94IGdldF9ib3VuZGluZ19ib3ggKCk7CisrCQlwdWJsaWMgR3Jh cGhlbmUuUG9pbnQzRCBnZXRfY2VudGVyICgpOworKwkJcHVibGljIGZsb2F0IGdldF9yYWRpdXMg KCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TcGhlcmU/IGluaXQgKEdyYXBoZW5lLlBv aW50M0Q/IGNlbnRlciwgZmxvYXQgcmFkaXVzKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlNwaGVyZT8gaW5pdF9mcm9tX3BvaW50cyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAi bl9wb2ludHMiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41LCBhcnJheV9sZW5ndGhfdHlwZSA9ICJn dWludCIpXSBHcmFwaGVuZS5Qb2ludDNEW10gcG9pbnRzLCBHcmFwaGVuZS5Qb2ludDNEPyBjZW50 ZXIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuU3BoZXJlPyBpbml0X2Zyb21fdmVjdG9y cyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl92ZWN0b3JzIiwgYXJyYXlfbGVuZ3Ro X3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3JhcGhlbmUuVmVjM1td IHZlY3RvcnMsIEdyYXBoZW5lLlBvaW50M0Q/IGNlbnRlcik7CisrCQlwdWJsaWMgYm9vbCBpc19l bXB0eSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgdHJhbnNsYXRlIChHcmFwaGVuZS5Q b2ludDNEIHBvaW50KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhl bmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdHJpYW5nbGVfdCIsIHR5cGVfaWQgPSAi Z3JhcGhlbmVfdHJpYW5nbGVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorKwlwdWJsaWMgc3RydWN0IFRyaWFuZ2xlIHsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5z X3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBo ZW5lLlRyaWFuZ2xlIGIpOworKwkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOworKwkJcHVibGlj IGJvb2wgZ2V0X2Jhcnljb29yZHMgKEdyYXBoZW5lLlBvaW50M0Q/IHAsIG91dCBHcmFwaGVuZS5W ZWMyIHJlcyk7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGdldF9ib3VuZGluZ19ib3ggKCk7Cisr CQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfbWlkcG9pbnQgKCk7CisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjMyBnZXRfbm9ybWFsICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBsYW5lIGdldF9w bGFuZSAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb2ludHMgKG91dCBHcmFwaGVuZS5Qb2ludDNE IGEsIG91dCBHcmFwaGVuZS5Qb2ludDNEIGIsIG91dCBHcmFwaGVuZS5Qb2ludDNEIGMpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGdldF91diAoR3JhcGhl bmUuUG9pbnQzRD8gcCwgR3JhcGhlbmUuVmVjMiB1dl9hLCBHcmFwaGVuZS5WZWMyIHV2X2IsIEdy YXBoZW5lLlZlYzIgdXZfYywgb3V0IEdyYXBoZW5lLlZlYzIgcmVzKTsKKysJCXB1YmxpYyB2b2lk IGdldF92ZXJ0aWNlcyAob3V0IEdyYXBoZW5lLlZlYzMgYSwgb3V0IEdyYXBoZW5lLlZlYzMgYiwg b3V0IEdyYXBoZW5lLlZlYzMgYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuVHJpYW5nbGU/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IGFbM10sIFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBmbG9hdCBiWzNdLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxv YXQgY1szXSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5UcmlhbmdsZT8gaW5pdF9mcm9t X3BvaW50M2QgKEdyYXBoZW5lLlBvaW50M0Q/IGEsIEdyYXBoZW5lLlBvaW50M0Q/IGIsIEdyYXBo ZW5lLlBvaW50M0Q/IGMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVHJpYW5nbGU/IGlu aXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyBhLCBHcmFwaGVuZS5WZWMzPyBiLCBHcmFwaGVu ZS5WZWMzPyBjKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUt Z29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdmVjMl90IiwgdHlwZV9pZCA9ICJncmFwaGVu ZV92ZWMyX2dldF90eXBlICgpIildCisrCXB1YmxpYyBzdHJ1Y3QgVmVjMiB7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBhZGQgKEdyYXBoZW5l LlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjMiBkaXZpZGUgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlZlYzIg djIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94 ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF95 ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuVmVjMj8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBpbml0X2Zyb21fZmxv YXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBzcmNbMl0pOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjMj8g aW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZlYzIgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUu VmVjMiB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbWF4IChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbWluIChHcmFwaGVu ZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBo ZW5lLlZlYzIgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5WZWMyIHYyLCBmbG9hdCBl cHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5WZWMyIG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5WZWMyIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBvbmUgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBzY2FsZSAo ZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5WZWMyIHN1YnRyYWN0IChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFsyXSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMj8geF9heGlzICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVk IEdyYXBoZW5lLlZlYzI/IHlfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyB6ZXJvICgpOworKwl9Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9 ICJncmFwaGVuZV92ZWMzX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3ZlYzNfZ2V0X3R5cGUgKCki KV0KKysJcHVibGljIHN0cnVjdCBWZWMzIHsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGFkZCAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGNyb3NzIChHcmFw aGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLlZlYzMgZGl2aWRlIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5W ZWMzIHYyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBn ZXRfeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5WZWMyIGdldF94eSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5WZWMzIGdldF94eTAgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRfeHl6MCAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF94eXoxICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgZ2V0X3h5encg KGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0 IGdldF95ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0 IGdldF96ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuVmVjMz8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMz PyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBz cmNbM10pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuVmVjMz8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzMgc3JjKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBpbnRlcnBv bGF0ZSAoR3JhcGhlbmUuVmVjMyB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbWF4IChHcmFwaGVuZS5WZWMz IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZl YzMgbWluIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzMgYik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5W ZWMzIHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5WZWMzIG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMz PyBvbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjMyBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIHN1YnRyYWN0IChHcmFwaGVuZS5WZWMzIGIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFszXSk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUu VmVjMz8geF9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IHlfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyB6 X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgR3JhcGhlbmUuVmVjMz8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdmVjNF90 IiwgdHlwZV9pZCA9ICJncmFwaGVuZV92ZWM0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBzdHJ1 Y3QgVmVjNCB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjNCBhZGQgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBkaXZpZGUgKEdyYXBoZW5lLlZlYzQgYik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFwaGVu ZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJvb2wg ZXF1YWwgKEdyYXBoZW5lLlZlYzQgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIGZsb2F0IGdldF93ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIGZsb2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlZlYzIgZ2V0X3h5ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X3h5eiAoKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeiAoKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IGluaXQg KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gaW5pdF9mcm9tX2Zs b2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgc3JjWzRdKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/ IGluaXRfZnJvbV92ZWMyIChHcmFwaGVuZS5WZWMyIHNyYywgZmxvYXQgeiwgZmxvYXQgdyk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5W ZWM0PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMyBzcmMsIGZsb2F0IHcpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8g aW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUu VmVjNCB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbWF4IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbWluIChHcmFwaGVu ZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBo ZW5lLlZlYzQgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5WZWM0IHYyLCBmbG9hdCBl cHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5WZWM0IG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5WZWM0IG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyBvbmUgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBzY2FsZSAo ZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5WZWM0IHN1YnRyYWN0IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFs0XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gd19heGlzICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVk IEdyYXBoZW5lLlZlYzQ/IHhfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyB5X2F4aXMgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhl bmUuVmVjND8gel9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHplcm8gKCk7CisrCX0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBo ZW5lX2V1bGVyX29yZGVyX3QiLCBjcHJlZml4ID0gIkdSQVBIRU5FX0VVTEVSX09SREVSXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1Ymxp YyBlbnVtIEV1bGVyT3JkZXIgeworKwkJREVGQVVMVCwKKysJCVhZWiwKKysJCVlaWCwKKysJCVpY WSwKKysJCVhaWSwKKysJCVlYWiwKKysJCVpZWCwKKysJCVNYWVosCisrCQlTWFlYLAorKwkJU1ha WSwKKysJCVNYWlgsCisrCQlTWVpYLAorKwkJU1laWSwKKysJCVNZWFosCisrCQlTWVhZLAorKwkJ U1pYWSwKKysJCVNaWFosCisrCQlTWllYLAorKwkJU1pZWiwKKysJCVJaWVgsCisrCQlSWFlYLAor KwkJUllaWCwKKysJCVJYWlgsCisrCQlSWFpZLAorKwkJUllaWSwKKysJCVJaWFksCisrCQlSWVhZ LAorKwkJUllYWiwKKysJCVJaWFosCisrCQlSWFlaLAorKwkJUlpZWgorKwl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVu ZV9yYXlfaW50ZXJzZWN0aW9uX2tpbmRfdCIsIGNwcmVmaXggPSAiR1JBUEhFTkVfUkFZX0lOVEVS U0VDVElPTl9LSU5EXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorKwlwdWJsaWMgZW51bSBSYXlJbnRlcnNlY3Rpb25LaW5kIHsKKysJCU5PTkUs CisrCQlFTlRFUiwKKysJCUxFQVZFCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX0hBU19HQ0MiKV0KKysJcHVi bGljIGNvbnN0IGludCBIQVNfR0NDOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3Jh cGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfSEFTX1NDQUxBUiIpXQorKwlwdWJs aWMgY29uc3QgaW50IEhBU19TQ0FMQVI7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJn cmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9IQVNfU1NFIildCisrCXB1Ymxp YyBjb25zdCBpbnQgSEFTX1NTRTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBo ZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1BJIildCisrCXB1YmxpYyBjb25zdCBk b3VibGUgUEk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0 LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9QSV8yIildCisrCXB1YmxpYyBjb25zdCBkb3VibGUgUElf MjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gIkdSQVBIRU5FX1NJTURfUyIpXQorKwlwdWJsaWMgY29uc3Qgc3RyaW5nIFNJTURfUzsK KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1l ID0gIkdSQVBIRU5FX1ZFQzJfTEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ cHVibGljIGNvbnN0IGludCBWRUMyX0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzNfTEVOIildCisrCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIGNvbnN0IGludCBWRUMzX0xFTjsKKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0g IkdSQVBIRU5FX1ZFQzRfTEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVi bGljIGNvbnN0IGludCBWRUM0X0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdy YXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImZhbHNlIildCisrCXB1YmxpYyBjb25zdCBpbnQg QGZhbHNlOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5o IiwgY25hbWUgPSAidHJ1ZSIpXQorKwlwdWJsaWMgY29uc3QgaW50IEB0cnVlOworK30KK2RpZmYg LS1naXQgdmFwaS9saWJtdXR0ZXItMi5kZXBzIHZhcGkvbGlibXV0dGVyLTIuZGVwcworZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAxZjNjOTA3OS4uMDAwMDAwMDAKKy0tLSB2YXBpL2xp Ym11dHRlci0yLmRlcHMKKysrKyAvZGV2L251bGwKK0BAIC0xLDkgKzAsMCBAQAorLWNhaXJvCist Z3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcworLWdkay0zLjAKKy1nZGstcGl4YnVmLTIuMAorLWd0 aystMy4wCisteDExCisteGZpeGVzLTQuMAorLWNsdXR0ZXItMS4wCistY29nbC0xLjAKK2RpZmYg LS1naXQgdmFwaS9saWJtdXR0ZXItMi52YXBpIHZhcGkvbGlibXV0dGVyLTIudmFwaQorZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwYTZjNDM1Ny4uMDAwMDAwMDAKKy0tLSB2YXBpL2xp Ym11dHRlci0yLnZhcGkKKysrKyAvZGV2L251bGwKK0BAIC0xLDEzMjUgKzAsMCBAQAorLS8qIGxp Ym11dHRlci52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworLQor LVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3Zl cnNpb24gPSAiMy4wIiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gIm1ldGFfIildCistbmFtZXNwYWNl IE1ldGEgeworLQluYW1lc3BhY2UgUHJlZnMgeworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGFkZF9saXN0ZW5lciAo TWV0YS5QcmVmc0NoYW5nZWRGdW5jIGZ1bmMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGJlbGxfaXNfYXVkaWJs ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlX25hbWUgKGludCBpLCBzdHJpbmcg bmFtZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCist CQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9uIGdldF9hY3Rpb25fZG91Ymxl X2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBnZXRf YWN0aW9uX21pZGRsZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGVi YXJBY3Rpb24gZ2V0X2FjdGlvbl9yaWdodF9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9v bCBnZXRfYXR0YWNoX21vZGFsX2RpYWxvZ3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2F1dG9fbWF4 aW1pemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2F1dG9fcmFpc2UgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGludCBn ZXRfYXV0b19yYWlzZV9kZWxheSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5CdXR0b25MYXlvdXQgZ2V0X2J1 dHRvbl9sYXlvdXQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2NlbnRlcl9uZXdfd2luZG93cyAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgYm9vbCBnZXRfY29tcG9zaXRpbmdfbWFuYWdlciAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdl dF9jdXJzb3Jfc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ2V0X2N1cnNvcl90aGVt ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZGlzYWJsZV93b3JrYXJvdW5kcyAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg aW50IGdldF9kcmFnX3RocmVzaG9sZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9kcmFnZ2FibGVfYm9y ZGVyX3dpZHRoICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9keW5hbWljX3dvcmtzcGFjZXMgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMg c3RhdGljIGJvb2wgZ2V0X2VkZ2VfdGlsaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9mb2N1c19j aGFuZ2Vfb25fcG9pbnRlcl9yZXN0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5Gb2N1c01vZGUgZ2V0 X2ZvY3VzX21vZGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTmV3V2luZG93cyBnZXRfZm9j dXNfbmV3X3dpbmRvd3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJs aWMgc3RhdGljIGJvb2wgZ2V0X2dub21lX2FjY2Vzc2liaWxpdHkgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wg Z2V0X2dub21lX2FuaW1hdGlvbnMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2lnbm9yZV9yZXF1ZXN0 X2hpZGVfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuS2V5QmluZGluZ0FjdGlvbiBnZXRfa2V5 YmluZGluZ19hY3Rpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9tb3VzZV9idXR0 b25fbWVudSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5WaXJ0dWFsTW9kaWZpZXIgZ2V0X21vdXNlX2J1dHRv bl9tb2RzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIp XQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X21vdXNlX2J1dHRvbl9yZXNpemUgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3Rh dGljIGludCBnZXRfbnVtX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3JhaXNlX29u X2NsaWNrICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIp XQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51ICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGlj IHN0YXRpYyB1bm93bmVkIFBhbmdvLkZvbnREZXNjcmlwdGlvbiBnZXRfdGl0bGViYXJfZm9udCAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgYm9vbCBnZXRfdmlzdWFsX2JlbGwgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlZp c3VhbEJlbGxUeXBlIGdldF92aXN1YWxfYmVsbF90eXBlICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0 cmluZyBnZXRfd29ya3NwYWNlX25hbWUgKGludCBpKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfd29ya3Nw YWNlc19vbmx5X29uX3ByaW1hcnkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdCAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCBvdmVycmlkZV9wcmVmZXJlbmNlX3NjaGVtYSAoc3RyaW5nIGtleSwgc3RyaW5nIHNjaGVt YSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2xpc3RlbmVyIChNZXRhLlByZWZzQ2hhbmdlZEZ1bmMg ZnVuYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wgd2hldGhlcik7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIgKGJvb2wgd2hl dGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X251bV93b3Jrc3BhY2VzIChpbnQgbl93b3Jrc3BhY2Vz KTsKKy0JfQorLQluYW1lc3BhY2UgVXRpbCB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2FkZF92ZXJib3NlX3RvcGljIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3Bp Yyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJtZXRhX2J1ZyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGJ1ZyAoc3RyaW5nIGZvcm1hdCwg Li4uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIm1ldGFfZGVidWdfc3Bld19yZWFsIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdf c3Bld19yZWFsIChzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9kaXNhYmxlX3VucmVkaXJlY3RfZm9y X3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3Jf c2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2Vf aW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRf cmVnaW9uIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3Jfc2Ny ZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3RfZm9yX3NjcmVl biAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXJyb3JfdHJhcF9wb3AiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdm9pZCBlcnJvcl90cmFwX3BvcCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lcnJv cl90cmFwX3B1c2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90cmFwX3B1c2ggKE1l dGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXJyb3JfdHJhcF9wdXNoX3dpdGhfcmV0dXJuIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgZXJyb3JfdHJhcF9wdXNoX3dpdGhfcmV0dXJuIChNZXRhLkRp c3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJtZXRhX2V4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIildCist CQlwdWJsaWMgc3RhdGljIHN0cmluZyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiAo dWludCBrZXliaW5kaW5nX2FjdGlvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2ZhdGFsIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgZmF0YWwgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2ZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50 cyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyAoR0xp Yi5TTGlzdDx2b2lkKj4gbGlzdF90b19kZWVwX2ZyZWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9nX3V0Zjhfc3RybmR1cCIpXQor LQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNpemVf dCBuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIm1ldGFfZ2V0X2xvY2FsZV9kaXJlY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5M b2NhbGVEaXJlY3Rpb24gZ2V0X2xvY2FsZV9kaXJlY3Rpb24gKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9vdmVybGF5X3dp bmRvdyIpXQorLQkJcHVibGljIHN0YXRpYyBYLldpbmRvdyBnZXRfb3ZlcmxheV93aW5kb3cgKE1l dGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJtZXRhX2dyYXZpdHlfdG9fc3RyaW5nIildCistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9fc3RyaW5nIChpbnQgZ3Jhdml0eSk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2lz X2RlYnVnZ2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX2RlYnVnZ2luZyAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFf aXNfc3luY2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3N5bmNpbmcgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2lz X3ZlcmJvc2UiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc192ZXJib3NlICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9pc193 YXlsYW5kX2NvbXBvc2l0b3IiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc193YXlsYW5kX2Nv bXBvc2l0b3IgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJtZXRhX2xhdGVyX2FkZCIpXQorLQkJcHVibGljIHN0YXRpYyB1aW50IGxhdGVy X2FkZCAoTWV0YS5MYXRlclR5cGUgd2hlbiwgb3duZWQgR0xpYi5Tb3VyY2VGdW5jIGZ1bmMpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0 YV9sYXRlcl9yZW1vdmUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBsYXRlcl9yZW1vdmUgKHVp bnQgbGF0ZXJfaWQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAibWV0YV9wb3Bfbm9fbXNnX3ByZWZpeCIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkIHBvcF9ub19tc2dfcHJlZml4ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9wdXNoX25vX21zZ19wcmVmaXgiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBwdXNoX25vX21zZ19wcmVmaXggKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3JlY3QiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgTWV0YS5SZWN0YW5nbGU/IHJlY3QgKGludCB4LCBpbnQgeSwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIm1ldGFfcmVtb3ZlX3ZlcmJvc2VfdG9waWMiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCByZW1vdmVfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGljIHRvcGljKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBj bmFtZSA9ICJtZXRhX3NldF9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLlNjcmVlbiBzY3JlZW4sIFguWHNlcnZl clJlZ2lvbiByZWdpb24pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY25hbWUgPSAibWV0YV9zaG93X2RpYWxvZyIpXQorLQkJcHVibGljIHN0YXRpYyBHTGli LlBpZCBzaG93X2RpYWxvZyAoc3RyaW5nIHR5cGUsIHN0cmluZyBtZXNzYWdlLCBzdHJpbmc/IHRp bWVvdXQgPSBudWxsLCBzdHJpbmc/IGRpc3BsYXkgPSBudWxsLCBzdHJpbmc/IG9rX3RleHQgPSBu dWxsLCBzdHJpbmc/IGNhbmNlbF90ZXh0ID0gbnVsbCwgc3RyaW5nPyBpY29uX25hbWUgPSBudWxs LCBpbnQgdHJhbnNpZW50X2ZvciA9IDAsIEdMaWIuU0xpc3Q8c3RyaW5nPj8gY29sdW1ucyA9IG51 bGwsIEdMaWIuU0xpc3Q8c3RyaW5nPj8gZW50cmllcyA9IG51bGwpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV90b3BpY19yZWFsIild CistCQlwdWJsaWMgc3RhdGljIHZvaWQgdG9waWNfcmVhbCAoTWV0YS5EZWJ1Z1RvcGljIHRvcGlj LCBzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2VxdWFsIildCistCQlwdWJs aWMgc3RhdGljIGludCB1bnNpZ25lZF9sb25nX2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0 YV91bnNpZ25lZF9sb25nX2hhc2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWludCB1bnNpZ25lZF9s b25nX2hhc2ggKHZvaWQqIHYpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAibWV0YV92ZXJib3NlX3JlYWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCB2ZXJib3NlX3JlYWwgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3dhcm5pbmciKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCB3YXJuaW5nIChzdHJpbmcgZm9ybWF0LCAuLi4pOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0 YV9iYWNrZW5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCYWNrZW5k IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2JhY2tlbmQiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkJhY2tlbmQgZ2V0X2JhY2tlbmQgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9zdGFnZSAoKTsKKy0JCXB1YmxpYyB2 b2lkIGxvY2tfbGF5b3V0X2dyb3VwICh1aW50IGlkeCk7CistCQlwdWJsaWMgdm9pZCBzZXRfa2V5 bWFwIChzdHJpbmcgbGF5b3V0cywgc3RyaW5nIHZhcmlhbnRzLCBzdHJpbmcgb3B0aW9ucyk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiLCB0eXBl X2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFj a2dyb3VuZCA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kIChNZXRhLlNjcmVlbiBzY3JlZW4pOwor LQkJcHVibGljIHN0YXRpYyB2b2lkIHJlZnJlc2hfYWxsICgpOworLQkJcHVibGljIHZvaWQgc2V0 X2JsZW5kIChHTGliLkZpbGUgZmlsZTEsIEdMaWIuRmlsZSBmaWxlMiwgZG91YmxlIGJsZW5kX2Zh Y3RvciwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAo R0xpYi5GaWxlIGZpbGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CistCQlwdWJs aWMgdm9pZCBzZXRfZ3JhZGllbnQgKEdEZXNrdG9wLkJhY2tncm91bmRTaGFkaW5nIHNoYWRpbmdf ZGlyZWN0aW9uLCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNvbG9yIHNlY29uZF9jb2xv cik7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNjcmVlbiBtZXRhX3Nj cmVlbiB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hh bmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2FjdG9yX2dldF90 eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQWN0b3IgOiBDbHV0dGVyLkFjdG9y LCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIs IENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3VuZEFj dG9yIChNZXRhLlNjcmVlbiBzY3JlZW4sIGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCk7CistCQlwdWJsaWMgdm9p ZCBzZXRfdmlnbmV0dGUgKGJvb2wgZW5hYmxlZCwgZG91YmxlIGJyaWdodG5lc3MsIGRvdWJsZSBz aGFycG5lc3MpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5CYWNrZ3Jv dW5kIGJhY2tncm91bmQgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgZG91YmxlIGJyaWdodG5lc3MgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TY3JlZW4gbWV0YV9zY3JlZW4geyBvd25lZCBnZXQ7 IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IG1vbml0 b3IgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg Ym9vbCB2aWduZXR0ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBkb3VibGUgdmlnbmV0dGVfc2hhcnBuZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCIsIHR5 cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dyb3VwX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBCYWNrZ3JvdW5kR3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENs dXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3VuZEdyb3VwICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIiwgdHlw ZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNs YXNzIEJhY2tncm91bmRJbWFnZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZ3JvdW5kSW1hZ2UgKCk7 CistCQlwdWJsaWMgYm9vbCBnZXRfc3VjY2VzcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wu VGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2xvYWRlZCAoKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBsb2FkZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiLCB0eXBlX2lkID0gIm1ldGFf YmFja2dyb3VuZF9pbWFnZV9jYWNoZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFj a2dyb3VuZEltYWdlQ2FjaGUgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2dyb3VuZEltYWdlQ2FjaGUg KCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNrZ3JvdW5kSW1hZ2VDYWNoZSBn ZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmRJbWFnZSBsb2FkIChHTGli LkZpbGUgZmlsZSk7CistCQlwdWJsaWMgdm9pZCBwdXJnZSAoR0xpYi5GaWxlIGZpbGUpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCIsIHR5cGVfaWQg PSAibWV0YV9iYXJyaWVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYXJyaWVyIDog R0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorLQkJcHJvdGVjdGVkIEJhcnJpZXIgKCk7CistCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOwor LQkJcHVibGljIGJvb2wgaXNfYWN0aXZlICgpOworLQkJcHVibGljIHZvaWQgcmVsZWFzZSAoTWV0 YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg TWV0YS5CYXJyaWVyRGlyZWN0aW9uIGRpcmVjdGlvbnMgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25l ZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50 IHgxIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGludCB4MiB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBpbnQgeTEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgaW50IHkyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBoaXQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBs ZWZ0IChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2V2 ZW50X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgQmFycmllckV2 ZW50IHsKKy0JCXB1YmxpYyBpbnQgZHQ7CistCQlwdWJsaWMgZG91YmxlIGR4OworLQkJcHVibGlj IGRvdWJsZSBkeTsKKy0JCXB1YmxpYyBpbnQgZXZlbnRfaWQ7CistCQlwdWJsaWMgYm9vbCBncmFi YmVkOworLQkJcHVibGljIGJvb2wgcmVsZWFzZWQ7CistCQlwdWJsaWMgdWludDMyIHRpbWU7Cist CQlwdWJsaWMgZG91YmxlIHg7CistCQlwdWJsaWMgZG91YmxlIHk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci5oIildCistCVtDb21wYWN0XQorLQlw dWJsaWMgY2xhc3MgQ29tcG9zaXRvciB7CistCQlwdWJsaWMgdm9pZCBhZGRfd2luZG93IChNZXRh LldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKy0JCXB1YmxpYyBi b29sIGZpbHRlcl9rZXliaW5kaW5nIChNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCQlwdWJs aWMgdm9pZCBmbGFzaF9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0 YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBmb2N1c19zdGFn ZV93aW5kb3cgKE1ldGEuU2NyZWVuIHNjcmVlbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUg PSAibWV0YV9nZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9zY3JlZW4gKE1l dGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfc3RhZ2VfZm9yX3NjcmVlbiIp XQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3I/IGdldF9zdGFnZV9mb3Jf c2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3RvcF93aW5k b3dfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIu QWN0b3I/IGdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVl bik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2FjdG9ycyIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93QWN0b3I+PyBnZXRfd2luZG93X2Fj dG9ycyAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3Jv dXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3I/ IGdldF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCXB1 YmxpYyB2b2lkIGhpZGVfdGlsZV9wcmV2aWV3ICgpOworLQkJcHVibGljIHZvaWQgaGlkZV93aW5k b3cgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5Db21wRWZmZWN0IGVmZmVjdCk7CistCQlwdWJs aWMgdm9pZCBtYW5hZ2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkNvbXBvc2l0b3IgQG5ldyAo TWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVibGljIHZvaWQgcXVldWVfZnJhbWVfZHJhd24g KE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBub19kZWxheV9mcmFtZSk7CistCQlwdWJsaWMgdm9p ZCByZW1vdmVfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgc2hv d190aWxlX3ByZXZpZXcgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5SZWN0YW5nbGUgdGlsZV9y ZWN0LCBpbnQgdGlsZV9tb25pdG9yX251bWJlcik7CistCQlwdWJsaWMgdm9pZCBzaG93X3dpbmRv dyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkNvbXBFZmZlY3QgZWZmZWN0KTsKKy0JCXB1Ymxp YyB2b2lkIHNob3dfd2luZG93X21lbnUgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dN ZW51VHlwZSBtZW51LCBpbnQgeCwgaW50IHkpOworLQkJcHVibGljIHZvaWQgc2hvd193aW5kb3df bWVudV9mb3JfcmVjdCAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1l bnUsIE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworLQkJcHVibGljIHZvaWQgc2l6ZV9jaGFuZ2Vfd2lu ZG93IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuU2l6ZUNoYW5nZSB3aGljaF9jaGFuZ2UsIE1l dGEuUmVjdGFuZ2xlIG9sZF9mcmFtZV9yZWN0LCBNZXRhLlJlY3RhbmdsZSBvbGRfYnVmZmVyX3Jl Y3QpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIsIGNuYW1lID0gIm1ldGFfc3RhZ2VfaXNfZm9jdXNlZCIpXQorLQkJcHVibGljIHN0YXRp YyBib29sIHN0YWdlX2lzX2ZvY3VzZWQgKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlwdWJsaWMg dm9pZCBzd2l0Y2hfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSBmcm9tLCBNZXRhLldvcmtzcGFj ZSB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHN5 bmNfc3RhY2sgKEdMaWIuTGlzdDxNZXRhLldpbmRvd0FjdG9yPiBzdGFjayk7CistCQlwdWJsaWMg dm9pZCBzeW5jX3VwZGF0ZXNfZnJvemVuIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGlj IHZvaWQgc3luY193aW5kb3dfZ2VvbWV0cnkgKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBkaWRf cGxhY2VtZW50KTsKKy0JCXB1YmxpYyB2b2lkIHVubWFuYWdlICgpOworLQkJcHVibGljIHZvaWQg d2luZG93X29wYWNpdHlfY2hhbmdlZCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JCXB1YmxpYyB2 b2lkIHdpbmRvd19zaGFwZV9jaGFuZ2VkIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGlj IHZvaWQgd2luZG93X3N1cmZhY2VfY2hhbmdlZCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgi LCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX3RyYWNrZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIEN1cnNvclRyYWNrZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQ3Vyc29yVHJhY2tlciAoKTsK Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkN1cnNvclRyYWNrZXIgZ2V0X2Zvcl9zY3Jl ZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlwdWJsaWMgdm9pZCBnZXRfaG90IChvdXQgaW50 IHgsIG91dCBpbnQgeSk7CistCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlciAoaW50IHgsIGludCB5 LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RzKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4 dHVyZSBnZXRfc3ByaXRlICgpOworLQkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJsZSAo Ym9vbCB2aXNpYmxlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCB0eXBl X2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRGlzcGxh eSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKy0JCXByb3RlY3RlZCBEaXNwbGF5ICgpOworLQkJcHVibGljIHZvaWQgYWRkX2lnbm9y ZWRfY3Jvc3Npbmdfc2VyaWFsICh1bG9uZyBzZXJpYWwpOworLQkJcHVibGljIHVpbnQgYWRkX2tl eWJpbmRpbmcgKHN0cmluZyBuYW1lLCBHTGliLlNldHRpbmdzIHNldHRpbmdzLCBNZXRhLktleUJp bmRpbmdGbGFncyBmbGFncywgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYyBoYW5kbGVyKTsKKy0J CXB1YmxpYyBib29sIGJlZ2luX2dyYWJfb3AgKE1ldGEuU2NyZWVuIHNjcmVlbiwgTWV0YS5XaW5k b3cgd2luZG93LCBNZXRhLkdyYWJPcCBvcCwgYm9vbCBwb2ludGVyX2FscmVhZHlfZ3JhYmJlZCwg Ym9vbCBmcmFtZV9hY3Rpb24sIGludCBidXR0b24sIHVsb25nIG1vZG1hc2ssIHVpbnQzMiB0aW1l c3RhbXAsIGludCByb290X3gsIGludCByb290X3kpOworLQkJcHVibGljIHZvaWQgY2xlYXJfbW91 c2VfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9ncmFiX29wICh1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19mb2N1c193aW5kb3cgKE1ldGEuU2NyZWVu IHNjcmVlbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmcmVlemVfa2V5Ym9h cmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Db21wb3NpdG9y IGdldF9jb21wb3NpdG9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lICgp OworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lX3JvdW5kdHJpcCAoKTsKKy0JCXB1 YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9iYXNlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0 YS5XaW5kb3cgZ2V0X2ZvY3VzX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBNZXRhLkdyYWJPcCBnZXRf Z3JhYl9vcCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9rZXliaW5kaW5nX2FjdGlvbiAodWludCBr ZXljb2RlLCB1bG9uZyBtYXNrKTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2xhc3RfdXNlcl90aW1l ICgpOworLQkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfY3VycmVudCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1l dGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5X aW5kb3c+IGdldF90YWJfbGlzdCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlPyB3 b3Jrc3BhY2UpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9uZXh0IChN ZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBNZXRhLldpbmRvdz8g d2luZG93LCBib29sIGJhY2t3YXJkKTsKKy0JCXB1YmxpYyB1bm93bmVkIFguRGlzcGxheSBnZXRf eGRpc3BsYXkgKCk7CistCQlwdWJsaWMgaW50IGdldF94aW5wdXRfb3Bjb2RlICgpOworLQkJcHVi bGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAoc3RyaW5nIGFjY2VsZXJhdG9yKTsKKy0JCXB1Ymxp YyBib29sIGhhc19zaGFwZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3BvaW50ZXJfZW11bGF0aW5n X3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKy0JCXB1YmxpYyB1 bm93bmVkIE1ldGEuR3JvdXAgbG9va3VwX2dyb3VwIChYLldpbmRvdyBncm91cF9sZWFkZXIpOwor LQkJcHVibGljIGJvb2wgcmVtb3ZlX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9pbnB1dF9mb2N1c193aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBm b2N1c19mcmFtZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFr IE1ldGEuV2luZG93PiBzb3J0X3dpbmRvd3NfYnlfc3RhY2tpbmcgKEdMaWIuU0xpc3Q8TWV0YS5X aW5kb3c+IHdpbmRvd3MpOworLQkJcHVibGljIGJvb2wgc3VwcG9ydHNfZXh0ZW5kZWRfYmFycmll cnMgKCk7CistCQlwdWJsaWMgdm9pZCB1bmZyZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVzdGFt cCk7CistCQlwdWJsaWMgYm9vbCB1bmdyYWJfYWNjZWxlcmF0b3IgKHVpbnQgYWN0aW9uX2lkKTsK Ky0JCXB1YmxpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7CistCQlw dWJsaWMgdm9pZCB1bm1hbmFnZV9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbiwgdWludDMyIHRp bWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB4c2VydmVyX3RpbWVfaXNfYmVmb3JlICh1aW50MzIg dGltZTEsIHVpbnQzMiB0aW1lMik7CistCQlwdWJsaWMgYm9vbCB4d2luZG93X2lzX2Ffbm9fZm9j dXNfd2luZG93IChYLldpbmRvdyB4d2luZG93KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY2Nl bGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0LCB1aW50IHAwLCB1aW50IHAxKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRhLlNjcmVlbiBvYmplY3QsIE1ldGEu V2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9v cF9lbmQgKE1ldGEuU2NyZWVuIG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAx KTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBtb2RpZmllcnNfYWNjZWxlcmF0b3JfYWN0aXZhdGVk ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG92ZXJsYXlfa2V5ICgpOworLQkJcHVibGljIHNp Z25hbCBib29sIHJlc3RhcnQgKCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXNpemVf cG9wdXAgKGJvb2wgb2JqZWN0LCBNZXRhLlJlY3RhbmdsZSBwMCwgaW50IHAxLCBpbnQgcDIpOwor LQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzdGFydF9tZXNzYWdlIChzdHJpbmc/IG1lc3Nh Z2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19jcmVhdGVkIChNZXRhLldpbmRvdyBv YmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19kZW1hbmRzX2F0dGVudGlvbiAo TWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbWFya2Vk X3VyZ2VudCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21tb24uaCIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEZy YW1lIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ncm91cC5oIild CistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgR3JvdXAgeworLQkJcHVibGljIGludCBnZXRf c2l6ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc3RhcnR1cF9pZCAoKTsKKy0J CXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsKKy0J CXB1YmxpYyBib29sIHByb3BlcnR5X25vdGlmeSAoWC5FdmVudCBldmVudCk7CistCQlwdWJsaWMg dm9pZCB1cGRhdGVfbGF5ZXJzICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFfaWRsZV9tb25pdG9y X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBJZGxlTW9uaXRvciA6IEdMaWIuT2JqZWN0 IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3Rl Y3RlZCBJZGxlTW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1aW50IGFkZF9pZGxlX3dhdGNoICh1aW50 NjQgaW50ZXJ2YWxfbXNlYywgb3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJh Y2spOworLQkJcHVibGljIHVpbnQgYWRkX3VzZXJfYWN0aXZlX3dhdGNoIChvd25lZCBNZXRhLklk bGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQg TWV0YS5JZGxlTW9uaXRvciBnZXRfY29yZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBN ZXRhLklkbGVNb25pdG9yIGdldF9mb3JfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsKKy0JCXB1Ymxp YyBpbnQ2NCBnZXRfaWRsZXRpbWUgKCk7CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd2F0Y2ggKHVp bnQgaWQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IGRldmljZV9pZCB7 IGdldDsgY29uc3RydWN0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEva2V5YmluZGluZ3MuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9m dW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0 X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBLZXlCaW5kaW5nIHsKKy0J CXB1YmxpYyB1aW50IGdldF9tYXNrICgpOworLQkJcHVibGljIE1ldGEuVmlydHVhbE1vZGlmaWVy IGdldF9tb2RpZmllcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7 CistCQlwdWJsaWMgYm9vbCBpc19idWlsdGluICgpOworLQkJcHVibGljIGJvb2wgaXNfcmV2ZXJz ZWQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9rZXliaW5kaW5ncy5o IiwgY25hbWUgPSAibWV0YV9rZXliaW5kaW5nc19zZXRfY3VzdG9tX2hhbmRsZXIiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgYm9vbCBzZXRfY3VzdG9tX2hhbmRsZXIgKHN0cmluZyBuYW1lLCBvd25lZCBN ZXRhLktleUhhbmRsZXJGdW5jPyBoYW5kbGVyKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX21v bml0b3JfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTW9u aXRvck1hbmFnZXIgOiBHTGliLkRCdXNJbnRlcmZhY2VTa2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJm YWNlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXBy b3RlY3RlZCBNb25pdG9yTWFuYWdlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRh Lk1vbml0b3JNYW5hZ2VyIEBnZXQgKCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2Zvcl9v dXRwdXQgKHVpbnQgaWQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9j aGFuZ2UgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1w bHVnaW4uaCIsIHR5cGVfaWQgPSAibWV0YV9wbHVnaW5fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGFic3RyYWN0IGNsYXNzIFBsdWdpbiA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQbHVnaW4gKCk7CistCQlw dWJsaWMgYm9vbCBiZWdpbl9tb2RhbCAoTWV0YS5Nb2RhbE9wdGlvbnMgb3B0aW9ucywgdWludDMy IHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBjb21wbGV0ZV9kaXNwbGF5X2NoYW5nZSAoYm9v bCBvayk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBjb25maXJtX2Rp c3BsYXlfY2hhbmdlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg ZGVzdHJveSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBkZXN0cm95 X2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBlbmRf bW9kYWwgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5QbHVnaW5J bmZvPyBnZXRfaW5mbyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVuIGdldF9zY3Jl ZW4gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX3RpbGVf cHJldmlldyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWJp bmRpbmdfZmlsdGVyIChNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3N3aXRjaF93b3Jrc3BhY2UgKCk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3dpbmRvd19lZmZlY3RzIChNZXRh LldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBtYW5hZ2VyX3NldF9w bHVnaW5fdHlwZSAoR0xpYi5UeXBlIGd0eXBlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIG1hcCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9p ZCBtYXBfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1pbmltaXplIChNZXRhLldpbmRvd0FjdG9yIGFjdG9y KTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBh Y3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBNZXRhLlBs dWdpbkluZm8/IHBsdWdpbl9pbmZvICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgc2hvd190aWxlX3ByZXZpZXcgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5SZWN0 YW5nbGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9tb25pdG9yX251bWJlcik7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X3dpbmRvd19tZW51IChNZXRhLldpbmRvdyB3 aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgaW50IHgsIGludCB5KTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfd2luZG93X21lbnVfZm9yX3JlY3Qg KE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBNZXRhLlJlY3Rh bmdsZSByZWN0KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNpemVf Y2hhbmdlIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yLCBNZXRhLlNpemVDaGFuZ2Ugd2hpY2hfY2hh bmdlLCBNZXRhLlJlY3RhbmdsZSBvbGRfZnJhbWVfcmVjdCwgTWV0YS5SZWN0YW5nbGUgb2xkX2J1 ZmZlcl9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNpemVfY2hhbmdlX2NvbXBsZXRlZCAoTWV0YS5X aW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCBzdGFydCAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN3aXRj aF93b3Jrc3BhY2UgKGludCBmcm9tLCBpbnQgdG8sIE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVj dGlvbik7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfd29ya3NwYWNlX2NvbXBsZXRlZCAoKTsKKy0g CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1bm1pbmltaXplIChNZXRhLldp bmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHVubWluaW1pemVfY29tcGxldGVkIChN ZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCBib29sIHhldmVudF9maWx0ZXIgKFguRXZlbnQgZXZlbnQpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3NjcmVlbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3NjcmVlbl9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2NyZWVuIDogR0xpYi5PYmplY3QgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNj cmVlbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlPyBhcHBlbmRfbmV3X3dv cmtzcGFjZSAoYm9vbCBhY3RpdmF0ZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9p ZCBmb2N1c19kZWZhdWx0X3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBp bnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5kZXggKCk7CistCQlwdWJsaWMgaW50IGdldF9jdXJy ZW50X21vbml0b3IgKCk7CistCQlwdWJsaWMgaW50IGdldF9jdXJyZW50X21vbml0b3JfZm9yX3Bv cyAoaW50IHgsIGludCB5KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlz cGxheSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfbW9uaXRvcl9nZW9tZXRyeSAo aW50IG1vbml0b3IpOworLQkJcHVibGljIGJvb2wgZ2V0X21vbml0b3JfaW5fZnVsbHNjcmVlbiAo aW50IG1vbml0b3IpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvcl9pbmRleF9mb3JfcmVjdCAo TWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX25laWdoYm9y X2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0YS5TY3JlZW5EaXJlY3Rpb24gZGlyKTsKKy0J CXB1YmxpYyBpbnQgZ2V0X25fbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgaW50IGdldF9uX3dvcmtz cGFjZXMgKCk7CistCQlwdWJsaWMgaW50IGdldF9wcmltYXJ5X21vbml0b3IgKCk7CistCQlwdWJs aWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3NpemUgKG91 dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29y a3NwYWNlPyBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworLQkJcHVibGljIHVu b3duZWQgR0xpYi5MaXN0PE1ldGEuV29ya3NwYWNlPiBnZXRfd29ya3NwYWNlcyAoKTsKKy0JCXB1 YmxpYyBYLldpbmRvdyBnZXRfeHJvb3QgKCk7CistCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jr c3BhY2VfbGF5b3V0IChNZXRhLlNjcmVlbkNvcm5lciBzdGFydGluZ19jb3JuZXIsIGJvb2wgdmVy dGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKy0JCXB1YmxpYyB2b2lk IHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWludDMyIHRpbWVz dGFtcCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY21fc2VsZWN0aW9uICgpOworLQkJcHVibGljIHZv aWQgc2V0X2N1cnNvciAoTWV0YS5DdXJzb3IgY3Vyc29yKTsKKy0JCXB1YmxpYyBpbnQgbl93b3Jr c3BhY2VzIHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVsbHNjcmVlbl9jaGFu Z2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgcmVzdGFja2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHN0 YXJ0dXBfc2VxdWVuY2VfY2hhbmdlZCAodm9pZCogb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCB3aW5kb3dfZW50ZXJlZF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2xlZnRfbW9uaXRvciAoaW50IG9iamVjdCwg TWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFuZ2Vk ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9hZGRlZCAoaW50IG9iamVjdCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3JlbW92ZWQgKGludCBvYmplY3QpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9zd2l0Y2hlZCAoaW50IG9iamVjdCwgaW50 IHAwLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBwMSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgcmVmX2Z1bmN0aW9uID0gIm1l dGFfc2hhZG93X3JlZiIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZ2V0X3R5cGUgKCkiLCB1bnJl Zl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd191bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGlj IGNsYXNzIFNoYWRvdyB7CistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChpbnQgd2luZG93X3gs IGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIENhaXJv LlJlY3RhbmdsZUludCBib3VuZHMpOworLQkJcHVibGljIHZvaWQgcGFpbnQgKGludCB3aW5kb3df eCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwgdWlu dDggb3BhY2l0eSwgQ2Fpcm8uUmVnaW9uPyBjbGlwLCBib29sIGNsaXBfc3RyaWN0bHkpOworLQkJ cHVibGljIE1ldGEuU2hhZG93IEByZWYgKCk7CistCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2ZhY3RvcnlfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGNsYXNzIFNoYWRvd0ZhY3RvcnkgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgU2hhZG93RmFjdG9yeSAoKTsK Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlNoYWRvd0ZhY3RvcnkgZ2V0X2RlZmF1bHQg KCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3dQYXJhbXMgZ2V0X3BhcmFtcyAoc3RyaW5nIGNsYXNz X25hbWUsIGJvb2wgZm9jdXNlZCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgZ2V0X3NoYWRvdyAo TWV0YS5XaW5kb3dTaGFwZSBzaGFwZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBzdHJpbmcgY2xh c3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wYXJhbXMgKHN0cmlu ZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQsIE1ldGEuU2hhZG93UGFyYW1zIEBwYXJhbXMpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRh X3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0 dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUs IENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUg KCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUlu dCBjbGlwKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBjcmVhdGVfbWlwbWFwcyk7 CistCQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2dsLlRleHR1cmUgbWFza190ZXh0 dXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9uIChvd25lZCBDYWlyby5SZWdp b24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRhdGVfYXJlYSAoaW50IHgsIGlu dCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVf Y2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS90aGVt ZS5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGhlbWUgeworLQkJcHVibGljIHZv aWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIp XQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuVGhlbWUgZ2V0X2RlZmF1bHQgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBNZXRhLlRoZW1lIEBuZXcgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dldF90 eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3cgOiBHTGliLk9iamVjdCB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0 ZWQgV2luZG93ICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQzMiBjdXJyZW50X3Rp bWUpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF93b3Jrc3BhY2UgKHVpbnQzMiBjdXJy ZW50X3RpbWUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgYm9vbCBhbGxv d3NfbW92ZSAoKTsKKy0JCXB1YmxpYyBib29sIGFsbG93c19yZXNpemUgKCk7CistCQlwdWJsaWMg dm9pZCBiZWdpbl9ncmFiX29wIChNZXRhLkdyYWJPcCBvcCwgYm9vbCBmcmFtZV9hY3Rpb24sIHVp bnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgY2FuX2Nsb3NlICgpOworLQkJcHVibGlj IGJvb2wgY2FuX21heGltaXplICgpOworLQkJcHVibGljIGJvb2wgY2FuX21pbmltaXplICgpOwor LQkJcHVibGljIGJvb2wgY2FuX3NoYWRlICgpOworLQkJcHVibGljIHZvaWQgY2hhbmdlX3dvcmtz cGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5nZV93 b3Jrc3BhY2VfYnlfaW5kZXggKGludCBzcGFjZV9pbmRleCwgYm9vbCBhcHBlbmQpOworLQkJcHVi bGljIHZvaWQgY2hlY2tfYWxpdmUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIE1ldGEu UmVjdGFuZ2xlIGNsaWVudF9yZWN0X3RvX2ZyYW1lX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGNsaWVu dF9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIGNvbXB1dGVfZ3JvdXAgKCk7CistCQlwdWJsaWMgdm9p ZCBAZGVsZXRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2lu ZG93IGZpbmRfcm9vdF9hbmNlc3RvciAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzICh1aW50MzIg dGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfYW5jZXN0b3IgKE1ldGEuV2luZG93 Rm9yZWFjaEZ1bmMgZnVuYyk7CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX3RyYW5zaWVudCAoTWV0 YS5XaW5kb3dGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBmcmFt ZV9yZWN0X3RvX2NsaWVudF9yZWN0IChNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0KTsKKy0JCVtD Q29kZSAoYXJyYXlfbGVuZ3RoX3BvcyA9IDAuMSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3NpemUi KV0KKy0JCXB1YmxpYyBpbnRbXSBnZXRfYWxsX21vbml0b3JzICgpOworLQkJcHVibGljIE1ldGEu UmVjdGFuZ2xlIGdldF9idWZmZXJfcmVjdCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfY2xpZW50X21hY2hpbmUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRf Y29tcG9zaXRvcl9wcml2YXRlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9kZXNj cmlwdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRnJhbWUgZ2V0X2ZyYW1lICgpOworLQkJcHVibGlj IHVub3duZWQgQ2Fpcm8uUmVnaW9uPyBnZXRfZnJhbWVfYm91bmRzICgpOworLQkJcHVibGljIE1l dGEuUmVjdGFuZ2xlIGdldF9mcmFtZV9yZWN0ICgpOworLQkJcHVibGljIE1ldGEuRnJhbWVUeXBl IGdldF9mcmFtZV90eXBlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Hcm91cCBnZXRfZ3Jv dXAgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBfbWVudV9vYmplY3Rf cGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2FwcGxpY2F0aW9uX2lk ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfYXBwbGljYXRpb25fb2JqZWN0 X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19tZW51YmFyX29iamVj dF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfdGhlbWVfdmFyaWFu dCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3VuaXF1ZV9idXNfbmFtZSAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3dpbmRvd19vYmplY3RfcGF0aCAo KTsKKy0JCXB1YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5IChvdXQgTWV0YS5SZWN0YW5nbGUg cmVjdCk7CistCQlwdWJsaWMgTWV0YS5TdGFja0xheWVyIGdldF9sYXllciAoKTsKKy0JCXB1Ymxp YyBNZXRhLk1heGltaXplRmxhZ3MgZ2V0X21heGltaXplZCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0 X21vbml0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X211dHRlcl9oaW50cyAo KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3BpZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfcm9sZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVuIGdldF9zY3JlZW4gKCk7 CistCQlwdWJsaWMgdWludCBnZXRfc3RhYmxlX3NlcXVlbmNlICgpOworLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9zdGFydHVwX2lkICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5k b3c/IGdldF90aWxlX21hdGNoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90aXRs ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90cmFuc2llbnRfZm9yICgp OworLQkJcHVibGljIHVpbnQzMiBnZXRfdXNlcl90aW1lICgpOworLQkJcHVibGljIE1ldGEuV2lu ZG93VHlwZSBnZXRfd2luZG93X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X3dtX2NsYXNzICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bV9jbGFzc19pbnN0 YW5jZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2FsbF9tb25p dG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2N1cnJlbnRf bW9uaXRvciAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Zvcl9t b25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtz cGFjZSBnZXRfd29ya3NwYWNlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94d2luZG93ICgp OworLQkJcHVibGljIHZvaWQgZ3JvdXBfbGVhZGVyX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgYm9v bCBoYXNfZm9jdXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hYm92ZSAoKTsKKy0JCXB1YmxpYyBi b29sIGlzX2Fsd2F5c19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Fu Y2VzdG9yX29mX3RyYW5zaWVudCAoTWV0YS5XaW5kb3cgdHJhbnNpZW50KTsKKy0JCXB1YmxpYyBi b29sIGlzX2F0dGFjaGVkX2RpYWxvZyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Z1bGxzY3JlZW4g KCk7CistCQlwdWJsaWMgYm9vbCBpc19oaWRkZW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19tb25p dG9yX3NpemVkICgpOworLQkJcHVibGljIGJvb2wgaXNfb25fYWxsX3dvcmtzcGFjZXMgKCk7Cist CQlwdWJsaWMgYm9vbCBpc19vbl9wcmltYXJ5X21vbml0b3IgKCk7CistCQlwdWJsaWMgYm9vbCBp c19vdmVycmlkZV9yZWRpcmVjdCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3JlbW90ZSAoKTsKKy0J CXB1YmxpYyBib29sIGlzX3NjcmVlbl9zaXplZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NoYWRl ZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NraXBfdGFza2JhciAoKTsKKy0JCXB1YmxpYyB2b2lk IGtpbGwgKCk7CistCQlwdWJsaWMgYm9vbCBsb2NhdGVkX29uX3dvcmtzcGFjZSAoTWV0YS5Xb3Jr c3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGxvd2VyICgpOworLQkJcHVibGljIHZv aWQgbWFrZV9hYm92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1ha2VfZnVsbHNjcmVlbiAoKTsKKy0J CXB1YmxpYyB2b2lkIG1heGltaXplIChNZXRhLk1heGltaXplRmxhZ3MgZGlyZWN0aW9ucyk7Cist CQlwdWJsaWMgdm9pZCBtaW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfZnJhbWUgKGJv b2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udyk7CistCQlwdWJsaWMgdm9p ZCBtb3ZlX3Jlc2l6ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBpbnQgcm9v dF95X253LCBpbnQgdywgaW50IGgpOworLQkJcHVibGljIHZvaWQgbW92ZV90b19tb25pdG9yIChp bnQgbW9uaXRvcik7CistCQlwdWJsaWMgdm9pZCByYWlzZSAoKTsKKy0JCXB1YmxpYyBib29sIHJl cXVlc3RlZF9ieXBhc3NfY29tcG9zaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIHJlcXVlc3RlZF9k b250X2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIHZvaWQgc2V0X2NvbXBvc2l0b3Jf cHJpdmF0ZSAoR0xpYi5PYmplY3QgcHJpdik7CistCQlwdWJsaWMgdm9pZCBzZXRfZGVtYW5kc19h dHRlbnRpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaWNvbl9nZW9tZXRyeSAoTWV0YS5SZWN0 YW5nbGU/IHJlY3QpOworLQkJcHVibGljIHZvaWQgc2hhZGUgKHVpbnQzMiB0aW1lc3RhbXApOwor LQkJcHVibGljIHZvaWQgc2hvdmVfdGl0bGViYXJfb25zY3JlZW4gKCk7CistCQlwdWJsaWMgYm9v bCBzaG93aW5nX29uX2l0c193b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9pZCBzaHV0ZG93bl9n cm91cCAoKTsKKy0JCXB1YmxpYyB2b2lkIHN0aWNrICgpOworLQkJcHVibGljIGJvb2wgdGl0bGVi YXJfaXNfb25zY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCB1bm1ha2VfYWJvdmUgKCk7CistCQlw dWJsaWMgdm9pZCB1bm1ha2VfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWF4aW1p emUgKE1ldGEuTWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lkIHVubWlu aW1pemUgKCk7CistCQlwdWJsaWMgdm9pZCB1bnNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKy0J CXB1YmxpYyB2b2lkIHVuc2hhZGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQg dW5zdGljayAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgYWJvdmUg eyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgYXBwZWFyc19m b2N1c2VkIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRl Y29yYXRlZCB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBk ZW1hbmRzX2F0dGVudGlvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgYm9vbCBmdWxsc2NyZWVuIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBfbWVu dV9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwbGljYXRpb25f aWQgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcGxpY2F0aW9uX29iamVjdF9wYXRo IHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19tZW51YmFyX29iamVjdF9wYXRoIHsgZ2V0 OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a191bmlxdWVfYnVzX25hbWUgeyBnZXQ7IH0KKy0JCXB1 YmxpYyBzdHJpbmcgZ3RrX3dpbmRvd19vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBpY29uIHsgb3duZWQgZ2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1heGltaXplZF9ob3Jpem9udGFs bHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWF4aW1p emVkX3ZlcnRpY2FsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IENhaXJvLlN1cmZhY2UgbWluaV9pY29uIHsgb3duZWQgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBib29sIG1pbmltaXplZCB7IGdldDsgfQorLQkJcHVibGljIHN0cmlu ZyBtdXR0ZXJfaGludHMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGJvb2wgb25fYWxsX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGJvb2wgcmVzaXplYWJsZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgYm9vbCBza2lwX3Rhc2tiYXIgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcg dGl0bGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgdXJn ZW50IHsgZ2V0OyB9CistCQlwdWJsaWMgdWludCB1c2VyX3RpbWUgeyBnZXQ7IH0KKy0JCXB1Ymxp YyBNZXRhLldpbmRvd1R5cGUgd2luZG93X3R5cGUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcg d21fY2xhc3MgeyBnZXQ7IH0KKy0JCVtDQ29kZSAoY25hbWUgPSAiZm9jdXMiKV0KKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBmb2N1c2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHBvc2l0aW9u X2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmFpc2VkICgpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB1bm1h bmFnZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2NoYW5nZWQgKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfYWN0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0 dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IFdpbmRvd0FjdG9yICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X21ldGFf d2luZG93ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfdGV4dHVyZSAo KTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeF93aW5kb3cgKCk7CistCQlwdWJsaWMgYm9vbCBp c19kZXN0cm95ZWQgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcg c2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YV93aW5kb3dfc2hhcGUuaCIsIHJlZl9mdW5jdGlvbiA9ICJt ZXRhX3dpbmRvd19zaGFwZV9yZWYiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3NoYXBlX2dldF90 eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVfdW5yZWYiKV0KKy0J W0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBXaW5kb3dTaGFwZSB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgV2luZG93U2hhcGUgKENhaXJv LlJlZ2lvbiByZWdpb24pOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuV2luZG93U2hhcGUg c2hhcGVfYik7CistCQlwdWJsaWMgdm9pZCBnZXRfYm9yZGVycyAoaW50IGJvcmRlcl90b3AsIGlu dCBib3JkZXJfcmlnaHQsIGludCBib3JkZXJfYm90dG9tLCBpbnQgYm9yZGVyX2xlZnQpOworLQkJ cHVibGljIHVpbnQgaGFzaCAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1NoYXBlIEByZWYgKCk7 CistCQlwdWJsaWMgQ2Fpcm8uUmVnaW9uIHRvX3JlZ2lvbiAoaW50IGNlbnRlcl93aWR0aCwgaW50 IGNlbnRlcl9oZWlnaHQpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFf d29ya3NwYWNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXb3Jrc3BhY2UgOiBHTGli Lk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgV29ya3NwYWNlICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQz MiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF9mb2N1cyAoTWV0YS5X aW5kb3cgZm9jdXNfdGhpcywgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBN ZXRhLldvcmtzcGFjZSBnZXRfbmVpZ2hib3IgKE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVjdGlv bik7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNjcmVlbiBnZXRfc2NyZWVuICgpOworLQkJcHVi bGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfYWxsX21vbml0b3JzICgpOworLQkJcHVi bGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfZm9yX21vbml0b3IgKGludCB3aGljaF9t b25pdG9yKTsKKy0JCXB1YmxpYyBpbnQgaW5kZXggKCk7CistCQlwdWJsaWMgR0xpYi5MaXN0PHdl YWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9idWls dGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRhLlN0cnV0PiBzdHJ1dHMpOworLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgdWludCBuX3dpbmRvd3MgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgd29ya3NwYWNlX2luZGV4IHsgZ2V0OyB9CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2FkZGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19yZW1vdmVkIChNZXRhLldpbmRvdyBvYmplY3QpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgQnV0dG9uTGF5b3V0IHsKKy0JCVtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXQor LQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbltdIGxlZnRfYnV0dG9uczsKKy0JCVtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUp XQorLQkJcHVibGljIHdlYWsgYm9vbFtdIGxlZnRfYnV0dG9uc19oYXNfc3BhY2VyOworLQkJW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSld CistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uW10gcmlnaHRfYnV0dG9uczsKKy0J CVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRy dWUpXQorLQkJcHVibGljIHdlYWsgYm9vbFtdIHJpZ2h0X2J1dHRvbnNfaGFzX3NwYWNlcjsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgRWRnZSB7CistCQlwdWJsaWMgTWV0YS5SZWN0 YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZV90eXBlOworLQkJcHVibGljIE1l dGEuRWRnZVR5cGUgZWRnZV90eXBlOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3Qg RnJhbWVCb3JkZXJzIHsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHZpc2libGU7CistCQlwdWJsaWMg R3RrLkJvcmRlciBpbnZpc2libGU7CistCQlwdWJsaWMgR3RrLkJvcmRlciB0b3RhbDsKKy0JCXB1 YmxpYyB2b2lkIGNsZWFyICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVj dCBQbHVnaW5JbmZvIHsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1lOworLQkJcHVibGljIHdl YWsgc3RyaW5nIHZlcnNpb247CistCQlwdWJsaWMgd2VhayBzdHJpbmcgYXV0aG9yOworLQkJcHVi bGljIHdlYWsgc3RyaW5nIGxpY2Vuc2U7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgZGVzY3JpcHRp b247CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4u aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFBsdWdpblZlcnNpb24g eworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9tYWpvcjsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25f bWlub3I7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pY3JvOworLQkJcHVibGljIHVpbnQgdmVy c2lvbl9hcGk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMu aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7Cist CQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgaW50IHdpZHRoOwor LQkJcHVibGljIGludCBoZWlnaHQ7CistCQlwdWJsaWMgaW50IGFyZWEgKCk7CistCQlwdWJsaWMg Ym9vbCBjb250YWluc19yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1Ymxp YyBib29sIGNvdWxkX2ZpdF9yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1 YmxpYyBib29sIGVxdWFsIChNZXRhLlJlY3RhbmdsZSBzcmMyKTsKKy0JCXB1YmxpYyBib29sIGhv cml6X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBib29sIGludGVy c2VjdCAoTWV0YS5SZWN0YW5nbGUgc3JjMiwgb3V0IE1ldGEuUmVjdGFuZ2xlIGRlc3QpOworLQkJ cHVibGljIGJvb2wgb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIE1l dGEuUmVjdGFuZ2xlIHVuaW9uIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9v bCB2ZXJ0X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTaGFkb3dQYXJhbXMgeworLQkJcHVibGljIGlu dCByYWRpdXM7CistCQlwdWJsaWMgaW50IHRvcF9mYWRlOworLQkJcHVibGljIGludCB4X29mZnNl dDsKKy0JCXB1YmxpYyBpbnQgeV9vZmZzZXQ7CistCQlwdWJsaWMgdWludDggb3BhY2l0eTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgU3RydXQgeworLQkJcHVibGljIE1ldGEuUmVj dGFuZ2xlIHJlY3Q7CistCQlwdWJsaWMgTWV0YS5TaWRlIHNpZGU7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oIiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJ RVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlw ZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEJhcnJpZXJEaXJlY3Rpb24geworLQkJ UE9TSVRJVkVfWCwKKy0JCVBPU0lUSVZFX1ksCistCQlORUdBVElWRV9YLAorLQkJTkVHQVRJVkVf WQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3By ZWZpeCA9ICJNRVRBX0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYnV0dG9uX2Z1 bmN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEJ1dHRvbkZ1bmN0aW9uIHsKKy0J CU1FTlUsCistCQlNSU5JTUlaRSwKKy0JCU1BWElNSVpFLAorLQkJQ0xPU0UsCistCQlTSEFERSwK Ky0JCUFCT1ZFLAorLQkJU1RJQ0ssCistCQlVTlNIQURFLAorLQkJVU5BQk9WRSwKKy0JCVVOU1RJ Q0ssCistCQlBUFBNRU5VLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbXBvc2l0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9DT01QX0VGRkVDVF8iLCB0 eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0g Q29tcEVmZmVjdCB7CistCQlDUkVBVEUsCistCQlVTk1JTklNSVpFLAorLQkJREVTVFJPWSwKKy0J CU1JTklNSVpFLAorLQkJTk9ORQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNPUl8iLCB0eXBlX2lkID0gIm1ldGFf Y3Vyc29yX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEN1cnNvciB7CistCQlOT05FLAor LQkJREVGQVVMVCwKKy0JCU5PUlRIX1JFU0laRSwKKy0JCVNPVVRIX1JFU0laRSwKKy0JCVdFU1Rf UkVTSVpFLAorLQkJRUFTVF9SRVNJWkUsCistCQlTRV9SRVNJWkUsCistCQlTV19SRVNJWkUsCist CQlORV9SRVNJWkUsCistCQlOV19SRVNJWkUsCistCQlNT1ZFX09SX1JFU0laRV9XSU5ET1csCist CQlCVVNZLAorLQkJRE5EX0lOX0RSQUcsCistCQlETkRfTU9WRSwKKy0JCURORF9DT1BZLAorLQkJ RE5EX1VOU1VQUE9SVEVEX1RBUkdFVCwKKy0JCVBPSU5USU5HX0hBTkQsCistCQlDUk9TU0hBSVIs CistCQlJQkVBTSwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9ICJtZXRhX2Rl YnVnX3RvcGljX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRGVidWdU b3BpYyB7CistCQlWRVJCT1NFLAorLQkJRk9DVVMsCistCQlXT1JLQVJFQSwKKy0JCVNUQUNLLAor LQkJVEhFTUVTLAorLQkJU00sCistCQlFVkVOVFMsCistCQlXSU5ET1dfU1RBVEUsCistCQlXSU5E T1dfT1BTLAorLQkJR0VPTUVUUlksCistCQlQTEFDRU1FTlQsCistCQlQSU5HLAorLQkJWElORVJB TUEsCistCQlLRVlCSU5ESU5HUywKKy0JCVNZTkMsCistCQlFUlJPUlMsCistCQlTVEFSVFVQLAor LQkJUFJFRlMsCistCQlHUk9VUFMsCistCQlSRVNJWklORywKKy0JCVNIQVBFUywKKy0JCUNPTVBP U0lUT1IsCistCQlFREdFX1JFU0lTVEFOQ0UsCistCQlEQlVTCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRElSRUNUSU9O XyIsIHR5cGVfaWQgPSAibWV0YV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQor LQlwdWJsaWMgZW51bSBEaXJlY3Rpb24geworLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAor LQkJQk9UVE9NLAorLQkJVVAsCistCQlET1dOLAorLQkJSE9SSVpPTlRBTCwKKy0JCVZFUlRJQ0FM CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGNwcmVm aXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGVudW0gRWRnZVR5cGUgeworLQkJV0lORE9XLAorLQkJTU9OSVRPUiwKKy0J CVNDUkVFTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9FWElUXyIsIHR5cGVfaWQgPSAibWV0YV9leGl0X2NvZGVfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRXhpdENvZGUgeworLQkJU1VDQ0VTUywKKy0JCUVSUk9S CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJl Zml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX2ZsYWdzX2dldF90eXBl ICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRnJhbWVGbGFncyB7CistCQlBTExPV1Nf REVMRVRFLAorLQkJQUxMT1dTX01FTlUsCistCQlBTExPV1NfQVBQTUVOVSwKKy0JCUFMTE9XU19N SU5JTUlaRSwKKy0JCUFMTE9XU19NQVhJTUlaRSwKKy0JCUFMTE9XU19WRVJUSUNBTF9SRVNJWkUs CistCQlBTExPV1NfSE9SSVpPTlRBTF9SRVNJWkUsCistCQlIQVNfRk9DVVMsCistCQlTSEFERUQs CistCQlTVFVDSywKKy0JCU1BWElNSVpFRCwKKy0JCUFMTE9XU19TSEFERSwKKy0JCUFMTE9XU19N T1ZFLAorLQkJRlVMTFNDUkVFTiwKKy0JCUlTX0ZMQVNISU5HLAorLQkJQUJPVkUsCistCQlUSUxF RF9MRUZULAorLQkJVElMRURfUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV9UWVBFXyIsIHR5cGVfaWQg PSAibWV0YV9mcmFtZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEZyYW1lVHlw ZSB7CistCQlOT1JNQUwsCistCQlESUFMT0csCistCQlNT0RBTF9ESUFMT0csCistCQlVVElMSVRZ LAorLQkJTUVOVSwKKy0JCUJPUkRFUiwKKy0JCUFUVEFDSEVELAorLQkJTEFTVDsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1 bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKE1ldGEuRnJhbWVUeXBlIHR5cGUpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRB X0dSQUJfT1BfIiwgdHlwZV9pZCA9ICJtZXRhX2dyYWJfb3BfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGVudW0gR3JhYk9wIHsKKy0JCU5PTkUsCistCQlDT01QT1NJVE9SLAorLQkJV0FZTEFORF9Q T1BVUCwKKy0JCVdJTkRPV19CQVNFLAorLQkJRlJBTUVfQlVUVE9OLAorLQkJTU9WSU5HLAorLQkJ UkVTSVpJTkdfTlcsCistCQlSRVNJWklOR19OLAorLQkJUkVTSVpJTkdfTkUsCistCQlSRVNJWklO R19FLAorLQkJUkVTSVpJTkdfU1csCistCQlSRVNJWklOR19TLAorLQkJUkVTSVpJTkdfU0UsCist CQlSRVNJWklOR19XLAorLQkJS0VZQk9BUkRfTU9WSU5HLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdf VU5LTk9XTiwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX05XLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdf TiwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX05FLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfRSwKKy0J CUtFWUJPQVJEX1JFU0laSU5HX1NXLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfUywKKy0JCUtFWUJP QVJEX1JFU0laSU5HX1NFLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfVworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZQklO RElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBLZXlCaW5kaW5nQWN0aW9uIHsKKy0JCU5PTkUsCistCQlX T1JLU1BBQ0VfMSwKKy0JCVdPUktTUEFDRV8yLAorLQkJV09SS1NQQUNFXzMsCistCQlXT1JLU1BB Q0VfNCwKKy0JCVdPUktTUEFDRV81LAorLQkJV09SS1NQQUNFXzYsCistCQlXT1JLU1BBQ0VfNywK Ky0JCVdPUktTUEFDRV84LAorLQkJV09SS1NQQUNFXzksCistCQlXT1JLU1BBQ0VfMTAsCistCQlX T1JLU1BBQ0VfMTEsCistCQlXT1JLU1BBQ0VfMTIsCistCQlXT1JLU1BBQ0VfTEVGVCwKKy0JCVdP UktTUEFDRV9SSUdIVCwKKy0JCVdPUktTUEFDRV9VUCwKKy0JCVdPUktTUEFDRV9ET1dOLAorLQkJ V09SS1NQQUNFX0xBU1QsCistCQlTV0lUQ0hfQVBQTElDQVRJT05TLAorLQkJU1dJVENIX0FQUExJ Q0FUSU9OU19CQUNLV0FSRCwKKy0JCVNXSVRDSF9HUk9VUCwKKy0JCVNXSVRDSF9HUk9VUF9CQUNL V0FSRCwKKy0JCVNXSVRDSF9XSU5ET1dTLAorLQkJU1dJVENIX1dJTkRPV1NfQkFDS1dBUkQsCist CQlTV0lUQ0hfUEFORUxTLAorLQkJU1dJVENIX1BBTkVMU19CQUNLV0FSRCwKKy0JCUNZQ0xFX0dS T1VQLAorLQkJQ1lDTEVfR1JPVVBfQkFDS1dBUkQsCistCQlDWUNMRV9XSU5ET1dTLAorLQkJQ1lD TEVfV0lORE9XU19CQUNLV0FSRCwKKy0JCUNZQ0xFX1BBTkVMUywKKy0JCUNZQ0xFX1BBTkVMU19C QUNLV0FSRCwKKy0JCVNIT1dfREVTS1RPUCwKKy0JCVBBTkVMX01BSU5fTUVOVSwKKy0JCVBBTkVM X1JVTl9ESUFMT0csCistCQlUT0dHTEVfUkVDT1JESU5HLAorLQkJU0VUX1NQRVdfTUFSSywKKy0J CUFDVElWQVRFX1dJTkRPV19NRU5VLAorLQkJVE9HR0xFX0ZVTExTQ1JFRU4sCistCQlUT0dHTEVf TUFYSU1JWkVELAorLQkJVE9HR0xFX1RJTEVEX0xFRlQsCistCQlUT0dHTEVfVElMRURfUklHSFQs CistCQlUT0dHTEVfQUJPVkUsCistCQlNQVhJTUlaRSwKKy0JCVVOTUFYSU1JWkUsCistCQlUT0dH TEVfU0hBREVELAorLQkJTUlOSU1JWkUsCistCQlDTE9TRSwKKy0JCUJFR0lOX01PVkUsCistCQlC RUdJTl9SRVNJWkUsCistCQlUT0dHTEVfT05fQUxMX1dPUktTUEFDRVMsCistCQlNT1ZFX1RPX1dP UktTUEFDRV8xLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMiwKKy0JCU1PVkVfVE9fV09SS1NQQUNF XzMsCistCQlNT1ZFX1RPX1dPUktTUEFDRV80LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNSwKKy0J CU1PVkVfVE9fV09SS1NQQUNFXzYsCistCQlNT1ZFX1RPX1dPUktTUEFDRV83LAorLQkJTU9WRV9U T19XT1JLU1BBQ0VfOCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzksCistCQlNT1ZFX1RPX1dPUktT UEFDRV8xMCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzExLAorLQkJTU9WRV9UT19XT1JLU1BBQ0Vf MTIsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MRUZULAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfUklH SFQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9VUCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0RPV04s CistCQlNT1ZFX1RPX1dPUktTUEFDRV9MQVNULAorLQkJTU9WRV9UT19NT05JVE9SX0xFRlQsCist CQlNT1ZFX1RPX01PTklUT1JfUklHSFQsCistCQlNT1ZFX1RPX01PTklUT1JfVVAsCistCQlNT1ZF X1RPX01PTklUT1JfRE9XTiwKKy0JCVJBSVNFX09SX0xPV0VSLAorLQkJUkFJU0UsCistCQlMT1dF UiwKKy0JCU1BWElNSVpFX1ZFUlRJQ0FMTFksCistCQlNQVhJTUlaRV9IT1JJWk9OVEFMTFksCist CQlNT1ZFX1RPX0NPUk5FUl9OVywKKy0JCU1PVkVfVE9fQ09STkVSX05FLAorLQkJTU9WRV9UT19D T1JORVJfU1csCistCQlNT1ZFX1RPX0NPUk5FUl9TRSwKKy0JCU1PVkVfVE9fU0lERV9OLAorLQkJ TU9WRV9UT19TSURFX1MsCistCQlNT1ZFX1RPX1NJREVfRSwKKy0JCU1PVkVfVE9fU0lERV9XLAor LQkJTU9WRV9UT19DRU5URVIsCistCQlPVkVSTEFZX0tFWSwKKy0JCUlTT19ORVhUX0dST1VQLAor LQkJQUxXQVlTX09OX1RPUCwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVf aWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCist CXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFncyB7CistCQlOT05FLAorLQkJUEVSX1dJTkRPVywK Ky0JCUJVSUxUSU4sCistCQlJU19SRVZFUlNFRAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0eXBlX2lkID0g Im1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMYXRlclR5cGUg eworLQkJUkVTSVpFLAorLQkJQ0FMQ19TSE9XSU5HLAorLQkJQ0hFQ0tfRlVMTFNDUkVFTiwKKy0J CVNZTkNfU1RBQ0ssCistCQlCRUZPUkVfUkVEUkFXLAorLQkJSURMRQorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NBTEVf RElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBlICgp IildCistCXB1YmxpYyBlbnVtIExvY2FsZURpcmVjdGlvbiB7CistCQlMVFIsCistCQlSVEwKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXgg PSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5 cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBNYXhpbWl6ZUZsYWdzIHsKKy0JCUhP UklaT05UQUwsCistCQlWRVJUSUNBTCwKKy0JCUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01PREFMXyIs IHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgpIildCistCVtGbGFnc10K Ky0JcHVibGljIGVudW0gTW9kYWxPcHRpb25zIHsKKy0JCVBPSU5URVJfQUxSRUFEWV9HUkFCQkVE LAorLQkJS0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9OXyIsIHR5cGVf aWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVt IE1vdGlvbkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURPV04sCistCQlMRUZULAorLQkJUklHSFQs CistCQlVUF9MRUZULAorLQkJVVBfUklHSFQsCistCQlET1dOX0xFRlQsCistCQlET1dOX1JJR0hU CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVm aXggPSAiTUVUQV9QUkVGXyIsIHR5cGVfaWQgPSAibWV0YV9wcmVmZXJlbmNlX2dldF90eXBlICgp IildCistCXB1YmxpYyBlbnVtIFByZWZlcmVuY2UgeworLQkJTU9VU0VfQlVUVE9OX01PRFMsCist CQlGT0NVU19NT0RFLAorLQkJRk9DVVNfTkVXX1dJTkRPV1MsCistCQlBVFRBQ0hfTU9EQUxfRElB TE9HUywKKy0JCVJBSVNFX09OX0NMSUNLLAorLQkJQUNUSU9OX0RPVUJMRV9DTElDS19USVRMRUJB UiwKKy0JCUFDVElPTl9NSURETEVfQ0xJQ0tfVElUTEVCQVIsCistCQlBQ1RJT05fUklHSFRfQ0xJ Q0tfVElUTEVCQVIsCistCQlBVVRPX1JBSVNFLAorLQkJQVVUT19SQUlTRV9ERUxBWSwKKy0JCUZP Q1VTX0NIQU5HRV9PTl9QT0lOVEVSX1JFU1QsCistCQlUSVRMRUJBUl9GT05ULAorLQkJTlVNX1dP UktTUEFDRVMsCistCQlEWU5BTUlDX1dPUktTUEFDRVMsCistCQlLRVlCSU5ESU5HUywKKy0JCURJ U0FCTEVfV09SS0FST1VORFMsCistCQlCVVRUT05fTEFZT1VULAorLQkJV09SS1NQQUNFX05BTUVT LAorLQkJVklTVUFMX0JFTEwsCistCQlBVURJQkxFX0JFTEwsCistCQlWSVNVQUxfQkVMTF9UWVBF LAorLQkJR05PTUVfQUNDRVNTSUJJTElUWSwKKy0JCUdOT01FX0FOSU1BVElPTlMsCistCQlDVVJT T1JfVEhFTUUsCistCQlDVVJTT1JfU0laRSwKKy0JCVJFU0laRV9XSVRIX1JJR0hUX0JVVFRPTiwK Ky0JCUVER0VfVElMSU5HLAorLQkJRk9SQ0VfRlVMTFNDUkVFTiwKKy0JCVdPUktTUEFDRVNfT05M WV9PTl9QUklNQVJZLAorLQkJRFJBR0dBQkxFX0JPUkRFUl9XSURUSCwKKy0JCUFVVE9fTUFYSU1J WkUsCistCQlDRU5URVJfTkVXX1dJTkRPV1MsCistCQlEUkFHX1RIUkVTSE9MRDsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1 bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKE1ldGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9zY3JlZW4uaCIsIGNwcmVmaXggPSAiTUVU QV9TQ1JFRU5fIiwgdHlwZV9pZCA9ICJtZXRhX3NjcmVlbl9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gU2NyZWVuQ29ybmVyIHsKKy0JCVRPUExFRlQsCistCQlUT1BSSUdIVCwK Ky0JCUJPVFRPTUxFRlQsCistCQlCT1RUT01SSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtZW51bS10eXBlcy5oIiwgY3ByZWZpeCA9ICJNRVRBX1NDUkVF Tl8iLCB0eXBlX2lkID0gIm1ldGFfc2NyZWVuX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgZW51bSBTY3JlZW5EaXJlY3Rpb24geworLQkJVVAsCistCQlET1dOLAorLQkJTEVGVCwK Ky0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1l bnVtLXR5cGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfU0hBRE9XX01PREVfIiwgdHlwZV9pZCA9ICJt ZXRhX3NoYWRvd19tb2RlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNoYWRvd01vZGUg eworLQkJQVVUTywKKy0JCUZPUkNFRF9PRkYsCistCQlGT1JDRURfT04KKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9TSURF XyIsIHR5cGVfaWQgPSAibWV0YV9zaWRlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNp ZGUgeworLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9NCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1lbnVtLXR5cGVzLmgiLCBjcHJlZml4 ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlwZV9pZCA9ICJtZXRhX3NpemVfY2hhbmdlX2dldF90 eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpemVDaGFuZ2UgeworLQkJTUFYSU1JWkUsCistCQlV Tk1BWElNSVpFLAorLQkJRlVMTFNDUkVFTiwKKy0JCVVORlVMTFNDUkVFTgorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xB WUVSXyIsIHR5cGVfaWQgPSAibWV0YV9zdGFja19sYXllcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgZW51bSBTdGFja0xheWVyIHsKKy0JCURFU0tUT1AsCistCQlCT1RUT00sCistCQlOT1JNQUws CistCQlUT1AsCistCQlET0NLLAorLQkJRlVMTFNDUkVFTiwKKy0JCUZPQ1VTRURfV0lORE9XLAor LQkJT1ZFUlJJREVfUkVESVJFQ1QsCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9MSVNUXyIsIHR5 cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBUYWJM aXN0IHsKKy0JCU5PUk1BTCwKKy0JCURPQ0tTLAorLQkJR1JPVVAsCistCQlOT1JNQUxfQUxMCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZp eCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hvd190eXBlX2dldF90 eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKy0JCUlDT04sCistCQlJTlNU QU5UTFkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0dWFsX21vZGlm aWVyX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gVmlydHVhbE1vZGlm aWVyIHsKKy0JCVNISUZUX01BU0ssCistCQlDT05UUk9MX01BU0ssCistCQlBTFRfTUFTSywKKy0J CU1FVEFfTUFTSywKKy0JCVNVUEVSX01BU0ssCistCQlIWVBFUl9NQVNLLAorLQkJTU9EMl9NQVNL LAorLQkJTU9EM19NQVNLLAorLQkJTU9ENF9NQVNLLAorLQkJTU9ENV9NQVNLCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJlZml4ID0gIk1FVEFf V0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfY2xpZW50X3R5cGVf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93Q2xpZW50VHlwZSB7CistCQlXQVlM QU5ELAorLQkJWDExCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t bW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dp bmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93TWVudVR5 cGUgeworLQkJV00sCistCQlBUFAKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJtZXRh X3dpbmRvd190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFdpbmRvd1R5cGUgewor LQkJTk9STUFMLAorLQkJREVTS1RPUCwKKy0JCURPQ0ssCistCQlESUFMT0csCistCQlNT0RBTF9E SUFMT0csCistCQlUT09MQkFSLAorLQkJTUVOVSwKKy0JCVVUSUxJVFksCistCQlTUExBU0hTQ1JF RU4sCistCQlEUk9QRE9XTl9NRU5VLAorLQkJUE9QVVBfTUVOVSwKKy0JCVRPT0xUSVAsCistCQlO T1RJRklDQVRJT04sCistCQlDT01CTywKKy0JCURORCwKKy0JCU9WRVJSSURFX09USEVSCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIs IGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIElkbGVNb25pdG9y V2F0Y2hGdW5jIChNZXRhLklkbGVNb25pdG9yIG1vbml0b3IsIHVpbnQgd2F0Y2hfaWQpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgaW5zdGFuY2VfcG9zID0g NS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgS2V5SGFuZGxlckZ1bmMgKE1ldGEuRGlzcGxh eSBkaXNwbGF5LCBNZXRhLlNjcmVlbiBzY3JlZW4sIE1ldGEuV2luZG93PyB3aW5kb3csIENsdXR0 ZXIuS2V5RXZlbnQ/IGV2ZW50LCBNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQor LQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBQcmVmc0NoYW5nZWRGdW5jIChNZXRhLlByZWZlcmVuY2Ug cHJlZik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgaW5z dGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIGJvb2wgV2luZG93Rm9yZWFjaEZ1 bmMgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9JQ09OX05BTUUiKV0KKy0JcHVibGlj IGNvbnN0IHN0cmluZyBERUZBVUxUX0lDT05fTkFNRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIpXQorLQlwdWJs aWMgY29uc3QgaW50IElDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNvbnN0 IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBN QUpPUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNSUNS T19WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj bmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5J X0lDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1J TklfSUNPTl9XSURUSDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAiTUVUQV9NSU5PUl9WRVJTSU9OIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlO T1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBQ TFVHSU5fQVBJX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIpXQorLQlwdWJsaWMg Y29uc3QgaW50IFBSSU9SSVRZX0JFRk9SRV9SRURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZ IildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUFJFRlNfTk9USUZZOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZ X1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklU WV9SRVNJWkUiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRVNJWkU7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVB TF9DT1JFX0tFWUJPQVJEX0lEIildCistCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX0tF WUJPQVJEX0lEOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj bmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCistCXB1YmxpYyBjb25zdCBp bnQgVklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgYWN0aXZhdGVfc2Vzc2lvbiAo KTsKKy0gCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgY2x1dHRlcl9pbml0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGV4aXQgKE1ldGEuRXhp dENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIp XQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5PcHRpb25Db250ZXh0IGdldF9vcHRpb25f Y29udGV4dCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIild CistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfcmVwbGFjZV9jdXJyZW50X3dtICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIGluaXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIp XQorLQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfcmVzdGFydCAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBxdWl0IChN ZXRhLkV4aXRDb2RlIGNvZGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhfc2Vzc2lvbiAoKTsK Ky0gCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5nIG1lc3NhZ2UpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyBpbnQgcnVuICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNldF9nbm9tZV93bV9rZXliaW5kaW5ncyAoc3RyaW5nIHdtX2tleWJpbmRpbmdz KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfd21fbmFtZSAoc3RyaW5nIHdtX25hbWUpOworLX0KK2RpZmYgLS1n aXQgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYSB2YXBpL2xpYm11dHRlci0zLWN1c3RvbS52 YWxhCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDI5ZTU5NzdkLi4wMDAwMDAwMAor LS0tIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDYg KzAsMCBAQAorLW5hbWVzcGFjZSBNZXRhIHsKKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIE1vbml0 b3JNYW5hZ2VyIDogTWV0YS5EQnVzRGlzcGxheUNvbmZpZ1NrZWxldG9uLCBHTGliLkRCdXNJbnRl cmZhY2UgeworLQkJLyogbm90IGV4cG9ydGVkICovCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9u aXRvcnNfY2hhbmdlZCAoKTsKKy0JfQorLX0KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMy5k ZXBzIHZhcGkvbGlibXV0dGVyLTMuZGVwcworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAxZjNjOTA3OS4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci0zLmRlcHMKKysrKyAvZGV2 L251bGwKK0BAIC0xLDkgKzAsMCBAQAorLWNhaXJvCistZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1h cworLWdkay0zLjAKKy1nZGstcGl4YnVmLTIuMAorLWd0aystMy4wCisteDExCisteGZpeGVzLTQu MAorLWNsdXR0ZXItMS4wCistY29nbC0xLjAKK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNC5k ZXBzIHZhcGkvbGlibXV0dGVyLTQuZGVwcworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAzNjdjMzViOS4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci00LmRlcHMKKysrKyAvZGV2 L251bGwKK0BAIC0xLDggKzAsMCBAQAorLWdkay0zLjAKKy1nZGstcGl4YnVmLTIuMAorLWdzZXR0 aW5ncy1kZXNrdG9wLXNjaGVtYXMKKy1ndGsrLTMuMAorLW11dHRlci1jbHV0dGVyLTQKKy1tdXR0 ZXItY29nbC00CisteDExCisteGZpeGVzLTQuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci00 LnZhcGkgdmFwaS9saWJtdXR0ZXItNC52YXBpCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2lu ZGV4IGUwZDM1NmEwLi4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTQudmFwaQorKysrIC9k ZXYvbnVsbAorQEAgLTEsMTQyNSArMCwwIEBACistLyogbGlibXV0dGVyLTQudmFwaSBnZW5lcmF0 ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKy0KKy1bQ0NvZGUgKGNwcmVmaXggPSAi TWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjQiLCBsb3dlcl9j YXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKy1uYW1lc3BhY2UgTWV0YSB7CistCW5hbWVzcGFjZSBD b21wb3NpdG9yIHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxh eSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxh eSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5w dXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVn aW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRp cmVjdF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJlZGly ZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9m b2N1c19zdGFnZV93aW5kb3ciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBmb2N1c19zdGFnZV93 aW5kb3cgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9 ICJtZXRhX2dldF9mZWVkYmFja19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IChN ZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfc3RhZ2VfZm9yX2Rpc3Bs YXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9zdGFnZV9m b3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3Rv cF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBD bHV0dGVyLkFjdG9yIGdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3Bs YXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2FjdG9ycyIpXQorLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLkFjdG9yPiBnZXRfd2luZG93X2Fj dG9ycyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19n cm91cF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0 b3IgZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIs IGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRp YyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBYLlhz ZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKy0JfQorLQluYW1lc3BhY2UgUHJlZnMgeworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNf YmVsbF9pc19hdWRpYmxlIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfYmVsbF9pc19h dWRpYmxlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfY2hhbmdlX3dvcmtzcGFjZV9uYW1lIildCistCQlwdWJsaWMg c3RhdGljIHZvaWQgcHJlZnNfY2hhbmdlX3dvcmtzcGFjZV9uYW1lIChpbnQgaSwgc3RyaW5nIG5h bWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfZ2V0X2FjdGlvbl9kb3VibGVfY2xpY2tfdGl0bGViYXIiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gcHJlZnNfZ2V0X2FjdGlvbl9kb3Vi bGVfY2xpY2tfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYWN0aW9uX21pZGRsZV9jbGlja190 aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBwcmVm c19nZXRfYWN0aW9uX21pZGRsZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hY3Rp b25fcmlnaHRfY2xpY2tfdGl0bGViYXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0 bGViYXJBY3Rpb24gcHJlZnNfZ2V0X2FjdGlvbl9yaWdodF9jbGlja190aXRsZWJhciAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRh X3ByZWZzX2dldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyIpXQorLQkJcHVibGljIHN0YXRpYyBib29s IHByZWZzX2dldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hdXRvX21h eGltaXplIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2F1dG9fbWF4aW1pemUg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUg PSAibWV0YV9wcmVmc19nZXRfYXV0b19yYWlzZSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHBy ZWZzX2dldF9hdXRvX3JhaXNlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2F1dG9fcmFpc2VfZGVsYXkiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9hdXRvX3JhaXNlX2RlbGF5ICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfZ2V0X2J1dHRvbl9sYXlvdXQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5CdXR0b25M YXlvdXQgcHJlZnNfZ2V0X2J1dHRvbl9sYXlvdXQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY2VudGVyX25l d193aW5kb3dzIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2NlbnRlcl9uZXdf d2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi LCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jb21wb3NpdGluZ19tYW5hZ2VyIildCistCQlwdWJs aWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVm c19nZXRfY3Vyc29yX3NpemUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9jdXJz b3Jfc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi LCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jdXJzb3JfdGhlbWUiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBzdHJpbmcgcHJlZnNfZ2V0X2N1cnNvcl90aGVtZSAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dl dF9kaXNhYmxlX3dvcmthcm91bmRzIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0 X2Rpc2FibGVfd29ya2Fyb3VuZHMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZHJhZ190aHJlc2hvbGQiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9kcmFnX3RocmVzaG9sZCAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF9kcmFnZ2FibGVfYm9yZGVyX3dpZHRoIildCistCQlwdWJsaWMgc3RhdGljIGludCBw cmVmc19nZXRfZHJhZ2dhYmxlX2JvcmRlcl93aWR0aCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9keW5hbWlj X3dvcmtzcGFjZXMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZHluYW1pY193 b3Jrc3BhY2VzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2VkZ2VfdGlsaW5nIildCistCQlwdWJsaWMgc3Rh dGljIGJvb2wgcHJlZnNfZ2V0X2VkZ2VfdGlsaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvY3VzX2No YW5nZV9vbl9wb2ludGVyX3Jlc3QiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRf Zm9jdXNfY2hhbmdlX29uX3BvaW50ZXJfcmVzdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9mb2N1c19tb2Rl IildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTW9kZSBwcmVmc19nZXRfZm9jdXNf bW9kZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF9mb2N1c19uZXdfd2luZG93cyIpXQorLQkJcHVibGljIHN0 YXRpYyBHRGVza3RvcC5Gb2N1c05ld1dpbmRvd3MgcHJlZnNfZ2V0X2ZvY3VzX25ld193aW5kb3dz ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfZ2V0X2ZvcmNlX2Z1bGxzY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMg Ym9vbCBwcmVmc19nZXRfZm9yY2VfZnVsbHNjcmVlbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9nbm9tZV9h Y2Nlc3NpYmlsaXR5IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2dub21lX2Fj Y2Vzc2liaWxpdHkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZ25vbWVfYW5pbWF0aW9ucyIpXQorLQkJcHVi bGljIHN0YXRpYyBib29sIHByZWZzX2dldF9nbm9tZV9hbmltYXRpb25zICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNf Z2V0X2tleWJpbmRpbmdfYWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuS2V5QmluZGlu Z0FjdGlvbiBwcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF9tb3VzZV9idXR0b25fbWVudSIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNf Z2V0X21vdXNlX2J1dHRvbl9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tb2Rz IildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuVmlydHVhbE1vZGlmaWVyIHByZWZzX2dldF9tb3Vz ZV9idXR0b25fbW9kcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fcmVzaXplIildCist CQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfbW91c2VfYnV0dG9uX3Jlc2l6ZSAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRh X3ByZWZzX2dldF9udW1fd29ya3NwYWNlcyIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNf Z2V0X251bV93b3Jrc3BhY2VzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3JhaXNlX29uX2NsaWNrIildCist CQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X3JhaXNlX29uX2NsaWNrICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBw cmVmc19nZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF90aXRsZWJh cl9mb250IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udERlc2NyaXB0aW9u IHByZWZzX2dldF90aXRsZWJhcl9mb250ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X3Zpc3VhbF9iZWxsX3R5cGUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVmlz dWFsQmVsbFR5cGUgcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsX3R5cGUgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRf d29ya3NwYWNlX25hbWUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgcHJlZnNf Z2V0X3dvcmtzcGFjZV9uYW1lIChpbnQgaSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfd29ya3NwYWNlc19vbmx5 X29uX3ByaW1hcnkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfd29ya3NwYWNl c19vbmx5X29uX3ByaW1hcnkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19pbml0IildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgcHJlZnNfaW5pdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9mb3JjZV9mdWxsc2NyZWVuIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wgd2hl dGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25h bWUgPSAibWV0YV9wcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCBwcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMgKGludCBuX3dvcmtzcGFjZXMpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfc2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBw cmVmc19zZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSAoYm9vbCB3aGV0aGVyKTsKKy0JfQorLQlu YW1lc3BhY2UgVXRpbCB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGls LmgiLCBjbmFtZSA9ICJtZXRhX2FkZF92ZXJib3NlX3RvcGljIildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2V4dGVy bmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBl eHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiAodWludCBrZXliaW5kaW5nX2FjdGlvbik7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJt ZXRhX2dfdXRmOF9zdHJuZHVwIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3Ry bmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nZXRfbG9jYWxlX2RpcmVjdGlvbiIpXQor LQkJcHVibGljIHN0YXRpYyBNZXRhLkxvY2FsZURpcmVjdGlvbiBnZXRfbG9jYWxlX2RpcmVjdGlv biAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1l ID0gIm1ldGFfZ3Jhdml0eV90b19zdHJpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBz dHJpbmcgZ3Jhdml0eV90b19zdHJpbmcgKGludCBncmF2aXR5KTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfZGVidWdnaW5nIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZGVidWdnaW5nICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9pc19zeW5jaW5nIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfc3luY2luZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfdmVyYm9zZSIpXQor LQkJcHVibGljIHN0YXRpYyBib29sIGlzX3ZlcmJvc2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3dheWxhbmRfY29tcG9z aXRvciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3dheWxhbmRfY29tcG9zaXRvciAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1l dGFfbGF0ZXJfYWRkIildCistCQlwdWJsaWMgc3RhdGljIHVpbnQgbGF0ZXJfYWRkIChNZXRhLkxh dGVyVHlwZSB3aGVuLCBvd25lZCBHTGliLlNvdXJjZUZ1bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2xhdGVyX3JlbW92 ZSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGxhdGVyX3JlbW92ZSAodWludCBsYXRlcl9pZCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJt ZXRhX3BvcF9ub19tc2dfcHJlZml4IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX25vX21z Z19wcmVmaXggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgi LCBjbmFtZSA9ICJtZXRhX3B1c2hfbm9fbXNnX3ByZWZpeCIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkIHB1c2hfbm9fbXNnX3ByZWZpeCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfcmVjdCIpXQorLQkJcHVibGljIHN0YXRpYyBN ZXRhLlJlY3RhbmdsZT8gcmVjdCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAi bWV0YV9yZW1vdmVfdmVyYm9zZV90b3BpYyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92 ZV92ZXJib3NlX3RvcGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9zaG93X2RpYWxvZyIp XQorLQkJcHVibGljIHN0YXRpYyBHTGliLlBpZCBzaG93X2RpYWxvZyAoc3RyaW5nIHR5cGUsIHN0 cmluZyBtZXNzYWdlLCBzdHJpbmcgdGltZW91dCwgc3RyaW5nIGRpc3BsYXksIHN0cmluZyBva190 ZXh0LCBzdHJpbmcgY2FuY2VsX3RleHQsIHN0cmluZyBpY29uX25hbWUsIGludCB0cmFuc2llbnRf Zm9yLCBHTGliLlNMaXN0PHZvaWQqPiBjb2x1bW5zLCBHTGliLlNMaXN0PHZvaWQqPiBlbnRyaWVz KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0g Im1ldGFfdW5zaWduZWRfbG9uZ19lcXVhbCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgdW5zaWdu ZWRfbG9uZ19lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfdW5zaWduZWRfbG9uZ19oYXNo IildCistCQlwdWJsaWMgc3RhdGljIHVpbnQgdW5zaWduZWRfbG9uZ19oYXNoICh2b2lkKiB2KTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1l dGFfeDExX2Vycm9yX3RyYXBfcG9wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX2Vycm9y X3RyYXBfcG9wIChNZXRhLlgxMURpc3BsYXkgeDExX2Rpc3BsYXkpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV94MTFfZXJyb3JfdHJh cF9wb3Bfd2l0aF9yZXR1cm4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHgxMV9lcnJvcl90cmFw X3BvcF93aXRoX3JldHVybiAoTWV0YS5YMTFEaXNwbGF5IHgxMV9kaXNwbGF5KTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfeDExX2Vy cm9yX3RyYXBfcHVzaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHgxMV9lcnJvcl90cmFwX3B1 c2ggKE1ldGEuWDExRGlzcGxheSB4MTFfZGlzcGxheSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2Vu ZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmFja2VuZCA6IEdMaWIu T2JqZWN0LCBHTGliLkluaXRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZW5kICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZW5kLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9iYWNr ZW5kIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNrZW5kIGdldF9iYWNrZW5k ICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EbmQgZ2V0X2RuZCAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIE1ldGEuUmVtb3RlQWNjZXNzQ29udHJvbGxlciBnZXRfcmVtb3RlX2FjY2Vzc19jb250 cm9sbGVyICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfc3RhZ2UgKCk7 CistCQlwdWJsaWMgdm9pZCBsb2NrX2xheW91dF9ncm91cCAodWludCBpZHgpOworLQkJcHVibGlj IHZvaWQgc2V0X2tleW1hcCAoc3RyaW5nIGxheW91dHMsIHN0cmluZyB2YXJpYW50cywgc3RyaW5n IG9wdGlvbnMpOworLQkJcHVibGljIHZvaWQgc2V0X251bWxvY2sgKGJvb2wgbnVtbG9ja19zdGF0 ZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgbGlkX2lzX2Nsb3NlZF9jaGFuZ2VkIChib29sIG9iamVjdCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgQmFja2dyb3VuZCA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kIChNZXRhLkRpc3BsYXkg ZGlzcGxheSk7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwgKCk7CistCQlwdWJs aWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxlIGZpbGUyLCBkb3Vi bGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworLQkJcHVi bGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxl KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRp bmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29sb3Ig c2Vjb25kX2NvbG9yKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuRGlz cGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNp Z25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3Vu ZF9hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEFjdG9yIDog Q2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0 ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGlj IEJhY2tncm91bmRBY3RvciAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIGludCBtb25pdG9yKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCk7 CistCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKGJvb2wgZW5hYmxlZCwgaW50IGhlaWdodCwg ZG91YmxlIHRvbmVfc3RhcnQpOworLQkJcHVibGljIHZvaWQgc2V0X21vbml0b3IgKGludCBtb25p dG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF92aWduZXR0ZSAoYm9vbCBlbmFibGVkLCBkb3VibGUg YnJpZ2h0bmVzcywgZG91YmxlIHNoYXJwbmVzcyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCB7IG93bmVkIGdldDsgc2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgYnJpZ2h0bmVzcyB7IGdldDsg c2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGdyYWRpZW50IHsg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCBncmFkaWVu dF9oZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg ZG91YmxlIGdyYWRpZW50X21heF9kYXJrbmVzcyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNwbGF5IHsgb3duZWQgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCBtb25p dG9yIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGJvb2wgdmlnbmV0dGUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgZG91YmxlIHZpZ25ldHRlX3NoYXJwbmVzcyB7IGdldDsgc2V0OyB9CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgiLCB0 eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9ncm91cF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgQmFja2dyb3VuZEdyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBD bHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlckFjdG9yKiIpXQorLQkJcHVibGljIEJhY2tncm91bmRHcm91cCAoKTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIsIHR5 cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2ltYWdlX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBCYWNrZ3JvdW5kSW1hZ2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2dyb3VuZEltYWdlICgp OworLQkJcHVibGljIGJvb2wgZ2V0X3N1Y2Nlc3MgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDb2ds LlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19sb2FkZWQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgbG9hZGVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIiwgdHlwZV9pZCA9ICJtZXRh X2JhY2tncm91bmRfaW1hZ2VfY2FjaGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJh Y2tncm91bmRJbWFnZUNhY2hlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tncm91bmRJbWFnZUNhY2hl ICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQmFja2dyb3VuZEltYWdlQ2FjaGUg Z2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0YS5CYWNrZ3JvdW5kSW1hZ2UgbG9hZCAoR0xp Yi5GaWxlIGZpbGUpOworLQkJcHVibGljIHZvaWQgcHVyZ2UgKEdMaWIuRmlsZSBmaWxlKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIEJhcnJpZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFycmllciAoKTsKKy0JCXB1YmxpYyB2 b2lkIGRlc3Ryb3kgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hY3RpdmUgKCk7CistCQlwdWJsaWMg dm9pZCByZWxlYXNlIChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhcnJpZXJEaXJlY3Rpb24gZGlyZWN0aW9ucyB7IGdldDsg Y29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3Bs YXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBpbnQgeDEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgaW50IHgyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGludCB5MSB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeTIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJ cHVibGljIHNpZ25hbCB2b2lkIGhpdCAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIGxlZnQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJtZXRhX2JhcnJpZXJfZXZlbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1 YmxpYyBjbGFzcyBCYXJyaWVyRXZlbnQgeworLQkJcHVibGljIGludCBkdDsKKy0JCXB1YmxpYyBk b3VibGUgZHg7CistCQlwdWJsaWMgZG91YmxlIGR5OworLQkJcHVibGljIGludCBldmVudF9pZDsK Ky0JCXB1YmxpYyBib29sIGdyYWJiZWQ7CistCQlwdWJsaWMgYm9vbCByZWxlYXNlZDsKKy0JCXB1 YmxpYyB1aW50MzIgdGltZTsKKy0JCXB1YmxpYyBkb3VibGUgeDsKKy0JCXB1YmxpYyBkb3VibGUg eTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl90cmFja2VyX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBDdXJzb3JUcmFja2VyIDogR0xpYi5PYmplY3QgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEN1cnNv clRyYWNrZXIgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5DdXJzb3JUcmFja2Vy IGdldF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVibGljIHZvaWQg Z2V0X2hvdCAob3V0IGludCB4LCBvdXQgaW50IHkpOworLQkJcHVibGljIHZvaWQgZ2V0X3BvaW50 ZXIgKGludCB4LCBpbnQgeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kcyk7CistCQlwdWJsaWMg dW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3Nwcml0ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9w b2ludGVyX3Zpc2libGUgKGJvb2wgdmlzaWJsZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vy c29yX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX21vdmVkIChmbG9h dCBvYmplY3QsIGZsb2F0IHAwKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgY2xhc3MgRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEaXNwbGF5ICgpOworLQkJ cHVibGljIHZvaWQgYWRkX2lnbm9yZWRfY3Jvc3Npbmdfc2VyaWFsICh1bG9uZyBzZXJpYWwpOwor LQkJcHVibGljIHVpbnQgYWRkX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lLCBHTGliLlNldHRpbmdz IHNldHRpbmdzLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncywgb3duZWQgTWV0YS5LZXlIYW5k bGVyRnVuYyBoYW5kbGVyKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX2dyYWJfb3AgKE1ldGEuV2lu ZG93IHdpbmRvdywgTWV0YS5HcmFiT3Agb3AsIGJvb2wgcG9pbnRlcl9hbHJlYWR5X2dyYWJiZWQs IGJvb2wgZnJhbWVfYWN0aW9uLCBpbnQgYnV0dG9uLCB1bG9uZyBtb2RtYXNrLCB1aW50MzIgdGlt ZXN0YW1wLCBpbnQgcm9vdF94LCBpbnQgcm9vdF95KTsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyX21v dXNlX21vZGUgKCk7CistCQlwdWJsaWMgdm9pZCBjbG9zZSAodWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgdm9pZCBlbmRfZ3JhYl9vcCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg dm9pZCBmb2N1c19kZWZhdWx0X3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg dm9pZCBmcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGludCBn ZXRfY3VycmVudF9tb25pdG9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1l ICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lX3JvdW5kdHJpcCAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9mb2N1c193aW5kb3cgKCk7CistCQlwdWJs aWMgTWV0YS5HcmFiT3AgZ2V0X2dyYWJfb3AgKCk7CistCQlwdWJsaWMgdWludCBnZXRfa2V5Ymlu ZGluZ19hY3Rpb24gKHVpbnQga2V5Y29kZSwgdWxvbmcgbWFzayk7CistCQlwdWJsaWMgdWludDMy IGdldF9sYXN0X3VzZXJfdGltZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfbW9u aXRvcl9nZW9tZXRyeSAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGJvb2wgZ2V0X21vbml0b3Jf aW5fZnVsbHNjcmVlbiAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvcl9p bmRleF9mb3JfcmVjdCAoTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgaW50IGdldF9t b25pdG9yX25laWdoYm9yX2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0YS5EaXNwbGF5RGly ZWN0aW9uIGRpcik7CistCQlwdWJsaWMgaW50IGdldF9uX21vbml0b3JzICgpOworLQkJcHVibGlj IHN0cmluZyBnZXRfcGFkX2FjdGlvbl9sYWJlbCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIE1l dGEuUGFkQWN0aW9uVHlwZSBhY3Rpb25fdHlwZSwgdWludCBhY3Rpb25fbnVtYmVyKTsKKy0JCXB1 YmxpYyBpbnQgZ2V0X3ByaW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zaXpl IChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh LlNvdW5kUGxheWVyIGdldF9zb3VuZF9wbGF5ZXIgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh LldpbmRvdyBnZXRfdGFiX2N1cnJlbnQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFj ZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBnZXRf dGFiX2xpc3QgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZT8gd29ya3NwYWNlKTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfbmV4dCAoTWV0YS5UYWJMaXN0 IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgTWV0YS5XaW5kb3c/IHdpbmRvdywgYm9v bCBiYWNrd2FyZCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZU1hbmFnZXIgZ2V0 X3dvcmtzcGFjZV9tYW5hZ2VyICgpOworLQkJcHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAo c3RyaW5nIGFjY2VsZXJhdG9yLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncyk7CistCQlwdWJs aWMgYm9vbCBpc19wb2ludGVyX2VtdWxhdGluZ19zZXF1ZW5jZSAoQ2x1dHRlci5FdmVudFNlcXVl bmNlPyBzZXF1ZW5jZSk7CistCQlwdWJsaWMgYm9vbCByZW1vdmVfa2V5YmluZGluZyAoc3RyaW5n IG5hbWUpOworLQkJcHVibGljIHZvaWQgcmVxdWVzdF9wYWRfb3NkIChDbHV0dGVyLklucHV0RGV2 aWNlIHBhZCwgYm9vbCBlZGl0aW9uX21vZGUpOworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNvciAo TWV0YS5DdXJzb3IgY3Vyc29yKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgTWV0YS5XaW5k b3c+IHNvcnRfd2luZG93c19ieV9zdGFja2luZyAoR0xpYi5TTGlzdDxNZXRhLldpbmRvdz4gd2lu ZG93cyk7CistCQlwdWJsaWMgYm9vbCBzdXBwb3J0c19leHRlbmRlZF9iYXJyaWVycyAoKTsKKy0J CXB1YmxpYyB2b2lkIHVuZnJlZXplX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyBib29sIHVuZ3JhYl9hY2NlbGVyYXRvciAodWludCBhY3Rpb25faWQpOworLQkJcHVibGlj IHZvaWQgdW5ncmFiX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29s IHhzZXJ2ZXJfdGltZV9pc19iZWZvcmUgKHVpbnQzMiB0aW1lMSwgdWludDMyIHRpbWUyKTsKKy0J CXB1YmxpYyBNZXRhLldpbmRvdyBmb2N1c193aW5kb3cgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0LCB1aW50IHAwLCB1aW50 IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfdXBkYXRlZCAoKTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBnbF92aWRlb19tZW1vcnlfcHVyZ2VkICgpOworLQkJcHVibGljIHNpZ25h bCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAw LCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9lbmQgKE1l dGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVsbHNjcmVlbl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNp Z25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcGFkX21v ZGVfc3dpdGNoIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgdWludCBwMCwgdWludCBwMSk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzdGFja2VkICgpOworLQkJcHVibGljIHNpZ25hbCBi b29sIHJlc3RhcnQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd19vc2QgKGludCBvYmpl Y3QsIHN0cmluZyBwMCwgc3RyaW5nIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdW5vd25lZCBDbHV0 dGVyLkFjdG9yPyBzaG93X3BhZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBHTGliLlNl dHRpbmdzIHNldHRpbmdzLCBzdHJpbmcgbGF5b3V0X3BhdGgsIGJvb2wgZWRpdGlvbl9tb2RlLCBp bnQgbW9uaXRvcl9pZHgpOworLQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzaXplX3BvcHVw IChib29sIG9iamVjdCwgTWV0YS5SZWN0YW5nbGUgcDAsIGludCBwMSwgaW50IHAyKTsKKy0JCXB1 YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc3RhcnRfbWVzc2FnZSAoc3RyaW5nPyBtZXNzYWdlKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfY3JlYXRlZCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZGVtYW5kc19hdHRlbnRpb24gKE1ldGEuV2luZG93 IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2VudGVyZWRfbW9uaXRvciAo aW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRv d19sZWZ0X21vbml0b3IgKGludCBvYmplY3QsIE1ldGEuV2luZG93IHAwKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCB3aW5kb3dfbWFya2VkX3VyZ2VudCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCB4MTFfZGlzcGxheV9jbG9zaW5nICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHgx MV9kaXNwbGF5X29wZW5lZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2RuZF9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRG5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERuZCAoKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfZW50ZXIgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgZG5kX2xlYXZlICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9wb3NpdGlvbl9jaGFu Z2UgKGludCBvYmplY3QsIGludCBwMCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEZyYW1lIHsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9p ZCA9ICJtZXRhX2lkbGVfbW9uaXRvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgSWRs ZU1vbml0b3IgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgSWRsZU1vbml0b3IgKCk7CistCQlwdWJsaWMgdWlu dCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93bmVkIE1ldGEuSWRsZU1v bml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyB1aW50IGFkZF91c2VyX2FjdGl2 ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUgKCk7CistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9yX2RldmljZSAoaW50 IGRldmljZV9pZCk7CistCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgpOworLQkJcHVibGlj IHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVl IiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCistCVtDb21wYWN0 XQorLQlwdWJsaWMgY2xhc3MgS2V5QmluZGluZyB7CistCQlwdWJsaWMgdWludCBnZXRfbWFzayAo KTsKKy0JCXB1YmxpYyBNZXRhLlZpcnR1YWxNb2RpZmllciBnZXRfbW9kaWZpZXJzICgpOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVibGljIGJvb2wgaXNfYnVp bHRpbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3JldmVyc2VkICgpOworLQkJW0NDb2RlIChjbmFt ZSA9ICJtZXRhX2tleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciIpXQorLQkJcHVibGljIHN0 YXRpYyBib29sIHNldF9jdXN0b21faGFuZGxlciAoc3RyaW5nIG5hbWUsIG93bmVkIE1ldGEuS2V5 SGFuZGxlckZ1bmM/IGhhbmRsZXIpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfbGF1bmNo X2NvbnRleHRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIExhdW5jaENvbnRleHQgOiBH TGliLkFwcExhdW5jaENvbnRleHQgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIExhdW5jaENvbnRleHQgKCk7CistCQlwdWJsaWMgdm9p ZCBzZXRfdGltZXN0YW1wICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNldF93 b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHRpbWVzdGFtcCB7IGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLldvcmtzcGFj ZSB3b3Jrc3BhY2UgeyBvd25lZCBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1ldGFf bW9uaXRvcl9tYW5hZ2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBNb25pdG9yTWFu YWdlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBNb25pdG9yTWFuYWdlciAoKTsKKy0JCXB1YmxpYyBib29s IGNhbl9zd2l0Y2hfY29uZmlnICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuTW9u aXRvck1hbmFnZXIgQGdldCAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9kaXNwbGF5X2Nv bmZpZ3VyYXRpb25fdGltZW91dCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pc19idWlsdGluX2Rp c3BsYXlfb24gKCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2Zvcl9jb25uZWN0b3IgKHN0 cmluZyBjb25uZWN0b3IpOworLQkJcHVibGljIE1ldGEuTW9uaXRvclN3aXRjaENvbmZpZ1R5cGUg Z2V0X3N3aXRjaF9jb25maWcgKCk7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfY29uZmlnIChNZXRh Lk1vbml0b3JTd2l0Y2hDb25maWdUeXBlIGNvbmZpZ190eXBlKTsKKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIE1ldGEuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZF9pbnRlcm5hbCAoKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBwb3dlcl9zYXZlX21vZGVfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3BsdWdpbl9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGx1Z2luIDogR0xpYi5PYmpl Y3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJv dGVjdGVkIFBsdWdpbiAoKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX21vZGFsIChNZXRhLk1vZGFs T3B0aW9ucyBvcHRpb25zLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGNvbXBs ZXRlX2Rpc3BsYXlfY2hhbmdlIChib29sIG9rKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgdm9pZCBkZXN0cm95IChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsK Ky0JCXB1YmxpYyB2b2lkIGRlc3Ryb3lfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9y KTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9tb2RhbCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJs aWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBNZXRhLlBsdWdpbkluZm8/IGdldF9pbmZvICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgaGlkZV90aWxlX3ByZXZpZXcgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgYm9vbCBrZXliaW5kaW5nX2ZpbHRlciAoTWV0YS5LZXlCaW5kaW5nIGJp bmRpbmcpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2lsbF9zd2l0 Y2hfd29ya3NwYWNlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg a2lsbF93aW5kb3dfZWZmZWN0cyAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMg c3RhdGljIHZvaWQgbWFuYWdlcl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIuVHlwZSBndHlwZSk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKE1ldGEuV2luZG93QWN0 b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgbWFwX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3Rv ciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBtaW5pbWl6 ZSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBtaW5pbWl6ZV9jb21w bGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHVub3duZWQgTWV0YS5QbHVnaW5JbmZvPyBwbHVnaW5faW5mbyAoKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfdGlsZV9wcmV2aWV3IChNZXRh LldpbmRvdyB3aW5kb3csIE1ldGEuUmVjdGFuZ2xlIHRpbGVfcmVjdCwgaW50IHRpbGVfbW9uaXRv cl9udW1iZXIpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd193 aW5kb3dfbWVudSAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1lbnUs IGludCB4LCBpbnQgeSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBz aG93X3dpbmRvd19tZW51X2Zvcl9yZWN0IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93 TWVudVR5cGUgbWVudSwgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdm9pZCBzaXplX2NoYW5nZSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvciwg TWV0YS5TaXplQ2hhbmdlIHdoaWNoX2NoYW5nZSwgTWV0YS5SZWN0YW5nbGUgb2xkX2ZyYW1lX3Jl Y3QsIE1ldGEuUmVjdGFuZ2xlIG9sZF9idWZmZXJfcmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaXpl X2NoYW5nZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2l6ZV9jaGFuZ2VkIChNZXRhLldpbmRvd0FjdG9y IGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN0YXJ0ICgp OworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3dpdGNoX3dvcmtzcGFj ZSAoaW50IGZyb20sIGludCB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0J CXB1YmxpYyB2b2lkIHN3aXRjaF93b3Jrc3BhY2VfY29tcGxldGVkICgpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdW5taW5pbWl6ZSAoTWV0YS5XaW5kb3dBY3RvciBh Y3Rvcik7CistCQlwdWJsaWMgdm9pZCB1bm1pbmltaXplX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dB Y3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCB4ZXZl bnRfZmlsdGVyIChYLkV2ZW50IGV2ZW50KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3Jl bW90ZV9hY2Nlc3NfY29udHJvbGxlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgUmVt b3RlQWNjZXNzQ29udHJvbGxlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBSZW1vdGVBY2Nlc3NDb250cm9s bGVyICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG5ld19oYW5kbGUgKE1ldGEuUmVtb3RlQWNj ZXNzSGFuZGxlIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9yZW1vdGVfYWNj ZXNzX2hhbmRsZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNzSGFu ZGxlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJcHJvdGVjdGVkIFJlbW90ZUFjY2Vzc0hhbmRsZSAoKTsKKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgc3RvcCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzdG9wcGVkICgpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBj bGFzcyBTZXR0aW5ncyB7CistCQlwdWJsaWMgaW50IGdldF9mb250X2RwaSAoKTsKKy0JCXB1Ymxp YyBpbnQgZ2V0X3VpX3NjYWxpbmdfZmFjdG9yICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCByZWZfZnVuY3Rpb24g PSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAoKSIs IHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCistCVtDb21wYWN0XQorLQlw dWJsaWMgY2xhc3MgU2hhZG93IHsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKGludCB3aW5k b3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwg Q2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMgdm9pZCBwYWludCAoQ29nbC5G cmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3 aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdp b24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgQHJl ZiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1l dGFfc2hhZG93X2ZhY3RvcnlfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYWRvd0Zh Y3RvcnkgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCistCQlwdWJsaWMgU2hhZG93RmFjdG9yeSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBNZXRhLlNoYWRvd0ZhY3RvcnkgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0 YS5TaGFkb3dQYXJhbXMgZ2V0X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNl ZCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgZ2V0X3NoYWRvdyAoTWV0YS5XaW5kb3dTaGFwZSBz aGFwZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1 c2VkKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wYXJhbXMgKHN0cmluZyBjbGFzc19uYW1lLCBib29s IGZvY3VzZWQsIE1ldGEuU2hhZG93UGFyYW1zIEBwYXJhbXMpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFwZWRfdGV4dHVy ZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IENsdXR0ZXIu QWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRh aW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTaGFwZWRUZXh0dXJlICgpOworLQkJcHVibGlj IENhaXJvLlN1cmZhY2UgZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQgY2xpcCk7CistCQlw dWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdm9p ZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21pcG1hcHMpOworLQkJcHVibGljIHZv aWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4dHVyZSk7CistCQlwdWJs aWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVnaW9uIG9wYXF1ZV9yZWdp b24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGludCB4LCBpbnQgeSwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zb3VuZF9wbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGNsYXNzIFNvdW5kUGxheWVyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNvdW5kUGxheWVyICgp OworLQkJcHVibGljIHZvaWQgcGxheV9mcm9tX2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBzdHJpbmcg ZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCk7CistCQlw dWJsaWMgdm9pZCBwbGF5X2Zyb21fdGhlbWUgKHN0cmluZyBuYW1lLCBzdHJpbmcgZGVzY3JpcHRp b24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5 cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU3RhZ2Ug OiBDbHV0dGVyLlN0YWdlLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1 dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU3RhZ2UgKCk7CistCQlwdWJs aWMgc3RhdGljIGJvb2wgaXNfZm9jdXNlZCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIGFjdG9yc19wYWludGVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0g Im1ldGFfc3RhcnR1cF9ub3RpZmljYXRpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNz IFN0YXJ0dXBOb3RpZmljYXRpb24gOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU3RhcnR1cE5vdGlmaWNhdGlv biAoKTsKKy0JCXB1YmxpYyBNZXRhLkxhdW5jaENvbnRleHQgY3JlYXRlX2xhdW5jaGVyICgpOwor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBv d25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKHZv aWQqIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFydHVwX3NlcXVlbmNl X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTdGFydHVwU2VxdWVuY2UgOiBHTGliLk9i amVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlw cm90ZWN0ZWQgU3RhcnR1cFNlcXVlbmNlICgpOworLQkJcHVibGljIHZvaWQgY29tcGxldGUgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2FwcGxpY2F0aW9uX2lkICgpOworLQkJcHVi bGljIGJvb2wgZ2V0X2NvbXBsZXRlZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf aWNvbl9uYW1lICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9pZCAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKy0JCXB1YmxpYyB1aW50NjQgZ2V0X3Rp bWVzdGFtcCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21jbGFzcyAoKTsKKy0J CXB1YmxpYyBpbnQgZ2V0X3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBzdHJpbmcgYXBwbGljYXRp b25faWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyBpY29uX25hbWUgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyBpZCB7IGdldDsgY29uc3RydWN0OyB9 CistCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHVp bnQ2NCB0aW1lc3RhbXAgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyB3bWNs YXNzIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBpbnQgd29ya3NwYWNlIHsgZ2V0OyBj b25zdHJ1Y3Q7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0 XQorLQlwdWJsaWMgY2xhc3MgVGhlbWUgeworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJz dHJhY3QgY2xhc3MgV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvdyAoKTsKKy0JCXB1Ymxp YyB2b2lkIGFjdGl2YXRlICh1aW50MzIgY3VycmVudF90aW1lKTsKKy0JCXB1YmxpYyB2b2lkIGFj dGl2YXRlX3dpdGhfd29ya3NwYWNlICh1aW50MzIgY3VycmVudF90aW1lLCBNZXRhLldvcmtzcGFj ZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIGJvb2wgYWxsb3dzX21vdmUgKCk7CistCQlwdWJsaWMg Ym9vbCBhbGxvd3NfcmVzaXplICgpOworLQkJcHVibGljIHZvaWQgYmVnaW5fZ3JhYl9vcCAoTWV0 YS5HcmFiT3Agb3AsIGJvb2wgZnJhbWVfYWN0aW9uLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyBib29sIGNhbl9jbG9zZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9tYXhpbWl6ZSAoKTsK Ky0JCXB1YmxpYyBib29sIGNhbl9taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9zaGFk ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdv cmtzcGFjZSk7CistCQlwdWJsaWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlX2J5X2luZGV4IChpbnQg c3BhY2VfaW5kZXgsIGJvb2wgYXBwZW5kKTsKKy0JCXB1YmxpYyB2b2lkIGNoZWNrX2FsaXZlICh1 aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBjbGllbnRfcmVjdF90 b19mcmFtZV9yZWN0IChNZXRhLlJlY3RhbmdsZSBjbGllbnRfcmVjdCk7CistCQlwdWJsaWMgdm9p ZCBjb21wdXRlX2dyb3VwICgpOworLQkJcHVibGljIHZvaWQgQGRlbGV0ZSAodWludDMyIHRpbWVz dGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBmaW5kX3Jvb3RfYW5jZXN0b3Ig KCk7CistCQlwdWJsaWMgdm9pZCBmb2N1cyAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg dm9pZCBmb3JlYWNoX2FuY2VzdG9yIChNZXRhLldpbmRvd0ZvcmVhY2hGdW5jIGZ1bmMpOworLQkJ cHVibGljIHZvaWQgZm9yZWFjaF90cmFuc2llbnQgKE1ldGEuV2luZG93Rm9yZWFjaEZ1bmMgZnVu Yyk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdF90b19jbGllbnRfcmVjdCAo TWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0 X2J1ZmZlcl9yZWN0ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9jbGllbnRfbWFj aGluZSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd0NsaWVudFR5cGUgZ2V0X2NsaWVudF90eXBl ICgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X2NvbXBvc2l0b3JfcHJpdmF0 ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRpb24gKCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5v d25lZCBDYWlyby5SZWdpb24/IGdldF9mcmFtZV9ib3VuZHMgKCk7CistCQlwdWJsaWMgTWV0YS5S ZWN0YW5nbGUgZ2V0X2ZyYW1lX3JlY3QgKCk7CistCQlwdWJsaWMgTWV0YS5GcmFtZVR5cGUgZ2V0 X2ZyYW1lX3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBfbWVu dV9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2FwcGxp Y2F0aW9uX2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfYXBwbGljYXRp b25fb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19tZW51 YmFyX29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfdGhl bWVfdmFyaWFudCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3VuaXF1ZV9i dXNfbmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3dpbmRvd19vYmpl Y3RfcGF0aCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5IChvdXQgTWV0YS5S ZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgdWludDY0IGdldF9pZCAoKTsKKy0JCXB1YmxpYyBN ZXRhLlN0YWNrTGF5ZXIgZ2V0X2xheWVyICgpOworLQkJcHVibGljIE1ldGEuTWF4aW1pemVGbGFn cyBnZXRfbWF4aW1pemVkICgpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvciAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbXV0dGVyX2hpbnRzICgpOworLQkJcHVibGljIGludCBn ZXRfcGlkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9yb2xlICgpOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9zYW5kYm94ZWRfYXBwX2lkICgpOworLQkJcHVibGljIHVp bnQgZ2V0X3N0YWJsZV9zZXF1ZW5jZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf c3RhcnR1cF9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93PyBnZXRfdGlsZV9t YXRjaCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGl0bGUgKCk7CistCQlwdWJs aWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdHJhbnNpZW50X2ZvciAoKTsKKy0JCXB1YmxpYyB1 aW50MzIgZ2V0X3VzZXJfdGltZSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1R5cGUgZ2V0X3dp bmRvd190eXBlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bV9jbGFzcyAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21fY2xhc3NfaW5zdGFuY2UgKCk7CistCQlw dWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7CistCQlw dWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9jdXJyZW50X21vbml0b3IgKCk7Cist CQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdo aWNoX21vbml0b3IpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X3dvcmtz cGFjZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeHdpbmRvdyAoKTsKKy0JCXB1YmxpYyB2 b2lkIGdyb3VwX2xlYWRlcl9jaGFuZ2VkICgpOworLQkJcHVibGljIGJvb2wgaGFzX2ZvY3VzICgp OworLQkJcHVibGljIGJvb2wgaXNfYWJvdmUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hbHdheXNf b25fYWxsX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hbmNlc3Rvcl9vZl90cmFu c2llbnQgKE1ldGEuV2luZG93IHRyYW5zaWVudCk7CistCQlwdWJsaWMgYm9vbCBpc19hdHRhY2hl ZF9kaWFsb2cgKCk7CistCQlwdWJsaWMgYm9vbCBpc19jbGllbnRfZGVjb3JhdGVkICgpOworLQkJ cHVibGljIGJvb2wgaXNfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2hpZGRlbiAo KTsKKy0JCXB1YmxpYyBib29sIGlzX21vbml0b3Jfc2l6ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBp c19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX29uX3ByaW1hcnlfbW9u aXRvciAoKTsKKy0JCXB1YmxpYyBib29sIGlzX292ZXJyaWRlX3JlZGlyZWN0ICgpOworLQkJcHVi bGljIGJvb2wgaXNfcmVtb3RlICgpOworLQkJcHVibGljIGJvb2wgaXNfc2NyZWVuX3NpemVkICgp OworLQkJcHVibGljIGJvb2wgaXNfc2hhZGVkICgpOworLQkJcHVibGljIGJvb2wgaXNfc2tpcF90 YXNrYmFyICgpOworLQkJcHVibGljIHZvaWQga2lsbCAoKTsKKy0JCXB1YmxpYyBib29sIGxvY2F0 ZWRfb25fd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIHZv aWQgbG93ZXIgKCk7CistCQlwdWJsaWMgdm9pZCBtYWtlX2Fib3ZlICgpOworLQkJcHVibGljIHZv aWQgbWFrZV9mdWxsc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgbWF4aW1pemUgKE1ldGEuTWF4 aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplICgpOworLQkJ cHVibGljIHZvaWQgbW92ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBpbnQg cm9vdF95X253KTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfcmVzaXplX2ZyYW1lIChib29sIHVzZXJf b3AsIGludCByb290X3hfbncsIGludCByb290X3lfbncsIGludCB3LCBpbnQgaCk7CistCQlwdWJs aWMgdm9pZCBtb3ZlX3RvX21vbml0b3IgKGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJh aXNlICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2J5cGFzc19jb21wb3NpdG9yICgpOwor LQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7CistCQlw dWJsaWMgdm9pZCBzZXRfY29tcG9zaXRvcl9wcml2YXRlIChHTGliLk9iamVjdCBwcml2KTsKKy0J CXB1YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9pY29uX2dlb21ldHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVjdCk7CistCQlwdWJsaWMgdm9pZCBz aGFkZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBzaG92ZV90aXRsZWJhcl9v bnNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIHNob3dpbmdfb25faXRzX3dvcmtzcGFjZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIHNodXRkb3duX2dyb3VwICgpOworLQkJcHVibGljIHZvaWQgc3RpY2sg KCk7CistCQlwdWJsaWMgYm9vbCB0aXRsZWJhcl9pc19vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2 b2lkIHVubWFrZV9hYm92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9mdWxsc2NyZWVuICgp OworLQkJcHVibGljIHZvaWQgdW5tYXhpbWl6ZSAoTWV0YS5NYXhpbWl6ZUZsYWdzIGRpcmVjdGlv bnMpOworLQkJcHVibGljIHZvaWQgdW5taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuc2V0 X2RlbWFuZHNfYXR0ZW50aW9uICgpOworLQkJcHVibGljIHZvaWQgdW5zaGFkZSAodWludDMyIHRp bWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCB1bnN0aWNrICgpOworLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCBhYm92ZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgYm9vbCBhcHBlYXJzX2ZvY3VzZWQgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGVjb3JhdGVkIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRlbWFuZHNfYXR0ZW50aW9uIHsgZ2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW4geyBnZXQ7IH0KKy0J CXB1YmxpYyBzdHJpbmcgZ3RrX2FwcF9tZW51X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJs aWMgc3RyaW5nIGd0a19hcHBsaWNhdGlvbl9pZCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBn dGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3Rr X21lbnViYXJfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX3VuaXF1 ZV9idXNfbmFtZSB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfd2luZG93X29iamVjdF9w YXRoIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB2b2lkKiBpY29u IHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1heGltaXpl ZF9ob3Jpem9udGFsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGJvb2wgbWF4aW1pemVkX3ZlcnRpY2FsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIHZvaWQqIG1pbmlfaWNvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCBtaW5pbWl6ZWQgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcg bXV0dGVyX2hpbnRzIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBi b29sIG9uX2FsbF93b3Jrc3BhY2VzIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBib29sIHJlc2l6ZWFibGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGJvb2wgc2tpcF90YXNrYmFyIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIHRp dGxlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHVyZ2Vu dCB7IGdldDsgfQorLQkJcHVibGljIHVpbnQgdXNlcl90aW1lIHsgZ2V0OyB9CistCQlwdWJsaWMg TWV0YS5XaW5kb3dUeXBlIHdpbmRvd190eXBlIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIHdt X2NsYXNzIHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcG9zaXRpb25fY2hhbmdlZCAo KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByYWlzZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgc2hvd24gKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIHVubWFuYWdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3 b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19h Y3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93QWN0b3Ig OiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1 dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93QWN0b3IgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93aW5kb3cgKCk7CistCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIFguV2lu ZG93IGdldF94X3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsKKy0J CXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0eSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvdyBt ZXRhX3dpbmRvdyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdl dDsgc2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZWZmZWN0c19jb21wbGV0ZWQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQg PSAibWV0YV93aW5kb3dfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdpbmRv d0dyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFi bGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvd0dyb3Vw ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVfcmVmIiwg dHlwZV9pZCA9ICJtZXRhX3dpbmRvd19zaGFwZV9nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9u ID0gIm1ldGFfd2luZG93X3NoYXBlX3VucmVmIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xh c3MgV2luZG93U2hhcGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHVibGljIFdpbmRvd1NoYXBlIChDYWlyby5SZWdpb24gcmVnaW9uKTsKKy0JCXB1 YmxpYyBib29sIGVxdWFsIChNZXRhLldpbmRvd1NoYXBlIHNoYXBlX2IpOworLQkJcHVibGljIHZv aWQgZ2V0X2JvcmRlcnMgKGludCBib3JkZXJfdG9wLCBpbnQgYm9yZGVyX3JpZ2h0LCBpbnQgYm9y ZGVyX2JvdHRvbSwgaW50IGJvcmRlcl9sZWZ0KTsKKy0JCXB1YmxpYyB1aW50IGhhc2ggKCk7Cist CQlwdWJsaWMgTWV0YS5XaW5kb3dTaGFwZSBAcmVmICgpOworLQkJcHVibGljIENhaXJvLlJlZ2lv biB0b19yZWdpb24gKGludCBjZW50ZXJfd2lkdGgsIGludCBjZW50ZXJfaGVpZ2h0KTsKKy0JCXB1 YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd29ya3NwYWNl X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXb3Jrc3BhY2UgOiBHTGliLk9iamVjdCB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0 ZWQgV29ya3NwYWNlICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQzMiB0aW1lc3Rh bXApOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF9mb2N1cyAoTWV0YS5XaW5kb3cgZm9j dXNfdGhpcywgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3Bs YXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRf bmVpZ2hib3IgKE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgTWV0 YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgTWV0 YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdoaWNoX21vbml0b3Ip OworLQkJcHVibGljIGludCBpbmRleCAoKTsKKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRh LldpbmRvdz4gbGlzdF93aW5kb3dzICgpOworLQkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5fc3Ry dXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ/PiBzdHJ1dHMpOworLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgdWludCBuX3dpbmRvd3MgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIHVpbnQgd29ya3NwYWNlX2luZGV4IHsgZ2V0OyB9CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgd2luZG93X2FkZGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHdpbmRvd19yZW1vdmVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCB0eXBlX2lkID0gIm1ldGFfd29ya3NwYWNlX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGNsYXNzIFdvcmtzcGFjZU1hbmFnZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV29ya3NwYWNl TWFuYWdlciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGFwcGVuZF9uZXdf d29ya3NwYWNlIChib29sIGFjdGl2YXRlLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1 bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29ya3NwYWNlICgpOworLQkJcHVibGlj IGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25f d29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jr c3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CistCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jr c3BhY2VfbGF5b3V0IChNZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZl cnRpY2FsX2xheW91dCwgaW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7CistCQlwdWJsaWMgdm9p ZCByZW1vdmVfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1l c3RhbXApOworLQkJcHVibGljIGludCBuX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBhY3RpdmVfd29ya3NwYWNlX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg d29ya3NwYWNlX2FkZGVkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jr c3BhY2VfcmVtb3ZlZCAoaW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3Nw YWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQgcDAsIE1ldGEuTW90aW9uRGlyZWN0aW9uIHAx KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3gxMV9kaXNwbGF5X2dldF90eXBlICgpIild CistCXB1YmxpYyBjbGFzcyBYMTFEaXNwbGF5IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFgxMURpc3BsYXkg KCk7CistCQlwdWJsaWMgdm9pZCBmb2N1c190aGVfbm9fZm9jdXNfd2luZG93ICh1aW50MzIgdGlt ZXN0YW1wKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9iYXNlICgpOworLQkJcHVi bGljIGludCBnZXRfc2NyZWVuX251bWJlciAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3NoYXBlX2V2 ZW50X2Jhc2UgKCk7CistCQlwdWJsaWMgYm9vbCBoYXNfc2hhcGUgKCk7CistCQlwdWJsaWMgdm9p ZCBzZXRfY21fc2VsZWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgc2V0X2lucHV0X2ZvY3VzX3dp bmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIGZvY3VzX2ZyYW1lLCB1aW50MzIgdGltZXN0 YW1wKTsKKy0JCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFguV2lu ZG93IHh3aW5kb3cpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFDbG9zZURpYWxvZ0lu dGVyZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGludGVyZmFjZSBDbG9zZURpYWxvZyA6IEdMaWIuT2JqZWN0IHsKKy0JCXB1YmxpYyBh YnN0cmFjdCB2b2lkIGZvY3VzICgpOworLQkJcHVibGljIGFic3RyYWN0IHZvaWQgaGlkZSAoKTsK Ky0JCXB1YmxpYyBib29sIGlzX3Zpc2libGUgKCk7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBz aG93ICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYWJzdHJhY3QgTWV0YS5X aW5kb3cgd2luZG93IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtIYXNFbWl0dGVyXQor LQkJcHVibGljIHNpZ25hbCB2b2lkIHJlc3BvbnNlIChNZXRhLkNsb3NlRGlhbG9nUmVzcG9uc2Ug cmVzcG9uc2UpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFJbmhpYml0U2hvcnRjdXRz RGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2RpYWxv Z19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIEluaGliaXRTaG9ydGN1dHNEaWFs b2cgOiBHTGliLk9iamVjdCB7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoaWRlICgpOworLQkJ cHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGFic3RyYWN0IE1ldGEuV2luZG93IHdpbmRvdyB7IG93bmVkIGdldDsgY29uc3RydWN0 OyB9CistCQlbSGFzRW1pdHRlcl0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByZXNwb25zZSAoTWV0 YS5JbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2UgcmVzcG9uc2UpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBCdXR0b25MYXlvdXQgeworLQkJ W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRv bkZ1bmN0aW9uIGxlZnRfYnV0dG9uc1s0XTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UpXQorLQkJcHVibGljIHdlYWsgYm9vbCBsZWZ0X2J1dHRvbnNfaGFzX3NwYWNlcls0XTsKKy0J CVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0 b25GdW5jdGlvbiByaWdodF9idXR0b25zWzRdOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIHJpZ2h0X2J1dHRvbnNfaGFzX3NwYWNlcls0XTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgRWRnZSB7 CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lk ZV90eXBlOworLQkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBGcmFtZUJvcmRlcnMgeworLQkJ cHVibGljIEd0ay5Cb3JkZXIgdmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIGludmlzaWJs ZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHRvdGFsOworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFBsdWdpbkluZm8geworLQkJ cHVibGljIHdlYWsgc3RyaW5nIG5hbWU7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgdmVyc2lvbjsK Ky0JCXB1YmxpYyB3ZWFrIHN0cmluZyBhdXRob3I7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgbGlj ZW5zZTsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBkZXNjcmlwdGlvbjsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luVmVyc2lvbiB7CistCQlw dWJsaWMgdWludCB2ZXJzaW9uX21ham9yOworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9taW5vcjsK Ky0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWljcm87CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX2Fw aTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMg aW50IHk7CistCQlwdWJsaWMgaW50IHdpZHRoOworLQkJcHVibGljIGludCBoZWlnaHQ7CistCQlw dWJsaWMgaW50IGFyZWEgKCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0IChNZXRhLlJl Y3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZT8gY29weSAoKTsK Ky0JCXB1YmxpYyBib29sIGNvdWxkX2ZpdF9yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0 KTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChNZXRhLlJlY3RhbmdsZSBzcmMyKTsKKy0JCXB1Ymxp YyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgYm9vbCBob3Jpel9vdmVybGFwIChNZXRhLlJlY3Rh bmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3QgKE1ldGEuUmVjdGFuZ2xlIHNy YzIsIG91dCBNZXRhLlJlY3RhbmdsZSBkZXN0KTsKKy0JCXB1YmxpYyBib29sIG92ZXJsYXAgKE1l dGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSB1bmlvbiAoTWV0 YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIGJvb2wgdmVydF9vdmVybGFwIChNZXRhLlJl Y3RhbmdsZSByZWN0Mik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJs aWMgc3RydWN0IFNoYWRvd1BhcmFtcyB7CistCQlwdWJsaWMgaW50IHJhZGl1czsKKy0JCXB1Ymxp YyBpbnQgdG9wX2ZhZGU7CistCQlwdWJsaWMgaW50IHhfb2Zmc2V0OworLQkJcHVibGljIGludCB5 X29mZnNldDsKKy0JCXB1YmxpYyB1aW50OCBvcGFjaXR5OworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTdHJ1dCB7CistCQlwdWJsaWMgTWV0YS5SZWN0 YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZp eCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2Rp cmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEJhcnJpZXJE aXJlY3Rpb24geworLQkJUE9TSVRJVkVfWCwKKy0JCVBPU0lUSVZFX1ksCistCQlORUdBVElWRV9Y LAorLQkJTkVHQVRJVkVfWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNU SU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gQnV0dG9uRnVuY3Rpb24geworLQkJTUVOVSwKKy0JCU1JTklNSVpFLAorLQkJ TUFYSU1JWkUsCistCQlDTE9TRSwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRB X0NMT1NFX0RJQUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX3Jl c3BvbnNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIENsb3NlRGlhbG9nUmVzcG9uc2Ug eworLQkJV0FJVCwKKy0JCUZPUkNFX0NMT1NFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9D T01QX0VGRkVDVF8iLCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gQ29tcEVmZmVjdCB7CistCQlDUkVBVEUsCistCQlVTk1JTklNSVpFLAor LQkJREVTVFJPWSwKKy0JCU1JTklNSVpFLAorLQkJTk9ORQorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0g Ik1FVEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gQ3Vyc29yIHsKKy0JCU5PTkUsCistCQlERUZBVUxULAorLQkJTk9SVEhfUkVT SVpFLAorLQkJU09VVEhfUkVTSVpFLAorLQkJV0VTVF9SRVNJWkUsCistCQlFQVNUX1JFU0laRSwK Ky0JCVNFX1JFU0laRSwKKy0JCVNXX1JFU0laRSwKKy0JCU5FX1JFU0laRSwKKy0JCU5XX1JFU0la RSwKKy0JCU1PVkVfT1JfUkVTSVpFX1dJTkRPVywKKy0JCUJVU1ksCistCQlETkRfSU5fRFJBRywK Ky0JCURORF9NT1ZFLAorLQkJRE5EX0NPUFksCistCQlETkRfVU5TVVBQT1JURURfVEFSR0VULAor LQkJUE9JTlRJTkdfSEFORCwKKy0JCUNST1NTSEFJUiwKKy0JCUlCRUFNLAorLQkJTEFTVAorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9ICJtZXRhX2RlYnVnX3Rv cGljX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRGVidWdUb3BpYyB7 CistCQlWRVJCT1NFLAorLQkJRk9DVVMsCistCQlXT1JLQVJFQSwKKy0JCVNUQUNLLAorLQkJVEhF TUVTLAorLQkJU00sCistCQlFVkVOVFMsCistCQlXSU5ET1dfU1RBVEUsCistCQlXSU5ET1dfT1BT LAorLQkJR0VPTUVUUlksCistCQlQTEFDRU1FTlQsCistCQlQSU5HLAorLQkJWElORVJBTUEsCist CQlLRVlCSU5ESU5HUywKKy0JCVNZTkMsCistCQlFUlJPUlMsCistCQlTVEFSVFVQLAorLQkJUFJF RlMsCistCQlHUk9VUFMsCistCQlSRVNJWklORywKKy0JCVNIQVBFUywKKy0JCUNPTVBPU0lUT1Is CistCQlFREdFX1JFU0lTVEFOQ0UsCistCQlEQlVTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVU QV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQor LQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIERpcmVjdGlvbiB7CistCQlMRUZULAorLQkJUklHSFQs CistCQlUT1AsCistCQlCT1RUT00sCistCQlVUCwKKy0JCURPV04sCistCQlIT1JJWk9OVEFMLAor LQkJVkVSVElDQUwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9p ZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIERp c3BsYXlDb3JuZXIgeworLQkJVE9QTEVGVCwKKy0JCVRPUFJJR0hULAorLQkJQk9UVE9NTEVGVCwK Ky0JCUJPVFRPTVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZXyIsIHR5 cGVfaWQgPSAibWV0YV9kaXNwbGF5X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg ZW51bSBEaXNwbGF5RGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUxFRlQsCistCQlS SUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRURHRV8iLCB0eXBlX2lkID0gIm1ldGFf ZWRnZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEVkZ2VUeXBlIHsKKy0JCVdJ TkRPVywKKy0JCU1PTklUT1IsCistCQlTQ1JFRU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRB X0VYSVRfIiwgdHlwZV9pZCA9ICJtZXRhX2V4aXRfY29kZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgZW51bSBFeGl0Q29kZSB7CistCQlTVUNDRVNTLAorLQkJRVJST1IKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3By ZWZpeCA9ICJNRVRBX0ZSQU1FXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV9mbGFnc19nZXRfdHlw ZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEZyYW1lRmxhZ3MgeworLQkJQUxMT1dT X0RFTEVURSwKKy0JCUFMTE9XU19NRU5VLAorLQkJQUxMT1dTX01JTklNSVpFLAorLQkJQUxMT1dT X01BWElNSVpFLAorLQkJQUxMT1dTX1ZFUlRJQ0FMX1JFU0laRSwKKy0JCUFMTE9XU19IT1JJWk9O VEFMX1JFU0laRSwKKy0JCUhBU19GT0NVUywKKy0JCVNIQURFRCwKKy0JCVNUVUNLLAorLQkJTUFY SU1JWkVELAorLQkJQUxMT1dTX1NIQURFLAorLQkJQUxMT1dTX01PVkUsCistCQlGVUxMU0NSRUVO LAorLQkJSVNfRkxBU0hJTkcsCistCQlBQk9WRSwKKy0JCVRJTEVEX0xFRlQsCistCQlUSUxFRF9S SUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfVFlQRV8iLCB0eXBlX2lkID0g Im1ldGFfZnJhbWVfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBGcmFtZVR5cGUg eworLQkJTk9STUFMLAorLQkJRElBTE9HLAorLQkJTU9EQUxfRElBTE9HLAorLQkJVVRJTElUWSwK Ky0JCU1FTlUsCistCQlCT1JERVIsCistCQlBVFRBQ0hFRCwKKy0JCUxBU1Q7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFf R1JBQl9PUF8iLCB0eXBlX2lkID0gIm1ldGFfZ3JhYl9vcF9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgZW51bSBHcmFiT3AgeworLQkJTk9ORSwKKy0JCVdJTkRPV19CQVNFLAorLQkJQ09NUE9TSVRP UiwKKy0JCVdBWUxBTkRfUE9QVVAsCistCQlGUkFNRV9CVVRUT04sCistCQlNT1ZJTkcsCistCQlS RVNJWklOR19OVywKKy0JCVJFU0laSU5HX04sCistCQlSRVNJWklOR19ORSwKKy0JCVJFU0laSU5H X0UsCistCQlSRVNJWklOR19TVywKKy0JCVJFU0laSU5HX1MsCistCQlSRVNJWklOR19TRSwKKy0J CVJFU0laSU5HX1csCistCQlLRVlCT0FSRF9NT1ZJTkcsCistCQlLRVlCT0FSRF9SRVNJWklOR19V TktOT1dOLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTlcsCistCQlLRVlCT0FSRF9SRVNJWklOR19O LAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTkUsCistCQlLRVlCT0FSRF9SRVNJWklOR19FLAorLQkJ S0VZQk9BUkRfUkVTSVpJTkdfU1csCistCQlLRVlCT0FSRF9SRVNJWklOR19TLAorLQkJS0VZQk9B UkRfUkVTSVpJTkdfU0UsCistCQlLRVlCT0FSRF9SRVNJWklOR19XCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVm aXggPSAiTUVUQV9JTkhJQklUX1NIT1JUQ1VUU19ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9pZCA9 ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgZW51bSBJbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2UgeworLQkJQUxMT1cs CistCQlERU5ZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5ESU5HX0FDVElPTl8i LCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIEtleUJpbmRpbmdBY3Rpb24geworLQkJTk9ORSwKKy0JCVdPUktTUEFDRV8xLAor LQkJV09SS1NQQUNFXzIsCistCQlXT1JLU1BBQ0VfMywKKy0JCVdPUktTUEFDRV80LAorLQkJV09S S1NQQUNFXzUsCistCQlXT1JLU1BBQ0VfNiwKKy0JCVdPUktTUEFDRV83LAorLQkJV09SS1NQQUNF XzgsCistCQlXT1JLU1BBQ0VfOSwKKy0JCVdPUktTUEFDRV8xMCwKKy0JCVdPUktTUEFDRV8xMSwK Ky0JCVdPUktTUEFDRV8xMiwKKy0JCVdPUktTUEFDRV9MRUZULAorLQkJV09SS1NQQUNFX1JJR0hU LAorLQkJV09SS1NQQUNFX1VQLAorLQkJV09SS1NQQUNFX0RPV04sCistCQlXT1JLU1BBQ0VfTEFT VCwKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlMsCistCQlTV0lUQ0hfQVBQTElDQVRJT05TX0JBQ0tX QVJELAorLQkJU1dJVENIX0dST1VQLAorLQkJU1dJVENIX0dST1VQX0JBQ0tXQVJELAorLQkJU1dJ VENIX1dJTkRPV1MsCistCQlTV0lUQ0hfV0lORE9XU19CQUNLV0FSRCwKKy0JCVNXSVRDSF9QQU5F TFMsCistCQlTV0lUQ0hfUEFORUxTX0JBQ0tXQVJELAorLQkJQ1lDTEVfR1JPVVAsCistCQlDWUNM RV9HUk9VUF9CQUNLV0FSRCwKKy0JCUNZQ0xFX1dJTkRPV1MsCistCQlDWUNMRV9XSU5ET1dTX0JB Q0tXQVJELAorLQkJQ1lDTEVfUEFORUxTLAorLQkJQ1lDTEVfUEFORUxTX0JBQ0tXQVJELAorLQkJ U0hPV19ERVNLVE9QLAorLQkJUEFORUxfTUFJTl9NRU5VLAorLQkJUEFORUxfUlVOX0RJQUxPRywK Ky0JCVRPR0dMRV9SRUNPUkRJTkcsCistCQlTRVRfU1BFV19NQVJLLAorLQkJQUNUSVZBVEVfV0lO RE9XX01FTlUsCistCQlUT0dHTEVfRlVMTFNDUkVFTiwKKy0JCVRPR0dMRV9NQVhJTUlaRUQsCist CQlUT0dHTEVfVElMRURfTEVGVCwKKy0JCVRPR0dMRV9USUxFRF9SSUdIVCwKKy0JCVRPR0dMRV9B Qk9WRSwKKy0JCU1BWElNSVpFLAorLQkJVU5NQVhJTUlaRSwKKy0JCVRPR0dMRV9TSEFERUQsCist CQlNSU5JTUlaRSwKKy0JCUNMT1NFLAorLQkJQkVHSU5fTU9WRSwKKy0JCUJFR0lOX1JFU0laRSwK Ky0JCVRPR0dMRV9PTl9BTExfV09SS1NQQUNFUywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEsCist CQlNT1ZFX1RPX1dPUktTUEFDRV8yLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMywKKy0JCU1PVkVf VE9fV09SS1NQQUNFXzQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV81LAorLQkJTU9WRV9UT19XT1JL U1BBQ0VfNiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzcsCistCQlNT1ZFX1RPX1dPUktTUEFDRV84 LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEwLAorLQkJ TU9WRV9UT19XT1JLU1BBQ0VfMTEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMiwKKy0JCU1PVkVf VE9fV09SS1NQQUNFX0xFRlQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9SSUdIVCwKKy0JCU1PVkVf VE9fV09SS1NQQUNFX1VQLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfRE9XTiwKKy0JCU1PVkVfVE9f V09SS1NQQUNFX0xBU1QsCistCQlNT1ZFX1RPX01PTklUT1JfTEVGVCwKKy0JCU1PVkVfVE9fTU9O SVRPUl9SSUdIVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9VUCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9E T1dOLAorLQkJUkFJU0VfT1JfTE9XRVIsCistCQlSQUlTRSwKKy0JCUxPV0VSLAorLQkJTUFYSU1J WkVfVkVSVElDQUxMWSwKKy0JCU1BWElNSVpFX0hPUklaT05UQUxMWSwKKy0JCU1PVkVfVE9fQ09S TkVSX05XLAorLQkJTU9WRV9UT19DT1JORVJfTkUsCistCQlNT1ZFX1RPX0NPUk5FUl9TVywKKy0J CU1PVkVfVE9fQ09STkVSX1NFLAorLQkJTU9WRV9UT19TSURFX04sCistCQlNT1ZFX1RPX1NJREVf UywKKy0JCU1PVkVfVE9fU0lERV9FLAorLQkJTU9WRV9UT19TSURFX1csCistCQlNT1ZFX1RPX0NF TlRFUiwKKy0JCU9WRVJMQVlfS0VZLAorLQkJSVNPX05FWFRfR1JPVVAsCistCQlBTFdBWVNfT05f VE9QLAorLQkJU1dJVENIX01PTklUT1IsCistCQlST1RBVEVfTU9OSVRPUiwKKy0JCUxBU1QKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9r ZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVt IEtleUJpbmRpbmdGbGFncyB7CistCQlOT05FLAorLQkJUEVSX1dJTkRPVywKKy0JCUJVSUxUSU4s CistCQlJU19SRVZFUlNFRCwKKy0JCU5PTl9NQVNLQUJMRSwKKy0JCUlHTk9SRV9BVVRPUkVQRUFU CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0eXBlX2lkID0gIm1ldGFfbGF0 ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMYXRlclR5cGUgeworLQkJUkVT SVpFLAorLQkJQ0FMQ19TSE9XSU5HLAorLQkJQ0hFQ0tfRlVMTFNDUkVFTiwKKy0JCVNZTkNfU1RB Q0ssCistCQlCRUZPUkVfUkVEUkFXLAorLQkJSURMRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1F VEFfTE9DQUxFX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbG9jYWxlX2RpcmVjdGlvbl9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMb2NhbGVEaXJlY3Rpb24geworLQkJTFRSLAor LQkJUlRMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0g Im1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMg ZW51bSBNYXhpbWl6ZUZsYWdzIHsKKy0JCUhPUklaT05UQUwsCistCQlWRVJUSUNBTCwKKy0JCUJP VEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9t b2RhbF9vcHRpb25zX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gTW9k YWxPcHRpb25zIHsKKy0JCVBPSU5URVJfQUxSRUFEWV9HUkFCQkVELAorLQkJS0VZQk9BUkRfQUxS RUFEWV9HUkFCQkVECistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NT05JVE9SX1NXSVRDSF9D T05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jfc3dpdGNoX2NvbmZpZ190eXBlX2dldF90 eXBlICgpIildCistCXB1YmxpYyBlbnVtIE1vbml0b3JTd2l0Y2hDb25maWdUeXBlIHsKKy0JCUFM TF9NSVJST1IsCistCQlBTExfTElORUFSLAorLQkJRVhURVJOQUwsCistCQlCVUlMVElOLAorLQkJ VU5LTk9XTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9OXyIsIHR5cGVfaWQgPSAi bWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIE1vdGlv bkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURPV04sCistCQlMRUZULAorLQkJUklHSFQsCistCQlV UF9MRUZULAorLQkJVVBfUklHSFQsCistCQlET1dOX0xFRlQsCistCQlET1dOX1JJR0hUCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIsIGNwcmVmaXggPSAiTUVUQV9QQURfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9wYWRf YWN0aW9uX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gUGFkQWN0aW9uVHlwZSB7 CistCQlCVVRUT04sCistCQlSSU5HLAorLQkJU1RSSVAKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJN RVRBX1BSRUZfIiwgdHlwZV9pZCA9ICJtZXRhX3ByZWZlcmVuY2VfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gUHJlZmVyZW5jZSB7CistCQlNT1VTRV9CVVRUT05fTU9EUywKKy0JCUZPQ1VT X01PREUsCistCQlGT0NVU19ORVdfV0lORE9XUywKKy0JCUFUVEFDSF9NT0RBTF9ESUFMT0dTLAor LQkJUkFJU0VfT05fQ0xJQ0ssCistCQlBQ1RJT05fRE9VQkxFX0NMSUNLX1RJVExFQkFSLAorLQkJ QUNUSU9OX01JRERMRV9DTElDS19USVRMRUJBUiwKKy0JCUFDVElPTl9SSUdIVF9DTElDS19USVRM RUJBUiwKKy0JCUFVVE9fUkFJU0UsCistCQlBVVRPX1JBSVNFX0RFTEFZLAorLQkJRk9DVVNfQ0hB TkdFX09OX1BPSU5URVJfUkVTVCwKKy0JCVRJVExFQkFSX0ZPTlQsCistCQlOVU1fV09SS1NQQUNF UywKKy0JCURZTkFNSUNfV09SS1NQQUNFUywKKy0JCUtFWUJJTkRJTkdTLAorLQkJRElTQUJMRV9X T1JLQVJPVU5EUywKKy0JCUJVVFRPTl9MQVlPVVQsCistCQlXT1JLU1BBQ0VfTkFNRVMsCistCQlW SVNVQUxfQkVMTCwKKy0JCUFVRElCTEVfQkVMTCwKKy0JCVZJU1VBTF9CRUxMX1RZUEUsCistCQlH Tk9NRV9BQ0NFU1NJQklMSVRZLAorLQkJR05PTUVfQU5JTUFUSU9OUywKKy0JCUNVUlNPUl9USEVN RSwKKy0JCUNVUlNPUl9TSVpFLAorLQkJUkVTSVpFX1dJVEhfUklHSFRfQlVUVE9OLAorLQkJRURH RV9USUxJTkcsCistCQlGT1JDRV9GVUxMU0NSRUVOLAorLQkJV09SS1NQQUNFU19PTkxZX09OX1BS SU1BUlksCistCQlEUkFHR0FCTEVfQk9SREVSX1dJRFRILAorLQkJQVVUT19NQVhJTUlaRSwKKy0J CUNFTlRFUl9ORVdfV0lORE9XUywKKy0JCURSQUdfVEhSRVNIT0xEOworLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1NIQURP V19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9kZV9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgZW51bSBTaGFkb3dNb2RlIHsKKy0JCUFVVE8sCistCQlGT1JDRURfT0ZGLAorLQkJRk9S Q0VEX09OCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9TSURFXyIsIHR5cGVfaWQgPSAibWV0 YV9zaWRlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpZGUgeworLQkJTEVGVCwKKy0J CVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9NCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9T SVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gU2l6ZUNoYW5nZSB7CistCQlNQVhJTUlaRSwKKy0JCVVOTUFYSU1JWkUs CistCQlGVUxMU0NSRUVOLAorLQkJVU5GVUxMU0NSRUVOCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAi TUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFfc3RhY2tfbGF5ZXJfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gU3RhY2tMYXllciB7CistCQlERVNLVE9QLAorLQkJQk9UVE9NLAorLQkJ Tk9STUFMLAorLQkJVE9QLAorLQkJRE9DSywKKy0JCU9WRVJSSURFX1JFRElSRUNULAorLQkJTEFT VAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlwZV9pZCA9ICJtZXRh X3RhYl9saXN0X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYkxpc3QgeworLQkJTk9S TUFMLAorLQkJRE9DS1MsCistCQlHUk9VUCwKKy0JCU5PUk1BTF9BTEwKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3By ZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hvd190eXBlX2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKy0JCUlDT04sCistCQlJ TlNUQU5UTFkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9pZCA9 ICJtZXRhX3ZpcnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJs aWMgZW51bSBWaXJ0dWFsTW9kaWZpZXIgeworLQkJU0hJRlRfTUFTSywKKy0JCUNPTlRST0xfTUFT SywKKy0JCUFMVF9NQVNLLAorLQkJTUVUQV9NQVNLLAorLQkJU1VQRVJfTUFTSywKKy0JCUhZUEVS X01BU0ssCistCQlNT0QyX01BU0ssCistCQlNT0QzX01BU0ssCistCQlNT0Q0X01BU0ssCistCQlN T0Q1X01BU0sKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19DTElFTlRfVFlQRV8i LCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2NsaWVudF90eXBlX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIFdpbmRvd0NsaWVudFR5cGUgeworLQkJV0FZTEFORCwKKy0JCVgxMQorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRv d19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93TWVudVR5cGUg eworLQkJV00sCistCQlBUFAKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV18iLCB0 eXBlX2lkID0gIm1ldGFfd2luZG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0g V2luZG93VHlwZSB7CistCQlOT1JNQUwsCistCQlERVNLVE9QLAorLQkJRE9DSywKKy0JCURJQUxP RywKKy0JCU1PREFMX0RJQUxPRywKKy0JCVRPT0xCQVIsCistCQlNRU5VLAorLQkJVVRJTElUWSwK Ky0JCVNQTEFTSFNDUkVFTiwKKy0JCURST1BET1dOX01FTlUsCistCQlQT1BVUF9NRU5VLAorLQkJ VE9PTFRJUCwKKy0JCU5PVElGSUNBVElPTiwKKy0JCUNPTUJPLAorLQkJRE5ELAorLQkJT1ZFUlJJ REVfT1RIRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JcHVibGljIGRlbGVn YXRlIHZvaWQgSWRsZU1vbml0b3JXYXRjaEZ1bmMgKE1ldGEuSWRsZU1vbml0b3IgbW9uaXRvciwg dWludCB3YXRjaF9pZCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBpbnN0YW5jZV9wb3MgPSA0LjkpXQorLQlwdWJsaWMgZGVs ZWdhdGUgdm9pZCBLZXlIYW5kbGVyRnVuYyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIE1ldGEuV2lu ZG93IHdpbmRvdywgW0NDb2RlICh0eXBlID0gIkNsdXR0ZXJLZXlFdmVudCoiKV0gQ2x1dHRlci5L ZXlFdmVudD8gZXZlbnQsIE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3RhbmNl X3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFByZWZzQ2hhbmdlZEZ1bmMgKE1l dGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1Ymxp YyBkZWxlZ2F0ZSBib29sIFdpbmRvd0ZvcmVhY2hGdW5jIChNZXRhLldpbmRvdyB3aW5kb3cpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgY25hbWUgPSAiTUVUQV9DVVJSRU5UX1RJTUUiKV0KKy0JcHVibGljIGNvbnN0IGludCBD VVJSRU5UX1RJTUU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0RFRkFVTFRfSUNPTl9OQU1FIildCist CXB1YmxpYyBjb25zdCBzdHJpbmcgREVGQVVMVF9JQ09OX05BTUU7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJN RVRBX0lDT05fSEVJR0hUIildCistCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9IRUlHSFQ7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjbmFtZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNvbnN0IGludCBJQ09OX1dJ RFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NQUpPUl9WRVJTSU9OIildCistCXB1YmxpYyBjb25z dCBpbnQgTUFKT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIp XQorLQlwdWJsaWMgY29uc3QgaW50IE1JQ1JPX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRB X01JTklfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fSEVJR0hU OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNvbnN0 IGludCBNSU5JX0lDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJT04i KV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5PUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVU QV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBQTFVHSU5fQVBJX1ZF UlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX0JFRk9SRV9SRURSQVciKV0KKy0J cHVibGljIGNvbnN0IGludCBQUklPUklUWV9CRUZPUkVfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAi TUVUQV9QUklPUklUWV9QUkVGU19OT1RJRlkiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklU WV9QUkVGU19OT1RJRlk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFRFJBVyIpXQor LQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFf UFJJT1JJVFlfUkVTSVpFIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVTSVpFOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0KKy0JcHVibGlj IGNvbnN0IGludCBWSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRB X1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCistCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9D T1JFX1BPSU5URVJfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGFjdGl2YXRlX3Nl c3Npb24gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGV4aXQgKE1ldGEuRXhpdENv ZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuT3B0aW9uQ29u dGV4dCBnZXRfb3B0aW9uX2NvbnRleHQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29s IGdldF9yZXBsYWNlX2N1cnJlbnRfd20gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IGluaXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGlzX3Jlc3RhcnQgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHF1aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhfc2Vzc2lvbiAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5nPyBtZXNzYWdlKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIpXQorLQlwdWJsaWMgc3RhdGljIGludCBydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHNldF9nbm9tZV93bV9rZXliaW5kaW5ncyAoc3RyaW5nIHdtX2tleWJpbmRpbmdzKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3dtX25hbWUgKHN0cmluZyB3bV9uYW1l KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgeDExX2luaXRfZ2RrX2Rpc3BsYXkgKCkg dGhyb3dzIEdMaWIuRXJyb3I7CistfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci01LmRlcHMg dmFwaS9saWJtdXR0ZXItNi5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDUwJQorcmVuYW1lIGZyb20g dmFwaS9saWJtdXR0ZXItNS5kZXBzCityZW5hbWUgdG8gdmFwaS9saWJtdXR0ZXItNi5kZXBzCitp bmRleCA0OGFhNzU2My4uMjIzNTI1ZTQgMTAwNjQ0CistLS0gdmFwaS9saWJtdXR0ZXItNS5kZXBz CisrKysgdmFwaS9saWJtdXR0ZXItNi5kZXBzCitAQCAtMSw1ICsxLDYgQEAKKyBndGsrLTMuMAor IGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY2x1dHRlci01CisrbXV0dGVyLWNsdXR0ZXItNgorIHgx MQorIHhmaXhlcy00LjAKKytncmFwaGVuZS1nb2JqZWN0LTEuMAorZGlmZiAtLWdpdCB2YXBpL2xp Ym11dHRlci01LnZhcGkgdmFwaS9saWJtdXR0ZXItNi52YXBpCitzaW1pbGFyaXR5IGluZGV4IDk3 JQorcmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItNS52YXBpCityZW5hbWUgdG8gdmFwaS9saWJt dXR0ZXItNi52YXBpCitpbmRleCBiOTVhMjhlNi4uYjM2YmUxYjcgMTAwNjQ0CistLS0gdmFwaS9s aWJtdXR0ZXItNS52YXBpCisrKysgdmFwaS9saWJtdXR0ZXItNi52YXBpCitAQCAtMSwxMiArMSwx MCBAQAorLS8qIGxpYm11dHRlci01LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBt b2RpZnkuICovCisrLyogbGlibXV0dGVyLTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8g bm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3Bh Y2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0 YV8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIs IGdpcl92ZXJzaW9uID0gIjYiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKyBuYW1l c3BhY2UgTWV0YSB7CisgCW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKyAJCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2Rp c2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIGRp c2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNu YW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7Cisg CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwg Y25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGlj IHN0YXRpYyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkg ZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9y LW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KK0BAIC0yMSw4 ICsxOSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGli Lkxpc3Q8Q2x1dHRlci5BY3Rvcj4gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEuRGlzcGxheSBkaXNw bGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0KKyAJ CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93aW5kb3dfZ3JvdXBfZm9y X2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9zdGFn ZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRf cmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7Cisg CX0KKyAJbmFtZXNwYWNlIFByZWZzIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2JlbGxfaXNfYXVkaWJsZSIpXQorQEAg LTE2NCw3ICsxNjAsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdm9pZCBzZXRfbnVt bG9jayAoYm9vbCBudW1sb2NrX3N0YXRlKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBf Y2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfbGF5b3V0X2dyb3VwX2No YW5nZWQgKHVpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9j aGFuZ2VkIChpbnQgb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9j aGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgbGlkX2lzX2Nsb3NlZF9jaGFuZ2VkIChib29sIG9iamVjdCk7CisgCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiLCB0eXBlX2lkID0gIm1l dGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorQEAgLTE3NCw3ICsxNzAsNyBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwgKCk7CisgCQlwdWJs aWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxlIGZpbGUyLCBkb3Vi bGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworIAkJcHVi bGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxl KTsKKysJCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGU/IGZpbGUsIEdEZXNrdG9wLkJh Y2tncm91bmRTdHlsZSBzdHlsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKEdEZXNr dG9wLkJhY2tncm91bmRTaGFkaW5nIHNoYWRpbmdfZGlyZWN0aW9uLCBDbHV0dGVyLkNvbG9yIGNv bG9yLCBDbHV0dGVyLkNvbG9yIHNlY29uZF9jb2xvcik7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0K KyAJCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1 Y3Q7IH0KK0BAIC0yNzUsNyArMjcxLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVu b3duZWQgQ29nbC5UZXh0dXJlIGdldF9zcHJpdGUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfcG9p bnRlcl92aXNpYmxlIChib29sIHZpc2libGUpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNv cl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9tb3ZlZCAoZmxvYXQg b2JqZWN0LCBmbG9hdCBwMCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX21vdmVkIChm bG9hdCB4LCBmbG9hdCB5KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB2aXNpYmlsaXR5X2NoYW5n ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5o IiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0KK0BAIC0zMjcsNiArMzIz LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGJvb2wgeHNlcnZlcl90aW1lX2lzX2Jl Zm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIpOworIAkJcHVibGljIE1ldGEuV2luZG93 IGZvY3VzX3dpbmRvdyB7IGdldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9y X2FjdGl2YXRlZCAodWludCBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2UgcDAsIHVpbnQgcDEp OworKwkJcHVibGljIHNpZ25hbCB2b2lkIGNsb3NpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgY3Vyc29yX3VwZGF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ2xfdmlkZW9fbWVt b3J5X3B1cmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRh LkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworQEAgLTM1 MCw2ICszNDcsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29y a2FyZWFzX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfY2xv c2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9vcGVuZWQgKCk7Cisr CQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfc2V0dXAgKCk7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1kbmQuaCIsIHR5cGVfaWQgPSAibWV0YV9k bmRfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIERuZCA6IEdMaWIuT2JqZWN0IHsKK0BA IC0zNzAsMTEgKzM2OCwxMCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdWludCBhZGRf aWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93bmVkIE1ldGEuSWRsZU1vbml0b3JX YXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyB1aW50IGFkZF91c2VyX2FjdGl2ZV93YXRj aCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworIAkJcHVibGlj IHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUgKCk7CistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9yX2RldmljZSAoaW50IGRldmlj ZV9pZCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgpOworIAkJcHVibGljIHZvaWQg cmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIENsdXR0ZXIuSW5w dXREZXZpY2UgZGV2aWNlIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94 ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRh X2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCisgCVtDb21wYWN0XQorQEAgLTUzNiwxNSArNTMz LDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICgp OworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFwZWRfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1l bnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3Jp cHRhYmxlIHsKKysJcHVibGljIGNsYXNzIFNoYXBlZFRleHR1cmUgOiBHTGliLk9iamVjdCwgQ2x1 dHRlci5Db250ZW50IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKyAJCXByb3RlY3RlZCBTaGFwZWRUZXh0dXJlICgpOworLQkJcHVibGljIENhaXJvLlN1cmZh Y2UgZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQgY2xpcCk7CisrCQlwdWJsaWMgQ2Fpcm8u U3VyZmFjZT8gZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOworIAkJcHVibGlj IHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJlICgpOworIAkJcHVibGljIHZvaWQgc2V0 X2NyZWF0ZV9taXBtYXBzIChib29sIGNyZWF0ZV9taXBtYXBzKTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9tYXNrX3RleHR1cmUgKENvZ2wuVGV4dHVyZSBtYXNrX3RleHR1cmUpOworIAkJcHVibGljIHZv aWQgc2V0X29wYXF1ZV9yZWdpb24gKG93bmVkIENhaXJvLlJlZ2lvbiBvcGFxdWVfcmVnaW9uKTsK Ky0JCXB1YmxpYyBib29sIHVwZGF0ZV9hcmVhIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50 IGhlaWdodCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc291bmQtcGxheWVyLmgiLCB0 eXBlX2lkID0gIm1ldGFfc291bmRfcGxheWVyX2dldF90eXBlICgpIildCitAQCAtNzU2LDE3ICs3 NTIsMTYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93 QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJs ZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgV2luZG93QWN0b3Ig KCk7CisrCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZT8gZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJ bnQ/IGNsaXApOworIAkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X21ldGFfd2luZG93 ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfdGV4dHVyZSAoKTsKKysJ CXB1YmxpYyB1bm93bmVkIE1ldGEuU2hhcGVkVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKyAJCXB1 YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsKKyAJCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0 eSAoKTsKKyAJCXB1YmxpYyBNZXRhLldpbmRvdyBtZXRhX3dpbmRvdyB7IGdldDsgY29uc3RydWN0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNz IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1l dGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgc2lnbmFs IHZvaWQgZGFtYWdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBlZmZlY3RzX2NvbXBsZXRl ZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsKKysJCXB1YmxpYyBz aWduYWwgdm9pZCB0aGF3ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ3JvdXBf Z2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFdpbmRvd0dyb3VwIDogQ2x1dHRlci5BY3Rv ciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVy LCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTgxMyw3ICs4MDgsNyBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0aXZlX3dvcmtzcGFj ZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5kZXggKCk7CisgCQlw dWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldv cmtzcGFjZSBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworKwkJcHVibGljIHVu b3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7 CisgCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRhLkRpc3BsYXlD b3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwgaW50IG5fcm93cywg aW50IG5fY29sdW1ucyk7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3NwYWNlIChNZXRhLldv cmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGljIHZvaWQgcmVv cmRlcl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgaW50IG5ld19pbmRleCk7 CitAQCAtODMzLDExICs4MjgsMTMgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgY2xhc3Mg WDExRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBYMTFEaXNwbGF5ICgpOworKwkJcHVibGljIHZv aWQgY2xlYXJfc3RhZ2VfaW5wdXRfcmVnaW9uICgpOworIAkJcHVibGljIGludCBnZXRfZGFtYWdl X2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworIAkJ cHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKyAJCXB1YmxpYyBib29sIGhhc19z aGFwZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7CisrCQlwdWJsaWMg dm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKyAJ CXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFguV2luZG93IHh3aW5k b3cpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFDbG9zZURpYWxvZ0ludGVyZmFjZSIsIHR5cGVf aWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5cGUgKCkiKV0KK0BAIC04OTksNyArODk2LDcg QEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9taWNybzsKKyAJCXB1 YmxpYyB1aW50IHZlcnNpb25fYXBpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlv biA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVf aWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0cnVjdCBSZWN0 YW5nbGUgeworIAkJcHVibGljIGludCB4OworIAkJcHVibGljIGludCB5OworQEAgLTE0NDMsNiAr MTQ0MCw4IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBhY3RpdmF0ZV9zZXNzaW9uICgp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGlj IHN0YXRpYyB2b2lkIGFkZF9jbHV0dGVyX2RlYnVnX2ZsYWdzIChDbHV0dGVyLkRlYnVnRmxhZyBk ZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVidWdGbGFnIGRyYXdfZmxhZ3MsIENsdXR0ZXIuUGlj a0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBleGl0IChNZXRhLkV4aXRDb2RlIGNv ZGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVi bGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNpemVfdCBuKTsK K0BAIC0xNDU5LDYgKzE0NTgsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0 ZXJfd2l0aF9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9jbHV0dGVyX2RlYnVnX2ZsYWdz IChDbHV0dGVyLkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVidWdGbGFnIGRy YXdfZmxhZ3MsIENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBy ZXN0YXJ0IChzdHJpbmc/IG1lc3NhZ2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBpbnQgcnVuICgpOworQEAgLTE0NjcsNSAr MTQ2OCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21fbmFtZSAoc3RyaW5n IHdtX25hbWUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K KysJcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoKTsKKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCB4MTFfaW5pdF9n ZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvbGli bXV0dGVyLTctY3VzdG9tLnZhbGEgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYQorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4xZTBiOTE3YworLS0tIC9kZXYvbnVsbAor KysrIHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZhbGEKK0BAIC0wLDAgKzEsNyBAQAorK1tDQ29k ZSAoaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBiZWZvcmVfZnJhbWUgewor K30KKysKKytbQ0NvZGUgKGhhc190eXBlX2lkID0gZmFsc2UpXQorK3B1YmxpYyBzdHJ1Y3QgZnJh bWUgeworK30KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNy5kZXBzIHZhcGkvbGlibXV0dGVy LTcuZGVwcworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4yZWY5MTllZQor LS0tIC9kZXYvbnVsbAorKysrIHZhcGkvbGlibXV0dGVyLTcuZGVwcworQEAgLTAsMCArMSw2IEBA CisrZ3RrKy0zLjAKKytqc29uLWdsaWItMS4wCisrbXV0dGVyLWNsdXR0ZXItNworK3gxMQorK3hm aXhlcy00LjAKKytncmFwaGVuZS1nb2JqZWN0LTEuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRl ci0zLnZhcGkgdmFwaS9saWJtdXR0ZXItNy52YXBpCitzaW1pbGFyaXR5IGluZGV4IDc1JQorcmVu YW1lIGZyb20gdmFwaS9saWJtdXR0ZXItMy52YXBpCityZW5hbWUgdG8gdmFwaS9saWJtdXR0ZXIt Ny52YXBpCitpbmRleCAxNzE1YWE4Zi4uOTBjNDE1OTAgMTAwNjQ0CistLS0gdmFwaS9saWJtdXR0 ZXItMy52YXBpCisrKysgdmFwaS9saWJtdXR0ZXItNy52YXBpCitAQCAtMSwxMiArMSwxMCBAQAor LS8qIGxpYm11dHRlci0zLnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnku ICovCisrLyogbGlibXV0dGVyLTcudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1v ZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAi TWV0YSIsIGdpcl92ZXJzaW9uID0gIjMiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0K KytbQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92 ZXJzaW9uID0gIjciLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKyBuYW1lc3BhY2Ug TWV0YSB7CisgCW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2FibGVf dW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVf dW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0g Im1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQg ZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUg PSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRp YyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxh eSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KK0BAIC0yMSw4ICsxOSw2 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLkxpc3Q8 Q2x1dHRlci5BY3Rvcj4gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsK KyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgi LCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0KKyAJCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3Bs YXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9zdGFnZV9pbnB1 dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9u IChNZXRhLkRpc3BsYXkgZGlzcGxheSwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7CisgCX0KKyAJ bmFtZXNwYWNlIFByZWZzIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2JlbGxfaXNfYXVkaWJsZSIpXQorQEAgLTQ3LDYg KzQzLDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyBNZXRhLkJ1dHRvbkxh eW91dCBwcmVmc19nZXRfYnV0dG9uX2xheW91dCAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jZW50ZXJfbmV3 X3dpbmRvd3MiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfY2VudGVyX25ld193 aW5kb3dzICgpOworKwkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NoZWNrX2FsaXZlX3RpbWVvdXQiKV0KKysJCXB1Ymxp YyBzdGF0aWMgdWludCBwcmVmc19nZXRfY2hlY2tfYWxpdmVfdGltZW91dCAoKTsKKyAJCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9jb21wb3NpdGluZ19tYW5hZ2VyIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNf Z2V0X2NvbXBvc2l0aW5nX21hbmFnZXIgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY3Vyc29yX3NpemUiKV0K K0BAIC03NSw4ICs3Myw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgYm9v bCBwcmVmc19nZXRfZ25vbWVfYWNjZXNzaWJpbGl0eSAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9nbm9tZV9h bmltYXRpb25zIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2dub21lX2FuaW1h dGlvbnMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y25hbWUgPSAibWV0YV9wcmVmc19nZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciIpXQor LQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxl YmFyICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X2tleWJpbmRpbmdfYWN0aW9uIildCisgCQlwdWJsaWMgc3Rh dGljIE1ldGEuS2V5QmluZGluZ0FjdGlvbiBwcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24gKHN0 cmluZyBuYW1lKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi LCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fbWVudSIpXQorQEAgLTEwNSw4 ICsxMDEsNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNf aW5pdCAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX3NldF9mb3JjZV9mdWxsc2NyZWVuIildCisgCQlwdWJsaWMgc3Rh dGljIHZvaWQgcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wgd2hldGhlcik7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9w cmVmc19zZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRp YyB2b2lkIHByZWZzX3NldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyIChib29sIHdoZXRo ZXIpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfc2V0X251bV93b3Jrc3BhY2VzIildCisgCQlwdWJsaWMgc3RhdGljIHZv aWQgcHJlZnNfc2V0X251bV93b3Jrc3BhY2VzIChpbnQgbl93b3Jrc3BhY2VzKTsKKyAJCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X3NldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51IildCitAQCAtMTE3LDEyICsxMTEsMTAgQEAgbmFt ZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIGFkZF92ZXJib3NlX3RvcGljIChN ZXRhLkRlYnVnVG9waWMgdG9waWMpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9leHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlv biIpXQorIAkJcHVibGljIHN0YXRpYyBzdHJpbmcgZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9h Y3Rpb24gKHVpbnQga2V5YmluZGluZ19hY3Rpb24pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nX3V0Zjhfc3RybmR1cCIpXQorLQkJ cHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNpemVfdCBu KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0g Im1ldGFfZ2V0X2xvY2FsZV9kaXJlY3Rpb24iKV0KKyAJCXB1YmxpYyBzdGF0aWMgTWV0YS5Mb2Nh bGVEaXJlY3Rpb24gZ2V0X2xvY2FsZV9kaXJlY3Rpb24gKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dyYXZpdHlfdG9fc3RyaW5n IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9fc3RyaW5nIChp bnQgZ3Jhdml0eSk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9f c3RyaW5nIChNZXRhLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX2RlYnVnZ2luZyIpXQorIAkJcHVi bGljIHN0YXRpYyBib29sIGlzX2RlYnVnZ2luZyAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfc3luY2luZyIpXQorQEAgLTE2 NSwxMiArMTU3LDEzIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEu RG5kIGdldF9kbmQgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLlJlbW90ZUFjY2Vzc0NvbnRy b2xsZXIgZ2V0X3JlbW90ZV9hY2Nlc3NfY29udHJvbGxlciAoKTsKKyAJCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3IgZ2V0X3N0YWdlICgpOworKwkJcHVibGljIGJvb2wgaXNfcmVuZGVyaW5n X2hhcmR3YXJlX2FjY2VsZXJhdGVkICgpOworIAkJcHVibGljIHZvaWQgbG9ja19sYXlvdXRfZ3Jv dXAgKHVpbnQgaWR4KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9rZXltYXAgKHN0cmluZyBsYXlvdXRz LCBzdHJpbmcgdmFyaWFudHMsIHN0cmluZyBvcHRpb25zKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9u dW1sb2NrIChib29sIG51bWxvY2tfc3RhdGUpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1h cF9jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9sYXlvdXRfZ3JvdXBf Y2hhbmdlZCAodWludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2aWNl X2NoYW5nZWQgKGludCBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2aWNl X2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQgKGJvb2wgb2JqZWN0KTsKKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQuaCIsIHR5cGVfaWQgPSAi bWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCitAQCAtMTgwLDcgKzE3Myw3IEBAIG5hbWVz cGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCByZWZyZXNoX2FsbCAoKTsKKyAJCXB1 YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUxLCBHTGliLkZpbGUgZmlsZTIsIGRv dWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisgCQlw dWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJcHVibGljIHZv aWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5 bGUpOworKwkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZT8gZmlsZSwgR0Rlc2t0b3Au QmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rl c2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3Ig Y29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorIAkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0 cnVjdDsgfQorQEAgLTE5MCw5ICsxODMsMTggQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMg Y2xhc3MgQmFja2dyb3VuZEFjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBD bHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlckFjdG9yKiIpXQorIAkJcHVibGljIEJhY2tncm91bmRBY3RvciAoTWV0YS5EaXNwbGF5IGRp c3BsYXksIGludCBtb25pdG9yKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIE1l dGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05v QWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgaW50IG1vbml0b3IgeyBnZXQ7IGNvbnN0cnVjdDsg fQorKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3Vu ZC1jb250ZW50LmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9jb250ZW50X2dldF90eXBl ICgpIildCisrCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQ29udGVudCA6IEdMaWIuT2JqZWN0LCBD bHV0dGVyLkNvbnRlbnQgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorKwkJcHJvdGVjdGVkIEJhY2tncm91bmRDb250ZW50ICgpOworKwkJcHVibGljIHN0YXRp YyBDbHV0dGVyLkNvbnRlbnQgQG5ldyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIGludCBtb25pdG9y KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91bmQgYmFja2dy b3VuZCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKGJvb2wgZW5hYmxlZCwgaW50IGhl aWdodCwgZG91YmxlIHRvbmVfc3RhcnQpOworLQkJcHVibGljIHZvaWQgc2V0X21vbml0b3IgKGlu dCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2b2lkIHNldF92aWduZXR0ZSAoYm9vbCBlbmFibGVkLCBk b3VibGUgYnJpZ2h0bmVzcywgZG91YmxlIHNoYXJwbmVzcyk7CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKyAJCXB1YmxpYyBNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCB7IG93bmVkIGdldDsgc2V0 OyB9CitAQCAtMjc3LDE0ICsyNzksMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0 YXRpYyB1bm93bmVkIE1ldGEuQ3Vyc29yVHJhY2tlciBnZXRfZm9yX2Rpc3BsYXkgKE1ldGEuRGlz cGxheSBkaXNwbGF5KTsKKyAJCXB1YmxpYyB2b2lkIGdldF9ob3QgKG91dCBpbnQgeCwgb3V0IGlu dCB5KTsKKyAJCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyIChpbnQgeCwgaW50IHksIENsdXR0ZXIu TW9kaWZpZXJUeXBlIG1vZHMpOworKwkJcHVibGljIGJvb2wgZ2V0X3BvaW50ZXJfdmlzaWJsZSAo KTsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgpOworIAkJcHVi bGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKysJCVtOb0FjY2Vz c29yTWV0aG9kXQorKwkJcHVibGljIE1ldGEuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBj b25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oIiwgdHlwZV9pZCA9ICJtZXRhX2RidXNfZGlzcGxheV9jb25maWdfc2tlbGV0b25fZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIERCdXNEaXNwbGF5Q29uZmlnU2tlbGV0b24gOiBHTGli LkRCdXNJbnRlcmZhY2VTa2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNlIHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEQnVzRGlzcGxh eUNvbmZpZ1NrZWxldG9uICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9tb3ZlZCAo ZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdmlzaWJpbGl0eV9jaGFu Z2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXku aCIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFz cyBEaXNwbGF5IDogR0xpYi5PYmplY3QgeworQEAgLTMwOSwzMiArMzExLDM5IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCXB1YmxpYyBib29sIGdldF9tb25pdG9yX2luX2Z1bGxzY3JlZW4gKGludCBt b25pdG9yKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfaW5kZXhfZm9yX3JlY3QgKE1ldGEu UmVjdGFuZ2xlIHJlY3QpOworIAkJcHVibGljIGludCBnZXRfbW9uaXRvcl9uZWlnaGJvcl9pbmRl eCAoaW50IHdoaWNoX21vbml0b3IsIE1ldGEuRGlzcGxheURpcmVjdGlvbiBkaXIpOworKwkJcHVi bGljIGZsb2F0IGdldF9tb25pdG9yX3NjYWxlIChpbnQgbW9uaXRvcik7CisgCQlwdWJsaWMgaW50 IGdldF9uX21vbml0b3JzICgpOworIAkJcHVibGljIHN0cmluZyBnZXRfcGFkX2FjdGlvbl9sYWJl bCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIE1ldGEuUGFkQWN0aW9uVHlwZSBhY3Rpb25fdHlw ZSwgdWludCBhY3Rpb25fbnVtYmVyKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3ByaW1hcnlfbW9uaXRv ciAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU2VsZWN0aW9uIGdldF9zZWxlY3Rpb24gKCk7 CisgCQlwdWJsaWMgdm9pZCBnZXRfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQp OworKwkJcHVibGljIHVub3duZWQgTWV0YS5Tb3VuZFBsYXllciBnZXRfc291bmRfcGxheWVyICgp OworIAkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9jdXJyZW50IChNZXRhLlRh Ykxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKyAJCXB1YmxpYyBHTGliLkxp c3Q8d2VhayBNZXRhLldpbmRvdz4gZ2V0X3RhYl9saXN0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0 YS5Xb3Jrc3BhY2U/IHdvcmtzcGFjZSk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBn ZXRfdGFiX25leHQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2Us IE1ldGEuV2luZG93PyB3aW5kb3csIGJvb2wgYmFja3dhcmQpOworIAkJcHVibGljIHVub3duZWQg TWV0YS5Xb3Jrc3BhY2VNYW5hZ2VyIGdldF93b3Jrc3BhY2VfbWFuYWdlciAoKTsKKy0JCXB1Ymxp YyB1aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0cmluZyBhY2NlbGVyYXRvcik7CisrCQlwdWJsaWMg dWludCBncmFiX2FjY2VsZXJhdG9yIChzdHJpbmcgYWNjZWxlcmF0b3IsIE1ldGEuS2V5QmluZGlu Z0ZsYWdzIGZsYWdzKTsKKyAJCXB1YmxpYyBib29sIGlzX3BvaW50ZXJfZW11bGF0aW5nX3NlcXVl bmNlIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKyAJCXB1YmxpYyBib29sIHJl bW92ZV9rZXliaW5kaW5nIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCByZXF1ZXN0X3Bh ZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBib29sIGVkaXRpb25fbW9kZSk7CisgCQlw dWJsaWMgdm9pZCBzZXRfY3Vyc29yIChNZXRhLkN1cnNvciBjdXJzb3IpOworKwkJcHVibGljIHZv aWQgc2V0X2lucHV0X2ZvY3VzIChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUs IHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBNZXRhLldpbmRv dz4gc29ydF93aW5kb3dzX2J5X3N0YWNraW5nIChHTGliLlNMaXN0PE1ldGEuV2luZG93PiB3aW5k b3dzKTsKKyAJCXB1YmxpYyBib29sIHN1cHBvcnRzX2V4dGVuZGVkX2JhcnJpZXJzICgpOworIAkJ cHVibGljIHZvaWQgdW5mcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVi bGljIGJvb2wgdW5ncmFiX2FjY2VsZXJhdG9yICh1aW50IGFjdGlvbl9pZCk7CisgCQlwdWJsaWMg dm9pZCB1bmdyYWJfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVibGljIHZvaWQg dW5zZXRfaW5wdXRfZm9jdXMgKHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGljIGJvb2wgeHNl cnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIpOworIAkJcHVi bGljIE1ldGEuV2luZG93IGZvY3VzX3dpbmRvdyB7IGdldDsgfQorLQkJcHVibGljIHNpZ25hbCB2 b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIHVpbnQgcDAsIHVpbnQgcDEp OworKwkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmpl Y3QsIENsdXR0ZXIuSW5wdXREZXZpY2UgcDAsIHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25hbCB2 b2lkIGNsb3NpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX3VwZGF0ZWQgKCk7 CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ2xfdmlkZW9fbWVtb3J5X3B1cmdlZCAoKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRh LldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJf b3BfZW5kIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3Ag cDEpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGluX2Z1bGxzY3JlZW5fY2hhbmdlZCAoKTsKKysJ CXB1YmxpYyBzaWduYWwgYm9vbCBpbml0X3hzZXJ2ZXIgKEdMaWIuVGFzayBvYmplY3QpOworIAkJ cHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKCk7Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgcGFkX21vZGVfc3dpdGNoIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgdWludCBwMCwg dWludCBwMSk7CitAQCAtMzQ1LDcgKzM1NCw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1Ymxp YyBzaWduYWwgYm9vbCBzaG93X3Jlc2l6ZV9wb3B1cCAoYm9vbCBvYmplY3QsIE1ldGEuUmVjdGFu Z2xlIHAwLCBpbnQgcDEsIGludCBwMik7CisgCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXN0 YXJ0X21lc3NhZ2UgKHN0cmluZz8gbWVzc2FnZSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hv d2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhcnR1cF9z ZXF1ZW5jZV9jaGFuZ2VkICh2b2lkKiBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdp bmRvd19jcmVhdGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lk IHdpbmRvd19kZW1hbmRzX2F0dGVudGlvbiAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKyAJCXB1Ymxp YyBzaWduYWwgdm9pZCB3aW5kb3dfZW50ZXJlZF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRhLldp bmRvdyBwMCk7CitAQCAtMzU0LDYgKzM2Miw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1Ymxp YyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCB4MTFfZGlzcGxheV9jbG9zaW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNw bGF5X29wZW5lZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9zZXR1cCAo KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWRuZC5oIiwg dHlwZV9pZCA9ICJtZXRhX2RuZF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgRG5kIDog R0xpYi5PYmplY3QgeworQEAgLTM2Myw3ICszNzIsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgZG5kX2xlYXZlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGRu ZF9wb3NpdGlvbl9jaGFuZ2UgKGludCBvYmplY3QsIGludCBwMCk7CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgRnJhbWUgeworIAl9CitAQCAt Mzc0LDEzICszODMsMTIgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVpbnQgYWRkX2lk bGVfd2F0Y2ggKHVpbnQ2NCBpbnRlcnZhbF9tc2VjLCBvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0 Y2hGdW5jPyBjYWxsYmFjayk7CisgCQlwdWJsaWMgdWludCBhZGRfdXNlcl9hY3RpdmVfd2F0Y2gg KG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9jb3JlICgpOworLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2Zvcl9kZXZpY2UgKGludCBkZXZpY2Vf aWQpOworIAkJcHVibGljIGludDY0IGdldF9pZGxldGltZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHJl bW92ZV93YXRjaCAodWludCBpZCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBp bnQgZGV2aWNlX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBDbHV0dGVyLklucHV0 RGV2aWNlIGRldmljZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEva2V5YmluZGluZ3MuaCIsIGNvcHlfZnVuY3Rpb24gPSAi Z19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0g Im1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVl X2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19n ZXRfdHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIEtleUJpbmRpbmcgewor IAkJcHVibGljIHVpbnQgZ2V0X21hc2sgKCk7CitAQCAtMzkxLDggKzM5OSwyMSBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlbQ0NvZGUgKGNuYW1lID0gIm1ldGFfa2V5YmluZGluZ3Nfc2V0X2N1c3Rv bV9oYW5kbGVyIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgc2V0X2N1c3RvbV9oYW5kbGVyIChz dHJpbmcgbmFtZSwgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYz8gaGFuZGxlcik7CisgCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oIiwg dHlwZV9pZCA9ICJtZXRhX2xhdW5jaF9jb250ZXh0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBj bGFzcyBMYXVuY2hDb250ZXh0IDogR0xpYi5BcHBMYXVuY2hDb250ZXh0IHsKKysJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBMYXVuY2hDb250 ZXh0ICgpOworKwkJcHVibGljIHZvaWQgc2V0X3RpbWVzdGFtcCAodWludDMyIHRpbWVzdGFtcCk7 CisrCQlwdWJsaWMgdm9pZCBzZXRfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2Up OworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkg eyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJs aWMgdWludCB0aW1lc3RhbXAgeyBnZXQ7IHNldDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisr CQlwdWJsaWMgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3JfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgYWJzdHJhY3QgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBNZXRhLkRCdXNEaXNwbGF5Q29u ZmlnU2tlbGV0b24sIEdMaWIuREJ1c0ludGVyZmFjZSwgR0xpYi5EQnVzSW50ZXJmYWNlIHsKKysJ cHVibGljIGNsYXNzIE1vbml0b3JNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIE1vbml0b3JNYW5h Z2VyICgpOworIAkJcHVibGljIGJvb2wgY2FuX3N3aXRjaF9jb25maWcgKCk7CitAQCAtNDA3LDYg KzQyOCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjb25maXJt X2Rpc3BsYXlfY2hhbmdlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5n ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZF9pbnRlcm5hbCAo KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwb3dlcl9zYXZlX21vZGVfY2hhbmdlZCAoKTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgdHlw ZV9pZCA9ICJtZXRhX3BsdWdpbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xh c3MgUGx1Z2luIDogR0xpYi5PYmplY3QgeworQEAgLTQzMCw2ICs0NTIsOCBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfc3dpdGNoX3dvcmtzcGFjZSAoKTsK KyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfd2luZG93X2VmZmVj dHMgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgbG9jYXRlX3BvaW50ZXIgKCk7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgbWFu YWdlcl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIuVHlwZSBndHlwZSk7CisgCQlbTm9XcmFwcGVyXQor IAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworQEAg LTQ2NSwyNiArNDg5LDU2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJcHVibGljIGNsYXNzIFJlbW90 ZUFjY2Vzc0NvbnRyb2xsZXIgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgUmVtb3RlQWNjZXNzQ29udHJvbGxl ciAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXRfcmVtb3RlX2FjY2VzcyAoKTsKKysJCXB1Ymxp YyB2b2lkIHVuaW5oaWJpdF9yZW1vdGVfYWNjZXNzICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lk IG5ld19oYW5kbGUgKE1ldGEuUmVtb3RlQWNjZXNzSGFuZGxlIG9iamVjdCk7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9yZW1vdGVfYWNjZXNzX2hhbmRsZV9nZXRfdHlwZSAoKSIp XQorIAlwdWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNzSGFuZGxlIDogR0xpYi5PYmplY3QgeworIAkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFJl bW90ZUFjY2Vzc0hhbmRsZSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9kaXNhYmxlX2FuaW1hdGlv bnMgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN0b3AgKCk7CisrCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKysJCXB1YmxpYyBib29sIGlzX3JlY29yZGluZyB7IGdldDsgY29uc3RydWN0OyB9Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RvcHBlZCAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfc2VsZWN0aW9uX2dldF90 eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTZWxlY3Rpb24gOiBHTGliLk9iamVjdCB7CisrCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMgU2VsZWN0 aW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisrCQlwdWJsaWMgR0xpYi5MaXN0PHN0cmluZz4g Z2V0X21pbWV0eXBlcyAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlKTsKKysJCXB1 YmxpYyB2b2lkIHNldF9vd25lciAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlLCBN ZXRhLlNlbGVjdGlvblNvdXJjZSBvd25lcik7CisrCQlwdWJsaWMgYXN5bmMgYm9vbCB0cmFuc2Zl cl9hc3luYyAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlLCBzdHJpbmcgbWltZXR5 cGUsIHNzaXplX3Qgc2l6ZSwgR0xpYi5PdXRwdXRTdHJlYW0gb3V0cHV0LCBHTGliLkNhbmNlbGxh YmxlPyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCB1bnNl dF9vd25lciAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlLCBNZXRhLlNlbGVjdGlv blNvdXJjZSBvd25lcik7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3duZXJfY2hhbmdlZCAodWlu dCBvYmplY3QsIE1ldGEuU2VsZWN0aW9uU291cmNlIHAwKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfc2VsZWN0aW9uX3Nv dXJjZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU2VsZWN0aW9uU291cmNlIDogR0xp Yi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor KwkJcHJvdGVjdGVkIFNlbGVjdGlvblNvdXJjZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIEdMaWIu TGlzdDxzdHJpbmc+IGdldF9taW1ldHlwZXMgKCk7CisrCQlwdWJsaWMgYm9vbCBpc19hY3RpdmUg KCk7CisrCQlwdWJsaWMgdmlydHVhbCBhc3luYyBHTGliLklucHV0U3RyZWFtIHJlYWRfYXN5bmMg KHN0cmluZyBtaW1ldHlwZSwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBH TGliLkVycm9yOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0aXZhdGVkICgpOwor KwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZGVhY3RpdmF0ZWQgKCk7CisrCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3Nl bGVjdGlvbl9zb3VyY2VfbWVtb3J5X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTZWxl Y3Rpb25Tb3VyY2VNZW1vcnkgOiBNZXRhLlNlbGVjdGlvblNvdXJjZSB7CisrCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJNZXRhU2VsZWN0aW9uU291cmNl KiIpXQorKwkJcHVibGljIFNlbGVjdGlvblNvdXJjZU1lbW9yeSAoc3RyaW5nIG1pbWV0eXBlLCBH TGliLkJ5dGVzIGNvbnRlbnQpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtc2V0dGluZ3MuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0K KyAJcHVibGljIGNsYXNzIFNldHRpbmdzIHsKKyAJCXB1YmxpYyBpbnQgZ2V0X2ZvbnRfZHBpICgp OworIAkJcHVibGljIGludCBnZXRfdWlfc2NhbGluZ19mYWN0b3IgKCk7CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgcmVmX2Z1 bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZ2V0X3R5 cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd191bnJlZiIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV9z aGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAoKSIsIHVucmVmX2Z1 bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xh c3MgU2hhZG93IHsKKyAJCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKGludCB3aW5kb3dfeCwgaW50 IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwgQ2Fpcm8uUmVj dGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMgdm9pZCBwYWludCAoaW50IHdpbmRvd194LCBp bnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50OCBv cGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7CisrCQlwdWJs aWMgdm9pZCBwYWludCAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgaW50IHdpbmRvd194 LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50 OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7CisgCQlw dWJsaWMgTWV0YS5TaGFkb3cgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHVucmVmICgpOworIAl9 CitAQCAtNDk5LDI4ICs1NTMsNzQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25h bCB2b2lkIGNoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJl X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1dHRlci5B Y3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFp bmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6 IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUgKCk7CistCQlw dWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludCBjbGlwKTsK KysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludD8g Y2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7Cisg CQlwdWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21pcG1hcHMpOwor IAkJcHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4dHVy ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVnaW9u IG9wYXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGludCB4LCBpbnQg eSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2No YW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRfdHlwZSAoKSIpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNvdW5kLXBsYXllci5oIiwgdHlw ZV9pZCA9ICJtZXRhX3NvdW5kX3BsYXllcl9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3Mg U291bmRQbGF5ZXIgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU291bmRQbGF5ZXIgKCk7CisrCQlwdWJsaWMg dm9pZCBwbGF5X2Zyb21fZmlsZSAoR0xpYi5GaWxlIGZpbGUsIHN0cmluZyBkZXNjcmlwdGlvbiwg R0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKysJCXB1YmxpYyB2b2lkIHBs YXlfZnJvbV90aGVtZSAoc3RyaW5nIG5hbWUsIHN0cmluZyBkZXNjcmlwdGlvbiwgR0xpYi5DYW5j ZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tZXRhLXN0YWdlLmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhZ2VfZ2V0X3R5 cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5TdGFnZSwgQXRrLkltcGxl bWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNj cmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor IAkJcHJvdGVjdGVkIFN0YWdlICgpOworIAkJcHVibGljIHN0YXRpYyBib29sIGlzX2ZvY3VzZWQg KE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBhY3RvcnNfcGFp bnRlZCAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhcnR1cF9ub3RpZmljYXRp b25fZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFN0YXJ0dXBOb3RpZmljYXRpb24gOiBH TGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CisrCQlwcm90ZWN0ZWQgU3RhcnR1cE5vdGlmaWNhdGlvbiAoKTsKKysJCXB1YmxpYyBNZXRhLkxh dW5jaENvbnRleHQgY3JlYXRlX2xhdW5jaGVyICgpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisr CQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQor KwkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKHZvaWQqIG9iamVjdCk7CisrCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0 YXJ0dXBfc2VxdWVuY2VfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFN0YXJ0dXBTZXF1 ZW5jZSA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTdGFydHVwU2VxdWVuY2UgKCk7CisrCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X2FwcGxpY2F0aW9uX2lkICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2Nv bXBsZXRlZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfaWNvbl9uYW1lICgpOwor KwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfbmFtZSAoKTsKKysJCXB1YmxpYyB1aW50NjQgZ2V0X3RpbWVzdGFtcCAoKTsKKysJ CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21jbGFzcyAoKTsKKysJCXB1YmxpYyBpbnQgZ2V0 X3dvcmtzcGFjZSAoKTsKKysJCXB1YmxpYyBzdHJpbmcgYXBwbGljYXRpb25faWQgeyBnZXQ7IGNv bnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyBpY29uX25hbWUgeyBnZXQ7IGNvbnN0cnVjdDsg fQorKwkJcHVibGljIHN0cmluZyBpZCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3Ry aW5nIG5hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHVpbnQ2NCB0aW1lc3RhbXAg eyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyB3bWNsYXNzIHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKysJCXB1YmxpYyBpbnQgd29ya3NwYWNlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJ CVtIYXNFbWl0dGVyXQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGNvbXBsZXRlICgpOworIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3RoZW1lLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBUaGVtZSB7CisgCQlwdWJsaWMg dm9pZCBmcmVlICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtd2F5bGFuZC1jbGllbnQuaCIsIHR5cGVfaWQgPSAibWV0YV93YXlsYW5kX2NsaWVudF9nZXRf dHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgV2F5bGFuZENsaWVudCA6IEdMaWIuT2JqZWN0IHsK KysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1YmxpYyBX YXlsYW5kQ2xpZW50IChHTGliLlN1YnByb2Nlc3NMYXVuY2hlciBsYXVuY2hlcikgdGhyb3dzIEdM aWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCBoaWRlX2Zyb21fd2luZG93X2xpc3QgKE1ldGEuV2lu ZG93IHdpbmRvdyk7CisrCQlwdWJsaWMgYm9vbCBvd25zX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2lu ZG93KTsKKysJCXB1YmxpYyB2b2lkIHNob3dfaW5fd2luZG93X2xpc3QgKE1ldGEuV2luZG93IHdp bmRvdyk7CisrCQlwdWJsaWMgR0xpYi5TdWJwcm9jZXNzIHNwYXdudiAoTWV0YS5EaXNwbGF5IGRp c3BsYXksIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRl ZCA9IHRydWUpXSBzdHJpbmdbXSBhcmd2KSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIHR5cGVfaWQgPSAibWV0YV93 aW5kb3dfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRvdyA6IEdM aWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K K0BAIC01NDcsNiArNjQ3LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIE1ldGEuUmVj dGFuZ2xlIGZyYW1lX3JlY3RfdG9fY2xpZW50X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGZyYW1lX3Jl Y3QpOworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9idWZmZXJfcmVjdCAoKTsKKyAJCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfY2xpZW50X21hY2hpbmUgKCk7CisrCQlwdWJsaWMgTWV0 YS5XaW5kb3dDbGllbnRUeXBlIGdldF9jbGllbnRfdHlwZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVk IEdMaWIuT2JqZWN0IGdldF9jb21wb3NpdG9yX3ByaXZhdGUgKCk7CisgCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgTWV0YS5EaXNw bGF5IGdldF9kaXNwbGF5ICgpOworQEAgLTU2MSw2ICs2NjIsNyBAQCBuYW1lc3BhY2UgTWV0YSB7 CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a191bmlxdWVfYnVzX25hbWUgKCk7Cisg CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a193aW5kb3dfb2JqZWN0X3BhdGggKCk7Cisg CQlwdWJsaWMgYm9vbCBnZXRfaWNvbl9nZW9tZXRyeSAob3V0IE1ldGEuUmVjdGFuZ2xlIHJlY3Qp OworKwkJcHVibGljIHVpbnQ2NCBnZXRfaWQgKCk7CisgCQlwdWJsaWMgTWV0YS5TdGFja0xheWVy IGdldF9sYXllciAoKTsKKyAJCXB1YmxpYyBNZXRhLk1heGltaXplRmxhZ3MgZ2V0X21heGltaXpl ZCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X21vbml0b3IgKCk7CitAQCAtNjEwLDggKzcxMiw2IEBA IG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB2b2lkIG1vdmVfcmVzaXplX2ZyYW1lIChib29s IHVzZXJfb3AsIGludCByb290X3hfbncsIGludCByb290X3lfbncsIGludCB3LCBpbnQgaCk7Cisg CQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0b3IgKGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2 b2lkIHJhaXNlICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2J5cGFzc19jb21wb3NpdG9y ICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7 CisgCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9zaXRvcl9wcml2YXRlIChHTGliLk9iamVjdCBwcml2 KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKyAJCXB1YmxpYyB2 b2lkIHNldF9pY29uX2dlb21ldHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVjdCk7CitAQCAtNjcyLDI0 ICs3NzIsMjUgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNob3du ICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBz aWduYWwgdm9pZCB1bm1hbmFnZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdW5tYW5hZ2lu ZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIiwg dHlwZV9pZCA9ICJtZXRhX3dpbmRvd19hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xh c3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIu QW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisrCXB1 YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBs ZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5T Y3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KyAJCXByb3RlY3RlZCBXaW5kb3dBY3RvciAoKTsKKysJCXB1YmxpYyB2b2lkIGZyZWV6ZSAoKTsK KysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludD8g Y2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93aW5kb3cgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgpOworLQkJcHVi bGljIFguV2luZG93IGdldF94X3dpbmRvdyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU2hh cGVkVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKyAJCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAo KTsKKyAJCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0eSAoKTsKKysJCXB1YmxpYyB2b2lkIHRo YXcgKCk7CisgCQlwdWJsaWMgTWV0YS5XaW5kb3cgbWV0YV93aW5kb3cgeyBnZXQ7IGNvbnN0cnVj dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgc3RyaW5nIHNoYWRvd19jbGFz cyB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBN ZXRhLlNoYWRvd01vZGUgc2hhZG93X21vZGUgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIHNpZ25h bCB2b2lkIGRhbWFnZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZWZmZWN0c19jb21wbGV0 ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CisrCQlwdWJsaWMg c2lnbmFsIHZvaWQgdGhhd2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtd2luZG93LWdyb3VwLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dyb3Vw X2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBXaW5kb3dHcm91cCA6IENsdXR0ZXIuQWN0 b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5l ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC03MjAsNyArODIxLDkgQEAgbmFtZXNwYWNlIE1l dGEgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfZm9yX21vbml0b3Ig KGludCB3aGljaF9tb25pdG9yKTsKKyAJCXB1YmxpYyBpbnQgaW5kZXggKCk7CisgCQlwdWJsaWMg R0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9idWlsdGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRhLlN0cnV0PiBzdHJ1dHMpOwor KwkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ/ PiBzdHJ1dHMpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgYm9vbCBhY3RpdmUg eyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIHVpbnQgbl93aW5kb3dz IHsgZ2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC03MzYsMjcgKzgzOSwzMyBAQCBu YW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0 aXZlX3dvcmtzcGFjZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5k ZXggKCk7CisgCQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOwor KwkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3BhY2VfYnlfaW5kZXgg KGludCBpbmRleCk7CisgCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChN ZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwg aW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3Nw YWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVi bGljIHZvaWQgcmVvcmRlcl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgaW50 IG5ld19pbmRleCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBpbnQgbGF5b3V0 X2NvbHVtbnMgeyBnZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGludCBs YXlvdXRfcm93cyB7IGdldDsgfQorIAkJcHVibGljIGludCBuX3dvcmtzcGFjZXMgeyBnZXQ7IH0K KyAJCXB1YmxpYyBzaWduYWwgdm9pZCBhY3RpdmVfd29ya3NwYWNlX2NoYW5nZWQgKCk7CisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgd29ya3NwYWNlX2FkZGVkIChpbnQgb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAoaW50IG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgd29ya3NwYWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQgcDAsIE1ldGEuTW90aW9u RGlyZWN0aW9uIHAxKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VzX3Jlb3JkZXJl ZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfeDExX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0KKyAJ cHVibGljIGNsYXNzIFgxMURpc3BsYXkgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgWDExRGlzcGxheSAoKTsK Ky0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19mb2N1c193aW5kb3cgKHVpbnQzMiB0aW1lc3Rh bXApOworKwkJcHVibGljIHZvaWQgY2xlYXJfc3RhZ2VfaW5wdXRfcmVnaW9uICgpOworIAkJcHVi bGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zY3Jl ZW5fbnVtYmVyICgpOworIAkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKyAJ CXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rp b24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfZm9jdXNfd2luZG93IChNZXRhLldpbmRv dyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUsIHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVibGlj IHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7Cisg CQlwdWJsaWMgYm9vbCB4d2luZG93X2lzX2Ffbm9fZm9jdXNfd2luZG93IChYLldpbmRvdyB4d2lu ZG93KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oIiwgdHlwZV9jbmFtZSA9ICJNZXRhQ2xvc2VEaWFsb2dJbnRlcmZhY2UiLCB0eXBl X2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX2dldF90eXBlICgpIildCitAQCAtNzc5LDI0ICs4ODgs MjQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgcmVzcG9uc2UgKE1ldGEuSW5oaWJpdFNob3J0Y3V0c0RpYWxvZ1Jlc3BvbnNlIHJlc3Bv bnNlKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBCdXR0b25M YXlvdXQgeworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2Vh ayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIGxlZnRfYnV0dG9uc1s1XTsKKysJCXB1YmxpYyB3ZWFrIE1l dGEuQnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0b25zWzRdOworIAkJW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIGxlZnRfYnV0dG9uc19oYXNfc3BhY2Vy WzVdOworKwkJcHVibGljIHdlYWsgYm9vbCBsZWZ0X2J1dHRvbnNfaGFzX3NwYWNlcls0XTsKKyAJ CVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0 b25GdW5jdGlvbiByaWdodF9idXR0b25zWzVdOworKwkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25G dW5jdGlvbiByaWdodF9idXR0b25zWzRdOworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldCistCQlwdWJsaWMgd2VhayBib29sIHJpZ2h0X2J1dHRvbnNfaGFzX3NwYWNlcls1XTsKKysJ CXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRfYnV0dG9uc19oYXNfc3BhY2VyWzRdOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgRWRnZSB7CisgCQlwdWJsaWMgTWV0YS5S ZWN0YW5nbGUgcmVjdDsKKyAJCXB1YmxpYyBNZXRhLlNpZGUgc2lkZV90eXBlOworIAkJcHVibGlj IE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlw dWJsaWMgc3RydWN0IEZyYW1lQm9yZGVycyB7CisgCQlwdWJsaWMgR3RrLkJvcmRlciB2aXNpYmxl OworIAkJcHVibGljIEd0ay5Cb3JkZXIgaW52aXNpYmxlOworQEAgLTgxMSwxNCArOTIwLDE0IEBA IG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB3ZWFrIHN0cmluZyBsaWNlbnNlOworIAkJcHVi bGljIHdlYWsgc3RyaW5nIGRlc2NyaXB0aW9uOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCisgCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luVmVyc2lvbiB7CisgCQlwdWJsaWMgdWludCB2ZXJz aW9uX21ham9yOworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9taW5vcjsKKyAJCXB1YmxpYyB1aW50 IHZlcnNpb25fbWljcm87CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX2FwaTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgdHlwZV9pZCA9ICJtZXRhX3Jl Y3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24g PSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIp XQorIAlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CisgCQlwdWJsaWMgaW50IHg7CisgCQlwdWJs aWMgaW50IHk7CitAQCAtODM2LDcgKzk0NSw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1Ymxp YyBNZXRhLlJlY3RhbmdsZSB1bmlvbiAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworIAkJcHVibGlj IGJvb2wgdmVydF9vdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IFNoYWRvd1BhcmFtcyB7 CisgCQlwdWJsaWMgaW50IHJhZGl1czsKKyAJCXB1YmxpYyBpbnQgdG9wX2ZhZGU7CitAQCAtODQ0 LDEyICs5NTMsMTIgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGludCB5X29mZnNldDsK KyAJCXB1YmxpYyB1aW50OCBvcGFjaXR5OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1 YmxpYyBzdHJ1Y3QgU3RydXQgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CisgCQlw dWJsaWMgTWV0YS5TaWRlIHNpZGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oIiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5 cGVfaWQgPSAibWV0YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQkFSUklF Ul9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dldF90eXBl ICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gQmFycmllckRpcmVjdGlvbiB7CisgCQlQ T1NJVElWRV9YLAorQEAgLTg1NywyMSArOTY2LDIwIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU5F R0FUSVZFX1gsCisgCQlORUdBVElWRV9ZCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNUSU9OXyIsIHR5 cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0JVVFRPTl9G VU5DVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYnV0dG9uX2Z1bmN0aW9uX2dldF90eXBlICgpIild CisgCXB1YmxpYyBlbnVtIEJ1dHRvbkZ1bmN0aW9uIHsKKyAJCU1FTlUsCisgCQlNSU5JTUlaRSwK KyAJCU1BWElNSVpFLAorIAkJQ0xPU0UsCistCQlBUFBNRU5VLAorIAkJTEFTVAorIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiLCBjcHJl Zml4ID0gIk1FVEFfQ0xPU0VfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9jbG9z ZV9kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NMT1NFX0RJQUxPR19SRVNQT05T RV8iLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgpIild CisgCXB1YmxpYyBlbnVtIENsb3NlRGlhbG9nUmVzcG9uc2UgeworIAkJV0FJVCwKKyAJCUZPUkNF X0NMT1NFCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRv ci5oIiwgY3ByZWZpeCA9ICJNRVRBX0NPTVBfRUZGRUNUXyIsIHR5cGVfaWQgPSAibWV0YV9jb21w X2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQ09NUF9FRkZFQ1RfIiwgdHlwZV9pZCA9ICJtZXRh X2NvbXBfZWZmZWN0X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIENvbXBFZmZlY3Qgewor IAkJQ1JFQVRFLAorIAkJVU5NSU5JTUlaRSwKK0BAIC04NzksNyArOTg3LDcgQEAgbmFtZXNwYWNl IE1ldGEgeworIAkJTUlOSU1JWkUsCisgCQlOT05FCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5cGVf aWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNPUl8iLCB0eXBlX2lkID0g Im1ldGFfY3Vyc29yX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEN1cnNvciB7CisgCQlO T05FLAorIAkJREVGQVVMVCwKK0BAIC05MDAsOSArMTAwOCwxMCBAQCBuYW1lc3BhY2UgTWV0YSB7 CisgCQlQT0lOVElOR19IQU5ELAorIAkJQ1JPU1NIQUlSLAorIAkJSUJFQU0sCisrCQlCTEFOSywK KyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgi LCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9ICJtZXRhX2RlYnVnX3RvcGljX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lkID0gIm1ldGFfZGVidWdfdG9waWNfZ2V0 X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBEZWJ1Z1RvcGljIHsKKyAJCVZF UkJPU0UsCitAQCAtOTI4LDkgKzEwMzcsMTAgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJU0hBUEVT LAorIAkJQ09NUE9TSVRPUiwKKyAJCUVER0VfUkVTSVNUQU5DRSwKKy0JCURCVVMKKysJCURCVVMs CisrCQlJTlBVVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1v bi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfZGlyZWN0 aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVj dGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIERpcmVjdGlvbiB7 CisgCQlMRUZULAorQEAgLTk0MiwyMSArMTA1MiwyMSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlI T1JJWk9OVEFMLAorIAkJVkVSVElDQUwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0eXBlX2lkID0g Im1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9p ZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVyX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIERp c3BsYXlDb3JuZXIgeworIAkJVE9QTEVGVCwKKyAJCVRPUFJJR0hULAorIAkJQk9UVE9NTEVGVCwK KyAJCUJPVFRPTVJJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv ZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rp c3BsYXlfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAi bWV0YV9kaXNwbGF5X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBEaXNw bGF5RGlyZWN0aW9uIHsKKyAJCVVQLAorIAkJRE9XTiwKKyAJCUxFRlQsCisgCQlSSUdIVAorIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBjcHJlZml4ID0g Ik1FVEFfRURHRV8iLCB0eXBlX2lkID0gIm1ldGFfZWRnZV90eXBlX2dldF90eXBlICgpIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVU QV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVi bGljIGVudW0gRWRnZVR5cGUgeworIAkJV0lORE9XLAorIAkJTU9OSVRPUiwKK0BAIC05NjcsMTIg KzEwNzcsMTEgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJU1VDQ0VTUywKKyAJCUVSUk9SCisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0g Ik1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX2ZsYWdzX2dldF90eXBlICgpIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAi TUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0K KyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBGcmFtZUZsYWdzIHsKKyAJCUFMTE9XU19ERUxFVEUs CisgCQlBTExPV1NfTUVOVSwKKy0JCUFMTE9XU19BUFBNRU5VLAorIAkJQUxMT1dTX01JTklNSVpF LAorIAkJQUxMT1dTX01BWElNSVpFLAorIAkJQUxMT1dTX1ZFUlRJQ0FMX1JFU0laRSwKK0BAIC05 ODQsMTIgKzEwOTMsMTEgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJQUxMT1dTX1NIQURFLAorIAkJ QUxMT1dTX01PVkUsCisgCQlGVUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJTkcsCisgCQlBQk9WRSwK KyAJCVRJTEVEX0xFRlQsCisgCQlUSUxFRF9SSUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FX1RZUEVfIiwg dHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FX1RZUEVf IiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVu dW0gRnJhbWVUeXBlIHsKKyAJCU5PUk1BTCwKKyAJCURJQUxPRywKK0BAIC0xMDAxLDcgKzExMDks NyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlMQVNUOworIAkJcHVibGljIHVub3duZWQgc3RyaW5n IHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAibWV0YV9ncmFi X29wX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAibWV0YV9ncmFiX29w X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEdyYWJPcCB7CisgCQlOT05FLAorIAkJV0lO RE9XX0JBU0UsCitAQCAtMTAyOCwxMiArMTEzNiwyNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlL RVlCT0FSRF9SRVNJWklOR19TRSwKKyAJCUtFWUJPQVJEX1JFU0laSU5HX1cKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oIiwgY3ByZWZpeCA9ICJNRVRBX0lOSElCSVRfU0hPUlRDVVRTX0RJQUxPR19SRVNQT05TRV8i LCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9nX3Jlc3BvbnNlX2dldF90 eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNw cmVmaXggPSAiTUVUQV9HUkFWSVRZXyIsIHR5cGVfaWQgPSAibWV0YV9ncmF2aXR5X2dldF90eXBl ICgpIildCisrCXB1YmxpYyBlbnVtIEdyYXZpdHkgeworKwkJTk9ORSwKKysJCU5PUlRIX1dFU1Qs CisrCQlOT1JUSCwKKysJCU5PUlRIX0VBU1QsCisrCQlXRVNULAorKwkJQ0VOVEVSLAorKwkJRUFT VCwKKysJCVNPVVRIX1dFU1QsCisrCQlTT1VUSCwKKysJCVNPVVRIX0VBU1QsCisrCQlTVEFUSUMK KysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4 ID0gIk1FVEFfSU5ISUJJVF9TSE9SVENVVFNfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAi bWV0YV9pbmhpYml0X3Nob3J0Y3V0c19kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKyAJ cHVibGljIGVudW0gSW5oaWJpdFNob3J0Y3V0c0RpYWxvZ1Jlc3BvbnNlIHsKKyAJCUFMTE9XLAor IAkJREVOWQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi LCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tl eV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElOR19BQ1RJT05fIiwg dHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgZW51bSBLZXlCaW5kaW5nQWN0aW9uIHsKKyAJCU5PTkUsCisgCQlXT1JLU1BBQ0VfMSwKK0BA IC0xMTIyLDIyICsxMjQ0LDI1IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU1PVkVfVE9fU0lERV9X LAorIAkJTU9WRV9UT19DRU5URVIsCisgCQlPVkVSTEFZX0tFWSwKKysJCUxPQ0FURV9QT0lOVEVS X0tFWSwKKyAJCUlTT19ORVhUX0dST1VQLAorIAkJQUxXQVlTX09OX1RPUCwKKyAJCVNXSVRDSF9N T05JVE9SLAorIAkJUk9UQVRFX01PTklUT1IsCisgCQlMQVNUCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlfQklORElO R18iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlw ZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFncyB7CisgCQlO T05FLAorIAkJUEVSX1dJTkRPVywKKyAJCUJVSUxUSU4sCisgCQlJU19SRVZFUlNFRCwKKy0JCU5P Tl9NQVNLQUJMRQorKwkJTk9OX01BU0tBQkxFLAorKwkJSUdOT1JFX0FVVE9SRVBFQVQsCisrCQlO T19BVVRPX0dSQUIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGls LmgiLCBjcHJlZml4ID0gIk1FVEFfTEFURVJfIiwgdHlwZV9pZCA9ICJtZXRhX2xhdGVyX3R5cGVf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVSXyIsIHR5cGVfaWQgPSAibWV0YV9sYXRlcl90eXBlX2dl dF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIExhdGVyVHlwZSB7CisgCQlSRVNJWkUsCisgCQlD QUxDX1NIT1dJTkcsCitAQCAtMTE0NiwyNSArMTI3MSwyNSBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CQlCRUZPUkVfUkVEUkFXLAorIAkJSURMRQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5 cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NBTEVf RElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBlICgp IildCisgCXB1YmxpYyBlbnVtIExvY2FsZURpcmVjdGlvbiB7CisgCQlMVFIsCisgCQlSVEwKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXgg PSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5 cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3By ZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFnc19n ZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIE1heGltaXplRmxhZ3Mgewor IAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FMLAorIAkJQk9USAorIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9E QUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCkiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01P REFMXyIsIHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgpIildCisgCVtG bGFnc10KKyAJcHVibGljIGVudW0gTW9kYWxPcHRpb25zIHsKKyAJCVBPSU5URVJfQUxSRUFEWV9H UkFCQkVELAorIAkJS0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIsIGNwcmVmaXggPSAi TUVUQV9NT05JVE9SX1NXSVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jfc3dp dGNoX2NvbmZpZ190eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NT05JVE9SX1NXSVRDSF9DT05GSUdf IiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jfc3dpdGNoX2NvbmZpZ190eXBlX2dldF90eXBlICgp IildCisgCXB1YmxpYyBlbnVtIE1vbml0b3JTd2l0Y2hDb25maWdUeXBlIHsKKyAJCUFMTF9NSVJS T1IsCisgCQlBTExfTElORUFSLAorQEAgLTExNzIsNyArMTI5Nyw3IEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCUJVSUxUSU4sCisgCQlVTktOT1dOCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9OXyIsIHR5cGVfaWQg PSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NT1RJT05fIiwgdHlw ZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVu dW0gTW90aW9uRGlyZWN0aW9uIHsKKyAJCVVQLAorIAkJRE9XTiwKK0BAIC0xMTgzLDcgKzEzMDgs NyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlET1dOX0xFRlQsCisgCQlET1dOX1JJR0hUCisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9 ICJNRVRBX1BBRF9BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX3BhZF9hY3Rpb25fdHlwZV9nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj cHJlZml4ID0gIk1FVEFfUEFEX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfcGFkX2FjdGlvbl90 eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFBhZEFjdGlvblR5cGUgeworIAkJQlVU VE9OLAorIAkJUklORywKK0BAIC0xMjIzLDMwICsxMzQ4LDM5IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCURSQUdHQUJMRV9CT1JERVJfV0lEVEgsCisgCQlBVVRPX01BWElNSVpFLAorIAkJQ0VOVEVS X05FV19XSU5ET1dTLAorLQkJRFJBR19USFJFU0hPTEQ7CisrCQlEUkFHX1RIUkVTSE9MRCwKKysJ CUxPQ0FURV9QT0lOVEVSLAorKwkJQ0hFQ0tfQUxJVkVfVElNRU9VVDsKKyAJCXB1YmxpYyB1bm93 bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9TSEFET1dfTU9E RV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBXyIsIHR5 cGVfaWQgPSAibWV0YV9zZWxlY3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51 bSBTZWxlY3Rpb25UeXBlIHsKKysJCVNFTEVDVElPTl9QUklNQVJZLAorKwkJU0VMRUNUSU9OX0NM SVBCT0FSRCwKKysJCVNFTEVDVElPTl9ETkQsCisrCQlOX1NFTEVDVElPTl9UWVBFUworKwl9Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVU QV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUgKCki KV0KKyAJcHVibGljIGVudW0gU2hhZG93TW9kZSB7CisgCQlBVVRPLAorIAkJRk9SQ0VEX09GRiwK KyAJCUZPUkNFRF9PTgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0 X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0X3R5cGUgKCki KV0KKyAJcHVibGljIGVudW0gU2lkZSB7CisgCQlMRUZULAorIAkJUklHSFQsCisgCQlUT1AsCisg CQlCT1RUT00KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3Np dG9yLmgiLCBjcHJlZml4ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlwZV9pZCA9ICJtZXRhX3Np emVfY2hhbmdlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1l dGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU2l6ZUNoYW5nZSB7 CisgCQlNQVhJTUlaRSwKKyAJCVVOTUFYSU1JWkUsCisgCQlGVUxMU0NSRUVOLAorIAkJVU5GVUxM U0NSRUVOCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgi LCBjcHJlZml4ID0gIk1FVEFfTEFZRVJfIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWNrX2xheWVyX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFfc3RhY2tfbGF5ZXJfZ2V0 X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU3RhY2tMYXllciB7CisgCQlERVNLVE9QLAorIAkJ Qk9UVE9NLAorQEAgLTEyNTYsMTkgKzEzOTAsMTkgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJT1ZF UlJJREVfUkVESVJFQ1QsCisgCQlMQVNUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9MSVNUXyIsIHR5cGVfaWQg PSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlwZV9pZCA9 ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFRhYkxpc3Qgewor IAkJTk9STUFMLAorIAkJRE9DS1MsCisgCQlHUk9VUCwKKyAJCU5PUk1BTF9BTEwKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1F VEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5cGVfZ2V0X3R5cGUgKCki KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9 ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hvd190eXBlX2dldF90eXBl ICgpIildCisgCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKyAJCUlDT04sCisgCQlJTlNUQU5U TFkKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNw cmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0dWFsX21vZGlmaWVy X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0dWFsX21v ZGlmaWVyX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gVmlydHVhbE1v ZGlmaWVyIHsKKyAJCVNISUZUX01BU0ssCitAQCAtMTI4MiwxNyArMTQxNiwxNyBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlNT0Q0X01BU0ssCisgCQlNT0Q1X01BU0sKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1df Q0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19jbGllbnRfdHlwZV9nZXRfdHlw ZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJl Zml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3df Y2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gV2luZG93Q2xpZW50VHlw ZSB7CisgCQlXQVlMQU5ELAorIAkJWDExCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9p ZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19NRU5V XyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfbWVudV90eXBlX2dldF90eXBlICgpIildCisgCXB1 YmxpYyBlbnVtIFdpbmRvd01lbnVUeXBlIHsKKyAJCVdNLAorIAkJQVBQCisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJlZml4ID0gIk1FVEFfV0lO RE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lO RE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgZW51bSBXaW5kb3dUeXBlIHsKKyAJCU5PUk1BTCwKKyAJCURFU0tUT1AsCitAQCAtMTMxMSw1 MSArMTQ0NSw1NyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlETkQsCisgCQlPVkVSUklERV9PVEhF UgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlwdWJsaWMgZGVsZWdhdGUg dm9pZCBJZGxlTW9uaXRvcldhdGNoRnVuYyAoTWV0YS5JZGxlTW9uaXRvciBtb25pdG9yLCB1aW50 IHdhdGNoX2lkKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGluc3RhbmNlX3BvcyA9IDQuOSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEtl eUhhbmRsZXJGdW5jIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgTWV0YS5XaW5kb3cgd2luZG93LCBb Q0NvZGUgKHR5cGUgPSAiQ2x1dHRlcktleUV2ZW50KiIpXSBDbHV0dGVyLktleUV2ZW50PyBldmVu dCwgTWV0YS5LZXlCaW5kaW5nIGJpbmRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGlj IGRlbGVnYXRlIHZvaWQgUHJlZnNDaGFuZ2VkRnVuYyAoTWV0YS5QcmVmZXJlbmNlIHByZWYpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGluc3RhbmNlX3Bv cyA9IDEuOSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGlu c3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFdpbmRvd0ZvcmVhY2hG dW5jIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfQ1VSUkVOVF9USU1FIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfQ1VSUkVOVF9U SU1FIildCisgCXB1YmxpYyBjb25zdCBpbnQgQ1VSUkVOVF9USU1FOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9JQ09O X05BTUUiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25h bWUgPSAiTUVUQV9ERUZBVUxUX0lDT05fTkFNRSIpXQorIAlwdWJsaWMgY29uc3Qgc3RyaW5nIERF RkFVTFRfSUNPTl9OQU1FOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21t b24uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9IRUlHSFQiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIpXQorIAlw dWJsaWMgY29uc3QgaW50IElDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fV0lE VEgiKV0KKyAJcHVibGljIGNvbnN0IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUFKT1JfVkVSU0lPTiIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJN RVRBX01BSk9SX1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGludCBNQUpPUl9WRVJTSU9OOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1F VEFfTUlDUk9fVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGlu dCBNSUNST19WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21t b24uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlH SFQiKV0KKyAJcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09O X1dJRFRIIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIk1FVEFfTUlOSV9JQ09OX1dJRFRIIildCisgCXB1YmxpYyBjb25zdCBpbnQgTUlOSV9J Q09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGNuYW1lID0gIk1FVEFfTUlOT1JfVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJT04iKV0KKyAJcHVi bGljIGNvbnN0IGludCBNSU5PUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUExVR0lOX0FQSV9WRVJTSU9OIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFf UExVR0lOX0FQSV9WRVJTSU9OIildCisgCXB1YmxpYyBjb25zdCBpbnQgUExVR0lOX0FQSV9WRVJT SU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1l ID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX0JFRk9SRV9SRURS QVciKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9CRUZPUkVfUkVEUkFXOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUFJJ T1JJVFlfUFJFRlNfTk9USUZZIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZIildCisgCXB1Ymxp YyBjb25zdCBpbnQgUFJJT1JJVFlfUFJFRlNfTk9USUZZOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFXIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1F VEFfUFJJT1JJVFlfUkVEUkFXIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVEUkFX OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0g Ik1FVEFfUFJJT1JJVFlfUkVTSVpFIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCisgCXB1YmxpYyBj b25zdCBpbnQgUFJJT1JJVFlfUkVTSVpFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1F VEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEIildCisgCXB1YmxpYyBjb25zdCBpbnQgVklSVFVB TF9DT1JFX0tFWUJPQVJEX0lEOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21tb24uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJfSUQiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJU VUFMX0NPUkVfUE9JTlRFUl9JRCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9Q T0lOVEVSX0lEOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K KyAJcHVibGljIHN0YXRpYyBib29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgYWRk X2NsdXR0ZXJfZGVidWdfZmxhZ3MgKENsdXR0ZXIuRGVidWdGbGFnIGRlYnVnX2ZsYWdzLCBDbHV0 dGVyLkRyYXdEZWJ1Z0ZsYWcgZHJhd19mbGFncywgQ2x1dHRlci5QaWNrRGVidWdGbGFnIHBpY2tf ZmxhZ3MpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJ cHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfaW5pdCAoKTsKKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBleGl0IChNZXRh LkV4aXRDb2RlIGNvZGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiKV0KKysJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMs IHNpemVfdCBuKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIild CisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLk9wdGlvbkNvbnRleHQgZ2V0X29wdGlvbl9j b250ZXh0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K KyAJcHVibGljIHN0YXRpYyBib29sIGdldF9yZXBsYWNlX2N1cnJlbnRfd20gKCk7CitAQCAtMTM2 OCw2ICsxNTA4LDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhf c2Vzc2lvbiAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIild CisrCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfY2x1dHRlcl9kZWJ1Z19mbGFncyAoQ2x1dHRl ci5EZWJ1Z0ZsYWcgZGVidWdfZmxhZ3MsIENsdXR0ZXIuRHJhd0RlYnVnRmxhZyBkcmF3X2ZsYWdz LCBDbHV0dGVyLlBpY2tEZWJ1Z0ZsYWcgcGlja19mbGFncyk7CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAo c3RyaW5nPyBtZXNzYWdlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIildCisgCXB1YmxpYyBzdGF0aWMgaW50IHJ1biAoKTsKK0BAIC0xMzc1LDYgKzE1MTcsMTQg QEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2dub21lX3dtX2tl eWJpbmRpbmdzIChzdHJpbmcgd21fa2V5YmluZGluZ3MpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF93bV9uYW1l IChzdHJpbmcgd21fbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEteDExLWRpc3BsYXkuaCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoKTsKKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCB4 MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyB9CisrW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImxpYm11dHRlci03LWN1c3RvbS5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCisrcHVibGljIHN0cnVjdCBiZWZvcmVfZnJhbWUgeworK30KKytbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibGlibXV0dGVyLTctY3VzdG9tLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKytwdWJsaWMgc3RydWN0IGZyYW1lIHsKKyt9CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVy LWNvZ2wtNC52YXBpIHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDdkYzE4NDc2Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLWNv Z2wtNC52YXBpCisrKysgL2Rldi9udWxsCitAQCAtMSwxMjcyICswLDAgQEAKKy0vKiBsaWJtdXR0 ZXItY29nbC00LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCist CistW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJf dmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCistbmFtZXNwYWNl IENvZ2wgeworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBl X2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQml0bWFw IDogQ29nbC5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIEJpdG1hcCAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdWludDMyIGVy cm9yX3F1YXJrICgpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIEJpdG1hcC5mcm9tX2Zp bGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuUGl4ZWxGb3JtYXQgZ2V0X2Zvcm1hdCAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF9oZWlnaHQg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGludCBnZXRfcm93 c3RyaWRlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRp YyBDb2dsLkJvb2wgZ2V0X3NpemVfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIG91dCBpbnQg d2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgaW50IGdldF93aWR0aCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCist CXB1YmxpYyBjbGFzcyBFdWxlciB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0 aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9zdXJlX2dldF9n dHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0J cHVibGljIGNsYXNzIEZyYW1lQ2xvc3VyZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVl X2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9tYXRlcmlhbF9nZXRf dHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIE1hdGVyaWFsIHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgTWF0 ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWwgY29w eSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX2xheWVyIChD b2dsLk1hdGVyaWFsTGF5ZXJDYWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2Up OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5D b2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBn ZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xh eWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0J CXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQg bGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFs V3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJcHVi bGljIHVub3duZWQgR0xpYi5MaXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0X2xheWVycyAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFy KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJv Z3JhbSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5IYW5kbGUg QHJlZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9s YXllciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFscGhhRnVuYyBhbHBoYV9m dW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNv bG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9ibGVuZCAo c3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0YW50 X2NvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENv Z2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9j b2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNHViICh1aW50OCBy ZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9y IGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXIg KGludCBsYXllcl9pbmRleCwgQ29nbC5IYW5kbGUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4 LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29tYmluZV9jb25zdGFudCAoaW50IGxheWVy X2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfZmlsdGVycyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsRmlsdGVyIG1pbl9maWx0 ZXIsIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgbWFnX2ZpbHRlcik7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQg c2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdHJpeCBtYXRyaXgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX3BvaW50X3Nw cml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wgZW5hYmxlKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBt b2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9t b2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAoaW50 IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5k ZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29s b3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2Vy X3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXllciB7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVi bGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGlj IENvZ2wuSGFuZGxlIGdldF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFs TGF5ZXJUeXBlIGdldF90eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2ds Lk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV9wICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV9zICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBf bW9kZV90ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIHR5cGVfaWQgPSAiY29nbF9vYmplY3RfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBhYnN0 cmFjdCBjbGFzcyBPYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJcHJvdGVjdGVkIE9iamVjdCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2Zmc2NyZWVuX2dldF9n dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgT2Zmc2NyZWVuIDogQ29nbC5PYmplY3QsIENvZ2wu RnJhbWVidWZmZXIgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorLQkJcHJvdGVjdGVkIE9mZnNjcmVlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCog QHJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgT2Zmc2NyZWVuLnRvX3RleHR1cmUgKENvZ2wuVGV4 dHVyZSB0ZXh0dXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB1bnJlZiAodm9pZCogb2Zm c2NyZWVuKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CXB1YmxpYyBPZmZzY3JlZW4ud2l0aF90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9 ICJjb2dsX29uc2NyZWVuX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgT25zY3JlZW4g OiBDb2dsLk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgT25zY3JlZW4gKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuT25zY3JlZW5EaXJ0eUNsb3N1 cmUgYWRkX2RpcnR5X2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUp XSBDb2dsLk9uc2NyZWVuRGlydHlDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ry b3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgYWRkX3Jlc2l6ZV9jYWxsYmFjayAoW0ND b2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlblJlc2l6ZUNhbGxi YWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwg c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVpbnQgYWRkX3N3YXBfYnVmZmVyc19jYWxsYmFj ayAoQ29nbC5Td2FwQnVmZmVyc05vdGlmeSBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHZv aWQgY2x1dHRlcl9iYWNrZW5kX3NldF9zaXplX0NMVVRURVIgKGludCB3aWR0aCwgaW50IGhlaWdo dCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIGludCBnZXRfYnVm ZmVyX2FnZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgaW50 NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgQ29nbC5Cb29sIGdldF9yZXNpemFibGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBoaWRlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9kaXJ0eV9jYWxsYmFjayAoQ29nbC5PbnNj cmVlbkRpcnR5Q2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CistCQlwdWJsaWMgdm9pZCByZW1vdmVfZnJhbWVfY2FsbGJhY2sgKENvZ2wuRnJhbWVDbG9zdXJl IGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg cmVtb3ZlX3Jlc2l6ZV9jYWxsYmFjayAoQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgY2xvc3Vy ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9zd2FwX2J1ZmZl cnNfY2FsbGJhY2sgKHVpbnQgaWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAoQ29nbC5Cb29sIHJlc2l6YWJsZSk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzaG93ICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfYnVmZmVycyAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnNf d2l0aF9kYW1hZ2UgKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzd2FwX3JlZ2lvbiAoaW50IHJl Y3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJl ZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xfb25zY3JlZW5fZGly dHlfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBjbGFzcyBPbnNjcmVlbkRpcnR5Q2xvc3VyZSB7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlv biA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVf aWQgPSAiY29nbF9vbnNjcmVlbl9yZXNpemVfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKy0JW0Nv bXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIGNsYXNzIE9uc2Ny ZWVuUmVzaXplQ2xvc3VyZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9ndHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgUGlwZWxpbmUgOiBDb2dsLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUGlwZWxpbmUgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZSBjb3B5ICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZm9yZWFjaF9s YXllciAoQ29nbC5QaXBlbGluZUxheWVyQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVBbHBoYUZ1bmMgZ2V0X2Fs cGhhX3Rlc3RfZnVuY3Rpb24gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rlc3RfcmVmZXJlbmNlICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1i aWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Db2xv ciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg Q29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBnZXRfY3VsbF9mYWNl X21vZGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBn ZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5XaW5kaW5nIGdl dF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21hZ19maWx0ZXIgKGludCBs YXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENv Z2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21pbl9maWx0ZXIgKGludCBsYXllcl9pbmRleCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9s YXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJl IGdldF9sYXllcl90ZXh0dXJlIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3Jh cF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42Iild CistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcyAo aW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1Ymxp YyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJf aW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIGludCBnZXRf bl9sYXllcnMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29n bC5Cb29sIGdldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAo Q29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9uIChzdHJpbmcgdW5pZm9ybV9uYW1lKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkhhbmRsZSBnZXRfdXNl cl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLlBp cGVsaW5lQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29n bC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2JsZW5kIChz dHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFudCAoQ29nbC5Db2xv ciBjb25zdGFudF9jb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQg Z3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVl biwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21h c2spOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2N1 bGxfZmFjZV9tb2RlIChDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGN1bGxfZmFjZV9tb2RlKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNl IChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9udF9mYWNlX3dpbmRp bmcgKENvZ2wuV2luZGluZyBmcm9udF93aW5kaW5nKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9p bmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29tYmluZV9jb25z dGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfZmlsdGVycyAoaW50 IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lRmlsdGVyIG1pbl9maWx0ZXIsIENvZ2wuUGlwZWxp bmVGaWx0ZXIgbWFnX2ZpbHRlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdHJp eCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9sYXllcl9udWxsX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5UZXh0dXJlVHlw ZSB0ZXh0dXJlX3R5cGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5 ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGlj IHZvaWQgc2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5UZXh0dXJlIHRl eHR1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUg bW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2Rl IG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9k ZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1v ZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5C b29sIHNldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBH TGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X3BvaW50X3NpemUgKGZsb2F0IHBvaW50X3NpemUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxh ciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xZiAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGZsb2F0 IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF91bmlmb3JtXzFpIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IHZhbHVlKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtX2Zsb2F0IChp bnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IG5fY29tcG9uZW50cywgaW50IGNvdW50LCBmbG9hdCB2 YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf dW5pZm9ybV9pbnQgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9jb21wb25lbnRzLCBpbnQg Y291bnQsIGludCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgZGlt ZW5zaW9ucywgaW50IGNvdW50LCBDb2dsLkJvb2wgdHJhbnNwb3NlLCBmbG9hdCB2YWx1ZSk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9wcm9n cmFtIChDb2dsLkhhbmRsZSBwcm9ncmFtKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCist CXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfZnJhbWVidWZmZXJfZ2V0X2d0eXBl ICgpIildCistCXB1YmxpYyBpbnRlcmZhY2UgRnJhbWVidWZmZXIgOiBDb2dsLk9iamVjdCB7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRl ICgpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIHZvaWQgY2xlYXIgKHVsb25nIGJ1ZmZlcnMsIENvZ2wuQ29sb3IgY29sb3IpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY2xlYXI0ZiAodWxvbmcg YnVmZmVycywgZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgZGlzY2FyZF9i dWZmZXJzICh1bG9uZyBidWZmZXJzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgdm9pZCBkcmF3X211bHRpdGV4dHVyZWRfcmVjdGFuZ2xlIChDb2dsLlBpcGVsaW5l IHBpcGVsaW5lLCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhf Y29vcmRzX2xlbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZv aWQgZHJhd19yZWN0YW5nbGUgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGZsb2F0IHhfMSwgZmxv YXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgZHJhd19yZWN0YW5nbGVzIChDb2dsLlBpcGVsaW5lIHBpcGVs aW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSBjb29yZGluYXRlcywg dWludCBuX3JlY3RhbmdsZXMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIGRyYXdfdGV4dHVyZWRfcmVjdGFuZ2xlIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5l LCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIGZsb2F0IHNfMSwg ZmxvYXQgdF8xLCBmbG9hdCBzXzIsIGZsb2F0IHRfMik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd190ZXh0dXJlZF9yZWN0YW5nbGVzIChDb2dsLlBp cGVsaW5lIHBpcGVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSBj b29yZGluYXRlcywgdWludCBuX3JlY3RhbmdsZXMpOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIg ZXJyb3JfcXVhcmsgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgZmluaXNoICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZs b2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9hbHBoYV9iaXRzICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGludCBnZXRfYmx1ZV9iaXRzICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9jb2xv cl9tYXNrICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIGludCBn ZXRfZGVwdGhfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJs aWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2RlcHRoX3RleHR1cmUgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGV4dHVy ZV9lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBD b2dsLkJvb2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9kaXRoZXJfZW5hYmxlZCAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2dyZWVuX2JpdHMg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9oZWln aHQgKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9pc19zdGVyZW8gKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdf bWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2ds Lk1hdHJpeCBnZXRfcHJvamVjdGlvbl9tYXRyaXggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgaW50IGdldF9yZWRfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF9zYW1wbGVzX3Blcl9waXhlbCAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIwIildCistCQlwdWJsaWMgQ29nbC5TdGVyZW9Nb2RlIGdl dF9zdGVyZW9fbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyB2b2lkIGdldF92aWV3cG9ydDRmdiAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIG91 dCB1bm93bmVkIGZsb2F0IHZpZXdwb3J0WzRdKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfdmlld3BvcnRfaGVpZ2h0ICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92aWV3cG9ydF93aWR0aCAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfdmlld3Bv cnRfeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBn ZXRfdmlld3BvcnRfeSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyBpbnQgZ2V0X3dpZHRoICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIGlkZW50aXR5X21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBm bG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92 X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcG9wX2NsaXAgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcG9wX21hdHJpeCAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwdXNoX21hdHJpeCAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwdXNoX3Jl Y3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hfc2Np c3Nvcl9jbGlwIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVscyAo aW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQgZm9y bWF0LCB1aW50OCBwaXhlbHMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4LCBpbnQgeSwgQ29n bC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXApOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgcmVzb2x2ZV9zYW1wbGVzICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgcmVzb2x2ZV9zYW1w bGVzX3JlZ2lvbiAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5n bGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJu aW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHop OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9y X21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKENvZ2wu Qm9vbCBlbmFibGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMg dm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoQ29nbC5Cb29sIGRlcHRoX3dyaXRlX2VuYWJs ZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Rp dGhlcl9lbmFibGVkIChDb2dsLkJvb2wgZGl0aGVyX2VuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChDb2ds Lk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9wcm9qZWN0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zYW1wbGVzX3Blcl9w aXhlbCAoaW50IHNhbXBsZXNfcGVyX3BpeGVsKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIw IildCistCQlwdWJsaWMgdm9pZCBzZXRfc3RlcmVvX21vZGUgKENvZ2wuU3RlcmVvTW9kZSBzdGVy ZW9fbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBz ZXRfdmlld3BvcnQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5zZm9y bSAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAi Y29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIFRleHR1cmUg OiBDb2dsLk9iamVjdCB7CistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBH TGliLkVycm9yOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuVGV4dHVyZUNvbXBvbmVu dHMgZ2V0X2NvbXBvbmVudHMgKCk7CistCQlwdWJsaWMgaW50IGdldF9kYXRhIChDb2dsLlBpeGVs Rm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJcHVibGljIENv Z2wuQm9vbCBnZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0IHVpbnQg b3V0X2dsX3RhcmdldCk7CistCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGlj IGludCBnZXRfbWF4X3dhc3RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0J CXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7CistCQlwdWJsaWMgdWludCBn ZXRfd2lkdGggKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGlzX3NsaWNlZCAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9iaXRtYXAg KENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxG b3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3Rh dGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQsIENv Z2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhl bEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2Zp bGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxG b3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44 IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9mb3JlaWduICh1aW50 IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCB1aW50 IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x OCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9zdWJf dGV4dHVyZSAoaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJfaGVp Z2h0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBu ZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3Mg ZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9uZW50cyAoQ29nbC5UZXh0 dXJlQ29tcG9uZW50cyBjb21wb25lbnRzKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2RhdGEg KENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhLCBpbnQg bGV2ZWwpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9wcmVtdWx0aXBsaWVkIChDb2dsLkJvb2wgcHJlbXVsdGlwbGll ZCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9yZWdpb24gKGludCBzcmNfeCwgaW50IHNyY195 LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dz dHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVi bGljIENvZ2wuQm9vbCBzZXRfcmVnaW9uX2Zyb21fYml0bWFwIChpbnQgc3JjX3gsIGludCBzcmNf eSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQs IENvZ2wuQml0bWFwIGJpdG1hcCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtTaW1wbGVUeXBlXQorLQlwdWJsaWMgc3RydWN0IEFuZ2xlIDog aW50MzIgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbU2ltcGxlVHlwZV0KKy0JcHVibGljIHN0cnVjdCBCb29sIDogaW50IHsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xf Y29sb3JfZ2V0X2d0eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0cnVjdCBDb2xvciB7CistCQlwdWJsaWMgQ29nbC5Db2xvcj8gY29weSAoKTsKKy0JCXB1 YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGVxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQkJcHVi bGljIGZsb2F0IGdldF9hbHBoYSAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfYWxwaGFfYnl0ZSAo KTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGFfZmxvYXQgKCk7CistCQlwdWJsaWMgZmxvYXQg Z2V0X2JsdWUgKCk7CistCQlwdWJsaWMgdWludDggZ2V0X2JsdWVfYnl0ZSAoKTsKKy0JCXB1Ymxp YyBmbG9hdCBnZXRfYmx1ZV9mbG9hdCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfZ3JlZW4gKCk7 CistCQlwdWJsaWMgdWludDggZ2V0X2dyZWVuX2J5dGUgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0 X2dyZWVuX2Zsb2F0ICgpOworLQkJcHVibGljIGZsb2F0IGdldF9yZWQgKCk7CistCQlwdWJsaWMg dWludDggZ2V0X3JlZF9ieXRlICgpOworLQkJcHVibGljIGZsb2F0IGdldF9yZWRfZmxvYXQgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21f NGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV80ZnYg KGZsb2F0IGNvbG9yX2FycmF5KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB2b2lkIGluaXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJs dWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJs aWMgc3RhdGljIHZvaWQgaW5pdF9mcm9tX2hzbCAob3V0IENvZ2wuQ29sb3IgY29sb3IsIGZsb2F0 IGh1ZSwgZmxvYXQgc2F0dXJhdGlvbiwgZmxvYXQgbHVtaW5hbmNlKTsKKy0JCXB1YmxpYyB2b2lk IHByZW11bHRpcGx5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2FscGhhIChmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfYnl0ZSAodWludDggYWxwaGEpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhX2Zsb2F0IChm bG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBzZXRfYmx1ZSAoZmxvYXQgYmx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0IChmbG9hdCBibHVl KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzRmIChmbG9hdCBy ZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4s IHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2dyZWVuX2J5dGUgKHVpbnQ4IGdyZWVu KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ncmVl bl9mbG9hdCAoZmxvYXQgZ3JlZW4pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3JlZCAoZmxvYXQgcmVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZWRfYnl0ZSAodWludDggcmVkKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZWRfZmxvYXQgKGZsb2F0 IHJlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgdG9f aHNsIChvdXQgZmxvYXQgaHVlLCBvdXQgZmxvYXQgc2F0dXJhdGlvbiwgb3V0IGZsb2F0IGx1bWlu YW5jZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCB1bnBy ZW11bHRpcGx5ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCXB1YmxpYyBzdHJ1Y3QgRGVidWdPYmplY3RUeXBlSW5mbyB7CistCQlwdWJsaWMgd2VhayBz dHJpbmcgbmFtZTsKKy0JCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3VudDsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1NpbXBsZVR5cGVdCist CXB1YmxpYyBzdHJ1Y3QgSGFuZGxlIHsKKy0JCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGdldF90 eXBlICgpOworLQkJcHVibGljIENvZ2wuSGFuZGxlIEByZWYgKCk7CistCQlwdWJsaWMgdm9pZCB1 bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCB0eXBlX2lkID0gImNvZ2xfbWF0cml4X2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgc3RydWN0 IE1hdHJpeCB7CistCQlwdWJsaWMgZmxvYXQgeHg7CistCQlwdWJsaWMgZmxvYXQgeXg7CistCQlw dWJsaWMgZmxvYXQgeng7CistCQlwdWJsaWMgZmxvYXQgd3g7CistCQlwdWJsaWMgZmxvYXQgeHk7 CistCQlwdWJsaWMgZmxvYXQgeXk7CistCQlwdWJsaWMgZmxvYXQgenk7CistCQlwdWJsaWMgZmxv YXQgd3k7CistCQlwdWJsaWMgZmxvYXQgeHo7CistCQlwdWJsaWMgZmxvYXQgeXo7CistCQlwdWJs aWMgZmxvYXQgeno7CistCQlwdWJsaWMgZmxvYXQgd3o7CistCQlwdWJsaWMgZmxvYXQgeHc7Cist CQlwdWJsaWMgZmxvYXQgeXc7CistCQlwdWJsaWMgZmxvYXQgenc7CistCQlwdWJsaWMgZmxvYXQg d3c7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5NYXRyaXg/ IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgc3RhdGlj IENvZ2wuQm9vbCBlcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdm9pZCBmcnVz dHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZs b2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQkJcHVibGljIHVub3duZWQgZmxvYXRbXSBnZXRf YXJyYXkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5C b29sIGdldF9pbnZlcnNlIChvdXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7CistCQlwdWJsaWMgdm9p ZCBpbml0X2Zyb21fZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJcHVibGljIHZvaWQgaW5p dF9mcm9tX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfdHJhbnNsYXRpb24gKGZs b2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBpc19pZGVudGl0eSAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlvbl94 LCBmbG9hdCBleWVfcG9zaXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9iamVj dF94LCBmbG9hdCBvYmplY3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gsIGZs b2F0IHdvcmxkX3VwX3ksIGZsb2F0IHdvcmxkX3VwX3opOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIG9y dGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZs b2F0IG5lYXIsIGZsb2F0IGZhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgb3J0aG9ncmFwaGljIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8y LCBmbG9hdCB5XzIsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCQlwdWJsaWMgdm9pZCBwZXJz cGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6 X2Zhcik7CistCQlwdWJsaWMgdm9pZCBwcm9qZWN0X3BvaW50cyAoaW50IG5fY29tcG9uZW50cywg c2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3RyaWRlX291dCwgdm9p ZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxv YXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVy KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9x dWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CistCQlwdWJsaWMgdm9pZCBz Y2FsZSAoZmxvYXQgc3gsIGZsb2F0IHN5LCBmbG9hdCBzeik7CistCQlwdWJsaWMgdm9pZCB0cmFu c2Zvcm1fcG9pbnQgKHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBm bG9hdCB3KTsKKy0JCXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludHMgKGludCBuX2NvbXBvbmVu dHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQs IHZvaWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7CistCQlwdWJsaWMgdm9pZCB0cmFuc2xh dGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5zcG9zZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHZpZXdfMmRfaW5fZnJ1c3R1bSAoZmxvYXQgbGVmdCwg ZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0 IHpfMmQsIGZsb2F0IHdpZHRoXzJkLCBmbG9hdCBoZWlnaHRfMmQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgdmlld18yZF9pbl9wZXJzcGVjdGl2ZSAoZmxv YXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6XzJkLCBmbG9hdCB3 aWR0aF8yZCwgZmxvYXQgaGVpZ2h0XzJkKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0cnVjdCBPbnNjcmVlbkRpcnR5SW5mbyB7CistCQlw dWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgaW50IHdpZHRoOworLQkJ cHVibGljIGludCBoZWlnaHQ7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgVGV4dHVy ZVZlcnRleCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5OworLQkJcHVi bGljIGZsb2F0IHo7CistCQlwdWJsaWMgZmxvYXQgdHg7CistCQlwdWJsaWMgZmxvYXQgdHk7Cist CQlwdWJsaWMgQ29nbC5Db2xvciBjb2xvcjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RydWN0IFVzZXJEYXRhS2V5IHsKKy0JCXB1YmxpYyBp bnQgdW51c2VkOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNuYW1lID0gIl9Db2dsQ29sb3JTaXplQ2hlY2siLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JcHVibGljIHN0cnVjdCBfQ29sb3JTaXplQ2hlY2sgeworLQkJW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBjaGFyW10gY29tcGlsZV90aW1lX2Fzc2VydF9D b2dsQ29sb3Jfc2l6ZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjbmFtZSA9ICJfQ29nbE1hdHJpeFNpemVDaGVjayIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlwdWJsaWMgc3RydWN0IF9NYXRyaXhTaXplQ2hlY2sgeworLQkJW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBjaGFyW10gY29tcGlsZV90aW1lX2Fz c2VydF9Db2dsTWF0cml4X3NpemU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiX0NvZ2xUZXh0dXJlVmVydGV4U2l6ZUNoZWNrIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgX1RleHR1cmVWZXJ0ZXhTaXplQ2hl Y2sgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBj aGFyW10gY29tcGlsZV90aW1lX2Fzc2VydF9Db2dsVGV4dHVyZVZlcnRleF9zaXplOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9BVFRSSUJVVEVfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBBdHRyaWJ1dGVUeXBlIHsKKy0JCUJZVEUsCist CQlVTlNJR05FRF9CWVRFLAorLQkJU0hPUlQsCistCQlVTlNJR05FRF9TSE9SVCwKKy0JCUZMT0FU CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX0JJVE1BUF9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBCaXRtYXBFcnJvciB7CistCQlGQUlM RUQsCistCQlVTktOT1dOX1RZUEUsCistCQlDT1JSVVBUX0lNQUdFCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0JMRU5EX1NU UklOR19FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgZW51bSBCbGVuZFN0cmluZ0Vycm9yIHsKKy0JCVBBUlNFX0VSUk9S LAorLQkJQVJHVU1FTlRfUEFSU0VfRVJST1IsCistCQlJTlZBTElEX0VSUk9SLAorLQkJR1BVX1VO U1VQUE9SVEVEX0VSUk9SOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgcXVhcmsgKCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX0JVRkZFUl9CSVRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBCdWZmZXJCaXQgeworLQkJQ09M T1IsCistCQlERVBUSCwKKy0JCVNURU5DSUwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51 bSBCdWZmZXJUYXJnZXQgeworLQkJV0lORE9XX0JVRkZFUiwKKy0JCU9GRlNDUkVFTl9CVUZGRVIK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4 ID0gIkNPR0xfQ09MT1JfTUFTS18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQor LQlwdWJsaWMgZW51bSBDb2xvck1hc2sgeworLQkJTk9ORSwKKy0JCVJFRCwKKy0JCUdSRUVOLAor LQkJQkxVRSwKKy0JCUFMUEhBLAorLQkJQUxMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0RFUFRIX1RFU1RfRlVOQ1RJT05f IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIERlcHRoVGVzdEZ1bmN0aW9u IHsKKy0JCU5FVkVSLAorLQkJTEVTUywKKy0JCUVRVUFMLAorLQkJTEVRVUFMLAorLQkJR1JFQVRF UiwKKy0JCU5PVEVRVUFMLAorLQkJR0VRVUFMLAorLQkJQUxXQVlTCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjAuOCIpXQorLQlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9SRUNUQU5H TEUsCistCQlURVhUVVJFX05QT1QsCistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9Q SVhFTFMsCistCQlTSEFERVJTX0dMU0wsCistCQlPRkZTQ1JFRU4sCistCQlPRkZTQ1JFRU5fTVVM VElTQU1QTEUsCistCQlPRkZTQ1JFRU5fQkxJVCwKKy0JCUZPVVJfQ0xJUF9QTEFORVMsCistCQlT VEVOQ0lMX0JVRkZFUiwKKy0JCVZCT1MsCistCQlQQk9TLAorLQkJVU5TSUdORURfSU5UX0lORElD RVMsCistCQlERVBUSF9SQU5HRSwKKy0JCVRFWFRVUkVfTlBPVF9CQVNJQywKKy0JCVRFWFRVUkVf TlBPVF9NSVBNQVAsCistCQlURVhUVVJFX05QT1RfUkVQRUFULAorLQkJUE9JTlRfU1BSSVRFLAor LQkJVEVYVFVSRV8zRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1JFQUQsCistCQlNQVBfQlVGRkVSX0ZP Ul9XUklURSwKKy0JCU9OU0NSRUVOX01VTFRJUExFLAorLQkJREVQVEhfVEVYVFVSRQorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIEZpbHRlclJl dHVybiB7CistCQlDT05USU5VRSwKKy0JCVJFTU9WRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GT0dfTU9ERV8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg ZW51bSBGb2dNb2RlIHsKKy0JCUxJTkVBUiwKKy0JCUVYUE9ORU5USUFMLAorLQkJRVhQT05FTlRJ QUxfU1FVQVJFRAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRV9FVkVOVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JcHVibGljIGVudW0gRnJhbWVFdmVudCB7 CistCQlTWU5DLAorLQkJQ09NUExFVEUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRlJBTUVCVUZGRVJfRVJST1JfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIEZyYW1lYnVmZmVyRXJyb3IgeworLQkJ W0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZSQU1FQlVGRkVSX0VSUk9SX0FMTE9DQVRFIildCistCQlG UkFNRUJVRkZFUl9FUlJPUl9BTExPQ0FURTsKKy0JCXB1YmxpYyBzdGF0aWMgdWludDMyIHF1YXJr ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZUEVfVU5TSUdORURfIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCistCXB1YmxpYyBlbnVtIEluZGljZXNUeXBlIHsKKy0JCUJZVEUsCistCQlTSE9SVCwKKy0J CUlOVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9NQVRFUklBTF9BTFBIQV9GVU5DXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbEFscGhhRnVuYyB7CistCQlORVZFUiwKKy0JCUxFU1Ms CistCQlFUVVBTCwKKy0JCUxFUVVBTCwKKy0JCUdSRUFURVIsCistCQlOT1RFUVVBTCwKKy0JCUdF UVVBTCwKKy0JCUFMV0FZUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9GSUxURVJfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsRmlsdGVyIHsKKy0JCU5FQVJFU1QsCist CQlMSU5FQVIsCistCQlORUFSRVNUX01JUE1BUF9ORUFSRVNULAorLQkJTElORUFSX01JUE1BUF9O RUFSRVNULAorLQkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorLQkJTElORUFSX01JUE1BUF9MSU5F QVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbExheWVy VHlwZSB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV9URVhU VVJFIildCistCQlNQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxf V1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsV3JhcE1vZGUgeworLQkJUkVQRUFULAorLQkJ Q0xBTVBfVE9fRURHRSwKKy0JCUFVVE9NQVRJQworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElORV9BTFBIQV9GVU5D XyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZUFscGhhRnVu YyB7CistCQlORVZFUiwKKy0JCUxFU1MsCistCQlFUVVBTCwKKy0JCUxFUVVBTCwKKy0JCUdSRUFU RVIsCistCQlOT1RFUVVBTCwKKy0JCUdFUVVBTCwKKy0JCUFMV0FZUworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElO RV9DVUxMX0ZBQ0VfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0g UGlwZWxpbmVDdWxsRmFjZU1vZGUgeworLQkJTk9ORSwKKy0JCUZST05ULAorLQkJQkFDSywKKy0J CUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfUElQRUxJTkVfRklMVEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlwdWJsaWMgZW51bSBQaXBlbGluZUZpbHRlciB7CistCQlORUFSRVNULAorLQkJTElORUFSLAor LQkJTkVBUkVTVF9NSVBNQVBfTkVBUkVTVCwKKy0JCUxJTkVBUl9NSVBNQVBfTkVBUkVTVCwKKy0J CU5FQVJFU1RfTUlQTUFQX0xJTkVBUiwKKy0JCUxJTkVBUl9NSVBNQVBfTElORUFSCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X1BJUEVMSU5FX1dSQVBfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZVdyYXBNb2RlIHsKKy0JCVJF UEVBVCwKKy0JCU1JUlJPUkVEX1JFUEVBVCwKKy0JCUNMQU1QX1RPX0VER0UsCistCQlBVVRPTUFU SUMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfUElYRUxfRk9STUFUXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxh Z3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIGVudW0gUGl4ZWxGb3Jt YXQgeworLQkJQU5ZLAorLQkJQV84LAorLQkJUkdCXzU2NSwKKy0JCVJHQkFfNDQ0NCwKKy0JCVJH QkFfNTU1MSwKKy0JCVlVViwKKy0JCUdfOCwKKy0JCVJHXzg4LAorLQkJUkdCXzg4OCwKKy0JCUJH Ul84ODgsCistCQlSR0JBXzg4ODgsCistCQlCR1JBXzg4ODgsCistCQlBUkdCXzg4ODgsCistCQlB QkdSXzg4ODgsCistCQlSR0JBXzEwMTAxMDIsCistCQlCR1JBXzEwMTAxMDIsCistCQlBUkdCXzIx MDEwMTAsCistCQlBQkdSXzIxMDEwMTAsCistCQlSR0JBXzg4ODhfUFJFLAorLQkJQkdSQV84ODg4 X1BSRSwKKy0JCUFSR0JfODg4OF9QUkUsCistCQlBQkdSXzg4ODhfUFJFLAorLQkJUkdCQV80NDQ0 X1BSRSwKKy0JCVJHQkFfNTU1MV9QUkUsCistCQlSR0JBXzEwMTAxMDJfUFJFLAorLQkJQkdSQV8x MDEwMTAyX1BSRSwKKy0JCUFSR0JfMjEwMTAxMF9QUkUsCistCQlBQkdSXzIxMDEwMTBfUFJFLAor LQkJREVQVEhfMTYsCistCQlERVBUSF8zMiwKKy0JCURFUFRIXzI0X1NURU5DSUxfOAorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9SRUFEX1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIFJlYWRQaXhlbHNGbGFn cyB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfUkVBRF9QSVhFTFNfQ09MT1JfQlVGRkVSIild CistCQlSRUFEX1BJWEVMU19DT0xPUl9CVUZGRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUkVOREVSRVJfRVJST1JfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFJlbmRlcmVyRXJyb3IgeworLQkJ WExJQl9ESVNQTEFZX09QRU4sCistCQlCQURfQ09OU1RSQUlOVAorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9TSEFERVJfVFlQ RV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgZW51bSBTaGFkZXJUeXBlIHsKKy0JCVZFUlRFWCwKKy0JCUZSQUdNRU5UCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX1NURVJFT18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gU3RlcmVv TW9kZSB7CistCQlCT1RILAorLQkJTEVGVCwKKy0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1NZU1RFTV9FUlJP Ul8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor LQlwdWJsaWMgZW51bSBTeXN0ZW1FcnJvciB7CistCQlVTlNVUFBPUlRFRCwKKy0JCU5PX01FTU9S WQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9URVhUVVJFX0NPTVBPTkVOVFNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBlbnVtIFRleHR1cmVDb21wb25l bnRzIHsKKy0JCUEsCistCQlSRywKKy0JCVJHQiwKKy0JCVJHQkEsCistCQlERVBUSAorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9URVhUVVJFX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCXB1YmxpYyBlbnVtIFRleHR1cmVFcnJvciB7CistCQlTSVpFLAorLQkJ Rk9STUFULAorLQkJQkFEX1BBUkFNRVRFUiwKKy0JCVRZUEU7CistCQlwdWJsaWMgc3RhdGljIHVp bnQzMiBxdWFyayAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIFRl eHR1cmVGbGFncyB7CistCQlOT05FLAorLQkJTk9fQVVUT19NSVBNQVAsCistCQlOT19TTElDSU5H LAorLQkJTk9fQVRMQVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgZW51bSBUZXh0dXJl VHlwZSB7CistCQlAMkQsCistCQlAM0QsCistCQlSRUNUQU5HTEUKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVkVSVElDRVNf TU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgZW51bSBWZXJ0aWNlc01vZGUgeworLQkJUE9JTlRTLAorLQkJTElORVMsCist CQlMSU5FX0xPT1AsCistCQlMSU5FX1NUUklQLAorLQkJVFJJQU5HTEVTLAorLQkJVFJJQU5HTEVf U1RSSVAsCistCQlUUklBTkdMRV9GQU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfV0lORElOR18iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JcHVibGljIGVudW0gV2luZGluZyB7CistCQlDTE9DS1dJU0UsCistCQlDT1VO VEVSX0NMT0NLV0lTRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9XSU5TWVNfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKy0JcHVibGljIGVudW0gV2luc3lzRmVhdHVyZSB7CistCQlNVUxUSVBMRV9PTlNDUkVF TiwKKy0JCVNXQVBfVEhST1RUTEUsCistCQlWQkxBTktfQ09VTlRFUiwKKy0JCVZCTEFOS19XQUlU LAorLQkJVEVYVFVSRV9GUk9NX1BJWE1BUCwKKy0JCVNXQVBfQlVGRkVSU19FVkVOVCwKKy0JCVNX QVBfUkVHSU9OLAorLQkJU1dBUF9SRUdJT05fVEhST1RUTEUsCistCQlTV0FQX1JFR0lPTl9TWU5D SFJPTklaRUQsCistCQlCVUZGRVJfQUdFLAorLQkJU1lOQ19BTkRfQ09NUExFVEVfRVZFTlQsCist CQlOX0ZFQVRVUkVTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgKENv Z2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBNYXRlcmlhbExheWVyQ2FsbGJhY2sgKENvZ2wu TWF0ZXJpYWwgbWF0ZXJpYWwsIGludCBsYXllcl9pbmRleCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuRGlydHlD YWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNjcmVlbkRpcnR5SW5mbyBp bmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFu Y2VfcG9zID0gMy45KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgZGVs ZWdhdGUgdm9pZCBPbnNjcmVlblJlc2l6ZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVu LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9p ZCBPbnNjcmVlblgxMU1hc2tDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMy IGV2ZW50X21hc2spOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1 YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgUGlwZWxpbmVMYXllckNhbGxiYWNrIChDb2dsLlBpcGVs aW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdh dGUgdm9pZCBTd2FwQnVmZmVyc05vdGlmeSAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190YXJnZXQg PSBmYWxzZSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFVzZXJEYXRhRGVzdHJveUNhbGxiYWNr ICh2b2lkKiBkYXRhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY25hbWUgPSAiQ09HTF9BRklSU1RfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgQUZJUlNU X0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUg PSAiQ09HTF9BX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IEFfQklUOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0JHUl9CSVQiKV0K Ky0JcHVibGljIGNvbnN0IGludCBCR1JfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0RFUFRIX0JJVCIpXQorLQlwdWJsaWMgY29u c3QgaW50IERFUFRIX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY25hbWUgPSAiQ09HTF9QUkVNVUxUX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBS RU1VTFRfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj bmFtZSA9ICJDT0dMX1NURU5DSUxfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgU1RFTkNJTF9C SVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0g IkNPR0xfVEVYVFVSRV9NQVhfV0FTVEUiKV0KKy0JcHVibGljIGNvbnN0IGludCBURVhUVVJFX01B WF9XQVNURTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBiZWdpbl9nbCAoKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLkJvb2wgY2hlY2tfZXh0ZW5zaW9uIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgY2xlYXIgKENvZ2wuQ29sb3IgY29sb3IsIHVsb25nIGJ1ZmZlcnMpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLkJvb2wgY2x1dHRlcl9jaGVja19leHRlbnNpb25fQ0xVVFRFUiAoc3RyaW5nIG5hbWUs IHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl93aW5zeXNfaGFzX2ZlYXR1cmVf Q0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfbWF0cml4X3ByaW50IChDb2dsLk1hdHJpeCBtYXRy aXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfb2JqZWN0 X2ZvcmVhY2hfdHlwZSAoQ29nbC5EZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgZnVuYyk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19vYmplY3RfcHJp bnRfaW5zdGFuY2VzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfZm9nICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIGVuZF9nbCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGZlYXR1cmVz X2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZmx1c2ggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBm bG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wg Z2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF9iaXRtYXNr cyAob3V0IGludCByZWQsIG91dCBpbnQgZ3JlZW4sIG91dCBpbnQgYmx1ZSwgb3V0IGludCBhbHBo YSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGVzdF9lbmFibGVkICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRf ZHJhd19mcmFtZWJ1ZmZlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5GZWF0dXJl RmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfbW9kZWx2aWV3 X21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRf b3B0aW9uX2dyb3VwICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfcHJvamVjdGlvbl9tYXRy aXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQqIGdldF9zb3VyY2UgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgZ2V0X3ZpZXdwb3J0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gb3V0 IGZsb2F0IHZbNF0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTgiKV0KKy0JcHVibGljIHN0YXRpYyBHTGliLlR5cGUgZ3R5cGVfbWF0cml4X2dldF90eXBlICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfZnJhbWVi dWZmZXIgKHZvaWQqIG9iamVjdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuQm9vbCBpc19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfcGlwZWxpbmUgKHZvaWQqIG9iamVjdCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc192ZXJ0ZXhfYnVmZmVyX2luZGljZXMg KENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgb3J0aG8g KGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQg bmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92eSwg ZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVyZVZlcnRleCB2ZXJ0 aWNlcywgdWludCBuX3ZlcnRpY2VzLCBDb2dsLkJvb2wgdXNlX2NvbG9yKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBwb3BfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvcF9zb3VyY2Ug KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgcHVzaF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGUg KGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF9tdWx0aXRleHR1cmVf Y29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50IHRleF9jb29yZHNf bGVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZV93 aXRoX3RleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5 MiwgZmxvYXQgdHgxLCBmbG9hdCB0eTEsIGZsb2F0IHR4MiwgZmxvYXQgdHkyKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXMgKFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjAuOC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzX3dpdGhfdGV4dHVyZV9j b29yZHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50 IG5fcmVjdHMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZs b2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBm bG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChDb2ds LkJvb2wgc2V0dGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoQ29n bC5Cb29sIHNldHRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9mb2cgKENvZ2wuQ29sb3IgZm9nX2Nv bG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQgZGVuc2l0eSwgZmxvYXQgel9uZWFyLCBmbG9h dCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4 IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0cml4IChDb2dsLk1hdHJp eCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2UgKHZvaWQq IG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9y IChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291 cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFs cGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNHViICh1 aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4 dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2lu Y2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdmlld3BvcnQgKGludCB4LCBp bnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfY29tcGls ZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgc3RyaW5nIHNoYWRlcl9nZXRfaW5mb19s b2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuU2hhZGVyVHlwZSBzaGFkZXJf Z2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBzaGFkZXJf aXNfY29tcGlsZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIHNo YWRlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3NvdXJj ZSAoQ29nbC5IYW5kbGUgc2hhZGVyLCBzdHJpbmcgc291cmNlKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFk ZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBD b2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9 ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9k YXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2ds LlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGlu dCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRl eHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVy ZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdM aWIuRXJyb3I7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIs IHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25l d19mcm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3RhcmdldCwgdWludCB3aWR0 aCwgdWludCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rfd2FzdGUsIENvZ2wu UGl4ZWxGb3JtYXQgZm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJl IHRleHR1cmVfbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4 dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuNCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJpeCBtYXRyaXgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0 dHJpYnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0cmlidXRlVHlwZSB0eXBl LCBDb2dsLkJvb2wgbm9ybWFsaXplZCwgdWludDE2IHN0cmlkZSwgdm9pZCogcG9pbnRlcik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kZWxldGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3Ry aW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2Rpc2FibGUg KENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCB2ZXJ0ZXhfYnVmZmVyX2RyYXcgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01v ZGUgbW9kZSwgaW50IGZpcnN0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZm ZXJfZHJhd19lbGVtZW50cyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBt b2RlLCBDb2dsLkhhbmRsZSBpbmRpY2VzLCBpbnQgbWluX2luZGV4LCBpbnQgbWF4X2luZGV4LCBp bnQgaW5kaWNlc19vZmZzZXQsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZl cl9lbmFibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdWludCB2ZXJ0ZXhfYnVmZmVyX2dldF9uX3ZlcnRpY2VzIChDb2dsLkhhbmRsZSBoYW5k bGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X2Zvcl9x dWFkcyAodWludCBuX2luZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkluZGljZXNUeXBlIHZlcnRleF9i dWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNlcyk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuSGFuZGxlIHZlcnRleF9idWZmZXJfbmV3ICh1aW50IG5fdmVydGljZXMpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuSGFuZGxlIHZlcnRleF9idWZmZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHZlcnRleF9idWZmZXJfc3VibWl0IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgdmVydGV4X2J1ZmZlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjguMiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdmlld3BvcnQgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBz dGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfdmlzdWFsX3hpZCAoQ29nbC5PbnNjcmVlbiBv bnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFf b25zY3JlZW5fZ2V0X3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX29uc2NyZWVuX3NldF9mb3JlaWdu X3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQzMiB4aWQsIFtDQ29kZSAo c2NvcGUgPSAiYXN5bmMiKV0gQ29nbC5PbnNjcmVlblgxMU1hc2tDYWxsYmFjayB1cGRhdGUpOwor LX0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52YWxhIHZhcGkvbXV0 dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCBiOGQ4MzhkMC4uMDAwMDAwMDAKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTUtY3VzdG9tLnZh bGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDE1OCArMCwwIEBACistbmFtZXNwYWNlIENsdXR0ZXIg eworLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9BQ1RPUl9CT1giLCBjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgc3RydWN0IEFjdG9y Qm94IHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2JveF9mcm9tX3ZlcnRp Y2VzIildCistICAgIHB1YmxpYyBBY3RvckJveC5mcm9tX3ZlcnRpY2VzIChDbHV0dGVyLlZlcnRl eFtdIHZlcnRzKTsKKy0gIH0KKy0KKy0gIHB1YmxpYyBzdHJ1Y3QgTWF0cml4IDogQ29nbC5NYXRy aXggeworLSAgfQorLQorLSAgcHVibGljIGNsYXNzIEJhY2tlbmQgOiBHTGliLk9iamVjdCB7Cist ICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRkX29wdGlvbnMgKEdM aWIuT3B0aW9uR3JvdXAgZ3JvdXApOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmly dHVhbCBib29sIGNyZWF0ZV9jb250ZXh0ICgpIHRocm93cyBHTGliLkVycm9yOworLSAgICBbTm9X cmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VXaW5kb3cg Y3JlYXRlX3N0YWdlIChDbHV0dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93cyBHTGliLkVycm9yOwor LSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGVuc3VyZV9jb250ZXh0 IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZp cnR1YWwgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RldmljZV9tYW5hZ2VyICgp OworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBDbHV0dGVyLkZlYXR1cmVG bGFncyBnZXRfZmVhdHVyZXMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0 dWFsIHZvaWQgaW5pdF9ldmVudHMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2 aXJ0dWFsIHZvaWQgaW5pdF9mZWF0dXJlcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVi bGljIHZpcnR1YWwgYm9vbCBwb3N0X3BhcnNlICgpIHRocm93cyBHTGliLkVycm9yOworLSAgICBb Tm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYXJzZSAoKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdm9pZCBy ZWRyYXcgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLSAgfQorLQorLSAgW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JveF9n ZXRfdHlwZSAoKSIpXQorLSAgcHVibGljIGNsYXNzIEJveCA6IENsdXR0ZXIuQWN0b3IgeworLSAg ICBwdWJsaWMgQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIGxheW91dF9tYW5hZ2VyIHsgZ2V0OyBzZXQ7 IH0KKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1IiLCBj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgc3RydWN0 IENvbG9yIHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21faGxzIild CistICAgIHB1YmxpYyBDb2xvci5mcm9tX2hscyAoZmxvYXQgaHVlLCBmbG9hdCBsdW1pbmFuY2Us IGZsb2F0IHNhdHVyYXRpb24pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3Jf ZnJvbV9waXhlbCIpXQorLSAgICBwdWJsaWMgQ29sb3IuZnJvbV9waXhlbCAodWludDMyIHBpeGVs KTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3RyaW5nIildCist ICAgIHB1YmxpYyBDb2xvci5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CistICAgIFtDQ29kZSAo Y25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3N0cmluZyIpXQorLSAgICBwdWJsaWMgYm9vbCBw YXJzZV9zdHJpbmcgKHN0cmluZyBzdHIpOworLSAgICBwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1 dHRlci5Db2xvcj8gZ2V0X3N0YXRpYyAoQ2x1dHRlci5TdGF0aWNDb2xvciBjb2xvcik7CistICB9 CistCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfY29udGFpbmVyX2dldF90eXBlICgpIildCistICBwdWJsaWMgaW50 ZXJmYWNlIENvbnRhaW5lciA6IEdMaWIuT2JqZWN0IHsKKy0gICAgcHVibGljIHZvaWQgYWRkIChw YXJhbXMgQ2x1dHRlci5BY3RvcltdIGFjdG9ycyk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1 dHRlcl9jb250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0eSIpXQorLSAgICBwdWJsaWMg Y2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcg cHJvcGVydHlfbmFtZSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJf Y2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIildCistICAgIHB1YmxpYyBjbGFzcyB1bm93bmVk IEdMaWIuUGFyYW1TcGVjW10gbGlzdF9jaGlsZF9wcm9wZXJ0aWVzICgpOworLSAgfQorLQorLSAg W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9nZXRfdHlwZSAoKSIpXQorLSAgW0NvbXBhY3RdCistICBw dWJsaWMgY2xhc3MgRXZlbnQgeworLSAgICBwdWJsaWMgQ2x1dHRlci5BbnlFdmVudCBhbnkgeyBb Q0NvZGUgKGNuYW1lID0gIihDbHV0dGVyQW55RXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1Ymxp YyBDbHV0dGVyLkJ1dHRvbkV2ZW50IGJ1dHRvbiB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJC dXR0b25FdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuQ3Jvc3NpbmdFdmVu dCBjcm9zc2luZyB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJDcm9zc2luZ0V2ZW50ICopIild IGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5LZXlFdmVudCBrZXkgeyBbQ0NvZGUgKGNuYW1l ID0gIihDbHV0dGVyS2V5RXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLk1v dGlvbkV2ZW50IG1vdGlvbiB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJNb3Rpb25FdmVudCAq KSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuU2Nyb2xsRXZlbnQgc2Nyb2xsIHsgW0ND b2RlIChjbmFtZSA9ICIoQ2x1dHRlclNjcm9sbEV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJs aWMgQ2x1dHRlci5TdGFnZVN0YXRlRXZlbnQgc3RhZ2Vfc3RhdGUgeyBbQ0NvZGUgKGNuYW1lID0g IihDbHV0dGVyU3RhZ2VTdGF0ZUV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRl ci5Ub3VjaEV2ZW50IHRvdWNoIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNoRXZlbnQg KikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlRvdWNocGFkUGluY2hFdmVudCB0b3Vj aHBhZF9waW5jaCB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaHBhZFBpbmNoRXZlbnQg KikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlRvdWNocGFkU3dpcGVFdmVudCB0b3Vj aHBhZF9zd2lwZSB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaHBhZFN3aXBlRXZlbnQg KikiKV0gZ2V0OyB9CistICB9CistCistICBbQ0NvZGUgKHR5cGVfaWQgPSAiY2x1dHRlcl9zdGFn ZV9nZXRfdHlwZSAoKSIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0gIHB1YmxpYyBjbGFzcyBTdGFnZSA6IENsdXR0ZXIuR3JvdXAgeworLSAgICBbQ0NvZGUgKGNu YW1lID0gImNsdXR0ZXJfcmVkcmF3IildCistICAgIHB1YmxpYyB2b2lkIHJlZHJhdyAoKTsKKy0g IH0KKy0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLSAgcHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKy0gICAg W05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlwIChD bHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistICAgIFtOb1dyYXBwZXJdCistICAg IHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9t ZXRyeSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0X3Bl bmRpbmdfc3dhcHMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB1 bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dyYXBwZXIgKCk7CistICAgIFtOb1dyYXBwZXJdCist ICAgIHB1YmxpYyBhYnN0cmFjdCBib29sIGhhc19yZWRyYXdfY2xpcHMgKCk7CistICAgIFtOb1dy YXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGhpZGUgKCk7CistICAgIFtOb1dyYXBw ZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBib29sIGlnbm9yaW5nX3JlZHJhd19jbGlwcyAoKTsK Ky0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IGJvb2wgcmVhbGl6ZSAoKTsK Ky0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVzaXplIChpbnQg d2lkdGgsIGludCBoZWlnaHQpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJh Y3Qgdm9pZCBzZXRfY3Vyc29yX3Zpc2libGUgKGJvb2wgY3Vyc29yX3Zpc2libGUpOworLSAgICBb Tm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9v bCBpc19mdWxsc2NyZWVuKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0 IHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBw dWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdXNlcl9yZXNpemFibGUgKGJvb2wgaXNfcmVzaXphYmxl KTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoYm9v bCBkb19yYWlzZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lk IHVucmVhbGl6ZSAoKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJjbHV0dGVyX3Rl eHR1cmVfZ2V0X3R5cGUgKCkiLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistICBwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IgeworLSAgICBwdWJs aWMgQ29nbC5NYXRlcmlhbCBjb2dsX21hdGVyaWFsIHsgZ2V0OyBzZXQ7IH0KKy0gICAgcHVibGlj IENvZ2wuVGV4dHVyZSBjb2dsX3RleHR1cmUgeyBnZXQ7IHNldDsgfQorLSAgfQorLQorLSAgW0Nv bXBhY3RdCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0gIHB1YmxpYyBjbGFzcyBUaW1lb3V0UG9vbCB7CistICAgIFtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0gICAgcHVibGljIFRpbWVvdXRQb29sIChpbnQgcHJp b3JpdHkpOworLSAgfQorLQorLSAgW0NDb2RlIChjcHJlZml4ID0gIkNMVVRURVJfRkVBVFVSRV8i LCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBbRmxhZ3NdCist ICBwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLSAgICBURVhUVVJFX05QT1Q7CistICAgIFtD Q29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0dXJlX2F2YWlsYWJsZSIpXQorLSAgICBwdWJsaWMg Ym9vbCBpc19hdmFpbGFibGUgKCk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0 dXJlX2dldF9hbGwiKV0KKy0gICAgcHVibGljIHN0YXRpYyBDbHV0dGVyLkZlYXR1cmVGbGFncyBA Z2V0ICgpOworLSAgfQorLQorLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9VTklU UyIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBz dHJ1Y3QgVW5pdHMgeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9j bSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9jbSAoZmxvYXQgY20pOworLSAgICBbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9lbSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJv bV9lbSAoZmxvYXQgZW0pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJv bV9lbV9mb3JfZm9udCIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9lbV9mb3JfZm9udCAoc3Ry aW5nIGZvbnRfbmFtZSwgZmxvYXQgZW0pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJf dW5pdHNfZnJvbV9tbSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9tbSAoZmxvYXQgbW0pOwor LSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9waXhlbHMiKV0KKy0gICAg cHVibGljIFVuaXRzLmZyb21fcGl4ZWxzIChpbnQgcHgpOworLSAgICBbQ0NvZGUgKGNuYW1lID0g ImNsdXR0ZXJfdW5pdHNfZnJvbV9wdCIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9wdCAoZmxv YXQgcHQpOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9zdHJpbmci KV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsKKy0gIH0KKy19 CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFsYSB2YXBpL211dHRl ci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK3NpbWlsYXJpdHkgaW5kZXggOTIlCityZW5hbWUgZnJv bSB2YXBpL211dHRlci1jbHV0dGVyLTQtY3VzdG9tLnZhbGEKK3JlbmFtZSB0byB2YXBpL211dHRl ci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK2luZGV4IGI4ZDgzOGQwLi44OTIyNGJlNiAxMDA2NDQK Ky0tLSB2YXBpL211dHRlci1jbHV0dGVyLTQtY3VzdG9tLnZhbGEKKysrKyB2YXBpL211dHRlci1j bHV0dGVyLTYtY3VzdG9tLnZhbGEKK0BAIC0xLDkgKzEsNCBAQAorIG5hbWVzcGFjZSBDbHV0dGVy IHsKKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQUNUT1JfQk9YIiwgY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIHN0cnVjdCBBY3Rv ckJveCB7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ib3hfZnJvbV92ZXJ0 aWNlcyIpXQorLSAgICBwdWJsaWMgQWN0b3JCb3guZnJvbV92ZXJ0aWNlcyAoQ2x1dHRlci5WZXJ0 ZXhbXSB2ZXJ0cyk7CistICB9CisgCisgICBwdWJsaWMgc3RydWN0IE1hdHJpeCA6IENvZ2wuTWF0 cml4IHsKKyAgIH0KK0BAIC0xOCw4ICsxMyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAgICAg W05vV3JhcHBlcl0KKyAgICAgcHVibGljIHZpcnR1YWwgdm9pZCBlbnN1cmVfY29udGV4dCAoQ2x1 dHRlci5TdGFnZSBzdGFnZSk7CisgICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFs IHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKy0g ICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3Mg Z2V0X2ZlYXR1cmVzICgpOworICAgICBbTm9XcmFwcGVyXQorICAgICBwdWJsaWMgdmlydHVhbCB2 b2lkIGluaXRfZXZlbnRzICgpOworQEAgLTgzLDEwICs3Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAKKyAgIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorICAgcHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKy0gICAg W05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlwIChD bHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistICAgIFtOb1dyYXBwZXJdCistICAg IHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9t ZXRyeSk7CisgICAgIFtOb1dyYXBwZXJdCisgICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0X3Bl bmRpbmdfc3dhcHMgKCk7CisgICAgIFtOb1dyYXBwZXJdCitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVy LWNsdXR0ZXItNS5kZXBzIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi5kZXBzCitzaW1pbGFyaXR5IGlu ZGV4IDYzJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci01LmRlcHMKK3JlbmFtZSB0 byB2YXBpL211dHRlci1jbHV0dGVyLTYuZGVwcworaW5kZXggM2Y1YTkyYTYuLjdhNzBkNmRmIDEw MDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS5kZXBzCisrKysgdmFwaS9tdXR0ZXItY2x1 dHRlci02LmRlcHMKK0BAIC0xLDQgKzEsNCBAQAorIGF0aworIGNhaXJvCisganNvbi1nbGliLTEu MAorLW11dHRlci1jb2dsLTUKKyttdXR0ZXItY29nbC02CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVy LWNsdXR0ZXItNS52YXBpIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi52YXBpCitzaW1pbGFyaXR5IGlu ZGV4IDkzJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci01LnZhcGkKK3JlbmFtZSB0 byB2YXBpL211dHRlci1jbHV0dGVyLTYudmFwaQoraW5kZXggMjRmN2Y2YjEuLjAxMzBhOTNjIDEw MDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS52YXBpCisrKysgdmFwaS9tdXR0ZXItY2x1 dHRlci02LnZhcGkKK0BAIC0xLDYgKzEsNiBAQAorLS8qIG11dHRlci1jbHV0dGVyLTUudmFwaSBn ZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY2x1dHRl ci02LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0ND b2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJf dmVyc2lvbiA9ICI1IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisrW0NDb2Rl IChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVy c2lvbiA9ICI2IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisgbmFtZXNwYWNl IENsdXR0ZXIgeworIAluYW1lc3BhY2UgS2V5IHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNuYW1lID0gIkNMVVRURVJfS0VZXzAiKV0KK0BAIC00 NjYxLDIyICs0NjYxLDE0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFs bG9jYXRlX3ByZWZlcnJlZF9zaXplIChDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5p bWF0ZSAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfYWxwaGEg KENsdXR0ZXIuQWxwaGEgYWxwaGEsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX2FscGhhdiAoQ2x1dHRlci5B bHBoYSBhbHBoYSwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwg YXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJy YXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUp XSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfdGltZWxpbmUgKHVsb25nIG1vZGUs IENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX3RpbWVsaW5ldiAo dWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgW0NDb2RlIChhcnJheV9sZW5n dGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0cmlu Z1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGll cyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRl diAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUg PSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0cmluZ1tdIHByb3Bl cnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5 X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBseV9yZWxhdGl2ZV90 cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBDbHV0dGVyLlZlcnRl eCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBhcHBseV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9p bnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBHcmFwaGVuZS5Qb2ludDNEIHBvaW50LCBvdXQg dW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVi bGljIHZpcnR1YWwgdm9pZCBhcHBseV90cmFuc2Zvcm0gKHJlZiBDbHV0dGVyLk1hdHJpeCBtYXRy aXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVy dGV4IGFwcGx5X3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJ cHVibGljIHZvaWQgYXBwbHlfdHJhbnNmb3JtX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBv aW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGljIHZvaWQgYmluZF9tb2RlbCAoR0xpYi5MaXN0TW9k ZWw/IG1vZGVsLCBvd25lZCBDbHV0dGVyLkFjdG9yQ3JlYXRlQ2hpbGRGdW5jIGNyZWF0ZV9jaGls ZF9mdW5jKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00Njg4LDIwICs0Njgw LDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChDbHV0dGVyLkFjdG9yIGRlc2NlbmRhbnQpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY29udGludWVfcGFpbnQg KCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQg cGFpbnRfY29udGV4dCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9waWNrIChDbHV0dGVyLlBp Y2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgUGFuZ28uQ29udGV4dCBjcmVhdGVfcGFuZ29fY29udGV4dCAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5MYXlvdXQgY3JlYXRlX3Bhbmdv X2xheW91dCAoc3RyaW5nPyB0ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgdm9pZCBkZXN0cm95X2FsbF9jaGlsZHJlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdm9pZCBkZXRhY2hfYW5pbWF0aW9uICgpOworIAkJW0NDb2RlIChjbmFtZSA9 ICJjbHV0dGVyX2FjdG9yX2V2ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisg CQlwdWJsaWMgYm9vbCBlbWl0X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIGNhcHR1 cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Fi c19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1 dHRlci5WZXJ0ZXggdmVydHNbNF0pOworKwkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9u X3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQz RCB2ZXJ0c1s0XSk7CisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIEF0ay5PYmplY3QgZ2V0X2Fj Y2Vzc2libGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFjdGlvbiBnZXRfYWN0aW9uIChzdHJpbmcgbmFtZSk7CitAQCAtNDcwOSwx NiArNDcwMCwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgR0xpYi5MaXN0PHdl YWsgQ2x1dHRlci5BY3Rpb24+IGdldF9hY3Rpb25zICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggZ2V0X2FsbG9jYXRpb25fYm94ICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdlb21ldHJ5IGdldF9hbGxv Y2F0aW9uX2dlb21ldHJ5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X2FsbG9jYXRpb25fdmVydGljZXMgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9y LCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVydHNbNF0p OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbmNob3JfcG9pbnQgKG91 dCBmbG9hdCBhbmNob3JfeCwgb3V0IGZsb2F0IGFuY2hvcl95KTsKKysJCXB1YmxpYyB2b2lkIGdl dF9hbGxvY2F0aW9uX3ZlcnRpY2VzIChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldIEdyYXBoZW5lLlBvaW50M0QgdmVydHNbNF0pOworIAkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X2FuY2hvcl9wb2ludF9n cmF2aXR5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu QW5pbWF0aW9uIGdldF9hbmltYXRpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2JhY2tncm91bmRfY29sb3IgKCk7CisgCQlb Q0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0X2FjdG9yX2J5X2dpZCIpXQorQEAgLTQ3NjgsOCAr NDc1Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGdldF9maXhlZF9w b3NpdGlvbl9zZXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg Q2x1dHRlci5BY3RvckZsYWdzIGdldF9mbGFncyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1 YmxpYyB1aW50MzIgZ2V0X2dpZCAoKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rv cl9oYXNfcG9pbnRlciIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGlj IGJvb2wgZ2V0X2hhc19wb2ludGVyICgpOworQEAgLTQ4NDgsOCArNDgzMSw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gZ2V0X3RleHRfZGly ZWN0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBDbHV0 dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtYXRpb25fbWF0cml4ICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludFZvbHVt ZSBnZXRfdHJhbnNmb3JtZWRfcGFpbnRfdm9sdW1lIChDbHV0dGVyLkFjdG9yIHJlbGF0aXZlX3Rv X2FuY2VzdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC00ODkyLDcgKzQ4 NzMsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBoYXNfbWFwcGVkX2Ns b25lcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFs IGJvb2wgaGFzX292ZXJsYXBzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKysJCVtOb1dyYXBwZXJd CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGhpZGVfYWxsICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGluc2VydF9jaGlsZF9hYm92ZSAoQ2x1dHRlci5B Y3RvciBjaGlsZCwgQ2x1dHRlci5BY3Rvcj8gc2libGluZyk7CitAQCAtNDkxMiwxMCArNDg5Myw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGlzX3NjYWxlZCAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJsaWMgYm9vbCBpc192aXNpYmxlICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyIChDbHV0dGVyLkFjdG9yPyBhYm92ZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgbG93ZXJfYm90dG9tICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQor QEAgLTQ5MjgsMTcgKzQ5MDUsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJv b2wgbmVlZHNfZXhwYW5kIChDbHV0dGVyLk9yaWVudGF0aW9uIG9yaWVudGF0aW9uKTsKKyAJCVtO b1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X25vZGUgKENsdXR0ZXIuUGFp bnROb2RlIHJvb3QpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHBpY2tfYm94 IChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCwgQ2x1dHRlci5BY3RvckJveCBib3gp OworIAkJcHVibGljIHZvaWQgcG9wX2ludGVybmFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKyAJ CXB1YmxpYyB2b2lkIHB1c2hfaW50ZXJuYWwgKCk7CisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZWRy YXcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcXVl dWVfcmVkcmF3X3dpdGhfY2xpcCAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgdm9pZCByYWlzZSAoQ2x1dHRlci5BY3Rvcj8gYmVsb3cpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIHJhaXNlX3RvcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyB2b2lkIHJlbW92ZV9hY3Rpb24gKENsdXR0ZXIuQWN0aW9uIGFjdGlvbik7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCitAQCAtNDk2MCw4ICs0OTMyLDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2VmZmVjdF9ieV9uYW1lIChzdHJpbmcgbmFtZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX3Ry YW5zaXRpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgdm9p ZCByZXBhcmVudCAoQ2x1dHRlci5BY3RvciBuZXdfcGFyZW50KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByZXBsYWNlX2NoaWxkIChDbHV0dGVyLkFjdG9y IG9sZF9jaGlsZCwgQ2x1dHRlci5BY3RvciBuZXdfY2hpbGQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KK0BAIC01MDQ2LDggKzUwMTYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgdm9pZCBzZXRfc2NhbGUgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSk7 CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlX2Z1bGwgKGRvdWJs ZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSwgZmxvYXQgY2VudGVyX3gsIGZsb2F0IGNlbnRlcl95 KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfd2l0aF9ncmF2 aXR5IChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3ksIENsdXR0ZXIuR3Jhdml0eSBncmF2 aXR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRf c2NhbGVfeiAoZG91YmxlIHNjYWxlX3opOworIAkJcHVibGljIHZvaWQgc2V0X3NpemUgKGZsb2F0 IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworQEAgLTUxMTAsMTEgKzUwNzgsOCBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wg Y2hpbGRfdHJhbnNmb3JtX3NldCB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQor LQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgY2xpcCB7IG93bmVkIGdldDsgc2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJs aWMgQ2x1dHRlci5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMg R3JhcGhlbmUuUmVjdCBjbGlwX3JlY3QgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgY2xpcF90b19hbGxvY2F0aW9uIHsgZ2V0 OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxOTksMTIgKzUxNjQsMTIgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgb3BhY2l0eSB7IGdldDsgc2V0OyB9 CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCist CQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9Cisr CQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsgfQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCBwaXZvdF9wb2lu dF96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IHBvc2l0aW9uIHsgb3duZWQg Z2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwb3NpdGlvbiB7IG93bmVkIGdl dDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCBy ZWFjdGl2ZSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MjI1LDEz ICs1MTkwLDEzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgcm90YXRp b25fYW5nbGVfeiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3ggeyBv d25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qgcm90YXRpb25fY2Vu dGVyX3ggeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl95IHsg b3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHJvdGF0aW9uX2Nl bnRlcl95IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJfeiB7 IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCByb3RhdGlvbl9j ZW50ZXJfeiB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IHJvdGF0aW9uX2NlbnRlcl96 X2dyYXZpdHkgeyBnZXQ7IHNldDsgfQorQEAgLTUyNTcsNyArNTIyMiw3IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHNob3dfb25fc2V0X3BhcmVudCB7IGdldDsgc2V0OyB9 CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCist CQlwdWJsaWMgQ2x1dHRlci5TaXplIHNpemUgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGlj IEdyYXBoZW5lLlNpemUgc2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIHRleHRfZGlyZWN0 aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUzMTksMTEgKzUy ODQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJv b2wgbW90aW9uX2V2ZW50IChDbHV0dGVyLk1vdGlvbkV2ZW50IGV2ZW50KTsKKyAJCVtIYXNFbWl0 dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBh aW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFp bnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQor IAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFyZW50X3NldCAoQ2x1dHRlci5BY3Rvcj8g b2xkX3BhcmVudCk7CisrCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0ZXIuQ29sb3IgY29s b3IpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGljayAoQ2x1dHRlci5QaWNrQ29u dGV4dCBwaWNrX2NvbnRleHQpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBxdWV1ZV9yZWxheW91dCAo KTsKK0BAIC01MzYxLDYgKzUzMjcsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IGJvb2wgZW5hYmxlZCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7 IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9ub2RlX2dldF90eXBlICgpIildCisrCXB1 YmxpYyBjbGFzcyBBY3Rvck5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIp XQorKwkJcHVibGljIEFjdG9yTm9kZSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2FsaWduX2NvbnN0cmFpbnRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgQWxpZ25Db25zdHJhaW50IDogQ2x1dHRlci5Db25z dHJhaW50IHsKK0BAIC01Mzg4LDE5ICs1MzU5LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsK KyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0X3RpbWVsaW5lICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bG9uZyByZWdpc3Rl cl9jbG9zdXJlIChHTGliLkNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Z1bmMgKENsdXR0ZXIuQWxw aGFGdW5jIGZ1bmMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9zdXJlKTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9mdW5jIChvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb2RlICh1bG9uZyBtb2RlKTsKKyAJCXB1 YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSk7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgQWxwaGEud2l0aF9mdW5jIChDbHV0dGVyLlRpbWVsaW5l IHRpbWVsaW5lLCBvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKyAJCXB1YmxpYyBkb3Vi bGUgYWxwaGEgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1Ymxp YyB1bG9uZyBtb2RlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CitAQCAtNTQxMSwzNSArNTM3NSwy NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1YmxpYyBjbGFzcyBBbmltYXRpb24gOiBHTGli Lk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBBbmltYXRpb24gKCk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5W YWx1ZSBmaW5hbCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kX2lu dGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgb3duZWQgQ2x1dHRlci5JbnRlcnZhbCBpbnRl cnZhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBo YSBnZXRfYWxwaGEgKCk7CisgCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKCk7CisgCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkludGVydmFsIGdldF9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5 X25hbWUpOworIAkJcHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7CisgCQlwdWJsaWMgdWxvbmcgZ2V0 X21vZGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOwor IAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CisgCQlw dWJsaWMgYm9vbCBoYXNfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEp OworIAkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKyAJCXB1YmxpYyB2 b2lkIHNldF9sb29wIChib29sIGxvb3ApOworIAkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25n IG1vZGUpOworIAkJcHVibGljIHZvaWQgc2V0X29iamVjdCAoR0xpYi5PYmplY3Qgb2JqZWN0KTsK KyAJCXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZT8gdGltZWxpbmUp OworLQkJcHVibGljIHZvaWQgdW5iaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7 CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiB1cGRhdGUgKHN0cmluZyBwcm9w ZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB2b2lkIHVwZGF0ZV9pbnRl cnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUsIENsdXR0ZXIuSW50ZXJ2YWwgaW50ZXJ2YWwpOwor KwkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0 ZXIuQWxwaGEgYWxwaGEgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxw aGEgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJcHVibGljIHVpbnQgZHVyYXRpb24geyBnZXQ7IHNl dDsgfQorIAkJcHVibGljIGJvb2wgbG9vcCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWxvbmcg bW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgR0xpYi5PYmplY3Qgb2JqZWN0IHsgZ2V0OyBz ZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIEdMaWIuT2JqZWN0IG9iamVj dCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGlu ZSB7IGdldDsgc2V0OyB9CistCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIGNvbXBsZXRlZCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHN0YXJ0 ZWQgKCk7CisgCX0KK0BAIC01NDYwLDIxICs1NDE1LDE4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXByb3RlY3RlZCBCYWNrZW5kICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgYWRkX29wdGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXApOworLQkJcHVibGlj IHZvaWQgYmVsbF9ub3RpZnkgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwg Ym9vbCBjcmVhdGVfY29udGV4dCAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtOb1dyYXBwZXJd CisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VXaW5kb3cgY3JlYXRlX3N0 YWdlIChDbHV0dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93cyBHTGliLkVycm9yOworIAkJW05vV3Jh cHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRleHQgKENsdXR0ZXIuU3Rh Z2Ugc3RhZ2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1 dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKysJCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuU2VhdCBnZXRfZGVmYXVsdF9zZWF0ICgpOworIAkJW05vV3JhcHBlcl0KKyAJ CXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENhaXJvLkZvbnRP cHRpb25zIGdldF9mb250X29wdGlvbnMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLklu cHV0TWV0aG9kIGdldF9pbnB1dF9tZXRob2QgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LktleW1hcCBnZXRfa2V5bWFwICgpOworIAkJcHVibGljIGRvdWJsZSBnZXRfcmVzb2x1dGlvbiAo KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZXZlbnRzICgp OworQEAgLTU0OTYsOTUgKzU0NDgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIHNldHRpbmdzX2NoYW5n ZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9nZXRfdHlwZSAoKSIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2Ug PSAiMC4yIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCZWhhdmlvdXIgOiBHTGliLk9iamVj dCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCZWhhdmlvdXIgKCk7CistCQlwdWJsaWMgdm9pZCBh Y3RvcnNfZm9yZWFjaCAoQ2x1dHRlci5CZWhhdmlvdXJGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFscGhhX25vdGlmeSAoZG91YmxlIGFs cGhhX3ZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIGFwcGx5IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsK Ky0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5BY3Rvcj4gZ2V0X2FjdG9ycyAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWxwaGEgZ2V0X2FscGhhICgpOworLQkJcHVibGlj IGludCBnZXRfbl9hY3RvcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdl dF9udGhfYWN0b3IgKGludCBpbmRleF8pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQor LQkJcHVibGljIGJvb2wgaXNfYXBwbGllZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJs aWMgdm9pZCByZW1vdmUgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2FsbCAoKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CistCQlwdWJsaWMgQ2x1dHRlci5BbHBo YSBhbHBoYSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhcHBsaWVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIHJlbW92ZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhh dmlvdXJfZGVwdGhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xh c3MgQmVoYXZpb3VyRGVwdGggOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRlci5TY3JpcHRhYmxl IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNs dXR0ZXJCZWhhdmlvdXIqIildCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJs aWMgQmVoYXZpb3VyRGVwdGggKENsdXR0ZXIuQWxwaGE/IGFscGhhLCBpbnQgZGVwdGhfc3RhcnQs IGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2JvdW5kcyAob3V0IGludCBkZXB0aF9zdGFydCwgb3V0IGludCBkZXB0aF9lbmQp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5k cyAoaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGludCBkZXB0aF9lbmQg eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgaW50IGRlcHRoX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfYmVoYXZpb3VyX29wYWNpdHlfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAu MiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyT3BhY2l0eSA6IENsdXR0ZXIuQmVoYXZpb3Vy LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlv dXJPcGFjaXR5IChDbHV0dGVyLkFscGhhPyBhbHBoYSwgdWludDggb3BhY2l0eV9zdGFydCwgdWlu dDggb3BhY2l0eV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2JvdW5kcyAob3V0IHVpbnQ4IG9wYWNpdHlfc3RhcnQsIG91dCB1aW50OCBvcGFj aXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBz ZXRfYm91bmRzICh1aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG9wYWNpdHlfZW5kIHsgZ2V0OyBzZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgb3BhY2l0eV9zdGFydCB7 IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9zY2FsZV9nZXRfdHlwZSAo KSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJTY2FsZSA6IENs dXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0J CXB1YmxpYyBCZWhhdmlvdXJTY2FsZSAoQ2x1dHRlci5BbHBoYT8gYWxwaGEsIGRvdWJsZSB4X3Nj YWxlX3N0YXJ0LCBkb3VibGUgeV9zY2FsZV9zdGFydCwgZG91YmxlIHhfc2NhbGVfZW5kLCBkb3Vi bGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2JvdW5kcyAob3V0IGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBvdXQgZG91YmxlIHlf c2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeF9zY2FsZV9lbmQsIG91dCBkb3VibGUgeV9zY2FsZV9l bmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Jv dW5kcyAoZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBkb3VibGUg eF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeF9zY2FsZV9l bmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHhfc2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCist CQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB5 X3NjYWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmluX2xheW91dF9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBjbGFz cyBCaW5MYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIild CisgCQlwdWJsaWMgQmluTGF5b3V0IChDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduID0gQ2x1 dHRlci5CaW5BbGlnbm1lbnQuU1RBUlQsIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24gPSBD bHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGlj IHZvaWQgYWRkIChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2Fs aWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgb3V0IENs dXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2Fs aWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25tZW50IChD bHV0dGVyLkFjdG9yPyBjaGlsZCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRl ci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiB7IGdldDsg c2V0OyB9CitAQCAtNTc1OCwzNyArNTYyNiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NhaXJv X3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGNsYXNz IENhaXJvVGV4dHVyZSA6IENsdXR0ZXIuVGV4dHVyZSwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVy LkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFj dG9yKiIpXQorLQkJcHVibGljIENhaXJvVGV4dHVyZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQp OworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg Q2Fpcm8uQ29udGV4dCBjcmVhdGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2Fp cm8uQ29udGV4dCBjcmVhdGVfcmVnaW9uIChpbnQgeF9vZmZzZXQsIGludCB5X29mZnNldCwgaW50 IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyBib29sIGdldF9hdXRvX3Jlc2l6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zdXJmYWNl X3NpemUgKG91dCB1aW50IHdpZHRoLCBvdXQgdWludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgaW52YWxpZGF0ZSAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfcmVjdGFuZ2xlIChD YWlyby5SZWN0YW5nbGVJbnQ/IHJlY3QpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2F1dG9fcmVzaXplIChib29sIHZhbHVlKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9zdXJmYWNlX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBib29sIGF1dG9fcmVzaXplIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV9oZWln aHQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBz dXJmYWNlX3dpZHRoIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBDYWlyby5TdXJmYWNlIGNyZWF0ZV9zdXJmYWNlICh1 aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBkcmF3IChDYWlyby5Db250ZXh0IGNyKTsKKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfY2FudmFzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBDYW52YXMgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5D b250ZW50IHsKK0BAIC01OTIwLDYyICs1NzU3LDI0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVibGljIGRvdWJs ZSBmYWN0b3IgeyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZXZpY2VfbWFuYWdlcl9n ZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBhYnN0 cmFjdCBjbGFzcyBEZXZpY2VNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERldmljZU1hbmFnZXIg KCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfZGV2aWNlIChD bHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGlu Z3Mgc2V0dGluZ3MpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29t cHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2Nh cmQpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZpY2UgY3JlYXRl X3ZpcnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7Cist CQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2NvcmVfZGV2 aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZWZhdWx0ICgpOworLQkJcHVi bGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9kZXZpY2UgKGludCBk ZXZpY2VfaWQpOworLQkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVy LktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlcl9h MTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJ cHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsRGV2aWNlVHlwZSBnZXRfc3VwcG9ydGVkX3Zp cnR1YWxfZGV2aWNlX3R5cGVzICgpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVy LklucHV0RGV2aWNlPiBsaXN0X2RldmljZXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLlNM aXN0PENsdXR0ZXIuSW5wdXREZXZpY2U+IHBlZWtfZGV2aWNlcyAoKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHJlbW92ZV9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZp Y2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNlbGVj dF9zdGFnZV9ldmVudHMgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJcHVibGljIHZvaWQgc2V0 X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7Cist CQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0ZXIu UG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0 aW5ncyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkJhY2tlbmQg YmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg ZGV2aWNlX2FkZGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgZGV2aWNlX3JlbW92ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9mbGFnc19jaGFuZ2VkICh1aW50IHNldHRpbmdz X2ZsYWdzLCB1aW50IGNoYW5nZWRfbWFzayk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2Ex MXlfbW9kc19zdGF0ZV9jaGFuZ2VkICh1aW50IGxhdGNoZWRfbWFzaywgdWludCBsb2NrZWRfbWFz ayk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZV9jaGFu Z2VkIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdGFydGVkIChDbHV0dGVyLklucHV0 RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlw ZSwgdWludCBkZWxheSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9z dG9wcGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRp bWVvdXRUeXBlIHRpbWVvdXRfdHlwZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgdG9vbF9jaGFu Z2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZVRvb2wg cDApOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcmFnX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBEcmFnQWN0aW9uIDogQ2x1dHRl ci5BY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5 cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1YmxpYyBEcmFnQWN0aW9uICgpOworLQkJcHVi bGljIGJvb2wgZ2V0X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0IGRyYWdfYXJlYSk7CisrCQlwdWJs aWMgYm9vbCBnZXRfZHJhZ19hcmVhIChHcmFwaGVuZS5SZWN0IGRyYWdfYXJlYSk7CisgCQlwdWJs aWMgQ2x1dHRlci5EcmFnQXhpcyBnZXRfZHJhZ19heGlzICgpOworIAkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BY3RvciBnZXRfZHJhZ19oYW5kbGUgKCk7CisgCQlwdWJsaWMgdm9pZCBnZXRfZHJh Z190aHJlc2hvbGQgKG91dCB1aW50IHhfdGhyZXNob2xkLCBvdXQgdWludCB5X3RocmVzaG9sZCk7 CisgCQlwdWJsaWMgdm9pZCBnZXRfbW90aW9uX2Nvb3JkcyAob3V0IGZsb2F0IG1vdGlvbl94LCBv dXQgZmxvYXQgbW90aW9uX3kpOworIAkJcHVibGljIHZvaWQgZ2V0X3ByZXNzX2Nvb3JkcyAob3V0 IGZsb2F0IHByZXNzX3gsIG91dCBmbG9hdCBwcmVzc195KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9k cmFnX2FyZWEgKENsdXR0ZXIuUmVjdD8gZHJhZ19hcmVhKTsKKysJCXB1YmxpYyB2b2lkIHNldF9k cmFnX2FyZWEgKEdyYXBoZW5lLlJlY3Q/IGRyYWdfYXJlYSk7CisgCQlwdWJsaWMgdm9pZCBzZXRf ZHJhZ19heGlzIChDbHV0dGVyLkRyYWdBeGlzIGF4aXMpOworIAkJcHVibGljIHZvaWQgc2V0X2Ry YWdfaGFuZGxlIChDbHV0dGVyLkFjdG9yPyBoYW5kbGUpOworIAkJcHVibGljIHZvaWQgc2V0X2Ry YWdfdGhyZXNob2xkIChpbnQgeF90aHJlc2hvbGQsIGludCB5X3RocmVzaG9sZCk7CisgCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMg Q2x1dHRlci5SZWN0IGRyYWdfYXJlYSB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3Jh cGhlbmUuUmVjdCBkcmFnX2FyZWEgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JN ZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgZHJh Z19hcmVhX3NldCB7IGdldDsgfQorQEAgLTYwMTEsMTMgKzU4MTAsMTMgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgbW9kaWZ5X3Bh aW50X3ZvbHVtZSAoQ2x1dHRlci5QYWludFZvbHVtZSB2b2x1bWUpOworIAkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBm bGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4 dCBwYWludF9jb250ZXh0LCBDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworIAkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5FZmZlY3RQYWlu dEZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5QaWNr Q29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgcG9zdF9wYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAo Q2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBib29s IHByZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZXBhaW50ICgpOwor IAl9CitAQCAtNjA2OCw3ICs1ODY3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHVpbnQgZ2V0X21vZGVfZ3JvdXAgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfcGFkX2V2ZW50X2Rl dGFpbHMgKG91dCB1aW50IG51bWJlciwgb3V0IHVpbnQgbW9kZSwgb3V0IGRvdWJsZSB2YWx1ZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3Bvc2l0 aW9uIChDbHV0dGVyLlBvaW50IHBvc2l0aW9uKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb3NpdGlv biAoR3JhcGhlbmUuUG9pbnQgcG9zaXRpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcmVsYXRlZCAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNjMwOCw3ICs2MTA3LDcgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wg Z2V0X2F4aXNfdmFsdWUgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBkb3VibGVbXSBh eGVzLCBDbHV0dGVyLklucHV0QXhpcyBheGlzLCBvdXQgZG91YmxlIHZhbHVlKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgYm9vbCBnZXRfY29vcmRzIChDbHV0dGVy LkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlLCBDbHV0dGVyLlBvaW50IHBvaW50KTsKKysJCXB1Ymxp YyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UsIEdyYXBo ZW5lLlBvaW50IHBvaW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1Ymxp YyBpbnQgZ2V0X2RldmljZV9pZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BA IC02MzIyLDcgKzYxMjEsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBn ZXRfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9ncmFiYmVkX2FjdG9yICgpOworLQkJcHVibGljIGlu dCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGludCBn ZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KKyAJCXB1YmxpYyBib29sIGdldF9oYXNfY3Vyc29yICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorQEAgLTYzNDQsMTYgKzYxNDMsMTcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TdGFnZSBnZXRfcG9pbnRlcl9zdGFnZSAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X3Byb2R1Y3RfaWQgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0X3NlYXQg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgR0xpYi5MaXN0PHdl YWsgQ2x1dHRlci5JbnB1dERldmljZT4gZ2V0X3NsYXZlX2RldmljZXMgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF92ZW5kb3Jf aWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZ3Jh YiAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgYm9vbCBpc19ncm91cGVkIChDbHV0 dGVyLklucHV0RGV2aWNlIG90aGVyX2RldmljZSk7CistCQlwdWJsaWMgYm9vbCBpc19tb2RlX3N3 aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKysJCXB1YmxpYyB2aXJ0dWFs IGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvdGhlcl9kZXZpY2UpOworKwkJ cHVibGljIHZpcnR1YWwgYm9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVp bnQgYnV0dG9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9v bCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQgZXZkZXZfa2V5 Y29kZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWNvZGVfdG9fZXZkZXYgKHVpbnQgaGFy ZHdhcmVfa2V5Y29kZSwgdWludCBldmRldl9rZXljb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIHNlcXVlbmNlX2dldF9n cmFiYmVkX2FjdG9yIChDbHV0dGVyLkV2ZW50U2VxdWVuY2Ugc2VxdWVuY2UpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC02MzY5LDEyICs2MTY5LDExIEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHVuZ3JhYiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHVwZGF0ZV9mcm9tX2V2ZW50IChDbHV0dGVyLkV2ZW50 IGV2ZW50LCBib29sIHVwZGF0ZV9zdGFnZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZp cnR1YWwgdm9pZCB1cGRhdGVfZnJvbV90b29sIChDbHV0dGVyLklucHV0RGV2aWNlVG9vbCB0b29s KTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor IAkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor LQkJcHVibGljIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBkZXZpY2VfbWFuYWdlciB7IG93bmVkIGdl dDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dE1vZGUgZGV2aWNlX21vZGUg eyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHN0cmluZyBkZXZpY2Vfbm9kZSB7IGdldDsg Y29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCitAQCAtNjM5Nyw2ICs2 MTk2LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHN0cmluZyBuYW1lIHsgb3du ZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlw dWJsaWMgc3RyaW5nIHByb2R1Y3RfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIENs dXR0ZXIuU2VhdCBzZWF0IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5nIHZlbmRvcl9pZCB7IGdldDsgY29uc3RydWN0OyB9 CisgCX0KK0BAIC02NDM0LDcgKzYyMzQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgdm9pZCBzZXRfY2FuX3Nob3dfcHJlZWRpdCAoYm9vbCBjYW5fc2hvd19wcmVlZGl0KTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9jb250ZW50X2hpbnRzIChDbHV0dGVyLklucHV0Q29udGVudEhpbnRG bGFncyBoaW50KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X3B1cnBvc2UgKENsdXR0ZXIu SW5wdXRDb250ZW50UHVycG9zZSBwdXJwb3NlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jdXJzb3Jf bG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIHNldF9jdXJzb3Jf bG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRf cGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRlKTsKKyAJCVtOb1dyYXBw ZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9wcmVlZGl0X3RleHQgKHN0cmluZyBwcmVl ZGl0LCB1aW50IGN1cnNvcik7CitAQCAtNjQ1Myw3ICs2MjUzLDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVzZXQgKCk7Cisg CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9u IChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9jdXJzb3Jf bG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRf cGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRlKTsKKyAJCXB1YmxpYyB2 b2lkIHNldF9wcmVlZGl0X3RleHQgKHN0cmluZz8gcHJlZWRpdCwgdWludCBjdXJzb3IpOworIAkJ W05vV3JhcHBlcl0KK0BAIC02NDcwLDcgKzYyNzAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgQ2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIGNvbnRlbnRfcHVycG9zZSB7IGdl dDsgc2V0OyB9CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjb21taXQg KHN0cmluZyB0ZXh0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbG9jYXRpb25fY2hh bmdlZCAoQ2x1dHRlci5SZWN0IG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29y X2xvY2F0aW9uX2NoYW5nZWQgKEdyYXBoZW5lLlJlY3Qgb2JqZWN0KTsKKyAJCVtIYXNFbWl0dGVy XQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAodWludCBvZmZzZXQs IHVpbnQgbGVuKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBpbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1 dHRlci5JbnB1dFBhbmVsU3RhdGUgb2JqZWN0KTsKK0BAIC02NTQ2LDI3ICs2MzQ2LDMxIEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCXByb3RlY3RlZCBLZXltYXAgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBib29sIGdl dF9jYXBzX2xvY2tfc3RhdGUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBQYW5nby5EaXJlY3Rpb24g Z2V0X2RpcmVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X251bV9sb2NrX3N0 YXRlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHN0YXRlX2NoYW5nZWQgKCk7CisgCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2xheWVyX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIExheWVy Tm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMgTGF5 ZXJOb2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uLCBDYWlyby5SZWN0YW5nbGUgdmlld3BvcnQs IGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIHVpbnQ4IG9wYWNpdHkpOworKwl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9sYXlvdXRfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBMYXlvdXRNYW5hZ2VyIDogR0xpYi5Jbml0 aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKyAJCXByb3RlY3RlZCBMYXlvdXRNYW5hZ2VyICgpOworIAkJcHVibGljIHZpcnR1YWwgdm9p ZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yQm94 IGFsbG9jYXRpb24sIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4yIildCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQWxwaGEgYmVnaW5fYW5p bWF0aW9uICh1aW50IGR1cmF0aW9uLCB1bG9uZyBtb2RlKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxk X2dldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAu Li4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5l ciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBH TGliLlZhbHVlIHZhbHVlKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX3NldCAoQ2x1dHRlci5Db250 YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZv aWQgY2hpbGRfc2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0 ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsK KyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuTGF5b3V0 TWV0YSBjcmVhdGVfY2hpbGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0 dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisrCQlbTm9XcmFwcGVyXQorIAkJ cHVibGljIHZpcnR1YWwgdm9pZCBlbmRfYW5pbWF0aW9uICgpOworIAkJcHVibGljIHVub3duZWQg R0xpYi5QYXJhbVNwZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIG5hbWUpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjIiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCBkb3VibGUgZ2V0 X2FuaW1hdGlvbl9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJ CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1dHRl ci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKK0BAIC02NjIzLDEy ICs2NDI3LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBPZmZzY3JlZW5F ZmZlY3QgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBDb2dsLkhhbmRsZSBjcmVhdGVfdGV4dHVyZSAo ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIp XQorLQkJcHVibGljIGJvb2wgZ2V0X3RhcmdldF9yZWN0IChvdXQgdW5vd25lZCBDbHV0dGVyLlJl Y3QgcmVjdCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91dCB1bm93bmVkIEdy YXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGJvb2wgZ2V0 X3RhcmdldF9zaXplIChvdXQgZmxvYXQgd2lkdGgsIG91dCBmbG9hdCBoZWlnaHQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdl dF90ZXh0dXJlICgpOworLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludF90YXJnZXQgKCk7Cisr CQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X3RhcmdldCAoQ2x1dHRlci5QYWludENvbnRleHQg cGFpbnRfY29udGV4dCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhZ2VfdHVybl9lZmZlY3RfZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTY2NDUsNiArNjQ0OSwx NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHBlcmlvZCB7IGdldDsg c2V0OyB9CisgCQlwdWJsaWMgZmxvYXQgcmFkaXVzIHsgZ2V0OyBzZXQ7IH0KKyAJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCByZWZfZnVuY3Rpb24g PSAiY2x1dHRlcl9wYWludF9jb250ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWludF9j b250ZXh0X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9wYWludF9jb250 ZXh0X3VucmVmIildCisrCVtDb21wYWN0XQorKwlwdWJsaWMgY2xhc3MgUGFpbnRDb250ZXh0IHsK KysJCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkZyYW1l YnVmZmVyIGdldF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHBvcF9mcmFtZWJ1ZmZl ciAoKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hfZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIg ZnJhbWVidWZmZXIpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludENvbnRleHQgQHJl ZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWludF9u b2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1Ymxp YyBhYnN0cmFjdCBjbGFzcyBQYWludE5vZGUgeworQEAgLTY2NTQsNyArNjQ2OCw4IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFkZF9tdWx0aXRleHR1cmVfcmVjdGFuZ2xl IChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHRleHRfY29vcmRzLCB1aW50IHRleHRfY29v cmRzX2xlbik7CisgCQlwdWJsaWMgdm9pZCBhZGRfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94 IHJlY3QpOworIAkJcHVibGljIHZvaWQgYWRkX3RleHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFj dG9yQm94IHJlY3QsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7 CistCQlwdWJsaWMgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVi dWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcGFpbnQgKENsdXR0ZXIu UGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5Q YWludE5vZGUgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChzdHJpbmcgbmFtZSk7 CisgCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKK0BAIC02NjcyLDcgKzY0ODcsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgZmxv YXQgZ2V0X2hlaWdodCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1Ymxp YyBDbHV0dGVyLlZlcnRleCBnZXRfb3JpZ2luICgpOworKwkJcHVibGljIHZvaWQgZ2V0X29yaWdp biAob3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KK0BAIC02NjgyLDcgKzY0OTcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfaGVp Z2h0IChmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVi bGljIHZvaWQgc2V0X29yaWdpbiAoQ2x1dHRlci5WZXJ0ZXggb3JpZ2luKTsKKysJCXB1YmxpYyB2 b2lkIHNldF9vcmlnaW4gKEdyYXBoZW5lLlBvaW50M0Qgb3JpZ2luKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF93aWR0aCAoZmxvYXQgd2lkdGgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY3NjksMjYgKzY1ODQsMTkgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuUGF0aCBwYXRoIHsgZ2V0OyBzZXQ7 IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBub2RlX3JlYWNoZWQgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIHVpbnQgaW5kZXgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF9yZWYi LCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19jb250ZXh0X2dldF90eXBlICgpIiwgdW5yZWZfZnVu Y3Rpb24gPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1 YmxpYyBjbGFzcyBQaWNrQ29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworKwkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5QaWNrQ29udGV4dCBAcmVmICgpOworKwkJcHVibGljIHZv aWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpcGVsaW5lX25vZGVfZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFBpcGVsaW5l Tm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBQaXBlbGluZU5vZGUgKCk7CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlv biA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVf aWQgPSAiY2x1dHRlcl9wb2ludF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFBvaW50IHsKKy0JCXB1YmxpYyBm bG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuUG9p bnQgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBjb3B5ICgpOworLQkJcHVibGlj IGZsb2F0IGRpc3RhbmNlIChDbHV0dGVyLlBvaW50IGIsIG91dCBmbG9hdCB4X2Rpc3RhbmNlLCBv dXQgZmxvYXQgeV9kaXN0YW5jZSk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuUG9p bnQgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5Qb2ludCBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBDbHV0dGVyLlBvaW50IHplcm8gKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Byb3BlcnR5X3RyYW5z aXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVi bGljIGNsYXNzIFByb3BlcnR5VHJhbnNpdGlvbiA6IENsdXR0ZXIuVHJhbnNpdGlvbiwgQ2x1dHRl ci5TY3JpcHRhYmxlIHsKK0BAIC02Nzk4LDMzICs2NjA2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHZvaWQgc2V0X3Byb3BlcnR5X25hbWUgKHN0cmluZz8gcHJvcGVydHlfbmFt ZSk7CisgCQlwdWJsaWMgc3RyaW5nIHByb3BlcnR5X25hbWUgeyBnZXQ7IHNldDsgfQorIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVu Y3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0 eXBlX2lkID0gImNsdXR0ZXJfcmVjdF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFJlY3QgeworLQkJcHVibGlj IHdlYWsgQ2x1dHRlci5Qb2ludCBvcmlnaW47CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlNpemUg c2l6ZTsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5SZWN0IGFsbG9jICgpOworLQkJcHVibGlj IHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19wb2ludCAo Q2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0IChDbHV0 dGVyLlJlY3QgYik7CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNvcHkgKCk7CistCQlwdWJsaWMg Ym9vbCBlcXVhbHMgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7Cist CQlwdWJsaWMgdm9pZCBnZXRfY2VudGVyIChDbHV0dGVyLlBvaW50IGNlbnRlcik7CistCQlwdWJs aWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7Cist CQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlJlY3QgaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg d2lkdGgsIGZsb2F0IGhlaWdodCk7CistCQlwdWJsaWMgdm9pZCBpbnNldCAoZmxvYXQgZF94LCBm bG9hdCBkX3kpOworLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0aW9uIChDbHV0dGVyLlJlY3QgYiwg Q2x1dHRlci5SZWN0PyByZXMpOworLQkJcHVibGljIENsdXR0ZXIuUmVjdCBub3JtYWxpemUgKCk7 CistCQlwdWJsaWMgdm9pZCBvZmZzZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKy0JCXB1Ymxp YyB2b2lkIHNjYWxlIChmbG9hdCBzX3gsIGZsb2F0IHNfeSk7CistCQlwdWJsaWMgdm9pZCB1bmlv biAoQ2x1dHRlci5SZWN0IGIsIENsdXR0ZXIuUmVjdCByZXMpOworLQkJcHVibGljIHN0YXRpYyB1 bm93bmVkIENsdXR0ZXIuUmVjdCB6ZXJvICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0YW5nbGVf Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgY2xh c3MgUmVjdGFuZ2xlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFu aW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTY5 MDcsOCArNjY4OCw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKyAJCXB1Ymxp YyBTY3JvbGxBY3RvciAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9sbE1vZGUgZ2V0X3Njcm9s bF9tb2RlICgpOworLQkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3BvaW50IChDbHV0dGVyLlBvaW50 IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChDbHV0dGVyLlJlY3QgcmVj dCk7CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50 KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChHcmFwaGVuZS5SZWN0IHJlY3QpOwor IAkJcHVibGljIHZvaWQgc2V0X3Njcm9sbF9tb2RlIChDbHV0dGVyLlNjcm9sbE1vZGUgbW9kZSk7 CisgCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxNb2RlIHNjcm9sbF9tb2RlIHsgZ2V0OyBzZXQ7IH0K KyAJfQorQEAgLTY5MzAsNiArNjcxMSw0NCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5OworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZWF0X2dl dF90eXBlICgpIildCisrCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBTZWF0IDogR0xpYi5PYmplY3Qg eworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVj dGVkIFNlYXQgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBs eV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOwor KwkJcHVibGljIHZpcnR1YWwgdm9pZCBiZWxsX25vdGlmeSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50 IHRvX2Rpc2NhcmQpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29w eV9ldmVudF9kYXRhIChDbHV0dGVyLkV2ZW50IHNyYywgQ2x1dHRlci5FdmVudCBkZXN0KTsKKysJ CXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbElucHV0RGV2aWNlIGNyZWF0ZV92aXJ0dWFs X2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUpOworKwkJcHVibGlj IHZvaWQgZW5zdXJlX2ExMXlfc3RhdGUgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZp cnR1YWwgdm9pZCBmcmVlX2V2ZW50X2RhdGEgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworKwkJcHVi bGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBz ZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2Ug Z2V0X2tleWJvYXJkICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLktleW1h cCBnZXRfa2V5bWFwICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0 RGV2aWNlIGdldF9wb2ludGVyICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3BvaW50ZXJfYTExeV9z ZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1Ymxp YyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbERldmljZVR5cGUgZ2V0X3N1cHBvcnRlZF92aXJ0dWFs X2RldmljZV90eXBlcyAoKTsKKysJCXB1YmxpYyBib29sIGdldF90b3VjaF9tb2RlICgpOworKwkJ cHVibGljIHZpcnR1YWwgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gbGlzdF9k ZXZpY2VzICgpOworKwkJcHVibGljIHZvaWQgc2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVy LktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9h MTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBj bGlja190eXBlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENs dXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHdhcnBfcG9pbnRlciAoaW50IHgsIGludCB5KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQor KwkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKysJCXB1YmxpYyBib29sIHRvdWNoX21vZGUgeyBnZXQ7IH0KKysJCXB1YmxpYyBzaWduYWwg dm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKysJCXB1Ymxp YyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3Qp OworKwkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2NoYW5nZWQgKHVpbnQgc2V0 dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBr YmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9tYXNrLCB1aW50IGxvY2tl ZF9tYXNrKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV9kd2VsbF9jbGlja190eXBl X2NoYW5nZWQgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsK KysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0YXJ0ZWQgKENsdXR0ZXIu SW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91 dF90eXBlLCB1aW50IGRlbGF5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1l b3V0X3N0b3BwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJB MTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlLCBib29sIGNsaWNrZWQpOworKwkJcHVibGljIHNp Z25hbCB2b2lkIHRvb2xfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QsIENsdXR0 ZXIuSW5wdXREZXZpY2VUb29sIHAwKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2V0dGluZ3NfZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgU2V0 dGluZ3MgOiBHTGliLk9iamVjdCB7CitAQCAtNzAwMiwxOCArNjgyMSw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJ CXByb3RlY3RlZCBTaGFkZXJNYXRyaXggKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHki LCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zaXpl X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorLQlwdWJsaWMgY2xhc3MgU2l6ZSB7CistCQlwdWJsaWMgZmxvYXQgaGVpZ2h0OworLQkJcHVi bGljIGZsb2F0IHdpZHRoOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlNpemUgYWxsb2MgKCk7 CistCQlwdWJsaWMgQ2x1dHRlci5TaXplIGNvcHkgKCk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMg KENsdXR0ZXIuU2l6ZSBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLlNpemUgaW5pdCAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CistCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3NuYXBfY29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCisgCXB1YmxpYyBjbGFzcyBTbmFwQ29uc3RyYWludCA6IENsdXR0ZXIu Q29uc3RyYWludCB7CitAQCAtNzA1MiwxNCArNjg1OSwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgdm9pZCBmcmVlemVfdXBkYXRlcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9hY2NlcHRfZm9jdXMgKCk7CistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01vZGUg cGlja19tb2RlLCBpbnQgeCwgaW50IHkpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9kZSwgZmxvYXQgeCwg ZmxvYXQgeSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY2FwdHVyZV9maW5hbF9zaXplIChDYWlyby5S ZWN0YW5nbGVJbnQgcmVjdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBmbG9hdCBzY2FsZSk7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworIAkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9kZWZhdWx0ICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBnZXRfZm9nICgpOworIAkJcHVibGljIGludDY0 IGdldF9mcmFtZV9jb3VudGVyICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfa2V5X2ZvY3VzICgpOworQEAgLTcwNjcs MTkgKzY4NzIsMTQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgZ2V0X21p bmltdW1fc2l6ZSAob3V0IHVpbnQgd2lkdGgsIG91dCB1aW50IGhlaWdodCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgYm9vbCBnZXRfbW90aW9uX2V2ZW50c19lbmFi bGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0 X25vX2NsZWFyX2hpbnQgKCk7CisgCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVjdGl2ZSBnZXRfcGVy c3BlY3RpdmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ2Fp cm8uUmVjdGFuZ2xlSW50IGdldF9yZWRyYXdfY2xpcF9ib3VuZHMgKCk7CisrCQlwdWJsaWMgQ2Fp cm8uUmVnaW9uIGdldF9yZWRyYXdfY2xpcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyBib29sIGdldF90aHJvdHRsZV9tb3Rpb25fZXZlbnRzICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90aXRs ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBib29sIGdldF91 c2VfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3VzZV9m b2cgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdm9pZCBoaWRl X2N1cnNvciAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCitAQCAtNzA5NCwxNiArNjg5NCwxMiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfYWNjZXB0X2ZvY3VzIChib29s IGFjY2VwdF9mb2N1cyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNv bG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfZm9nIChD bHV0dGVyLkZvZyBmb2cpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGlj IHZvaWQgc2V0X2tleV9mb2N1cyAoQ2x1dHRlci5BY3Rvcj8gYWN0b3IpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X21pbmltdW1fc2l6ZSAodWludCB3 aWR0aCwgdWludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoYm9vbCBlbmFibGVkKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ub19jbGVhcl9oaW50 IChib29sIG5vX2NsZWFyKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wZXJzcGVjdGl2ZSAoQ2x1dHRl ci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisgCQlwdWJsaWMgdm9pZCBzZXRfdGhyb3R0bGVfbW90aW9uX2V2ZW50cyAoYm9vbCB0aHJvdHRs ZSk7CitAQCAtNzExMSw4ICs2OTA3LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZV9hbHBoYSAoYm9vbCB1c2VfYWxwaGEpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfZm9nIChib29sIGZvZyk7Cisg CQlwdWJsaWMgdm9pZCBzaG93X2N1cnNvciAoKTsKKyAJCXB1YmxpYyB2b2lkIHRoYXdfdXBkYXRl cyAoKTsKKyAJCXB1YmxpYyB2b2lkIHVwZGF0ZV9yZXNvdXJjZV9zY2FsZXMgKCk7CitAQCAtNzEy MiwyMCArNjkxNiwxNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5D b2xvciBjb2xvciB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCXB1Ymxp YyBib29sIGN1cnNvcl92aXNpYmxlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgQ2x1dHRlci5Gb2cgZm9nIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGtleV9mb2N1cyB7IGdldDsgc2V0 OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBub19jbGVh cl9oaW50IHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1 YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIHBlcnNwZWN0aXZlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdGl0bGUgeyBnZXQ7IHNl dDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wgdXNlX2Fs cGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCB1c2Vf Zm9nIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdGl2YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMjAiKV0KK0BAIC03MTU4LDggKzY5NDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0 ZXIuU3RhZ2U+IGxpc3Rfc3RhZ2VzICgpOworIAkJcHVibGljIHVub3duZWQgR0xpYi5TTGlzdDxD bHV0dGVyLlN0YWdlPiBwZWVrX3N0YWdlcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9kZWZhdWx0X3N0YWdlIChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlN0YWdlIGRlZmF1bHRfc3Rh Z2UgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC03MjA2LDE2ICs2 OTkyLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJs aWMgdWludCBnZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8g dGFyZ2V0X3N0YXRlX25hbWUpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBHTGliLkxp c3Q8d2VhayBDbHV0dGVyLlN0YXRlS2V5PiBnZXRfa2V5cyAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVf bmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwgc3Ry aW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X3N0YXRlICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBHTGli Lkxpc3Q8d2VhayBzdHJpbmc+IGdldF9zdGF0ZXMgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2tleSAoc3RyaW5nPyBzb3VyY2Vfc3Rh dGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwg c3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9p ZCBzZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0 X3N0YXRlX25hbWUsIHVpbnQgZHVyYXRpb24pOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuU3RhdGUgc2V0X2tleSAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFt ZSwgc3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdCBvYmplY3QsIHN0cmluZyBw cm9wZXJ0eV9uYW1lLCB1aW50IG1vZGUsIEdMaWIuVmFsdWUgdmFsdWUsIGRvdWJsZSBwcmVfZGVs YXksIGRvdWJsZSBwb3N0X2RlbGF5KTsKK0BAIC03MjM2LDI0ICs3MDE2LDggQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlw dWJsaWMgY2xhc3MgU3RhdGVLZXkgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bG9u ZyBnZXRfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBHTGli Lk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBkb3Vi bGUgZ2V0X3Bvc3RfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGRvdWJs ZSBnZXRfcHJlX2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfcHJvcGVydHlfbmFtZSAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJs aWMgR0xpYi5UeXBlIGdldF9wcm9wZXJ0eV90eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc291cmNlX3N0YXRlX25hbWUgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90YXJnZXRfc3RhdGVfbmFt ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdmFsdWUgKEdMaWIu VmFsdWUgdmFsdWUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zd2lwZV9hY3Rpb25fZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTcyNjUsNTMgKzcwMjksNiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgc3dpcGUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0 ZXIuU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFibGVfbGF5 b3V0X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBjbGFzcyBUYWJs ZUxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFuYWdlcioiKV0KKy0J CXB1YmxpYyBUYWJsZUxheW91dCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5UYWJsZUFs aWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB5X2FsaWduKTsKKy0J CXB1YmxpYyBpbnQgZ2V0X2NvbHVtbl9jb3VudCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9jb2x1 bW5fc3BhY2luZyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWludCBnZXRfZWFz aW5nX2R1cmF0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRf ZWFzaW5nX21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2V4 cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9leHBhbmQsIG91dCBib29sIHlf ZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBnZXRfZmlsbCAoQ2x1 dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9maWxsLCBvdXQgYm9vbCB5X2ZpbGwpOworLQkJ cHVibGljIGludCBnZXRfcm93X2NvdW50ICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3Jvd19zcGFj aW5nICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91 dCBpbnQgY29sdW1uX3NwYW4sIG91dCBpbnQgcm93X3NwYW4pOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBib29sIGdldF91c2VfYW5pbWF0aW9ucyAoKTsKKy0JCXB1YmxpYyB2b2lkIHBh Y2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW4sIGludCByb3cpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5UYWJsZUFsaWdubWVu dCB5X2FsaWduKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb2x1bW5fc3BhY2luZyAodWludCBzcGFj aW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZWFzaW5nX2R1cmF0 aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf ZWFzaW5nX21vZGUgKHVsb25nIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9leHBhbmQsIGJvb2wg eV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWxsIChD bHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworLQkJcHVibGlj IHZvaWQgc2V0X3Jvd19zcGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJcHVibGljIHZvaWQgc2V0 X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW5fc3BhbiwgaW50IHJvd19zcGFu KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FuaW1hdGlvbnMg KGJvb2wgYW5pbWF0ZSk7CistCQlwdWJsaWMgdWludCBjb2x1bW5fc3BhY2luZyB7IGdldDsgc2V0 OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZWFzaW5nX2R1cmF0aW9uIHsg Z2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcgZWFzaW5nX21v ZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVpbnQgcm93X3NwYWNpbmcgeyBnZXQ7IHNldDsg fQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9hbmltYXRpb25zIHsgZ2V0 OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFwX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgY2xhc3MgVGFwQWN0aW9uIDogQ2x1 dHRlci5HZXN0dXJlQWN0aW9uIHsKK0BAIC03MzM5LDcgKzcwNTYsNyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY3Vyc29yX2NvbG9yICgpOworIAkJ cHVibGljIGludCBnZXRfY3Vyc29yX3Bvc2l0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAob3V0IHVub3duZWQgQ2x1 dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgZ2V0X2N1cnNvcl9yZWN0IChvdXQgdW5v d25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHVpbnQgZ2V0X2N1cnNvcl9zaXpl ICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2N1cnNvcl92aXNpYmxlICgpOworIAkJcHVibGljIGJv b2wgZ2V0X2VkaXRhYmxlICgpOworQEAgLTc0NTgsNyArNzE3NSw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfZXZlbnQgKENsdXR0ZXIuR2VvbWV0cnkgZ2Vv bWV0cnkpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2ZW50IChHcmFw aGVuZS5SZWN0IHJlY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3RleHQgKGludCBzdGFydF9wb3Ms IGludCBlbmRfcG9zKTsKK0BAIC03NDk3LDkyICs3MjE0LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIFRleHROb2RlIChQYW5nby5MYXlvdXQ/IGxheW91dCwgQ2x1dHRlci5Db2xv cj8gY29sb3IpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX2dldF90eXBlICgpIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFRleHR1cmUgOiBDbHV0dGVy LkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250 YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIFRl eHR1cmUgKCk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgVGV4dHVy ZS5mcm9tX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC44IildCistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkg dGhyb3dzIENsdXR0ZXIuVGV4dHVyZUVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9iYXNl X3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfY29nbF9tYXRlcmlhbCAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfY29nbF90 ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1cmVR dWFsaXR5IGdldF9maWx0ZXJfcXVhbGl0eSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgYm9vbCBnZXRfa2VlcF9hc3BlY3RfcmF0aW8gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIGJvb2wgZ2V0X2xvYWRfYXN5bmMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIGJvb2wgZ2V0X2xvYWRfZGF0YV9hc3luYyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlw dWJsaWMgaW50IGdldF9tYXhfdGlsZV93YXN0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgYm9vbCBnZXRfcGlja193aXRoX2FscGhhICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9yZXBlYXQgKG91dCBib29sIHJlcGVhdF94LCBvdXQgYm9vbCByZXBl YXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3N5bmNfc2l6ZSAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCBzZXRfYXJlYV9mcm9tX3JnYl9k YXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBib29sIGhh c19hbHBoYSwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCByb3dzdHJp ZGUsIGludCBicHAsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJv cjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF9tYXRlcmlhbCAo Q29nbC5IYW5kbGUgY29nbF9tYXRlcmlhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2NvZ2xfdGV4dHVyZSAoQ29nbC5IYW5kbGUgY29nbF90ZXgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWx0ZXJfcXVhbGl0eSAoQ2x1dHRlci5UZXh0 dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0eSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGlj IGJvb2wgc2V0X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9yZ2JfZGF0YSAoW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgYm9vbCBoYXNfYWxwaGEs IGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5U ZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0K Ky0JCXB1YmxpYyBib29sIHNldF9mcm9tX3l1dl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gdWludDhbXSBkYXRhLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENsdXR0ZXIuVGV4 dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfa2VlcF9hc3BlY3RfcmF0aW8gKGJvb2wga2VlcF9hc3BlY3QpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb2FkX2FzeW5jIChib29sIGxv YWRfYXN5bmMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb2FkX2Rh dGFfYXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3BpY2tfd2l0aF9hbHBoYSAoYm9vbCBwaWNrX3dpdGhfYWxwaGEpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZXBlYXQgKGJvb2wgcmVwZWF0X3gsIGJv b2wgcmVwZWF0X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zeW5j X3NpemUgKGJvb2wgc3luY19zaXplKTsKKysJcHVibGljIGNsYXNzIFRleHR1cmUgOiBDbHV0dGVy LkFjdG9yIHsKKyAJCXB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvZ2xfbWF0ZXJpYWwgeyBnZXQ7IHNl dDsgfQorIAkJcHVibGljIENvZ2wuVGV4dHVyZSBjb2dsX3RleHR1cmUgeyBnZXQ7IHNldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkaXNhYmxlX3NsaWNpbmcgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHN0 cmluZyBmaWxlbmFtZSB7IG93bmVkIGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5UZXh0 dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0eSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorLQkJcHVi bGljIGJvb2wga2VlcF9hc3BlY3RfcmF0aW8geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBib29sIGxvYWRfYXN5bmMgeyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgYm9vbCBsb2FkX2RhdGFfYXN5bmMgeyBzZXQ7IH0KKy0JCXB1YmxpYyBib29s IHBpY2tfd2l0aF9hbHBoYSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBib29sIHJlcGVhdF94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3kgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIGJvb2wg c3luY19zaXplIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGludCB0aWxlX3dhc3RlIHsgZ2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgbG9hZF9maW5pc2hlZCAoR0xpYi5FcnJvciBlcnJvcik7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQor LQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGl4YnVmX2NoYW5nZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBzaXplX2NoYW5nZSAoaW50IHdpZHRoLCBpbnQgaGVp Z2h0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dHVyZV9ub2RlX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzYwOCw3ICs3MjQyLDcgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wg Z2V0X2F1dG9fcmV2ZXJzZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlw dWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChDbHV0dGVyLlBvaW50IGNfMSwg Q2x1dHRlci5Qb2ludCBjXzIpOworKwkJcHVibGljIGJvb2wgZ2V0X2N1YmljX2Jlemllcl9wcm9n cmVzcyAoR3JhcGhlbmUuUG9pbnQgY18xLCBHcmFwaGVuZS5Qb2ludCBjXzIpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnJlbnRfcmVwZWF0ICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorQEAgLTc2NDUsNyArNzI3OSw3IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9hdXRvX3JldmVyc2UgKGJvb2wgcmV2ZXJzZSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAo Q2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIuUG9pbnQgY18yKTsKKysJCXB1YmxpYyB2b2lkIHNl dF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdyYXBoZW5lLlBvaW50IGNfMSwgR3JhcGhlbmUuUG9p bnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9kZWxheSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCitAQCAt Nzc0NCw2ICs3Mzc4LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4 OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RyYW5zZm9ybV9ub2RlX2dl dF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBUcmFuc2Zvcm1Ob2RlIDogQ2x1dHRlci5QYWlu dE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBUcmFuc2Zvcm1Ob2RlIChDb2dsLk1h dHJpeCBwcm9qZWN0aW9uKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdHJhbnNpdGlvbl9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xh c3MgVHJhbnNpdGlvbiA6IENsdXR0ZXIuVGltZWxpbmUsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitA QCAtNzc4Myw3ICs3NDIyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFZpcnR1YWxJbnB1dERl dmljZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2RldmljZV90eXBlICgpOworLQkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9tYW5hZ2VyICgpOworIAkJcHVibGljIHZp cnR1YWwgdm9pZCBub3RpZnlfYWJzb2x1dGVfbW90aW9uICh1aW50NjQgdGltZV91cywgZG91Ymxl IHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2J1dHRvbiAodWlu dDY0IHRpbWVfdXMsIHVpbnQzMiBidXR0b24sIENsdXR0ZXIuQnV0dG9uU3RhdGUgYnV0dG9uX3N0 YXRlKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2Rpc2NyZXRlX3Njcm9sbCAodWlu dDY0IHRpbWVfdXMsIENsdXR0ZXIuU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgQ2x1dHRlci5T Y3JvbGxTb3VyY2Ugc2Nyb2xsX3NvdXJjZSk7CitAQCAtNzc5NCwyNSArNzQzMiwyNSBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF9kb3du ICh1aW50NjQgdGltZV91cywgaW50IHNsb3QsIGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlwdWJs aWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF9tb3Rpb24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQg c2xvdCwgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5 X3RvdWNoX3VwICh1aW50NjQgdGltZV91cywgaW50IHNsb3QpOworLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGRldmljZV9tYW5hZ2VyIHsgb3du ZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBk ZXZpY2VfdHlwZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJ CXB1YmxpYyBDbHV0dGVyLlNlYXQgc2VhdCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3pvb21fYWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisgCXB1YmxpYyBjbGFzcyBab29tQWN0aW9uIDogQ2x1dHRlci5HZXN0dXJl QWN0aW9uIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIkNsdXR0ZXJBY3Rpb24qIildCisgCQlwdWJsaWMgWm9vbUFjdGlvbiAoKTsKKy0JCXB1Ymxp YyB2b2lkIGdldF9mb2NhbF9wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMg dm9pZCBnZXRfdHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOwor KwkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7Cisr CQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQgKEdyYXBoZW5lLlBvaW50 IHBvaW50KTsKKyAJCXB1YmxpYyBDbHV0dGVyLlpvb21BeGlzIGdldF96b29tX2F4aXMgKCk7Cisg CQlwdWJsaWMgdm9pZCBzZXRfem9vbV9heGlzIChDbHV0dGVyLlpvb21BeGlzIGF4aXMpOworIAkJ cHVibGljIENsdXR0ZXIuWm9vbUF4aXMgem9vbV9heGlzIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCBib29sIHpvb20gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIu UG9pbnQgZm9jYWxfcG9pbnQsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGljIHZpcnR1YWwgc2ln bmFsIGJvb2wgem9vbSAoQ2x1dHRlci5BY3RvciBhY3RvciwgR3JhcGhlbmUuUG9pbnQgZm9jYWxf cG9pbnQsIGRvdWJsZSBmYWN0b3IpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfY25hbWUgPSAiQ2x1dHRlckFuaW1hdGFibGVJbnRl cmZhY2UiLCB0eXBlX2lkID0gImNsdXR0ZXJfYW5pbWF0YWJsZV9nZXRfdHlwZSAoKSIpXQorIAlw dWJsaWMgaW50ZXJmYWNlIEFuaW1hdGFibGUgOiBHTGliLk9iamVjdCB7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4w IildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IGJvb2wgYW5pbWF0ZV9wcm9w ZXJ0eSAoQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0aW9uLCBzdHJpbmcgcHJvcGVydHlfbmFtZSwg R0xpYi5WYWx1ZSBpbml0aWFsX3ZhbHVlLCBHTGliLlZhbHVlIGZpbmFsX3ZhbHVlLCBkb3VibGUg cHJvZ3Jlc3MsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAkJcHVibGljIGFic3RyYWN0IHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9wcm9wZXJ0 eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworQEAgLTc4MzAsOCArNzQ2OCw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJhZGQiKV0KKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfYWN0b3IgKENsdXR0ZXIuQWN0b3Ig YWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZF92YWxpc3QgKENs dXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkFjdG9y IGFjdG9yLCAuLi4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTc4NTMsMTAg Kzc0ODksNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFjdG9yIGZpbmRfY2hpbGRfYnlfbmFtZSAoc3RyaW5nIGNoaWxkX25hbWUpOworIAkJW0NDb2Rl IChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxkX3Byb3BlcnR5Iild CisgCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3Bl cnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGlj IGFic3RyYWN0IHZvaWQgQGZvcmVhY2ggKENsdXR0ZXIuQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZm9yZWFjaF93aXRoX2ludGVy bmFscyAoQ2x1dHRlci5DYWxsYmFjayBjYWxsYmFjayk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC44IildCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQ2hpbGRNZXRhIGdldF9j aGlsZF9tZXRhIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCitAQCAt Nzg3NCw4ICs3NTA2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlICh2ZnVuY19u YW1lID0gInJlbW92ZSIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2 b2lkIHJlbW92ZV9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3ZhbGlzdCAoQ2x1dHRlci5BY3RvciBmaXJzdF9hY3Rv ciwgdmFfbGlzdCB2YXJfYXJncyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGFic3Ry YWN0IHZvaWQgc29ydF9kZXB0aF9vcmRlciAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIGFjdG9yX2FkZGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKK0BAIC03ODkyLDcgKzc1MjIs NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZhbGlk YXRlICgpOworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgaW52YWxpZGF0ZV9zaXplICgpOworIAkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHBhaW50X2NvbnRlbnQgKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUGFpbnROb2RlIG5vZGUpOworKwkJcHVibGljIGFic3Ry YWN0IHZvaWQgcGFpbnRfY29udGVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWlu dE5vZGUgbm9kZSwgQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYXR0 YWNoZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KK0BAIC03OTA4LDEwICs3NTM4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMg aW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRlci5HZW9tZXRyeSBz dGFnZV9yZWN0YW5nbGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lk IGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CisgCQlbTm9XcmFwcGVy XQorIAkJcHVibGljIGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKyAJCVtOb1dy YXBwZXJdCitAQCAtNzkzOSwxNCArNzU2NSwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlb Tm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgdW5yZWFsaXplICgpOworIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZy ZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX2Jv eF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsKKyAJCXB1YmxpYyBm bG9hdCB4MTsKKyAJCXB1YmxpYyBmbG9hdCB5MTsKKyAJCXB1YmxpYyBmbG9hdCB4MjsKKyAJCXB1 YmxpYyBmbG9hdCB5MjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMg c3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFsbG9jICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CisrCQlwdWJsaWMgc3Rh dGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKHJlZiBDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjb250YWlucyAoZmxvYXQg eCwgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzk1NSw4ICs3 NTgzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0 ZXIuQWN0b3JCb3ggYm94X2IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVi bGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ib3hf ZnJvbV92ZXJ0aWNlcyIpXQorLQkJcHVibGljIEFjdG9yQm94LmZyb21fdmVydGljZXMgKENsdXR0 ZXIuVmVydGV4W10gdmVydHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVi bGljIGZsb2F0IGdldF9hcmVhICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorQEAg LTgwMDIsNyArNzYyOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENh aXJvLlN1cmZhY2UgaW1hZ2U7CisgCQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3Q7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1IiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0NP TE9SIildCisgCXB1YmxpYyBzdHJ1Y3QgQ29sb3IgeworIAkJcHVibGljIHVpbnQ4IHJlZDsKKyAJ CXB1YmxpYyB1aW50OCBncmVlbjsKK0BAIC04MDQxLDI0ICs3NjY3LDYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHN0cmluZyB0 b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZvZ19nZXRfdHlwZSAoKSIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuNiIpXQorLQlwdWJsaWMgc3RydWN0IEZvZyB7CistCQlwdWJsaWMgZmxvYXQgel9uZWFy OworLQkJcHVibGljIGZsb2F0IHpfZmFyOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9nZW9tZXRyeV9nZXRf dHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RydWN0IEdlb21ldHJ5IHsKKy0JCXB1YmxpYyBpbnQg eDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyB1aW50IHdpZHRoOworLQkJcHVibGljIHVp bnQgaGVpZ2h0OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wg aW50ZXJzZWN0cyAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeTEpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgdW5pb24gKENsdXR0ZXIu R2VvbWV0cnkgZ2VvbWV0cnlfYik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1 Y3QgS2JkQTExeVNldHRpbmdzIHsKKyAJCXB1YmxpYyBDbHV0dGVyLktleWJvYXJkQTExeUZsYWdz IGNvbnRyb2xzOworQEAgLTgwNjksNyArNzY3Nyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBpbnQgbW91c2VrZXlzX21heF9zcGVlZDsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlz X2FjY2VsX3RpbWU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlv biA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVf aWQgPSAiY2x1dHRlcl9rbm90X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIw LjIiKV0KKyAJcHVibGljIHN0cnVjdCBLbm90IHsKKyAJCXB1YmxpYyBpbnQgeDsKK0BAIC04MTIx LDcgKzc3MjksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHZhbHVl OworIAkJcHVibGljIHVpbnQzMiBtb2RlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0 X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdf Ym94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFBhdGhOb2RlIHsK KyAJCXB1YmxpYyBDbHV0dGVyLlBhdGhOb2RlVHlwZSB0eXBlOworQEAgLTgxMzEsNyArNzczOSw3 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLlBh dGhOb2RlIG5vZGVfYik7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9wZXJzcGVjdGl2ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZy ZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNwZWN0 aXZlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGlj IHN0cnVjdCBQZXJzcGVjdGl2ZSB7CisgCQlwdWJsaWMgZmxvYXQgZm92eTsKK0BAIC04MTYyLDcg Kzc3NzAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLkFj dG9yIHNvdXJjZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlOwor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRTIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5Iiwg ZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9V TklUUyIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdHJ1Y3QgVW5p dHMgeworIAkJcHVibGljIENsdXR0ZXIuVW5pdHM/IGNvcHkgKCk7CitAQCAtODE4NiwyMyArNzc5 NCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB0b19waXhlbHMgKCk7 CisgCQlwdWJsaWMgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdmVydGV4 X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIHN0 cnVjdCBWZXJ0ZXggeworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJsaWMgZmxvYXQgeTsKKy0J CXB1YmxpYyBmbG9hdCB6OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgQ2x1dHRlci5WZXJ0ZXg/IGFsbG9jICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4PyBjb3B5ICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuVmVydGV4IHZl cnRleF9iKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGZy ZWUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVub3duZWQg Q2x1dHRlci5WZXJ0ZXg/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXgg PSAiQ0xVVFRFUl9BQ1RPUl9BTElHTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0b3JfYWxpZ25f Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGVu dW0gQWN0b3JBbGlnbiB7CitAQCAtODM0MCw2ICs3OTMxLDI3IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCVlfQVhJUywKKyAJCUJPVEgKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJs aWMgZW51bSBEZWJ1Z0ZsYWcgeworKwkJTUlTQywKKysJCUFDVE9SLAorKwkJVEVYVFVSRSwKKysJ CUVWRU5ULAorKwkJUEFJTlQsCisrCQlQQU5HTywKKysJCUJBQ0tFTkQsCisrCQlTQ0hFRFVMRVIs CisrCQlTQ1JJUFQsCisrCQlTSEFERVIsCisrCQlNVUxUSVNUQUdFLAorKwkJQU5JTUFUSU9OLAor KwkJTEFZT1VULAorKwkJUElDSywKKysJCUVWRU5UTE9PUCwKKysJCUNMSVBQSU5HLAorKwkJT09C X1RSQU5TRk9STVMKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRFJBR18iLCB0eXBlX2lkID0gImNsdXR0ZXJf ZHJhZ19heGlzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ cHVibGljIGVudW0gRHJhZ0F4aXMgeworQEAgLTgzNDcsNiArNzk1OSwxOSBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlYX0FYSVMsCisgCQlZX0FYSVMKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdf IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYXdfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlb RmxhZ3NdCisrCXB1YmxpYyBlbnVtIERyYXdEZWJ1Z0ZsYWcgeworKwkJRElTQUJMRV9TV0FQX0VW RU5UUywKKysJCURJU0FCTEVfQ0xJUFBFRF9SRURSQVdTLAorKwkJUkVEUkFXUywKKysJCVBBSU5U X1ZPTFVNRVMsCisrCQlESVNBQkxFX0NVTExJTkcsCisrCQlESVNBQkxFX09GRlNDUkVFTl9SRURJ UkVDVCwKKysJCUNPTlRJTlVPVVNfUkVEUkFXLAorKwkJUEFJTlRfREVGT1JNX1RJTEVTLAorKwkJ UEFJTlRfREFNQUdFX1JFR0lPTgorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRfQUNUT1Jf IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFnc19nZXRfdHlwZSAoKSIpXQor IAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEVmZmVjdFBhaW50RmxhZ3MgeworQEAgLTgzOTgsOCAr ODAyMyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGVudW0gRmVhdHVyZUZsYWdz IHsKKyAJCVRFWFRVUkVfTlBPVCwKKyAJCVNXQVBfVEhST1RUTEUsCistCQlURVhUVVJFX1lVViwK Ky0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCisgCQlTVEFHRV9TVEFUSUMsCisgCQlTVEFHRV9DVVJT T1IsCisgCQlTSEFERVJTX0dMU0wsCitAQCAtODY1Nyw2ICs4MjgwLDExIEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVJFTF9MSU5FX1RPLAorIAkJUkVMX0NVUlZFX1RPCisgCX0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVU VEVSX0RFQlVHX05PUF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19kZWJ1Z19mbGFnX2dldF90 eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gUGlja0RlYnVnRmxhZyB7CisrCQlQ SUNLSU5HCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1BJQ0tfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpY2tf bW9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1Ymxp YyBlbnVtIFBpY2tNb2RlIHsKK0BAIC04ODUxLDEzICs4NDc5LDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJTEVGVCwKKyAJCVJJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RBQkxFX0FMSUdOTUVO VF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFibGVfYWxpZ25tZW50X2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIyIiwg c2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIFRhYmxlQWxpZ25tZW50IHsKKy0JCVNUQVJU LAorLQkJQ0VOVEVSLAorLQkJRU5ECistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RFWFRfRElSRUNUSU9OXyIs IHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBlbnVtIFRleHREaXJlY3Rpb24geworQEAg LTg5MzMsMjggKzg1NTQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJVkFMVUU7CisgCQlw dWJsaWMgc3RhdGljIEdMaWIuUXVhcmsgcXVhcmsgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RFWFRV UkVfRVJST1JfIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIGVycm9y ZG9tYWluIFRleHR1cmVFcnJvciB7CistCQlPVVRfT0ZfTUVNT1JZLAorLQkJTk9fWVVWLAorLQkJ QkFEX0ZPUk1BVDsKKy0JCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKy0JfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5j ZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAlwdWJsaWMgZGVs ZWdhdGUgQ2x1dHRlci5BY3RvciBBY3RvckNyZWF0ZUNoaWxkRnVuYyAoR0xpYi5PYmplY3QgaXRl bSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGlu c3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBkZWxlZ2F0ZSBk b3VibGUgQWxwaGFGdW5jIChDbHV0dGVyLkFscGhhIGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNp bmNlID0gIjAuMiIpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBCZWhhdmlvdXJGb3JlYWNoRnVu YyAoQ2x1dHRlci5CZWhhdmlvdXIgYmVoYXZpb3VyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2Vf cG9zID0gNC45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgZGVsZWdh dGUgYm9vbCBCaW5kaW5nQWN0aW9uRnVuYyAoR0xpYi5PYmplY3QgZ29iamVjdCwgc3RyaW5nIGFj dGlvbl9uYW1lLCB1aW50IGtleV92YWwsIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZGlmaWVycyk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3Rh bmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIENhbGxiYWNrIChDbHV0dGVy LkFjdG9yIGFjdG9yKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKysJcHVibGljIGRlbGVnYXRlIHZvaWQgRW1p dElucHV0RGV2aWNlRXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuSW5wdXREZXZp Y2UgZGV2aWNlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0K KyAJcHVibGljIGRlbGVnYXRlIGJvb2wgRXZlbnRGaWx0ZXJGdW5jIChDbHV0dGVyLkV2ZW50IGV2 ZW50KTsKK0BAIC04OTg1LDkgKzg1OTcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJz aW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRURSQVc7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQWN0b3JC b3g/IGFjdG9yX2JveF9hbGxvYyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBiYXNlX2luaXQgKCk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTkwNTEsOSArODY2MCw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHVu b3duZWQgUGFuZ28uRm9udE1hcCBnZXRfZm9udF9tYXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlib2FyZF9n cmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0 aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitAQCAtOTA2MSwxNyArODY2Nyw4IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25f Z3JvdXBfd2l0aG91dF9pbml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMg c3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9pbnRlcl9ncmFiICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjAuNiIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdldF9zY3Jp cHRfaWQgKEdMaWIuT2JqZWN0IGdvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9rZXlib2FyZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX3BvaW50ZXIg KENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLkluaXRFcnJvciBpbml0 IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJhcmdjIiwgYXJyYXlfbGVuZ3RoX3BvcyA9 IDAuNSldIHJlZiB1bm93bmVkIHN0cmluZ1tdPyBhcmd2KTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIi KV0KK0BAIC05MDg3LDI5ICs4Njg0LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRp YyB2b2lkIHNldF9jdXN0b21fYmFja2VuZF9mdW5jICh2b2lkKiBmdW5jKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0X2FkZF9kYXRhX2Z1bGwgKHN0 cmluZyB0ZXN0X3BhdGgsIG93bmVkIEdMaWIuVGVzdERhdGFGdW5jIHRlc3RfZnVuYyk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgdGVzdF9jaGVja19hY3Rv cl9hdF9wb2ludCAoQ2x1dHRlci5BY3RvciBzdGFnZSwgQ2x1dHRlci5Qb2ludCBwb2ludCwgQ2x1 dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIuQWN0b3I/IHJlc3VsdCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgdGVzdF9jaGVja19jb2xvcl9hdF9w b2ludCAoQ2x1dHRlci5BY3RvciBzdGFnZSwgQ2x1dHRlci5Qb2ludCBwb2ludCwgQ2x1dHRlci5D b2xvciBjb2xvciwgb3V0IENsdXR0ZXIuQ29sb3IgcmVzdWx0KTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE4IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIHRlc3RfZ2V0X3N0 YWdlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoaW50IGFyZ2MsIHN0cmluZyBhcmd2 KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgaW50IHRlc3RfcnVu ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdW5ncmFi X2tleWJvYXJkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgdW5ncmFiX3BvaW50ZXIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMg c3RhdGljIHVpbnQgdW5pY29kZV90b19rZXlzeW0gKHVpbnQzMiB3Yyk7CisgfQorZGlmZiAtLWdp dCB2YXBpL211dHRlci1jbHV0dGVyLTQuZGVwcyB2YXBpL211dHRlci1jbHV0dGVyLTcuZGVwcwor c2ltaWxhcml0eSBpbmRleCA1NCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC5k ZXBzCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY2x1dHRlci03LmRlcHMKK2luZGV4IDk1MDk0MDI2 Li42YmQxY2NmNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTQuZGVwcworKysrIHZh cGkvbXV0dGVyLWNsdXR0ZXItNy5kZXBzCitAQCAtMSw1ICsxLDQgQEAKKyBhdGsKKyBjYWlybwor IGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY29nbC00CistcGFuZ28KKyttdXR0ZXItY29nbC03Citk aWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC52YXBpIHZhcGkvbXV0dGVyLWNsdXR0ZXIt Ny52YXBpCitzaW1pbGFyaXR5IGluZGV4IDg2JQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1 dHRlci00LnZhcGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTcudmFwaQoraW5kZXgg YzhhMWQyM2IuLmFlYTZhMzFhIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC52YXBp CisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci03LnZhcGkKK0BAIC0xLDYgKzEsNiBAQAorLS8qIG11 dHRlci1jbHV0dGVyLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4g Ki8KKysvKiBtdXR0ZXItY2x1dHRlci03LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5v dCBtb2RpZnkuICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNw YWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0g ImNsdXR0ZXJfIildCisrW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNl ID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI3IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNs dXR0ZXJfIildCisgbmFtZXNwYWNlIENsdXR0ZXIgeworIAluYW1lc3BhY2UgS2V5IHsKKyAJCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNuYW1lID0gIkNM VVRURVJfS0VZXzAiKV0KK0BAIC00NTc2LDIwICs0NTc2LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdWludCBh ZGRfcmVwYWludF9mdW5jX2Z1bGwgKENsdXR0ZXIuUmVwYWludEZsYWdzIGZsYWdzLCBvd25lZCBH TGliLlNvdXJjZUZ1bmMgZnVuYyk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgZW50ZXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdCAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBsZWF2ZSAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9yZXBhaW50 X2Z1bmMgKHVpbnQgaGFuZGxlX2lkKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIHNldF9sb2NrX2Z1bmN0aW9ucyAoR0xpYi5DYWxsYmFjayBlbnRlcl9m biwgR0xpYi5DYWxsYmFjayBsZWF2ZV9mbik7CisgCX0KKyAJbmFtZXNwYWNlIFZhbHVlIHsKKyAJ CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTQ2 MzYsNyArNDYyNCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9p ZCB0YWtlX3BhaW50X25vZGUgKEdMaWIuVmFsdWUgdmFsdWUsIENsdXR0ZXIuUGFpbnROb2RlPyBu b2RlKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIEFjdGlvbiA6IENsdXR0 ZXIuQWN0b3JNZXRhIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKyAJCXByb3RlY3RlZCBBY3Rpb24gKCk7CitAQCAtNDY2NCwzMyArNDY1MSwyMyBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHZvaWQgYWRkX3RyYW5zaXRpb24gKHN0cmluZyBuYW1lLCBDbHV0dGVyLlRyYW5zaXRpb24gdHJh bnNpdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRlci5BbGxvY2F0aW9u RmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5B Y3RvckJveCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgYWxsb2NhdGVfYWxpZ25fZmlsbCAoQ2x1dHRlci5BY3RvckJveCBib3gsIGRvdWJsZSB4X2Fs aWduLCBkb3VibGUgeV9hbGlnbiwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxsLCBDbHV0dGVyLkFs bG9jYXRpb25GbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9hbGlnbl9maWxs IChDbHV0dGVyLkFjdG9yQm94IGJveCwgZG91YmxlIHhfYWxpZ24sIGRvdWJsZSB5X2FsaWduLCBi b29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgYWxsb2NhdGVfYXZhaWxhYmxlX3NpemUgKGZsb2F0IHgsIGZsb2F0IHks IGZsb2F0IGF2YWlsYWJsZV93aWR0aCwgZmxvYXQgYXZhaWxhYmxlX2hlaWdodCwgQ2x1dHRlci5B bGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZvaWQgYWxsb2NhdGVfYXZhaWxhYmxl X3NpemUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGF2YWlsYWJsZV93aWR0aCwgZmxvYXQgYXZh aWxhYmxlX2hlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMg dm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRfc2l6ZSAoQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxh Z3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0 aW9uIGFuaW1hdGUgKHVsb25nIG1vZGUsIHVpbnQgZHVyYXRpb24sIC4uLik7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRo X2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhhLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF9hbHBoYXYgKENs dXR0ZXIuQWxwaGEgYWxwaGEsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVy dGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0Nv ZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9z ID0gMS41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX3RpbWVsaW5lICh1bG9u ZyBtb2RlLCBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCAuLi4pOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF90aW1l bGluZXYgKHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIFtDQ29kZSAoYXJy YXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUp XSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3By b3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24g YW5pbWF0ZXYgKHVsb25nIG1vZGUsIHVpbnQgZHVyYXRpb24sIFtDQ29kZSAoYXJyYXlfbGVuZ3Ro X2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBzdHJpbmdb XSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMi LCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CisrCQlwdWJs aWMgdm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRfc2l6ZSAoZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggYXBwbHlf cmVsYXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgQ2x1 dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlfcmVsYXRpdmVfdHJhbnNm b3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgR3JhcGhlbmUuUG9pbnQzRCBw b2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJW05vV3JhcHBl cl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfdHJhbnNmb3JtIChyZWYgQ2x1dHRlci5N YXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLlZlcnRleCBhcHBseV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuVmVydGV4IHBv aW50KTsKKysJCXB1YmxpYyB2b2lkIGFwcGx5X3RyYW5zZm9ybV90b19wb2ludCAoR3JhcGhlbmUu UG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJCXB1YmxpYyB2b2lkIGJpbmRfbW9kZWwgKEdM aWIuTGlzdE1vZGVsPyBtb2RlbCwgb3duZWQgQ2x1dHRlci5BY3RvckNyZWF0ZUNoaWxkRnVuYyBj cmVhdGVfY2hpbGRfZnVuYyk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgZmxv YXQgY2FsY3VsYXRlX3Jlc291cmNlX3NjYWxlIChpbnQgcGhhc2UpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgY2xlYXJfYWN0aW9ucyAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00NzAwLDIwICs0Njc3LDE5IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGNv bnRhaW5zIChDbHV0dGVyLkFjdG9yIGRlc2NlbmRhbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIHZvaWQgY29udGludWVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdm9p ZCBjb250aW51ZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7Cisr CQlwdWJsaWMgdm9pZCBjb250aW51ZV9waWNrIChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29u dGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgUGFuZ28uQ29u dGV4dCBjcmVhdGVfcGFuZ29fY29udGV4dCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyBQYW5nby5MYXlvdXQgY3JlYXRlX3BhbmdvX2xheW91dCAoc3RyaW5nPyB0 ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBkZXN0 cm95X2FsbF9jaGlsZHJlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBk ZXRhY2hfYW5pbWF0aW9uICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2V2 ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCBlbWl0 X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIGNhcHR1cmUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRp Y2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVydHNb NF0pOworKwkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUg KGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0c1s0XSk7CisgCQlw dWJsaWMgdmlydHVhbCB1bm93bmVkIEF0ay5PYmplY3QgZ2V0X2FjY2Vzc2libGUgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdGlv biBnZXRfYWN0aW9uIChzdHJpbmcgbmFtZSk7CitAQCAtNDcyMSwyMSArNDY5Nyw4IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLkFjdGlvbj4g Z2V0X2FjdGlvbnMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMg Q2x1dHRlci5BY3RvckJveCBnZXRfYWxsb2NhdGlvbl9ib3ggKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIp XQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgZ2V0X2FsbG9jYXRpb25fZ2VvbWV0cnkgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxsb2Nh dGlvbl92ZXJ0aWNlcyAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIFtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIHZvaWQgZ2V0X2FuY2hvcl9wb2ludCAob3V0IGZsb2F0IGFuY2hvcl94LCBv dXQgZmxvYXQgYW5jaG9yX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVy LkdyYXZpdHkgZ2V0X2FuY2hvcl9wb2ludF9ncmF2aXR5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGdldF9hbmltYXRpb24gKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0 X2JhY2tncm91bmRfY29sb3IgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0X2Fj dG9yX2J5X2dpZCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3IgZ2V0X2J5X2dpZCAodWludDMyIGlkXyk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfY2hpbGRf YXRfaW5kZXggKGludCBpbmRleF8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BA IC00NzYyLDggKzQ3MjUsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBn ZXRfY29udGVudF9zY2FsaW5nX2ZpbHRlcnMgKG91dCBDbHV0dGVyLlNjYWxpbmdGaWx0ZXIgbWlu X2ZpbHRlciwgb3V0IENsdXR0ZXIuU2NhbGluZ0ZpbHRlciBtYWdfZmlsdGVyKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Vm9s dW1lIGdldF9kZWZhdWx0X3BhaW50X3ZvbHVtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgZmxvYXQgZ2V0 X2RlcHRoICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1aW50 IGdldF9lYXNpbmdfZGVsYXkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAg LTQ3NzYsMTIgKzQ3MzcsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIEdMaWIu TGlzdDx3ZWFrIENsdXR0ZXIuRWZmZWN0PiBnZXRfZWZmZWN0cyAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9maXJz dF9jaGlsZCAoKTsKKysJCXB1YmxpYyBib29sIGdldF9maXhlZF9wb3NpdGlvbiAob3V0IGZsb2F0 IHgsIG91dCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1Ymxp YyBib29sIGdldF9maXhlZF9wb3NpdGlvbl9zZXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckZsYWdzIGdldF9mbGFncyAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2dpZCAoKTsKKyAJCVtDQ29kZSAoY25h bWUgPSAiY2x1dHRlcl9hY3Rvcl9oYXNfcG9pbnRlciIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19wb2ludGVyICgpOworQEAgLTQ4MzksMTcg KzQ3OTksMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZ2V0X3JlYWN0 aXZlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIENsdXR0ZXIu UmVxdWVzdE1vZGUgZ2V0X3JlcXVlc3RfbW9kZSAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9yZXNv dXJjZV9zY2FsZSAob3V0IGZsb2F0IHJlc291cmNlX3NjYWxlKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44Iild CistCQlwdWJsaWMgZG91YmxlIGdldF9yb3RhdGlvbiAoQ2x1dHRlci5Sb3RhdGVBeGlzIGF4aXMs IG91dCBmbG9hdCB4LCBvdXQgZmxvYXQgeSwgb3V0IGZsb2F0IHopOworKwkJcHVibGljIGZsb2F0 IGdldF9yZXNvdXJjZV9zY2FsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisg CQlwdWJsaWMgZG91YmxlIGdldF9yb3RhdGlvbl9hbmdsZSAoQ2x1dHRlci5Sb3RhdGVBeGlzIGF4 aXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgZ2V0X3Nj YWxlIChvdXQgZG91YmxlIHNjYWxlX3gsIG91dCBkb3VibGUgc2NhbGVfeSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NjYWxlX2NlbnRlciAob3V0IGZsb2F0IGNlbnRl cl94LCBvdXQgZmxvYXQgY2VudGVyX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLkdyYXZpdHkgZ2V0X3NjYWxlX2dyYXZpdHkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorIAkJcHVibGljIGRvdWJsZSBnZXRfc2NhbGVfeiAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjIiKV0KK0BAIC00ODYwLDggKzQ4MTQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIGdldF90ZXh0X2RpcmVjdGlvbiAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5NYXRy aXggZ2V0X3RyYW5zZm9ybSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRl ci5NYXRyaXggZ2V0X3RyYW5zZm9ybWF0aW9uX21hdHJpeCAoKTsKKysJCXB1YmxpYyB2b2lkIGdl dF90cmFuc2Zvcm1lZF9leHRlbnRzIChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5Q YWludFZvbHVtZSBnZXRfdHJhbnNmb3JtZWRfcGFpbnRfdm9sdW1lIChDbHV0dGVyLkFjdG9yIHJl bGF0aXZlX3RvX2FuY2VzdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC00 ODg1LDEwICs0ODM4LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZ2V0 X3lfZXhwYW5kICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBm bG9hdCBnZXRfel9wb3NpdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1 dHRlci5HcmF2aXR5IGdldF96X3JvdGF0aW9uX2dyYXZpdHkgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBncmFiX2tleV9mb2N1cyAoKTsKKysJCXB1Ymxp YyB2aXJ0dWFsIGJvb2wgaGFzX2FjY2Vzc2libGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAkJcHVibGljIGJvb2wgaGFzX2FjdGlvbnMgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCitAQCAtNDkwMCwxOCArNDg1MiwyMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgYm9vbCBoYXNfZWZmZWN0cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyBib29sIGhhc19rZXlfZm9jdXMgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNiIpXQorIAkJcHVibGljIGJvb2wgaGFzX21hcHBlZF9jbG9uZXMgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBib29sIGhhc19vdmVy bGFwcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZp cnR1YWwgdm9pZCBoaWRlX2FsbCAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXRfY3VsbGluZyAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBpbnNlcnRf Y2hpbGRfYWJvdmUgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGluc2VydF9j aGlsZF9hdF9pbmRleCAoQ2x1dHRlci5BY3RvciBjaGlsZCwgaW50IGluZGV4Xyk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgaW5zZXJ0X2NoaWxkX2JlbG93 IChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5nKTsKKysJCXB1Ymxp YyB2b2lkIGludmFsaWRhdGVfdHJhbnNmb3JtICgpOworKwkJcHVibGljIGJvb2wgaXNfZWZmZWN0 aXZlbHlfb25fc3RhZ2VfdmlldyAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBpc19pbl9jbG9uZV9wYWludCAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCitAQCAtNDkyNCwzMyArNDg3OCwyMCBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBpc19zY2FsZWQgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGljIGJvb2wgaXNfdmlzaWJsZSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCBsb3dlciAoQ2x1dHRlci5BY3Rvcj8gYWJvdmUpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIGxvd2VyX2JvdHRvbSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWFwICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1 YmxpYyB2b2lkIG1vdmVfYW5jaG9yX3BvaW50IChmbG9hdCBhbmNob3JfeCwgZmxvYXQgYW5jaG9y X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIG1vdmVfYW5jaG9yX3BvaW50 X2Zyb21fZ3Jhdml0eSAoQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgbW92ZV9ieSAoZmxvYXQgZHgsIGZsb2F0IGR5 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9vbCBuZWVkc19l eHBhbmQgKENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24pOworIAkJW05vV3JhcHBlcl0K KyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfbm9kZSAoQ2x1dHRlci5QYWludE5vZGUgcm9v dCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcG9wX2ludGVybmFsICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hfaW50ZXJuYWwgKCk7CisrCQlw dWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q2x1dHRlci5TdGFnZVZpZXc+IHBlZWtfc3RhZ2Vfdmll d3MgKCk7CisrCQlwdWJsaWMgdm9pZCBwaWNrX2JveCAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNr X2NvbnRleHQsIENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuRnJhbWVDbG9jayBwaWNrX2ZyYW1lX2Nsb2NrICgpOworIAkJcHVibGljIHZvaWQgcXVldWVf cmVkcmF3ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lk IHF1ZXVlX3JlZHJhd193aXRoX2NsaXAgKENhaXJvLlJlY3RhbmdsZUludD8gY2xpcCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgcmFpc2UgKENsdXR0ZXIuQWN0b3I/IGJlbG93KTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgdm9pZCByYWlzZV90b3AgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgdm9pZCByZW1vdmVfYWN0aW9uIChDbHV0dGVyLkFjdGlvbiBhY3Rpb24pOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ5NzIsOCArNDkxMyw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9lZmZlY3RfYnlfbmFtZSAoc3RyaW5nIG5h bWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92 ZV90cmFuc2l0aW9uIChzdHJpbmcgbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGlj IHZvaWQgcmVwYXJlbnQgKENsdXR0ZXIuQWN0b3IgbmV3X3BhcmVudCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcmVwbGFjZV9jaGlsZCAoQ2x1dHRlci5B Y3RvciBvbGRfY2hpbGQsIENsdXR0ZXIuQWN0b3IgbmV3X2NoaWxkKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCitAQCAtNDk4MSwxMSArNDkyMCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzYXZlX2Vh c2luZ19zdGF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg dm9pZCBzZXRfYWxsb2NhdGlvbiAoQ2x1dHRlci5BY3RvckJveCBib3gsIENsdXR0ZXIuQWxsb2Nh dGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRf YW5jaG9yX3BvaW50IChmbG9hdCBhbmNob3JfeCwgZmxvYXQgYW5jaG9yX3kpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbmNob3JfcG9pbnRfZnJvbV9ncmF2aXR5IChD bHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfYWxsb2NhdGlvbiAo Q2x1dHRlci5BY3RvckJveCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kX2NvbG9yIChDbHV0dGVyLkNvbG9yPyBjb2xvcik7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTUwMDgsOCArNDk0Myw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X3JlcGVhdCAoQ2x1 dHRlci5Db250ZW50UmVwZWF0IHJlcGVhdCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfc2NhbGluZ19maWx0ZXJzIChDbHV0dGVyLlNj YWxpbmdGaWx0ZXIgbWluX2ZpbHRlciwgQ2x1dHRlci5TY2FsaW5nRmlsdGVyIG1hZ19maWx0ZXIp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aCAoZmxvYXQgZGVwdGgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfZGVsYXkgKHVp bnQgbXNlY3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01MDM5LDggKzQ5 NzIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfb2Zmc2NyZWVu X3JlZGlyZWN0IChDbHV0dGVyLk9mZnNjcmVlblJlZGlyZWN0IHJlZGlyZWN0KTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9vcGFjaXR5ICh1aW50OCBvcGFjaXR5KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9v cGFjaXR5X292ZXJyaWRlIChpbnQgb3BhY2l0eSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Bh cmVudCAoQ2x1dHRlci5BY3RvciBwYXJlbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9waXZvdF9wb2ludCAoZmxvYXQgcGl2b3RfeCwgZmxvYXQg cGl2b3RfeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTUwNTAsMTYgKzQ5 ODEsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3JlYWN0aXZl IChib29sIHJlYWN0aXZlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9yZXF1ZXN0X21vZGUgKENsdXR0ZXIuUmVxdWVzdE1vZGUgbW9kZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JvdGF0aW9uIChDbHV0dGVyLlJvdGF0 ZUF4aXMgYXhpcywgZG91YmxlIGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcm90YXRpb25f YW5nbGUgKENsdXR0ZXIuUm90YXRlQXhpcyBheGlzLCBkb3VibGUgYW5nbGUpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlIChkb3VibGUgc2Nh bGVfeCwgZG91YmxlIHNjYWxlX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9zY2FsZV9mdWxsIChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3ksIGZsb2F0IGNl bnRlcl94LCBmbG9hdCBjZW50ZXJfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3NjYWxlX3dpdGhfZ3Jhdml0eSAoZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95 LCBDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlX3ogKGRvdWJsZSBzY2FsZV96KTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9zaXplIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKK0BAIC01MDg1LDE3 ICs1MDEwLDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF95X2V4 cGFuZCAoYm9vbCBleHBhbmQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF96X3Bvc2l0aW9uIChmbG9hdCB6X3Bvc2l0aW9uKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfel9yb3RhdGlvbl9mcm9tX2dyYXZpdHkgKGRvdWJs ZSBhbmdsZSwgQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOworIAkJcHVibGljIGJvb2wgc2hvdWxk X3BpY2tfcGFpbnQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCBzaG93X2FsbCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBi b29sIHRyYW5zZm9ybV9zdGFnZV9wb2ludCAoZmxvYXQgeCwgZmxvYXQgeSwgb3V0IGZsb2F0IHhf b3V0LCBvdXQgZmxvYXQgeV9vdXQpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0X2N1bGxpbmcg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdmlydHVhbCB2b2lk IHVubWFwICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHVucGFyZW50ICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgdW5zZXRfZmxh Z3MgKENsdXR0ZXIuQWN0b3JGbGFncyBmbGFncyk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BA IC01MTAzLDE2ICs1MDIzLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0 ZXIuQWN0aW9uIGFjdGlvbnMgeyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2Nh dGlvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBhbmNob3JfZ3Jhdml0eSB7IGdldDsgc2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgZmxvYXQg YW5jaG9yX3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjAuOCIpXQorLQkJcHVibGljIGZsb2F0IGFuY2hvcl95IHsgZ2V0OyBzZXQ7IH0KKysJCXB1Ymxp YyBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24geyBvd25lZCBnZXQ7IH0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBiYWNrZ3JvdW5kX2Nv bG9yIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxMjIsMTEgKzUw MzMsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorIAkJcHVibGljIGJvb2wgY2hpbGRfdHJhbnNmb3JtX3NldCB7IGdldDsgfQorIAkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgY2xpcCB7IGdldDsg c2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0OyB9 CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBjbGlwX3JlY3QgeyBvd25lZCBnZXQ7IHNldDsgfQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgY2xpcF90b19hbGxv Y2F0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxNDAsOCAr NTA0OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbnRlbnRH cmF2aXR5IGNvbnRlbnRfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29udGVudFJlcGVhdCBjb250ZW50X3JlcGVh dCB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGZsb2F0IGRlcHRo IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAkJcHVibGljIENsdXR0ZXIuRWZmZWN0IGVmZmVjdCB7IHNldDsgfQorQEAg LTUyMTEsMTIgKzUxMTcsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQg b3BhY2l0eSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBwaXZvdF9wb2ludCB7 IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQg eyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1 YmxpYyBmbG9hdCBwaXZvdF9wb2ludF96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBv aW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2lu dCBwb3NpdGlvbiB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCisgCQlwdWJsaWMgYm9vbCByZWFjdGl2ZSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KK0BAIC01MjI1LDggKzUxMzEsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5SZXF1ZXN0TW9kZSBy ZXF1ZXN0X21vZGUgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgZmxvYXQgcmVzb3VyY2Vfc2NhbGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGRvdWJsZSByb3RhdGlvbl9h bmdsZV94IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyMzYsMjcg KzUxNDAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCisgCQlwdWJsaWMgZG91YmxlIHJvdGF0aW9uX2FuZ2xlX3ogeyBnZXQ7IHNldDsgfQorIAkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIu VmVydGV4IHJvdGF0aW9uX2NlbnRlcl94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlv bl9jZW50ZXJfeSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3ogeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIENsdXR0ZXIuR3Jhdml0eSByb3RhdGlvbl9jZW50ZXJfel9ncmF2aXR5IHsgZ2V0OyBz ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBmbG9hdCBzY2FsZV9jZW50ZXJfeCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgc2NhbGVfY2VudGVyX3kgeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIENsdXR0ZXIuR3Jhdml0eSBzY2FsZV9ncmF2aXR5IHsgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGlj IGRvdWJsZSBzY2FsZV94IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAg LTUyNjksNyArNTE1Miw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHNo b3dfb25fc2V0X3BhcmVudCB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5TaXplIHNpemUg eyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlNpemUgc2l6ZSB7IG93bmVk IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1 dHRlci5UZXh0RGlyZWN0aW9uIHRleHRfZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorQEAgLTUyOTksOCArNTE4Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyBib29sIHlfZXhwYW5kIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQgel9wb3NpdGlvbiB7IGdldDsgc2V0OyB9Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWxsb2Nh dGlvbl9jaGFuZ2VkIChDbHV0dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRlci5BbGxvY2F0aW9uRmxh Z3MgZmxhZ3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIGJvb2wgYnV0dG9uX3ByZXNzX2V2ZW50IChDbHV0dGVyLkJ1dHRvbkV2ZW50IGV2 ZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KK0BAIC01MzMxLDIyICs1MjEyLDI1 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIG1v dGlvbl9ldmVudCAoQ2x1dHRlci5Nb3Rpb25FdmVudCBldmVudCk7CisgCQlbSGFzRW1pdHRlcl0K KyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYWludCAo KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29u dGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhcmVudF9zZXQgKENsdXR0ZXIuQWN0b3I/IG9sZF9w YXJlbnQpOworKwkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaWNrIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsK KysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQg cGlja19jb250ZXh0KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcXVldWVfcmVsYXlvdXQgKCk7Cisg CQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCByZWFsaXplICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcmVzb3Vy Y2Vfc2NhbGVfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHNjcm9sbF9ldmVudCAoQ2x1dHRlci5TY3JvbGxFdmVu dCBldmVudCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0K KyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHNob3cgKCk7CisrCQlwdWJsaWMgc2lnbmFs IHZvaWQgc3RhZ2Vfdmlld3NfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB0b3VjaF9ldmVudCAoQ2x1dHRlci5F dmVudCBldmVudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTUzNTgsMjEg KzUyNDIsMzMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgdW5yZWFsaXplICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9tZXRhX2dldF90eXBl ICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0IGNs YXNzIEFjdG9yTWV0YSA6IEdMaWIuSW5pdGlhbGx5VW5vd25lZCB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgQWN0b3JNZXRhICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B Y3RvciBnZXRfYWN0b3IgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJs aWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlw dWJsaWMgdmlydHVhbCB2b2lkIHNldF9hY3RvciAoQ2x1dHRlci5BY3Rvcj8gYWN0b3IpOworLQkJ cHVibGljIHZvaWQgc2V0X2VuYWJsZWQgKGJvb2wgaXNfZW5hYmxlZCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9lbmFibGVkIChib29s IGlzX2VuYWJsZWQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZv aWQgc2V0X25hbWUgKHN0cmluZyBuYW1lKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGFjdG9yIHsgZ2V0OyB9CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBlbmFibGVkIHsgZ2V0OyBzZXQ7IH0KKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgc2V0 OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGlj IGNsYXNzIEFjdG9yTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisr CQlwdWJsaWMgQWN0b3JOb2RlIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfYWxpZ25fY29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisgCXB1YmxpYyBjbGFzcyBBbGlnbkNvbnN0cmFpbnQgOiBDbHV0dGVyLkNvbnN0cmFp bnQgeworQEAgLTUzODAsODEgKzUyNzYsMTggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIEFsaWduQ29uc3RyYWludCAoQ2x1dHRlci5BY3Rvcj8gc291cmNlLCBDbHV0dGVyLkFsaWdu QXhpcyBheGlzLCBmbG9hdCBmYWN0b3IpOworIAkJcHVibGljIENsdXR0ZXIuQWxpZ25BeGlzIGdl dF9hbGlnbl9heGlzICgpOworIAkJcHVibGljIGZsb2F0IGdldF9mYWN0b3IgKCk7CisrCQlwdWJs aWMgdm9pZCBnZXRfcGl2b3RfcG9pbnQgKG91dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50IHBpdm90 X3BvaW50KTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3NvdXJjZSAoKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9hbGlnbl9heGlzIChDbHV0dGVyLkFsaWduQXhpcyBheGlzKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGZsb2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgdm9p ZCBzZXRfcGl2b3RfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBpdm90X3BvaW50KTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9zb3VyY2UgKENsdXR0ZXIuQWN0b3I/IHNvdXJjZSk7CisgCQlwdWJsaWMgQ2x1 dHRlci5BbGlnbkF4aXMgYWxpZ25fYXhpcyB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJcHVi bGljIGZsb2F0IGZhY3RvciB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JN ZXRob2RdCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7 IHNldDsgfQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3Igc291cmNlIHsgZ2V0OyBzZXQgY29uc3Ry dWN0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FscGhhX2dldF90eXBlICgpIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MC4yIildCistCXB1YmxpYyBjbGFzcyBBbHBoYSA6IEdMaWIuSW5pdGlhbGx5VW5vd25lZCwgQ2x1 dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKy0JCXB1YmxpYyBBbHBoYSAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBB bHBoYS5mdWxsIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCB1bG9uZyBtb2RlKTsKKy0JCXB1 YmxpYyBkb3VibGUgZ2V0X2FscGhhICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5U aW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9z dXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWxv bmcgcmVnaXN0ZXJfZnVuYyAoQ2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY2xvc3VyZSAoR0xpYi5DbG9zdXJl IGNsb3N1cmUpOworLQkJcHVibGljIHZvaWQgc2V0X2Z1bmMgKG93bmVkIENsdXR0ZXIuQWxwaGFG dW5jIGZ1bmMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X21vZGUgKHVsb25nIG1vZGUpOworLQkJcHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0 dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBBbHBo YS53aXRoX2Z1bmMgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIG93bmVkIENsdXR0ZXIuQWxw aGFGdW5jIGZ1bmMpOworLQkJcHVibGljIGRvdWJsZSBhbHBoYSB7IGdldDsgfQorLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldCBjb25z dHJ1Y3Q7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lIHsgZ2V0OyBzZXQ7 IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfYW5pbWF0aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCXB1YmxpYyBjbGFzcyBBbmltYXRpb24gOiBHTGliLk9iamVjdCwgQ2x1dHRlci5T Y3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXB1YmxpYyBBbmltYXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1h dGlvbiBiaW5kIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBmaW5hbCk7CistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kX2ludGVydmFsIChzdHJpbmcgcHJv cGVydHlfbmFtZSwgb3duZWQgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZhbCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7Cist CQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkludGVydmFsIGdldF9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJcHVibGlj IGJvb2wgZ2V0X2xvb3AgKCk7CistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlwdWJs aWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJcHVibGljIHVub3duZWQg Q2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlwdWJsaWMgYm9vbCBoYXNfcHJv cGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQkJcHVibGljIHZvaWQg c2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9sb29wIChib29s IGxvb3ApOworLQkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOworLQkJcHVibGlj IHZvaWQgc2V0X29iamVjdCAoR0xpYi5PYmplY3Qgb2JqZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNl dF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZT8gdGltZWxpbmUpOworLQkJcHVibGljIHZvaWQg dW5iaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFuaW1hdGlvbiB1cGRhdGUgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZh bHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB2b2lkIHVwZGF0ZV9pbnRlcnZhbCAoc3RyaW5nIHByb3Bl cnR5X25hbWUsIENsdXR0ZXIuSW50ZXJ2YWwgaW50ZXJ2YWwpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1 aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBib29sIGxvb3AgeyBnZXQ7IHNl dDsgfQorLQkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIEdMaWIu T2JqZWN0IG9iamVjdCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5UaW1lbGluZSB0 aW1lbGluZSB7IGdldDsgc2V0OyB9CistCQlbSGFzRW1pdHRlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCB2b2lkIGNvbXBsZXRlZCAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lk IHN0YXJ0ZWQgKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlbVmVyc2lv biAoc2luY2UgPSAiMC4yIildCitAQCAtNTQ2NywzNyArNTMwMCwxNCBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JhY2tlbmRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2VuZCA6IEdMaWIuT2JqZWN0 IHsKKysJcHVibGljIGFic3RyYWN0IGNsYXNzIEJhY2tlbmQgOiBHTGliLk9iamVjdCB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgQmFj a2VuZCAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFkZF9vcHRp b25zIChHTGliLk9wdGlvbkdyb3VwIGdyb3VwKTsKKy0JCXB1YmxpYyB2b2lkIGJlbGxfbm90aWZ5 ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgY3JlYXRlX2NvbnRl eHQgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgdW5vd25lZCBDbHV0dGVyLlN0YWdlV2luZG93IGNyZWF0ZV9zdGFnZSAoQ2x1dHRlci5TdGFn ZSB3cmFwcGVyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIGVuc3VyZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdl ciBnZXRfZGV2aWNlX21hbmFnZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworKwkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5TZWF0IGdldF9kZWZhdWx0X3NlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC44IildCisgCQlwdWJsaWMgdW5vd25lZCBDYWlyby5Gb250T3B0aW9ucyBnZXRfZm9udF9v cHRpb25zICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5JbnB1dE1ldGhvZCBnZXRfaW5w dXRfbWV0aG9kICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0X2tleW1h cCAoKTsKKyAJCXB1YmxpYyBkb3VibGUgZ2V0X3Jlc29sdXRpb24gKCk7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZmVhdHVyZXMgKCk7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBwb3N0X3BhcnNlICgpIHRocm93cyBHTGliLkVycm9y OworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJlX3BhcnNlICgpIHRo cm93cyBHTGliLkVycm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg cmVkcmF3IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9mb250X29wdGlvbnMgKENhaXJvLkZvbnRPcHRpb25zIG9w dGlvbnMpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0X21ldGhvZCAoQ2x1dHRlci5JbnB1dE1l dGhvZCBtZXRob2QpOworQEAgLTU1MDgsOTUgKzUzMTgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIHNl dHRpbmdzX2NoYW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9nZXRfdHlwZSAo KSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCZWhhdmlvdXIg OiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCZWhhdmlvdXIgKCk7CistCQlw dWJsaWMgdm9pZCBhY3RvcnNfZm9yZWFjaCAoQ2x1dHRlci5CZWhhdmlvdXJGb3JlYWNoRnVuYyBm dW5jKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFscGhhX25vdGlm eSAoZG91YmxlIGFscGhhX3ZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIGFwcGx5IChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5BY3Rvcj4gZ2V0 X2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWxwaGEgZ2V0X2FscGhhICgp OworLQkJcHVibGljIGludCBnZXRfbl9hY3RvcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFjdG9yIGdldF9udGhfYWN0b3IgKGludCBpbmRleF8pOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgaXNfYXBwbGllZCAoQ2x1dHRlci5BY3RvciBhY3Rv cik7CistCQlwdWJsaWMgdm9pZCByZW1vdmUgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2FsbCAoKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CistCQlwdWJsaWMg Q2x1dHRlci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhcHBsaWVkIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIHJlbW92ZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9iZWhhdmlvdXJfZGVwdGhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQor LQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyRGVwdGggOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRl ci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIqIildCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCistCQlwdWJsaWMgQmVoYXZpb3VyRGVwdGggKENsdXR0ZXIuQWxwaGE/IGFscGhhLCBpbnQg ZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGludCBkZXB0aF9zdGFydCwgb3V0IGlu dCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZv aWQgc2V0X2JvdW5kcyAoaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGlu dCBkZXB0aF9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgaW50IGRlcHRoX3N0YXJ0IHsgZ2V0OyBz ZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX29wYWNpdHlfZ2V0X3R5cGUgKCkiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIs IHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyT3BhY2l0eSA6IENsdXR0 ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1 YmxpYyBCZWhhdmlvdXJPcGFjaXR5IChDbHV0dGVyLkFscGhhPyBhbHBoYSwgdWludDggb3BhY2l0 eV9zdGFydCwgdWludDggb3BhY2l0eV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IHVpbnQ4IG9wYWNpdHlfc3RhcnQsIG91 dCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgdm9pZCBzZXRfYm91bmRzICh1aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5 X2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG9wYWNpdHlfZW5k IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgb3Bh Y2l0eV9zdGFydCB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9zY2Fs ZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlv dXJTY2FsZSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2 aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJTY2FsZSAoQ2x1dHRlci5BbHBoYT8gYWxwaGEs IGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBkb3VibGUgeV9zY2FsZV9zdGFydCwgZG91YmxlIHhfc2Nh bGVfZW5kLCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBv dXQgZG91YmxlIHlfc2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeF9zY2FsZV9lbmQsIG91dCBkb3Vi bGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2JvdW5kcyAoZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0 YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3Vi bGUgeF9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHhfc2NhbGVfc3RhcnQg eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIGRvdWJsZSB5X3NjYWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf YmluX2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisg CXB1YmxpYyBjbGFzcyBCaW5MYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91 dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQmluTGF5b3V0IChDbHV0dGVyLkJpbkFsaWdubWVudCB4 X2FsaWduID0gQ2x1dHRlci5CaW5BbGlnbm1lbnQuU1RBUlQsIENsdXR0ZXIuQmluQWxpZ25tZW50 IHlfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIHZvaWQgYWRkIChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkJpbkFs aWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBj aGlsZCwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLkJpbkFs aWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRf YWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9h bGlnbiwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9h bGlnbiB7IGdldDsgc2V0OyB9CitAQCAtNTY0NCw5OCArNTM3MCwyOSBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyRWZmZWN0KiIpXQorIAkJcHVibGljIEJsdXJFZmZlY3QgKCk7CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2JveF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCist CXB1YmxpYyBjbGFzcyBCb3ggOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0 ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVy QWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIEJveCAoQ2x1dHRlci5MYXlv dXRNYW5hZ2VyIG1hbmFnZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDbHV0dGVy LkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkxheW91dE1hbmFnZXIgZ2V0X2xheW91dF9tYW5hZ2VyICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja19hZnRlciAoQ2x1dHRlci5B Y3RvciBhY3RvciwgQ2x1dHRlci5BY3Rvcj8gc2libGluZywgLi4uKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4y IildCistCQlwdWJsaWMgdm9pZCBwYWNrX2F0IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgcG9z aXRpb24sIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja19iZWZv cmUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcsIC4uLik7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja3YgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xl bmd0aF9wb3MgPSAxLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50IildIHN0cmluZ1tdIHBy b3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFy cmF5X2xlbmd0aF9wb3MgPSAxLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50IildIEdMaWIu VmFsdWVbXSB2YWx1ZXMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9j b2xvciAoQ2x1dHRlci5Db2xvcj8gY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9sYXlvdXRfbWFuYWdlciAoQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIG1hbmFnZXIp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbG9yIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyBib29sIGNvbG9yX3NldCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5MYXlv dXRNYW5hZ2VyIGxheW91dF9tYW5hZ2VyIHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf Ym94X2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisg CXB1YmxpYyBjbGFzcyBCb3hMYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91 dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQm94TGF5b3V0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBD bHV0dGVyLkJveEFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeV9h bGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2Vhc2luZ19kdXJh dGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdWxvbmcgZ2V0X2Vhc2luZ19t b2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9leHBhbmQgKENs dXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2ZpbGwsIG91dCBib29sIHlf ZmlsbCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBnZXRf aG9tb2dlbmVvdXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGlj IENsdXR0ZXIuT3JpZW50YXRpb24gZ2V0X29yaWVudGF0aW9uICgpOworIAkJcHVibGljIGJvb2wg Z2V0X3BhY2tfc3RhcnQgKCk7CisgCQlwdWJsaWMgdWludCBnZXRfc3BhY2luZyAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FuaW1hdGlvbnMgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3ZlcnRpY2FsICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wg ZXhwYW5kLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwsIENsdXR0ZXIuQm94QWxpZ25tZW50IHhf YWxpZ24sIENsdXR0ZXIuQm94QWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0 ZXIuQm94QWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQm94QWxpZ25tZW50IHlfYWxpZ24pOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfZHVyYXRpb24gKHVp bnQgbXNlY3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdf bW9kZSAodWxvbmcgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCBleHBhbmQpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29s IHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2hvbW9nZW5lb3VzIChib29sIGhvbW9nZW5lb3VzKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfb3JpZW50YXRpb24gKENs dXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24pOworIAkJcHVibGljIHZvaWQgc2V0X3BhY2tf c3RhcnQgKGJvb2wgcGFja19zdGFydCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfc3BhY2luZyAodWlu dCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2Fu aW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZv aWQgc2V0X3ZlcnRpY2FsIChib29sIHZlcnRpY2FsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgdWludCBlYXNpbmdfZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyB1bG9uZyBlYXNpbmdfbW9kZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBob21vZ2VuZW91cyB7IGdldDsgc2V0 OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIuT3Jp ZW50YXRpb24gb3JpZW50YXRpb24geyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGJvb2wgcGFja19z dGFydCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWludCBzcGFjaW5nIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCB1c2VfYW5pbWF0aW9ucyB7IGdldDsg c2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgdmVydGljYWwgeyBnZXQ7 IHNldDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9icmlnaHRuZXNzX2NvbnRyYXN0X2VmZmVjdF9nZXRf dHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTU3NDksOSArNTQw Niw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250cmFzdCAo ZmxvYXQgY29udHJhc3QpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRyYXN0X2Z1bGwgKGZsb2F0 IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgQ2x1dHRlci5Db2xvciBicmlnaHRuZXNzIHsgZ2V0OyBzZXQ7IH0KKysJCXB1Ymxp YyBDbHV0dGVyLkNvbG9yIGJyaWdodG5lc3MgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb250cmFzdCB7IGdldDsgc2V0 OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb250cmFzdCB7IG93bmVkIGdldDsgc2V0OyB9 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorQEAgLTU3NzAsMzcgKzU0MjcsNiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9h dCB5OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jYWlyb190ZXh0dXJlX2dldF90eXBlICgpIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBjbGFzcyBDYWlyb1RleHR1cmUgOiBDbHV0dGVyLlRleHR1 cmUsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5l ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBDYWlyb1RleHR1 cmUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQgY3JlYXRlICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQgY3JlYXRlX3JlZ2lvbiAoaW50 IHhfb2Zmc2V0LCBpbnQgeV9vZmZzZXQsIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgYm9vbCBnZXRfYXV0b19yZXNpemUgKCk7 CistCQlwdWJsaWMgdm9pZCBnZXRfc3VyZmFjZV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVp bnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lk IGludmFsaWRhdGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg dm9pZCBpbnZhbGlkYXRlX3JlY3RhbmdsZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyByZWN0KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hdXRvX3Jlc2l6 ZSAoYm9vbCB2YWx1ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfc3VyZmFjZV9zaXplICh1aW50IHdp ZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgYm9vbCBhdXRvX3Jlc2l6ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyB1aW50IHN1cmZhY2VfaGVpZ2h0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV93aWR0aCB7IGdldDsgc2V0OyB9Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgQ2Fp cm8uU3VyZmFjZSBjcmVhdGVfc3VyZmFjZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wg ZHJhdyAoQ2Fpcm8uQ29udGV4dCBjcik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NhbnZhc19nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgQ2Fu dmFzIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CitAQCAtNTgyNywxNyArNTQ1Mywy MCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db250YWluZXIgY29u dGFpbmVyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2xpY2tfYWN0aW9u X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNs YXNzIENsaWNrQWN0aW9uIDogQ2x1dHRlci5BY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBDbGlja0FjdGlvbiAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1aW50IGdldF9idXR0b24gKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBnZXRfY29vcmRzIChvdXQg ZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIuTW9kaWZpZXJUeXBlIGdldF9zdGF0ZSAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbGVhc2UgKCk7Cisg CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyBib29sIGhlbGQgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTU4NDYsNyArNTQ3NSw5IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgbG9uZ19w cmVzc190aHJlc2hvbGQgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBwcmVzc2VkIHsgZ2V0OyB9 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBjbGlja2VkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGxvbmdfcHJlc3MgKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuTG9uZ1ByZXNzU3RhdGUgc3RhdGUpOworQEAgLTU4ODgs OCArNTUxOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBDb25zdHJhaW50 ICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdXBkYXRlX2FsbG9j YXRpb24gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbik7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfcHJlZmVycmVk X3NpemUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuT3JpZW50YXRpb24gZGlyZWN0aW9u LCBmbG9hdCBmb3Jfc2l6ZSwgZmxvYXQgbWluaW11bV9zaXplLCBmbG9hdCBuYXR1cmFsX3NpemUp OworKwkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfcHJlZmVycmVkX3NpemUgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIENsdXR0ZXIuT3JpZW50YXRpb24gZGlyZWN0aW9uLCBmbG9hdCBmb3Jfc2l6 ZSwgcmVmIGZsb2F0IG1pbmltdW1fc2l6ZSwgcmVmIGZsb2F0IG5hdHVyYWxfc2l6ZSk7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorQEAgLTU4OTgsNiArNTUyOCw3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNl OworIAkJcHVibGljIENsdXR0ZXIuRXZlbnRGbGFncyBmbGFnczsKKyAJCXB1YmxpYyB3ZWFrIENs dXR0ZXIuQWN0b3IgcmVsYXRlZDsKKysJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuRXZlbnRTZXF1ZW5j ZSBzZXF1ZW5jZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3Igc291cmNlOworIAkJcHVi bGljIHdlYWsgQ2x1dHRlci5TdGFnZSBzdGFnZTsKKyAJCXB1YmxpYyB1aW50MzIgdGltZTsKK0BA IC01OTMxLDk4ICs1NTYyLDIxIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lk IHNldF9mYWN0b3IgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVibGljIGRvdWJsZSBmYWN0b3IgeyBn ZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZXZpY2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBE ZXZpY2VNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERldmljZU1hbmFnZXIgKCk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfZGV2aWNlIChDbHV0dGVyLklucHV0 RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBh cHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3Mp OworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90aW9u IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworLQkJcHVi bGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZpY2UgY3JlYXRlX3ZpcnR1YWxfZGV2 aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgdmly dHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2NvcmVfZGV2aWNlIChDbHV0dGVy LklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQg Q2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZWZhdWx0ICgpOworLQkJcHVibGljIHZpcnR1YWwg dW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9kZXZpY2UgKGludCBkZXZpY2VfaWQpOwor LQkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0 aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxEZXZpY2VU eXBlIGdldF9zdXBwb3J0ZWRfdmlydHVhbF9kZXZpY2VfdHlwZXMgKCk7CistCQlwdWJsaWMgR0xp Yi5TTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5JbnB1dERldmljZT4gcGVla19kZXZpY2Vz ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVtb3ZlX2Rldmlj ZSAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgc2VsZWN0X3N0YWdlX2V2ZW50cyAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7 CistCQlwdWJsaWMgdm9pZCBzZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNl dHRpbmdzIHNldHRpbmdzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENsdXR0 ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmljZSBk ZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2NoYW5nZWQgKHVp bnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9tYXNrLCB1aW50 IGxvY2tlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB0b29sX2NoYW5nZWQgKENsdXR0 ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBDbHV0dGVyLklucHV0RGV2aWNlVG9vbCBwMCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2RyYWdfYWN0aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNzIERyYWdBY3Rpb24gOiBDbHV0dGVyLkFjdGlvbiB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0aW9uKiIpXQorLQkJcHVibGljIERyYWdBY3Rpb24gKCk7CistCQlwdWJsaWMgYm9vbCBn ZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJlY3QgZHJhZ19hcmVhKTsKKy0JCXB1YmxpYyBDbHV0dGVy LkRyYWdBeGlzIGdldF9kcmFnX2F4aXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9kcmFnX2hhbmRsZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9kcmFnX3RocmVzaG9s ZCAob3V0IHVpbnQgeF90aHJlc2hvbGQsIG91dCB1aW50IHlfdGhyZXNob2xkKTsKKy0JCXB1Ymxp YyB2b2lkIGdldF9tb3Rpb25fY29vcmRzIChvdXQgZmxvYXQgbW90aW9uX3gsIG91dCBmbG9hdCBt b3Rpb25feSk7CistCQlwdWJsaWMgdm9pZCBnZXRfcHJlc3NfY29vcmRzIChvdXQgZmxvYXQgcHJl c3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworLQkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXJlYSAo Q2x1dHRlci5SZWN0PyBkcmFnX2FyZWEpOworLQkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXhpcyAo Q2x1dHRlci5EcmFnQXhpcyBheGlzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kcmFnX2hhbmRsZSAo Q2x1dHRlci5BY3Rvcj8gaGFuZGxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kcmFnX3RocmVzaG9s ZCAoaW50IHhfdGhyZXNob2xkLCBpbnQgeV90aHJlc2hvbGQpOworLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUmVj dCBkcmFnX2FyZWEgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJvb2wgZHJhZ19hcmVhX3Nl dCB7IGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuRHJhZ0F4aXMgZHJhZ19heGlzIHsgZ2V0OyBz ZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGRyYWdfaGFuZGxlIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB4X2RyYWdfdGhyZXNob2xkIHsg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5X2RyYWdf dGhyZXNob2xkIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRy YWdfYmVnaW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0IGV2ZW50 X3ksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZGlmaWVycyk7CistCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBkcmFnX2VuZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwg ZmxvYXQgZXZlbnRfeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJzKTsKKy0JCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyYWdfbW90aW9uIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBm bG9hdCBkZWx0YV94LCBmbG9hdCBkZWx0YV95KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBkcmFnX3Byb2dyZXNzIChDbHV0dGVy LkFjdG9yIGFjdG9yLCBmbG9hdCBkZWx0YV94LCBmbG9hdCBkZWx0YV95KTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfZHJvcF9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQlwdWJsaWMgY2xhc3MgRHJvcEFjdGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rp b24qIildCistCQlwdWJsaWMgRHJvcEFjdGlvbiAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCBib29sIGNhbl9kcm9wIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBldmVudF94LCBmbG9h dCBldmVudF95KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyb3AgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3kpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkcm9wX2NhbmNlbCAoQ2x1 dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSk7CistCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgdm9pZCBvdmVyX2luIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0J CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIG92ZXJfb3V0IChDbHV0dGVyLkFjdG9yIGFjdG9y KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIEVmZmVjdCA6IENsdXR0ZXIu QWN0b3JNZXRhIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KyAJCXByb3RlY3RlZCBFZmZlY3QgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgYm9vbCBnZXRfcGFpbnRfdm9sdW1lIChDbHV0dGVyLlBhaW50Vm9sdW1lIHZvbHVtZSk7Cisr CQlwdWJsaWMgdmlydHVhbCBib29sIG1vZGlmeV9wYWludF92b2x1bWUgKENsdXR0ZXIuUGFpbnRW b2x1bWUgdm9sdW1lKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBh aW50IChDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwg dm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCwgQ2x1dHRlci5F ZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHBpY2sgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7CisrCQlwdWJsaWMg dmlydHVhbCB2b2lkIHBpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJ CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFpbnQgKCk7CisrCQlw dWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50 X2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJlX3Bh aW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKENsdXR0ZXIuUGFpbnRD b250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJ cHVibGljIHZvaWQgcXVldWVfcmVwYWludCAoKTsKKyAJfQorQEAgLTYwMzMsOCArNTU4NywxMiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudFR5cGUgdHlwZTsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBF dmVudCAoQ2x1dHRlci5FdmVudFR5cGUgdHlwZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x OCIpXQorKwkJcHVibGljIHN0YXRpYyB1aW50IGFkZF9maWx0ZXIgKENsdXR0ZXIuU3RhZ2U/IHN0 YWdlLCBbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAyLjIsIGRlc3Ryb3lfbm90aWZ5X3Bv cyA9IDIuMSldIG93bmVkIENsdXR0ZXIuRXZlbnRGaWx0ZXJGdW5jIGZ1bmMpOworIAkJcHVibGlj IENsdXR0ZXIuRXZlbnQgY29weSAoKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCisrCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRXZlbnQgQGdl dCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZG91YmxlIGdl dF9hbmdsZSAoQ2x1dHRlci5FdmVudCB0YXJnZXQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorQEAgLTYwNzMsNyArNTYzMSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyB1aW50IGdldF9tb2RlX2dyb3VwICgpOworIAkJcHVibGljIGJvb2wgZ2V0X3BhZF9ldmVudF9k ZXRhaWxzIChvdXQgdWludCBudW1iZXIsIG91dCB1aW50IG1vZGUsIG91dCBkb3VibGUgdmFsdWUp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9wb3Np dGlvbiAoQ2x1dHRlci5Qb2ludCBwb3NpdGlvbik7CisrCQlwdWJsaWMgdm9pZCBnZXRfcG9zaXRp b24gKEdyYXBoZW5lLlBvaW50IHBvc2l0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3JlbGF0ZWQgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTYxMDYsOCArNTY2NCwxMiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBoYXNfc2hpZnRfbW9kaWZpZXIgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgaXNfcG9pbnRlcl9lbXVs YXRlZCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKysJCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBDbHV0dGVyLkV2ZW50IHBlZWsgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCisgCQlwdWJsaWMgdm9pZCBwdXQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIp XQorKwkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9maWx0ZXIgKHVpbnQgaWQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2J1dHRvbiAodWludDMy IGJ1dHRvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNjE0MCwxNiArNTcw Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9zdGF0ZSAoQ2x1 dHRlci5Nb2RpZmllclR5cGUgc3RhdGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor IAkJcHVibGljIHZvaWQgc2V0X3RpbWUgKHVpbnQzMiB0aW1lXyk7CistCQlwdWJsaWMgQ2x1dHRl ci5BbnlFdmVudCBhbnkge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJBbnlFdmVudCAqKSIpXSAg Z2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5CdXR0b25FdmVudCBidXR0b24ge1tDQ29kZSAoY25h bWUgPSAiKENsdXR0ZXJCdXR0b25FdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRl ci5Dcm9zc2luZ0V2ZW50IGNyb3NzaW5nIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyQ3Jvc3Np bmdFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5LZXlFdmVudCBrZXkge1tD Q29kZSAoY25hbWUgPSAiKENsdXR0ZXJLZXlFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMg Q2x1dHRlci5Nb3Rpb25FdmVudCBtb3Rpb24ge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJNb3Rp b25FdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxFdmVudCBzY3Jv bGwge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJTY3JvbGxFdmVudCAqKSIpXSAgZ2V0OyB9Cist CQlwdWJsaWMgQ2x1dHRlci5TdGFnZVN0YXRlRXZlbnQgc3RhZ2Vfc3RhdGUge1tDQ29kZSAoY25h bWUgPSAiKENsdXR0ZXJTdGFnZVN0YXRlRXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENs dXR0ZXIuVG91Y2hFdmVudCB0b3VjaCB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNoRXZl bnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVG91Y2hwYWRQaW5jaEV2ZW50IHRv dWNocGFkX3BpbmNoIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyVG91Y2hwYWRQaW5jaEV2ZW50 ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRvdWNocGFkU3dpcGVFdmVudCB0b3Vj aHBhZF9zd2lwZSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNocGFkU3dpcGVFdmVudCAq KSIpXSAgZ2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9u ID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9zZXF1ZW5jZV9nZXRf dHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC02MTk4LDEwICs1NzUwLDI0IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgYm9v bCBzbmFwX3RvX2dyaWQgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mcmFtZV9jbG9j a19nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgRnJhbWVDbG9jayA6IEdMaWIuT2JqZWN0 IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1Ymxp YyBGcmFtZUNsb2NrIChmbG9hdCByZWZyZXNoX3JhdGUsIENsdXR0ZXIuRnJhbWVMaXN0ZW5lcklm YWNlIGlmYWNlLCB2b2lkKiB1c2VyX2RhdGEpOworKwkJcHVibGljIHZvaWQgYWRkX3RpbWVsaW5l IChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfcmVmcmVz aF9yYXRlICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdCAoKTsKKysJCXB1YmxpYyB2b2lkIHJl bW92ZV90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSk7CisrCQlwdWJsaWMgdm9p ZCBzY2hlZHVsZV91cGRhdGUgKCk7CisrCQlwdWJsaWMgdm9pZCBzY2hlZHVsZV91cGRhdGVfbm93 ICgpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0ICgpOworKwkJW0hhc0VtaXR0ZXJdCisrCQlw dWJsaWMgc2lnbmFsIHZvaWQgZGVzdHJveSAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ2VzdHVyZV9h Y3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJs aWMgY2xhc3MgR2VzdHVyZUFjdGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgR2VzdHVyZUFjdGlvbiAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBjYW5jZWwgKCk7 CitAQCAtNjIxMSw2ICs1Nzc3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfZGV2aWNlICh1aW50IHBvaW50KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50 IGdldF9sYXN0X2V2ZW50ICh1aW50IHBvaW50KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKyAJCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRzICh1aW50IHBvaW50LCBvdXQgZmxv YXQgbW90aW9uX3gsIG91dCBmbG9hdCBtb3Rpb25feSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorIAkJcHVibGljIGZsb2F0IGdldF9tb3Rpb25fZGVsdGEgKHVpbnQgcG9pbnQsIG91 dCBmbG9hdCBkZWx0YV94LCBvdXQgZmxvYXQgZGVsdGFfeSk7CitAQCAtNjIxOCw3ICs1Nzg1LDkg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgZ2V0X25fY3VycmVudF9wb2lu dHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGludCBnZXRf bl90b3VjaF9wb2ludHMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJs aWMgdm9pZCBnZXRfcHJlc3NfY29vcmRzICh1aW50IHBvaW50LCBvdXQgZmxvYXQgcHJlc3NfeCwg b3V0IGZsb2F0IHByZXNzX3kpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVi bGljIHZvaWQgZ2V0X3JlbGVhc2VfY29vcmRzICh1aW50IHBvaW50LCBvdXQgZmxvYXQgcmVsZWFz ZV94LCBvdXQgZmxvYXQgcmVsZWFzZV95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50U2VxdWVuY2UgZ2V0X3NlcXVlbmNlICh1 aW50IHBvaW50KTsKK0BAIC02MjQ2LDkgKzU4MTUsMTMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGZsb2F0IHRocmVzaG9sZF90cmlnZ2VyX2Rpc3RhbmNlX3kgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1YmxpYyBDbHV0dGVy Lkdlc3R1cmVUcmlnZ2VyRWRnZSB0aHJlc2hvbGRfdHJpZ2dlcl9lZGdlIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCBib29sIGdlc3R1cmVfYmVnaW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZ2VzdHVy ZV9jYW5jZWwgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZ2VzdHVyZV9lbmQgKENsdXR0ZXIu QWN0b3IgYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZp cnR1YWwgc2lnbmFsIGJvb2wgZ2VzdHVyZV9wcm9ncmVzcyAoQ2x1dHRlci5BY3RvciBhY3Rvcik7 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2dyaWRfbGF5b3V0X2dldF90eXBlICgpIildCitAQCAtNjI3OCwx OSArNTg1MSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHJvd19ob21v Z2VuZW91cyB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWludCByb3dfc3BhY2luZyB7IGdldDsg c2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dyb3VwX2dldF90eXBlICgpIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEdyb3VwIDogQ2x1dHRlci5BY3Rvciwg QXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBD bHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBHcm91cCAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgaW50IGdldF9uX2NoaWxkcmVuICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X250aF9j aGlsZCAoaW50IGluZGV4Xyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2FsbCAoKTsKKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfaW1hZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIEltYWdlIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29u dGVudCB7CitAQCAtNjMwNiw2ICs1ODY2LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJs aWMgY2xhc3MgSW5wdXREZXZpY2UgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgSW5wdXREZXZpY2UgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9hY3RvciAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2 aWNlIGdldF9hc3NvY2lhdGVkX2RldmljZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KK0BAIC02MzEzLDcgKzU4NzUsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXhpc192YWx1ZSAoW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldIGRvdWJsZVtdIGF4ZXMsIENsdXR0ZXIuSW5wdXRBeGlz IGF4aXMsIG91dCBkb3VibGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K Ky0JCXB1YmxpYyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVu Y2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIGJvb2wgZ2V0X2Nvb3JkcyAoQ2x1 dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSwgR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGludCBnZXRfZGV2aWNlX2lkICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzMjUsMTIgKzU4ODcsOSBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZ2V0 X2RldmljZV90eXBlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGlj IGJvb2wgZ2V0X2VuYWJsZWQgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0X2lu cHV0X2RldmljZV9mb3JfaWQiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfZm9yX2lkIChpbnQgaWRfKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IGdldF9ncmFiYmVkX2FjdG9yICgpOworLQkJcHVibGljIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAo aW50IGdyb3VwKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50 IGdyb3VwKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdl dF9oYXNfY3Vyc29yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzNDYs MjMgKzU5MDUsMjEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGludCBnZXRfbl9t b2RlX2dyb3VwcyAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fcmluZ3MgKCk7CisgCQlwdWJsaWMg aW50IGdldF9uX3N0cmlwcyAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9waHlzaWNhbF9zaXplIChk b3VibGUgd2lkdGgsIGRvdWJsZSBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9pbnRlcl9hY3RvciAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu U3RhZ2UgZ2V0X3BvaW50ZXJfc3RhZ2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIp XQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9kdWN0X2lkICgpOworKwkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9zZWF0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGdl dF9zbGF2ZV9kZXZpY2VzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdmVuZG9yX2lkICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGdyYWIgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOwor LQkJcHVibGljIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvdGhlcl9kZXZp Y2UpOworLQkJcHVibGljIGJvb2wgaXNfbW9kZV9zd2l0Y2hfYnV0dG9uICh1aW50IGdyb3VwLCB1 aW50IGJ1dHRvbik7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGlzX2dyb3VwZWQgKENsdXR0ZXIu SW5wdXREZXZpY2Ugb3RoZXJfZGV2aWNlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaXNfbW9k ZV9zd2l0Y2hfYnV0dG9uICh1aW50IGdyb3VwLCB1aW50IGJ1dHRvbik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJvb2wga2V5Y29kZV90b19ldmRldiAodWludCBo YXJkd2FyZV9rZXljb2RlLCB1aW50IGV2ZGV2X2tleWNvZGUpOworKwkJcHVibGljIHZpcnR1YWwg Ym9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQgZXZkZXZf a2V5Y29kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBzZXF1ZW5jZV9nZXRfZ3JhYmJlZF9hY3RvciAoQ2x1dHRlci5FdmVu dFNlcXVlbmNlIHNlcXVlbmNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAt NjM3OCwxMiArNTkzNSwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCB1 bmdyYWIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCB1 cGRhdGVfZnJvbV9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgYm9vbCB1cGRhdGVfc3RhZ2Up OworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdXBkYXRlX2Zyb21fdG9v bCAoQ2x1dHRlci5JbnB1dERldmljZVRvb2wgdG9vbCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkJhY2tlbmQg YmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmljZU1h bmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGlj IENsdXR0ZXIuSW5wdXRNb2RlIGRldmljZV9tb2RlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1 YmxpYyBzdHJpbmcgZGV2aWNlX25vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorQEAgLTY0MDYsNiArNTk2Miw3IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHN0cmluZyBwcm9kdWN0X2lkIHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBDbHV0dGVyLlNlYXQgc2VhdCB7IGdldDsgY29u c3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHN0cmlu ZyB2ZW5kb3JfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CitAQCAtNjQzMCw3ICs1OTg3LDcg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgY29tbWl0X3RleHQgKHN0cmluZyB0ZXh0KTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAodWludCBvZmZzZXQsIHVpbnQgbGVu KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nIChpbnQgb2Zmc2V0 LCB1aW50IGxlbik7CisgCQlwdWJsaWMgYm9vbCBmaWx0ZXJfa2V5X2V2ZW50IChDbHV0dGVyLktl eUV2ZW50IGtleSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBmb2N1 c19pbiAoQ2x1dHRlci5JbnB1dE1ldGhvZCBpbnB1dF9tZXRob2QpOworQEAgLTY0NDMsNyArNjAw MCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jYW5fc2hvd19w cmVlZGl0IChib29sIGNhbl9zaG93X3ByZWVkaXQpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRl bnRfaGludHMgKENsdXR0ZXIuSW5wdXRDb250ZW50SGludEZsYWdzIGhpbnQpOworIAkJcHVibGlj IHZvaWQgc2V0X2NvbnRlbnRfcHVycG9zZSAoQ2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIHB1 cnBvc2UpOworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoQ2x1dHRlci5SZWN0 IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVj dCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5J bnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5nIHByZWVkaXQsIHVpbnQgY3Vyc29yKTsKK0BA IC02NDYyLDcgKzYwMTksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQor IAkJcHVibGljIHZpcnR1YWwgdm9pZCByZXNldCAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsK KysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVj dCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5J bnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJcHVibGljIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAo c3RyaW5nPyBwcmVlZGl0LCB1aW50IGN1cnNvcik7CisgCQlbTm9XcmFwcGVyXQorQEAgLTY0Nzks OSArNjAzNiw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0 Q29udGVudFB1cnBvc2UgY29udGVudF9wdXJwb3NlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtIYXNFbWl0 dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGNvbW1pdCAoc3RyaW5nIHRleHQpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIGN1cnNvcl9sb2NhdGlvbl9jaGFuZ2VkIChDbHV0dGVyLlJlY3Qgb2Jq ZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbG9jYXRpb25fY2hhbmdlZCAoR3Jh cGhlbmUuUmVjdCBvYmplY3QpOworIAkJW0hhc0VtaXR0ZXJdCistCQlwdWJsaWMgc2lnbmFsIHZv aWQgZGVsZXRlX3N1cnJvdW5kaW5nICh1aW50IG9mZnNldCwgdWludCBsZW4pOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAoaW50IG9mZnNldCwgdWludCBsZW4pOwor IAkJcHVibGljIHNpZ25hbCB2b2lkIGlucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVyLklucHV0UGFu ZWxTdGF0ZSBvYmplY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg cmVxdWVzdF9zdXJyb3VuZGluZyAoKTsKK0BAIC02NTU1LDI4ICs2MTEyLDI4IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KyAJCXByb3RlY3RlZCBLZXltYXAgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBib29sIGdldF9jYXBz X2xvY2tfc3RhdGUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBQYW5nby5EaXJlY3Rpb24gZ2V0X2Rp cmVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X251bV9sb2NrX3N0YXRlICgp OworIAkJcHVibGljIHNpZ25hbCB2b2lkIHN0YXRlX2NoYW5nZWQgKCk7CisgCX0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2xheWVyX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIExheWVyTm9kZSA6 IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMgTGF5ZXJOb2Rl IChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uLCBDYWlyby5SZWN0YW5nbGUgdmlld3BvcnQsIGZsb2F0 IHdpZHRoLCBmbG9hdCBoZWlnaHQsIHVpbnQ4IG9wYWNpdHkpOworKwl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9s YXlvdXRfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBMYXlvdXRNYW5hZ2VyIDogR0xpYi5Jbml0aWFsbHlV bm93bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJ CXByb3RlY3RlZCBMYXlvdXRNYW5hZ2VyICgpOworLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxv Y2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yQm94IGFsbG9j YXRpb24sIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQWxwaGEgYmVnaW5fYW5pbWF0aW9u ICh1aW50IGR1cmF0aW9uLCB1bG9uZyBtb2RlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxs b2NhdGUgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvckJveCBhbGxv Y2F0aW9uKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX2dldCAoQ2x1dHRlci5Db250YWluZXIgY29u dGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRf Z2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3Ig YWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCXB1Ymxp YyB2b2lkIGNoaWxkX3NldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFj dG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0X3Byb3BlcnR5IChDbHV0 dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9w ZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMg dmlydHVhbCB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBjcmVhdGVfY2hpbGRfbWV0YSAoQ2x1 dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuZF9hbmltYXRpb24gKCk7CisgCQlw dWJsaWMgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcg bmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZpcnR1YWwgZG91YmxlIGdldF9h bmltYXRpb25fcHJvZ3Jlc3MgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkxheW91dE1ldGEgZ2V0X2NoaWxkX21ldGEgKENsdXR0ZXIu Q29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbTm9XcmFwcGVy XQorQEAgLTY2MzIsMTIgKzYxODksMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHJvdGVj dGVkIE9mZnNjcmVlbkVmZmVjdCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIENvZ2wuSGFuZGxlIGNy ZWF0ZV90ZXh0dXJlIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91dCB1bm93 bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyBib29sIGdldF90YXJnZXRfcmVjdCAo b3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS44IildCisgCQlw dWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3NpemUgKG91dCBmbG9hdCB3aWR0aCwgb3V0IGZsb2F0IGhl aWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQg Q29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50 X3RhcmdldCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfdGFyZ2V0IChDbHV0dGVy LlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFnZV90dXJu X2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAt NjY1NCw2ICs2MjExLDE3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUg cGVyaW9kIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBmbG9hdCByYWRpdXMgeyBnZXQ7IHNldDsg fQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfcmVmIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3BhaW50X2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjbHV0 dGVyX3BhaW50X2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQ YWludENvbnRleHQgeworKwkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKysJCXB1YmxpYyB1bm93 bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHVub3du ZWQgQ2Fpcm8uUmVnaW9uIGdldF9yZWRyYXdfY2xpcCAoKTsKKysJCXB1YmxpYyB2b2lkIHBvcF9m cmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hfZnJhbWVidWZmZXIgKENvZ2wuRnJh bWVidWZmZXIgZnJhbWVidWZmZXIpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludENv bnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgpOworKwl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9wYWludF9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQYWludE5vZGUgeworQEAgLTY2NjMsNyArNjIzMSw4 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFkZF9tdWx0aXRleHR1cmVf cmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHRleHRfY29vcmRzLCB1aW50 IHRleHRfY29vcmRzX2xlbik7CisgCQlwdWJsaWMgdm9pZCBhZGRfcmVjdGFuZ2xlIChDbHV0dGVy LkFjdG9yQm94IHJlY3QpOworIAkJcHVibGljIHZvaWQgYWRkX3RleHR1cmVfcmVjdGFuZ2xlIChD bHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZs b2F0IHlfMik7CistCQlwdWJsaWMgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENv Z2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcGFpbnQg KENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJcHVibGljIHVub3duZWQg Q2x1dHRlci5QYWludE5vZGUgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChzdHJp bmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKK0BAIC02NjgxLDcgKzYyNTAsNyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlw dWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K Ky0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBnZXRfb3JpZ2luICgpOworKwkJcHVibGljIHZvaWQg Z2V0X29yaWdpbiAob3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02NjkxLDcgKzYyNjAsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9p ZCBzZXRfaGVpZ2h0IChmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorLQkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoQ2x1dHRlci5WZXJ0ZXggb3JpZ2luKTsKKysJ CXB1YmxpYyB2b2lkIHNldF9vcmlnaW4gKEdyYXBoZW5lLlBvaW50M0Qgb3JpZ2luKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF93aWR0aCAoZmxvYXQg d2lkdGgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY3NzgsODggKzYzNDcs MjkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuUGF0aCBwYXRoIHsg Z2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBub2RlX3JlYWNoZWQgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIHVpbnQgaW5kZXgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29u dGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19jb250ZXh0X2dldF90eXBlICgpIiwg dW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBh Y3RdCisrCXB1YmxpYyBjbGFzcyBQaWNrQ29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0cm95 ICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QaWNrQ29udGV4dCBAcmVmICgpOworKwkJ cHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpcGVsaW5lX25vZGVfZ2V0 X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNz IFBpcGVsaW5lTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBQaXBlbGluZU5vZGUgKCk7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFBvaW50IHsKKy0J CXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgc3RhdGljIENs dXR0ZXIuUG9pbnQgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBjb3B5ICgpOwor LQkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChDbHV0dGVyLlBvaW50IGIsIG91dCBmbG9hdCB4X2Rp c3RhbmNlLCBvdXQgZmxvYXQgeV9kaXN0YW5jZSk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENs dXR0ZXIuUG9pbnQgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5Qb2ludCBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKy0JCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IHplcm8gKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Byb3Bl cnR5X3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJcHVibGljIGNsYXNzIFByb3BlcnR5VHJhbnNpdGlvbiA6IENsdXR0ZXIuVHJhbnNpdGlv biwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJUcmFuc2l0aW9uKiIpXQorIAkJcHVibGljIFByb3Bl cnR5VHJhbnNpdGlvbiAoc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKysJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJUcmFuc2l0aW9uKiIpXQor KwkJcHVibGljIFByb3BlcnR5VHJhbnNpdGlvbi5mb3JfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X3Byb3BlcnR5X25hbWUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcHJvcGVydHlfbmFtZSAoc3Ry aW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCXB1YmxpYyBzdHJpbmcgcHJvcGVydHlfbmFtZSB7IGdl dDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0g ImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0X2dldF90eXBlICgpIildCist CVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3Mg UmVjdCB7CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlBvaW50IG9yaWdpbjsKKy0JCXB1YmxpYyB3 ZWFrIENsdXR0ZXIuU2l6ZSBzaXplOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlJlY3QgYWxs b2MgKCk7CistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsKKy0JCXB1YmxpYyBib29s IGNvbnRhaW5zX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyBib29sIGNv bnRhaW5zX3JlY3QgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgY29w eSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5SZWN0IGIpOworLQkJcHVibGlj IHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9jZW50ZXIgKENsdXR0ZXIuUG9pbnQg Y2VudGVyKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGZsb2F0 IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKy0JCXB1YmxpYyBmbG9h dCBnZXRfeSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUmVjdCBpbml0IChmbG9hdCB4 LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIGlu c2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24g KENsdXR0ZXIuUmVjdCBiLCBDbHV0dGVyLlJlY3Q/IHJlcyk7CistCQlwdWJsaWMgQ2x1dHRlci5S ZWN0IG5vcm1hbGl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG9mZnNldCAoZmxvYXQgZF94LCBmbG9h dCBkX3kpOworLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNfeCwgZmxvYXQgc195KTsKKy0J CXB1YmxpYyB2b2lkIHVuaW9uIChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRlci5SZWN0IHJlcyk7Cist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5SZWN0IHplcm8gKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC4y IildCistCXB1YmxpYyBjbGFzcyBSZWN0YW5nbGUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVt ZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIFJlY3RhbmdsZSAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMC4yIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfYm9yZGVyX2NvbG9yICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB1aW50IGdldF9ib3JkZXJfd2lkdGggKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9ib3JkZXJfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3JkZXJfd2lkdGggKHVpbnQgd2lkdGgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0 b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIFJlY3RhbmdsZS53aXRoX2NvbG9yIChDbHV0dGVyLkNvbG9y IGNvbG9yKTsKKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJvcmRlcl9jb2xvciB7IGdldDsgc2V0 OyB9CistCQlwdWJsaWMgdWludCBib3JkZXJfd2lkdGggeyBnZXQ7IHNldDsgfQorLQkJcHVibGlj IENsdXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgYm9vbCBoYXNfYm9yZGVyIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyB2b2lk IHNldF9wcm9wZXJ0eV9uYW1lIChzdHJpbmc/IHByb3BlcnR5X25hbWUpOworKwkJcHVibGljIHN0 cmluZyBwcm9wZXJ0eV9uYW1lIHsgZ2V0OyBzZXQ7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcm9vdF9u b2RlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBSb290Tm9kZSA6IENsdXR0ZXIuUGFp bnROb2RlIHsKK0BAIC02ODgwLDE1ICs2MzkwLDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBTY3JpcHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJs aWMgdm9pZCBhZGRfc2VhcmNoX3BhdGhzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJu X3BhdGhzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuMSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3Np emUiKV0gc3RyaW5nW10gcGF0aHMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lk IGFkZF9zdGF0ZXMgKHN0cmluZz8gbmFtZSwgQ2x1dHRlci5TdGF0ZSBzdGF0ZSk7CisgCQlwdWJs aWMgdm9pZCBjb25uZWN0X3NpZ25hbHMgKHZvaWQqIHVzZXJfZGF0YSk7CisgCQlwdWJsaWMgdm9p ZCBjb25uZWN0X3NpZ25hbHNfZnVsbCAoQ2x1dHRlci5TY3JpcHRDb25uZWN0RnVuYyBmdW5jKTsK KyAJCXB1YmxpYyB2b2lkIGVuc3VyZV9vYmplY3RzICgpOworIAkJcHVibGljIHVub3duZWQgR0xp Yi5PYmplY3QgZ2V0X29iamVjdCAoc3RyaW5nIG5hbWUpOworIAkJcHVibGljIGludCBnZXRfb2Jq ZWN0cyAoLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LlN0YXRlIGdldF9zdGF0ZXMgKHN0cmluZz8gbmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90cmFuc2xhdGlvbl9kb21haW4g KCk7CisgCQlwdWJsaWMgdmlydHVhbCBHTGliLlR5cGUgZ2V0X3R5cGVfZnJvbV9uYW1lIChzdHJp bmcgdHlwZV9uYW1lKTsKK0BAIC02OTE2LDggKzY0MjIsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0b3IqIildCisgCQlwdWJsaWMgU2Nyb2xsQWN0b3IgKCk7CisgCQlwdWJsaWMgQ2x1dHRl ci5TY3JvbGxNb2RlIGdldF9zY3JvbGxfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNjcm9sbF90 b19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9f cmVjdCAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3BvaW50 IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcmVjdCAo R3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zY3JvbGxfbW9kZSAoQ2x1 dHRlci5TY3JvbGxNb2RlIG1vZGUpOworIAkJcHVibGljIENsdXR0ZXIuU2Nyb2xsTW9kZSBzY3Jv bGxfbW9kZSB7IGdldDsgc2V0OyB9CisgCX0KK0BAIC02OTM5LDYgKzY0NDUsNDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfc2VhdF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgYWJzdHJhY3QgY2xh c3MgU2VhdCA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTZWF0ICgpOworKwkJW05vV3JhcHBlcl0KKysJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTEx eVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYmVsbF9ub3RpZnkg KCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbXByZXNzX21vdGlvbiAoQ2x1dHRlci5FdmVu dCBldmVudCwgQ2x1dHRlci5FdmVudCB0b19kaXNjYXJkKTsKKysJCVtOb1dyYXBwZXJdCisrCQlw dWJsaWMgdmlydHVhbCB2b2lkIGNvcHlfZXZlbnRfZGF0YSAoQ2x1dHRlci5FdmVudCBzcmMsIENs dXR0ZXIuRXZlbnQgZGVzdCk7CisrCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxJbnB1 dERldmljZSBjcmVhdGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRl dmljZV90eXBlKTsKKysJCXB1YmxpYyB2b2lkIGVuc3VyZV9hMTF5X3N0YXRlICgpOworKwkJW05v V3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZnJlZV9ldmVudF9kYXRhIChDbHV0dGVy LkV2ZW50IGV2ZW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1 dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25l ZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9rZXlib2FyZCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFs IHVub3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0X2tleW1hcCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFs IHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfcG9pbnRlciAoKTsKKysJCXB1YmxpYyB2 b2lkIGdldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5n cyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgYm9vbCBnZXRfdG91Y2hfbW9kZSAoKTsKKysJCXB1Ymxp YyB2b2lkIGluaGliaXRfdW5mb2N1cyAoKTsKKysJCXB1YmxpYyBib29sIGlzX3VuZm9jdXNfaW5o aWJpdGVkICgpOworKwkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+ IGxpc3RfZGV2aWNlcyAoKTsKKysJCXB1YmxpYyB2b2lkIHNldF9rYmRfYTExeV9zZXR0aW5ncyAo Q2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZvaWQgc2V0X3Bv aW50ZXJfYTExeV9kd2VsbF9jbGlja190eXBlIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlj a1R5cGUgY2xpY2tfdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X3NldHRp bmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZv aWQgdW5pbmhpYml0X3VuZm9jdXMgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHdhcnBfcG9p bnRlciAoaW50IHgsIGludCB5KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENs dXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1Ymxp YyBib29sIHRvdWNoX21vZGUgeyBnZXQ7IH0KKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2Vf YWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9p ZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIGlzX3VuZm9jdXNfaW5oaWJpdGVkX2NoYW5nZWQgKCk7CisrCQlwdWJsaWMg c2lnbmFsIHZvaWQga2JkX2ExMXlfZmxhZ3NfY2hhbmdlZCAodWludCBzZXR0aW5nc19mbGFncywg dWludCBjaGFuZ2VkX21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X21vZHNf c3RhdGVfY2hhbmdlZCAodWludCBsYXRjaGVkX21hc2ssIHVpbnQgbG9ja2VkX21hc2spOworKwkJ cHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGVfY2hhbmdlZCAoQ2x1 dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOworKwkJcHVibGljIHNp Z25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RhcnRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBk ZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIHVpbnQg ZGVsYXkpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RvcHBlZCAo Q2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlw ZSB0aW1lb3V0X3R5cGUsIGJvb2wgY2xpY2tlZCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdG9v bF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmlj ZVRvb2wgcDApOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZXR0aW5nc19nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBTZXR0aW5ncyA6IEdMaWIu T2JqZWN0IHsKK0BAIC03MDExLDE4ICs2NTU4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNo YWRlck1hdHJpeCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rp b24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NpemVfZ2V0X3R5cGUgKCki KV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBj bGFzcyBTaXplIHsKKy0JCXB1YmxpYyBmbG9hdCBoZWlnaHQ7CistCQlwdWJsaWMgZmxvYXQgd2lk dGg7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuU2l6ZSBhbGxvYyAoKTsKKy0JCXB1YmxpYyBD bHV0dGVyLlNpemUgY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5TaXpl IGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu U2l6ZSBpbml0IChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf c25hcF9jb25zdHJhaW50X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KKyAJcHVibGljIGNsYXNzIFNuYXBDb25zdHJhaW50IDogQ2x1dHRlci5Db25zdHJhaW50IHsK K0BAIC03MDQzLDEzNSArNjU3OCw2NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3N0YWdlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0K Ky0JcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5Hcm91cCwgQXRrLkltcGxlbWVudG9yLCBD bHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUg eworKwlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3Is IENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJs ZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyQWN0b3IqIildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMg U3RhZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBjYXB0dXJlIChib29sIHBhaW50LCBDYWlyby5SZWN0 YW5nbGVJbnQgcmVjdCwgQ2x1dHRlci5DYXB0dXJlIGNhcHR1cmVzLCBpbnQgbl9jYXB0dXJlcyk7 CisgCQlwdWJsaWMgdm9pZCBjYXB0dXJlX2ludG8gKGJvb2wgcGFpbnQsIENhaXJvLlJlY3Rhbmds ZUludCByZWN0LCB1aW50OCBkYXRhKTsKKysJCXB1YmxpYyB2b2lkIGNsZWFyX3N0YWdlX3ZpZXdz ICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3N0YWdlX2V2ZW50IildCisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYm9vbCBlbWl0X2V2ZW50IChDbHV0dGVy LkV2ZW50IGV2ZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgc2luY2UgPSAi MC44IildCistCQlwdWJsaWMgdm9pZCBlbnN1cmVfY3VycmVudCAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGVuc3VyZV9yZWRyYXcgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBlbnN1cmVfdmlld3BvcnQgKCk7 CistCQlwdWJsaWMgdm9pZCBmcmVlemVfdXBkYXRlcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKy0JCXB1YmxpYyBib29sIGdldF9hY2NlcHRfZm9jdXMgKCk7CistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01vZGUg cGlja19tb2RlLCBpbnQgeCwgaW50IHkpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9kZSwgZmxvYXQgeCwg ZmxvYXQgeSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY2FwdHVyZV9maW5hbF9zaXplIChDYWlyby5S ZWN0YW5nbGVJbnQgcmVjdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBmbG9hdCBzY2FsZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9kZWZhdWx0ICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBnZXRfZm9nICgpOworIAkJcHVibGljIGludDY0 IGdldF9mcmFtZV9jb3VudGVyICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIGJvb2wgZ2V0X2Z1bGxzY3JlZW4gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlfZm9jdXMgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBnZXRfbWluaW11bV9z aXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfbm9fY2xl YXJfaGludCAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIGdldF9wZXJzcGVjdGl2 ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDYWlyby5SZWN0 YW5nbGVJbnQgZ2V0X3JlZHJhd19jbGlwX2JvdW5kcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGdldF90aHJvdHRsZV9tb3Rpb25fZXZlbnRzICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF90aXRsZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBib29s IGdldF91c2VfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGJvb2wgZ2V0 X3VzZV9mb2cgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9v bCBnZXRfdXNlcl9yZXNpemFibGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCist CQlwdWJsaWMgdm9pZCBoaWRlX2N1cnNvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCQlwdWJs aWMgYm9vbCBpc19kZWZhdWx0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lk IHF1ZXVlX3JlZHJhdyAoKTsKKysJCXB1YmxpYyBib29sIHBhaW50X3RvX2J1ZmZlciAoQ2Fpcm8u UmVjdGFuZ2xlSW50IHJlY3QsIGZsb2F0IHNjYWxlLCB1aW50OCBkYXRhLCBpbnQgc3RyaWRlLCBD b2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ2x1dHRlci5QYWludEZsYWcgcGFpbnRfZmxhZ3MpIHRo cm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHZvaWQgcGFpbnRfdG9fZnJhbWVidWZmZXIgKENv Z2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIsIENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBmbG9h dCBzY2FsZSwgQ2x1dHRlci5QYWludEZsYWcgcGFpbnRfZmxhZ3MpOworIAkJW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldCisgCQlwdWJsaWMgdWludDhbXSByZWFkX3BpeGVscyAoaW50IHgs IGludCB5LCBpbnQgd2lkdGggPSAtMSwgaW50IGhlaWdodCA9IC0xKTsKKy0JCVtDQ29kZSAoY25h bWUgPSAiY2x1dHRlcl9yZWRyYXciKV0KKy0JCXB1YmxpYyB2b2lkIHJlZHJhdyAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hY2NlcHRfZm9jdXMg KGJvb2wgYWNjZXB0X2ZvY3VzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0 ZXIuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9m b2cgKENsdXR0ZXIuRm9nIGZvZyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9vbCBmdWxsc2NyZWVuKTsKKysJCXB1YmxpYyB2 b2lkIHNjaGVkdWxlX3VwZGF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9rZXlfZm9jdXMgKENsdXR0ZXIuQWN0b3I/IGFjdG9yKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9taW5pbXVtX3NpemUg KHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQgKGJvb2wgZW5hYmxlZCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbm9fY2xl YXJfaGludCAoYm9vbCBub19jbGVhcik7CistCQlwdWJsaWMgdm9pZCBzZXRfcGVyc3BlY3RpdmUg KENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Rocm90dGxlX21vdGlvbl9ldmVudHMgKGJvb2wg dGhyb3R0bGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHZvaWQg c2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQor IAkJcHVibGljIHZvaWQgc2V0X3VzZV9hbHBoYSAoYm9vbCB1c2VfYWxwaGEpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfZm9nIChib29sIGZvZyk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9yZXNpemFibGUg KGJvb2wgcmVzaXphYmxlKTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfY3Vyc29yICgpOworLQkJcHVi bGljIHZvaWQgdGhhd191cGRhdGVzICgpOworLQkJcHVibGljIHZvaWQgdXBkYXRlX3Jlc291cmNl X3NjYWxlcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBib29s IGFjY2VwdF9mb2N1cyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3Ig Y29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9v bCBjdXJzb3JfdmlzaWJsZSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIENsdXR0ZXIuRm9nIGZvZyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW5fc2V0IHsgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBrZXlfZm9jdXMgeyBnZXQ7IHNl dDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgbm9fY2xl YXJfaGludCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgYm9vbCBvZmZzY3JlZW4geyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUgeyBnZXQ7IHNl dDsgfQorKwkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUgeyBnZXQ7IH0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdGl0bGUgeyBn ZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wg dXNlX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9v bCB1c2VfZm9nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0J CXB1YmxpYyBib29sIHVzZXJfcmVzaXphYmxlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdGl2YXRlICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjAiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBh ZnRlcl9wYWludCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBhZnRlcl9wYWludCAoQ2x1dHRl ci5TdGFnZVZpZXcgdmlldyk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWZ0ZXJfdXBkYXRlIChD bHV0dGVyLlN0YWdlVmlldyB2aWV3KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBiZWZvcmVfcGFp bnQgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGJlZm9y ZV91cGRhdGUgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZGVhY3RpdmF0ZSAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29s IGRlbGV0ZV9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBmdWxsc2NyZWVuICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgdW5mdWxsc2NyZWVuICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnRf dmlldyAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldywgQ2Fpcm8uUmVnaW9uIHJlZHJhd19jbGlwKTsK KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCitAQCAtNzE4NSw4ICs2NjUxLDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIEdMaWIuU0xpc3Q8 d2VhayBDbHV0dGVyLlN0YWdlPiBsaXN0X3N0YWdlcyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIEdM aWIuU0xpc3Q8Q2x1dHRlci5TdGFnZT4gcGVla19zdGFnZXMgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMC44Iild CistCQlwdWJsaWMgdm9pZCBzZXRfZGVmYXVsdF9zdGFnZSAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5TdGFnZSBk ZWZhdWx0X3N0YWdlIHsgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAt NzIwNiw2MyArNjY3MCwzMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludDMy IHRpbWU7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudFR5cGUgdHlwZTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfc3RhdGVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlw dWJsaWMgY2xhc3MgU3RhdGUgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3N0YWdlX3ZpZXdfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFN0YWdl VmlldyA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgU3RhdGUgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2R1cmF0aW9uIChzdHJpbmc/IHNvdXJjZV9z dGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5TdGF0ZUtleT4gZ2V0X2tleXMgKHN0 cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIEdMaWIu T2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGF0ZSAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgc3RyaW5nPiBnZXRfc3RhdGVzICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0X3Rp bWVsaW5lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9rZXkg KHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIEdM aWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uIChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9u YW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCB1aW50IGR1cmF0aW9uKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YXRlIHNldF9rZXkgKHN0cmlu Zz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmpl Y3Qgb2JqZWN0LCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgdWludCBtb2RlLCBHTGliLlZhbHVlIHZh bHVlLCBkb3VibGUgcHJlX2RlbGF5LCBkb3VibGUgcG9zdF9kZWxheSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBzZXRfc3RhdGUgKHN0cmlu ZyB0YXJnZXRfc3RhdGVfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5UaW1lbGluZSB3YXJwX3RvX3N0YXRlIChzdHJpbmcgdGFyZ2V0X3N0YXRlX25h bWUpOworKwkJcHJvdGVjdGVkIFN0YWdlVmlldyAoKTsKKysJCXB1YmxpYyB2b2lkIGFzc2lnbl9u ZXh0X3NjYW5vdXQgKENvZ2wuU2Nhbm91dCBzY2Fub3V0KTsKKysJCXB1YmxpYyB1bm93bmVkIENv Z2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgZ2V0X2xh eW91dCAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBn ZXRfb2Zmc2NyZWVuX3RyYW5zZm9ybWF0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsK KysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X29uc2NyZWVuICgpOworKwkJ cHVibGljIGZsb2F0IGdldF9zY2FsZSAoKTsKKysJCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfb2Zm c2NyZWVuX2JsaXRfcGlwZWxpbmUgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1 YWwgdm9pZCBzZXR1cF9vZmZzY3JlZW5fYmxpdF9waXBlbGluZSAoQ29nbC5QaXBlbGluZSBwaXBl bGluZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1f cmVjdF90b19vbnNjcmVlbiAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHNyY19yZWN0LCBpbnQgZHN0X3dp ZHRoLCBpbnQgZHN0X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGRzdF9yZWN0KTsKKyAJCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGR1cmF0 aW9uIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgbGF5b3V0IHsg b3duZWQgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgc3RyaW5nIHN0YXRlIHsgb3duZWQgZ2V0OyBzZXQ7IH0K Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjb21wbGV0 ZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdf Ym94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGF0ZV9rZXlfZ2V0X3R5cGUgKCkiKV0K Ky0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNz IFN0YXRlS2V5IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0 X29iamVjdCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZG91YmxlIGdldF9wb3N0 X2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3ByZV9k ZWxheSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X3Byb3BlcnR5X25hbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIEdMaWIuVHlw ZSBnZXRfcHJvcGVydHlfdHlwZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X3NvdXJjZV9zdGF0ZV9uYW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGFyZ2V0X3N0YXRlX25hbWUgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3ZhbHVlIChHTGliLlZhbHVlIHZhbHVl KTsKKysJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBmbG9hdCByZWZyZXNoX3JhdGUgeyBnZXQ7IHNl dCBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGZsb2F0IHNj YWxlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1 YmxpYyBDbHV0dGVyLlN0YWdlIHN0YWdlIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtO b0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGJvb2wgdXNlX3NoYWRvd2ZiIHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3dpcGVfYWN0aW9uX2dldF90eXBlICgpIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC03Mjc0LDUzICs2NzA4LDYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCBib29sIHN3aXBlIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlN3 aXBlRGlyZWN0aW9uIGRpcmVjdGlvbik7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhYmxlX2xheW91dF9n ZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgVGFibGVMYXlv dXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIildCistCQlwdWJs aWMgVGFibGVMYXlvdXQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIuVGFibGVBbGlnbm1l bnQgeF9hbGlnbiwgb3V0IENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeV9hbGlnbik7CistCQlwdWJs aWMgaW50IGdldF9jb2x1bW5fY291bnQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfY29sdW1uX3Nw YWNpbmcgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2Vhc2luZ19k dXJhdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcgZ2V0X2Vhc2lu Z19tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9leHBhbmQg KENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZXhwYW5kLCBvdXQgYm9vbCB5X2V4cGFu ZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2ZpbGwgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIG91dCBib29sIHhfZmlsbCwgb3V0IGJvb2wgeV9maWxsKTsKKy0JCXB1Ymxp YyBpbnQgZ2V0X3Jvd19jb3VudCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9yb3dfc3BhY2luZyAo KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zcGFuIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgaW50 IGNvbHVtbl9zcGFuLCBvdXQgaW50IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgYm9vbCBnZXRfdXNlX2FuaW1hdGlvbnMgKCk7CistCQlwdWJsaWMgdm9pZCBwYWNrIChD bHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgY29sdW1uLCBpbnQgcm93KTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBD bHV0dGVyLlRhYmxlQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeV9h bGlnbik7CistCQlwdWJsaWMgdm9pZCBzZXRfY29sdW1uX3NwYWNpbmcgKHVpbnQgc3BhY2luZyk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19kdXJhdGlvbiAo dWludCBtc2Vjcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2lu Z19tb2RlICh1bG9uZyBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBz ZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZXhwYW5kLCBib29sIHlfZXhw YW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZmlsbCAoQ2x1dHRl ci5BY3RvciBhY3RvciwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxsKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9yb3dfc3BhY2luZyAodWludCBzcGFjaW5nKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9zcGFu IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgY29sdW1uX3NwYW4sIGludCByb3dfc3Bhbik7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9hbmltYXRpb25zIChib29s IGFuaW1hdGUpOworLQkJcHVibGljIHVpbnQgY29sdW1uX3NwYWNpbmcgeyBnZXQ7IHNldDsgfQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGVhc2luZ19kdXJhdGlvbiB7IGdldDsg c2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVsb25nIGVhc2luZ19tb2RlIHsg Z2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1aW50IHJvd19zcGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCB1c2VfYW5pbWF0aW9ucyB7IGdldDsgc2V0 OyB9CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhcF9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGNsYXNzIFRhcEFjdGlvbiA6IENsdXR0ZXIu R2VzdHVyZUFjdGlvbiB7CitAQCAtNzM0OCw3ICs2NzM1LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2N1cnNvcl9jb2xvciAoKTsKKyAJCXB1Ymxp YyBpbnQgZ2V0X2N1cnNvcl9wb3NpdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2 IildCistCQlwdWJsaWMgdm9pZCBnZXRfY3Vyc29yX3JlY3QgKG91dCB1bm93bmVkIENsdXR0ZXIu UmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAob3V0IHVub3duZWQg R3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB1aW50IGdldF9jdXJzb3Jfc2l6ZSAoKTsK KyAJCXB1YmxpYyBib29sIGdldF9jdXJzb3JfdmlzaWJsZSAoKTsKKyAJCXB1YmxpYyBib29sIGdl dF9lZGl0YWJsZSAoKTsKK0BAIC03NDY3LDcgKzY4NTQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2ZW50IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5 KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9ldmVudCAoR3JhcGhlbmUu UmVjdCByZWN0KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV90ZXh0IChpbnQgc3RhcnRfcG9zLCBpbnQg ZW5kX3Bvcyk7CitAQCAtNzUwNSw5NCArNjg5Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQ YWludE5vZGUqIildCisgCQlwdWJsaWMgVGV4dE5vZGUgKFBhbmdvLkxheW91dD8gbGF5b3V0LCBD bHV0dGVyLkNvbG9yPyBjb2xvcik7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1cmVfZ2V0X3R5cGUg KCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgVGV4dHVy ZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBD bHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCist CQlwdWJsaWMgVGV4dHVyZSAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1 YmxpYyBUZXh0dXJlLmZyb21fYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIp XQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZmlsZSAoc3RyaW5n IGZpbGVuYW1lKSB0aHJvd3MgQ2x1dHRlci5UZXh0dXJlRXJyb3I7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZv aWQgZ2V0X2Jhc2Vfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF9jb2dsX21hdGVy aWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxl IGdldF9jb2dsX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0 ZXIuVGV4dHVyZVF1YWxpdHkgZ2V0X2ZpbHRlcl9xdWFsaXR5ICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBib29sIGdldF9rZWVwX2FzcGVjdF9yYXRpbyAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9hc3luYyAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9kYXRhX2FzeW5jICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X21heF90aWxlX3dhc3RlICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9waWNrX3dpdGhfYWxwaGEgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3JlcGVhdCAob3V0IGJvb2wgcmVwZWF0X3gsIG91 dCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRf c3luY19zaXplICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29sIHNldF9hcmVh X2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRh dGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwg aW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93 cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2ds X21hdGVyaWFsIChDb2dsLkhhbmRsZSBjb2dsX21hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44Iild CistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF90ZXh0dXJlIChDb2dsLkhhbmRsZSBjb2dsX3RleCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbHRlcl9xdWFsaXR5IChD bHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44Iild CistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBH TGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX3Jn Yl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBib29s IGhhc19hbHBoYSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgcm93c3RyaWRlLCBpbnQgYnBw LCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21feXV2X2RhdGEgKFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCB3aWR0aCwgaW50IGhlaWdodCwg Q2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9rZWVwX2FzcGVjdF9yYXRpbyAoYm9vbCBrZWVw X2FzcGVjdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xvYWRfYXN5 bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2xvYWRfZGF0YV9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdm9pZCBzZXRfcGlja193aXRoX2FscGhhIChib29sIHBpY2tfd2l0aF9hbHBo YSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlcGVhdCAoYm9vbCBy ZXBlYXRfeCwgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3N5bmNfc2l6ZSAoYm9vbCBzeW5jX3NpemUpOworLQkJcHVibGljIENvZ2wuTWF0ZXJp YWwgY29nbF9tYXRlcmlhbCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ29nbC5UZXh0dXJlIGNv Z2xfdGV4dHVyZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBib29sIGRpc2FibGVfc2xpY2luZyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIildCistCQlwdWJsaWMgc3RyaW5nIGZpbGVuYW1lIHsgb3duZWQgZ2V0OyBzZXQ7 IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5IHsgZ2V0 OyBzZXQgY29uc3RydWN0OyB9CistCQlwdWJsaWMgYm9vbCBrZWVwX2FzcGVjdF9yYXRpbyB7IGdl dDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgbG9hZF9hc3luYyB7 IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRfZGF0YV9hc3lu YyB7IHNldDsgfQorLQkJcHVibGljIGJvb2wgcGlja193aXRoX2FscGhhIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3ggeyBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXBlYXRfeSB7IGdl dDsgc2V0OyB9CistCQlwdWJsaWMgYm9vbCBzeW5jX3NpemUgeyBnZXQ7IHNldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHRpbGVfd2FzdGUgeyBnZXQ7IH0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBsb2FkX2ZpbmlzaGVk IChHTGliLkVycm9yIGVycm9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBw aXhidWZfY2hhbmdlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHNpemVf Y2hhbmdlIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJl X25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVi bGljIGNsYXNzIFRleHR1cmVOb2RlIDogQ2x1dHRlci5QaXBlbGluZU5vZGUgeworQEAgLTc2MDQs NyArNjkwMyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGNsYXNzIFRpbWVsaW5l IDogR0xpYi5PYmplY3QsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCist CQlwdWJsaWMgVGltZWxpbmUgKHVpbnQgbXNlY3MpOworKwkJcHVibGljIFRpbWVsaW5lICh1aW50 IGR1cmF0aW9uX21zKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMg dm9pZCBhZGRfbWFya2VyIChzdHJpbmcgbWFya2VyX25hbWUsIGRvdWJsZSBwcm9ncmVzcyk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNzYxMiwxMiArNjkxMSwxNSBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBhZHZhbmNlICh1aW50IG1zZWNzKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGFkdmFuY2VfdG9fbWFy a2VyIChzdHJpbmcgbWFya2VyX25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLlRpbWVsaW5lIGNsb25lICgpOworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorKwkJcHVibGljIFRpbWVsaW5lLmZvcl9hY3RvciAoQ2x1dHRlci5BY3Rv ciBhY3RvciwgdWludCBkdXJhdGlvbl9tcyk7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMgVGltZWxpbmUuZm9yX2ZyYW1lX2Nsb2NrIChDbHV0 dGVyLkZyYW1lQ2xvY2sgZnJhbWVfY2xvY2ssIHVpbnQgZHVyYXRpb25fbXMpOworKwkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXV0b19yZXZlcnNlICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9jdWJpY19iZXppZXJfcHJv Z3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNfMik7CisrCQlwdWJsaWMg Ym9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEsIEdyYXBo ZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IGludCBnZXRfY3VycmVudF9yZXBlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40Iild CitAQCAtNzYzMSw4ICs2OTMzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQ2NCBnZXRfZHVyYXRpb25faGludCAoKTsK KyAJCXB1YmxpYyB1aW50IGdldF9lbGFwc2VkX3RpbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJvb2wg Z2V0X2xvb3AgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgZG91 YmxlIGdldF9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAt NzY1MSwxOCArNjk1MSwxOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfbWFya2VyIChzdHJpbmcgbWFya2Vy X25hbWUpOworIAkJcHVibGljIHZvaWQgcmV3aW5kICgpOworKwkJcHVibGljIHZvaWQgc2V0X2Fj dG9yIChDbHV0dGVyLkFjdG9yPyBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42Iild CisgCQlwdWJsaWMgdm9pZCBzZXRfYXV0b19yZXZlcnNlIChib29sIHJldmVyc2UpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jdWJpY19iZXppZXJf cHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNfMik7CisrCQlwdWJs aWMgdm9pZCBzZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEsIEdy YXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJs aWMgdm9pZCBzZXRfZGVsYXkgKHVpbnQgbXNlY3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2RpcmVjdGlvbiAoQ2x1dHRlci5UaW1lbGluZURpcmVj dGlvbiBkaXJlY3Rpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGlj IHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRf bG9vcCAoYm9vbCBsb29wKTsKKysJCXB1YmxpYyB2b2lkIHNldF9mcmFtZV9jbG9jayAoQ2x1dHRl ci5GcmFtZUNsb2NrIGZyYW1lX2Nsb2NrKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgdm9pZCBzZXRfcHJvZ3Jlc3NfZnVuYyAob3duZWQgQ2x1dHRlci5UaW1lbGlu ZVByb2dyZXNzRnVuYz8gZnVuYyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAg LTc2NzQsNiArNjk3NCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNr aXAgKHVpbnQgbXNlY3MpOworIAkJcHVibGljIHZvaWQgc3RhcnQgKCk7CisgCQlwdWJsaWMgdm9p ZCBzdG9wICgpOworKwkJcHVibGljIENsdXR0ZXIuQWN0b3IgYWN0b3IgeyBnZXQ7IHNldCBjb25z dHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGF1 dG9fcmV2ZXJzZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCitA QCAtNzY4Miw4ICs2OTgzLDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0 ZXIuVGltZWxpbmVEaXJlY3Rpb24gZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgYm9vbCBsb29wIHsgZ2V0OyBzZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0 aG9kXQorKwkJcHVibGljIENsdXR0ZXIuRnJhbWVDbG9jayBmcmFtZV9jbG9jayB7IG93bmVkIGdl dDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyBDbHV0dGVyLkFuaW1hdGlvbk1vZGUgcHJvZ3Jlc3NfbW9kZSB7IGdldDsgc2V0OyB9Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc2OTcsMTIgKzY5OTgsNiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgc3RvcHBlZCAoYm9vbCBpc19maW5pc2hlZCk7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtDb21w YWN0XQorLQlwdWJsaWMgY2xhc3MgVGltZW91dFBvb2wgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIFRpbWVvdXRQb29sIChpbnQgcHJpb3Jp dHkpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KK0BAIC03NzUzLDYgKzcwNDgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf dHJhbnNmb3JtX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRyYW5zZm9ybU5v ZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGljIFRyYW5z Zm9ybU5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24pOworKwl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90cmFu c2l0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1 YmxpYyBhYnN0cmFjdCBjbGFzcyBUcmFuc2l0aW9uIDogQ2x1dHRlci5UaW1lbGluZSwgQ2x1dHRl ci5TY3JpcHRhYmxlIHsKK0BAIC03NzkyLDcgKzcwOTIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0 ZWQgVmlydHVhbElucHV0RGV2aWNlICgpOworIAkJcHVibGljIGludCBnZXRfZGV2aWNlX3R5cGUg KCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X21hbmFnZXIg KCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV9hYnNvbHV0ZV9tb3Rpb24gKHVpbnQ2 NCB0aW1lX3VzLCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBu b3RpZnlfYnV0dG9uICh1aW50NjQgdGltZV91cywgdWludDMyIGJ1dHRvbiwgQ2x1dHRlci5CdXR0 b25TdGF0ZSBidXR0b25fc3RhdGUpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfZGlz Y3JldGVfc2Nyb2xsICh1aW50NjQgdGltZV91cywgQ2x1dHRlci5TY3JvbGxEaXJlY3Rpb24gZGly ZWN0aW9uLCBDbHV0dGVyLlNjcm9sbFNvdXJjZSBzY3JvbGxfc291cmNlKTsKK0BAIC03ODAzLDI4 ICs3MTAyLDI3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg bm90aWZ5X3RvdWNoX2Rvd24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCwgZG91YmxlIHgsIGRv dWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX21vdGlvbiAodWlu dDY0IHRpbWVfdXMsIGludCBzbG90LCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZp cnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfdXAgKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCk7Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmljZU1hbmFnZXIgZGV2 aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIENsdXR0ZXIu SW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgb3duZWQgZ2V0OyBj b25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfem9vbV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJcHVibGljIGNsYXNzIFpvb21BY3Rpb24g OiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1YmxpYyBab29tQWN0 aW9uICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChDbHV0dGVyLlBvaW50IHBv aW50KTsKKy0JCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2ludCAoQ2x1dHRl ci5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9pbnQgKEdyYXBoZW5l LlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2lu dCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJcHVibGljIENsdXR0ZXIuWm9vbUF4aXMgZ2V0 X3pvb21fYXhpcyAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF96b29tX2F4aXMgKENsdXR0ZXIuWm9v bUF4aXMgYXhpcyk7CisgCQlwdWJsaWMgQ2x1dHRlci5ab29tQXhpcyB6b29tX2F4aXMgeyBnZXQ7 IHNldDsgfQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1dHRlci5BY3Rv ciBhY3RvciwgQ2x1dHRlci5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7CisrCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB6b29tIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBHcmFw aGVuZS5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7CisgCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9jbmFtZSA9ICJDbHV0 dGVyQW5pbWF0YWJsZUludGVyZmFjZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRhYmxlX2dl dF90eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgQW5pbWF0YWJsZSA6IEdMaWIuT2JqZWN0 IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29sIGFuaW1hdGVfcHJv cGVydHkgKENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGlvbiwgc3RyaW5nIHByb3BlcnR5X25hbWUs IEdMaWIuVmFsdWUgaW5pdGlhbF92YWx1ZSwgR0xpYi5WYWx1ZSBmaW5hbF92YWx1ZSwgZG91Ymxl IHByb2dyZXNzLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfcHJvcGVy dHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKysJCXB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIENs dXR0ZXIuQWN0b3IgZ2V0X2FjdG9yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor IAkJcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2luaXRpYWxfc3RhdGUgKHN0cmluZyBwcm9wZXJ0 eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K K0BAIC03ODM1LDEyICs3MTMzLDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf Y29udGFpbmVyX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJ cHVibGljIGludGVyZmFjZSBDb250YWluZXIgOiBHTGliLk9iamVjdCB7CistCQlwdWJsaWMgdm9p ZCBhZGQgKHBhcmFtcyBDbHV0dGVyLkFjdG9yW10gYWN0b3JzKTsKKyAJCVtDQ29kZSAodmZ1bmNf bmFtZSA9ICJhZGQiKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9p ZCBhZGRfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0J CXB1YmxpYyB2b2lkIGFkZF92YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZhX2xp c3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZv aWQgY2hpbGRfZ2V0IChDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuOCIpXQorQEAgLTc4NjAsMTggKzcxNTUsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBkZXN0cm95X2NoaWxkX21ldGEgKENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBmaW5kX2NoaWxkX2J5X25hbWUgKHN0cmluZyBjaGlsZF9uYW1lKTsK Ky0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9w cm9wZXJ0eSIpXQorLQkJcHVibGljIGNsYXNzIHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9j aGlsZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0K Ky0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIEBmb3JlYWNoIChDbHV0dGVyLkNhbGxiYWNrIGNhbGxi YWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGZvcmVhY2hf d2l0aF9pbnRlcm5hbHMgKENsdXR0ZXIuQ2FsbGJhY2sgY2FsbGJhY2spOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkNoaWxk TWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu NCIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuQWN0b3I+IGdldF9jaGlsZHJl biAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3NfbGlzdF9j aGlsZF9wcm9wZXJ0aWVzIildCistCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3Bl Y1tdIGxpc3RfY2hpbGRfcHJvcGVydGllcyAoKTsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJs b3dlciIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbG93ZXJf Y2hpbGQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcgPSBudWxs KTsKK0BAIC03ODgzLDggKzcxNzAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUg KHZmdW5jX25hbWUgPSAicmVtb3ZlIildCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIGFi c3RyYWN0IHZvaWQgcmVtb3ZlX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfdmFsaXN0IChDbHV0dGVyLkFjdG9yIGZp cnN0X2FjdG9yLCB2YV9saXN0IHZhcl9hcmdzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCisgCQlwdWJs aWMgYWJzdHJhY3Qgdm9pZCBzb3J0X2RlcHRoX29yZGVyICgpOworIAkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgYWN0b3JfYWRkZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworQEAgLTc5MDEs NyArNzE4Niw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lk IGludmFsaWRhdGUgKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZhbGlkYXRlX3NpemUg KCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgcGFpbnRfY29udGVu dCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWludE5vZGUgbm9kZSk7CisrCQlwdWJs aWMgYWJzdHJhY3Qgdm9pZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0 dGVyLlBhaW50Tm9kZSBub2RlLCBDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBhdHRhY2hlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorQEAgLTc5MTUsNDcgKzcyMDAsMTYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X2N1c3RvbV9wcm9wZXJ0eSAoQ2x1dHRlci5TY3Jp cHQgc2NyaXB0LCBzdHJpbmcgbmFtZSwgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlwdWJsaWMgYWJz dHJhY3Qgdm9pZCBzZXRfaWQgKHN0cmluZyBpZF8pOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIFN0YWdl V2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFj dCB2b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRlci5HZW9tZXRyeSBzdGFnZV9yZWN0YW5nbGUp OworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAo Q2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFi c3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgYWJzdHJhY3QgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93cmFwcGVyICgpOworLQkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29sIGhhc19yZWRyYXdfY2xpcHMgKCk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgaGlkZSAoKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBpZ25vcmluZ19yZWRyYXdfY2xpcHMgKCk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IGJvb2wgcmVhbGl6ZSAoKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXNpemUgKGludCB3aWR0aCwg aW50IGhlaWdodCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0 X2N1cnNvcl92aXNpYmxlIChib29sIGN1cnNvcl92aXNpYmxlKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9vbCBpc19mdWxsc2NyZWVu KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdGl0bGUgKHN0 cmluZyB0aXRsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0 X3VzZXJfcmVzaXphYmxlIChib29sIGlzX3Jlc2l6YWJsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoYm9vbCBkb19yYWlzZSk7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgdW5yZWFsaXplICgpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRF Ul9UWVBFX0FDVE9SX0JPWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rp b24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX2JveF9nZXRfdHlw ZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsKKyAJCXB1YmxpYyBmbG9hdCB4MTsK KyAJCXB1YmxpYyBmbG9hdCB5MTsKKyAJCXB1YmxpYyBmbG9hdCB4MjsKKyAJCXB1YmxpYyBmbG9h dCB5MjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMgc3RhdGljIENs dXR0ZXIuQWN0b3JCb3g/IGFsbG9jICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQg Y2xhbXBfdG9fcGl4ZWwgKHJlZiBDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjb250YWlucyAoZmxvYXQgeCwgZmxvYXQg eSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzk2NCw4ICs3MjE4LDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuQWN0b3JC b3ggYm94X2IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQg ZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ib3hfZnJvbV92ZXJ0 aWNlcyIpXQorLQkJcHVibGljIEFjdG9yQm94LmZyb21fdmVydGljZXMgKENsdXR0ZXIuVmVydGV4 W10gdmVydHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGZsb2F0 IGdldF9hcmVhICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorQEAgLTc5ODYsNiAr NzIzOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGluaXRfcmVjdCAo ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBpbnRlcnBvbGF0 ZSAoQ2x1dHRlci5BY3RvckJveCBmaW5hbCwgZG91YmxlIHByb2dyZXNzKTsKKysJCXB1YmxpYyBi b29sIGlzX2luaXRpYWxpemVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJ cHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNjYWxlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KK0BAIC04MDExLDcgKzcyNjQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgd2VhayBDYWlyby5TdXJmYWNlIGltYWdlOworIAkJcHVibGljIENhaXJvLlJlY3RhbmdsZUlu dCByZWN0OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0NPTE9SIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hl ZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0 ZXJfY29sb3JfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0cnVjdCBDb2xvciB7CisgCQlwdWJs aWMgdWludDggcmVkOworIAkJcHVibGljIHVpbnQ4IGdyZWVuOworQEAgLTgwMjcsMTIgKzcyODAs MTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIu Q29sb3IgdjIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQg ZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX2hscyIpXQor LQkJcHVibGljIENvbG9yLmZyb21faGxzIChmbG9hdCBodWUsIGZsb2F0IGx1bWluYW5jZSwgZmxv YXQgc2F0dXJhdGlvbik7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9w aXhlbCIpXQorLQkJcHVibGljIENvbG9yLmZyb21fcGl4ZWwgKHVpbnQzMiBwaXhlbCk7CistCQlb Q0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9zdHJpbmciKV0KKy0JCXB1YmxpYyBD b2xvci5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgZnJv bV9obHMgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBmbG9hdCBodWUsIGZsb2F0IGx1bWluYW5j ZSwgZmxvYXQgc2F0dXJhdGlvbik7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgZnJvbV9waXhlbCAo b3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHVpbnQzMiBwaXhlbCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIGJvb2wgZnJvbV9zdHJpbmcgKG91dCBDbHV0 dGVyLkNvbG9yIGNvbG9yLCBzdHJpbmcgc3RyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkNvbG9yPyBnZXRfc3RhdGljIChD bHV0dGVyLlN0YXRpY0NvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyB1aW50IGhhc2ggKCk7CitAQCAtODA0MSw4ICs3MjkzLDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0 ZXIuQ29sb3IgaW50ZXJwb2xhdGUgKENsdXR0ZXIuQ29sb3IgZmluYWwsIGRvdWJsZSBwcm9ncmVz cyk7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBsaWdodGVuICgpOworLQkJW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3RyaW5nIildCistCQlwdWJsaWMgYm9vbCBwYXJzZV9z dHJpbmcgKHN0cmluZyBzdHIpOworIAkJcHVibGljIENsdXR0ZXIuQ29sb3Igc2hhZGUgKGRvdWJs ZSBmYWN0b3IpOworIAkJcHVibGljIENsdXR0ZXIuQ29sb3Igc3VidHJhY3QgKENsdXR0ZXIuQ29s b3IgYik7CisgCQlwdWJsaWMgdm9pZCB0b19obHMgKG91dCBmbG9hdCBodWUsIG91dCBmbG9hdCBs dW1pbmFuY2UsIG91dCBmbG9hdCBzYXR1cmF0aW9uKTsKK0BAIC04MDUwLDIzICs3MzAwLDEwIEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1 YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mb2dfZ2V0X3R5cGUg KCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0cnVjdCBGb2cgeworLQkJcHVibGlj IGZsb2F0IHpfbmVhcjsKKy0JCXB1YmxpYyBmbG9hdCB6X2ZhcjsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf Z2VvbWV0cnlfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0cnVjdCBHZW9tZXRyeSB7Cist CQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgdWludCB3aWR0aDsK Ky0JCXB1YmxpYyB1aW50IGhlaWdodDsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyBib29sIGludGVyc2VjdHMgKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkxKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdlb21ldHJ5IHVu aW9uIChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5X2IpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJcHVi bGljIHN0cnVjdCBGcmFtZUxpc3RlbmVySWZhY2UgeworKwkJcHVibGljIHdlYWsgZ2xvYmFsOjpi ZWZvcmVfZnJhbWUgYmVmb3JlX2ZyYW1lOworKwkJcHVibGljIHdlYWsgZ2xvYmFsOjpmcmFtZSBm cmFtZTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBLYmRBMTF5U2V0dGlu Z3MgeworQEAgLTgwNzgsNyArNzMxNSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBpbnQgbW91c2VrZXlzX21heF9zcGVlZDsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX2FjY2Vs X3RpbWU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJn X2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9rbm90X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0K KyAJcHVibGljIHN0cnVjdCBLbm90IHsKKyAJCXB1YmxpYyBpbnQgeDsKK0BAIC04MDg3LDggKzcz MjQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0 ZXIuS25vdCBrbm90X2IpOworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVf TUFUUklYIildCisgCXB1YmxpYyBzdHJ1Y3QgTWF0cml4IDogQ29nbC5NYXRyaXggeworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5NYXRyaXg/ IGFsbG9jICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyB2b2lk IGZyZWUgKCk7CisrCQlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBnZXRfdHlwZSAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLk1hdHJp eD8gaW5pdF9mcm9tX2FycmF5IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQg dmFsdWVzWzE2XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5NYXRyaXg/IGluaXRfZnJvbV9tYXRyaXggKENsdXR0ZXIuTWF0cml4IGIp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuTWF0cml4PyBpbml0X2lkZW50aXR5ICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJs aWMgc3RydWN0IFBhZEJ1dHRvbkV2ZW50IHsKK0BAIC04MTMwLDcgKzczNzgsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHZhbHVlOworIAkJcHVibGljIHVpbnQzMiBt b2RlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9 ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQg PSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFBhdGhOb2RlIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlBh dGhOb2RlVHlwZSB0eXBlOworQEAgLTgxNDAsNyArNzM4OCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLlBhdGhOb2RlIG5vZGVfYik7CisgCQlw dWJsaWMgdm9pZCBmcmVlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wZXJzcGVjdGl2ZV9nZXRfdHlw ZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hl ZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dldF90eXBlICgpIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIHN0cnVjdCBQZXJzcGVjdGl2ZSB7 CisgCQlwdWJsaWMgZmxvYXQgZm92eTsKK0BAIC04MTQ5LDYgKzczOTcsMTkgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHpfZmFyOworIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor KwlwdWJsaWMgc3RydWN0IFBvaW50ZXJBMTF5U2V0dGluZ3MgeworKwkJcHVibGljIENsdXR0ZXIu UG9pbnRlckExMXlGbGFncyBjb250cm9sczsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5 RHdlbGxDbGlja1R5cGUgZHdlbGxfY2xpY2tfdHlwZTsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50 ZXJBMTF5RHdlbGxNb2RlIGR3ZWxsX21vZGU7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTEx eUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dlc3R1cmVfc2luZ2xlOworKwkJcHVibGljIENsdXR0ZXIu UG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2VsbF9nZXN0dXJlX2RvdWJsZTsKKysJCXB1Ymxp YyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxEaXJlY3Rpb24gZHdlbGxfZ2VzdHVyZV9kcmFnOwor KwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2VsbF9nZXN0dXJl X3NlY29uZGFyeTsKKysJCXB1YmxpYyBpbnQgc2Vjb25kYXJ5X2NsaWNrX2RlbGF5OworKwkJcHVi bGljIGludCBkd2VsbF9kZWxheTsKKysJCXB1YmxpYyBpbnQgZHdlbGxfdGhyZXNob2xkOworKwl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yOCIpXQorIAlwdWJsaWMg c3RydWN0IFByb3hpbWl0eUV2ZW50IHsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2ZW50VHlwZSB0eXBl OworQEAgLTgxNTgsNDcgKzc0MTksMTYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHdlYWsgQ2x1dHRlci5BY3RvciBzb3VyY2U7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLklucHV0 RGV2aWNlIGRldmljZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9VTklUUyIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0g ImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3VuaXRzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJcHVibGljIHN0cnVjdCBVbml0cyB7CisgCQlwdWJsaWMgQ2x1dHRlci5Vbml0cz8gY29w eSAoKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfdW5pdHNfZnJvbV9jbSIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fY20gKGZsb2F0IGNtKTsK Ky0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2VtIildCistCQlwdWJsaWMg VW5pdHMuZnJvbV9lbSAoZmxvYXQgZW0pOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3Vu aXRzX2Zyb21fZW1fZm9yX2ZvbnQiKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX2VtX2Zvcl9mb250 IChzdHJpbmcgZm9udF9uYW1lLCBmbG9hdCBlbSk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfdW5pdHNfZnJvbV9tbSIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fbW0gKGZsb2F0IG1tKTsK Ky0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3BpeGVscyIpXQorLQkJcHVi bGljIFVuaXRzLmZyb21fcGl4ZWxzIChpbnQgcHgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX3VuaXRzX2Zyb21fcHQiKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX3B0IChmbG9hdCBwdCk7 CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9zdHJpbmciKV0KKy0JCXB1 YmxpYyBVbml0cy5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CisgCQlwdWJsaWMgQ2x1dHRlci5V bml0VHlwZSBnZXRfdW5pdF90eXBlICgpOworIAkJcHVibGljIGZsb2F0IGdldF91bml0X3ZhbHVl ICgpOworIAkJcHVibGljIGZsb2F0IHRvX3BpeGVscyAoKTsKKyAJCXB1YmxpYyBzdHJpbmcgdG9f c3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl92ZXJ0ZXhfZ2V0X3R5cGUgKCkiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RydWN0IFZlcnRleCB7CistCQlwdWJs aWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5OworLQkJcHVibGljIGZsb2F0IHo7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlZlcnRl eD8gYWxsb2MgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1 dHRlci5WZXJ0ZXg/IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5WZXJ0ZXggdmVydGV4X2IpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlZlcnRleD8gaW5pdCAo ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0FDVE9SX0FMSUdO XyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9hbGlnbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgZW51bSBBY3RvckFsaWduIHsKK0BAIC04 MjIzLDE0ICs3NDUzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJWV9BWElTLAorIAkJQk9U SAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGNwcmVmaXggPSAiQ0xVVFRFUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfYWxsb2NhdGlvbl9mbGFn c19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K Ky0JcHVibGljIGVudW0gQWxsb2NhdGlvbkZsYWdzIHsKKy0JCUFMTE9DQVRJT05fTk9ORSwKKy0J CUFCU09MVVRFX09SSUdJTl9DSEFOR0VELAorLQkJREVMRUdBVEVfTEFZT1VUCistCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRpb25fbW9kZV9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBlbnVtIEFuaW1hdGlvbk1v ZGUgeworQEAgLTgzMzYsNiArNzU1OCwyNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlZX0FY SVMsCisgCQlCT1RICisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RFQlVHXyIsIHR5cGVfaWQgPSAiY2x1dHRl cl9kZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gRGVi dWdGbGFnIHsKKysJCU1JU0MsCisrCQlBQ1RPUiwKKysJCVRFWFRVUkUsCisrCQlFVkVOVCwKKysJ CVBBSU5ULAorKwkJUEFOR08sCisrCQlCQUNLRU5ELAorKwkJU0NIRURVTEVSLAorKwkJU0NSSVBU LAorKwkJU0hBREVSLAorKwkJTVVMVElTVEFHRSwKKysJCUFOSU1BVElPTiwKKysJCUxBWU9VVCwK KysJCVBJQ0ssCisrCQlFVkVOVExPT1AsCisrCQlDTElQUElORywKKysJCU9PQl9UUkFOU0ZPUk1T CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y3ByZWZpeCA9ICJDTFVUVEVSX0RSQUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYXhpc19n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVt IERyYWdBeGlzIHsKK0BAIC04MzQzLDExICs3NTg2LDI0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCVhfQVhJUywKKyAJCVlfQVhJUworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRfQUNU T1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFnc19nZXRfdHlwZSAoKSIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJl Zml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYXdfZGVidWdfZmxh Z19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIERyYXdEZWJ1Z0ZsYWcg eworKwkJRElTQUJMRV9TV0FQX0VWRU5UUywKKysJCURJU0FCTEVfQ0xJUFBFRF9SRURSQVdTLAor KwkJUkVEUkFXUywKKysJCVBBSU5UX1ZPTFVNRVMsCisrCQlESVNBQkxFX0NVTExJTkcsCisrCQlE SVNBQkxFX09GRlNDUkVFTl9SRURJUkVDVCwKKysJCUNPTlRJTlVPVVNfUkVEUkFXLAorKwkJUEFJ TlRfREVGT1JNX1RJTEVTLAorKwkJUEFJTlRfREFNQUdFX1JFR0lPTgorKwl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRF Ul9FRkZFQ1RfUEFJTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFnc19n ZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEVmZmVjdFBhaW50RmxhZ3Mg eworLQkJW0NDb2RlIChjbmFtZSA9ICJDTFVUVEVSX0VGRkVDVF9QQUlOVF9BQ1RPUl9ESVJUWSIp XQorLQkJQUNUT1JfRElSVFkKKysJCUFDVE9SX0RJUlRZLAorKwkJQllQQVNTX0VGRkVDVAorIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVm aXggPSAiQ0xVVFRFUl9FVkVOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZXZlbnRfZmxhZ3NfZ2V0 X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorQEAgLTgzOTIsMjEgKzc2NDgsMTIgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAlbRmxhZ3NdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVi bGljIGVudW0gRmVhdHVyZUZsYWdzIHsKKy0JCVRFWFRVUkVfTlBPVCwKKy0JCVNXQVBfVEhST1RU TEUsCistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCisgCQlTVEFHRV9T VEFUSUMsCistCQlTVEFHRV9VU0VSX1JFU0laRSwKKyAJCVNUQUdFX0NVUlNPUiwKKyAJCVNIQURF UlNfR0xTTCwKKyAJCU9GRlNDUkVFTiwKKyAJCVNUQUdFX01VTFRJUExFLAorLQkJU1dBUF9FVkVO VFM7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZmVhdHVyZV9hdmFpbGFibGUiKV0KKy0J CXB1YmxpYyBib29sIGlzX2F2YWlsYWJsZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRl cl9mZWF0dXJlX2dldF9hbGwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5GZWF0dXJlRmxh Z3MgQGdldCAoKTsKKysJCVNXQVBfRVZFTlRTCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ZMT1dfIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX2Zsb3dfb3JpZW50YXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorQEAgLTg0MTQsMTIgKzc2NjEsMTAgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FMCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ZP TlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZvbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0Zs YWdzXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4yMiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBGb250RmxhZ3MgeworLQkJTUlQ TUFQUElORywKKy0JCUhJTlRJTkcKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ZSQU1FX1JFU1VMVF8iLCB0eXBlX2lk ID0gImNsdXR0ZXJfZnJhbWVfcmVzdWx0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIEZy YW1lUmVzdWx0IHsKKysJCVBFTkRJTkdfUFJFU0VOVEVELAorKwkJSURMRQorIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xV VFRFUl9HRVNUVVJFX1RSSUdHRVJfRURHRV8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZ2VzdHVyZV90 cmlnZ2VyX2VkZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0K K0BAIC04NjM0LDcgKzc4NzksOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGVudW0gT2Zmc2NyZWVuUmVkaXJlY3QgeworIAkJQVVU T01BVElDX0ZPUl9PUEFDSVRZLAorLQkJQUxXQVlTCisrCQlBTFdBWVMsCisrCQlPTl9JRExFCisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3By ZWZpeCA9ICJDTFVUVEVSX09SSUVOVEFUSU9OXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9vcmllbnRh dGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTg2 NDIsNiArNzg4OCwxMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlIT1JJWk9OVEFMLAorIAkJ VkVSVElDQUwKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUEFJTlRfRkxBR18iLCB0eXBlX2lkID0gImNsdXR0 ZXJfcGFpbnRfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIFBh aW50RmxhZyB7CisrCQlOT05FLAorKwkJTk9fQ1VSU09SUywKKysJCUZPUkNFX0NVUlNPUlMKKysJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJl Zml4ID0gIkNMVVRURVJfUEFOXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYW5fYXhpc19nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAlwdWJsaWMgZW51bSBQYW5B eGlzIHsKK0BAIC04NjYxLDYgKzc5MTQsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJUkVM X0xJTkVfVE8sCisgCQlSRUxfQ1VSVkVfVE8KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfTk9QXyIs IHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0Zs YWdzXQorKwlwdWJsaWMgZW51bSBQaWNrRGVidWdGbGFnIHsKKysJCVBJQ0tJTkcKKysJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0g IkNMVVRURVJfUElDS18iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19tb2RlX2dldF90eXBlICgp IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGVudW0gUGlja01vZGUg eworQEAgLTg2NjgsMTMgKzc5MjYsNDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJUkVBQ1RJ VkUsCisgCQlBTEwKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV9EV0VMTF9DTElDS19UWVBFXyIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZV9nZXRfdHlwZSAo KSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIHsKKysJCU5PTkUs CisrCQlQUklNQVJZLAorKwkJU0VDT05EQVJZLAorKwkJTUlERExFLAorKwkJRE9VQkxFLAorKwkJ RFJBRworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BMTFZX0RXRUxMX0RJUkVDVElPTl8iLCB0eXBlX2lkID0g ImNsdXR0ZXJfcG9pbnRlcl9hMTF5X2R3ZWxsX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlw dWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIHsKKysJCU5PTkUsCisrCQlMRUZU LAorKwkJUklHSFQsCisrCQlVUCwKKysJCURPV04KKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV9EV0VM TF9NT0RFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdlbGxfbW9kZV9nZXRf dHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsTW9kZSB7CisrCQlXSU5E T1csCisrCQlHRVNUVVJFCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3BvaW50ZXJfYTExeV9mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1Ymxp YyBlbnVtIFBvaW50ZXJBMTF5RmxhZ3MgeworKwkJU0VDT05EQVJZX0NMSUNLX0VOQUJMRUQsCisr CQlEV0VMTF9FTkFCTEVECisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfVElNRU9VVF9UWVBFXyIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfdGltZW91dF90eXBlX2dldF90eXBlICgpIild CisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5VGltZW91dFR5cGUgeworKwkJU0VDT05EQVJZX0NM SUNLLAorKwkJRFdFTEwsCisrCQlHRVNUVVJFCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1JFUEFJTlRfRkxB R1NfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlcGFpbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJ W0ZsYWdzXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgZW51bSBSZXBh aW50RmxhZ3MgeworIAkJUFJFX1BBSU5ULAorLQkJUE9TVF9QQUlOVCwKKy0JCVFVRVVFX1JFRFJB V19PTl9BREQKKysJCVBPU1RfUEFJTlQKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUkVRVUVTVF8iLCB0eXBl X2lkID0gImNsdXR0ZXJfcmVxdWVzdF9tb2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIwLjgiKV0KK0BAIC04NzU1LDggKzgwNDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCVtGbGFnc10KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgZW51bSBT dGFnZVN0YXRlIHsKKy0JCUZVTExTQ1JFRU4sCistCQlPRkZTQ1JFRU4sCisgCQlBQ1RJVkFURUQK KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj cHJlZml4ID0gIkNMVVRURVJfQ09MT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YXRpY19jb2xv cl9nZXRfdHlwZSAoKSIpXQorQEAgLTg4MjMsMTMgKzgxMTIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlMRUZULAorIAkJUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEFCTEVfQUxJR05NRU5U XyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJsZV9hbGlnbm1lbnRfZ2V0X3R5cGUgKCkiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMjIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gVGFibGVBbGlnbm1lbnQgeworLQkJU1RBUlQs CistCQlDRU5URVIsCistCQlFTkQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVYVF9ESVJFQ1RJT05fIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3RleHRfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGVudW0gVGV4dERpcmVjdGlvbiB7CitAQCAt ODkwNSwyOCArODE4NywxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlWQUxVRTsKKyAJCXB1 YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVYVFVS RV9FUlJPUl8iKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgZXJyb3Jk b21haW4gVGV4dHVyZUVycm9yIHsKKy0JCU9VVF9PRl9NRU1PUlksCistCQlOT19ZVVYsCistCQlC QURfRk9STUFUOworLQkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOworLQl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNl X3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCXB1YmxpYyBkZWxl Z2F0ZSBDbHV0dGVyLkFjdG9yIEFjdG9yQ3JlYXRlQ2hpbGRGdW5jIChHTGliLk9iamVjdCBpdGVt KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5z dGFuY2VfcG9zID0gMS45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGRlbGVnYXRlIGRv dWJsZSBBbHBoYUZ1bmMgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2lu Y2UgPSAiMC4yIildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEJlaGF2aW91ckZvcmVhY2hGdW5j IChDbHV0dGVyLkJlaGF2aW91ciBiZWhhdmlvdXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9w b3MgPSA0LjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBkZWxlZ2F0 ZSBib29sIEJpbmRpbmdBY3Rpb25GdW5jIChHTGliLk9iamVjdCBnb2JqZWN0LCBzdHJpbmcgYWN0 aW9uX25hbWUsIHVpbnQga2V5X3ZhbCwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJzKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFu Y2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgQ2FsbGJhY2sgKENsdXR0ZXIu QWN0b3IgYWN0b3IpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBFbWl0 SW5wdXREZXZpY2VFdmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgQ2x1dHRlci5JbnB1dERldmlj ZSBkZXZpY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQor IAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBFdmVudEZpbHRlckZ1bmMgKENsdXR0ZXIuRXZlbnQgZXZl bnQpOworQEAgLTg5NTcsOSArODIyNyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNp b24gKHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5BY3RvckJv eD8gYWN0b3JfYm94X2FsbG9jICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGJhc2VfaW5pdCAoKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtODk3MSwzNyArODIzOCwxMiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMg Ym9vbCBjaGVja193aW5kb3dpbmdfYmFja2VuZCAoc3RyaW5nIGJhY2tlbmRfdHlwZSk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXJfZ2x5cGhfY2FjaGUgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgY29sb3JfZnJvbV9obHMgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBmbG9h dCBodWUsIGZsb2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgY29sb3JfZnJvbV9waXhlbCAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHVpbnQzMiBwaXhl bCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBjb2xvcl9m cm9tX3N0cmluZyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHN0cmluZyBzdHIpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5Db2xvcj8g Y29sb3JfZ2V0X3N0YXRpYyAoQ2x1dHRlci5TdGF0aWNDb2xvciBjb2xvcik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9hY2Nlc3NpYmlsaXR5 ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZG9fZXZl bnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVi bGljIHN0YXRpYyB1aW50IGV2ZW50X2FkZF9maWx0ZXIgKENsdXR0ZXIuU3RhZ2U/IHN0YWdlLCBb Q0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAyLjIsIGRlc3Ryb3lfbm90aWZ5X3BvcyA9IDIu MSldIG93bmVkIENsdXR0ZXIuRXZlbnRGaWx0ZXJGdW5jIGZ1bmMpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjAuNCIpXQorLQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRXZlbnQgZXZlbnRfZ2V0ICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5FdmVu dCBldmVudF9wZWVrICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIGV2ZW50X3JlbW92ZV9maWx0ZXIgKHVpbnQgaWQpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZXZlbnRzX3BlbmRpbmcgKCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTkwMTQsOSArODI1 Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor IAlwdWJsaWMgc3RhdGljIHVpbnQzMiBnZXRfY3VycmVudF9ldmVudF90aW1lICgpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGlj IHN0YXRpYyBib29sIGdldF9kZWJ1Z19lbmFibGVkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5CYWNrZW5kIGdldF9kZWZhdWx0X2Jh Y2tlbmQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorQEAgLTkwMjYsMTggKzgyNjUsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLlRleHREaXJlY3Rp b24gZ2V0X2RlZmF1bHRfdGV4dF9kaXJlY3Rpb24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg c3RhdGljIENsdXR0ZXIuRm9udEZsYWdzIGdldF9mb250X2ZsYWdzICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udE1hcCBnZXRfZm9u dF9tYXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlib2FyZF9ncmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJs aWMgc3RhdGljIGJvb2wgZ2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25f Z3JvdXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorQEAgLTkwNDUsMjYgKzgyNzUsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1Ymxp YyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwX3dpdGhvdXRfaW5pdCAo KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3IgZ2V0X3BvaW50ZXJfZ3JhYiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJ cHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBnZXRfc2NyaXB0X2lkIChHTGliLk9iamVjdCBn b2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfc2hvd19mcHMg KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIHVsb25nIGdldF90aW1lc3RhbXAgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX2tleWJvYXJkIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IGdyYWJfcG9pbnRlciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgZ3JhYl9wb2ludGVyX2Zvcl9kZXZpY2UgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIGludCBpZF8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLkluaXRFcnJvciBpbml0IChbQ0NvZGUg KGFycmF5X2xlbmd0aF9jbmFtZSA9ICJhcmdjIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSldIHJl ZiB1bm93bmVkIHN0cmluZ1tdPyBhcmd2KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC05 MDgwLDQxICs4MjkyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNl dF9jdXN0b21fYmFja2VuZF9mdW5jICh2b2lkKiBmdW5jKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfZGVmYXVsdF9mcmFtZV9yYXRlICh1aW50IGZyYW1lc19wZXJfc2Vj KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZm9udF9mbGFncyAoQ2x1 dHRlci5Gb250RmxhZ3MgZmxhZ3MpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg c2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoYm9vbCBlbmFibGUpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfYWRkX2RhdGFfZnVsbCAoc3RyaW5n IHRlc3RfcGF0aCwgb3duZWQgR0xpYi5UZXN0RGF0YUZ1bmMgdGVzdF9mdW5jKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2FjdG9yX2F0 X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50LCBDbHV0dGVy LkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5BY3Rvcj8gcmVzdWx0KTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2NvbG9yX2F0X3BvaW50 IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50LCBDbHV0dGVyLkNvbG9y IGNvbG9yLCBvdXQgQ2x1dHRlci5Db2xvciByZXN1bHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgdGVzdF9nZXRfc3RhZ2Ug KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0IChpbnQgYXJnYywgc3RyaW5nIGFyZ3YpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBpbnQgdGVzdF9ydW4gKCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJfa2V5 Ym9hcmQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1 bmdyYWJfcG9pbnRlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1bmdy YWJfcG9pbnRlcl9mb3JfZGV2aWNlIChpbnQgaWRfKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCXB1YmxpYyBzdGF0aWMgdWludCB1bmljb2RlX3RvX2tleXN5bSAodWludDMyIHdjKTsKKyB9 CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNS1jdXN0b20udmFsYSB2YXBpL211dHRlci1j b2dsLTYtY3VzdG9tLnZhbGEKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFw aS9tdXR0ZXItY29nbC01LWN1c3RvbS52YWxhCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC02 LWN1c3RvbS52YWxhCitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNC5kZXBzIHZhcGkvbXV0 dGVyLWNvZ2wtNi5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkv bXV0dGVyLWNvZ2wtNC5kZXBzCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC02LmRlcHMKK2Rp ZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01LnZhcGkgdmFwaS9tdXR0ZXItY29nbC02LnZhcGkK K3NpbWlsYXJpdHkgaW5kZXggNjglCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTUudmFw aQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNvZ2wtNi52YXBpCitpbmRleCBhODk2MTIyNC4uMTk1 ZTNiMTcgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY29nbC01LnZhcGkKKysrKyB2YXBpL211dHRl ci1jb2dsLTYudmFwaQorQEAgLTEsNiArMSw2IEBACistLyogbXV0dGVyLWNvZ2wtNS52YXBpIGdl bmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIG11dHRlci1jb2dsLTYu dmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUg KGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0g IjUiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAi Q29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0gIjYiLCBsb3dlcl9j YXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKyBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCB0eXBl X2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC0yOCw5 ICsyOCwxMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBzZXRfZGF0YSAoc2l6 ZV90IG9mZnNldCwgW0NDb2RlIChhcnJheV9sZW5ndGhfdHlwZSA9ICJzaXplX3QiKV0gdWludDhb XSBkYXRhKTsKKyAJCXB1YmxpYyB2b2lkIHVubWFwICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29t cGFjdF0KKy0JcHVibGljIGNsYXNzIEV1bGVyIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2NvbnRleHRfZ2V0X2d0eXBlICgpIild CisrCXB1YmxpYyBjbGFzcyBDb250ZXh0IDogQ29nbC5PYmplY3QgeworKwkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIENvbnRleHQgKCk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0K K0BAIC02NSw2MiArNjYsMTcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBNYXRlcmlhbCAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb3B5ICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENvZ2wuTWF0ZXJpYWxM YXllckNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9u KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3By aXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0K Ky0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChp bnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVy aWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVy X3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5M aXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0X2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIEBy ZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfbGF5 ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQg c2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENvZ2wuTWF0ZXJpYWxBbHBoYUZ1bmMgYWxwaGFfZnVu YywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xv cik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgc2V0X2JsZW5kIChzdHJpbmcg YmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3Ip OworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5Db2xv ciBjb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYg KGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWlu dDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Np b24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllciAoaW50IGxh eWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0dXJlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgYm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxl bmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKK0BAIC0xMzMsNDEgKzg5LDEzIEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJf cG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIGJvb2wgZW5hYmxl KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBz ZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9k ZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3Jh cF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAo aW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJf aW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCisg CQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNz KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wu Q29sb3Igc3BlY3VsYXIpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91 c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXllciB7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVi bGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENv Z2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3AgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2Rl X3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9k ZSBnZXRfd3JhcF9tb2RlX3QgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5cGUgKCkiKV0KKyAJ cHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CitAQCAtMTc4LDEzICsxMDYsOSBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBDb2dsLk9iamVjdCwgQ29n bC5GcmFtZWJ1ZmZlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk KiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4udG9fdGV4dHVyZSAoQ29nbC5U ZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmICh2b2lkKiBv ZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor IAkJcHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsK KyAJfQorQEAgLTE5Niw5ICsxMjAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgQ29n bC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdh dGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxiYWNrIGNhbGxiYWNr LCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBhZGRf cmVzaXplX2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2ds Lk9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2Fs bGJhY2s/IGRlc3Ryb3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdWludCBhZGRf c3dhcF9idWZmZXJzX2NhbGxiYWNrIChDb2dsLlN3YXBCdWZmZXJzTm90aWZ5IGNhbGxiYWNrKTsK Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCBjbHV0dGVyX2JhY2tlbmRfc2V0X3NpemVfQ0xVVFRFUiAo aW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisg CQlwdWJsaWMgaW50IGdldF9idWZmZXJfYWdlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTQiKV0KK0BAIC0yMTMsOCArMTM0LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZv aWQgcmVtb3ZlX2ZyYW1lX2NhbGxiYWNrIChDb2dsLkZyYW1lQ2xvc3VyZSBjbG9zdXJlKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9yZXNpemVf Y2FsbGJhY2sgKENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfc3dhcF9idWZmZXJzX2NhbGxiYWNrICh1 aW50IGlkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KK0BAIC0yNDQsNyArMTYzLDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfcGlwZWxpbmVfZ2V0 X2d0eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBQaXBlbGluZSA6IENvZ2wuT2JqZWN0IHsKKyAJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQ aXBlbGluZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJCXB1YmxpYyBQaXBl bGluZSAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmUgY29weSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KK0BAIC0yNTQsMTYgKzE3NCwxMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rlc3RfcmVm ZXJlbmNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg Z2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBnZXRf Y3VsbF9mYWNlX21vZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBl bWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5X aW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21hZ19maWx0 ZXIgKGludCBsYXllcl9pbmRleCk7CitAQCAtMjc0LDggKzE4OCw2IEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDb2ds LlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9s YXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBf bW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor IAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGlu dCBsYXllcl9pbmRleCk7CitAQCAtMjg2LDEwICsxOTgsNiBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3Np emUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0 X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9uIChzdHJpbmcg dW5pZm9ybV9uYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB1 bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CitAQCAtMjk4LDEwICsyMDYs NiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5QaXBlbGluZUFscGhhRnVu YyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVu dCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1i aWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcp IHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0YW50X2NvbG9yKTsK K0BAIC0zMTQsMTAgKzIxOCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jdWxsX2ZhY2VfbW9kZSAoQ29nbC5QaXBl bGluZUN1bGxGYWNlTW9kZSBjdWxsX2ZhY2VfbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlzc2lv biAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisg CQlwdWJsaWMgdm9pZCBzZXRfZnJvbnRfZmFjZV93aW5kaW5nIChDb2dsLldpbmRpbmcgZnJvbnRf d2luZGluZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgYm9vbCBz ZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0 aHJvd3MgR0xpYi5FcnJvcjsKK0BAIC0zMzUsOCArMjM1LDYgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dy YXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3Jh cF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dy YXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl93 cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7 CitAQCAtMzQ1LDEwICsyNDMsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRf c2l6ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf c2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFm IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgZmxvYXQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWkgKGludCB1bmlmb3JtX2xv Y2F0aW9uLCBpbnQgdmFsdWUpOworQEAgLTM4MiwxMCArMjc2LDYgQEAgbmFtZXNwYWNlIENvZ2wg eworIAkJcHVibGljIHN0YXRpYyB2b2lkIHVuaWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9ubywg aW50IHNpemUsIGJvb2wgdHJhbnNwb3NlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9wb3MgPSAyLjkp XSBmbG9hdFtdIHZhbHVlKTsKKyAJCXB1YmxpYyB2b2lkIHVzZSAoKTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKy0JfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIiwg cmVmX2Z1bmN0aW9uID0gImNvZ2xfc2hhZGVyX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xf c2hhZGVyX3VucmVmIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgU2hhZGVyIDogQ29n bC5IYW5kbGUgeworQEAgLTQ2NSwxMiArMzU1LDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1 YmxpYyBpbnQgZ2V0X2FscGhhX2JpdHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CisgCQlwdWJsaWMgaW50IGdldF9ibHVlX2JpdHMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkNvbnRleHQgZ2V0X2NvbnRleHQgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF9kZXB0aF9iaXRz ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENv Z2wuVGV4dHVyZSBnZXRfZGVwdGhfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9kZXB0aF93cml0 ZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTUxNiw2ICs0 MDQsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBwdXNoX21hdHJpeCAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBwdXNoX3JlY3Rh bmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOwor KwkJcHVibGljIHZvaWQgcHVzaF9yZWdpb25fY2xpcCAoQ2Fpcm8uUmVnaW9uIHJlZ2lvbik7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcHVzaF9zY2lzc29y X2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCitAQCAtNTI5LDEzICs0MTgsOSBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcm90YXRlIChm bG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVs ZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRl X3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lk IHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9h dCB6KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdm9pZCBzZXRf ZGVwdGhfdGV4dHVyZV9lbmFibGVkIChib29sIGVuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9lbmFibGVkIChib29s IGRlcHRoX3dyaXRlX2VuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAg LTYzNSwxMCArNTIwLDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgc2V0X2Js dWVfYnl0ZSAodWludDggYmx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgdm9pZCBzZXRfYmx1ZV9mbG9hdCAoZmxvYXQgYmx1ZSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxv YXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2Zyb21fNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBh bHBoYSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRf Z3JlZW4gKGZsb2F0IGdyZWVuKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC02 NjIsNyArNTQzLDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHdlYWsgc3RyaW5nIG5h bWU7CisgCQlwdWJsaWMgdWxvbmcgaW5zdGFuY2VfY291bnQ7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVfTUFUUklY IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVu Y3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0 eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRSSVgiKV0KKyAJcHVibGljIHN0cnVjdCBNYXRyaXggewor IAkJcHVibGljIGZsb2F0IHh4OworIAkJcHVibGljIGZsb2F0IHl4OworQEAgLTY5Miw4ICs1NzMs NyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBnZXRfaW52ZXJzZSAob3V0IENv Z2wuTWF0cml4IGludmVyc2UpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9pbml0 X2lkZW50aXR5IildCisgCQlwdWJsaWMgTWF0cml4LmlkZW50aXR5ICgpOworLQkJcHVibGljIHZv aWQgaW5pdF9mcm9tX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCXB1YmxpYyB2b2lkIGlu aXRfZnJvbV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlwdWJs aWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVyKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGluaXRfdHJhbnNsYXRpb24gKGZs b2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorQEAgLTcwMiwxOSArNTgyLDE1IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lk IGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlvbl94LCBmbG9hdCBleWVfcG9zaXRpb25feSwgZmxv YXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9iamVjdF94LCBmbG9hdCBvYmplY3RfeSwgZmxvYXQg b2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gsIGZsb2F0IHdvcmxkX3VwX3ksIGZsb2F0IHdvcmxk X3VwX3opOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9tdWx0aXBseSIpXQorIAkJ cHVibGljIE1hdHJpeC5tdWx0aXBseSAoQ29nbC5NYXRyaXggYSwgQ29nbC5NYXRyaXggYik7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBi b3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwg ZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsK KyAJCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBm bG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHByb2plY3RfcG9pbnRz IChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNp emVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworIAkJcHVi bGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVs ZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9u KTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOwor IAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxvYXQgc3opOworLQkJ cHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJl ZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3Jt X3BvaW50IChyZWYgQ29nbC5NYXRyaXggbWF0cml4LCByZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHks IHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisgCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9p bnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4s IHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworIAkJ cHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtODE4LDM4ICs2OTQsMzMgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJTk9ORSwKKyAJCU5PX0dFVF9EQVRBCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIp XQorLQlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9ZVVYsCistCQlURVhU VVJFX1JFQURfUElYRUxTLAorLQkJT0ZGU0NSRUVOLAorLQkJT0ZGU0NSRUVOX01VTFRJU0FNUExF LAorLQkJRk9VUl9DTElQX1BMQU5FUywKKy0JCVNURU5DSUxfQlVGRkVSLAorLQkJVkJPUywKKy0J CVBCT1MsCistCQlVTlNJR05FRF9JTlRfSU5ESUNFUywKKy0JCURFUFRIX1JBTkdFLAorLQkJUE9J TlRfU1BSSVRFLAorLQkJTUFQX0JVRkZFUl9GT1JfUkVBRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1dS SVRFLAorLQkJT05TQ1JFRU5fTVVMVElQTEUsCistCQlERVBUSF9URVhUVVJFCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GRUFUVVJF X0lEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorKwlwdWJsaWMgZW51bSBGZWF0dXJlSUQgeworKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZF QVRVUkVfSURfVU5TSUdORURfSU5UX0lORElDRVMiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1VOU0lH TkVEX0lOVF9JTkRJQ0VTLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfTUFQ X0JVRkZFUl9GT1JfUkVBRCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfUkVB RCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1dS SVRFIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9XUklURSwKKysJCVtDQ29k ZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1NXQVBfQlVGRkVSU19FVkVOVCIpXQorKwkJT0dM X0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5ULAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dM X0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1BSRVNF TlRBVElPTl9USU1FLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfRkVOQ0Ui KV0KKysJCU9HTF9GRUFUVVJFX0lEX0ZFTkNFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZF QVRVUkVfSURfVEVYVFVSRV9SRyIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9SRywKKysJ CVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0JVRkZFUl9BR0UiKV0KKysJCU9HTF9G RUFUVVJFX0lEX0JVRkZFUl9BR0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9J RF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVEVYVFVS RV9FR0xfSU1BR0VfRVhURVJOQUwKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRklMVEVSXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorIAlwdWJsaWMgZW51bSBGaWx0ZXJSZXR1cm4geworIAkJQ09OVElOVUUsCisgCQlSRU1P VkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfRk9HX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gRm9nTW9kZSB7CistCQlMSU5FQVIsCist CQlFWFBPTkVOVElBTCwKKy0JCUVYUE9ORU5USUFMX1NRVUFSRUQKKy0JfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRlJBTUVfRVZF TlRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CisgCXB1YmxpYyBlbnVtIEZyYW1lRXZlbnQgeworQEAgLTg2Miw2ICs3MzMsMTQgQEAgbmFtZXNw YWNlIENvZ2wgeworIAkJRlJBTUVCVUZGRVJfRVJST1JfQUxMT0NBVEU7CisgCQlwdWJsaWMgc3Rh dGljIHVpbnQzMiBxdWFyayAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfR1JBUEhJQ1NfUkVTRVRfU1RBVFVTXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgZW51bSBHcmFwaGljc1Jlc2V0U3RhdHVzIHsK KysJCU5PX0VSUk9SLAorKwkJR1VJTFRZX0NPTlRFWFRfUkVTRVQsCisrCQlJTk5PQ0VOVF9DT05U RVhUX1JFU0VULAorKwkJVU5LTk9XTl9DT05URVhUX1JFU0VULAorKwkJUFVSR0VEX0NPTlRFWFRf UkVTRVQKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfSU5ESUNFU19UWVBFX1VOU0lHTkVEXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorIAlwdWJsaWMgZW51bSBJbmRpY2VzVHlwZSB7CisgCQlCWVRFLAorQEAgLTg4OCwxMiAr NzY3LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorIAkJ TElORUFSX01JUE1BUF9MSU5FQVIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg ZW51bSBNYXRlcmlhbExheWVyVHlwZSB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfTUFURVJJ QUxfTEFZRVJfVFlQRV9URVhUVVJFIildCistCQlNQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUK Ky0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4 ID0gIkNPR0xfTUFURVJJQUxfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVtIE1hdGVyaWFsV3JhcE1vZGUg eworQEAgLTk3MSw2ICs4NDQsOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlERVBUSF8xNiwKKyAJ CURFUFRIXzMyLAorIAkJREVQVEhfMjRfU1RFTkNJTF84OworKwkJcHVibGljIGludCBnZXRfYnl0 ZXNfcGVyX3BpeGVsIChpbnQgcGxhbmUpOworKwkJcHVibGljIGludCBnZXRfbl9wbGFuZXMgKCk7 CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRUFEX1BJ WEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KK0BAIC0xMDY0LDkgKzkzOSw5IEBA IG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor IAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgKENv Z2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JcHVibGljIGRlbGVnYXRlIGJvb2wgTWF0ZXJpYWxMYXllckNhbGxiYWNrIChDb2dsLk1hdGVy aWFsIG1hdGVyaWFsLCBpbnQgbGF5ZXJfaW5kZXgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlbVmVyc2lvbiAoc2lu Y2UgPSAiMC4xMCIpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBGZWF0dXJlQ2FsbGJhY2sgKENv Z2wuRmVhdHVyZUlEIGZlYXR1cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4x NiIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlbkRpcnR5Q2FsbGJhY2sgKENvZ2wu T25zY3JlZW4gb25zY3JlZW4sIENvZ2wuT25zY3JlZW5EaXJ0eUluZm8gaW5mbyk7CitAQCAtMTA3 NCwxMyArOTQ5LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgKENvZ2wu T25zY3JlZW4gb25zY3JlZW4sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1 YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuWDExTWFza0NhbGxiYWNrIChDb2dsLk9uc2NyZWVu IG9uc2NyZWVuLCB1aW50MzIgZXZlbnRfbWFzayk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgUGlwZWxpbmVMYXllckNhbGxiYWNr IChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlw dWJsaWMgZGVsZWdhdGUgdm9pZCBTd2FwQnVmZmVyc05vdGlmeSAoQ29nbC5GcmFtZWJ1ZmZlciBm cmFtZWJ1ZmZlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFRleHR1cmUyREVH TEltYWdlRXh0ZXJuYWxBbGxvYyAoQ29nbC5UZXh0dXJlMkQgdGV4XzJkKSB0aHJvd3MgR0xpYi5F cnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3Rh cmdldCA9IGZhbHNlKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgVXNlckRhdGFEZXN0cm95Q2Fs bGJhY2sgKHZvaWQqIGRhdGEpOworQEAgLTEwOTIsNiArOTYzLDggQEAgbmFtZXNwYWNlIENvZ2wg eworIAlwdWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQVEhfQklUIildCisgCXB1YmxpYyBj b25zdCBpbnQgREVQVEhfQklUOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BJWEVMX0ZPUk1BVF9NQVhfUExBTkVTIildCisrCXB1Ymxp YyBjb25zdCBpbnQgUElYRUxfRk9STUFUX01BWF9QTEFORVM7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUFJFTVVMVF9CSVQiKV0KKyAJ cHVibGljIGNvbnN0IGludCBQUkVNVUxUX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9TVEVOQ0lMX0JJVCIpXQorQEAgLTEwOTks MTkgKzk3Miw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9URVhUVVJFX01BWF9XQVNURSIpXQorIAlw dWJsaWMgY29uc3QgaW50IFRFWFRVUkVfTUFYX1dBU1RFOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIGJlZ2luX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGJsaXRfZnJhbWVidWZmZXIgKENvZ2wuRnJh bWVidWZmZXIgc3JjLCBDb2dsLkZyYW1lYnVmZmVyIGRlc3QsIGludCBzcmNfeCwgaW50IHNyY195 LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB0aHJvd3MgR0xp Yi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0K Ky0JcHVibGljIHN0YXRpYyBib29sIGNoZWNrX2V4dGVuc2lvbiAoc3RyaW5nIG5hbWUsIHN0cmlu ZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFyIChDb2dsLkNvbG9yIGNvbG9yLCB1bG9uZyBidWZm ZXJzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1 YmxpYyBzdGF0aWMgYm9vbCBjbHV0dGVyX2NoZWNrX2V4dGVuc2lvbl9DTFVUVEVSIChzdHJpbmcg bmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgY2x1dHRlcl93aW5zeXNfaGFzX2ZlYXR1cmVf Q0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor QEAgLTExMjksNTcgKzk5MSwzOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGRlYnVnX29iamVjdF9wcmludF9pbnN0 YW5jZXMgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9mb2cgKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgZW5kX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGZlYXR1cmVzX2F2YWlsYWJsZSAo Q29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMg c3RhdGljIHZvaWQgZmx1c2ggKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBmcnVz dHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZs b2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwlwdWJsaWMgc3RhdGljIHZvaWQgZm9yZWFjaF9mZWF0dXJlIChDb2dsLkNvbnRleHQgY29udGV4 dCwgQ29nbC5GZWF0dXJlQ2FsbGJhY2sgY2FsbGJhY2spOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGdldF9iYWNr ZmFjZV9jdWxsaW5nX2VuYWJsZWQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfYml0bWFza3MgKG91dCBp bnQgcmVkLCBvdXQgaW50IGdyZWVuLCBvdXQgaW50IGJsdWUsIG91dCBpbnQgYWxwaGEpOworKwlb VmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwlwdWJsaWMgc3RhdGljIGludDY0IGdldF9jbG9j a190aW1lIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2RlcHRoX3Rl c3RfZW5hYmxlZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVk IENvZ2wuRnJhbWVidWZmZXIgZ2V0X2RyYXdfZnJhbWVidWZmZXIgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJs aWMgc3RhdGljIENvZ2wuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CisrCXB1YmxpYyBzdGF0aWMgQ29nbC5H cmFwaGljc1Jlc2V0U3RhdHVzIGdldF9ncmFwaGljc19yZXNldF9zdGF0dXMgKENvZ2wuQ29udGV4 dCBjb250ZXh0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRf b3B0aW9uX2dyb3VwICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLkNhbGxiYWNrIGdldF9wcm9jX2FkZHJlc3MgKHN0 cmluZyBzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X3Byb2plY3Rpb25fbWF0cml4ICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkKiBnZXRfc291cmNlICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IGdldF92aWV3cG9ydCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIG91dCBmbG9hdCB2 WzRdKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4IildCisg CXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGd0eXBlX21hdHJpeF9nZXRfdHlwZSAoKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBoYXNfZmVhdHVyZSAoQ29nbC5Db250 ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KysJcHVibGljIHN0YXRpYyBib29sIGlzX2NvbnRleHQgKHZvaWQqIG9iamVjdCk7CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorKwlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZnJhbWVidWZmZXIgKHZvaWQqIG9i amVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTExOTMsNTMgKzEwMzYsOSBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMg Ym9vbCBpc190ZXh0dXJlXzJkX3NsaWNlZCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1Ymxp YyBzdGF0aWMgYm9vbCBpc192ZXJ0ZXhfYnVmZmVyX2luZGljZXMgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBtYXRyaXhfZXF1YWwg KHZvaWQqIHYxLCB2b2lkKiB2Mik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgb3J0aG8g KGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQg bmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92eSwg ZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVyZVZlcnRleCB2ZXJ0 aWNlcywgdWludCBuX3ZlcnRpY2VzLCBib29sIHVzZV9jb2xvcik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9w X21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfc291cmNlICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHB1c2hfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlIChmbG9h dCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfbXVsdGl0ZXh0dXJlX2Nvb3Jk cyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhfY29vcmRzX2xlbik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF90 ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIGZs b2F0IHR4MSwgZmxvYXQgdHkxLCBmbG9hdCB0eDIsIGZsb2F0IHR5Mik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzIChbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgu NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlc193aXRoX3RleHR1cmVfY29vcmRz IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3Jl Y3RzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5 LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg eik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlw dWJsaWMgc3RhdGljIHZvaWQgc2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoYm9vbCBzZXR0 aW5nKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCitAQCAt MTI0Nyw1MyArMTA0NiwxMSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBzdGF0aWMgdm9p ZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNl dF9mb2cgKENvZ2wuQ29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQgZGVu c2l0eSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X21vZGVs dmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3Byb2pl Y3Rpb25fbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHNldF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3Jl ZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBzZXRfc291cmNlX2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVl LCB1aW50OCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV90 ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBzZXRfdmlld3BvcnQgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzaGFkZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg c3RyaW5nIHNoYWRlcl9nZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGlj IENvZ2wuU2hhZGVyVHlwZSBzaGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIGJvb2wgc2hhZGVyX2lzX2NvbXBpbGVkIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHNoYWRlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJs aWMgc3RhdGljIHZvaWQgc2hhZGVyX3NvdXJjZSAoQ29nbC5IYW5kbGUgc2hhZGVyLCBzdHJpbmcg c291cmNlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0g IjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2Jp dG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5Q aXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KK0BAIC0xMzA2LDU5ICsxMDYzLDYgQEAgbmFtZXNwYWNlIENvZ2wg eworIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x OCIsIHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJl X25ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFn cyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHZlcnRleF9idWZmZXJfYWRkIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVf bmFtZSwgdWludDggbl9jb21wb25lbnRzLCBDb2dsLkF0dHJpYnV0ZVR5cGUgdHlwZSwgYm9vbCBu b3JtYWxpemVkLCB1aW50MTYgc3RyaWRlLCB2b2lkKiBwb2ludGVyKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2 ZXJ0ZXhfYnVmZmVyX2RlbGV0ZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRl X25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGlzYWJsZSAoQ29nbC5IYW5kbGUg aGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZm ZXJfZHJhdyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBpbnQg Zmlyc3QsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3X2VsZW1l bnRzIChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUsIENvZ2wuSGFu ZGxlIGluZGljZXMsIGludCBtaW5faW5kZXgsIGludCBtYXhfaW5kZXgsIGludCBpbmRpY2VzX29m ZnNldCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2VuYWJsZSAoQ29n bC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50IHZl cnRleF9idWZmZXJfZ2V0X25fdmVydGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF9mb3JfcXVhZHMg KHVpbnQgbl9pbmRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5JbmRpY2VzVHlwZSB2ZXJ0ZXhfYnVmZmVy X2luZGljZXNfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGluZGljZXMpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVk IENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfbmV3ICh1aW50IG5fdmVydGljZXMpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9zdWJtaXQgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5kbGUp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0g IjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2aWV3cG9ydCAodWludCB3aWR0aCwgdWlu dCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF92aXN1YWxfeGlkIChDb2ds Lk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMg dWludDMyIHgxMV9vbnNjcmVlbl9nZXRfd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVl bik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB4MTFfb25zY3JlZW5f c2V0X2ZvcmVpZ25fd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIHhp ZCwgW0NDb2RlIChzY29wZSA9ICJhc3luYyIpXSBDb2dsLk9uc2NyZWVuWDExTWFza0NhbGxiYWNr IHVwZGF0ZSk7CisgfQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTQtY3VzdG9tLnZhbGEg dmFwaS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitzaW1pbGFyaXR5IGluZGV4IDgxJQorcmVu YW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC00LWN1c3RvbS52YWxhCityZW5hbWUgdG8gdmFwaS9t dXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitpbmRleCAyNTUxODg1YS4uYzRkNGI5M2EgMTAwNjQ0 CistLS0gdmFwaS9tdXR0ZXItY29nbC00LWN1c3RvbS52YWxhCisrKysgdmFwaS9tdXR0ZXItY29n bC03LWN1c3RvbS52YWxhCitAQCAtMSwxMCArMSw0IEBACisgbmFtZXNwYWNlIENvZ2wgeworLQlb Q29tcGFjdF0KKy0JW0NDb2RlIChjbmFtZSA9ICJDb2dsSGFuZGxlIildCistCXB1YmxpYyBjbGFz cyBCaXRtYXA6IEhhbmRsZSB7CistCQlwdWJsaWMgc3RhdGljIEJpdG1hcCBuZXdfZnJvbV9maWxl IChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVycm9yOworLQl9CistCisgCVtDb21wYWN0 XQorIAlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5kbGUiKV0KKyAJcHVibGljIGNsYXNzIEJ1ZmZl cjogSGFuZGxlIHsKK0BAIC00Miw3ICszNiw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1Ymxp YyBib29sIGlzX3ZlcnRleF9idWZmZXIgKCk7CisgCX0KKyAKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJjb2dsX3BhdGhfY29weSIp XSAKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5j dGlvbiA9ICJjb2dsX3BhdGhfY29weSIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFBh dGggeworIAkJcHVibGljIHN0YXRpYyB2b2lkIEBuZXcgKCk7CitAQCAtODIsMTggKzc2LDYgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgc291cmNlIChzdHJpbmcgc291cmNlKTsK KyAJfQorIAorLQlbQ29tcGFjdF0KKy0JW0NDb2RlIChjbmFtZSA9ICJDb2dsSGFuZGxlIiwgcmVm X2Z1bmN0aW9uID0gImNvZ2xfdGV4dHVyZV9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX3Rl eHR1cmVfdW5yZWYiKV0KKy0JcHVibGljIGNsYXNzIFRleHR1cmU6IEhhbmRsZSB7CistCQlwdWJs aWMgQ29nbC5QaXhlbEZvcm1hdCBnZXRfZm9ybWF0ICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3Jv d3N0cmlkZSAoKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBi bXBfaGFuZGxlLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRl cm5hbF9mb3JtYXQpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9kYXRhICh1aW50IHdpZHRoLCB1 aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9y bWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgdWludCByb3dzdHJpZGUsIFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1Y2hhcltdIGRhdGEpOworLQkJcHVibGljIFRl eHR1cmUuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdz LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7Cist CQlwdWJsaWMgVGV4dHVyZS5mcm9tX3N1Yl90ZXh0dXJlIChDb2dsLlRleHR1cmUgZnVsbF90ZXh0 dXJlLCBpbnQgc3ViX3gsIGludCBzdWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWlnaHQp OworLQkJcHVibGljIFRleHR1cmUud2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwg Q29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0 KTsKKy0JfQorLQorIAlbQ29tcGFjdF0KKyAJW0NDb2RlIChjbmFtZSA9ICJDb2dsSGFuZGxlIiwg cmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9 ICJjb2dsX3ZlcnRleF9idWZmZXJfdW5yZWYiKV0KKyAJcHVibGljIGNsYXNzIFZlcnRleEJ1ZmZl cjogSGFuZGxlIHsKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01LmRlcHMgdmFwaS9tdXR0 ZXItY29nbC03LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9t dXR0ZXItY29nbC01LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTcuZGVwcworZGlm ZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTQudmFwaSB2YXBpL211dHRlci1jb2dsLTcudmFwaQor c2ltaWxhcml0eSBpbmRleCA1OSUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNC52YXBp CityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC03LnZhcGkKK2luZGV4IDVkZThmNDQ3Li42MjBj MjMxNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jb2dsLTQudmFwaQorKysrIHZhcGkvbXV0dGVy LWNvZ2wtNy52YXBpCitAQCAtMSwxMiArMSwxMyBAQAorLS8qIG11dHRlci1jb2dsLTQudmFwaSBn ZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY29nbC03 LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0NDb2Rl IChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJfdmVyc2lvbiA9 ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCisrW0NDb2RlIChjcHJlZml4ID0g IkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJfdmVyc2lvbiA9ICI3IiwgbG93ZXJf Y2FzZV9jcHJlZml4ID0gImNvZ2xfIildCisgbmFtZXNwYWNlIENvZ2wgeworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIiwgdHlw ZV9pZCA9ICJjb2dsX2JpdG1hcF9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1Ymxp YyBjbGFzcyBCaXRtYXAgOiBDb2dsLkhhbmRsZSB7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0eXBlICgpIild CisrCXB1YmxpYyBjbGFzcyBCaXRtYXAgOiBDb2dsLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgQml0bWFwICgpOworIAkJ cHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDb2dsQml0bWFwKiIpXQorKwkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAkJcHVibGljIEJpdG1hcC5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhy b3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTE2LDEw ICsxNyw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgaW50IGdldF9yb3dzdHJpZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfc2l6ZV9mcm9tX2ZpbGUgKHN0 cmluZyBmaWxlbmFtZSwgb3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworKwkJcHVibGlj IHN0YXRpYyBib29sIGdldF9zaXplX2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBvdXQgaW50 IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIGludCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgc3RhdGljIENvZ2wuQml0bWFw IG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29n bEhhbmRsZSIpXQorIAlbQ29tcGFjdF0KK0BAIC0yOCwxNSArMjgsMjggQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJcHVibGljIGJvb2wgc2V0X2RhdGEgKHNpemVfdCBvZmZzZXQsIFtDQ29kZSAoYXJy YXlfbGVuZ3RoX3R5cGUgPSAic2l6ZV90IildIHVpbnQ4W10gZGF0YSk7CisgCQlwdWJsaWMgdm9p ZCB1bm1hcCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBF dWxlciB7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVf aWQgPSAiY29nbF9jb250ZXh0X2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgQ29udGV4 dCA6IENvZ2wuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKysJCXByb3RlY3RlZCBDb250ZXh0ICgpOworKwkJcHVibGljIGJvb2wgaXNfaGFyZHdh cmVfYWNjZWxlcmF0ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9u ID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9zdXJlX2dldF9ndHlw ZSAoKSIpXQorIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVi bGljIGNsYXNzIEZyYW1lQ2xvc3VyZSB7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2luZm9fZ2V0X2d0eXBlICgp IildCisrCXB1YmxpYyBjbGFzcyBGcmFtZUluZm8gOiBDb2dsLk9iamVjdCB7CisrCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgRnJhbWVJbmZv ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBpbnQ2NCBnZXRf ZnJhbWVfY291bnRlciAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCQlwdWJs aWMgaW50NjQgZ2V0X3ByZXNlbnRhdGlvbl90aW1lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTQiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfcmVmcmVzaF9yYXRlICgpOworKwl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHJlZl9mdW5jdGlvbiA9ICJj b2dsX2hhbmRsZV9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX2hhbmRsZV91bnJlZiIpXQor IAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIEhhbmRsZSB7CitAQCAtNjUsNjUgKzc4LDIwIEBA IG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCisgCQlwdWJsaWMgTWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIENvZ2wuTWF0ZXJpYWwgY29weSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCBmb3JlYWNoX2xheWVyIChDb2dsLk1hdGVyaWFsTGF5ZXJDYWxsYmFjayBjYWxsYmFj ayk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wu Q29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3Ig Z2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZm dXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFi bGVkIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2ds Lk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0 X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0K Ky0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChp bnQgbGF5ZXJfaW5kZXgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PENvZ2wuTWF0ZXJp YWxMYXllcj4gZ2V0X2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgaW50 IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZmxvYXQgZ2V0 X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9z aGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1 bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIEByZWYgKENvZ2wuSGFuZGxl IG1hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfbGF5ZXIgKGludCBsYXllcl9p bmRleCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3Rf ZnVuY3Rpb24gKENvZ2wuTWF0ZXJpYWxBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFf cmVmZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVu dCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJp bmcpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2JsZW5kIChzdHJpbmcg YmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3Ip OworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5Db2xv ciBjb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYg KGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWlu dDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Np b24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllciAoaW50IGxh eWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0dXJlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmlu ZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2xh eWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dz IEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVy X2NvbWJpbmVfY29uc3RhbnQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Db2xvciBjb25zdGFudCk7 CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorQEAgLTEzMSw0MyArOTksMTUgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRyaXggbWF0 cml4KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9w b2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Cb29sIGVu YWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3Jh cE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVy X3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2Rl KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2Rl X3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxh eWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CisrCQlwdWJsaWMgYm9vbCBz ZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIGJv b2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCisgCQlwdWJs aWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Ig c3BlY3VsYXIpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91c2VyX3By b2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXllciB7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVi bGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGlj IENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHVu b3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0 ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3AgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3MgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRf d3JhcF9tb2RlX3QgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGlj IGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CitAQCAtMTc4LDEzICsxMTgsOSBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCXB1YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5GcmFt ZWJ1ZmZlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisg CQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkKiBAcmVm ICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4udG9fdGV4dHVyZSAoQ29nbC5UZXh0dXJl IHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmICh2b2lkKiBvZmZzY3Jl ZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVi bGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKyAJfQor QEAgLTE5NCwxNyArMTMwLDE2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXByb3RlY3RlZCBPbnNj cmVlbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgQ29nbC5P bnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVf dGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxiYWNrIGNhbGxiYWNrLCBD b2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE0IildCisrCQlwdWJsaWMgQ29nbC5GcmFtZUNsb3N1cmUgYWRkX2ZyYW1lX2NhbGxi YWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLkZyYW1lQ2FsbGJh Y2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuT25zY3JlZW5SZXNpemVD bG9zdXJlIGFkZF9yZXNpemVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9 IDEuNSldIENvZ2wuT25zY3JlZW5SZXNpemVDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0 YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB1aW50IGFkZF9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKENvZ2wuU3dhcEJ1ZmZlcnNOb3RpZnkg Y2FsbGJhY2spOworLQkJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfYmFja2VuZF9zZXRfc2l6 ZV9DTFVUVEVSIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTQiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2J1ZmZlcl9hZ2UgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcmVz aXphYmxlICgpOworKwkJcHVibGljIGJvb2wgZ2V0X3Jlc2l6YWJsZSAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGhpZGUgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xNiIpXQorQEAgLTIxMywxOCArMTQ4LDE2IEBAIG5hbWVzcGFjZSBDb2dsIHsK KyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9mcmFtZV9jYWxsYmFjayAoQ29nbC5GcmFtZUNsb3N1cmUg Y2xvc3VyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBy ZW1vdmVfcmVzaXplX2NhbGxiYWNrIChDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBjbG9zdXJl KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3N3YXBfYnVmZmVy c19jYWxsYmFjayAodWludCBpZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfcmVzaXphYmxlIChDb2dsLkJvb2wgcmVzaXphYmxlKTsKKysJCXB1Ymxp YyB2b2lkIHNldF9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNob3cgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzICgpOworKwkJcHVibGljIHZv aWQgc3dhcF9idWZmZXJzIChDb2dsLkZyYW1lSW5mbyBmcmFtZV9pbmZvKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnNfd2l0aF9kYW1h Z2UgKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzKTsKKysJCXB1YmxpYyB2b2lkIHN3 YXBfYnVmZmVyc193aXRoX2RhbWFnZSAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMs IENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIHN3YXBfcmVnaW9uIChpbnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xl cyk7CisrCQlwdWJsaWMgdm9pZCBzd2FwX3JlZ2lvbiAoaW50IHJlY3RhbmdsZXMsIGludCBuX3Jl Y3RhbmdsZXMsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5Iiwg ZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xfb25zY3JlZW5f ZGlydHlfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKyAJW0NvbXBhY3RdCitAQCAtMjQ0LDcgKzE3 Nyw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9ndHlwZSAoKSIpXQorIAlw dWJsaWMgY2xhc3MgUGlwZWxpbmUgOiBDb2dsLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUGlwZWxpbmUgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisrCQlwdWJsaWMgUGlwZWxpbmUgKENvZ2wuQ29udGV4 dCBjb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2ds LlBpcGVsaW5lIGNvcHkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCitAQCAtMjU0 LDQ0ICsxODgsMzAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9hbHBoYV90ZXN0X3JlZmVyZW5jZSAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbWJpZW50IChDb2ds LkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGlj IENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUgZ2V0 X2N1bGxfZmFjZV9tb2RlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Npb24gKENvZ2wuQ29sb3Ig ZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wu V2luZGluZyBnZXRfZnJvbnRfZmFjZV93aW5kaW5nICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdldF9sYXllcl9tYWdfZmls dGVyIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdldF9sYXllcl9taW5fZmlsdGVyIChpbnQgbGF5 ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wu Qm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5k ZXgpOworKwkJcHVibGljIGJvb2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxl ZCAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlw dWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9p bmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBl bGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1v ZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5 ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6 ZSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3No aW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9uIChzdHJpbmcgdW5p Zm9ybV9uYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB1bm93 bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CitAQCAtMzAwLDExICsyMjAsNyBA QCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5QaXBlbGluZUFscGhhRnVuYyBh bHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVu dF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmlu ZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0cmluZyBi bGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0 YW50X2NvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KK0BAIC0zMTMsNDYgKzIy OSwzNSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAoZmxv YXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yNHViICh1aW50OCBy ZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5Db2xv ck1hc2sgY29sb3JfbWFzayk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgdm9pZCBzZXRfY3VsbF9mYWNlX21vZGUgKENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUgY3Vs bF9mYWNlX21vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Np b24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Zy b250X2ZhY2Vfd2luZGluZyAoQ29nbC5XaW5kaW5nIGZyb250X3dpbmRpbmcpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfY29tYmlu ZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJv cjsKKysJCXB1YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0 cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX2NvbWJpbmVfY29uc3RhbnQgKGlu dCBsYXllcl9pbmRleCwgQ29nbC5Db2xvciBjb25zdGFudCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX2ZpbHRlcnMgKGludCBsYXllcl9p bmRleCwgQ29nbC5QaXBlbGluZUZpbHRlciBtaW5fZmlsdGVyLCBDb2dsLlBpcGVsaW5lRmlsdGVy IG1hZ19maWx0ZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF9sYXllcl9tYXRyaXggKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRyaXggbWF0cml4 KTsKKysJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXhfbWlwbWFwX2xldmVsIChpbnQgbGF5ZXIs IGludCBtYXhfbGV2ZWwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9sYXllcl9udWxsX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5UZXh0 dXJlVHlwZSB0ZXh0dXJlX3R5cGUpOworKwkJcHVibGljIHZvaWQgc2V0X2xheWVyX251bGxfdGV4 dHVyZSAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAo aW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJ CXB1YmxpYyBib29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBs YXllcl9pbmRleCwgYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIHZv aWQgc2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5UZXh0dXJlIHRleHR1 cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xh eWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9k ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1v ZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xh eWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBt b2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9s YXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUg bW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29s IHNldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGli LkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoYm9vbCBl bmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor IAkJcHVibGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZsb2F0IHBvaW50X3NpemUpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxv YXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xZiAoaW50IHVuaWZvcm1f bG9jYXRpb24sIGZsb2F0IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFpIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IHZh bHVlKTsKK0BAIC0zNjEsNyArMjY2LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1faW50IChpbnQgdW5p Zm9ybV9sb2NhdGlvbiwgaW50IG5fY29tcG9uZW50cywgaW50IGNvdW50LCBpbnQgdmFsdWUpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1f bWF0cml4IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IGRpbWVuc2lvbnMsIGludCBjb3VudCwg Q29nbC5Cb29sIHRyYW5zcG9zZSwgZmxvYXQgdmFsdWUpOworKwkJcHVibGljIHZvaWQgc2V0X3Vu aWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IGRpbWVuc2lvbnMsIGludCBj b3VudCwgYm9vbCB0cmFuc3Bvc2UsIGZsb2F0IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHBy b2dyYW0pOworIAl9CitAQCAtMzg4LDcgKzI5Myw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKysJcHVi bGljIGNsYXNzIFNjYW5vdXQgeworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF9z aGFkZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJfdW5yZWYiKV0KKyAJW0Nv bXBhY3RdCitAQCAtNDAxLDQ4ICszMDYsMjMgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGlj IGJvb2wgaXNfY29tcGlsZWQgKCk7CisgCQlwdWJsaWMgdm9pZCBzb3VyY2UgKHN0cmluZyBzb3Vy Y2UpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNu YW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJlX3JlZiIsIHR5 cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gImNv Z2xfdGV4dHVyZV91bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFRleHR1cmUg OiBDb2dsLkhhbmRsZSB7CistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBH TGliLkVycm9yOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlw dWJsaWMgVGV4dHVyZS5mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYm1wX2hhbmRsZSwgQ29nbC5U ZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0J CXB1YmxpYyBUZXh0dXJlLmZyb21fZGF0YSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wu VGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZv cm1hdCBpbnRlcm5hbF9mb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gdWNoYXJbXSBkYXRhKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZmlsZSAo c3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1h dCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIFRleHR1cmUu ZnJvbV9zdWJfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIGZ1bGxfdGV4dHVyZSwgaW50IHN1Yl94LCBp bnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBnZXRfY29t cG9uZW50cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9y bWF0LCB1aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlwdWJsaWMgQ29nbC5QaXhlbEZv cm1hdCBnZXRfZm9ybWF0ICgpOworLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZ2xfdGV4dHVyZSAo b3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0IHVpbnQgb3V0X2dsX3RhcmdldCk7CistCQlwdWJs aWMgdWludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGludCBnZXRfbWF4X3dhc3RlICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3By ZW11bHRpcGxpZWQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfcm93c3RyaWRlICgpOworLQkJcHVi bGljIHVpbnQgZ2V0X3dpZHRoICgpOworLQkJcHVibGljIENvZ2wuQm9vbCBpc19zbGljZWQgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x OCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zy b21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBD b2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJ cHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQg aGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQs IENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBk YXRhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBu ZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBD b2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNp bmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZm9y ZWlnbiAodWludCBnbF9oYW5kbGUsIHVpbnQgZ2xfdGFyZ2V0LCB1aW50IHdpZHRoLCB1aW50IGhl aWdodCwgdWludCB4X3BvdF93YXN0ZSwgdWludCB5X3BvdF93YXN0ZSwgQ29nbC5QaXhlbEZvcm1h dCBmb3JtYXQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLlRleHR1cmUgbmV3 X2Zyb21fc3ViX3RleHR1cmUgKGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3ViX3dpZHRoLCBp bnQgc3ViX2hlaWdodCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2ds LlRleHR1cmUgbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4 dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbXBvbmVudHMg KENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgY29tcG9uZW50cyk7CistCQlwdWJsaWMgQ29nbC5Cb29s IHNldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDgg ZGF0YSwgaW50IGxldmVsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfcHJlbXVsdGlwbGllZCAoQ29nbC5Cb29sIHBy ZW11bHRpcGxpZWQpOworLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9uIChpbnQgc3JjX3gs IGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50IGRz dF9oZWlnaHQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQs IHVpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3JlZ2lvbl9mcm9tX2JpdG1hcCAoaW50IHNyY194 LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWludCBk c3RfaGVpZ2h0LCBDb2dsLkJpdG1hcCBiaXRtYXApOworLQkJcHVibGljIFRleHR1cmUud2l0aF9z aXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENv Z2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgbG93ZXJfY2FzZV9jc3VmZml4ID0gInRleHR1cmVfMmQiLCB0 eXBlX2lkID0gImNvZ2xfdGV4dHVyZV8yZF9nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNz IFRleHR1cmUyRCA6IENvZ2wuT2JqZWN0LCBDb2dsLlRleHR1cmUgeworKwkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFRleHR1cmUyRCAoKTsK KysJCXB1YmxpYyB2b2lkIGVnbF9pbWFnZV9leHRlcm5hbF9hbGxvY19maW5pc2ggKHZvaWQqIHVz ZXJfZGF0YSwgR0xpYi5EZXN0cm95Tm90aWZ5IGRlc3Ryb3kpOworKwkJcHVibGljIHZvaWQgZWds X2ltYWdlX2V4dGVybmFsX2JpbmQgKCk7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisrCQlwdWJsaWMgVGV4 dHVyZTJELmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXApOworKwl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGxvd2VyX2Nhc2VfY3N1ZmZpeCA9ICJ0 ZXh0dXJlXzJkX3NsaWNlZCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlXzJkX3NsaWNlZF9nZXRf Z3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRleHR1cmUyRFNsaWNlZCA6IENvZ2wuT2JqZWN0 LCBDb2dsLlRleHR1cmUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorKwkJcHJvdGVjdGVkIFRleHR1cmUyRFNsaWNlZCAoKTsKKysJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2Iild CisrCQlwdWJsaWMgVGV4dHVyZTJEU2xpY2VkLmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBibXAs IGludCBtYXhfd2FzdGUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF92ZXJ0 ZXhfYnVmZmVyX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl91bnJl ZiIpXQorIAlbQ29tcGFjdF0KK0BAIC00NjgsNyArMzQ4LDcgQEAgbmFtZXNwYWNlIENvZ2wgewor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNv Z2xfZnJhbWVidWZmZXJfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgRnJhbWVi dWZmZXIgOiBDb2dsLk9iamVjdCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlw dWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGlj IGJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBjbGVhciAodWxvbmcgYnVmZmVycywgQ29nbC5Db2xv ciBjb2xvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNDg4LDYgKzM2OCw3 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBzdGF0aWMgdWludDMyIGVycm9yX3F1YXJr ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGZpbmlz aCAoKTsKKysJCXB1YmxpYyB2b2lkIGZsdXNoICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJCXB1YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBm bG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNDk1LDIyICszNzYsMTggQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRf Ymx1ZV9iaXRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENv Z2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5D b250ZXh0IGdldF9jb250ZXh0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJ cHVibGljIGludCBnZXRfZGVwdGhfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0 IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2RlcHRoX3RleHR1cmUgKCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRf ZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKCk7CisrCQlwdWJs aWMgYm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RpdGhlcl9lbmFibGVkICgpOworKwkJ cHVibGljIGJvb2wgZ2V0X2RpdGhlcl9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorIAkJcHVibGljIGludCBnZXRfZ3JlZW5fYml0cyAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBD b2dsLkJvb2wgZ2V0X2lzX3N0ZXJlbyAoKTsKKysJCXB1YmxpYyBib29sIGdldF9pc19zdGVyZW8g KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuTWF0cml4 IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K K0BAIC01NDcsMTIgKzQyNCwxMyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBw dXNoX21hdHJpeCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dm9pZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8y LCBmbG9hdCB5XzIpOworKwkJcHVibGljIHZvaWQgcHVzaF9yZWdpb25fY2xpcCAoQ2Fpcm8uUmVn aW9uIHJlZ2lvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZv aWQgcHVzaF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHJl YWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhl bEZvcm1hdCBmb3JtYXQsIHVpbnQ4IHBpeGVscyk7CisrCQlwdWJsaWMgYm9vbCByZWFkX3BpeGVs cyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQg Zm9ybWF0LCB1aW50OCBwaXhlbHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4LCBpbnQgeSwg Q29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXApOworKwkJcHVi bGljIGJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4LCBpbnQgeSwgQ29nbC5SZWFk UGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXApOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgcmVzb2x2ZV9zYW1wbGVzICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTU2MCwxOSArNDM4LDEzIEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByb3Rh dGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxl ciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBy b3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGlj IHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHks IGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF90ZXh0dXJlX2VuYWJs ZWQgKENvZ2wuQm9vbCBlbmFibGVkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCist CQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoQ29nbC5Cb29sIGRlcHRoX3dy aXRlX2VuYWJsZWQpOworKwkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKGJv b2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgdm9pZCBzZXRfZGl0aGVyX2VuYWJsZWQgKENvZ2wuQm9vbCBkaXRoZXJfZW5hYmxl ZCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZGl0aGVyX2VuYWJsZWQgKGJvb2wgZGl0aGVyX2VuYWJs ZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9t b2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KK0BAIC01ODgsNiArNDYwLDM5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0 IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIpXQor KwlwdWJsaWMgaW50ZXJmYWNlIFRleHR1cmUgOiBDb2dsLk9iamVjdCB7CisrCQlwdWJsaWMgYm9v bCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBzdGF0aWMgdWludDMy IGVycm9yX3F1YXJrICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1Ymxp YyBDb2dsLlRleHR1cmVDb21wb25lbnRzIGdldF9jb21wb25lbnRzICgpOworKwkJcHVibGljIGlu dCBnZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXT8gZGF0YSk7CisrCQlwdWJsaWMgYm9v bCBnZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0IHVpbnQgb3V0X2ds X3RhcmdldCk7CisrCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOworKwkJcHVibGljIGludCBn ZXRfbWF4X3dhc3RlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1Ymxp YyBib29sIGdldF9wcmVtdWx0aXBsaWVkICgpOworKwkJcHVibGljIHVpbnQgZ2V0X3dpZHRoICgp OworKwkJcHVibGljIGJvb2wgaXNfc2xpY2VkICgpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0 bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9m b3JtYXQpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJl IG5ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3Mg ZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFs X2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVp bnQ4W10gZGF0YSk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVibGljIHN0YXRpYyBDb2dsLlRl eHR1cmUgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBm bGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9y OworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTgiLCBzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fc3Vi X3RleHR1cmUgKGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3ViX3dpZHRoLCBpbnQgc3ViX2hl aWdodCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUg bmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdz IGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHZvaWQgc2V0X2NvbXBvbmVudHMgKENvZ2wuVGV4 dHVyZUNvbXBvbmVudHMgY29tcG9uZW50cyk7CisrCQlwdWJsaWMgYm9vbCBzZXRfZGF0YSAoQ29n bC5QaXhlbEZvcm1hdCBmb3JtYXQsIGludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCBsZXZlbCkgdGhyb3dzIEdMaWIuRXJyb3I7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHZvaWQgc2V0X3ByZW11bHRp cGxpZWQgKGJvb2wgcHJlbXVsdGlwbGllZCk7CisrCQlwdWJsaWMgYm9vbCBzZXRfcmVnaW9uIChp bnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRo LCB1aW50IGRzdF9oZWlnaHQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1h dCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g dWludDhbXSBkYXRhKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKysJCXB1YmxpYyBi b29sIHNldF9yZWdpb25fZnJvbV9iaXRtYXAgKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0 X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgQ29nbC5CaXRt YXAgYml0bWFwKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKyAJW1NpbXBsZVR5cGVdCisgCXB1YmxpYyBzdHJ1Y3QgQW5nbGUgOiBpbnQzMiB7CitA QCAtNjM1LDEwICs1NDAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBzZXRf Ymx1ZV9ieXRlICh1aW50OCBibHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0IChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBm bG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4 IGFscGhhKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAg LTY2Miw3ICs1NjMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgd2VhayBzdHJpbmcg bmFtZTsKKyAJCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3VudDsKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRS SVgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9m dW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIs IHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorIAlwdWJsaWMgc3RydWN0IE1hdHJpeCB7 CisgCQlwdWJsaWMgZmxvYXQgeHg7CisgCQlwdWJsaWMgZmxvYXQgeXg7CitAQCAtNjg5LDMyICs1 OTAsMjcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQg bGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIs IGZsb2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB1bm93bmVkIGZsb2F0W10gZ2V0X2FycmF5ICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfaW52 ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2UpOworKwkJcHVibGljIGJvb2wgZ2V0X2ludmVy c2UgKG91dCBDb2dsLk1hdHJpeCBpbnZlcnNlKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY29nbF9t YXRyaXhfaW5pdF9pZGVudGl0eSIpXQorIAkJcHVibGljIE1hdHJpeC5pZGVudGl0eSAoKTsKKy0J CXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlwdWJs aWMgdm9pZCBpbml0X2Zyb21fcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24p OworKwkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBpbml0X3RyYW5z bGF0aW9uIChmbG9hdCB0eCwgZmxvYXQgdHksIGZsb2F0IHR6KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgaXNfaWRlbnRpdHkgKCk7CisrCQlwdWJs aWMgYm9vbCBpc19pZGVudGl0eSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJ CXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlvbl94LCBmbG9hdCBleWVfcG9z aXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9iamVjdF94LCBmbG9hdCBvYmpl Y3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gsIGZsb2F0IHdvcmxkX3VwX3ks IGZsb2F0IHdvcmxkX3VwX3opOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9tdWx0 aXBseSIpXQorIAkJcHVibGljIE1hdHJpeC5tdWx0aXBseSAoQ29nbC5NYXRyaXggYSwgQ29nbC5N YXRyaXggYik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJp Z2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMg KGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwg ZmxvYXQgZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxv YXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHBy b2plY3RfcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBw b2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2lu dHMpOworIAkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQg eSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlv biBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVs ZXIgZXVsZXIpOworIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxv YXQgc3opOworLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgZmxvYXQgeCwgcmVm IGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisrCQlwdWJsaWMgc3RhdGljIHZv aWQgdHJhbnNmb3JtX3BvaW50IChyZWYgQ29nbC5NYXRyaXggbWF0cml4LCByZWYgZmxvYXQgeCwg cmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisgCQlwdWJsaWMgdm9pZCB0 cmFuc2Zvcm1fcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lk KiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9w b2ludHMpOworIAkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9h dCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtODAxLDE2ICs2OTcsNiBA QCBuYW1lc3BhY2UgQ29nbCB7CisgCQlXSU5ET1dfQlVGRkVSLAorIAkJT0ZGU0NSRUVOX0JVRkZF UgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9DT0xPUl9NQVNLXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3Nd CistCXB1YmxpYyBlbnVtIENvbG9yTWFzayB7CistCQlOT05FLAorLQkJUkVELAorLQkJR1JFRU4s CistCQlCTFVFLAorLQkJQUxQSEEsCistCQlBTEwKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfREVQVEhfVEVTVF9GVU5DVElP Tl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0gRGVwdGhUZXN0RnVuY3Rp b24geworIAkJTkVWRVIsCitAQCAtODIyLDQ2ICs3MDgsNDEgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJR0VRVUFMLAorIAkJQUxXQVlTCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9FR0xfSU1BR0VfRkxBR18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0Zs YWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCXB1YmxpYyBlbnVtIEZlYXR1cmVG bGFncyB7CistCQlURVhUVVJFX1JFQ1RBTkdMRSwKKy0JCVRFWFRVUkVfTlBPVCwKKy0JCVRFWFRV UkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKy0JCVNIQURFUlNfR0xTTCwKKy0JCU9G RlNDUkVFTiwKKy0JCU9GRlNDUkVFTl9NVUxUSVNBTVBMRSwKKy0JCU9GRlNDUkVFTl9CTElULAor LQkJRk9VUl9DTElQX1BMQU5FUywKKy0JCVNURU5DSUxfQlVGRkVSLAorLQkJVkJPUywKKy0JCVBC T1MsCistCQlVTlNJR05FRF9JTlRfSU5ESUNFUywKKy0JCURFUFRIX1JBTkdFLAorLQkJVEVYVFVS RV9OUE9UX0JBU0lDLAorLQkJVEVYVFVSRV9OUE9UX01JUE1BUCwKKy0JCVRFWFRVUkVfTlBPVF9S RVBFQVQsCistCQlQT0lOVF9TUFJJVEUsCistCQlURVhUVVJFXzNELAorLQkJTUFQX0JVRkZFUl9G T1JfUkVBRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1dSSVRFLAorLQkJT05TQ1JFRU5fTVVMVElQTEUs CistCQlERVBUSF9URVhUVVJFCisrCXB1YmxpYyBlbnVtIEVnbEltYWdlRmxhZ3MgeworKwkJTk9O RSwKKysJCU5PX0dFVF9EQVRBCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfSURfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBlbnVtIEZlYXR1 cmVJRCB7CisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9VTlNJR05FRF9JTlRf SU5ESUNFUyIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVU5TSUdORURfSU5UX0lORElDRVMsCisrCQlb Q0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFEIildCisr CQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFELAorKwkJW0NDb2RlIChjbmFtZSA9 ICJDT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfV1JJVEUiKV0KKysJCU9HTF9GRUFUVVJF X0lEX01BUF9CVUZGRVJfRk9SX1dSSVRFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRV UkVfSURfU1dBUF9CVUZGRVJTX0VWRU5UIildCisrCQlPR0xfRkVBVFVSRV9JRF9TV0FQX0JVRkZF UlNfRVZFTlQsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9QUkVTRU5UQVRJ T05fVElNRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUsCisrCQlbQ0Nv ZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9GRU5DRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURf RkVOQ0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHIild CisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dM X0ZFQVRVUkVfSURfQlVGRkVSX0FHRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSwK KysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1RFWFRVUkVfRUdMX0lNQUdFX0VY VEVSTkFMIildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTCwK KysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0JMSVRfRlJBTUVCVUZGRVIiKV0K KysJCU9HTF9GRUFUVVJFX0lEX0JMSVRfRlJBTUVCVUZGRVIKKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRklMVEVSXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBGaWx0ZXJSZXR1cm4geworIAkJQ09O VElOVUUsCisgCQlSRU1PVkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRk9HX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gRm9nTW9kZSB7 CistCQlMSU5FQVIsCistCQlFWFBPTkVOVElBTCwKKy0JCUVYUE9ORU5USUFMX1NRVUFSRUQKKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfRlJBTUVfRVZFTlRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBlbnVtIEZyYW1lRXZlbnQgeworQEAgLTg3NCw2ICs3 NTUsMTQgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJRlJBTUVCVUZGRVJfRVJST1JfQUxMT0NBVEU7 CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfR1JBUEhJQ1NfUkVT RVRfU1RBVFVTXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgZW51bSBHcmFwaGlj c1Jlc2V0U3RhdHVzIHsKKysJCU5PX0VSUk9SLAorKwkJR1VJTFRZX0NPTlRFWFRfUkVTRVQsCisr CQlJTk5PQ0VOVF9DT05URVhUX1JFU0VULAorKwkJVU5LTk9XTl9DT05URVhUX1JFU0VULAorKwkJ UFVSR0VEX0NPTlRFWFRfUkVTRVQKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfSU5ESUNFU19UWVBFX1VOU0lHTkVEXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBJbmRpY2VzVHlwZSB7CisgCQlCWVRF LAorQEAgLTkwMCwxMiArNzg5LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTkVBUkVTVF9NSVBN QVBfTElORUFSLAorIAkJTElORUFSX01JUE1BUF9MSU5FQVIKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfTEFZ RVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbExheWVyVHlwZSB7CistCQlbQ0NvZGUgKGNuYW1l ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFIildCistCQlNQVRFUklBTF9MQVlF Ul9UWVBFX1RFWFRVUkUKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVtIE1h dGVyaWFsV3JhcE1vZGUgeworQEAgLTk3MCw2ICs4NTMsMTAgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJQkdSQV8xMDEwMTAyLAorIAkJQVJHQl8yMTAxMDEwLAorIAkJQUJHUl8yMTAxMDEwLAorKwkJ UkdCQV9GUF8xNjE2MTYxNiwKKysJCUJHUkFfRlBfMTYxNjE2MTYsCisrCQlBUkdCX0ZQXzE2MTYx NjE2LAorKwkJQUJHUl9GUF8xNjE2MTYxNiwKKyAJCVJHQkFfODg4OF9QUkUsCisgCQlCR1JBXzg4 ODhfUFJFLAorIAkJQVJHQl84ODg4X1BSRSwKK0BAIC05ODAsOSArODY3LDE2IEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJCUJHUkFfMTAxMDEwMl9QUkUsCisgCQlBUkdCXzIxMDEwMTBfUFJFLAorIAkJ QUJHUl8yMTAxMDEwX1BSRSwKKysJCVJHQkFfRlBfMTYxNjE2MTZfUFJFLAorKwkJQkdSQV9GUF8x NjE2MTYxNl9QUkUsCisrCQlBUkdCX0ZQXzE2MTYxNjE2X1BSRSwKKysJCUFCR1JfRlBfMTYxNjE2 MTZfUFJFLAorIAkJREVQVEhfMTYsCisgCQlERVBUSF8zMiwKKy0JCURFUFRIXzI0X1NURU5DSUxf OAorKwkJREVQVEhfMjRfU1RFTkNJTF84OworKwkJcHVibGljIGludCBnZXRfYnl0ZXNfcGVyX3Bp eGVsIChpbnQgcGxhbmUpOworKwkJcHVibGljIGludCBnZXRfbl9wbGFuZXMgKCk7CisrCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRUFEX1BJWEVMU19DT0xP Ul8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0ZsYWdzXQorQEAgLTEwNDEsMTMgKzkzNSw2 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCU5PX1NMSUNJTkcsCisgCQlOT19BVExBUworIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9URVhUVVJFX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBlbnVtIFRleHR1cmVUeXBlIHsKKy0JCUAyRCwKKy0JCUAz RCwKKy0JCVJFQ1RBTkdMRQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9WRVJUSUNFU19NT0RFXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBlbnVtIFZlcnRp Y2VzTW9kZSB7CitAQCAtMTA2Nyw3ICs5NTQsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9XSU5T WVNfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0gV2luc3lz RmVhdHVyZSB7CisgCQlNVUxUSVBMRV9PTlNDUkVFTiwKKy0JCVNXQVBfVEhST1RUTEUsCisgCQlW QkxBTktfQ09VTlRFUiwKKyAJCVZCTEFOS19XQUlULAorIAkJVEVYVFVSRV9GUk9NX1BJWE1BUCwK K0BAIC0xMDgyLDkgKzk2OCwxMiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgRGVidWdPYmplY3RG b3JlYWNoVHlwZUNhbGxiYWNrIChDb2dsLkRlYnVnT2JqZWN0VHlwZUluZm8gaW5mbyk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIu OSldCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgTWF0ZXJp YWxMYXllckNhbGxiYWNrIChDb2dsLk1hdGVyaWFsIG1hdGVyaWFsLCBpbnQgbGF5ZXJfaW5kZXgp OworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9w b3MgPSAxLjkpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMC4xMCIpXQorKwlwdWJsaWMgZGVsZWdh dGUgdm9pZCBGZWF0dXJlQ2FsbGJhY2sgKENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAzLjkp XQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBG cmFtZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBDb2dsLkZyYW1lRXZlbnQgZXZl bnQsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNiIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlbkRpcnR5Q2FsbGJhY2sgKENv Z2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wuT25zY3JlZW5EaXJ0eUluZm8gaW5mbyk7CitAQCAt MTA5MiwxMiArOTgxLDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblJlc2l6ZUNhbGxiYWNrIChD b2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQor LQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblgxMU1hc2tDYWxsYmFjayAoQ29nbC5PbnNj cmVlbiBvbnNjcmVlbiwgdWludDMyIGV2ZW50X21hc2spOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgUGlwZWxpbmVMYXll ckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOworKwlw dWJsaWMgZGVsZWdhdGUgYm9vbCBQaXBlbGluZUxheWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxpbmUg cGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2 b2lkIFN3YXBCdWZmZXJzTm90aWZ5IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKKysJ cHVibGljIGRlbGVnYXRlIGJvb2wgVGV4dHVyZTJERUdMSW1hZ2VFeHRlcm5hbEFsbG9jIChDb2ds LlRleHR1cmUyRCB0ZXhfMmQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorIAlwdWJsaWMg ZGVsZWdhdGUgdm9pZCBVc2VyRGF0YURlc3Ryb3lDYWxsYmFjayAodm9pZCogZGF0YSk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfQUZJ UlNUX0JJVCIpXQorQEAgLTExMDgsNiArOTk1LDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlwdWJs aWMgY29uc3QgaW50IEJHUl9CSVQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQVEhfQklUIildCisgCXB1YmxpYyBjb25zdCBpbnQg REVQVEhfQklUOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj bmFtZSA9ICJDT0dMX1BJWEVMX0ZPUk1BVF9NQVhfUExBTkVTIildCisrCXB1YmxpYyBjb25zdCBp bnQgUElYRUxfRk9STUFUX01BWF9QTEFORVM7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUFJFTVVMVF9CSVQiKV0KKyAJcHVibGljIGNv bnN0IGludCBQUkVNVUxUX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY25hbWUgPSAiQ09HTF9TVEVOQ0lMX0JJVCIpXQorQEAgLTExMTUsMjEgKzEwMDQs MTIgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1RFWFRVUkVfTUFYX1dBU1RFIildCisgCXB1YmxpYyBj b25zdCBpbnQgVEVYVFVSRV9NQVhfV0FTVEU7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg YmVnaW5fZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4y IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNoZWNrX2V4dGVuc2lvbiAoc3RyaW5nIG5h bWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFyIChDb2dsLkNvbG9yIGNvbG9yLCB1 bG9uZyBidWZmZXJzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNsdXR0ZXJfY2hlY2tfZXh0ZW5zaW9uX0NM VVRURVIgKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKysJcHVibGljIHN0YXRpYyBib29sIGJs aXRfZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgc3JjLCBDb2dsLkZyYW1lYnVmZmVyIGRl c3QsIGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgaW50IHdpZHRo LCBpbnQgaGVpZ2h0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNsdXR0ZXJf d2luc3lzX2hhc19mZWF0dXJlX0NMVVRURVIgKENvZ2wuV2luc3lzRmVhdHVyZSBmZWF0dXJlKTsK KysJcHVibGljIHN0YXRpYyBib29sIGNsdXR0ZXJfd2luc3lzX2hhc19mZWF0dXJlX0NMVVRURVIg KENvZ2wuV2luc3lzRmVhdHVyZSBmZWF0dXJlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGlj IHN0YXRpYyBDb2dsLkJvb2wgY29sb3JfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CisrCXB1 YmxpYyBzdGF0aWMgYm9vbCBjb2xvcl9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBjb2xvcl9pbml0X2Zyb21faHNsIChv dXQgQ29nbC5Db2xvciBjb2xvciwgZmxvYXQgaHVlLCBmbG9hdCBzYXR1cmF0aW9uLCBmbG9hdCBs dW1pbmFuY2UpOworQEAgLTExNDMsMjM0ICsxMDIzLDg3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfb2Jq ZWN0X3ByaW50X2luc3RhbmNlcyAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxlX2ZvZyAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmRfZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBm ZWF0dXJlc19hdmFpbGFibGUgKENvZ2wuRmVhdHVyZUZsYWdzIGZlYXR1cmVzKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGZsdXNoICgpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjguMiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJv dHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGZvcmVhY2hfZmVhdHVyZSAo Q29nbC5Db250ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUNhbGxiYWNrIGNhbGxiYWNrKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgQ29nbC5Cb29sIGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKCk7CisrCXB1Ymxp YyBzdGF0aWMgYm9vbCBnZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkICgpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgZ2V0X2JpdG1hc2tzIChvdXQgaW50IHJlZCwgb3V0IGludCBncmVlbiwgb3V0IGludCBibHVl LCBvdXQgaW50IGFscGhhKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJcHVibGlj IHN0YXRpYyBpbnQ2NCBnZXRfY2xvY2tfdGltZSAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKysJcHVibGljIHN0YXRp YyBib29sIGdldF9kZXB0aF90ZXN0X2VuYWJsZWQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9kcmF3X2ZyYW1lYnVmZmVy ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVy ZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQor LQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworKwlw dWJsaWMgc3RhdGljIENvZ2wuR3JhcGhpY3NSZXNldFN0YXR1cyBnZXRfZ3JhcGhpY3NfcmVzZXRf c3RhdHVzIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIEdM aWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5DYWxsYmFjayBn ZXRfcHJvY19hZGRyZXNzIChzdHJpbmcgcyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9wcm9q ZWN0aW9uX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCogZ2V0X3NvdXJj ZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfdmlld3BvcnQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UpXSBvdXQgZmxvYXQgdls0XSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xOCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBndHlwZV9tYXRyaXhf Z2V0X3R5cGUgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9v bCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2JqZWN0KTsKKysJcHVibGljIHN0YXRpYyBib29sIGhh c19mZWF0dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlSUQgZmVhdHVyZSk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19vbnNjcmVl biAodm9pZCogb2JqZWN0KTsKKysJcHVibGljIHN0YXRpYyBib29sIGlzX2NvbnRleHQgKHZvaWQq IG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlz X3BpcGVsaW5lICh2b2lkKiBvYmplY3QpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJv b2wgaXNfdmVydGV4X2J1ZmZlcl9pbmRpY2VzIChDb2dsLkhhbmRsZSBoYW5kbGUpOworKwlwdWJs aWMgc3RhdGljIGJvb2wgaXNfZnJhbWVfaW5mbyAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgbWF0cml4X2VxdWFsICh2b2lkKiB2MSwg dm9pZCogdjIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0 LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0 IGZhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdnksIGZsb2F0IGFzcGVj dCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBwb2x5Z29uIChDb2dsLlRleHR1cmVWZXJ0ZXggdmVydGljZXMsIHVpbnQg bl92ZXJ0aWNlcywgQ29nbC5Cb29sIHVzZV9jb2xvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX21hdHJp eCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfc291cmNlICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHB1c2hfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hf c291cmNlICh2b2lkKiBtYXRlcmlhbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlIChmbG9hdCB4XzEs IGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfbXVsdGl0ZXh0dXJlX2Nvb3JkcyAoZmxv YXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhfY29vcmRzX2xlbik7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF90ZXh0dXJl X2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIGZsb2F0IHR4 MSwgZmxvYXQgdHkxLCBmbG9hdCB0eDIsIGZsb2F0IHR5Mik7CisrCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2Jq ZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXMg KFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVj dHMpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wg aXNfb25zY3JlZW4gKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44LjYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHJlY3RhbmdsZXNfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9yZWN0cyk7CisrCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX3BpcGVsaW5lICh2 b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgs IGZsb2F0IHksIGZsb2F0IHopOworKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdGV4dHVyZV8yZCAo dm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxv YXQgeik7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9v bCBpc190ZXh0dXJlXzJkX3NsaWNlZCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf YmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CisrCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKysJcHVibGljIHN0YXRpYyBib29sIG1hdHJpeF9lcXVhbCAodm9p ZCogdjEsIHZvaWQqIHYyKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChD b2dsLkJvb2wgc2V0dGluZyk7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3Vs bGluZ19lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9mb2cgKENvZ2wu Q29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQgZGVuc2l0eSwgZmxvYXQg el9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVz dF9lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9tb2RlbHZpZXdfbWF0 cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworKwlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3RyYWNp bmdfZGlzYWJsZWRfb25fdGhyZWFkICh2b2lkKiBkYXRhKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfcHJv amVjdGlvbl9tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgc2V0X3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworKwlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X3RyYWNpbmdfZW5hYmxlZF9vbl90aHJlYWQgKHZvaWQqIGRhdGEsIHN0cmluZyBncm91 cCwgc3RyaW5nIGZpbGVuYW1lKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291 cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUs IGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2Nv bG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV90ZXh0dXJlIChDb2dsLlRl eHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdmlld3BvcnQg KGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFk ZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgc3RyaW5nIHNoYWRlcl9n ZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBz ZXRfdHJhY2luZ19lbmFibGVkX29uX3RocmVhZF93aXRoX2ZkICh2b2lkKiBkYXRhLCBzdHJpbmcg Z3JvdXAsIGludCBmZCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuU2hhZGVyVHlwZSBzaGFkZXJfZ2V0X3R5cGUg KENvZ2wuSGFuZGxlIGhhbmRsZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBzaGFkZXJfaXNfY29tcGls ZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgc2hh ZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfc291cmNl IChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0cmluZyBzb3VyY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRl cl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgQ29n bC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENv Z2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0g IjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2Rh dGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wu UGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50 IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CisrCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRl eHR1cmVfbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVG bGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50 ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNl KV0gdWludDhbXSBkYXRhKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRl eHR1cmVfbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBm bGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9y OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9 ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9m b3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVpbnQg aGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVsRm9y bWF0IGZvcm1hdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x OCIsIHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJl X25ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFn cyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHZlcnRleF9idWZmZXJfYWRkIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVf bmFtZSwgdWludDggbl9jb21wb25lbnRzLCBDb2dsLkF0dHJpYnV0ZVR5cGUgdHlwZSwgQ29nbC5C b29sIG5vcm1hbGl6ZWQsIHVpbnQxNiBzdHJpZGUsIHZvaWQqIHBvaW50ZXIpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHZlcnRleF9idWZmZXJfZGVsZXRlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRy aWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kaXNhYmxlIChDb2dsLkhh bmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4 X2J1ZmZlcl9kcmF3IChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUs IGludCBmaXJzdCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXdf ZWxlbWVudHMgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01vZGUgbW9kZSwgQ29n bC5IYW5kbGUgaW5kaWNlcywgaW50IG1pbl9pbmRleCwgaW50IG1heF9pbmRleCwgaW50IGluZGlj ZXNfb2Zmc2V0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZW5hYmxl IChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVp bnQgdmVydGV4X2J1ZmZlcl9nZXRfbl92ZXJ0aWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X2Zvcl9x dWFkcyAodWludCBuX2luZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkluZGljZXNUeXBlIHZlcnRleF9i dWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNlcyk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVu b3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9uZXcgKHVpbnQgbl92ZXJ0aWNlcyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX3JlZiAoQ29nbC5IYW5kbGUg aGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3N1Ym1pdCAoQ29nbC5IYW5kbGUg aGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhh bmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2lu Y2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZpZXdwb3J0ICh1aW50IHdpZHRo LCB1aW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3Zpc3VhbF94aWQg KENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0 YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF93aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVuIG9u c2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHgxMV9vbnNj cmVlbl9zZXRfZm9yZWlnbl93aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50 MzIgeGlkLCBbQ0NvZGUgKHNjb3BlID0gImFzeW5jIildIENvZ2wuT25zY3JlZW5YMTFNYXNrQ2Fs bGJhY2sgdXBkYXRlKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvcG9sa2l0LWdvYmplY3QtMS52YXBp IHZhcGkvcG9sa2l0LWdvYmplY3QtMS52YXBpCitpbmRleCA5M2VmZjhhNS4uZmVkYzZhNGEgMTAw NjQ0CistLS0gdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkKKysrKyB2YXBpL3BvbGtpdC1nb2Jq ZWN0LTEudmFwaQorQEAgLTcsNyArNyw3IEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEFjdGlvbkRl c2NyaXB0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9hY3Rpb25faWQgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Fubm90YXRpb24gKHN0cmluZyBrZXkpOwor KwkJcHVibGljIHVub3duZWQgc3RyaW5nPyBnZXRfYW5ub3RhdGlvbiAoc3RyaW5nIGtleSk7Cisg CQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0 cnVlKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZ1tdIGdldF9hbm5vdGF0aW9uX2tleXMgKCk7 CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgpOworQEAgLTM0LDcg KzM0LDcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCQlwdWJsaWMgUG9sa2l0LkF1dGhvcml0eUZl YXR1cmVzIGdldF9iYWNrZW5kX2ZlYXR1cmVzICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF9iYWNrZW5kX25hbWUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2JhY2tl bmRfdmVyc2lvbiAoKTsKKy0JCXB1YmxpYyBzdHJpbmcgZ2V0X293bmVyICgpOworKwkJcHVibGlj IHN0cmluZz8gZ2V0X293bmVyICgpOworIAkJcHVibGljIHN0YXRpYyBQb2xraXQuQXV0aG9yaXR5 IGdldF9zeW5jIChHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBH TGliLkVycm9yOworIAkJcHVibGljIGFzeW5jIGJvb2wgcmVnaXN0ZXJfYXV0aGVudGljYXRpb25f YWdlbnQgKFBvbGtpdC5TdWJqZWN0IHN1YmplY3QsIHN0cmluZyBsb2NhbGUsIHN0cmluZyBvYmpl Y3RfcGF0aCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9y OworIAkJcHVibGljIGJvb2wgcmVnaXN0ZXJfYXV0aGVudGljYXRpb25fYWdlbnRfc3luYyAoUG9s a2l0LlN1YmplY3Qgc3ViamVjdCwgc3RyaW5nIGxvY2FsZSwgc3RyaW5nIG9iamVjdF9wYXRoLCBH TGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOwor QEAgLTU2LDIxICs1NiwyMiBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJcHVibGljIGNsYXNzIEF1 dGhvcml6YXRpb25SZXN1bHQgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgQXV0aG9yaXphdGlvblJlc3VsdCAoYm9v bCBpc19hdXRob3JpemVkLCBib29sIGlzX2NoYWxsZW5nZSwgUG9sa2l0LkRldGFpbHM/IGRldGFp bHMpOworLQkJcHVibGljIHVub3duZWQgUG9sa2l0LkRldGFpbHMgZ2V0X2RldGFpbHMgKCk7Cisr CQlwdWJsaWMgdW5vd25lZCBQb2xraXQuRGV0YWlscz8gZ2V0X2RldGFpbHMgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMC4xMDEiKV0KKyAJCXB1YmxpYyBib29sIGdldF9kaXNtaXNzZWQgKCk7 CisgCQlwdWJsaWMgYm9vbCBnZXRfaXNfYXV0aG9yaXplZCAoKTsKKyAJCXB1YmxpYyBib29sIGdl dF9pc19jaGFsbGVuZ2UgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfcmV0YWluc19hdXRob3JpemF0 aW9uICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90ZW1wb3JhcnlfYXV0aG9yaXph dGlvbl9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZz8gZ2V0X3RlbXBvcmFyeV9hdXRo b3JpemF0aW9uX2lkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xr aXQvcG9sa2l0LmgiLCB0eXBlX2lkID0gInBvbGtpdF9kZXRhaWxzX2dldF90eXBlICgpIildCisg CXB1YmxpYyBjbGFzcyBEZXRhaWxzIDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIERldGFpbHMgKCk7CisgCQlbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0K Ky0JCXB1YmxpYyBzdHJpbmdbXSBnZXRfa2V5cyAoKTsKKysJCXB1YmxpYyBzdHJpbmdbXT8gZ2V0 X2tleXMgKCk7CisgCQlwdWJsaWMgdm9pZCBpbnNlcnQgKHN0cmluZyBrZXksIHN0cmluZz8gdmFs dWUpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGxvb2t1cCAoc3RyaW5nIGtleSk7CisrCQlw dWJsaWMgdW5vd25lZCBzdHJpbmc/IGxvb2t1cCAoc3RyaW5nIGtleSk7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIHR5cGVfaWQgPSAicG9sa2l0 X3Blcm1pc3Npb25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFBlcm1pc3Npb24gOiBH TGliLlBlcm1pc3Npb24sIEdMaWIuQXN5bmNJbml0YWJsZSwgR0xpYi5Jbml0YWJsZSB7CitAQCAt ODgsNyArODksOCBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTeXN0ZW1CdXNOYW1lICgpOworIAkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVibGljIFBvbGtpdC5TdWJq ZWN0IGdldF9wcm9jZXNzX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVs bCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgUG9sa2l0LlN1YmplY3Q/IGdldF9wcm9j ZXNzX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdM aWIuRXJyb3I7CisrCQlwdWJsaWMgUG9sa2l0LlVuaXhVc2VyPyBnZXRfdXNlcl9zeW5jIChHTGli LkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOworIAkJ cHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVjdCBAbmV3IChzdHJpbmcgbmFtZSk7CisgCQlwdWJs aWMgdm9pZCBzZXRfbmFtZSAoc3RyaW5nIG5hbWUpOworIAkJcHVibGljIHN0cmluZyBuYW1lIHsg Z2V0OyBzZXQgY29uc3RydWN0OyB9CitAQCAtMTQ2LDkgKzE0OCwxMCBAQCBuYW1lc3BhY2UgUG9s a2l0IHsKKyAJCXByb3RlY3RlZCBVbml4U2Vzc2lvbiAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfc2Vzc2lvbl9pZCAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgUG9sa2l0LlN1YmplY3Qg QG5ldyAoc3RyaW5nIHNlc3Npb25faWQpOworLQkJcHVibGljIHN0YXRpYyBhc3luYyBQb2xraXQu U3ViamVjdCBuZXdfZm9yX3Byb2Nlc3MgKGludCBwaWQsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNl bGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCXB1YmxpYyBzdGF0aWMgUG9sa2l0LlN1Ympl Y3QgbmV3X2Zvcl9wcm9jZXNzX3N5bmMgKGludCBwaWQsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNl bGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgc3RhdGljIGFzeW5j IFBvbGtpdC5TdWJqZWN0PyBuZXdfZm9yX3Byb2Nlc3MgKGludCBwaWQsIEdMaWIuQ2FuY2VsbGFi bGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBzdGF0aWMgUG9s a2l0LlN1YmplY3Q/IG5ld19mb3JfcHJvY2Vzc19zeW5jIChpbnQgcGlkLCBHTGliLkNhbmNlbGxh YmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIHZv aWQgc2V0X3Nlc3Npb25faWQgKHN0cmluZyBzZXNzaW9uX2lkKTsKKysJCVtOb0FjY2Vzc29yTWV0 aG9kXQorIAkJcHVibGljIGludCBwaWQgeyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzdHJpbmcg c2Vzc2lvbl9pZCB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAl9CitAQCAtMTU2LDE3ICsxNTks MTcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCXB1YmxpYyBjbGFzcyBVbml4VXNlciA6IEdMaWIu T2JqZWN0LCBQb2xraXQuSWRlbnRpdHkgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFVuaXhVc2VyICgpOworLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9uYW1lICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nPyBnZXRfbmFt ZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3VpZCAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgUG9sa2l0 LklkZW50aXR5IEBuZXcgKGludCB1aWQpOworLQkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRp dHkgbmV3X2Zvcl9uYW1lIChzdHJpbmcgbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJs aWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eT8gbmV3X2Zvcl9uYW1lIChzdHJpbmcgbmFtZSkgdGhy b3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgdm9pZCBzZXRfdWlkIChpbnQgdWlkKTsKKyAJCXB1 YmxpYyBpbnQgdWlkIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIHR5cGVfaWQgPSAicG9sa2l0X2lkZW50 aXR5X2dldF90eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgSWRlbnRpdHkgOiBHTGliLk9i amVjdCB7CisgCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBlcXVhbCAoUG9sa2l0LklkZW50aXR5IGIp OworLQkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgZnJvbV9zdHJpbmcgKHN0cmluZyBz dHIpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHk/ IGZyb21fc3RyaW5nIChzdHJpbmcgc3RyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyBh YnN0cmFjdCB1aW50IGhhc2ggKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgc3RyaW5nIHRvX3N0cmlu ZyAoKTsKKyAJfQorQEAgLTIwMSw3ICsyMDQsNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCUFE TUlOSVNUUkFUT1JfQVVUSEVOVElDQVRJT05fUkVRVUlSRURfUkVUQUlORUQsCisgCQlBVVRIT1JJ WkVEOworIAkJcHVibGljIHN0YXRpYyBib29sIGZyb21fc3RyaW5nIChzdHJpbmcgc3RyaW5nLCBQ b2xraXQuSW1wbGljaXRBdXRob3JpemF0aW9uIG91dF9pbXBsaWNpdF9hdXRob3JpemF0aW9uKTsK Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nIChQb2xraXQuSW1wbGlj aXRBdXRob3JpemF0aW9uIGltcGxpY2l0X2F1dGhvcml6YXRpb24pOworKwkJcHVibGljIHVub3du ZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAicG9sa2l0L3BvbGtpdC5oIiwgY3ByZWZpeCA9ICJQT0xLSVRfRVJST1JfIildCisgCXB1Ymxp YyBlcnJvcmRvbWFpbiBFcnJvciB7CitAQCAtMjEyLDcgKzIxNSw3IEBAIG5hbWVzcGFjZSBQb2xr aXQgeworIAkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOworIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiKV0KKy0JcHVibGljIHN0YXRp YyBQb2xraXQuSWRlbnRpdHkgaWRlbnRpdHlfZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93 cyBHTGliLkVycm9yOworKwlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eT8gaWRlbnRpdHlf ZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIildCisgCXB1YmxpYyBzdGF0aWMgUG9s a2l0LlN1YmplY3Qgc3ViamVjdF9mcm9tX3N0cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdMaWIu RXJyb3I7CisgfQorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9idWRnaWUtZGVz a3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUKaW5kZXggYjMy ZTc3MzRkM2IuLmFlNWE5ZDVmNzY5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9w L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdidWRnaWUtZGVza3RvcCcKIHBrZ25hbWU9YnVk Z2llLWRlc2t0b3AKIHZlcnNpb249MTAuNS4xCi1yZXZpc2lvbj0zCityZXZpc2lvbj00CiBidWls ZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPWdpcgogY29uZmlndXJlX2FyZ3M9Ii1Ed2l0aC1n dGstZG9jPWZhbHNlIC1Ed2l0aC1kZXNrdG9wLWljb25zPW5vbmUiCgpGcm9tIDRjZGVhMTczYjYz ZTAxOWFmMGJkNjAxZDA1ZWRjNmRhNWJiMGM5MTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDE3IFNl cCAyMDIwIDA2OjIzOjU5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMDEvMTA1XSBOZXcgcGFja2Fn ZTogZ25vbWUtY29yZS0zLjM2LjAKCi0tLQogc3JjcGtncy9nbm9tZS1jb3JlL3RlbXBsYXRlIHwg NTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQs IDU0IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLWNvcmUv dGVtcGxhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNvcmUvdGVtcGxhdGUgYi9zcmNw a2dzL2dub21lLWNvcmUvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjAzNzQ5N2NjYjU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1jb3Jl L3RlbXBsYXRlCkBAIC0wLDAgKzEsNTQgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWNv cmUnCitwa2duYW1lPWdub21lLWNvcmUKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCitidWls ZF9zdHlsZT1tZXRhCitzaG9ydF9kZXNjPSJHTk9NRSBtZXRhLXBhY2thZ2UgZm9yIFZvaWQgTGlu dXggLSBjb3JlIGNvbXBvbmVudHMiCittYWludGFpbmVyPSJxNjYgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb25seSwgTEdQTC0yLjAtb25seSIKK2hvbWVwYWdlPSJo dHRwczovL3d3dy5nbm9tZS5vcmciCisKK2RlcGVuZHM9IgorIGFkd2FpdGEtaWNvbi10aGVtZT49 My4zOC4wCisgYXQtc3BpMi1jb3JlPj0yLjM4LjAKKyBhdC1zcGkyLWF0az49Mi4zOC4wCisgY2Fu dGFyZWxsLWZvbnRzPj0wLjIwMQorIGNhcmlib3U+PTAuNC4yMQorIGRjb25mPj0wLjM2LjAKKyBl dm9sdXRpb24tZGF0YS1zZXJ2ZXI+PTMuMzguMAorIGZvbGtzPj0wLjE0LjAKKyBmb250LWFkb2Jl LXNvdXJjZS1jb2RlLXBybz49Mi4wMzBSCisgZ2NyPj0zLjM2LjAKKyBnZG0+PTMuMzguMAorIGdl b2NvZGUtZ2xpYj49My4yNi4wCisgZ2ZiZ3JhcGg+PTAuMi40CisgZ2pzPj0xLjY2LjAKKyBnbGli Pj0yLjY2LjAKKyBnbGliLW5ldHdvcmtpbmc+PTIuNjYuMAorIGdtaW1lMz49My4yLjcKKyBnbm9t ZS1iYWNrZ3JvdW5kcz49My4zOC4wCisgZ25vbWUtYmx1ZXRvb3RoPj0zLjM0LjEKKyBnbm9tZS1j b2xvci1tYW5hZ2VyPj0zLjM2LjAKKyBnbm9tZS1jb250cm9sLWNlbnRlcj49My4zOC4wCisgZ25v bWUtZGVza3RvcD49My4zOC4wCisgZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3M+PTMuMzYuMgor IGdub21lLWluaXRpYWwtc2V0dXA+PTMuMzguMAorIGdub21lLWtleXJpbmc+PTMuMzYuMAorIGdu b21lLW9ubGluZS1hY2NvdW50cz49My4zNy45MAorIGdub21lLW9ubGluZS1taW5lcnM+PTMuMzQu MAorIGdub21lLXNlc3Npb24+PTMuMzguMAorIGdub21lLXNldHRpbmdzLWRhZW1vbj49My4zOC4w CisgZ25vbWUtc2hlbGw+PTMuMzguMAorIGdub21lLXNoZWxsLWV4dGVuc2lvbnM+PTMuMzguMAor IGdub21lLXRoZW1lcy1zdGFuZGFyZD49My4yOAorIGdub21lLXVzZXItZG9jcz49My4zOC4wCisg Z25vbWUtdmlkZW8tZWZmZWN0cz49MC41LjAKKyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzPj0z LjM4LjAKKyBndmZzPj0xLjQ2LjAKKyBtdXR0ZXI+PTMuMzguMAorIG5hdXRpbHVzPj0zLjM4LjAK KyBzdXNoaT49My4zNC4wCisgdHJhY2tlcjM+PTMuMC4wCisgeWVscD49My4zOC4wCisgeGRnLWRl c2t0b3AtcG9ydGFsLWd0az49MS44LjAKKyB6ZW5pdHk+PTMuMzIuMCIKCkZyb20gMTEzNmFhZTNl YmUzMzJhMjhmZTE3ZTdjYjI5YzMyMDJmYjU5OTJlMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcg U2VwIDIwMjAgMDY6MjQ6MDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDEwMi8xMDVdIGdub21lOiB1 cGRhdGUgdG8gMy4zOC4wCgpbY2kgc2tpcF0KLS0tCiBzcmNwa2dzL2dub21lL3RlbXBsYXRlIHwg MjQzICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgODEgaW5zZXJ0aW9ucygrKSwgMTYyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ25vbWUvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lL3RlbXBsYXRlCmluZGV4IDllN2I2 YzIxMzM2Li5kZDI0N2NmOTMwNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2dub21lL3RlbXBsYXRlCkBAIC0xLDE4MSArMSwxMDAgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2dub21lJwogcGtnbmFtZT1nbm9tZQotdmVyc2lvbj0zLjMyLjAKLXJldmlz aW9uPTMKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXRhCiBzaG9y dF9kZXNjPSJHTk9NRSBtZXRhLXBhY2thZ2UgZm9yIFZvaWQgTGludXgiCiBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vbmx5 LCBMR1BMLTIuMC1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3Lmdub21lLm9yZyIKIAotZGVw ZW5kcz0iTmV0d29ya01hbmFnZXI+PTEuMTQuMF8xCi0gYWR3YWl0YS1pY29uLXRoZW1lPj0zLjMy LjAKLSBhdC1zcGkyLWF0az49Mi4zMi4wCi0gYXQtc3BpMi1jb3JlPj0yLjMyLjAKLSBhdGs+PTIu MzIuMAotIGF0a21tPj0yLjI0LjIKLSBjYWlyb21tPj0xLjEyLjJfMgotIGNhbnRhcmVsbC1mb250 cz49MC4wLjI1Ci0gY2FyaWJvdT49MC40LjIxCi0gY2hyb21lLWdub21lLXNoZWxsPj0xMC4wLjAK LSBjbHV0dGVyPj0xLjI2LjIKLSBjbHV0dGVyLWdzdDM+PTMuMC4yNAotIGNsdXR0ZXItZ3RrPj0x LjguNAotIGNvZ2w+PTEuMjIuMgotIGRjb25mPj0wLjMwLjAKLSBlb2c+PTMuMzIuMAotIGV2aW5j ZT49My4zMi4wCi0gZXZvbHV0aW9uLWRhdGEtc2VydmVyPj0zLjMyLjAKLSBmaWxlLXJvbGxlcj49 My4zMi4wCi0gZm9sa3M+PTAuMTEuNAotIGZvbnQtYWRvYmUtc291cmNlLWNvZGUtcHJvPj0yLjAz MFIKLSBnY2FiPj0wLjcKLSBnY3I+PTMuMjguMAotIGdkay1waXhidWY+PTIuMzguMAotIGdkbT49 My4zMi4wCi0gZ2VvY29kZS1nbGliPj0zLjI2LjBfMQotIGdmYmdyYXBoPj0wLjIuMwotIGdqcz49 MS41Ni4wCi0gZ2xpYj49Mi42MC4wCi0gZ2xpYi1uZXR3b3JraW5nPj0yLjYwLjAKLSBnbGlibW0+ PTIuNjAuMAotIGdtaW1lPj0yLjYuMjMKLSBnbm9tZS1iYWNrZ3JvdW5kcz49My4zMi4wCi0gZ25v bWUtYmx1ZXRvb3RoPj0zLjMyLjAKLSBnbm9tZS1jb2xvci1tYW5hZ2VyPj0zLjMyLjAKLSBnbm9t ZS1jb250cm9sLWNlbnRlcj49My4zMi4wCi0gZ25vbWUtZGVza3RvcD49My4zMi4wCi0gZ25vbWUt Z2V0dGluZy1zdGFydGVkLWRvY3M+PTMuMzIuMAotIGdub21lLWluaXRpYWwtc2V0dXA+PTMuMzIu MAotIGdub21lLWtleXJpbmc+PTMuMjguMQotIGdub21lLW9ubGluZS1hY2NvdW50cz49My4zMi4w Ci0gZ25vbWUtb25saW5lLW1pbmVycz49My4zMC4wCi0gZ25vbWUtc2Vzc2lvbj49My4zMi4wCi0g Z25vbWUtc2V0dGluZ3MtZGFlbW9uPj0zLjMyLjAKLSBnbm9tZS1zaGVsbD49My4zMi4wCi0gZ25v bWUtc2hlbGwtZXh0ZW5zaW9ucz49My4zMi4wCi0gZ25vbWUtdGhlbWVzLXN0YW5kYXJkPj0zLjIy LjMKLSBnbm9tZS10d2Vha3M+PTMuMzIuMAotIGdub21lLXVzZXItZG9jcz49My4zMi4wCi0gZ25v bWUtdmlkZW8tZWZmZWN0cz49MC40LjMKLSBnb2JqZWN0LWludHJvc3BlY3Rpb24+PTEuNjAuMAot IGdvbT49MC4zLjJfMQotIGdyaWxvPj0wLjMuNAotIGdyaWxvLXBsdWdpbnM+PTAuMy41Ci0gZ3Nl dHRpbmdzLWRlc2t0b3Atc2NoZW1hcz49My4zMi4wCitkZXBlbmRzPSIKKyBnbm9tZS1jb3JlPj0k e3ZlcnNpb259CisgYmFvYmFiPj0zLjM4LjAKKyBjaGVlc2U+PTMuMzguMAorIGVvZz49My4zOC4w CisgZXZpbmNlPj0zLjM4LjAKKyBmaWxlLXJvbGxlcj49My4zOC4wCisgZ2VkaXQ+PTMuMzguMAor IGdub21lLWNhbGN1bGF0b3I+PTMuMzguMAorIGdub21lLWNhbGVuZGFyPj0zLjM4LjAKKyBnbm9t ZS1jaGFyYWN0ZXJzPj0zLjM0LjAKKyBnbm9tZS1jbG9ja3M+PTMuMzguMAorIGdub21lLWNvbnRh Y3RzPj0zLjM3LjIKKyBnbm9tZS1kaXNrLXV0aWxpdHk+PTMuMzguMAorIGdub21lLWZvbnQtdmll d2VyPj0zLjM0LjAKKyBnbm9tZS1tYXBzPj0zLjM4LjAKKyBnbm9tZS1tdXNpYz49My4zOC4wCisg Z25vbWUtc2NyZWVuc2hvdD49My4zOC4wCisgZ25vbWUtc3lzdGVtLW1vbml0b3I+PTMuMzguMAor IGdub21lLXRlcm1pbmFsPj0zLjM4LjAKKyBnbm9tZS10d2Vha3M+PTMuMzQuMAorIGdub21lLXdl YXRoZXI+PTMuMzYuMQogIGdzb3VuZD49MS4wLjIKLSBnc3BlbGw+PTEuOC4wCi0gZ3NzZHA+PTEu MC4yCi0gZ3RrKzM+PTMuMjQuMAotIGd0a21tPj0zLjIyLjEKLSBndGtzb3VyY2V2aWV3Pj0zLjI0 LjQKLSBndXBucD49MS4wLjIKLSBndXBucC1hdj49MC4xMi4xMAotIGd1cG5wLWRsbmE+PTAuMTAu NQotIGd1cG5wLWlnZD49MC4yLjQKLSBndmZzPj0xLjQwLjAKLSBqc29uLWdsaWI+PTEuNC4yCi0g bGliY3JvY28+PTAuNi4xMgotIGxpYmdkYXRhPj0wLjE2LjFfMgotIGxpYmdlZTA4Pj0wLjIwLjAK LSBsaWJnZXB1Yj49MC40XzEKLSBsaWJnbm9tZWtiZD49My4yNi4wCi0gbGliZ3NmPj0xLjE0LjQx Ci0gbGliZ3RvcD49Mi40MC4wCi0gbGliZ3dlYXRoZXI+PTMuMzIuMAotIGxpYmd4cHM+PTAuMi41 XzEKLSBsaWJtZWRpYWFydD49MS45LjQKLSBsaWJub3RpZnk+PTAuNy42XzQKLSBsaWJwZWFzPj0x LjIyLjAKLSBsaWJyc3ZnPj0yLjQ0LjAKLSBsaWJzZWNyZXQ+PTAuMTguNQotIGxpYnNpZ2MrKz49 Mi4xMC4wCi0gbGlic291cD49Mi42MC4wCi0gbGlieG1sMj49Mi42LjMwCi0gbGlieHNsdD49MS4x LjIyCi0gbGliemFwb2ppdD49MC4wLjMKLSBtbS1jb21tb24+PTAuOS4xMF8yCi0gbW91c2V0d2Vh a3M+PTMuMTIuMAotIG11dHRlcj49My4zMi4wCi0gbmF1dGlsdXM+PTMuMzIuMAorIGdzcGVsbD49 MS44LjMKKyBtb3VzZXR3ZWFrcz49My4zMi4wCiAgbmV0d29yay1tYW5hZ2VyLWFwcGxldD49MS44 LjIKLSBvcmNhPj0zLjMyLjAKLSBwYW5nbz49MS40Mi4wCi0gcGFuZ29tbT49Mi40MC4xCi0gcGhv ZGF2Pj0yLjIKLSBweXRob24tYXRzcGk+PTIuMjYuMAotIHB5dGhvbi1nb2JqZWN0Pj0zLjI2LjAK LSByZXN0Pj0wLjguMAotIHRyYWNrZXI+PTIuMC4wCi0gdmFsYT49MC40NC4wCi0gdnRlMz49MC41 NC4wCi0geWVscD49My4zMi4wCi0geWVscC10b29scz49My4zMi4wCi0geWVscC14c2w+PTMuMzIu MAotIHplbml0eT49My4zMi4wIgorIG9yY2E+PTMuMzguMAorIHBob2Rhdj49Mi41Cisgc2ltcGxl LXNjYW4+PTMuMzguMAorIHRvdGVtPj0zLjM4LjAKKyB5ZWxwLXRvb2xzPj0zLjM4LjAiCiAKLV9h cHBzX2RlcGVuZHM9ImJhb2JhYj49My4zMi4wCi0gY2hlZXNlPj0zLjMyLjAKLSBkY29uZi1lZGl0 b3I+PTMuMzIuMAotIGRldmhlbHA+PTMuMzIuMAotIGVwaXBoYW55Pj0zLjMyLjAKLSBldm9sdXRp b24+PTMuMzIuMAotIGdoZXg+PTMuMTguMwotIGdpdGc+PTMuMjYuMAotIGdlZGl0Pj0zLjMyLjAK LSBnZWRpdC1wbHVnaW5zPj0zLjMyLjAKLSBnbm9tZS1ib3hlcz49My4zMi4wCi0gZ25vbWUtYnVp bGRlcj49My4zMi4wCi0gZ25vbWUtY2FsY3VsYXRvcj49My4zMi4wCi0gZ25vbWUtY2FsZW5kYXI+ PTMuMzIuMAotIGdub21lLWNoYXJhY3RlcnM+PTMuMzIuMAotIGdub21lLWNsb2Nrcz49My4zMi4w Ci0gZ25vbWUtZGljdGlvbmFyeT49My4yNi4wCi0gZ25vbWUtZGlzay11dGlsaXR5Pj0zLjMyLjAK LSBnbm9tZS1kb2N1bWVudHM+PTMuMzIuMAotIGdub21lLWZvbnQtdmlld2VyPj0zLjMyLjAKLSBn bm9tZS1tYXBzPj0zLjMyLjAKLSBnbm9tZS1tdXNpYz49My4zMi4wCitfYXBwc19kZXBlbmRzPSIK KyBiaWppYmVuPj0zLjM2LjMKKyBkY29uZi1lZGl0b3I+PTMuMzguMAorIGRldmhlbHA+PTMuMzgu MAorIGVwaXBoYW55Pj0zLjM4LjAKKyBldm9sdXRpb24+PTMuMzguMAorIGdoZXg+PTMuMTguNAor IGdpdGc+PTMuMzIuMQorIGdlZGl0LXBsdWdpbnM+PTMuMzguMAorIGdub21lLWJveGVzPj0zLjM4 LjAKKyBnbm9tZS1idWlsZGVyPj0zLjM4LjAKKyBnbm9tZS1jYWxjdWxhdG9yPj0zLjM4LjAKKyBn bm9tZS1jYWxlbmRhcj49My4zOC4wCisgZ25vbWUtY2hhcmFjdGVycz49My4zNC4wCisgZ25vbWUt Y2xvY2tzPj0zLjM4LjAKKyBnbm9tZS1kaWN0aW9uYXJ5Pj0zLjI2LjEKKyBnbm9tZS1kaXNrLXV0 aWxpdHk+PTMuMzguMAorIGdub21lLWRvY3VtZW50cz49My4zNC4wCisgZ25vbWUtZm9udC12aWV3 ZXI+PTMuMzQuMAorIGdub21lLW1hcHM+PTMuMzguMAorIGdub21lLW11c2ljPj0zLjM4LjAKICBn bm9tZS1uZXR0b29sPj0zLjguMQotIGdub21lLXBob3Rvcz49My4zMi4wCi0gZ25vbWUtcmVjaXBl cz49Mi4wLjAKLSBnbm9tZS1zY3JlZW5zaG90Pj0zLjMyLjAKLSBnbm9tZS1zb3VuZC1yZWNvcmRl cj49My4zMi4wCi0gZ25vbWUtc3lzdGVtLW1vbml0b3I+PTMuMzIuMAotIGdub21lLXRlcm1pbmFs Pj0zLjMyLjAKLSBnbm9tZS10d2Vha3M+PTMuMzIuMAotIGd0ay12bmM+PTAuNi4wXzIKLSBsaWJj aGFtcGxhaW4+PTAuMTIuMTYKLSBuYXV0aWx1cy1zZW5kdG8+PTMuOC4wCisgZ25vbWUtcGhvdG9z Pj0zLjM3LjkxLjEKKyBnbm9tZS1yZWNpcGVzPj0yLjAuMgorIGdub21lLXNjcmVlbnNob3Q+PTMu MzguMAorIGdub21lLXNvdW5kLXJlY29yZGVyPj0zLjM0LjAKKyBnbm9tZS1zeXN0ZW0tbW9uaXRv cj49My4zOC4wCisgZ25vbWUtdGVybWluYWw+PTMuMzguMAorIGdub21lLXRvZG8+PTMuMjguMQog IG5lbWl2ZXI+PTAuOS42Ci0gcG9sYXJpPj0zLjMyLjAKLSByeWdlbD49MC4zNi4wCi0gc2ltcGxl LXNjYW4+PTMuMzIuMAotIHN1c2hpPj0zLjMyLjAKLSB0b3RlbT49My4zMi4wCi0gdG90ZW0tcGwt cGFyc2VyPj0zLjI2LjAKKyBwb2xhcmk+PTMuMzYuMworIHJ5Z2VsPj0wLjQwLjAKKyBzaW1wbGUt c2Nhbj49My4zOC4wCisgdG90ZW0+PTMuMzguMAogIHZpbm8+PTMuMjIuMCIKIAogX2dhbWVzX2Nv bGxlY3Rpb25fZGVwZW5kcz0iCi0gYWlzbGVyaW90Pj0zLjIyLjMKLSBmaXZlLW9yLW1vcmU+PTMu MzIuMAotIGZvdXItaW4tYS1yb3c+PTMuMzIuMAotIGdub21lLTIwNDg+PTMuMzIuMAotIGdub21l LWNoZXNzPj0zLjMyLjAKLSBnbm9tZS1rbG90c2tpPj0zLjMyLjAKLSBnbm9tZS1tYWhqb25nZz49 My4zMi4wCi0gZ25vbWUtbWluZXM+PTMuMzIuMAotIGdub21lLW5pYmJsZXM+PTMuMjQuMAotIGdu b21lLXJvYm90cz49My4zMi4wCi0gZ25vbWUtc3Vkb2t1Pj0zLjMyLjAKLSBnbm9tZS10ZXRyYXZl eD49My4zMi4wCi0gaGl0b3JpPj0zLjIyLjQKLSBpYWdubz49My4zMi4wCi0gbGlnaHRzb2ZmPj0z LjI2LjAKLSBxdWFkcmFwYXNzZWw+PTMuMzIuMAotIHN3ZWxsLWZvb3A+PTMuMjYuMAotIHRhbGk+ PTMuMzIuMAotIgorIGFpc2xlcmlvdD49My4yMi4xMgorIGZpdmUtb3ItbW9yZT49My4zMi4yCisg Zm91ci1pbi1hLXJvdz49My4zNi40CisgZ25vbWUtMjA0OD49My4zNi40CisgZ25vbWUtY2hlc3M+ PTMuMzYuMQorIGdub21lLWtsb3Rza2k+PTMuMzYuMworIGdub21lLW1haGpvbmdnPj0zLjM2LjIK KyBnbm9tZS1taW5lcz49My4zNi4xCisgZ25vbWUtbmliYmxlcz49My4yNi4xCisgZ25vbWUtcm9i b3RzPj0zLjM2LjEKKyBnbm9tZS1zdWRva3U+PTMuMzYuMAorIGdub21lLXRldHJhdmV4Pj0zLjM2 LjQKKyBoaXRvcmk+PTMuMzguMAorIGlhZ25vPj0zLjM2LjQKKyBsaWdodHNvZmY+PTMuMzYuMAor IHF1YWRyYXBhc3NlbD49My4zNi4wNQorIHN3ZWxsLWZvb3A+PTMuMzQuMQorIHRhbGk+PTMuMzYu NCIKIAogZ25vbWUtYXBwc19wYWNrYWdlKCkgewogCWRlcGVuZHM9IiRfYXBwc19kZXBlbmRzIgoK RnJvbSA5NGVhZDE5MjkwODBlNGRiMWNjZjNlNzZmNmRjNGRkOTFjOThkZDA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogRnJpLCAxOCBTZXAgMjAyMCAxNzoxNjoyMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAz LzEwNV0gZ25vbWUtdG9kbzogcmVidWlsZCBmb3IgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMzgK Ci0tLQogc3JjcGtncy9nbm9tZS10b2RvL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9t ZS10b2RvL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS10b2RvL3RlbXBsYXRlCmluZGV4IGZiN2Q3 MWI5MzU5Li5jNmM0YmQyYWY4NiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS10b2RvL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtdG9kby90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXRvZG8nCiBwa2duYW1lPWdub21lLXRvZG8KIHZlcnNp b249My4yOC4xCi1yZXZpc2lvbj01CityZXZpc2lvbj02CiBidWlsZF9zdHlsZT1tZXNvbgogYnVp bGRfaGVscGVyPSJnaXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSItRGludHJvc3BlY3Rpb249JCh2 b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIKCkZyb20gZDRhNmJiNTQ0NGIzYmU1NWFjYzYyM2I3ZGNl NDQ3NzQ1ZjBjMzczZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTggU2VwIDIwMjAgMTc6MTY6NDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDEwNC8xMDVdIGlvLmVsZW1lbnRhcnkuY2FsZW5kYXI6IHJl YnVpbGQgZm9yCiBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zOCwgZml4IGNyb3NzCgotLS0KIHNy Y3BrZ3MvaW8uZWxlbWVudGFyeS5jYWxlbmRhci90ZW1wbGF0ZSB8IDUgKysrLS0KIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9pby5lbGVtZW50YXJ5LmNhbGVuZGFyL3RlbXBsYXRlIGIvc3JjcGtncy9pby5lbGVtZW50 YXJ5LmNhbGVuZGFyL3RlbXBsYXRlCmluZGV4IDdlNzA0MTAxMjk4Li5lODMyMDc5MmExZSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNhbGVuZGFyL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvaW8uZWxlbWVudGFyeS5jYWxlbmRhci90ZW1wbGF0ZQpAQCAtMSwxMiArMSwxMyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnaW8uZWxlbWVudGFyeS5jYWxlbmRhcicKIHBrZ25hbWU9aW8u ZWxlbWVudGFyeS5jYWxlbmRhcgogdmVyc2lvbj01LjAKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQK IF9naXRfY29tbWl0PTQ2MzQ2ZTQ4YjUzZTlkM2Q1OWQ5ZjU2N2I2MjI1MzIzMzhmNTBmMzIKIHdy a3NyYz0iY2FsZW5kYXItJHtfZ2l0X2NvbW1pdH0iCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRf aGVscGVyPSJnaXIiCi1ob3N0bWFrZWRlcGVuZHM9ImludGx0b29sIHBrZy1jb25maWcgdmFsYSBk ZXNrdG9wLWZpbGUtdXRpbHMgQXBwU3RyZWFtIgoraG9zdG1ha2VkZXBlbmRzPSJpbnRsdG9vbCBw a2ctY29uZmlnIHZhbGEgZGVza3RvcC1maWxlLXV0aWxzIEFwcFN0cmVhbQorIGdsaWItZGV2ZWwg ZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIgogbWFrZWRlcGVuZHM9ImdyYW5pdGUtZGV2ZWwg bGliZ2xpYi1kZXZlbCBndGsrMy1kZXZlbCBsaWJnZWUwOC1kZXZlbAogIGxpYmNoYW1wbGFpbi1k ZXZlbCBjbHV0dGVyLWRldmVsIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbAogIGZvbGtzLWRl dmVsIGdlb2NvZGUtZ2xpYi1kZXZlbCBnZW9jbHVlMi1kZXZlbCBsaWJpY2FsLWRldmVsIGxpYm5v dGlmeS1kZXZlbCIKCkZyb20gMWRjMGEzYzcwNzIxOGJjYjAxZjM0ZWQ4MTY5MmE1YjM4NjM4MzI0 OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTggU2VwIDIwMjAgMTc6MTc6MTEgKzAyMDAKU3ViamVj dDogW1BBVENIIDEwNS8xMDVdIHBsYW5uZXI6IHJlYnVpbGQgZm9yIGV2b2x1dGlvbi1kYXRhLXNl cnZlci0zLjM4CgpbY2kgc2tpcF0KLS0tCiBzcmNwa2dzL3BsYW5uZXIvdGVtcGxhdGUgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3BsYW5uZXIvdGVtcGxhdGUgYi9zcmNwa2dzL3BsYW5uZXIvdGVtcGxhdGUK aW5kZXggYzc2YTM4Yjg3ZWEuLjc4MjVlYTZiZTkxIDEwMDY0NAotLS0gYS9zcmNwa2dzL3BsYW5u ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wbGFubmVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncGxhbm5lcicKIHBrZ25hbWU9cGxhbm5lcgogdmVyc2lv bj0yLjIuMTQKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWls ZF9oZWxwZXI9ImdpciIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIHZhbGEg Z2xpYi1kZXZlbCIK --===============4097681282721628522==--